Схема цоколевки
| 
 Вилка (устанавливается на кабеле)  |  
 Розетка (устанавливается на корпусе компьютера)  | 
|---|---|
| 
 
 
 
  | 
 
 
 
  | 
Названия и функциональные назначения выводов
| 
 № вывода  |  
 Обозначение  |  
 Описание  | 
|---|---|---|
| 
 1  | 
 Data  | 
 Data (передача данных)  | 
| 
 2  | 
 n/c  | 
 Not Connected (не используется)  | 
| 
 3  | 
 GND  | 
 Ground (корпус)  | 
| 
 4  | 
 +5VDC  | 
 Питание, +5 В  | 
| 
 5  | 
 Clock  | 
 Тактовая частота передачи данных  | 
| 
 6  | 
 n/c  | 
 Not Connected (не используется)  | 
Обработчик аппаратного прерывания обязан, помимо обработки приходящих от мыши данных, также восстанавливать в порту биты питания. Эти биты устанавливаются в порту базовый_адрес+4, который называется Modem Control Register. Известны мыши, для питания которых нужно выдавать в этот порт число 8, число 0Bh, а также мышь, которая в зависимости от этого числа меняет свой режим работы (0B-MS, 08-PC). Драйвер TRUEDOX обеспечивает это переключение по функциям A0 (PC mouse) и A1 (MS 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)
Протокол обмена следующий: 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, чтобы не пересекаться с первым ключевым байтом. Способ определения наличия мыши в этом режиме мне неизвестен.
Подобен клавиатурному.
***