screenshot of FreeDOS 1.3

Welcome to FreeDOS

FreeDOS is an open source DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or write new DOS programs. Any program that works on MS-DOS should also run on FreeDOS.

Play classic games

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!

Run applications

You can run your favorite DOS programs with FreeDOS. Or use FreeDOS to run a legacy DOS application. Just install your DOS program under FreeDOS like you would any DOS application and you'll be good to go.

For developers

FreeDOS includes lots of programming tools so you can create your own DOS programs. You can also modify FreeDOS itself, because we include the source code under an open source license.

What’s New

New libm-0.9

The libm public domain math library is Gregory Pietsch's attempt at providing a better public domain math library than other public domain math libraries out there. Gregory recently version 0.9 -- this is a "bug fix" release. From the announcement: "There's a new release of libm. I fixed a couple of things I discovered in my quest to have a more perfect math library." You can download it from the FreeDOS Files Archive at Ibiblio, under /devel/libs/libm

New Bywater BASIC Interpreter

If you are interested in BASIC programming, you may like to know that a new release of bwBASIC is available. From the announcement, this release is "mainly just bug fixes from the last 7 years. But there are new makefiles for new environments too. A prebuilt Win32 x86 executable is provided too." You can download it from Bywater BASIC at SourceForge.

A loss for BASIC programmers

We were sad to learn that Thomas Kurtz, co-inventor (with John Kemeny) of the BASIC programming language, recently passed away on November 12. Many of us got our start with computers by programming in BASIC. My early days of computing were on the Apple II computer, and I taught myself how to write programs in AppleSoft BASIC. Later, my family replaced the Apple with an IBM PC, and I learned IBM BASICA and GW-BASIC -- and much later, QBASIC on MS-DOS 5. BASIC holds a special place for many DOS programmers, and this is a deeply felt loss.

A new mTCP is available

mTCP provides TCP/IP applications for your PC compatible retro-computers. Mike Brutman recently released a new version with bug fixes: "Version 2024-10-20 is available. It has a few bug fixes. It also allows mTCP programs to operate at the same time NetDrive is active. (If you know how packet drivers work, that is no small trick.)" The mTCP NetDrive programs are also now included in mTCP. (The mTCP NetDrive servers are still in a separate download.) You can download it from the mTCP website. Thanks Mike!

New DOS version of Make

Make is a standard tool for developers, to automate when to compile or build new parts of the program, without compiling everything. This is extremely useful for large programs. Gregory Pietsch has started writing a new version. From the announcement: "This is my attempt at writing a better make for FreeDOS than all the makes out there. This includes dmake (a toy make) and even GNU make if I can. After two weeks of writing, I came up with this. .. Other PD versions of make use a singly linked list as the primary data structure. I wanted to get away from that, especially in places where I'd have to go over the whole list to find something. This version uses a map, with an AVL tree as the internal data structure. The program also uses dynamic arrays and dynamic strings to simplify the handling of macros." This is version "0.0" so is pre-alpha and "may be buggy, missing a few parts, or not have proper documentation, but at least it runs and could convince others that it could be something good." You can download it from /devel/make/make in the FreeDOS Files Archive at Ibiblio.

WDE version 1.1

WDE is a modular disk editor capable of allowing users to manipulate data stored in various ways on different kinds of storage. The new version 1.1 was recently released, which includes these features: * fixed: mounting logical drives from image files didn't adjust the "last sector", thus cluster numbers beyond logical disk size weren't rejected. * fixed: if current device was an image file, hitting Ctrl-Enter while in sector 0 of a logical drive did switch to a real physical disk. * save file chain: last update date & time now copied. * cmdline option -n added. * file AND directory names are accepted. You can read the full release notes and download the new release from the WDE GitHub.