FreeDOS logo

Welcome to FreeDOS

1 / 4
FreeDOS is an open source DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or develop embedded systems. Any program that works on MS-DOS should also run on FreeDOS.
2 / 4
You can play your favorite DOS games on FreeDOS. And there are a lot of great classic games to play: Wolfenstein 3D, Doom, Commander Keen, Rise of the Triad, Jill of the Jungle, Duke Nukem, and many others!
3 / 4
Need to recover data from an old business program? Or maybe you need to run a report from your old finance system? Just install your legacy software under FreeDOS, and you’ll be good to go!
4 / 4
Many embedded systems run on DOS, although modern systems may instead run on Linux. If you support an older embedded system, you might be running DOS. And FreeDOS can fit in very well.

FreeDOS is open source software! It doesn’t cost anything to download and use FreeDOS. You can also share FreeDOS for others to enjoy! And you can view and edit our source code, because all FreeDOS programs are distributed under the GNU General Public License or a similar open source software license.

Read the wiki »

What’s included »

How to contribute »

Download FreeDOS 1.2 »

What’s New

Check out our YouTube channel

I've been recording videos for the FreeDOS YouTube Channel. If you haven't checked out the channel lately, you might be interested in several gameplay videos, including Star Wars TIE Fighter + flying the TIE Defender, a demo of the Brix puzzle game, and a full playthrough of the shareware DOOM episode. You can also find lots of "how-to" videos, like how to set up FreeDOS as an embedded system, how to install FreeDOS manually, and how to make a minimal FreeDOS. And I like to explore other DOS topics and classic applications, including Borland's Mercury and WordPerfect 6.0 for DOS. If you'd like a bit of history, also check out my history of MS-DOS 1981-1995 or my recent conference talk about Why DOS Was (and Is) a Thing. I release new videos every week! You can stay up to date on new videos by subscribing to the channel, and click the bell icon to get notified when I post new videos.

Updated GW-BASIC

You may remember Microsoft released the GW-BASIC source code on GitHub, in May this year. And since then, several developers have been updating the code to get it to assemble. One project is tkchia's GW-BASIC GitHub project to adjust GW-BASIC to assemble with JWASM or other assemblers. You can now find a new release of GW-BASIC, also on GitHub. The notes mention that this is a "pre-release" binary of GW-BASIC as rebuilt in 2020, and that support for serial port I/O is missing. Light pen input, joystick input, and printer (parallel port) output need more testing.

HimemSX memory manager

Japheth has released HimemSX, an extended memory manager (XMM) implementing XMS v3.5. The SX in HimemSX stands for "Super-eXtended." HimemSX is a fork of HimemX. Its main feature is that it's able to manage more than 4 GB of memory - HimemSX can manage extended memory up to 1 terrabyte. You can learn more about it by reading the Readme.txt file. Download the source code from the HimemSX GitHub project.

A72: PC-72 assembler, version 1.02

R.Swan has contributed A72, a 8086 assembler without bells, whistles, gongs, or macros. It's a bare-bones single-segment symbolic assembler that will take standard Intel-format assembly and turn it into a COM file executable under DOS. R.Swan writes: "I wrote it for my own sake because I wanted to write assembly without having to use a bunch of directives and extraneous garbage in order to even just start writing, and to have binary code I could fully control and predict." Released to the public domain, you can find A72 at its GitHub repo. We have also made a copy on the FreeDOS files archive at ibiblio.

Updated libm math library

Gregory Pietsch writes: "I finally fixed most of the bugs in the 0.0 version .. and got a clean compile and make using gcc, hence the need for a version 0.1." Gregory invites all developers to examine the new library and let him know of any errors or fixes. Gregory adds: "I also added the cpow() trio to it (cpow, cpowf, cpowl). It would be nice if someone who knows more about Bessel functions, the complex arctangent and complex hyperbolic arctangent functions, and anything else I missed to contribute to this." Gregory's contact info is in the README. You can download the new version in the FreeDOS files archive at ibiblio, under devel/libs/libm/

Looking for more FreeDOS news? See also: FreeDOS in the news | timeline of FreeDOS history