我在模拟 C64 机器上使用 asm 时遇到了一些问题。
我想要做的是检查键盘上的“N”键是否被按下,然后程序应该等待地址$D012上出现更改。现在我不明白的是我如何“等待”变化的出现?谁能告诉我这是什么意思?
检查键盘上的 N 按钮是否被按下很简单 - 只需使用子例程 FFE4(输入)和 FFD2(输出)即可。
我并不是真的要求为我做任何事情,但如果我能快速获得一些有关 D012 如何工作以及如何“等待”更改的信息,我将非常感激。
提前致谢!
最佳答案
$d012
包含当前栅格线。
如果你只需要等到寄存器变化,即等到下一个光栅线,你可以做简单的忙等待:
lda $d012 ;load the current raster line into the accumulator
cmp $d012 ;check if it has changed
beq *-3 ;if not, jump back and check again
编辑:
如果您想等待多条栅格线,例如 3:
lda $d012
clc ;make sure carry is clear
adc #$03 ;add lines to wait
cmp $d012
bne *-3 ;check *until* we're at the target raster line
关于assembly - 等待 $D012(C64 汇编器)的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811244/