至少运行VICE 2.4:

PRINT PEEK(53280)
 254

POKE 53280,14

PRINT PEEK(53280)
 254

显然only bits #0-#3 are usedAND 15获得了“正确”的值,但是为什么6510会将高位设置为1

最佳答案

6510 CPU不会将未使用的较高位设置为1;相反,相反,没有存储器支持适当的VIC寄存器中的较高位。因此,发生的情况是CPU在写入时在数据总线上输入了任何8位值,但VIC芯片仅存储了低4位;然后,当CPU尝试从该地址读取数据时,它将53280放入地址总线,而VIC芯片则需要将所有8位放入数据总线。但是它只存储了低4位。高4位将需要伪造为1。

当然,它也可以为这些额外的位选择其他假值(例如,它可以使用全0);关键是,它必须是一个固定值,因为实数4位从未存储在任何地方。

关于c64 - 为什么总是设置53280 $ D020的高位(c64),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39316192/

10-10 18:30