Content deleted Content added
No edit summary |
No edit summary |
||
Line 1:
The '''MS-DOS API''' is an [[API]] used originally in [[MS-DOS]]/[[PC-DOS]], and later by other [[DOS]] systems. Most calls to the DOS API invoke [[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. A major revamp of the DOS API 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 verion 3.1 (released in 1985), several subfunctions were added for dealing with networks.
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 call]]s.
Line 7:
==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 [[Windows API|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. However, Windows 9x provided an emulation of the DOS API for programs running within a command shell window, including several new subfunctions for dealing with [[Long filename|LFN]]s. These DOS LFN subfunctions were not included in Windows NT and XP.
[[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.
Line 66:
==References==
*[http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html Description of MS-DOS services]
*''The New Peter Norton
[[Category:DOS on IBM PC compatibles]]
|