# 微软公开 45 年前 DOS 源码：当年的代码是一摞打印纸

**URL:** <https://meta.appinn.net/t/topic/86192>\
**Category:** 青蛙的应用\
**Created:** [2026 年5 月 30 日 07:53 UTC](https://meta.appinn.net/t/topic/86192 "2026-05-30T07:53:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
发布日期： [2026 年5 月 30 日 07:53 UTC](https://meta.appinn.net/t/topic/86192/1 "2026-05-30T07:53:45Z")

</div>

原始链接在： [微软公开 45 年前 DOS 源码：当年的代码是一摞打印纸 - 小众软件](https://www.appinn.com/microsoft-open-45-year-old-dos-source-code-paper-listing/)

早些时候，微软发布了一篇名为《[续写早期 DOS 开发的故事](https://opensource.microsoft.com/blog/2026/04/28/continuing-the-story-of-early-dos-development/)》的文章，公开了目前发现的最早的 DOS 源代码。来自 45 年前的纸质打印稿。@[Appinn](https://www.appinn.com/microsoft-open-45-year-old-dos-source-code-paper-listing/)

  
 ![](https://h2cdn.appinn.me/original/3X/8/0/8094b50a78e8a2f1e749389353eb5b7d764ed52d.jpeg)

## 目录

- [86-DOS 1.00 是什么？](#86-dos-1-00-是什么？)
- 微软如何买到了 DOS？
- [86-DOS 与 PC-DOS](#86-dos-与-pc-dos)
- [45 年前的源代码是如何整理出来的？](#45-年前的源代码是如何整理出来的？)
  - [Tim Paterson 的打印稿](#tim-paterson-的打印稿)
  - [OCR、空格与源码恢复](#ocr、空格与源码恢复)
  - 缺失的一块
  - 被修复过的 1.00

- [当代码还保存在打印纸上](#rich-cini-说)

## 86-DOS 1.00 是什么？

1980 年，一家叫 **Seattle Computer Products** （SCP）的小公司正在卖基于 Intel 8086 的电脑板卡。

机器有了，但没有系统。

当时他们手里唯一能配套卖的软件，只有微软帮忙写的 BASIC-86。但用户既没法方便地管理文件，也没法正常加载和运行软件，所以机器一直卖得不太好。

（早期计算机，开机直接进入 BASIC，并没有操作系统的概念）

后来，公司里的工程师 Tim Paterson 干脆自己动手，用几个月时间快速写了一个新系统，最早叫 QDOS（Quick and Dirty Operating System），后来改名成 86-DOS。

它原本只是一个为了“先让机器能用起来”的临时方案，却刚好赶上了 IBM PC 诞生前夜。

## 微软如何买到了 DOS？

那时候，IBM 正在开发第一代 IBM PC，而微软自己又没有现成的操作系统，于是微软找上了 Seattle Computer Products，获得了 86-DOS 的授权，后来又直接买下了全部权利。

- 1980年12月，微软以2.5万美元的价格从西雅图计算机产品公司，购买了86-DOS的非独占许可证。 
- 1981年5月，微软聘请蒂姆·帕特森（Tim Paterson）将该系统移植到IBM PC上。
- 1981 年 7 月，微软以 5 万美元的价格从 SCP 购买了 86-DOS 的全部版权。
- 微软随后把 86-DOS 授权给 IBM，并最终演变成 PC DOS 1.0。
- 该许可证还允许微软将 DOS 出售给其他公司（这又是另外一个故事了）

另外，后来 SCP 认为，微软在购买 86-DOS 全部权利时，故意隐瞒了 IBM 已经是大客户这件事，因此用很低的价格（5 万美元）拿走了系统，于是起诉了微软。

1986 年，陪审团已经开始讨论结果时，双方庭外和解，微软向 SCP 支付了约 92.5 万美元，作为交换，微软彻底拿回 DOS 相关授权问题。

再往后，86-DOS 被改造成 IBM PC 使用的 PC-DOS，并逐渐发展成后来的 MS-DOS。

## 86-DOS 与 PC-DOS

参与恢复与校对的 **Rich Cini** 在对比源码时发现，86-DOS 与后来的 PC-DOS 之间，其实并不像很多人想象中那样“完全不同”。很多代码、结构甚至注释，都能直接对应上。

当年的源码保存方式和今天完全不同，很多资料并不是磁盘文件，而是打印出来保存的 listing。部分源码后来又经过传输、复制和重新打印，因此不同版本之间会出现细微差异。

 ![](https://h2cdn.appinn.me/original/3X/e/5/e50ce54207a0e358d451e650f7e4e2bf948d6221.avif)
## 45 年前的源代码是如何整理出来的？

45 年，已经非常久远了。青小蛙遇到这个情况，肯定是要计算一下的：2026-45=1981。

这次微软公开在 GitHub 的核心代码几乎都是 Intel 8086 汇编写的，源码文件以 .ASM 为主。

 ![](https://h2cdn.appinn.me/original/3X/f/6/f613366a1462508c9f20ae993df1624f634dfa75.avif) ![](https://h2cdn.appinn.me/original/3X/5/e/5ed818c60ebd3e4e2b10411ca732bc58251b81ae.avif)

**这些代码并没有保存在硬盘中，而是保存在打印纸上。**

### Tim Paterson 的打印稿

86-DOS 作者 Tim Paterson 当年保留下来的，是一摞摞连续的打印纸。打印出来的包括源码、汇编列表、调试记录，还有大量手写修改痕迹。

DOS History（DOS 历史）保存团队重新扫描这些老打印稿，再通过 OCR 把图片转成文本。但由于年代太久，很多字符已经模糊，OCR 识别错误也不少，比如 0 和 O、1 和 I、: 和 ;，于是又需要人工逐行校对、修复。

 ![](https://h2cdn.appinn.me/original/3X/c/3/c316b94c9f9cc29e436cb101a6c3836ad38e57b4.avif)
### OCR、空格与源码恢复

还有个更麻烦的问题：空格。当这些老打印稿重新整理成源码文件时，空格在哪里，有几个，都是问题。

早期汇编代码非常依赖固定列宽，指令、参数、注释通常都要严格对齐。一旦 OCR 把空格、Tab 或字符间距识别错位，整段代码的布局就会乱掉。

比如下面的指令、参数、注释，都要严格对齐（现代显示都很难对齐啊）：

```
LABEL MOV AX,BX
          INT 21H
```

而 1980 年代的打印稿，又大量使用固定空格进行排版。甚至连当年开发过程中划掉的代码、临时修改、注释痕迹，也尽量保留了下来。

最后，他们才把这些资料重新整理成今天的 GitHub 仓库。

- 项目地址：[https://github.com/DOS-History/Paterson-Listings/](https://github.com/DOS-History/Paterson-Listings/)

**这次公开的，是“目前发现的最早 DOS 源代码”。**

 ![](https://h2cdn.appinn.me/original/3X/4/4/4479c6f684f800e38c112655430a922e701e44a0.avif) ![](https://h2cdn.appinn.me/original/3X/7/b/7bcf4532e267576a37ff7f28121b11cec252490c.avif)
### 缺失的一块

Rich Cini 在分析源码时发现，部分内容存在缺失：有些地方会突然少掉几行代码，部分注释也出现了中断。

他认为这些缺失不像 OCR 识别错误，更像是在早年源码传输过程中就已经出现的问题。并推测当年 SCP 向 Microsoft 传输源码时，可能发生过串口传输错误。

### 被修复过的 1.00

Rich Cini 还发现，这次公开的“86-DOS 1.00”内核，其实已经修复了 STORE Bug，因此功能上更接近后来的 1.01。这部分代码修改时间，可能已经晚于最初的 1.00 版本。

## 当代码还保存在打印纸上

Rich Cini 说，对他来说，最特别的，是能与那些亲历 PC 革命早期的人交流。当年的很多开发者，并不觉得自己正在“创造历史”。

这些项目对他们来说，更像是一份工作、一个项目，或者一种兴趣爱好。

那时候还没有 Git、GitHub 和云同步，很多源码真正留下来的方式，只是一摞摞连续打印纸。

谁也没想到，45 年后，人们还会重新翻出这些打印稿、软盘和 listing，试着把 DOS 最早的开发历史重新拼回来。

* * *

原文：https://www.appinn.com/microsoft-open-45-year-old-dos-source-code-paper-listing/

参考链接：

1. [Tim Paterson’s DOS Source Listings](https://github.com/DOS-History/Paterson-Listings/)
2. [Continuing the story of early DOS development](https://opensource.microsoft.com/blog/2026/04/28/continuing-the-story-of-early-dos-development/)
3. [Tim Paterson’s DOS Source Listings and Other Things](http://cini.classiccmp.org/recoveryblog.htm)
4. [86-DOS](https://en.wikipedia.org/wiki/86-DOS)
