PKlib contains x86 16-bit Assembly sources for the PKWARE-style data compression library (Implode/Explode) and example programs demonstrating how to call the compression/decompression routines from assembly. These are historical sources (circa early 1990s) intended as reference or for educational use.
- Turbo Assembler (
tasm) and Turbo Linker (tlink) as used by the supplied build scriptASM.BAT. - A DOS/16-bit development environment (or an emulator like DOSBox) to assemble and run the examples.
From the src/ directory run the provided batch file to assemble and link the example programs:
cd src
ASM.BATASM.BAT calls tasm/tlink to assemble EXAMPLE0.ASM/EXAMPLE1.ASM and IMPLODE.ASM and link the executables.
- The examples read
TEST.IN, compress it toTEST.CMPusingImplode, then decompress toTEST.EXTusingExplode. - To run the examples, place a test input file named
TEST.INinsrc/and run the produced EXE(s) in a DOS environment or emulator.
src/IMPLODE.ASM- compression implementation (main library source).src/EXAMPLE1.ASM- example program that callsImplodeandExplode(shows how to supply read/write callbacks).src/ASM.BAT- build script usingtasmandtlink.src/TEST.IN,src/TEST0.BAT,src/TEST1.BAT- test inputs and helper scripts.
These sources include code labeled as "PKWARE Data Compression Library" (copyright notices present in the example sources). The repository does not add or change licensing information. Before using or redistributing this code, confirm copyright and licensing with the original owner (PKWARE) or ensure your use complies with applicable laws.
If you want help modernizing, porting, or documenting these sources (for example porting to a modern assembler or extracting the algorithm), open an issue or a PR describing the intended change and target environment (DOSBox, cross-compile, etc.).
If you'd like, I can:
- Add a short
BUILD.mdwith exacttasm/tlinkflags used byASM.BAT. - Create a small DOSBox run script to assemble and test automatically.
- Extract a concise API reference showing the
Implode/Explodestack parameters.
Choose one and I'll proceed.