КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Архитектурные компоненты IBM PC-совместимого компьютера

— чтение расширенного состояния флагов (в АХ — слово KbdShif tFlagslOlRec), в котором младший байт совпадает с тем, что дает
i функция 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 нажата.
Функции чтения буфера (00 и 10h) в регистре AL возвращают ASCII-код символа, в АН — скан-код. Символы, полученные нестандартным способом (в русском реги¬стре или Alt-набором), сопровождаются нулевым скан-кодом. Alt-набор позволяет ввести в буфер любой символ — для этого его код в десятичной системе набирает¬ся на цифровой клавиатуре при нажатой клавише Alt, результат заносится в буфер при отпускании клавиши Alt.
При AL=0 регистр АН содержит расширенный ASCII-код (Extended ASCII Keystroke). Дополнительные клавиши 101/102 клавиатур при использовании функций 10h-12h генерируют код EOh в младшем байте и скан-код, соответствующий аналогич¬ным управляющим клавишам 83/84-клавишных клавиатур.
Функция записи (05h), несколько неожиданная для клавиатуры, позволяет легко имитировать работу оператора для различных демонстрационных программ. Если прикладная программа не перехватывает обслуживание клавиатуры на уровне аппаратного прерывания (In t 9h), то резидентная программа может ей «подбра¬сывать» слова в буфер, которые будут восприниматься как нажатие клавиш.
ASCII-коды буфера, соответствующие нажатию клавиш, приведены в [1, 7].

Hosted by uCoz