When I was a kid, I always wanted to be a computer scientist. So when I got my first PC, I was ecstatic. It had MS-DOS on it and I could just start programming! I quickly learned that MS-DOS was not as user-friendly as Windows or MacOS. But it was still a great platform for programming because you could use the command line to do things like create files and folders, run programs, and even change the system settings. One of my favorite features of MS-DOS was the ability to run programs in batch mode. This allowed you to run multiple programs at once without having to worry about launching each one individually. This feature is especially helpful when you want to create a new program or update an existing one from scratch. Despite its shortcomings, MS-DOS remains an important part of PC history because it gave us the ability to create powerful computers that are still in use today.


Consumer PCs didn’t always run Windows. Before Windows arrived, PCs came with Microsoft’s MS-DOS operating system. Here’s what the command-line environment was actually like to use.

No, MS-DOS was not just like using the Linux terminal or firing up the Command Prompt in a window on your fancy graphical desktop. Many things we take for granted just weren’t possible back then.

The DOS PC Experience

DOS was a command-line operating system with no graphical windows. You booted up your computer and then saw a DOS prompt. You had to know the commands to type at this prompt to launch programs, run built-in utilities, and actually do something with your computer.

RELATED: What Are the Windows A: and B: Drives Used For?

You had to know a few commands to get around the operating system. To switch between different drives — for example, to access a floppy drive at drive A: — you’d type something like A: at the prompt and press Enter.

To change directories, you’d use the CD command. To view the files in a current directory, you’d use the DIR command. To run a program, you’d type the name of the program’s executable file at the prompt.

For example, if you picked up a new floppy disk with an awesome new program on it, you’d push the floppy disk into your floppy drive — waiting while the loud magnetic drive read the contents of your disk — and then run commands like the following:

You’d then go through the installer and install the program — basically just extracting the files — to a folder on your tiny hard drive. You’d often have to swap floppy disks because larger programs didn’t fit on a single floppy, but afterwards you could run the program without using a floppy disk.

DIR

SETUP or INSTALL (depending on the name of the program’s installer)

You’d then run the C: command to go back to drive C, use the CD command to enter the folder containing your installed program, and run the program with a command like PROGNAME. The program file’s name would have to be that short, too — MS-DOS limited file names to eight characters followed by a period and a three-letter extension. For example, PROGNAME.EXE is the longest file name you could have.

Some programs tried to simplify things for typical users. For example, you had file managers like Norton Commander that provided for viewing and managing files without needing commands. This is the style of most DOS programs you’d find — it’s all about arranging text on the screen.

No Multitasking

Forget multitasking; DOS did one thing at a time. When you opened a program, that program took up your entire screen. Want to use another program? You’d need to close the current program and enter the command to open the other program.

To get around this limitation, DOS provided a “terminate and stay resident” (TSR) function. A program that supported this feature could hook into a keyboard shortcut. You’d press the appropriate keyboard shortcut and the current program would shut down and stay in memory. The other program would then load itself from memory.

TSR isn’t really multitasking. The program isn’t actually running in the background. Instead, it’s shut down and there’s a quick way to relaunch it. DOS can only run one program at a time.

This is significantly different from modern shells like the ones found on Linux, which allow you to run programs and services in the background, use multiple text-mode terminals, and do other advanced things. DOS was nowhere near as powerful as that.

Hardware Support and Real Mode

DOS didn’t really support hardware devices in the way operating systems support hardware today. Programs that needed to directly access hardware — for example, a DOS game that wanted to use your sound card to output sound — had to support that hardware directly. If you were developing a DOS game or a similar application, you’d have to code in support for all the types of sound cards your users might have. Luckily, many sound cards were Sound Blaster compatible. You’d use a SETUP program to configure this setting separately for each program you used.

RELATED: How To Use DOSBox To Run DOS Games and Old Apps

Because of the way DOS worked, programs that wanted to directly access memory and peripherals needed to run in real mode, or real address mode. In real mode, a single program could write to any memory address on the on the computers hardware with no protection. This only worked because you could only run one program at a time. Windows 3.0 brought protected mode, which restricted what running applications can do.

To this day, you still can’t run many DOS games in the Command Prompt on Windows. The Command Prompt runs applications in protected mode, but these games require real mode. This is why you need DOSBox to run many old DOS games.

Windows Was Just Another DOS Program

The original popular versions of Windows — think Windows 3.0 and Windows 3.1 — were actually programs that ran under MS-DOS. So you’d start your computer, see the DOS prompt, and then type the WIN command to launch the Windows program, which gave you that Windows 3-style desktop, known as the Program Manager. Of course, you could have your computer automatically launch Windows by adding the WIN command to your AUTOEXEC.BAT file and DOS would automatically run the Windows command when you booted.

You could exit Windows and go back to DOS, which was actually necessary at the time. People had DOS applications and games that required real mode and couldn’t be run from within Windows.

Windows 95, 98, 98 SE, and ME pushed DOS further to the background. Windows 95 acted like an operating system of its own, but DOS always lurked in the background. These versions of Windows were still built on DOS. It was only with Windows XP that consumer versions of Windows finally left DOS behind and switched to a modern, 32-bit Windows NT kernel.

The Windows desktop is now regarded by many people — even Microsoft themselves — as a relic that’s out-of-date in an age of simplified mobile interfaces and touch screens. But there was a time when the Windows desktop was the new, user-friendly interface.

Image Credit: mrdorkesq on Flickr