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

Переключающие клавиши

Помимо управления содержимым буфера клавиатуры, обработчик прерывания INT 09h отслеживает так называемые переключающие клавиши - <NumLock>,<ScrollLock>,<CapsLock>,<Insert>. Состояние этих клавиш записывается в область данных BIOS в два байта с адресами 0000h:0417h и 0000h:0418h.

Формат байта 0000h:0417h:

Биты

Описание

0

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

1

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

2

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

3

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

4

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

5

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

6

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

7

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

Формат байта 0000h:0418h:

Биты

Описание

0

Нажата левая клавиша <Shift>вместе с клавишей<Control>

1

Нажата левая клавиша <Shift>вместе с клавишей<Alt>

2

Нажата клавиша <SysReq>

3

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

4

Нажата клавиша <ScrollLock>

5

Нажата клавиша <NumLock>

6

Нажата клавиша <CapsLock>

7

Нажата клавиша <Insert>

Если вы изменяете состояние светодиодов на панели клавиатуры, не забывайте устанавливать соответствующие биты в байтах состояния клавиатуры.

Программой обработки прерывания INT 09h отслеживаются некоторые комбинации клавиш. Ниже приведены эти комбинации и действия, выполняемые обработчиком прерывания при их обнаружении:

Комбинация клавиш

Выполняемые действия

<Control+Alt+Delete>

Сброс и перезагрузка системы

<Control+NumLock>,

<Pause>

Перевод компьютера в состояние ожидания до тех пор, пока пользователь не нажмет любую клавишу

<Shift+PrintScreen>

Распечатка на принтере содержимого видеопамяти

<Control+Break>

Выполнение прерывания INT 1Bh, завершающего работу программы

Многие типы клавиатур имеют отдельную альтернативную цифровую панель, напоминающую клавиатуру калькулятора. Если одновременно с нажатием на клавишу <Alt>набрать на этой панели число, не большее, чем 255 и не равное 0, то это число будет помещено в буфер клавиатуры, как будто бы оно было введено при помощи одной клавиши. Это число будет также записано в слово, расположенное в области данных BIOS по адресу 0000h:0419h.

Заметим, что упомянутый способ работает и в приложениях Microsoft Windows.