解密Intel主板BIOS中神秘的8x19字体

2025-08-18

本文讲述了作者追踪Intel主板BIOS中一种非标准8x19字体的起源的故事。从一张Intel AN430TX主板的BIOS POST截图开始,作者发现早期Intel主板(如AN430TX和AL440LX)使用了自定义的8x19字体,这与常见的8x16字体不同。为了解开谜团,作者尝试解码BIOS镜像,最终通过巧妙的方法成功解码,并发现这种字体在早期BIOS版本中就已经存在,并被巧妙地与字符串模块整合,以节省空间。进一步研究发现,这种字体在不同时期、不同BIOS厂商(AMI和Phoenix)的Intel主板上都有使用,甚至延续到后来的EFI shell中。作者推测这种字体的来源可能是Intel,而非BIOS厂商,并分析了其在显示技术发展中的作用。

阅读更多
硬件

谷歌AI搜索:虚假信息比真假更具迷惑性

2025-05-31

作者尝试使用谷歌AI搜索查找一款老旧的IBM PS/2服务器型号,却发现AI多次给出虚构的、自相矛盾的答案,甚至编造了不存在的型号“PS/2 Model 280”及其配置信息。虽然AI偶尔能给出正确答案,但错误答案更具迷惑性,因为它们细节丰富、看似真实。这表明AI搜索结果可能包含严重错误,即使看起来令人信服,也未必符合事实,用户需谨慎对待。

阅读更多
科技

80387 浮点单元状态保存的演变:一个文档错误的故事

2025-02-07

作者在研究x87浮点单元(FPU)状态保存(FSTENV/FLDENV和FSAVE/FRSTOR指令)时,发现Intel早期文档与后来的文档对32位保护模式下FPU状态的描述存在差异。早期80387的文档中,32位保护模式下的FPU状态信息不包含浮点操作码,而更新后的文档则包含了该信息。这导致一些后来的第三方参考书籍沿用了过时的信息,造成了长达数年的文档错误。这个故事揭示了技术文档的演变以及错误如何在技术资料中长期存在的问题。

阅读更多

C语言文件I/O操作的古老Bug:跨越半个世纪的谜团

2024-12-26

一位开发者在改进DOS模拟器时,偶然发现了一个看似简单的文件I/O操作bug:使用`echo`命令向文件追加内容时,结果与预期不符。深入调试后,他发现问题源于C运行时库处理文件读写切换的逻辑缺陷,该缺陷的历史竟可以追溯到1970年代甚至更早的UNIX系统。文章详细探讨了这个问题的历史渊源,从早期的K&R C到现代的C标准,以及不同UNIX和C编译器的实现差异,最终揭示了这个bug的根源在于早期C库对文件更新模式的限制,以及不同操作系统和编译器对这一限制的处理方式各不相同。

阅读更多

DOS APPEND命令:解决老旧MASM与现代文件组织的冲突

2024-12-20

在构建DOS 2.11源码时,作者面临一个难题:古老的MASM 1.25不支持目录结构,而现代化的文件组织需要树形目录。为了避免将所有文件堆积在一个目录,作者巧妙地利用了DOS APPEND命令。APPEND是一个TSR程序,它可以拦截文件打开等系统调用,并在当前目录找不到文件时,从预设路径列表中查找。这使得MASM 1.25能够在树形目录结构中找到所需文件,解决了历史遗留问题,也展现了APPEND命令在特定场景下的强大实用性。

阅读更多
开发 APPEND MASM

在OS/2上编程NetBIOS

2024-11-03

本文探讨了在OS/2操作系统上进行NetBIOS编程的两种主要方法:ACSNETB.DLL和NETAPI.DLL。ACSNETB.DLL是与NetBIOS驱动程序直接交互的轻量级封装,而NETAPI.DLL则通过LAN Manager/LAN Requester重定向器IFS进行操作。文章详细介绍了这两种方法的历史渊源、技术细节以及它们与不同网络协议和硬件的关系,并解释了为何C-Kermit等应用程序需要同时支持这两种接口以确保在各种网络环境下的兼容性。文章还提及了IBM和Microsoft在OS/2 1.x时代网络策略的差异导致了这种NetBIOS API的复杂性。

阅读更多
未分类 NetBIOS 网络编程

终于在 Xsight 中实现

2024-10-14

这篇文章讲述了作者如何尝试在SCO XENIX系统上运行Xsight图形界面环境。Xsight是SCO针对XENIX和UNIX SVR3.2操作系统改编的X11R3版本。作者详细描述了寻找Xsight安装介质的过程,以及在XENIX 2.3.4上安装和配置Xsight时遇到的挑战。最终,通过解决安装脚本中的错误,作者成功在XENIX上运行了Xsight。

阅读更多
未分类 Xsight XENIX SCO

OS/2 TCPBEUI 名称解析

2024-10-10

本文详细介绍了在没有专用 NetBIOS 名称服务器的情况下,如何配置 OS/2 TCPBEUI 以查找不同 TCP/IP 子网上的服务器。文章解释了两种方法,第一种适用于 OS/2 Warp Connect 及更高版本,需要将 NetBIOS 名称和主机名(或 IP 地址)对添加到 RFCNAMES.LST 文件中。第二种方法仅适用于 Convenience Package 2,需要启用未编码的 DNS 名称查找,并设置 NetBIOS 域范围字符串。文章还讨论了这两种方法的优缺点,以及调试和历史背景信息。

阅读更多
未分类 OS/2 TCPBEUI

IBM PC 5150 型号解析

2024-09-29

这篇文章详细介绍了 IBM PC 5150 的各种型号,包括其规格、发布时间、价格以及型号命名规则。文章从 1983 年 IBM 公布的首批型号开始,逐步梳理了后续发布的型号,并根据现有资料推测了早期型号的配置。作者还探讨了 IBM 为 5150 PC 设计的型号命名方案,解释了每个数字或字母代表的含义。

阅读更多
未分类 PC 5150 型号

不要这样发布历史源码 | OS/2 博物馆

2024-04-27

该网站文章强调了在发布历史源代码时需要小心行事,避免损害其历史价值和完整性。文章探讨了源代码分发中的常见问题,包括使用不当的分发许可证、忽视文件组织和缺乏适当的元数据。文章提出了在发布历史源代码时应遵循的最佳实践,包括使用宽松的许可证、提供清晰的文件结构、包含详细的元数据和确保代码完整性。

阅读更多

Why Does Windows Really Use Backslash as Path Separator? | OS/2 Museum

2024-04-24

这个网站解释了为什么 Windows 使用反斜杠作为路径分隔符。文章从历史角度出发,讨论了早期操作系统中使用各种分隔符的情况,然后解释了微软选择反斜杠的具体原因,包括它与 CP/M 和 DOS 的兼容性,以及它与其他字符(如正斜杠)的互补关系。文章还探讨了反斜杠在 Windows 中其他用途,例如转义字符。总体而言,这篇文章提供了 Windows 使用反斜杠作为路径分隔符背后的原因的深入技术解释。

阅读更多
未分类