DOS API

This is an old revision of this page, as edited by JeremyMcCracken (talk | contribs) at 21:01, 3 July 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The MS-DOS API is an API used originally in MS-DOS/PC-DOS, and later by other DOS systems. The DOS API is based on software interrupt 21h (int 21h). By calling int 21h with the subfunction in AH and the other parameters in other registers, one invokes various DOS services. DOS services include keyboard input, video output, disk file access, executing programs, memory allocation, and various other things. There are various implementations of the DOS API, including MS-DOS, PC-DOS, DR-DOS, FreeDOS, PTS-DOS, and others. The DOS API is based on the BIOS, and DOS routines often internally access BIOS interrupt calls.

The DOS Protected Mode Interface extends the DOS API to 32-bits.

The MS-DOS API and Windows

Microsoft Windows versions 1.0 through 3.1 were graphical shells that ran on MS-DOS and relied on the MS-DOS API (though using its own API for Windows programs). Windows 9x was also DOS based, but used a custom version of MS-DOS, mainly as a bootloader. It did not use the MS-DOS API much after booting.

Windows NT and the systems based on it (e.g. Windows XP and Windows Vista) are not based on MS-DOS, but use a virtual machine, NTVDM, to handle the DOS API. NTVDM works by running a DOS program in virtual 8086 mode (an emulation of real mode within protected mode available on 80386 and higher processors). DOSEMU for linux uses a similar approach.

Common DOS services

Subfunction Parameters Returns Service
AH=0h never TERMINATE PROGRAM
AH=1h AL=character read READ CHARACTER FROM STDIN
AH=2h al=character WRITE CHARACTER TO STDOUT
AH=0Ah ds:dx=pointer to '$' terminated string WRITE STRING
AH=4Ch al=return value never TERMINATE PROGRAM

Operating systems with support for the MS-DOS API

Programs with support for the MS-DOS API

See also

References