Content deleted Content added
Matthiaspaul (talk | contribs) improved refs |
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816 |
||
(32 intermediate revisions by 16 users not shown) | |||
Line 1:
{{Short description|API of the MS-DOS operating system}}
{{more footnotes|date=May 2015}}
{{Use dmy dates|date=May 2019|cs1-dates=y}}
The '''DOS API''' is an [[Application programming interface|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 (x86 instruction)|INT]] 21h). By calling INT 21h with a subfunction number in the AH [[processor register]] and other parameters in other registers,
==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 block]]s (FCBs). The DOS API was greatly extended in MS-DOS 2.0 with several [[Unix]] concepts, including file access using [[file handles]], [[directory (file systems)|hierarchical directories]] 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, [[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
[[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 [[Intel 80386|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.
{| class="wikitable" border="1"
|-
Line 66 ⟶ 70:
|Fast console output
|2.0+
|Implemented by the
|-
|{{Code|2Ah}}
Line 100 ⟶ 104:
==DOS INT 21h services==
The following is the list of functions provided via the DOS API primary software interrupt vector.
{| class="wikitable" border="1"
|-
Line 544 ⟶ 550:
==Operating systems with native support==
* [[MS-DOS]]
* [[PC DOS]]
* [[OS/2]] 1.x – Microsoft/IBM successor to MS-DOS and PC DOS
* [[DR-DOS]] - Digital Research DOS family, including [[Novell DOS]], [[PalmDOS]], [[OpenDOS]], etc.▼
* [[SISNE plus]] – [[Clone (computing)|Clone]] created by [[Itautec]] and [[Scopus Tecnologia]] in [[Brazil]]
▲* [[DR-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]]
* [[Windows 98]]
* [[Windows 98 SE]]
* [[Windows ME]]
* [[Windows NT]] (all versions except 64-bit editions)▼
==Operating systems with DOS emulation layer==
Line 562 ⟶ 570:
* [[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==
Line 567 ⟶ 577:
* [[DOSEMU]] for [[Linux]]
* [[DOSBox]]
* [[ReactOS]]
==See also==
Line 581 ⟶ 592:
==Further reading==
* {{Cite book |editor-first1=Jim |editor-last1=Beley
* {{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=
* {{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 }}
*
* {{
* [https://web.archive.org/web/20060721115437/http://www.redbooks.ibm.com/redbooks/pdfs/gg244459.pdf IBM PC DOS 7 Technical Update]
* {{cite book |publisher=[[Caldera, Inc.]] |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 |
==External links==
* [
* [https://web.archive.org/web/20171103080100/http://www.ctyme.com/intr/cat-010.htm ctyme.com - INT Calls by function]<!-- http://www.delorie.com/djgpp/doc/rbinter/ -->
* [https://web.archive.org/web/20020622163518/http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html wustl.edu - Description of MS-DOS services]
* [http://spike.scu.edu.au/~barry/interrupts.html MS-DOS Interrupts] {{Webarchive|url=https://web.archive.org/web/20111013235614/http://spike.scu.edu.au/~barry/interrupts.html |date=2011-10-13 }}
{{Disk operating systems}}
[[Category:DOS technology]]
|