Kludgesoft

Unzip64v2 & Unzip128v2

Download Unzip64v2.15
Download Unzip128v2.15
Both versions, zipped
Source code
Turbo Macro assembler
(might need to compile source)

My Commodore Stuff

64 Main Page
Novaterm 10
Unzip64v2 & Unzip128v2
D64it & D128it
Strobe's Demos
Commodore Links
Misc
Errol's Home Page

Unzip64/128 news:

11/6/2003 - Source code released
This is the source used to compile both versions of 2.15, in it's original turbo/macro assembler format and also exported to petscii.
If anyone makes use of it please let me know!
Wow, is it really like 3 years since I looked at this?? Anyway..

14/11/2000 - Unzip64v2.15 & Unzip128v2.15 released. What's new:

  • overwriting of existing files with all/none/individual options
  • decompresses D71 & D81 disk images as well as D64 images
  • output files are now created with "correct" case
  • renaming of the output file
  • probably a few bugs as I'm releasing it as-is
  • lots of other things I don't remember because I haven't looked at it in months
Unzip64v2 & Unzip128v2 are decompressors compatible with files created by PKZIP v2.04g & equivalent programs, as well as gzip (GNU zip). They will decompress deflated (and stored) files on a stock commodore 64 or 128 (respectively).

I started this project primarily as I was interested in learning compression theory, and there has always been demand for such a program. An unzip program already exists for the c64 & c128, but it is only compatible with PKZIP v1.10 or earlier.
Most everyone I've seen discussing the topic has said that an inflate routine would be impossible on a c64 (or even a 128) without ram expansion and/or a supercpu or similar. Unzip64v2's inflate code uses about 36k of memory in total, and decompresses at a rate of several k/sec or more on a 1Mhz 64!
The code is 100% 6502 assembler based partly on the infozip C source. See references below.

Features:

  • Writes D64 files to 1541/71 drives and to 1541 partitions on CMD devices
  • Fast decompression
  • Decompresses both ZIP & GZIP compressed files!
  • CRC-32bit data integrity checking
  • Path support for directories/partitions on CMD drives etc..
  • File type (PRG/SEQ) selection + individual override
  • Filename correction for lowercase ascii filenames.
  • Auto device detection.
  • Directory functions F1 & F3 for viewing source & destination directories.
  • Dos command functions.
  • Uses 2mhz mode on a 128 in 64 mode + uses VIC-II blank screen speedup
  • CMD device friendly (SCPU64, RamLink, HD/FDxxxx etc. etc. compatible)
  • CMD SCPU optimized
  • Compatable with just about any storage hardware, including ramdos/REU etc.
  • It decompresses ZIP2.04g files - what more do you want?
  • More? It decompresses GZIP files too
  • Want more still? It decompresses d64 images straight to 1541 disks!
Notes:
  • As with anything, it may have bugs. Feedback & bug reports are always welcome.
  • This program will NOT decompress files created by PKZIP 1.xx. (unless ALL the files are stored) It does not implement the shrink, reduce or implode algorithms (methods 1, 2-5 & 6 respectively). Use David Schmolls unzip128/64 program for these files.
Credits:
  • Gaelyne & Rod Gasson for their SCPU64
  • Darren Gibbs for his 128 system
  • Jeff Jones from Loadstar for sending me a C=128 Programmers Reference Guide
  • Gerry Gallinat for his 128 Programming Secrets book
  • Todd Elliot for a huge wad of 128 programming info
  • Colin Thomson & Russell Prater for addition encouragement
  • Also Rod Gasson & Nate Dannenburg for some of thier 128 programming experience
Some of the references / resources used:
  • Deflate specification (RFC 1951)
  • PkWare's file format description
  • InfoZip Homepage
  • GZIP Homepage
  • comp.compression FAQ
  • comp.compression newsgroup
  • comp.compression.research newsgroup
  • Related C= sites:
  • Russell Reed's Projects page - UnPack utility, alternative C= archive formats.
  • Pasi 'Albert' Ojala's Software Page - PuCrunch, data compression introduction (thorough!)
  • Errol Smith || Strobe/???