Znalazłem ten tekst w jamiś kursie C++ z tej strony.
Zajmijmy się obsługą myszy w dosie. Wymagany w czystym dosie jest sterownik myszy (np: mouse.com, gmouse.com) a w okienku windowsa wszystko będzie OK.
Odpowiedzialne za to jest przerwanie 33h. Na początek trzeba sprawdzić czy w systemie mamy jakąś mysz . Odpowiedzialny jest za to podprogram 0000h. Musimy więc przenieść tę wartość do rejestru AX i wywołać przerwanie. Potrzebne nam też będą dwie zmienne do odczytania wyników.
unsigned int status,przyciski.
asm
{
MOV AX,0000h
INT 33h
MOV status,AX
MOV przyciski,BX
}
Teraz w zmiennych mamy informacje czy jest mysz w systemie i jakiego rodzaju.
Żeby pokazać kursor na ekranie (w trybie tekstowym) wystarczy wywołać przerwanie z podprogramem 0001h. Po jednokrotnym wywołaniu cały czas będzie widoczny kursor, i automatycznie będzie się przesuwał.
asm
{
MOV AX,0001h
INT 33h
}
Ukrywa kursor podfunkcja 0002h.
Odczytać położenie myszy i stan przycisków można z podprogramu 0003h. Po wywołanu przerwania w rejestrach BX, CX, DX, otrzymamy odpowiednio stan przycisków, położenie po x i y. Polecam poexperymentować.
Przerwaniami jest również bardzo łatwo osiągnąć tryby graficzne, nawet te wysokie np 1024x768 w 256 kolorach. Polecam prześledzić sobie opis przerwań.
// Int 33h to przerwanie pod którym w dosie instaluje się sterownik myszy (dosowy)... A tu chodzi o NAPISANIE STEROWNIKA, nie wykorzystanie gotowego. [mf]