80 lines
2.1 KiB
Plaintext
80 lines
2.1 KiB
Plaintext
!
|
|
! MOUSE WITH 'MOUSE.LIB' LIBRARY
|
|
!
|
|
|
|
PROGRAM MOUSE
|
|
|
|
!$KEY
|
|
|
|
!$INCLUDE="PC.LIB"
|
|
|
|
!$INCLUDE="MOUSE.LIB"
|
|
|
|
PROCEDURE GETMONITORTYPE(->MONITOR$)
|
|
!$RCODE="DEF SEG=0"
|
|
STATUS=PEEK($463)
|
|
!$RCODE="DEF SEG"
|
|
MONITOR$=""
|
|
IF STATUS=$B4 THEN
|
|
!$RCODE="STATUS=(INP(&H3BA) AND &H80)"
|
|
FOR DELAYLOOP=1 TO 30000 DO
|
|
!$RCODE="XX=((INP(&H3BA) AND &H80)<>STATUS)"
|
|
IF XX THEN MONITOR$="HERC" END IF
|
|
END FOR
|
|
IF MONITOR$="" THEN MONITOR$="MONO" END IF
|
|
ELSE
|
|
REGAX%=$1A00
|
|
EXECUTEASM($10)
|
|
IF (REGAX% AND $FF)=$1A THEN
|
|
MONITOR$="VGA"
|
|
ELSE
|
|
REGAX%=$1200 REGBX%=$10
|
|
EXECUTEASM($10)
|
|
IF (REGBX% AND $FF)=$10 THEN
|
|
MONITOR$="CGA"
|
|
ELSE
|
|
MONITOR$="EGA"
|
|
END IF
|
|
END IF
|
|
END IF
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
INITASM
|
|
GETMONITORTYPE(->MONITOR$)
|
|
COLOR(7,0)
|
|
CLS
|
|
LOCATE(1,50) PRINT("MONITOR TYPE ";MONITOR$)
|
|
MOUSE_RESETANDSTATUS(->STATUS,BUTTONS)
|
|
IF STATUS<>-1 THEN
|
|
BEEP
|
|
CLS
|
|
PRINT("MOUSE DRIVER NOT INSTALLED OR MOUSE NOT FOUND")
|
|
REPEAT
|
|
GET(IN$)
|
|
UNTIL IN$<>""
|
|
ELSE
|
|
MOUSE_SETEXTCURSOR
|
|
MOUSE_SETCURSORLIMITS(8,199,0,639)
|
|
MOUSE_SETSENSITIVITY(30,30,50)
|
|
MOUSE_SHOWCURSOR
|
|
REPEAT
|
|
OLDX=X OLDY=Y
|
|
MOUSE_GETCURSORPOSITION(->X,Y,LEFT%,RIGHT%,BOTH%,MIDDLE%)
|
|
GET(IN$)
|
|
COLOR(15,0)
|
|
LOCATE(1,2)
|
|
PRINT("X =";INT(X/8)+1;" Y =";INT(Y/8)+1;" ";)
|
|
IF LEFT% THEN LOCATE(1,37) COLOR(10,0) PRINT("LEFT";) END IF
|
|
IF RIGHT% THEN LOCATE(1,37) COLOR(12,0) PRINT("RIGHT";) END IF
|
|
IF MIDDLE% THEN LOCATE(1,37) COLOR(14,0) PRINT("MIDDLE";) END IF
|
|
IF NOT RIGHT% AND NOT LEFT% AND NOT MIDDLE% THEN
|
|
LOCATE(1,37) PRINT(" ";)
|
|
END IF
|
|
IF NOT (X=OLDX AND Y=OLDY) THEN MOUSE_SHOWCURSOR END IF
|
|
UNTIL IN$=CHR$(27)
|
|
END IF
|
|
MOUSE_HIDECURSOR
|
|
CLS
|
|
END PROGRAM
|