Unzip64v2.12 ------------ Copyright 1998 Errol Smith What's New in 2.1? ------------------ - Main inflate routine is now MUCH faster than before, (I re-wrote most of it from scratch..) - GZIP (*.gz) extraction! - Fixed handling of ZIP's with paths - Extracts some ZIP's made on *nix that 2.0 wouldn't - 32bit CRC error checking - 2mhz mode on a 128 in 64mode - SCPU optimized - dos command functions - no longer clobbers BASIC on exit - dozens of other internal changes, minor bug fixes etc etc.. Introduction ------------ Unzip64v2 is a c64 program to extract 'ZIP' compressed archives created by PKZIPv2.04g, Info-Zip 2.x or equivalent programs. (extension '.zip') Unzip64v2.12 will also now extract 'gzip' compressed files. These are made with the GZIP compression program commonly used on unix machines, and have the extension '.gz'. Unzip64v2 will work on a c64 or c128 in 64 mode. It is also compatible with most expansion devices such as REU's (using ramdos) and CMD products such as hard drives, SCPU's etc. Unzip64v2.1 takes advantage of 2mhz mode on a c128 (in 64 mode) and is CMD SuperCPU optimized. This program is free to be distributed as long as it is in it's original archive, (UNZP6421.PRG) NOTE The file is a Self-eXtracting-Zip, -not- a 'normal' c64 program. Please do not compress it with something else! (you won't gain much if you try) If you find the program useful, I would appreciate some encouragement to continue development. A donation of $10 (or more!) is suggested, though an appreciative email/letter will suffice if you can't afford a measly $10 or so contribution (-: I would also be happy with donations of software (eg. if you are a software author or distributor), or hardware (eg utility carts - AR, FC etc, or any CMD device). If you would like to donate any of the above please contact me in advance. Anyone making a contribution will recieve acknowledgement in this documentation and/or on my web page. I would like to thank all the people that helped beta test the program and provided feedback & suggestions. Contact Information ------------------- The latest news & updates of unzip64v2 can be found on my c64 web page at: http://www.ros.com.au/^errol/64.html Internet e-mail: errol (at) ros.com.au Fidonet Netmail: Errol Smith 3:712/523.5 I can also be contacted in any of the Fidonet CBM, CBM-128 & CBM-GEOS echoes. Snail Mail: Errol Smith PO Box 119 Round Corner NSW 2158 Australia Important Notes --------------- * To use RAMDOS with unzip64v2, set the interface page at 207 ($cf) * Unzip64v2 is always in development, and may contain bugs. Any bug reports & suggestions for improvements are welcome. If reporting a bug I would apreciate being sent the zipfile that caused the error (if the program crashes on a valid zip file). * Unzip64v2 cannot decompress ZIP's created by PKZIP1.xx. You will need to use Bill Lucier's Unzip64 or David Schmolls NZP128 package to decompress these files. (the exception to this is if the files are all stored, but that is unlikely). If Unzip64v2 says 'UNSUPPORTED!' when unzipping then you probably have a ZIP1.xx archive. * The distribution archive -IS- a self extracting zip archive. Unfortunately the code is custom written for this package and isn't publicly useable. There are several practical limitations to using zip for self extracting files, but I will endeavor to release a publicly usable 'SXZ' (?) module in the future. I didn't call the distribution an SFX as it would be confused with LZH SFX files. I propose the extension 'SXZ' for future Self eXtracting Zips. Any comments? Anyone? Main Menu --------- Most options are reasonably self explanatory but I'll detail them anyway to avoid any confusion. F1 - Shows a directory of the source device, using the source path. F2 - This toggles the source device number. This is the device that the .ZIP or .GZ file is on. It will automatically find the next valid device on your system. Valid device numbers are 8 through 30. + - Change the source path. This is only of use to users of CMD drive devices, and allows you to set the partition & subdirectory for the source zip/gz files. The path you enter is pre-pended to the input file verbatim. It MUST include a trailing colon! CMD path example: 23//mystuff/: Where "23" is the partition, "//" is the root directory, "mystuff" is the subdirectory, and "/:" ends the path. Got it? @ - Send a dos command to the source device. You can use this to scratch, rename, copy etc. Hit only return to read the error channel without sending a command. Enter $ to read the directory of the device (note this uses the current/default path of the drive, NOT the path defined with '+') F3 - Shows a directory of the destination device, using the destination path. F4 - Toggles the destination device number (where the extracted files will go). Similar to F2. - - Change the destination path. This is where extracted files will go. See notes above about source paths & remember the trailing colon. * - Send a dos command to the destination device. Similar to the @ command above. F5 - Set zip filename. Allows you to set the name of the input file. F6 - Toggle the default output file type - P (PRG) or S (SEQ). This is the file type that extracted files will have. Note you can manually override this with individual files. F7 - Unzip a file. This starts unzipping the specified file. See 'Unzipping' later on for details. F8 - Change unzip mode. This toggles between 'zip' mode for .ZIP files & 'gzip' mode for .GZ files. Select the appropriate mode before hitting F7! q - Quit unzip64v2 & return to basic. Press 'Q' (shift-q) for an AR friendly reset. Generally to use unzip64v2, you set the appropriate source & destination devices (and paths if needed), set the zip file name with F5, then start unzipping with F7. UnZipping - Zip files --------- Unzipping handles files within the zip archive one at a time. As each file is processed, the filename will be displayed, followed by a query with options [ynqaps]. Each letter means the following: y - Extract this file using the default file type. n - Do not extract this file & skip to the next one. q - Quit unzipping & return to the menu a - Extract this file and ALL remaining files without further prompts, using the default file type. p - Extract this file as a PRG file, regardless of the default type. s - Extract this file as a SEQ file, regardless of the default type. Simply press the letter of the option you want. Unzipping - Gzip files There are no options for gzip files, as they contain only one file. The file is decompressed automatically when you press F7. Unzipping - General The screen border will flash during decompression (inflating). This is to indicate activity, and for debugging. When a file is finished being extracted, you will normally get an OK. This means the file passed the 32bit CRC check. If you get a 'CRC error', then the extracted file is corrupted, which usually means the ZIP or GZ file it came from is also corrupt. Please ensure there is adequate disk space on the destination drive before beginning! Past, Present & Future ---------------------- This program has been in development part-time for over 2 years (since late 1995). I began the project primarily as a self-education on compression theory. It was also a shift from my previous C= experience which was mostly as a demo coder ('Strobe'). The program code is based partly on publicly available C source (eg. Info-Unzip) along with many other sources of information on compression theory, and the deflate algorithm in particular. I have many ideas for the future, both my own and that of the many people who have provided input to this program during development. Though I can't promise to do all (or any) of them, here are some of the ideas for future versions: (in no particular order) - User Interface improvements - Native 128 version - Ability to list the files in a zip without extracting them - Pick list for choosing source zips - Creation of stored zip files. - Creation of compressed zip files (!) - Self eXtracting Zip routine (SXZ) for general public use. - Decompression of zip1.xx archives (imploded, shrunk, reduced) - Decompression of D64 files (emulator disk image) directly to a 1541 disk. Which of these is done and when will be determined largely by user feedback as to what people want, how much inspiration I have, what is practical, and how much encouragement I get! (-: Compression is a large step, and might be difficult to achieve on a stock 64. Creation of stored-only zip archives is relatively easier, but the usefulness of uncompressed archives is perhaps questionable. Anyway, comments, constructive criticism or cash payments are all welcome! Errol Smith Strobe/??? End.