; MOUSE.ASM
;MOUSE.ASM
; Biblioteka funkcji obsługi myszy w
; standardzie Microsoft - przerwanie 33h.
;
;Marcin Kłos
;Dyrektywa .386 umożliwia korzystanie z
;instrukcji specyficznych dla procesora 80386.
;Jest to konieczne do korzystania z trybu FLAT.
.386
.MODEL flat , C
.CODE
;Deklaracje funkcji publicznych - dostępnych
;z poza tego pliku.
PUBLIC init_mouse
PUBLIC num_of_buttons
PUBLIC show_mouse
PUBLIC hide_mouse
PUBLIC get_mouseX
PUBLIC get_mouseY
PUBLIC get_buttons
;Definicje funkcji
;init_mouse:
;Funkcja sprawdza, czy mysz jest dostępna.
;Zwraca 0, jeżeli nie lub inną wartość, jeżeli tak.
init_mouse PROC NEAR
mov AX,0
int 33h
ret
init_mouse ENDP
;num_of_buttons:
;Zwraca ilość przycisków w myszy.
num_of_buttons PROC NEAR
mov AX,0
int 33h
mov AX,BX
ret
num_of_buttons ENDP
;show_mouse
;Wyświetla kursor myszy.
show_mouse PROC NEAR
mov AX,1
int 33h
ret
show_mouse ENDP
;hide_mouse
;Gasi kursor myszy.
hide_mouse PROC NEAR
mov AX,2
int 33h
ret
hide_mouse ENDP
;get_mouseX
;Zwraca poziomą współrzędną położenia
;kursora myszy. W trybie tekstowym 25x80
;należy podzielić tę wartość przez 8.
get_mouseX PROC NEAR
mov AX,3
int 33h
mov AX,CX
ret
get_mouseX ENDP
;get_mouseY
;Zwraca pionową współrzędną położenia
;kursora myszy. W trybie tekstowym 25x80
;należy podzielić tę wartość przez 8.
get_mouseY PROC
mov AX,3
int 33h
mov AX,DX
ret
get_mouseY ENDP
;get_buttons
;Zwraca informacje o stanie przycisków:
; bit 0 - lewy
; bit 1 - prawy
; bit 2 - trzeci (najczęściej środkowy).
;Bit ustawiony oznacza przycisk wciśnięty.
;Informacje o poszczególnych przyciskach
;możemy uzyskać używając masek zdefiniowanych
;w mouse.h - patrz użycie tej funkcji w demo.cc.
get_buttons PROC
mov AX,3
int 33h
mov AX,BX
ret
get_buttons ENDP
END
Stronę opracował Michał Szulowski