MS-DOS API
From Wikipedia, the free encyclopedia
The MS-DOS API is an API used in MS-DOS, PC-DOS and other compatible operating 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.
Microsoft Windows versions 1.0 through 3.1 were graphical shells that ran on MS-DOS and relied on the MS-DOS API. Windows 9x was also DOS based, but used a custom version of MS-DOS mainly as a bootloader and did not use the MS-DOS API much after booting. Windows NT is not based on MS-DOS, but features a DOS emulator called NTVDM. 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.
DPMI extends the DOS API to 32-bits.
Contents |
[edit] 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 |
[edit] Operating systems with support for the MS-DOS API
- FreeDOS (free, open source)
- Microsoft Windows 1.x, 2.x, 3.x, and 9x were based on DOS
- MS-DOS (most famous example)
- PC-DOS
- DR-DOS
- ROM-DOS (a version of DOS specifically for solid state ROM)
[edit] Programs with support for the MS-DOS API
- NTVDM.EXE for Windows NT
- DOSEMU for Linux
- DOSBox