Минус FCU для нас сейчас в том что сишного запаковщика/распаковщика нет. Теперь только если реверсить из MACRO-11 кода.
Минус FCU для нас сейчас в том что сишного запаковщика/распаковщика нет. Теперь только если реверсить из MACRO-11 кода.
hobot(23.10.2019)
В архиве FCU_PLUSPLUS есть AEUK.SAV и LEUK.SAV, которые согласно описанию распаковывают ARJ и LHA. Если это действительно так, то по крайней мере для LHA есть исходники упаковщика. Для ARJ наверняка тоже есть, просто я не искал. Все LZ+Хаффман (arj, lha, zip и, скорее всего, fcu) примерно одинаковые по степени сжатия и сложности распаковщика. Т.е. все они сложнее и медленнее LZSA, их распаковщик больше по размеру и они требуют место под таблицу.
Победить их по степени сжатия сможет LZMA, например shrinkler, на для его нормального использования нужно быстрое умножение.
Умножение (требуется беззнаковое!), да полезно...Но это только одна проблема, - там регистров рабочих в алгоритме распаковке в два раза больше, чем есть у pdp11, а значит нужно их спиливать в стек, либо использовать модификацию кода. Плюс необходимость памяти под контекст (~3 Кбайт).
Я бы разделил вопросы скорости и принципиальной реализуемости. Ключевой момент для скорости - быстрое умножение. Много регистров, конечно, тоже нужно, но раз получилось сделать даже для 8080, то для PDP11 получится (если задаться целью) не хуже. Но версии для 8080 (да и для z80) очень медленные. Для R800 и 8088/86 работают почти приемлемо.
Необходимость выделения 2.5 Кб под таблицы не добавляет привлекательности shrinklerу, но тут все зависит от задач.
Последний раз редактировалось ivagor; 24.10.2019 в 06:56.
Насчет самомодификации. В LZSA2 можно на слово сократить, если хранить повторно используемое смещение в самой команде, но я пока не стал так делать.
Сократил распаковщик LZSA2 на 20 байт и немного ускорил, LZSA1 сократил на 2 байта.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ребят, мне бы для тестирования кросс-линковщика получить от вас что-нибудь на Фортране и Паскале - можно просто в форме набора .OBJ-файлов + команда для LINK, исходники НЕ нужны. В общем, ищу сложные случаи линковки.
hobot(06.11.2019)
в архиве два файла - программа и библиотека от нужной версии Паскаля,
на выходе после LIN DWKQCO, PASDWK, полученный SAV - выводит символьную
эмблему название инициативной группы (участником которой ты так же являешься,
ув. Никита), подойдёт?
nzeemin(06.11.2019)
у меня предложение прогони тесты из поставки Фортрана77, системы Грей, что то на форуме было под библиотеку от form'а RSXLIB.OBJ - у меня вот так нахрапом ничего "многобиблиотечного" нет.
Вот другой участник ИГ оформит библиотеки и редактор для работы со спрайтами в Паскале для УК-НЦ - будут )
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)