PROTECTOR --t- 5 .5,5 :  5 (9800H&:CREATES USER-DEFINED CHARS (%85004!:PRINTS THE INSTRUCTIONS 2*23658j\,8:ACTIVATES CAPS LOCK P 5 nSA$(5,7):R$(6,8):B(5):ARRAYS FOR HIGH-SCORE TABLE xtN=15:A$(N)="PATRICK":R$(N)="PRIVATE ":B(N)=1000-N*100d:N:INITIALISES HIGH SCORE TABLE -SETS UP OTHER VARIABLES NEEDED FOR THE GAME oY1=12 :Y2=20:Y3=15:X1=0:X2=0:X3=0 +TT=0:Y0=11 :Y=99c KTEST=300,:SD=32 :TEST1=0:SC=0:SH=20 *********************** !8000@:CREATES GAME SCREEN L6;0;1;20,11 ;"";19,12 ;""  =X3=0:Y3=(*20)+9 :950 RTT=(*7) \=X1=0:Y1=(*22)+8:950 TT=(*6) =X2=0:Y2=(*22)+8:950 65;2;X3,Y3;"";X2,Y2;"";X1,Y1;"" CHECKS ON STATE OF GAME HSC>01;2;7;3,1;SC:1100L >SC=0:2;7;1;3,1;"00" L~1;2;7;7,2;SH;" ":SH=05;7;12 ,15;"GAME OVER":7200  1;2;7;13 ,2;SD-7;" ":SD=75;7;12 ,15;"GAME OVER":7200  9SCTESTTEST=TEST+SC:.5,40(:SH=SH*2 F!CHECKS TO SEE IF KEY IS PRESSED x"=" "SH=SH-1:62008 (="Q"6000p:MOVES LASER TO LEFT )="W"6050:MOVES LASER TO RIGHT =CHECKS TO SEE IF ANY ATTACKERS HAVE BEEN HIT BY SHOTS FIRED Q(X1,Y1)42*ū(X1,Y1+1)42*6500d Q(X2,Y2)42*ū(X2,Y2+1)42*6700, +(X3,Y3)42*6600 l8CHECKS TO SEE IF ANY ATTACKERS HAVE REACHED THE BOTTOM Q5;X1,Y1;" ";X2,Y2;" ";X3,Y3;" " X3=X3+1:X3=195;6;17,Y3;"";18,Y3;"":.03{u\,-10 :5;17,Y3;" ";18,Y3;" ":Y3=1:SD=SD-1:4;2;21,SD;"":SC=SC-10 :800  X1=X1+1:X1=195;6;17,Y1;"";18,Y1;"":.03{u\,-8:5;17,Y1;" ";18,Y1;" ":Y1=1:SD=SD-1:4;2;21,SD;"":SC=SC-10 :850R X2=X2+1:X2=195;6;17,Y2;"";18,Y2;"":.03{u\,-4:5;17,Y2;" ";18,Y2;" ":Y2=1:SD=SD-1:4;2;21,SD;"":SC=SC-10 :900 65;2;X3,Y3;"";X2,Y2;"";X1,Y1;""  1000 fMOVES LASER LEFT pH6;20,Y0+2;" ";19,Y0+1;" " (Y0=Y0-1:Y=Y-8 $Y0<8Y0=8 Y<75KY=75K H6;0;1;20,Y0;"";19,Y0+1;""  MOVES LASER RIGHT @6;20,Y0;" ";19,Y0+1;" " (Y0=Y0+1:Y=Y+8 Y0>28Y0=28 Y>235Y=235 H6;0;1;20,Y0;"";19,Y0+1;""  8PRINTS THE LASER SHOTS L 7 `Y,24:0,141 e'Y+1,24:0,141 j11;Y,25:1;0,140 o91;Y+1,25:1;0,140  0  Z,THIS PROCEDURE CALLED WHEN A CRAFT IS SHOT dSC=SC+502 x.1}L,10 STT=4SC=SC+100d:5;X1,Y1;"*3":.05|L,10 "5;X1,Y1;" "  850R SC=SC+502 .25,10 !5;X3,Y3;" "  800  ,SC=SC+502 ;.25,10 @STT=4SC=SC+100d:5;X2,Y2;"*3":.05|L,10 T"5;X2,Y2;" " | 900 DTHIS PROCEDURE CHECKS IF A HIGH SCORE HAS BEEN REACHED IN THE GAME  ,I=115:.5,25+I:I % (SCB(5)7300 *'SC1500R$(6)="PRIVATE " /(SC>1500R$(6)="CORPORAL " 0(SC>3000 R$(6)="SERGEANT " 1'SC>4800R$(6)="CAPTAIN " 2'SC>6800R$(6)="GENERAL " 9 2,12 ;"WELL DONE " ;)4,6;"YOU HAVE GOT ONE OF " <(6,6;"TODAY'S HIGH SCORES" >49 ,2;"ENTER YOUR NAME OR INITIALS":N$ ?.8L,31 @$R$(6)="PRIVATE "7240H B312 ,2;"YOU HAVE NOW BEEN PROMOTED TO" C"14,6;"THE RANK OF " D 14,19;R$(6) E%17,8;"CONGRATULATIONS" G#I=110 :.4L,I:I H.SC>B(5)B(5)=SC:A$(5)=N$ RSC>B(4)R$(5)=R$(4):R$(4)=R$(6):B(5)=B(4):B(4)=SC:A$(5)=A$(4):A$(4)=N$ \SC>B(3)R$(4)=R$(3):R$(3)=R$(6):B(4)=B(3):B(3)=SC:A$(4)=A$(3):A$(3)=N$ fSC>B(2)R$(3)=R$(2):R$(2)=R$(6):B(3)=B(2):B(2)=SC:A$(3)=A$(2):A$(2)=N$ pSC>B(1)R$(2)=R$(1):R$(1)=R$(6):B(2)=B(1):B(1)=SC:A$(2)=A$(1):A$(1)=N$ %7600:PRINTS HIGH SCORE TABLE K3;7;1;21,3;"DO YOU WANT TO PLAY AGAIN?" I=12000 ="N"9999' ="Y"150 I 150:STARTS NEW GAME 5THIS PROCEDURE PRINTS THE HIGHT SCORE TABLE %:I=021:3,,:I uN=15:3;6;8+N,4;R$(N);8+N,13 ;A$(N);8+N,23;B(N):N ت7:1:172,116t:0,-62>:170,116t:0,-62>:100d,116t:0,-62>:98b,116t:0,-62>:524,125}:150,0:20,120x:210,0:0,-70F:-210,0:0,70F:24,116t:202,0:0,-62>:-202,0:0,62>:0:0 @3;1;7;5,8;"HIGH SCORE TABLE" ^4;7;8,6;"Rank";8,15;"Name";8,23;"Score"   CREATES GAME SCREEN @6I=021:2;I,0;" ":I Ef2;7;5,0;"";10 ,0;"";15,0;"" J$X=0:XX=0:XXX=0 T^2;6;6,1;"AMMO";1,1;"SCORE";16,1;"HI-SC" ^W1;2;7;18,0;A$(1);20,1;B(1) h/2;6;11 ,0;"SHIELDS" r.I=018:5;I,7,,:I w0PLOT 63?,24: DRAW 186,0 |A4;7;21,7;" SHIELD STRENGTH " 96;20,7;" " 96;19,7;" " o7:0,0:557,0:0,175:-557,0:0,-175:0 87:255,0:0,175:0  *THIS PRINTS THE INTRODUCTION TO THE GAME !4,5:I=021:5,,:I !>1:7:0,0:255,0:0,175:-255,0:0,-175:0:0 !C-5;5,8;"WELCOME SOLDIER" !H85;8,3;"YOUR MISSION IS TO PROTECT" !M:5;10 ,3;"BASE SPECCY3 FOR AS LONG AS" !R:5;12 ,3;" POSSIBLE WHILE EVACUATION " !W:5;14,3;"OF ALL ESSENTIAL STAFF AND " !\55;16,3;"EQUIPMENT TAKES PLACE." !a 8965# !85;5,3;"THE CONTROLS YOU WILL NEED" !-5;7,8;"TO USE WILL BE " !15;10 ,6;"'Q' - TO MOVE LEFT" !25;12 ,6;"'W' - TO MOVE RIGHT" !75;15,4;"'BREAK/SPACE' - TO FIRE " ! 8965# !:5;4,3;"BASE SPECCY3 IS UNDER ATTACK" "95;6,3;"FROM THE ENEMY'S R3 AND K6 " "-5;8,3;"TYPE FIGHTERS " " 45;2;8,18;" '' ''" "85;10 ,3;"AS WELL AS FROM ATTACK BY" "65;12 ,3;"THE LATEST XTC-MISSILES" ",5;2;12 ,27;"''" "85;14,3;"NOTE CAREFULLY THAT MORE " "":5;16,3;"THAN ONE SHOT MAY BE NEEDED" "$35;18,3;"TO DESTROY THE ENEMY" ") 8965# "`55;5,4;"YOUR JOB IS TO HOLD OUT" "e55;7,4;"UNTIL YOUR SHIELDS ARE " "j75;9 ,4;"KNOCKED OUT OR UNTIL YOU " "o65;11 ,4;"RUN OUT OF AMMUNITION -" "t85;14,4;"AFTER WHICH TIME THE BASE" "y55;16,4;"IS DEFENCELESS AND IS " "~55;18,4;"OVER-RUN BY THE ENEMY " "Q227,199,142,156,248,240,224,128 " 8965# "85;5,3;"BY THE WAY I ALMOST FORGOT" "45;7,3;"TO TELL YOU THAT YOUR " "65;9 ,3;"PROMOTION CHANCES DEPEND" "95;11 ,3;"ON YOUR SUCCESS IN HOLDING" "45;13 ,3;"OUT AGAINST THE ENEMY" "35;17,6;"BUT GOOD LUCK ANYWAY" " 8965# # 8980# # I=0 #OI=I+1:B=(*20)+5:.3,B:I<30Ʀ=""8967# # NI=120:5;I,2;" ":I: #I=1100d:I ## &HZ*************************** USER DEFINED CHARS *************************************** &R,9800H&:N="A""F"+7:A:N,A:N &W N="J""O"+7:A:N,A:N &\H42*,42*,28,28,28,62>,28,8 &aE0,255,0,255,0,0,0,0 &fJ206,231,113q,579,31,15,1,1 &kQ115s,231,142,156,248,240,128,128 &pI30,15,1,1,127,255,127,1 &uQ120x,240,128,128,254,255,254,128 &zD0,0,0,0,0,4,28,255 &L60<,60<,126~,126~,90Z,66B,165,24 &F0,0,0,0,0,32 ,112p,255 &H0,24,60<,60<,60<,60<,60<,60< &K16,20,25,170,108l,524,44,,88X &O102f,90Z,183,215,237,118v,102f,60< & '