home *** CD-ROM | disk | FTP | other *** search
- '──────────────────────────────
- '
- ' Mousebox, Version 1.0
- ' Copyright (c) 1988, 89, 90
- ' by
- '
- ' Ralf Krause
- '
- ' Leuchtenberger Str. 7a
- ' D-8480 Weiden i. d. Opf.
- '──────────────────────────────
-
- TYPE Registers
- AX AS INTEGER
- BX AS INTEGER
- CX AS INTEGER
- DX AS INTEGER
- BP AS INTEGER
- SI AS INTEGER
- DI AS INTEGER
- Flags AS INTEGER
- DS AS INTEGER
- ES AS INTEGER
- END TYPE
-
-
- CONST MouseIntr = &H33 ' Mouse-INTERRUPT
- CONST SoftWare = 0 ' Softwarecursor bei SetTextCursor
- CONST HardWare = 1 ' Hardwarecursor bei SetTextCursor
-
- DECLARE FUNCTION InitMouse ()
- DECLARE SUB ResetMouse ()
- DECLARE SUB ShowCursor ()
- DECLARE SUB HideCursor ()
- DECLARE FUNCTION GetXPosition ()
- DECLARE FUNCTION GetYPosition ()
- DECLARE FUNCTION GetXTextPosition ()
- DECLARE FUNCTION GetYTextPosition ()
- DECLARE FUNCTION LeftButton ()
- DECLARE FUNCTION RightButton ()
- DECLARE FUNCTION MiddleButton ()
- DECLARE FUNCTION MouseMoved ()
- DECLARE FUNCTION MouseLeftMoved ()
- DECLARE FUNCTION MouseRightMoved ()
- DECLARE FUNCTION MouseUpMoved ()
- DECLARE FUNCTION MouseDownMoved ()
- DECLARE FUNCTION LeftButtonPressed ()
- DECLARE FUNCTION RightButtonPressed ()
- DECLARE FUNCTION MiddleButtonPressed ()
- DECLARE FUNCTION LeftButtonReleased ()
- DECLARE FUNCTION RightButtonReleased ()
- DECLARE FUNCTION MiddleButtonReleased ()
- DECLARE SUB SetXYMouse (X AS INTEGER, Y AS INTEGER)
- DECLARE SUB SetXRange (Min AS INTEGER, Max AS INTEGER)
- DECLARE SUB SetYRange (Min AS INTEGER, Max AS INTEGER)
- DECLARE FUNCTION GetXMickey ()
- DECLARE FUNCTION GetYMickey ()
- DECLARE SUB SetXYMickey (XMickey AS INTEGER, YMickey AS INTEGER)
- DECLARE SUB SetMouseSpeed (MouseSpeed AS INTEGER)
- DECLARE SUB SetTextCursor (CursorType AS INTEGER, TextScreenMask AS INTEGER, TextCursorMask AS INTEGER)
-
- FUNCTION GetXMickey
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- GetXMickey = MouseRegister.CX
- END FUNCTION
-
- FUNCTION GetXPosition
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 3
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- GetXPosition = MouseRegister.CX
- END FUNCTION
-
- FUNCTION GetXTextPosition
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 3
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- GetXTextPosition = (MouseRegister.CX + 8) \ 8
- END FUNCTION
-
- FUNCTION GetYMickey
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- GetYMickey = MouseRegister.DX
- END FUNCTION
-
- FUNCTION GetYPosition
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 3
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- GetYPosition = MouseRegister.DX
- END FUNCTION
-
- FUNCTION GetYTextPosition
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 3
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- GetYTextPosition = (MouseRegister.DX + 8) \ 8
- END FUNCTION
-
- SUB HideCursor
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 2
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- FUNCTION InitMouse
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = False
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- IF MouseRegister.AX = True THEN
- InitMouse = MouseRegister.AX
- ELSE
- InitMouse = False
- END IF
- END FUNCTION
-
- FUNCTION LeftButton
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 5
- MouseRegister.BX = 0
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- LeftButton = (MouseRegister.AX = 1)
- END FUNCTION
-
- FUNCTION LeftButtonPressed
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 5
- MouseRegister.BX = 0
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- LeftButtonPressed = MouseRegister.BX
- END FUNCTION
-
- FUNCTION LeftButtonReleased
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 6
- MouseRegister.BX = 0
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- LeftButtonReleased = MouseRegister.BX
- END FUNCTION
-
- FUNCTION MiddleButton
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 5
- MouseRegister.BX = 2
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- MiddleButton = (MouseRegister.AX = 3)
- END FUNCTION
-
- FUNCTION MiddleButtonPressed
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 5
- MouseRegister.BX = 2
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- MiddleButtonPressed = MouseRegister.BX
- END FUNCTION
-
- FUNCTION MiddleButtonReleased
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 6
- MouseRegister.BX = 2
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- MiddleButtonReleased = MouseRegister.BX
- END FUNCTION
-
- FUNCTION MouseDownMoved
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- IF (MouseRegister.DX > 0) THEN
- MouseDownMoved = True
- ELSE
- MouseDownMoved = False
- END IF
- END FUNCTION
-
- FUNCTION MouseLeftMoved
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- IF (MouseRegister.CX < 0) THEN
- MouseLeftMoved = True
- ELSE
- MouseLeftMoved = False
- END IF
- END FUNCTION
-
- FUNCTION MouseMoved
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- IF (MouseRegister.CX <> 0) AND (MouseRegister.DX <> 0) THEN
- MouseMoved = True
- ELSE
- MouseMoved = False
- END IF
- END FUNCTION
-
- FUNCTION MouseRightMoved
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- IF (MouseRegister.CX > 0) THEN
- MouseRightMoved = True
- ELSE
- MouseRightMoved = False
- END IF
- END FUNCTION
-
- FUNCTION MouseUpMoved
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 11
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- IF (MouseRegister.DX < 0) THEN
- MouseUpMoved = True
- ELSE
- MouseUpMoved = False
- END IF
- END FUNCTION
-
- SUB ResetMouse
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 0
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- FUNCTION RightButton
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 5
- MouseRegister.BX = 1
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- RightButton = (MouseRegister.AX = 2)
- END FUNCTION
-
- FUNCTION RightButtonPressed
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 5
- MouseRegister.BX = 1
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- RightButtonPressed = MouseRegister.BX
- END FUNCTION
-
- FUNCTION RightButtonReleased
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 6
- MouseRegister.BX = 1
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- RightButtonReleased = MouseRegister.BX
- END FUNCTION
-
- SUB SetMouseSpeed (MouseSpeed AS INTEGER)
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 19
- MouseRegister.DX = MouseSpeed
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- SUB SetTextCursor (CursorType AS INTEGER, TextScreenMask AS INTEGER, TextCursorMask AS INTEGER)
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 10
- MouseRegister.BX = CursorType
- MouseRegister.CX = TextScreenMask
- MouseRegister.DX = TextCursorMask
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- SUB SetXRange (Min AS INTEGER, Max AS INTEGER)
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 7
- MouseRegister.CX = XMin
- MouseRegister.DX = XMax
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- SUB SetXYMickey (XMickey AS INTEGER, YMickey AS INTEGER)
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 15
- MouseRegister.CX = XMickey
- MouseRegister.DX = YMickey
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- SUB SetXYMouse (X AS INTEGER, Y AS INTEGER)
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 4
- MouseRegister.CX = X
- MouseRegister.DX = Y
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- SUB SetYRange (Min AS INTEGER, Max AS INTEGER)
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 8
- MouseRegister.CX = YMin
- MouseRegister.DX = YMax
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
- SUB ShowCursor
-
- DIM MouseRegister AS Registers
-
- MouseRegister.AX = 1
- CALL Interrupt(MouseIntr, MouseRegister, MouseRegister)
- END SUB
-
-