Spirit не работает под AmigaOS 3.5 из-за небольшого бага - неправильного условного ветвления. Исправляется это очень легко. Найдите любым дебаггером следующий кусок кода:
43EDFFF2 lea -$E(a5),a1
; a1 теперь указывает на строку "« SetPatch »"
4EAEFDAE jsr _LVOFindSemaphore(a6)
4A80 tst.l d0
670A beq.s $7668BB8C
2040 movea.l d0,a0
0C68002B003A cmpi.w #$2B,$3A(a0)
; $2B = 43
6F06 ble.s $7668BB92
Вот, собственно, и баг - ветвление происходит, если версия SetPatch'а меньше или равна 43. В AmigaOS 3.5 версия SetPatch'а уже 44, поэтому нам надо значение сответствующей ячейки изменить с $6F06 на $6C06, которое соответствует команде bge.s. Теперь осталось только произвести эту замену в экзешнике любым hex-редактором, и дело сделано.
|