Сборник по задачам и примерам Assembler

Используем ProxMox               

Получение состояния флагов клавиатуры (02h, 12h, 22h int 16h)



Получение состояния флагов клавиатуры (02h, 12h, 22h int 16h)

BIOS предоставляет функцию 02h для получения состояния световых индикаторов клавиатуры и некоторых управляющих клавиш.

Вход: АН = 02h получить состояние флагов клавиатуры (для 84-клавишной клавиатуры).

Выход: AL = битовое поле, установленные биты которого соответствуют состоянию следующих флагов: 7 — режим вставки активен; 6 — индикатор CapsLock включен; 5 — индикатор NumLock включен; 4 — индикатор ScrollLock включен; 3 — нажата клавиша Alt (любая клавиша Alt на 101-102-клавишной клавиатуре); 2 — нажата клавиша Ctrl (любая клавиша Ctrl на 101-102-клавишной клавиатуре); 1 — нажата левая клавиша Shift; 0 — нажата правая клавиша Shift.

Поддержка расширенных клавиатур осуществляется функциями 12h и 22h BIOS.

Вход: АН = 12h, 22h получить состояние флагов клавиатуры (для 101-102- и 122-клавишных клавиатур).

Выход: AL = первое битовое поле, установленные биты которого соответствуют состоянию флагов, возвращаемых в регистре AL функцией 02п; АН = второе битовое поле, установленные биты которого соответствуют следующему состоянию флагов: 7 — нажата клавиша SysReq (SysRq); 6 - нажата клавиша CapsLock; 5 — нажата клавиша NumLock; 4 — нажата клавиша Scrolllock; 3 — нажата правая клавиша Alt; 2 — нажата правая клавиша Ctrl; 1 — нажата левая клавиша Alt; 0 — нажата левая клавиша Ctrl.

Кроме этого, состояние данных флагов можно прочитать из оперативной памяти по адресам: 0040h:0017h (AL) и O040h:0010h (АН).



Содержание раздела