Управление клавиатурой АТ

Младший байт считанного слова содержит ASCII-символ, старший — скан-код. Символы, полученные не­стандартным способом (в русском регистре или Alt-на­бором), сопровождаются нулевым скан-кодом.

H, 11h, 12h аналогичны 00h, 01h, 02h, но специально для 101/102 клавишных клавиатур.

Перехват обработчика INT 9h обычно используется для русификации клавиатуры.

Любой символ можно ввести с помощью Alt-набора, вводя его код в десятичной системе на цифровой клави­атуре при нажатой клавише Alt, результат заносится в буфер по отпускании Alt.

МАНИПУЛЯТОРЫ

Постоянная память

ROM (Read Only Memory – память только для чтения) - энергонезависимая память, используется для BIOS

Устройство ввода Mouse («мышь») передает в систему информацию о своем перемещении и нажатии кнопок (двух или трех). Обычная конструкция — массивный шар в днище корпуса, передающий вращение на 2 координатных диска с фотоэлектрическими датчиками. Сигналы от датчиков обрабатываются специализиро­ванным микроконтроллером и передаются системе по последовательному интерфейсу.

Serial Mouse — мышь, подключаемая через 25- или 9-рш разъем RS-232С, занимает СОМ-порт и требует моно­польного использования его штатной линии прерыва­ния (IRQ 4 для СОМ1 и IRQ 3 для СОМ2). Двуполярное питание осуществляется от управляющих линий интер­фейса, передача данных — асинхронная. PS/2 Mouse — мышь со специальным интерфейсом, аналогичным клавиатурному с разъемом 6-выводов. В настоящее время мышь часто подключается через USB-порт. Оптическая мышь не имеет механических частей, работает от светодиодных датчиков. Track-Ball (шар) – «перевернутая мышь», иногда встраивается в клавиатуру.

Программная поддержка клавиатуры

BIOS INT 9h обрабатывает прерывания по нажатию и отпусканию клавиш, анализируя принятый скан-код с учетом состояния флагов и комбинации клавиш Shift, Ctrl, Alt, Caps Lock, Num Lock. Результат обработки (ASCII-символ и скан-код) помещается в клавиатурный буфер ОЗУ. В случае переполнения буфе­ра очередное слово не записывается, подается звуковой сигнал.

Используемые ячейки BIOS DATA AREA: 0:0417, 0:418 — флаги клавиатуры; 0:0419 — аккумулятор кода ALT-набора; 0:041 А — указатель головы буфера (2 байта); 0:041С — указатель хвоста буфера (2 байта); 0:041Е — область кольцевого буфера (16 слов).

BIOS INT 16h — интерфейс прикладного уровня для клавиатуры. Основное назначение — извлечение слов из клавиатурного буфера. Функция задается в регистре АН при вызове:

00h - чтение (с ожиданием готовности) и выборка слова из буфера;

01h — проверка готовности, чтение без выборки;

02h чтение состояния флагов;

03h — установка задержки и скорости автоповтора;

05h — запись слова в буфер;

Команды управления посылаются в регистр команд 8042 (порт 064h) при установленном бите готовности контрол­лера (в регистре состояния 064h бит 1=0). Из регистра данных 8042 (порта 060h) кроме скан-кодов возможно получение ответов на команды, префикса кода отпускания клавиши или кодов особых случаев.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: