Computer Graphics in DOS

We know DOS primarily as a text-mode operating system. You turn on your DOS VM and it logs you into a command prompt. But DOS also allows for some pretty neat 8-bit graphics, which can add flavor to the sometimes dry and boring CLI. In this article I will be exploring the many aspects of computer graphics in the DOS world.

Graphics cards

The standard for PC graphics cards went through a number of revisions during the heyday of DOS. CGA, EGA, TGA, Hercules, so many different ones to choose from. Eventually they seemed to settle on VGA, which became the de facto standard for IBM PCs.

Whenever you are using graphics programs in DOS, it is important to select the proper graphics card, because otherwise the graphics won’t display properly. Many of these graphics cards were produced by IBM as you can see. Then there was Tandy Graphics or TGA (not shown here) which was of course created by Tandy Radio Shack.

One interesting hack you can use if you fancy the old-fashioned monochrome look is you can select a monochrome card like AT&T or Hercules. This won’t affect the functioning of the program, but it will cause everything to display in monochrome rather than in color. I did this for GEM in one installation.

Mode 13

In order to display graphics, DOS has to actually switch to a different mode in the VGA BIOS. The standard BIOS mode for graphics is Mode 13h, also known as Mode 13. This provides an 8-bit color palette (256 colors) where each byte corresponds to a single pixel.

An easy way to access this graphics mode is with the QBASIC feature in MS-DOS. QBASIC allows you to switch modes and draw graphics easily using several drawing primitives as well as commands that allow you to specify sprites using arrays of numerical codes (one corresponding to each pixel of the sprite). Here are a couple graphics I created while playing around with Mode 13 in QBASIC:

You can read more about my QBASIC programming in the articles listed under my QBASIC tag on this site.

Mode 13 is used by a number of other programs as well. For example, the spreadsheet in Microsoft Works uses it to draw graphs and charts.

The DOS version of MATLAB also uses Mode 13 to graph mathematical functions.

Enabling the mouse

Many graphical programs in DOS require the use of a mouse, but DOS does not have mouse support by default. To add mouse support, you will need to install a mouse driver, and you will need to load it every time DOS starts up. The driver that I always use is called CuteMouse. It is an open source program that is freely available on the Internet.

To install CuteMouse, first go to the SourceForge page here. Download the Zip file and unzip it, then use a program like WinImage to create a floppy image from the directory. Insert the floppy into your virtual floppy drive and then use the following commands:

C:\> a:
A:\> xcopy /s bin c:\ctmouse

Add the path for the CuteMouse directory to the PATH variable in AUTOEXEC.BAT and then add the following line below it:


This will cause DOS to automatically load the CuteMouse driver into upper memory when you start it up. Then you will always have mouse capabilities when using DOS.

CuteMouse also comes with a nifty mouse test utility that tracks the mouse’s movement while you’re using it:

Graphical shells

Even though DOS is a text-mode operating system, graphical shells were available for DOS almost from the very beginning, starting with VisiCorp’s VisiOn in 1982. In 1985 Microsoft released the first version of Windows, which at the time was a simple graphical shell and not an operating system. Around the same time, Microsoft started including DOS Shell as the default graphical shell in MS-DOS, while offering Windows as an alternative. Eventually Windows became more popular than DOS Shell and Microsoft turned it into a full-fledged graphical OS based on DOS.

As you can see, DOS Shell was nothing like the windowing environment that would come to dominate the GUI scene in the late 80’s and early 90’s. Instead of windows it had panels, which could be used for file browsing and other functions. DOS Shell can be run as either a TUI or a GUI.

The screenshot above is Windows 3.1, one of the last versions of Windows to be released as an add-on graphical shell rather than as an operating system. As you can see, it has most of the basic windowing features of later versions of Windows, but lacks the taskbar at the bottom.

Other creators of DOS systems made their own graphical shells. For example, this is GEM, which was created by Digital Research for DR-DOS:

Then there’s Tandy Deskmate, created by Tandy Radio Shack for the Tandy 1000 line of computers:

Deskmate is similar to DOS Shell in that it’s not a windowing environment. However, a lot of the graphics in Deskmate are quite a bit more sophisticated, and it uses actual images. Deskmate’s approach to the GUI concept is rather interesting and is different from most.

Then there’s QuarterDeck’s DesqView/X, which brought the X Window System to DOS:

DeskView/X has a fully functional X server that can run over a network, and it also supports multitasking.

Several other graphical shells were created for DOS over the years, more than I can go over in this article. Those were just five of them, so that you can get a feel for what’s out there.

Menu-driven interfaces

Character-based menu interfaces, also known as menu-driven interfaces or MDIs, are sort of a transitional phase between the command line and the GUI. They are commonly known as text user interfaces or TUIs, though technically a TUI doesn’t always have menus. In an MDI, everything is text-based, but the program is full-screen and has a mouse pointer and a menu bar. Sometimes menus and dialogue boxes are made with box-drawing characters, which in the case of DOS, are taken from the CP-437 character set (the default for IBM PCs).

There are three menu-driven file managers for DOS that managed to become very popular. They are Norton Commander, DOS Navigator, and XTree Gold.

Norton Commander was released in 1986 by Peter Norton Computing. It was available for not only DOS, but also Windows and OS/2. Its interface (known as orthodox file manager of OFM) was widely imitated by other file managers, including DOS Navigator as well as the Midnight Commander file manager used by Linux.

DOS Navigator was released by Ritlabs in 1991. It can be seen as an evolution of Norton Commander, with a menu at the top that allows for far more sophisticated capabilities than its predecessor. In 1999, Ritlabs open-sourced the project, leading to a number of forks maintained within the open source DOS community.

DOS Navigator has a number of neat features, including a Tetris game:

The last MDI on the list for today is XTree Gold, created by Executive Systems and first released in 1985. XTree Gold has a paneled interface like most other text-mode file managers, but its approach to displaying files is based on the directory tree structure rather than listing all the files in the current directory.

XTree Gold spawned a number of clones, such as ZTreeWin and YTree. There is a small but vocal community of enthusiasts centered around the program, and they have created an entire website for it which can be found here.

Adjusting DOS’s appearance

DOS allows you to change the appearance of the interface in text mode. You do this using a suite of programs called Norton Utilities. One of the utilities included in the Norton Utilities package is the Norton Control Center, which allows you to adjust various parameters, such as the cursor size, color palette, etc.

Here is a screenshot of the Norton Control Center panel that allows you to change the color palette:

You can also change the video mode. This means you can cause the text to be smaller so you can fit more lines on the screen.

Paint programs

Paint programs nowadays are pretty straightforward. They’re typically used on a tablet, where you draw a picture with your finger or with a stylus, and the program will do various visual effects on the drawing. You can get some pretty good definition this way, because you’re drawing much the same way you would draw on paper. But paint programs back in the early days of computing were a lot different. You had to draw everything using the mouse, and the pixels were large so the drawings would often look blocky.

Probably the quintessential paint program for DOS back in the day was Deluxe Paint. It was originally written for the Commodore Amiga computers, but was made available for DOS as well. It was also available for the Atari ST and the Apple IIGS.

Deluxe Paint has a number of commands, which can be accessed from the menu bar at the top. I’ve played around with this program in the past, but honestly I’ve barely explored it, and don’t even know what most of these commands do. At some point I want to get around to exploring this program some more.

There were a few major releases of Deluxe Paint. Version 2.0 is quite a bit more advanced that Version 1.0 and has been adapted for better graphics cards that were available at the time. I’ve used both of these, and I tried out Version 1.0 just for kicks. I found it to be so primitive that it doesn’t even recognize the VGA card provided by the VirtualBox VM, and I was basically limited to monochrome drawings.

Still has some interesting features even in the first version. Here I was experimenting with writing text using different fill patterns.


Screensavers are also available for DOS. These screensavers act as TSR programs that activate after a certain period of idle time. A TSR (terminate-and-stay-resident) program is run once and then puts a stub of itself in upper memory so that it can run in the background all the time. It’s sort of a primitive version of the daemon processes used in Unix and Linux. It’s not true multitasking, but it can act like multitasking in some ways.

After Dark is a program that provides a suite of screensavers for DOS. It was also made available for Windows and for the Macintosh computers. It’s a TSR program, which means you run it once, and then it activates when the computer is idle for a certain period of time.

You control After Dark using the After Dark Panel:

This allows you to select which screensaver will play when After Dark is activated.

Here’s a sample screenshot of the Aquatic Realm screensaver:

Interestingly, the Arachne browser (a graphical web browser for DOS) also has its own screensaver that activates after a certain idle time. This screensaver is a demo of the famous display hack known as Munching Squares.

Well, that’s about it for computer graphics in DOS. So farewell and happy retrocomputing.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s