Без изменения порядка байт:
bitrev.zip
Без изменения порядка байт:
bitrev.zip
Последний раз редактировалось lexarr; 27.01.2025 в 13:09.
ivagor(30.03.2022)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Спасибо! Еще и компактнее, собственный вариант у меня получился 9.5 Кб, а тут 3.5
При адаптации z80->8080 один из вопросов - во сколько раз увеличится размер? Можно попробовать оценить для такой задачи, как распаковщики LZ(+). Если взять zx0 и zx2, которые долго и упорно оптимизировал именно по размеру, то они разбухли в 1.33 и 1.35 раз соответственно. Текущий derip8080 в 1.38 раз больше deripz80, похоже это говорит о том, что он не так далек от предела.
Выложил derip8080 на гитхабе. Как уже писали ранее, по степени сжатия упаковщик Eugene85 между zx0 и shrinklerом. По скорости распаковщик в 4 раза медленнее zx0 и намного быстрее шринклера. Размер распаковщика 317 байт, можно сократить на 4 байта, но замедлится на 17%, поэтому не стал. И не забывайте после компрессии ripом битреверсить файл, например утилитой lexarr.
Improver(09.04.2022), lexarr(22.04.2022), Oleg N. Cher(10.04.2022), svofski(09.04.2022)
В упаковщик rip непосредственно встроена функция реверсинга битов.
Последний раз редактировалось lexarr; 27.01.2025 в 18:36.
ivagor(11.04.2022), Oleg N. Cher(10.04.2022)
После долгого перерыва попробовал улучшить zx0. Сократить не получилось, зато чуть-чуть ускорил. Обратите внимание, что адрес упакованных данных теперь в DE, не в HL (стало единообразно с zx1). Еще немного дополнил текстовую преамбулу, указал опции для упаковки и чем компилировать. Распаковщик нового формата для 8080 по-прежнему на байт длиннее и чуть медленнее, поэтому выкладываю только для "классики".
Improver(01.05.2022), Oleg N. Cher(01.05.2022), parallelno(04.07.2022)
Дошли руки и до zx1. Новая версия на 2% быстрее, теперь безоговорочно опережает даже самый быстрый вариант распаковщика megalz для 8080, который почти в два раза больше, и сжимает megalz похуже. Размер прямой версии не изменился, обратная укоротилась на 2 байта.
Improver(04.05.2022), Oleg N. Cher(03.05.2022), svofski(11.05.2022)
Накопились обновления DeLZSA и DeZX, теперь и на гитхабе.
LZSA1 - ускорил быстрый вариант, но он стал побольше. Компактную "прямую" версию сократил на байт.
LZSA2 - добавил вариант с самомодификацией, он немного короче и быстрее. Вариант без самомодификации сократил на байт.
ZX2 - чуть ускорил вариант с опцией -y
ZX5 - немного сократил
Давно надо было прорекламировать альтернативный архиватор для формата zx0 - salvador
Он решает основную проблему оригинального упаковщика - сжимает радикально (на порядки!) быстрее, его можно спокойно включать в автоматическую сборку промежуточных вариантов и при этом не терять время. salvador почтиоптимальный, но иногда даже чуть опережает оригинальный оптимальный упаковщик, что вызывает вопрос к оригиналу. Автор пишет о 0.02% разницы в среднем. salvador поддерживает ограничение размера окна поиска совпадений, можно сделать потоковый распаковщик с циклическим буфером. Еще бы добавить ограничение на длину последовательности литералов и поддержать zx1/2 и стало бы совсем хорошо.
Improver(20.06.2022), nzeemin(21.06.2022), Oleg N. Cher(06.07.2022), parallelno(04.07.2022), svofski(20.06.2022)
ivagor, перечитал все ветку на одном дыхании. Как захватывающий фильм.Ты проделал огромную работу! Спасибо!
Спасибо на добром слове, но основной респект конечно авторам современных архиваторов для ретрокомпов. Ну и некоторым авторам распаковщиков, которые высоко устанавливают планку и дают примеры, как ее преодолеть.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)