1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-07 16:50:24 +00:00

Adapts theBOB's samples so they don't use ABSOLUTE.

Thanks to Simmons for the conversion utility https://www.tapatalk.com/groups/qbasic/viewtopic.php?p=204977#p204977
This commit is contained in:
FellippeHeitor 2020-04-03 15:07:38 -03:00
parent 702e0f708a
commit d4ef195bd1
9 changed files with 216 additions and 45 deletions

View file

@ -216,7 +216,7 @@ SUB MouseDRIVER (LB, RB, MX, MY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
mouse = SADD(MouseDATA$) mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, MX, MY, mouse) CALL ABSOLUTE_MOUSE_EMU (LB, RB, MX, MY)
END SUB END SUB
@ -261,3 +261,22 @@ SUB ShowMOUSE
LB = 1 LB = 1
MouseDRIVER LB, 0, 0, 0 MouseDRIVER LB, 0, 0, 0
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -1433,7 +1433,7 @@ SUB MouseDRIVER (LB, RB, Mx, My)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
mouse = SADD(MouseDATA$) mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, Mx, My, mouse) CALL ABSOLUTE_MOUSE_EMU (LBLB, RB RB, MX Mx, MY My)
END SUB END SUB
@ -2198,3 +2198,22 @@ ScalePIXELy = PixelY * Scale + 51
RETURN RETURN
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -221,7 +221,7 @@ SUB MouseDRIVER (LB, RB, MX, MY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
mouse = SADD(MouseDATA$) mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, MX, MY, mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLB, RB RB RB, MX Mx MX, MY My MY)
END SUB END SUB
@ -299,3 +299,22 @@ SUB ShowMOUSE
LB = 1 LB = 1
MouseDRIVER LB, 0, 0, 0 MouseDRIVER LB, 0, 0, 0
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -152,20 +152,20 @@ LOOP
END '************************** PALETTE DATA ******************************** END '************************** PALETTE DATA ********************************
PaletteDATA: PaletteDATA:
DATA 4, 2, 12, 6, 4, 14, 12, 12, 20 DATA 4, 2, 12, 6, 4, 14, 12, 12, 20
DATA 31, 31, 38, 46, 46, 50, 0, 0, 0 DATA 31, 31, 38, 46, 46, 50, 0, 0, 0
CustomCOLORS: CustomCOLORS:
DATA 6,7,8,10,12,13,14 DATA 6,7,8,10,12,13,14
FlameCOLOR: FlameCOLOR:
DATA 63, 63, 63, 63, 32, 12, 63, 52, 0 DATA 63, 63, 63, 63, 32, 12, 63, 52, 0
SilverCOLOR: SilverCOLOR:
DATA 63, 63, 63, 38, 38, 35, 53, 53, 48 DATA 63, 63, 63, 38, 38, 35, 53, 53, 48
GoldCOLOR: GoldCOLOR:
DATA 63, 63, 42, 63, 42, 21, 63, 52, 32 DATA 63, 63, 42, 63, 42, 21, 63, 52, 32
WhiteCOLOR: WhiteCOLOR:
DATA 63, 63, 63, 48, 48, 53, 53, 53, 58 DATA 63, 63, 63, 48, 48, 53, 53, 53, 58
REM $STATIC REM $STATIC
SUB Assembly1 SUB Assembly1
@ -1756,7 +1756,7 @@ NEXT x
FOR n = 0 TO 15 FOR n = 0 TO 15
IF Colors4%(n) = 1 THEN SigCOLORS& = SigCOLORS& + 1 IF Colors4%(n) = 1 THEN SigCOLORS& = SigCOLORS& + 1
NEXT n NEXT n
FileTYPE$ = "BM" FileTYPE$ = "BM"
Reserved1% = 0 Reserved1% = 0
Reserved2% = 0 Reserved2% = 0
@ -1816,7 +1816,7 @@ FOR n% = 1 TO 46 STEP 3
PUT #1, , Colr$ PUT #1, , Colr$
PUT #1, , u$ 'Unused byte PUT #1, , u$ 'Unused byte
NEXT n% NEXT n%
FOR y = y2% TO y1% STEP -1 FOR y = y2% TO y1% STEP -1
FOR x = x1% TO x2% STEP 2 FOR x = x1% TO x2% STEP 2
HiX = POINT(x, y) HiX = POINT(x, y)
@ -2401,7 +2401,7 @@ IF TopMENU AND LB = -1 THEN
CASE 3: GOSUB MenuDARK: SYSTEM CASE 3: GOSUB MenuDARK: SYSTEM
END SELECT END SELECT
END IF END IF
EXIT SUB EXIT SUB
MenuLIGHT: MenuLIGHT:
@ -2439,7 +2439,7 @@ SUB MouseDRIVER (LB, RB, MX, MY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
Mouse = SADD(MouseDATA$) Mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, MX, MY, Mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLBLB, RB RB RB RB, MX Mx MX MX, MY My MY MY)
END SUB END SUB
@ -3343,3 +3343,22 @@ NEXT n
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -133,14 +133,14 @@ RANDOMIZE TIMER
DO DO
PlayGAME PlayGAME
LOOP LOOP
END END
PaletteDATA: PaletteDATA:
DATA 0, 4, 16, 0, 10, 21, 0, 16, 32, 32, 10, 0 DATA 0, 4, 16, 0, 10, 21, 0, 16, 32, 32, 10, 0
DATA 63, 0, 0, 63, 32, 0, 18, 18, 24, 30, 30, 37 DATA 63, 0, 0, 63, 32, 0, 18, 18, 24, 30, 30, 37
DATA 42, 42, 50, 55, 55, 63, 0, 0, 0, 43, 27, 20 DATA 42, 42, 50, 55, 55, 63, 0, 0, 0, 43, 27, 20
DATA 8, 8, 21, 0, 63, 21, 63, 55, 25, 63, 63, 63 DATA 8, 8, 21, 0, 63, 21, 63, 55, 25, 63, 63, 63
SUB ApeCHUCKLE (Which) SUB ApeCHUCKLE (Which)
@ -503,7 +503,7 @@ KongX = LBldg * 80 - 59
KongY = Buildings(LBldg, 2) - 42 KongY = Buildings(LBldg, 2) - 42
YoungX = RBldg * 80 - 59 YoungX = RBldg * 80 - 59
YoungY = Buildings(RBldg, 2) - 42 YoungY = Buildings(RBldg, 2) - 42
DEF SEG = VARSEG(Box(1)) DEF SEG = VARSEG(Box(1))
BLOAD "kongmjy.bsv", VARPTR(Box(1)) BLOAD "kongmjy.bsv", VARPTR(Box(1))
DEF SEG DEF SEG
@ -847,7 +847,7 @@ SUB MouseDRIVER (LB, RB, MX, MY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
Mouse = SADD(MouseDATA$) Mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, MX, MY, Mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLBLBLB, RB RB RB RB RB, MX Mx MX MX MX, MY My MY MY MY)
END SUB END SUB
@ -1221,3 +1221,22 @@ Item = 0
RETURN RETURN
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -538,7 +538,7 @@ SUB MouseDRIVER (LB, RB, mX, mY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
Mouse = SADD(MouseDATA$) Mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, mX, mY, Mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLBLBLBLB, RB RB RB RB RB RB, MX Mx MX MX MX mX, MY My MY MY MY mY)
END SUB END SUB
@ -627,3 +627,22 @@ SUB ShowMOUSE
LB = 1 LB = 1
MouseDRIVER LB, 0, 0, 0 MouseDRIVER LB, 0, 0, 0
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -82,7 +82,7 @@ PlayerPAR AS INTEGER
PlayerSTATUS AS INTEGER PlayerSTATUS AS INTEGER
END TYPE END TYPE
DIM SHARED ScoreDATA(6) AS ScoreTYPE DIM SHARED ScoreDATA(6) AS ScoreTYPE
OPEN "mg.top" FOR APPEND AS #1: CLOSE #1 OPEN "mg.top" FOR APPEND AS #1: CLOSE #1
OPEN "mg.top" FOR INPUT AS #1 OPEN "mg.top" FOR INPUT AS #1
@ -120,7 +120,7 @@ ParDATA:
DATA 2, 3, 4, 4, 4, 2, 3, 3, 3 DATA 2, 3, 4, 4, 4, 2, 3, 3, 3
SCREEN 12 SCREEN 12
SetSCREEN SetSCREEN
DO DO
@ -130,10 +130,10 @@ LOOP
SYSTEM SYSTEM
PaletteDATA: PaletteDATA:
DATA 0,0,12, 0,10,30, 4,11,1, 21,21,63 DATA 0,0,12, 0,10,30, 4,11,1, 21,21,63
DATA 63,0,0, 42,0,42, 32,15,0, 63,16,0 DATA 63,0,0, 42,0,42, 32,15,0, 63,16,0
DATA 0,63,21, 50,27,18, 5,13,1, 28,28,32 DATA 0,63,21, 50,27,18, 5,13,1, 28,28,32
DATA 36,36,40, 44,44,48, 52,52,56, 63,63,63 DATA 36,36,40, 44,44,48, 52,52,56, 63,63,63
SUB Bridge SUB Bridge
STATIC Index, StartTIME# STATIC Index, StartTIME#
@ -172,9 +172,9 @@ SUB ControlBOX
STATIC SliderY1, SliderY2, Rotation, Force STATIC SliderY1, SliderY2, Rotation, Force
SHARED SlowTRAIN, Putted, MapXD, MapYD, LowerLEVEL SHARED SlowTRAIN, Putted, MapXD, MapYD, LowerLEVEL
SlowTRAIN = 0: Putted = 0 SlowTRAIN = 0: Putted = 0
''FieldMOUSE 0, 0, 639, 479 ''FieldMOUSE 0, 0, 639, 479
GET (BallX - 13, BallY - 13)-(BallX + 13, BallY + 13), PutterBOX() GET (BallX - 13, BallY - 13)-(BallX + 13, BallY + 13), PutterBOX()
PUT (BallX - 5, BallY - 5), BallBOX(201), AND PUT (BallX - 5, BallY - 5), BallBOX(201), AND
PUT (BallX - 5, BallY - 5), BallBOX(), XOR PUT (BallX - 5, BallY - 5), BallBOX(), XOR
@ -310,7 +310,7 @@ DO
WAIT &H3DA, 8 WAIT &H3DA, 8
WAIT &H3DA, 8, 8 WAIT &H3DA, 8, 8
END IF END IF
IF Level = 4 AND Rotate = 0 THEN Traps IF Level = 4 AND Rotate = 0 THEN Traps
IF Level = 6 THEN Train IF Level = 6 THEN Train
IF Level = 7 THEN Bridge IF Level = 7 THEN Bridge
@ -320,7 +320,7 @@ DO
END IF END IF
IF Level = 7 THEN Bridge IF Level = 7 THEN Bridge
LOOP LOOP
EXIT SUB EXIT SUB
OpenMENU: OpenMENU:
@ -701,7 +701,7 @@ SUB MouseDRIVER (LB, RB, MX, MY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
Mouse = SADD(MouseDATA$) Mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, MX, MY, Mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLBLBLBLBLB, RB RB RB RB RB RB RB, MX Mx MX MX MX mX MX, MY My MY MY MY mY MY)
END SUB END SUB
@ -766,7 +766,7 @@ BallY = MapY! * 2 + ShiftY
GET (BallX - 5, BallY - 5)-(BallX + 5, BallY + 5), BallBOX(450) GET (BallX - 5, BallY - 5)-(BallX + 5, BallY + 5), BallBOX(450)
PUT (BallX - 5, BallY - 5), BallBOX(201), AND PUT (BallX - 5, BallY - 5), BallBOX(201), AND
PUT (BallX - 5, BallY - 5), BallBOX(), XOR PUT (BallX - 5, BallY - 5), BallBOX(), XOR
DO DO
ControlBOX ControlBOX
Strokes = Strokes + 1 Strokes = Strokes + 1
@ -774,7 +774,7 @@ DO
Digital Digital
PUT (BallX - 5, BallY - 5), BallBOX(450), PSET PUT (BallX - 5, BallY - 5), BallBOX(450), PSET
PLAY "MBT220L64O3C" PLAY "MBT220L64O3C"
DO DO
SELECT CASE MapBOX(MapX!, MapY!) SELECT CASE MapBOX(MapX!, MapY!)
CASE 0 CASE 0
@ -1126,12 +1126,12 @@ DO
PUT (BallX - 5, BallY - 5), BallBOX(), XOR PUT (BallX - 5, BallY - 5), BallBOX(), XOR
END IF END IF
LOOP LOOP
IF MapBOX(MapX!, MapY!) < 20 THEN IF MapBOX(MapX!, MapY!) < 20 THEN
PUT (BallX - 5, BallY - 5), BallBOX(201), AND PUT (BallX - 5, BallY - 5), BallBOX(201), AND
PUT (BallX - 5, BallY - 5), BallBOX() PUT (BallX - 5, BallY - 5), BallBOX()
END IF END IF
EXIT SUB EXIT SUB
DropBALL: DropBALL:
@ -1225,7 +1225,7 @@ NEXT y
Cup = 1 Cup = 1
RETURN RETURN
Splunk: 'Water hazard Splunk: 'Water hazard
PLAY "MBMST255L64O2b" PLAY "MBMST255L64O2b"
Interval .3 Interval .3
PLAY "MBMST255L64O5cP16eP16c<P16gP16>>c" PLAY "MBMST255L64O5cP16eP16c<P16gP16>>c"
@ -1548,7 +1548,7 @@ IF NewGAME = 0 THEN
SetPALETTE 1 SetPALETTE 1
NewGAME = 1 NewGAME = 1
END IF END IF
SELECT CASE Level SELECT CASE Level
CASE 1 CASE 1
MapX! = 134: MapY! = 133 MapX! = 134: MapY! = 133
@ -1680,7 +1680,7 @@ PUT (154, 140), PuttBOX(16100), PSET
SetPALETTE 1 SetPALETTE 1
SHELL "MGTheme.EXE" SHELL "MGTheme.EXE"
Interval .75 Interval .75
SetPALETTE 0 SetPALETTE 0
CLS CLS
@ -1693,7 +1693,7 @@ DEF SEG = VARSEG(PuttBOX(1))
BLOAD "mgtitle.bsv", VARPTR(PuttBOX(1)) BLOAD "mgtitle.bsv", VARPTR(PuttBOX(1))
DEF SEG DEF SEG
PUT (20, 20), PuttBOX(), PSET PUT (20, 20), PuttBOX(), PSET
'Load golfball image and mask 'Load golfball image and mask
DEF SEG = VARSEG(BallBOX(1)) DEF SEG = VARSEG(BallBOX(1))
BLOAD "mgball.bsv", VARPTR(BallBOX(1)) BLOAD "mgball.bsv", VARPTR(BallBOX(1))
@ -1704,14 +1704,14 @@ DEF SEG = VARSEG(PuttBOX(1))
BLOAD "mgctrl2.bsv", VARPTR(PuttBOX(1)) BLOAD "mgctrl2.bsv", VARPTR(PuttBOX(1))
DEF SEG DEF SEG
PUT (438, 27), PuttBOX(), PSET PUT (438, 27), PuttBOX(), PSET
'Load digital numbers 'Load digital numbers
DEF SEG = VARSEG(DigitBOX(1)) DEF SEG = VARSEG(DigitBOX(1))
BLOAD "mgdigits.bsv", VARPTR(DigitBOX(1)) BLOAD "mgdigits.bsv", VARPTR(DigitBOX(1))
DEF SEG DEF SEG
Digital Digital
'Load control slider images 'Load control slider images
DEF SEG = VARSEG(SliderBOX(1)) DEF SEG = VARSEG(SliderBOX(1))
BLOAD "mgctrl.bsv", VARPTR(SliderBOX(1)) BLOAD "mgctrl.bsv", VARPTR(SliderBOX(1))
@ -1731,7 +1731,7 @@ MouseDRIVER LB, 0, 0, 0
END SUB END SUB
SUB TopFIVE SUB TopFIVE
DEF SEG = VARSEG(PuttBOX(1)) DEF SEG = VARSEG(PuttBOX(1))
BLOAD "mgfinal3.bsv", VARPTR(PuttBOX(1)) BLOAD "mgfinal3.bsv", VARPTR(PuttBOX(1))
DEF SEG DEF SEG
@ -1973,3 +1973,22 @@ RETURN
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -702,7 +702,7 @@ SUB MouseDRIVER (LB, RB, MX, MY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
Mouse = SADD(MouseDATA$) Mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, MX, MY, Mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLBLBLBLBLBLB, RB RB RB RB RB RB RB RB, MX Mx MX MX MX mX MX MX, MY My MY MY MY mY MY MY)
END SUB END SUB
@ -797,3 +797,22 @@ DEF SEG
PUT (198, 178), BigBOX(), PSET PUT (198, 178), BigBOX(), PSET
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB

View file

@ -369,7 +369,7 @@ SUB MouseDRIVER (LB, RB, mX, mY)
DEF SEG = VARSEG(MouseDATA$) DEF SEG = VARSEG(MouseDATA$)
Mouse = SADD(MouseDATA$) Mouse = SADD(MouseDATA$)
CALL ABSOLUTE(LB, RB, mX, mY, Mouse) CALL ABSOLUTE_MOUSE_EMU (LBLBLBLBLBLBLBLBLB, RB RB RB RB RB RB RB RB RB, MX Mx MX MX MX mX MX MX mX, MY My MY MY MY mY MY MY mY)
END SUB END SUB
@ -1559,3 +1559,22 @@ LastDECK = 0
ShowMOUSE ShowMOUSE
END SUB END SUB
SUB ABSOLUTE_MOUSE_EMU (AX%, BX%, CX%, DX%)
SELECT CASE AX%
CASE 0
AX% = -1
CASE 1
_MOUSESHOW
CASE 2
_MOUSEHIDE
CASE 3
WHILE _MOUSEINPUT
WEND
BX% = -_MOUSEBUTTON(1) - _MOUSEBUTTON(2) * 2 - _MOUSEBUTTON(3) * 4
CX% = _MOUSEX
DX% = _MOUSEY
CASE 4
_MOUSEMOVE CX%, DX% 'Not currently supported in QB64 GL
END SELECT
END SUB