DOS API - DOS API

DOS API to interfejs API , który pochodzi z 86-DOS i jest stosowany w MS-DOS / PC DOS i innych DOS systemów -Kompatybilny operacyjnych. Większość wywołań API DOS jest wywoływana za pomocą przerwania programowego 21h ( INT 21h). Wywołując INT 21h z numerem podfunkcji w rejestrze procesora AH i innymi parametrami w innych rejestrach, można wywołać różne usługi DOS. Obejmują one obsługę wejścia klawiatury, wyjścia wideo, dostępu do plików dyskowych, wykonywania programu, alokacji pamięci i różnych innych czynności. W późnych latach 80-tych rozszerzenia DOS wraz z interfejsem DOS Protected Mode Interface (DPMI) pozwalają programom działać w 16-bitowym lub 32-bitowym trybie chronionym i nadal mają dostęp do DOS API.

Historia API DOS

Oryginalny API DOS 86-DOS i MS-DOS 1,0 miała być funkcjonalnie kompatybilny z CP / M . Dostęp do plików uzyskano za pomocą bloków kontroli plików (FCB). Interfejs API DOS został znacznie rozszerzony w MS-DOS 2.0 o kilka koncepcji Uniksa, w tym dostęp do plików za pomocą uchwytów plików , hierarchiczne katalogi i sterowanie we / wy urządzeń. W DOS 3.1 dodano obsługę readresatora sieciowego . W systemie MS-DOS 3.31 funkcje INT 25h / 26h zostały rozszerzone o obsługę dysków twardych większych niż 32 MB. MS-DOS 5 dodał obsługę używania górnych bloków pamięci (UMB). Po MS-DOS 5, API DOS pozostało niezmienione dla kolejnych samodzielnych wydań DOS.

DOS API i Windows

W systemie Windows 9x DOS ładował system w trybie chronionym i powłokę graficzną. Dostęp do DOS był zwykle uzyskiwany z wirtualnej maszyny DOS (VDM), ale można było również uruchomić system bezpośrednio do trybu rzeczywistego MS-DOS 7.0 bez ładowania systemu Windows. Interfejs API DOS został rozszerzony o ulepszoną obsługę internacjonalizacji i obsługę długich nazw plików , chociaż obsługa długich nazw plików była dostępna tylko w VDM. W systemie Windows 95 OSR2, DOS został zaktualizowany do wersji 7.1, który dodał obsługę FAT32 , a funkcje zostały dodane do API DOS, aby to obsługiwać. Windows 98 i Windows ME również implementują API MS-DOS 7.1, chociaż Windows ME zgłasza się jako MS-DOS 8.0.

Windows NT i systemy oparte na nim (na przykład Windows XP i Windows Vista ) nie są oparte na systemie MS-DOS, ale używać maszynę wirtualną , NTVDM , aby obsłużyć API DOS. NTVDM działa uruchamiając program DOS w wirtualnym trybie 8086 (e emulacji trybie rzeczywistym w trybie chronionym dostępnych na 80386 procesorów i wyższych). NTVDM obsługuje interfejs API DOS 5.0. DOSEMU dla Linuksa używa podobnego podejścia.

Wektory przerwań używane przez DOS

Poniżej znajduje się lista wektorów przerwań używanych przez programy do wywoływania funkcji API DOS.

Wektor przerwania Opis Wersja Uwagi
20h Zakończ program 1.0+ Zaimplementowany w jądrze DOS
21h Główne API DOS 1.0+ Zaimplementowany w jądrze DOS
22h Adres zakończenia programu 1.0+ Adres zwrotny w programie wywołującym
23h Adres obsługi Control-C 1.0+ Domyślna obsługa znajduje się w powłoce poleceń (zwykle COMMAND.COM)
24h Adres obsługi błędów krytycznych 1.0+ Domyślna obsługa znajduje się w powłoce poleceń (zwykle COMMAND.COM)
25h Absolutny odczyt dysku 1.0+ Zaimplementowany w jądrze DOS, ulepszony w DOS 3.31 do obsługi partycji do 2 GB
26h Absolutny zapis na dysku 1.0+ Zaimplementowany w jądrze DOS, ulepszony w DOS 3.31 do obsługi partycji do 2 GB
27h Wypowiedzieć i pozostać rezydentem 1.0+ Zaimplementowany w COMMAND.COM w DOS 1.0, jądro DOS w DOS 2.0+
28h Bezczynne objaśnienie 2.0+ Wywoływane przez jądro DOS podczas oczekiwania na wejście
29h Szybkie wyjście z konsoli 2.0+ Implementowany przez wbudowany sterownik urządzenia konsoli lub sterownik zastępczy, taki jak ANSI.SYS
2Ah Sieć i sekcja krytyczna 3.0+ Wywoływane przez jądro DOS w celu połączenia z oprogramowaniem sieciowym
2Bh Nie używany
2Ch Nie używany
2Dh Nie używany
2Eh Przeładuj przejściowe 2.0+ Zaimplementowano w COMMAND.COM
2Fh Multipleks 3.0+ Zaimplementowany w jądrze DOS i różnych programach (PRINT, MSCDEX, DOSKEY, APPEND itp.) W zależności od numeru podfunkcji

Usługi DOS INT 21h

Poniżej znajduje się lista funkcji udostępnianych przez podstawowy wektor przerwań programowych DOS API.

AH Opis Wersja
00h Program zakończony 1.0+
01h Wprowadzanie znaków 1.0+
02h Wyjście znaków 1.0+
03h Wejście pomocnicze 1.0+
04h Wyjście pomocnicze 1.0+
05h Wyjście drukarki 1.0+
06h Bezpośrednie wejście / wyjście konsoli 1.0+
07h Bezpośrednie wejście konsoli bez echa 1.0+
08h Wejście konsoli bez echa 1.0+
09h Wyświetl ciąg 1.0+
0Ah Buforowane wejście z klawiatury 1.0+
0Bh Uzyskaj stan wejścia 1.0+
0Ch Opróżnij bufor wejściowy i wejście 1.0+
0Dh Reset dysku 1.0+
0Eh Ustaw dysk domyślny 1.0+
0Fh Otwórz plik 1.0+
10h Zamknij plik 1.0+
11h Znajdź pierwszy plik 1.0+
12h Znajdź następny plik 1.0+
13h Usunąć plik 1.0+
14h Odczyt sekwencyjny 1.0+
15h Zapis sekwencyjny 1.0+
16h Utwórz lub obetnij plik 1.0+
17h Zmień nazwę pliku 1.0+
18h Zarezerwowany 1.0+
19h Uzyskaj dysk domyślny 1.0+
1Ah Ustaw adres transferu dysku 1.0+
1Bh Uzyskaj informacje o alokacji dla domyślnego dysku 1.0+
1Ch Uzyskaj informacje o alokacji dla określonego dysku 1.0+
1Dh Zarezerwowany 1.0+
1Eh Zarezerwowany 1.0+
1Fh Pobierz blok parametrów dysku dla domyślnego napędu 1.0+
20h Zarezerwowany 1.0+
21h Losowy odczyt 1.0+
22h Losowy zapis 1.0+
23h Uzyskaj rozmiar pliku w rekordach 1.0+
24h Ustaw losową liczbę rekordów 1.0+
25h Ustaw wektor przerwania 1.0+
26h Utwórz PSP 1.0+
27h Losowy odczyt bloku 1.0+
28h Losowy zapis blokowy 1.0+
29h Przeanalizuj nazwę pliku 1.0+
2Ah Uzyskaj datę 1.0+
2Bh Ustawić datę 1.0+
2Ch Uzyskać czas 1.0+
2Dh Ustaw czas 1.0+
2Eh Ustaw flagę weryfikacji 1.0+
2Fh Uzyskaj adres transferu dysku 2.0+
30h Pobierz wersję DOS 2.0+
31h Wypowiedzieć i pozostać rezydentem 2.0+
32h Pobierz blok parametrów dysku dla określonego napędu 2.0+
33h Pobierz lub ustaw Ctrl-Break 2.0+
34h Pobierz wskaźnik flagi InDOS 2.0+
35h Uzyskaj wektor przerwania 2.0+
36h Uzyskaj wolne miejsce na dysku 2.0+
37h Pobierz lub ustaw znak przełącznika 2.0+
38h Pobierz lub ustaw informacje o kraju 2.0+
39h Utwórz podkatalog 2.0+
3Ah Usuń podkatalog 2.0+
3Bh Zmień bieżący katalog 2.0+
3Ch Utwórz lub obetnij plik 2.0+
3Dh Otwórz plik 2.0+
3Eh Zamknij plik 2.0+
3Fh Przeczytaj plik lub urządzenie 2.0+
40h Napisz plik lub urządzenie 2.0+
41h Usunąć plik 2.0+
42h Przesuń wskaźnik pliku 2.0+
43h Pobierz lub ustaw atrybuty pliku 2.0+
44h Sterowanie we / wy dla urządzeń 2.0+
45h Zduplikowany uchwyt 2.0+
46h Uchwyt przekierowania 2.0+
47h Pobierz aktualny katalog 2.0+
48h Przydziel pamięć 2.0+
49h Zwolnij pamięć 2.0+
4Ah Przydziel ponownie pamięć 2.0+
4Bh Wykonaj program 2.0+
4Ch Zakończ kodem powrotu 2.0+
4Dh Pobierz kod powrotu programu 2.0+
4Eh Znajdź pierwszy plik 2.0+
4Fh Znajdź następny plik 2.0+
50h Ustaw bieżące PSP 2.0+
51h Pobierz aktualne PSP 2.0+
52h Pobierz wewnętrzne wskaźniki DOS (SYSVARS) 2.0+
53h Utwórz blok parametrów dysku 2.0+
54h Uzyskaj flagę weryfikacji 2.0+
55h Utwórz program PSP 2.0+
56h Zmień nazwę pliku 2.0+
57h Pobierz lub ustaw datę i godzinę pliku 2.0+
58h Pobierz lub ustaw strategię alokacji 2.11+
59h Uzyskaj rozszerzone informacje o błędach 3.0+
5Ah Utwórz unikalny plik 3.0+
5Bh Utwórz nowy plik 3.0+
5Ch Zablokuj lub odblokuj plik 3.0+
5Dh Funkcje udostępniania plików 3.0+
5Eh Funkcje sieciowe 3.0+
5Fh Funkcje przekierowania sieci 3.0+
60h Kwalifikuj nazwę pliku 3.0+
61h Zarezerwowany 3.0+
62h Pobierz aktualne PSP 3.0+
63h Pobierz wskaźnik do tabeli bajtów wiodących DBCS 3.0+
64h Ustaw oczekiwanie na flagę zdarzenia zewnętrznego 3.2+
65h Uzyskaj rozszerzone informacje o kraju 3.3+
66h Pobierz lub ustaw stronę kodową 3.3+
67h Ustaw liczbę uchwytów 3.3+
68h Plik zatwierdzeń 3.3+
69h Pobierz lub ustaw identyfikator multimediów 4.0+
6Ah Plik zatwierdzeń 4.0+
6Bh Zarezerwowany 4.0+
6Ch Rozszerzony plik otwórz / utwórz 4.0+

Systemy operacyjne z natywną obsługą

Systemy operacyjne z warstwą emulacji DOS

Inne emulatory

Zobacz też

Bibliografia

Dalsza lektura

  • Allen, Paul ; Gates, Bill ; King, Adrian; Larson, Chris; Letwin Gordon ; O'Rear, Bob ; Paterson, Tim ; Peters, Chris; Phillips, Bruce; Reynolds, Aaron ; Stillmaker, Betty; Żbikowski, Mark (1986). „Doradcy techniczni”. MS-DOS (wersje 1.0-3.2) Encyklopedia informacji technicznych . 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.). Biblioteka referencyjna firmy Microsoft. 1 (wyd. Oryginalne wycofane). Redmond, Waszyngton, USA: Microsoft Press . ISBN 0-914845-69-1. LCCN  86-8640 . OCLC  635600205 .(xvii + 1053 stron; 29 cm) (Uwaga: to oryginalne wydanie zawiera schematy blokowe wewnętrznego działania systemu. Zostało wycofane przez firmę Microsoft przed masową dystrybucją w 1986 r., ponieważ zawierało wiele błędów rzeczowych, a także pewne informacje niejawne, które powinny nie zostały opublikowane. Zachowało się kilka drukowanych egzemplarzy. Zostało ono zastąpione całkowicie przerobionym wydaniem w 1988 r. [1] )
  • Żbikowski, 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; Rolnik, 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; Krótki, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). „Doradcy techniczni”. Encyklopedia MS-DOS: wersje od 1.0 do 3.2 . 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 (całkowicie przerobione red.). Redmond, Waszyngton, USA: Microsoft Press . ISBN 1-55615-049-0. LCCN  87-21452 . OCLC  16581341 .(xix + 1570 stron; 26 cm) (Uwaga: to wydanie zostało opublikowane w 1988 r. po obszernej przeróbce wycofanego pierwszego wydania z 1986 r. przez inny zespół autorów. [2] )
  • The New Peter Norton Programmer's Guide to the IBM PC & PS / 2 autorstwa Petera Nortona i Richarda Wiltona, Microsoft Press, 1987 ISBN  1-55615-131-4 .
  • Ray Duncan (1988). Zaawansowane MS-DOS Programowanie: Microsoft Przewodnik dla Assembly Języka i C programistów . Microsoft Press. ISBN 0914845772.
  • The Programmer's PC Sourcebook , Thom Hogan, Microsoft Press, 1991 ISBN  155615321X
  • Microsoft MS-DOS Programmer's Reference - The Official Technical Reference to MS-DOS , Microsoft Press, 1993 ISBN  1556155468
  • Aktualizacja techniczna IBM PC DOS 7
  • Seria referencyjna dla programistów OpenDOS - Przewodnik programisty OpenDOS - Podręcznik systemu i programisty . Caldera, Inc., sierpień 1997 r. Caldera Nr części 200-DOPG-003. Zarchiwizowane od oryginału w dniu 2017-10-07 . Źródło 2012-06-28 . (Wydrukowano w Wielkiej Brytanii).

Linki zewnętrzne