From d4ef195bd194d83569a33790d1985bd7ef8b88b0 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Fri, 3 Apr 2020 15:07:38 -0300 Subject: [PATCH] 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 --- programs/samples/thebob/abacus/abacus12.bas | 21 ++++++- programs/samples/thebob/animax/animax.bas | 21 ++++++- programs/samples/thebob/chess/chesssubs.bas | 21 ++++++- programs/samples/thebob/chopper/chopper.bas | 39 +++++++++--- programs/samples/thebob/kong/kong.bas | 33 +++++++--- programs/samples/thebob/leapfrog/leapfrog.bas | 21 ++++++- programs/samples/thebob/minigolf/mg.bas | 63 ++++++++++++------- programs/samples/thebob/pongg/pongg.bas | 21 ++++++- programs/samples/thebob/sol/sol3.bas | 21 ++++++- 9 files changed, 216 insertions(+), 45 deletions(-) diff --git a/programs/samples/thebob/abacus/abacus12.bas b/programs/samples/thebob/abacus/abacus12.bas index 8d24d195f..c0106e952 100644 --- a/programs/samples/thebob/abacus/abacus12.bas +++ b/programs/samples/thebob/abacus/abacus12.bas @@ -216,7 +216,7 @@ SUB MouseDRIVER (LB, RB, MX, MY) DEF SEG = VARSEG(MouseDATA$) mouse = SADD(MouseDATA$) -CALL ABSOLUTE(LB, RB, MX, MY, mouse) +CALL ABSOLUTE_MOUSE_EMU (LB, RB, MX, MY) END SUB @@ -261,3 +261,22 @@ SUB ShowMOUSE LB = 1 MouseDRIVER LB, 0, 0, 0 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 diff --git a/programs/samples/thebob/animax/animax.bas b/programs/samples/thebob/animax/animax.bas index afd6dbc66..ff5796e1a 100644 --- a/programs/samples/thebob/animax/animax.bas +++ b/programs/samples/thebob/animax/animax.bas @@ -1433,7 +1433,7 @@ SUB MouseDRIVER (LB, RB, Mx, My) DEF SEG = VARSEG(MouseDATA$) mouse = SADD(MouseDATA$) -CALL ABSOLUTE(LB, RB, Mx, My, mouse) +CALL ABSOLUTE_MOUSE_EMU (LBLB, RB RB, MX Mx, MY My) END SUB @@ -2198,3 +2198,22 @@ ScalePIXELy = PixelY * Scale + 51 RETURN 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 diff --git a/programs/samples/thebob/chess/chesssubs.bas b/programs/samples/thebob/chess/chesssubs.bas index 0e677e924..725b4aa71 100644 --- a/programs/samples/thebob/chess/chesssubs.bas +++ b/programs/samples/thebob/chess/chesssubs.bas @@ -221,7 +221,7 @@ SUB MouseDRIVER (LB, RB, MX, MY) DEF SEG = VARSEG(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 @@ -299,3 +299,22 @@ SUB ShowMOUSE LB = 1 MouseDRIVER LB, 0, 0, 0 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 diff --git a/programs/samples/thebob/chopper/chopper.bas b/programs/samples/thebob/chopper/chopper.bas index 849552566..191ed87ce 100644 --- a/programs/samples/thebob/chopper/chopper.bas +++ b/programs/samples/thebob/chopper/chopper.bas @@ -152,20 +152,20 @@ LOOP END '************************** PALETTE DATA ******************************** PaletteDATA: -DATA 4, 2, 12, 6, 4, 14, 12, 12, 20 -DATA 31, 31, 38, 46, 46, 50, 0, 0, 0 +DATA 4, 2, 12, 6, 4, 14, 12, 12, 20 +DATA 31, 31, 38, 46, 46, 50, 0, 0, 0 CustomCOLORS: DATA 6,7,8,10,12,13,14 FlameCOLOR: -DATA 63, 63, 63, 63, 32, 12, 63, 52, 0 +DATA 63, 63, 63, 63, 32, 12, 63, 52, 0 SilverCOLOR: -DATA 63, 63, 63, 38, 38, 35, 53, 53, 48 +DATA 63, 63, 63, 38, 38, 35, 53, 53, 48 GoldCOLOR: -DATA 63, 63, 42, 63, 42, 21, 63, 52, 32 +DATA 63, 63, 42, 63, 42, 21, 63, 52, 32 WhiteCOLOR: -DATA 63, 63, 63, 48, 48, 53, 53, 53, 58 +DATA 63, 63, 63, 48, 48, 53, 53, 53, 58 REM $STATIC SUB Assembly1 @@ -1756,7 +1756,7 @@ NEXT x FOR n = 0 TO 15 IF Colors4%(n) = 1 THEN SigCOLORS& = SigCOLORS& + 1 NEXT n - + FileTYPE$ = "BM" Reserved1% = 0 Reserved2% = 0 @@ -1816,7 +1816,7 @@ FOR n% = 1 TO 46 STEP 3 PUT #1, , Colr$ PUT #1, , u$ 'Unused byte NEXT n% - + FOR y = y2% TO y1% STEP -1 FOR x = x1% TO x2% STEP 2 HiX = POINT(x, y) @@ -2401,7 +2401,7 @@ IF TopMENU AND LB = -1 THEN CASE 3: GOSUB MenuDARK: SYSTEM END SELECT END IF - + EXIT SUB MenuLIGHT: @@ -2439,7 +2439,7 @@ SUB MouseDRIVER (LB, RB, MX, MY) DEF SEG = VARSEG(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 @@ -3343,3 +3343,22 @@ NEXT n 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 diff --git a/programs/samples/thebob/kong/kong.bas b/programs/samples/thebob/kong/kong.bas index b969f430f..b7dbf1ecd 100644 --- a/programs/samples/thebob/kong/kong.bas +++ b/programs/samples/thebob/kong/kong.bas @@ -133,14 +133,14 @@ RANDOMIZE TIMER DO PlayGAME LOOP - + END PaletteDATA: -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 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 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 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 SUB ApeCHUCKLE (Which) @@ -503,7 +503,7 @@ KongX = LBldg * 80 - 59 KongY = Buildings(LBldg, 2) - 42 YoungX = RBldg * 80 - 59 YoungY = Buildings(RBldg, 2) - 42 - + DEF SEG = VARSEG(Box(1)) BLOAD "kongmjy.bsv", VARPTR(Box(1)) DEF SEG @@ -847,7 +847,7 @@ SUB MouseDRIVER (LB, RB, MX, MY) DEF SEG = VARSEG(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 @@ -1221,3 +1221,22 @@ Item = 0 RETURN 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 diff --git a/programs/samples/thebob/leapfrog/leapfrog.bas b/programs/samples/thebob/leapfrog/leapfrog.bas index 55734b74b..410835429 100644 --- a/programs/samples/thebob/leapfrog/leapfrog.bas +++ b/programs/samples/thebob/leapfrog/leapfrog.bas @@ -538,7 +538,7 @@ SUB MouseDRIVER (LB, RB, mX, mY) DEF SEG = VARSEG(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 @@ -627,3 +627,22 @@ SUB ShowMOUSE LB = 1 MouseDRIVER LB, 0, 0, 0 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 diff --git a/programs/samples/thebob/minigolf/mg.bas b/programs/samples/thebob/minigolf/mg.bas index e2564fa34..fe4dc49fa 100644 --- a/programs/samples/thebob/minigolf/mg.bas +++ b/programs/samples/thebob/minigolf/mg.bas @@ -82,7 +82,7 @@ PlayerPAR AS INTEGER PlayerSTATUS AS INTEGER END TYPE DIM SHARED ScoreDATA(6) AS ScoreTYPE - + OPEN "mg.top" FOR APPEND AS #1: CLOSE #1 OPEN "mg.top" FOR INPUT AS #1 @@ -120,7 +120,7 @@ ParDATA: DATA 2, 3, 4, 4, 4, 2, 3, 3, 3 SCREEN 12 - + SetSCREEN DO @@ -130,10 +130,10 @@ LOOP SYSTEM PaletteDATA: -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 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 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 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 SUB Bridge STATIC Index, StartTIME# @@ -172,9 +172,9 @@ SUB ControlBOX STATIC SliderY1, SliderY2, Rotation, Force SHARED SlowTRAIN, Putted, MapXD, MapYD, LowerLEVEL SlowTRAIN = 0: Putted = 0 - + ''FieldMOUSE 0, 0, 639, 479 - + GET (BallX - 13, BallY - 13)-(BallX + 13, BallY + 13), PutterBOX() PUT (BallX - 5, BallY - 5), BallBOX(201), AND PUT (BallX - 5, BallY - 5), BallBOX(), XOR @@ -310,7 +310,7 @@ DO WAIT &H3DA, 8 WAIT &H3DA, 8, 8 END IF - + IF Level = 4 AND Rotate = 0 THEN Traps IF Level = 6 THEN Train IF Level = 7 THEN Bridge @@ -320,7 +320,7 @@ DO END IF IF Level = 7 THEN Bridge LOOP - + EXIT SUB OpenMENU: @@ -701,7 +701,7 @@ SUB MouseDRIVER (LB, RB, MX, MY) DEF SEG = VARSEG(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 @@ -766,7 +766,7 @@ BallY = MapY! * 2 + ShiftY 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(), XOR - + DO ControlBOX Strokes = Strokes + 1 @@ -774,7 +774,7 @@ DO Digital PUT (BallX - 5, BallY - 5), BallBOX(450), PSET PLAY "MBT220L64O3C" - + DO SELECT CASE MapBOX(MapX!, MapY!) CASE 0 @@ -1126,12 +1126,12 @@ DO PUT (BallX - 5, BallY - 5), BallBOX(), XOR END IF LOOP - + IF MapBOX(MapX!, MapY!) < 20 THEN PUT (BallX - 5, BallY - 5), BallBOX(201), AND PUT (BallX - 5, BallY - 5), BallBOX() END IF - + EXIT SUB DropBALL: @@ -1225,7 +1225,7 @@ NEXT y Cup = 1 RETURN -Splunk: 'Water hazard +Splunk: 'Water hazard PLAY "MBMST255L64O2b" Interval .3 PLAY "MBMST255L64O5cP16eP16c>c" @@ -1548,7 +1548,7 @@ IF NewGAME = 0 THEN SetPALETTE 1 NewGAME = 1 END IF - + SELECT CASE Level CASE 1 MapX! = 134: MapY! = 133 @@ -1680,7 +1680,7 @@ PUT (154, 140), PuttBOX(16100), PSET SetPALETTE 1 SHELL "MGTheme.EXE" Interval .75 - + SetPALETTE 0 CLS @@ -1693,7 +1693,7 @@ DEF SEG = VARSEG(PuttBOX(1)) BLOAD "mgtitle.bsv", VARPTR(PuttBOX(1)) DEF SEG PUT (20, 20), PuttBOX(), PSET - + 'Load golfball image and mask DEF SEG = VARSEG(BallBOX(1)) BLOAD "mgball.bsv", VARPTR(BallBOX(1)) @@ -1704,14 +1704,14 @@ DEF SEG = VARSEG(PuttBOX(1)) BLOAD "mgctrl2.bsv", VARPTR(PuttBOX(1)) DEF SEG PUT (438, 27), PuttBOX(), PSET - + 'Load digital numbers DEF SEG = VARSEG(DigitBOX(1)) BLOAD "mgdigits.bsv", VARPTR(DigitBOX(1)) DEF SEG Digital - + 'Load control slider images DEF SEG = VARSEG(SliderBOX(1)) BLOAD "mgctrl.bsv", VARPTR(SliderBOX(1)) @@ -1731,7 +1731,7 @@ MouseDRIVER LB, 0, 0, 0 END SUB SUB TopFIVE - + DEF SEG = VARSEG(PuttBOX(1)) BLOAD "mgfinal3.bsv", VARPTR(PuttBOX(1)) DEF SEG @@ -1973,3 +1973,22 @@ RETURN 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 diff --git a/programs/samples/thebob/pongg/pongg.bas b/programs/samples/thebob/pongg/pongg.bas index d214b5a29..b08c385be 100644 --- a/programs/samples/thebob/pongg/pongg.bas +++ b/programs/samples/thebob/pongg/pongg.bas @@ -702,7 +702,7 @@ SUB MouseDRIVER (LB, RB, MX, MY) DEF SEG = VARSEG(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 @@ -797,3 +797,22 @@ DEF SEG PUT (198, 178), BigBOX(), PSET 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 diff --git a/programs/samples/thebob/sol/sol3.bas b/programs/samples/thebob/sol/sol3.bas index 6d2012c08..5451d9b0d 100644 --- a/programs/samples/thebob/sol/sol3.bas +++ b/programs/samples/thebob/sol/sol3.bas @@ -369,7 +369,7 @@ SUB MouseDRIVER (LB, RB, mX, mY) DEF SEG = VARSEG(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 @@ -1559,3 +1559,22 @@ LastDECK = 0 ShowMOUSE 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