1 @=0 :: \=1 :: [=2 :: ]=3 :: _=4 10 CALL MAGNIFY(]):: CALL SCREEN([):: GOTO 30 :: CALL KEY :: CALL SOUND :: CALL PEEK :: CALL HCHAR :: CALL VCHAR 20 A,B,C,D,E,F :: CALL POSITION :: CALL PATTERN :: CALL SPRITE :: CALL DELSPRITE :: CALL COINC :: CALL MOTION :: CALL LOCATE 30 A$="00000000" :: B$=A$&"0000" :: C$=A$&A$ :: D$=RPT$(" ",22) 100 D$=D$&"/ e e /, e .(- e .((- e /..(((, e e . ((((- .(((((((- ./ .((((((, e.(((((((((- .((-,((((((((-/.(((((((((((," 110 GOSUB 240 :: E$=RPT$("!",28)&RPT$("!!#",9)&RPT$("!",29):: F$=RPT$("""",28)&R PT$("!",84):: DISPLAY AT(15,\):D$:E$ :: D$=SEG$(D$,141,28)&E$ 210 GOSUB 240 :: E$="e # #### e########## e### e" :: CALL DELSPRITE(ALL):: CALL COLOR(],15,\,_,15,\,9,11,\,[,11,\,\,11,\,12,15,\,13,12,\) 220 CALL COLOR(10,\,\):: CALL CHAR(108,A$&"55000061E1FFFFFF00000003"&A$&"5540E0F 8E4E2E1F1FF7C45FE") 230 G=\ :: H=5 :: I,J,K,L=@ :: CALL CHAR(104,A$&"010410400103CFFFFF786001020820C 0707CE2E1E1F3FEFCC54658E"):: GOTO 740 :: !@P- 240 CALL SOUND(-4250,-_,\,110,30,110,30,200,30):: RETURN 250 CALL KEY(],F,B):: H=INT((K-L)/10000):: FOR F=\ TO H :: CALL SOUND(200,770,_, 777,6):: DISPLAY AT(\,24):USING "###":F :: NEXT F 260 IF H THEN L=L+H*10000 :: GOTO 740 ELSE CALL CHAR(108,"FF81BFA0AFB981FFFF81E7 1818E781FFE7B5B5BDBDADADE7") 270 CALL CHAR(104,"FF81BD81BFA0A0E0E0A0A0A0A0BF81FFFF81BDBD81BDA5E7E7A5BD81E7181 818"):: CALL SPRITE(#\,112,13,87,\,@,12) 280 CALL COLOR(10,7,\,10,9,\,10,16,\,10,6,\):: CALL KEY(@,F,F):: IF F=89 THEN 22 0 ELSE IF F=78 THEN CALL DELSPRITE(ALL):: CALL VCHAR(\,\,32,768):: END ELSE 280 300 E=8 :: IF G<[ THEN 570 ELSE IF B AND \ THEN 340 ELSE CALL CHAR(60,"08081C1C1 C1C1C3E7F1C0008221004080"&C$) 310 D=600 :: CALL DELSPRITE(ALL):: FOR F=[ TO 5 :: CALL LOCATE(#F,\,F*17,#F+_,17 7,F*17):: NEXT F 320 CALL SOUND(-350,-7,6,110,5):: CALL CHAR(35,"FFFFFFFF81000081"):: CALL SOUND( 4250,-8,_,110,27,115,28,D,30) 330 FOR F=10 TO 18 :: RANDOMIZE :: CALL PEEK(-31880,A):: CALL SPRITE(#F,60,(A AN D 7)+],177,F*24-208,-A/8-]-G,@):: NEXT F :: GOTO 360 340 CALL CHAR(60,B$&"01030F7F0"&A$&B$&"709FA8204FC3C1CFF0C"):: D=1600 :: CALL SO UND(-4250,-8,6,110,27,115,28,D,30):: CALL DELSPRITE(ALL) 350 FOR F=10 TO 18 :: RANDOMIZE :: CALL PEEK(-31880,A):: CALL SPRITE(#F,60,(A AN D 7)+],F*16-120,256,@,-A/8-]-G):: NEXT F 360 CALL SPRITE(#\,112,13,72,\,@,]) 370 CALL SOUND(-999,-8,6,110,27,115,28,D,30):: CALL COINC(ALL,F):: CALL POSITION (#\,A,B):: IF F OR A>161 THEN GOSUB 870 :: GOTO 740 380 IF B>224 THEN 410 ELSE CALL KEY(\,F,F):: IF F<@ THEN CALL MOTION(#\,@,[):: G OTO 370 390 IF F=@ THEN F=8 ELSE IF F=5 THEN F=8*(A>35)ELSE IF F=] THEN CALL MOTION(#\,@ ,_):: GOTO 370 ELSE CALL MOTION(#\,@,@):: GOTO 370 400 CALL MOTION(#\,F,[):: GOTO 370 410 CALL DELSPRITE(#\):: IF G<] THEN 570 ELSE C=(B AND 6)-_ :: CALL DELSPRITE(AL L):: CALL COLOR([,\,\,\,\,\,13,\,\) 420 DISPLAY AT(21,\):" e e e e e e e e" 430 CALL CHAR(60,B$&"AA021F2C4C7F107F"&C$&"A800C1FFE1C090E",64,C$&"00009292"&B$& C$&"4949"):: CALL SPRITE(#\,108,13,40,31,8,@) 440 CALL SPRITE(#[,60,6,242,216,(B AND \)*80-40,@) 450 CALL SOUND(-4250,-_,\,200,30,200,30,200,30):: CALL POSITION(#\,A,B,#[,D,B) 460 IF A>180 THEN CALL LOCATE(#\,\-(E<@)*180,31)ELSE IF ABS(A-D)<7 THEN 490 ELSE CALL MOTION(#[,SGN(A-D)*((D AND 11)+9),@) 470 CALL KEY(\,F,B):: IF F=13 THEN 510 ELSE IF F=5 THEN E=-8 ELSE IF F=@ THEN E= 8 ELSE IF B THEN E=@ 480 CALL MOTION(#\,E,@):: GOTO 450 490 CALL SPRITE(#],64,7,D,209,E+A-D,-127):: CALL SOUND(-900,-8,\,110,30,110,30,9 999,30):: F=@ 500 CALL POSITION(#],B,B):: IF B>50 THEN 500 ELSE CALL DELSPRITE(#]):: CALL COLO R(#\,11):: GOSUB 930 :: CALL DELSPRITE(#[):: GOTO 740 510 CALL SOUND(-900,-8,@,110,30,110,30,300,30):: CALL POSITION(#\,A,B):: CALL SP RITE(#],64,_,A,36,@,127) 520 CALL POSITION(#],A,B):: IF B<192 THEN 520 ELSE CALL DELSPRITE(#]):: CALL COI NC(#[,A,220,7,F):: IF F THEN CALL SOUND(-\,-_,9)ELSE 450 530 CALL COLOR(#[,15):: FOR F=@ TO [ :: CALL PATTERN(#[,88+F*_):: FOR A=5 TO 7 : : CALL SOUND(100,-A,F*10):: NEXT A :: NEXT F 540 CALL DELSPRITE(#[):: C=C+\ :: K=K+250 :: DISPLAY AT(\,12)SIZE(10):USING "### #######":K :: IF C<5 THEN 440 550 CALL POSITION(#\,A,B):: IF A>185 THEN CALL LOCATE(#\,35,B) 560 CALL PATTERN(#\,112):: CALL MOTION(#\,@,20):: CALL SOUND(-4250,-_,\,200,30,2 00,30,200,30) 570 CALL CHAR(68,C$&"000000FF7F1FFEAB"&C$&"000000FFFFFFAA6D",64,A$&"0021F373FFFF FFFFFFFF972A08103CFFF0FFFFFFFFFFFFFFFFFF5EAA") 580 C=(B AND 5)+6 :: GOSUB 800 :: CALL CHAR(60,"0000008080C4CFEEFFFF5BAAFFFF722B "&B$&"C00FFEFCF8F0E2C67B3D"):: CALL COLOR(\,\,\,[,\,\) 590 DISPLAY AT(20,\):F$ :: CALL COLOR(\,5,\,7,12,\):: FOR F=\ TO _ :: CALL LOCAT E(#F,161,\):: NEXT F :: CALL SPRITE(#9,112,13,15,\,20,35) 600 CALL SPRITE(#10,68,15,143,\,#11,64,15,143,17,#12,60,15,143,33):: CALL MOTION (#10,@,C,#11,@,C,#12,@,C) 610 CALL SOUND(-4250,-_,\,200,30,200,30,200,30):: CALL POSITION(#9,A,B):: IF A<3 5 THEN CALL MOTION(#9,@,E):: CALL LOCATE(#9,35,B)ELSE IF A>140 THEN 690 620 CALL COINC(#9,#11,16,F):: IF F AND A>130 THEN 680 ELSE CALL COINC(#9,#10,9,F ):: IF F THEN 710 630 CALL KEY(\,F,F):: IF F<@ THEN CALL PATTERN(#9,SGN(E)*_+108):: CALL MOTION(#9 ,]*(A>35),E):: GOTO 610 640 IF F=] THEN CALL PATTERN(#9,112):: E=E-_*(E<12):: GOTO 670 ELSE IF F=[ THEN CALL PATTERN(#9,104):: E=E+_*(E>-12):: GOTO 670 650 IF F=@ THEN CALL PATTERN(#9,108):: CALL MOTION(#9,8,E):: GOTO 610 660 IF F=5 THEN CALL PATTERN(#9,108):: CALL POSITION(#9,A,B):: IF A<36 THEN CALL LOCATE(#9,35,B)ELSE CALL MOTION(#9,-8,E):: GOTO 610 670 CALL MOTION(#9,@,E):: GOTO 610 680 CALL MOTION(#9,@,@,#10,[,_,#11,[,_,#12,[,_):: K=K-J*500 :: J=@ 690 CALL MOTION(#9,],@):: CALL SOUND(-2450,-8,6,110,30,110,30,9999,30):: CALL PA TTERN(#9,104):: CALL SOUND(\,-_,9):: I=@ :: H=H-\ 700 CALL DELSPRITE(#9):: IF J THEN 740 ELSE CALL DELSPRITE(#10,#11,#12):: GOTO 7 40 710 CALL POSITION(#10,A,B):: CALL SPRITE(#9,116,13,136,B,@,C):: FOR F=306 TO 122 STEP -6 :: CALL SOUND(-200,-_,\,F,27,F,30,F,30):: NEXT F 720 FOR F=130 TO 306 STEP 8 :: CALL SOUND(-4250,-_,\,F,30,F,30,F,27):: NEXT F :: CALL MOTION(#9,-10,@):: G=G+\ :: K=K+500*I :: FOR F=\ TO 300 :: NEXT F :: J=J+I :: I=@ 740 DISPLAY AT(\,[):USING E$:I,J,K,H :: IF H THEN CALL DELSPRITE(ALL)ELSE 250 750 CALL CHAR(60,"000001010F090909010101013E200000C0C4C4FCC0C0C0C0C0201008081020 3"):: CALL CHAR(64,"0101031F131313030303033F2000000080888888F8808080808000008040 203") 770 CALL CHAR(68,"00000101070909050101010106181000C0C0C2F4C8C0C0C0C0201008081020 3",35,"FFFFFFFF817E7E81") 780 DISPLAY AT(20,\):D$ :: CALL COLOR([,11,\,\,11,\,13,12,\):: GOSUB 800 :: CALL SPRITE(#],140,[,161,256,@,-24):: FOR F=9 TO 20 :: CALL SPRITE(#F,136,7,200,\):: NEXT F :: GOTO 1030 800 CALL DELSPRITE(ALL):: FOR F=5 TO 8 :: CALL LOCATE(#F,177,F*17):: NEXT F :: R ETURN 810 IF F<>12 THEN CALL POSITION(#\,A,B,#],D,D):: IF ABS(B-D)<80 THEN CALL SPRITE (#_,36,9,157,D,A-147,[*E+B-D)ELSE 1060 ELSE 1060 820 CALL SOUND(-150,-8,],110,30,110,30,5010,30):: CALL SOUND(300,-8,\,128,30,128 ,30,1100,30):: CALL DELSPRITE(#_):: GOSUB 870 :: GOTO 1030 830 CALL MOTION(#],@,E/_,#[,@,@):: CALL PATTERN(#[,80):: CALL SOUND(-\,-_,9):: I F F=12 THEN CALL MOTION(#\,@,E) 840 FOR F=\ TO 9 :: CALL SOUND(50,-6,\):: NEXT F :: CALL DELSPRITE(#[):: C=@ :: RETURN 850 CALL COLOR(#],[):: FOR F=@ TO 16 STEP _ :: CALL SOUND(-999,-8,F,120,27,127,2 8,1000,30):: CALL PATTERN(#],84+F):: NEXT F 860 K=605-]*A+K :: CALL DELSPRITE(#]):: CALL SPRITE(#],140,[,161,256,@,-24):: RE TURN 870 F=@ :: CALL SOUND(-\,-_,9):: IF B AND \ THEN CALL PATTERN(#\,112):: CALL MOT ION(#\,9,E)ELSE CALL COLOR(#\,16):: GOTO 930 880 CALL COLOR(#\,RND*7+]):: FOR F=\ TO 26 STEP 5 :: CALL SOUND(F*40+200,-8,F,11 0,30,110,30,1100-F,30) 890 CALL POSITION(#\,A,B):: IF A>155 THEN CALL MOTION(#\,@,@):: GOTO 910 ELSE IF A AND [ THEN 880 900 NEXT F :: GOTO 880 910 CALL COINC(#\,#[,16,F):: IF F THEN CALL DELSPRITE(#[) 920 CALL COINC(#\,#],17,F):: CALL COLOR(#\,[):: IF F THEN CALL SOUND(-300,-8,\,1 10,30,110,30,3000,30):: CALL COLOR(#],7) 930 FOR B=@ TO 16 STEP _ :: CALL SOUND(-999,-8,B,120,27,127,28,1100,30):: CALL P ATTERN(#\,84+B):: NEXT B :: CALL DELSPRITE(#\):: H=H-\ :: I=@ :: IF F THEN GOSUB 850 :: RETURN ELSE RETURN 950 CALL MOTION(#\,@,E):: CALL COINC(#\,#[,12,D):: IF D THEN CALL SOUND(-500,-8, \,110,30,110,30,840,28):: CALL DELSPRITE(#[) 960 CALL SOUND(-4250,-_,\,140,30,140,30,140,30):: CALL POSITION(#\,A,B,#[,C,C):: CALL SPRITE(#\,116,13,160,B,@,@) 970 CALL MOTION(#[,@,_*SGN(B-C)):: IF C=@ THEN CALL SPRITE(#[,76,[,163,256) 980 CALL KEY(\,F,F):: IF F=5 THEN 1020 ELSE D=D-_ :: IF D<60 THEN D=76 990 CALL PATTERN(#[,D):: CALL COINC(#\,#],32,F):: IF F THEN GOSUB 830 :: GOSUB 8 70 :: GOTO 1030 1000 CALL COINC(#[,#],24,F):: IF F THEN GOSUB 830 :: GOTO 970 ELSE CALL COINC(#\ ,#[,11,F):: IF F THEN CALL PATTERN(#[,80)ELSE 980 1010 CALL SOUND(-200,220,7,223,8,226,9):: I=I+\ :: DISPLAY AT(\,])SIZE([):I :: C ALL DELSPRITE(#[) 1020 CALL SOUND(-4000,-_,\,110,30,110,30,320,30):: CALL MOTION(#\,-17,E/[,#[,@,@ ):: CALL PATTERN(#[,128):: IF I=5 THEN 300 ELSE 1050 1030 IF H THEN CALL SPRITE(#\,112,13,20,\,20,35):: F,E=12 1040 DISPLAY AT(\,[):USING E$:I,J,K,H :: IF H=@ THEN 250 1050 CALL SOUND(-999,-_,\,110,30,110,30,200,30):: CALL POSITION(#\,A,B,#[,C,C,#] ,D,D):: IF ABS(D-B)<5 THEN 810 ELSE IF C THEN CALL PATTERN(#[,124) 1060 CALL MOTION(#],@,SGN(B-D)*((B AND 6)+_+G)):: IF A<35 THEN CALL MOTION(#\,@, E):: CALL LOCATE(#\,35,B)ELSE IF A>151 THEN 950 1070 IF C THEN CALL PATTERN(#[,128):: IF ABS(D-C)<26 THEN GOSUB 830 1080 CALL KEY(\,F,F):: IF F=13 THEN 1130 ELSE IF F<@ THEN CALL PATTERN(#\,E/]+10 8):: CALL MOTION(#\,]*(A>35),E):: GOTO 1050 1090 IF F=] THEN CALL PATTERN(#\,112):: E=12 :: GOTO 1120 ELSE IF F=[ THEN CALL PATTERN(#\,104):: E=-12 :: GOTO 1120 1100 IF F=@ THEN CALL PATTERN(#\,108):: CALL MOTION(#\,8,E):: GOTO 1050 1110 IF F=5 THEN CALL PATTERN(#\,108):: CALL POSITION(#\,A,B):: IF A<36 THEN CAL L LOCATE(#\,35,B)ELSE CALL MOTION(#\,-12,E):: GOTO 1050 1120 CALL MOTION(#\,@,E):: GOTO 1050 1130 CALL SOUND(-999,-8,],128,30,128,30,999,30):: CALL MOTION(#\,@,E):: CALL POS ITION(#\,A,B):: B=E/[+B :: IF B<\ THEN B=\ 1140 FOR F=A+16 TO 175 STEP 13 :: B=B+13 :: IF B>255 THEN B=\ 1150 CALL LOCATE(#F/13+7,F,B):: NEXT F :: IF C THEN CALL COINC(#[,160,B,18,F):: IF F THEN CALL DELSPRITE(#[) 1160 CALL SOUND(-999,-8,],128,30,128,30,500,30):: CALL COINC(ALL,F):: CALL DELSP RITE(#9,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20) 1170 IF F THEN CALL COLOR(#],16):: GOSUB 850 :: GOTO 1040 ELSE 1050