Младший байт считанного слова содержит 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) кроме скан-кодов возможно получение ответов на команды, префикса кода отпускания клавиши или кодов особых случаев.