240 9. Wykorzystanie procedur systemowych w programach użytkowych
A < 2 > - błąd parzystości,
A < 3 > - błąd ramki,
A < 4 > - stwierdzono przerwÄ™ w transmisji,
A < 5 > - pusty rejestr buforowy nadawczy (TX),
A < 6 > - pusty rejestr przesuwny nadawczy (TX),
A < 7 > - błąd przekroczenia czasu,
AH = 2 - odbiór jednego znaku z układu wejściowego V.24 wy: AL - kod odebranego znaku,
DX - numer układu V.24,
AH - status układu zdefiniowany jak dla AH = 1,
AH = 3 - odczyt statusu układu wejścia-wyjścia
wy: AH - status układu zdefiniowany jak dla AH = 1,
AL - status linii (UART-modem)
AL<4> - CTS,
AL<5> -DSR, IA
AL<6>-RI, 01
AL<7> - CD.
Dodatkowe funkcje specjalne (INT15H)
• Sterowanie magnetofonem kasetowym - funkcje występujące tylko w pierwszych modelach IBM PC
AH = 0 - załączenie silnika magnetofonu,
AH = 1 - wyłączenie silnika magnetofonu,
AH = 2 - czytanie bloku danych,
AH = 3 - zapis bloku danych.
• Funkcje w komputerze Schneider-Amstrad PC 1512
AH=3 - zapis koloru punktów (przez rejestr AL) do rejestru o adresie ODDH dla funkcji 1NT 10H/AH = 12,
AH =4 - zapis maski (przez rejestr AL) do rejestru o adresie 3DEH dla funkcji INT 10H/AH = 13, J
AH =5 - zapis koloru ramki (przez rejestr AL) do rejestru o adresie 3DFH.
• Funkcje w komputerach zgodnych z IBM AT
AH =80H - otwarcie kanału do urządzenia,
AH = 81H - zamknięcie kanału do urządzenia,
AH = 82H - zakończenie obsługi urządzenia,
AH = 83H - obsługa wolantu (ang .joystick),
AH = 85H - test, czy został naciśnięty klawisz System-Request,
AH =86H - opóźnienie (CX, DX - czas opóźnienia),
AH =87H - transmisja bloku danych do (z) rozszerzonej pamięci we: CX - liczba słów do przesłania,
ES:SI - adres tablicy GDT (ang. global descriptor labie),
AH =88H - odczytanie wielkości rozszerzonej pamięci,
AH =89H - przełączenie procesorów 80286/80386 w tryb adrcsacji wirtua.
Obsługa klawiatury (INT 16H)
AH = 0 - oczekiwanie na naciśnięcie klawisza i odczyt znaku
wy: AL - kod ASCII znaku,
AH - numer klawisza (scan-code),
AH = 1 - test, czy został naciśnięty klawisz (czy bufor klawiatury jest pusty)
wy: ZF = 1 - nie został naciśnięty, bufor pusty,
ZF = 0 - został naciśnięty;
AL AH-jak dlaAH=0,
AH = 2 - odczyt stanu klawiszy sterujÄ…cych (Shift, Ctrl,...)
wy: AL - poszczególne bity równe 1 oznaczają
A < 0 > - naciśnięty klawisz kursora w prawo, A < 1 > - naciśnięty klawisz kursora w lewo, A < 2 > - naciśnięty klawisz Ctrl,
A < 3 > - naciśnięty klawisz Alt,
A < 4 > - aktywny stan Scroll-Lock,
A<5> - aktywny stan Num-Lock,
A < 6 > - aktywny stan Caps-Lock,
A < 7 > - aktywny stan Insert.
Obsługa wyjścia do drukarki (INT 17H)
AH = 0 - wysłanie jednego bajtu (kodu znaku) do drukarki we: AL - kod znaku,
DX - numer układu wyjściowego (DX = 0 - dla LPT1), wy: AH - status układu wyjściowego, poszczególne bity równe 1 oznaczają A < 0 > - przekroczenie czasu obsługi (ang. timeout),
A<1>,A<2> - nie używane,
A < 3 > - błąd wejścia-wyjścia,
A<4> - wybranie drukarki,
A < 5 > - brak papieru,
A < 6 > - potwierdzenie przyjęcia znaku przez drukarkę,
A < 7 > - drukarka nie jest zajęta (ang. no busy),
AH = 1 - inicjacja drukarki
wy: AH - status układu jak dla AH = 0,
AH = 2 - odczyt statusu drukarki
wy: AH - status układu wyjściowego jak dla AH = 0
Uwaga: sekwencja rozkazów przekazująca sterowanie pod etykietę ERROR w przypadku, gdy drukarka nic jest gotowa, może być następująca
AND AH, 39H CMP AH, 10H JNZ ERROR