Современная мышь PS / 2 обычно имеет режим по умолчанию («2 кнопки, без колеса прокрутки»), в котором используется более старый протокол (3 байта на пакет);затем один или несколько лучших режимов («кнопка 5, с колесом прокрутки»), в которых используется другой (4 байта на пакет) протокол.Для переключения режимов есть последовательность существующих команд (а не простая команда «изменить режимы»).
В частности, чтобы перейти из режима по умолчанию в режим «Intellimouse Extensions» (3 кнопки с колесиком прокрутки, 4-байтовый пакет)):
- Установить частоту дискретизации 200
- Установить частоту дискретизации 100
- Установить частоту дискретизации 80
И изменить на "5режим кнопки "(до 5 кнопок с колесиком прокрутки, пакет из 4 байтов):
- установка частоты дискретизации 200
- установка частоты дискретизации 200
- установка частоты дискретизации 80
Для получения дополнительной (лучшей) информации см .: http://www.isdaman.com/alsos/hardware/mouse/ps2interface.htm
Обратите внимание, что вы никогда не должны опрашивать.В частности, если вы не используете IRQ (например, ISA IRQ1 для первого порта PS / 2, ISA IRQ 12 для второго порта PS / 2), невозможно надежно (без условий гонки) определить, с какого порта PS / 2 поступил байт.
В частности, драйвер контроллера PS / 2 должен использовать IRQ и отправлять байты, полученные по «1-му порту PS / 2», тому драйверу, который используется для подключения любого устройства к 1-му порту PS / 2.(клавиатура, мышь, сканер штрих-кода, сенсорная панель, ...);и отправлять байты, полученные по «2-му порту PS / 2», в зависимости от того, какой драйвер используется для любого устройства, подключенного к 2-му порту PS / 2.Драйвер мыши сам получит данные (например, из канала, сообщения или обратного вызова или кто-что знает) и добавит байт в (3 или 4-байтовый) буфер пакетов (при проверке бита «всегда 0», чтобы убедиться, чтоон остается синхронизированным с устройством и обрабатывает специальные коды, такие как «ACK» и «RESEND»).