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

Operativsystemer med DOS-emuleringslag

Andre emulatorer

Se også

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.)

eksterne links