DOS API - DOS API

DOS API je API , který vznikl s 86-DOS a používá se v MS-DOS / PC DOS a jiné DOS kompatibilních operačních systémů. Většina volání rozhraní DOS API je vyvolána pomocí softwarového přerušení 21 h ( INT 21 h). Voláním INT 21h s číslem podfunkce v registru procesoru AH a dalšími parametry v jiných registrech lze vyvolat různé služby DOS. Patří mezi ně manipulace se vstupem z klávesnice, video výstupem, přístupem k souborům na disku, spouštěním programu, přidělováním paměti a různými dalšími činnostmi. Na konci 80. let umožňují rozšiřovače systému DOS spolu s rozhraním DMI Protected Mode Interface (DPMI), aby byly programy spuštěny v 16bitovém nebo 32bitovém chráněném režimu a stále měly přístup k rozhraní DOS API.

Historie DOS API

Původní DOS API ve 86-DOS a MS-DOS 1.0 byl navržen tak, aby byl funkčně kompatibilní s CP / M . K souborům bylo přistupováno pomocí bloků kontroly souborů (FCB). Rozhraní DOS API bylo v systému MS-DOS 2.0 výrazně rozšířeno o několik konceptů Unixu, včetně přístupu k souborům pomocí popisovačů souborů , hierarchických adresářů a ovládání I / O zařízení. V systému DOS 3.1 byla přidána podpora přesměrovače sítě . V systému MS-DOS 3.31 byly vylepšeny funkce INT 25h / 26h, aby podporovaly pevné disky větší než 32 MB. MS-DOS 5 přidala podporu pro použití bloků horní paměti (UMB). Po systému MS-DOS 5 se rozhraní DOS API nezměnilo pro postupná samostatná vydání systému DOS.

DOS API a Windows

Ve Windows 9x zavedl DOS chráněný režim a grafické prostředí. K systému DOS se obvykle přistupovalo z virtuálního počítače DOS (VDM), ale bylo také možné zavést systém přímo do reálného režimu MS-DOS 7.0 bez načtení systému Windows. Rozhraní DOS API bylo rozšířeno o vylepšenou podporu internacionalizace a podporu dlouhého názvu souboru , ačkoli podpora dlouhého názvu souboru byla k dispozici pouze ve VDM. S Windows 95 OSR2 byl DOS aktualizován na 7.1, což přidalo podporu FAT32 , a funkce byly přidány do DOS API, aby to podporovaly. Windows 98 a Windows ME také implementují rozhraní API MS-DOS 7.1, i když se Windows ME hlásí jako MS-DOS 8.0.

Windows NT a systémy založené na tom (např Windows XP a Windows Vista ), které nejsou založeny na systému MS-DOS, ale použít virtuální stroj , NTVDM , zvládnout API DOS. NTVDM funguje spuštěním programu DOS ve virtuálním režimu 8086 (emulace reálného režimu v chráněném režimu k dispozici u procesorů 80386 a vyšších). NTVDM podporuje DOS 5.0 API. DOSEMU pro Linux používá podobný přístup.

Přerušovací vektory používané systémem DOS

Následuje seznam vektorů přerušení používaných programy k vyvolání funkcí DOS API.

Přerušit vektor Popis Verze Poznámky
20h Ukončit program 1,0+ Implementováno v jádře systému DOS
21h Hlavní DOS API 1,0+ Implementováno v jádře systému DOS
22h Adresa ukončení programu 1,0+ Zpáteční adresa ve volajícím programu
23h Adresa obslužné rutiny Control-C 1,0+ Výchozí obsluha je v příkazovém prostředí (obvykle COMMAND.COM)
24h Adresa obslužné rutiny kritických chyb 1,0+ Výchozí obsluha je v příkazovém prostředí (obvykle COMMAND.COM)
25h Absolutní čtení disku 1,0+ Implementováno v jádře systému DOS, vylepšeno v systému DOS 3.31 o podporu až 2 GB oddílů
26h Absolutní zápis na disk 1,0+ Implementováno v jádře systému DOS, vylepšeno v systému DOS 3.31 o podporu až 2 GB oddílů
27h Ukončete a zůstaňte rezidentem 1,0+ Implementováno v COMMAND.COM v DOS 1.0, jádro DOS v DOS 2.0+
28h Popisek při nečinnosti 2,0+ Volá se jádrem systému DOS při čekání na vstup
29h Rychlý výstup konzoly 2,0+ Implementováno integrovaným ovladačem zařízení konzoly nebo náhradním ovladačem, jako je ANSI.SYS
2Ah Síť a kritická sekce 3,0+ Volá se jádrem systému DOS do rozhraní se síťovým softwarem
2Bh Nepoužitý
2Ch Nepoužitý
2Dh Nepoužitý
2Eh Znovu načtěte přechodně 2,0+ Implementováno v COMMAND.COM
2Fh Multiplex 3,0+ Implementováno v jádře DOS a různých programech (PRINT, MSCDEX, DOSKEY, APPEND atd.) V závislosti na čísle podfunkce

Služby DOS INT 21h

Následuje seznam funkcí poskytovaných prostřednictvím vektoru přerušení primárního softwaru DOS API.

AH Popis Verze
00h Ukončení programu 1,0+
01h Zadávání znaků 1,0+
02h Výstup znaků 1,0+
03h Pomocný vstup 1,0+
04h Pomocný výstup 1,0+
05h Tiskový výstup 1,0+
06h Přímé I / O konzoly 1,0+
07h Přímý vstup z konzoly bez ozvěny 1,0+
08h Vstup na konzoli bez ozvěny 1,0+
09h Zobrazit řetězec 1,0+
0Ah Vstup klávesnice do vyrovnávací paměti 1,0+
0Bh Získejte stav vstupu 1,0+
0Ch Vypláchnout vstupní vyrovnávací paměť a vstup 1,0+
0Dh Reset disku 1,0+
0Eh Nastavit výchozí jednotku 1,0+
0Fh Otevřít soubor 1,0+
10h Zavřít soubor 1,0+
11h Najít první soubor 1,0+
12h Najít další soubor 1,0+
13h Smazat soubor 1,0+
14h Sekvenční čtení 1,0+
15h Sekvenční zápis 1,0+
16h Vytvořte nebo zkraťte soubor 1,0+
17h Přejmenuj soubor 1,0+
18h Rezervováno 1,0+
19h Získejte výchozí disk 1,0+
1Ah Nastavte adresu přenosu disku 1,0+
1Bh Získejte informace o přidělení pro výchozí jednotku 1,0+
1Ch Získejte informace o přidělení pro zadanou jednotku 1,0+
1Dh Rezervováno 1,0+
1Eh Rezervováno 1,0+
1Fh Získejte blok parametrů disku pro výchozí jednotku 1,0+
20h Rezervováno 1,0+
21h Náhodné čtení 1,0+
22h Náhodný zápis 1,0+
23h Získejte velikost souboru v záznamech 1,0+
24h Nastavit číslo náhodného záznamu 1,0+
25h Nastavit vektor přerušení 1,0+
26h Vytvořte PSP 1,0+
27h Čtení náhodného bloku 1,0+
28h Náhodný zápis bloku 1,0+
29h Analyzovat název souboru 1,0+
2Ah Získejte datum 1,0+
2Bh Nastavit datum 1,0+
2Ch Získejte čas 1,0+
2Dh Nastavit čas 1,0+
2Eh Nastavit příznak ověření 1,0+
2Fh Získejte adresu pro přenos disku 2,0+
30h Získejte verzi systému DOS 2,0+
31h Ukončete a zůstaňte rezidentem 2,0+
32h Získejte blok parametrů disku pro zadanou jednotku 2,0+
33h Získejte nebo nastavte Ctrl-Break 2,0+
34h Získejte ukazatel příznaku InDOS 2,0+
35h Získejte vektor přerušení 2,0+
36h Získejte volné místo na disku 2,0+
37h Získat nebo nastavit přepínací znak 2,0+
38h Získejte nebo nastavte informace o zemi 2,0+
39h Vytvořte podadresář 2,0+
3Ah Odeberte podadresář 2,0+
3Bh Změnit aktuální adresář 2,0+
3Ch Vytvořte nebo zkraťte soubor 2,0+
3Dh Otevřít soubor 2,0+
3Eh Zavřít soubor 2,0+
3Fh Přečíst soubor nebo zařízení 2,0+
40h Napište soubor nebo zařízení 2,0+
41h Smazat soubor 2,0+
42h Přesuňte ukazatel souboru 2,0+
43h Získejte nebo nastavte atributy souboru 2,0+
44h I / O ovládání zařízení 2,0+
45h Duplicitní popisovač 2,0+
46h Rukojeť přesměrování 2,0+
47h Získejte aktuální adresář 2,0+
48h Přidělit paměť 2,0+
49h Uvolněte paměť 2,0+
4Ah Přerozdělte paměť 2,0+
4Bh Proveďte program 2,0+
4Ch Ukončete návratovým kódem 2,0+
4Dh Získejte návratový kód programu 2,0+
4Eh Najít první soubor 2,0+
4Fh Najít další soubor 2,0+
50h Nastavit aktuální PSP 2,0+
51h Získejte aktuální PSP 2,0+
52h Získejte interní ukazatele systému DOS (SYSVARS) 2,0+
53h Vytvořte blok parametrů disku 2,0+
54h Získejte příznak ověření 2,0+
55h Vytvořte program PSP 2,0+
56h Přejmenuj soubor 2,0+
57h Získejte nebo nastavte datum a čas souboru 2,0+
58h Získejte nebo nastavte strategii přidělování 2.11+
59h Získejte rozšířené informace o chybě 3,0+
5Ah Vytvořte jedinečný soubor 3,0+
5Bh Vytvořit nový soubor 3,0+
5Ch Zamkněte nebo odemkněte soubor 3,0+
5Dh Funkce sdílení souborů 3,0+
5Eh Síťové funkce 3,0+
5Fh Funkce přesměrování v síti 3,0+
60h Kvalifikujte název souboru 3,0+
61h Rezervováno 3,0+
62h Získejte aktuální PSP 3,0+
63h Získejte ukazatel tabulky vedoucích bajtů DBCS 3,0+
64h Nastavit čekání na příznak externí události 3,2+
65h Získejte rozšířené informace o zemi 3,3+
66h Získejte nebo nastavte kódovou stránku 3,3+
67h Nastavit počet úchytů 3,3+
68h Potvrdit soubor 3,3+
69h Získejte nebo nastavte ID média 4,0+
6Ah Potvrdit soubor 4,0+
6Bh Rezervováno 4,0+
6Ch Rozšířené otevření / vytvoření souboru 4,0+

Operační systémy s nativní podporou

Operační systémy s emulační vrstvou DOS

Ostatní emulátory

Viz také

Reference

Další čtení

  • Allen, Paul ; Gates, Bill ; Král, Adrian; Larson, Chris; Letwin, Gordon ; O'Rear, Bob ; Paterson, Tim ; Peters, Chris; Phillips, Bruce; Reynolds, Aaron ; Stillmaker, Betty; Zbikowski, Mark (1986). "Techničtí poradci". MS-DOS (verze 1.0-3.2) Encyklopedie technických referencí . 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 (eds.). Referenční knihovna Microsoft. 1 (Originál stažen, ed.). Redmond, Washington, USA: Microsoft Press . ISBN 0-914845-69-1. LCCN  86-8640 . OCLC  635600205 .(xvii + 1053 stránek; 29 cm) (Pozn. Toto původní vydání obsahuje vývojové diagramy vnitřního fungování systému. Společnost Microsoft jej před masovou distribucí v roce 1986 stáhla, protože obsahovala mnoho věcných chyb a některé utajované informace, které by dosud nebyly zveřejněny. Několik tištěných kopií přežilo. V roce 1988 bylo nahrazeno zcela přepracovaným vydáním. [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; Farmář, Rick; Gates, Bill ; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W .; Kermaani, Kaamel; Král, 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; Krátký, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Techničtí poradci". Encyklopedie systému MS-DOS: verze 1.0 až 3.2 . Autor: 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 (kompletně přepracované vydání). Redmond, Washington, USA: Microsoft Press . ISBN 1-55615-049-0. LCCN  87-21452 . OCLC  16581341 .(xix + 1570 stran; 26 cm) (Pozn. Toto vydání vyšlo v roce 1988 po rozsáhlé přepracování staženého prvního vydání z roku 1986 jiným autorským týmem. [2] )
  • The New Peter Norton Programmer's Guide to the IBM PC & PS / 2 by Peter Norton and Richard Wilton, Microsoft Press, 1987 ISBN  1-55615-131-4 .
  • Ray Duncan (1988). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers . Microsoft Press. ISBN 0914845772.
  • Programátorský zdrojový počítač od Thoma Hogana, Microsoft Press, 1991, ISBN  155615321X
  • Microsoft MS-DOS Programmer's Reference - The Official Technical Reference to MS-DOS , Microsoft Press, 1993 ISBN  1556155468
  • Technická aktualizace IBM PC DOS 7
  • OpenDOS Developer's Reference Series - OpenDOS Programmer's Guide - System and Programmer's Guide . Caldera, Inc. srpen 1997. Caldera, část č. 200-DOPG-003. Archivovány od originálu dne 2017-10-07 . Citováno 2012-06-28 . (Vytištěno ve Velké Británii.)

externí odkazy