Spis funkcji przerwania 21h

Podobne dokumenty
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Opis procedur asemblera AVR

PROGRAMY REZYDENTNE Terminate and State Resident, TSR

Adam Kotynia, Łukasz Kowalczyk

Polecenia wewnętrzne:

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

16MB - 2GB 2MB - 128MB

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Architektura komputerów. Asembler procesorów rodziny x86

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Działanie systemu operacyjnego

Instrukcja połączenia z programem Compas LAN i import konfiguracji

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Działanie systemu operacyjnego

PAMIĘĆ OPERACYJNA...107

Spis treści. 1 Moduł RFID (APA) 3

FARA INTENCJE ONLINE. Przewodnik dla użytkownika programu FARA. Włodzimierz Kessler SIGNUM-NET

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

dr inż. Jarosław Forenc

1. Podstawy...P Polecenia podstawowe...p... 18

UŻYTKOWNIK. APLIKACJE UŻYTKOWE (wszelkie programy zawarte domyślnie w systemie operacyjnym jak i samodzielnie zainstalowane przez użytkownika systemu)

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Działanie systemu operacyjnego

Memeo Instant Backup Podręcznik Szybkiego Startu

System operacyjny MS-DOS

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Sektor. Systemy Operacyjne

TRX ELARM Łódź ul. Mochnackiego 34 tel/fax +48 (42)

Słownik. Instrukcja obsługi programu

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Zgrywus dla Windows v 1.12

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Instrukcja programu użytkownika OmegaUW.Exe. Program obsługuje następujące drukarki fiskalne: ELZAB OMEGA II generacji ELZAB OMEGA F, MERA, MERA F.

program TRX

Działanie systemu operacyjnego

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

2. Instalacja i konfiguracja XScanPet na smartfonie z systemem Android

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

System plików przykłady. implementacji

Instrukcja obsługi programu PLOMP PLUS FM

Narzędzie konfiguracji rozruchu

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

Płace VULCAN. 2. W polu nad drzewem danych ustaw rok, za który chcesz utworzyć deklaracje.

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 15 PRACA W TRYBIE MS-DOS. Opracował Sławomir Zieliński

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Program GroupWise WebAccess interfejs podstawowy

Wykład PASCAL - Pliki tekstowe

Instalacja i podstawowa konfiguracja aplikacji ImageManager

Podręcznik użytkownika

INSTRUKCJA obsługi certyfikatów

System plików przykłady implementacji

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

PROGRAM DO ARCHIWIZACJI NOŚNIKÓW KOPII ELEKTRONICZNEJ

Termohigrometr cyfrowy TFA

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Systemy operacyjne System plików

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

OPERACJE NA PLIKACH. Podstawowe pojęcia:

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

Sprzęt i architektura komputerów

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

MIERNIK T-SCALE BWS 1

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Konfiguracja parametrów pozycjonowania GPS /5

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

System plików warstwa logiczna

Zabezpieczenie Copy Control 3.0

O historycznym systemie DOS. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Wersja dokumentacji1.01. TeleToken API

GroupWise WebAccess Basic Interface

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

INSTRUKCJA OBSŁUGI ZEGARKA ANALOGOWEGO

Stacja pogodowa WS 9130IT Nr art.:

Synchronizator plików (SSC) - dokumentacja

BIOS, tryb awaryjny, uśpienie, hibernacja

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Programator Kart Master - klient

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

R-LINK Evolution Instrukcja instalacji oprogramowania

Programowanie niskopoziomowe

PDF TO FTP ZADANIA PROGRAMU:

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

1. Pamięć wirtualna. 2. Optymalizacja pliku pamięci wirtualnej

Program Rejestr zużytych materiałów. Instrukcja obsługi

Instrukcja obsługi Konfigurator MLAN-1000

SystimPlus. Dokumentacja (FAQ) dla wersji: v

INSTRUKCJA OBSŁUGI PROGRAMU FOTOLASER

Instrukcja aktualizacji oprogramowania (firmware) serwera DIN2 systemu F&Home RADIO.

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

Instrukcje ustawień funkcji zwalniania wydruku

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

A. Korzystanie z panelu sterowania

Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku

Transkrypt:

Spis funkcji przerwania 21h Poniższy tekst zawiera spis wszystkich, lub przynajmniej większości funkcji przerwania 21h - każda funkcja oprócz numeru jest również opisana 1- liniową notką. Funkcje zaznaczone znakiem "+" zostały ponadto szczegółowo opisane - zob. poniżej spisu. Funkcje sygnowane "-" zostały świadomie pominięte w dokładniejszym opisie, najczęściej dlatego, że istnieje alternatywna funkcja przerwania 21h, która jest częściej używana czy zwyczajnie praktyczniejsza w użyciu a pełniąca to samo, lub zbliżone zadanie. Reszta funkcji nie wyszczególniona w żaden sposób jest - w mojej subjektywnej ocenie - mniej ważna, dlatego przetłumaczenie jej pozostawiłem na później - lista będzie więc stale rozszerzana o nowe opisy. Zamierzam także dodać opisy innych przerwań - na pewno ~INT 10~ i ~INT 16~. Zasadniczo w poniższym spisie obowiązuje numeracja szesnastkowa, chociaż nie koniecznie jest to przy każdej liczbie zaznaczane. :int 21:DOS usługi:funkcje DOS ^INT 21 - Dyspozytor funkcji dos ^Dla dalszych informacji, zobacz poniższe nagłówki: -~INT 21,0~ Zakończenie programu +~INT 21,1~ Wczytanie z klawiatury z echem +~INT 21,2~ Wyświetl znak ~INT 21,3~ Czekaj na dane z urządzenia pomocniczego ~INT 21,4~ Wypisz znak na urządzeniu pomocniczym +~INT 21,5~ Wypisz znak na drukarce ~INT 21,6~ Czytaj lub pisz na konsolę +~INT 21,7~ Wczytaj znak z klawiatury bez echa ~INT 21,8~ Wczytaj dane z konsoli bez echa +~INT 21,9~ Wypisz łańcuch ~INT 21,A~ Buforowane wczytanie z klawiatury ~INT 21,B~ Sprawdź status STDIN +~INT 21,C~ Czyść bufor klawiatury, wywołaj funkcję wczytania ~INT 21,D~ Reset dysku +~INT 21,E~ Wybierz dysk, info o liczbie dysków -~INT 21,F~ Otwórz plik przy użyciu ~FCB~ -~INT 21,10~ Zamknij plik przy użyciu FCB -~INT 21,11~ Szukaj pierwszego pliku przy użyciu FCB -~INT 21,12~ Szukaj następnego pliku przy użyciu FCB -~INT 21,13~ Kasuj plik przy użyciu FCB ~INT 21,14~ Czytanie sekwencyjne przy użyciu FCB ~INT 21,15~ Zapis sekwencyjny przy użyciu FCB -~INT 21,16~ Utwórz plik przy użyciu FCB -~INT 21,17~ Zmień nazwę pliku przy użyciu FCB ~INT 21,18~ DOS imitacja funkcji (CP/M) (nie używana/wymieniana) +~INT 21,19~ Pobierz symbol aktualnego napędu ~INT 21,1A~ Ustaw transfer adres dysku ~INT 21,1B~ Pobierz informacje tablicy alokacji ~INT 21,1C~ Pobierz info tablicy alokacji dla specyficznego urządzenia ~INT 21,1D~ DOS imitacja funkcji (CP/M) (nie używana/wymieniana) ~INT 21,1E~ DOS imitacja funkcji (CP/M) (nie używana/wymieniana) ~INT 21,1F~ Pob. wskaźnik do tablicy parametrów aktualnego napędu (nieudok)

~INT 21,20~ DOS imitacja funkcji (CP/M) (nie używana/wymieniana) ~INT 21,21~ Swobodne czytanie przy użyciu ~FCB~ ~INT 21,22~ Swobodny zapis przy użyciu FCB ~INT 21,23~ Pobierz długość pliku przy użyciu FCB ~INT 21,24~ Ustaw relatywne pole rekordu dla FCB +~INT 21,25~ Ustaw wektor przerwania ~INT 21,26~ Utwórz nowy segment programu ~INT 21,27~ Swobodne czytanie bloku przy użyciu FCB ~INT 21,28~ Swobodny zapis bloku przy użyciu FCB ~INT 21,29~ Analiza nazwy pliku dla FCB +~INT 21,2A~ Pobierz datę +~INT 21,2B~ Ustaw datę +~INT 21,2C~ Pobierz czas +~INT 21,2D~ Ustaw czas +~INT 21,2E~ Ustaw/resetuj przełącznik "verify" +~INT 21,2F~ Pobierz transfer adres dysku +~INT 21,30~ Pobierz numer wersji DOS ~INT 21,31~ Zakończ program i pozostaw rezydenta ~INT 21,32~ Pobierz wskaźnik do tablicy parametrów napędu (nieudok.) +~INT 21,33~ Pobierz/ustaw stan sprawdzania~ctrl-break~ i boot napęd ~INT 21,34~ Pobierz adres do flagi krytycznejdos (nieudokumentowane) +~INT 21,35~ Pobierz wektor przerwania +~INT 21,36~ Pobierz ilość wolnego miejsca na dysku ~INT 21,37~ Pobierz/ustaw znak przełącznika (nieudokumentowane) ~INT 21,38~ Pobierz/ustaw informacje zależne od kraju +~INT 21,39~ Utwórz podkatalog (mkdir) +~INT 21,3A~ Usuń podkatalog (rmdir) +~INT 21,3B~ Zmień aktualny podkatalog (chdir) +~INT 21,3C~ Utwórz plik przy użyciu uchwytu +~INT 21,3D~ Otwórz plik przy użyciu uchwytu +~INT 21,3E~ Zamknij plik przy użyciu uchwytu +~INT 21,3F~ Czytaj plik lub urządzenie przy użyciu uchwytu +~INT 21,40~ Zapis do pliku lub urządzenia przy użyciu uchwytu +~INT 21,41~ Kasuj plik +~INT 21,42~ Przesuń wskaźnik pliku przy użyciu uchwytu +~INT 21,43~ Zmień tryb pliku ~INT 21,44~ Kontrola WE/WY urządzeń (~IOCTL~) ~INT 21,45~ Podwójny uchwyt pliku ~INT 21,46~ Wymuszenie podwójnego uchwytu pliku +~INT 21,47~ Pobierz aktualny katalog +~INT 21,48~ Alokuj bloki pamięci +~INT 21,49~ Zwolnij zaalokowane bloki pamięci +~INT 21,4A~ Modyfikacja zaalokowanych bloków pamięci +~INT 21,4B~ EXEC ładuj i uruchom program (funkc 1 nieudokumentowane) +~INT 21,4C~ Zakończ program i zwróć kod powrotu ~INT 21,4D~ Pobierz kod powrotu podprocesu +~INT 21,4E~ Znajdź pierwszy pasujący plik +~INT 21,4F~ Znajdź następny pasujący plik ~INT 21,50~ Ustaw identyfikator aktualnego procesu (nieudokumentowane) ~INT 21,51~ Pobierz identyfikator aktualnego procesu (nieudok.) ~INT 21,52~ Pobierz wskaźnik do "INVARS" DOS (nieudokumentowane) ~INT 21,53~ Generuj tablicę parametrów napędu (nieudokumentowane) ~INT 21,54~ Pobierz ustawienie verify ~INT 21,55~ Utwórz ~PSP~ (nieudokumentowane) +~INT 21,56~ Zmień nazwę pliku +~INT 21,57~ Pobierz/ustaw datę i czas pliku przy użyciu uchwytu ~INT 21,58~ Pobierz/ustaw strategię alokowania pamięci (3.x+, nieudok.) ~INT 21,59~ Pobierz rozszerzoną informację o błędzie (3.x+) ~INT 21,5A~ Utwórz tymczasowy plik (3.x+) ~INT 21,5B~ Utwórz nowy plik (3.x+) ~INT 21,5C~ Zamknij/otwórz dostęp do pliku (3.x+)

~INT 21,5D~ Informacja o błędzie krytycznym (nieudokumentowane 3.x+) ~INT 21,5E~ Usługi sieciowe (3.1+) ~INT 21,5F~ Przeadresowanie sieci (3.1+) ~INT 21,60~ Pobierz pełną nazwę pliku (nieudokumentowane 3.x+) ~INT 21,62~ Pobierz adres PSP (3.x+) ~INT 21,63~ Pobierz prowadzący bajt tablicy systemu (tylko MSDOS 2.25) ~INT 21,64~ Ustaw przewidujący sterownik urządzenia (nieudok. 3.3+) ~INT 21,65~ Pobierz rozszerzoną ifnormację kraju (3.3+) ~INT 21,66~ Pobierz/ustaw globalną stronę kodową (3.3+) ~INT 21,67~ Ustaw liczbę uchwytów (3.3+) ~INT 21,68~ Opróżnij bufor (3.3+) ~INT 21,69~ Pobierz/ustaw numer seryjny dysku (nieudok. DOS 4.0+) ~INT 21,6A~ DOS zarezerwowane (DOS 4.0+) ~INT 21,6B~ DOS zarezerwowane ~INT 21,6C~ Rozszerzone otwórz/utwórz (4.x+) ~INT 21,F8~ Ustaw program obsługi OEM INT 21 (funkcje F9-FF) (nieudok.) - Funkcje int 21 są wywoływane z numerem funkcji w AH - rejestr AX może być zmieniony, jego zawartość nie jest gwarantowana - jeśli pojawi się błąd, CF jest ustawiona na 1 i AX zawiera kod błędu; ~INT 21,59~ może być użyte do określenia przyczyny. - większość funkcji INT 21 nie przywraca flag do stanu przed przerwaniem aby umożliwić zwracanie informacji przez rejestr flag. :int 21,1 ^INT 21,1 - Wczytanie z klawiatury z echem AH = 01 AL = Znak z standardowego urządzenia wejścia - czeka na dane z STDIN i wyświetla na STDOUT - zwraca 0 dla rozszerzonych klawiszy, później funkcja musi być wywołana ponownie by odczytać skankod - jeśli wciśnięto ~Ctrl-Break~, uruchamiane jest ~INT 23~ :int 21,2 ^INT 21,2 - Wyświetl znak AH = 02 DL = znak do wyświetlenia przerwanie nie zwraca nic - wyświetla znak na STDOUT - backspace jest traktowany jak niedestruktywne przesunięcie kursora w lewo - jeśli wciśnięto ~Ctrl-Break~, uruchamiane jest ~INT 23~ :int 21,5 ^INT 21,5 - Drukuj znak na drukarce

AH = 05 DL = znak do wypisania przerwanie nie zwraca nic - wysyła znak w DL do STDPRN - przed drukowaniem czeka aż STDPRN jest gotowe :int 21,9 ^INT 21,9 - Wypisz łańcuch AH = 09 DS:DX = wskaźnik do łańcucha zakończonego znakiem "$" przerwanie nie zwraca nic - wyświetla łańcuch znaków na STDOUT - backspace jest traktowane jako znak niedestruktywny - jeśli wciśnięto ~Ctrl-Break~, uruchamiane jest ~INT 23~ :int 21,c ^INT 21,C - Czyść bufor klawiatury, uruchom funkcję wczytania AH = 0Ch AL = 01, 06, 07, 08 lub 0A (funkcje wczytania INT 21) zob. wartości powrotu z INT 21,AL gdzie AL jest 1, 6, 7, 8 lub A - główną funkcją jest wyczyszczenie bufora klawiatury i wywołanie INT 21 z określoną (w AL) funkcją - zob. ~INT 21,1~, ~INT 21,6~, ~INT 21,7~, ~INT 21,8~ i ~INT 21,A~ :int 21,e ^INT 21,E - Wybierz dysk AH = 0Eh DL = numer dysku (0-25, A: - Z:) AL = łączna liczba napędów logicznych włącznie z twardymi dyskami (1-26) - dla DOS 3.x+, ta funkcja przerwania zwraca liczbę napędów logicznych lub wartość LASTDRIVE z CONFIG.SYS :int 21,19 ^INT 21,19 - Pobierz aktualny napęd AH = 19h

AL = aktualny napęd (0=A,1=B,etc) - określa aktualny napęd :int 21,1a ^INT 21,1A - Ustaw transfer adres dysku (DTA) AH = 1Ah DS:DX = wskaźnik do nowego ~DTA~ przerwanie nie zwraca nic - specifies the disk transfer address to DOS - określa transfer adres dysku dla DOS - DTA nie może wykraczać poza 64Kbajtowe zakończenie segmentu - przesunięcie 80h w segmencie ~PSP~ jest domyślnym ustawieniem DOS po załadowaniu programu - używanie DTA ustawionego przez DOS doprowadzi do utraty linii komend, która również zajmuje 128 bajtów w PSP zaczynając od przesunięcia 80h - zob. ~INT 21,2F~ :int 21,25 ^INT 21,25 - Ustaw wektor przerwania AH = 25h AL = numer przerwania DS:DX = wskaźnik do procedury obsługi przerwania przerwanie nie zwraca nic - udostępnia bezpieczną metodę zmiany wektora przerwania - zob. ~INT 21,35~ :int 21,2a ^INT 21,2A - Pobierz datę AH = 2Ah AL = dzień tygodnia (0=Niedziela) CX = rok (1980-2099) DH = miesiąc (1-12) DL = dzień (1-31) - odczytuje datę systemu z zegara DOS - aktualizuje obszar biosu pod adresem 0040:0070 :int 21,2b ^INT 21,2B - Ustaw datę

AH = 2Bh CX = rok (1980-2099) DH = miesiąc (1-12) DL = dzień (1-31) AL = 00 jeśli zmiana daty przebiegła pomyślnie = FF jeśli niewłaściwa data - ustawia zegar DOS - wersje DOS 3.3+ aktualizują rónież ~CMOS~ datę jeśli dostępny :int 21,2c ^INT 21,2C - Pobierz czas AH = 2Ch CH = godzina (0-23) CL = minuta (0-59) DH = sekunda (0-59) DL = setna sekundy (0-99) - odczytuje czas z zegara DOS :int 21,2d ^INT 21,2D - Ustaw czas AH = 2Dh CH = godzina (0-23) CL = minuta (0-59) DH = sekunda (0-59) DL = setna sekundy (0-99) AL = 00 jeśli zmiana czasu przebiegła pomyślnie = FF jeśli błędny czas - zmienia zegar DOS - wersje DOS 3.3+ również aktualizują CMOS jeśli dostępny :int 21,2e ^INT 21,2E - Ustaw/resetuj przełącznik verify AH = 2Eh AL = 00 wyłącza = 01 włącza DH = 00 dla wersji DOS przed 3.0 przerwanie nie zwraca nic

- po włączeniu verify operacje dyskowe są bezpieczniejsze, lecz używają więcej czasu. - zob. ~INT 21,54~ :int 21,2f ^INT 21,2F - Pobierz transfer adres dysku (DTA) AH = 2Fh ES:BX = wskaźnik do bieżącego ~DTA~ - zwraca adres DTA - domyślny DTA jest 128 bajtowym obszarem na przesunięciu 80h w PSP - zob. ~INT 21,1A~ :int 21,30 ^INT 21,30 - Pobierz numer wersji DOS AH = 30h AL = główny numer wersji (2-5) AH = mniejszy numer wersji (w setnych częściach) BH = FF identyfikuje MS-DOS, tylko jeśli OEM sprzedawca wybrał identyfik. = 00 identyfikuje PC-DOS BL:CX = 24 bitowy numer seryjny OEM jeśli BH = FF - dla przykładu wersja DOS 2.1 zwraca AL=2 i AH=10 - wersje DOS przed DOS 2.0 zwracają zero in AH i AL - DOS 4.0 i 4.1 zwykle zwracają 4.00 - numer seryjny OEM jest rzadkością, chociaż niektóre starsze wersje OEM DOS posiadały tę cechę. - OS/2 compatibility box zwraca 10.10 dla OS/2 1.1, 10.20 dla OS/2 1.2, etc... - gdy testujesz wersję, dokładny test może często spowodować nie działanie twojego kodu w wersjach następnych. Często jest lepiej sprawdzać czy wersja jest >= minimalnej jeśli jest to możliwe - zob. ~DOS Versions~ :int 21,33 ^INT 21,33 - Pobierz/ustaw wartości systemu (Ctl-Break/napęd Boot) AH = 33h AL = 00 by pobrać flagę sprawdzania Ctrl-Break = 01 by ustawić flagę sprawdzania Ctrl-Break = 02 by włączyć rozszerzone sprawdzanie Ctrl-Break = 05 pobierz napęd boot (DOS 4.x) DL = 00 by wyłączyć sprawdzanie Ctrl-Break = 01 by włączyć sprawdzanie Ctrl-Break = napęd boot dla podfunkcji 5; (1=A:, 2=B:,...)

DL = 00 sprawdzanie Ctrl-Break wyłączone (AL=0 lub AL=2) = 01 sprawdzanie Ctrl-Break włączone (AL=0 lub AL=2) = numer napędu boot (1-26, A: - Z:) (funkcja 05) - pobiera ustawienie DOS Ctrl-Break lub rozszerzone Ctrl-Break, które określają czy DOS będzie sprawdzał naciśnięcie Ctrl-Break podczas wywołań INT 21 :int 21,35 ^INT 21,35 - Pobierz wektor przerwania AH = 35h AL = numer przerwania ES:BX = wskaźnik do procedury obsługi przerwania - standardowa metoda pobierania wektora przerwania - zob. ~INT 21,25~ :int 21,36 ^INT 21,36 - Pobierz ilość wolnego miejsca na dysku AH = 36h DL = numer dysku (0=bieżący, 1=A:) AX = liczba sektorów w klastrze = FFFF jeśli napęd jest niewłaściwy BX = liczba dostępnych klasterów CX = liczba bajtów w sektorze DX = liczba klasterów na dysku - używane do określenia wolnej przestrzeni na dysku - zob. ~INT 21,1B~ ~INT 21,1C~ :int 21,39 ^INT 21,39 - Utwórz podkatalog (mkdir) AH = 39h DS:DX = wskaźnik do nazwy ścieżki jako łańcucha zakończonego zerem CF = 0 jeśli operacja się powiodła = 1 jeśli błąd AX = kod błędu (zob. ~kody błędów DOS~)

- tworzy podkatalog - zwraca błąd jeśli katalog już istnieje, element ściężki nie został znaleziony, pełny katalog lub dysk zabezpieczony przed zapisem :int 21,3a ^INT 21,3A - Usuń podkatalog (rmdir) AH = 3Ah DS:DX = wskaźnik do nazwy ścieżki jako łańcucha zakończonego przez 00h CF = 0 jeśli sukces = 1 jeśli błąd AX = kod błędu (zob. ~kody błędów DOS~) - allows deletion of a subdirectory as long as it exists, is empty - pozwala skasować katalog jeśli istnieje, jest pusty i nie aktualny :int 21,3b ^INT 21,3B - Zmień katalog (chdir) AH = 3Bh DS:DX = wskaźnik do ścieżki jako łańcucha zakończonego 00h CF = 0 jeśli sukces = 1 jeśli błąd - zmienia bieżący katalog na katalog określony przez wskaźnik DS:DX :int 21,3c ^INT 21,3C - Tworzenie pliku przy użyciu uchwytu AH = 3Ch CX = atrybut pliku (zob. ~FILE ATTRIBUTES~) DS:DX = wskaźnik do ścieżki jako łańcucha zakończonego 00h CF = 0 jeśli sukces = 1 jeśli błąd AX = uchwyt pliku jeśli sukces = kod błędu jeśli CF ustawiona (zob. ~kody błędów DOS~) - jeśli plik już istnieje, jest obcinany do 0 bajtów przy otwarciu :int 21,3d ^INT 21,3D - Otwórz plik przy użyciu uchwytu AH = 3Dh AL = tryb dostępu 00 tylko do odczytu 01 tylko do zapisu 02 do odczytu i zapisu

DS:DX = wskaźnik do nazwy pliku jako łańcucha zakończonego 00h AX = uchwyt pliku jeśli CF nie ustawiona = kod błędu jeśli CF ustawiona (zob. ~kody błędów DOS~) % Tryby dostępu w AL: ł7ł6ł5ł4ł3ł2ł1ł0ł AL ł ł ł ł ł ANCNCNNNN czytanie/zapis/aktualizacja trybu dostępu ł ł ł ł ANNNNNNNNN zarezerwowane, zawsze 0 ł ANCNCNNNNNNNNNN dostęp dzielony (zob. poniżej) (DOS 3.1+) ANNNNNNNNNNNNNNN 1 = prywatny, 0 = dziedziczny (DOS 3.1+) % Bity dostępu dzielonego (DOS 3.1+): Bity trybu dostępu: % 654 210 000 tryb kompatybilności (wyłączny) 000 dostęp do czytania 001 zabroń innym dostęp do czyt/zapis 001 dostęp do zapisu 010 zabroń innym dostęp do zapis 010 dostęp do czytania/zapisu 011 zabroń innym dostęp do czytania 100 pełny dostęp dozwolony wszystkim - otwiera pliki normalne, ukryte i systemowe - wskaźnik pliku jest ustawiany na początku :int 21,3e ^INT 21,3E - Zamknij plik przy użyciu uchwytu AH = 3Eh BX = uchwyt pliku do zamknięcia - jeśli plik jest otwarty do aktualizacji, długość, czas i data pliku są aktualizowane w katalogu - uchwyt jest zwalniany :int 21,3f ^INT 21,3F - Czytaj z pliku lub urządzenia przy użyciu uchwytu AH = 3Fh BX = uchwyt pliku CX = liczba bajtów do przeczytania DS:DX = wskaźnik do bufora czytania AX = liczba wczytanych bajtów jeśli CF nie ustawiona = kod błędu jeśli CF ustawiona (zob. ~kody błędów DOS~) - wczytuje określoną liczbę bajtów z pliku do bufora DS:DX - jeśli CX jest różne od AX nastąpiło częściowe czytanie z powodu

końca pliku - jeśli AX = 0, nie wczytano danych i koniec pliku pojawił się przed operacją :int 21,40 ^INT 21,40 - Zapis do pliku lub urządzenia przy użyciu uchwytu AH = 40h BX = uchwyt pliku CX = liczba bajtów do zapisu, wartość 0 obcina/rozszerza plik do aktualnej pozycji DS:DX = wskaźnik do bufora zapisu AX = liczba zapisanych bajtów jeśli CF nie ustawiona = kod błędu jeśli CF ustawiona (zob. ~kody błędów DOS~) - jeśli przerwanie zwraca AX różne od CX, nastąpił częściowy zapis - ta funkcja może być użyta do obcięcia pliku do bieżącej pozycji poprzez zapis 0 bajtów :int 21,41 ^INT 21,41 - Kasowanie pliku AH = 41h DS:DX = wskaźnik do nazwy pliku jako łańcucha zakończonego 00h AX = kod błędu jeśli CF ustawiona (zob. kody błędów DOS) - zaznacza pierwszy bajt nazwy pliku w katalogu przez E5 co oznacza, że plik został skasowany. Reszta pliku w katalogu pozostaje bez zmian do czasu ponownego użycia. Wskaźniki ~FAT~ są zwracane do DOS - udokumentowana jako nieakceptująca znaków globalnych w nazwie pliku, lecz akceptuje je w kilku wersjach DOS :int 21,42 ^INT 21,42 - Przesuń wskaźnik pliku przy użyciu uchwytu AH = 42h AL = sposób przesunięcia: 00 = względem początku pliku 01 = względem aktualnej pozycji w pliku 02 = względem końca pliku BX = uchwyt pliku CX = starsze słowo liczby bajtów do przesunięcia DX = młodsze słowo liczby bajtów do przesunięcia DX:AX = nowa lokacja wskaźnika jeśli CF nie ustawiona - szuka określonej lokacji w pliku

:int 21,43 ^INT 21,43 - Pobierz/ustaw atrybuty pliku AH = 43h AL = 00 by pobrać atrybut = 01 by ustawić atrybut DS:DX = wskaźnik do ścieżki+nazwy jako łańcucha zakończonego 00h CX = atrybut do ustawienia (jeśli AL = 1) ł5ł4ł3ł2ł1ł0ł CX atrybuty pliku ł ł ł ł ł ANNNN 1 = tylko odczyt (read only) ł ł ł ł ANNNNN 1 = ukryty (hidden) ł ł ł ANNNNNN 1 = systemowy (sys) ł ANCNNNNNNN nie używany w tym wywołaniu ANNNNNNNNNN 1 = archiwum (arc) CX = atrybut jeśli AL było 00 :int 21,47 ^INT 21,47 - Pobierz aktualny katalog AH = 47h DL = numer dysku (0 = bieżący, 1 = A:) DS:SI = wskaźnik do 64-bajtowego bufora użytkownika DS:SI = wskaźnik do ścieżki jako łańcucha zakończonego 00h - returns the current directory relative to the root directory - zwraca bieżący katalog relatywnie do katalogu głównego - początkowy "\" oraz symbol dysku są pominięte :int 21,48 ^INT 21,48 - Alokuj pamięć AH = 48h BX = liczba paragrafów (1 paragraf = 16 bajtów) do zaalokowania AX = segment zaalokowanej pamięci (MCB + 1para) = kod błędu jeśli CF ustawiona (zob. ~kody błędów DOS~) BX = długość największego dostępnego bloku wyrażona w paragrafach jeśli CF ustawiona, i AX = 08 (za mało pamięci) CF = 0 jeśli sukces = 1 jeśli błąd - zwraca adres segmentu bloku zaalokowanej pamięci AX:0000 - każda alokacja wymaga 16 bajtowego nadmiaru dla ~MCB~ - jeśli wystąpił błąd braku pamięci, zwraca największy dostępny obszar - zob. ~INT 21,49~, ~INT 21,4A~

:int 21,49 ^INT 21,49 - Zwolnij zaalokowaną pamięć AH = 49h ES = segment bloku do zwolnienia (~MCB~ + 1para) - zwalnia pamięć zaalokowaną przez ~INT 21,48~ - jeśli pamięć nie była zaalokowana przez INT 21,48, lub przez obecny program, mogą pojawić się nieprzewidywalne błędy - sprawdza identyfikator MCB, ale nie sprawdza własności procesu - należy uważać jeśli zwalniamy pamięć innego procesu, upewnić się, że segment nie jest używany przez TSR lub ISR - ta funkcja jest zawodna w TSRach od chwili gdy są rezydentne, gdyż COMMAND.COM i inne programy typu.com zabierają całą dostępną pamięć po załadowaniu - zob. INT 21,4A :int 21,4a ^INT 21,4A - Modyfikuj zaalokowaną pamięć AH = 4Ah BX = nowa długość bloku wyrażona w paragrafach ES = segment bloku (~MCB~ + 1 para) BX = maksymalna możliwa długość bloku jeśli CF ustawiona i AX = 8 - modyfikuje pamięć zaalokowaną przez ~INT 21,48~ - może być używana przez program do zmniejszenia lub zwiększenia ilości zaalokowanej pamięci - PC-DOS w wersji 2.1 i DOS 3.x zaalokują blok maksymalnej długości jeśli CF jest ustawiona. BX będzie równe zaalokowanej długości - zob. też ~INT 21,49~ :int 21,4b:funkcja exec ^INT 21,4B - EXEC/załaduj i uruchom program AH = 4Bh AL = 00 by załadować i uruchomić program = 01 (Nieudok.) utwórz program segment prefix i załaduj program, ale nie uruchamiaj. CS:IP i SS:SP programu są umieszczane w bloku parametrów. Używane przez debuggery = 03 tylko załaduj program = 04 wywoływana przez MSC spawn() gdy określono P_NOWAIT DS:DX = wskaźnik do nazwy pliku jako łańcucha zakończonego 00h ES:BX = wskaźnik do bloku parametróww ES:BX = gdy AL=1, wskaźnik do bloku parametrów podobnego do:

% Przesunięcie Długość Opis 00 word gdy AL=1, segment środowiska lub zero jeśli przy użyciu środowiska procesu nadrzędnego word gdy AL=3, segment punktu ładowania dla nakładki 02 dword gdy AL=1, wskaźnik do linii komend na PSP 80h word gdy AL=3, czynnik relokacji dla nakładki EXE 06 dword wskaźnik do bieżącego ~FCB~ na ~PSP~ 5Ch 0A dword wskaźnik do bieżącego FCB na PSP 6Ch 0E dword wartość SS:SP programu 12 dword wartość CS:IP programu - pozwala uruchomić zewnętrzny program jak również zarządzać nakładkami z wnętrza aplikacji - wszystkie rejestry z wyjątkiem CS i IP są niszczone - SS i SP powinny być zachowane w segmencie kodu przed wywołaniem, ponieważ pluskwa w DOS 2.x niszczy je - kod powrotu może być pobrany jeśli podproces zakańczał przez ~INT 21,4C~ - program wywołujący musi zapewnić odpowiednią ilość niezaalokowanej pamięci - podfunkcja 4 zwraca błąd w wersjach DOS 4.x+ - wywołuje ~INT 21,55~ - zob. też ~INT 21,26~ :int 21,4c ^INT 21,4C - Zakończ program z kodem powrotu AH = 4Ch AL = kod powrotu (dla plików batch) przerwanie nie zwraca nic - aprobowana metoda zakańczania programu - przywraca adres zakończenia, ~Ctrl-Break~ i obsługi błędów krytycznych, opróżnia wszystkie bufory, zwalnia pamięć i powraca do DOS przez procedurę obsługi zakończenia programu - nie zamyka FCB - funkcja nie dostępna w DOS przed 2.x, więc używaj ~INT 21,0~, lub ~INT 20~ - zob. też ~INT 27~ ~INT 21,31~ :int 21,4e ^INT 21,4E - Znajdź pierwszy pasujący plik "?") AH = 4Eh CX = atrybut używany w trakcie poszukiwań (zob. ~atrybuty pliku~) DS:DX = wskaźnik do ścieżki i nazwy pliku (włączając znaki globalne "*" i jako łańcucha zakończonego 00h ~DTA~ = dane zwrócone po wywołaniu funkcji w formacie:

% Przesunięcie Długość Opis 00 byte atrybut poszukiwań (nieudokumentowane) byte litera przeszuk. dysku (DOS 3.1-4.x, nieudok.) 01 byte litera przeszukiwanego dysku (nieudokumentowane) 11bytes szukana maska pliku (DOS 3.1-4.x, nieudok.) 02 11bytes szukana maska pliku (nieudokumentowane) 0C byte atrybut poszukiwań (DOS 3.1-4.x, nieudok.) 0D word numer w katalogu (zaczynając od 0, nieudok.) 0F word numer pierwszego klastra bieżącego katalogu; zero - katalog główny (DOS 3.2+, nieudok.) dword wskaźnik do DTA (DOS 2.x-3.1, nieudokumentowane) 11 word zarezerwowane 13 word numer pierwszego klastra bieżącego katalogu; 0 - katalog główny (DOS 2.x+, nieudokumentowane) 15 byte atrybut znalezionego pliku 16 word czas pliku (zob. ~atrybuty pliku~) 18 word data pliku (zob. ~atrybuty pliku~) 1A dword długość pliku 1E 13bytes nazwa i rozszerzenie pliku w formie nazwapli.roz,00h - zwraca informacje o pierwszym pliku pasującym do określonej maski i atrybutu - użyj ~INT 21,4F~ do znalezienia następnych takich plików - DOS 2.x nie może znaleźć. i.., podczas gdy DOS 3.x może pod warunkiem, że reprezentują one katalog główny - urządzenia zwracają 0 dla dłógości, daty i czasu w DOS 2.x, natomiast DOS 3.0 zwraca atrybut 40h i aktualną datę i czas. - wielokrotne wywołanie tej funkcji z maską urządzenia może spowodować nieprzewidywalne wyniki - normalne pliki są zawsze zawarte po plikach spełniających określony atrybut, za wyjątkiem sytuacji, w której atrybutem tym jest label. - DOS 2.x zwraca normalne pliki również, gdy podano atrybut label, DOS 3.x nie. Jest to już sprawą programisty sprawdzić, które pliki pasują do atrybutu. - bit 8 rejestru CX (atrybut pliku) identyfikuje wielodostępne pliki Novell Netware - zob. INT 21,1A :int 21,4f ^INT 21,4F - Znajdź następny pasujący plik AH = 4Fh DS:DX = niezmienione z poprzedniej funkcji 4E - ~INT 21,4E~ powinna być wywołana by znaleźć pierwszy pasujący plik i ta funkcja powinna być użyta do znalezienia następnych plików - normalne pliki są zawsze zawarte po plikach spełniających określony atrybut, za wyjątkiem sytuacji, w której atrybutem tym jest label. - DOS 2.x zwraca normalne pliki również, gdy podano atrybut label, DOS 3.x nie. Jest to już sprawą programisty sprawdzić, które pliki pasują do atrybutu. - zob. ~INT 21,1A~ ~DTA~ ~atrybuty pliku~

:int 21,56 ^INT 21,56 - Zmień nazwę pliku (RENAME) AH = 56h DS:DX = wskaźnik do starej ścieżki/nazwy pliku jako łańcucha zakończonego 00h ES:DI = wskaźnik do nowej ścieżki/nazwy pliku jako łańcucha zakończonego 00h - umożliwia zmianę nazw z pełnymi ścieżkami i zmianę nazw plików poprzez katalogi a w DOS 3.x również zmianę nazwy podkatalogów - nie umożliwia użycia znaków globalnych chyba, że wywołane z przerwania ~INT 21,5D~, lecz wówczas zwracany jest kod błędu 12h - nieprzewidywalne błędy mogą się pojawić jeśli zmieniona zostanie nazwa otwartego pliku - zob. ~Bibliography~ reference to "nieudokumentowany DOS" :int 21,57 ^INT 21,57 - Pobierz/ustaw datę i czas pliku przy użyciu uchwytu AH = 57h AL = 00 pobierz datę i czas = 01 ustaw datę i czas = 02??? (DOS 4.0+ nieudokumentowane) = 03??? (DOS 4.0+ nieudokumentowane) = 04??? (DOS 4.0+ nieudokumentowane) BX = uchwyt pliku CX = czas do ustawienia (jeśli ustawianie) DX = data do ustawienia (jeśli ustawianie) ES:DI = wskaźnik do bufora zawierającego wyniki CX = czas pliku (jeśli pobieranie, zob. poniżej) DX = data pliku (jeśli pobieranie, zob. poniżej) % Kodowanie czasu: łfłełdłcłbłał9ł8ł7ł6ł5ł4ł3ł2ł1ł0ł Czas w CX ł ł ł ł ł ł ł ł ł ł ł ANCNCNCNCNNNN 2-sek. przyrost (0-29) ł ł ł ł ł ANCNCNCNCNCNNNNNNNNNNNNN minuty 0-59) ANCNCNCNCNNNNNNNNNNNNNNNNNNNNNNNN godziny (0-29) % Kodowanie daty: łfłełdłcłbłał9ł8ł7ł6ł5ł4ł3ł2ł1ł0ł Data w DX ł ł ł ł ł ł ł ł ł ł ł ANCNCNCNCNNNN dzień (1-31) ł ł ł ł ł ł ł ANCNCNCNNNNNNNNNNNNN miesiąc (1-12) ANCNCNCNCNCNCNNNNNNNNNNNNNNNNNNNN rok - 1980