DOS

Operating system for x86-based personal computers that was popular during the 1980s and early 1990s.

139 resources6 categoriesView Original

Books(10 items)

A

A to Z of C - a book on C/DOS programming by K....

Non-profit book on programming in C on DOS. DOS system programming starts from Part II.

Books
G

Game Engine Black Book: Doom - by Fabien Sanglard

Fabien Sanglard's walkthrough on the game engine architecture of id Software's original Doom on Intel 486 system and game console ports. Contains forewords by John Carcmack, Dave Taylor and John Romero.

Books
G

Game Engine Black Book: Wolfenstein 3D - by Fab...

Fabien Sanglard's walkthrough on the game engine architecture of id Software's Wolfenstein 3D on the IBM PC's hardware. Contains forewords by John Carcmack, Tom Hall and John Romero.

Books
I

Internet Archive link

Ebook available from online libraries to borrow (required due to licensing): ,

Books
I

Internet Archive link

Ebook available from online libraries to borrow (required due to licensing): ,

Books
M

Michael Abrash's Graphics Programming Black Boo...

Collection of Michael Abrash's Dr. Dobb's Journal graphics programming articles and his work on the graphics subsystem of Quake (mirror).

Books
M

More Tricks of the Game Programming Gurus - by ...

Companion book to Tricks of the Game Programming Gurus, continuing where the original left off. Topics include SVGA, Binary Space Partition (BSP), UI, voxel graphics, memory management in real and protected mode, advanced sound programming, debugging and optimization techniques.

Books
O

Open Library link

Ebook available from online libraries to borrow (required due to licensing): ,

Books
O

Open Library link

Ebook available from online libraries to borrow (required due to licensing): ,

Books
T

Tricks of the Game-Programming Gurus - by Andre...

Comprehensive DOS game development book about starting out. Topics include keyboard, mouse- and joystick input handling, creating 2D and 3D VGA graphics, raycaster rendering, sound and music, game algorithms, Interrupt Service Routines (ISR), timers, artificial intelligence, networked multiplayer through serial port and null-modem cable, tooling, parallax scrolling and optimization techniques.

Books

Development tools(23 items)

3

386MAX

Memory manager for DOS PCs with 386 or higher CPUs, released by Qualitas company in 1992. Source code was released in June 2022 on GitHub with GPL-3.0 license.

Development tools
A

Arch Wiki page

Development tools
B

bcc - Bruce's Compiler

Bruce's C compiler is a simple C compiler that produces 8086 assembler for tiny/small memory models.

Development tools
D

DIV Games Studio 2

IDE to develop DOS games in 2d, mode 7 and 3d. Released in 1998.

Development tools
D

DJGPP

DJ Delorie's complete 32-bit C/C++ development environment for Intel 80386. Used for Quake.

Development tools
D

documentation

The is very valuable in order to understand working with both version 1.9 and the V2 fork.

Development tools
D

DOjS

JavaScript programming environment for MS-DOS, FreeDOS or any DOS-based Windows (like 95, 98, ME).

Development tools
G

GCC IA-16 toolchain

A 16-bit counterpart to DJGPP, a GCC-based toolchain for developing 16-bit (8086 to 80286, a.k.a. IA-16) DOS applications, currently maintained by TK Chia.

Development tools
I

Insight

Very small debugger for real-mode DOS programs with Borland's Turbo like UI. Features an i80486 disassembler, and i8086 assembler.

Development tools
L

Lua for DOS

Online demo of Lua 5.3.5, compiled for MS-DOS on the Intel 80486 processor.

Development tools
M

Micropython for FreeDOS

FreeDOS ad-hoc module for micropython.

Development tools
O

Online version.

Development tools
O

Online version.

Development tools
O

Open Watcom

Formerly commercial C/C++ development environment for 16- and 32-bit DOS and

Development tools
O

Open Watcom V2

GitHub fork which is actively maintained and is

Development tools
P

perldos

Perl for DOS.

Development tools
P

PythonD

Python for DOS, including multi-threading, networking and OpenGL.

Development tools
S

Small-C Toolkit

A self-hosting Small-C Compiler Toolkit for DOS(8086) with: K&R C Compiler, Make, Linker, Assembler. First released in 1982 by Jim E. Hendrix.

Development tools
S

SmallerC

Portable self-hosting C compiler capable of producing executables for a number of platforms, including real and protected mode DOS programs, by Alexei A. Frounze.

Development tools
T

T3X

A small, portable, procedural, block-structured, recursive, almost typeless, and to some degree object-oriented programming language by Nils M. Holm.

Development tools
T

Turbo C 2.01

C IDE and compiler from Borland first released in 1987.

Development tools
T

Turbo C++ 1.01

C++ IDE and compiler from Borland released in 1991.

Development tools
T

Turbo C++ 3.0

C++ IDE and compiler from Borland released in 1992.

Development tools

Source code(54 items)

A

Abuse

Sci-fi side-scrolling platform game. Regarded as an innovative cult classic by most people. Supports SVGA mode up to 1280x1024 resolution. Written in C, the architecture includes a Lisp-scripting engine.

Source code
A

Allegro 4.2

Game development library for DOS, Windows and Linux. 4.2 version supports DOS platform.

Source code
A

Allegro 4.2.1 PDF documentation.

Source code
B

Beneath a Steel Sky

Point-and-click adventure game set in a dystopian future. Written in assembly.

Source code
C

C-Dogs

Sequel to the original Cyberdogs. Ronny Wester, the original creator no longer maintains the website for the original C-Dogs, but multiple ports exists, including cdogs-sdl.

Source code
C

Catacomb

2D top-down shooter developed by Softdisk (later becoming id Software). Supports EGA and CGA graphics. Written in Turbo Pascal and assembly.

Source code
C

Catacomb 3D

First-person shooter in fantasy setting developed by Softdisk (later becoming id Software). Features pseudo-3D graphics with raycasting technique. Supports EGA graphics. Written in C and assembly. Compiled with Borland C++ 3.1.

Source code
C

Commander Keen in Keen Dreams

Side-scrolling platform game developed by id Software. Keen Dreams is the Commander Keen game created between Keen 3 and Keen 4 (often considered "Keen 3.5"), but was not widely released. Written in C and assembly.

Source code
C

Cyberdogs

Top-down 2D shooter playing as a mercenary to earn money. Written in Turbo Pascal. Supports two player mode.

Source code
D

Descent

First sci-fi FPS/space shooter to feature entirely true 3D graphics. Written in C and assembly.

Source code
D

Descent II

Sequel to Descent. Written in C and assembly.

Source code
D

DIGPAK sound drivers source code

Original source code for the DIGPAK sound drivers uploaded to GitHub by John W. Ratcliff.

Source code
D

Doom

Sci-fi FPS developed by id Software where you fight demons from hell on Mars. 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.

Source code
D

DOS Defender

Christopher Wellons's x86 real mode DOS Asteroids clone created as an entry for Lundum Dare #31.

Source code
D

DOS-VGA-Game

Marco A. Marrero's DOS VGA/hardware library implemented in assembly and Turbo Pascal.

Source code
D

Duke Nukem 3D

FPS developed by Apogee featuring the iconic character Duke Nukem. Written in C. Compiled with Watcom C/C++ 10.0.

Source code
D

Dungeons of Noudar

First-person 2.5D dungeon-crawler on protected mode. Written in C++, includes software rendering, fixed point math, test coverage and sound (PC speaker, Adlib, OPL2LPT).

Source code
E

Emeritus Pong

Pong clone for DOS, Windows and Linux. Uses PC speaker for sound on DOS.

Source code
F

Floppy Bird

Flappy Bird clone written in 16 bit assembly. Not a DOS program, but a PC-Booter application instead (although it's also possible to build a COM executable for DOS).

Source code
F

FreeDOS

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.

Source code
G

George M. Tzoumas's collection of MS-DOS games ...

Turbo Pascal with few games in C and C++. Games include Nibbles, Connect Four, Ms Pacman clone and two arcade/platform games. One of them (ra2) was written using Allegro. Utilities are all written in Turbo Pascal, these include game system routines, file and disk utilities and terminate-and-stay-resident programs (TSR).

Source code
G

GitHub repository

Source code
G

Gold Mine Run!

Platformer written in C using DJGPP.

Source code
G

Gridfighter 3D

'80s style arcade shooter written in Quickbasic. Also the very first known DOS game that supports Oculus Rift VR headset.

Source code
H

Hangman

Hangman clone written in Basic. Runs on at least 80286 processors and uses EGA graphics.

Source code
H

Heretic

Dark fantasy FPS running on id Software's Doom engine.

Source code
H

Hexen: Beyond Heretic

Indirect sequel to Heretic.

Source code
H

Hovertank 3D

FPS developed by id Software. Features pseudo-3D graphics with raycasting technique, before Catacomb 3D and Wolfeinstein 3D. Written in C and assembly.

Source code
L

LoveDOS

A framework for making 2D DOS games in Lua. API based on a subset of the LÖVE API.

Source code
M

Magenta's Maze

3D maze game using CGA graphics with algebra as theme.

Source code
M

MaiZure's Projects - Decoded: Sopwith

Code analysis by MaiZure.

Source code
M

Mario

Super Mario Bros clone written in Turbo Pascal.

Source code
M

MS-DOS

GitHub repository of the original source code for MS-DOS v1.25, v2.0 and v4.0, open-sourced by Microsoft.

Source code
N

NetHack

Descendant of the original NetHack rougelike game first released in 1987 available on multiple platforms.

Source code
P

Piskworks

Gomoku clone written in C. Works on DOS, ZX Spectrum, ZX81, ZX80, APPLE1, AS400 and Windows.

Source code
P

Plutonium Caverns

Overhead puzzle game written in C. Web version uses DOSBox ported to Emscripten to embed DOSBox into HTML5. However, the original executable is also downloadable and buildable with Open Watcom.

Source code
P

Ptakovina

Tetris clone written in C. Runs on DOS, Unix/Linux, ZX Spectrum and Windows.

Source code
Q

Quake

FPS developed by id Software set in a fully 3D world. Written in C. Compiled with DJGPP for DOS.

Source code
Q

Quake Engine Code Review series

Code analysis by Fabien Sanglard.

Source code
R

Rise of the Triad: Dark War

FPS developed by Apogee. It was developed as a follow-up to Wolfenstein 3D, but was altered and became a standalone game instead. Uses a heavily modified Wolfenstein 3D engine. Written in C.

Source code
S

Sopwith

Side-scrolling shoot 'em up created by David L. Clark in 1984. The game involves piloting a Sopwith biplane, attempting to bomb enemy buildings while avoiding fire from enemy planes and various other obstacles.

Source code
S

Source code download link

Source code
S

Source code download link

Source code
S

Source code download link

Source code
S

Source code download link

Source code
S

Source code download link

Source code
S

Source code download link

Source code
S

SourceForge link

Original for Heretic/Hexen.

Source code
S

sudoku86

Sudoku clone written in C. Runs on 8086/8088 CPU, uses CGA, MCGA or VGA graphics and uses a mouse.

Source code
T

Tetris

Tetris clone written in assembly.

Source code
T

Towers of Hanoi

Tower of Hanoi puzzle game written in Turbo Pascal. Originally released in 1996.

Source code
W

Wolfenstein 3D

FPS developed by id Software set in the Nazi German prison Castle Wolfenstein. Features pseudo-3D graphics with raycasting technique. Written in C and assembly.

Source code
X

x86 pong

Text-mode Pong clone written in C. Runs as PC-Booter game and under DOS.

Source code
Z

zmiy

Text-mode Snake clone written in C. Runs on 8086 DOS.

Source code

Tutorials and programming resources(40 items)

3

32bit DOS development with Open Watcom

32-bit compilation tutorial for Open Watcom.

Tutorials and programming resources
6

640k Really is Enough for Anyone by Robert W. O...

Short article about getting Turbo C running on FreeDOS and moving a pixel around.

Tutorials and programming resources
8

80x86 16-bit Compiling How-to by Alexei A. Frounze

16-bit compilation tutorial for Borland/Turbo C/C++ and Open Watcom. Goes into depth of memory addressing and memory models.

Tutorials and programming resources
A

A look back at memory models in 16-bit MS-DOS

Raymond Chen's explanation of segmented memory, including near- and far pointers.

Tutorials and programming resources
A

Alex Russell's Dos Game Programming in C for Be...

DOS game programming tutorial series including a primer on C, graphics, animation, input handling and collision detection. This series contains a tutorial for making buffered input handling. Last chapter contains full source code of a Break Out game on DOS.

Tutorials and programming resources
B

bios.h header documentation by Digital Mars

API documentation for routines accessing BIOS operations directly (disk operations, BIOS keyboard, printer, time, memory, serial, interrupts).

Tutorials and programming resources
C

C code sample for drawing in VESA 2.0 mode

Just code listing for drawing an ellipse in VESA mode.

Tutorials and programming resources
C

Color Graphics Adapter: Notes

Document describing the hardware, memory map, register I/O and hardware clones of the IBM's original CGA.

Tutorials and programming resources
D

David Brackeen - 256-Color VGA Programming in C

Tutorial series to learn how to create graphics on DOS, written in 1996.

Tutorials and programming resources
D

DJGPP VESA guide

Tutorial about querying VESA modes.

Tutorials and programming resources
D

DOS Super VGA / VESA programming notes - by Myles

VESA article with history at the beginning and short mention of the VESA VBE standard, but unfortunately the example codes aren't even available through Wayback Machine.

Tutorials and programming resources
F

Frequencies of Musical Notes

Freqency table usable to parameterize the PC speaker.

Tutorials and programming resources
G

GameDev.net archive

version 3.4 on

Tutorials and programming resources
G

Graphical programming in Assembly (DOS)

A VGA programming tutorial that also shows the list of video modes (text, CGA, EGA, VGA, SVGA) in a table at the beginning.

Tutorials and programming resources
H

High-res high-speed VESA tutorial

Series of tutorials that include drawing pixels in VESA mode (protected or real).

Tutorials and programming resources
H

How to build DOS COM files with GCC by Chris We...

Build process of Chris Wellons's DOS Defender game using DJGPP. Goal was to create a 32-bit 80386 COM executable.

Tutorials and programming resources
J

Just keeping it real... old skool style - Scali...

Blog post about Scali's journey of doing CGA, EGA and VGA programming.

Tutorials and programming resources
M

Making some noise with the PC speaker! - by Mar...

Very short tutorial on using the PIT for generating PC speaker frequency.

Tutorials and programming resources
P

Part 1

dos.h header documentation by Digital Mars - API documentation of functions for interfacing with the DOS operating system itself.

Tutorials and programming resources
P

Part 2

dos.h header documentation by Digital Mars - API documentation of functions for interfacing with the DOS operating system itself.

Tutorials and programming resources
P

PC Game Programmer's Encyclopedia

Collection of guides covering assembly, sound (Sound Blaster, Gravis UltraSound, PC Speaker, GameBlaster, Adlib), input, memory (EMS, XMS, DMA Transfers), PIT, VGA, SVGA, algorithms and file formats.

Tutorials and programming resources
P

Programmer's Guide to the Yamaha YMF 262/OPL3 F...

Reverse-engineered reference on OPL3.

Tutorials and programming resources
P

Programmer's Heaven (InfoMagic)(March 1997) CD-ROM

Source code and files for the following topics: MS-DOS, networking, C, C++, Pascal, Visual Basic, Delphi, 3D, PC speaker, Soundblaster, Gravis Ultrasound, MIDI and many more.

Tutorials and programming resources
P

Programming MS-DOS with Power - DOS Programming...

System programming tutorials like disk handling, interrupts, inputs, sound, graphics.

Tutorials and programming resources
P

Programming Sound Cards CD

A 1995 CD-ROM containing source code for Adlib, Gravis, Pro-Audio, Roland and Sound Blaster sound cards. The description for the folders on the CD-ROM is listed on the back of the CD-ROM case.

Tutorials and programming resources
R

Ralph Brown's Interrupt List - HTML version

List of every documented and undocumented interrupt call known, accessible through search, categories and interrupt numbers.

Tutorials and programming resources
R

Ralph Brown's website

Original in downloadable .zip files from

Tutorials and programming resources
S

Sound Blaster 16 Programming Document 3.5 by Et...

Programming the Sound Blaster 16 DSP CT1341 chip for recording and playback of digitized audio.

Tutorials and programming resources
S

Sound Programming with PC Speaker - Chapter 23 ...

PC speaker programming chapter of the "A to Z of C" book with source code.

Tutorials and programming resources
S

Soundblaster Programming Information v0.90

List of Sound Blaster models and registers.

Tutorials and programming resources
T

Table of DOSBox cyclecounts according to proces...

A table for setting the appropriate DOSBox cycle count according to CPU types (IBM XT 88, 286, 386, 486, Pentium I, Pentium II). Comes handy when you are developing a DOS game and want to simulate the environment where you intend to execute it.

Tutorials and programming resources
T

The Ad Lib Music Synthesizer Card Programming G...

Reference of OPL2 operations and registers.

Tutorials and programming resources
T

The Art of Demomaking by flipcode

Series from 1999 that introduces to graphics programming under DOS. The home site contains other late 90s/early 2000s game programming articles as well.

Tutorials and programming resources
T

The Artevida Game Programming Tutorials

Kevin Matz's almost book-length treatment of DOS system programming and VGA programming fundamentals using C/C++ and 80x86 assembly. Unfortunately it is incomplete and was abandoned since 2001.

Tutorials and programming resources
T

The Life of MS-DOS by Brendan Byers

History of the DOS family including CP/M, Q-DOS/86-DOS, MS-DOS and PC-DOS. Article also includes a diagram of the timeline and family tree of DOS

Tutorials and programming resources
V

Values for standard video mode

List of all known video modes including BIOS interrupt numbers, text/pixel resolution, number of colors and video memory addresses.

Tutorials and programming resources
V

VESA Video Modes - OSDev wiki

Tutorial about querying VESA modes.

Tutorials and programming resources
V

VGA Hardware - OSDev wiki

Hardware guide for VGA cards that is also relevant for modern graphics cards including NVidia and ATI.

Tutorials and programming resources
V

VGA programming lessons

VGA programming tutorial series in Pascal and Assembly.

Tutorials and programming resources
Y

Yamaha YM3812 (OPL2) sound chip Wikipedia article

Best starting point to learn about the OPL2 sound chip besides 8-bit guy's YouTube video.

Tutorials and programming resources

Videos(10 items)

C

CGA Graphics - Not as bad as you thought! - by ...

History and technical details about IBM's CGA system. Also describes 4-color RGBI and 16-color Composite modes.

Videos
D

DOS Executables Explained - Nostalgia Nerd

Video about DOS executable formats including `.COM`, `.BAT` and `.EXE`.

Videos
H

How Oldschool Sound/Music worked - by 8-bit Guy

Video about PC speaker, FM synthesizers in NES and Commodore 64, Yamaha OPL chip in AdLib and Sound Blaster sound cards, PCM samples and MOD music.

Videos
L

Let's Code - MS DOS - by root42

DOS programming tutorial series including VGA, SoundBlaster and VGA Mode X.

Videos
L

LGR - Evolution of PC Audio - As Told by Secret...

Comparison of playing the intro theme of Secret of Monkey Island through PC speaker, IBM PCjr/Tandy, AdLib, Game Blaster, Roland LAPC-1/MT-32, Gravis Ultrasound, Roland SCC-1 MIDI, SB16 Waveblaster/AWE32 and CD quality digital audio.

Videos
M

MS-DOS has been Open-Sourced! We Build and Run ...

Former Microsoft employee David Plummer tells stories about development of MS-DOS and compiles MS-DOS 4.00 source code which has been open-sourced by Microsoft.

Videos
P

Porting Retro City Rampage to MS-DOS: From PS4 ...

GDC talk. Brian Provinciano's presentation on porting Retro City Rampage from PlayStation 4 to DOS. Topics include optimization, using interrupts, timing, PC speaker sound, joystick, memory management and fixed-point math.

Videos
W

What is DOS Protected Mode? / DOS Extenders- No...

Video about how PC memory looks like, conventional memory, extender memory and reasons for the need of DOS Protected Mode Interface (DPMI) and extenders like DOS/4GW.

Videos
W

Why does DOS use 8.3 Filenames? - Nostalgia Nerd

Video about the 8.3 limitation of filenames under DOS, FAT partitioning scheme, NTFS, VFAT, FatGo, and `LFN.EXE`.

Videos
W

Why DOS Was (and Is) a Thing - FreeDOS

Historical talk starting from Unix, going through CPM, DOS 1.x, DOS 2.x, DOS 3.x, DOS 4.x, DOS 6.x, Windows 3.1, Windows 95 and ending with FreeDOS.

Videos