       *************************************************************
       **************    ===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.92beta1 - released on 22nd February 1998.

   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 archiving features - these
   are:

         - Support for multiple volumes.
         - Support for locking archives.
         - Support for file attributes.
         - Support for file date/time stamps.
         - Support for CRC32 checksums to verify file integrity.
         - Support for Win95 long filenames.
         - 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 -mt3 mode currently requires 32Mb of memory.


* 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. currently being
   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-1998 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 as follows:

      rkive [options] filename[.rkv] [files ... @list]

      -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[atne0]     sets the sorting method to:
                       0 - no sorting.
                       a - sort by analysis of file contents.
                       t - sort by file type.
                       e - sort by extension.
                       n - sort by name.
                       a - sort by analysis (default).
      -m[fbtx][1-3] sets the compression mode (see below).
      -mm[01f]      sets the multi-media compression mode to:
                       0 - no multi-media compression.
                       1 - uses file-type to select multi-media compression.
                       f - forces all files to use multi-media compression.
      -A[rsh][+-]   includes files with given attributes.
      -tNNNN        sets the table size (see below).
      -bNNNN        sets the buffer size (see below).
      -V[NNNN][m,k] enables multiple volumes, the length of the volumes can
                    be specified, otherwise it is automatically detected.
      -P<password>  locks the archive with the password - the archive cannot
                    be accessed without it. Does not perform encryption.
      -K<password>  encrypts the archive using the password given as the
                    encryption key.
      -k<keyfile>   encrypt the archive using the key found in the file
                    specified (containing a single line hex number of any
                    length).
      -y            answers yes to all questions asked.
      -I            displays extra information while compressing.

   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 '@'.

   For decompression a destination directory can be supplied after the
   archive name. For example:
     
      rkive -x test -d c:\testdir *.c

   This will extract all the C files from test including their paths, but
   will decompress to the c:\testdir directory.

* Compression modes:

   There are four main compression modes that have been designed to give
   a wide range of speed and compression. Each mode allows for a level to
   be specified from 1 to 3.
   The modes are as follows:

   -mf[1..3]
      These modes are the fastest modes sacrificing compression ratio to
   gain better speed (despite this the compression is often better than
   many other popular archivers).

   -mb[1..3]
      These modes are often best on binary files. The -mb1 mode is the
   default mode that rkive uses.

   -mt[1..3]
      These modes give excelent text compression, with level two and three
   almost always supplying the best compression rkive can obtain on every
   data type. These modes are the slowest.

   -mx[1..2]
      These modes are there for future experimental algorithms. Currently
   they do nothing.

   There are also options available (-t[...] & -b[...]) to change the sizes
   of the internal tables and buffer that rkive uses. This allows slightly
   better compression in some cases, however in most cases changing these
   values has a slight negative effect so these options are normally best
   left alone.
   The most likely case in which these options 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 -Ar+s-h -mt3 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 level 3 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 ranging from the lowest level to the highest.

      Mode         Mem use
      -mf[1..3]     4Mb,6Mb,12Mb
      -mb[1..3]     5Mb,8Mb,16Mb
      -mt[1..3]     7Mb,16Mb,30Mb

   If you do not have this much available physical memory then speed can be
   significantly hurt. However the archiver should still function no matter
   how little memory is available as it will make use of virtual memory.

   NB. Under Windows you must have enough DPMI memory specified in the
   dos session properties otherwise rkive may run out during compression.


* 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 few releases!

   A general thanks as well to all others who have sent me mail about
   bugs or suggestions for new features.


