screenshot of DOS programming

Create new programs

Get started in programming with the compilers, debuggers, and other programming tools included in FreeDOS. You can also modify FreeDOS itself, because we provide our source code under an open source license.

These links are provided as a convenience and do not constitute endorsements or approval. The FreeDOS Project does not bear responsibility for what you download from these websites.

FreeDOS is a collection of programs and utilities, so not everything is in one place. The FreeDOS kernel is currently maintained by Jeremy Davis on his GitHub. Find copies of other FreeDOS source code in our GitLab:

Free programming tools

Our preferred C compiler for FreeDOS programs is OpenWatcom C, and our preferred assembler is NASM:

OpenWatcom 1.9

OpenWatcom is a great open source compiler that we recommend for FreeDOS programmers. Version 1.9 is the last official version, although that project seems to have stalled.

OpenWatcom 2

Developers have forked the OpenWatcom compiler to create a "version 2" under active development. You can also use this version of OpenWatcom to create your FreeDOS programs.

Netwide Assembler (NASM)

NASM is an open source assembler for the x86 CPU architecture, including DOS targets. We recommend NASM for assembly programming in FreeDOS.

You can also find great DOS programming tools on these websites:

Technical information

We've collected links to several reference guides and tutorials here:

Ralf Brown’s Interrupt List

Ralf collected this comprehensive list of interrupt calls, IO ports, and more about DOS and the IBM PC. Divided into six parts, plus a FAQ list:

256-color VGA Programming in C

David Brackeen has assembled this five-part tutorial on VGA programming in DOS. This was originally created for a technical writing course in 1996:

Graphics Programming Black Book

Michael Abrash's book is a collection of tutorials and writings about assembly language and graphics programming. Published by Dr Dobbs Journal:

You can find more technical notes on these websites: