10 REM ENERGY FIELD.
20 REM à PAUL STANLEY.
25 REM PAN BOOKS 1984
30 MODE 1:BORDER 0:INK 0,0:INK 1,24:INK 2,20:INK 3,7:WINDOW #1,1,40,1,25:PAPER #1,0:PEN #1,1:CLS #1
40 GOSUB 1700
50 GOSUB 1570
60 CLS
70 GOSUB 1600
80 H=0
90 WINDOW #0,5,36,1,25:PAPER #0,0:PEN #0,1:CLS #0
100 GOSUB 1340
110 GOSUB 1510
120 LOCATE 1,1:PRINT"SCORE:";:LOCATE 23,1:PRINT"HIGH:";:LOCATE 27,23:PRINT"POWER";
130 LOCATE 29,1:PRINT MID$(STR$(H),2)
140 PEN 2:LOCATE X+1,Y+1:PRINT CHR$(238);CHR$(239);:PEN 1
150 IF LI<=1 THEN 1280
160 P=P-0.05:LOCATE 7,1:PEN 2:PRINT MID$(STR$(S),2);:PEN 1:G=1:SS=INT(RND*4)+1:ON SS GOTO 240,370,500,630
170 FOR D=1 TO P:PEN 0:LOCATE X+1,Y+1:PRINT CHR$(238);CHR$(239);:PEN 1
180 IF INKEY(0)=0 THEN DR=1:MV=MV-1*(MV<4)+3*(MV=4):X=P(DR,MV):Y=Q(DR,MV):FOR PS=1 TO 100:NEXT
190 IF INKEY(2)=0 THEN DR=2:MV=MV+1*(MV>1)-3*(MV=1):X=P(DR,MV):Y=Q(DR,MV):FOR PS=1 TO 100:NEXT
200 LOCATE X+1,Y+1:PEN 2:PRINT CHR$(238);CHR$(239);
210 IF INKEY(47)=0 THEN IF G<>0 THEN GOSUB 760
220 NEXT
230 RETURN
240 O=S:FOR F=1 TO 4
250 A=1
260 LOCATE 17,(11+2*F)+1:PEN 2:PRINT MID$(A$,F,1);:PEN 1
270 GOSUB 170
280 SOUND 1,(F*10),3
290 PEN 0:LOCATE 17,(11+2*F)+1:PRINT MID$(A$,F,1):PEN 1
300 GOSUB 170
310 SOUND 1,(F*15),3
320 NEXT F
330 IF S<O THEN LOCATE 16,(11+2*F)+1:PEN 2:PRINT CHR$(240);:PEN 1:FOR SS=10 TO 20:SOUND 1,(SS*10),3:NEXT:LOCATE 16,(11+2*F)+1:PEN 0:PRINT CHR$(240);:PEN 1
340 PEN 1
350 IF S=O THEN LI=LI- 0.2:LOCATE 28,22:PRINT INT (LI);"  "
360 GOTO 150
370 O=S:FOR F=1 TO 4
380 A=2
390 LOCATE 17,(10-2*F)+1:PEN 3:PRINT MID$(A$,F,1);:PEN 1
400 GOSUB 170
410 SOUND 1,(F*10),3
420 PEN 0:LOCATE 17,(10-2*F)+1:PRINT MID$(A$,F,1);:PEN 1
430 GOSUB 170
440 SOUND 1,(F*15),3
450 NEXT
460 IF S<>O THEN LOCATE 17,(11-2*F)+1:PEN 3:PRINT CHR$(240);:PEN 1:FOR SS=10 TO 20:SOUND 1,(SS*10),3:NEXT:LOCATE 17,(11-2*F)+1:PEN 0:PRINT CHR$(240);:PEN 1
470 PEN 1
480 IF S=O THEN LI=LI-0.2:LOCATE 28,22:PRINT INT (LI);"  "
490 GOTO 150
500 O=S:FOR F=1 TO 5
510 A=3
520 LOCATE (15-2*F),11:PRINT MID$(B$,F,1);
530 GOSUB 170
540 SOUND 1,(F*40+F*2),3
550 PEN 0:LOCATE (15-2*F),11:PRINT MID$(B$,F,1);:PEN 1
560 GOSUB 170
570 SOUND 1,(F*40+F*2),3
580 NEXT F
590 IF S<>O THEN LOCATE (15-2*F)+1,11:PEN 3:PRINT CHR$(240);:PEN 1:FOR SS=5 TO 15:SOUND 1,(SS*15),3:NEXT:LOCATE (15-2*F)+1,11:PEN 0:PRINT CHR$(240);:PEN 1
600 PEN 1
610 IF S=O THEN LI=LI-0.2:LOCATE 28,22:PRINT INT (LI);" "
620 GOTO 150
630 O=S:FOR F=1 TO 5
640 A=4
650 LOCATE (18+2*F),11:PRINT MID$(B$,F,1)
660 GOSUB 170
670 SOUND 1,(F*40+F*2),3
680 PEN 0:LOCATE (18+2*F),11:PRINT MID$(B$,F,1);:PEN 1
690 GOSUB 170
700 SOUND 1,(F*40+F*2),3
710 NEXT
720 IF S<>O THEN LOCATE (17+2*F)+1,12:PEN 2:PRINT CHR$(240);:PEN 1:FOR SS=5 TO 15:SOUND 1,(SS*15),3:NEXT:LOCATE (17+2*F)+1,12:PEN 0:PRINT CHR$(240);:PEN 1
730 PEN 1
740 IF S=O THEN LI=LI-0.2:LOCATE 28,22:PRINT INT (LI);"  "
750 GOTO 150
760 ON MV GOTO 870,970,770,1070
770 REM FIELD 3
780 PEN 3
790 FOR Q=5 TO 17 :LOCATE 28,Q+1:PRINT STRING$(3,143):NEXT
800 FOR SS=5 TO 15:SOUND 1,(SS*15),3:NEXT
810 FOR Q=5 TO 17 :LOCATE 28,Q+1:PRINT "   ":NEXT
820 PEN 1
830 IF A<>4 THEN 1170
840 S=S+20
850 G=0
860 RETURN
870 REM FIELD 1
880 PEN 3
890 FOR Q=5 TO 17:LOCATE 3,Q+1:PRINT STRING$(3,143);:NEXT
900 FOR SS=5 TO 15:SOUND 1,(SS*15),3:NEXT
910 FOR Q=5 TO 17:LOCATE 3,Q+1:PRINT"   ": NEXT
920 PEN 1
930 IF A<>3 THEN 1170
940 S=S+20
950 G=0
960 RETURN
970 REM FIELD 2
980 PEN 3
990 FOR Q=13 TO 19:LOCATE Q+1,2:PRINT CHR$(143);:LOCATE Q+1,3:PRINT CHR$(143);:NEXT
1000 FOR SS=5 TO 15:SOUND 1,(SS*15),3:NEXT
1010 FOR Q=13 TO 19:LOCATE Q+1,2:PRINT " ":LOCATE Q+1,3:PRINT " ";:NEXT
1020 PEN 1
1030 IF A<>2 THEN 1170
1040 S=S+20
1050 G=0
1060 RETURN
1070 REM FIELD 4
1080 PEN 3
1090 FOR Q=13 TO 19:LOCATE Q+1,20:PRINT CHR$(143);:LOCATE Q+1,21:PRINT CHR$(143);:NEXT
1100 FOR SS=5 TO 15:SOUND 1,(SS*15),3:NEXT
1110 FOR Q=13 TO 19:LOCATE Q+1,20:PRINT " ":LOCATE Q+1,21:PRINT " ";:NEXT
1120 PEN 1
1130 IF A<>1 THEN 1170
1140 S=S+20
1150 G=0
1160 RETURN
1170 PEN 2:LOCATE X+1,Y+1:PRINT CHR$(238);CHR$(239);
1180 FOR R=1 TO 10
1190 LOCATE X+1,Y+1:PEN 3:PRINT CHR$(240);CHR$(240);:PEN 1
1200 SOUND 1,(R*100),3
1210 :' LOCATE X,R+1:PRINT CHR$(240);CHR$(240);CHR$(240);
1220  LOCATE X+1,Y+1:PRINT "  ";
1230 FOR XX=1 TO 40:NEXT
1240 NEXT
1250 LI=LI-1:LOCATE 28,22:PRINT INT (LI);"  ";:IF LI<=1 THEN 1280
1260 PEN 2: LOCATE X+1,Y+1:PRINT CHR$(238);CHR$(239);
1270 RETURN
1280 LOCATE 9,11:PEN 1:PRINT CHR$(24);"G A M E  O V E R";CHR$(24);:PEN 1
1290 IF S>H THEN H=S
1300 LOCATE 1,22:PEN 3:PRINT CHR$(24);"  PRESS ANY KEY TO PLAY AGAIN   ";CHR$(24);:PEN 1
1310 IF INKEY$<>"" THEN 1310
1320 IF INKEY$="" THEN 1320 ELSE RESTORE:CLS:GOTO 100
1330 GOTO 1320
1340 SYMBOL AFTER 230
1350 SYMBOL 231,40,84,186,124,186,84,40,0
1360 SYMBOL 232,0,16,40,84,40,16,0,0
1370 SYMBOL 233,0,0,0,24,24,0,0,0
1380 SYMBOL 234,0,0,0,16,0,0,0,0
1390 SYMBOL 235,255,195,189,189,189,189,195,255
1400 SYMBOL 236,0,62,54,42,54,62,0,0
1410 SYMBOL 237,0,0,28,28,28,0,0,0
1420 SYMBOL 238,96,240,249,239,249,240,96,0
1430 SYMBOL 239,6,15,159,247,159,15,6,0
1440 SYMBOL 240,218,33,76,195,24,101,147,100
1450 MV=1:X=1:Y=21
1460 A$=CHR$(234)+CHR$(233)+CHR$(232)+CHR$(231)
1470 B$=CHR$(234)+CHR$(233)+CHR$(237)+CHR$(236)+CHR$(235)
1480 S=0
1490 LI=8:P=5
1500 RETURN
1510 PLOT 316,234,3:DRAWR 8,0:DRAWR 0,-8:DRAWR 8,0:DRAWR 0,-8:DRAWR -8,0:DRAWR 0,-8:DRAWR -8,0:DRAWR 0,8:DRAWR -8,0:DRAWR 0,8:DRAWR 8,0:DRAWR 0,8
1520  DRAWR -80,154,2:DRAWR 168,0:DRAWR 0,-50:DRAWR -168,0:DRAWR 0,50:PLOT 236,338:DRAWR 80,-104:DRAWR 8,0,3:DRAWR 80,104,2:DRAWR 0,50:DRAWR -80,-154
1530 PLOT 316,210:DRAWR -80,-154:DRAWR 168,0:DRAWR 0,50:DRAWR -168,0:DRAWR 0,-50:DRAWR 0,50:DRAWR 80,104:DRAWR 8,0,3:DRAWR 80,-104,2:DRAWR 0,-50:DRAWR -80,154
1540 PLOT 308,226:DRAWR -214,142:DRAWR 60,0:DRAWR 0,-292:DRAWR-60,0:DRAWR 0,292:DRAWR 60,0:DRAWR 154,-142:DRAWR 0,-8,3:DRAWR -214,-142,2:DRAWR 60,0:DRAWR 154,142
1550 PLOT 332,226:DRAWR 214,142:DRAWR -60,0:DRAWR 0,-292:DRAWR 60,0:DRAWR 0,292:DRAWR -60,0:DRAWR -154,-142:DRAWR 0,-8,3:DRAWR 214,-142,2:DRAWR -60,0:DRAWR -154,142
1560 RETURN
1570 PEN 3:FOR F=1 TO 24:LOCATE F+1,F+1:PRINT CHR$(24);"ENERGY FIELD";CHR$(24);:SOUND 1,(F*30+F),3:NEXT F:PEN 1
1580 FOR X=1 TO 250:NEXT
1590 RETURN
1600 PRINT TAB(14);"ENERGY  FIELD"
1610 PEN 2:PRINT:PRINT"Guard  the  tube  with  your  craft  by setting up energy shields at the 4 open ends of the system."
1620 PRINT"Setting one up at a tube NOT containing an  enemy  will  result  in   your      destruction."
1630 PEN 3:PRINT:PRINT"Move UP and DOWN using the cursor keys."
1640 PEN 2:PRINT:PRINT
1650 PRINT"Use  SPACEBAR  to place an energy field at a tube mouth.  Letting an enemy past or self destructing results in power    loss and if this is too great then the  game is over."
1660 PEN 3:PRINT: PRINT: PRINT"    PRESS ANY KEY TO START THE GAME    "
1670 IF INKEY$<>"" THEN 1670
1680 IF INKEY$="" THEN 1680 ELSE CLS
1690 RETURN
1700 FOR DX=1 TO 2:FOR PX=1 TO 4:READ P(DX,PX),Q(DX,PX):NEXT PX,DX:RETURN
1710 DATA 1,21,8,1,24,1,22,21
1720 DATA 6,1,22,1,24,21,8,21