P464ORACLE 464 Mon 3 Mar C4 9718:56 ‖F2201216‖a18moon.lis‖i25BASIC7Amstrad10 REM ******************************÷e÷a2 0 REM * Moon Base Alpha *÷e÷a 30 REM * by Martin Adams *÷e÷ b40 REM * *÷e ÷b50 REM * 1523 Pershore Road *÷ e÷b60 REM * Stirchley * ÷e÷b70 REM * Birmingham *÷e÷b80 REM **************************** **÷e÷b90 REM÷e÷b100 REM **** initialisat ion cold ******÷e÷b110 REM÷e÷b120 DEFINT a-p,r-z÷e÷b130 MODE 1÷e÷b140 INK 0,0:BO RDER 0:PAPER 0:INK 1,24:INK 2,26:INK 3,1 5÷e÷b150 LOCATE 13,12:PRINT"Moon Base Al pha"÷e÷b160 FOR i=1 TO 3000:NEXT i÷e÷a17 0 DIM scoret←10→,namet$←10→÷e÷b180 rock= 14:g1=127:g2=143:g3=251÷e÷b190 upj=72:do wnj=73:leftj=74:rightj=75:liftj=76÷e÷a20 0 upk=0:downk=2:leftk=8:rightk=1:liftk=9 ÷e÷b210 SYMBOL 251,60,126,255,255,255,25 5,255,102÷e÷a220 SYMBOL 252,31,63,127,22 5,127,63,31,0÷e÷a230 SYMB/L 253,255,255, 255,195,255,255,255,126÷e÷a240 SYMB/‖c
P464ORACLE 464 Mon 3 Mar C4 1713:58 ‖F2202216‖a18moon.lis‖i25BASIC7AmstradL 254,248,252,254,135,254,252,248,0÷e÷b250 SYMBOL 255,0,0,0,240,240,0,0,0÷e÷b260 G OTO 330÷e÷b270 REM÷e÷b280 REM ********* play again? **********÷e÷a290 MODE 1:PEN 1:PRINT "would you like to play again ( y/n)?"÷e÷b300 IF N/T INKEY(46) THEN CALL &BC02:BORDER 1:PAPER 0:PEN 1:CALL &BB03 :CLS:END÷e÷b310 IF INKEY(43) THEN 300÷e÷ b320 REM÷e÷b330 REM ***** instructions * ******÷e÷b340 REM÷e÷b350 CLS:PRINT" You are a science officer and have been";÷e÷ b360 PRINT:PRINT"posted to Moon Base Alp ha. A large solar";÷e÷b370 PRINT:PRINT"f lare eruption is imminent and the"÷e÷a38 0 PRINT:PRINT"situation is critical."÷e÷ b390 PRINT:PRINT" You must finish buildi ng the radio"÷e÷b400 PRINT:PRINT"tower a nd move the stores equipment"÷e÷a410 PRI NT:PRINT"into the bunker befgre the 2nd flare"÷e÷b420 PRINT:PRINT"hits."÷e÷a430 PRINT:PRINT" You can only survive the fl ares in the"÷e÷b440 PRINT:PRINT"bunk‖c
P464ORACLE 464 Mon 3 Mar C4 9713:22 ‖F2203216‖a18moon.lis‖i25BASIC7Amstrader so keep a watch on the two stage"÷e÷a45 0 PRINT:PRINT"radiation alarm."÷e÷b460 L OCATE 20,23:PRINT"GOOD LUCK."÷e÷a470 GOS UB 4420÷e÷a480 PRINT" Your contrgls are shown below and you can use either joys tick or cursor keys."÷e÷b490 PRINT:PRINT " ";CHR$(242);" to move ship left."÷e÷ b500 PRINT:PRINT " ";CHR$(243);" to mov e ship right."÷e÷a510 PRINT:PRINT " ";CH R$(240);" to move ship up."÷e÷a520 PRIN T:PRINT " ";CHR$(241);" to move ship do wn (free fall)."÷e÷b530 PRINT:PRINT" cop y/fire to operate grabs."÷e÷a540 PRINT:P RINT" z to operate engines."÷e÷a550 PRIN T:PRINT" d to operate bunker dogr."÷e÷a5 60 PRINT:PRINT" p to display plans."÷e÷a 570 PRINT:PRINT"Note- when refueling swi tch engines off."÷e÷b580 GOSUB 4420÷e÷a5 90 REM÷e÷b600 REM **** initialisation wa rm ***** ÷e÷b610 REM÷e÷a620 DIM screen←4 0,25→÷e÷b630 score=0:score1=0:score2=0:s coref=0:count=2÷e÷a640 timeout=0:yel‖c
P464ORACLE 464 Mon 3 Mar C4 9714:12 ‖F2204216‖a18moon.lis‖i25BASIC7Amstradlo w=0:orange=0:alarmdelay=3÷e÷b650 engines =-1:upflag=0:grab=-1:shipend=0:objectexp lode=0:outside=0÷e÷a660 velocity=0:objve l=0:objectupflag=1:objecttype=0:maxvel=3 ÷e÷b670 alive=1:timestrand=24:done=0:cti me=1500:alarm=0:door=1:maxfuel=10000:fue l=9000÷e÷a680 REM÷e÷b690 REM ***** scene set up *******÷e÷b700 CLS:GOSUB 4060÷e÷ b710 REM÷e÷b720 REM **** object set up * ****÷e÷b730 objy=19:FOR objx=19 TO 25 ST EP 2:GOSUB 2270:NEXT objx÷e÷b740 objy=18 :objx=20:GOSUB 2340:objx=24:GOSUB 2340÷e ÷a750 objy=17:FOR objx=17 TO 25 STEP 4:G OSUB 2340:NEXT objx÷e÷a760 objx 19:oajy= 15:GOSUB 2340÷e÷b770 objy=16:FOR objx=17 TO 25 STEP 2:GOSUB 2270:NEXT objx÷e÷a78 0 objy=24:FOR objx=6 TO 12 STEP 2:GOSUB 2460:NEXT objx÷e÷b790 objy=23:FOR objx=6 TO 14 STEP 4:GOSUB 2340:NEXT objx÷e÷a80 0 objy=22:FOR objx=7 TO 13 STEP 2:GOSUB 2460:NEXT objx÷e÷b810 objx=14:objy=24:GO SUB 2270÷e÷b820 objy=21:objx=7:GOSUB‖c
P464ORACLE 464 Mon 3 Mar C4 9709:02 ‖F2205216‖a18moon.lis‖i25BASIC7Amstrad 2 270:objx=10:GOSUB 2340÷e÷b830 objy=17:ob jx=19:GOSUB 2460:objx=23:GOSUB 2460:objx =13:objy=21:GOSUB 2270÷e÷b840 objx=23:ob jy=15:GOSUB 2460:objx=25:GOSUB 2460÷e÷a8 50 REM÷e÷b860 REM ***** ship place ***** *÷e÷b870 PEN 3:x=21:y=24:GOSUB 1320÷e÷a8 80 REM÷e÷b890 REM ***** panel set up *** **÷e÷b900 GOSUB 3200:GOSUB 3000÷e÷b910 R EM÷e÷b920 REM **** engine and alarm soun d set up ****÷e÷b930 EVERY 25,1 GOSUB 28 80÷e÷b940 REM÷e÷b950 REM ***** main loop *****÷e÷b960 IF N/T INKEY(27) THEN GOSU B 4380:GOSUB 2500:REM plans÷e÷b970 GOSUB 1180:REM ship control÷e÷b980 IF engines =1 THEN IF grab=1 THEN tone=1700-objectt ype*500:fuel=fuel-10*objecttype ELSE fue l=fuel-5:tone=1100:GOSUB 2170÷e÷a990 IF fuel<0 THEN fuel=0÷e÷a1000 IF fuel>0 THE N 1020÷e÷b1010 engines=-1:IF x<>37 OR y< >3 THEN GOSUB 1540:GOSUB 3270:IF done=1 THEN shipend=1:CLS:PRINT"You ran out of fuel, were stranded and":PRINT:PRINT‖c
P464ORACLE 464 Mon 3 Mar C4 1714:42 ‖F2206216‖a18moon.lis‖i25BASIC7Amstrad"p erished when your life support systems": PRINT:PRINT"failed.":GOTO 1130÷e÷b1020 I F engines=-1 THEN upflag=0÷e÷b1030 IF up flag=0 THEN GOSUB 1660:REM fall check÷e÷ b1040 IF shipend=1 THEN GOSUB 3750:G/TO 1130÷e÷b1050 fueling=0÷e÷b1060 IF x=37 T HEN IF y=3 THEN IF engines=-1 THEN fueli ng=1:GOSUB 2950:REM fuel load÷e÷b1070 GO SUB 1540:REM panel update÷e÷b1080 ctime= ctime-1:IF ctime>0 THEN 950:REM loop bac k÷e÷b1090 yellow=0:orange=0:count=count- 1÷e÷b1100 FOR i=1 TO 20:INK 0,24:FOR j=1 TO 200:NEXT j:INK 0,0:NEXT i÷e÷a1110 GO SUB 3820÷e÷b1120 IF shipend=0 AND count >0 THEN ctime=1500:GOTO 950÷e÷b1130 GOSU B 4460:FOR i=1 TO 5000:NEXT i÷e÷b1140 GO SUB 3480:GOSUB 3310:REM calculate & disp lay scores÷e÷b1150 ERASE screen÷e÷b1160 GOTO 280:REM play again?÷e÷b1170 REM÷e÷a 1180 REM ***** ship control *****÷e÷b119 0 IF engines=-1 THEN 1240÷e÷a1200 IF o/T INKEY(upj) OR NOT INKEY(upk) THEN v‖c
P464ORACLE 464 Mon 3 Mar C4 1704:11 ‖F2207216‖a18moon.lis‖i25BASIC7Amstradel ocity=0:IF upflag=0 THEN upflag=1:RETURN ELSE direction=1:GOSUB 1400:GOTO 1280÷e ÷b1210 IF NOT INKEY(downj) OR N/T INKEY( downk) THEN upflag=0:direction=2:IF grab =-1 THEN GOSUB 1400:RETURN ELSE RETURN÷e ÷b1220 IF NOT INKEY(leftj) OR NOT INKEY( leftk) THEN velocity=0:upflag=1:directio n=3:GOSUB 1400:G/TO 1280÷e÷a1230 IF o/T INKEY(rightj) OR N/T INKEY(rightk) THEN velocity=0:upflag=1:direction=4:GOSUB 14 00:GOTO 1280÷e÷b1240 IF NOT INKEY(71) AN D fuel>0 THEN engines=engines*-1:GOSUB 4380:RETURN÷e÷b1250 IF (N/T INKEY(liftj) OR NOT INKEY(liftk)) AND screen←x,y+1→> 0 AND screen←x,y+1→<4 THEN grab=grab*-1: objecttype=screen←x,y+1→:objx=x:objy=y+1 :GOSUB 438p:RETURN÷e÷b1260 IF NOT INKEY( 61) THEN GOSUB 3960:RETURN÷e÷b1270 RETUR N÷e÷b1280 IF grab=-1 THEN RETURN÷e÷b1290 IF direction<>2 THEN objvel=0:GOSUB 198 0:RETURN÷e÷a1300 GOSUB 1980:RETURN÷e÷a03 10 REM÷e÷b1320 REM **** ship draw **‖c
P464ORACLE 464 Mon 3 Mar C4 1724:19 ‖F2208216‖a18moon.liu‖i25BASIC7Amstrad** *÷e÷b1330 LOCATE x-1,y:PRINT CHR$(252)+C HR$(253)+CHR$(254);÷e÷b1340 RETURN÷e÷b13 50 REM÷e÷b1360 REM **** ship delete **** *÷e÷b1370 LOCATE x-1,y:PRINT" ";÷e÷a13 80 RETURN÷e÷a1390 REM÷e÷b1400 REM ***** ship move ******÷e÷b1410 PEN 3:GOSUB 136 0÷e÷b1420 ON direction GOTO 1430,1450,14 70,1490÷e÷a1430 IF screen←x-1,y-1→>0 OR screen←x,y-1→>0 OR screen←x+1,y-1→>0 THE N 1520÷e÷b1440 y=y-1:GOTO 1510÷e÷b1450 I F screen←x-1,y+1→>0 OR screen←x,y+1→>0 O R screen←x+1,y+1→>0 THEN 1520÷e÷a1460 y= y+1:GOTO 1510÷e÷b1470 IF screen←x-2,y→>0 THEN 1520÷e÷a1480 x=x-1:G/TO 8510÷e÷a14 90 IF screen←x+2,y→>0 THEN 1520÷e÷b1500 x=x+1÷e÷b1510 GOSUB 1320:RETURN÷e÷b1520 shipend=1:RETURN÷e÷a1530 REM÷e÷b1540 REM ****** panel update ******÷e÷a1550 PEN 1÷e÷b1560 IF fueling=0 THEN GOSUB 3040:R EM fuel gauge emptying÷e÷b1570 LOCATE 97 ,1:IF engines=1 THEN PRINT CHR$(143); EL SE PRINT" ";÷e÷b1580 LOCATE 25,1:IF ‖c
P464ORACLE 464 Mon 3 Mar C4 9725:12 ‖F2209216‖a18moon.lis‖i25BASIC7Amstradgr ab=1 THEN PRINT CHR$(143); ELSE PRINT" " ;÷e÷b1590 IF ctime=99 THEN yellow=1÷e÷b1 600 IF ctime=49 THEN yellow=0:orange=1÷e ÷b1610 LOCATE 33,1÷e÷b1620 IF ctime<50 T HEN PEN 3:PRINT CHR$(143);:G/TO 1640÷e÷a 1630 IF ctime<100 THEN PEN 1:PRINT CHR$( 143); ELSE PRINT" ";÷e÷b1640 RETURN÷e÷a1 650 REM÷e÷b1660 REM ****** ship fall *** ***÷e÷b1670 PEN 3:IF grab=1 THEN 1700÷e÷ b1680 IF screen←x-1,y+1→>0 OR screen←x,y +1→>0 OR screen←x+1,y+1→>0 THEN IF veloc ity>maxvel THEN 1790 ELSE RETURN÷e÷b1690 GOSUB 1360:y=y+1:GOSUB 1320:velocity=ve locity+1:RETURN÷e÷a1700 ON objecttype GO TO 1710,1750,1710÷e÷b1710 IF screen←x-1, y+1→>0 OR screen←x,y+2→>0 OR screen←x+1, y+1→>0 THEN IF velocity>maxvel THEN 1790 ELSE RETURN÷e÷b1720 GOSUB 1360:y=y+1:GO SUB 1320:velocity=velocity+1:screen←objx ,objy→=0:objy=objy+1÷e÷b1730 IF objecttz pe=1 THEN GOSUB 2270 ELSE GOSUB 2460÷e÷a 1740 RETURN÷e÷b1750 IF screen←x-1,y+‖c
P464ORACLE 464 Mon 3 Mar C4 1710:11 ‖F220A216‖a18moon.lis‖i25BASIC7Amstrad2→ >0 OR screen←x,y+2→>0 OR screen←x+1,y+2→ >0 THEN IF velocitz>maxvel THEN 1790 ELS E RETURN÷e÷b1760 GOSUB 1360:y=y+1:GOSUB 1320:velocity=velocity+1÷e÷b1770 FOR i=o bjx-1 TO objx+1:screen←i,objy→=0:NEXT i÷ e÷b1780 objy=objy+1:GOSUB 2350:RETURN÷e÷ b1790 shipend=1:RETURN÷e÷b1800 REM÷e÷a18 10 REM ***** explosion *****÷e÷b1820 PEN 3:engines=-1÷e÷b1830 IF xe<4 THEN xe=4÷ e÷b1840 IF xe>37 THEN xe=37÷e÷a1850 FOR i=1 TO 3:FOR j=ye-1 TO ye+1÷e÷b1860 LOCA TE xe-3,j:PRINT SPACE$(7);÷e÷b1870 FOR d =1 TO 100:NEXT d÷e÷b1880 SOUND 1,200,5,1 5,0,0,15÷e÷b1890 LOCATE xe-3,j:PRINT".:: :::.";÷e÷b1900 NEXT j:NEXT i÷e÷b1910 FOR j=ye-1 TO ye+1÷e÷b1920 LOCATE xe-3,j:PR INT SPACE$(7);÷e÷b1930 screen←xe-3,j→=0: screen←xe-2,j→=0:screen←xe-1,j→=0:screen ←xe,j→=0:screen←xe+1,j→=0:screen←xe+2,j→ =0:screen←xe+3,j→=0÷e÷a1940 NEXT j÷e÷a19 50 engines=-1:yellow=0:orange=0÷e÷a1960 RETURN÷e÷b1970 REM÷e÷b1980 REM **** ‖c
P464ORACLE 464 Mon 3 Mar C4 1710:01 ‖F220B216‖a18moon.lis‖i25BASEC7Amstradoa ject move ****÷e÷b1990 IF objecttype=3 T HEN PEN 3 ELSE PEN 2÷e÷a2000 ON objectty pe GOTO 2010,2100,2010÷e÷a2010 GOSUB 231 0:ON direction G/TO 2020,2030,2050,2060÷ e÷b2020 objy=objy-1:GOTO 2040÷e÷b2030 ob jy=objy+1÷e÷b2040 IF objecttype=1 THEN G OSUB 227p:RETURN ELSE GOSUB 2460:RETURN÷ e÷b2050 objx=objx-1:GOTO 2070÷e÷a2060 ob jx=objx+1÷e÷a2070 LOCATE objx,objy:IF ob jecttype=1 THEN PRINT CHR$(g2); ELSE PRI NT CHR$(g3);÷e÷b2080 IF screen←objx,objy →>0 THEN shipend=1÷e÷b2090 screen←objx,o bjy→=objecttype:RETURN÷e÷b2100 GOSUB 241 0:ON direction G/TO 2110,2120,2130,2140÷ e÷b2110 objy=objy-1:GOTO 2150÷e÷b2120 ob jy=objy+1:GOTO 2150÷e÷b2130 objx=objx-1: IF screen←objx-1,objy→>0 THEN shipend=1: GOTO 2150 ELSE 2150÷e÷a2140 objx=objx+1: IF screen←objx+1,objy→>0 THEN shipend=1÷ e÷b2150 GOSUB 2350:RETURN÷e÷a2160 REM÷e÷ b2170 REM ***** object fall *****÷e÷a218 0 PEN 2:ON objecttype GOTO 2190,2230‖c
P464ORACLE 464 Mon 3 Mar C4 1710:11 ‖F220C216‖a18moon.lis‖i25BASIC7Amstrad,2 190÷e÷b2190 IF objvel>maxvel AND screen← objx,objy+1→>0 THEN 2250÷e÷a2200 IF scre en←objx,objy+1→>0 THEN RETURN ELSE GOSUB 2310÷e÷a2210 objy=oajy+1:IF objectt8pe= 1 THEN GOSUB 2270 ELSE GOSUB 2460÷e÷a222 0 objvel=objvel+1:RETURN÷e÷a2230 IF scre en←objx-1,objy+1→>0 OR screen←objx,objy+ 1→>0 OR screen←objx+1,objy+1→>0 THEN IF objvel>maxvel THEN 2250 ELSE RETURN÷e÷a2 240 GOSUB 241p:objy=objy+1:GOSUB 2350:ob jvel=objvel+1:RETURN÷e÷a2250 SOUND 1,200 ,100,15,0,0,15:xe=objx:ye=objy:GOSUB 181 0:shipend=1:objectexplode=1:RETURN÷e÷a22 60 REM÷e÷a2270 REM ***** object 1 draw * ***÷e÷b2280 PEN 2:LOCATE objx,objy:PRINT CHR$(g2);:screen←objx,objy→=1÷e÷a2290 R ETURN÷e÷b2300 REM÷e÷a2310 REM ***** obje ct 1 & 3 delete *****÷e÷a2320 LOCATE obj x,objy:PRINT" ";:screen←objx,objy→=0÷e÷a 2330 RETURN÷e÷b2340 REM÷e÷b2350 REM **** object 2 draw *******÷e÷b2360 PEN 2:LOC ATE objx-1,objy:PRINT CHR$(127)+CHR$‖c
P464ORACLE 464 Mon 3 Mar C4 1710:28 ‖F220D216‖a18moon.lis‖i25BASIC7Amstrad(2 33)+CHR$(127);÷e÷b2370 FOR io=objx-1 TO objx+1:screen←io,objy→=rock:NEXT io÷e÷a2 380 screen←objx,objy→=2÷e÷a2390 RETURN÷e ÷b2400 REM÷e÷b2410 REM **** object 2 del ete *****÷e÷b2420 LOCATE objx-1,objy:PRI NT SPACE$(3);÷e÷b2430 F/R i=objx-1 TO ob jx+1:screen←i,objy→=0:NEXT i÷e÷a2440 RET URN÷e÷b2450 REM÷e÷a2460 REM **** object 3 draw ****÷e÷b2470 PEN 3:LOCATE objx,ob jy:PRINT CHR$(g3);:screen←objx,objy→=3÷e ÷b2480 RETURN÷e÷a2490 REM÷e÷a2500 REM ** *** display plans ****÷e÷b2510 CLS:GOSUB 4060:PEN 2÷e÷b2520 LOCATE 6,24:PRINT CH R$(g2)+" "+CHR$(g2)+" "+CHR$(g2);÷e÷a2 530 LOCATE 6,23:PRINT CHR$(127)+CHR$(233 )+CHR$(127)+CHR$(g2)+CHR$(127)+CHR$(233) +CHR$(127);÷e÷a2540 FOR j=22 TO 8 STEP - 2÷e÷b2550 LOCATE 9,j:PRINT CHR$(g2);÷e÷a 2560 LOCATE 8,j-1:PRINT CHR$(127)+CHR$(2 33)+CHR$(127);÷e÷a2570 NEXT j÷e÷a2580 LO CATE 20,16:PRINT CHR$(127)+CHR$(233)+CHR $(127);÷e÷b2590 PEN 3÷e÷b2600 FOR i=‖c
P464ORACLE 464 Mon 3 Mar C4 1721:48 ‖F220E216‖a18moon.lis‖i25BASIC7Amstrad20 TO 28 STEP 2:LOCATE i,24:PRINT CHR$(g3) ;:NEXT i÷e÷b2610 LOCATE 28,23:PRINT CHR$ (g3);÷e÷b2620 LOCATE 20,15:PRINT CHR$(25 2)+CHR$(253)+CHR$(254);÷e÷a2630 PEN 1÷e÷ b2640 LOCATE 30,22:PRINT" ";÷e÷a2650 LOC ATE 1,1:PRINT"press space bar to continu e"÷e÷b2660 LOCATE 20,4:PRINT"FUEL BASE-- -----";÷e÷b2670 LOCATE 21,22:PRINT"BUNKE R";÷e÷b2680 LOCATE 29,23:PRINT"----STORE S";÷e÷b2690 LOCATE 11,11:PRINT"------TOW ER";÷e÷b2700 IF INKEY(47) THEN 2700÷e÷a2 710 GOSUB 2740÷e÷b2720 RETURN÷e÷a2730 RE M÷e÷b2740 REM ***** regenerate screen ** ****÷e÷b2750 CLS:GOSUB 4060:REM scene se t up÷e÷b2760 GOSUB 3200:REM panel set up ÷e÷b2770 GOSUB 1540:REM panel display÷e÷ b2780 FOR i=1 TO 40:FOR j=2 TO 25÷e÷a279 0 ON screen←i,j→ G/TO 2810,2820,2830÷e÷a 2800 GOTO 2840÷e÷a2810 PEN 2:LOCATE i,j: PRINT CHR$(g2);:G/TO 2840÷e÷a2820 oxt=ob jx:oyt=objy:objx=i:objy=j:GOSUB 2350:oaj x=oxt:objy=oyt:G/TO 2840÷e÷a2830 PEN‖c
P464ORACLE 464 Mon 3 Mar C4 1706:55 ‖F220F216‖a18moon.lis‖i25BASIC7Amstrad 3 :LOCATE i,j:PRINT CHR$(g3);÷e÷b2840 NEXT j:NEXT i÷e÷b2850 PEN 3:GOSUB 1320÷e÷b28 60 RETURN÷e÷a2870 REM÷e÷b2880 REM *** en gine sound sub ******÷e÷b2890 IF engines =1 THEN SOUND 2,tone,50,4÷e÷a2900 IF yel low=0 AND orange=0 THEN RETURN÷e÷a2910 I F alarmdelay>0 THEN alarmdelay=alarmdela y-1:RETURN ELSE alarmdelay=3÷e÷a2920 IF yellow=1 THEN SOUND 4,400,50,12:SOUND 4, 300,50,12 ELSE SOUND 4,200,50,13:SOUND 4 ,100,50,12÷e÷a2930 RETURN÷e÷a2940 REM÷e÷ b2950 REM ***** refueling *****÷e÷a2960 IF fuel<maxfuel THEN fuel=fuel+100 ELSE SOUND 1,150,5,13÷e÷a2970 GOSUB 3000÷e÷a2 980 RETURN÷e÷b2990 REM÷e÷b3000 REM **** fuel gauge filling *****÷e÷a3010 PEN 1:L OCATE 7,1:PRINT STRING$(INT(fuel*5/maxfu el),CHR$(154));÷e÷b3020 RETURN÷e÷a3030 R EM÷e÷b3040 REM **** fuel gauge emptying *****÷e÷b3050 PEN 1:LOCATE 7,1÷e÷a3060 I F fuel=0 THEN PRINT SPACE$(5);:G/T/ 3180 ÷e÷b3070 ON fuel/maxfuel*10 GOTO 308‖c
P464ORACLE 464 Mon 3 Mar C4 1706:22 ‖F2210216‖a18moon.lis‖i25BASIC7Amstrad0, 3090,3100,3110,3120,3130,3140,3150,3160, 3170÷e÷b3080 PRINT CHR$(255)+SPACE$(4);: GOTO 3180÷e÷b3090 PRINT CHR$(154)+SPACE$ (4);:G/TO 3180÷e÷b3100 PRINT CHR$(154)+C HR$(255)+SPACE$(3);:GOTO 3180÷e÷a3110 PR INT STRING$(2,CHR$(154))+SPACE$(3);:G/TO 3180÷e÷b3120 PRINT STRING$(2,CHR$(154)) +CHR$(255)+SPACE$(2);:GOTO 3180÷e÷b3130 PRINT STRING$(3,CHR$(154))+SPACE$(2);:GO TO 3180÷e÷b3140 PRINT STRING$(3,CHR$(154 ))+CHR$(255)+SPACE$(1);:G/TO 3180÷e÷a315 0 PRINT STRING$(4,CHR$(154))+SPACE$(1);: GOTO 3180÷e÷b3160 PRINT STRING$(4,CHR$(1 54))+CHR$(255);:G/TO 3180÷e÷a3170 PRINT STRING$(5,CHR$(154));÷e÷b3180 RETURN÷e÷b 3190 REM÷e÷b3200 REM ***** panel set up *****÷e÷b3210 PEN 2:LOCATE 2,1:PRINT"FUE L";÷e÷b3220 LOCATE 13,1:PRINT"ENG";÷e÷a3 230 LOCATE 19,1:PRINT"GRABS";÷e÷b3240 LO CATE 27,1:PRINT"ALARM";÷e÷a3250 RETURN÷e ÷b3260 REM÷e÷b3270 REM *** stranded dela y ****÷e÷a3280 IF timestrand>0 THEN ‖c
P464ORACLE 464 Mon 3 Mar C4 1711:21 ‖F2211216‖a18moon.lis‖i25BASIC7Amstradti mestrand=timestrand-1 ELSE done=1÷e÷b329 0 RETURN÷e÷b3300 REM÷e÷b3310 REM ***** d isplay scores ********÷e÷b3320 CLS:CALL &BB03÷e÷b3330 INPUT "what is your name " ;name$:name$=LEFT$(name$,9):CLS÷e÷b3340 FOR i=10 TO 1 STEP -1÷e÷b3350 IF scoret← i→ > score THEN NEXT i:G/TO 3410÷e÷b3360 FOR j=i TO 1 STEP -1÷e÷b3370 tempscore= scoret←j→:tempname$=namet$←j→÷e÷b3380 sc oret←j→=score:namet$←j→=name$÷e÷a3390 sc ore=tempscore:name$=tempname$÷e÷b3400 NE XT j÷e÷b3410 PRINT" name"SPACE$(7);"scor e":PRINT÷e÷b3420 FOR i=10 TO 1 STEP -1÷e ÷a3430 PRINT " ";namet$←i→,scgret←i→÷e÷a 3440 NEXT i÷e÷b3450 GOSUB 4420÷e÷b3460 R ETURN÷e÷b3470 REM÷e÷b3480 REM ******* sc oring *********÷e÷b3490 PEN 1:FOR i=19 T O 29:FOR j=21 TO 24÷e÷b3500 IF screen←i, j→=3 THEN score=score+10÷e÷a3510 NEXT j: NEXT i÷e÷b3520 CLS:PRINT"For moving stgr es you scored ";scgre:PRINT÷e÷a3530 F/ R i=6 TO 12 STEP 3÷e÷b3540 IF screen‖c
P464ORACLE 464 Mon 3 Mar C4 1711:34 ‖F2212216‖a18moon.lis‖i25BASIC7Amstrad←i ,24→=1 THEN score2=score2+2÷e÷b3550 NEXT i÷e÷b3560 IF score2<6 THEN score1=score 2:GOTO 3670 ELSE score1=score1+score2:sc ore2=0÷e÷b3570 FOR i=6 TO 10 STEP 4÷e÷a3 580 IF screen←i,23→=14 AND screen←i+1,23 →=2 AND screen←i+2,23→=14 THEN scgre2=sc ore2+6÷e÷b3590 NEXT i÷e÷b3600 score1=sco re1+score2:IF score2<12 THEN 3670 ELSE s coref=1÷e÷b3610 IF screen←9,23→=1 THEN s core1=score1+2 ELSE 3670÷e÷b3620 IF scor ef=0 THEN 3670÷e÷b3630 FOR j=22 TO 8 STE P -2÷e÷b3640 IF screen←9,j→=1 THEN score 1=score1+2 ELSE 3670÷e÷b3650 IF screen←8 ,j-1→=14 AND screen←9,j-1→=2 AND screen← 10,j-1→=14 THEN score1=score1+6 ELSE 367 0÷e÷b3660 NEXT j÷e÷b3670 score=scgre+sco re1÷e÷b3680 PRINT"For work on tower you scored ";score1:PRINT÷e÷b3690 IF score 1=84 THEN PRINT"For finishing tower you scored 300":PRINT:scgre=score+300÷e÷a37 00 IF shipend=1 THEN PRINT"For destro9in g ship you scored 0" ELSE score=sco‖c
P464ORACLE 464 Mon 3 Mar C4 1717:48 ‖F2213216‖a18moon.lis‖i25BASIC7Amstradre +100:PRINT"For saving ship you scgred";S PACE$(6);"100" ÷e÷b3710 PRINT:PRINT:PRIN T"Your total score is";SPACE$(12);score÷ e÷b3720 GOSUB 4420÷e÷b3730 RETURN÷e÷b374 0 REM÷e÷b3750 REM ******* ship destroyed ******÷e÷b3760 xe=x:ye=y:GOSUB 1810:GOS UB 4460:CLS:PEN 1÷e÷b3770 IF fuel=0 THEN PRINT" Your ship ran out of fuel and th en":PRINT:PRINT"crashed.":RETURN÷e÷b3780 IF objectexplode=1 THEN PRINT"You dropp ed an object, it exploded and":PRINT:PRI NT"the radiation destroyed your ship.":R ETURN÷e÷b3790 PRINT"You crashed your shi p."÷e÷b3800 RETURN÷e÷b3810 REM÷e÷b3820 R EM ****** ship safe ******÷e÷a3830 PEN 1 :IF x<19 OR x>28 OR y<21 THEN outside=1: GOTO 3910÷e÷b3840 FOR i=17 TO 30÷e÷b3850 IF screen←i,20→<rock OR screen←i,25→<ro ck THEN 3910÷e÷b3860 NEXT i÷e÷b3870 FOR j=20 TO 25÷e÷b3880 IF screen←17,j→<rock OR screen←30,j→<rock THEN 3910÷e÷a3890 N EXT j÷e÷b3900 IF count=0 THEN CLS:PR‖c
P464ORACLE 464 Mon 3 Mar C4 1712:02 ‖F2214216‖a18moon.lis‖i25BASIC7AmstradIN T"Congratulations your ship survived the ":PRINT:PRINT"solar flares.":RETURN ELSE RETURN÷e÷b3910 shipend=1:xe=x:ye=y:GOSU B 1810:CLS:PEN 1÷e÷b3920 IF outside=1 TH EN PRINT "Your ship was caught outside t he bunker":PRINT:PRINT"when the solar fl are occurred and so was":PRINT"destroyed .":RETURN÷e÷b3930 PRINT"The bunker dogr was open when the solar":PRINT:PRINT"fla re occurred and so your ship was":PRINT: PRINT"destroyed."÷e÷a3940 RETURN÷e÷a3950 REM÷e÷b3960 REM ***** door ******÷e÷a39 70 IF door=1 THEN 4000÷e÷b3980 IF y<22 O R y>23 OR x<29 OR x>31 THEN IF screen←30 ,22→=0 AND screen←30,23→=0 THEN 4000÷e÷b 3990 RETURN÷e÷b4000 GOSUB 4380:door=door *-1÷e÷b4010 IF door=1 THEN fills=143:fil la=14 ELSE fills=32:filla=0÷e÷a4020 scre en←30,22→=filla:screen←30,23→=filla÷e÷a4 030 PEN 1:LOCATE 30,22:PRINT CHR$(fills) ;:LOCATE 30,23:PRINT CHR$(fills);÷e÷a404 0 RETURN÷e÷b4050 REM÷e÷b4060 REM ***‖c
P464ORACLE 464 Mon 3 Mar C4 9712:12 ‖F2215216‖a18moon.lis‖i25BASIC7Amstrad** scene set up ******* ÷e÷b4070 PEN 1÷e÷a 4080 FOR i=1 TO 40:screen←i,1→=rock:scre en←i,25→=rock:LOCATE i,25:PRINT CHR$(g1) ;:NEXT i÷e÷b4090 FOR j=15 TO 25:screen←1 ,j→=rock:LOCATE 1,j:PRINT CHR$(g1);:NEXT j÷e÷b4100 FOR i=2 TO 25:screen←1,i→=roc k:screen←40,i→=rock:LOCATE 40,i:PRINT CH R$(g1);:NEXT i÷e÷a4110 FOR i=36 TO 39:FO R j=2 TO 15:screen←i,j→=rock:LOCATE i,j: PRINT CHR$(g1);:NEXT j:NEXT i÷e÷b4120 FO R i=27 TO 32:FOR j=6 TO 20:screen←i,j→=r ock:LOCATE i,j:PRINT CHR$(g1);:NEXT j:NE XT i÷e÷b4130 FOR j=16 TO 18:LOCATE 32,j: PRINT CHR$(32);:screen←32,j→=0:NEXT j÷e÷ b4140 LOCATE 33,19:PRINT CHR$(g1)+CHR$(g 1)+CHR$(g1);:screen←33,19→=rock:screen←3 4,19→=rock:screen←35,19→=rock:screen←30, 22→=0:screen←30,23→=0÷e÷b4150 FOR j=8 TO 24:LOCATE 2,j:PRINT CHR$(g1);:screen←2, j→=rock:NEXT j÷e÷a4160 LOCATE 86,24:PRIG T CHR$(g1);:screen←16,24→=rock÷e÷a4170 C OR j=19 TO 24:LOCATE 17,j:PRINT CHR$‖c
P464ORACLE 464 Mon 3 Mar C4 1722:27 ‖F2216216‖a18moon.lis‖i25BASIC7Amstrad(g 1);:screen←17,j→=rock:NEXT j÷e÷a4180 LOC ATE 17,18:PRINT CHR$(223);:screen←17,18→ =rock÷e÷b4190 FOR i=18 TO 26:LOCATE i,20 :PRINT CHR$(g1);:screen←i,20→=rock:NEXT i÷e÷b4200 LOCATE 18,21:PRINT CHR$(220);: screen←18,21→=rock÷e÷a4210 LOCATE 18,19: PRINT CHR$(223);:screen←18,19→=rock÷e÷a4 220 LOCATE 26,19:PRINT CHR$(222);:screen ←26,19→=rock÷e÷b4230 LOCATE 15,24:PRINT CHR$(222);:screen←15,24→=rock÷e÷a4240 LO CATE 16,23:PRINT CHR$(222);:screen←16,23 →=rock÷e÷b4250 LOCATE 18,24:PRINT CHR$(2 23);:screen←18,24→=rock÷e÷b4260 LOCATE 3 0,21:PRINT CHR$(g1);:screen←30,21→=rock÷ e÷b4270 LOCATE 29,21:PRINT CHR$(221);:sc reen←29,21→=rock÷e÷b4280 LOCATE 29,24:PR INT CHR$(222);:screen←29,24→=rock÷e÷a429 0 LOCATE 30,24:PRINT CHR$(g1);:screen←30 ,24→=rock÷e÷b4300 LOCATE 6,25:PRINT CHR$ (143);:LOCATE 9,25:PRINT CHR$(143);:LOCA TE 12,25:PRINT CHR$(143);÷e÷a4310 IF doo r=1 THEN PEN 1:door=-1:GOSUB 3960÷e÷b‖c
P464ORACLE 464 Mon 3 Mar C4 1718:21 ‖F2217217‖a18moon.lis‖i25BASIC7Amstrad43 20 PEN 3÷e÷b4330 FOR i=36 TO 39:LOCATE i ,3:PRINT" ";:screen←i,3→=0:NEXT i÷e÷a434 0 LOCATE 36,4:PRINT CHR$(143)+CHR$(233)+ CHR$(143);÷e÷b4350 FOR i=36 TO 38:screen ←i,4→=13:NEXT i:screen ←37,4→=12:LOCATE 39,4:PRINT" ";:screen←39,4→=12÷e÷a4360 R ETURN÷e÷b4370 REM÷e÷b4380 REM ******* de lay *******÷e÷b4390 FOR del=1 TO 50:NEXT del:SOUND 1,200,10,13÷e÷b4400 RETURN÷e÷ b4410 REM÷e÷b4420 REM **** space bar *** *÷e÷b4430 LOCATE 1,25:PRINT"Press space bar to continue"÷e÷a4440 IF INKEY(47) TH EN 4440 ELSE CLS:RETURN÷e÷a4450 REM÷e÷a4 460 REM ***** shut down *****÷e÷a4470 en gines=-1:yellow=0:orange=0÷e÷a4480 RETUR N÷e÷b÷r‖d