'=========================================================================== ' Subject: SCROLLABLE 2D MAP DEMO Date: 02-27-99 (20:08) ' Author: Darryl R. Waltz Code: QB, QBasic, PDS ' Origin: drw@telusplanet.net Packet: DEMOS.ABC '=========================================================================== ' QBasic only ' 2D map, mouse controlled scrolling. ' 5 year old demo of what was going to be a great war game. ' --- DECLARE SUB mousehide () DECLARE SUB mouseshow () DECLARE SUB mousestatus (lb%, RB%, xmouse%, ymouse%) DECLARE SUB MouseDriver (AX%, bx%, CX%, DX%) DECLARE FUNCTION MouseInit% () a1 = 81: a2 = 59: a3 = 10: a4 = 1000 DIM b%(81, 59), f3%(a1, a2), A%(81, 59), p%(2000), il%(a1, a2), f1%(a1, a2), f2%(a1, a2) DIM chl%(a3, a4), rhl%(a3, a4) DIM SHARED mouse$ RESTORE mouse$ = SPACE$(57) FOR I% = 1 TO 57 READ A$ H$ = CHR$(VAL("&H" + A$)) MID$(mouse$, I%, 1) = H$ NEXT I% DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B DATA 5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53 DATA 8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F DATA 8B,5E,06,89,17,5D,CA,08,00 MS% = MouseInit% IF NOT MS% THEN PRINT "Mouse not found": LET AMOUSE$ = "NO": END IF PRINT "Mouse found and initialized": LET AMOUSE$ = "YES" mouseshow RANDOMIZE TIMER SCREEN 12 DEFINT A-Z n: FOR x = 1 TO 19 FOR r = 0 TO 15 FOR c = 0 TO 15 READ A PSET (c, r), A NEXT c NEXT r ON x GOTO 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 nn: NEXT x GOTO start 1 GET (0, 0)-(15, 15), p%(1): CLS : GOTO nn 2 GET (0, 0)-(15, 15), p%(100): CLS : GOTO nn 3 GET (0, 0)-(15, 15), p%(200): CLS : GOTO nn 4 GET (0, 0)-(15, 15), p%(300): CLS : GOTO nn 5 GET (0, 0)-(15, 15), p%(400): CLS : GOTO nn 6 GET (0, 0)-(15, 15), p%(500): CLS : GOTO nn 7 GET (0, 0)-(15, 15), p%(600): CLS : GOTO nn 8 GET (0, 0)-(15, 15), p%(700): CLS : GOTO nn 9 GET (0, 0)-(15, 15), p%(800): CLS : GOTO nn 10 GET (0, 0)-(15, 15), p%(900): CLS : GOTO nn 11 GET (0, 0)-(15, 15), p%(1000): CLS : GOTO nn 12 GET (0, 0)-(15, 15), p%(1100): CLS : GOTO nn 13 GET (0, 0)-(15, 15), p%(1200): CLS : GOTO nn 14 GET (0, 0)-(15, 15), p%(1300): CLS : GOTO nn 15 GET (0, 0)-(15, 15), p%(1400): CLS : GOTO nn 16 GET (0, 0)-(15, 15), p%(1500): CLS : GOTO nn 17 GET (0, 0)-(15, 15), p%(1600): CLS : GOTO nn 18 GET (0, 0)-(15, 15), p%(1700): CLS : GOTO nn 19 GET (0, 0)-(15, 15), p%(1800): CLS : GOTO nn 20 GET (0, 0)-(15, 15), p%(1900): CLS : GOTO nn DATA 1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1 DATA 3,1,1,1,3,3,1,1,1,3,3,1,1,1,1,3 DATA 1,1,3,3,3,1,1,1,1,1,3,3,3,1,1,1 DATA 1,1,1,1,1,3,3,3,1,1,1,1,1,3,3,1 DATA 1,3,3,1,1,1,1,3,3,3,3,1,1,1,1,1 DATA 1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,3 DATA 3,1,1,1,1,1,3,1,1,1,1,3,1,1,1,1 DATA 1,3,3,3,1,1,3,3,1,1,1,1,1,3,3,1 DATA 1,1,1,3,3,1,1,1,3,1,1,3,3,1,1,1 DATA 1,1,1,1,1,1,1,1,3,3,1,1,1,3,3,3 DATA 3,3,1,1,3,3,1,1,1,1,3,3,1,1,1,1 DATA 1,1,3,3,1,1,3,3,1,1,1,1,1,1,1,3 DATA 1,1,1,1,1,1,1,1,3,3,3,1,1,3,1,1 DATA 1,1,3,3,1,1,1,1,1,1,1,1,1,1,3,3 DATA 3,3,1,1,1,3,3,1,1,1,3,3,3,1,1,1 DATA 1,1,3,3,3,1,1,1,3,1,1,1,3,3,3,1 DATA 6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,8,6,6,6 DATA 6,6,6,6,8,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,8,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,6 DATA 6,6,6,8,6,6,6,6,6,6,8,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8 DATA 6,6,6,6,6,8,6,6,6,6,6,6,6,6,6,6 DATA 6,6,8,6,6,6,6,6,6,6,6,6,6,8,6,6 DATA 6,6,6,6,6,6,6,6,6,8,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,6 DATA 6,6,6,6,6,8,6,6,6,6,6,6,6,6,6,6 DATA 8,6,6,6,6,6,6,6,6,6,6,8,6,6,6,6 DATA 6,6,6,6,6,6,8,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8 DATA 1,6,6,1,2,2,2,2,2,2,2,2,2,2,2,2 DATA 6,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,1,6,6,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,6 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,6,6,1,1 DATA 2,2,2,2,2,2,2,2,2,2,6,6,1,1,1,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 6,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 1,6,6,1,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,6,6,6,6,6,6,1,1,1,1,1,1 DATA 2,2,6,6,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,2,2,6,2,2,2,2,2,1,1,1,1 DATA 1,1,2,2,2,2,2,2,2,6,2,2,2,2,1,1 DATA 1,2,2,2,2,2,2,2,2,2,2,2,6,2,2,1 DATA 1,2,2,2,2,6,2,2,2,2,2,2,2,2,2,1 DATA 2,6,2,2,2,2,2,2,6,2,2,2,2,2,6,2 DATA 2,2,2,6,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,6,2,2,2,2,2,2,6,2 DATA 2,2,6,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,6,2,2,2,2,2,2,2,2,6,2,2,2,2 DATA 2,2,2,2,6,2,2,2,2,2,2,2,2,6,2,2 DATA 2,2,6,2,2,2,2,2,6,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,6,2,2,2 DATA 2,2,2,2,6,2,2,2,2,2,2,2,6,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,6,2,2,2,2,2,1,1,1,1 DATA 6,2,2,2,2,2,2,2,2,6,2,2,2,2,1,1 DATA 6,2,2,2,2,2,2,2,2,2,2,2,6,2,2,1 DATA 2,2,2,2,2,6,2,2,2,2,2,2,2,2,2,1 DATA 2,6,2,2,2,2,2,2,6,2,2,2,2,2,6,2 DATA 2,2,2,6,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,6,2,2,2,2,2,2,6,2 DATA 2,2,6,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,6,2,2,2,2,2,2,2,2,6,2,2,2,2 DATA 2,2,2,2,6,2,2,2,2,2,2,2,2,6,2,2 DATA 2,2,6,2,2,2,2,2,6,2,2,2,2,2,2,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,6,2,2,1 DATA 2,2,2,2,6,2,2,2,2,2,2,2,6,2,1,1 DATA 2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1 DATA 2,2,2,2,2,2,6,2,2,2,2,2,2,2,2,2 DATA 6,2,2,2,2,2,2,2,2,6,2,2,2,2,2,2 DATA 6,2,2,2,2,2,2,2,2,2,2,2,6,2,2,2 DATA 2,2,2,2,2,6,2,2,2,2,2,2,2,2,2,2 DATA 2,6,2,2,2,2,2,2,6,2,2,2,2,2,6,2 DATA 2,2,2,6,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,6,2,2,2,2,2,2,6,2 DATA 2,2,6,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,6,2,2,2,2,2,2,2,2,6,2,2,2,2 DATA 2,2,2,2,6,2,2,2,2,2,2,2,2,6,2,2 DATA 1,2,6,2,2,2,2,2,6,2,2,2,2,2,2,1 DATA 1,2,2,2,2,2,2,2,2,2,2,2,6,2,2,1 DATA 1,1,2,2,6,2,2,2,2,2,2,2,6,2,1,1 DATA 1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1 DATA 1,1,1,1,2,2,6,2,2,2,2,2,2,2,2,2 DATA 1,1,2,2,2,2,2,2,2,6,2,2,2,2,2,2 DATA 1,2,2,2,2,2,2,2,2,2,2,2,6,2,2,2 DATA 1,2,2,2,2,6,2,2,2,2,2,2,2,2,2,2 DATA 2,6,2,2,2,2,2,2,6,2,2,2,2,2,6,2 DATA 2,2,2,6,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,2 DATA 2,2,2,2,2,2,2,6,2,2,2,2,2,2,6,2 DATA 2,2,6,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,6,2,2,2,2,2,2,2,2,6,2,2,2,2 DATA 2,2,2,2,6,2,2,2,2,2,2,2,2,6,2,2 DATA 1,2,6,2,2,2,2,2,6,2,2,2,2,2,2,2 DATA 1,2,2,2,2,2,2,2,2,2,2,2,6,2,2,2 DATA 1,1,2,2,6,2,2,2,2,2,2,2,6,2,2,2 DATA 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,1,1,9,1,1,1,1,1,2,2,2,2 DATA 6,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2 DATA 6,1,1,1,1,1,1,1,1,1,1,1,9,1,1,2 DATA 2,1,1,1,1,9,1,1,1,1,1,1,1,1,1,2 DATA 1,9,1,1,1,1,1,1,9,1,1,1,1,1,9,1 DATA 1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,9,9,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,9,1,1,1,1,1,1,9,1 DATA 1,9,9,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1 DATA 1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,9,1,1,1,1,1,9,1,1,1,1,9,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,9,1,1,1,1,1,1,9,9,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,9,1,1,1,1,1,2,2,2,2 DATA 9,9,1,1,1,1,1,1,1,1,1,1,1,1,2,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,2 DATA 1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,2 DATA 1,9,1,1,1,1,1,1,9,1,1,1,1,1,9,1 DATA 1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,9,9,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,9,1,1,1,1,1,1,9,1 DATA 1,9,9,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1 DATA 1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,9,1,1,1,1,1,9,1,1,1,1,9,1,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 DATA 1,1,1,1,9,1,1,1,1,1,1,9,9,1,2,2 DATA 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2 DATA 1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1 DATA 9,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1 DATA 1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1 DATA 1,9,1,1,1,1,1,1,9,1,1,1,1,1,9,1 DATA 1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,9,9,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,9,1,1,1,1,1,1,9,1 DATA 1,9,9,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1 DATA 1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1 DATA 2,1,9,1,1,1,1,1,9,1,1,1,1,9,1,2 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 DATA 2,2,1,1,9,1,1,1,1,1,1,9,9,1,2,2 DATA 2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2 DATA 2,2,2,2,1,1,9,1,1,1,1,1,1,1,1,1 DATA 6,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 6,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1 DATA 2,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1 DATA 1,9,1,1,1,1,1,1,9,1,1,1,1,1,9,1 DATA 1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,9,9,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,9,1,1,1,1,1,1,9,1 DATA 1,9,9,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1 DATA 1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1 DATA 2,1,9,1,1,1,1,1,9,1,1,1,1,9,1,1 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 2,2,1,1,9,1,1,1,1,1,1,9,9,1,1,1 DATA 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 0,7,7,0,0,7,7,0,0,7,7,0,0,7,7,0 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 start: r = 1 FOR c = 1 TO 60 f3%(c, r) = 1 NEXT c c = 1 FOR r = 1 TO 44 f3%(c, r) = 1 NEXT r r = 44 FOR c = 1 TO 60 f3%(c, r) = 1 NEXT c c = 60 FOR r = 1 TO 44 f3%(c, r) = 1 NEXT r FOR r = 1 TO 44 FOR c = 1 TO 60 il%(c, r) = 10 NEXT c NEXT r iss = 1: REM INT(RND * 5) + 1 100 g = 400 FOR H = 1 TO iss - 1 ni(H) = INT(RND * g) + 10 g = g - ni(H) IF g < 10 THEN H = 1: GOTO 100 NEXT H ni(iss) = g FOR x = 1 TO iss cka = 5000: REM ni(x) * 5 ab = 2 isl = x A: r = 20: 'INT(RND * 58) + 1 c = 20: 'INT(RND * 80) + 1 gh = gh + 1: IF gh = 100 THEN STOP IF il%(c, r) <> 10 THEN GOTO A IF il%(c, r - 1) < isl OR il%(c + 1, r - 1) < isl OR il%(c + 1, r) < isl OR il%(c + 1, r + 1) < isl OR il%(c, r + 1) < isl OR il%(c - 1, r + 1) < isl OR il%(c - 1, r) < isl OR il%(c - 1, r - 1) < isl THEN GOTO A GOSUB b ba = 50: 'INT(RND * 50) + 1 GOSUB b1 REM GOTO a1 c: FOR xx = 1 TO ni(x) d: yx = INT(RND * xy) + 1 gh = gh + 1: IF gh = 2000 THEN gh = 0: STOP c = chl%(isl, yx): r = rhl%(isl, yx) IF f1%(c, r) = 1 THEN ck = ck + 1: IF ck = cka THEN GOTO f ELSE GOTO d IF il%(c, r - 1) < isl OR il%(c + 1, r - 1) < isl OR il%(c + 1, r) < isl OR il%(c + 1, r + 1) < isl OR il%(c, r + 1) < isl OR il%(c - 1, r + 1) < isl OR il%(c - 1, r) < isl OR il%(c - 1, r - 1) < isl THEN GOTO d REM IF f2%(c, r) = 1 THEN GOTO d GOSUB b NEXT xx f: xx = 0: ck = 0: xy = 0 NEXT x ff: FOR r = 1 TO 44 FOR c = 1 TO 60 IF f1%(c, r) = 0 AND f2%(c, r) = 0 THEN A%(c, r) = 1 IF f1%(c, r) = 0 THEN A%(c, r) = 1 IF f1%(c, r) = 1 THEN A%(c, r) = 100 IF f3%(c, r) = 1 THEN A%(c, r) = 1800 IF f1%(c, r) = 1 AND f1%(c, r - 1) = 0 AND f1%(c + 1, r - 1) >= 0 AND f1%(c + 1, r) >= 0 AND f1%(c + 1, r + 1) >= 0 AND f1%(c, r + 1) >= 0 AND f1%(c - 1, r + 1) >= 0 AND f1%(c - 1, r) = 0 AND f1%(c - 1, r - 1) = 0 THEN A%(c, r) = 200 IF f1%(c, r) = 1 AND f1%(c, r - 1) = 0 AND f1%(c + 1, r - 1) = 0 AND f1%(c + 1, r) = 0 AND f1%(c + 1, r + 1) >= 0 AND f1%(c, r + 1) >= 0 AND f1%(c - 1, r + 1) >= 0 AND f1%(c - 1, r) >= 0 AND f1%(c - 1, r - 1) >= 0 THEN A%(c, r) = 300 IF f1%(c, r) = 1 AND f1%(c, r - 1) >= 0 AND f1%(c + 1, r - 1) >= 0 AND f1%(c + 1, r) = 0 AND f1%(c + 1, r + 1) = 0 AND f1%(c, r + 1) = 0 AND f1%(c - 1, r + 1) >= 0 AND f1%(c - 1, r) >= 0 AND f1%(c - 1, r - 1) >= 0 THEN A%(c, r) = 400 IF f1%(c, r) = 1 AND f1%(c, r - 1) >= 0 AND f1%(c + 1, r - 1) >= 0 AND f1%(c + 1, r) >= 0 AND f1%(c + 1, r + 1) >= 0 AND f1%(c, r + 1) = 0 AND f1%(c - 1, r + 1) = 0 AND f1%(c - 1, r) = 0 AND f1%(c - 1, r - 1) >= 0 THEN A%(c, r) = 500 gg: NEXT c NEXT r r1 = 1: c1 = 1: GOTO nm a1: yx = INT(RND * xy) + 1: c = chl%(isl, yx): r = rhl%(isl, yx) gh = gh + 1: IF gh = 1000 THEN STOP IF il%(c, r - 1) < isl OR il%(c + 1, r - 1) < isl OR il%(c + 1, r) < isl OR il%(c + 1, r + 1) < isl OR il%(c, r + 1) < isl OR il%(c - 1, r + 1) < isl OR il%(c - 1, r) < isl OR il%(c - 1, r - 1) < isl THEN GOTO a1 xy = 0 GOSUB b GOTO c b: f1%(c, r) = 1: il%(c, r) = isl: ch = ch + 1 IF il%(c, r - 1) >= isl AND r - 1 > -1 AND f1%(c, r - 1) = 0 THEN f2%(c, r - 1) = 2: il%(c, r - 1) = isl: xy = xy + 1: chl%(isl, xy) = c: rhl%(isl, xy) = r - 1 IF il%(c + 1, r - 1) >= isl AND c + 1 < 60 AND r - 1 > -1 AND f1%(c + 1, r - 1) = 0 THEN f2%(c + 1, r - 1) = 1: il%(c + 1, r - 1) = isl IF il%(c + 1, r) >= isl AND c + 1 < 60 AND f1%(c + 1, r) = 0 THEN f2%(c + 1, r) = 2: il%(c + 1, r) = isl: xy = xy + 1: chl%(isl, xy) = c + 1: rhl%(isl, xy) = r IF il%(c + 1, r + 1) >= isl AND c + 1 < 60 AND r + 1 < 44 AND f1%(c + 1, r + 1) = 0 THEN f2%(c + 1, r + 1) = 1: il%(c + 1, r + 1) = isl IF il%(c, r + 1) >= isl AND r < 44 AND f1%(c, r + 1) = 0 THEN f2%(c, r + 1) = 2: il%(c, r + 1) = isl: xy = xy + 1: chl%(isl, xy) = c: rhl%(isl, xy) = r + 1 IF il%(c - 1, r + 1) >= isl AND c - 1 < 60 AND r + 1 < 44 AND f1%(c - 1, r + 1) = 0 THEN f2%(c - 1, r + 1) = 1: il%(c - 1, r + 1) = isl IF il%(c - 1, r) >= isl AND c - 1 < 60 AND f1%(c - 1, r) = 0 THEN f2%(c - 1, r) = 2: il%(c - 1, r) = isl: xy = xy + 1: chl%(isl, xy) = c - 1: rhl%(isl, xy) = r IF il%(c - 1, r - 1) >= isl AND c - 1 < 60 AND r - 1 < 44 AND f1%(c - 1, r - 1) = 0 THEN f2%(c - 1, r - 1) = 1: il%(c - 1, r - 1) = isl RETURN b1: A = 1 b3: g = INT(RND * 4) + 1: IF A = 1 THEN GOTO b4 bc = INT(RND * 7) + 1: IF bc <> 5 THEN g = gb b4: A = 0: gb = g ON g GOTO bb1, bb2, bb3, bb4 bb1: IF il%(c, r - 1) >= isl AND r - 1 > -1 AND f1%(c, r - 1) = 0 THEN f2%(c, r - 1) = 2: il%(c, r - 1) = isl: xy = xy + 1: chl%(isl, xy) = c: rhl%(isl, xy) = r - 1: r = r - 1: GOTO b5 GOTO b3 bb2: IF il%(c + 1, r) >= isl AND c + 1 < 80 AND f1%(c + 1, r) = 0 THEN f2%(c + 1, r) = 2: il%(c + 1, r) = isl: xy = xy + 1: chl%(isl, xy) = c + 1: rhl%(isl, xy) = r: c = c + 1: GOTO b5 GOTO b3 bb3: IF il%(c, r + 1) >= isl AND r < 42 AND f1%(c, r + 1) = 0 THEN f2%(c, r + 1) = 2: il%(c, r + 1) = isl: xy = xy + 1: chl%(isl, xy) = c: rhl%(isl, xy) = r + 1: r = r + 1: GOTO b5 GOTO b3 bb4: IF il%(c - 1, r) >= isl AND c - 1 < 80 AND f1%(c - 1, r) = 0 THEN f2%(c - 1, r) = 2: il%(c - 1, r) = isl: xy = xy + 1: chl%(isl, xy) = c - 1: rhl%(isl, xy) = r: c = c - 1: GOTO b5 GOTO b3 b5: f2%(c, r) = 2: bab = bab + 1: IF bab = ba THEN RETURN ELSE GOTO b3 'il%(c - 1, r): f1%(c - 1, r) = 0:f2%(c - 1, r) :chl%(isl, xy) = c - 1:rhl%(isl, xy) 'p%(A%(c, r)):b%(cc, rr) = A%(c, r) nm: ERASE il%, f1%, f2%, chl%, rhl%, chl%, rhl% r2 = r1 + 28: rc = -16: cr = -16: rr = 1: cc = 1 c2 = c1 + 39 FOR r = r1 TO r2: rc = rc + 16: rr = rr + 1 FOR c = c1 TO c2: cr = cr + 16: cc = cc + 1 PUT (cr, rc), p%(A%(c, r)), PSET: b%(cc, rr) = A%(c, r) NEXT c cr = -16: cc = 1: NEXT r: GOTO dg mn: mousehide r2 = r1 + 28: rc = -16: cr = -16: rr = 1: cc = 1 c2 = c1 + 39 FOR r = r1 TO r2: rc = rc + 16: rr = rr + 1 FOR c = c1 TO c2: cr = cr + 16: cc = cc + 1 IF b%(cc, rr) <> A%(c, r) THEN PUT (cr, rc), p%(A%(c, r)), PSET: b%(cc, rr) = A%(c, r) NEXT c A$ = INKEY$: IF A$ = CHR$(32) THEN STOP cr = -16: cc = 1: NEXT r dg: DO mouseshow mousestatus lb%, RB%, xmouse%, ymouse% IF ymouse% = 0 THEN r1 = r1 - 1: mn = 1 IF xmouse% = 639 THEN c1 = c1 + 1: mn = 1 IF ymouse% = 479 THEN r1 = r1 + 1: mn = 1 IF xmouse% = 0 THEN c1 = c1 - 1: mn = 1 IF c1 < 1 THEN c1 = 1 ' IF c1 > 40 THEN c1 = 40 IF c1 > 20 THEN c1 = 21 IF r1 < 1 THEN r1 = 1 ' IF r1 > 28 THEN r1 = 28 IF r1 > 15 THEN r1 = 16 LOOP WHILE mn = 0 mn = 0 GOTO mn STOP DEFSNG A-Z SUB MouseDriver (AX%, bx%, CX%, DX%) DEF SEG = VARSEG(mouse$) mouse% = SADD(mouse$) CALL Absolute(AX%, bx%, CX%, DX%, mouse%) END SUB SUB mousehide AX% = 2 MouseDriver AX%, 0, 0, 0 END SUB FUNCTION MouseInit% AX% = 0 MouseDriver AX%, 0, 0, 0 MouseInit% = AX% END FUNCTION SUB mouseshow AX% = 1 MouseDriver AX%, 0, 0, 0 END SUB SUB mousestatus (lb%, RB%, xmouse%, ymouse%) AX% = 3 MouseDriver AX%, bx%, CX%, DX% lb% = ((bx% AND 1) <> 0) RB% = ((bx% AND 2) <> 0) xmouse% = CX% ymouse% = DX% END SUB