BBS: Inland Empire Archive Date: 06-09-92 (16:12) Number: 193 From: CORIDON HENSHAW Refer#: NONE To: RICH GELDREICH Recvd: NO Subj: Text Cursor Conf: (2) Quik_Bas
DECLARE FUNCTION GetMode% ()
'============================================================================
'
' MOUSE.BAS - Mouse Support Routines for the User Interface Toolbox in
' Microsoft BASIC 7.1, Professional Development System
' Copyright (C) 1987-1990, Microsoft Corporation
'
' NOTE: This sample source code toolbox is intended to demonstrate some
' of the extended capabilities of Microsoft BASIC 7.1 Professional
' Development system that can help to leverage the professional
' developer's time more effectively. While you are free to use,
' modify, or distribute the routines in this module in any way you
' find useful, it should be noted that these are examples only and
' should not be relied upon as a fully-tested "add-on" library.
'
' PURPOSE: These routines are required for mouse support in the user
' interface toolbox, but they may be used independently as well.
'
' For information on creating a library and QuickLib from the routines
' contained in this file, read the comment header of GENERAL.BAS.
'============================================================================
DEFINT A-Z
'$INCLUDE: 'menu.bi'
COMMON SHARED /uitools/ GloMenu AS MenuMiscType
COMMON SHARED /uitools/ GloTitle() AS MenuTitleType
COMMON SHARED /uitools/ GloItem() AS MenuItemType
FUNCTION GetMode%
DIM Regs AS RegType
Regs.AX = &HF00
CALL INTERRUPT(&H10, Regs, Regs)
Mode% = (&HFF AND Regs.AX)
IF Mode% < 4 THEN GetMode = FALSE
IF Mode% >= 4 THEN GetMode = TRUE
END FUNCTION
SUB MouseBorder (row1, col1, row2, col2) STATIC
' =======================================================================
' Sets max and min bounds on mouse movement both vertically, and
' horizontally
' =======================================================================
MouseDriver 7, 0, (col1 - 1) * 8, (col2 - 1) * 8
MouseDriver 8, 0, (row1 - 1) * 8, (row2 - 1) * 8
END SUB
SUB MouseDriver (m0, m1, m2, m3) STATIC
DIM Regs AS RegType
IF MouseChecked = FALSE THEN
DEF SEG = 0
MouseSegment& = 256& * PEEK(207) + PEEK(206)
MouseOffset& = 256& * PEEK(205) + PEEK(204)
DEF SEG = MouseSegment&
IF (MouseSegment& = 0 AND MouseOffset& = 0) OR
PEEK(MouseOffset&) = 207 THEN
MousePresent = FALSE
MouseChecked = TRUE
DEF SEG
END IF
END IF
IF MousePresent = FALSE AND MouseChecked = TRUE THEN
EXIT SUB
END IF
' =======================================================================
' Calls interrupt 51 to invoke mouse functions in the MS Mouse Driver.
' =======================================================================
Regs.AX = m0
Regs.Bx = m1
Regs.CX = m2
Regs.DX = m3
INTERRUPT 51, Regs, Regs
m0 = Regs.AX
m1 = Regs.Bx
m2 = Regs.CX
m3 = Regs.DX
IF MouseChecked THEN EXIT SUB
' =======================================================================
' Check for successful mouse initialization
' =======================================================================
IF m0 AND NOT MouseChecked THEN
--- msgedsq 2.0.5
* Origin: -=- Point Blank -=- Support Fidonet Reform -=-
Me, an EchoTwit? -=- (1:250/804.200)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET