+------------------------------------------------------+ | Zip Chunker Pro, (C) Copyright 1991-95, Scott Jibben | | Version 3.01 | +------------------------------------------------------+ This is a list of the files that should accompany this software package: FILE_ID.DIZ - BBS Description File. ZCP.DOC - Zip Chunker Pro Documentation. DISTSAMP.DOC - Sample of a distribution license. SITESAMP.DOC - Sample of a site license. SITEINFO.DOC - Information and applications of licensing. LICENSE.DOC - License for Zip Chunker Pro software. PRICE.DOC - Pricing guidelines for site/distribution licenses. ORDERFRM.DOC - The order form. CC-ORDER.DOC - Information to register by credit card. VENDOR.DOC - Information for disk vendors and SHAREWARE distribution. ZCP.EXE - Zip Chunker Pro executable for DOS. ZCP2.EXE - Zip Chunker Pro executable for OS/2 2.x. ZCP32.EXE - Zip Chunker Pro executable for Win32. CATALOG.JSW - Information on Jibben Software Products. WHATSNEW.TXT - The Version History of Zip Chunker Pro. AVEXTRA.TXT - Information regarding PKZIP AV codes. ARJ-SEC.TXT - Information regarding ARJ Security envelope. What this software does This software is a file sizing utility. It supports two modes of operation. 1. It can size any type of file to a desired size creating multiple files with the *.ZC file extension. These file will be exactly the size requested except for the last file created. Using this mode of operation you will be able to size any file to your requirements. The only disadvantage of using this method is that you will have to use Zip Chunker Pro to "reassemble" the files back to the original file. 2. It can size files created by archive/compression software to your desired size. This will create multiple files that retain compatibility with the software that created the archive. The only disadvantage to using this method is if the internal compressed files are larger than the requested size. Zip Chunker Pro can't force the files to be smaller and retain compatibility. In this case it is recommended to use method 1. The current compression software files that Zip Chunker Pro supports are: ARC created by System Enhancements Associates ARC software. ARJ created by Robert K. Jung's ARJ software. HYP created by P. Sawatzki and K.P. Nischke's Hyper software. LZH created by Haruyasu Yoshizaki's LHA software. ZIP created by PKWare's PKZip (tm) software. Requirements for Zip Chunker Pro Zip Chunker Pro allocates memory as needed when processing. However, I suggest that you have at least 200KB of free memory to run it. If you are going to process large Arc/Arj/Hyp/Lzh/Zip files (with a lot of files, not total size), I suggest that you have 400KB of free memory to run Zip Chunker Pro. Installation Instructions It is relatively simple to install Zip Chunker Pro. All you have to do is copy the files to a subdirectory that is listed in your PATH statement in your AUTOEXEC.BAT file. You could also just create a new subdirectory, copy the files there, and then add the new sub- directory to the PATH statement. I won't go into the details of making subdirectories and modifying your path as you should have good examples of this in your DOS manual. The concept of Shareware Zip Chunker Pro is being released as a Shareware product. Shareware is a marketing concept, in which you get to try out a software package for a period of time. If you find that the software is useful to you (you are still using it), you are obligated to send in a registration fee for that software to the author. Zip Chunker Pro's trial period is 21 days. That means, once you start using Zip Chunker Pro, you have 21 days to decide whether or not it is useful to you. If it is useful, please promptly send in the requested registration fee. If it is not useful, you are expected to delete it and stop using it. Zip Chunker Pro is fully functional. However, it has a message that will appear every time it is used to size or reassemble files. Here's what you get when you register (Please use ORDER.FRM to order this software): 1. Support. You can call and leave e-mail to me on any of the BBS' listed in the Technical Support section of this document or CompuServe and get a response from me. I will more than likely answer all questions, but the registered individuals will definitely get top priority. You will also receive unlimited telephone support for the program. Registered users will get a phone number that they will be able to use to receive support between the hours of 6:00 pm - 10:00 pm (Central Standard Time) Monday-Friday. 2. You will receive a disk with the most recent version of Zip Chunker Pro. The software will also have the registration reminder screen removed. Your name and serial number will also be displayed when the software is run. 3. Special access to new products. You will be allowed access to beta test any software package that I'm in the process of creating. The beta software will be available only on the Warehouse BBS. Also you must make arrangements with Jibben Software to get access to the new software. (see Technical Support section of this document for details). 4. You will also have low cost upgrades of this software. Advantages of Using Zip Chunker Pro I've designed Zip Chunker Pro to make the least demands on your hardware. Zip Chunker Pro is at least 2 times faster than any other software package of this type for sizing archive files (Arc/Arj/Hyp /Lzh/Zip). In some instances, I've found it to be up to 10 times faster. I wrote it for creating/reassembling *.ZC files as fast as possible as well. One other benefit from using Zip Chunker Pro is the amount of disk space it requires to process an archive file. My closest competitor requires 2-3 times the disk space of the original file, ie, if you had a 2MB ZIP file you would have to have up to 6MB of free disk space in order to break it up! Zip Chunker Pro automatically determines the disk space required and will tell you if you don't have enough BEFORE you create the files. The algorithm in which I calculate the amount of files to put in a archive file is highly optimized. Zip Chunker Pro will sometimes have one less file than other software packages of this type and the files will be closer to the requested size. Zip Chunker Pro can handle any file created using PKZIP (tm). All other software packages of this type that I've seen, have the tendency to crash if the ZIP file is too large or there are too many files in the ZIP file. One of my beta testers ran ZCP on a 170 Megabyte Zip file and ZCP processed it without problems. Zip Chunker Pro is also the only software package that I know of that supports archive file formats as well as any file sizing. As far as I know, Zip Chunker Pro is the only sizing utility for Arc, Arj, Hyper, and Lzh files. Why Zip Chunker Pro will not Re-Assemble Archive Files Zip Chunker Pro was never intended to be used to reassemble archive files, only *.ZC files. At first thought, it may seem unreasonable to you, but there are several reasons why. Hopefully after reading the main reasons you'll understand why I chose not to. 1. Some archivers already provide the ability to combine archives (ARJ). 2. There would be no way for ZCP to 'know' how many files are in a set. With the *.ZC file standard, I can store the number of split files in the file. With the archives, there is no provision for this. For instance, if you would tell it to reassemble myzip-01.zip, how many files should ZCP expect to put together? Since modifying the archives format would make it a 'corrupted' file, there is no way to track this. 3. The other problem is that people would expect when they split an archive and then reassemble, that it would be identical to the original file. ZCP/ZC are so effective on creating files that match the size parm because they grab files from anywhere in the archive to create them. You can see this for yourself, just split a zip and compare the files in xxx-01.zip to the original xxx. You'll notice that I don't just take the first so many files until the size hits the limit and then start the next file. xxx-01.zip can contain the 1st, 8th, 22nd, 30th, etc. files. Given this fact, it is impossible to reassemble a archive file (zip) back to it's original state. There is no way for me to flag each file as being the 1st, 4th, etc. file of the original. 4. Finally, I have to ask you, "Why?". I seriously wonder why you would want to put the zips back together. The files still unzip fine. Why take the _extra_ step to reassemble the files into one file, then unzip the one big file? Isn't it easier to just run something like "PKUNZIP mym8-?.zip". This one command will unzip all the zips, mym8-1, mym8-2, etc. Just use the '?' where the numbers are in the zips. Using Zip Chunker Pro The software is fairly straight-forward and easy to use. In fact, I doubt that you will need to read this document in order to be able to use the software. Zip Chunker Pro will always display all of your options when you just type in ZCP and press Enter. The following is a list of the options with their descriptions. Since there are two modes of operating ZCP, I've listed the examples for these modes separately following the parameter descriptions. +------------------------+ | Parameter Descriptions | +------------------------+ [/L] - This option causes Zip Chunker Pro to display its license information and information about contacting the author for support. [file] - This parameter is to be replaced with the name of the file that you wish to size. If there is an archive file in the location that you've specified, ZCP will be able to detect the file by the files extension. Therefore, you would be able to just type in ARCFILE instead of ARCFILE.ARC. ZCP will not process a file if it finds more than one file with the supported file extensions (if you specify ABC and there is an ABC.ARC and ABC.ZIP file in that location). In order for ZCP to process a file in this case you must apply the files extension as well. If you specify a file that doesn't have one of the supported file extensions, ZCP will default to the *.ZC file format. You can also 'force' this method of sizing with the /Z option. Also, if you specify just an *.ZC file, (no other parameters), ZCP will report information on the *.ZC file. [max size] - This is option is used for specifying the maximum size of the files that you wish to create. ZCP will use this value in attempting to keep your files a certain size or smaller. There are several ways to specify this size. The first is to just specify a size in bytes, like 200000. Note that there are NO commas in this number. The other two methods are 'preset' values for floppy disk sizes. The old Zip Chunker presets are available, /5L, /5H, /3L, and /3H. There is also a new one called /3E for the new 2.88MB floppy disks. The last method is using the /S: option. After /S: you specify the size of the floppy that you wish to size to. The list of different options is listed on the info screen. For example, to size for a 3.5" high density floppy, the option would be /S:1.44. The default [max size] is 1.44MB. [/E] - Using this option will cause Zip Chunker Pro to erase the original archive file. This only works for archive files. NOTE: It has been disabled for *.ZC files. +------------------------+ | Parameter Descriptions | +------------------------+ [/F] - This option is only valid for archive files, NOT *.ZC files. It is used to make ZCP size the resulting files so that when the new files are uncompressed they will fit on the [max size] that you specified using a floppy size. Note: this only works when using a valid floppy disk preset (see the [max size] option). [/D:path] - This option is used to tell ZCP where to put the files that it creates. This is how you tell ZCP to put the new files on a floppy disk. ZCP will prompt you to put in a new floppy disk when it is needed. You can also use this option to put the files on another hard disk or sub-directory. It will work as long as you provide a valid destination. Note: when using this option with a floppy disk size preset (see [max size] option), the disk must be able to support the size you requested. Also, when sizing to a floppy drive, make sure you have enough blank, formatted disks available for the process. [/Z] - This option is used for 'force' sizing the file into an *.ZC file. This is helpful if you want to size an archive file to fit on a floppy when there are internal files that are larger than the disk size you are attempting to size for. [/R] - This option is used to reassemble *.ZC files back to the original file. It is simple to use. Just supply one of the *.ZC filenames and this option and ZCP will reassemble it back together. [/M] - This option will report the smallest allowable value for [max size]. It is useful for determining the value that you can use for [max size] before making the attempt to size a file. [/N] - This option will report the number of new files that will be created. [/T] - This option will allow Zip Chunker Pro to use the current date and time for the new files that are created. [/K] - This option will allow you to keep the backup files in ARJ files. It only works for ARJ files. The default is to delete backup files in ARJ ( version 2.30+ ) files. [/L#] - This option will allow you to leave # amount of space ( in bytes ) on the first file. It works with *.ZC and archive files. The primary use for this option is to 'leave space' in the first file to reserve room for other software on that disk. +----------+ | Examples | +----------+ For All Types of Files ---------------------- C:\WORK>ZCP The example above will display Zip Chunker Pro's Information screen. This displays all the available command line options. C:\WORK>ZCP \L The example above will display Zip Chunker Pro's license information. It also displays information about support BBS and the authors CompuServe ID. C:\WORK>ZCP workdata /m The example above will display the smallest allowable size for the [max size] parameter for sizing. C:\WORK>ZCP file 500000 /n The example above will display the number of new files that will be created when sizing the file. It doesn't actually size the file. C:\WORK>ZCP myfile 500000 /t The example above will size myfile to be 500,000 bytes and will use the current system date and time on the files. C:\WORK>ZCP myfile /L50000 The example above will size myfile to fit on 3.5" high density floppy disks. However, the first file will be 50,000 bytes smaller than the rest. This would allow for the storage of ZCP.EXE (or other 'install' type programs) on the first disk of the split files. +----------+ | Examples | +----------+ For Archive Files ----------------- Here are some examples on the use of ZCP for archive files: C:\WORK>ZCP workdata The above example will break out files from WORKDATA that will be equal to or smaller than the size of a file that would fit on a 3.5" HD disk. It will also save the original file. WORKDATA can be a Arc, Arj, Hyp, Lzh, or Zip file. ZCP will automatically detect the file by it's filename extension. ZCP will not process the file if there are two or more WORKDATA files with any combination of extensions; Arc, Arj, Hyp, Lzh, or Zip. If WORKDATA doesn't have one of the support file extensions (or any extension) then ZCP will default to sizing as an *.ZC file. C:\WORK>ZCP 123data.zip /5L /E The above example will break out files from 123DATA.ZIP and these files will be equal to or smaller than what would fit on a 5.25" low density disk. It will delete 123DATA.ZIP when it is done. C:\WORK>ZCP 123data.zip /S:360 /E The above example will work exactly as the previous example. The only difference is the use of the /S: parameter instead of /5l. C:\TELIX\UL>ZCP e:\games\biggame.lzh 200000 The above example will break out files from E:\GAMES\BIGGAME.LZH and these files will be equal to or smaller than 200,000 bytes. The original file, E:\GAMES\BIGGAME.LZH, will be saved as well. Also, the new LZH files will be created in C:\TELIX\UL. C:\EXCEL\XLS>ZCP XLSHEETS.LZH /s:1.44 /d:a: The above example will break out files from XLSHEETS.LZH. The new files will fit on a 1.44MB floppy. The files will be created on drive A:. When the floppy is filled with a file, Zip Chunker Pro will prompt for a formatted blank disk for the next file. The original file will be saved. This process requires NO hard disk space, only formatted blank floppy disks. Also, ZCP will check to determine if the size you specified matches type of floppy hardware is available. At any prompt you can press Esc to abort the process. +----------+ | Examples | +----------+ C:\CLIPART\PICS>ZCP CA-PICS.ARC /s:1.44 /f The above example will break out files from CAP-PICS.ARC. The new Arc files when uncompressed will fit on a 1.44MB floppy disk. The original file will be saved. This process requires NO hard disk space, only formatted blank floppy disks. Also, ZCP will check to determine if the size you specified matches type of floppy hardware is available. At any prompt you can press Esc to abort the process. C:\WORK>ZCP accounts /S:360 /K The above example will process the ACCOUNTS.ARJ file and keep the backup files in the file. If you wanted to delete the backup files, you would not use the /K option. For *.ZC Files -------------- C:\WORK>ZCP bigdb-1 The above example will display the *.ZC file information for the BIGDB-1.ZC file. Note: the file extension is optional. C:\WORK>ZCP bigdata.db The above example will size the BIGDATA.DB file into *.ZC files. The new *.ZC files will be created in the C:\WORK directory. BIGDATA.DB will not be erased when processing is completed. C:\WORK>ZCP data.lzh /z The above example will size the DATA.LZH file into *.ZC files. The new *.ZC files will be created in the C:\WORK directory. Note: the /Z option over-rides the normal LZH file sizing. DATA.LZH will not be erased when processing is completed. C:\WORK>ZCP bigdata.db /d:a: /s:1.44 The above example will size the BIGDATA.DB file into *.ZC files. The new *.ZC files will be created on the A: drive (if A: is a 1.44MB drive). Zip Chunker Pro will prompt for new disks. This option requires NO hard disk space for processing. BIGDATA.DB will not be erased when processing is completed. +----------+ | Examples | +----------+ C:\WORK>ZCP bigdb-1 /r The above example will reassemble the *.ZC files in the BIGDB-#.ZC series of file names. C:\WORK>ZCP bigdb-3 /r The above example will reassemble the *.ZC files in the BIGDB-?.ZC series of file names. Note: Zip Chunker Pro will start at the first file name in the series even though the file above is not the first file. C:\WORK>ZCP bigdb-1 /r /d:d:\access The above example will reassemble the *.ZC files in the BIGDB-?.ZC series of file names. The created file will be placed in the D:\ACCESS directory. C:\WORK>ZCP a:bigdb-1 /r The above example will reassemble the *.ZC files from the A: floppy drive. When ZCP needs another disk, it will prompt for it. Miscellaneous Zip Chunker Pro will not allow you to process a file if there isn't enough free disk space available. If Zip Chunker Pro finds a file in the original archive file that is larger than the maximum size specified, it will give you the option of continuing to process the archive file. The result of this type of operation is that there will be some files that have only one file in them but they will still be larger than the maximum size. If the original file is already smaller than the maximum size then Zip Chunker Pro will tell you and not process the file. Zip Chunker Pro will in most cases be able to detect that a file passed to it is a valid archive file or not. It will not be able to detect if the internal files have been corrupted, though. Zip Chunker Pro CAN handle password encrypted files and retain the password in ZIP files. It can also retain the encryption and password for 'garbled' ARJ files. +----------------------------------+ | Zip Chunker Pro Programming Info | +----------------------------------+ Zip Chunker Pro will return the following DOS Error Levels when it aborts in an error state: 1. Out of memory. 2. Incorrect [max size] for floppy drive specified. 3. Can't open file. 4. Zip file is corrupt/invalid or multi-volume. 5. Can't process multi-volume Zip files. 6. File version isn't compatible with Zip Chunker Pro. 7. File is already an *.ZC file. 8. The requested max size will create too many files. 9. File is not an *.ZC file. 10. Process aborted. 11. There isn't enough disk space available to process file(s). 12. The internal data of this *.ZC is corrupt/invalid. 13. Arc file is corrupt/invalid. 14. Lzh file is corrupt/invalid. 15. A file exists that ZCP wanted to create. 16. Couldn't find the requested file. 17. The file name given isn't specific enough. 18. The [max size] value is invalid. 19. Arj file is corrupt/invalid. 20. Can't process multi-volume ARJ files. 21. Can't process Secured ARJ files. 22. Hyper file is corrupt/invalid. 23. Unknown/All other errors. This is the format of *.ZC file header (in C notation): struct as_header { unsigned long signature; // always 0x10af5341 unsigned short version; char file_name[13]; struct ftime file_date_time; // Borland C++ ftime struct unsigned short file_attributes; unsigned long this_file_size; unsigned long total_file_size; unsigned long this_file_num; unsigned long total_file_num; unsigned long crc32; unsigned long original_crc32; }; // short is 16 bit number // long is a 32 bit number This header will always be present at the beginning of an *.ZC file. Technical Data Zip Chunker Pro (DOS) was written entirely in C/C++ using Borland C++ 4.5. This is a partial explanation of ZCP's speed and size. The other main reason for ZCP's speed and size is that I access the Zip file directly vs. making calls to the PKZip software. Zip Chunker Pro (OS/2) was written entirely in C/C++ using Borland C++ 2.0 for OS/2. Zip Chunker Pro (Win32) was written entirely in C/C++ using Borland C++ 4.5. Technical Support For technical support I (Scott Jibben) can be reached at the following on-line systems: The Warehouse BBS: 612-379-8272 1200-57600 baud V.32bis/HST 16.8K (N81) - 10 Lines. The Warehouse is my first (main) line of support. Since I am a co-sysop of this BBS, I usually log on several times a day to check for email. This BBS is a subscription BBS, however anyone logging on will receive access rights to the file area where my software can be downloaded for FREE and a message area that is dedicated to my software. CompuServe: My CompuServe ID is 72657,3303. Feel free to send me an E-Mail any time. I usually log on to CompuServe at least once a day. FidoNet: The Warehouse BBS is FidoNet Address, 1:282/115. FREQ 'JSWCAT' for a catalog of Jibben Software's latest releases. Internet: My Internet/UUCP address is: 72657.3303@compuserve.com Acknowledgments I would like to thank those people that have assisted me in the development of this software: Travis Carter and Randy Clark, sysops of the Warehouse BBS, for testing the software and providing a message forum for supporting software written by me. Chris Edmonson, who gave me some valuable insight on various methods of designing the dynamic memory allocation code. Robert Jung, author of ARJ, for testing ZCP to ensure it works properly with ARJ archive files. Robert also gave me some timely information regarding how ARJ files are organized, etc. Steve Lee (publisher of PC Shareware Magazine) and Steve Townsley (CompuServe sysop for the UKSHARE forum) for testing ZCP with new versions of PKZip and for giving my software such good exposure in the U.K. Keith Ledbetter, author of the BEST file finding utility money can buy; Supersonic Search Tool (SST), for providing valuable information about the internal file formats of several archiving software packages. This saved me valuable time and effort. Kenjirou Okubo and Haruyasu Yoshizaki (Author of LHA) for testing ZCP to ensure it works properly with LHA archive files. Bob Ostrander, editor of Public Brand Software, for testing ZCP to make sure that it worked, specifically the /F option. My wife, daughter and son, for the patient support and active involvement in getting this business rolling. Finally, all of the people who've registered my software. I really appreciate it! Disclaimers, etc. Jibben Software specifically disclaims all other warranties, expressed or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, functionality or data integrity. In no event shall Jibben Software be liable for any loss of profit or any other commercial damage, including but not limited to special, incidental, consequential or other damages. Borland is a registered trademark of Borland International, Inc. PKWARE, PKLITE, PKZIP and PKUNZIP are registered trademarks of PKWare Incorporated.