DOS API: Difference between revisions

Content deleted Content added
RCX (talk | contribs)
m Wikilinking
Electron9 (talk | contribs)
clearify ; additions
Line 1:
The '''MS-DOS API''' is an [[Application programming interface|API]] used originally in [[MS-DOS]]/[[PC-DOS]], and later by other [[DOS]]<!--disambiguate--> systems. Most calls to the DOS API invoke [[software interrupt]] 21h (int[[INT (x86 instruction)|INT]] 21h). By calling intINT 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. The subfunctions provided in the first release of MS-DOS in 1981 were strongly oriented to compatibility with [[CP/M]]. A major revamp of the DOS API (partially influenced by certain Unix concepts) was undertaken for the release of MS-DOS 2.0 in 1983, adding numerous new subfunctions to deal with file I/O using abstract "handles" and support for subdirectories. In these new subfunctions, strings are usually terminated by a NUL byte ([[ASCIIZ]]). In MS-DOS version 3.1 (released in 1985), several subfunctions were added for dealing with networks.
 
There are various implementations of the DOS API, including [[MSPC-DOS]], [[PCMS-DOS]], [[DR-DOS]], [[FreeDOS]], [[PTS-DOS]], and others. The DOS API is based on the [[BIOS]], and DOS routines often internally access [[BIOS interrupt call]]s.
 
The [[DOS Protected Mode Interface]] extends the DOS API to 32-bits. The MS-DOS API is partially dependent on x86 code, hence DOS cannot be ported to other chip architectures.
Line 12:
 
==Common DOS services==
Some basic intINT 21h function calls present since DOS version 1.0:
 
{|class="wikitable"
Line 42:
 
==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 famousspread example)incarnation
* [[PC-DOS]] - IBM version
* [[DR-DOS]]
* [[ROM-DOS]] (a- versionread ofonly DOSmemory specifically for solid state ROM)version
 
==Programs with support for the MS-DOS API==
* [[NTVDM]].EXE for [[Windows NT]]
* [[DOSEMU]] for [[Linux]]
* [[DOSBox]]
 
==See also==
* [[BIOS interrupt call]]
* [[Ralf Brown's Interrupt List]]
* [[Comparison of x86 DOS operating systems]]
* [[DOS/4GW]]
 
==References==
* [http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html Description of MS-DOS services]
* ''The New Peter Norton Programmer's Guide to the IBM PC & PS/2'' by Peter Norton and Richard Wilton, Microsoft Press, 1987 ISBN 1-55615-131-4.
 
[[Category:DOS on IBM PC compatibles]]
[[Category:Operating system APIs]]
[[Category:x86 architecture]]
[[Category:Interrupts]]