Int 9h
должно вызываться программно при обработке каждого клавиатурного события. Обработчик этого прерывания должен выполнять те же действия: скан-код пропускать через Int 15h
(4Fh) и помещать в клавиатурный буфер, а также модифицировать флаги клавиатуры.Int 16h
. Его основное назначение — извлечение слов из клавиатурного буфера. Функция задается в регистре АН
при вызове, результат помещается в регистр АХ
.♦ АН
Int 15h
(подфункция 90), что может использоваться ОС, например, для переключения задач. Чтобы программа не «зависала» на ожидании символа, предварительно стоит проверить готовность функцией 01h. Символы расширенной клавиатуры фильтруются — преобразуются в их аналоги 83-клавишной клавиатуры.♦ АН
ZF
.♦ АН
AL
— байт 0:417h, см. выше).♦ АН
BL
— код задержки (00=250, 01=500, 02=750, 03=1000 мс), ВН
— код частоты (см. п. 9.2.1).♦ АН
СХ
в буфер (меняется указатель головы). Признак успешной записи — AL
=0, если в буфере нет места, то AL
=1.♦ АН
AH
= 11h — функции, аналогичные 00h и 01h, но предназначены специально для 101/102-клавишных клавиатур — в них не выполняется фильтрация символов расширенной клавиатуры. Для ряда клавиш, отсутствующих в клавиатуре АТ-84, эти функции дадут результаты, отличающиеся от вызовов 00h и 01h.♦ AH
АХ
— слово KbdShiftFlags101Rec
), в котором младший байт совпадает с тем, что дает функция 02h (слово из 0:417h), а старший байт похож на слово из 0:418h. Назначение бит АХ
: • бит 0 — клавиша Shift
• бит 1 — клавиша Shift
• бит 2 — клавиша Ctrl
• бит 3 — клавиша Alt
• бит 4 — включен индикатор Scroll Lock
• бит 5 — включен индикатор Num Lock
• бит 6 — включен индикатор Caps Lock
• бит 7 — включен режим Insert
• бит 8 — клавиша Ctrl
• бит 9 — клавиша Alt
• бит 10 — клавиша Ctrl
• бит 11 — клавиша Alt
• бит 12 — клавиша Scroll Lock
• бит 13 — клавиша Num Lock
• бит 14 — клавиша Caps Lock
• бит 15 — клавиша SysReq
AL
возвращают АН
— Alt
-набором), сопровождаются нулевым скан-кодом. Alt
-набор позволяет ввести в буфер любой символ — для этого его код в десятичной системе набирается на цифровой клавиатуре при нажатой клавише Alt
, результат заносится в буфер при отпускании клавиши Alt
.При AL
АН
содержит Int 9h
), то резидентная программа может ей «подбрасывать» слова в буфер, которые будут восприниматься как нажатие клавиш.ASCII-коды буфера, соответствующие нажатию клавиш, приведены в [1, 7]. При русификации (или другой локализации) клавиатуры отслеживание переключения регистров (языков) ложится на обработчик аппаратного прерывания клавиатуры.
12.8.2. Int 10h — видеосервис
Int 10h — видеосервис — предназначен для работы с графическим адаптером. Его первичной задачей является управление видеорежимом (BIOS Video Mode), определяющим формат экрана. BIOS адаптера должна выполнять программирование всех стандартных и специфических управляющих регистров для установки (смены) требуемого видеорежима и выбранных параметров развертки — кроме нее о способах этих переключений остальное ПО может и не знать.