Unzip64v2.00 ------------ Copyright 1998 Errol Smith This is the first public release version of Unzip64v2, a program to decompress 'zip' archives created by PKZIPv2.04g or equivalent programs. It will work on a c64 or c128 in 64 mode. This program is free to be distributed as long as it is unmodified in it's original archive, using the original filename. (UNZP6420.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 a simple apreciative email/letter will suffice. I would also be happy with donations of software (eg. if you are a software author or distributor), or hardware (a 128 would be nice, as would utility carts - AR, FC etc, or any CMD device). If you would like to donate some of the above please contact me in advance. Anyone making a healthy contribution will recieve acknowledgement in this documentation as well as on my web page. I would like to thank all the people that helped beta test the program and provide feedback & suggestions - particularly those that supplied me with zip files causing the program to break. Without those zip files tracking down the bugs would have been next to impossible. Though this is a public release, the program is far from finished, though I am confident that most bugs have been ironed out. (still got wrinkles though) Contact Information ------------------- The latest news & updates of unzip64v2 can be found on my 64 web page at: http://www.ros.com.au/~errol/64.html Internet e-mail: errol@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 --------------- * This program is still in development, and may still contain bugs. It does not have much in the way of error checking, and may crash or act unpredictably. 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 zip file is valid). * 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. * I have changed the version convention since the beta testing to unzip64v2.xx where 2.xx is the revision number, starting with 2.00 with this initial release. Don't get confused. * If you posess or know of any beta versions of unzip64v2, please delete them. This is especially true of any publicly available versions (eg on BBS or FTP sites). -ALL- the beta versions have bugs and should be eliminated. * 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 severe practical limitations to using zip for self extracting files, so don't expect a publicly usable 'SXZ' (??) module in the near 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? Main Menu --------- Most options are reasonably self explanatory but I'll detail them anyway to help stop any confusion. F1 - Shows a directory of the input device, using the source path. F2 - This toggles the input device number. This is the device that the source zip file is on. It should 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 type devices, and allows you to set the partition & subdirectory for the source zip files. The path you enter is pre-pended to the input file verbatim. It MUST include a trailing colon! 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. F5 - Set zip filename. Allows you to change 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. q - Quit unzip64v2. 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 --------- 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. The screen border will flash during inflating - this is debugging info for myself, plus it lets you know that something is happening when inflating files. 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 almost entirely demo-coding. 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. Unzip64v2 uses approximately 35k of memory during decompression. 32k is used for the sliding dictionary, and the remainder is used for the various huffman tables. The deflate code itself is approximately 2.5k, plus various lookup tables & variable space. The remainder of the program is code to handle the zip archive format, stored files, the user interface & misc. disk routines. I have many ideas for the future, both my own and that of the many people who have provided input to this program during beta testing. Though I can't promise to do any of them, here are some of the ideas for future versions: (in no particular order) - CRC checking - Speed improvements - Better handling of corrupted zips - User Interface improvements - Use of 2mhz mode on a 128 in 64 mode - Native 128 version - Ability to list the files in a zip without extracting them - Pick list for choosing source zips - Dos wedge - Creation of stored zip files. - Creation of compressed zip files (!) - Self eXtracting Zip routine (SXZ??) - Extraction of GZIP archives - Decompression of zip1.xx archives (imploded, shrunk, reduced) Which of these is done and when will be determined largely by user feedback as to what people want, how much inspiration I have, and what is actually practical. (Oh, and how much encouragement I get! (-: ) Compression is a large step, and may be quite difficult (if not impossible) on a stock 64 (or even generally). Creation of stored-only zip archives is relatively easier, but the usefulness of uncompressed archives is perhaps questionable. A 128 version is difficult at present as I don't own a 128 nor do I have access to the programming information required for a conversion. So if anybody wants to donate a c128 and/or 128 programmers reference guide....... Anyway, comments, constructive criticism or cash payments are all welcome! Errol Smith (a.k.a Strobe/???) End.