开发者生态
morning
C64 Dead 测试字体
2026-05-24
1 阅读
masswerk
C64 Dead Test 字体 2026 年 5 月 24 日 深入探讨 C64“Dead Test”诊断盒的字体,包括复活节彩蛋、对实现的了解,最后提供一些可供下载的 Commodore 8 位字符 ROM。最近,粗略地浏览了一下网络,得到了一个令人震惊的结果:显然没有关于 C64 Dead Test 墨盒标志性字体的文档,没有字符图表,没有读数,没有任何值得注意的内容。这是一个可耻的疏忽,我们正试图在这里纠正这一次。 (同样的字体,BTW,也在更先进的 Rev. 586200 诊断盒、Commodore 部件#326070-01 中实现,使用测试工具的一个,以及用于 SX64 的类似 Rev. 588220。) 盒体字体 C64“Dead Test”诊断盒 Rev. 718220(Commodore 部件#326070-01)。 314139-03) 众所周知,它带有一种嵌入其 ROM 中的特殊字体,因此不使用 C64 的内置字符 ROM,实际上不需要任何内置 ROM 来工作(因此得名),因为它全部都在独立包中。 (我们稍后会看到它是如何做到这一点的。)它的显示字体有些特殊,据我所知,在其他地方没有使用过,也许正是因为这个事实,任何见过它的人都能立即认出它。这就是“Dead Test”盒式磁带的显示内容:正在运行的 C64 Dead Test 诊断盒式磁带的屏幕截图。来源:zimmers.net(针对类似 CRT 的外观进行处理;N.L.)提醒一下,这是 C64 使用的普通字体(此处为大写/图形集):按屏幕代码显示的 C64 的大写/图形字符,范围 0-127。 Dead Test 盒式磁带仅实现其中的 58 个字符(屏幕代码 $00–$39),没有任何反向视频字符: C64 Dead Test 诊断盒通过屏幕代码实现的字符。正如细心的读者可能会观察到的,这仅实现了大写字母、数字以及一些标点符号和数学运算符。 $1B–$1F ( [ £ ] ↑ ← ) 直接取自普通字符集,$28–$2F ( ( ) * + , − . / ) 也是如此。一个额外的空格取代了 $00 处正常字符集中的“at”字符(@)(对于诊断盒来说这是一个明智的举动,但实际上从未使用过此功能),并且框边框字符 ╭ ╮ ╰ ╯ ─ │ 在 $22–$27 范围内实现,我们通常会在其中找到“ # $ % & ' 。然后在 $21 处有一个神秘的 C 形字符(通常是感叹号 ! ),它在 ROM 中的任何地方都没有被引用,无论是作为操作数还是在任何数据部分中(如果您尝试显示任何其他屏幕代码,则会显示填充图案 $AA,即“▥”中的 10101010 细垂直条纹,但墨盒不会出现这种情况。)从视觉上看,这是另一种 Computer™ 字体,由矩形块(如果是,则稍呈圆形)构成。还有其他的,例如 PET 的“901447m”字符 ROM:Commodore PET 来源不明的“901447m”字符 ROM 的示例,显然,这些都受到 MICR(磁性墨水字符识别)字符集 E-13B 的启发,仅包含 14 个字形、数字 0-9 和 4 个附加标记:MICR(磁性墨水字符识别)。 Dead Test 字体的数字实际上提供了一种非常接近的表示,只是数字“3”的形状有些偏离,以获得更方形的外观:字母字符 (A-Z) 与这种样式对齐,有利于在顶部居中的 6 × 7 像素框中展开,而字符“M”和“W”则在更宽的 7 中展开。诚然,细长的单像素垂直笔划在消费级 CRT 彩色电视机上表现不佳,但是,如果您是一名维修技术人员或能够使用此墨盒的专业现场维修人员,您可能还可以使用专业显示器(以及意外的淡季复活节)正是与 MICR E-18B 字体的密切关系使我们更接近我们的真实本质。神秘字符 #0x21,一个永远不会显示的字符,因为它在墨盒代码中没有被引用:C64 Dead Test 诊断墨盒屏幕代码 #0x21 那么,这是什么,一个稍微变形或高度程式化的字符“C”,可能是“鸡唇”标志的一部分,缺少它的后半部分?不!这是对 MICR 集 E-18B 的明确认可,也是隐藏在字体中的真正的复活节彩蛋(它应该取代感叹号,这是唯一公平且合适的做法。) 实施 一个有点被低估的事实是,C64 实际上是两台机器合二为一:我们熟知的 Commodore 64 架构和 Commodore Max 架构。