
 Program Name:  Crunch

        Usage:  Crunch outputfile[.arc] [inputfile [...]]

      Purpose:  Create archive files using LZW 12-bit compression that are
                compatible with those produced by PKWare and SEA programs.


Program Notes:

    *  This program does NOT update or freshen an archive.  It can only be
       used to create NEW archives!

    *  If no input file specifications are provided on the command line, the
       program assumes *.*

    *  Only two stowage methods are supported by this program...they are

            Crunching:  Input is first "packed" to remove repeated character
                        sequences and is then compressed using 12-bit LZW
                        compression techniques.  Adaptive resets of the
                        algorithm's code table may also be utilized.

              Storing:  The input file is copied into the archive with no
                        compression applied.

    *  Files will be "stored" in the resulting archive if the program's
       crunching routine does not produce a smaller result.

    *  13-bit "squashing" has not been implemented in this program.  It has
       been left as an exercise for the student (see the file Squash.How for
       some hints on how to proceed).

    *  I originally wanted to release full Turbo Pascal source code for the
       program.  Unfortunately, the "all TP" version was slower than
       mollasses on a cold day.  I therefore re-coded several routines
       within the program using inline assembler.  The asm stuff is heavily
       commented, but if it still looks like gobbledygook to you, I
       apologize.  The intent was to release this package as both an
       educational tool and as a program that did useful work.  The only way
       that the second objective could be realized was to replace certain
       critical routines with something a little faster than what the TP
       compiler could provide.

    *  Be careful...this TP 5.0 program was compiled with the "force far
       calls" option turned ON.  The inline routines rely on this fact. If
       you compile with this option turned OFF, the results will be
       unpredictable.

    *  The author of the programs contained within CRUNCH10.ARC makes no
       claim as to the correctness or suitability of these programs for any
       particular purpose whatsoever.  If you use these programs or the
       algorithms from which they were derived, you must assume all
       responsibility for the consequences of that use.

    *  The routines presented in Crunch.Pas were derived from the lzcomp.asm
       and lzdcmp.asm programs written and released by Tom Pfau back in
       1985.  The programs in this archive are yours...do with them what you
       will, but please note that System Enhancements Associates (SEA)
       regards ARC as their trademark.  Should you wish to use the Crunch
       source code in your own program, I suggest you contact SEA for
       licensing details and restrictions.  I WILL NOT ACCEPT any
       responsibility for any legal problems that may arise as a result of
       the use or misuse of the ARC processing code contained in Crunch.  I
       do not have any agreement myself with SEA;  SEA has indicated that
       public domain programs may process .ARC files without any
       restrictions.


                                                  Richard P. Byrne (rpb)
                                                        12/15/88

