LZ 1.80 20th March, 1991 Written by Jonathan Forbes Copyright © 1990, 1991, Xenomiga Technology NOTICE I am releasing LZ 1.80 so that it will be possible for people to extract files from LHA 2.0 archives, a type of archive LZ will very soon be capable of creating. The LHA 2.0 algorithm is MUCH faster than the original at both compression and decompression, and produces significantly smaller archives. This version of LZ can extract these archives (without limitation) but cannot create them. Currently, I have no intention of releasing a public version of LZ which can create LHA 2.0 style archives; only registered versions will have this capability. Because there are no other utilities which can decompress LHA 2.0 style archives, the 60k evaluation limit has been removed from the LHA 2.0 extraction routines. The 60k limit still exists for standard Lharc 1.0 style archives, however, as an incentive for you register. The LHA 2.0 extraction routines of this version have not been optimised, and are not quick; they run at precicely the same speed as the routines of Lharc 1.3. The routines in the registered versions have been optimised, however, and are much faster than those in this version; in fact, right now, a registered version of LZ 1.80 can decompress LHA 2.0 archives much more quickly than it can decompress Lharc 1.0 style archives. In fact, registered versions of LZ may soon be able to decompress LHA 2.0 archives at up to 3 times the speed that they can decompress Lharc 1.0 archives; that's quite a speed gain! If you register your copy, not only will you receive a faster version of LZ, but you will also be able to obtain all future versions of LZ at no charge (unless you wish future versions to be mailed to you). The next release of LZ, 1.90, will be capable of creating LHA 2.0 style archives. It, and probably all future releases, will only be available to registered users. In the case of extenuating circumstances (such as a bug in LZ 1.80 preventing it from extracting certain LHA 2.0 style archives), I will release a bug fix for it, but I have no immediate plans to release a public version of LZ which can create LHA 2.0 style archives. Anything's possible, though; I might change my mind -just don't hold your breath waiting for a public version which archives in LHA 2.0. You should also note that there is a version of LZ floating around claiming to be "LZ 2.00" (the archive is named LZ200.LZH). This archive is merely the original LZ 1.00 with some text changed and the documentation modified to claim LZ is "Public Domain", which it is not. Another similar version is floating around, named "LZ100CR.LZH", although this one is less common. The use of either of these versions is not advised for several reasons, just one of them being that they are illegal versions. The original LZ 1.00 had a pretty serious bug in it which could very occasionally cause the creation of corrupted archives, especially on 68030 machines with the data cache turned on. If you see either of these versions (LZ200.LZH is by far the most common) on local BBS's, please ask the Sysop to remove it, since neither is a legitimate version. ALL future "releases" of LZ should be regarded with GREAT suspicion, since it is HIGHLY likely that future hacked up versions of LZ will surface. Versions claiming to be "Public Domain" or absolutely free, no matter WHAT the documentation says, are almost certainly hacked up versions. If there are no added features to the release, it is also almost certainly a hacked up version. More likely than not, any future versions of LZ that you see are NOT legitimate. (Small note: The update byte counter can go quite wild in this demo version for files over 32768 bytes; it's simply a side effect of something I've done with the demo version. It's nothing to worry about, and is not present in registered versions). (Registered users, note, early copies of LZ 1.80 were not fully capable of decompressing LHA 2.0 archives; please contact me for an updated version) Changes (1.80) o LZ can now extract (but not create) Lharc 2.0 style archives. LZ is the first utility available for the Amiga to do so. o The decompression algorithm has hardly been optimised at all, but it is reasonably quick (although not as fast as the Lharc 1.0 decompression algorithm). o The i/o buffers now work properly Changes (1.06) o LZ doesn't say "Melting" or "Testing" for files less than or equal to 2048 bytes in size; it will just decompress the file and say "Melted" or "Tested"; this is because decompression is almost instantaneous for small files, and displaying "Melting" or "Testing" takes time. Changes (1.05) o LZ no longer tries to set a file's comment and date when it's testing files in an archive. Changes (1.04) o Fixed minor filenote problem Changes (1.03) o Fixed bug where LZ would delete the archive being built if two or more files were missing Changes (0.91 to 1.02) o (sorry, there never was a "grevious bug" in LZ 1.00; my mistake) o Compression speed is, on average, double that of LZ 0.91, but can often more than triple LZ 0.91's performance for highly compressible files. o LZ now produces output files 3-5% smaller (on average) than other .LZH utilities. o Decompression is fractionally faster (2-3% speed increase). o User configurable screen update; previously hardcoded at 1024 for compressing and 4096 for decompressing, this is now user configurable with the -U option, and defaults to 1024 bytes for both. Thus, LZ defaults to updating the display four times as quickly as before, giving a better indication of its speed. o Two MS-DOS Pkzip lookalike modes; the pre-v1.10 swivel (which is turned on by -D1) and the v1.10 percentage display (-D2). There was no particular reason for implementing this, but it's only a couple of lines of code, so why not? o The delete function now works properly. o LZ will no longer say "** Error converting date **"; instead, it will set the date to something reasonable and be quiet. This was never a bug in the first place; LZ 0.91 was simply informing you that the date in the archive was invalid (like 29-Sep-100), something Lharc never did. Anyway, it's gone now, since some people mistakenly thought it was bug. o LZTEMP.xxxxxx files are no longer left lying around if LZ is aborted. o Files are now added in alphabetical order within their respective directories. o Fixed "file header too short" bug when decompressing files. o Fixed bug which would spuriously report a corrupted file if the file had a large filenote. o Fixed a bug involving zero length files. o LZ will no longer set the task priority of the CLI to zero upon exit. o Input/output buffer is now set by -b (in K) instead of by -i and -o (in bytes). o The -N option (no console output) now automatically turns on -m (no message query). o LZ now recognises .dms and .arj files as archives. o LZ will no longer try to add an archive to itself. o When adding files, the archive won't be deleted if it couldn't find a file (this has been a major annoyance from 0.81+) o If LZ is aborted while it is archiving, it will no longer corrupt the end of the archive (another major annoyance). o Millions of other things changed for the better. o Cosmeticisms.