Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

Чтение символа с ожиданием для 101-клавишной клавиатуры

Функция 10h, предназначенная для чтения символа с ожиданием, полностью аналогична функции 00h, но она может работать только с клавиатурой, имеющей 101 клавишу.

Приведем формат вызова функции:

Регистры на входе:

AH = 10h;

Регистры на выходе:

AL = код ASCII символа или 0, если AH содержит расширенный код ASCII символа;

AH = скан-код или расширенный код ASCII символа, если AL=0

Функция определена для BIOS, изготовленной после 15 декабря 1985 года.

Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры

Функция 11h полностью аналогична функции 01h, но она предназначена для работы с клавиатурой, имеющей 101 клавишу:

Регистры на входе:

AH = 11h

Регистры на выходе:

ZF = 0, если в буфере имеется код нажатой клавиши;

ZF = 1, если буфер клавиатуры пуст;

AL = код ASCII символа или 0, если AH содержит расширенный код ASCII символа;

AH = скан-код или расширенный код ASCII символа, если AL=0

Эта функция определена для BIOS, изготовленной после 15 декабря 1985 года.

Получение состояния переключающих клавиш для 101-клавишной клавиатуры

Функция 12h возвращает в регистре AL состояние переключающих клавиш, таких как<Shift>,<Control>,<Alt>,<ScrollLock>,<NumLock>,<CapsLock>,<Insert> и используется только для 101-клавишных клавиатур:

Регистры на входе:

AH = 12h

Регистры на выходе:

AL = Байт состояния переключающих клавиш

Эта функция определена для BIOS, изготовленной после 15 декабря 1985 года.

Режимы работы клавиатуры

Клавиатура современного компьютера, имеющая 101-клавишу, может работать в одном из трех режимов. Эти режимы различаются тем, как клавиатура посылает скан-коды в компьютер, когда пользователь нажимает и отпускает клавиши.

Сравнение режимов

Первый режим – это режим совместимости с IBM PC/XT. В этом режиме скан-коды, посылаемые клавиатурой при нажатии клавиш, соответствуют приведенным нами в разделе «Средства BIOS для работы с клавиатурой». Когда пользователь нажимает клавишу, в компьютер посылается однобайтовый скан-код этой клавиши. Когда же пользователь отжимает клавишу, в компьютер посылается скан-код этой клавиши с установленным в единицу старшим битом.

Второй режим устанавливается по умолчанию после включения питания. От первого режима он отличается тем, что когда пользователь отжимает клавишу, в компьютер посылается вначале код 0F0h, а затем скан-код отжатой клавиши.

В третьем режиме каждой клавише присваивается собственный 8-разрядный код нажатия. Код, который передается при отжатии клавиши, состоит из двух байтов – байта 0Fh и байта кода нажатия. Другая особенность этого режима заключается в том, что коды, посылаемые любыми клавишами, не зависят от состояния других клавиш.

Изменение режима

Едва ли вам потребуется изменять режим работы клавиатуры. Тем не менее, мы покажем, как это можно сделать, программируя контроллер клавиатуры.

Ниже мы приведем команды и параметры, которые нужно посылать контроллеру клавиатуры для установки описанных выше режимов работы:

Режим

Команда

Параметр

1

0F0h

01h

2

0F0h

02h

3

0F0h

03h

Соседние файлы в папке несколько программ