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
;
BYTE X,Y,A,OLDA,LEVEL
CARD I,I2,SCORE,hiscore=[0],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_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) POKE(752,1) POKE (710,0)
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 SCORE=0
RETURN
PROC SCORE_OUT()
PRINT("Your Score >") PRINTCE(SCORE)
RETURN
PROC PL_EXPLODE()
BYTE Z
FOR Z=1 TO 10
DO
EXPLODE(X,Y,2)
EXPLODE(X,Y,0)
OD
RETURN
PROC PL_()
DO
COLOR=1
GET_STICK() A=LOCATE(X,Y)
IF A<>0 THEN PL_EXPLODE() EXIT FI
PLOT(X,Y)
WAIT(SPEED)
COL2==+1 SCORE==+1
SCORE_OUT()
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 ")
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()
GRAPHICS(17) farbe(0)=0 farbe(1)=0
POSITION(2,4) PRINTD(6,"YOUR SCORE :")
PRINTCDE(6,SCORE)
POSITION(2,8)
IF SCORE>HISCORE THEN HISCORE=SCORE
PRINTDE(6,"YOU REACHED A NEW")
PRINTDE(6," HISCORE")
FI
POSITION(2,14) PRINTD(6,"HISCORE :")
PRINTCDE(6,HISCORE)
POSITION(2,18)
PRINTDE(6," press start")
printde(6," or button")
do
hcol4=rand(0)
until peek(53279)=6 or strig(0)=0
od
WAIT(5000)
return
PROC GAMESTART()
INIT()
PL_()
RETURN
PROC MAIN()
LEVEL=1 HISCORE=0
DO
TITLE()
GAMESTART()
fin_pic()
OD
RETURN
References
Listing downloads
Copyright holder
