Reviving old tools and games with FreeDOS

What's Old Is New

Article from Issue 234/2020

The FreeDOS Project turned 25 years old this year. We'll show you why a free version of DOS is still cool in 2020.

Throughout the 1980s and into the 1990s, I was a great fan of MS-DOS. Our family had a PC at home, and I grew up writing my own programs and tapping out commands on the DOS command line. I considered myself a DOS "power user." I even wrote my own programs and utilities to enhance and expand the DOS command line.

In Spring 1994, I was finishing my junior year in physics at the University of Wisconsin-River Falls. It was around this time that I started to read articles in trade magazines where Microsoft announced that the next version of Windows would do away with MS-DOS. Have you used Windows 3? I found it to be clunky and slow, no match for MS-DOS and the stable of mature DOS applications and utilities. I decided that if Windows 4 would be anything like Windows 3 (Figure 1), I wanted nothing to do with it.

Figure 1: The author found Windows 3 clunky and slow.

In contrast, MS-DOS was fast and stable and offered a mature set of applications that ranged from spreadsheets to word processors to communications systems to games (see the box, "Memorable DOS Applications and Games"). I used them all: Lotus 1-2-3 and As-Easy-As spreadsheets to analyze physics lab data, WordPerfect and Galaxy word processors to write class papers, ProComm and Telix to dial into the university's computer lab, and Doom and TIE Fighter to relax when not doing work.

Memorable DOS Applications and Games

The DOS environment was home to many classic applications and games. A few of my favorites are…


For a while in the early to mid 1980s, WordStar (Figure 2) was the most popular word processor program for DOS. Its remarkably simple user interface makes it easy for beginners to get started, but its powerful word processing features continue to support expert users.

Figure 2: Editing files in WordStar was pretty simple, but plain.

Author George R.R. Martin famously remarked that he writes his books using WordStar on DOS. And it's hard to deny the appeal of distraction-free writing with WordStar.


DOS was popular in office environments, and it's hard to imagine an application better suited for the office than a spreadsheet. Written by Dan Bricklin and Bob Frankston, VisiCalc (Figure 3) was the first spreadsheet for personal computers. While it lacks features common in modern spreadsheet programs, VisiCalc still feels familiar.

Figure 3: Managing class grades in VisiCalc, the first spreadsheet program for personal computers.

If you're interested in trying VisiCalc for yourself, Dan Bricklin released the original DOS program for free via his website [1].


DOS had a ton of games, but none is so iconic as the original Doom (Figure 4). While not the first shooter, Doom quickly became the metric against which other games measured themselves. Pick up your shotgun and prepare to gun down some imps and demons.

Figure 4: Playing Doom: You got the shotgun!

I preferred DOS over Windows. And in 1994, Linux wasn't ready as a full operating system replacement for me.

I'd already installed Linux by this point. I found the Softlanding Linux System (SLS) the year before, on a friend's recommendation. Linux sported a powerful command line with the same tools that I had already used in the university's Unix computer lab. And Linux came with the source code, so self-taught programmers like me could study the source code and learn from it.

I looked at Linux as a model. If programmers from around the world could come together to create an advanced system like Linux to replace Unix, then surely we could do the same with DOS. If Microsoft was abandoning MS-DOS, it was up to us to create our own version of DOS to replace it.

Launching an Open Source Software Project

On June 29, 1994, I made a small announcement on comp.os.msdos.apps about my idea.

"Announcement of PD-DOS Project:

"A few months ago, I posted articles relating to starting a public domain version of DOS. The general support for this at the time was strong, and many people agreed with the statement, 'start writing!'

"So, I have…

"Announcing the first effort to produce a PD-DOS. I have written up a 'manifest' describing the goals of such a project and an outline of the work, as well as a 'task list' that shows exactly what needs to be written. I'll post those here, and let discussion follow."

I thought "PD-DOS" was a good name at the time. As I wrote in a manifesto posted to the same group, PD-DOS was short for "Public Domain DOS," because we would create our own implementation of DOS.

"I would like to form a group that will, eventually, create another implementation of MS-DOS. DOS appears to be a popular system, and there is plenty of hardware already available that is ready to support it. Microsoft will not develop DOS forever, and one cannot count on 'other' commercial programming firms such as IBM or Digital to continue enhancing DOS. I feel it is then up to those on the Internet to develop their own 'Public Domain DOS' (hereafter, PD-DOS) and I feel there is a lot of support for this from people on the 'net'."

People thought this free DOS project was a pretty neat idea, and several people contacted me right away to volunteer their time. Like me, they had also written their own extensions to MS-DOS. Soon, we had collected utilities that reproduced much of the MS-DOS commands, and others that introduced improved features.

But it didn't take long to realize that Public Domain DOS was the wrong name. Our manifesto set the goal that "Any effort that goes into writing a PD-DOS would … be released under the GNU General Public License." This made our project not "public domain" software, but "Free" software. We changed our name to Free-DOS about a week after the PD-DOS announcement. We later dropped the hyphen to just FreeDOS.

We made our first Alpha release in September 1994, just a few months after the announcement. And we released FreeDOS Alpha 2 a few months later, in December 1994. We were off to a great start.

You may be familiar with our other milestones. We released Alpha 3 through Alpha 5 over the next few years, finally moving on to Beta releases starting in 1998. Over the next several years, we slowly made our way from Beta 1 to Beta 9 SR2. In 2006, we finally released FreeDOS 1.0. Things slowed down after that, with FreeDOS 1.1 in January 2012, and FreeDOS 1.2 in December 2016 [2] (See the box, "How to Get Started with FreeDOS"). MS-DOS stopped being a moving target long ago, so we didn't need to update as frequently after the 1.0 release.

It's About the Community

The FreeDOS Project has been around for over 25 years. We passed our milestone anniversary on June 29, 2019.

FreeDOS got to where it is because developers worked together to create something. In the spirit of open source software, we always contribute to each other's work by fixing bugs and adding new features. We treat our users as codeveloper; we try to find ways to include people according to their talents, by writing code or writing documentation. And we make decisions through consensus based on merit. If that sounds familiar, it's because those are the core values of open source software: transparency, collaboration, release early and often, meritocracy, and community.

I think FreeDOS remains active due to the number of developers who continue to work on it. While many of our original developers have dropped off, we make it easy for new developers to join. You can download the FreeDOS 1.2 distribution and immediately start coding in C, Assembly, Pascal, BASIC, or a number of other programming languages.

Today, many people around the world install and use FreeDOS to play classic DOS games, to run legacy business software, to develop embedded systems, or to install a BIOS update. These days, I think that still represents most of the usage of FreeDOS. Although I'll admit most people probably run FreeDOS to play DOS games, and that's okay with me. DOS had a lot of great games.

FreeDOS has grown into a modern DOS. We've moved beyond "classic DOS" and now FreeDOS features a selection of open source development tools including compilers, assemblers, and debuggers. We have lots of editors beyond the plain FreeDOS EDIT editor, including Fed, Pico, TDE, and versions of emacs and vi. FreeDOS supports networking and provides a simple but functional graphical web browser (Dillo, Figure 9). And we have a collection of Unix-like utilities, which should make Linux users feel at home on the command line. (See box, "How to Install DOS Applications.")

How To Get Started With FreeDOS

Installing an operating system may seem daunting, but FreeDOS makes it easy. Like modern Linux distributions, the install program in FreeDOS 1.2 guides you through each of the steps to set up your hard drive and install everything. Here is a quick breakdown to installing FreeDOS on your computer.

1. How do you want to run FreeDOS? Most people use FreeDOS to play classic DOS games or to run the occasional legacy DOS application. If that's you, then you probably don't want to replace your current operating system. Rather, you will likely want to install FreeDOS inside a PC emulator or a virtual machine. FreeDOS runs well in all the major PC emulators, such as VirtualBox, Qemu, or Gnome Boxes. So to get started, you'll want to have one of these virtual machines ready to go.

2. Booting the CD-ROM installer gives you a menu (Figure 5). You can choose to install FreeDOS or boot from the system hard disk or from a diskette.

Figure 5: Booting the FreeDOS install CD-ROM.

3. Select your preferred language; then welcome to the FreeDOS 1.2 install program.

4. If your C: drive isn't partitioned for DOS, the installer detects that. To partition your hard drive, the installer jumps to the FDISK program (Figure 6).

Figure 6: Partition your hard drive with the FDISK program.

5. Select 1 to create a DOS partition as your C: drive. At the next screen, select 1 to create the primary DOS partition. FDISK creates your C: drive partition and marks it as "Active." After you partition your hard drive, you need to reboot for FreeDOS to see the changes.

6. After rebooting, the installer starts up again automatically. Select your preferred language and continue with the installation. Since you just created your DOS partition, the installer can format it for you (Figure 7).

Figure 7: You'll be prompted to format and erase your new FreeDOS partition.

7. The FreeDOS 1.2 installer has two default install modes: install only those packages that reproduce the functionality of classic DOS (Base) or install everything (Full). Because FreeDOS is open source software, we give you the option to install source code, too.

8. Then sit back and let FreeDOS install itself. This may take several minutes, especially if you installed everything (Full).

9. Now reboot your system to begin using FreeDOS.

10. That's it! You are now using FreeDOS! (Figure 8)

Figure 8: The FreeDOS 1.2 command prompt, after booting.
Figure 9: The Dillo web browser is a simple yet functional graphical web browser. It is included with FreeDOS 1.2.

But under the hood, FreeDOS is still DOS. And that comes with a certain set of assumptions and limitations. Like any DOS, FreeDOS will remain 16-bit and will retain focus on a single-user command-line environment. While we borrow certain Linux utilities for the FreeDOS command line, we don't want to turn FreeDOS into a watered-down Unix. Twenty-five years after its inception, FreeDOS is still just DOS. And that's cool with us.

How To Install DOS Applications

On Linux, you usually install new applications by finding a package in your distribution's repository. If your preferred Linux distribution doesn't include that application, you might have to recompile the program from source code.

But on DOS, things were much simpler. The original DOS didn't support a package management concept. Instead, you installed applications by downloading a ZIP file archive, and extracting it into a new directory (Figure 10). Other applications required you to run an install program, usually included in the ZIP file.

Figure 10: Unzipping the Doom installer.

Don't be afraid of trying new DOS applications. Install them and try them out. If you don't like them, you can easily remove them by deleting the program's directory.

The Author

Jim Hall is an open source software advocate and developer, probably best known as the founder of FreeDOS. Jim is also very active in usability testing for open source software projects like Gnome.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Introduction

    This month in Linux Voice.

  • QEMU System Emulation

    Do you ever wish you could run Linux within Linux? Or how about DOS within Linux? QEMU is an open source application that lets you emulate a complete hardware environment within your Linux system.

  • iPXE

    iPXE simplifies the task of booting images over a network and also lets admins design dynamic boot menus that integrate scripts and boot images via HTTP(S).

  • catgets

    To make programs useful to a worldwide audience, you need to build in support for multiple languages. Catgets is a tool that helps you reach beyond your mother tongue.

  • OpenBSD for Linux Users

    Veteran Linux users and administrators are likely to have heard of the BSD family of operating systems. However, the BSDs remain a mystery to many in the Linux community. With the upcoming release of OpenBSD 7.0, it is time to throw some light on this little gem.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More