Не работает пользовательский ввод при использовании SNA
Начал разбираться с программированием для спектрума и застрял на отслеживании нажатия клавиш.
Код, который представлен ниже, не работает корректно при генерации SNA.
Скрытый текст
Код:
device zxspectrum48
org 40000
start
ld a, 2
call 5633
loop
ld hl, last_k
ld a, (hl)
cp 112 ;key P
jr z, tright
cp 111 ;key O
jr z, tleft
cp 32 ;key Space
jr z, tspace
jr loop
tright
ld de, keyp
ld bc, eokeyp-keyp
call 8252
jp clrkey
tleft
ld de, keyo
ld bc, eokeyo-keyo
call 8252
jp clrkey
tspace
ld de, keysp
ld bc, eokeysp-keysp
call 8252
jp clrkey
clrkey
ld hl, last_k
ld (hl), 0
jp loop
ret
last_k equ 23560
keyp defb "P "
eokeyp equ $
keyo defb "O "
eokeyo equ $
keysp defb "space "
eokeysp equ $
savesna "input_test.sna", start
[свернуть]
При компиляции в SNA и запуске в эмуляторе не работает перехват нажатия на клавиши "O" и "P" (однако, нажатие на "Space" отлавливается).
Но если собрать в TAP и так же запустить на эмуляторе, то всё работает корректно.
Ассемблер: SJAsmPlus V20190306.1
Эмуляторы: #CSpect V2.12.3; ZXSP V0.8.0 pre27
ОС: macOS Catalina V10.15.2
Может кто-то сталкивался с похожими проблемами и сможет подсказать ошибку в коде или в окружении?