|
发表于 2023-6-19 15:06:07
|
显示全部楼层
本帖最后由 不点 于 2023-6-19 15:30 编辑
我看了你的字库中的 0~7F (即通常所说的 ASCII)的点阵格式,是正常的。
0~7F 称为 ASCII。ASCII 的地位很特殊。在 grub4dos 的字库处理中,ASCII 字符都按照 8*16 的点阵(窄字符)来处理,不允许 ASCII 字符采用 16*16 的宽字符格式。这是因为,一旦 ASCII 采用宽字符来显示,整个显示就乱套了。字库中的 ASCII 字符的点阵,如果是宽字符格式(16*16),这一行将被忽略,而会用 ROM 里面的 8*16 点阵(这是 ASCII 字符的默认点阵)来取代。除了 ASCII 之外,其他字符都可以采用 16*16 的宽字符格式,当然也可以采用 8*16 的窄字符格式。也就是说,只有 ASCII 字符被限定为 8*16 点阵,而其余字符都是既可采用 8*16 点阵, 也可采用 16*16 点阵,不作任何限制。
既然你看到了 2022-11-28 与 2023-06-15 的显示不同,那就说明是有问题了。
要么是 2022-11-28 有 bug,要么是 2023-06-15 有 bug。
你可以胡乱修改一个字符,看看是谁的 bug。
比如说,你修改 空格 的点阵,看看你修改后的空格是否有更新。
空格是这行:
0020:00000000000000000000000000000000
你把它修改成这样(其实就是胡乱修改一下罢了,点阵数据都是十六进制):
0020:77777777777777777777777777777777
注意这一行的长度可不能变啊,原来是多少个字符,修改后也应该是多少个字符。
修改后,用旧版 grub4dos 和新版 grub4dos 分别测试,看看你新修改的这个空格字符的点阵是否被采用。
这样,很快就可以确定究竟是哪个版本有 bug 了。 |
|