1 REM *** BBC VERISION *** 2 REM *** ENERGY FIELDS *** 10 GOSUB1340 20 H=0 30 GOSUB1150 40 VDU19,1,3;0; 50 PRINTTAB(28,0);H 60 PROCPRIN(X,Y,CHR$231+CHR$232) 70 IFLI<=1 GOTO1110 80 P=P-.05:PRINTTAB(0,0);S:G=1:ON RND(4) G OTO180,290,400,510 90 FORD=1TOP:PROCPRIN(X,Y,CHR$231+CHR$232) 100 IFINKEY(-58) X=X+1:Y=Y-1 110 IFINKEY(-42) X=X+1:Y=Y+1 120 IFY<0 Y=21 130 IFY>21 Y=0 140 IFX>31 X=0 150 PROCPRIN(X,Y,CHR$231+CHR$232) 160 IFINKEY(-99) AND G GOSUB620 170 NEXTD:RETURN 180 O=S:FORF=1TO4 190 A=1 200 PROCPRIN(15,10+2*F,MID$(A$,F,1)) 210 GOSUB90 220 PROCPRIN(15,10+2*F,MID$(A$,F,1)):PROC PRIN(15,11+2*F,MID$(A$,F,1)) 230 GOSUB290 240 PROCPRIN(15,11+2*F,MID$(A$,F,1)) 250 NEXTF 260 IFS<>O PROCPRIN(15,11+2*F,CHR$233):SOUN D0,-15,4,1:SOUND0,-13,6,1:SOUND0,-11,5,1:SOUN D0,-8,6,1:PROCPRIN(15,11+2*F,CHR$233) 270 IFS=O LI=LI-.2:PRINTTAB(27,21);INT(LI)" " 280 GOTO70 290 O=S:FORF=1TO4 300 A=2 310 PROCPRIN(16,11-2*F,MID$(A$,F,1)) 320 GOSUB90 330 PROCPRIN(16,11-2*F,MID$(A$,F,1)):PROC PRIN(16,10-2*F,MID$(A$,F,1)) 340 GOSUB90 350 PROCPRIN(16,10-2*F,MID$(A$,F,1)) 360 NEXTF 370 IFS<>O PROCPRIN(16,10-2*F,CHR$233):SOUN D0,-15,4,1:SOUND0,-13,6,1:SOUND0,-11,5,1:SOUN D0,-8,6,1:PROCPRIN(16,10-2*F,CHR$233) 380 IFS=O LI=LI-.2:PRINTTAB(27,21);INT(LI)" " 390 GOTO70 400 O=S:FORF=1TO5 410 A=3 420 PROCPRIN(15-2*F,10,MID$(B$,F,1)) 430 GOSUB90 440 PROCPRIN(15-2*F,10,MID$(B$,F,1)):PROC PRIN(14-2*F,10,MID$(B$,F,1)) 450 GOSUB90 460 PROCPRIN(14-2*F,10,MID$(B$,F,1)) 470 NEXTF 480 IFS<>O PROCPRIN(14-2*F,10,CHR$233):SOUN D0,-15,4,1:SOUND0,-13,6,1:SOUND0,-11,5,1:SOUN D0,-8,6,1:PROCPRIN(14-2*F,10,CHR$233) 490 IFS=O LI=LI-.2:PRINTTAB(27,21);INT(LI)" " 500 GOTO70 510 O=S:FORF=1TO5 520 A=4 530 PROCPRIN(16+2*F,11,MID$(B$,F,1)) 540 GOSUB90 550 PROCPRIN(16+2*F,11,MID$(B$,F,1)):PROC PRIN(17+2*F,11,MID$(B$,F,1)) 560 GOSUB90 570 PROCPRIN(17+2*F,11,MID$(B$,F,1)) 580 NEXTF 590 IFS<>O PROCPRIN(17+2*F,11,CHR$233):SOUN D0,-15,4,1:SOUND0,-13,6,1:SOUND0,-11,5,1:SOUN D0,-8,6,1:PROCPRIN(17+2*F,11,CHR$233) 600 IFS=O LI=LI-.2:PRINTTAB(27,21);INT(LI)" " 610 GOTO70 620 IFX<6 GOTO740 630 IFX>9 AND X<22 GOTO830 640 IFX<25 GOTO1020 650 IFX>29 OR Y<2 OR Y>19 GOTO1020 660 SOUND0,-15,3,10 670 FORQ=2TO19:PROCPRIN(27,Q,CHR$233+CHR$23 3+CHR$233):NEXT 680 SOUND0,-15,3,10 690 FORQ=2TO19:PROCPRIN(27,Q,CHR$233+CHR$23 3+CHR$233):NEXT 700 IFA<>4 GOTO1020 710 S=S+20 720 G=0 730 RETURN 740 IFX<1 OR Y<2 OR Y>19 GOTO1020 750 SOUND0,-15,3,10 760 FORQ=2TO19:PROCPRIN(2,Q,CHR$233+CHR$233 +CHR$233):NEXT 770 SOUND0,-15,3,10 780 FORQ=2TO19:PROCPRIN(2,Q,CHR$233+CHR$233 +CHR$233):NEXT 790 IFA<>3 GOTO1020 800 S=S+20 810 G=0 820 RETURN 830 IFY>10 GOTO930 840 IFY<1 OR Y>3 GOTO1020 850 SOUND0,-15,3,10 860 FORQ=11TO20:PROCPRIN(Q,1,CHR$233):PROCP RIN(Q,2,CHR$233):PROCPRIN(Q,3,CHR$233):NEXT 870 SOUND0,-15,3,10 880 FORQ=11TO20:PROCPRIN(Q,1,CHR$233):PROCP RIN(Q,2,CHR$233):PROCPRIN(Q,3,CHR$233):NEXT 890 IFA<>2 GOTO1020 900 S=S+20 910 G=0 920 RETURN 930 IFY>20 OR Y<18 GOTO1020 940 SOUND0,-15,3,10 950 FORQ=11TO20:PROCPRIN(Q,18,CHR$233):PROC PRIN(Q,19,CHR$233):PROCPRIN(Q,20,CHR$233):NEX T 960 SOUND0,-15,3,10 970 FORQ=11TO20:PROCPRIN(Q,18,CHR$233):PROC PRIN(Q,19,CHR$233):PROCPRIN(Q,20,CHR$233):NEX T 980 IFA<>1 GOTO1020 990 S=S+20 1000 G=0 1010 RETURN 1020 PROCPRIN(X,Y,CHR$231+CHR$232) 1030 FORR=Y TO21 1040 PROCPRIN(X-1,R,CHR$233+CHR$233+CHR$23 3) 1050 SOUND1,-15,50-R,1 1060 PROCPRIN(X-1,R,CHR$233+CHR$233+CHR$23 3) 1070 NEXT 1080 LI=LI-1:PRINTTAB(27,21);INT(LI)" ":IFL I<=1 GOTO1110 1090 PROCPRIN(X,Y,CHR$231+CHR$232) 1100 RETURN 1110 FORI=100TO70STEP-1:SOUND1,-15,I,1:NEXT: MODE7:PRINTTAB(12,15)CHR$136;CHR$141;CHR$&86" Game Over"TAB(12,16)CHR$136;CHR$141;CHR$&86"G ame Over" 1120 IFS>H H=S 1130 PRINTTAB(7,22)"Press SPACE to play agai n.":*FX15 1140 REPEATUNTILGET=32:GOSUB1210:GOTO40 1150 FORF=224TO233:VDU23,F:FORI=0TO7:READX:V DUX:NEXT, 1160 DATA40,84,186,124,186,84,40,0,0,16,40 ,84,40,16,0,0 1170 DATA0,0,0,24,24,0,0,0,0,0,0,16,0,0,0, 0 1180 DATA255,195,189,189,189,189,195,255,0 ,62,54,42,54,62,0,0 1190 DATA0,0,28,28,28,0,0,0,96,240,249,239 ,249,240,96,0 1200 DATA6,15,159,247,159,15,6,0,218,33,76 ,195,24,101,147,100 1210 X=1:Y=1 1220 A$=CHR$227+CHR$226+CHR$225+CHR$224 1230 B$=CHR$227+CHR$226+CHR$230+CHR$229+CH R$228 1240 S=0 1250 LI=8:P=5 1260 MODE1:VDU28,4,27,35,4,29,128;192; 1270 PLOT69,504,372:PLOT1,16,0:PLOT1,0,-16 :PLOT1,16,0:PLOT1,0,-16:PLOT1,-16,0:PLOT1,0,- 16:PLOT1,-16,0:PLOT1,0,16:PLOT1,-16,0:PLOT1,0 ,16:PLOT1,16,0:PLOT1,0,16 1280 PLOT1,-160,308:PLOT1,336,0:PLOT1,0,-1 00:PLOT1,-336,0:PLOT1,0,100:PLOT69,344,580:PL OT1,160,-208:PLOT1,16,0 1290 PLOT1,160,208:PLOT1,0,100:PLOT1,-160, -308 1300 PLOT69,504,324:PLOT1,-160,-308:PLOT1, 336,0:PLOT1,0,100:PLOT1,-336,0:PLOT1,0,-100:P LOT1,0,100:PLOT1,160,208:PLOT1,16,0:PLOT1,160 ,-208:PLOT1,0,-100:PLOT1,-160,308 1310 PLOT69,480,356:PLOT1,-428,284:PLOT1,1 20,0:PLOT1,0,-584:PLOT1,-120,0:PLOT1,0,584:PL OT1,120,0:PLOT1,308,-284:PLOT1,0,-16:PLOT1,-4 28,-284:PLOT1,120,0:PLOT1,308,284 1320 PLOT69,536,356:PLOT1,428,284:PLOT1,-1 20,0:PLOT1,0,-584:PLOT1,120,0:PLOT1,0,584:PLO T1,-120,0:PLOT1,-308,-284:PLOT1,0,-16:PLOT1,4 28,-284:PLOT1,-120,0:PLOT1,-308,284 1330 RETURN 1340 MODE7:FORF=1TO7:PRINTTAB(F*2,F)CHR$(& 80+F)"Energy Fields.":NEXT 1350 PRINT'"Guard the tube with your craft by setting up energy shields at the 4 open ends of the system. Attempting to place a field at any place other than the end will result in your destruction." 1360 PRINT'"Setting one up at a tube not c ontaining an enemy wil also result in destruction." 1370 PRINTTAB(0,22)CHR$136;CHR$&82" Pre ss SPACE to continue.":REPEAT:UNTILGET=32 1380 PRINTTAB(0,9)"Move up and down using the cursor keys, but remember that you move r ight at the same time and going off the scree n will place you on the opposite side."SPC(45 ) 1390 PRINT"Place an energy field at a tube mouth with the SPACE BAR. Letting an enemy past or self destruction results in p ower loss and if this is too great then t he game is over." 1400 REPEATUNTILGET=32:RETURN 1410 DEFPROCPRIN(X,Y,A$) 1420 VDU5:GCOL3,2 1430 MOVEX*32,703-Y*32 1440 PRINTA$:VDU4 1450 ENDPROC