Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / miscellany / compress-4.0 / README
1 Compress version 4.0 improvements:
2         o compress() speedup (10-50%) by changing division hash to xor
3         o decompress() speedup (5-10%)
4         o Memory requirements reduced (3-30%)
5         o Stack requirements reduced to less than 4kb
6         o Removed 'Big+Fast' compress code (FBITS) because of compress speedup
7         o Portability mods for Z8000 and PC/XT (but not zeus 3.2)
8         o Default to 'quiet' mode
9         o Unification of 'force' flags
10         o Manual page overhaul
11         o Portability enhancement for M_XENIX
12         o Removed text on #else and #endif
13         o Added "-V" switch to print version and options
14         o Added #defines for SIGNED_COMPARE_SLOW
15         o Added Makefile and "usermem" program
16         o Removed all floating point computations
17         o New programs:
18                 compressdir - compress all files on a directory
19                 uncompressdir - uncompress all files on a directory
20                 zcmp - cmp compressed files
21                 zdiff - diff compressed files
22           The following are with thanks to philabs!per:
23                 btoa - convert binary to ascii for mailing
24                 atob - convert ascii to binary with checksum
25                 tarmail - tar, compress, btoa, and mail files
26                 untarmail - restore "tarmail" files
27
28                 WARNING: These last few programs are not compatible 
29                 with the original ones from the net.  The encoding
30                 has changed.  See btoa.c for more info.
31
32 The "usermem" script attempts to determine the maximum process size.  Some
33 editing of the script may be necessary (see the comments).  If you can't get
34 it to work at all, just create file "USERMEM" containing the maximum process
35 size in decimal.
36
37 The following preprocessor symbols control the compilation of "compress.c":
38
39         o USERMEM               Maximum process memory on the system
40         o SACREDMEM             Amount to reserve for other proceses
41         o SIGNED_COMPARE_SLOW   Unsigned compare instructions are faster
42         o NO_UCHAR              Don't use "unsigned char" types
43         o BITS                  Overrules default set by USERMEM-SACREDMEM
44         o vax                   Generate inline assembler
45         o interdata             Defines SIGNED_COMPARE_SLOW
46         o M_XENIX               Makes arrays < 65536 bytes each
47         o pdp11                 BITS=12, NO_UCHAR
48         o z8000                 BITS=12
49         o pcxt                  BITS=12
50         o BSD4_2                Allow long filenames ( > 14 characters) &
51                                 Call setlinebuf(stderr)
52
53 The difference "usermem-sacredmem" determines the maximum BITS that can be
54 specified with the "-b" flag.
55
56 memory: at least                BITS
57 ------  -- -----                ----
58      433,484                     16
59      229,600                     15
60      127,536                     14
61       73,464                     13
62            0                     12
63
64 The default is BITS=16.
65
66 The maximum bits can be overrulled by specifying "-DBITS=bits" at
67 compilation time.
68
69 WARNING: files compressed on a large machine with more bits than allowed by 
70 a version of compress on a smaller machine cannot be decompressed!  Use the
71 "-b12" flag to generate a file on a large machine that can be uncompressed 
72 on a 16-bit machine.
73
74 The output of compress 4.0 is fully compatible with that of compress 3.0.
75 In other words, the output of compress 4.0 may be fed into uncompress 3.0 or
76 the output of compress 3.0 may be fed into uncompress 4.0.
77
78 The output of compress 4.0 not compatable with that of
79 compress 2.0.  However, compress 4.0 still accepts the output of
80 compress 2.0.  To generate output that is compatable with compress
81 2.0, use the undocumented "-C" flag.
82
83 Check the Makefile, then "make".