DOS API

DOS APIは86-DOSを起源とするAPIで、MS-DOS/PC DOSや他のDOS互換のオペレーティングシステムで使われている。DOS APIのほとんどの呼び出しは、INT 21hを使用して呼び出される。AH プロセッサレジスタのサブファンクション番号と他のレジスタの他のパラメータを指定してINT 21hを呼び出すことによって、さまざまなDOSサービスを呼び出せる。これには、キーボード入力、ビデオ出力、ディスクファイルアクセス、プログラム実行、メモリ割り当て、その他さまざまなアクティビティの処理が含まれる。1980年代後半には、DOSエクステンダとDPMIを併用することで、プログラムを16ビットまたは32ビットの保護モードで実行してもDOS APIにアクセスできるようになった。

**DOS APIの歴史**
86-DOSおよびMS-DOS 1.0の元のDOS APIは、CP/Mと機能的に互換性があるように設計されている。ファイルアクセスにはファイルコントロールブロック (FCB)が利用された。DOS APIは、ファイルハンドルを使用したファイルアクセス、階層ディレクトリ、およびデバイスのI/O制御など、いくつかのUNIXの概念によってMS-DOS 2.0で大幅に拡張された。DOS 3.1では、ネットワークリダイレクタのサポートが追加された。MS-DOS 3.31では、32 MBを超えるハードディスクをサポートするようにINT 25h/26h機能が強化された。MS-DOS 5は、上位メモリブロック（UMB）を使用するためのサポートを追加した。MS-DOS 5以降は、DOSの連続したスタンドアロンリリースのDOS APIは変更されていない。

**DOS APIとWindows**
Windows 9xでは、プロテクトモードのシステムとGUIシェルをロードするブートローダとしてDOSが使用されていた。DOSは通常VDMからアクセスされていたが、WindowsをロードせずにリアルモードMS-DOS 7.0としてブートすることも可能であった。Long filename（LFN）はVDMでのみ利用可能であったが、DOS APIは拡張国際化サポートとLFNサポートで拡張された。Windows 95 OSR2では、DOSは7.1に更新されてFAT32サポートが追加され、DOS APIに機能追加された。Windows 98およびWindows MEもMS-DOS 7.1 APIを実装しているが、Windows MEはMS-DOS 8.0として報告する。
Windows XPやWindows VistaなどのWindows NT系のシステムはMS-DOSを利用していない。そのため、NTVDMを利用してDOS APIを処理している。NTVDMは、仮想8086モードでDOSプログラムを実行する。NTVDMはDOS 5.0 APIをサポートする。Linux用のDOSEMUも同様の方法を利用している。

**DOSで使用される割込みベクタ**
以下は、DOS API関数を呼び出すための割り込みベクタのリストである。

**DOS INT 21hサービス**
以下は、DOS APIのプライマリソフトウェア割り込みベクタを介して提供される機能のリストである。

**ネイティブサポートのあるオペレーティングシステム**
 MS-DOS - 最も普及している実装- PC DOS - MS-DOSのIBM OEMバージョン- DR-DOS - Novell DOS、PalmDOS、OpenDOSなどを含むDigital Research DOSファミリー- PTS-DOS - PhysTechSoftおよびParagon DOSクローン、S/DOSを含む- ROM-DOS - Datalight ROM DOSバージョン- FreeDOS - フリーのオープンソースDOSクローン- ReactOS（IA-32およびx86-64バージョン）- Windows 95 - MS-DOS 7.0が含まれている- Windows 98 - MS-DOS 7.1が含まれている- Windows 98 SE - MS-DOS 7.1が含まれている- Windows ME - MS-DOS 8.0を含む- Windows NT（64ビット版を除くすべてのバージョン）

**その他のエミュレータ**
 Windows NT用NTVDM- Linux用のDOSEMU- DOSBox

**脚注**

**関連項目**
 BIOS割り込み呼び出し- Ralf Brown's Interrupt List（RBIL）- Comparison of DOS operating systems- DOS保護モードインタフェース（DPMI）- DOSエクステンダ- DOS MZ executable- COMMAND.COM

**出典**
 Cite book|editor=Beley|first=Howard|last=Bornstein|first2=Lawrence|last2=Bredehoeft|first3=Ray|last3=Duncan|first4=Carol|last4=Morris|first5=David|last5=Rose |first6=John|last6=Socha|author6-link=John Socha|first7=Jim|last7=Tomlin|first8=Kathleen|last8=Vian|first9=Van|last9=Wolverton|title=MS-DOS (Versions 1.0-3.2) Technical Reference Encyclopedia|chapter=Technical advisors|date=1986|edition=Original withdrawn|publisher=Microsoft Press|series=Microsoft Reference Library|volume=1|location=Redmond, Washington, USA|isbn=0-914845-69-1|lccn=86-8640|oclc=635600205 （xvii + 1053ページ; 29   cm）（NB。このオリジナル版には、システムの内部動作のフローチャートが含まれている。しかし、1986年に大量配布される前にマイクロソフトによって撤回された。なぜなら、公表されるべきではない機密情報だけでなく、多くの事実上の誤りが含まれていたためである。生き残った印刷物はほとんどなかった。それはその後に、1988年に完全に作り直された版に置き換えられた。 ）- Cite book|title=The MS-DOS Encyclopedia: versions 1.0 through 3.2|first=Ray|last=Duncan|first2=Steve|last2=Bostwick|first3=Keith|last3=Burgoyne|first4=Robert A.|last4=Byers|first5=Thom|last5=Hogan|first6=Jim|last6=Kyle|first7=Gordon|last7=Letwin|author7-link=Gordon Letwin|first8=Charles|last8=Petzold|author8-link=Charles Petzold|first9=Chip|last9=Rabinowitz|chapter=Technical advisors|date=1988|edition=Completely reworked|publisher=Microsoft Press|location=Redmond, Washington, USA|isbn=1-55615-049-0|lccn=87-21452|oclc=16581341 （xix + 1570ページ; 26   cm）（NB。この版は、1986年に撤回された1986年の初版を別の作家のチームによって大幅に改良した後に1988年に出版された。 ）- ピーターノートンとリチャードウィルトン著IBM PC＆PS/2の新しいピーターノートンプログラマーズガイド、マイクロソフトプレス、1987年1-55615-131-4    。- isbn=0914845772- 1991年マイクロソフトプレス、Thom Hogan 著「Programmer's PC Sourcebook」 155615321X- Microsoft MS-DOSプログラマーズリファレンス - MS-DOSの公式テクニカルリファレンス、Microsoft Press、1993 1556155468-  IBM PC DOS 7テクニカルアップデート- 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|deadurl=yes|archiveurl=https://web.archive.org/web/20171007025631/http://www.drdos.net/documentation/sysprog/httoc.htm|archivedate=2017-10-07|accessdate=2012-06-28 （イギリスで印刷された。）

**外部リンク**
  x86割り込みリスト（別名 RBIL、ラルフ・ブラウンの割り込みリスト）-  ctyme.com - INT関数による呼び出し-  wustl.edu - MS-DOSサービスの説明