Системное программное обеспечение персональных ЭВМ


7.1. Прерывание от клавиатуры и скан-коды - часть 2


В источниках можно встретить информацию о том, что клавиатура AT генерирует двухбайтный скан-код при отпускании клавиши, в котором первый байт - 0xF0, а второй совпадает со скан-кодом нажатия. Это справедливо для 84-клавишной клавиатуры AT, но в настоящее время все AT комплектуется 101-клавишной клавиатурой, в которой код отпускания формируется по тем же прави- лам, что и в XT. Правда, в 101-клавишной клавиатуре некоторые дополнительные клавиши имеют скан-коды из 2 и более байт (и каждый байт сопровождается прерыванием 9).

Программный пример 7.1 позволяет определить скан-коды клавиш. Эта программа перехватывает прерывание 9. Обратите внимание на то, что обработчик прерывания представляет собой не дополнение к системному обработчику, а полностью его подменяет. При поступлении прерывания 9 обработчик читает скан-код из порта 0x60 и запоминает его в массиве SC, а затем посылает в клавиатуру сигнал подтверждения и сбрасывает контроллер прерываний. При поступлении скан-кода 1 (это клавиша Esc) обработчик взводит флаг окончания, по которому главная программа восстанавливает вектор и выводит на экран накопленные скан-коды.




- Начало -  - Назад -  - Вперед -