C64 Dead Test 诊断卡带有一套老玩家很容易认出来的字体。怪的是,这套字长期没有一份像样的字形文档。mass:werk 这次把它拆开:58 个字符,独立字库,还有一个从未被程序调用的神秘符号。
这事不大。它不是新品发布,也不是商业新闻。但它很适合拿来提醒今天的技术读者:早期计算机里的字体,常常不是“设计感”,而是机器快不行时还能不能把字打出来。
这套字体特殊在哪:它不是 C64 原生字符 ROM
C64 Dead Test 的使用场景很极端:机器可能已经半坏,诊断卡带还得启动、显示、报错。
所以它不能假设 C64 内置 ROM 都正常。它没有调用 C64 自带 Character ROM,而是把字体放进卡带 ROM 里。诊断工具要先保证自己能说话,不能等宿主先健康。
| 项目 | mass:werk 考据到的事实 | 直接含义 |
|---|---|---|
| 字符数量 | 58 个字形,screen code $00–$39 | 只够诊断界面使用,不追求完整字符集 |
| 字符范围 | 大写字母、数字、少量符号、边框字符 | 服务菜单、状态、测试结果 |
| 缺失内容 | 没有反显字符,也没有完整 C64 字符集 | 节省 ROM 空间,减少依赖 |
| 特殊字符 | $21 未被 ROM 代码引用 | 更像隐藏彩蛋,不像功能需求 |
那个 $21 字符最有趣。mass:werk 判断,它不是变形的 C,也不是未完成标志,而是 MICR E-13B 里的 transit 符号。MICR E-13B 是银行票据、支票上常见的磁墨字符识别字体,transit 符号用于分隔 routing code。
这当然好玩。但别把它拔高成“C64 历史新篇章”。目前能说的,是 Dead Test 字体里藏了一个来自机器识别视觉语言的符号。它像工程师留下的一次眨眼。懂的人会笑,不懂也不影响诊断。
Ultimax 模式让卡带自己撑起启动环境
Dead Test 能摆脱 C64 内置 ROM,关键是 Ultimax 模式。
C64 可以兼容类似 Commodore Max/Ultimax 的卡带模式。进入这种模式后,内置 ROM 会被 bank out,卡带 ROM 接管关键地址空间。Dead Test 使用 8K ROM,放在 $E000–$FFFF,reset vector 指向 $E000。
换句话说,开机后它不等 BASIC ROM、KERNAL ROM、字符 ROM 帮忙。它自己带代码,自己带字体,自己显示诊断信息。
这才是这套字体的硬核部分。它不是为了“另画一套更酷的字”,而是诊断卡带必须在宿主不可靠时自成一体。
“螺蛳壳里做道场”,用在这里很准。8K ROM 里要塞进启动、诊断、显示和字形,还要让执行路径足够简单。今天看是寒酸,当年是生存策略。
对读者的实际影响也很具体:
| 读者 | 这次考据意味着什么 | 可以怎么做 |
|---|---|---|
| C64 玩家、维修者 | Dead Test 的显示不是普通 C64 字符 ROM 输出 | 查资料或排故时,不要把它的字形直接当成 C64 原生字符集 |
| 像素字体、硬件史读者 | 这是一份补上的字形文档,也是一条 MICR 风格进入家用机维修界面的线索 | 对照 Dead Test 字形表、C64 原生字符集和 MICR E-13B,看哪些像素选择来自功能,哪些来自风格借用 |
接下来最值得看的是两件事:不同版本的 Dead Test 是否共享同一套字形;$21 这个 transit 符号能否在更多 ROM 分析或原始资料里得到旁证。现在它是一个可信的字形判断,不该硬说成定案。
小字体里藏着旧硬件的权力边界
我更在意的不是彩蛋,而是这套字体暴露的设计秩序。
今天谈字体,很容易谈品牌、体验、情绪价值。8-bit 时代不是这么算账。一个字符占多少字节,能不能复用系统 ROM,坏机环境下还能不能显示,维修人员能不能看清,这些才是第一层问题。
Dead Test 的选择很冷:只做必要字符;边框字符服务界面;不要反显;空白字符放在 $00;剩余空间用 $AA 填充。它看着有风格,但风格不是设计宣言喷出来的,是限制挤出来的。
这里有个对比很有意思。C64 原生字符集服务一台家用电脑,要覆盖日常显示和交互。Dead Test 字体服务一张诊断卡带,只负责在机器不稳时传递结果。前者面对用户,后者面对故障。
对象不同,字体的权力边界就不同。
MICR 味道也不只是复古滤镜。银行票据上的 MICR 字体,本来就带着“给机器读”的气质。Dead Test 把类似视觉语言放进维修界面,至少说明一种技术文化:这不是给普通家用场景卖亲切感的字,而是给懂机器的人看的字。
这不完全等同于铁路、电报、报业早期的专用符号系统,但有一点相似:外行看见怪字,内行看见秩序。技术共同体经常靠这些小东西划线。谁能读懂,谁就在门里。
所以这篇考据不该写成怀旧小品。怀旧只会说“真有味道”。真正有价值的是,它把字体、地址映射、ROM 布局、诊断场景绑在一起,让我们看见一台机器在最坏状态下如何维持表达能力。
今天的软件系统越来越大,依赖越来越深。很多界面漂亮得很,但离线、降级、故障模式做得很虚。回头看 Dead Test,会有一点刺眼:它不完整,不豪华,却知道自己在坏情况下必须完成什么。
这比很多漂亮界面更像工程。
