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