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
- MS-DOS - nejrozšířenější implementace
- PC DOS - IBM OEM verze systému MS-DOS
- OS / 2 1.x - Microsoft / IBM nástupce MS-DOS a PC DOS
- SISNE plus - Klon vytvořený společnostmi Itautec a Scopus Tecnologia v Brazílii
- DR-DOS - řada Digital Research DOS, včetně Novell DOS , PalmDOS , OpenDOS atd.
- PTS-DOS - klon PhysTechSoft & Paragon DOS, včetně S / DOS
- ROM-DOS - Datalight ROM DOS verze
- Integrovaný DOS - obecná verze softwaru
- FreeDOS - bezplatný klon DOS s otevřeným zdrojovým kódem
- ReactOS (verze IA-32 a x86-64 )
- Windows 95 - obsahuje MS-DOS 7.0
- Windows 98 - obsahuje MS-DOS 7.1
- Windows 98 SE - obsahuje MS-DOS 7.1
- Windows ME - obsahuje MS-DOS 8.0
Operační systémy s emulační vrstvou DOS
- Souběžný CP / M-86 (pouze 3.1) s PCMODE - OS Digital Research CP / M-86 s volitelným emulátorem PC DOS
- Concurrent DOS - Digital Research CDOS family with built-in PC DOS emulator
- DOS Plus - ořezaná varianta souběžného PC DOS 4.1–5.0 pro jednoho uživatele
- Multiuser DOS - Digital Research / Novell MDOS family including Datapac System Manager , IMS REAL / 32 , etc.
- OS / 2 (2.x a novější) - operační systém IBM využívající plně licencovaný systém MS-DOS 5.0 ve virtuálním počítači
- Windows NT (všechny verze kromě 64bitových vydání)
Ostatní emulátory
- NTVDM pro Windows NT
- DOSEMU pro Linux
- DOSBox
Viz také
- Přerušení hovoru BIOS
- Seznam přerušení Ralfa Browna (RBIL)
- Porovnání operačních systémů DOS
- Rozhraní chráněného režimu DOS (DPMI)
- DOS extender
- Spustitelný soubor DOS MZ
- COMMAND.COM
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.)