Compress version 4.0 improvements: o compress() speedup (10-50%) by changing division hash to xor o decompress() speedup (5-10%) o Memory requirements reduced (3-30%) o Stack requirements reduced to less than 4kb o Removed 'Big+Fast' compress code (FBITS) because of compress speedup o Portability mods for Z8000 and PC/XT (but not zeus 3.2) o Default to 'quiet' mode o Unification of 'force' flags o Manual page overhaul o Portability enhancement for M_XENIX o Removed text on #else and #endif o Added "-V" switch to print version and options o Added #defines for SIGNED_COMPARE_SLOW o Added Makefile and "usermem" program o Removed all floating point computations o New programs: compressdir - compress all files on a directory uncompressdir - uncompress all files on a directory zcmp - cmp compressed files zdiff - diff compressed files The following are with thanks to philabs!per: btoa - convert binary to ascii for mailing atob - convert ascii to binary with checksum tarmail - tar, compress, btoa, and mail files untarmail - restore "tarmail" files WARNING: These last few programs are not compatible with the original ones from the net. The encoding has changed. See btoa.c for more info. The "usermem" script attempts to determine the maximum process size. Some editing of the script may be necessary (see the comments). If you can't get it to work at all, just create file "USERMEM" containing the maximum process size in decimal. The following preprocessor symbols control the compilation of "compress.c": o USERMEM Maximum process memory on the system o SACREDMEM Amount to reserve for other proceses o SIGNED_COMPARE_SLOW Unsigned compare instructions are faster o NO_UCHAR Don't use "unsigned char" types o BITS Overrules default set by USERMEM-SACREDMEM o vax Generate inline assembler o interdata Defines SIGNED_COMPARE_SLOW o M_XENIX Makes arrays < 65536 bytes each o pdp11 BITS=12, NO_UCHAR o z8000 BITS=12 o pcxt BITS=12 o BSD4_2 Allow long filenames ( > 14 characters) & Call setlinebuf(stderr) The difference "usermem-sacredmem" determines the maximum BITS that can be specified with the "-b" flag. memory: at least BITS ------ -- ----- ---- 433,484 16 229,600 15 127,536 14 73,464 13 0 12 The default is BITS=16. The maximum bits can be overrulled by specifying "-DBITS=bits" at compilation time. WARNING: files compressed on a large machine with more bits than allowed by a version of compress on a smaller machine cannot be decompressed! Use the "-b12" flag to generate a file on a large machine that can be uncompressed on a 16-bit machine. The output of compress 4.0 is fully compatible with that of compress 3.0. In other words, the output of compress 4.0 may be fed into uncompress 3.0 or the output of compress 3.0 may be fed into uncompress 4.0. The output of compress 4.0 not compatable with that of compress 2.0. However, compress 4.0 still accepts the output of compress 2.0. To generate output that is compatable with compress 2.0, use the undocumented "-C" flag. Check the Makefile, then "make".