home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / MOUSE_TP.ZIP / MOUSE.INC next >
Encoding:
Text File  |  1987-08-29  |  3.6 KB  |  158 lines

  1. (* This package contains the Microsoft Mouse interface for Turbo Pascal. *) 
  2.  
  3. const MouseInterrupt = 51; 
  4.  
  5. type MouseRegPack= 
  6.              record 
  7.                 AX, BX, CX, DX, BP, SI, DI, DS, ES, FLAG: integer; 
  8.              end; 
  9.  
  10.    function InitMouse: integer; 
  11.    var r: MouseRegPack; 
  12.    begin 
  13.       r.AX:=0; 
  14.       Intr( MouseInterrupt, r ); 
  15.       InitMouse:=r.AX 
  16.    end; 
  17.  
  18.    procedure ShowMouse; 
  19.    var r: MouseRegPack; 
  20.    begin 
  21.       r.AX:=1; 
  22.       Intr( MouseInterrupt, r ); 
  23.    end; 
  24.  
  25.    procedure HideMouse; 
  26.    var r: MouseRegPack; 
  27.    begin 
  28.       r.AX:=2; 
  29.       Intr( MouseInterrupt, r ); 
  30.    end; 
  31.  
  32.    function MousePosition( var MouseX, MouseY: integer ): integer; 
  33.    var r: MouseRegPack; 
  34.    begin 
  35.       r.AX:=3; 
  36.       Intr( MouseInterrupt, r );; 
  37.       MouseX:=r.CX; 
  38.       MouseY:=r.DX; 
  39.       MousePosition:=r.BX 
  40.    end; 
  41.  
  42.    procedure SetMousePosition( MouseX, MouseY: integer ); 
  43.    var r: MouseRegPack; 
  44.    begin 
  45.       r.AX:=4; 
  46.       r.CX:=MouseX; 
  47.       r.DX:=MouseY; 
  48.       Intr( MouseInterrupt, r ); 
  49.    end; 
  50.  
  51.    function MousePress( Button: integer; 
  52.                         var Count, LastX, LastY: integer ): integer; 
  53.    var r: MouseRegPack; 
  54.    begin 
  55.       r.AX:=5; 
  56.       r.BX:=Button; 
  57.       Intr( MouseInterrupt, r );; 
  58.       MousePress:=r.AX; 
  59.       Count:=r.BX; 
  60.       LastX:=r.CX; 
  61.       LastY:=r.DX 
  62.    end; 
  63.  
  64.    function MouseRelease( Button: integer; 
  65.                           var Count, LastX, LastY: integer ): integer; 
  66.    var r: MouseRegPack; 
  67.    begin 
  68.       r.AX:=6; 
  69.       r.BX:=Button; 
  70.       Intr( MouseInterrupt, r );; 
  71.       MouseRelease:=r.AX; 
  72.       Count:=r.BX; 
  73.       LastX:=r.CX; 
  74.       LastY:=r.DX 
  75.    end; 
  76.  
  77.    procedure SetXRange( MinX, MaxX: integer ); 
  78.    var r: MouseRegPack; 
  79.    begin 
  80.       r.AX:=7; 
  81.       r.CX:=MinX; 
  82.       r.DX:=MaxX; 
  83.       Intr( MouseInterrupt, r ); 
  84.    end; 
  85.  
  86.    procedure SetYRange( MinY, MaxY: integer ); 
  87.    var r: MouseRegPack; 
  88.    begin 
  89.       r.AX:=8; 
  90.       r.CX:=MinY; 
  91.       r.DX:=MaxY; 
  92.       Intr( MouseInterrupt, r ); 
  93.    end; 
  94.  
  95.    procedure SetGraphicsCursor( HotX, HotY, MaskSeg, MaskOfs: integer ); 
  96.    var r: MouseRegPack; 
  97.    begin 
  98.       r.AX:=9; 
  99.       r.BX:=HotX; 
  100.       r.CX:=HotY; 
  101.       r.DX:=MaskOfs; 
  102.       r.ES:=MaskSeg; 
  103.       Intr( MouseInterrupt, r ); 
  104.    end; 
  105.  
  106.    procedure SetTextCursor( HardwareCursor: boolean; 
  107.                             ScreenMaskStart, CursorMaskStop: integer ); 
  108.    var r: MouseRegPack; 
  109.    begin 
  110.       r.AX:=10; 
  111.       r.BX:=ord(HardwareCursor); 
  112.       r.CX:=ScreenMaskStart; 
  113.       r.DX:=CursorMaskStop; 
  114.       Intr( MouseInterrupt, r ); 
  115.    end; 
  116.  
  117.    procedure ReadMouseCounter( var CountX, CountY: integer ); 
  118.    var r: MouseRegPack; 
  119.    begin 
  120.       r.AX:=11; 
  121.       Intr( MouseInterrupt, r );; 
  122.       CountX:=r.CX; 
  123.       CountY:=r.DX 
  124.    end; 
  125.  
  126.    procedure SetCallMask( CallMask, HandlerSeg, HandlerOfs: integer ); 
  127.    var r: MouseRegPack; 
  128.    begin 
  129.       r.AX:=12; 
  130.       r.CX:=CallMask; 
  131.       r.ES:=HandlerSeg; 
  132.       r.DX:=HandlerOfs; 
  133.       Intr( MouseInterrupt, r );; 
  134.    end; 
  135.  
  136.    procedure LightPenEmulateOn; 
  137.    var r: MouseRegPack; 
  138.    begin 
  139.       r.AX:=13; 
  140.       Intr( MouseInterrupt, r ); 
  141.    end; 
  142.  
  143.    procedure LightPenEmulateOff; 
  144.    var r: MouseRegPack; 
  145.    begin 
  146.       r.AX:=14; 
  147.       Intr( MouseInterrupt, r ); 
  148.    end; 
  149.  
  150.    procedure SetRatio( RatioX, RatioY: integer ); 
  151.    var r: MouseRegPack; 
  152.    begin 
  153.       r.AX:=15; 
  154.       r.CX:=RatioX;
  155.       r.DX:=RatioY;
  156.       Intr( MouseInterrupt, r );
  157.    end;
  158.