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.
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 and the source code is on his GitHub. Find other FreeDOS source code in our GitLab:
Our preferred C compiler for FreeDOS programs is OpenWatcom C, and our preferred assembler is NASM:
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.
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.
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:
We've collected links to several reference guides and tutorials here:
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:
David Brackeen has assembled this five-part tutorial on VGA programming in DOS. This was originally created for a technical writing course in 1996:
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:
These YouTube videos show you how to write your first programs: