事件概述

2026 年 8 月,一款名为 TinySol(原名 MonoSol)的自由软件出现在 Hacker News 首页,它是一个专门为古董电脑(尤其是单色屏幕机型)设计的克朗代克纸牌游戏。作者在 ClassicBits.net 上发布了 v1.3 版本,体积仅 3KB,声称能在 8086 及以上的任何 PC、任何显卡(CGA、AT&T、EGA、VGA)上运行。该版本于 2026 年 5 月的 Vintage Computer Festival Southwest 上以实体软盘形式首发,共分发 16 份拷贝,之后才开放下载。

关键技术点

极致的体积控制

TinySol 全部由 x86 汇编语言编写(2022 年初动工,使用 NASM 汇编),目标是既能支持 640×400×2 的 GRiD 气体等离子显示屏,又能小到可以轻松放进 ROM 中。最终体积只有 3KB,这在现代软件动辄数十 MB 的背景下显得非常不可思议。

广泛的硬件兼容性

开发者实际测试了以下环境:

  • 真机:IBM 5150(8088, 640KB, CGA, MS-DOS 3.30)
  • 真机:GRiDCase 1520(286, 640KB, CGA/ATT, MS-DOS 3.30)
  • 真机:Pentium 233, MS-DOS 6.22, VGA
  • 模拟:8086, 64KB RAM, MS-DOS 2.0, CGA
  • 模拟:DosBox(主要开发环境)

支持 4 种视频模式,可在运行时通过 F1-F4 切换:

名称 INT 10h 模式 分辨率 快捷键
CGA 06h 640x200x2 F1
AT&T 6300 40h 640x400x2 F2
EGA 10h 640x350x16 F3
VGA 12h 640x480x16 F4

其中 AT&T 6300 模式(又称 Olivetti M24、Compaq Portable III、Doublescan CGA 等)只在部分 GRiD 机型上自动识别,其他模式一般可以自动检测。

人机交互设计

TinySol 支持键盘和鼠标两种操作方式:

  • 键盘:数字键 1-7 选择牌堆,A-D 选择基础堆,8/Space 翻牌,Tab 或 F 键自动送牌,+/- 保存/恢复游戏状态,n 新游戏,x 退出,F1-F4 切换显示模式。
  • 鼠标:左键选择牌堆,右键自动送牌,点击屏幕上的 N 和 X 分别对应新游戏和退出。

这种设计让用户在没有鼠标驱动或只有键盘的古老机器上也能流畅操作。

版本演进

从 2022 年 3 月 v1.0 发布,到 v1.1 修复渲染问题并增加结束画面,v1.2 加入计分、存档和自动完成功能,v1.3 在 2026 年 5 月推出多个构建版本(full / med / tiny / micro),并首次以实体软盘在 VCFSW 2026 上分发。

社区反馈与兼容性修正

  • 2024 年一位用户 Joseph 反馈,他的 BOOK 8088 上 VGA 模式不工作但 EGA 正常,于是 v1.2 改为默认使用彩色 EGA/VGA 模式而非纯单色。
  • 2022 年 Óscar Toledo G.(nanochess.org 作者)在 YouTube 上演示了早期版本,并帮助定位了一个只在 VirtualBox for Mac 上出现的精灵渲染问题——原因是调用 Int 10h 前未清除方向标志。修复后该问题消失。

对数据科学与 AI Agent 落地的意义

乍看 TinySol 与数据科学、AI Agent 毫无关系,但它背后体现的工程哲学很有参考价值:

  1. 极致资源约束下的优化:在 3KB 内实现完整的纸牌游戏逻辑与多种显示驱动,是现代 AI 模型压缩、边缘设备推理等场景的极端对照物。
  2. 兼容性即产品力:TinySol 针对不同显卡、不同内存、不同 DOS 版本做了大量适配,这种“在混乱环境中保持稳定”的能力,与 AI Agent 需要在不同 API、不同数据源、不同计算资源下可靠运行的需求高度一致。
  3. 用户反馈驱动迭代:Joseph 的邮件直接改变了后续版本的显示模式策略,这提醒我们,无论模型多先进,真实用户的硬件/环境差异永远是系统设计必须回应的约束。

我的技术点评

TinySol 是典型的“小而美”项目。它没有依赖任何现代框架,没有图形库,没有操作系统抽象层,纯粹用汇编直接操作 BIOS 中断。这种开发方式在今天几乎成了失传手艺,却恰恰是理解计算机底层运行逻辑的最佳教材。

一个值得注意的细节是,开发者用 “tiny” 作为核心卖点,但功能并不简陋:自动完成、计分、存档、鼠标支持、多显示模式,应有尽有。这证明在资源受限时,只要仔细设计数据结构和控制流,复杂功能依然可以被压缩到极小体积。对于正在做模型压缩、量化、蒸馏的工程师来说,这种“每一字节都精打细算”的心态值得借鉴。

当然,原文未说明 TinySol 的代码是否开源,也没有提及未来是否会支持声卡或其他输入设备。但从 v1.3 已经提供多种构建版本来看,作者对“适配不同硬件”这件事是认真的。如果你手头正好有一台 8088 或 286 古董机,不妨下载下来,感受一下 1980 年代的计算机跑纸牌游戏的纯粹乐趣。

原文链接