استفاده از Mouse در محیط گرافیک :
برای استفاده از Mouse در محیط گرافیکی باید وقفه مربوط به فعالسازی Mouse را فراخوانی کنیم . این وقفه 33Hex (هگزادسیمال) نام دارد و شامل یکسری توابع است که هر تابع با یک شماره مشخص شده و کاربرد خاصی دارد . هرکدام از توابع مذکور دارای ثباتهای ورودی و خروجی هستند . ثباتهای ورودی باید قبل از فراخوانی وقفه مقدار دهی شوند تا وقفه عمل مورد نظر ما را انجام دهد و ثباتهای خروجی نتایج اجرای وقفه را برمی گردانند .
تابع 00Hex از وقفه 33Hex :
این تابع اعمال زیر را انجام می دهد :
1- پارامترهای Mouse را با مقادیر پیش فرض Set می کند .
2- اشاره گر Mouse را به مرکز صفحه منتقل می کند .
ثبات ورودی :
Ax := 0 ;
ثبات خروجی :
درایور Mouse نصب شده است . Ax = ffff Hex
درایور Mouse نصب نشده است . Ax = 0000 Hex
تعداد کلید های Mouse را مشخص می کند . Bx = 3
function mreset:integer;
var i:integer;
begin
asm;{ این دستور برای نوشتن دستورات اسمبلی بکار می رود . }
mov ax,0;
int 33h; {فراخوانی وقفه }
mov i,ax;
end;
end;
نکته : این تابع فقط Mouse را فعای می کند ولی اشاره گر Mouse را آشکار نمی کند . برای نمایان شدن اشاره گر Mouse باید از تابع بعدی استفاده کنیم .
تابع 01Hex از وقفه 33Hex :
این تابع اشاره گر Mouse را در صفحه نشان می دهد . قبل از اجرای این تابع باید تابع Mreset اجرا شده باشد .
ثبات ورودی :
Ax := 01 ;
ثبات خروجی : ندارد .
procedure mshow;
begin
asm;
mov ax,01h;
int 33h;
end;
end;
تابع 02Hex از وقفه 33Hex :
این تابع اشاره گر Mouse را پنهان می کند .
ثبات ورودی :
Ax := 02 ;
ثبات خروجی : ندارد .