Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 2 Контроллер клавиатур...doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
201.73 Кб
Скачать
    1. Функции 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 нажата