Awesome DOS
Operating system for x86-based personal computers that was popular during the 1980s and early 1990s.
A curated list of references for development of DOS applications and learning about the system itself. This includes list of compilers, tutorials, videos, links to free and paid books and source code to DOS games. The goal of this list is to collect information and act as a starting point for someone who wants to start out retro-programming for the DOS platform.
The list template was generated by generator-awesome-list
Contents
- DOS compilers
- Development IDEs
- Tutorials and programming resources
- Books
- Videos
- Open source DOS libraries
- Open source DOS games
DOS compilers
- bcc - Bruce's Compiler
- Bruce's C compiler is a simple C compiler that produces 8086 assembler for tiny/small models.
- DJGPP - DJ Delorie's complete 32-bit C/C++ development environment for Intel 80386.
- Used for Quake.
- Open Watcom - Formerly commercial C/C++ development environment for 16- and 32-bit DOS and
Windows. The current official version is 1.9. A GitHub fork is also available.
- The documentation is very valuable to understand working with both version 1.9 and the V2 fork.
- Arch Wiki page
- Used for Doom I-II, Warcraft I-II, Duke Nukem 3D, Full Throttle, Dark Forces and Retro City Rampage
- Open Watcom V2 - GitHub fork which is actively maintained and is ported to 64-bit Windows and Linux.
- Turbo C 2.01 - C IDE and compiler from Borland first released in 1987.
- Turbo C++ 1.01 - C++ IDE and compiler from Borland released in 1991.
Development IDEs
- DIV Games Studio 2 - IDE to develop DOS games in 2d, mode 7 and 3d. Released in 1998. Online version.
Tutorials and programming resources
History
Compiling
Open Watcom
General
- David Brackeen - 256-Color VGA Programming in C
- 640k Really is Enough for Anyone by Robert W. Oliver II
- DOS programming resources by DOS HAVEN
- Alex Russell's Dos Game Programming in C for Beginners
- This series contains a tutorial for making buffered input handling
- PC Game Programmer's Encyclopedia on the Web
- The Art of Demomaking by flipcode (archived site)
- Series from 1999 that introduces to graphics programming under DOS. The home site contains other late 90s/early 2000s game programming articles as well.
DOS API
- bios.h header documentation by Digital Mars
- dos.h header documentation by Digital Mars Part 1 Part 2
Interrupts
- Ralph Brown's Interrupt List - HTML version
- Original in downloadable .zip files from Ralph Brown's website
Video
CGA
VGA
SVGA
- DOS Super VGA / VESA programming notes - by Myles
- VESA Video Modes - OSDev wiki
- DJGPP VESA guide
- High-res high-speed VESA tutorial
- C code sample for drawing in VESA 2.0 mode
Sound
PC Speaker
- Frequencies of Musical Notes
- Making some noise with the PC speaker!
- Programming the PC Speaker by Mark Feldman
- Sound Programming with PC Speaker - Chapter 23 of A to Z of C
AdLib/OPL2
- Yamaha YM3812 (OPL2) sound chip Wikipedia article
- The Ad Lib Music Synthesizer Card Programming Guide - by Tero Töttö
Sound Blaster/OPL3
- Programmer's Guide to the Yamaha YMF 262/OPL3 FM Music Synthesizer
- Sound Blaster 16 Programming Document 3.5 by Ethan Brodsky
- version 3.4 on GameDev.net archive
- Sound Blaster Hardware Programming Guide
- Soundblaster Programming Information v0.90
Other
- How to build DOS COM files with GCC by Chris Wellons
- Table of DOSBox cyclecounts according to processor types
Books
Free
- Game Engine Black Book: Wolfenstein 3D - by Fabian Sanglard
- Game Engine Black Book: Doom - by Fabian Sanglard
- A to Z of C - a book on C/DOS programming by K. Joseph Wesley and R. Rajesh Jeba Anbiah
- Michael Abrash's Graphics Programming Black Book Special Edition
Paid
Videos
- CGA Graphics - Not as bad as you thought! - by 8-bit Guy
- How Oldschool Sound/Music worked - by 8-bit Guy
- Contains section about the Yamaha OPL chip found in AdLib and Sound Blaster sound cards at 4:32
- LGR - Evolution of PC Audio - As Told by Secret of Monkey Island
- Porting Retro City Rampage to MS-DOS: From PS4 to 1.44MB Floppy - GDC talk.
Open source DOS libraries
- Allegro 4.2
- LoveDOS - A framework for making DOS games in Lua.
Open source DOS games
Homebrew games with source code
List of all homebrew DOS games: http://www.doshaven.eu
- DOS Defender
- Dungeons of Noudar
- Emeritus Pong
- Floppy Bird - 16 bit assembly.
- Gridfighter 3D - Quickbasic.
- Hangman - Basic.
- Magenta's Maze - site
- NetHack
- Piskworks
- Plutonium Caverns
- Ptakovina
- sudoku86
- Tetris - site, assembly.
- Towers of Hanoi - Turbo Pascal, originally released in 1996.
- x86 pong - PC-Booter game.
- zmiy
Freeware games with source code
- Cyberdogs - Turbo Pascal.
Commercial games with published source code
- Abuse
- Beneath a Steel Sky - Assembly.
- Catacomb - Turbo Pascal.
- Catacomb 3D
- Commander Keen in Keen Dreams
- Descent
- Descent II
- Doom
- The DOS-specific code for Doom could not be published because of a dependency to the licensed DMX sound library, hence why it's cleaned up and only the Linux source is there. However, the Heretic and Hexen projects contain the original DOS code in a way where DMX-related code is removed.
- Duke Nukem 3D
- Heretic
- Hexen
- Original SourceForge link for Heretic/Hexen.
- Hovertank 3D
- Quake
- Rise of the Triad
- Sopwith
- Wolfenstein 3D