Низкоуровневое програмирование Главная - Реальный режим - Прерывания DOS - INT 33h: Работа с мышью.

INT 33h: Работа с мышью.

AXФункция
0Проверить наличие драйвера мыши и произвести сброс драйвера

Выход:
AX = 0 - нет драйвера
AX = FFFFh - есть драйвер
BX = тип мыши (FFFFh - стандартная двухкнопочная мышь Microsoft)

Примечание:
после выполнения функции верны следующие параметры:
Указатель мыши в центре экрана
Курсор не отображается
Курсору придана стандартная форма
Работа пользовательского обработчика сообщений мыши заблокированна
Курсор может перемещатся по всему экрану
Чуствительность по вертикали 16, по горизонтали 8
Порог удвоения скорости - 64
1 Отобразить курсор
Только для текстового режима!
2 Скрыть курсор
Только для текстового режима!
3 Получить информацию о положении курсора и состоянии клавиш мыши

Выход:
BX - состояние кнопок мыши (бит 0 - левая кнопка, бит 1 - правая кнопка, бит 2 - средняя кнопка)
CX - горизонтальная координата курсора
DX - вертикальная координата курсора
4 Установить новое положение курсора

Вход:
CX - горизонтальная координата курсора
DX - вертикальная координата курсора
5 Получить информацию о нажатии кнопок мыши

Вход:
BX - номер кнопки (0 - левая, 1 - правая, 2 - средняя)

Выход:
AX - состояние кнопок мыши (бит 0 - левая кнопка, бит 1 - правая кнопка, бит 2 - средняя кнопка)
BX - число нажатий на указанную кнопку с момента последнего вызова этой функции
CX - горизонтальная координата курсора в момент последнего нажатия указанной кнопки
DX - вертикальная координата курсора в момент последнего нажатия указанной кнопки
6 Получить информацию об отпускании кнопок мыши

Вход:
BX - номер кнопки (0 - левая, 1 - правая, 2 - средняя)

Выход:
AX - состояние кнопок мыши (бит 0 - левая кнопка, бит 1 - правая кнопка, бит 2 - средняя кнопка)
BX - число отпусканий на указанную кнопку с момента последнего вызова этой функции
CX - горизонтальная координата курсора в момент последнего отпускания указанной кнопки
DX - вертикальная координата курсора в момент последнего отпускания указанной кнопки
7 Задать горизонтальный диапозон перемещения курсора

Вход:
СX - координаты левой границы перемещения курсора
DX - координаты правой границы перемещения курсора
8 Задать вертикальный диапозон перемещения курсора

Вход:
СX - координаты верхней границы перемещения курсора
DX - координаты нижней границы перемещения курсора
0Ch Задать пользовательский обработчик сообщений мыши

Вход:
CX - Маска условий вызова
бит 0 - перемещение мыши
бит 1 - нажатие левой кнопки
бит 2 - отпускание левой кнопки
бит 3 - нажатие правой кнопки
бит 4 - отпускание правой кнопки
бит 5 - нажатие средней кнопкм
бит 6 - отпускание средней кнопки
биты 7-15 зарезервированны
ES:DI - адрес обработчика

Примечание
При вызове обработчика:
AX - маска условий вызова
BX - состояние кнопок мыши (бит 0 - левая кнопка, бит 1 - правая кнопка, бит 2 - средняя кнопка)
CX - горизонтальная координата курсора
DX - вертикальная координата курсора
SI - Горизонтальный отсчёт
DI - вертикальный отсчёт
DS - Сегмент данных драйвера мыши
0Fh Изменить чуствительность мыши

Вход:
CX - чуствительность по горизонтали
DX - чуствительность по вертикали
13h Задать порог удвоения скорости:

Вход:
DX - порог удвоения скорости