, 8( ;B ; SYS 019 TBASI cE q0 \ C)CC8`DCeECi D`RP h1 $E ȍ @y b Y)hܭ]L]` q DM D u j)` 0 ,p0i2 &28jJ1f02 9g iJf0i1)x ԍӭ232002 |} |~~|p`@@ TTTTTT 8||88(D 8l`8l8 8| ||8| TTTTTTTTTTTTTTTTTTTTT 888|||88 ~ pP @@00 `` ,&*RVl8 W9AMV4bi){ 8,4, <> >~~> @px aRMT4@.rr ՠ*Z'Cg Т 9xC\c&dO(,C n w D D 3 3 3 "" w f f U U -- f f f f U U U U D D D -- f f f f U U U U D D D %% wU333 %% wwwfUD3":: w w f U U D D D D D D 3 = w f f f w w f f D 3 !! w U D 3 " CC ` w w w f f f f w ` w U D " :: @ w U D 3 " U f U U D 3 " ?>>>>= >1''''''''''~'''''''~'~ ;~;~;~;~;;~;;;;~;;~;;;~;~;;~;~;~;~;;~;;;;~;;~;;;~;~;~XXX>&~~~~~~~~~~~~F~~~~~~~~~~~~`/~!.~!-~/~=/~=/~/~&-/~$-/~#-~#-~/~/~!-~!-~/~-~/~-~/~/~-~+~+~++%6%77777~~~~~~~~~~~~/~!.~!-~/~-/~!-/~/~&-/~(-/~/~(-/~+-/~/~&-/~$-/~/~#-/~$-/~/~!.~!-~/~.~-~++~+~~~~~~~~~~/~!.~!-~/~#-/~$-/~/~+-~/~)-~/~(-~/~/~$/~$.~$-~/~/~#-/~$-/~/~(-/~&-/~&/~&.~&-~f,~>/=//~/=///~/!/!.!-> #5c5~c55~5~%6~g66~~~~~~~~~~~~~C`#>###>#~###~#>##~##~###~77~~~~~~~~~#>###>#~###~#>##~##~###~77~~~~~~~~~K >>>~~~~~ = >?C r @ @ οzqke_\VPMGD><852/-*(%#! yspfaZURKHC?<9730-*(%$! yrlf`[UQLHD@<952/-*(%#! LLLۯLOLⰆӄHi ߪӍϯȱӍә hH eхh) **(e҅ d ҠҠ ҈` ͯ-͝ϝ䪩 誩쪩 ٥iѐL ߠѪȱх҆Ѣ Bઅӽ䪅Լ誱)?=5ȱJ)~ 쪼誱JfJf٥)дHLW?) **LȱӝL0ȱӍLˮ ȱӝLˮLdLۯ0 0˝ȱ˝ؠםȱםȱם,<םם$ȱר( ם8i 4ם0LT HͯLLdLѰ֢ԽӼӅȱӅȱӅȘ ) ܥ)եD$(y(LS$8 0<%444ؼ4ם0,8< } )pLΰe}0= D?}@0Lᯢ 㰎㰩`@D ҎҭAEҎҭBFҎҭCGҎҌ` < INCLUDE"H1:RT_MIR2.ACT"MODULE; SAMOLOT II VER 5; BY TOMASZ CIESLEWICZ MAY 1992,2012; MIRAGE SOFTWARE LTD.BYTE A,B,A1,Q1,Q2,Q3,Q4,Q5,C,D,STR,P1,P2,P3,P4,P5,P6,A9,E,F,PR1,E1,G,H,PR2,G1,TR,ZY,QQ1,QQ2,QQ3,ZZ1,ZZ2,ZZ3,AAA1,AAA2,AAA 3,AAA4,AAA6,AAA8,GGG1=53256,GGG2=53257,GGG3=53258,GGG4=53259,GGG5=53266,GGG6=53267,GGG7=53268,GGG8=53269,GGG9=53248,GGGA=53249,GGGB=53250,GGGC=53251,GGGD=$D40A,K=764,JO=$278,LO=$D20ABYTE ARRAY I(15),P=0, DIS=[112 112 112 112 112 112 112 66 64 156 2 !2 65]CARD Z,GRDU=[$8C00],GRZN=[$9000],DL=560,ADRDI=[$8000],AAA5,AAA7,AA1,AA2,T;WOLNA PAMIEC OD $8100-$8C00 !!!!!!!!CARD ARRAY FM(25)PROC WG(CHAR ARRAY TX CARD G,I BYTE A,B)CLOSE(2)OPEN(2,TX,A,B)IF A=4 THEN POKE($362,7) ELSE POKE($362,11) FIPOKEC"($364,G)POKEC($368,I)[162 32 32 $56 $E4 133 $A3]CLOSE(2)[96]PROC TX(BYTE X,Y BYTE ARRAY T)BYTE Q1 CARD Q3,Q4 Q1=T(0)Q3=40000+X+FM(Y) Q4=PEEKC(@ T)MOVEBLOCK(Q3,Q4+1,Q1)[96]PROC DU()P(54279)=128 P(53277)=3 P(559)=253 Z=128*256+768 P(623)=17 ZERO(Z,256#*5)P(53260)=0[96]PROC OPDU();GGG1=3 GGG2=3 GGG3=3 GGG4=3P(704)=12 GGG9=64;SETBLOCK(Z+256+73,8,2)P(705)=14 GGGA=96;SETBLOCK(Z+512+73,8,2)P(706)=10 GGGB=128;SETBLOCK(Z+768+73,8,2)P(707)=8 GGGC=160;SETBLOCK(Z+1024+73,8,2)[96]PROC ZXCV()IF AAA1=0 $THEN AAA1=1[96]FI IF AAA1=1 THEN AAA1=0[96]FIPROC RYSEK()P(ADRDI)=112 P(ADRDI+1)=112 P(ADRDI+2)=0 P(ADRDI+3)=112 P(ADRDI+4)=68 P(ADRDI+5)=64 P(ADRDI+6)=156 P(ADRDI+7)=112[96]PROC RYSEKR1()AAA5=40240[96]PROC RYSEKR2()AAA5=$96A0[96]PROC RYSOWA()IF AA%A8>21 THEN[96]FI Q1=20-AAA8 IF AAA1=0 THEN AAA5=AA1 MOVEBLOCK(AA1+FM(Q1+2),AA2+FM(Q1+1),32)FI IF AAA1=1 THEN AAA5=AA2 MOVEBLOCK(AA2+FM(Q1+2),AA1+FM(Q1+1),32)FI AAA8==+1[96]PROC RYSLINE1()IF QQ3>15 THEN;QQ1=RAND(30) QQ1=LO&31 IF QQ1>29 THEN QQ1==-L&O&3 FIIF QQ1=7 % QQ1=8 THEN QQ3=5 QQ2=A/4-15 FIIF QQ1=6 THEN QQ3=1;QQ2=RAND(30)QQ2=LO&31 IF QQ2>29 THEN QQ2==-LO&3 FIFIIF QQ1<6 THEN QQ3=3;QQ2=RAND(30)QQ2=LO&31 IF QQ2>29 THEN QQ2==-LO&3 FIFI FI;Q1=RAND(31)Q1=(LO&31)+(LO&1) IF AAA1=0 THEN AAA5'=AA2 ;RYSOWANIE LINJI GORNEJ;MOVEBLOCK(AAA5,AAA7,32)ZERO(AAA5,32);Q2=RAND(31)Q2=(LO&31)+(LO&1)P(AAA5+Q2)=5;Q2=RAND(31)Q2=(LO&31)+(LO&1)P(AAA5+Q2)=6;QQ1=RAND(6)QQ1=(LO&3)+(LO&1)+(LO&1)IF QQ1=1 THEN ;Q2=RAND(31)Q2=LO&31P(AAA5+Q2)=42 FI(IF QQ3=1 THEN P(AAA5+QQ2)=3 P(AAA5+QQ2+1)=4 QQ3=2 FIIF QQ3=5 THEN P(AAA5+QQ2)=46 P(AAA5+QQ2+1)=47 QQ3=6 FIIF QQ3=3 THEN P(AAA5+QQ2)=12 P(AAA5+QQ2+1)=13 QQ3=4 FIIF QQ3>12 & QQ3<20 THEN P(AAA5+QQ2)=14 P(AAA5+QQ2+1)=15 QQ3==+1 FIFI ;RYSOWANIE LINJI GO)RNEJIF AAA1=1 THEN AAA5=AA1 ;MOVEBLOCK(AAA5,AAA7,32)ZERO(AAA5,32);Q2=RAND(31)Q2=(LO&31)+(LO&1)P(AAA5+Q2)=5;Q2=RAND(31)Q2=(LO&31)+(LO&1)P(AAA5+Q2)=6;Q2=RAND(31)Q2=(LO&31)+(LO&1)P(AAA5+Q2)=7;QQ1=RAND(60)QQ1=LO&63 IF QQ1>59 THEN QQ1==-(LO&*3)FIIF QQ1=1 THEN ;Q2=RAND(31)Q2=LO&31P(AAA5+Q2)=8 FI;Q2=RAND(31)Q2=LO&31P(AAA5+Q2)=53IF QQ3>12 & QQ3<20 THEN P(AAA5+QQ2)=14 P(AAA5+QQ2+1)=15 QQ3==+1 FIIF QQ3=6 THEN P(AAA5+QQ2)=44 P(AAA5+QQ2+1)=45 QQ3=13 FIIF QQ3=4 THEN P(AAA5+QQ2)=10 P(AAA5++QQ2+1)=11 QQ3=21 FIIF QQ3=2 THEN P(AAA5+QQ2)=1 P(AAA5+QQ2+1)=2 QQ3=13 FIFI[96]PROC ANIMACJA()DL=ADRDI P($D405)=7-AAA2RYSOWA()RYSEK()P(ADRDI+8)=112 P(ADRDI+9)=68+$20IF AAA1=0 THEN ;P(ADRDI+10)=48 P(ADRDI+11)=157P(ADRDI+10)=32 P(ADRDI+11)=157EL,SEP(ADRDI+10)=160 P(ADRDI+11)=150 FIFOR AAA3=0 TO 21 DO P(ADRDI+12+AAA3)=4+$20 ODP(ADRDI+13+AAA3)=112 P(ADRDI+14+AAA3)=112 P(ADRDI+15+AAA3)=65 AAA6==+1 IF AAA6=3 THEN AAA6=0 AAA2==+1 FI;P($D405)=7-AAA2 IF AAA2=8 THEN AAA2=0 ZXCV()AAA7==-32 RYSLIN-E1()AAA8=0 IF T<65535 THEN T==+1;ST. TRUD. IF (T MOD 200=1) AND TR<255 THEN TR==+1 FI FIFI;P(ADRDI+21)=112[96]PROC RYSCO()IF P1>25 THEN P2==+1 P1==-10 FI IF P2>25 THEN P3==+1 P2==-10 FIIF P3>25 THEN P4==+1 P3==-10 FI IF P4>25 THEN P5==+1 P4.==-10 FIIF P5>25 THEN P6==+1 P5==-10 FI IF P6>25 THEN P6=25 FI;P(40040)=(P3/10 MOD 10)+16P(40041)=(P3/1 MOD 10)+16;P(40042)=(P2/10 MOD 10)+16P(40043)=(P2/1 MOD 10)+16;P(40044)=(P1/10 MOD 10)+16P(40045)=(P1/1 MOD 10)+16P(40008)=P6 P(40009)=P5 P(4001/0)=P4P(40011)=P3 P(40012)=P2 P(40013)=P1P(40014)=16 P(40015)=16[96]PROC RYSZ()BYTE L;P(40000+30)=ZYSETBLOCK(40018,5,9)IF ZY>0 THEN IF ZY<5 THEN L=ZY ELSE L=5 FI;SETBLOCK(40018,ZY,31)ELSE SETBLOCK(40018,5,31)FISETBLOCK(40018,L,31)FI[96]PRO0C OPGR()TX(2,0,"")RYSZ();TX(10,0,"")TX(10,1,"")TX(10,2," ")TX(10,3," ");TX(20,2,"! #")P(40000+21+2*32)=34 TX(20,3,"$%&")TX(20,4,"'()");TX(25,0,"")TX(25,1,"")TX(25,2,",-")TX(25,3,"./")[96]PROC RYSLU()IF A9=1 THEN MOVEBLOCK(Z1+256+B,GRDU+98,27)MOVEBLOCK(Z+513+B,GRDU+124,26)[96]FIIF A9=2 THEN MOVEBLOCK(Z+256+B,GRDU+454,27)MOVEBLOCK(Z+513+B,GRDU+481,26)[96]FIIF A9=3 THEN MOVEBLOCK(Z+256+B,GRDU+505,27)MOVEBLOCK(Z+513+B,GRDU+532,26)[96]FI[96]PROC RYSPR(BYTE V1,V2)CARD O IF2 V1=1 THEN O=Z+$300ELSE O=Z+$400 FI;V1=2MOVEBLOCK(O+V2,GRDU+222,12)ZERO(O+43,14);SETBLOCK(O+45,12,255)[96]PROC WYB(BYTE V1,V2,V3)CARD O IF V1=1 THEN O=Z+$100+V2 ELSE O=Z+$200+V2 FI;V1=2 ZERO(O+$200,21) IF V3=2 % V3=4 THEN MOVEBLOCK(O+$204,G3RDU+400,12)FIIF V3=3 THEN MOVEBLOCK(O+$201,GRDU+412,20)FIIF V3=5 THEN MOVEBLOCK(O+$207,GRDU+429,12)FI;IF V3=6 & V3=7 THEN MOVEBLOCK(O+$207,GRDU+439,12)FIIF V3=6 THEN MOVEBLOCK(O+$207,GRDU+439,12)FI[96]PROC PARST()A=120 A1=1 B=170 D=0 STR=0 PR1=04 PR2=0[96]PROC ZNIK(CARD Q)Q1=LO&31 Q2=P(Z+Q+B+Q1)Q3=LO&7 IF Q3=7 THEN Q3=128ELSEIF Q3=6 THEN Q3=64 ELSEIF Q3=5 THEN Q3=32 ELSEIF Q3=4 THEN Q3=16 ELSEIF Q3=3 THEN Q3=8 ELSEIF Q3=2 THEN Q3=4 ELSEIF Q3=1 THEN Q3=2 ELSE Q3=1 FIP(Z+Q+B+Q1)=(255-Q3)&Q25[96]PROC JOY()A9=1IF A1=1 THENIF (JO=10 OR JO=9 OR JO=11) & A>65 THEN A==-1 A9=2 FIIF (JO=6 OR JO=5 OR JO=7) & A<176 THEN A==+1 A9=3 FIIF (JO=10 OR JO=6 OR JO=14) & B>74 THEN B==-2 FIIF (JO=9 OR JO=5 OR JO=13) & B<207 THEN B==+2 FIRYSLU()ELSE6; STR. ZYCIAA1==+1IF A1=3 THEN IF PR1=1 THEN IF PR2=1 AND LO>192 THEN IF LO>128 THEN PR1=2 ELSE PR2=2 FI FI FI IF ZY=0 THEN ;MOVEBLOCK(Z+256+99,GRDU+558,6);END;MOVEBLOCK(Z+256+60,GRDU+558,6);MOVEBLOCK(Z+512+60,GRDU+564,6);^WYWALIC TEGO IFAF7IFIQ2=A1/80IF A1<150 THEN;IF PR1=0 THEN PR1=2 E=A+(LO&3) F=B+(LO&7)-16 FI;IF PR2=0 AND LO>172 THEN PR2=2 G=A+(LO&3)+2 H=B+(LO&7)-16 FI IF PR1=0 THEN PR1=2 E=A+(LO&7)-2 F=B+(LO&15)-16 FI IF PR2=0 AND LO>172 THEN PR2=2 G=A+(LO&7)+2+Q2 H=B+(LO&185)-16 FI;IF PR1=0 OR PR1>6 THEN PR1=2 E=A+(LO&3) F=B+(LO&7)-16 FI;IF (PR2=0 OR PR2>6) AND LO>172 THEN PR2=2 G=A+(LO&3)+2 H=B+(LO&7)-16 FIFI;IF A1 MOD 10 =1 THEN Q2=A1/10 FIGGG9=A-Q2 GGGA=A+8+Q2 IF A1=185 THEN ZERO(Z+255+B,27)ZERO(Z+511+B,27) 9ZERO(Z+$300+F,14)ZERO(Z+$400+H,14) PARST() ZY==-1;GAME OVER TEST !!!!! IF ZY=255 THEN K=28 ELSE RYSZ() FI Q2=0 FOR Q1=0 TO 3 DO IF I(Q2)>0 THEN ZERO(Z+I(Q2+2),2)I(Q2)=0 FI Q2==+3 ODFIZNIK(256);Q1=LO&31;Q2=P(Z+256+B+Q1);Q3=LO&7 IF Q3=7 T:HEN Q3=128;ELSEIF Q3=6 THEN Q3=64 ELSEIF Q3=5 THEN Q3=32 ELSEIF Q3=4 THEN Q3=16 ELSEIF Q3=3 THEN Q3=8 ELSEIF Q3=2 THEN Q3=4 ELSEIF Q3=1 THEN Q3=2 ELSE Q3=1 FI;P(Z+256+B+Q1)=(255-Q3)&Q2ZNIK(513);Q1=LO&31;Q2=P(Z+513+B+Q1);Q3=LO&7 IF Q3=7 THEN Q3=12;8;ELSEIF Q3=6 THEN Q3=64 ELSEIF Q3=5 THEN Q3=32 ELSEIF Q3=4 THEN Q3=16 ELSEIF Q3=3 THEN Q3=8 ELSEIF Q3=2 THEN Q3=4 ELSEIF Q3=1 THEN Q3=2 ELSE Q3=1 FI;P(Z+513+B+Q1)=(255-Q3)&Q2;P(Z+513+B+Q1)=0 IF LO>222 THEN P(Z+513+B+(LO&31))=0 FI;MOVEBLOCK(Z+2<56+B,GRDU+98,27)MOVEBLOCK(Z+513+B,GRDU+124,26)FISETBLOCK(Z+256+234,10,255)SETBLOCK(Z+512+234,10,255)SETBLOCK(Z+768+234,10,255)SETBLOCK(Z+1024+234,10,255);MASKOW.[96]PROC KASSTR();IF C<80 & D=6 THEN STR=0 ZERO(Z+$108+C,20)ZERO(Z+$208+C,20)FIIF C=<56 THEN STR=0 ZERO(Z+$100+C,10) ZERO(Z+$200+C,10)FI[96]PROC STRZALY()IF STR=0 & STRIG(0)=0 & A1=1 THEN STR=1 IF D=6 THEN C=B-19 ELSE C=B-5 FI FIIF STR=1 THEN IF D=0 THEN IF JO=15 % JO=14 % JO=13 THEN MOVEBLOCK(Z+$100+C,GRDU+356,6)MOVEBLOCK(Z+$2>00+C,GRDU+362,6)FIIF JO=10 % JO=11 % JO=9 THEN MOVEBLOCK(Z+$100+C,GRDU+368,8)MOVEBLOCK(Z+$200+C,GRDU+384,8)FIIF JO=9 % JO=7 % JO=5 THEN MOVEBLOCK(Z+$100+C,GRDU+376,6)MOVEBLOCK(Z+$200+C,GRDU+392,6)FI C==-2;ZERO(Z+$106+C,5)ZERO(Z+$206+C,5)ZERO(Z+$108+?C,5)ZERO(Z+$208+C,5)FI;IF D=1 THEN MOVEBLOCK(Z+$100+C,GRDU+152,1)MOVEBLOCK(Z+$200+C,GRDU+153,1)ZERO(Z+$101+C,3)ZERO(Z+$201+C,3)C==-3 FI;IF D=2 THEN MOVEBLOCK(Z+$100+C,GRDU+154,3)MOVEBLOCK(Z+$200+C,GRDU+157,3)ZERO(Z+$103+C,3)ZERO(Z+$203+C,3)C==-3 FI;@IF D=3 THEN MOVEBLOCK(Z+$100+C,GRDU+160,3)MOVEBLOCK(Z+$200+C,GRDU+163,3)ZERO(Z+$103+C,3)ZERO(Z+$203+C,3)C==-3 FI;IF D=4 THEN MOVEBLOCK(Z+$100+C,GRDU+166,6)MOVEBLOCK(Z+$200+C,GRDU+172,6)ZERO(Z+$106+C,4)ZERO(Z+$206+C,4)C==-4 FI;IF D=5 THEN MOVEBLOCK(Z+$A100+C,GRDU+178,6)MOVEBLOCK(Z+$200+C,GRDU+184,6)ZERO(Z+$106+C,4)ZERO(Z+$206+C,4)C==-4 FI;IF D=6 THEN MOVEBLOCK(Z+$100+C,GRDU+234,15)MOVEBLOCK(Z+$200+C,GRDU+253,15)ZERO(Z+$113+C,8)ZERO(Z+$213+C,8)C==-8 FIFIIF STR=1 THEN KASSTR()FI[96]PROC AS()P(532B78)=1;GRAPHICS(12+16)DU()OPDU()P(711)=$F8 P(756)=144 P(708)=$C8 P(709)=$CA P(710)=$C2 P(712)=$00QQ1=0 QQ2=0 QQ3=20 ZZ1=0 ZZ2=1 ZZ3=0 AA1=$96A0 AA2=40224 AAA1=0 AAA2=0 AAA6=0 AAA7=$FA00 AAA8=0;FOR AAA3=0 TO 191 DO P(40000+AAA3)=0 ODZERO($96A0,$70C0)FOR Q1=0 TO 14 DO I(Q1)=0 OD;END ANIM EKRP1=16 P2=16 P3=16 P4=16 P5=16 P6=16;TR=1 ;TR=250 TR=10 TR=5ZY=4FOR A=0 TO 96 DO P(40000+A)=9 ODOPGR()RYSCO()FOR A=0 TO 79 DO;Q2=RAND(22)Q2=(LO&15)+(LO&7);AAA5=AA2+RAND(31)+FM(Q2)AAA5=AA2+(LO&31D)+FM(Q2)IF LO>128 THEN P(AAA5)=7 FIIF LO>192 THEN P(AAA5)=5 ELSE P(AAA5)=6 FIOD ;TX(0,0," !@#$%^&*()")FOR A=0 TO 11 DO;Q1=RAND(28)Q2=RAND(15)Q1=LO&31 IF Q1>27 THEN Q1==-(LO&7)FIQ2=LO&15TX(Q1,7+Q2," ")TX(Q1,8+Q2,"12")TX(Q1+1,9+Q2,"34"E)ODTX(20,10,"!%#")TX(20,11,"$%&")TX(20,12,"'()")PARST()DO;P(53274)=2Q2=0 FOR Q1=0 TO 3 DO IF I(Q2)>0 THEN ZERO(Z+I(Q2+2),2)FI Q2==+3 ODQ2=0 FOR Q1=0 TO 3 DO Q3=I(Q2)IF Q3>0 THEN IF Q3>1 AND Q3<5 THEN I(Q2+2)==+2 ELSE I(Q2+2)==+1 FI IF Q3F=1 OR Q3=2 THEN I(Q2+1)==-1 IF I(Q2+1)<64 THEN I(Q2)=0 FI FI IF Q3=5 OR Q3=4 THEN I(Q2+1)==+1 IF I(Q2+1)>189 THEN I(Q2)=0 FI FI Q4=I(Q2+2);237 IF Q4<231 AND I(Q2)<>0 THEN P(53252+Q1)=I(Q2+1) IF Q1=0 THEN Q5=1 ELSEIF Q1=1 THEN Q5=4 ELSEIF Q1=2 THENG Q5=16 ELSE Q5=64 FI Q3=P(Z+Q4) P(Z+Q4)=Q3+Q5 Q3=P(Z+Q4+1) P(Z+Q4+1)=Q3+Q5 ELSE I(Q2)=0 FIFI Q2==+3 ODIF LO