Listing of file='INVADERS' on disk='vmedia/games_vol_3.wvd.zip'
# Sector 82, program filename = 'INVADERS' 0010 DIM S$(22)80,M$3,G$3,B$71,M1$63 ,K$1,H$80,S$80 : T8=400 0015 Y,X,V6,V5,T0,T,I0,I,H5,H0,H,C0,C1,T9 =0 : T3=4 : INIT(20)S$ 0020 N$="INVADERS" : INIT(0A)A$ : V5=2 : C0=1 : H=1 : H0=2 : F5=100-T8/10 : T8=0 : H5=0 0030 STR(A$,1,2)=HEX(010D) : INIT(09)H$ : SELECT PRINT 005(80) : INIT(20)S$() 0040 M$=">+<" : G$="<+>" : B$="###### ###### ###### ###### ######" 0050 M1$="<> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>" 0060 FOR I=2TO 5 0070 STR(S$(I),1)=M1$ : NEXT I 0080 FOR I=17TO 20 0090 STR(S$(I),10)=B$ 0100 NEXT I : T=11 0110 INIT(3D)S$(22) : STR(S$(21),T)=G$ 0111 PRINT HEX(03);TAB(29);"--- Space Invaders ---" 0112 PRINT 0113 PRINT "SF'1 - move left quickly" 0114 PRINT "SF'2 - move left" 0115 PRINT "SF'3 - move right" 0116 PRINT "SF'4 - move right quickly" 0117 PRINT "Any other SF' key will shoot a missile" 0118 PRINT 0120 INPUT "DEGREE OF DIFFICULTY 1-10",T3 : PRINT HEX(03); 0130 MAT PRINT S$ : PRINT HEX(0106) 0140 KEYIN K$,150,160 : IF T9=1THEN 707 : GOSUB 430 : GOSUB 410 0150 GOTO 140 0160 PRINT HEX(01) : ON VAL(K$)GOTO 170,200,210,220 : GOTO 240 0170 REM FAR LEFT : IF T<4THEN 180 : T=T-3 : GOTO 190 0180 T=1 0190 GOSUB '250 : GOTO 140 0200 REM LEFT : IF T<2THEN 190 : T=T-1 : GOTO 190 0210 REM RIGHT : IF T>77THEN 190 : T=T+1 : GOTO 190 0220 REM FAR RIGHT : IF T>75THEN 230 : T=T+3 : GOTO 190 0230 T=78 : GOTO 190 0240 GOSUB 250 : GOTO 140 0250 I=21 : IF E6>1THEN RETURN 0260 I=I-1 : IF I=1THEN 350 : IF STR(S$(I),T+1,1)<>" "THEN 270 : GOSUB 370 : GOTO 260 0270 IF STR(S$(I),T+1,1)<>"#"THEN 310 0280 PRINT AT(I,T,1) 0290 REM BUNKER : STR(S$(I),T+1,1)=" " : RETURN 0300 STR(S$(I),T+1,1)=" " : RETURN 0310 REM ENEMY : IF STR(S$(I),T+1,1)="<"THEN 330 0320 STR(S$(I),T,2)=" " : GOTO 340 0330 STR(S$(I),T+1,2)=" " 0340 PRINT AT(I,0);STR(S$(I),1,80);HEX(07) : E6=E6+1 : F5=F5-1 : T8=T8+10 : IF T8=720THEN 345 : RETURN 0345 T9=1 : RETURN 0350 REM MISSED : PRINT AT(1,0,80) : E6=E6+.5 : RETURN 0360 DEFFN'250 : INIT(20)S$(21) : STR(S$(21),T,3)="<+>" : PRINT AT(21,0,80);S$(21) : RETURN 0370 REM PRINT RTN 0380 PRINT AT(I-1,T);HEX(5E080A20) 0390 RETURN 0400 REM 0410 IF V5=21THEN 820 : PRINT AT(V5,0);STR(S$(V5),1,80) : IF POS(S$(V5+1)=">")=0THEN 420 : IF V5+1=21THEN 820 : PRINT STR(S$(V5+1),1,80) : IF POS(S$(V5+2)=">")=0THEN 420 : IF V5+2=21THEN 820 : PRINT STR(S$(V5+2),1,80) : IF POS(S$(V5+3)=">")=0THEN 420 : IF V5+3=21THEN 820 : PRINT STR(S$(V5+3),1,80) : RETURN 0420 RETURN 0430 GOSUB 560 : T2=0 : S$=STR(S$(V5),H) : S$(V5)=" " : STR(S$(V5),H0)=S$ 0440 S$=STR(S$(V5+1),H) : S$(V5+1)=" " : STR(S$(V5+1),H0)=S$ 0450 S$=STR(S$(V5+2),H) : S$(V5+2)=" " : STR(S$(V5+2),H0)=S$ 0460 S$=STR(S$(V5+3),H) : S$(V5+3)=" " : STR(S$(V5+3),H0)=S$ 0470 C1=C1+1 : IF C1<50THEN 480 : GOSUB 510 : C1=0 0480 H=H0 : H0=H0+C0 : IF H0<1THEN 490 : IF H0>17THEN 500 : RETURN 0490 C0=1 : H=1 : H0=2 : RETURN 0500 C0=-1 : H=17 : H0=16 : RETURN 0510 V5=V5+1 : IF S$(V5+2)=" "THEN 520 : S$(V5+3)=S$(V5+2) 0520 IF S$(V5+1)=" "THEN 530 : S$(V5+2)=S$(V5+1) 0530 IF S$(V5)=" "THEN 540 : S$(V5+1)=S$(V5) 0540 IF S$(V5-1)=" "THEN 550 : S$(V5)=S$(V5-1) 0550 S$(V5-1)=" " : PRINT AT(V5-1,0,80) : RETURN 0560 V6=V5+6 0570 I0=V6 : T0=T+SGN(.5-RND(1))*RND(1)*F5/6 : IF T0<80THEN 580 : T0=80 : GOTO 590 0580 IF T0>1THEN 590 : T0=1 0590 IF STR(S$(V5+3),T0,1)=">"THEN 630 : IF STR(S$(V5+3),T0,1)="<"THEN 630 : V6=V6+4 0600 IF STR(S$(V5+2),T0,1)=">"THEN 630 : IF STR(S$(V5+2),T0,1)="<"THEN 630 : V6=V5+3 0610 IF STR(S$(V5+1),T0,1)=">"THEN 630 : IF STR(S$(V5+1),T0,1)="<"THEN 630 : V6=V5+2 0620 IF STR(S$(V5),T0,1)=">"THEN 630 : IF STR(S$(V5),T0,1)="<"THEN 630 : RETURN 0630 IF T2<T3+4THEN 635 : I0=I0+.25 0635 I0=I0+.25 : IF INT(I0+.25)>23THEN 720 : IF STR(S$(I0-2),T0+1,1)="#"THEN 670 : IF STR(S$(I0-2),T0+1,1)="+"OR STR(S$(I0-2),T0+1,1)>"0"THEN 700 : IF STR(S$(I0-2),T0+1,1)="<"THEN 690 : IF STR(S$(I0-2),T0+1,1)=">"THEN 690 0640 PRINT AT(I0-1,T0);HEX(8D080C20) : T2=T2+1 0650 REM K$=" " : KEYIN K$,650,660 : IF T9=1THEN 707 : GOTO 630 0660 PRINT HEX(01) : ON VAL(K$)GOTO 740,760,770,780 : GOTO 790 0670 PRINT AT(I0-2,T0,1) : T2=0 0680 REM BUNKER : STR(S$(I0-2),T0+1,1)=" " : E6=0 : RETURN 0690 PRINT AT(21,0);S$(21) 0700 STR(S$(21),T,3)=" " : H5=H5+1 : E6,T2=0 : IF H5<3THEN 710 : PRINT AT(21,T-1);"((((*))))" 0705 PRINT AT(12,10);"YOU HAVE BEEN DESTROYED WITH A FINAL SCORE OF ";T8 0706 PRINT : INPUT " EXEC TO PLAY AGAIN OR 31 TO EXIT",K$ : RETURN CLEAR ALL : GOTO 10 0707 PRINT AT(12,10);"CONGRATULATIONS YOU HAVE DESTROYED THE ENEMY " : GOTO 706 0710 PRINT AT(21,T-1);"((*))" : FOR Z6=1TO 1000 : NEXT Z6 : T=39 : CONVERT H5TO STR(G$,2,1),(#) : STR(S$(21),39)=G$ : PRINT AT(21,0);STR(S$(21),1,80) : GOSUB 810 : RETURN 0720 PRINT AT(22,T0);"="; : E6,T2=0 0730 RETURN 0740 REM FAR LEFT : IF T<4THEN T=4 : T=T-3 : GOTO 750 0750 GOSUB '250 : GOTO 630 0760 REM LEFT : IF T<2THEN 750 : T=T-1 : GOTO 750 0770 REM RIGHT : IF T>77THEN 750 : T=T+1 : GOTO 750 0780 REM FAR RIGHT : IF T>75THEN T=75 : T=T+3 : GOTO 750 0790 IF T0<>TTHEN GOSUB 250 : ELSE GOTO 800 : GOTO 630 0800 RETURN CLEAR : PRINT AT(I+1,T,1) : GOTO 140 0810 FOR Y=1TO H5 : PRINT HEX(07) : FOR X=1TO 800 : NEXT X,Y : RETURN 0820 PRINT AT(21,10,70);" - S Q U E L C H -" : PRINT AT(12,08);"THE ALIENS HAVE LANDED, YOU BLEW IT BUSTER !!" : GOTO 705 9999 DEFFN'31 : COM CLEAR : LOAD DC T"GAMES"