Добавил в контроллер USB-мыши регистры, предоставляющие информацию о смещении мыши, а не её координаты.
Сделал универсальный тест контроллера мыши.
Исходники во вложении к первому сообщению темы.
На фотках: контроллер отключен, подключен к порту "ПУ", и "ВУ".
Тесты наводят на мысли, что математику в контроллере нужно переводить на работу с положительными числами, как это сделано в PS/2-мышах. Там смещения всегда положительные числа, а направление указано специальными флагами.
Работать с переменными типа int удобнее (всегда используется сложение, не нужно заранее контролировать направление), и сама USB-мышь выдаёт значения именно типа int. Но при замедлении мыши делением скорости на 8, возникают трудности с отрицательными значениями, так как простое смещение значения на 3 бита вправо (деление на 8), "округляет" полученное значение до "-1" (FFh) даже если смещение изначально было например только "-3", хотя желательно при этом получить "0".
А при округлении положительных смещений, все значения смещения от 1 до 7, в результате округляются до "0" ( как и ожидается ).
Вот и размышляю, как поступить, дрейф значений не значительный, и особо для пользователя не заметен.
На универсальном тесте этот дрейф значений заметен по выводимым на экран значениям координат курсора мыши.
В верхней строке, 2е и 3е значение - это содержимое регистров контроллера, в них проблем от округлений значений нет из-за особенностей вычислений координат (вычисления ведутся постоянно, без корректировки значений).
В нижней строке, 2е и 3е значение - это координаты курсора, вычисляемые на основе значений регистров смещения.
В любом случае, корректировка работы с отрицательными числами в контроллере, ни как не влияет на работу с самим контроллером со стороны пользователя. Просто в результате, пользователь сможет получать более корректные значения.
Кстати, мысля сейчас посетила, вариант стандарта значений смещения как в PS/2-мышах, можно так-же в контроллер засунуть, на отдельные регистры.


Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

