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).