John North,
еще раз
hrust программа универсальная и считает что файл который она распаковывает имеет размер #a000 и находится по адресу #6000
поэтому он всегда старается переместить упакованный блок как можно дальше
что и видно на данном фрагменте исходника
но последние 6 байт упакованного файла всегда сохраняются вместе с упаковщикомDEHRUST PUSH DE
PUSH HL
берем размер распакованого блока
INC HL
INC HL
LD C,(HL)
INC HL
LD B,(HL)
INC HL
вычисляем конец распакованых данных
DEC BC
EX DE,HL
ADD HL,BC
EX DE,HL
берем длину пакованого блока
LD C,(HL)
INC HL
LD B,(HL)
DEC BC
проверяем на вероятность затирания
по умолчанию считается что блок будет загружен туда же куда будет распакован
POP HL
ADD HL,BC
SBC HL,DE
ADD HL,DE
JR C,LL4019
оставляем на месте
LD D,H
LD E,L
LL4019 LDDR
но если блок находится по адресу 60000
а распаковывать надо например заставку он этот блок трогать не будет




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