home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_BAS
/
DNALIB59.ZIP
/
MOUSE.BAS
< prev
next >
Wrap
BASIC Source File
|
1994-02-06
|
6KB
|
216 lines
SUB LocateCursor (Row%, Col%)PUBLIC
REG 4, 8 * (Row% - 1)
REG 3, 8 * (Col% - 1)
REG 1, 4
CALL INTERRUPT &H33
END SUB
'----------------------------------------------------------------------------
SUB FindMenu(Row%,Col%,Found%)PUBLIC
Found% = 0
Find% = SCREEN(Row%,Col%)
IF CHR$(Find%) = CHR$(32) THEN 'which side closest left or right
EndCol% = Col%
StartCol% = Col%
DO
IF EndCol% > 1 THEN DECR EndCol%
IF StartCol% < 80 THEN INCR StartCol%
RightFind% = SCREEN(Row%,StartCol%)
IF CHR$(RightFind%) <> CHR$(32) THEN
Col% = StartCol%
EXIT LOOP
END IF
LeftFind% = SCREEN(Row%,EndCol%)
IF CHR$(LeftFind%) <> CHR$(32) THEN
Col% = EndCol%
EXIT LOOP
END IF
LOOP UNTIL StartCol% = 80 AND EndCol% = 1
END IF
FOR i% = 1 TO Col%
Find% = SCREEN(Row%,i%)
IF CHR$(Find%) <> CHR$(32) THEN
INCR Found%
DO
Find% = SCREEN(Row%,i%)
INCR i%
LOOP UNTIL Find% = 32 OR i% = Col%
END IF
NEXT i%
END SUB
'----------------------------------------------------------------------------
SUB ScreenPlus(Row%,Col%,TextFound$)PUBLIC
TextFound$ = ""
Find% = SCREEN(Row%,Col%)
IF CHR$(Find%) = CHR$(32) THEN 'which side closest left or right
EndCol% = Col%
StartCol% = Col%
DO
IF EndCol% > 1 THEN DECR EndCol%
IF StartCol% < 80 THEN INCR StartCol%
RightFind% = SCREEN(Row%,StartCol%)
IF CHR$(RightFind%) <> CHR$(32) THEN
Col% = StartCol%
DO
Find% = SCREEN(Row%,Col%)
TextFound$ = TextFound$ + CHR$(Find%)
INCR Col%
LOOP UNTIL CHR$(Find%) = CHR$(32) OR Col% = 81
TextFound$ = RTRIM$(TextFound$)
EXIT LOOP
END IF
LeftFind% = SCREEN(Row%,EndCol%)
IF CHR$(LeftFind%) <> CHR$(32) THEN
Col% = EndCol%
DO
Find% = SCREEN(Row%,Col%)
TextFound$ = CHR$(Find%) + TextFound$
DECR Col%
LOOP UNTIL CHR$(Find%) = CHR$(32) OR Col% = 0
TextFound$ = LTRIM$(TextFound$)
EXIT LOOP
END IF
LOOP UNTIL StartCol% = 80 AND EndCol% = 1
ELSE
IF Col% > 1 THEN
StartCol% = Col%
FOR i% = 1 TO Col%
DECR StartCol%
IF StartCol% THEN Find% = SCREEN(Row%,StartCol%)
IF CHR$(Find%) = CHR$(32) OR StartCol% = 0 THEN
Col% = StartCol% + 1
DO
Find% = SCREEN(Row%,Col%)
TextFound$ = TextFound$ + CHR$(Find%)
INCR Col%
LOOP UNTIL CHR$(Find%) = CHR$(32) OR Col% = 81
TextFound$ = RTRIM$(TextFound$)
EXIT FOR
END IF
NEXT i%
ELSE
DO
Find% = SCREEN(Row%,Col%)
TextFound$ = TextFound$ + CHR$(Find%)
INCR Col%
LOOP UNTIL CHR$(Find%) = CHR$(32) OR Col% = 81
TextFound$ = RTRIM$(TextFound$)
END IF
END IF
END SUB
'----------------------------------------------------------------------------
FUNCTION MouseThere%()PUBLIC
REG 1,0
CALL INTERRUPT &H33
MouseThere%=REG(1)
END FUNCTION
'----------------------------------------------------------------------------
SUB ShowCursor()PUBLIC
REG 1,1
CALL INTERRUPT &H33
END SUB
'----------------------------------------------------------------------------
SUB HideCursor()PUBLIC
REG 1,2
CALL INTERRUPT &H33
END SUB
'----------------------------------------------------------------------------
SUB Clicked (Rgt%, Lft%, Row%, Col%)PUBLIC
REG 1,3
CALL INTERRUPT &H33
SELECT CASE REG(2)
CASE 1
Lft%=1
CASE 2
Rgt%=1
CASE 3
Lft%=1
Rgt%=1
END SELECT
Row%=REG(4) \ 8 + 1
Col%=REG(3) \ 8 + 1
END SUB
'----------------------------------------------------------------------------
FUNCTION LeftButtonReleased%()PUBLIC
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 1 THEN
DELAY .05
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 0 THEN
LeftButtonReleased% = 1
ELSE
LeftButtonReleased% = 0
END IF
END IF
END FUNCTION
'----------------------------------------------------------------------------
FUNCTION RightButtonReleased%()PUBLIC
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 2 THEN
DELAY .05
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 0 THEN
RightButtonReleased% = 1
ELSE
RightButtonReleased% = 0
END IF
END IF
END FUNCTION
'----------------------------------------------------------------------------
FUNCTION BothButtonReleased%()PUBLIC
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 3 THEN
DELAY .05
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 0 THEN
BothButtonReleased% = 1
ELSE
BothButtonReleased% = 0
END IF
END IF
END FUNCTION
'----------------------------------------------------------------------------
FUNCTION CentreButtonReleased%()PUBLIC
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 4 THEN
DELAY .05
REG 1,3
CALL INTERRUPT &H33
Button% = REG(2)
IF Button% = 0 THEN
CentreButtonReleased% = 1
ELSE
CentreButtonReleased% = 0
END IF
END IF
END FUNCTION