I find it very amusing that IBM called their PC exactly that, “PC.” I’m very glad Microsoft didn’t call their initial OS as just “OS.” At least they had the decency to prefix it with something, even if just Disk. IBM had even called their next OS as “OS/2.” All this would be like if Ford had called their first car the “Automobile” instead of Model-T (as if Benz hadn’t also been making automobiles). That is, it’s not like there weren’t other PCs and DOSs in the world even by in 1981: Commodore/Apple well established the home/office personal computer as early as 1977, and Tandy was maturing their TRSDOS system as early as 1979.
So, when one just says “DOS” is can be confusing on exactly what software they are talking about (or even what platform). It depends on context and what time period. In most cases, in the context of talking about an IBM PC, people will be talking about “MS-DOS.” But that wasn’t the only OS available even to the IBM PC.
INTRO: A (floppy) disk is just one means of conveying the software that represents the operating system (floppy because the disk has some flex, you can bend it slightly). More recently, “DOS” is now bootable from a USB thumb stick, but is still called DOS instead of UOS. If you take the outer case of a disk off, the actual disk inside resembles an old vinyl record (in miniature). But vinyl records can only be written-to once (the grooves are hard pressed when made, and friction from the needle will eventually wear out grooves). Disks are amazing because they use a magnetic field to indicate state, this field can be adjusted to alter the state (i.e. to write new data to the disk), and this field remains when power goes out. An absolutely amazing application of physics!
NOTE: Use the excellent tool WinImage to view or create new disk images for the IBM PC.
The main Operating System options for the IBM PC are PC-DOS, MS-DOS, and DR-DOS (that is, of the “classic” commercially available mainstream options). The relationship between them takes awhile to explain. Anyone approaching the IBM PC for the first time would naturally ask, “Which one should I use?”
My view is the PC-DOS was the most “pure” with respect to the IBM PC 5150. It was IBMs DOS baseline that was assured to work with their hardware product. But almost immediately after the IBM PC launch, IBM began work on another project called OS/2 and the “386,” so they didn’t put as much effort into maturing their PC-DOS as extensively as MS-DOS and DR-DOS did on their 8088-compatible products.
On the other hand, DR-DOS legacy is from CP/M, which was a popular system that predated MS-DOS. The evolution of CP/M pushed the envelop of what the 8088 could do, specifically in terms of multi-tasking. There was a bit of “extra” quality (in terms of capability) with CP/M, but there was a bit of miscommunication as CP/M missed out on being IBMs first pick for an OS.
Just by a peculiar set of circumstances, the “2nd choice” of MS-DOS did end up becoming the leading OS used on the IBM PC. Respectfully, PC-DOS 1.0 was the first actual operating system for the IBM PC. Microsoft was still determining their position, not wanting to become absorbed by IBM. This gave Microsoft some agility to work with multiple other vendors, to help them create their own DOS-flavors that took advantage of nuances of their IBM PC-clones being developed (like Compaq and Tandy). Eventually, Microsoft just straight up began selling MS-DOS on the shelves, and cost-cutting PC-DOS when doing so.
Microsoft played their hand well. And to their credit, it wasn’t really a horrible system: essentially managing 10-segments to make them appear as one contiguous conventional block of RAM, defining adequate disk formats and folder conventions, providing hooks for drivers, and working with the industry and developer-community to help understand how all this worked, facilitating the creation of an extensive diversity of software applications.
But some things could have been done better: the 8.3 filename convention was restrictive, no multi-user account support, no multi-tasking support. The very smart people at Digital Research (DR) almost beat Microsoft at their own game, by providing superior features. But Microsoft had the momentum and could cost-cut anyone to death (or had their own technical talent to catch up with competitors).
All of PC/DR/MS DOS are compatible with each other. So we can call them “PC-DOS compatible” or “MS-DOS compatible.” The “DR-DOS” name came later, in 1988 (even though it had an earlier lineage via CP/M), so we typically don’t think in terms of “DR-DOS compatible.”
The “best” version to use depends on what you’re trying to do (especially when it comes to size of fixed disk to be supported or how much system RAM is available). Wikipedia has a great summary of the differences between DOS versions, available here. But here is my brief summary:
PC-DOS 2.10 is the “best” PC-DOS since it is the oldest practical format to work with (180KB), you can add files to the disk, and it has all the same BASIC examples as the original PC-DOS 1.0. PC-DOS 1.x 160KB format has more challenges to deal with (when using emulators). NOTE: You can run up to PC-DOS 3.00 with 64KB RAM, then PC-DOS 3.20 requires more than 64KB RAM.
DR-DOS 3.41 allows >32MB partitions (up to 128MB) and can be installed while having 256KB of RAM. Otherwise, any version 4 or newer will require 512KB to be installed. One disadtanvage about DR-DOS 3.41 is it doesn’t include BASICA or GW-BASIC. [ notes on history of DR-DOS ]
MS-DOS 6.22 is generally the “best” MS-DOS, if you have full 640KB or more of RAM.
4DOS is a nice COMMAND.COM alternative.
For listing files, I highly prefer my CDIR program.
Common DOS Commands
These commands still work in a modern Windows Command Line prompt.
F: go to drive F: cd \ change to the root folder cd \alpha from root directory of current drive, go to alpha cd alpha from current directory I'm at, go to alpha cd e:\alpha change the current folder for when I'm on drive E: to be the alpha folder off of root dir list files in the current folder mkdir alpha make a directory called alpha rmdir alpha remove empty directory called alpha (some versions of DOS can accept just using "rm") del foo.txt delete file in the current folder called foo.txt ver list the current DOS version copy f:\a.txt a:\b.txt copy a.txt from F: root over to b.txt in the A: drive root type a.txt list contents of a.txt to the terminal window
DOS Startup Files (AUTOEXEC.BAT, CONFIG.SYS)
By convention, when DOS is loaded/booted, one of the first configuration file it will look for is the config.sys file.
For reference, here is the AUTOEXEC.BAT that I use:
NOTE: If you don’t have AUTOEXEC.BAT file, then on started DOS will prompt you for the current date and time.
CONFIG.SYS should contain:
BUFFERS=15 (relates to pre-allocated disk access buffers)
AUTOEXEC.BAT can contain:
PROMPT $p$g (set prompt to show current path and include a > at the end)
PATH=C:\DOS; (add additional paths as needed, separated by semicolon “;”)
64KB CONTENT (software titles that will work for 5150s with as low as 64KB RAM)
PC-DOS 3.0 is the last version that will work with 64KB RAM (PC-DOS 3.2 does NOT and will give message “Configuration too large for memory”).
256KB CONTENT (software titles that will work for 5150s with as low as 256KB RAM)
Wheel of Fortune 2
The original IBM Wheel of Fortune was an unlicensed BASIC(A) program, written by Phil Katz in 1984. See here. An official licensed Wheel of Fortune was made available in 1987 (with CGA graphics and sound similar to the original popular TV show). Newer versions were released essentially every year thereafter. I prefer the WOF2 1988 version.
WHEEL OF FORTUNE 2
KING’S QUEST 1
SPACE QUEST 1
Multitasking in IBM PC DOS
Multitasking on an 8088 (or any of the original desktop personal computers) was a significant challenge. These early processors were barely capable of running one program at a time, let alone multiple of them. As a single processor, true parallel processing was not possible. But with clever use of interrupts, a sort of “simulated” parallel execution could take place.
Some of the earliest attempts were CP/M Concurrent DOS and IBM TopView. I’m not personally familiar with those solutions. In my old SysOp days, I did use DESQView. This was likely one of the prime uses for multi-tasking: to be connected to a BBSs then swapping to DOS to lookup some other information (verify location and size of a file, adjust some config setting, lookup a note in a text file or database, do some general file management, or even compile some other software). The system had to maintain the serial connection, which maybe was performing a file download in the background.
There were constraints to which programs could be multi-tasked. Generally, “text-based” programs were suitable (Lotus 1-2-3 and WordPerfect for example, or Turbo Pascal and TheDraw). But graphical programs were typically too intensive (or required too much memory). “Swapping” was supported, which allowed “task switching” but the programs swapped out of memory were no longer resident and had their execution suspended.
Users had to be savvy about aspects of the programs they were trying to multi-task, and a “PIF” format was defined as a standard way to try to express details about programs to help guide how to multi-task them. So while multi-tasking was certainly possible on the IBM PC 5150 (8088 @ 4.77 MHz), it was a limited capability just due to the hardware available.
By the late 1980s, the 80386 based PCs began to significantly increase the hardware capability. By 1994, both OS/2 and Linux were available for the ’86 platform, both featuring an impressive multi-tasking capability (with OS/2 also including MS-DOS support).
Below are sample of DESQView 2.25 (1988!)…
The main thing to know about DESQVIEW is that you press ALT to activate the popup window.
- Go to Add a Program, highlight “DOS (128K)” and SPACEBAR (select it), and relabel the addition to other amounts of memory (and adjust the memory usage – just tab over to it). You’ll also have to tag the entry as something unique (2 characters; maybe it uses these to “tag” which segments the program is using)
- I can run mTCP telnet in one window, then casual activities in the other window (generally any other text-based application, or just DOS file management stuff)
- I haven’t yet tried download a file in the background (e.g. using a Terminal program with WiModem232)
- Some programs are “rude” and do direct screen access, for those you can ZOOM them in DESQView so that they become full screen when you switch to them.