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"