************************************************************* ************** ===RKIVE file archiver=== ************** ************************************************************* Copyright (c)1996 Malcolm Taylor All Rights Reserved RKIVE is a high performance shareware file archiver which uses many of the latest techniques to gain a high level of compression while maintaining a reasonable decompression speed. This is version 1.90beta1 - released on 30th September 1997. THIS IS A BETA VERSION AN AS SUCH MAY CONTAIN BUGS. USE THIS ARCHIVER AT YOUR OWN RISK, THE AUTHOR WILL NOT TAKE ANY RESPONSIBILITY FOR BUGS ERRORS OR OMISSIONS. * Features: RKIVE now supports a full range of standard archiver features - these are: - Support for file attributes. - Support for file date/time stamps. - Support for CRC32 checksums to verify file integrity. - Support for Win95 long filenames. - Better compression than almost any other archiver. - Environment variable argument passing. * Requirements: This program will run on any 386 or better computer. 4Mb of memory is required but 16Mb is recommended for the high compression modes. Note that the -mtx mode currently requires 32Mb of memory. This may be changed in future versions hopefully. * Format and future: The format and compression algorithm being used by RKIVE changes significantly between versions as I investigate ways of improving the compression. Because of this, the versions are not backwardly compatible and will probably never be. This is a beta version and as such many features args etc. used will be changing significantly in future versions. * Shareware info: Being a beta version I'm not asking for registrations. If you like it then just send some e-mail. This will almost definitely change once I release the full version 2.00. * Legal info: As I stated above: The Author takes no responsibility for any damages resulting from the use or misuse of this program. USE THIS PROGRAM AT YOUR OWN RISK. This software is Copyright (c) 1996,1997 Malcolm Taylor, all rights reserved. Having said this if you have any problems then please feel free to contact me at the e-mail address below. * Usage: The usage of the archiver is fairly self explanatory: rkive [options] filename[.rkv] [files ... @list] The options are: -c to compress (defaults to this if no options given). -e to expand without paths. -x to expand with paths. -i to perform an integrity check. -v[v] to view the files. v - verbose listing. -r recurse through sub-directories. -p[0,r,f] store pathnames: 0 - no pathnames. r - relative pathnames (default). f - full pathnames. -ed[0] stores empty directories 0 - don't store them. -s[0,t,e,n] sets the sorting method to: 0 - no sorting. t - sort by file type. e - sort by extension. n - sort by name. a - sort by analysis (default). -m[f,b,t][x] sets the compression mode (see below). -mm[0..2] sets the multi-media compression mode to: 0 - no multi-media compression. 1 - file-type selected multi-media compression. 2 - forced all files multi-media compression. -j[rsh][+-] includes files with given attributes. -tNNNN sets the table size (sets compression level). -bNNNN sets the buffer size (see below). After the options come the archive filename and then the list of files for the given operation. A file containing a list of files to compress can also be used by prefixing the list's filename with '@'. * Compression modes: There are four main compression modes that have been designed to give a wide range of speed and compression. These are: -mf This mode is the fastest mode, sacrificing compression ratio to gain better speed (despite this the compression is often better than many other popular archivers). -mb[x] This is the default mode, and is best on binary files. On all files this gives the best compression for a reasonable speed. -mt[x] These modes both require 16Mb of physical memory to perform at their top speed, otherwise they can often be significantly slower. These modes both give excelent text compression, however on some binary file types (most notably executables and object code) they perform about 1% worse than -mb. -mtx This mode currently uses 32Mb but it achieves compression close to the best in the world. The price for this is a slow down from previous versions from 2-4x! This will hopefully change in the future though. There are also options available to change the sizes of internal tables, allowing slightly better compression in some cases. In most cases changing these values has a slight negative effect, so these are normally best left alone. The most likely case in which these have a positive effect is when archiving large (>5MB) filesets that are largly similar (source archives etc.) In this case raising both these will often increase compression, sometimes significantly, however it also uses more memory. * Examples of use: rkive archive *.txt *.exe @list This will compress all *.txt, *.exe and the files listed in the file 'list' to the archive file archive.rkv using the default binary mode. rkive -jr+s-h -mtx archive *.txt *.doc "Win95 long name.txt" This will compress all *.txt, *.doc and the file 'Win95 long name.txt' including files with the read-only attribute and hidden attribute but not files with the system attribute to the archive file archive.rkv using the max-text mode. rkive -x archive This will extract all files in archive including any stored pathnames. NB. There does not need to be any files listed to extract, as in this case all files are extracted. * Memory: Given below is a list of the approximate memory requirements for each mode. Mode Mem use -mf 4-5Mb -mb 7-8Mb -mbx 14-16Mb -mt ~7Mb -mtx ~30Mb If you do not have this much available memory (ie. free _PHYSICAL_ memory) then speed can be significantly hurt. The archiver should still function though (under Windows you must have enough memory allocated to the dos session as DPMI memory or else you may run out of memory during compression). It may warn you correctly if you don't have enough memory, but don't trust this as it hasn't been finished or tested :) Note that these numbers are very approximate at present. * Environment variable: Whenever RKIVE is executed it looks for the environment variable 'RKIVE_OPT' and parses the value of this variable as though it were command line arguments. This enables the default behaviour of RKIVE to be changed, or favourite modes to be set automatically. Any arguments in the environment variable can be overridden on the command line. eg. SET RKIVE_OPT=-p0 -sn -mt Will make RKIVE use the text mode, store no paths and sort by name by default when rkive is next executed. * Contact info: You can contact me if you have any advice, comments or requests for info via the Internet at: mtaylor@clear.net.nz My snail mail address is: Malcolm Taylor 19 Koromiko Road Wanganui New Zealand * Acknowledgments: I'd like to acknowledge some people for their help in creating RKIVE. The most notable is Charles Bloom without whose helpful pointers, information and homepage I would never have been able to write RKIVE. Philip Lai and Joe Negron need special thanks for the generous donation of their time in testing pre-release versions of RKIVE and helping me locate bugs. Thanks to Ian Sutton for discussing ideas, many of which lead me to this latest compression improvement. Also thanks to Szymon Grabowski for sharing many ideas on multi-media compression. The fruits of these discusions should be visable in the next release! A general thanks as well to all others who have sent me mail about bugs or suggestions for new features.