1

在扩展颜色模式下:

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

……至少理论上是这样的。但我发现字符 chr$(63) 落入第二组:所以 63 + 128 = chr$(191) 打印正确,但 chr$(255) 没有?不是很大,我可以解决,但我不愿意相信文档是错误的,特别是因为 64 似乎是比 63 更明智的截止点。这可能是一个副错误?

4

1 回答 1

2

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

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

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

于 2021-09-16T15:24:28.087 回答