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
- MS-DOS - Die am weitesten verbreitete Implementierung
- PC dos -IBM OEM-Version von MS-DOS
- OS/2 1.x-Microsoft/IBM Nachfolger bei MS-DOS und PC DOS
- Sisne Plus – Klon erstellt von Itautec und Scopus tecnologia in Brasilien
- DR-DOS - Digitale Forschung DOS -Familie, einschließlich Novell dos, Palmdos, Opendos, etc.
- PTS-DOS - Phystechsoft & Paragon dos Clone, einschließlich S/dos
- Rom-Dos - Datalight ROM DOS -Version
- Eingebettete dos – Allgemeine Software Ausführung
- Freedos - Freier Open Source -Dos -Klon
- Reactos (IA-32 und x86-64 Versionen)
- Windows 95 -Enthält MS-DOS 7.0
- Windows 98 -Enthält MS-DOS 7.1
- Windows 98 SE -Enthält MS-DOS 7.1
- Fenster mich -Enthält MS-DOS 8.0
Betriebssysteme mit DOS -Emulationsschicht
- Gleichzeitiger CP/M-86 (Nur 3.1) mit PCMode -Digitalforschung CP/M-86-basierte Betriebssystem mit optionalem PC-Dos-Emulator
- Gleichzeitige dos -CDOS-Familie Digital Research mit integriertem PC-Dos-Emulator
- Dos plus -Eine abgespeckte Einzelbenutzervariante von gleichzeitiger PC-DOS 4.1–5.0
- Multiuser dos - Digitale Forschung/Novell MDOS -Familie einschließlich Datapac System Manager, IMS Real/32, etc.
- OS/2 (2.x und später)-IBM-Betriebssystem unter Verwendung eines vollständig lizenzierten MS-DOS 5.0 in a virtuelle Maschine
- Windows NT (Alle Versionen außer 64-Bit-Editionen)
Andere Emulatoren
Siehe auch
- BIOS Interrupt Call
- Ralf Browns Interrupt -Liste (RBIL)
- Vergleich von DOS -Betriebssystemen
- DOS -geschützte Modus -Schnittstelle (DPMI)
- Dos extender
- Dos mz ausführbar
- Command.com
Verweise
- ^ 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.)