Microsoft Open-Sources the Oldest DOS Source Code Yet Discovered

Microsoft has published what it calls “the earliest DOS source code discovered to date,” reaching further back into PC history than any of its previous releases. The newly open-sourced material predates the MS-DOS name entirely and ships with developer notes and documentation.

According to Microsoft’s Stacey Haffner and Scott Hanselman, the release includes the source for the 86-DOS 1.00 kernel, several development snapshots of the PC-DOS 1.00 kernel, and classic utilities such as CHKDSK.

A quick bit of context: the operating system that became MS-DOS started life as 86-DOS (originally “QDOS,” for “quick and dirty operating system”), written by programmer Tim Paterson for an Intel 8086 computer kit from Seattle Computer Products. Needing an OS for the still-unfinished IBM PC, Microsoft licensed 86-DOS, hired Paterson, and eventually bought the rights outright. It then licensed the system to IBM as PC-DOS while selling its own version, MS-DOS, to everyone else — the version that rode the wave of IBM PC clones to dominance through the 1980s and ’90s.

What makes this release remarkable is that the code had never been stored digitally. A group of historians and preservationists calling itself the “DOS Disassembly Group” — led by Yufeng Gao and Rich Cini — transcribed and scanned it from paper printouts supplied by Paterson, a task made harder because modern OCR tools struggled with the decades-old pages.

This isn’t Microsoft’s first trip into its own archives. The company open-sourced MS-DOS 1.25 and 2.0 back in 2014, MS-DOS 4.0 in 2024, and along the way has released code for the game Zork, 1995’s 3D Movie Maker, and a remake of the old MS-DOS Editor. The earlier MS-DOS versions all live in the same GitHub repository.

It probably won’t be the last rediscovery, either: just two years ago, the oldest known build of 86-DOS itself was found and uploaded to the Internet Archive.

Source: Ars Technica

Leave a Reply

Your email address will not be published. Required fields are marked *