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 RSS feed icon

HimemX 3.35

Japheth has updated HimemX (XMSv3, 386+) to version 3.35. "Currently there are 2 versions of HimemX supplied, HimemX and HimemX2. HimemX2 uses a different strategy when it comes to extended memory block allocations. This difference is only relevant if extended memory is scattered in multiple blocks, as it is the case on newer machines." Grab the binaries and sources at iBiblio or on his Github. Testers across various hardware welcome!

New version of mTCP

mTCP is a set of TCP/IP applications for personal computers running PC-DOS, MS-DOS, FreeDOS, and other flavors of DOS. mTCP version 2020-03-07 is a tiny release but there were some bug fixes, including: + Check the malloc return codes in UDP.CPP; this was missed twice. (Thanks to Simon Howard) + Pkttool needs to check before calling extended packet driver functions. (Thanks to Seth Simon) + Spdtest crashes if MTU is less than 1500 bytes. (Also thanks to Seth). Other changes include: + Ping return codes are now more expressive. (Also thanks to Simon) + Pkttool return codes are now documented. + Spdtest dumps more statistics to help with performance debugging. You can find the new version (binaries, source code, and PDF manual) at the mTCP website. Also mirrored on ibiblo.

EIDL version 1.0.0

Robert writes: "IDLE works by hooking the DOS idle interrupt 28h and executing a HLT instruction every time. At the end I put together a tool, that does the same. I named it EIDL, but you pronounce it "idle". (A little play with the German language.) It's 80 bytes only, but comes with source code for NASM. See it as little ASM example, because it is not as advanced as all the other DOS idlers including Eric Auer's FreeDOS APM (FDAPM)." You can find EIDL at: EIDL website.

JEMM Final ver 5.79

Japheth writes: "At last a bug was fixed in JemmEx that caused shrinking EMBs not to work correctly. It happens with Volkov Commander, for example - I always thought this a bug in VC, but finally realized it was a bug in JemmEx." Changes include: - if physical address of DMA buffer was beyond 16M, its size was reset to zero; this is no longer done. - default linker is now JWlink. - debug displays added for mode switch calls. - Jemm will now use info returned by Int 15h, ax=E820h to mark regions in the upper memory area as reserved. - virtual mode extensions (VME) is now off by default; there exist CPUs that claim to support VME but actually don't. - JemmEx's built-in XMS host will now use up to 8 memory blocks listed by ACPI. You can download it from the JEMM Github, or from the FreeDOS files archive at Ibiblio.