ivagor, можете взглянуть что может быть не так?
Пробую применить ваш распаковщик LZSA1 для картриджа УКНЦ.
В некоторый момент распаковщик вычисляет не ту длину для копирования.
Исходные данные до запаковки - HWYENC.SAV начиная с адреса 512. = 0x200;
запакованный поток (проверен штатным LZSA1-распаковщиком на валидность) - HWYENC.BIN, тоже начиная с адреса 512. = 0x200;
проблема возникает со значением по адресу 30157(octal) = 0x306F, туда должно попасть значение 0x8A, а получается 0xFD, ну и дальше конечно уже все данные распакованы неверно.
Во вложении архив с этими файлами, плюс стейт-файл к эмулятору UKNCBTL, отладчик стоит перед вычислением длины и копированием как раз этого фрагмента.
Там же LST-файл от компилятора чтобы понимать что где.
Может это конечно я где-то налажал с ручным переносом кода, но вроде бы всё проверил несколько раз.





Ответить с цитированием