Начал разбираться с программированием для спектрума и застрял на отслеживании нажатия клавиш.
Код, который представлен ниже, не работает корректно при генерации 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
Может кто-то сталкивался с похожими проблемами и сможет подсказать ошибку в коде или в окружении?