Переключающие клавиши
Помимо управления содержимым буфера клавиатуры, обработчик прерывания 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.