MODULE››; MUCHBLASTESZ›› INCLUDE "D:RT_MIR2.ACT"›››BYTE› A,B,B1,A9,E,F,E1,T,GT,G1,G2,GI,GS,GX,G3,G4› ,PRZ9› ,Q,Q1,Q2,Q3,Q6;,Q4,Q5,Q7,Q8›BYTE ARRAY S(4),SX(4),SY(4)›› INCLUDE "D:ZM.ACT"›› INCLUDE "D:PROC1.ACT"››;PROC TX(BYTE X,Y BYTE ARRAY T)BYTE Q1 CARD Q3,Q4 Q1=T(0)Q3=EKR+X+Y*40 Q4=PEEKC(@ T)MOVEBLOCK(Q3,Q4+1,Q1)[96]››;INCLUDE"D:MOVEZERO.ACT"››PROC RMT(BYTE S)›IF S=0 THEN ;INIT:›;[$A2 0 $A0 $60 $A9 0 $20 $6600]›ELSEIF S=1 THEN;PLAY›;[$20 $6603]›ELSEIF S=2 THEN;END›;[$20 $6609]›FI›[96]›››PROC OPGR()›P(40887)=16 P(40888)=16›P(40895)=ZYC+16›[96]›››PROC TIT()›P(708)=40 P(709)=8 P(710)=15 P(712)=$02›DL=$9000›DO››IF STRIG(0)=0 OR P($D01F)=6 THEN EXIT FI›IF K=28 OR K=33 THEN K=255 EXIT FI›P(77)=0›OD››P(708)=$C2 P(709)=$E6 P(710)=0 P(711)=$8F P(712)=0›[96]››PROC STA()›ZYC=5 LEV=1 A=70 B=140 A9=0›PU1=16 PU2=16 PU3=16 PU4=16 PU5=16››L=4 M=15›;PT1=0 PT2=0 PT3=0›LE=40 TI=0›LE1=0››;ADR=$7000›GT=100 GA=$2800››RMT(0)›[96]››PROC SZY()›ZYC==-1›IF ZYC<10 THEN P(40895)=ZYC+16 FI››A9=75››AD1=$7C00 P1=1 C=5›;!›IF ZYC<>255 THEN› AD2=$7C00+R P2=1 D=5›ELSE;GAME OVER:› AD2=$8600 P2=1 D=10›› FOR Q1=0 TO 250 DO› VSYNC()› OD››› ZERO(Z-256,256*5)› STA()› FOR Q=0 TO 6 DO PRZ(Q)=0 PR1(Q)=8 PR2(Q)=0 PRX(Q)=250 PRY(Q)=30 OD› FOR Q=0 TO 3 DO S(Q)=0 SX(Q)=0 SY(Q)=0 OD›FI›[96]›››PROC GRA()›P(559)=0;P($D400)=0›;FOR Q=0 TO 27 DO FY(Q)=Q*40 OD›FOR Q=0 TO 35 DO P(40840+Q)=DIS(Q)OD›››;WG("D:DL.DAT",$9B72,40,4)› WG("D:DU.DAT",DUA,$250,4)››;ZERO(EKR,1040)› ZERO(40880,79)››DU()›› WG("D:ZNAC64.FNT",FNT,$200,4)› P(756)=$98››;MOVEBLOCK(Z-255+80,DUA+98,150)›› PRZA(0)=DUA+355› PRZA(1)=DUA+394;39› PRZA(2)=DUA+433› PRZA(3)=DUA+472› PRZA(4)=DUA+511› PRZA(5)=DUA+550› ;PRZA(6)=DUA+143› PRZA(7)=DUA+200› PRZA(8)=DUA+249› PRZD(0)=DD(3) PRZD(1)=DD(2) PRZD(2)=DD(1) PRZD(3)=DD(3) PRZD(4)=DD(2)› PRK(0)=$18 PRK(1)=$86 PRK(2)=$EA PRK(3)=$B8 PRK(4)=$16 PRK(5)=$24 PRK(6)=0 PRK(7)=$FA PRK(8)=$26 PRK(9)=$24› FOR Q=0 TO 6 DO PRZ(Q)=0 PR1(Q)=8 PR2(Q)=0 PRX(Q)=250 PRY(Q)=30 OD› FOR Q=0 TO 3 DO S(Q)=0 SX(Q)=0 SY(Q)=0 OD››SETBLOCK($8100,$F00,16)› WG("D:TAKI1.DGT",$8600,$1000,4)› WG("D:TAKI4.DGT",$8100,$500,4)› WG("D:MAD1.DGT",$7C00,$500,4)› WG("D:REKL2.DGT",$7700,$500,4)››;WG("D:ANI.DAT",$7000,$131F,4)›;WG("D:MUZ.DAT",$6000,$9DF,4)›››;WG("D:TITLE.DL",$986C,130,4)›;IF P($A060)#131 THEN›; WG("D:TITLE.MIC",$A060,$C08,4)FI››;TIT()›› DL=40840›P(710)=0›P(711)=$28›››AD1=$8600 AD2=$8600›P1=0 P2=0›C=0 D=0››;A=80 B=120›B1=0 E1=0 T=0›PRZ9=0››STA()›OPGR()›P(559)=62›››;WHILE K#28›DO››IF A9>0 THEN A9==-1› P(704)=A9›ELSE› P(704)=12›FI››T==+1 IF T=10 THEN T=0 › B1==+11 IF B1>37 THEN B1=0 FI›FI››;GRACZ:›;GG=$08› HMOV()›;GG=$19›› MOVEBLOCK(Z+B,DUA+98+B1,12)›D1=A› AD1==+P1 S1=P(AD1) AD2==+P2 S2=P(AD2)›;GG=0››;PU1==+1› PU() ››IF STRIG(0)=0 AND E1=0 THEN E1=1› E=A+5 F=B+5› IF A9=0 THEN› AD1=$7C00 P1=1 C=5 FI› QQ=DD(4)+F› P(QQ)=P(QQ)%3›;P(QQ)=255›FI››IF E1=1 THEN› E==+7 P(53252)=E› IF E>209 THEN E1=0› QQ=DD(4)+F› P(QQ)=P(QQ)&252 FI›FI›››IF S(0)=1 THEN› P(53253)=SX(0)› SX(0)==-2 IF SX(0)<30 THEN S(0)=0 › QQ=DD(4)+SY(0)› P(QQ)=P(QQ)&243› FI›FI›››;PRZECIWNICY:›;GG=$28›PRZ9==+1 IF PRZ9>4 THEN PRZ9=0 FI››IF PRZ9<3 THEN P(707-PRZ9)=PRC(PRZ9)FI››IF PR1(PRZ9)<>8 THEN› IF PR1(PRZ9)=7 THEN› PR2(PRZ9)==+12› IF PR2(PRZ9)>50 THEN› ;KAS:› IF PR2(PRZ9)=24 THEN PRC(2)=$22›; IF PRZ9<3 THEN P(707-PRZ9)=PRC(PRZ9)FI› FI› PR2(PRZ9)=0 PRZ(PRZ9)=0 PRX(PRZ9)=255› PR1(PRZ9)=8› FI› ELSE› PR2(PRZ9)==+13› IF PR2(PRZ9)>30 THEN PR2(PRZ9)=0 FI› FI›FI››IF PR1(PRZ9)<8 THEN›IF PRZ9<>2 THEN› IF PR4(PRZ9)>0 THEN PR4(PRZ9)==-1› ELSE› Q=P(PRA(PRZ9)) PRA(PRZ9)==+1› PR4(PRZ9)=(Q&7)+3› Q=P(PRA(PRZ9)) PRA(PRZ9)==+1› PR5(PRZ9)=(Q&7)› FI› Q=PR5(PRZ9)›› IF PRZ9<2 › AND PR1(PRZ9)<7 THEN›;STRZELA:› IF S(0)=0 AND PRS(PRZ9)=1 ›AND PRX(PRZ9)>55›THEN› IF P(PRA(PRZ9))<70 THEN PRA(PRZ9)==+1› S(0)=1› SX(0)=PRX(PRZ9)-8› SY(0)=PRY(PRZ9)+5› QQ=DD(4)+SY(0)› P(QQ)=P(QQ)%12› AD2=$7700 P2=1 D=5› FI› FI››› IF Q=1 THEN› IF PRY(PRZ9)>60 THEN PRY(PRZ9)==-2› ELSE PR5(PRZ9)=4 FI› FI› IF Q=2 THEN› IF PRY(PRZ9)>60 THEN PRY(PRZ9)==-1› ELSE PR5(PRZ9)=3 FI› FI› IF Q=3 THEN› IF PRY(PRZ9)<129 THEN PRY(PRZ9)==+1›;129› ELSE PR5(PRZ9)=2 FI› FI› IF Q=4 THEN› IF PRY(PRZ9)<129 THEN PRY(PRZ9)==+2›;129› ELSE PR5(PRZ9)=1 FI› FI› FI›› IF PRZ9>2;THEN › AND PR1(PRZ9)<7 THEN›;STRZELA:› IF S(0)=0 AND PRS(PRZ9)=1›AND PRX(PRZ9)>55› THEN› IF P(PRA(PRZ9))<70 THEN PRA(PRZ9)==+1› S(0)=1› SX(0)=PRX(PRZ9)-8› SY(0)=PRY(PRZ9)+5› QQ=DD(4)+SY(0)› P(QQ)=P(QQ)%12› AD2=$7700 P2=1 D=5› FI› FI›› IF Q=1 THEN› IF PRY(PRZ9)>140 THEN PRY(PRZ9)==-2› ELSE PR5(PRZ9)=4 FI› FI› IF Q=2 THEN› IF PRY(PRZ9)>140 THEN PRY(PRZ9)==-1› ELSE PR5(PRZ9)=3 FI› FI› IF Q=3 THEN› IF PRY(PRZ9)<216 THEN PRY(PRZ9)==+1›;216› ELSE PR5(PRZ9)=2 FI› FI› IF Q=4 THEN› IF PRY(PRZ9)<216 THEN PRY(PRZ9)==+2›;216› ELSE PR5(PRZ9)=1 FI› FI›› FI›FI›FI››IF PRX(PRZ9)<30 THEN PRZ(PRZ9)=0 PR1(PRZ9)=8 PR2(PRZ9)=0 FI››IF PRZ9<>2 THEN›› IF PR1(PRZ9)=7 THEN Q=11› ELSE Q=12 FI›MOVEBLOCK(PRZD(PRZ9)+PRY(PRZ9),PRZA(PR1(PRZ9))+PR2(PRZ9),Q)›ELSE›;PRZEC 3:›› IF PR4(2)>0 THEN PR4(2)==-1› ELSE› Q=P(PRA(2)) PRA(2)==+1› PR4(2)=(Q&15)+3› Q=P(PRA(2)) PRA(2)==+1› PR5(2)=(Q&7)› FI› Q=PR5(2)› IF PR1(PRZ9)<7 THEN›;STRZELA:› IF S(0)=0 AND PRS(PRZ9)=1›AND PRX(PRZ9)>55› THEN› IF P(PRA(PRZ9))<70 THEN PRA(PRZ9)==+1› S(0)=1› SX(0)=PRX(PRZ9)-8› SY(0)=PRY(PRZ9)+5› QQ=DD(4)+SY(0)› P(QQ)=P(QQ)%12› AD2=$7700 P2=1 D=5› FI› FI› IF Q=1 THEN› IF PRY(2)>60 THEN PRY(2)==-2› ELSE PR5(2)=4 FI› FI› IF Q=2 THEN› IF PRY(2)>60 THEN PRY(2)==-1› ELSE PR5(2)=3 FI› FI› IF Q=3 THEN› IF PRY(2)<216 THEN PRY(2)==+1› ELSE PR5(2)=2 FI› FI› IF Q=4 THEN› IF PRY(2)<216 THEN PRY(2)==+2› ELSE PR5(2)=1 FI› FI› FI››;GG=$2D› IF PR1(PRZ9)=7 THEN Q=11› ELSE Q=12 FI›MOVEBLOCK(PRZD(2)+PRY(2),PRZA(PR1(2))+PR2(2),Q)›;GG=0›FI›››FOR Q=0 TO 4 DO› IF PRZ(Q)>1 THEN PRZ(Q)==-1 FI› IF PRZ(Q)=1 THEN PRX(Q)==-PRS(Q)› › IF Q<3 THEN›; P(53251-Q)=PRX(Q)› FI›; Q=0 D4=PRX(Q)FI›; 1 D3=PRX(Q)FI›; 2 D2=PRX(Q)FI› FI›OD››D4=PRX(0)›D3=PRX(1)›D2=PRX(2)›››;D4=180›;MOVEBLOCK(DD(3)+80,PRZA(0),10)›;GG=$0››››;P(40895)=E1›››;GENERAT:›;GG=$FF››IF GT>0 THEN GT==-1›ELSE;GT=90+80› GT=145+80›FI››IF GT<80 THEN› IF GT=79 THEN› Q=P(GA)GA==+1› G1=(Q&3) IF G1>2 THEN G1==-1 FI› ;G1=2› GI=255› Q=P(GA)GA==+1› GX=220› IF Q<60 THEN G2=0 ELSE G2=1 FI› IF G1>0 THEN› Q=P(GA)GA==+1› GS=1+(Q&1)› G3=88›› FI› IF G1>1 THEN› Q=P(GA)GA==+1 G3=60+(Q&63)› GS=2› Q=P(GA)GA==+1› IF Q<128 THEN› G2=1› GA1=GA GA==+15› FI› FI› FI› IF GT<78 THEN› GI==+1 IF GI>4 THEN GI=0› IF G1<2 THEN GT=1 G1=9› FI›; IF (G1=2 OR G1=4) AND GI>2 THEN GI=0›; GT=1 G1=9 FI› FI›››Q1=GI;FOR Q1=0 TO 4 DO››IF G1=0 THEN;LOSOWO› IF PRZ(Q1)=0 THEN PRA(Q1)=GA› Q=P(GA)GA==+1› PRZ(Q1)=1+(Q&63)› Q=P(GA)GA==+1;Q2=(GA)GA==+1› ;PR1(Q1)=0;PR1(Q1)=(Q&3)+(Q2&3)› IF Q>5 THEN Q=(Q&3)+2 FI› PR1(Q1)=Q› PR2(Q1)=0› PRX(Q1)=GX›› Q=P(GA)GA==+1› Q2=P(GA)GA==+1› PRY(Q1)=60+(Q&127)+(Q2&31)› IF Q1<2 THEN PRY(Q1)=60+(Q&31)+(Q2&15)FI› IF Q1>2 THEN PRY(Q1)=140+(Q&31)+(Q2&15)FI›› Q=P(GA)GA==+1› PRS(Q1)=1+(Q&1)› IF PR1(Q1)>3 THEN PRS(Q1)==+1 FI›› Q2=PR1(Q1)PRC(Q1)=PRK(Q2);PRC(Q1)=PRK(PR1(Q1))›› Q=P(GA)GA==+1› PR4(Q1)=Q&63› IF G2=0 THEN PR4(Q1)=250 FI› Q=P(GA)GA==+1› PR5(Q1)=4+(Q&3)› IF Q1<2 THEN PR5(Q1)=Q&7 FI› IF Q1>3 THEN PR5(Q1)=Q&7 FI››;PRA(Q1)=GA› GA==+15› ELSE GA==+(7+15)› FI›FI›IF G1=1 THEN;PION› IF PRZ(Q1)=0 THEN PRA(Q1)=GA› PRZ(Q1)=1› PR1(Q1)=GS-1› PR2(Q1)=0› PRX(Q1)=GX › GX==-GS› PRY(Q1)=G3 G3==+25› PRS(Q1)=GS› IF PR1(Q1)>3 THEN PRS(Q1)==+1 FI› Q2=PR1(Q1)PRC(Q1)=PRK(Q2);PRC(Q1)=PRK(PR1(Q1))› PR4(Q1)=250› PR5(Q1)=0› FI›FI›IF G1=2 AND GI<3 THEN;1>2› IF PRZ(Q1)=0 THEN PRA(Q1)=GA› PRZ(Q1)=1› PR1(Q1)=G1› PR2(Q1)=0› PRX(Q1)=GX › IF GX>30 THEN GX==+17 FI›› PRY(Q1)=G3›› PRS(Q1)=GS› IF PR1(Q1)>3 THEN PRS(Q1)==+1 FI› Q2=PR1(Q1)PRC(Q1)=PRK(Q2);PRC(Q1)=PRK(PR1(Q1))›IF G2=1 THEN› PR4(Q1)=4+Q1+Q1› PR5(Q1)=0› PRA(Q1)=GA1›ELSE› PR4(Q1)=250› PR5(Q1)=0› FI›FI››;PRA(Q1)=GA;GA==+15›IF G1=3 THEN;1>2› IF PRZ(Q1)=0 THEN PRA(Q1)=GA› ELSE GA==+0› FI›FI›IF G1=4 THEN;1>2› IF PRZ(Q1)=0 THEN PRA(Q1)=GA› ELSE GA==+0› FI›FI›IF G1=5 THEN;1>2› IF PRZ(Q1)=0 THEN PRA(Q1)=GA› ELSE GA==+0› FI›FI›FI›;OD›››› IF GA>$4F00 THEN GA=$2800 FI›;GT=150›› FI› ›››FI›;GG=0›››››› ;IF STRIG(0)=0 THEN AD1=$8600 P1=1 C=10 FI› ;IF STRIG(0)=0 THEN AD1=$7C00 P1=1 C=5 FI›; IF STICK(0)=7 THEN AD2=$8100 P2=1 D= 5 FI››VSYNC()›››;KOL:›QQ=DD(4)+F›IF (P(53256)&2)=2 THEN ;TRAFIENIE 2 DUSZKA PRZEZ GRACZA› IF PRZ(2)=1 AND PR1(2)<7 THEN› SPLW(PR1(2))› PRZ(2)=255 PR1(2)=7 PR2(2)=0 PRC(2)=PRK(7)› PU1==+1+PR1(2)›;P(705)=PRC(2)› P(QQ)=P(QQ)&252› E1=0›FI FI›IF (P(53256)&4)=4 THEN› IF F<140 THEN Q=1 ELSE Q=4 FI› IF PRZ(Q)=1 AND PR1(Q)<7 THEN› SPLW(PR1(Q))› PRZ(Q)=255 PR1(Q)=7 PR2(Q)=0 PRC(Q)=PRK(7)› PU1==+1+PR1(Q)›;IF Q<3 THEN P(707-Q)=PRC(Q)FI› P(QQ)=P(QQ)&252› E1=0› FI› FI›IF (P(53256)&8)=8 THEN› IF F<140 THEN Q=0 ELSE Q=3 FI› IF PRZ(Q)=1 AND PR1(Q)<7 THEN› SPLW(PR1(Q))› PRZ(Q)=255 PR1(Q)=7 PR2(Q)=0 PRC(Q)=PRK(7)› PU1==+1+PR1(Q)›;IF Q<3 THEN P(707-Q)=PRC(Q)FI› P(QQ)=P(QQ)&252› E1=0› FI› FI›››IF A9=0 THEN››IF P(53260)>1 THEN›› SZY();ZYC==-1›FI››Q=0›IF (P(53257)&1)=1 THEN Q=1 FI›IF (P(53258)&1)=1 THEN Q=2 FI›IF (P(53259)&1)=1 THEN Q=3 FI›IF Q=1 THEN › SZY();ZYC==-1› S(Q-1)=0› QQ=DD(4)+SY(Q-1)› P(QQ)=P(QQ)&243›FI››FI›››P(53278)=1››;WHILE K#33 DO OD K=255››P(77)=0›OD›;K=42›ZERO(53256,5)ZERO(53248,8)›RMT(2)›;GRAPHICS(0)›[96]›