Energy Field


You are at the edge of Time, closely pursued by a fleet of alien craft who are out to steal your ship's power. However you have a trick or two up your sleeve. You have the capacity to guard the ends of the time tunnel by setting up energy fields at each of the four open ends of the system. If you attempt to set up a force field anywhere other than at the ends of the time tunnel, the force will feed back and destroy you. Likewise if you set up a field at the end of an unoccupied tunnel you are finished. Passive cruiser commanders who allow too many aliens through will find their power drained and the game over.

    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