I consider this code "a small masterpiece of 8086 assembler programming", unlike LZEXE's online depacker which buffers the entire depacked data. This code enables streaming decompression with a buffer exactly the size of the match window, for arbitrarily large streams of data.
This is found in the code that depacks the debugger's extpak compressed Extension for lDebug library, which is included in the extpak.eld and list.eld files. The buffer size must be as small as possible to reduce the memory needed by the ELDs. Buffering the entire depacked data is not possible because that exceeds 100 KiB.
2026-03-22
2026-03-08
This week I uploaded a new branch to the lDebug repo, updating the sources to build with a makefile that assembles multiple object files, then links them using the WarpLink linker.
Comments on label delta arithmetic
Today I posted a stackoverflow question and answer on how to do arbitrary calculations on assembly language labels, How can I do arbitrary calculations on assembly language labels?. As a companion to that question, here is a collection of comments in which I have referred to label delta arithmetic before.
→ Read more...