至少运行VICE 2.4:
PRINT PEEK(53280)
254
POKE 53280,14
PRINT PEEK(53280)
254
显然only bits #0-#3 are used和
AND 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/