- •3.1. Как устроена мышь? Оптико-механические мыши
- •Оптические мыши
- •3.2. Драйверы мыши в ms-dos
- •3.3. Прерывание для обслуживания мыши
- •3.3.1. Инициализация мыши
- •3.3.2. Включить курсор мыши
- •3.3.3. Выключить курсор мыши
- •3.3.4. Определить положение курсора
- •3.3.5. Установить курсор
- •3.3.6. Определить положение курсора при нажатии клавиши
- •3.3.7. Определить положение курсора при отпускании клавиши
- •3.3.8. Задать диапазон движения курсора по горизонтали
- •3.3.9. Задать диапазон движения курсора по вертикали
- •3.3.10. Задать форму курсора в графическом режиме
- •3.3.11. Задать форму курсора в текстовом режиме
- •3.3.12. Определить содержимое счетчиков перемещения
- •3.3.13. Установить драйвер событий
- •3.3.14. Включить эмуляцию светового пера
- •3.3.15. Выключить эмуляцию светового пера
- •3.3.16. Задать скорость перемещения курсора мыши
- •3.3.17. Установить область исключения для курсора
- •3.3.18. Задать увеличенный графический курсор (pc mouse)
- •3.3.19. Определить порог удвоения скорости
- •3.3.20. Заменить драйвер событий
- •3.3.21. Определить размер буфера состояния драйвера
- •3.3.22. Сохранить состояние драйвера
- •3.3.23. Восстановить состояние драйвера
- •3.3.24. Установить альтернативный драйвер событий
- •3.3.25. Получить адрес альтернативного драйвера событий
- •3.3.26. Установить чувствительность мыши
- •3.3.27. Определить чувствительность мыши
- •3.3.28. Установить частоту прерываний для Inport Mouse
- •3.3.29. Установить номер видеостраницы
- •3.3.30. Определить номер видеостраницы
- •3.3.31. Отключить драйвер мыши
- •3.3.32. Восстановить драйвер мыши
- •3.3.33. Сбросить драйвер мыши
- •3.3.34. Определить тип мыши
3.3.14. Включить эмуляцию светового пера
На входе: AX = 000Dh.
На выходе: Регистры не используются.
Если ваша программа использует световое перо (например, она написана на языке Бейсик и вызывает функцию PEN), вы можете заменить световое перо на мышь. После включения режима эмуляции драйвер запоминает координаты курсора при нажатии на клавиши мыши. Эти координаты могут быть впоследствии считаны функцией PEN или функцией 04h прерывания INT 10h, предназначенной для работы со световым пером.
3.3.15. Выключить эмуляцию светового пера
На входе: AX = 000Eh.
На выходе: Регистры не используются.
Эта функция выключает режим эмуляции светового пера.
3.3.16. Задать скорость перемещения курсора мыши
На входе: AX = 000Fh;
CX = количество миков на 8 точек по
горизонтали;
DX = количество миков на 8 точек по
вертикали.
На выходе: Регистры не используются.
Функция определяет "чувствительность" мыши к перемещению по поверхности стола, т.е. устанавливает соответствие между величиной перемещения мыши по столу и величиной перемещения курсора мыши по экрану.
При инициализации драйвера мыши используются следующие значения: CX=8, DX=16.
3.3.17. Установить область исключения для курсора
На входе: AX = 0010h;
CX, DX = координаты (X, Y) верхнего левого
угла области исключения;
SI, DI = координаты (X, Y) нижнего правого
угла области исключения.
На выходе: Регистры не используются.
Функция позволяет задать на экране прямоугольную область, в которой автоматически выключается изображение курсора мыши - область исключения. Эта область отменяется функциями 01h (включить курсор мыши) и 00h (инициализация).
Оператор может поместить курсор мыши в область исключения, при этом изображение курсора пропадет.
Основное назначение этой функции - предоставить программе возможность изменять содержимое области экрана не выключая изображение курсора. Недостаток функции - вы можете "потерять" курсор мыши, если он случайно окажется в области исключения.
3.3.18. Задать увеличенный графический курсор (pc mouse)
На входе: AX = 0012h;
BH = ширина курсора в словах;
CH = количество строк в изображении курсора;
BL = номер позиции точки-указателя графического
курсора (от -16 до 16);
CL = номер строки точки-указателя
(от -16 до 16);
ES:DX = указатель на битовое изображение
курсора.
На выходе: Регистры не используются.
Эта функция позволяет задать увеличенный по размеру курсор мыши, но она определена только для мыши системы PC MOUSE.
3.3.19. Определить порог удвоения скорости
На входе: AX = 0013h.
На выходе: DX = значение порога удвоения, мики в секунду.
Если вы перемещаете мышь со скоростью, превышающей порог удвоения, заданный функцией 13h, аппаратура мыши удваивает величину перемещения. Таким образом, используя медленное перемещение мыши, вы можете точно устанавливать курсор на требуемый элемент изображения. Если вам необходимо переместить курсор на значительное расстояние по экрану, вы можете увеличить скорость перемещения мыши.
При инициализации устанавливается значение порога, равное 64 микам в секунду (1/3 дюйма в секунду). Если вам надо установить это значение, вы можете при вызове функции 13h задать DX=0.