
- •Методические указания к лабораторной работе №2 Контроллер клавиатуры
- •Цель лабораторной работы
- •Основные сведения
- •Кодирование символов в пэвм
- •Клавиатура ibm pc
- •Функции rom bios для клавиатуры
- •Буфер клавиатуры
- •Программирование клавиатуры на физическом уровне
- •Контрольные вопросы
- •Порядок проведения лабораторной работы
- •Содержание отчета
- •2) Цель лабораторной работы;
Функции rom bios для клавиатуры
Все функции клавиатуры активизируются прерыванием INT 16Hс записью номера функции в AH.В таблице 5 приведены номера и описание функций.
Таблица 5
№ функции |
Описание |
00Н |
Прочитать следующий знак клавиатуры |
01Н |
Сообщить, введен ли знак с клавиатуры |
02Н |
Пропитать статус смены регистра |
03Н |
Установить частоту автоматической печати и время задержки |
04Н |
Установить звуковой сигнал клавиш |
05Н |
Протолкнуть символ и скан-код |
10Н |
Прочитать символ с расширенной клавиатуры |
11Н |
Получить информацию о статусе клавиши |
12Н |
Получить подробную информацию о статусе смены регистра |
Дадим пояснения к описанию функции прерывания ROM BIOS.
Функция ООН- прочитать следующий знак (символ). Если символ уже присутствовал в буфере, то он также читается. Если буфер пуст, то функция ожидает его появление. Как уже указывалось, каждый символ клавиатуры представлен в буфере двумя байтами (основной и вспомогательный). Основной байт, возвращаемый в AL, либо равен 0 для специальных символов (функциональные клавиши), либо коду ASCII для обычных символов пишущей машинки. Вспомогательный байт, возвращаемый в АН, является либо идентификатором специального знака, либо стандартным скан-кодом. После чтения символа из буфера удаляется. При вызове АН-ООН. Ври возврате АН- скан-код клавиш, AL - символ ASCII.
Функция 01Н - сообщить, введен ли знак с клавиатуры.
Функция представляет собой операцию предварительного или опережающего просмотра - буфера без удаления символов при их нажатии. Флаг ZF используется в качестве индикатора; выставленный флаг указывает,что ввод не был выполнен; сброшенный флаг указывает, что символ имеется в буфере.
Данная функция часто используется в программах для прерывания текущего процесса.
При вызове АН-01Н.
При возврате. Если код клавиши введен, то флаг нуля сброшен.
АН- скан-код клавиш
AL- символ
Если код клавиши не введен, флаг нуля установлен.
Символ, возвращаемый этой функцией при сброшенном флаге нуля, не извлекается из буфера клавиатуры.
Функция OZH- получить статус смены регистра. Функция переписывает в AL статус смены регистра, который берется из битов, образующих первый статусный байт клавиатуры, который хранится в ячейке памяти с адресом ОО4О:0017Н. Байт статуса еще имеет название байт флага.
При вызове АН- 02Н.
При возврате AL- статус.
Значение битов
0-1- нажата правая клавиша SHIFT
1-1- нажата левая клавиша SHIFT
2-1- нажата клавиша CTRL
3-1- нажата клавиша ALT
4-1- переключатель SCROLL LOCK включен
5-1- переключатель NUM LOCK включен
6-1- переключатель CAPS LOCK включен
7-1- переключатель INSERT включен
Функция полезна при дифференцировании функций клавиш, например, между левой и правой SHIFT.
Функция О3Н- установить скорость повторения.
Функция устанавливает скорость повторения символа нажатой клавише и задержку повторения.
При вызове
АН - О3Н
AL- 06H
ВH- задержка повторения
BL- скорость повторения
Значения задержки повторения
ООН-250 ms; O1H-500 ms; 02Н-750 ms; О3Н-1000 ms.
Значения скорости повторения (записи в секунду)
00Н- 30,0 |
05Н- 18,5 |
0АН-12,0 |
OFH - 8.0 |
01H - 26,7 |
06Н - 17,1 |
0ВН - 10,9 |
10Н -7.8 |
02Н- 24,0 |
07Н - 16,0 |
0СН - 10,0 |
11Н -6.7 |
03Н- 21,8 |
08Н- 15,0 |
0DH- 9,2 |
12Н -6.0 |
04Н- 20,0 |
09Н- 13,3 |
0EH-8,В |
13Н - 5.5 |
|
|||
14Н- 5,0 |
19Н-3,3 |
1ЕН - 2,1 |
|
1БН- 4,5 |
1АН- 3,0 |
1FH - 2,0 |
|
16Н- 4,3 |
1ВН- 2,7 |
С 20Н по FFH-зарезервирована |
|
17Н-4,0 |
1СН- 2,5 |
|
|
18Н-3,7 |
1DH - 2,3 |
Функция 04Н - установить звуковой сигнал.
Включает и выключает звуковой сигнал клавиш.
При вызове АН-04Н
AL-код функция (ООН- включать, 01Н- выключить).
Функция поддерживается только BIOS модели PCjr.
Функция 05Н - протолкнуть символ и скан-код.
Помешает символ и скан- код клавиши в буфер клавиатуры.
При вызове
AH-05
СH - скан- код клавиш
CL- символ ASCII
При возврате. Если функция выполнена успешно флаг переноса сброшен. АН-00Н. Если функция не выполнена (буфер заполнен). Флаг переноса установлен AL-01H.
Функция используется утилитами для включения кодов клавиш в поток данных, воспринимаемого прикладной программой и позволяет хранить кодовое представление клавиши в буфере, как если бы данная клавиша была нажата.
Функция 10Н - читать символ с расширенной клавиатуры. Выполняет ту же функцию, что и ООН для клавиатуры с 101/102 клавишами.
Функция 11Н - получить информацию о статусеклавиши. Аналогична функции 01Н, но для клавиатуры с 101/102 клавишами.
функция 12Н - получить информацию о статусе смены регистра.
Расширяет возможности функции 02Н для клавиатуры 101/102.
При вызове АН-12Н
При возврате АХ- флаги
Бит Значение
0 правая клавиша SHIFT нажата
1 левая клавиша SHIFT нажата
2 любая CTRL нажата
3 любая ALT нажата
4 переключатель SCROLL LOCKвключен
5 переключатель NUM LOCKвключен
6 переключательCAPS LOCKвключен
7 переключатель INSERT включен
8 левая CTRL нажата
9 левая ALT нажата
10 правая CTRL нажата
11 правая ALT нажата
12 клавиша SCROLLнажата
13 клавиша NUM LOCKнажата
14 клавишаCAPS LOCKнажата
15 клавиша SYSREG нажата