logo search
несколько программ / bsp33

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

Функция 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> нажата

. . .

}