Пожалуй самый сильный упаковщик для msx на данный момент - shrinkler. Для него сделали раcпаковщик для z80. И еще есть модификация совместимая с R800 и пригодная для размещения в пзу.
Сделал свою модификацию:
1. Оптимизировал по мелочи, чуть сократил и ускорил.
2. Убрал самомодификацию, но не как uniabis, а с учетом быстродействия.
3. Добавил инициализацию переменной d2, стало можно вызывать распаковщик много раз. Если добавить инициализацию d2 в оригинальную версию, то она будет 209+5=214 байт, версия без самомодификации увеличится с 211 до 215 байт, у меня - 212 байт.
4. В варианте для R800 заменил умножение на аппаратное, с ним распаковщик стал еще быстрее и компактнее. Можно отметить, что если для z80 на частотах 3.5 да и 7 МГц shrinkler все же тяжеловат, то на R800 работает с приемлемой скоростью.