Microsoft open-sources “the earliest DOS source code discovered to date”

bburdge

Ars Tribunus Militum
2,507
Subscriptor++
Having grown up in the 80s and 90s as a huge need, seeing things that are for me a lived experience (ok this particular case is a bit old even for me) being pulled from old documents, diskettes, and roms is an odd experience.

I was watching a video of someone restoring an old 286 and they discussed how the SIPP modules were short-lived and hard to come by - triggering memories of wanting to upgrade my first computer (amd 286) with a little more RAM, and getting 2MB of free simms and trying to solder pins on to fit the motherboard. I ended up not successful but was able to trade someone simms for sipps and get a whopping 4MB running.
 
Upvote
25 (26 / -1)

newbrain

Seniorius Lurkius
41
I find it positive that this pieces of IT history are preserved and made available to everyone with a permissive license. Of course, the value is only historical - has anyone tried to compile/assemble one of the MS-DOS sources? are the tools still available/usable? - but that's enough.

The open-source remake of the old MS-DOS Editor isn’t actually the same app as the old EDIT.COM, but its heart is in the right place.
If you are looking for a text-mode editor which is simple to use but has much more functionality than edit, or if you are allergic to Microsoft, check out (figuratively, or literally, if you want to compile it yourself!) fresh, blazing fast, written in rust, available for all major platforms.
 
Upvote
14 (15 / -1)

Fatesrider

Ars Legatus Legionis
25,346
Subscriptor
I just knew the acronym QDOS (Quick and Dirty Operating System), when I read 86-DOS I thought it was something different I did not know about… good to know we got the story right 😃

https://en.wikipedia.org/wiki/86-DOS
I always thought it stood for Disk Operating System. I was fucking around with it back in the early 80's after I got out of the Navy, and had taken some BASIC courses. I wrote a program to find out how what kind of acceleration was needed to get from Triton to Earth in 10 days as part of a book I was writing then.

Relevant to that, I just finished that book and published it a few days ago. In the re-write from the DOS stuff written in BASIC (that had been translated from Commodore64 into IBM into WordPerfect then into LibreOffice Writer, then into Scrivener, back into LibreOffice to a printable PDF over the course of about 42 years...). In the rewrite, I had to check my math. As it turns out, the program I wrote almost half a century ago stood up. And it didn't take 20 hours to produce an output like it did before on the '64.

To find out that it (at least originally) stood for "Dirty Operating System" is kind of an eye-opener.
 
Upvote
44 (47 / -3)

DistinctivelyCanuck

Ars Tribunus Militum
2,717
Subscriptor
Having grown up in the 80s and 90s as a huge need, seeing things that are for me a lived experience (ok this particular case is a bit old even for me) being pulled from old documents, diskettes, and roms is an odd experience.

I was watching a video of someone restoring an old 286 and they discussed how the SIPP modules were short-lived and hard to come by - triggering memories of wanting to upgrade my first computer (amd 286) with a little more RAM, and getting 2MB of free simms and trying to solder pins on to fit the motherboard. I ended up not successful but was able to trade someone simms for sipps and get a whopping 4MB running.
Remember piggybacking DIP packages one on top of another and running fly wires for an address line? :)
 
Upvote
31 (31 / 0)

marsilies

Ars Legatus Legionis
24,503
Subscriptor++
Upvote
20 (20 / 0)
This source code is old enough that it hadn’t been stored digitally. “A dedicated team of historians and preservationists led by Yufeng Gao and Rich Cini,” calling itself the “DOS Disassembly Group,” painstakingly transcribed and scanned in code from paper printouts provided by Paterson. This process was made even more difficult because modern OCR software struggled with the quality of the decades-old printout.
I find it ironic that OCR should have that much trouble with a print out of that era, given that the two main modes of printing back then was either typographical, like a daisy wheel printer or dot matrix. No fancy fonts, very regular character size and spacing, still quite mechanically generated, every character and symbol was discreetly different, and the total set size of characters was quite finite. I would have thought that it would have been "Easy Mode" for an OCR.
 
Upvote
56 (59 / -3)

hagmanti

Ars Tribunus Militum
1,879
Subscriptor++
I find it ironic that OCR should have that much trouble with a print out of that era, given that the two main modes of printing back then was either typographical, like a daisy wheel printer or dot matrix. No fancy fonts, very regular character size and spacing, still quite mechanically generated, every character and symbol was discreetly different, and the total set size of characters was quite finite. I would have thought that it would have been "Easy Mode" for an OCR.
Yeah. The ink wasn't evenly distributed across the lines, since the thing holding the ink was a ribbon flying back and forth that may well have dried out.

Also, they've been sitting (somewhere) for a long time- fading wasn't likely regular, there may be folds, creases, ink wiped off or stained.
 
Upvote
70 (70 / 0)

Dachannien

Ars Scholae Palatinae
1,158
Subscriptor
I find it ironic that OCR should have that much trouble with a print out of that era, given that the two main modes of printing back then was either typographical, like a daisy wheel printer or dot matrix. No fancy fonts, very regular character size and spacing, still quite mechanically generated, every character and symbol was discreetly different, and the total set size of characters was quite finite. I would have thought that it would have been "Easy Mode" for an OCR.
It's an interesting read, although it was mildly amusing that they were OCRing text from ruled paper, removed the rule lines during the early processing, and then put in significant effort to apply a grid to help localize the characters. There were some other techniques they could have used for other challenges they ran into. But there's more than one way to OCR a cat, as they say...
 
Upvote
14 (15 / -1)
Having grown up in the 80s and 90s as a huge need, seeing things that are for me a lived experience (ok this particular case is a bit old even for me) being pulled from old documents, diskettes, and roms is an odd experience.

A bit like watching archeologists carefully brushing the soil away from a skeleton in the ground and realizing, "Hey, that's granny."

Also, they've been sitting (somewhere) for a long time- fading wasn't likely regular, there may be folds, creases, ink wiped off or stained.

...not to mention scruff marks from shoes on desks during photoshoots...

E1y4_qsWUAISIXp.jpeg
 
Upvote
39 (40 / -1)

marsilies

Ars Legatus Legionis
24,503
Subscriptor++
I always thought it stood for Disk Operating System.
That's the most common full-word meaning for DOS, and one IBM and MS used on official releases:


1777560437337.png


Also, keep in mind that PC-DOS/MS-DOS wasn't the first to use the name "DOS". Apple DOS predated it by a few years, for example.

https://en.wikipedia.org/wiki/Apple_DOS
https://en.wikipedia.org/wiki/List_of_disk_operating_systems_called_DOS

This video goes into the first commercially released DOS for a microcomputer, FDOS (Floppy Disk Operating System) by iCOM for the Intellec 8, released in 1975.


View: https://www.youtube.com/watch?v=TpHKygZ7OHY
 
Upvote
55 (56 / -1)
So far they've released code from back when PC-DOS and MS-DOS were just branding on top of the same program, since MS was doing work for IBM at the time and that's the arrangement they had, where IBM would just rebrand and sell the OS after MS had been paid, but they both could sell it under their own branding.

Then, MS left that comfy arrangement, forcing PC-DOS to fork away from MS-DOS into it's own thing, a thing which was actually pretty capable. My dad was the primary computer guy in the house when I was growing up, so I saw the PC bounce back and forth between PC and MS DOS a few times, and once even dabble in DR-DOS. Ultimately, when it became clear that MS-DOS was the only stable way to get newer versions of Windows (95 on up) working, that became the standard I stuck with, but it would have been interesting to see what a PC-DOS (and OS/2 Warp) timeline would have been like. The DOS games would have been fine at least.
 
Upvote
7 (8 / -1)

TylerH

Ars Praefectus
5,066
Subscriptor
Upvote
26 (26 / 0)

JohnCarter17

Ars Praefectus
5,821
Subscriptor++
The lede image is giving me serious flashbacks. Just not sure if it's nostalgia or PTSD...
Its college, 1983 flashback for me. OG PC, dual floppies, pre-XT release with 5MB HDD.

CMU was heavily into EMACS and SCRIBE for mainframe (PDP-20 w/ TOPS O/S) editing/programming/document prep. When the PCs came out someone quickly developed a PC version of EMACS called Epsilon. I probably still have a floppy of it somewhere.

The TI calculator. That brings back memories.
 
Last edited:
Upvote
11 (11 / 0)
That's the most common full-word meaning for DOS, and one IBM and MS used on official releases:


View attachment 134117

Also, keep in mind that PC-DOS/MS-DOS wasn't the first to use the name "DOS". Apple DOS predated it by a few years, for example.

https://en.wikipedia.org/wiki/Apple_DOS
https://en.wikipedia.org/wiki/List_of_disk_operating_systems_called_DOS

This video goes into the first commercially released DOS for a microcomputer, FDOS (Floppy Disk Operating System) by iCOM for the Intellec 8, released in 1975.


View: https://www.youtube.com/watch?v=TpHKygZ7OHY

Hello, Apple II here.
 
Upvote
13 (14 / -1)
A bit like watching archeologists carefully brushing the soil away from a skeleton in the ground and realizing, "Hey, that's granny."



...not to mention scruff marks from shoes on desks during photoshoots...

E1y4_qsWUAISIXp.jpeg
If it was printed out on thermal paper, expect lots and lots of fading. I remember seeing all the saved "preorder slips" for Duke Nuke Them Forever. They were barely legible.
 
Upvote
13 (14 / -1)

Demosthenes642

Ars Scholae Palatinae
1,466
Subscriptor
The lede image is giving me serious flashbacks. Just not sure if it's nostalgia or PTSD...
Little bit of both for sure. Learning to program on a system not too different than that was... simpler times. I still remember the super satisfying clack that those power switches made, and the sound of sliding the steel shell off because the damn thing wouldn't boot. Also slicing my knuckles up on the solder joints on the back of the expansion cards. Spending a day with a multimeter and scope trying to find a bad trace on a card, finding it, and then soldering a jumper between the pins and getting the thing to work was so satisfying in a way that today's tech just doesn't allow for.
 
Upvote
23 (23 / 0)
The oldest version that I have used is MS-DOS 2.0 in several 286 computers. The last time I say it being used for actual work was in 2007, a reminder that thing is not Y2K proof.
Around 2013, I required an IBM-compatible PC with at least DOS2.0 or higher with a parallel port...needed to reprogram n 80s vintage digital lighting dimmer-brain because my boss wiped the settings dusting it out. The support manual for that system fortunately had the original 5.25" floppy.

I was lucky, the IT morgue had a Win95 era "tablet" PC that worked.
 
Upvote
13 (13 / 0)

Jeff S

Ars Legatus Legionis
11,211
Subscriptor++
How were the earliest versions of DOS created? What I mean is, presumably either Paterson used some other OS, or maybe no OS at all? I recall reading somewhere that for early development work, Microsoft used to use a PDP/11, I think running Unix, to do development of some of their software like early versions of MS-BASIC.

So, was Paterson working on some other computer platform, such as a PDP/11 or other mini computer, writing, I presume assembly language for Intel 8086, and using a foreign-cpu assembler to create binaries of DOS on that mini-computer, write the binary object code to a floppy disk, then boot that on his PC to test it?

Or, alternatively, I think one didn't actually HAVE to use any OS at all - I recall some software for the early PCs came on boot floppies and you could boot up the software straight into the app - I guess it probably used BIOS calls for a lot of lower level stuff like disk access, and probably used their own sort of proprietary "filesystem", or no filesystem at all - just writing data straight to disk without using a concept of files - treating it more like non-volatile memory?

So, maybe there was an 8086 editor/assembler on a boot floppy, and he could boot into that, write assembly code, save it to a second floppy disk, assemble it, write the built kernel and utils it to a third floppy disk (presumably formatted with some early flavor of FAT filesystem), then reboot into his DOS to test it?
 
Upvote
10 (10 / 0)
So far they've released code from back when PC-DOS and MS-DOS were just branding on top of the same program, since MS was doing work for IBM at the time and that's the arrangement they had, where IBM would just rebrand and sell the OS after MS had been paid, but they both could sell it under their own branding.

Then, MS left that comfy arrangement, forcing PC-DOS to fork away from MS-DOS into it's own thing, a thing which was actually pretty capable. My dad was the primary computer guy in the house when I was growing up, so I saw the PC bounce back and forth between PC and MS DOS a few times, and once even dabble in DR-DOS. Ultimately, when it became clear that MS-DOS was the only stable way to get newer versions of Windows (95 on up) working, that became the standard I stuck with, but it would have been interesting to see what a PC-DOS (and OS/2 Warp) timeline would have been like. The DOS games would have been fine at least.
That fork came pretty late, only diverging in MS/PC DOS 6, DOS 5 was the last one with shared code. Funnily enough 5 was still the target for NTVDM even after all these years
 
Upvote
4 (4 / 0)

bBarou

Wise, Aged Ars Veteran
112
Ultimately, when it became clear that MS-DOS was the only stable way to get newer versions of Windows (95 on up) working
If I recall correctly win95 didn't require DOS installed, it had its own version it installed.
Win 3.xx needed a DOS install, I never used it with anything but MS-DOS though so no idea how it ran others.

Edit:grammar
 
Last edited:
Upvote
18 (18 / 0)

alansh42

Ars Praefectus
3,651
Subscriptor++
How were the earliest versions of DOS created? What I mean is, presumably either Paterson used some other OS, or maybe no OS at all? I recall reading somewhere that for early development work, Microsoft used to use a PDP/11, I think running Unix, to do development of some of their software like early versions of MS-BASIC.

So, was Paterson working on some other computer platform, such as a PDP/11 or other mini computer, writing, I presume assembly language for Intel 8086, and using a foreign-cpu assembler to create binaries of DOS on that mini-computer, write the binary object code to a floppy disk, then boot that on his PC to test it?

Or, alternatively, I think one didn't actually HAVE to use any OS at all - I recall some software for the early PCs came on boot floppies and you could boot up the software straight into the app - I guess it probably used BIOS calls for a lot of lower level stuff like disk access, and probably used their own sort of proprietary "filesystem", or no filesystem at all - just writing data straight to disk without using a concept of files - treating it more like non-volatile memory?

So, maybe there was an 8086 editor/assembler on a boot floppy, and he could boot into that, write assembly code, save it to a second floppy disk, assemble it, write the built kernel and utils it to a third floppy disk (presumably formatted with some early flavor of FAT filesystem), then reboot into his DOS to test it?
I did some work on a non-PC 8088 board in the 1980s. I used a cross assembler on a VAX to build the code. There was a monitor ROM that would load code into RAM from a serial port. Final code would be burned into an EPROM.

Also, DOS/360 came out in 1966 for the IBM System/360.

Windows 95 came with a copy of what was effectively DOS 7. It was mostly a boot loader for Win95 though it was a fallback for some devices with only DOS drivers.
 
Last edited:
Upvote
21 (21 / 0)