http://npc-news.ru/

Функции BIOS и операционной системы при работе с клавиатурой. 

Процедуры обслуживания клавиатуры в системе BIOS вызываются с помощью прерывания номер 22, шестнадцатеричное значение 16. Таких процедур всего три.
Первая процедура, имеющая код 0, возвращает очередной принятый от блока клавиатуры символ. Эта процедура возвращает управление вызывающей программе только тогда, когда будет введен символ, так что программе не приходится проверять, был ли действительно введен символ. Код обычного символа возвращается в регистре AL, но если содержимое AL равно нулю, то в регистре АН находится код специального символа. Эти регистры соответствуют первому и второму байтам, упоминавшимся выше, при рассмотрении кодов специальных символов.

Если введен обычный код АSCII (то есть, AL не равняется нулю), то в регистре АН содержится код сканирования для нажатой клавиши. Но, если код ASCII был введен с помощью клавиши «Alt», то в регистре АН будет ноль. Эту информацию программа может использовать для определения способа вода символа.

Современные системы поддерживают следующие типы клавиатур:

84-кла-вишные, 102-клавишные и 122-клавишные. Каждая клавиша имеет свой скан-код, который обрабатывается BIOS при нажатии или отпускании.
Для поддержки 84-клавишных устройств используются только функции 00h, 01h и 02h.
Функции 10h, 11h и 12h поддерживают 83-клавишные и 102-клавишные устройства.
Функции 20h, 21h и 22h поддерживают все типы кла¬виатур.
Если введен обычныйкод АSCII (то есть, AL не равняется нулю), то в регистре АН содержится код сканирования для нажатой клавиши. Но, если код ASCII был введен с помощью клавиши «Alt», то в регистре АН будет ноль. Эту информацию программа может использовать для определения способа вода символа.

 


Добавить комментарий

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>