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