Аппаратное обеспечение персонального компьютера

       

Получение состояния переключающих клавиш


Функция 02h возвращает в регистре AL состояние переключающих клавиш, таких как <Shift>, <Control>, <Alt>, <ScrollLock>, <NumLock>, <CapsLock>, <Insert>:



Регистры на входе:

AH = 02h

Регистры на выходе:

AL = Байт состояния переключающих клавиш

Формат байта состояния соответствует формату байта, находящегося в области данных BIOS по адресу 0000h:0417h:

Биты

Описание

0

Нажата правая клавиша <Shift>

1

Нажата левая клавиша <Shift>

2

Нажата комбинация клавиш <Control+Shift> с левой или правой стороны

3

Нажата комбинация клавиш <Alt+Shift> с левой или правой стороны

4

Состояние клавиши <ScrollLock>

5

Состояние клавиши <NumLock>

6

Состояние клавиши <CapsLock>

7

Состояние клавиши <Insert>

Функция 02h может быть использована для анализа текущего состояния переключающих клавиш.

Ниже показан фрагмент кода, в котором проверяется состояние клавиши <CapsLock>:

rg.h.ah = 2;

int86(0x16, &rg, &rg);

if((rg.h.al & 0x40) == 0)

{

  // Клавиша <CapsLock> не нажата,

  // соответствующий светодиод не горит

  . . .

}

else

{

  // Клавиша <CapsLock> нажата

  . . .

}


Функция 12h возвращает в регистре AL состояние переключающих клавиш, таких как <Shift>, <Control>, <Alt>, <ScrollLock>, <NumLock>, <CapsLock>, <Insert> и используется только для 101-клавишных клавиатур:

Регистры на входе:

AH = 12h

Регистры на выходе:

AL = Байт состояния переключающих клавиш

Эта функция определена для BIOS, изготовленной после 15 декабря 1985 года.



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