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!
Listing 1
; DEFINE PLAYER1="1", PLAYER2="2" BYTE X,X2,Y,Y2,A,A2,OLDA,OLDA2,LEVEL BYTE WIN CARD WIN1,WIN2 CARD I,I2,SPEED BYTE COL2=709,HCOL2=53271,hcol4=53274 CARD POINTER SCREEN=88 BYTE ARRAY FARBE(0)=708 PROC NOP() RETURN PROC WAIT(CARD VAL) CARD IV FOR IV=0 TO VAL DO NOP() OD RETURN proc make_sound() sound(0,200,14,10) sound(1,201,14,10) sound(2,202,14,10) sound(3,203,14,10) wait(30000) poke ($D208,1) return PROC OP(BYTE VAL) I=1600 I2=1560 DO I==-40 I2==+40 SETBLOCK(SCREEN^+I,40,VAL) SETBLOCK(SCREEN^+I2,40,VAL) WAIT(800) UNTIL I<=0 OD RETURN ; EXPLOSION ROUTINES BYTE FUNC CH_X(BYTE CEX) IF CEX<1 OR CEX>200 THEN CEX=1 FI IF CEX>158 THEN CEX=158 FI RETURN (CEX) BYTE FUNC CH_Y(BYTE CEY) IF CEY<1 OR CEY>200 THEN CEY=1 FI IF CEY>78 THEN CEY=78 FI RETURN (CEY) PROC EXPLODE(BYTE EX,EY,COLVAL) BYTE EXC,EXN,EYN,SA EXC=0 COLOR=COLVAL DO EXN=CH_X(EX-EXC) PLOT(EXN,EY) EXN=CH_X(EX-EXC) EYN=CH_Y(EY-EXC) PLOT(EXN,EYN) EYN=CH_Y(EY-EXC) PLOT(EX,EYN) EXN=CH_X(EX+EXC) EYN=CH_Y(EY-EXC) PLOT(EXN,EYN) EXN=CH_X(EX+EXC) PLOT(EXN,EY) EXN=CH_X(EX+EXC) EYN=CH_Y(EY+EXC) PLOT(EXN,EYN) EYN=CH_Y(EY+EXC) PLOT(EX,EYN) EXN=CH_X(EX-EXC) EYN=CH_Y(EY+EXC) PLOT(EXN,EYN) EXC==+1 COL2==-1 SA=RAND(0) SOUND(0,SA,0,10) SA=RAND(0) SOUND(1,SA,2,EXC) WAIT(700) UNTIL EXC=8 OD SNDRST() RETURN PROC GET_STICK2() A2=STICK(1) IF A2=15 OR A2=6 OR A2=5 OR A2=9 OR A2=10 THEN A2=OLDA2 FI IF A2=14 THEN IF OLDA2=13 THEN A2=13 ELSE Y2=CH_Y(Y2-1) FI FI IF A2=13 THEN IF OLDA2=14 THEN A2=14 IF Y2>0 THEN Y2==-1 FI ELSE Y2=CH_Y(Y2+1) FI FI IF A2=11 THEN IF OLDA2=7 THEN A2=7 ELSE X2=CH_X(X2-1) FI FI IF A2=7 THEN IF OLDA2=11 THEN A2=11 IF X2>0 THEN X2==-1 FI ELSE X2=CH_X(X2+1) FI FI OLDA2=A2 RETURN PROC GET_STICK() A=STICK(0) IF A=15 OR A=6 OR A=5 OR A=9 OR A=10 THEN A=OLDA FI IF A=14 THEN IF OLDA=13 THEN A=13 ELSE Y=CH_Y(Y-1) FI FI IF A=13 THEN IF OLDA=14 THEN A=14 IF Y>0 THEN Y==-1 FI ELSE Y=CH_Y(Y+1) FI FI IF A=11 THEN IF OLDA=7 THEN A=7 ELSE X=CH_X(X-1) FI FI IF A=7 THEN IF OLDA=11 THEN A=11 IF X>0 THEN X==-1 FI ELSE X=CH_X(X+1) FI FI OLDA=A RETURN PROC INIT() GRAPHICS(7+16) POKE(752,1) MAKE_SOUND() OP(170) WAIT(3000) OP(0) SNDRST() COLOR=2 PLOT (0,0) DRAWTO(159,0) DRAWTO(159,79) DRAWTO(0,79) DRAWTO(0,0) X=10 Y=10 OLDA=7 X2=70 Y2=10 OLDA2=11 RETURN PROC PL_EXPLODE(BYTE WHICH_PLAYER) BYTE Z IF WHICH_PLAYER=0 THEN FOR Z=1 TO 10 DO EXPLODE(X,Y,2) EXPLODE(X,Y,0) OD ELSE FOR Z=1 TO 10 DO EXPLODE(X2,Y2,2) EXPLODE(X2,Y2,0) OD FI RETURN PROC PL_() DO COLOR=1 GET_STICK() A=LOCATE(X,Y) IF A<>0 THEN PL_EXPLODE(0) WIN=PLAYER2 EXIT FI PLOT(X,Y) COLOR=3 GET_STICK2() A=LOCATE(X2,Y2) IF A<>0 THEN PL_EXPLODE(1) WIN=PLAYER1 EXIT FI PLOT(X2,Y2) WAIT(SPEED) COL2==+1 OD RETURN PROC TITLE() BYTE ZAP,P1=53272,HELP GRAPHICS(18) FARBE(0)=$8A FARBE(1)=$28 FARBE(3)=$C8 PRINTDE(6," action user group") PRINTDE(6," : ") PRINTDE(6," ") PRINTDE(6," space zapper two") PRINTDE(6," ") PRINTDE(6," COPYRIGHT 1987 ") PRINTDE(6," ") PRINTDE(6," : ") PRINTDE(6," ") PRINTDE(6,"--------------------") PRINTD(6," LEVEL : ") PRINTBDE(6,LEVEL) DO IF PEEK(53279)=5 THEN LEVEL==+1 IF LEVEL=5 THEN LEVEL=1 FI POSITION(13,11) PRINTBDE(6,LEVEL) FOR ZAP=0 TO 254 DO SOUND(0,ZAP,14,15) SOUND(1,ZAP,14,15) SOUND(2,ZAP,14,15) SOUND(3,ZAP,14,15) WAIT(50) OD SNDRST() FI HELP=RAND(0) POKE(53271,HELP) P1=PEEK(53272)+1 POKE(53272,P1) UNTIL PEEK(53279)=6 OR STRIG(0)=0 OD IF LEVEL=1 THEN SPEED=2000 FI IF LEVEL=2 THEN SPEED=1000 FI IF LEVEL=3 THEN SPEED=400 FI IF LEVEL=4 THEN SPEED=100 FI RETURN PROC FIN_PIC() IF WIN=1 THEN WIN1==+1 FI IF WIN=2 THEN WIN2==+1 FI GRAPHICS(17) farbe(0)=0 farbe(1)=0 POSITION(3,3) PRINTD(6,"-------------") POSITION(3,4) PRINTD(6,"PLAYER ") PRINTBD(6,WIN) PRINTDE(6," WINS") POSITION(3,5) PRINTD(6,"-------------") POSITION(2,8) PRINTDE(6,"TOTAL WINS:") POSITION(2,10) PRINTD(6,"PLAYER 1 :") PRINTCD(6,WIN1) POSITION(2,12) PRINTD(6,"PLAYER 2 :") PRINTCD(6,WIN2) POSITION(2,15) PRINTDE(6,"select to clear...") POSITION(2,18) PRINTDE(6," press start") printde(6," or button") do hcol4=rand(0) if peek(53279)=5 then win1=0 win2=0 POSITION(2,10) PRINTD(6,"PLAYER 1 :") PRINTCD(6,WIN1) PRINTD(6," ") POSITION(2,12) PRINTD(6,"PLAYER 2 :") PRINTCD(6,WIN2) PRINTD(6," ") fi until peek(53279)=6 or strig(0)=0 or strig(1)=0 od WAIT(5000) return PROC GAMESTART() INIT() PL_() RETURN PROC MAIN() LEVEL=1 WIN1=0 WIN2=0 DO SNDRST() TITLE() GAMESTART() fin_pic() OD RETURN
References
Listing downloads
Copyright holder
