
Сообщение от
Максагор
АТМовскую версию проверял?
С неё и начал. Так было:
0000000060: 00 0F 02 00 04 FF 00 FF | 48 00 01 81 00 FF FF 00
По #67 нагло лежит #FF.
И файлы одной версии из разных источников нередко разные.
Оригинальная версия 3.03 должна весить 14848 байт, однако размер нередко округлён до кратного 512 или 1кб, лишнее забито мусором. На ретроархиве лежит битый файл, по #2E00 там 48 мусорных байтов = #40.
И версия от АТМ ничем особым не отличается, побайтово она совпадает с другими (кроме настроек и переменных).
А по адресу #1С0 там кусочек ламерского кода, push/pop de явно лишние.
Код:
01C0 F5 push af
01C1 D5 push de
01C2 7B ld a,e
01C3 FE60 cp 60
01C5 DACA01 jp c,01CA
01C8 D620 sub 20
01CA D1 pop de
01CB 5F ld e,a
01CC F1 pop af
01CD C30500 jp 0005
Это типа из строчных делают заглавные.
Поставил брекпойнт в эмуле - ни разу не сработала. В файлах из других источников (не АТМ) - по этим адресам #FF.
До кучи, чтобы не пропало:
Шахматы sargon.com работают не у всех.
Ибо по адресу #2797 в цикле exx : call : exx : djnz вызывается
conout, которая может портить BC'. И получается мёртвый цикл.
У меня так было.
Решение: exx/exx заменить на push/pop bc.
Патч:
SARGON.COM
00002697: D9 C5
0000269D: D9 C1
Для поисковых роботов: этот патч исправляет зависание игры SARGON на некоторых версиях CP/M-80.