Bios


; Procedury Obsługi Przerwań

; Opracował: Marcin Kowalski

INT 0h dzielenie przez zero

INT 1h praca krokowa-stosowane do pracy z uruchamiaczem

INT 2h przerwanie niemaskowane NMI nie można go zablokować

INT 3h pułapka -punkt wstrzymawania pracy programu (breakpoint,1- byte interrupt)

INT 4h przepełnienie przy operacjach matematycznych (overlow)

INT 5h print screen

INT 6h zarezerwowane dla IBM AT niedostępna jednostka matematyczna

INT 8h zegar systemu

INT 9h klawiatura

INT 0Ah AT

INT 0Bh obsługa COM2(RS232 interrupt)

INT 0Ch obsługa COM1(RS232 interrupt)

INT 0Dh AT\XT

INT 0Eh AT\XT

INT 0Fh przerwanie od sygnału ACK drukarki

INT 10h Obsługa wideo

funkcje w rejestrze AH

00h set video mode

we: AL=0 tekst 40*25 mono

1 tekst 40*25 kolor

2 tekst 80*25 mono

3 tekst 80*25 kolor CGA

4 grafika 320*200 kolor

5 grafika 320*200 mono

6 grafika 640*200 mono

7 tekst

8/9/10 tryb dla PCjr

11/12 przewidziane dla EGA Bios

13 grafika 320*200 16 kolor

14 grafika 640*200 16 kolor

15 grafika 640*350 3 kolory

16 grafika 640*350 16 kolor EGA

19 grafika 320*200 256 kolor MCGA

01h set cursor characteristics

we: CH (bity 4-0) linia początku kursora

CH (bity 4-0) linia końca kursora

CH (bity 5=1) kursor niewidoczny

CH (bity 6=1) przyśpieszone migotanie

02h set cursor position

we:

DH wiersz (0-24)

DL kolumna (0-39/79)

BH strona (0- dla trybu graficznego)

03h read cursor position

we:

BH strona (0- dla trybu graficznego)

wy:

DH wiersz (0-24)

CL kolumna (0-39/79)

CX rozmiary kursora (CH i CL)

04h czytaj pozycję pióra świetlnego

wy:

AH=0 nie włączone

AH=1 włączone

DH wiersz (0-24)

DL kolumna (0-39/79)

CH liczba pixeli w osi Y (0-199)

BX liczba pixeli w osi X (0-319/639)

05h ustaw aktywną stronę w trybie tekstowym

we:

AL numer strony (0-7 dla trybów 0,1 lub 0-3 dla trybów 2,3)

06h przewiń aktywną stronę w górę

we:

AL liczba linii (linie na dole okna są spacjowane)

AL=0 spacjuj całe okno

CH wiersz górnego lewego narożnika

CL kolumna górnego lewego narożnika

DH wiersz dolnego prawego narożnika

DL kolumna dolnego prawego narożnika

BH atrybut spacjowania

07h przewiń aktywną stronę w dół

we:

AL liczba linii (linie na górze okna są spacjowane)

AL=0 spacjuj całe okno

CH wiersz górnego lewego narożnika

CL kolumna górnego lewego narożnika

DH wiersz dolnego prawego narożnika

DL kolumna dolnego prawego narożnika

BH atrybut spacjowania

08h czytaj znak i atrybut z pozycji kursora

we:

BH numer strony

wy:

AL znak

AH atrybut (kolor) znaku

0 czarny

1 niebieski

2 zielony

3 zielono niebiski (cyan)

4 czerwony

5 fioletowy

6 brązowy

7 jasno-szary

8 ciemno-szary

9 jasno-niebiski

10 jasno zielony

11 jasnozielono-niebieski

12 jasno-czerwony

13 jasno-fioletowy

14 żółty

15 jasno-biały

128 migotanie

09h pisz znak z atrybutem na pozycji kursora bez zmiany jego pozycji

we:

BH numer strony

CX liczba znaków

AL znak

BL atrybut (kolor) znaku

BL (bit 7=1) ustaw kolor XOR z kolorem aktualnym

0Ah pisz znak na pozycji kursora bez zmiany jego pozycji, atrybut znaku pozostaje niezmieniony

we:

BH numer strony

CX liczba znaków

AL znak

0Bh ustaw paletę klorów lub kolor tła

we:

BH=0 tło

BL kod koloru (0-15,31)

BH=1 paleta

BL numer palety

0: green\red\yellow

1: cyan\magneta\white

0Ch rysuj punkt w trybie graficznym

we:

DX wiersz

CX kolumna

AL kolor punktu

AL=0 ustaw kolor: XOR z kolorem aktualnym

0Dh

we:

DX wiersz

CX kolumna

wy:

AL kolor punktu

0Eh pisz znak na aktywną stronę ze zmianą pozycji kursora -tryb TTY (TTY write)

we:

AL znak

BL kolor znaku w trybie graficznym; w trybie tekstowym atrybut jest niezmieniany,

znak z rejsetru AL jest pisany w pozycji kursora,następnie kursor jest przesuwany

do następnej pozycji, gdy kursor opuszcza ostatnią kolumnę wykonywane jest

przewinięcie całej strony

0Fh czytaj aktualny status wideo

wy:

AL tryb (jak w AH=00h)

AH liczba kolumn znakowych na ekranie

BH numer aktywnej strony

12h podfunkcja bh=36h

Wygaszacz ekranu

Al 1 wygazenie ekranu

0 przywrócenie ekranu

10h-1Ch funkcje dla kart EGA\VGA

40h-4Eh funkcje dla grafiki karty Herkules

Przy pisaniu lub czytaniu znaków w trybie graficznym używany jest generator znaków

zapisany w pamięci ROM (CGA, EGA i VGA).

Umieszczone są tam wzorce znaków dla kodów ASCII (0-127).

W celu uzyskania pozostałych znaków należy uprzednio zainicjować wektor przerwania 1Fh

tak aby wskazywał adres 1kB tablicy wzorców znaków. Przy pisaniu znaków w trybie

graficznym licznik zawarty w rej. CX daje rezultaty poprawne tylko do końca linii.

Przy wywoływaniu przerwania przechowywane są rejsetry CS SS DS ES BX CX DX.

INT 11h Konfiguracja sprzętowa komputera

Informacje z rejestru AX

wy:

AX (bity 15,14) liczba drukarek (maksymalnie 3)

AX (bit 12) wskazuje na istnienie portu gier

AX (bity 11-9) liczba portów RS232 (maksymalnie 7)

AX (bity 7,6) liczba napędów dysków elastycznych

00 1 przy AX (bit 0=1)

01 2

10 3

11 4

AX (bity 5,4) tryb wideo ustalony po inicjalizacji

01 40*25 kolorowy

10 80*25 kolorowy

11 80*25 monochromatyczny

AX (bity 3,2) rozmiar pamięci planarnej RAM

00 16kB

01 32kB

10 48kB

11 64kB

AX (bit 1) koprocesor arytmetyczny

AX (bit 0) start systemu z dyskietki

INT 12h Ustalenie rozmiaru pamięci RAM

Informacje z rejestru AX

wy:

AX liczba ciągłych 16kB bloków pamięci

INT 13h Operacje dyskowe

Funkcje w rejestrze AH

00h wyzeruj system dysku\dyskietki

01h czytaj status ostatniej operacji dyskowej

wy:

AL status

80h przekroczony czas

40h błąd szukania

20h błąd sterownika

10h błąd sumy kontrolnej- CRC

09h błąd DMA (direct memory access- układ bezpośredniego dostępu do RAM)

- przekroczenie obszaru 64kB

08h błąd DMA- przepełnienie (overlow)

04h nieodnaleziony sektor

03h próba naruszenia ochrony przed zapisem

02h nieznaleziony marker adresu

01h błędna komenda

00h operacja poprawna

Parametry dla operacji czytania, pisania, weryfikacji i formatowania:

we:

DL numer napędu (0-3)

DH numer głowicy (0-1)

CH numer ścieżki (0-39)

CL numer sektora (1-8) - nieużywany dla formatowania

AL liczba sektorów (maks. 8) - nieużywany dla formatowania

ES:BH adres bufora danych - nieużywany dla weryfikacji

wy:

AH status operacji:

CF=0 operacja zakończona poprawnie (AH=0)

CF=1 operajca zakończona błędnie

AL numer aktualnego sektora - może być niepoprawny przy błędzie time out(przekroczony czas)

02h czytaj wskazane sektory do pamięci

03h pisz wskazane sektory z pamięci

04h weryfikuj wskazane sektory

05h formatuj wskazane ścieżki - dla operacji formatowania adres bufora (ES:BX) musi wskazywać na

zestawienie pól adresowych ścieżki, każde pole składa się z 4 bajtów (P,H,S,N), gdzie:

P - numer ścieżki

H - numer głowicy

S - numer sektora

N - liczba bajtów w sektorze zależna od typu dysku

00=128B

01=256B

02=512B

03=1024B

oraz musi istnieć tylko jedno pole dla każdego sektora w ścieżce]

06h-1Ah poszerszenie funkcji pomocniczych dla operacji dyskowych

Przy wywoływaniu przerwania przechowywane są rejsetry DS BX DX CX. Po pojawieniu się

błędu operacji dyskowej należy wykonać:

- wyzerownaie systemu dysku

- powtórzenie operacji przy zapisie

- przy czytaniu dokonać jeszcze dwu powtórzeń

wtedy mamy pewność, że błąd nie jest związany ze startem silnika tylko uszkodzeniem

dysku lub stacji.

INT 14h Interfejs szeregowy(i/o)

Funkcje w rejestrze AH

00h inicjalizuj parametry portu dla transmisji synchronicznej

we:

AL (bity 7-5) szybkość transmisji

000 110 bodów

001 150 bodów

010 300 bodów

011 600 bodów

100 1200 bodów

101 2400 bodów

110 4800 bodów

111 9600 bodów

AL (bity 4-3) parzystość\nieparzystość

x0 nie kontrolowana

01 nieparzysta

10 parzysta

Al bit 2 liczba bitów stopu

0- 1 bit

1- 2bity

AL (bity 1-0) długość znaku

00 5 bitów

01 6

10 7

11 8

DX numer portu szeregowego(0,1)

wy:

AX status portu

01h pisz znak na linię portu

we:

AL znak

DX numer kanału szeregowego(0,1)

wy:

AL przechowywany znak

AH (7=1) znak przesłany

AH (7=0) znak nieprzesłany

AH (6-0) status linii portu

02h czytaj znak z linii portu

we:

DX numer kanału szeregowego (0,1)

wy:

AL znak

AH (7=1) znak przesłany

AH (7=0) znak nieprzesłany

AH (6-0) status linii z wyjątkiem bitów 6,5 i 0

03h Czytaj status portu -po operacji

we:

DX numer portu szeregowego (0,1)

wy:

AH status linii (nadajnika)

bity:

7 urządzenie niegotowe

6 pusty rejestr przesuwany nadajnika

5 pusty rejestr buforujący nadajnika

4 odebrano sygnał przerywający transmisję

3 błąd ramki

2 błąd parzystości

1 zagubiono znak

0 dane gotowe do odczytu

AL status modemu (odbiornika)

7 stan linii RLSD

6 stan linii RI

5 stan linii DSR

4 stan linii CTS

3 nastąpiła zmiana stanu na linii RLSD

2 wykryto narastające zbocze na linii HRI

1 nastąpiła zmiana stanu na linii DSR

0 nastąpiła zmiana stanu na linii CTS

(00h) 04h-15h poszerszenia funkcji komunikacyjnych

POdczas wywoływania wszystkie prócz AX rejestry są przechowywane.

Bajt F000:007C (BIOS) zawiera licznik pętli zewnętrznej oczekiwania

na poprawność operacji (stand.1).

INT 15h Obsługa magnetofonu (cassette I/O) oraz funkcje dla IBM AT

funkcje w rejestrze AH

84h status joysticka tylko dla AT

we:

DX=00 odczyt przełącznika

DX=01 odczyt położenia

wy:

AL stan przełącznika lub

AX poł X joya I

BX poł Y joya I

CX poł X joya II

DX poł Y joya II

87h przerzut bloków w zakresie pamięci rozszerzonej

88h rozmiar pamięci rozszerszonej

INT 16h Obsługa klawiatury

funkcje w rejestrze AH

00h czytaj znak z bufora klawiatury

wy:

AL kod znaku (ASCII)

Gdy AL=0 wtedy kod znaków jest poszerzony i otrzymujemy go w AH:

0 Ctrl-Break

1..14 ESC..BS

15..27 Tab..]

28 enter

30-41 A..'

43-53 \../

55 [*]

57 space

59-68 F1-F10

82 Ins

83 Del

71 Home

72 Up

73 pgup

74 [-]

75 left

76 [5]

77 right

78 [+] -kl.bocz.

79 End

80 Down

81 pgdown

84-93 Shift F1..F10

94-103 ctrl f1-f10

104-113 alt f1-f10

114 ctrl [*]

115 ctrl left

116 ctrl right

117 ctrl end

118 ctrl pg down

119 ctrl home

120-131 alt 1..

132 ctrl pg up

01h test obecności znaku w buforze klawiatury

wy:

ZF=1 bufor pusty

ZF=0 znak przekazany do AX (ale pozostaje w buforze)

02h czytaj status klawisz kontrolnych

wy:

AL kod klawiszy

80h Ins

40h Caps lock

20h num lock

10h scroll lock

8h alt

4h ctrl

2h left shift

1h right shift

03h-05h, 10h-12h poszerszenie funkcji klawiatury

Podczas wywoływania przerwania rejestry są przechowywane.

INT 17h Obsługa drukarki

funkcje w AH

00h drukuj znak

we:

AL znak

DX numer portu drukarki (0,1) [1]

wy:

AH status

AH (bit 0=1) za duży czas oczekiwania

01h inicjalizacja portu drukarki

we:

DX numer drukarki (0,1)

wy:

AH status

02h czytaj status

we:

DX numer portu drukarki

wy:

AH status bity

7 nie zajęta

6 potwierdzenie

5 brak papieru

4 drukarka wybrana

3 błąd wejścia\wyjścia

0 przekroczenie czasu

Przy wywołaniu wszystkie prócz AH rejestry są przechowywane.

Bajt F000:0078 (Bios) zawiera licznik pętli zewnętrznego oczekiwania

na poprawność operacji(stand. 20).

INT 18h wywołanie Basic-a z Rom (transfer to ROM basic)

INT 19h Załadowanie kodu "bootstrap" z dysku systemowego

INT 1Ah Zegar i data systemowa.

funkcje w AH

00h czytaj stan zegara

wy:

CX starsza MSW część licznika

DX młodsza LSW część licznika

AL=0 ostatni odczyt był w ciągu 24 godz.

01h ustaw zegar

CX st. część licz.

DX mł. część licz.

02h-0Bh funkcje dla AT

Cykl licznika wynosi 1193180/65536 sek. (ok. 18,2 ms)

INT 1Ch impuls zegara systemowego (gen. razem z 08h)

INT 1Dh tablica parametrów kontrolera CRT 6845

INT 1Eh podstawowa tablica parametrów dyskietki

INT 1Fh drugi zestaw znaków graficznych

INT 20h DOS-zakończenie programu lub funkcje komunikacyjne dla Minix

INT 21h Funkcje DOS-a

Funkcje w rejestrze AH

00h zakończenie programu

we:

CS segment PSP(PSP- "przedrostek" programu, zawiera istotne informacje

umożliwiający Dos'owi uruchomienie programu np. wielkość dostępnej

pamięci, adresy procedur zakończenia i obsługi błędów,listę parametrów)

zakończonego procesu, zeruje wektory 22h-24h czyści bufory dyskowe, ale

nie zamyka pliku

01h Pobranie znaku z klawiatury

wy:

AL znak uzyskany z standardowego wejścia- CON, znaki rozeszerzone uzyskuje

się po otrzymaniu AL=0 i powtórnym wywołaniu przerwania z tą funkcją

02h Wysłanie znaku na monitor

we:

DL znak do wysłania na standardowe wejście- CON

03h Pobranie znaku z portu szeregowego

wy:

AL znak odebrany ze standardowego szeregowego urządzenia COM1 (AUX)

odczyt w trybie pooling bez wykorzystania przerwań, po inicjalizacji

DOS przyjmuje następujący protokół transmisji COM1 2400 bodów bez

parzystości, 1 bit stopu 1 8 danych

04h wysłanie znaku na port szeregowy

we:

DL znak do wysłania ze standardowego szeregowego urządzenia COM1

05h Wysłanie znaku na port drukarki

we:

DL znak do wysłania ze standardowego portu drukarki

06h Pobranie lub wysłanie znaku z konsolety

we:

DL znaki z zakresu [00h-FEh] w wypadku wysłania znaku, i FFhw przypadku

próby odbioru z urządzenia I/O

wy:

podobnie jak w 01h

07h Wprowadzenie znaku z konsoli bez echa na ekranie

wy: jak w 1h

08h Wproawdzenie znaku z konsoli bez echa na monitorze

wy:

jak w 1h

09h Wysłanie napisu na monitor

we:

DS:DX adres napisu zakończonego znakiem $

0Ah buforowane wejście z klawiatury

we:

DS:DX adres bufora na wprowadzane znaki, pierwszy bajt w buforze

ustala maks. liczbę znaków do odebrani, koniec odbierania po

naciśnięciu Enter (CR=#13)

0Bh Pobranie statusu z klawiatury

wy:

AL status dostępności znaku przez standardowe I/0 CON, AL=FFh znak dostępny

a AL=00 brak znaku

0Ch Czyszczenie bufora i pobranie znaku z klawiatury

we:

AL 01,06h wpierw jest zerowany bufor standardowego

07,08h I/O a następnie realizowana jest

i 0Ah funkcja odpowiadająca wywołaniu funkcji AH 01h itd.

0Dh zerowanie systemu dysku, oczyszcza wszystkie bufory plikowe

(wcześniej należy pomiętać o zamknięciu odpowiednich plików)

0Eh ustaw aktualny dysk dla DOS

we:

DL numer dysku(0=A, 1=B, 128=C)

wy:

AL liczba wszystkich dysków dostępnych w systemie

0Fh przygotuj blok kontroli pliku

we:

DS:DX adres bloku kontrolnego pliku(FCB) do otwarcia- blok zawiera inf.

o mumerrze dysku, nazwie pliku z rozszerzeniem, długość oraz datę

wy:

AL 0- operacja wykonana poprawnie; FFh - niepoprawnie

10h Zamknij plik wg FCB

we:

DS:DX adres bloku do zamknięcia

wy:

AL 0- operacja wykonana poprawnie; FFh - niepoprawnie

11h Znajdź pierwszy plik wg FCB

we:

DS:DX adres bloku kon. pliku

wy:

AL 0- operacja wykonana poprawnie (wtedy wypełnia się tablica DTA (disk

transfer adres- 43 bajtowej tablicy wspomagającej działanie funkcji

plikowych AH 11h 12h 4Eh 4Fh) FFh - niepoprawnie

12h Znajdź następny plik

we:

DS:DX adres bloku kon. pliku

wy:

AL 0- operacja wykonana poprawnie (wtedy wypełnia się tablica DTA (disk

transfer adres- 43 bajtowej tablicy wspomagającej działanie funkcji

plikowych AH 11h 12h 4Eh 4Fh) FFh - niepoprawnie

13h Usuń plik

we:

DS:DX adres bloku kon. pliku

wy:

AL 0- operacja wykonana poprawnie (wtedy wypełnia się tablica DTA (disk

transfer adres- 43 bajtowej tablicy wspomagającej działanie funkcji

plikowych AH 11h 12h 4Eh 4Fh) FFh - niepoprawnie

14h odczyt sekwencyjny z wg FCB

we:

DS:DX adres bloku pliku do odczytu sekwencyjnego

wy:

AL 0- operacja wykonana poprawnie inaczej wystąpił błąd

15h zapis sekwencyjny wg FCB

we:

DS:DX adres bloku pliku do zapisu sekwencyjnego

wy:

AL 0- operacja wykonana poprawnie inaczej wystąpił błąd

16h Otwórz plik

we:

DS:DX adres bloku kont. do otwarcia

wy:

AL 0- operacja wykonana poprawnie; FFh - niepoprawnie

17h Zmieź nazwę pliku wg FCB

we:

DS:DX adres specjalnego bloku kontrolnego pliku do zmiany nazwy

wy:

AL 0- operacja wykonana poprawnie; FFh - niepoprawnie

18h nieużywane

19h Pobiersz bumer aktualnego dysku

wy:

AL numer dysku

1Ah Ustaw tablicę danych do transmisji dyskowych (DTA)

we:

DS:DX adres dla DTA

1Bh pobierz DTA

wy:

DS:DX adres bajtu FAT ID wskazującego na tym dysku

DX całkowita liczba jednostek alokacji (klastrów)

AL sektorów na klaster

CX bajtów na sektor

rozmiar dysku to DX*AL*CX (longint)

1Ch Pobierz tablicę alokacji dysku aktualnego dysku

we:

DL numer dysku

wy: jak 1Bh

1Dh nieużywane

1Eh nieużywane

1Fh pobierz adres bloku informacji o wybranym dysku

20h nieużywane

21h czytaj dowolne sektory dysku

we:

DS:DX adres bloku kontrolnego pliku otwartego do odczytu

wy:

AL 0-poprawnie ;inaczej wystąpił błąd

22h zapisz dowolne sektory na dysk

we:

DS:DX adres bloku kontrolnego pliku otwartego do zapisu

wy:

AL 0-poprawnie ;inaczej wystąpił błąd

23h ustal długość pliku wg FCB

we:

DS:DX adres bloku kontrolnego pliku do otwarcia

24h ustaw plik dp otwarcia

we:

DS:DX adres bloku kontrolnego pliku do otwarcia

25h Pobierz adres procedury obsługi przerwania

we:

AL numer przerwania

DS:DX adres procedury do obsługi przerwania

26h utwórz PSP programu

we:

DX adres seg. dla nowego PSP

CS adres seg. dla starego PSP

27h czytaj dowolne bloki z pliku

we:

DS:DX adres bloku kontrolnego pliku otwartego do odczytu

CX liczba rekordów do odczytu

wy:

AL status operacji (j.w.0,FF)

CX aktualnie przeczytana liczba rekordów

28h zapisz dowolne bloki do pliku

we:

DS:DX adres bloku kontrolnego pliku otwartego do ozapisu

CX liczba rekordów do zapisu

wy:

AL status operacji (j.w.0,FF)

CX aktualnie zapisana liczba rekordów

29h Porówanie dwóch plików

2Ah pobierz datę systemową

wy:

AL dzień tyg. (0=niedz...)

CX rok (1980-2099)

DH miesiąc

DL dzień

2Bh ustal datę systyemową

we:

CX rok (1980-2099)

DH miesiąc

DL dzień

wy:

AL status operacji (j.w.)

2Ch Pobierz czas systemowy

wy:

CH godz

CL min

DH sek

DL set sek

2Dh Ustal czas systemowy

we:

CH godz

CL min

DH sek

DL set sek

wy:

AL status (j.w.)

2Eh ustaw wskaźnik weryfikacji zapisu

we:

AL wskaźnik weryfikacji po zapisie ba dysk każdego sektora

0, weryfikacja wyłączona a 1 włączona

2Fh Pobierz adres DTA

wy:

ES:BX adres początku aktualnego DTA, zawartość tej tablicy

znajduje się także od adresu 0:80h w PSP

30h pobierz wersję DOS

wy:

AL główny numer wersji DOS (np. 6.xx)

AH poboczny numer DOS (np. x.2)

BX,CX poszerszenia numeru

31h Utwórz procedurę rezydentną

we:

AL kod zakończenia (0- normalnie)

DX rozmiar pamięci w 16 bitowych pargrafach na procedurę rezydentną

32h pobierz adres informacji od dysku

we:

DL numer dysku

wy:

AL status op. (j.w.)

DS:BX adres DIB (tablica z informacjami o danym dysku)

33h ustawienie lub pobranie statusu Ctrl-Break

we:

AL pytanie o status klawisza (AL=0) lub (AL=1) ustawienie stanu klawisza

DL żądany stan klawisz (Ctrl- Break)

wy:

DL aktualny stan klawisza 0- włączony 1- niewłączony

34h pobranie flagi aktywności DOS

wy:

ES:BX adres flagi aktywności DOS, która wskazuje na to, czy w danej chwili

jest wykonywana DOS-a (np. I/O pliku). Gdy flaga jest nieówna zeru

nie należy wywływać w programie rezydentnym funkcji DOS'a

35h Pobierz adres procedury obsługującej przerwanie

we:

AL numer przerwania

wy:

ES:BX adres procedury obsługi przerwania zmienia wartość rejestru EX

36h Wolne miejsce na dysku

we:

DL numer dysku

wy:

AX FFFFh błędne parametry wywołania lub liczba sektorów na klaster

DX całkowita liczba alokacji jednostek (klastrów)

BX liczba dostępnych klastrów

CX liczba bajtów na sektor

rozmiar dysku (longint) AX*CX*DX

wolne miejsce AX*BX*CX

37h zmiana znaków na polecenia DOS np. z '\' na '*'

38h Pobranie lub ustawianie informacji o sposobie wyświetlania daty i czasu systemowego

39h Utwórz katalog

we:

DS:DX adres nazwy nowego katalogu

wy:

AX kod błędu wg DOS

00h brak błędu

01h niepoprawny numer funkcji

02h nie odnaleziono pliku

03h nie odnaleziono ścieżki

04h za dużo otwartych plików

05h zabroniony dostęp

06h niepoprawny uchwyt

07h uszkodzone bloki kontrolne pamięci

08h za mało pamięci RAM

09h niepoprawny adres bloku pamięci

0Ah niepoprawne środowisko

0Bh niepoprawny format

0Ch niepoprawny kod dostępu

0Dh niepoprawne dane

0Eh nie używany

0Fh zła specyfikacja dysku

10h niemożność usunięcia aktualnego katalogu

11h nieodpowidenie urządzenie

12h brak wskazanych plików

13h dostęp do zabezpieczonego dysku

14h nieznana jednostka ID

15h niegotowy dysk

16h nieznane polecenie

17h błąd danych dyskowych (CRC error)

18h złe żądanie o długości struktury

19h błąd pozycjonowania na dysku

1Ah nieznany typ medium dysku

1Bh nieodnaleziono sektoru dysku

1Ch brak papieru w drukarce

1Dh niepomyślny zapis

1Eh niepomyślny odczyt

1Fh całkowite uszkodzenie sprzętu

20h kontrola przydziału pliku

21h kontrola dostępu do pliku

22h niepoprawna zmiana dysku

23h brak dostępu do nowego FCB

24-49h zarezerwowane

50h plik już istnieje

51h zarezerwowane

52h niemożność wykonania polecenia

53h niepowodzenie obsługi INT 24h

3Ah Usuń katalog

we:

DS:DX adres katalogu

wy:

AX kod błędu wg DOS

3Bh zmień katalog

we:

DS:DX adres katalogu do zmiany

wy:

AX kod błędu wg DOS

3Ch Utwórz plik

we:

DS:DX adres pliku ze ścieżką

CX atrybut pliku

bity:

0=1 read only

1=1 hidden

2=1 system

3=1 katalog podstawowy

4=1 podkatalog

5=1 plik archiwum

3Dh otwórz plik

we:

DS:DX adres nazwy pliku ze ścieżką

AL tryb otwarcia

bity:

7=1

6,5,4 001 czytanie lub zapis

010 czytanie

011 zapis

3=1 system

2=1 katalog podst.

1=1 podkatalog

0=1 archiwum

wy:

AX kod błędu

3Eh zamknij plik

we:

BX uchwyt pliku

0 standardowe urządzenie wejściowe CON - klawiatura

1 standardowe urządzenie wyjściowe CON - monitor kod błędu wg DOS

2 standardowe urządzenie wyjściowe dla komunikaów błędów CON - monitor

3 standardowe urządzenie transmisji szeregowej COM1 (AUX)

4 standardowy port drukarki

wy:

AX kod błędu

3Fh czytaj dane z pliku

we:

BX uchwyt pliku

DS:DX adres bufora na odczytane dane

CX liczba bajtów do odczytu

wy:

AX kod błędu

40h Zapisz dane do pliku

we:

BX uchwyt pliku

DS:DX adres bufora z danymi do zapisu

CX liczba bajtów do zapisu

wy:

AX kod błędu

41h Usuń plik

we:

DS:DX adres nazwy pliku do usunięcia

wy:

AX kod błędu

42h Przesunięcie na pozycję pliku

43h Zmień atrybut pliku

44h kontrolowanie urządzenia wejścia wyjścia

45h Duplikat uchwytu pliku

46h Zmiana uchwytu pliku

47h Pobierz aktualny katalog

we:

DS:SI adres bufora na nazwę katalogu

DL numer dysku

wy:

AX kod błędu

48h alokacja pamięci RAM

we:

BX żądana liczba paragrafów (16 bajtowych) w pamięci

wy:

AX kod błędu

49h Zwolnienie pamięci

we:

ES adres segmentu (paragrafu) blokowanej pamięci do zwolnienia

wy:

AX kod błędu

4Ah Ustal blok pamięci

we:

ES adres segmentu (paragrafu) alokowanej pamięci do zwolnienia

BX żadany rozmiar dla bloku w paragrafach

wy:

AX kod błędu

4Bh Wykonaj program (EXEC) lub załaduj nakładkę

4Ch zakończ program

4Dh pobierz kod wyjścia ostatniego programu

4Eh find first

4Fh find next

50h ustaw segment PSP

51h pobierz PSP

52h pobierz listę dysków

53h utwórz uproszczony blok informacji

54h pobierz stan weryfikacji zapisu na dysk

55h ustórz nowy PSP

56h zmień nazwę pliku

we:

DS:DX plik do zmiany

ES:DI nowa nazwa

wy:

AX kod błędu

57h ustaw lub pobierz czas i datę powstania pliku

58h pobierz lub ustaw sposób przydzielanie pamięci

59h rozszerzony kod błędu DOS

5Ah utwórz plik chwilowy

5Bh utwórz nowy plik

we:

DS:DX plik

CX atrybut pliku

wy:

AX kod błędu

5Ch blokuj lub odblokuj dostęp do pliku lub jego fragmentu

5Dh pobierz adres flagi błędu krytycznego

5Eh funkcje dla pracy w sieci

5Fh funkcje dla pracy w sieci

60h rozłóż napis oznaczający ścieżkę na napis nadający się do poprawnego użycia

61h nieużywane

62h pobierz adres PSP

wy:

BX adres segmentu PSP aktualnie wykonywanego programu

63h nieużywane dla DOS 3.x

64h nieużywane

65h pobieranie rozszerzonej informacji o sposobie wyświetlania daty i czasu

66h pobierz lub ustaw stronę tablicy kodów znaków

67h ustaw licznik uchwytu pliku

68h zapisz wszystkie bufory danych na dysk

69h do D9h nieużywane

DAh

przewidziane dla systemów wielozadaniowych

EEh

EFh

nieużywane

FFh

INT 22h DOS- adres zakończenia programu

INT 23h Adres wyjścia z programu po Ctrl+C

INT 24h Dos-adres procedury błędów fatalnych

wy:

AL=0 zignoruj powstały błąd

AL=1 powtórz operację

AL=2 przerwij operację (np. po &23)

AL=3 powróć do wykonanej z niepowodzeniem aplikacji wskazanej przez DOS

INT 15h DOS bezwzględne czytanie zawartości dysku

INT 26h DOS bezwzględny zapis danych na dysku

INT 27h DOS zakończ program i pozostaw go w pamięci rezydentnym

INT 28h DOS pętla zajętości klawiatury

Przerwanie to jest wywoływane kiedy DOS czeka na naciśnięcie klawisza

(odpowiada to $21 dla funkcji 00-0Ch). W tym czasie nie należy wywoływać

w programie rezydentnym funkcji Dos-a.

INT 29h Szybkie wysyłanie znaku.

INT 2Ah Funkcje Microsoft Networks

INT 2Bh Wewnętrzna procedura powrotu (MS-DOS Iret)

INT 2Dh ???

INT 2Eh Wykonaj polecenie.

INT 2Fh Rozdzielacz i kontroler zadań. Przerwanie to jest organizowane przez

użytkownika procesu.

Funkcje w rejestrze AH

01h Dla rezydentnej części polecenia PRINT

we:

AL=00h pobierz stan instalacji

AL=01h przyporządkuj plik do kolejki

AL=02h kasuj plik z kolejki

AL=03h kasuj wszystkie pliki z kolejki

AL=04h status operacji

AL=05h koniec statusu

02h Dla rezydentnej części polecenia ASSIGN

03h-07h zarezerwowane

10h dla rezydentnej części polecenia SHARE

11h sygnały rozdzielenia zadań przez DOS'a

80h-FFh dla rezydentnych programów użytkownika

wy:

AX kod błędu w/g Dos-a

AL stan instalacji programu

00h niezainstalowany, instnieje możliwość instalacji

01h niezainstalowany, nie instnieje możliwość instalacji

FFh już zainstalowany

INT 31h Docelowe po długim skoku.

INT 33h Obsługa myszy

Funkcje w rejestrze AL (AH=0)

00h inicjalizuj program obsługi i czytaj status myszy

wy:

AX=0 brak programu obsługi

AX<>0 zainstalowano program

BX liczba przycisków myszy

01h Pokaż kursor myszy

02h Ukryj kursor myszy

03h Wskaż polożenie myszy i naciśnięty klawisz

wy:

CX położenie X myszy

DX położenie Y myszy

BX status przyciśniętego klawisza myszy

bit 0=1 lewy

bit 1=1 prawy

bit 3=1 środkowy

04h Ustaw pozycję kursora myszy

we:

CX położenie X myszy

DX położenie Y myszy

05h Flaga naciśniętego klawisza myszy

we:

BX=0 informacje o lewym naciśniętym klawiszu

BX=1 informacje o prawym naciśniętym klawiszu

wy:

BX liczba naciśnięć klawisza myszy

CX ostatnie położenie X myszy

DX ostatnie położenie Y myszy

06h Flaga puszczonego po naciśnięciu klawisza myszy

we:

BX=0 informacje o lewym naciśniętym klawiszu

BX=1 informacje o prawym naciśniętym klawiszu

wy:

BX liczba zwolnień klawisza myszy

CX ostatnie położenie X myszy

DX ostatnie położenie Y myszy

07h Ustaw poziomy zakres poruszania się myszy

we:

CX minimalne położenie myszy w X

DX max. jak wyżej

08h Ustaw pionowy zakres poruszania się myszy

we:

CX minimalne położenie myszy w Y

DX maksym. jak wyżej

09h Zdefiniuj kształt kursora graficznego myszy

we:

BX poł. X kursora po zdefiniowaniu

CX poł. Y kursora po zdefiniowaniu

DX:EX adres tablicy bitowej ze kształtem kursora graf.

0Ah Zadaj kształt tekstowego kursora myszy

we:

BX=0 ustaw sprzętowo kształt

BX=1 ustaw programowo kształt kursora myszy wtedy:

CX maska dla ekranu (znak i atrybut)

DX maska dla kursora j. w.

0Bh-24h poszerszenia funkcji dla myszy

INT 34h emulacja zmiennoprzecinkowa dla MS Turbo C

INT 3Eh

INT 3Fh przerwanie zarządzania nakładek(link.exe)

INT 40h relokacja przerwania 13h dla dysków miękkich

INT 41h wskaźnik bloku parametrów dysku

INT 42h relokacja przerwania 10h dla EGA

INT 43h parametry inicjalizacji kart EGA lub VGA

INT 44h zestaw zanków dla EGA lub VGA #0..#128

INT 46h drugi wskaźnik bloku parametrów dysku

INT 50h przerwanie zegara CMOS

INT 59h funkcje GSS CGI

INT 5Ah informacje o klastrach otrzymanych po 19h

INT 6Ch wektor charakterystyk systemu

INT 86h relokowane przez NETBIOS INT 18h

INT E4h funckje dla Modula 2.0



Wyszukiwarka

Podobne podstrony:
6 dsp bios
Jak wgrać BIOS bez stacji dyskietek
Bios Leksykocn Kieszonkowy (Helion)
BIOS bezboleśnie, różne, Bios
Komunikaty i kody błędów BIOS, różne, Bios
BIOS
Standardowe has a Bios
Aktualizacja BIOS u
BIOS porady
Bios
Składniki BIOS u
BIOS
bios w praktyce DKYY5BCGCQ5T7YPYVX6VSMK4T5DK6AQCQ4SRL4Y
syganły dzwiękowe Bios
BIOS od podszewki, różne, Bios
Konfiguracja Award Bios'u
Wszystko o BIOS-ie

więcej podobnych podstron