Microsoft just open-sourced 86-DOS. Tim Paterson's 45-year-old listings are now on GitHub under MIT.
Yufeng Gao and Rich Cini scanned Tim Paterson's 1981 assembler printouts. Microsoft pushed them to DOS-History/Paterson-Listings on April 28, the 45th anniversary.
Microsoft pushed the earliest known DOS source to GitHub on April 28, 45 years to the day after 86-DOS 1.00 first booted on a Seattle Computer Products S-100 machine. The release includes the 86-DOS 1.00 kernel, several PC-DOS 1.00 development snapshots, and utility sources like CHKDSK. License is MIT.
The repository is DOS-History/Paterson-Listings (mirrored under microsoft/MS-DOS), and what’s in it isn’t a recovered tape. It’s transcribed assembler. Historians Yufeng Gao and Rich Cini, working with Tim Paterson directly, scanned Paterson’s stacks of continuous-feed printouts from 1981 and turned the OCR results into compilable source. The work has been quietly underway for two-plus years.
What’s actually in the drop
Microsoft has done a DOS source release twice before. In 2014, the company pushed MS-DOS 1.25 and 2.0 to GitHub under an academic license. In 2018, it relicensed those under MIT and added MS-DOS 4.0. The April 28 drop sits earlier in the timeline than either.
What’s new:
- 86-DOS 1.00 kernel. Tim Paterson’s QDOS, the “Quick and Dirty Operating System,” which Microsoft bought from Seattle Computer Products in 1981 and resold to IBM as PC-DOS. This is the version that boots on the original IBM PC.
- Multiple PC-DOS 1.00 development snapshots. Point-in-time working states from Paterson’s notebook, not a single final release. Microsoft frames them as a “printed commit history” of the IBM-customization work. You can read implementation changes and bug fixes as Paterson made them.
- CHKDSK and other utility sources. The version that shipped with PC-DOS 1.00, including the bring-up assembly the disk-check tool was scaffolded from.
Per Microsoft’s blog, by Stacey Haffner and Scott Hanselman, these aren’t reconstructions: the listings “represent point-in-time working states” that show “implementation timelines and bug fixes from the late 1970s and early 1980s.” Researchers can build and run the code in a CP/M-86 emulator, with caveats about which OPCODE.LST file each snapshot expects.
The fact that this is even possible takes effort. Paterson, by his own account, kept physical assembler printouts and stacks of continuous-feed paper from 1981 in storage for four decades. Gao and Cini located the listings, scanned them, OCR’d the assembly, hand-corrected the transcription errors, and validated by reassembling each snapshot against period-appropriate tools. The Interim Computer Museum is taking custody of the originals once Microsoft’s archival pass is complete.
A few things worth knowing
The 2014 release came under an academic license. The 2018 follow-up relicensed those bits under MIT and added MS-DOS 4.0. The April 28 drop sits earlier than both and ships MIT from day one.
- MIT, not academic. Anyone can use it. The license is genuinely permissive. Forks, derivatives, and commercial use are all allowed. The bar to running PC-DOS 1.00 on a hobby project is now whatever assembler bring-up time costs.
- This is the floor of what survives. Anything earlier than 86-DOS 1.00 (the original QDOS revisions Paterson wrote at SCP) almost certainly no longer exists in written form. Microsoft’s blog frames the April 28 drop as “the earliest DOS source code discovered to date,” which is the polite way of saying nobody has tape from 1980.
- PC-DOS 1.00 was a customization job, not a rewrite. The PC-DOS development snapshots show IBM-specific changes layered onto the 86-DOS base. That’s load-bearing for computer historians, because the open question for years has been which architectural decisions came from Paterson and which from IBM. The snapshots are the trail.
- Microsoft and IBM had to legally clear it. IBM’s PC-DOS contribution was, per the blog, validated by a joint review. The drop is MIT, but the underlying contractor agreements from 1981 needed a fresh look.
What this means for you
If you write emulators or retro-computing software, you now have a vendor-blessed reference for the actual 86-DOS and PC-DOS 1.00 behavior, not a reverse-engineered approximation. PCem, 86Box, and DOSBox-X maintainers have been working from the 1.25 reference release for a decade. The 1.00 snapshots will close gaps in BIOS-call edge cases that the 1.25 sources skipped over.
If you teach systems programming or OS history, the printed-commit-history framing is the actual payload. The 2014 drop gave you a single final release. The April 28 drop gives you the development trajectory, which is what teaches the lesson. A student can diff successive snapshots and see what changed when IBM said the file system needed FAT12 instead of the original CP/M-style entries.
If you’re an FPGA or retro-hardware hobbyist, the source clears the path for legal distribution of PC-DOS 1.00 in homebrew kits. The 8088 SBCs and Book8088 clones that have been shipping with bundled DOS images can finally point to a license that authorizes the bundle.
If you don’t write code that runs in real mode and you don’t care about computer history, the practical value here is small. But this is one of the cleanest archival releases the industry has seen in years: original author still alive, original artifacts physically preserved, legal review done in public, license actually open. Patterson kept the printouts. Gao and Cini did the transcription. Microsoft cleared the contracts. The pieces had to line up, and they did.
Share this article
Sources
- Continuing the story of early DOS development — Microsoft Open Source Blog
- Microsoft Marks 45 Years of DOS by Open-Sourcing Its Oldest-Known Source Code — It's FOSS
- DOS-History/Paterson-Listings — Microsoft on GitHub
- Microsoft Open Sources Earliest DOS Code on Anniversary — Redmond Magazine