IBM PS/2早期BIOS中隐藏字体的来源被追溯
来源标题:Those Secret Fonts from the ISA-16 PS/2 Models (Again)
博主VileR追溯了IBM PS/2部分16位ISA机型系统ROM中额外屏幕字体的来源,发现其与IBM内部上世纪80年代末流传的一款名为HOWARD the FONT的软件包有关。这些字体仅在最早期BIOS版本的PS/2 Model 30-286和25-286上可用。该软件3.61版以磁盘镜像形式留存,原始发布形式尚不明确。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
VileR 发表于 2025年7月26日 VGA、IBM、字体 15条评论
来聊聊IBM PC历史上一个相当冷门的小怪事的最新进展。先回顾一下:某些PS/2型号(那些基于16位ISA总线的机型)在系统ROM里额外携带了一套屏幕字体,超乎每块标准VGA BIOS都有的基本字体之外。我关于这个话题的第一篇文章详细说明了它们原本打算怎么用,也解释了为什么它只在部分拥有这些字体的机器上真正生效——也就是PS/2 Model 30-286和25-286(而且仅限于它们最早期的BIOS版本)。
有一件事仍然不清楚:它们从哪儿来,又是怎么进了那些BIOS ROM的。好吧,对于那些为此夜不能寐的无数(未统计的)人来说,好消息来了。
前一阵子我得知了一个有趣的软件包,上世纪80年代末在IBM内部流传,名字古怪得很:HOWARD the FONT(大小写为原文如此)。3.61版可以在这里以磁盘镜像的形式找到,不过那显然不是最初的发行格式:根据“勉强算得上文档的东西”所述,它最初是以一堆小压缩包的形式发布在IBM内部的一个“会议”系统上的。在醒目的“IBM Internal Use Only”声明下方,我们得知它由一位名叫Alan E. Beelitz的人在IBM位于德州奥斯汀的园区编写——此人正是为我们带来Model 30-286启动盘中字体管理工具的那位。
这个标题可没给这东西帮上什么忙,因为HOWARD不只是关于字体:它更像是IBM PC文本模式调校的瑞士军刀,以你事先不知道自己需要的、外科手术般精确的方式微调一切。这个软件包的灵感似乎来自一个无可回避的观察:视频BIOS例程很慢,偶尔有bug,总的来说脑子少根筋;而标准文本样式也并非字体设计的巅峰。你得到的是一套让各方面都稍微好一点的工具:设备驱动和命令行实用程序,用来加载和管理字体、绕过视频BIOS的bug、调整颜色,并为当时PC能插的(几乎!)每一块显示适配器加速BIOS视频输出。
所以,如果你是那种罕见(但闻起来无疑很香)的人——用着EGA卡配5151单色显示器,觉得它的文本输出需要踹上一脚;或者你想让DOS屏幕变成时髦的黄字青底,又不想把宝贵的内存浪费在ANSI.SYS上;或者你只是想给MCGA甚至PC Convertible的字符集打扮打扮——那么Howard(好吧,Alan)会帮你搞定。字体、实用程序和驱动都以作者的同事和同谋们的名字命名:Howard W. Glueck在HOWARD和GLUECK中永垂不朽(套件的标题也由此而来),Neil D. Lubart则在——你猜对了——NEIL和LUBART中,更不用说DAVID、HOLLY、WESLEY、WANDA,以及那栋办公楼里大概一半的人。不过,还是来看看我们真正来这里要看的东西吧。
以下是HOWARD the FONT中每种样式的样本,不包括“NLSFONTS”(涵盖拉丁/多国代码页850、阿拉伯文和西里尔文)。字体列表和描述均按HOWARD.ANN中所写。在这张图里,无论实际高度如何,它们都统一以8x16网格渲染,但应该能让你对它们长什么样有个相当不错的了解:
HOWARD:字体(点击看大图)
你可以眯着眼把这些和上面提到的PS/2字体对比,试着自己理出关系,但我就免了你这份眼疲劳吧:PS/2 30-286的四款额外字体中,有三款在HOWARD包里有完全相同的副本。第四款显然基于另一款字体,尽管两者并非逐位相同。
PS/2 30-286 ROM字体 HOWARD the FONT中的名称
Elite E000:9F00 ELITE16.FNT(完全相同) Oak8 E000:AF00 OAKLEY16.FNT(完全相同) Oak9 E000:BF00 OAKLYB16.FNT(完全相同) Sanserif E000:CF00 HOWARD16.FNT(有修改)
至于列表上最后一款,下面把两个版本并排放在一起以突出差异(这次采用VGA宽高比,显示字符网格)。HOWARD v3.61晚于最初的30-286 BIOS ROM,所以HOWARD16字体代表的是调整和改进;大多数被修改的字符只是整体挪动了一个点,但另一些则有进一步编辑。如果对这两款字体是否相关还有任何疑问,眼尖的人会注意到,字符╘(即字符D4h)的字形在两种情况下顶部都粘着一个多余的像素——这显然没被逮住。
如果我们看一些日期,就能开始理清时间线了。作为参考,最早的30-286 BIOS(唯一能与启动盘字体实用程序配合的版本)标注日期为1988年8月25日,而实用程序本身标注的是1988年7月8日。
现在,由于缺少更早版本的HOWARD the FONT,很难确定这个包最初是什么时候拼起来的。大多数文件带有1988-9年的日期戳,但有些字体如APL16早在1985年就有了;两款Oakley字体(在这些PS/2机型中以“Oak8”和“Oak9”出现)的日期是1986年中期。ELITE16的日期戳是1988年12月12日,尽管它与“rev. 0”BIOS中的版本完全相同(后者要早大约四个月)。至于HOWARD16,这里(修订过的)版本标注的是1989年6月7日。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。