c64 扩展颜色模式:最后一个字符 63 = 191 使用背景 2?? ($D022)

c64 Extended Color Mode: last character 63 = 191 to use background 2?? ($D022)

在扩展色彩模式下:

对于背景 1 上的字符 32 到 63(53281/$D021 值),我可以添加 192 以获得相同的背景 2(53282/$D022 值)。对于 bg1 上的字符 64 到 95,我可以添加 128 以获得相同的 bg2

...至少理论上是这样。但我发现字符 chr$(63) 落入第二组:所以 63 + 128 = chr$(191) 打印正确,但 chr$(255) 不正确?没什么大不了的,我可以解决,但我不愿意相信文档是错误的,尤其是因为 64 似乎是比 63 更明智的分界点。这可能是一个 Vice 错误?

您似乎混淆了用于显示的屏幕代码的 PETSCII 值 (CHR$())。

屏幕代码0-63使用背景0,64-127使用背景1,128-191使用背景2,192-255使用背景3。

屏幕代码和 PETSCII 值之间没有 1:1 映射。您不能获取字符的 ASC() 值并执行类似 CHR$(ASC("X")+64) 的操作来可靠地获得 屏幕代码 恰好是 64,即使您可能会发现某些情况可能是正确的。