Welcome to my Website!
FAQ        Схемы        Ссылки        Моя работа

 

назад    оглавление    вперед

21. Где посмотреть протокол мыши и клавиатуры?

Обработчик аппаратного прерывания обязан, помимо обработки приходящих от мыши данных, также восстанавливать в порту биты питания. Эти биты устанавливаются в порту базовый_адрес+4, который называется Modem Control Register. Известны мыши, для питания которых нужно выдавать в этот порт число 8, число 0Bh, а также мышь, которая в зависимости от этого числа меняет свой режим работы (0B-MS, 08-PC). Драйвер TRUEDOX обеспечивает это переключение по функциям A0 (PC mouse) и A1 (MS mouse).

Есть три распространенных протокола обмена.

21.1. Microsoft Mouse.

Протокол обмена следующий: 1200,N71. Обеспечивает информацию о 2 клавишах. По каждому событию выдается пачка из 3 байт:

1 -- 1 LB RB Y7 Y6 X7 X6
2 -- 0 X5 X4 X3 X2 X1 X0
3 -- 0 Y5 Y4 Y3 Y2 Y1 Y0

LB, RB - состояние клавиш, нажатая клавиша = 1. Остальные значащие биты- относительное пеpемещение в дополнительном коде со времени последней посылки.

Определить наличие мыши можно следующим образом: в порт xFC записать число 8, подождать, а потом опять 0Bh. Hа запись числа 0Bh мышь реагирует посылкой одного или нескольких байтов, среди которых обязательно должен быть байт 4Dh (буква 'M' в таблице ASCII).

21. 2. PC Mouse System

Протокол обмена следующий: 1200,N81 Обеспечивает информацию о 3 клавишах. По каждому событию выдается пачка из 5 байт:

1 1 0 0 0 0 LB MB RB
2 X7 X6 X5 X4 X3 X2 X1 X0
3 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
4 X7 X6 X5 X4 X3 X2 X1 X0
5 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

LB, MB, RB - состояние клавиш, нажатая клавиша = 0. Остальные значащие биты- относительное пеpемещение со времени последней посылки в дополнительном коде в двух частях, которые надо суммировать. Видимо, это связано с тем, чтобы не использовать X7 и Y7, чтобы не пересекаться с первым ключевым байтом. Способ определения наличия мыши в этом режиме мне неизвестен.

21. 3 PS/2 Mouse

Подобен клавиатурному.

назад    оглавление    вперед

 

servi2000@narod.ru

Bienvenue au site de Yevgeny Kafelnikov!

Hosted by uCoz