20 POKE 769,2: HCOLOR= 3: FOR I = 80 TO 240 STEP 32: FOR J = 1 TO 9 STEP 1: POKE 826,J: CALL 768: HPLOT I -21 +J,0 TO I -21 +J,150: NEXT J,I
30 FOR J = 14 TO 170 STEP 15:AA = AA +1: ON AA >1 GOSUB 35: HCOLOR= 5: ON AA = 0 GOSUB 36: FOR I = 0 TO 4: POKE 826,I: CALL 768: HPLOT 58,J -14 +I TO 230,J -14 +I: NEXT I,J: GOTO 40
35 AA = 0: RETURN
36 HCOLOR= 3: RETURN
40 FOR J = 14 TO 154 STEP 15: FOR I = 80 TO 220 STEP 32: POKE 769,1: POKE 826,J: CALL 768: XDRAW 8 AT I,J: NEXT I,J
41 HCOLOR= 1: HPLOT 1,8 TO 1,156: HPLOT 21,8 TO 21,156: FOR I = 158 TO 8 STEP -2: POKE 826,I: CALL 768: HCOLOR= 5: ON (A)/5 = INT((A)/5) GOSUB 49:A = A +1: HPLOT 2,I TO 20,I: NEXT :A = 0: HCOLOR= 0: HPLOT 2,158 TO 20,158
630 ON WC GOTO 650: ON X1 = 128 AND Y1 = 128 GOTO 650: XDRAW CH AT X1,Y1: XDRAW CN AT X2,Y2:X1 = X2:Y1 = Y2:CH = CN: RETURN
640 ON WC GOTO 660: XDRAW CH AT X1,Y1:X1 = X2:Y1 = Y2:CH = CN: RETURN
650 RETURN
660 XDRAW CH AT X1,Y1:WC = 0: RETURN
999 DI = 1: RETURN
1000 ON FL >50 GOSUB 235: ON NFINISH GOTO 1002
1001 NDIS = INT( RND(1) *10 +1)
1002 ON NDIS GOTO 2200,4500,1400,1600,1800,2200,1003,1200,1800,2200
1003 NFINISH = 1: ON LEVEL >14 GOTO 1005:LEVEL = 14:XX = INT((X1 -80)/32) *32 +80: XDRAW 7 AT XX,LEVEL
1005 XDRAW 7 AT XX,LEVEL: POKE 826,LEVEL: CALL 768:LEVEL = LEVEL *1.1: ON LEVEL >160 GOTO 1199: XDRAW 7 AT XX,LEVEL: ON (XX >X1 -17 AND XX <X1 +17 AND LEVEL >Y1 -20 AND LEVEL <Y1) GOTO 1100: RETURN
1100 XDRAW 7 AT XX,LEVEL:NFINISH = 0:DI = 0: POP :LEVEL = 0: GOTO 600
1199 LEVEL = 0:DI = 0:NFINISH = 0: RETURN
1200 ON DN GOTO 1203:NFINISH = 1:JJ = 20
1202 VR = INT( RND(1) *60 +20):DN = 1
1203 JJ = JJ +6: ON JJ >260 GOTO 1230
1204 IF JJ >X1 -16 AND JJ <X1 +16 THEN DR = 1
1205 ON DR GOSUB 1250: ON P GOTO 1210:P = 1:S = 12: XDRAW S AT JJ,VR
1210 S = S +1: ON S >14 GOTO 1220: XDRAW S -1 AT JJ,VR: XDRAW S AT JJ +6,VR: RETURN
1220 XDRAW 14 AT JJ,VR: XDRAW 12 AT JJ +6,VR:S = 12: ON JJ = 262 GOTO 1230: RETURN : REM GOTO 1203
1230 ON DR GOTO 1245: XDRAW S AT 266,VR:P1 = 0:P = 0:DN = 0:NFINISH = 0:DI = 0: POP : GOTO 100
1245 GOSUB 1250: RETURN
1250 ON P1 GOTO 1260:V1 = VR:J1 = JJ:P1 = 1: XDRAW 15 AT J1,V1
1260 V1 = V1 +12: ON (J1 >X1 -16 AND J1 <X1 +16 AND V1 >Y1 -28 AND V1 <Y1) GOTO 1300: ON V1 >160 GOTO 1270: XDRAW 15 AT J1,V1 -12: XDRAW 15 AT J1,V1: RETURN
1270 P1 = 0: XDRAW 15 AT J1,V1 -12:DR = 0: RETURN
1300 IF S = 14 THEN XDRAW 14 AT JJ,VR: XDRAW 14 AT JJ +6,VR
1310 IF S = 13 THEN XDRAW 13 AT JJ,VR: XDRAW 13 AT JJ +6,VR
1320 IF S = 12 THEN XDRAW 12 AT JJ,VR: XDRAW 12 AT JJ +6,VR
1350 XDRAW 15 AT J1,V1: XDRAW 15 AT J1,V1 -12: POP : POP : GOTO 600
1360 GOTO 1405
1400 NFINISH = 1: ON DN GOTO 1405:DN = 1: VTAB 21: HTAB 15: INVERSE : PRINT "EARTHQUAKE": NORMAL : POKE 769,20: FOR I = 25 +((HF% <50) *(52 -HF%)) TO 1 STEP -2: POKE 826,I: CALL 768: CALL 768: NEXT :X = PEEK( -16384): GOSUB 1450
4445 FOR EQ = 1 TO 4: CALL 5126: CALL 5126: CALL 5126: NEXT EQ: RETURN
4500 ON DR GOTO 4520:NFINISH = 1: ROT= 32:UU = 162:DR = 1:AR% = SIN(UU/10) *20 +240: XDRAW 15 AT AR%,UU: ROT= 0: RETURN
4520 ROT= 32:UU = UU -4: ON UU <8 GOTO 4530:AR% = SIN(UU/10) *20 +240:BR% = SIN((UU +4)/10) *20 +240: XDRAW 15 AT BR%,UU +4: ON BR% <225 AND X1 >200 AND Y1 >UU -15 AND Y1 <UU GOTO 4560: XDRAW 15 AT AR%,UU: ROT= 0: RETURN
4530 DR = 0:NFINISH = 0: XDRAW 15 AT AR%,UU +4: ROT= 0: RETURN
4560 ROT= 0: XDRAW CH AT X1,Y1: FOR J = 1 TO 2: FOR I = Y1 TO 0 STEP -2: POKE 826,I: CALL 768: ROT= 0: XDRAW CH AT X1,I: ROT= 32: XDRAW 15 AT AR%,I: NEXT I,J: ROT= 0: XDRAW CH AT X1,Y1:FL = FL +10:UU = 0:DR = 0:NFINISH = 0: ROT= 0: RETURN
5000 CALL 32800: FOR P = 1 TO 500: NEXT P: POKE -16301,0
5010 VTAB 21: HTAB 1: CALL -958: PRINT "GROUND FLOOR....WITH A SPLATTTT!!": POKE 769,28: FOR I = 1 TO 20: POKE 826, RND(1) *50 +10: CALL 768: NEXT : GOSUB 6000
5015 VTAB 21: HTAB 1: PRINT "ANOTHER GAME ?";: GET AN$: ON AN$ = "Y" GOTO 5: ON AN$ = "N" GOTO 5020: GOTO 5015
5020 TEXT : HOME : END
5050 POKE 769,3: FOR I = 1 TO 50: POKE 826,I: CALL 768: NEXT : POKE 769,2: FOR I = 1 TO 150: POKE 826,I: CALL 768: NEXT : RETURN
6000 POKE 769,60: TEXT : HOME : PRINT "HIGHEST FLOOR = ";HF%: INVERSE : FOR I = 10 TO 1 STEP -1: VTAB I +5: HTAB 5: PRINT SPC( 30): READ A$:Z% = 20 -( LEN(A$)/2): VTAB I +5: HTAB Z%: PRINT A$: NEXT :HR% = (HF%/20): IF HR% >9 THEN HR% = 10
6010 FOR I = 20 TO 15 -HR% STEP -1: VTAB I: HTAB 2: PRINT "==>";: HTAB 35: PRINT "<==": POKE 826,I: CALL 768: NEXT
6020 NORMAL : RETURN
6050 DATA "STAY ON 1ST FLOOR","TAKE THE ELEVATOR","TAKE THE STAIRS","MOLE HILL CLIMBER","HILL CLIMBER","MOUNTAIN CLIMBER","CLIFF CLIMBER","PART MONKEY","ALL MONKEY","HUMAN FLY!"
10000 REM CHECK FOR OPEN WINDOW
10010 ON Z( ABS(PH), ABS(PV)) AND ( INT(PV) < >2 AND INT(PV) < >9) GOTO 10200: RETURN
10200 WC = 1: POP : GOTO 600: REM XDRAWCHATX1,Y1:XDRAWCNATX2,Y2
25000 ON A$ = CHR$(17) GOTO 5020: POKE 769,1: POKE 826,80: CALL 768: CALL 768: IF FL >HF% THEN HCOLOR= 0: HPLOT 22,157 -(HF%/2) TO 26,157 -(HF%/2):HF% = FL: HCOLOR= 3: HPLOT 22,157 -(HF%/2) TO 26,157 -(HF%/2): VTAB 22: HTAB 10: PRINT HF%