Random demo
Random demo
Random game
Defense Defense Defense Defense Defense Defense Defense Defense Defense
Listing 1
10 OPEN #1,​4,​0,​"S":​GOSUB 10000
15 DIM A(2,​41),​B(4),​C(4),​D(4),​E(4),​F(4),​SH(2),​SC(2),​A$(21),​H$(5),​R(4),​AL(2)
20 REM
24 SC(1)=0:​SC(2)=0:​FOR I=0 TO 4:​B(I)=-1:​C(I)=0:​D(I)=0:​E(I)=0:​R(I)=0:​NEXT I
30 FOR I=1 TO 2:​FOR J=1 TO 20:​A(I,​J)=INT(RND(0)*16):​NEXT J:​NEXT I
40 SH(1)=3:​SH(2)=3:​SC(1)=0:​SC(2)=0:​AL(1)=5:​AL(2)=5:​F(1)=5:​F(2)=5:​F(3)=0:​F(4)=0:​XC=0
50 GOSUB 6000
100 TT=TT+1:​IF TT=4 THEN TT=1
105 IF GS>1 THEN H$=A$(1,​GS):​A$=A$(GS+1,​20):​A$(LEN(A$)+1)=H$:​POSITION 0,​20:​? #6;A$;
110 S=STICK(JP):​IF S=15 THEN 150
120 Y1=Y:​IF S/2=INT(S/2) AND Y>6 THEN Y=Y-1
125 IF (S=5 OR S=9 OR S=13) THEN Y=Y+1:​IF Y=20 THEN GOTO 3000
130 POSITION 1,​Y1:​? #6;" ";:​POSITION 1,​Y:​? #6;"";
135 IF S>4 AND S<8 AND GS<2 THEN GS=GS+0.05
140 IF S>8 AND S<12 THEN GS=GS-0.05:​IF GS<0 THEN GS=0
150 IF STRIG(JP)=1 THEN SL=0:​GOTO 200
155 IF SL=1 THEN 200
160 SOUND 1,​20,​4,​15:​POSITION 3,​Y:​? #6;"";:​FOR I=1 TO 3:​IF B(I)>2 AND INT(C(I))=Y THEN 4000
161 REM LINE 160 :​16<CTRL>''
162 NEXT I
165 POSITION 3,​Y:​? #6;" ";:​SOUND 1,​0,​0,​0:​SOUND 2,​0,​0,​0:​SL=1
170 IF AL(PL)<1 THEN 4060
200 XC=XC+1:​IF XC=F(PL)+1 THEN XC=1
210 IF A(PL,​XC)>-5 THEN A(PL,​XC)=A(PL,​XC)-(GS):​IF A(PL,​XC)<=0 THEN 1000
220 IF B(TT)=-1 THEN 300
230 POSITION INT(B(TT)),​INT(C(TT)):​? #6;" ";:​B(TT)=B(TT)-GS-0.5:​IF B(TT)<0 THEN B(TT)=-1:​A(PL,​R(TT))=15:​GOTO 300
240 IF E(TT)>4 THEN 2000
250 C(TT)=C(TT)+D(TT):​IF C(TT)<6 OR C(TT)>19 THEN C(TT)=C(TT)-D(TT):​D(TT)=-D(TT)
255 IF INT(B(TT))>=0 AND INT(B(TT))<=2 THEN IF INT(C(TT))=Y THEN 3000
260 POSITION INT(B(TT)),​INT(C(TT)):​GOSUB 260+E(TT)*5:​GOTO 300
265 ? #6;"Z";:​RETURN
270 ? #6;"z";:​RETURN
275 ? #6;"";:​RETURN
280 ? #6;"";:​RETURN
285 ? #6;"";:​RETURN
290 ? #6;"t";:​RETURN
300 GOTO 100
750 FOR I=1 TO PP:​IF SC(I)>HSC THEN HSC=SC(I)
760 NEXT I:​GOTO 7055
1000 FOR I=1 TO 3:​IF B(I)=-1 THEN 1010
1005 NEXT I:​A(PL,​XC)=15:​GOTO 220
1010 C(I)=INT(RND(0)*12)+7:​D(I)=RND(0)+0.1-1.5*(RND(0)<0.5)
1020 E(I)=INT(RND(0)*6)+1:​R(I)=XC:​A(PL,​XC)=-10:​B(I)=17:​IF E(I)>4 THEN B(I)=11
1025 GOTO 220
1048 POKE ST+392+X,​A:​NEXT X:​FOR X=0 TO 7:​READ A:​POKE ST+256+X,​A:​NEXT X
2000 IF C(TT)<Y THEN D(TT)=1:​GOTO 250
2010 IF C(TT)>=Y THEN D(TT)=-1:​GOTO 250
3000 FOR I=6 TO 19:​POSITION 0,​I:​? #6;" ";:​NEXT I
3010 FOR I=1 TO 3:​IF B(I)>0 THEN A(PL,​R(I))=15:​B(I)=-1
3015 NEXT I:​FOR I=0 TO 3:​SOUND I,​0,​0,​0:​NEXT I
3020 POSITION 1,​Y:​? #6;"";:​FOR I=2 TO 8 STEP 0.1:​SETCOLOR 2,​4,​I:​NEXT I
3025 SOUND 0,​20,​8,​15:​POSITION 1,​Y:​? #6;"";:​FOR I=15 TO 0 STEP -0.2
3030 SOUND 0,​20,​8,​I:​SOUND 1,​75,​8,​I+1:​SOUND 2,​175,​8,​I+3:​SOUND 3,​255,​8,​I+5
3040 IF I=12 THEN POSITION 0,​Y-1:​? #6;" ";:​POSITION 0,​Y:​? #6;":​:​";:​POSITION 1,​Y+1:​? #6;"";
3045 IF I=8 THEN POSITION 0,​Y-1:​? #6;"";:​POSITION 0,​Y:​? #6;"++";:​POSITION 0,​Y+1:​? #6;"";
3050 IF I=4 THEN POSITION 0,​Y-1:​? #6;"";:​POSITION 0,​Y:​? #6;"++";:​POSITION 1,​Y+1:​? #6;"";
3055 IF I=1 THEN POSITION 0,​Y-1:​? #6;" ";:​POSITION 0,​Y:​? #6;" ";:​POSITION 0,​Y+1:​? #6;" ";
3060 NEXT I:​FOR I=0 TO 3:​SOUND I,​0,​0,​0:​NEXT I:​POSITION 1,​Y:​? #6;" ";
3061 GS=0:​SH(PL)=SH(PL)-1:​XD=4:​I=1:​IF PL=2 THEN XD=14:​I=-1
3062 GOSUB 6200
3063 IF SH(PL)=0 THEN GOSUB 7000
3065 IF SH(PL-1+2*(PL=1))>0 THEN PL=PL+1:​IF PL>PP THEN PL=1
3070 GOSUB 5000:​FOR I=1 TO 1000:​NEXT I:​GOSUB 6000:​XC=0:​GOTO 100
4000 SOUND 2,​RND(0)*200+50,​10,​10:​POSITION INT(B(I)),​INT(C(I)):​? #6;:​IF E(I)>4 THEN 4020
4010 ? #6;E(I)*10;:​SC(PL)=SC(PL)+E(I)*10:​GOTO 4030
4020 ? #6;(E(I)-4)*100;:​SC(PL)=SC(PL)+(E(I)-4)*100
4030 B(I)=-1:​A(PL,​R(I))=-5:​POSITION 2,​3:​? #6;SC(1);:​IF PP=2 THEN POSITION 14,​3:​? #6;SC(2);
4040 AL(PL)=AL(PL)-1:​POSITION 2,​22:​? #6;"t=";AL(PL);" ";
4050 NEXT I:​GOTO 165
4060 GOSUB 6900:​SOUND 0,​200,​10,​10:​SOUND 1,​201,​10,​10:​SOUND 2,​0,​0,​0:​FOR I=1 TO 7+F(PL+2)+1:​POSITION I,​12:​? #6;"";
4065 FOR X=1 TO 50:​NEXT X:​POSITION I,​12:​? #6;" ";:​NEXT I:​POSITION I,​20:​GET #1,​A:​GOSUB 6910:​GOTO 4070
4066 ? #6;"z";:​RETURN
4067 ? #6;"Z";:​RETURN
4068 ? #6;"";:​RETURN
4069 ? #6;"";:​RETURN
4070 SOUND 3,​100,​10,​5:​FOR X=13 TO 21:​POSITION I,​X:​? #6;"";:​FOR J=1 TO 30:​NEXT J:​NEXT X
4075 POSITION I,​22:​? #6;"";:​POSITION I,​23:​? #6;"";:​SOUND 3,​25,​10,​5:​FOR J=1 TO 50:​NEXT J:​SOUND 3,​0,​0,​0
4080 FOR X=21 TO 13 STEP -1:​IF X=20 THEN POSITION I,​X:​? #6;CHR$(A);:​GOTO 4085
4082 POSITION I,​X:​? #6;" ";
4085 FOR J=1 TO 30:​NEXT J:​NEXT X:​GOSUB 6910
4090 FOR X=I TO 19:​POSITION X,​12:​? #6;"";:​FOR J=1 TO 50:​NEXT J:​POSITION X,​12:​? #6;" ":​NEXT X
4100 GRAPHICS 17:​POKE 765,​224:​F(PL+2)=F(PL+2)+1:​POSITION 8,​10:​? #6;"attack":​? #6;" wave ";F(PL+2);
4110 ? #6;" destroyed":​? #6:​SOUND 0,​200,​10,​10:​SOUND 1,​201,​10,​10:​SOUND 2,​0,​0,​0
4120 ? #6;"  ";SH(PL)*500:​SC(PL)=SC(PL)+SH(PL)*500
4123 IF F(PL+2)/4=INT(F(PL+2)/4) THEN SH(PL)=SH(PL)+1:​? #6:​? #6;" "
4125 AL(PL)=F(PL)+5:​F(PL)=F(PL)+5:​IF F(PL)>40 THEN F(PL)=40:​AL(PL)=40
4130 FOR J=1 TO AL(PL):​A(PL,​J)=INT(RND(0)*16):​NEXT J
4135 FOR I=1 TO 1500:​NEXT I:​GOSUB 6000:​GOTO 100
5000 POKE 77,​0:​GRAPHICS 18:​POKE 756,​224:​POSITION 4,​5:​? #6;"PLAYER ";PL:​JP=PL-1
5005 POSITION 4,​6:​? #6;"":​RETURN
6000 GRAPHICS 17:​POKE 756,​ST/256:​FOR X=0 TO 3:​SOUND X,​0,​0,​0:​NEXT X
6020 POSITION 6,​0:​? #6;"":​POSITION 3,​2:​? #6;"#1  #2":​POSITION (18-LEN(STR$(HSC)))/2,​1:​? #6;HSC;
6030 POSITION 2,​3:​? #6;SC(1);:​POSITION 3,​4:​? #6;SH(1);
6040 IF PP=2 THEN POSITION 14,​3:​? #6;SC(2);:​POSITION 15,​4:​? #6;SH(2);
6045 POSITION 2,​22:​? #6;"t=";AL(PL);:​FOR I=1 TO F(PL+2)+1:​POSITION 7+I,​22:​? #6;"";:​POSITION 7+I,​23:​? #6;"";:​NEXT I
6050 FOR I=0 TO 19:​POSITION I,​5:​? #6;"W";:​NEXT I
6060 FOR I=1 TO 20:​A$(I,​I)="@":​NEXT I:​A$(10,​11)="UV":​A$(2,​3)="UV":​A$(19,​20)="UV"
6070 POSITION 0,​20:​? #6;A$;:​Y=12:​POSITION 1,​Y:​? #6;"";:​SOUND 0,​75,​8,​4
6080 POSITION 9,​4:​? #6;"t";:​FOR I=1 TO 100:​NEXT I:​XD=9:​IF PL=1 THEN I=-1:​GOTO 6100
6090 I=1
6100 POSITION XD,​4:​? #6;" ";:​XD=XD+I:​IF XD=4 OR XD=14 THEN POSITION XD,​4:​? #6;"t":​RETURN
6110 POSITION XD,​4:​? #6;"t";:​FOR X=1 TO 50:​NEXT X:​GOTO 6100
6200 POSITION XD,​4:​? #6;" ";:​XD=XD+I:​IF XD=9+I THEN POSITION XD,​4:​? #6;"t";:​POSITION 9,​4:​? #6;SH(PL);:​GOTO 6220
6210 POSITION XD,​4:​? #6;"t";:​FOR X=1 TO 50:​NEXT X:​GOTO 6200
6220 FOR X=1 TO 100:​NEXT X:​IF I=1 THEN I=-1:​GOTO 6240
6230 I=1
6240 POSITION XD,​4:​? #6;" ";:​POSITION XD+I,​4:​? #6;" ";:​XD=XD+I:​IF XD=14 OR XD=4 THEN 6260
6250 POSITION XD,​4:​? #6;"t";:​POSITION XD+I,​4:​? #6;SH(PL);:​FOR X=1 TO 50:​NEXT X:​GOTO 6240
6260 POSITION XD,​4:​? #6;"t";:​POSITION XD+I,​4:​? #6;SH(PL);:​FOR I=1 TO 200:​NEXT I:​RETURN
6900 FOR I=6 TO 19:​POSITION 0,​I:​? #6;" ";:​NEXT I:​RETURN
6910 FOR J=1 TO 12:​FOR X=1 TO 4:​POSITION I,​12:​GOSUB 4065+X:​NEXT X:​NEXT J:​RETURN
7000 POKE 756,​224:​GRAPHICS 18:​POSITION 5,​5:​? #6;" ";CHR$(PL+176);:​POSITION 5,​6:​? #6;"game over";
7005 POSITION 4,​8:​? #6;" = ";SC(PL);
7010 FOR I=1 TO 400:​NEXT I:​IF SH(1)=0 AND SH(PP)=0 THEN 750
7020 RETURN
7050 FOR I=1 TO 400:​NEXT I
7055 POP:​GOSUB 11000:​J=22:​GOSUB 11100:​IF I=1001 THEN 7055
7060 GOTO 20
10000 POKE 106,​PEEK(106)-5:​GRAPHICS 0:​GOSUB 11000
10010 ST=(PEEK(106)+1)*256
10020 FOR X=0 TO 1023:​POKE ST+X,​PEEK(57344+X):​NEXT X
10025 J=22:​GOSUB 11100:​IF I=1001 THEN 10025
10030 FOR X=0 TO 23:​READ A:​POKE ST+448+X,​A:​NEXT X:​FOR X=0 TO 15:​POKE ST+424+X,​PEEK(ST+560+X):​NEXT X
10040 FOR X=0 TO 7:​POKE ST+440+X,​PEEK(ST+656+X):​NEXT X
10045 FOR X=0 TO 7:​READ A:​POKE ST+416+X,​A:​NEXT X:​FOR X=0 TO 7:​READ A:​POKE ST+288+X,​A:​NEXT X
10046 FOR X=0 TO 7:​READ A:​POKE ST+296+X,​A:​NEXT X:​FOR X=0 TO 7:​READ A:​POKE ST+304+X,​A:​NEXT X
10047 FOR X=0 TO 7:​READ A:​POKE ST+368+X,​A:​NEXT X:​FOR X=0 TO 7:​READ A:​POKE ST+408+X,​A:​NEXT X:​FOR X=0 TO 7:​READ A
10048 POKE ST+392+X,​A:​NEXT X:​FOR X=0 TO 7:​READ A:​POKE ST+472+X,​A:​NEXT X
10050 FOR X=0 TO 6:​POKE ST+256+X,​0:​NEXT X:​POKE ST+263,​255:​FOR X=0 TO 7:​POKE ST+264+X,​255:​NEXT X
10055 GRAPHICS 1:​POKE 756,​ST/256:​RETURN
11000 GRAPHICS 17:​POKE 752,​1:​POSITION 7,​0:​? #6;"":​? #6:​? #6:​? #6;" evil aliens from"
11010 ? #6;" beyond earth have invaded the moon.":​? #6:​? #6
11020 ? #6;" YOUR MISSION IS TO DESTROY AS MANY ATTACKING WAVES OF THOSE ALIENS BEFORE";
11030 ? #6;" THEY LAUNCH THEIR FLEETS TO CONQUER THE EARTH.":​? #6:​? #6
11040 ? #6;" "
11050 RETURN
11100 POSITION 5,​J:​? #6;"":​X=11:​J=J+1:​POSITION 11,​J:​? #6;"-"
11110 FOR I=1 TO 1000 STEP 2:​FOR S=0 TO 1:​P=STICK(S):​IF STRIG(S)=1 AND P=15 THEN NEXT S:​NEXT I:​I=1001:​RETURN
11115 IF STRIG(S)=0 THEN 11170
11120 IF P>4 AND P<8 THEN X=X+5
11130 IF P>8 AND P<12 THEN X=X-5
11140 IF X<11 THEN X=16
11150 IF X>16 THEN X=11
11160 POSITION 11,​J:​? #6;" ":​POSITION 16,​J:​? #6;" ":​POSITION X,​J:​? #6;"-":​FOR W=1 TO 50:​NEXT W:​NEXT S:​NEXT I:​I=1001:​RETURN
11170 PP=1:​IF X=16 THEN PP=2
11180 PL=1:​GOSUB 5000:​RETURN
20050 STOP
20060 DATA 0,​0,​0,​0,​30,​15,​7,​7,​0,​0,​0,​0,​0,​192,​252,​255,​0,​8,​28,​62,​127,​42,​20,​34
20070 DATA 0,​126,​153,​153,​255,​189,​195,​126
20080 DATA 0,​124,​110,​110,​110,​126,​124,​0,​0,​126,​96,​120,​96,​126,​126,​0,​0,​126,​126,​112,​124,​112,​112,​0
20090 DATA 0,​115,​123,​127,​127,​119,​115,​0,​0,​62,​126,​96,​126,​6,​126,​124,​0,​0,​0,​16,​24,​28,​30,​31,​24,​24,​24,​24,​24,​24,​24,​24	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!