home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / library / qb_pds / mouse / mouseqb / mousebox.bas < prev    next >
Encoding:
BASIC Source File  |  1993-07-28  |  8.5 KB  |  367 lines

  1. '──────────────────────────────
  2. '
  3. '    Mousebox,  Version 1.0
  4. '  Copyright (c) 1988, 89, 90
  5. '             by
  6. '
  7. '         Ralf Krause
  8. '
  9. '    Leuchtenberger Str. 7a
  10. '   D-8480 Weiden i. d. Opf.
  11. '──────────────────────────────
  12.  
  13. TYPE Registers
  14.      AX    AS INTEGER
  15.      BX    AS INTEGER
  16.      CX    AS INTEGER
  17.      DX    AS INTEGER
  18.      BP    AS INTEGER
  19.      SI    AS INTEGER
  20.      DI    AS INTEGER
  21.      Flags AS INTEGER
  22.      DS    AS INTEGER
  23.      ES    AS INTEGER
  24. END TYPE
  25.  
  26.  
  27. CONST MouseIntr = &H33       ' Mouse-INTERRUPT
  28. CONST SoftWare = 0           ' Softwarecursor bei SetTextCursor
  29. CONST HardWare = 1           ' Hardwarecursor bei SetTextCursor
  30.  
  31. DECLARE FUNCTION InitMouse ()
  32. DECLARE SUB ResetMouse ()
  33. DECLARE SUB ShowCursor ()
  34. DECLARE SUB HideCursor ()
  35. DECLARE FUNCTION GetXPosition ()
  36. DECLARE FUNCTION GetYPosition ()
  37. DECLARE FUNCTION GetXTextPosition ()
  38. DECLARE FUNCTION GetYTextPosition ()
  39. DECLARE FUNCTION LeftButton ()
  40. DECLARE FUNCTION RightButton ()
  41. DECLARE FUNCTION MiddleButton ()
  42. DECLARE FUNCTION MouseMoved ()
  43. DECLARE FUNCTION MouseLeftMoved ()
  44. DECLARE FUNCTION MouseRightMoved ()
  45. DECLARE FUNCTION MouseUpMoved ()
  46. DECLARE FUNCTION MouseDownMoved ()
  47. DECLARE FUNCTION LeftButtonPressed ()
  48. DECLARE FUNCTION RightButtonPressed ()
  49. DECLARE FUNCTION MiddleButtonPressed ()
  50. DECLARE FUNCTION LeftButtonReleased ()
  51. DECLARE FUNCTION RightButtonReleased ()
  52. DECLARE FUNCTION MiddleButtonReleased ()
  53. DECLARE SUB SetXYMouse (X AS INTEGER, Y AS INTEGER)
  54. DECLARE SUB SetXRange (Min AS INTEGER, Max AS INTEGER)
  55. DECLARE SUB SetYRange (Min AS INTEGER, Max AS INTEGER)
  56. DECLARE FUNCTION GetXMickey ()
  57. DECLARE FUNCTION GetYMickey ()
  58. DECLARE SUB SetXYMickey (XMickey AS INTEGER, YMickey AS INTEGER)
  59. DECLARE SUB SetMouseSpeed (MouseSpeed AS INTEGER)
  60. DECLARE SUB SetTextCursor (CursorType AS INTEGER, TextScreenMask AS INTEGER, TextCursorMask AS INTEGER)
  61.  
  62. FUNCTION GetXMickey
  63.  
  64.   DIM MouseRegister AS Registers
  65.  
  66.   MouseRegister.AX = 11
  67.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  68.   GetXMickey = MouseRegister.CX
  69. END FUNCTION
  70.  
  71. FUNCTION GetXPosition
  72.  
  73.   DIM MouseRegister AS Registers
  74.  
  75.   MouseRegister.AX = 3
  76.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  77.   GetXPosition = MouseRegister.CX
  78. END FUNCTION
  79.  
  80. FUNCTION GetXTextPosition
  81.  
  82.   DIM MouseRegister AS Registers
  83.  
  84.   MouseRegister.AX = 3
  85.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  86.   GetXTextPosition = (MouseRegister.CX + 8) \ 8
  87. END FUNCTION
  88.  
  89. FUNCTION GetYMickey
  90.  
  91.   DIM MouseRegister AS Registers
  92.  
  93.   MouseRegister.AX = 11
  94.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  95.   GetYMickey = MouseRegister.DX
  96. END FUNCTION
  97.  
  98. FUNCTION GetYPosition
  99.  
  100.   DIM MouseRegister AS Registers
  101.  
  102.   MouseRegister.AX = 3
  103.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  104.   GetYPosition = MouseRegister.DX
  105. END FUNCTION
  106.  
  107. FUNCTION GetYTextPosition
  108.  
  109.   DIM MouseRegister AS Registers
  110.  
  111.   MouseRegister.AX = 3
  112.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  113.   GetYTextPosition = (MouseRegister.DX + 8) \ 8
  114. END FUNCTION
  115.  
  116. SUB HideCursor
  117.  
  118.   DIM MouseRegister AS Registers
  119.  
  120.   MouseRegister.AX = 2
  121.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  122. END SUB
  123.  
  124. FUNCTION InitMouse
  125.   DIM MouseRegister AS Registers
  126.  
  127.   MouseRegister.AX = False
  128.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  129.   IF MouseRegister.AX = True THEN
  130.     InitMouse = MouseRegister.AX
  131.   ELSE
  132.     InitMouse = False
  133.   END IF
  134. END FUNCTION
  135.  
  136. FUNCTION LeftButton
  137.  
  138.   DIM MouseRegister AS Registers
  139.  
  140.   MouseRegister.AX = 5
  141.   MouseRegister.BX = 0
  142.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  143.   LeftButton = (MouseRegister.AX = 1)
  144. END FUNCTION
  145.  
  146. FUNCTION LeftButtonPressed
  147.  
  148.   DIM MouseRegister AS Registers
  149.  
  150.   MouseRegister.AX = 5
  151.   MouseRegister.BX = 0
  152.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  153.   LeftButtonPressed = MouseRegister.BX
  154. END FUNCTION
  155.  
  156. FUNCTION LeftButtonReleased
  157.  
  158.   DIM MouseRegister AS Registers
  159.  
  160.   MouseRegister.AX = 6
  161.   MouseRegister.BX = 0
  162.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  163.   LeftButtonReleased = MouseRegister.BX
  164. END FUNCTION
  165.  
  166. FUNCTION MiddleButton
  167.  
  168.   DIM MouseRegister AS Registers
  169.  
  170.   MouseRegister.AX = 5
  171.   MouseRegister.BX = 2
  172.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  173.   MiddleButton = (MouseRegister.AX = 3)
  174. END FUNCTION
  175.  
  176. FUNCTION MiddleButtonPressed
  177.  
  178.   DIM MouseRegister AS Registers
  179.  
  180.   MouseRegister.AX = 5
  181.   MouseRegister.BX = 2
  182.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  183.   MiddleButtonPressed = MouseRegister.BX
  184. END FUNCTION
  185.  
  186. FUNCTION MiddleButtonReleased
  187.  
  188.   DIM MouseRegister AS Registers
  189.  
  190.   MouseRegister.AX = 6
  191.   MouseRegister.BX = 2
  192.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  193.   MiddleButtonReleased = MouseRegister.BX
  194. END FUNCTION
  195.  
  196. FUNCTION MouseDownMoved
  197.  
  198.   DIM MouseRegister AS Registers
  199.  
  200.   MouseRegister.AX = 11
  201.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  202.   IF (MouseRegister.DX > 0) THEN
  203.     MouseDownMoved = True
  204.   ELSE
  205.     MouseDownMoved = False
  206.   END IF
  207. END FUNCTION
  208.  
  209. FUNCTION MouseLeftMoved
  210.  
  211.   DIM MouseRegister AS Registers
  212.  
  213.   MouseRegister.AX = 11
  214.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  215.   IF (MouseRegister.CX < 0) THEN
  216.     MouseLeftMoved = True
  217.   ELSE
  218.     MouseLeftMoved = False
  219.   END IF
  220. END FUNCTION
  221.  
  222. FUNCTION MouseMoved
  223.  
  224.   DIM MouseRegister AS Registers
  225.  
  226.   MouseRegister.AX = 11
  227.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  228.   IF (MouseRegister.CX <> 0) AND (MouseRegister.DX <> 0) THEN
  229.     MouseMoved = True
  230.   ELSE
  231.     MouseMoved = False
  232.   END IF
  233. END FUNCTION
  234.  
  235. FUNCTION MouseRightMoved
  236.  
  237.   DIM MouseRegister AS Registers
  238.  
  239.   MouseRegister.AX = 11
  240.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  241.   IF (MouseRegister.CX > 0) THEN
  242.     MouseRightMoved = True
  243.   ELSE
  244.     MouseRightMoved = False
  245.   END IF
  246. END FUNCTION
  247.  
  248. FUNCTION MouseUpMoved
  249.  
  250.   DIM MouseRegister AS Registers
  251.  
  252.   MouseRegister.AX = 11
  253.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  254.   IF (MouseRegister.DX < 0) THEN
  255.     MouseUpMoved = True
  256.   ELSE
  257.     MouseUpMoved = False
  258.   END IF
  259. END FUNCTION
  260.  
  261. SUB ResetMouse
  262.  
  263.   DIM MouseRegister AS Registers
  264.  
  265.   MouseRegister.AX = 0
  266.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  267. END SUB
  268.  
  269. FUNCTION RightButton
  270.  
  271.   DIM MouseRegister AS Registers
  272.  
  273.   MouseRegister.AX = 5
  274.   MouseRegister.BX = 1
  275.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  276.   RightButton = (MouseRegister.AX = 2)
  277. END FUNCTION
  278.  
  279. FUNCTION RightButtonPressed
  280.  
  281.   DIM MouseRegister AS Registers
  282.  
  283.   MouseRegister.AX = 5
  284.   MouseRegister.BX = 1
  285.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  286.   RightButtonPressed = MouseRegister.BX
  287. END FUNCTION
  288.  
  289. FUNCTION RightButtonReleased
  290.  
  291.   DIM MouseRegister AS Registers
  292.  
  293.   MouseRegister.AX = 6
  294.   MouseRegister.BX = 1
  295.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  296.   RightButtonReleased = MouseRegister.BX
  297. END FUNCTION
  298.  
  299. SUB SetMouseSpeed (MouseSpeed AS INTEGER)
  300.  
  301.   DIM MouseRegister AS Registers
  302.  
  303.   MouseRegister.AX = 19
  304.   MouseRegister.DX = MouseSpeed
  305.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  306. END SUB
  307.  
  308. SUB SetTextCursor (CursorType AS INTEGER, TextScreenMask AS INTEGER, TextCursorMask AS INTEGER)
  309.  
  310.   DIM MouseRegister AS Registers
  311.  
  312.   MouseRegister.AX = 10
  313.   MouseRegister.BX = CursorType
  314.   MouseRegister.CX = TextScreenMask
  315.   MouseRegister.DX = TextCursorMask
  316.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  317. END SUB
  318.  
  319. SUB SetXRange (Min AS INTEGER, Max AS INTEGER)
  320.  
  321.   DIM MouseRegister AS Registers
  322.  
  323.   MouseRegister.AX = 7
  324.   MouseRegister.CX = XMin
  325.   MouseRegister.DX = XMax
  326.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  327. END SUB
  328.  
  329. SUB SetXYMickey (XMickey AS INTEGER, YMickey AS INTEGER)
  330.  
  331.   DIM MouseRegister AS Registers
  332.  
  333.   MouseRegister.AX = 15
  334.   MouseRegister.CX = XMickey
  335.   MouseRegister.DX = YMickey
  336.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  337. END SUB
  338.  
  339. SUB SetXYMouse (X AS INTEGER, Y AS INTEGER)
  340.  
  341.   DIM MouseRegister AS Registers
  342.  
  343.   MouseRegister.AX = 4
  344.   MouseRegister.CX = X
  345.   MouseRegister.DX = Y
  346.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  347. END SUB
  348.  
  349. SUB SetYRange (Min AS INTEGER, Max AS INTEGER)
  350.  
  351.   DIM MouseRegister AS Registers
  352.  
  353.   MouseRegister.AX = 8
  354.   MouseRegister.CX = YMin
  355.   MouseRegister.DX = YMax
  356.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  357. END SUB
  358.  
  359. SUB ShowCursor
  360.  
  361.   DIM MouseRegister AS Registers
  362.  
  363.   MouseRegister.AX = 1
  364.   CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
  365. END SUB
  366.  
  367.