Revision as of 21:16, 22 June 2012 editAsmpgmr (talk | contribs)920 edits →References: add The MS-DOS Encyclopedia← Previous edit | Latest revision as of 19:18, 19 November 2024 edit undoInternetArchiveBot (talk | contribs)Bots, Pending changes reviewers5,387,806 edits Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816 | ||
(89 intermediate revisions by 40 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|API of the MS-DOS operating system}} | |||
⚫ | The ''' |
||
{{more footnotes|date=May 2015}} | |||
{{Use dmy dates|date=May 2019|cs1-dates=y}} | |||
⚫ | The '''DOS API''' is an ] which originated with ] and is used in ]/] and other ]-compatible operating systems. Most calls to the DOS API are invoked using ] 21h (] 21h). By calling INT 21h with a subfunction number in the AH ] and other parameters in other registers, various DOS services can be invoked. These include handling keyboard input, video output, disk file access, program execution, memory allocation, and various other activities. In the late 1980s, ]s along with the ] (DPMI) allow the programs to run in either 16-bit or 32-bit protected mode and still have access to the DOS API. | ||
==History of the DOS API== | |||
There are various implementations of the DOS API, including ], ], ], ], ], and others. | |||
The original DOS API in 86-DOS and MS-DOS 1.0 was designed to be functionally compatible with ]. Files were accessed using ]s (FCBs). The DOS API was greatly extended in MS-DOS 2.0 with several ] concepts, including file access using ], ] and device I/O control.<ref>{{cite book |title=Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers |author=Ray Duncan |publisher=Microsoft Press |year=1988 |isbn=0914845772 |url-access=registration |url=https://archive.org/details/advancedmsdosmic00dunc }}</ref> In DOS 3.1, ] support was added. In MS-DOS 3.31, the INT 25h/26h functions were enhanced to support hard disks greater than 32 MB. MS-DOS 5 added support for using ] (UMBs). After MS-DOS 5, the DOS API was unchanged for the successive standalone releases of DOS. | |||
⚫ | ==The DOS API and Windows== | ||
]s along with the ] (DPMI) extend the DOS API to either 16-bit or 32-bit protected mode. | |||
In ], DOS loaded the protected-mode system and graphical shell. DOS was usually accessed from a ] (VDM) but it was also possible to boot directly to real mode ] without loading Windows. The DOS API was extended with enhanced internationalization support and ] support, though the long filename support was only available in a VDM. With ] OSR2, DOS was updated to 7.1, which added ] support, and functions were added to the DOS API to support this. ] and ] also implement the MS-DOS 7.1 API, though Windows ME reports itself as MS-DOS 8.0. | |||
⚫ | ] and the systems based on it (e.g. ] and ]) are not based on MS-DOS, but use a ], ], to handle the DOS API. NTVDM works by running a DOS program in ] (an emulation of ] within ] available on ] and higher processors). NTVDM supports the DOS 5.0 API. ] for ] uses a similar approach. | ||
⚫ | ==The |
||
⚫ | ==Interrupt vectors used by DOS== | ||
] versions 1.0 through 3.1 were graphical shells that ran on MS-DOS and relied on the MS-DOS API (though using ] for ''Windows'' programs). ] was also DOS-based, but used a custom version of MS-DOS, mainly as a ]. It did not use the MS-DOS API much after booting. However, Windows 9x provided the DOS API to programs running within a command shell window. Earlier Windows 9x versions (at least through the first edition of Windows 98) also can be booted into plain ] "DOS mode" with no GUI and no Windows system services, for running pure DOS programs. The Windows 9x DOS versions (numbered 7.0 and above) include several new service subfunctions for dealing with long filenames (]s). | |||
The following is the list of interrupt vectors used by programs to invoke the DOS API functions. | |||
⚫ | ] and the systems based on it (e.g. ] and ]) are not based on MS-DOS, but use a ], ], to handle the DOS API. NTVDM works by running a DOS program in ] (an emulation of ] within ] available on ] and higher processors). ] for ] uses a similar approach. | ||
⚫ | ==Interrupt vectors used by DOS== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 17: | Line 20: | ||
!Description | !Description | ||
!Version | !Version | ||
!Notes | |||
|- | |- | ||
|{{Code|20h}} | |{{Code|20h}} | ||
|Terminate program | |Terminate program | ||
|1.0+ | |1.0+ | ||
|Implemented in DOS kernel | |||
|- | |- | ||
|{{Code|21h}} | |{{Code|21h}} | ||
|Main DOS API | |Main DOS API | ||
|1.0+ | |1.0+ | ||
|Implemented in DOS kernel | |||
|- | |- | ||
|{{Code|22h}} | |{{Code|22h}} | ||
|Program terminate address | |Program terminate address | ||
|1.0+ | |1.0+ | ||
|Return address in calling program | |||
|- | |- | ||
|{{Code|23h}} | |{{Code|23h}} | ||
|Control-C handler address | |Control-C handler address | ||
|1.0+ | |1.0+ | ||
|Default handler is in the command shell (usually COMMAND.COM) | |||
|- | |- | ||
|{{Code|24h}} | |{{Code|24h}} | ||
|Critical error handler address | |Critical error handler address | ||
|1.0+ | |1.0+ | ||
|Default handler is in the command shell (usually COMMAND.COM) | |||
|- | |- | ||
|{{Code|25h}} | |{{Code|25h}} | ||
|Absolute disk read | |Absolute disk read | ||
|1.0+ | |1.0+ | ||
|Implemented in DOS kernel, enhanced in DOS 3.31 to support up to 2 GB partitions | |||
|- | |- | ||
|{{Code|26h}} | |{{Code|26h}} | ||
|Absolute disk write | |Absolute disk write | ||
|1.0+ | |1.0+ | ||
|Implemented in DOS kernel, enhanced in DOS 3.31 to support up to 2 GB partitions | |||
|- | |- | ||
|{{Code|27h}} | |{{Code|27h}} | ||
|Terminate and stay resident | |Terminate and stay resident | ||
|1.0+ | |1.0+ | ||
|Implemented in COMMAND.COM in DOS 1.0, DOS kernel in DOS 2.0+ | |||
|- | |- | ||
|{{Code|28h}} | |{{Code|28h}} | ||
|Idle callout | |Idle callout | ||
|2.0+ | |2.0+ | ||
|Called by DOS kernel when waiting for input | |||
|- | |- | ||
|{{Code|29h}} | |{{Code|29h}} | ||
|Fast console output | |Fast console output | ||
|2.0+ | |2.0+ | ||
|Implemented by the built-in console device driver or a replacement driver like ANSI.SYS | |||
|- | |- | ||
|{{Code|2Ah}} | |{{Code|2Ah}} | ||
|Networking and critical section | |Networking and critical section | ||
|3.0+ | |3.0+ | ||
|Called by DOS kernel to interface with networking software | |||
|- | |- | ||
|{{Code|2Bh}} | |{{Code|2Bh}} | ||
|Unused | |Unused | ||
| | |||
| | | | ||
|- | |- | ||
|{{Code|2Ch}} | |{{Code|2Ch}} | ||
|Unused | |Unused | ||
| | |||
| | | | ||
|- | |- | ||
|{{Code|2Dh}} | |{{Code|2Dh}} | ||
|Unused | |Unused | ||
| | |||
| | | | ||
|- | |- | ||
|{{Code|2Eh}} | |{{Code|2Eh}} | ||
|Reload transient |
|Reload transient | ||
|2.0+ | |2.0+ | ||
|Implemented in COMMAND.COM | |||
|- | |- | ||
|{{Code|2Fh}} | |{{Code|2Fh}} | ||
|Multiplex | |Multiplex | ||
|3.0+ | |3.0+ | ||
|Implemented in DOS kernel and various programs (PRINT, MSCDEX, DOSKEY, APPEND, etc.) depending on subfunction number | |||
|} | |} | ||
==DOS INT 21h services== | ==DOS INT 21h services== | ||
The following is the list of functions provided via the DOS API primary software interrupt vector. | |||
⚫ | {| class="wikitable" border="1 |
||
⚫ | {| class="wikitable" border="1" | ||
|- | |- | ||
!{{Code|AH}} | !{{Code|AH}} | ||
Line 527: | Line 549: | ||
|} | |} | ||
==Operating systems with support |
==Operating systems with native support== | ||
* ] |
* ] – most widespread implementation | ||
* ] |
* ] – IBM OEM version of MS-DOS | ||
* ] 1.x – Microsoft/IBM successor to MS-DOS and PC DOS | |||
* ] - Digital Research clone | |||
* ] – ] created by ] and ] in ] | |||
⚫ | * ] |
||
* ] – Digital Research DOS family, including ], ], ], etc. | |||
⚫ | * ] |
||
* ] – PhysTechSoft & Paragon DOS clone, including ] | |||
* ] - 1.x, 2.x, 3.x, and 9x were based on DOS | |||
⚫ | * ] – Datalight ROM DOS version | ||
* ] – ] version | |||
⚫ | * ] – Free, open source DOS clone | ||
* ] (] and ] versions) | |||
* ] – contains MS-DOS 7.0 | |||
* ] – contains MS-DOS 7.1 | |||
* ] – contains MS-DOS 7.1 | |||
* ] – contains MS-DOS 8.0 | |||
== |
==Operating systems with DOS emulation layer== | ||
* ] (3.1 only) with ] – Digital Research CP/M-86-based OS with optional PC DOS emulator | |||
⚫ | * ] for ] | ||
* ] – Digital Research CDOS family with built-in PC DOS emulator | |||
* ] – a stripped-down single-user variant of Concurrent PC DOS 4.1–5.0 | |||
* ] – Digital Research/Novell MDOS family including ], ], etc. | |||
* ] (2.x and later) – IBM operating system using a fully-licensed MS-DOS 5.0 in a ] | |||
* ] (all versions except 64-bit editions and 32-bit ARM editions) | |||
==Other emulators== | |||
⚫ | * ] for ] | ||
* ] for ] | * ] for ] | ||
* ] | * ] | ||
* ] | |||
==See also== | ==See also== | ||
* ] | * ] | ||
* ] | * ] (RBIL) | ||
* ] | * ] | ||
* ] | * ] (DPMI) | ||
* ] | |||
* ] | * ] | ||
* ] | |||
==References== | ==References== | ||
⚫ | * |
||
* ''The MS-DOS Encyclopedia'', Microsoft Press, 1988, ISBN 1556151748 | |||
⚫ | * |
||
⚫ | * (a.k.a. RBIL, Ralf Brown's Interrupt List) | ||
⚫ | * | ||
{{Reflist}} | {{Reflist}} | ||
==Further reading== | |||
* {{Cite book |editor-first1=Jim |editor-last1=Beley |editor-first2=Barry |editor-last2=Preppernau |editor-first3=Pam |editor-last3=Beason |editor-first4=Andrea |editor-last4=Lewis |editor-first5=David |editor-last5=Rygmyr |author-first1=Howard |author-last1=Bornstein |author-first2=Lawrence |author-last2=Bredehoeft |author-first3=Ray |author-last3=Duncan |author-first4=Carol |author-last4=Morris |author-first5=David |author-last5=Rose <!-- |author-link5=David Rose --> |author-first6=John |author-last6=Socha |author-link6=John Socha |author-first7=Jim |author-last7=Tomlin |author-first8=Kathleen |author-last8=Vian |author-first9=Van |author-last9=Wolverton |title=MS-DOS (Versions 1.0-3.2) Technical Reference Encyclopedia |contribution=Technical advisors |contributor-first1=Paul |contributor-last1=Allen |contributor-link1=Paul Allen |contributor-first2=Bill |contributor-last2=Gates |contributor-link2=Bill Gates |contributor-first3=Adrian |contributor-last3=King |contributor-first4=Chris |contributor-last4=Larson |contributor-first5=Gordon |contributor-last5=Letwin |contributor-link5=Gordon Letwin |contributor-first6=Bob |contributor-last6=O'Rear |contributor-link6=Bob O'Rear |contributor-first7=Tim |contributor-last7=Paterson |contributor-link7=Tim Paterson |contributor-first8=Chris |contributor-last8=Peters |contributor-first9=Bruce |contributor-last9=Phillips |contributor-first10=Aaron |contributor-last10=Reynolds |contributor-link10=Aaron R. Reynolds |contributor-first11=Betty |contributor-last11=Stillmaker |contributor-first12=Mark |contributor-last12=Zbikowski |contributor-link12=Mark Zbikowski |date=1986 |edition=Original withdrawn |publisher=] |series=Microsoft Reference Library |volume=1 |location=Redmond, Washington, USA |isbn=0-914845-69-1 |lccn=86-8640 |oclc=635600205}} (xvii+1053 pages; 29 cm) (NB. This original edition contains flowcharts of the internal workings of the system. It was withdrawn by Microsoft before mass-distribution in 1986 because it contained many factual errors as well as some classified information which should not have been published. Few printed copies survived. It was replaced by a completely reworked edition in 1988. ) | |||
* {{Cite book |title=The MS-DOS Encyclopedia: versions 1.0 through 3.2 |author-first1=Ray |author-last1=Duncan |author-first2=Steve |author-last2=Bostwick |author-first3=Keith |author-last3=Burgoyne |author-first4=Robert A. |author-last4=Byers |author-first5=Thom |author-last5=Hogan |author-first6=Jim |author-last6=Kyle |author-first7=Gordon |author-last7=Letwin |author-link7=Gordon Letwin |author-first8=Charles |author-last8=Petzold |author-link8=Charles Petzold |author-first9=Chip |author-last9=Rabinowitz |author-first10=Jim |author-last10=Tomlin |author-first11=Richard |author-last11=Wilton |author-first12=Van |author-last12=Wolverton |author-first13=William |author-last13=Wong |author-first14=JoAnne |author-last14=Woodcock |contribution=Technical advisors |contributor-first1=Mark |contributor-last1=Zbikowski |contributor-link1=Mark Zbikowski |contributor-first2=Paul |contributor-last2=Allen |contributor-link2=Paul Allen |contributor-first3=Steve |contributor-last3=Ballmer |contributor-link3=Steve Ballmer |contributor-first4=Reuben |contributor-last4=Borman |contributor-first5=Rob |contributor-last5=Borman |contributor-first6=John |contributor-last6=Butler |contributor-first7=Chuck |contributor-last7=Carroll |contributor-first8=Mark |contributor-last8=Chamberlain |contributor-first9=David |contributor-last9=Chell |contributor-first10=Mike |contributor-last10=Colee |contributor-first11=Mike |contributor-last11=Courtney |contributor-first12=Mike |contributor-last12=Dryfoos |contributor-first13=Rachel |contributor-last13=Duncan |contributor-first14=Kurt |contributor-last14=Eckhardt |contributor-first15=Eric |contributor-last15=Evans |contributor-first16=Rick |contributor-last16=Farmer |contributor-first17=Bill |contributor-last17=Gates |contributor-link17=Bill Gates |contributor-first18=Michael |contributor-last18=Geary |contributor-first19=Bob |contributor-last19=Griffin |contributor-first20=Doug |contributor-last20=Hogarth |contributor-first21=James W. |contributor-last21=Johnson |contributor-first22=Kaamel |contributor-last22=Kermaani |contributor-first23=Adrian |contributor-last23=King |contributor-first24=Reed |contributor-last24=Koch |contributor-first25=James |contributor-last25=Landowski |contributor-first26=Chris |contributor-last26=Larson |contributor-first27=Thomas |contributor-last27=Lennon |contributor-first28=Dan |contributor-last28=Lipkie |contributor-first29=Marc |contributor-last29=McDonald |contributor-link29=Marc McDonald |contributor-first30=Bruce |contributor-last30=McKinney |contributor-first31=Pascal |contributor-last31=Martin |contributor-first32=Estelle |contributor-last32=Mathers |contributor-first33=Bob |contributor-last33=Matthews <!-- |contributor-link33=Robert Matthews (scientist)??? --> |contributor-first34=David |contributor-last34=Melin |contributor-first35=Charles |contributor-last35=Mergentime |contributor-first36=Randy |contributor-last36=Nevin |contributor-first37=Dan |contributor-last37=Newell |contributor-first38=Tani |contributor-last38=Newell |contributor-first39=David |contributor-last39=Norris |contributor-first40=Mike |contributor-last40=O'Leary |contributor-first41=Bob |contributor-last41=O'Rear |contributor-link41=Bob O'Rear |contributor-first42=Mike |contributor-last42=Olsson |contributor-first43=Larry |contributor-last43=Osterman |contributor-first44=Ridge |contributor-last44=Ostling |contributor-first45=Sunil |contributor-last45=Pai |contributor-first46=Tim |contributor-last46=Paterson |contributor-link46=Tim Paterson |contributor-first47=Gary |contributor-last47=Perez |contributor-first48=Chris |contributor-last48=Peters |contributor-first49=Charles |contributor-last49=Petzold |contributor-link49=Charles Petzold |contributor-first50=John |contributor-last50=Pollock |contributor-first51=Aaron |contributor-last51=Reynolds |contributor-link51=Aaron R. Reynolds |contributor-first52=Darryl |contributor-last52=Rubin |contributor-first53=Ralph |contributor-last53=Ryan |contributor-first54=Karl |contributor-last54=Schulmeisters |contributor-first55=Rajen |contributor-last55=Shah |contributor-first56=Barry |contributor-last56=Shaw |contributor-first57=Anthony |contributor-last57=Short |contributor-first58=Ben |contributor-last58=Slivka |contributor-first59=Jon |contributor-last59=Smirl |contributor-first60=Betty |contributor-last60=Stillmaker |contributor-first61=John |contributor-last61=Stoddard |contributor-first62=Dennis |contributor-last62=Tillman |contributor-first63=Greg |contributor-last63=Whitten |contributor-first64=Natalie |contributor-last64=Yount |contributor-first65=Steve |contributor-last65=Zeck |date=1988 |edition=Completely reworked |publisher=] |location=Redmond, Washington, USA |isbn=1-55615-049-0 |lccn=87-21452 |oclc=16581341}} (xix+1570 pages; 26 cm) (NB. This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors. ) | |||
* {{Cite book |title=The New Peter Norton Programmer's Guide to the IBM PC & PS/2 |first1=Peter |last1=Norton |authorlink1=Peter Norton|first2=Richard |last2=Wilton |publisher=Microsoft Press |year=1987 |ISBN=1-55615-131-4}} | |||
* {{cite book |title=Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers |author=Ray Duncan |publisher=Microsoft Press |year=1988 |isbn=0914845772 |url-access=registration |url=https://archive.org/details/advancedmsdosmic00dunc }} | |||
⚫ | * {{Cite book |title=The Programmer's PC Sourcebook |first=Thom |last=Hogan |publisher=Microsoft Press |year=1991 |ISBN=155615321X}} | ||
⚫ | * {{Cite book |title=MS-DOS Programmer's Reference - The Official Technical Reference to MS-DOS |publisher=Microsoft Press |year=1993 |ISBN=1556155468}} | ||
* | |||
* {{cite book |publisher=] |date=August 1997 |title=OpenDOS Developer's Reference Series — OpenDOS Programmer's Guide — System and Programmer's Guide |id=Caldera Part No. 200-DOPG-003 |url=http://www.drdos.net/documentation/sysprog/httoc.htm |url-status=dead |archive-url=https://web.archive.org/web/20171007025631/http://www.drdos.net/documentation/sysprog/httoc.htm |archive-date=2017-10-07 |access-date=2012-06-28 }} (Printed in the UK.) | |||
==External links== | |||
⚫ | * (a.k.a. RBIL, ]) | ||
⚫ | * <!-- http://www.delorie.com/djgpp/doc/rbinter/ --> | ||
* | |||
* {{Webarchive|url=https://web.archive.org/web/20111013235614/http://spike.scu.edu.au/~barry/interrupts.html |date=2011-10-13 }} | |||
{{Disk operating systems}} | |||
] | ] | ||
Line 559: | Line 612: | ||
] | ] | ||
] | ] | ||
] | |||
] |
Latest revision as of 19:18, 19 November 2024
API of the MS-DOS operating systemThis article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (May 2015) (Learn how and when to remove this message) |
The DOS API is an API which originated with 86-DOS and is used in MS-DOS/PC DOS and other DOS-compatible operating systems. Most calls to the DOS API are invoked using software interrupt 21h (INT 21h). By calling INT 21h with a subfunction number in the AH processor register and other parameters in other registers, various DOS services can be invoked. These include handling keyboard input, video output, disk file access, program execution, memory allocation, and various other activities. In the late 1980s, DOS extenders along with the DOS Protected Mode Interface (DPMI) allow the programs to run in either 16-bit or 32-bit protected mode and still have access to the DOS API.
History of the DOS API
The original DOS API in 86-DOS and MS-DOS 1.0 was designed to be functionally compatible with CP/M. Files were accessed using file control blocks (FCBs). The DOS API was greatly extended in MS-DOS 2.0 with several Unix concepts, including file access using file handles, hierarchical directories and device I/O control. In DOS 3.1, network redirector support was added. In MS-DOS 3.31, the INT 25h/26h functions were enhanced to support hard disks greater than 32 MB. MS-DOS 5 added support for using upper memory blocks (UMBs). After MS-DOS 5, the DOS API was unchanged for the successive standalone releases of DOS.
The DOS API and Windows
In Windows 9x, DOS loaded the protected-mode system and graphical shell. DOS was usually accessed from a virtual DOS machine (VDM) but it was also possible to boot directly to real mode MS-DOS 7.0 without loading Windows. The DOS API was extended with enhanced internationalization support and long filename support, though the long filename support was only available in a VDM. With Windows 95 OSR2, DOS was updated to 7.1, which added FAT32 support, and functions were added to the DOS API to support this. Windows 98 and Windows ME also implement the MS-DOS 7.1 API, though Windows ME reports itself as MS-DOS 8.0.
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). NTVDM supports the DOS 5.0 API. DOSEMU for Linux uses a similar approach.
Interrupt vectors used by DOS
The following is the list of interrupt vectors used by programs to invoke the DOS API functions.
Interrupt vector | Description | Version | Notes |
---|---|---|---|
20h
|
Terminate program | 1.0+ | Implemented in DOS kernel |
21h
|
Main DOS API | 1.0+ | Implemented in DOS kernel |
22h
|
Program terminate address | 1.0+ | Return address in calling program |
23h
|
Control-C handler address | 1.0+ | Default handler is in the command shell (usually COMMAND.COM) |
24h
|
Critical error handler address | 1.0+ | Default handler is in the command shell (usually COMMAND.COM) |
25h
|
Absolute disk read | 1.0+ | Implemented in DOS kernel, enhanced in DOS 3.31 to support up to 2 GB partitions |
26h
|
Absolute disk write | 1.0+ | Implemented in DOS kernel, enhanced in DOS 3.31 to support up to 2 GB partitions |
27h
|
Terminate and stay resident | 1.0+ | Implemented in COMMAND.COM in DOS 1.0, DOS kernel in DOS 2.0+ |
28h
|
Idle callout | 2.0+ | Called by DOS kernel when waiting for input |
29h
|
Fast console output | 2.0+ | Implemented by the built-in console device driver or a replacement driver like ANSI.SYS |
2Ah
|
Networking and critical section | 3.0+ | Called by DOS kernel to interface with networking software |
2Bh
|
Unused | ||
2Ch
|
Unused | ||
2Dh
|
Unused | ||
2Eh
|
Reload transient | 2.0+ | Implemented in COMMAND.COM |
2Fh
|
Multiplex | 3.0+ | Implemented in DOS kernel and various programs (PRINT, MSCDEX, DOSKEY, APPEND, etc.) depending on subfunction number |
DOS INT 21h services
The following is the list of functions provided via the DOS API primary software interrupt vector.
AH
|
Description | Version |
---|---|---|
00h
|
Program terminate | 1.0+ |
01h
|
Character input | 1.0+ |
02h
|
Character output | 1.0+ |
03h
|
Auxiliary input | 1.0+ |
04h
|
Auxiliary output | 1.0+ |
05h
|
Printer output | 1.0+ |
06h
|
Direct console I/O | 1.0+ |
07h
|
Direct console input without echo | 1.0+ |
08h
|
Console input without echo | 1.0+ |
09h
|
Display string | 1.0+ |
0Ah
|
Buffered keyboard input | 1.0+ |
0Bh
|
Get input status | 1.0+ |
0Ch
|
Flush input buffer and input | 1.0+ |
0Dh
|
Disk reset | 1.0+ |
0Eh
|
Set default drive | 1.0+ |
0Fh
|
Open file | 1.0+ |
10h
|
Close file | 1.0+ |
11h
|
Find first file | 1.0+ |
12h
|
Find next file | 1.0+ |
13h
|
Delete file | 1.0+ |
14h
|
Sequential read | 1.0+ |
15h
|
Sequential write | 1.0+ |
16h
|
Create or truncate file | 1.0+ |
17h
|
Rename file | 1.0+ |
18h
|
Reserved | 1.0+ |
19h
|
Get default drive | 1.0+ |
1Ah
|
Set disk transfer address | 1.0+ |
1Bh
|
Get allocation info for default drive | 1.0+ |
1Ch
|
Get allocation info for specified drive | 1.0+ |
1Dh
|
Reserved | 1.0+ |
1Eh
|
Reserved | 1.0+ |
1Fh
|
Get disk parameter block for default drive | 1.0+ |
20h
|
Reserved | 1.0+ |
21h
|
Random read | 1.0+ |
22h
|
Random write | 1.0+ |
23h
|
Get file size in records | 1.0+ |
24h
|
Set random record number | 1.0+ |
25h
|
Set interrupt vector | 1.0+ |
26h
|
Create PSP | 1.0+ |
27h
|
Random block read | 1.0+ |
28h
|
Random block write | 1.0+ |
29h
|
Parse filename | 1.0+ |
2Ah
|
Get date | 1.0+ |
2Bh
|
Set date | 1.0+ |
2Ch
|
Get time | 1.0+ |
2Dh
|
Set time | 1.0+ |
2Eh
|
Set verify flag | 1.0+ |
2Fh
|
Get disk transfer address | 2.0+ |
30h
|
Get DOS version | 2.0+ |
31h
|
Terminate and stay resident | 2.0+ |
32h
|
Get disk parameter block for specified drive | 2.0+ |
33h
|
Get or set Ctrl-Break | 2.0+ |
34h
|
Get InDOS flag pointer | 2.0+ |
35h
|
Get interrupt vector | 2.0+ |
36h
|
Get free disk space | 2.0+ |
37h
|
Get or set switch character | 2.0+ |
38h
|
Get or set country info | 2.0+ |
39h
|
Create subdirectory | 2.0+ |
3Ah
|
Remove subdirectory | 2.0+ |
3Bh
|
Change current directory | 2.0+ |
3Ch
|
Create or truncate file | 2.0+ |
3Dh
|
Open file | 2.0+ |
3Eh
|
Close file | 2.0+ |
3Fh
|
Read file or device | 2.0+ |
40h
|
Write file or device | 2.0+ |
41h
|
Delete file | 2.0+ |
42h
|
Move file pointer | 2.0+ |
43h
|
Get or set file attributes | 2.0+ |
44h
|
I/O control for devices | 2.0+ |
45h
|
Duplicate handle | 2.0+ |
46h
|
Redirect handle | 2.0+ |
47h
|
Get current directory | 2.0+ |
48h
|
Allocate memory | 2.0+ |
49h
|
Release memory | 2.0+ |
4Ah
|
Reallocate memory | 2.0+ |
4Bh
|
Execute program | 2.0+ |
4Ch
|
Terminate with return code | 2.0+ |
4Dh
|
Get program return code | 2.0+ |
4Eh
|
Find first file | 2.0+ |
4Fh
|
Find next file | 2.0+ |
50h
|
Set current PSP | 2.0+ |
51h
|
Get current PSP | 2.0+ |
52h
|
Get DOS internal pointers (SYSVARS) | 2.0+ |
53h
|
Create disk parameter block | 2.0+ |
54h
|
Get verify flag | 2.0+ |
55h
|
Create program PSP | 2.0+ |
56h
|
Rename file | 2.0+ |
57h
|
Get or set file date and time | 2.0+ |
58h
|
Get or set allocation strategy | 2.11+ |
59h
|
Get extended error info | 3.0+ |
5Ah
|
Create unique file | 3.0+ |
5Bh
|
Create new file | 3.0+ |
5Ch
|
Lock or unlock file | 3.0+ |
5Dh
|
File sharing functions | 3.0+ |
5Eh
|
Network functions | 3.0+ |
5Fh
|
Network redirection functions | 3.0+ |
60h
|
Qualify filename | 3.0+ |
61h
|
Reserved | 3.0+ |
62h
|
Get current PSP | 3.0+ |
63h
|
Get DBCS lead byte table pointer | 3.0+ |
64h
|
Set wait for external event flag | 3.2+ |
65h
|
Get extended country info | 3.3+ |
66h
|
Get or set code page | 3.3+ |
67h
|
Set handle count | 3.3+ |
68h
|
Commit file | 3.3+ |
69h
|
Get or set media id | 4.0+ |
6Ah
|
Commit file | 4.0+ |
6Bh
|
Reserved | 4.0+ |
6Ch
|
Extended open/create file | 4.0+ |
Operating systems with native support
- MS-DOS – most widespread implementation
- PC DOS – IBM OEM version of MS-DOS
- OS/2 1.x – Microsoft/IBM successor to MS-DOS and PC DOS
- SISNE plus – Clone created by Itautec and Scopus Tecnologia in Brazil
- DR-DOS – Digital Research DOS family, including Novell DOS, PalmDOS, OpenDOS, etc.
- PTS-DOS – PhysTechSoft & Paragon DOS clone, including S/DOS
- ROM-DOS – Datalight ROM DOS version
- Embedded DOS – General Software version
- FreeDOS – Free, open source DOS clone
- ReactOS (IA-32 and x86-64 versions)
- Windows 95 – contains MS-DOS 7.0
- Windows 98 – contains MS-DOS 7.1
- Windows 98 SE – contains MS-DOS 7.1
- Windows ME – contains MS-DOS 8.0
Operating systems with DOS emulation layer
- Concurrent CP/M-86 (3.1 only) with PCMODE – Digital Research CP/M-86-based OS with optional PC DOS emulator
- Concurrent DOS – Digital Research CDOS family with built-in PC DOS emulator
- DOS Plus – a stripped-down single-user variant of Concurrent PC DOS 4.1–5.0
- Multiuser DOS – Digital Research/Novell MDOS family including Datapac System Manager, IMS REAL/32, etc.
- OS/2 (2.x and later) – IBM operating system using a fully-licensed MS-DOS 5.0 in a virtual machine
- Windows NT (all versions except 64-bit editions and 32-bit ARM editions)
Other emulators
See also
- BIOS interrupt call
- Ralf Brown's Interrupt List (RBIL)
- Comparison of DOS operating systems
- DOS Protected Mode Interface (DPMI)
- DOS extender
- DOS MZ executable
- COMMAND.COM
References
- Ray Duncan (1988). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. Microsoft Press. ISBN 0914845772.
Further reading
- Allen, Paul; Gates, Bill; King, Adrian; Larson, Chris; Letwin, Gordon; O'Rear, Bob; Paterson, Tim; Peters, Chris; Phillips, Bruce; Reynolds, Aaron; Stillmaker, Betty; Zbikowski, Mark (1986). "Technical advisors". MS-DOS (Versions 1.0-3.2) Technical Reference Encyclopedia. By Bornstein, Howard; Bredehoeft, Lawrence; Duncan, Ray; Morris, Carol; Rose, David; Socha, John; Tomlin, Jim; Vian, Kathleen; Wolverton, Van. Beley, Jim; Preppernau, Barry; Beason, Pam; Lewis, Andrea; Rygmyr, David (eds.). Microsoft Reference Library. Vol. 1 (Original withdrawn ed.). Redmond, Washington, USA: Microsoft Press. ISBN 0-914845-69-1. LCCN 86-8640. OCLC 635600205. (xvii+1053 pages; 29 cm) (NB. This original edition contains flowcharts of the internal workings of the system. It was withdrawn by Microsoft before mass-distribution in 1986 because it contained many factual errors as well as some classified information which should not have been published. Few printed copies survived. It was replaced by a completely reworked edition in 1988. )
- Zbikowski, Mark; Allen, Paul; Ballmer, Steve; Borman, Reuben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Farmer, Rick; Gates, Bill; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; King, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc; McKinney, Bruce; Martin, Pascal; Mathers, Estelle; Matthews, Bob; Melin, David; Mergentime, Charles; Nevin, Randy; Newell, Dan; Newell, Tani; Norris, David; O'Leary, Mike; O'Rear, Bob; Olsson, Mike; Osterman, Larry; Ostling, Ridge; Pai, Sunil; Paterson, Tim; Perez, Gary; Peters, Chris; Petzold, Charles; Pollock, John; Reynolds, Aaron; Rubin, Darryl; Ryan, Ralph; Schulmeisters, Karl; Shah, Rajen; Shaw, Barry; Short, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Technical advisors". The MS-DOS Encyclopedia: versions 1.0 through 3.2. By Duncan, Ray; Bostwick, Steve; Burgoyne, Keith; Byers, Robert A.; Hogan, Thom; Kyle, Jim; Letwin, Gordon; Petzold, Charles; Rabinowitz, Chip; Tomlin, Jim; Wilton, Richard; Wolverton, Van; Wong, William; Woodcock, JoAnne (Completely reworked ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-049-0. LCCN 87-21452. OCLC 16581341. (xix+1570 pages; 26 cm) (NB. This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors. )
- Norton, Peter; Wilton, Richard (1987). The New Peter Norton Programmer's Guide to the IBM PC & PS/2. Microsoft Press. ISBN 1-55615-131-4.
- Ray Duncan (1988). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. Microsoft Press. ISBN 0914845772.
- Hogan, Thom (1991). The Programmer's PC Sourcebook. Microsoft Press. ISBN 155615321X.
- MS-DOS Programmer's Reference - The Official Technical Reference to MS-DOS. Microsoft Press. 1993. ISBN 1556155468.
- IBM PC DOS 7 Technical Update
- OpenDOS Developer's Reference Series — OpenDOS Programmer's Guide — System and Programmer's Guide. Caldera, Inc. August 1997. Caldera Part No. 200-DOPG-003. Archived from the original on 2017-10-07. Retrieved 2012-06-28. (Printed in the UK.)
External links
- The x86 Interrupt List (a.k.a. RBIL, Ralf Brown's Interrupt List)
- ctyme.com - INT Calls by function
- wustl.edu - Description of MS-DOS services
- MS-DOS Interrupts Archived 2011-10-13 at the Wayback Machine