|
Доступ к функциям драйвера мыши реализуется
с помощью 33h-го прерывания ДОС.
Вот Функции этого прерывания:
00h -- сбросить драйвер
01h -- показать указатель мыши
02h -- убрать указатель мыши
03h -- получить текушие координаты и сосотояние кнопок
04h -- переместить указатель в новое положение
05h -- получить информацию о нажатии кнопки
06h -- получить информацию об отпускании кнопки
07h -- установить область перемещения указателя по горизонтали
08h -- установить область перемещения указателя по вертикали
09h -- задать форму указателя для графического режима
0Ah -- задать форму указателя для текстового режима
0Bh -- получить счетчик шагов перемещения
0Ch -- задать условия вызова программы пользователя
0Dh -- включить эмуляцию светового пера
0Eh -- выключить эмуляцию светового пера
0Fh -- установить отношение числа шагов на единицу
виртуального экрана
13h -- установить порог удвоения скорости смещения указателя мыши
14h -- заменить процедуру пользователя
15h -- получить размер буфера, необходимого для сохранения
состояния драйвера
16h -- сохранить текущее состояние драйвера
17h -- восстановить состояние драйвера
1Dh -- задать видеостраницу для отображения указателя
1Eh -- получить номер видеостраницы, в которой отображается указатель.
Как это использовать?
Вот примеры:
-----------
1.показать указатель мыши:
-----------
mov ah,01h
int 33h
-----------
2.получить текущие координаты указателя мыши и состояние клавиш:
-----------
mov ah,03h
int 33h
;если bx:бит 0 - левая клавиша(1-нажата, 2-отпущена),
;бит 1 - правая кнопка, бит 2 - средняя кнопка.
;cx - горизонтальная координата
;dx - вертикальная координата
-----------
3.Переместить указатель в заданную точку экрана:
-----------
mov ah,04h
int 33h
;CX - x-координата
;DX - y-координата
-----------
4.Получить информацию о нажатии кнопки мыши:
-----------
mov ah,05h
;в BX можно поместить идентификатор кнопки,
;которую нужно проверить
int 33h
;AX - текущее состояние кнопок
;BX - количество нажатий указанной кнопки
;CX,DX - координаты, соответствующие нажатию кнопки.
-----------
5.Форма указателя в текстовом режиме:
-----------
mov ah,0ah
;BX - поместить флаг указателя
;(0-программное управление формой, 1-аппаратное управление)
;CX - маска для экрана или верхняя строка развертки
;DX - маска для экрана или нижняя строка развертки
int 33h
Так же можешь скачать доку по работе с мышью и несколько примеров на асме (см файл mouse.zip).
__________________
Старые игры раздают здесь
|