DOS API

Das Dos api ist ein API was entstand von 86-dos und wird in verwendet in MS-DOS/PC dos und andere DOS-kompatible Betriebssysteme. Die meisten Aufrufe der DOS -API werden mit Verwendung aufgerufen Software Interrupt 21h (Int 21h). Durch den Ruf von int 21h mit einer Subfunktionsnummer im AH Prozessorregister und andere Parameter in anderen Registern können verschiedene DOS -Dienste aufgerufen werden. Dazu gehören die Handhabung der Tastatureingabe, die Videoausgabe, den Zugriff auf Datenträger, die Programmausführung, die Speicherzuweisung und verschiedene andere Aktivitäten. In den späten 1980er Jahren, DOS -Erweiterungen zusammen mit DOS -geschützte Modus -Schnittstelle (DPMI) Ermöglichen Sie, dass die Programme entweder im 16-Bit- oder 32-Bit-Schutzmodus ausgeführt werden und haben weiterhin Zugriff auf die DOS-API.

Geschichte der DOS -API

Die ursprüngliche DOS-API in 86-DOS und MS-DOS 1.0 wurde so konzipiert, dass sie funktionell kompatibel mit CP/m. Die Dateien wurden mithilfe von Zugriff aufgenommen Dateisteuerblöcke (FCBS). Die DOS-API wurde in MS-DOS 2.0 mit mehreren UNIX-Konzepten, einschließlich Dateizugriff, stark erweitert Dateigriffe, Hierarchische Verzeichnisse und Geräte -E/A -Steuerung.[1] In DOS 3.1, Netzwerkumbau Unterstützung wurde hinzugefügt. In MS-DOS 3.31 wurden die int 25H/26H-Funktionen erweitert, um Festplatten von mehr als 32 MB zu unterstützen. MS-DOS 5 Support für die Verwendung zusätzlich Oberspeicherblöcke (Umbs). Nach MS-DOS 5 war die DOS-API für die aufeinanderfolgenden eigenständigen Veröffentlichungen von DOS unverändert.

Die DOS -API und die Fenster

Im Windows 9x, Dos lud das geschützte Modussystem und die grafische Hülle. DOS wurde normalerweise von a zugegriffen Virtuelle DoS -Maschine (VDM) Es war jedoch auch möglich, direkt auf den realen Modus MS-DOS 7.0 zu starten, ohne Fenster zu laden. Die DOS -API wurde mit verstärkter Internationalisierungsunterstützung erweitert und langer Dateiname Unterstützung, obwohl der lange Dateiname -Support nur in einem VDM erhältlich war. Mit Windows 95 OSR2, DOS wurde auf 7.1 aktualisiert, was hinzugefügt wurde FAT32 Unterstützung und Funktionen wurden der DOS -API hinzugefügt, um dies zu unterstützen. Windows 98 und Fenster mich Implementieren Sie auch die MS-DOS 7.1-API, obwohl Windows ME sich als MS-DOS 8.0 meldet.

Windows NT und die darauf basierenden Systeme (z. Windows XP und Windows Vista) nicht auf MS-DOS basieren, sondern a virtuelle Maschine, Ntvdm, um die DOS -API zu bewältigen. NTVDM arbeitet mit einem DOS -Programm in Virtueller 8086 -Modus (eine Emulation von Realer Modus innerhalb Sicherheitsmodus verfügbar auf 80386 und höhere Prozessoren). NTVDM unterstützt die DOS 5.0 -API. Dosemu zum Linux verwendet einen ähnlichen Ansatz.

Interrupt -Vektoren von DOS verwendet

Das Folgende ist die Liste der Interrupt -Vektoren, die von Programmen verwendet werden, um die DOS -API -Funktionen aufzurufen.

Vektor unterbrechen Beschreibung Ausführung Anmerkungen
20h Programm beenden 1.0+ Implementiert in Dos Kernel
21h Hauptdos -API 1.0+ Implementiert in Dos Kernel
22h Programm Beendigung der Adresse 1.0+ Rückgabeadresse im Anrufprogramm
23h Kontroll-C-Handleradresse 1.0+ Der Standard -Handler befindet sich in der Befehlsschale (normalerweise command.com)
24h Kritische Fehlerhandleradresse 1.0+ Der Standard -Handler befindet sich in der Befehlsschale (normalerweise command.com)
25h Absolute Festplatte lesen 1.0+ Implementiert in DOS Kernel, verbessert in DOS 3.31, um bis zu 2 GB -Partitionen zu unterstützen
26h Absolute Festplatte schreiben 1.0+ Implementiert in DOS Kernel, verbessert in DOS 3.31, um bis zu 2 GB -Partitionen zu unterstützen
27h Beenden und ansässig bleiben 1.0+ Implementiert in command.com in DOS 1.0, DOS Kernel in DOS 2.0+
28h Leerlauf 2.0+ Vom Dos Kernel aufgerufen, wenn Sie auf die Eingabe warten
29h Schnelle Konsolenausgabe 2.0+ Implementiert durch den integrierten Konsolengeräte-Treiber oder einen Ersatztreiber wie ANSI.Sys
2Ah Networking und kritischer Abschnitt 3.0+ Aufgerufen von Dos Kernel zur Schnittstelle mit Netzwerksoftware
2Bh Ungebraucht
2Ch Ungebraucht
2Dh Ungebraucht
2Eh Transienten neu laden 2.0+ Implementiert in command.com
2Fh Multiplex 3.0+ Implementiert in DOS -Kernel und verschiedenen Programmen (Print, MSCDEX, Doskey, Anhänge usw.), abhängig von der Unterfunktionsnummer

DOS INT 21H -Dienste

Das Folgende ist die Liste der Funktionen, die über den DOS -API Primary Software Interrupt Vector bereitgestellt werden.

AH Beschreibung Ausführung
00h Programm enden 1.0+
01h Zeicheneingabe 1.0+
02h Charakterausgabe 1.0+
03h AUX Eingang 1.0+
04h Hilfsausgabe 1.0+
05h Druckerausgabe 1.0+
06h Direkte Konsole i/o 1.0+
07h Direktkonsoleneingabe ohne Echo 1.0+
08h Konsoleneingabe ohne Echo 1.0+
09h Zeichenfolge anzeigen 1.0+
0Ah Gepufferter Tastatureingang 1.0+
0Bh Eingabestatus erhalten 1.0+
0Ch Spüleneingangspuffer und Eingang 1.0+
0Dh Festplattenreset 1.0+
0Eh Setzen Sie das Standardlaufwerk 1.0+
0Fh Datei öffnen 1.0+
10h Datei schließen 1.0+
11h Erste Datei finden 1.0+
12h Weitere Datei finden 1.0+
13h Datei löschen 1.0+
14h Sequentielle Lesen 1.0+
15h Sequentielle Schreiben 1.0+
16h Datei erstellen oder abschneiden 1.0+
17h Datei umbenennen 1.0+
18h Reserviert 1.0+
19h Standard Laufwerk erhalten 1.0+
1Ah Festplattenübertragungsadresse festlegen 1.0+
1Bh Holen Sie sich Allokationsinformationen für das Standardlaufwerk 1.0+
1Ch Holen Sie sich Allokationsinformationen für das bestimmte Laufwerk 1.0+
1Dh Reserviert 1.0+
1Eh Reserviert 1.0+
1Fh Holen Sie sich den Festplattenparameterblock für das Standardlaufwerk 1.0+
20h Reserviert 1.0+
21h Zufällige Lektüre 1.0+
22h Zufälliger Schreiben 1.0+
23h Holen Sie sich die Dateigröße in Datensätzen 1.0+
24h Legen Sie die zufällige Datensatznummer fest 1.0+
25h Setzen Sie den Interrupt -Vektor 1.0+
26h PSP erstellen 1.0+
27h Zufälliger Block lesen 1.0+
28h Zufälliger Block schreiben 1.0+
29h Dateinamen analysieren 1.0+
2Ah Verabredung bekommen 1.0+
2Bh Datum einstellen 1.0+
2Ch Zeit bekommen 1.0+
2Dh Zeit einstellen 1.0+
2Eh Stellen Sie die Flag ein 1.0+
2Fh Holen Sie sich die Datenträgeradresse 2.0+
30h Holen Sie sich dos Version 2.0+
31h Beenden und ansässig bleiben 2.0+
32h Holen Sie sich den Festplattenparameterblock für das angegebene Laufwerk 2.0+
33h Strl-Break erhalten oder setzen 2.0+
34h Holen Sie sich Indos -Flaggenzeiger 2.0+
35h Interrupt Vector erhalten 2.0+
36h Holen Sie sich freien Speicherplatz 2.0+
37h Schaltercharakter erhalten oder einstellen 2.0+
38h Länderinformationen erhalten oder festlegen 2.0+
39h Erstellen Sie Unterverzeichnis 2.0+
3Ah Unterverzeichnis entfernen 2.0+
3Bh Das aktuelle Verzeichnis ändern 2.0+
3Ch Datei erstellen oder abschneiden 2.0+
3Dh Datei öffnen 2.0+
3Eh Datei schließen 2.0+
3Fh Datei oder Gerät lesen 2.0+
40h Datei oder Gerät schreiben 2.0+
41h Datei löschen 2.0+
42h Dateizeiger verschieben 2.0+
43h Dateiattribute abrufen oder festlegen 2.0+
44h E/A -Steuerung für Geräte 2.0+
45h Doppelter Griff 2.0+
46h Griff umleiten 2.0+
47h Aktuelles Verzeichnis erhalten 2.0+
48h Speicher zuweisen 2.0+
49h Speicher loslassen 2.0+
4Ah Memory verwirklichen 2.0+
4Bh Programm ausführen 2.0+
4Ch Kündigen Sie mit Rückgabecode 2.0+
4Dh Programmrückgabecode erhalten 2.0+
4Eh Erste Datei finden 2.0+
4Fh Weitere Datei finden 2.0+
50h Setzen Sie aktuelle PSP 2.0+
51h Erhalten Sie aktuelle PSP 2.0+
52h Holen Sie sich dos interne Zeiger (Sysvars) 2.0+
53h Erstellen Sie den Festplattenparameterblock 2.0+
54h Holen Sie sich die Flagge 2.0+
55h Programm PSP erstellen 2.0+
56h Datei umbenennen 2.0+
57h Datum und Uhrzeit erhalten oder festlegen 2.0+
58h Zuteilungsstrategie erhalten oder festlegen 2.11+
59h Erhalten Sie erweiterte Fehlerinformationen 3.0+
5Ah Erstellen Sie eine eindeutige Datei 3.0+
5Bh Neue Datei erstellen 3.0+
5Ch Datei sperren oder entsperren 3.0+
5Dh Dateifreigabefunktionen 3.0+
5Eh Netzwerkfunktionen 3.0+
5Fh Netzwerkumleitung Funktionen 3.0+
60h Den Dateinamen qualifizieren 3.0+
61h Reserviert 3.0+
62h Erhalten Sie aktuelle PSP 3.0+
63h Holen Sie sich DBCS -Lead -Byte -Tabellenzeiger 3.0+
64h Warten Sie auf eine externe Ereignisflagge 3.2+
65h Holen Sie sich erweiterte Landinformationen 3.3+
66h Code -Seite abrufen oder festlegen 3.3+
67h Griff zählen 3.3+
68h Datei begehen 3.3+
69h Medien -ID erhalten oder festlegen 4.0+
6Ah Datei begehen 4.0+
6Bh Reserviert 4.0+
6Ch Erweiterte Open-/Erstellen von Datei 4.0+

Betriebssysteme mit nativer Unterstützung

Betriebssysteme mit DOS -Emulationsschicht

Andere Emulatoren

Siehe auch

Verweise

  1. ^ Ray Duncan (1988). Erweiterte MS-DOS-Programmierung: Der Microsoft-Leitfaden für Assemblersprachen- und C-Programmierer. Microsoft Press. ISBN 0914845772.

Weitere Lektüre

  • Allen, Paul; Tore, Bill; König, Adrian; Larson, Chris; Letwin, Gordon; O'Rear, Bob; Paterson, Tim; Peters, Chris; Phillips, Bruce; Reynolds, Aaron; Stillmaker, Betty; Zbikowski, Mark (1986). "Technische Berater". MS-DOS (Versionen 1.0-3.2) Technische Referenz-Enzyklopädie. Von Bornstein, Howard; BREDEHOEFT, LAWRENCE; Duncan, Ray; Morris, Carol; Rose, David; Socha, John; Tomlin, Jim; Vian, Kathleen; Wolverton, Van. Bely, Jim; Preppernau, Barry; BEISON, PAM; Lewis, Andrea; Rygmyr, David (Hrsg.). Microsoft Reference Library. Vol. 1 (Original zurückgezogen.). Redmond, Washington, USA: Microsoft Press. ISBN 0-914845-69-1. Lccn 86-8640. OCLC 635600205. (xvii+1053 Seiten; 29 cm) (nb. Diese ursprüngliche Ausgabe enthält Flow-Diagramme des internen Arbeitsplites des Systems Es wurden nicht veröffentlicht. Nur wenige gedruckte Kopien überlebten. Es wurde 1988 durch eine komplett überarbeitete Ausgabe ersetzt. [1])
  • 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; Bauer, Rick; Tore, Bill; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; König, 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; Kurz, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Technische Berater". Die MS-DOS-Enzyklopädie: Versionen 1.0 bis 3.2. Von 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 (komplett überarbeitet auf Hrsg.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-049-0. Lccn 87-21452. OCLC 16581341. (XIX+1570 Seiten; 26 cm) (nb. Diese Ausgabe wurde 1988 nach umfassender Überarbeitung der entzogenen Erstausgabe von 1986 von einem anderen Autorenteam veröffentlicht. [2])
  • Der neue Leitfaden für Peter Norton -Programmierer zum IBM PC & PS/2 von Peter Norton und Richard Wilton, Microsoft Press, 1987 ISBN1-55615-131-4.
  • Ray Duncan (1988). Erweiterte MS-DOS-Programmierung: Der Microsoft-Leitfaden für Assemblersprachen- und C-Programmierer. Microsoft Press. ISBN 0914845772.
  • Das PC -Quellbuch des Programmierers von Thom Hogan, Microsoft Press, 1991 ISBN155615321X
  • Referenz des Microsoft MS-DOS-Programmierers-Die offizielle technische Referenz auf MS-DOS, Microsoft Press, 1993 ISBN1556155468
  • IBM PC DOS 7 Technisches Update
  • Referenzreihen von Opendos Developer - Opendos Programmer's Guide - System- und Programmierhandbuch. Caldera, Inc. August 1997. Caldera Teil Nr. 200-DOPG-003. Archiviert von das Original Am 2017-10-07. Abgerufen 2012-06-28. (Gedruckt in Großbritannien.)

Externe Links