DOS API - DOS API

Die DOS-API ist eine API, die aus 86-DOS stammt und in MS-DOS / PC-DOS und anderen DOS- kompatiblen Betriebssystemen verwendet wird. Die meisten Aufrufe der DOS-API werden mit dem Software-Interrupt 21h ( INT 21h) aufgerufen . Durch Aufrufen von INT 21h mit einer Unterfunktionsnummer im AH- Prozessorregister und anderen Parametern in anderen Registern können verschiedene DOS-Dienste aufgerufen werden. Dazu gehören die Tastatureingabe, die Videoausgabe, der Zugriff auf Datenträgerdateien, die Programmausführung, die Speicherzuweisung und verschiedene andere Aktivitäten. In den späten 1980er Jahren ermöglichen DOS-Extender zusammen mit der DOS Protected Mode Interface (DPMI), dass die Programme entweder im 16-Bit- oder im 32-Bit-geschützten Modus ausgeführt werden und weiterhin Zugriff auf die DOS-API haben.

Verlauf der DOS-API

Die ursprüngliche DOS-API unter 86-DOS und MS-DOS 1.0 wurde so konzipiert, dass sie mit CP / M funktionsfähig ist . Auf Dateien wurde mit Dateikontrollblöcken (FCBs) zugegriffen . Die DOS-API wurde in MS-DOS 2.0 um mehrere Unix-Konzepte erweitert, einschließlich Dateizugriff über Dateihandles , hierarchische Verzeichnisse und Geräte-E / A-Steuerung. In DOS 3.1 wurde die Unterstützung für Netzwerk-Redirector hinzugefügt. In MS-DOS 3.31 wurden die INT 25h / 26h-Funktionen erweitert, um Festplatten mit mehr als 32 MB zu unterstützen. MS-DOS 5 bietet Unterstützung für die Verwendung von UMBs ( Upper Memory Blocks ). Nach MS-DOS 5 blieb die DOS-API für die aufeinanderfolgenden eigenständigen Versionen von DOS unverändert.

Die DOS-API und Windows

In Windows 9x hat DOS das System im geschützten Modus und die grafische Shell geladen. Der Zugriff auf DOS erfolgte normalerweise über eine virtuelle DOS-Maschine (VDM), es war jedoch auch möglich, direkt im realen Modus MS-DOS 7.0 zu starten, ohne Windows zu laden. Die DOS-API wurde um erweiterte Internationalisierungsunterstützung und Unterstützung für lange Dateinamen erweitert , obwohl die Unterstützung für lange Dateinamen nur in einem VDM verfügbar war. Unter Windows 95 OSR2 wurde DOS auf 7.1 aktualisiert, wodurch FAT32- Unterstützung hinzugefügt wurde , und der DOS-API wurden Funktionen hinzugefügt, um dies zu unterstützen. Windows 98 und Windows ME implementieren ebenfalls die MS-DOS 7.1-API, obwohl Windows ME sich selbst als MS-DOS 8.0 meldet.

Windows NT und die darauf basierenden Systeme (z. B. Windows XP und Windows Vista ) basieren nicht auf MS-DOS, sondern verwenden eine virtuelle Maschine , NTVDM , um die DOS-API zu verwalten. NTVDM funktioniert durch Ausführen eines DOS-Programms im virtuellen 8086-Modus (eine Emulation des realen Modus im geschützten Modus , der auf 80386 und höheren Prozessoren verfügbar ist ). NTVDM unterstützt die DOS 5.0-API. DOSEMU für Linux verwendet einen ähnlichen Ansatz.

Von DOS verwendete Interruptvektoren

Das Folgende ist die Liste der Interruptvektoren, die von Programmen zum Aufrufen der DOS-API-Funktionen verwendet werden.

Vektor unterbrechen Beschreibung Ausführung Anmerkungen
20h Programm beenden 1,0+ Im DOS-Kernel implementiert
21h Haupt-DOS-API 1,0+ Im DOS-Kernel implementiert
22h Programmbeendigungsadresse 1,0+ Rücksprungadresse im aufrufenden Programm
23h Control-C-Handleradresse 1,0+ Der Standardhandler befindet sich in der Befehlsshell (normalerweise COMMAND.COM).
24h Adresse für kritische Fehlerbehandlungsroutine 1,0+ Der Standardhandler befindet sich in der Befehlsshell (normalerweise COMMAND.COM).
25h Absolutes Lesen der Festplatte 1,0+ Implementiert im DOS-Kernel, erweitert in DOS 3.31, um Partitionen mit bis zu 2 GB zu unterstützen
26h Absolutes Festplattenschreiben 1,0+ Implementiert im DOS-Kernel, erweitert in DOS 3.31, um Partitionen mit bis zu 2 GB zu unterstützen
27h Beenden und bleiben Sie ansässig 1,0+ Implementiert in COMMAND.COM unter DOS 1.0, DOS-Kernel unter DOS 2.0+
28h Leerlaufbeschriftung 2.0+ Wird vom DOS-Kernel aufgerufen, wenn auf eine Eingabe gewartet wird
29h Schnelle Konsolenausgabe 2.0+ Implementiert vom integrierten Konsolengerätetreiber oder einem Ersatztreiber wie ANSI.SYS
2Ah Netzwerk und kritischer Bereich 3.0+ Wird vom DOS-Kernel aufgerufen, um eine Schnittstelle zur Netzwerksoftware herzustellen
2Bh Ungebraucht
2Ch Ungebraucht
2Dh Ungebraucht
2Eh Transient neu laden 2.0+ Implementiert in COMMAND.COM
2Fh Multiplex 3.0+ Implementiert im DOS-Kernel und in verschiedenen Programmen (PRINT, MSCDEX, DOSKEY, APPEND usw.) abhängig von der Unterfunktionsnummer

DOS INT 21h Dienste

Das Folgende ist die Liste der Funktionen, die über den Interrupt-Vektor der primären DOS-API-Software bereitgestellt werden.

AH Beschreibung Ausführung
00h Programm beenden 1,0+
01h Zeicheneingabe 1,0+
02h Zeichenausgabe 1,0+
03h AUX Eingang 1,0+
04h Hilfsausgang 1,0+
05h Druckerausgabe 1,0+
06h Direkte Konsolen-E / A. 1,0+
07h Direkter Konsoleneingang ohne Echo 1,0+
08h Konsoleneingang ohne Echo 1,0+
09h Zeichenfolge anzeigen 1,0+
0Ah Gepufferte Tastatureingabe 1,0+
0Bh Eingabestatus abrufen 1,0+
0Ch Eingabepuffer und Eingabe leeren 1,0+
0Dh Festplatten zurücksetzen 1,0+
0Eh Standardlaufwerk festlegen 1,0+
0Fh Datei öffnen 1,0+
10h Datei schließen 1,0+
11h Finde die erste Datei 1,0+
12h Nächste Datei suchen 1,0+
13h Datei löschen 1,0+
14h Sequentielles Lesen 1,0+
15h Sequentielles Schreiben 1,0+
16h Datei erstellen oder abschneiden 1,0+
17h Datei umbenennen 1,0+
18h Reserviert 1,0+
19h Standardlaufwerk abrufen 1,0+
1Ah Festlegen der Datenträgerübertragungsadresse 1,0+
1Bh Informationen zur Zuordnung für das Standardlaufwerk abrufen 1,0+
1Ch Informationen zur Zuordnung für das angegebene Laufwerk abrufen 1,0+
1Dh Reserviert 1,0+
1Eh Reserviert 1,0+
1Fh Holen Sie sich den Plattenparameterblock für das Standardlaufwerk 1,0+
20h Reserviert 1,0+
21h Zufälliges Lesen 1,0+
22h Zufälliges Schreiben 1,0+
23h Abrufen der Dateigröße in Datensätzen 1,0+
24h Stellen Sie eine zufällige Datensatznummer ein 1,0+
25h Interrupt-Vektor einstellen 1,0+
26h PSP erstellen 1,0+
27h Zufälliger Block gelesen 1,0+
28h Zufälliges Blockschreiben 1,0+
29h Dateiname analysieren 1,0+
2Ah Verabredung bekommen 1,0+
2Bh Datum einstellen 1,0+
2Ch Zeit bekommen 1,0+
2Dh Zeit einstellen 1,0+
2Eh Bestätigungsflag setzen 1,0+
2Fh Festplattenübertragungsadresse abrufen 2.0+
30h Holen Sie sich die DOS-Version 2.0+
31h Beenden und bleiben Sie ansässig 2.0+
32h Ruft den Plattenparameterblock für das angegebene Laufwerk ab 2.0+
33h Holen Sie sich oder stellen Sie Strg-Pause ein 2.0+
34h Holen Sie sich den InDOS-Flag-Zeiger 2.0+
35h Interrupt-Vektor abrufen 2.0+
36h Holen Sie sich freien Speicherplatz 2.0+
37h Schalterzeichen abrufen oder einstellen 2.0+
38h Länderinformationen abrufen oder festlegen 2.0+
39h Unterverzeichnis erstellen 2.0+
3Ah Unterverzeichnis entfernen 2.0+
3Bh Ändern Sie das aktuelle Verzeichnis 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 Abrufen oder Festlegen von Dateiattributen 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 abrufen 2.0+
48h Speicher zuweisen 2.0+
49h Speicher freigeben 2.0+
4Ah Speicher neu zuweisen 2.0+
4Bh Programm ausführen 2.0+
4Ch Beenden Sie mit dem Rückkehrcode 2.0+
4Dh Programm-Rückkehrcode abrufen 2.0+
4Eh Finde die erste Datei 2.0+
4Fh Nächste Datei suchen 2.0+
50h Stellen Sie die aktuelle PSP ein 2.0+
51h Holen Sie sich die aktuelle PSP 2.0+
52h Holen Sie sich interne DOS-Zeiger (SYSVARS) 2.0+
53h Erstellen Sie einen Plattenparameterblock 2.0+
54h Überprüfen Sie das Flag 2.0+
55h Erstellen Sie das Programm PSP 2.0+
56h Datei umbenennen 2.0+
57h Datum und Uhrzeit der Datei abrufen oder festlegen 2.0+
58h Allokationsstrategie abrufen 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 Filesharing-Funktionen 3.0+
5Eh Netzwerkfunktionen 3.0+
5Fh Netzwerkumleitungsfunktionen 3.0+
60h Qualifizieren Sie den Dateinamen 3.0+
61h Reserviert 3.0+
62h Holen Sie sich die aktuelle PSP 3.0+
63h Holen Sie sich den DBCS-Lead-Byte-Tabellenzeiger 3.0+
64h Setzen Sie das Flag für das Warten auf ein externes Ereignis 3.2+
65h Erhalten Sie erweiterte Länderinformationen 3.3+
66h Codepage abrufen oder einstellen 3.3+
67h Stellen Sie die Anzahl der Griffe ein 3.3+
68h Datei festschreiben 3.3+
69h Medien-ID abrufen oder festlegen 4.0+
6Ah Datei festschreiben 4.0+
6Bh Reserviert 4.0+
6Ch Erweiterte Datei zum Öffnen / Erstellen 4.0+

Betriebssysteme mit nativer Unterstützung

Betriebssysteme mit DOS-Emulationsschicht

Andere Emulatoren

Siehe auch

Verweise

Weiterführende Literatur

  • Allen, Paul ; Gates, 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. Beley, Jim; Preppernau, Barry; Grund, Pam; Lewis, Andrea; Rygmyr, David (Hrsg.). Microsoft-Referenzbibliothek. 1 (Original zurückgezogen ed.). Redmond, Washington, USA: Microsoft Press . ISBN 0-914845-69-1. LCCN  86-8640 . OCLC  635600205 .(xvii + 1053 Seiten; 29 cm) (NB. Diese Originalausgabe enthält Flussdiagramme der internen Funktionsweise des Systems. Sie wurde von Microsoft vor der Massenverteilung 1986 zurückgezogen, da sie viele sachliche Fehler sowie einige Verschlusssachen enthielt, die dies sollten wurden nicht veröffentlicht. Nur wenige gedruckte Exemplare sind erhalten. Sie wurden 1988 durch eine komplett überarbeitete Ausgabe ersetzt. [1] )
  • Zbikowski, Mark ; Allen, Paul ; Ballmer, Steve ; Borman, Ruben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Bauer, Rick; Gates, 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 (Vollständig überarbeitete Ausgabe). 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 umfangreicher Überarbeitung der zurückgezogenen Erstausgabe von 1986 durch ein anderes Autorenteam veröffentlicht. [2] )
  • Das neue Peter Norton-Programmierhandbuch für IBM PC & PS / 2 von Peter Norton und Richard Wilton, Microsoft Press, 1987 ISBN  1-55615-131-4 .
  • Ray Duncan (1988). Erweiterte MS-DOS-Programmierung: Das Microsoft-Handbuch für Assembler- und C-Programmierer . Microsoft Press. ISBN 0914845772.
  • Das PC- Quellbuch des Programmierers von Thom Hogan, Microsoft Press, 1991 ISBN  155615321X
  • Microsoft MS-DOS-Programmierreferenz - Die offizielle technische Referenz zu MS-DOS , Microsoft Press, 1993 ISBN  1556155468
  • Technisches Update für IBM PC DOS 7
  • OpenDOS Developer's Reference Series - OpenDOS-Programmierhandbuch - System- und Programmierhandbuch . Caldera, Inc. August 1997. Caldera Teile-Nr. 200-DOPG-003. Archiviert vom Original am 07.10.2017 . Abgerufen am 28.06.2012 . (Gedruckt in Großbritannien.)

Externe Links