DOS API - DOS API
Den DOS API er en API , der opstod med 86-DOS og anvendes i MS-DOS / PC DOS og andre DOS -kompatible operativsystemer. De fleste opkald til DOS API påkaldes ved hjælp af softwareafbrydelse 21h ( INT 21h). Ved at ringe til INT 21h med et underfunktionsnummer i AH- processorregistret og andre parametre i andre registre, kan forskellige DOS-tjenester påberåbes. Disse inkluderer håndtering af tastaturinput, videooutput, diskfiladgang, programudførelse, hukommelsesallokering og forskellige andre aktiviteter. I slutningen af 1980'erne tillader DOS-forlængere sammen med DOS Protected Mode Interface (DPMI) programmerne at køre i enten 16-bit eller 32-bit beskyttet tilstand og har stadig adgang til DOS API.
DOS API's historie
Den oprindelige DOS API i 86-DOS og MS-DOS 1.0 var designet til at være funktionelt kompatible med CP / M . Filerne blev åbnet ved hjælp af filkontrolblokke (FCB'er). DOS API blev kraftigt udvidet i MS-DOS 2.0 med flere Unix-koncepter, herunder filadgang ved hjælp af filhåndtag , hierarkiske mapper og enheds I / O-kontrol. I DOS 3.1 blev netværksomdirektorsupport tilføjet. I MS-DOS 3.31 blev INT 25h / 26h-funktionerne forbedret til at understøtte harddiske større end 32 MB. MS-DOS 5 tilføjede understøttelse til brug af øvre hukommelsesblokke (UMB'er). Efter MS-DOS 5 var DOS API uændret for de successive enkeltstående udgivelser af DOS.
DOS API og Windows
I Windows 9x indlæste DOS det beskyttede tilstandssystem og den grafiske skal. Der blev normalt adgang til DOS fra en virtuel DOS-maskine (VDM), men det var også muligt at starte direkte til real-mode MS-DOS 7.0 uden at indlæse Windows. DOS API blev udvidet med forbedret internationaliseringsunderstøttelse og lang filnavnesupport , selvom den lange filnavnesupport kun var tilgængelig i en VDM. Med Windows 95 OSR2 blev DOS opdateret til 7.1, hvilket tilføjede FAT32- understøttelse, og funktioner blev føjet til DOS API for at understøtte dette. Windows 98 og Windows ME implementerer også MS-DOS 7.1 API, selvom Windows ME rapporterer sig selv som MS-DOS 8.0.
Windows NT og de systemer, der er baseret på det (f.eks. Windows XP og Windows Vista ), er ikke baseret på MS-DOS, men bruger en virtuel maskine , NTVDM , til at håndtere DOS API. NTVDM fungerer ved at køre et DOS-program i virtuel 8086-tilstand (en emulering af reel tilstand i beskyttet tilstand tilgængelig på 80386 og højere processorer). NTVDM understøtter DOS 5.0 API. DOSEMU til Linux bruger en lignende tilgang.
Afbryd vektorer brugt af DOS
Følgende er listen over afbrydelsesvektorer, der bruges af programmer til at påberåbe sig DOS API-funktionerne.
| Afbryd vektor | Beskrivelse | Version | Bemærkninger |
|---|---|---|---|
20h
|
Afslut program | 1.0+ | Implementeret i DOS-kerne |
21h
|
Hoved DOS API | 1.0+ | Implementeret i DOS-kerne |
22h
|
Programmets afslutningsadresse | 1.0+ | Returadresse i opkaldsprogram |
23h
|
Control-C-handleradresse | 1.0+ | Standardhåndtering er i kommandoskallen (normalt COMMAND.COM) |
24h
|
Kritisk fejlhåndteringsadresse | 1.0+ | Standardhåndtering er i kommandoskallen (normalt COMMAND.COM) |
25h
|
Absolut disklæsning | 1.0+ | Implementeret i DOS-kerne, forbedret i DOS 3.31 til understøttelse af op til 2 GB partitioner |
26h
|
Absolut diskskrivning | 1.0+ | Implementeret i DOS-kerne, forbedret i DOS 3.31 til understøttelse af op til 2 GB partitioner |
27h
|
Opsig og ophold | 1.0+ | Implementeret i COMMAND.COM i DOS 1.0, DOS-kerne i DOS 2.0+ |
28h
|
Tomgangsinformation | 2.0+ | Kaldt af DOS-kerne, når du venter på input |
29h
|
Hurtig konsoludgang | 2.0+ | Implementeret af den indbyggede konsol enhedsdriver eller en erstatningsdriver som ANSI.SYS |
2Ah
|
Netværk og kritisk sektion | 3.0+ | Kaldt af DOS-kerne til interface med netværkssoftware |
2Bh
|
Ubrugt | ||
2Ch
|
Ubrugt | ||
2Dh
|
Ubrugt | ||
2Eh
|
Genindlæs forbigående | 2.0+ | Implementeret i COMMAND.COM |
2Fh
|
Multiplex | 3.0+ | Implementeret i DOS-kerne og forskellige programmer (PRINT, MSCDEX, DOSKEY, APPEND osv.) Afhængigt af underfunktionsnummer |
DOS INT 21h-tjenester
Følgende er listen over funktioner leveret via DOS API primære softwareafbrydelsesvektor.
AH
|
Beskrivelse | Version |
|---|---|---|
00h
|
Programmet afsluttes | 1.0+ |
01h
|
Indtastning af tegn | 1.0+ |
02h
|
Karakterudgang | 1.0+ |
03h
|
Ekstra input | 1.0+ |
04h
|
Ekstraudgang | 1.0+ |
05h
|
Printer output | 1.0+ |
06h
|
Direkte konsol I / O | 1.0+ |
07h
|
Direkte konsolindgang uden ekko | 1.0+ |
08h
|
Konsolindgang uden ekko | 1.0+ |
09h
|
Vis streng | 1.0+ |
0Ah
|
Bufret tastaturindgang | 1.0+ |
0Bh
|
Få inputstatus | 1.0+ |
0Ch
|
Skyl inputbuffer og input | 1.0+ |
0Dh
|
Nulstilling af disk | 1.0+ |
0Eh
|
Indstil standarddrev | 1.0+ |
0Fh
|
Åben fil | 1.0+ |
10h
|
Luk filen | 1.0+ |
11h
|
Find første fil | 1.0+ |
12h
|
Find næste fil | 1.0+ |
13h
|
Slet fil | 1.0+ |
14h
|
Sekventiel læsning | 1.0+ |
15h
|
Sekventiel skrivning | 1.0+ |
16h
|
Opret eller trunkerer fil | 1.0+ |
17h
|
Omdøb fil | 1.0+ |
18h
|
Reserveret | 1.0+ |
19h
|
Få standarddrev | 1.0+ |
1Ah
|
Indstil diskoverførselsadresse | 1.0+ |
1Bh
|
Få allokeringsoplysninger til standarddrev | 1.0+ |
1Ch
|
Få tildelingsoplysninger til det angivne drev | 1.0+ |
1Dh
|
Reserveret | 1.0+ |
1Eh
|
Reserveret | 1.0+ |
1Fh
|
Hent diskparameterblok til standarddrev | 1.0+ |
20h
|
Reserveret | 1.0+ |
21h
|
Tilfældig læsning | 1.0+ |
22h
|
Tilfældig skrivning | 1.0+ |
23h
|
Få filstørrelse i poster | 1.0+ |
24h
|
Indstil tilfældigt rekordnummer | 1.0+ |
25h
|
Indstil afbrydelsesvektor | 1.0+ |
26h
|
Opret PSP | 1.0+ |
27h
|
Tilfældig bloklæsning | 1.0+ |
28h
|
Tilfældig blokskrivning | 1.0+ |
29h
|
Parse filnavn | 1.0+ |
2Ah
|
Få dato | 1.0+ |
2Bh
|
Indstil dato | 1.0+ |
2Ch
|
Få tid | 1.0+ |
2Dh
|
Fastsat tidspunkt | 1.0+ |
2Eh
|
Indstil bekræftelsesflag | 1.0+ |
2Fh
|
Få diskoverførselsadresse | 2.0+ |
30h
|
Hent DOS-version | 2.0+ |
31h
|
Opsig og ophold | 2.0+ |
32h
|
Få diskparameterblok til det angivne drev | 2.0+ |
33h
|
Hent eller indstil Ctrl-Break | 2.0+ |
34h
|
Få InDOS-flagmarkør | 2.0+ |
35h
|
Få afbrydelsesvektor | 2.0+ |
36h
|
Få ledig diskplads | 2.0+ |
37h
|
Få eller indstil switch-karakter | 2.0+ |
38h
|
Få eller angiv landinfo | 2.0+ |
39h
|
Opret underkatalog | 2.0+ |
3Ah
|
Fjern underkatalog | 2.0+ |
3Bh
|
Skift den aktuelle mappe | 2.0+ |
3Ch
|
Opret eller trunkerer fil | 2.0+ |
3Dh
|
Åben fil | 2.0+ |
3Eh
|
Luk filen | 2.0+ |
3Fh
|
Læs fil eller enhed | 2.0+ |
40h
|
Skriv fil eller enhed | 2.0+ |
41h
|
Slet fil | 2.0+ |
42h
|
Flyt filmarkøren | 2.0+ |
43h
|
Hent eller indstil filattributter | 2.0+ |
44h
|
I / O-kontrol til enheder | 2.0+ |
45h
|
Dobbelt håndtag | 2.0+ |
46h
|
Omdiriger håndtag | 2.0+ |
47h
|
Hent den aktuelle mappe | 2.0+ |
48h
|
Tildel hukommelse | 2.0+ |
49h
|
Slip hukommelsen | 2.0+ |
4Ah
|
Omfordel hukommelsen | 2.0+ |
4Bh
|
Udfør program | 2.0+ |
4Ch
|
Afslut med returkode | 2.0+ |
4Dh
|
Få programreturkode | 2.0+ |
4Eh
|
Find første fil | 2.0+ |
4Fh
|
Find næste fil | 2.0+ |
50h
|
Indstil aktuel PSP | 2.0+ |
51h
|
Få aktuel PSP | 2.0+ |
52h
|
Få DOS interne pointer (SYSVARS) | 2.0+ |
53h
|
Opret diskparameterblok | 2.0+ |
54h
|
Få bekræftelsesflag | 2.0+ |
55h
|
Opret program PSP | 2.0+ |
56h
|
Omdøb fil | 2.0+ |
57h
|
Hent eller indstil fildato og -tid | 2.0+ |
58h
|
Få eller sæt tildelingsstrategi | 2.11+ |
59h
|
Få udvidet fejlinformation | 3.0+ |
5Ah
|
Opret unik fil | 3.0+ |
5Bh
|
Opret ny fil | 3.0+ |
5Ch
|
Lås eller låse op for fil | 3.0+ |
5Dh
|
Fildelingsfunktioner | 3.0+ |
5Eh
|
Netværksfunktioner | 3.0+ |
5Fh
|
Netværk omdirigering funktioner | 3.0+ |
60h
|
Kvalificer filnavn | 3.0+ |
61h
|
Reserveret | 3.0+ |
62h
|
Få aktuel PSP | 3.0+ |
63h
|
Få DBCS-blybyte-bordmarkør | 3.0+ |
64h
|
Indstil ventetiden til det eksterne begivenhedsflag | 3.2+ |
65h
|
Få udvidet landinfo | 3.3+ |
66h
|
Hent eller indstil kodeside | 3.3+ |
67h
|
Indstil håndtagstallet | 3.3+ |
68h
|
Forpligt fil | 3.3+ |
69h
|
Få eller indstil medie-id | 4.0+ |
6Ah
|
Forpligt fil | 4.0+ |
6Bh
|
Reserveret | 4.0+ |
6Ch
|
Udvidet åben / opret fil | 4.0+ |
Operativsystemer med indbygget support
- MS-DOS - mest udbredte implementering
- PC DOS - IBM OEM-version af MS-DOS
- OS / 2 1.x - Microsoft / IBM efterfølger til MS-DOS og PC DOS
- SISNE plus - Klon oprettet af Itautec og Scopus Tecnologia i Brasilien
- DR-DOS - Digital Research DOS-familie, herunder Novell DOS , PalmDOS , OpenDOS osv.
- PTS-DOS - PhysTechSoft & Paragon DOS-klon, inklusive S / DOS
- ROM-DOS - Datalight ROM DOS version
- Embedded DOS - Generel Software -version
- FreeDOS - Gratis, open source DOS-klon
- ReactOS ( IA-32 og x86-64 versioner)
- Windows 95 - indeholder MS-DOS 7.0
- Windows 98 - indeholder MS-DOS 7.1
- Windows 98 SE - indeholder MS-DOS 7.1
- Windows ME - indeholder MS-DOS 8.0
Operativsystemer med DOS-emuleringslag
- Samtidig CP / M-86 (kun 3.1) med PCMODE - Digital Research CP / M-86-baseret OS med valgfri PC DOS-emulator
- Samtidig DOS - Digital Research CDOS-familie med indbygget PC DOS-emulator
- DOS Plus - en fjernet enkeltbrugervariant af Concurrent PC DOS 4.1–5.0
- Flerbruger DOS - Digital Research / Novell MDOS-familie inklusive Datapac System Manager , IMS REAL / 32 osv.
- OS / 2 (2.x og nyere) - IBM-operativsystem ved hjælp af et fuldt licenseret MS-DOS 5.0 i en virtuel maskine
- Windows NT (alle versioner undtagen 64-bit udgaver)
Andre emulatorer
- NTVDM til Windows NT
- DOSEMU til Linux
- DOSBox
Se også
- BIOS afbryd opkald
- Ralf Browns Interrupt List (RBIL)
- Sammenligning af DOS-operativsystemer
- DOS Protected Mode Interface (DPMI)
- DOS extender
- DOS MZ eksekverbar
- COMMAND.COM
Referencer
Yderligere læsning
- Allen, Paul ; Gates, Bill ; King, Adrian; Larson, Chris; Letwin, Gordon ; O'Rear, Bob ; Paterson, Tim ; Peters, Chris; Phillips, Bruce; Reynolds, Aaron ; Stillmaker, Betty; Zbikowski, Mark (1986). "Tekniske rådgivere". MS-DOS (version 1.0-3.2) Teknisk reference encyklopædi . Af Bornstein, Howard; Bredehoeft, Lawrence; Duncan, Ray; Morris, Carol; Rose, David; Socha, John ; Tomlin, Jim; Vian, Kathleen; Wolverton, Van. Beley, Jim; Preppernau, Barry; Beason, Pam; Lewis, Andrea; Rygmyr, David (red.). Microsoft referencebibliotek. 1 (Original trukket udgave). Redmond, Washington, USA: Microsoft Press . ISBN 0-914845-69-1. LCCN 86-8640 . OCLC 635600205 .(xvii + 1053 sider; 29 cm) (NB. Denne originale udgave indeholder rutediagrammer over systemets interne funktion. Det blev trukket tilbage af Microsoft inden massedistribution i 1986, fordi det indeholdt mange faktiske fejl samt nogle klassificerede oplysninger, som skulle ikke er offentliggjort. Få trykte eksemplarer overlevede. Den blev erstattet af en fuldstændig omarbejdet udgave i 1988. [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; Bonde, Rick; Gates, Bill ; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W .; Kermaani, Kaamel; King, 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; Kort, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Tekniske rådgivere". MS-DOS Encyclopedia: version 1.0 til 3.2 . Af 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 (fuldstændig omarbejdet red.). Redmond, Washington, USA: Microsoft Press . ISBN 1-55615-049-0. LCCN 87-21452 . OCLC 16581341 .(xix + 1570 sider; 26 cm) (NB. Denne udgave blev udgivet i 1988 efter omfattende omarbejdning af den tilbagetrukne første udgave af 1986 af et andet hold af forfattere. [2] )
- The New Peter Norton Programmer's Guide to the IBM PC & PS / 2 af Peter Norton og Richard Wilton, Microsoft Press, 1987 ISBN 1-55615-131-4 .
- Ray Duncan (1988). Avanceret MS-DOS-programmering: Microsoft-vejledningen til montagesprog og C-programmerere . Microsoft Press. ISBN 0914845772.
- Programmørens pc-kildebog af Thom Hogan, Microsoft Press, 1991 ISBN 155615321X
- Microsoft MS-DOS programmeringsreference - Den officielle tekniske reference til MS-DOS , Microsoft Press, 1993 ISBN 1556155468
- IBM PC DOS 7 teknisk opdatering
- OpenDOS Developer's Reference Series - OpenDOS Programmer's Guide - System and Programmer's Guide . Caldera, Inc. august 1997. Caldera varenr. 200-DOPG-003. Arkiveret fra originalen den 2017-10-07 . Hentet 28-06-2012 . (Trykt i Storbritannien.)