Chuột thường được sử dụng trong máy vi tính là một thiết bị đầu vào điều khiển nhất là trong các hệ điều hành và phần mền đồ hoạ
Chuột quang.Dùng tín hiệu ánh sáng phản xạ từ màn chuột (Mouse pad)để đo chuyển động.
Phương pháp tác động
1. Muốn sử dụng chuột trong hệ diều hành và các ứng dụng trước tiên ta phải nạp các trình điều khiển chuột,
Để nạp cá trình điều kiển chuột trong môi trường DOS thường thực hiện theo hai cách sau:
- Chèn vào tệp Config.sys một dòng lệnh sau DEVICE=[path\]mouse.sys
- Chạy trình điều khiển chuột Mouse.com tại dấu nhắc của DOS
2. Tác động bằng ngắt (33 h)
Hàm 00: Khởi tạo driver cho chuột
vào AX = 00h
Ra AX = FFFF nếu chuột chưa được cài đặt
AX = 0000h nếu như chuột được khởi động
BX = số nút bấm
Hàm 01h Hiện con trỏ chuột
vào AX = 01h
Ra không
Hàm 02h Dấu con trỏ chuột
Vào AX= 02h
Ra không
Hàm 03h: Đọc vị trí con trỏ chuột trạng thái nút bấm
vào AX = 03h
Ra CX =vị trí ngang Graph (0<=X<=639, 0<=y<=399)
DX= vị trí dọc Text (0<=X<=639, 0<=y<=199)
BX = trạng thái nút bấ m bit 0 =1 mút trái nhấn
bit 1= 1 nút phải được nhấn
bit 2=1 nút giữa được nhấn
Hàm 04h đặt con trỏ chuột về vị trí h\nhất định
vào AX =04h
Ra CX= vị trí ngang
DX= vị trí dọc
Hàm 05 Nhận thông tin về trạng thái nút nhấn
Vào: AX =05h
BX = nút nhấn bit 0 =1 mút trái nhấn
bit 1= 1 nút phải được nhấn
bit 2=1 nút giữa được nhấn
ra: BX = số lần nhấn nút
CX =vị trí ngang lần cuối cùng dược nhấn
DX = vị trí dọc
AX = trạng thái nút nhấn bit 0 =1 mút trái nhấn
bit 1= 1 nút phải được nhấn
bit 2=1 nút giữa được nhấn
Hàm 06 nhận thông tin về trạng thái nút nhả
Vào AX =06h
BX =nút nhả bit 0 =1 mút trái nhả
bit 1= 1 nút phải được nhả
bit 2=1 nút giữa được nhả
ra BX = số lần nút nhả
CX =vị trí ngang lần cuối cùng dược nhả
DX = vị trí dọc
AX = trạng thái nút nhấn bit 0 =1 mút trái nhả
bit 1= 1 nút phải được nhả
bit 2=1 nút giữa được nhả
Hàm 09h: định nghĩa con trỏ trong chế độ đồ thị
vào AH=09h
BX = Khoảng cách từ điểm làm chuẩn tới điểm bên phải bảng
CX = Khoảng cách từ điểm làm chuẩn tới điểm bên trái bảng
ES:DX =con trỏ tới bảng định nghĩa hình dạng con chuột trong RAM
Ra kkhông
Bảng gồm 64 byte 32 byte đầu được and và 32 cuối được or với mẫu hiện thời
Ví dụ: Chương trình sử dụng chuột trong chế độ Text
Program chuot;
Uses crt,dos;
Var
r:registers;
x,y:byte;
st1,st2:string;
Procedure MouseInit;
Begin
with r do
begin
ax:=0;
Intr($33,r);
If(ax=0) then writeln('Chua cai dat chuot');
end;
End;
Procedure Show;
Begin
r.ax:=1;
Intr($33,r);
End;
Procedure Hide;
Begin
r.ax:=2;
Intr($33,r);
End;
Procedure vtchuot(x1,y1:byte);
Begin
gotoxy(70,1);
write(x1,':',y1);
End;
Procedure tron;
var
r:integer;
cv,dt:real;
Begin
write('anh chi nhap ban kinh hinh tron');
readln(r);
cv:=pi*2*r;
dt:=pi*r*r;
gotoxy(10,12);
Writeln('dien tich va chu vi hinh tron la: ',cv:5,':',dt:5);
readln;
End;
Procedure vuong;
var
r:integer;
cv,dt:real;
Begin
write('anh chi nhap ban do dai hinh vuong');
readln(r);
cv:=4*r;
dt:=r*r;
gotoxy(10,10);
Writeln('dien tich va chu vi hinh vuong la: ',cv:5,':',dt:5);
readln;
End;
Procedure tbay;
Begin
clrscr;
st1:='Tinh vi va dien tich hinh tron';
st2:='Tinh vi va dien tich hinh vuong';
gotoxy(20,11);Write(st1);
gotoxy(20,12);Write(st2);
End;
Begin
clrscr;
MouseInit;
Show;
tbay;
Repeat
with r do
Begin
ax:=3;
intr($33,r);
x:=cx shr 3+1;
y:= dx shr 3+1;
vtchuot(x,y);
if((bx and 0001)=001)and ((x>=20) or(x<=20+length(st1)))
and (y=11) then
Begin
clrscr; tron; tbay;
End;
if((bx and 0001)=001)and ((x>=20) or(x<=20+length(st2)))
and (y=12) then
Begin
clrscr; vuong; tbay;
End;
until (r.bx and 0002)=0002;
hide;
End.