http://www.msx.org/forumtopicl8069.html

Hi all, I'm new here! I'm from the Spectrum scene, but I think
this is good news for all Z80 coders.


After I finished working on optimizing aPLib's decoder, I was
told that pucrunch did compress better, and while looking for
info about pucrunch (it turns out that sometimes aPLib wins,
but most times pucrunch is a bit better), I found another packer
that clearly beats both on compression: exomizer 2.

http://hem.bredband.net/magli143/exo/

Since there was no Z80 decompressor, I made it, and also made an
optimizer to take the output and remove two unneeded bits and
rearrange the bit organization, so depackers can be optimized a
bit more.

The depackers sizes are between 169-190 bytes, and they also need
space to generate a table of 156 bytes, but that table can be
discarded after the decompression is done, so if you place it in a
buffer it shouldn't take any extra memory. Speed is slow, because
the algorithm is complex.

http://www.speccy.org/metalbrain/exo_v3.zip

The normal versions of the depackers use the output from exomizer,
in raw mode forwards, so you produce the data file with command line:

exomizer raw -o output input

The optimized versions also require to use my optimizer, so the
command lines would be:

exomizer raw -o temporal input
exoopt temporal output

As for the difference between deexo.asm and deexo_simple.asm, the
simple version requires the table to be aligned in a 256 boundary,
and doesn't handle literal sequences (which are rare, and you may
also force exomizer not to generate them using the parameter -c).