CREEPINGNET'S WORLD
MORE THAN YOU EVER WANTED TO KNOW ABOUT MS-DOS and PC-DOS
In 1981, IBM Released their first (successful) Personal COmputer, the IBM Personal Computer model# 5150. And along with it, it needed an operating system. Initially, they were going to go with CP/M86 - made by Gary Killdall's company - Digital Research. However, it was to be quite an expensive piece of software....

Then came the New Mexico/Redmond "cowboys" - with a Bluff ol' "Big Blue" just could not refuse. Ballmer/Gates went up to Big Blue and told them they already had an x86 Operating System for their new PC - but the "Bluff" was - Microsoft really did not have ANYTHING to give to IBM yet at all. So here's what Microsoft did....

In 1978, a developer at Seattle Computer Products named Tim Patterson created a quick, scratchy, CP/M clone called "QDOS" for "Quick-and-Dirty-Operating-System", to test out a new 8086 minicomputer that SCP was developing at the time. Not sure how the word got to Microsoft, but it was rumored they paid Tim $15,000 for his creation, made some minor edits, and released it in August 1981 as PC-DOS 1.01 for the IBM Personal Computer 5150, as a more affordable option to CP/M x86. Later, it would be the default installation on just about all IBM Computer Products from their PC division. Apparently, there were some provisions cleverly left in the Contract that allowed Microsoft to provide the O/S to other manufacturers later on - but under it's own name - MicroSoft Disk Operating System - or MS-DOS.

However, MS-DOS and PC-DOS did not remain the same program forever. In the late 1980's, IBM and Microsoft's partnership lead them to developing a new 16-bit (later 32-bit) fully multitasking, graphically-driven operating system better known as Operating System/2 or OS/2 as it was called. During the OS/2 project, relationships between IBM and Microsoft softened - in part due to the project, but also in part to other industry happenings at the time. THis lead to a legendary split where Microsoft took their half of OS/2, and made that into "Windows NT" - what everyone uses now technically (10/11 is technically Windows NT), and IBM Continued to release their own versions of DOS and OS/2 until they sold their PC division to Lenovo in 2004.

But this is not a historical diatribe, this is TECHNICAL one. So if you want to know about the technical side of MS-DOS, then let's dig in...
What Make's DOS "DOS"
DOS, in the context of x86 IBM Compatible PC's, is a command-line driven operating system that - at it's core, contains a Kernel (MSDOS.SYS/PCDOS.SYS), I/O Driver (IO.SYS), and a Command Interpreter (COMMAND.COM). It can execute programs natively that come in Executable (*.EXE), Command File (*.COM), or plaintext Batch File (*.BAT) format. All of these operating systems are an evolutionary move from Digital Research's "CP/M" operating system used on quasi-standard S-100 Bus Hobbyist and Embedded computers from the 1970's.

Some of the core commands of a DOS system that don't require executable files that make it DOS include CD for "Change Directory", DEL for "DELETE", mkdir for "Make Directory", and other Kernel based commands that are always present. DOS did not support subdirectories, or even directories at first, it was added in later versions over time to make it more comfortably functional for day-to-day use.

DOS, is a single user, single tasking, single core, 16-bit Operating System, as such, it's considered "obsolete" though it's still in somewhat common use today for embedded applications, troubleshooting simpler PC-based devices, and expecially in the retrogaming and retrocomputing communities for our various needs.
PC-DOS vs. MS-DOS vs. DR-DOS vs. FreeDOS
PC-DOS and MS-DOS, up until version 5.50A in 1990, are basically the same exact operating system. That was about the time IBM and Microsoft split from each other, and they kept developing their own wings of the DOS genre of O/S until about 1999 or 2000. IBM's last release was PC-DOS 2000 in, well imagine that, 2000. Microsoft's last release was as a part of Windows Millennium Edition in 1999.

Digital Research is an entirely different entity from either of these two, even though they provided CP/M (from which DOS's design was derived) for the original IBM PC in 1981. They had their own version of DOS known as DR-DOS. There is also a open version of DOS known as Caldera OpenDOS, as well as Novell had their own version of DOS at one point, and a MultiUser DOS known as "Concurrent PC-DOS" which I'm a little shaky on the origins of.

Probably the third best known maker of "DOS" is the Open SOurce FreeDOS, a project started in 1995 by Jim Hall and later a team of open source developers under the GPL (General Public License), as a PC-DOS compatible operating system. FreeDOS has made some great strides in recent releases and only has a couple problems that keep me from using it full-time on my retro machines. FreeDOS, in a way, is an entirely different animal - while DOS compatible, some of PC/MS-DOS's more esoteric eccentricities cannot be reproduced as FreeDOS pushes the ball forward a bit, making DOS far more usable in the 21st Century by introducing some Linux-like conventions for ease of use at the command line, and even some work being done to add support for other O/S apps such as those from Linux and Windows to it without needing a GUI. Some of these updated/custom additions include HIMEMX, JEMM386, the FreeCOM Command Interpreter (Command.com replacement), DOS32 DPMI Runtime for 32-bit DOS applications for 386+, and some other drastic changes that make for both improve, and add some new compatibility issues.
DOS Versions + Some Notes
Before we start discussing which versions to use for various IBM x86 Derived platforms - let's look at a list of releases and versions and see what their changes were that makes them a good candidate for a specific purpose.
MS VER RL VER YEAR OEM? MEDIA HDD? MxFAT MxDSK MxPART LogDD# XMS? EMS? Multi
Boot
BASIC EDIT DOSSHELL? NOTES
1.24 1.1 1981 IBM 160K n/a FAT-12 360K 1 No No No No BASICA EDLIN No IBM PC 5150
1.25 1.12 1983 Compaq 360K no FAT-12 360K 1 No No No No BASICA EDLIN no
1.25 1.13 1983 T.I. 360K no FAT-12 360K 1 No No No No BASICA EDLIN
1.25 1.19 1982? Zenith 360K no FAT-12 360K 1 No No No No BASICA EDLIN
1.25 1.01 1983 Zenith 360K no FAT-12 360K 1 No No No No BASICA EDLIN
2.0 2.0 1983 OEM 360K no FAT-12 10MB 1 No No No No BASICA EDLIN
2.0 2.02 1983 Compaq 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.0 2.05 1983 OEM
(INTL SUP)
360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.1 2.1 1983 IBM 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1983 OEM 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1983 Altos/ACT 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1985 ITT 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1984 Olivetti 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1986 Tandy ROM yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1983 TeleVideo 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.11 2.11 1983 Toshiba 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.13 2.13 1984 Zenith 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.2 2.2 1984 OEM
(Hangeul)
360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.25 2.25 1984 OEM
(INTL)
360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
2.3 2.3 1984 Toshiba 360K yes FAT-12 10MB 1 No No No No BASICA EDLIN
3.0 3.0 1985 OEM 1.2MB yes FAT-16 32MB 4+ No No BASICA EDLIN
3.1 3.1 1985 OEM
(NTWK)
1.2MB yes FAT-16 32MB 4+ No No BASICA EDLIN
3.2 3.2 1985 OEM 720K yes FAT-16 32MB 4+ No No BASICA EDLIN
3.10 3.10 1986 Multitech 720K yes FAT-16 32MB 4+ No No BASICA EDLIN
3.20 3.20 1986 Retail 720K yes FAT-16 32MB 4+ No No BASICA EDLIN
3.21 3.21 1987 OEM&
RETAIL
720K yes FAT-16 32MB 4+ No No BASICA EDLIN
3.22 3.22 1987 H.P. 720K yes FAT-16 32MB 4+ No No BASICA EDLIN
3.25 3.25 1987 OEM 720K yes FAT-16 32MB 4+ No No BASICA EDLIN
3.3 3.3 1987 Multitech 1.44M yes FAT-16 32MB 4+ No No BASICA EDLIN
3.3a 3.3a 1987 OEM 1.44M yes FAT-16 32MB 4+ No No BASICA EDLIN
3.30 3.30 1988 Retail 1.44M yes FAT-16 32MB 4+ No No BASICA EDLIN
3.30A 3.30A 1987 DTK 1.44M yes FAT-16 32MB 4+ No No BASICA EDLIN
3.30T 3.30T 1990 Tandy 1.44M yes FAT-16 32MB 4+ No No BASICA EDLIN
3.31 3.31 1989 Compaq 1.44M yes FAT-16B 2.1GB 4+ No No BASICA EDLIN
4.0
(mtsk)
4.0
(mtsk)
1987 abandoned 1.44M yes FAT-16 32MB 4+ BASICA EDLIN
4.1
(mtsk)
4.1
(mtsk)
1987 abandoned 1.44M yes FAT-16 32MB 4+ BASICA EDLIN
4.0
(IBM)
4.0
(IBM)
1988 IBM 1.44M yes FAT-16 32MB 4+ No Yes BASICA EDLIN
4.01
(IBM)
4.01
(IBM)
1989 IBM 1.44M yes FAT-16B 2.1GB 4+ No Yes BASICA EDLIN
4.01a
(IBM)
4.01a
(IBM)
1989 OEM 1.44M yes FAT-16B 2.1GB 4+ No Yes BASICA EDLIN
5.0 5.0 1989 Retail 1.44M yes FAT-16B 2.1GB 4+ Yes Yes Yes No QBASIC EDIT Yes Last/IBM
5.0 5.0 1989 AST 1.44M yes FAT-16B 2.1GB 4+ Yes Yes Yes No QBASIC EDIT Yes
5.0a 5.0a 1989 Retail 1.44M yes FAT-16B 2.1GB 4+ Yes Yes Yes No QBASIC EDIT Yes Split/IBM
6.0 6.0 1990 Retail 1.44M yes FAT-16B 2.1GB 4+ Yes Yes Yes Yes QBASIC EDIT Yes
6.2 6.2 1991 Retail 1.44M yes FAT-16B 2.1GB 4+ Yes Yes Yes Yes QBASIC EDIT Yes
6.21 6.21 1992 Retail 1.44M yes FAT-16B 2.1GB 4+ Yes Yes Yes Yes QBASIC EDIT Yes
6.22 6.22 1993 Retail 1.44M Yes FAT-16B 2.1GB 4+ Yes Yes Yes Yes QBASIC EDIT OPT Last Standalone
Suppli. Dsk.
7.0 7.0 1995 Win95 1.44M yes FAT-16B 8.4GB 4+ Yes Yes Yes Yes No EDIT no Part of OS
7.1 7.1 1996 Win95/98 1.44M yes FAT-32 32GB+ 4+ Yes Yes Yes Yes No EDIT No Part of OS
8.0 8.0 1999 WinMe/98SE 1.44M yes FAT-32 32GB+ 4+ Yes Yes Yes Yes No EDIT Yes Part of OS
7.01
GPL
7.01
GPL
1995
2000s
HACK 1.44M yes FAT-32 32GB+ 4+ Yes Yes Yes Yes QBASIC EDIT Yes *hack
So above should give you a good idea on the evolution of MS/PC-DOS up until when IBM Split off and DOS became a part of Windows 95 on up.
So Which Version do I Use?
That's the biggest problem to consider. TBH, in actuality, it's just whatever version you prefer personally, but sometimes, there might be a better use case for another version.

I think the first consideration is is your machine is proprietary or not. A lot of earlier (ie PC/XT class) 8088, 8086, and 80186 systems were so proprietary their version of MS-DOS might not work on another system. These include - but are not limited to: Tandy TRS-80 2000, HP-150, Various other PRe-1982 machines, the Tandy 1000 Series, and certain palmtop, PDA type, and portable machines before the late 1980's. There even is a questiion if a GENERIC version might work on these machines because some of them have funky floppy formats, weird graphics non-standards, and other oddness. So keep that in mind.

The next thing to consider is what CPU Class your machine is. Later machines (ie 386 and up), typically have some special functions that improve speed, usability, and are often required to run "of-the-era" or newer software. Honestly, if it's a 386 or newer - regardless if it's a SX or DX machine - you will want to use MS-DOS 5.00 or newer most likely, especially because that's the first version to include HIMEM.SYS XMS driver, and that driver is a HUGE piece of what makes a lot of late-era DOS software and Windows 3.1x work - which were the most popular software choices for such a machine. If we're using a Pentium or newer machine - ie - something made in 1995 or later - you might want to go with Windows 95 or newer if your hardware is up to the task, especially as we get further into the 1990's, because DOS does not support USB natively, and you will have a lot more options for functionality with a Pentium or later running Windows 95/98/Me on it.

Some people might ask "Well, why not just use Windows NT/2000/XP then!?!?" - well, here's why. Windows NT - is a whole different animal, and after NT 4.0, it stopped being called NT, and was called "Windows 2000 PRofessional" - which then was succeeded by XP, Vista, 7, 8.x, 10, and now Windows 11. Windows NT, despite being a Microsoft Product, does not function whatsoever like DOS does. The "DOS Command Line" you have in a Windows NT software product is really called the "MS-DOS Virtual Machine", and it functions in such as way that most oldschool DOS applications and software will not work properly with it ie - the #1 most noticeable idfference is your sound card will not play back audio from a DVM environment - it will just leverage the internal speaker. Because the DOS Virtual Machine environment in NT was meant for BUSINESS - not playing your old copy of Ultima VI from 1990. And right now, Microsoft is making efforts to kill off any "legacy" left in Windows - this includes the MS-DOS Virtual Machine (it's being replaced by POWERSHELL!!!), and therefore, even if it did work, it's on it's way out.

The whole reason for the table below - of course - is to enable you to make up your own mind on what versions of MS-DOS to use for certain purposes.

But with all the alternatives out there - why MS-DOS? or for that matter PC-DOS?
Arguments for MS-DOS/PC-DOS
The primary arguement is that it is the most likely legacy solution to work. All of our legacy software and legacy hardware, was designed to run on MICROSOFTS proposed solution. And because of that, things will work right.

Probably the #1 arguement for it for me as a gamer, is two particular games: Ultima VII! See, Ultima VII parts 1 and 2 used this goof-o memory manager known as "VooDoo" that REQUIRES the regular, bog-standard, Microsoft, HIMEM.SYS - to give you any chance of the game running right on original hardware. FreeDOS refuses to work with it because you could even have 616K of 640K Free in FreeDOS, and it STILL refuses to even launch - claiming that you don't have at least the "527KB" required of base memory to play the game - seems that VooDoo is Mathmatically challenged, but hey, I never knew of a Witch Doctor who was also a Mathmatician - so go figure.

Another arguement for MS-DOS or PC-DOS, is, like I said, proprietary legacy systems. For example, you have a Tandy TRS-80 2000 - sure, it runs DOS, it has an x86 CPU, but it uses proprietary floppies (720K 5.25" diskettes - you read that correct), proprietary add-in cards (Tandy's own bus), uses TRS-80 derived components mixed with DOS-compatible hardware, and has it's own graphics I believe too. As such, the only thing you can run on it, is what Tandy/Radio Shack issued for it in 1982, not just pull out 6.22 and slap it on there, 6.22 offers no benefit.

And the last arguement for it is because it's a lot smaller than say, FreeDOS. While FreeDOS is awesome, and I'm considering getting into giving feedback on it, if you're trying to install it on an older system, like a 386 or a 286, where CD-ROM booting might be an impossibility - then you have to have a modern computer with some access to a floppy disk drive to create the boot media required to get FreeDOS on the machine. And even then, with a 286 or older, you might not be able to get a CD-ROM setup that will work with it, so now you're stuck with floppies. But MS-DOS? It only came on FLOPPIES! (except in very limited circumstances). And back in the 1980's and early 1990's, people could buy it in any format needed whether that was 360K DSDD 5.25", 720K DSDD 3.5", 1.2M HD 5.25", or 1.44M 3.5" HD diskettes - and install it starting with Disk 1, and it takes about 5 minutes.


Arguements AGAINST Ms-DOS/PC-DOS
Well, the first argument against it in my book is the lack of modern development for it. Thing is, FreeDOS is still supported and still being updated all the time. MS-DOS, however, is a legacy product, and will be forever and ever and a day at this point. And while most things that work on FreeDOS will work on Ms-DOS, there might come a time where FreeDOS could gain popularity to a point that MS-DOS will be more of a curiosity than an actual need for someone runnign legacy hardware.

For starters, MS-DOS's memory management is left in the dust by FreeDOS as my comment about Ultima VII should mention. I mean, I'm getting sometimes over 600K free with all my drivers loaded out of that - something people STRUGGLED with with MS-DOS in the ealry 1990's especially when trying to run things like Ultima VII or Doom. This is all because of improved XMS and EMS drivers, and DPMIs (ie DOS32.EXE vs DOS4GW.EXE - HIMEMX.SYS vs. HIMEM.SYS, JEMM386.EXE vs. EMM386.EXE). There's even a HIMEMSX.SYS driver that can address over 4GB of RAM in DOS now. And while yes, these could be applied to Microsoft's O.G. version, there's no guarantee they'll work, or be stable enough to be beneficial over the old standbys.

Another issue is that newer alternatives and distributions - is you don't get a full featured operating system out of the box. Which is one reason FreeDOS is bigger and requires a friggin CD.

With MS-DOS, you got the kernel and basic IO drivers, configuration files, and then a plethora of very basic-level commands with it (XCOPY, BASICA, EDLIN, etc.). With FreeDOS, you get all that + a web browser, TCP/IP stack, modern archiver utilities, abilities that cross over to a modern Linux distribution - I mean seriously, if they made a WPA2-PSK client for it and a modern TLS E-mail client with modern encryption, and maybe a lightweight streaming client(s), or even some Social Media Clients - DOS could be a pretty serious geek-level competitor still to present-day Linux and WIndows. This means my 486 with freeDOS acts more as my "Tweener" than as a "legacy" device with FreeDOS. I surf the web with it, I download files, sometimes over a gigabyte in size - on a computer from a time when hard disks were not even that big! So have something so functional out of box that runs on such old hardware is quite an awesome thing.

Now one could counter though - "but you could just download all athat shit and install it on MS-DOS 7 and have the same thing" - and yes, that KIND OF is true, the truth is, with FreeDOS, I can just kick off the install, or FDIMPLES, and let it do that autonomously like a modern operating system - I can't do that with MS-DOS. With MS-DOS, I have to install and configure a TCP/IP Packet Driver, Network Stack (MTCP), and a web browser (using the HTGET program in mTCP) - then I have to configure the browser (wattcp.cfg for Links), then I have to run Links, and do a web search for each discreet component of the operating system, and pray I can find them, and pray that GitHub will let me download it without some stupid scripted method of download abstratciion getting in my way. Then, once I have all those, I have to go through the process of deciding what goes in the C:\DOS directory for global use, and what gets it's own dedicated directory and on which drive (out of the 4 typical I have). Whereas, by then, with FreeDOS, it'd already be installed, base-level configured, and ready to go on the next reboot like a modern Linux or Windows installation.

So as you can see, there might be some use cases where you might want to try an alternative, where it might benefit you.