SPEED - CD32 + SX1 (68EC020 14MHz), 880KB ADF image:
HDD -> HDD RAM: -> RAM:
UnZip2026 1.0 12s 12s
UnZip2026 0.5.3 40s 25s
UnZip 6.0 15s 13s
UnZip 5.5 19s 17s
UnZip2026 1.0 vs 0.5.3: 3.3x faster on HDD, 2x faster in RAM:
UnZip2026 1.0 vs UnZip 6.0: about 20% faster on HDD, equal in RAM:
History:
1.0 - "Bug free edition + speed". Stability and speed release.
Speed:
- Stored (uncompressed) Deflate blocks copied in large
chunks instead of byte by byte
- 64KB file buffers (was 1KB) - hundreds of times fewer
disk calls, extraction from/to HDD as fast as in RAM:
- Match copy rewritten in C (no per-match function call)
CD32 + SX1 (68EC020), 880KB ADF, HDD to HDD:
UnZip2026 0.5.3: 40s, UnZip2026 1.0: 12s
(UnZip 6.0: 15s, UnZip 5.5: 19s)
Fixes:
- Stack overflow: random crashes, "cannot create []",
wrong time and hang on second run with default Shell
stack. Program now allocates its own stack (68k 100KB,
WarpOS 256KB) - no "Stack" command needed any more
- Split archives (.z01...zNN + .zip, made by "zip -s")
were joined but nothing was extracted - offsets are now
calculated per volume. Note: UnZip 6.0 cannot extract
such archives directly at all
- Memory overwrite past the end of the output buffer
(could cause random crashes after extraction)
- False "Not enough space" warning when extracting to RAM:
on Kickstart 3.1 (old RAM-handler reports 100% full)
- Total time and average speed were shown 60x too small
- Temp file for split archives placed in RAM: based on
total free memory, not the largest memory block
- Damaged central directory entry is now reported as an
error instead of silently stopping
- PPMd (method 98) crashed with guru 80000003 - fixed
- PKWARE ZipCrypto always said "wrong password" and did
not decrypt the data - fixed
- bzip2 archives with 900k blocks failed with error -3 on
machines with little memory - now falls back to bzip2
small mode automatically
Other:
- Options may be given anywhere on the command line
("--" ends the options)
- Source code included as UnZip2026_source.zip (PPMd +
AES-256) - password in PASSWORD.txt
- $VER string: "Version UnZip2026_020 FULL" works
- Build number shown at startup, name unified: UnZip2026
- Built with m68k-amigaos-gcc 13.3 and VBCC (WarpOS)
0.5.3 - Fix: files now extracted to archive directory, not process
CWD. Prevents extraction to wrong volume (e.g. SYS:) when
launched from Workbench or Shell in a different directory.
0.5.2 - Fix: AmigaDOS "Please insert volume CURRENT:" requester
no longer appears when extracting without -d option.
0.5.1 - Added: WinZip AES-128/192/256 decryption (AE-1/AE-2),
Unicode filename support (extra field 0x7075), multi-volume
split ZIP support (.z01...zNN + .zip), -w option.
0.5 - First public release. Store, Deflate, Deflate64, LZMA, XZ,
bzip2, PPMd, Implode, Reduce, Shrink, PKWARE encryption.
--- ENGLISH -------------------------------------------------------
Full-featured ZIP extractor for AmigaOS and WarpOS.
Requires Kickstart 2.0 or higher. Minimum 1MB Chip RAM.
The need for this program arose in 2008, when Benedykt Dziubaltowski
acquired his first PPC card for the Amiga 1200 and discovered that no
unzip program existed running natively under WarpOS. UnZip2026 is the
realisation of that idea, nearly twenty years later.
Version 1.0 is a stability and speed release: all known crashes are
fixed and extraction is about 3x faster than version 0.5.3 - faster
than UnZip 6.0 on the same hardware.
This project is further proof that Claude AI (Anthropic) handles Amiga
C programming surprisingly well. The entire source code was generated
by AI, including the ZIP engine, all decompression codecs, AES
encryption, multi-volume support and Unicode filename handling.
Features:
- 10 compression methods: Store, Deflate, Deflate64, LZMA, XZ,
bzip2, PPMd, Implode, Reduce (1-4), Shrink
- PKWARE classic encryption
- WinZip AES-128/192/256 decryption (AE-1/AE-2, HMAC-SHA1 verified)
- Multi-volume / split ZIP support (.z01...zNN + .zip)
- Unicode filename support (extra field 0x7075, ISO-8859-1 output)
- RAM buffering and 64KB file buffers for fast extraction
- Own stack - works with the default Shell stack (4KB)
- Free space check before extraction with [y/N] prompt
- Auto-detect and join split archives, temp file in RAM: if possible
- Overwrite prompt with [y]es/[n]o/[A]ll/[N]one/[r]ename/[e]xit
- Extract to archive directory by default (not process CWD)
- UNZIP environment variable support
- Builds: 68000, 68020, 68040, 68060, WarpOS PPC
Usage:
unzip2026 archive.zip <- list contents
unzip2026 -x archive.zip <- extract all
unzip2026 -x -d RAM:tmp/ arch.zip <- extract to directory
unzip2026 -x -p password arch.zip <- extract with password
unzip2026 -x arch.zip file.txt <- extract single file
unzip2026 -x -w RAM: arch.zip <- working dir for split ZIPs
Options:
-x / -e Extract
-l List contents (default)
-d <dir> Destination directory
-p <pwd> Password (PKWARE classic or AES)
-w <dir> Working directory for multi-volume join
-o Always overwrite
-n Never overwrite
-C Case-insensitive matching (default)
--C Case-sensitive matching
Known limitations:
- Requires 1MB Chip RAM (does not work with 512KB Chip + 512KB Slow)
- All parts of a split archive must be in the same directory
- Filenames outside Latin-1 range are replaced with "_"
Sources used:
- LZMA SDK by Igor Pavlov (Public Domain), PPMd var.I based on
Dmitry Shkarin's code (Public Domain)
- bzip2 1.0.8 by Julian Seward (BSD-style licence, full text in the
documentation)
- AES/SHA-1/HMAC: original implementation (Public Domain)
- ZIP engine and all wrappers: original code (Public Domain)
Created with Claude AI (Anthropic) by Benedykt Dziubaltowski.
Public Domain (except bzip2 code - see its licence).
--- POLSKI --------------------------------------------------------
Rozbudowany program do wypakowywania archiwow ZIP dla AmigaOS i WarpOS.
Wymaga Kickstart 2.0 lub nowszego. Minimum 1MB Chip RAM.
Potrzeba powstania tego programu narodzila sie w 2008 roku, kiedy
Benedykt Dziubaltowski nabyl pierwsza karte PPC do Amigi 1200 i okazalo
sie, ze nie istnieje zaden unzip dzialajacy natywnie pod WarpOS.
UnZip2026 jest realizacja tego pomyslu, niemal dwadziescia lat pozniej.
Wersja 1.0 to wydanie stabilnosci i szybkosci: usunieto wszystkie
znane zawieszenia, a wypakowywanie jest okolo 3x szybsze niz w wersji
0.5.3 - szybsze niz UnZip 6.0 na tym samym sprzecie.
CD32 + SX1, ADF 880KB, z HDD na HDD: 0.5.3: 40s, 1.0: 12s
(UnZip 6.0: 15s, UnZip 5.5: 19s).
Najwazniejsze poprawki w 1.0:
- przepelnienie stosu (zawieszenia, "cannot create []", zawieszenie
przy drugim uruchomieniu) - program sam przydziela sobie stos,
komenda "Stack" nie jest juz potrzebna
- archiwa wieloczesciowe (.z01...zNN + .zip) wreszcie sie rozpakowuja
- falszywe ostrzezenie o braku miejsca w RAM: na Kickstart 3.1
- bledny czas i srednia predkosc w podsumowaniu
- PPMd konczyl sie guru 80000003 - naprawione
- szyfrowanie ZipCrypto zawsze zglaszalo "wrong password" - naprawione
- bzip2 przy malej ilosci pamieci przechodzi na tryb oszczedny
- kod zrodlowy w UnZip2026_source.zip, haslo w PASSWORD.txt
Funkcje:
- 10 metod kompresji: Store, Deflate, Deflate64, LZMA, XZ, bzip2,
PPMd, Implode, Reduce (1-4), Shrink
- Szyfrowanie PKWARE classic
- Deszyfrowanie WinZip AES-128/192/256 (AE-1/AE-2, weryfikacja HMAC-SHA1)
- Obsluga archiwow wieloczesciowych / split ZIP (.z01...zNN + .zip)
- Obsluga nazw plikow Unicode (extra field 0x7075, wyjscie ISO-8859-1)
- Buforowanie w RAM i bufory plikow 64KB dla szybkiego wypakowywania
- Wlasny stos - dziala z domyslnym stosem Shella (4KB)
- Sprawdzanie wolnego miejsca przed wypakowaniem z pytaniem [y/N]
- Auto-detekcja i laczenie split archiwow, plik tymczasowy w RAM: jesli mozliwe
- Pytanie o nadpisanie: [y]es/[n]o/[A]ll/[N]one/[r]ename/[e]xit
- Domyslne wypakowywanie do katalogu archiwum (nie do CWD procesu)
- Obsluga zmiennej srodowiskowej UNZIP
- Wersje: 68000, 68020, 68040, 68060, WarpOS PPC
Stworzone z pomoca Claude AI (Anthropic) przez Benedykta Dziubaltowskiego.
Public Domain (z wyjatkiem kodu bzip2 - patrz jego licencja).
--- MAGYAR --------------------------------------------------------
Teljes funkcionalitasu ZIP kibonto program AmigaOS es WarpOS rendszerekre.
Kickstart 2.0+ szukseges. Minimum 1MB Chip RAM.
A program elkeszitesenek igenye 2008-ban merult fel, amikor Benedykt
Dziubaltowski megszerezte elso PPC kartyajat az Amiga 1200-hoz, es
kiderult, hogy nem letezik egyetlen WarpOS alatt nativan futtathato
unzip program sem. Az UnZip2026 ennek az otletnek a megvalositasa,
kozel husz evvel kesobb.
Az 1.0 verzio stabilitasi es sebessegi kiadas: minden ismert
lefagyas javitva, a kicsomagolas kb. 3x gyorsabb, mint a 0.5.3
verzioban - gyorsabb, mint az UnZip 6.0 ugyanazon a gepen.
CD32 + SX1, 880KB ADF, HDD-rol HDD-re: 0.5.3: 40s, 1.0: 12s
(UnZip 6.0: 15s, UnZip 5.5: 19s).
Javitva tovabba: PPMd lefagyas (guru 80000003), ZipCrypto jelszo
("wrong password"), bzip2 keves memorianal takarekos modba valt.
A forraskod az UnZip2026_source.zip-ben, jelszo a PASSWORD.txt-ben.
Funkciok:
- 10 tomoritesi modszer: Store, Deflate, Deflate64, LZMA, XZ, bzip2,
PPMd, Implode, Reduce (1-4), Shrink
- PKWARE classic titkositas
- WinZip AES-128/192/256 visszafejtes (AE-1/AE-2, HMAC-SHA1 ellenorzott)
- Tobbkotetes / split ZIP tamogatas (.z01...zNN + .zip)
- Unicode fajlnev tamogatas (extra field 0x7075, ISO-8859-1 kimenet)
- RAM puffereles es 64KB fajlpufferek a gyors kicsomagolashoz
- Sajat verem - mukodik az alapertelmezett Shell veremmel (4KB)
- Szabad hely ellenorzese kicsomagolas elott [y/N] megerositessel
- Split archivumok automatikus felismerese es osszefuzese
- Felulirasi kerdes: [y]es/[n]o/[A]ll/[N]one/[r]ename/[e]xit
- Alapertelmezett kicsomagolas az archivum konyvtaraba
- UNZIP kornyezeti valtozo tamogatasa
- Verziok: 68000, 68020, 68040, 68060, WarpOS PPC
Keszult Claude AI (Anthropic) kozremukodesevel,
Dziubaltowski Benedek altal. Public Domain (kiveve a bzip2 kodot -
lasd annak licencet).
|