home *** CD-ROM | disk | FTP | other *** search
- ***********************************************************************
- V0.24 (TPLZH024.SQZ) or TPLZH024.exe
-
- Relocated the most commonly used array to ds:0 (8086 optimization)
-
- Tested compatibility with Turbo Pascal 7.0
- Corrected documentation of write and read assignments.
-
- Decode is now faster than Lharc on all CPU's.
-
- Added LZHASMB.obj for basic compatibility
-
- LZHMem^.Inptr no longer needs to be reset.
-
- ***********************************************************************
- V0.22ß (TPLZH022.SQZ)
-
- The current version can be compiled to use significantly less
- memory in powers of 2. For customized engines, performance
- degrades as the buffers get smaller. (A 6502 engine is currently
- being worked on using a 256 byte table)
-
- The TP 5.x+ version (LZ.pas) is now intentionally overlayed,
- And LZ.ovr needs to be in the same directory as LZ.EXE.
-
- Bug fix to the OOPS version. Actually it's a fix to a bug fix,
- because the engine automatically fills the read buffer.
- ***********************************************************************
- V0.20ß (TPLZH020.SQZ)
- Optimized insertnode.
-
- Moved array constants to the code segment, for better optimization
- when overlayed. Now, the engine uses 12 bytes of data space.
- This effectively creates a TINY module that will work with all
- languages, including pascal, which is not designed to handle
- tiny modules.
-
- Removed LZHASMC.OBJ, because the original engine is compatible
- with both C calling conventions and Pascal calling conventions.
- (No procedures have parameters, only extern and heap allocation.)
- ***********************************************************************
- V0.19ß (TPLZH019.SQZ)
- Thanks to Andres Cvitkovich, 2:310/36.9@Fidonet.Org
- for the Object oriented programming interface.
-
- Now, if you don't pre-fill the inputbuffer, the engine will do
- it for you.
-
- Added LZHASMC.OBJ, which uses C Calling convention.
- This has in no way been tested, and might be unnecessary. The
- standard object LZHASM.OBJ should work for all languages.
-
- Basic compatibility issues:
- Removed usage of underscores in all public variables.
- Basic interface is in progress.
-
- ***********************************************************************
- V0.18ß (TPLZH018.SQZ)
-
- Fixed difference in compression between the pascal version and
- my version. Would you believe the bug was a 1/16th of the size
- of the space it cost? :)
-
- Fixed the bonus bytes output on decompress.
- ***********************************************************************
- V0.17ß (TPLZH017.SQZ)
-
- Expanded Getc and putC into Macros. A later version will have
- 2 versions: LZHFast will use the .obj file with expanded macros
- and not defining LZHFast will use the tighter process that CALLS
- to getc and putc instead. The slower version need only be used
- to reduce the required size of your overlay buffer, if you use
- overlays.
-
- 8086/286 optimization.
- Minimized usage of AX,Mem and Mem,ax. This has little effect
- on 386 machines. Also in the process of optimizing the array
- swapping routines.
-
- ***********************************************************************
-
- V0.16ß (TPLZH016.SQZ)
- All variables now have the Prefix "LZHMem^."
-
- Operations now operate entirely from the heap, which reduces
- the active data segment to under 2k of memory. Some stuff resides
- in the data segment, but is copied onto the heap at the start of
- Encode or decode. Refer to the $M definition in LZ.PAS for
- memory requirements for your application.
-
- SHORTened all loops where possible.
-
- "FIXED" the I/O buffers in size to 10k, and placed them in the
- LZHMem^ structure. This is much cleaner, although buffer size is
- not as flexible. The difference in buffering doesn't matter too
- much past 2k, but for a round figure, I chose 10k.
-
- ***********************************************************************
-
- V0.15ß (TPLZH015.SQZ)
- Removed options in 0.14ß and changed memory allocation structure.
- Now minimum requirements for memory in the data segment are 6k for
- all versions. The next version will require a value somewhere
- around 1k.
-
-
- ***********************************************************************
- V0.13ß (TPLZH013.SQZ)
-
- 8086/8088/286 optimization pass:
- These changes have no effect on 386 machines
- Replaced occurances of Mov areg,0 with xor areg,areg
- Replaced occurances of CMP areg,0 with AND areg,areg
- The difference in time for each of these is 1 clock cycle per
- occurance.
-
-
- ***********************************************************************
-