С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Lethargeek (13.04.2020)
Вот когда сумеете сократить размер менее 14-ти слов, тогда и поговорим
manwe.pdp-11.ru
ivagor, можете взглянуть что может быть не так?
Пробую применить ваш распаковщик LZSA1 для картриджа УКНЦ.
В некоторый момент распаковщик вычисляет не ту длину для копирования.
Исходные данные до запаковки - HWYENC.SAV начиная с адреса 512. = 0x200;
запакованный поток (проверен штатным LZSA1-распаковщиком на валидность) - HWYENC.BIN, тоже начиная с адреса 512. = 0x200;
проблема возникает со значением по адресу 30157(octal) = 0x306F, туда должно попасть значение 0x8A, а получается 0xFD, ну и дальше конечно уже все данные распакованы неверно.
Во вложении архив с этими файлами, плюс стейт-файл к эмулятору UKNCBTL, отладчик стоит перед вычислением длины и копированием как раз этого фрагмента.
Там же LST-файл от компилятора чтобы понимать что где.
Может это конечно я где-то налажал с ручным переносом кода, но вроде бы всё проверил несколько раз.
hobot (24.04.2020), ivagor (23.04.2020), Oleg N. Cher (24.04.2020)
nzeemin, спасибо за багрепорт! Ошибку нашел, исправил, но не проверил на Вашем файле, извините, может уже завтра, но надеюсь будет работать правильно.
hobot (24.04.2020), nzeemin (23.04.2020), Oleg N. Cher (24.04.2020)
Выложил в репозиторий исправленные распаковщики LZSA1 и LZSA2.
nzeemin (24.04.2020), Oleg N. Cher (24.04.2020)
Потестировал LZSA2 на своей программе ST0play. Размеры:
Было: 11244
Стало: 5746
Для сравнения BKpack: 6006
LZSA1 тоже работает.
Для распаковки предлагаю дописывать в начало:
Здесь 1000 - куда распаковывать программу, 32000 - адрес упакованной программы. Понятно, что распакованный файл не должен выходить за адрес 32000.Код:.LINK 32000 BEGIN: MOV #32000+(packed-BEGIN),r1 MOV #1000,r2 MOV r2,-(SP)
Сразу после такого начала идёт процедура распаковки. По RET она переходит на адрес 1000, потому что он был заранее положен в стек.
Последний раз редактировалось Manwe; 24.04.2020 в 19:34.
manwe.pdp-11.ru
Oleg N. Cher (25.04.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)