home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / bix / mouse.pas < prev    next >
Pascal/Delphi Source File  |  1986-07-07  |  4KB  |  166 lines

  1. procedure mshape(xhot, yhot : integer; var cursor : curarray);
  2. { xhot and yhot pixel designations for the cursor hot spot. cursor is the array
  3.  containing the cursor shape.  curarray is array type defined as
  4.  ARRAY[0..31] OF INTEGER }
  5.  
  6. type
  7.    regset = record
  8.               ax,bx,cx,dx,bp,di,si,ds,es,flags : integer
  9.            end;
  10. var recpack : regset;
  11.  
  12. begin
  13.    with recpack do
  14.    begin
  15.       ax := 9;
  16.       bx := xhot;
  17.       cx := yhot;
  18.       dx := Ofs(cursor[0]);
  19.       es := Seg(cursor[0])
  20.    end;
  21.    intr($33, recpack)
  22. end;
  23.  
  24. procedure mstatus(var mstat, nbuttons : integer);
  25. { returns mouse status and resets mouse parameters.  mstat=0 if mouse is not
  26.  installed. -1 otherwise.  nbuttons is number of buttons enabled, =2 }
  27.  
  28. type
  29.    regset = record
  30.               ax,bx,cx,dx,bp,di,si,ds,es,flags : integer
  31.            end;
  32. var recpack  :  regset;
  33.  
  34. begin
  35.    recpack.ax := 0;
  36.    intr($33, recpack);
  37.    with recpack do
  38.    begin
  39.       mstat := ax;
  40.       nbuttons := bx
  41.    end
  42. end;
  43.  
  44. procedure mshow;
  45. { show mouse cursor }
  46.  
  47. type
  48.    regset = record
  49.               ax,bx,cx,dx,bp,di,si,ds,es,flags  : integer
  50.            end;
  51. var  recpack  :  regset;
  52.  
  53. begin
  54.    recpack.ax := 1;
  55.    intr($33, recpack)
  56. end;
  57.  
  58. procedure mhide;
  59. { hide mouse cursor }
  60.  
  61. type
  62.    regset = record
  63.               ax,bx,cx,dx,bp,di,si,ds,es,flags : integer
  64.            end;
  65. var  recpack  :  regset;
  66.  
  67. begin
  68.    recpack.ax := 2;
  69.    intr($33, recpack)
  70. end;
  71.  
  72. procedure mpos(var mbt, mx, my : integer);
  73. { returns position of mouse, coordinates mx, my.
  74.  if mbt=1, left button was pressed
  75.  if mbt=2, right button was pressed
  76.  if mbt=3, both buttons were pressed  }
  77.  
  78. type
  79.    regset = record
  80.               ax,bx,cx,dx,bp,di,si,ds,es,flags : integer
  81.             end;
  82. var  recpack  :  regset;
  83.  
  84. begin
  85.    recpack.ax := 3;
  86.    intr($33, recpack);
  87.    with recpack do
  88.    begin
  89.       mbt := bx;
  90.       mx := cx;
  91.       my := dx
  92.    end
  93. end;
  94.  
  95. procedure mput(mx,my : integer);
  96. { put the mouse cursor at coordinates mx,my.  legal values must be suppled }
  97.  
  98. type
  99.    regset  =  record
  100.                 ax,bx,cx,dx,bp,di,si,ds,es,flags  : integer
  101.              end;
  102. var   recpack  :  regset;
  103.  
  104. begin
  105.    recpack.ax := 4;
  106.    recpack.cx := mx;
  107.    recpack.dx := my;
  108.    intr($33, recpack)
  109. end;
  110.  
  111. procedure mvlimit(minpos, maxpos : integer);
  112. { set min and max vertical limits for cursor positions }
  113.  
  114. type
  115.    regset  =  record
  116.                 ax,bx,cx,dx,bp,di,si,ds,es,flags  :  integer
  117.               end;
  118. var   recpack  :  regset;
  119.  
  120. begin
  121.    recpack.ax := 8;
  122.    recpack.cx := minpos;
  123.    recpack.dx := maxpos;
  124.    intr($33, recpack)
  125. end;
  126.  
  127. procedure mhlimit(minpos, maxpos : integer);
  128. { set min and max vertical limits for cursor positions }
  129.  
  130. type
  131.    regset  =  record
  132.                 ax,bx,cx,dx,bp,di,si,ds,es,flags  :  integer
  133.               end;
  134. var   recpack  :  regset;
  135.  
  136. begin
  137.    recpack.ax := 7;
  138.    recpack.cx := minpos;
  139.    recpack.dx := maxpos;
  140.    intr($33, recpack)
  141. end;
  142.  
  143. procedure mtext(select,mask1,mask2 : integer);
  144. { select the text cursor.  select=0 gives software cursor, select=1 gives
  145.   hardware cursor.  For select=0 specify screen mask and cursor mask in mask1,
  146.   mask2.  For select=1, specify mask1=0 and mas2=no. scan lines in cursor}
  147.  
  148. type
  149.    regset  =  record
  150.                 ax,bx,cx,dx,bp,di,si,ds,es,flags  :  integer
  151.               end;
  152. var   recpack  :  regset;
  153.  
  154. begin
  155.    recpack.ax := 10;
  156.    recpack.cx := mask1;
  157.    recpack.dx := mask2;
  158.    intr($33, recpack)
  159. end;
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.