home *** CD-ROM | disk | FTP | other *** search
- (* This package contains the Microsoft Mouse interface for Turbo Pascal. *)
-
- const MouseInterrupt = 51;
-
- type MouseRegPack=
- record
- AX, BX, CX, DX, BP, SI, DI, DS, ES, FLAG: integer;
- end;
-
- function InitMouse: integer;
- var r: MouseRegPack;
- begin
- r.AX:=0;
- Intr( MouseInterrupt, r );
- InitMouse:=r.AX
- end;
-
- procedure ShowMouse;
- var r: MouseRegPack;
- begin
- r.AX:=1;
- Intr( MouseInterrupt, r );
- end;
-
- procedure HideMouse;
- var r: MouseRegPack;
- begin
- r.AX:=2;
- Intr( MouseInterrupt, r );
- end;
-
- function MousePosition( var MouseX, MouseY: integer ): integer;
- var r: MouseRegPack;
- begin
- r.AX:=3;
- Intr( MouseInterrupt, r );;
- MouseX:=r.CX;
- MouseY:=r.DX;
- MousePosition:=r.BX
- end;
-
- procedure SetMousePosition( MouseX, MouseY: integer );
- var r: MouseRegPack;
- begin
- r.AX:=4;
- r.CX:=MouseX;
- r.DX:=MouseY;
- Intr( MouseInterrupt, r );
- end;
-
- function MousePress( Button: integer;
- var Count, LastX, LastY: integer ): integer;
- var r: MouseRegPack;
- begin
- r.AX:=5;
- r.BX:=Button;
- Intr( MouseInterrupt, r );;
- MousePress:=r.AX;
- Count:=r.BX;
- LastX:=r.CX;
- LastY:=r.DX
- end;
-
- function MouseRelease( Button: integer;
- var Count, LastX, LastY: integer ): integer;
- var r: MouseRegPack;
- begin
- r.AX:=6;
- r.BX:=Button;
- Intr( MouseInterrupt, r );;
- MouseRelease:=r.AX;
- Count:=r.BX;
- LastX:=r.CX;
- LastY:=r.DX
- end;
-
- procedure SetXRange( MinX, MaxX: integer );
- var r: MouseRegPack;
- begin
- r.AX:=7;
- r.CX:=MinX;
- r.DX:=MaxX;
- Intr( MouseInterrupt, r );
- end;
-
- procedure SetYRange( MinY, MaxY: integer );
- var r: MouseRegPack;
- begin
- r.AX:=8;
- r.CX:=MinY;
- r.DX:=MaxY;
- Intr( MouseInterrupt, r );
- end;
-
- procedure SetGraphicsCursor( HotX, HotY, MaskSeg, MaskOfs: integer );
- var r: MouseRegPack;
- begin
- r.AX:=9;
- r.BX:=HotX;
- r.CX:=HotY;
- r.DX:=MaskOfs;
- r.ES:=MaskSeg;
- Intr( MouseInterrupt, r );
- end;
-
- procedure SetTextCursor( HardwareCursor: boolean;
- ScreenMaskStart, CursorMaskStop: integer );
- var r: MouseRegPack;
- begin
- r.AX:=10;
- r.BX:=ord(HardwareCursor);
- r.CX:=ScreenMaskStart;
- r.DX:=CursorMaskStop;
- Intr( MouseInterrupt, r );
- end;
-
- procedure ReadMouseCounter( var CountX, CountY: integer );
- var r: MouseRegPack;
- begin
- r.AX:=11;
- Intr( MouseInterrupt, r );;
- CountX:=r.CX;
- CountY:=r.DX
- end;
-
- procedure SetCallMask( CallMask, HandlerSeg, HandlerOfs: integer );
- var r: MouseRegPack;
- begin
- r.AX:=12;
- r.CX:=CallMask;
- r.ES:=HandlerSeg;
- r.DX:=HandlerOfs;
- Intr( MouseInterrupt, r );;
- end;
-
- procedure LightPenEmulateOn;
- var r: MouseRegPack;
- begin
- r.AX:=13;
- Intr( MouseInterrupt, r );
- end;
-
- procedure LightPenEmulateOff;
- var r: MouseRegPack;
- begin
- r.AX:=14;
- Intr( MouseInterrupt, r );
- end;
-
- procedure SetRatio( RatioX, RatioY: integer );
- var r: MouseRegPack;
- begin
- r.AX:=15;
- r.CX:=RatioX;
- r.DX:=RatioY;
- Intr( MouseInterrupt, r );
- end;
-