Предварительный анализ показал, что поломана функция обработки движения вправо (на ней виснет эмуль)
Для движения влево, как-то так:
Code:
LDA 36309 ;A = V_X
ORA A ;IF A = 0
RZ ;RETURN
DCR A ;A--
STA 36309 ;V_X = A
LXI D 65530 ;DE =-6
DAD D ;HL = HL-6
L36923:PUSH H;PUSH HL
CALL 36379 ;
LXI H 256 ;HL =256
SHLD 36303 ;blah-blah-blah
CALL 36312
CALL 32813
CALL 36379
Для дивжения вправо вот так:
Code:
LDA 36309 ;A = V_X
CPI 7 ;IF A = 7
RZ ;RETURN
INR A ;A++
STA 36309 ;V_X = A
LXI B 49200 ;BC = 49200 -???
ADI 249 ;A = A +249 - ???
DI ;???
MOV H E ;???
MOV E H ;???
MOV H H ;???
MOV H B ;???
RNZ ;???
SHLD 36303 ;blah-blah-blah
CALL 36312
CALL 32813
CALL 36379
Код помеченый "???" не имеет смысла. Где-то "поламался" байт, а может и не один.
Олег, скорее всего, у Вас другая версия файла, или Вы никогда не использовали кнопку "вправо". Если будет время, попробую "поремонтировать".