Microsoft releases MS-DOS 4 source code on GitHub — 36 year old code now open-source

MS-DOS 4.00
(Image credit: Microsoft)

Microsoft has released the MS-DOS 4.00 source code, binaries, disk images, and documentation. The source code, which is nearly 36 years old (version 4.00 came out in 1988), has been released under the MIT license, allowing tinkerers free rein. MS-DOS 4.00 is quite an interesting version of this command-line-driven OS, as it was written in partnership with IBM and formed a branch of DOS called Multitasking DOS (or MT-DOS), that only had a limited release.

In its blog post about open-sourcing MS-DOS 4.00, Microsoft says this release was precipitated largely thanks to correspondence between former Microsoft Chief Technical Officer Ray Ozzie and a young computer researcher called Connor ‘Starfrost’ Hyde.

The code and materials now available on GitHub came from Ozzie. He was working at Lotus when he received some unreleased beta binaries of DOS 4, which he kept safe. VP Developer Community at Microsoft, Scott Hanselman, and internet archivist and enthusiast, Jeff Sponaugle, carefully digitally preserved the ‘Ozzie Drop.’ Then, the relevant permissions were sought and granted before this open-source release.

So, what is special about this MS-DOS 4.00 release? As well as being the newest open-source release of MS-DOS, it has some multitasking abilities. Hyde shares quite a deep dive into this aspect of the ancient OS, which would form the foundation of OS/2.

(Image credit: Connor ‘Starfrost’ Hyde)

One of the key parts of the intended multitasking workflow of MS-DOS 4.00 is the session manager (SM.EXE). Hyde explains that this system component allows hot-key switching between up to six pre-defined applications (see sample image above). However, in his tests the way SM.EXE works is seriously buggy, so using it as it stands is not very practical. If you are interested in learning more about multitasking in MS-DOS 4.00, and all the utilities that come with the release, Hyde’s in-progress blog is well worth a read.

The MS-DOS 4.00 Intel 8086 assembly code, binaries, disk images, and documentation are now available on GitHub. If you want to quickly run the OS for yourself, you can find the two disk images in the v4.0-ozzie/bin directory. Enthusiasts with serviceable old hardware like an original IBM PC XT, or a newer Pentium system, can run / install the OS natively. Others can play in the open-source PCem and 86box emulators, for example. The same GitHub repository holds MS-DOS 1.25 and 2.0 source code.

Mark Tyson
Freelance News Writer

Mark Tyson is a Freelance News Writer at Tom's Hardware US. He enjoys covering the full breadth of PC tech; from business and semiconductor design to products approaching the edge of reason.

  • domih
    Otherwise: https://freedos.org/
    Reply
  • ekio
    The OS that still drives the technical decision for Window 11…
    Can we give up the stupid backslashes in the directories???
    Can we give up the drive letters and get a mount point instead???
    Reply
  • georgebaker437
    A drastic change to software patents is needed. Out of support, out of patent...full stop, no lawsuits allowed. Manipulative changes to an OS should be grounds for losing ALL included patents and copyrights if provable in court.
    Reply
  • 35below0
    ekio said:
    The OS that still drives the technical decision for Window 11…
    Can we give up the stupid backslashes in the directories???
    Can we give up the drive letters and get a mount point instead???
    Can i have File Explorer remember it's position and size? Please? It'll be my birthday soon.

    Keep the backslashes and drive letters, just keep something previous Windowses had. Win 11 start menu is lovely. Please?
    Reply
  • JarredWaltonGPU
    ekio said:
    The OS that still drives the technical decision for Window 11…
    Can we give up the stupid backslashes in the directories???
    Can we give up the drive letters and get a mount point instead???
    This will never change as long as backward compatibility is desired. So many, MANY things would break if you tried to change drive letters and backslash! We could just as well argue that Linux should switch everything from forward slash and mount locations (which also will never happen for the same reasons).
    Reply
  • USAFRet
    ekio said:
    The OS that still drives the technical decision for Window 11…
    Can we give up the stupid backslashes in the directories???
    Can we give up the drive letters and get a mount point instead???
    Thereby breaking thousands (millions?) of office level applications, all over the world.

    For better or worse, legacy support is the rule with Windows.
    Reply
  • GustavoVanni
    How is it nearly 45 years old?
    1988 was "only" 36 years ago...
    MS-DOS 1.0 was released in August 1981, which is nearly 43 years ago.

    Did I miss something?
    Wait a minute...what year is it now? How long have I been asleep?
    Reply
  • P.Amini
    GustavoVanni said:
    How is it nearly 45 years old?
    1988 was "only" 36 years ago...
    MS-DOS 1.0 was released in August 1981, which is nearly 43 years ago.

    Did I miss something?
    Wait a minute...what year is it now? How long have I been asleep?
    Exactly!
    Reply
  • JarredWaltonGPU
    GustavoVanni said:
    How is it nearly 45 years old?
    1988 was "only" 36 years ago...
    MS-DOS 1.0 was released in August 1981, which is nearly 43 years ago.

    Did I miss something?
    Wait a minute...what year is it now? How long have I been asleep?
    The referenced article notes that the original MS-DOS that was written almost entirely in ASM is nearly 45 years old, and our writer made an error that the editor didn't catch. I've corrected the text and headline now. Note that code released in 1981 was written before 1981, which is apparently where the 45 years comes from. At present, MS-DOS 4.00 is almost 36 years old, and probably parts of the code date back to earlier. But if memory serves, one of the variants of MS-DOS was a "from the ground up rewrite" and thus there's a break between version 1.00 and 4.00 somewhere.

    I do remember that 4.x had some pretty massive changes relative to 3.30. Some of the changes were quite helpful for my budding computer nerd self in the 80s. LOL. I still write batch files to do a lot of stuff. But MS-DOS 5.0 was the one I recall has having some useful new functionality back in the day. Was that when himem.sys and emm386.exe came into being, or was that an earlier release? I had a great time trying to get games like Wing Commander and Ultima VII running by freeing up as much of the root 640K as possible. There was a big jump between 2.x and 3.x as well, which might have been the more important change. I don't think I ever personally used DOS 1.x, though.
    Reply
  • COLGeek
    Ultima VII destroyed my sleep cycle back in the day. Good times.

    Oh yeah, DOS too.
    Reply