Графические устройства

         

Чувствительность курсора и мыши



Чувствительность курсора и мыши

При установке драйвера по умолчанию выбирается режим работы, при котором перемещение мыши на 1 дюйм по горизонтали или вертикали вызывает перемещение курсора на 640 столбцов. или на 320 строк. Рассмотрим, как драйвер увязывает перемещения мыши и курсора.

Во внутреннем буфере драйвера имеются четыре счетчика, содержащих количество перемещений по вертикали и горизонтали. Два из них связаны с курсором, а два с мышью. Условимся обозначать их как СПК (счетчик перемещений курсора) и СПМ (счетчик перемещений мыши). Прикладные задачи могут изменять значения СПК с помощью команды Mouse 4, но значения СПМ они могут только считывать.

Драйвер пересчитывает значения СПМ в значения СПК, используя для этого специальные коэффициенты. При установке драйвера по умолчанию выбираются такие значения коэффициентов, которые вызывают изменение содержимого СПМ и СПК на 1 при каждом перемещении мыши в горизонтальном направлении, и изменение значений СПМ на 1, а СПК — на 2 при каждом перемещении мыши в вертикальном направлении. Прикладная задача или операционная система могут изменить значения коэффициентов.

Функция Mouse 1A устанавливает, a Mouse IB считывает значение коэффициента, задающего чувствительность СПМ к перемещениям мыши.

Значения коэффициентов указываются или возвращаются драйвером в регистрах bх (горизонтальное направление) и сх (вертикальное направление). Содержимое bх и сх может изменяться от 0 до 100 и интерпретируется как проценты. При задании больших значений они принудительно уменьшаются до 100 (64П).

За единицу принято 50% (код 32h), при котором содержимое СПМ изменяется на 1 при каждом перемещении мыши. Значение 100% вызывает изменение содержимого СПМ на 2 при каждом перемещении мыши. А при коэффициенте 25% оно будет изменяться на 1 при двух перемещениях мыши.

Перемещение мыши принято измерять в mickey. Перевод этого термина автору не известен, но, по сути, это величина обратная количеству точек на дюйм (Dot Per inch или DPI). У современных манипуляторов DPI = 400, соответственно 1 mickey = 1/400 дюйма или примерно 0,06 миллиметра.

Функция Mouse OF устанавливает чувствительность СПК к изменениям СПМ. Перед обращением к драйверу в регистрах сх и dx указываются значения коэффициентов для горизонтального (сх) и вертикального (dx) направлений. Эти коэффициенты указывают, на сколько единиц должно измениться значение СПМ для того, чтобы значение СПК изменилось на 8 единиц. При установке драйвера (по умолчанию) коэффициенты равны 8 для горизонтального и 16 для вертикального направлений. В результате при движении по горизонтали СПМ и СПК изменяются синхронно, а при движении по вертикали СПК изменяется в два раза медленнее, чем СПМ.

 



Содержание раздела