image of READY prompt

Wang2200.org

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"