' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' ³                                                                        ³
' ³                            M O U S E . B I                             ³
' ³                                                                        ³
' ³  This program is (c) Copyright 1990 by Tony Martin.  All rights are    ³
' ³  reserved by myself.                                                   ³
' ³                                                                        ³
' ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
' ³                                                                        ³
' ³  This file is a QuickBASIC include file for the mouse routines found   ³
' ³  in the MOUSE.BAS source file.  It contains symbolic constants, user   ³
' ³  defined types, and DECLARE statements for all the mouse routines.     ³
' ³  You must include this file in your source code if you want to use     ³
' ³  the mouse routines.  The following statement will do the trick:       ³
' ³                                                                        ³
' ³                       REM $Include: 'MOUSE.BI'                         ³
' ³                                                                        ³
' ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
' ³                                                                        ³
' ³  Completion date: June 26, 1990                                        ³
' ³  Author: Tony Martin                                                   ³
' ³  Language: Microsoft QuickBASIC v4.5                                   ³
' ³                                                                        ³
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


' ==========================================================================
' Symbolic constants for TRUE (non-zero) and FALSE (0).
' ==========================================================================

CONST FALSE = 0, TRUE = 1


' ==========================================================================
' Constants for mouse button masks.
' ==========================================================================

CONST leftButtonMask% = 1
CONST rightButtonMask% = 2
CONST centerButtonMask% = 4


' ==========================================================================
' Constants to represent the UP or DOWN status of mouse buttons.
' ==========================================================================

CONST BUTTONUP = 0
CONST BUTTONDOWN = 1

CONST MOUSEOFF = 0
CONST MOUSEON = 1


' ==========================================================================
' Constants to refer to the left, right, and center mouse buttons.
' ==========================================================================

CONST LEFTBUTTON = 0
CONST RIGHTBUTTON = 1
CONST CENTERBUTTON = 2


' ==========================================================================
' Constants to represent the five types of mice recognized by the mouse
' driver function 36, Get Mouse Version Number, Mouse Type, and IRQ number.
' ==========================================================================

CONST BUSMOUSE = 1
CONST SERIALMOUSE = 2
CONST INPORTMOUSE = 3
CONST PS2MOUSE = 4
CONST HEWLETTPACKARDMOUSE = 5


' ==========================================================================
' Constants to define the two types of mouse cursors, as well as the default
' software mouse cursor masks.
' ==========================================================================
CONST SOFTWARECURSOR = 0
CONST HARDWARECURSOR = 1
CONST DEFAULTSMASK = &H77FF
CONST DEFAULTCMASK = &H7700


' ==========================================================================
' Define a register type to be used by the INTERRUPT routine.  Required for
' accessing the mouse driver interrupt (33h).
' ==========================================================================

TYPE RegType
		 ax    AS INTEGER
		 bx    AS INTEGER
		 cx    AS INTEGER
		 dx    AS INTEGER
		 bp    AS INTEGER
		 si    AS INTEGER
		 di    AS INTEGER
		 flags AS INTEGER
END TYPE

TYPE RegTypeX
		 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


' ==========================================================================
' DECLARE statement for all the routines in the mouse package.  Note that
' the INTERRUPT routine is found in the QB.QLB/.LIB libraries supplied to
' you with your QuickBASIC compiler by Microsoft.
' ==========================================================================

DECLARE SUB INTERRUPT (intnum AS INTEGER, inreg AS RegType, outreg AS RegType)
DECLARE SUB INTERRUPTX (intnum AS INTEGER, inreg AS RegTypeX, outreg AS RegTypeX)
DECLARE FUNCTION MouseInit% ()
DECLARE SUB Mouse (m1%, m2%, m3%, m4%)
DECLARE SUB MouseButtonPressInfo (button%, numPresses%, x%, y%)
DECLARE SUB MouseButtonReleaseInfo (button%, numReleases%, x%, y%)
DECLARE SUB MouseButtonStatus (bl%, br%, bc%)
DECLARE SUB MouseGetSensitivity (x%, y%, doubleSpeed%)
DECLARE SUB MouseHide ()
DECLARE SUB MouseInfo (driverVersion$, mouseType%, IRQ%)
DECLARE SUB MouseMickeyCount (x%, y%)
DECLARE SUB MousePosition (x%, y%)
DECLARE SUB MouseSelectTextCursor (cursorType%, topScan%, botScan%, scrMask%, curMask%)
DECLARE SUB MouseSetMinMaxX (minX%, maxX%)
DECLARE SUB MouseSetMinMaxY (minY%, maxY%)
DECLARE SUB MouseSetPosition (x%, y%)
DECLARE SUB MouseSetSensitivity (x%, y%, doubleSpeed%)
DECLARE SUB MouseShow ()

