5 REM SPACE FOR SPRITES X 10 REM SPACE FOR SPRITES X 15 REM SPACE FOR SPRITES X 20 REM SPACE FOR SPRITES X 25 REM SPACE FOR SPRITES X 30 REM SPACE FOR SPRITES X 35 REM SPACE FOR SPRITES X 40 REM SPACE FOR SPRITES X 45 REM SPACE FOR SPRITES X 50 REM SPACE FOR SPRITES X 55 REM SPACE FOR SPRITES X 60 REM SPACE FOR SPRITES X 65 REM SPACE FOR SPRITES X 70 REM SPACE FOR SPRITES X 75 REM SPACE FOR SPRITES X 90 DIM SP(10),N(60),V%(500,3),W%(500,3),C$(16) 95 GOTO10210:SKIPROUND MUSIC PLAYER AND MAIN LOOP WHICH ARE TIME-CRITICAL 100 REMPLAY A TUNE(NV VOICES,KK NOTES IN PART 1 105 FORJ=1TONV:P(J)=0:D(J)=0:T(J)=TI:NEXTJ 110 FORJ=1TONV 115 IF T(J)>TI THEN 130 120 T(J)=T(J)+D(J):X=V%(P(J),J) 125 Y=W%(P(J),J):P(J)=P(J)+1:D(J)=Y*DV:M(J)=N(X) 130 NEXTJ 140 F=0 145 FORJ=1TONV 150 IFT(J)<=TITHEN SP(J+7)=M(J):F=1 155 NEXTJ 160 IFF=0THEN 145 165 IFP(1)<=KKTHEN110 170 RETURN 500 GOTO5000 :REM POINTER TO MOVED CODE 2000 REM GOLDEN RAIN(1) 2005 SP(7)=A+64080 2010 ONCWGOTO2020,2040,2045,2050 2020 IFRND(0)>0.04THEN 2100 2030 CW=2:CN=50:POKE2040,34:POKEV+21,PEEK(V+21)+1:POKEV+39,1+7*RND(0) 2035 SP(10)=NO:GOTO2100 2040 CW=3:POKE2040,35:GOTO2100 2045 CW=4:POKE2040,36:GOTO2100 2050 CW=2:POKE 2040,34:CN=CN-1 2060 IFCN=0THEN CW=1:POKEV+21,PEEK(V+21)-1 2100 REM GROUND EXPLOSIONS 2110 ONGRGOTO2120,2140,2145,2150 2120 IFRND(0)>0.1 THEN 2540 2130 GR=2:POKE2041,37:POKEV+21,PEEK(V+21)+2:POKEV+40,1+7*RND(0) 2135 SP(10)=NO:GOTO2540 2140 GR=3:POKE2041,38:GOTO2540 2145 GR=4:POKE 2041,39:GOTO2540 2150 GR=1:POKE V+21,PEEK(V+21)-2 2540 REM ROCKET(2) 2610 ONQAGOTO2620,2670,2690,2710,2730 2620 IFRND(0)>0.05ORBA=4 THEN2740 2630 QY=250:QX=INT(350*RND(0)):QV=-19 2640 QH=INT((350-QX-300*RND(0))/20):POKE2045,33:POKEV+44,1+7*RND(0) 2650 SP(5)=A+256*QX+QY 2660 POKEV+21,PEEK(V+21)+32:QA=2:GOTO2740 2670 QX=QX+QH:QY=QY+QV:QV=QV+1 2680 SP(5)=A+256*QX+QY:IFQV=3THENQA=3:SP(10)=NO:QN=2:POKE2045,37:GOTO2740 2690 QN=QN-1:IF QN=0THEN QN=3:QA=4:POKE2045,38 2700 GOTO2740 2710 QN=QN-1:IFQN<>0THEN GOTO2740 2715 QN=5:QA=5:POKE2045,39:GOTO2740 2720 SP(5)=SP(5)-11*257:GOTO2740 2730 QN=QN-1:IFQN<>0THEN 2740 2732 QA=1:POKEV+21,PEEK(V+21)-32 2735 POKEV+23,PEEK(V+23)AND223:POKEV+29,PEEK(V+29)AND223 2740 REM BALLOON 2810 ONBAGOTO2820,2850,2870,2882 2820 IF RND(0)>0.02THEN 3000 2830 SP(6)=A+350*256+80:BP=350 :BA=2:POKE2046,42 :POKEV+23,PEEK(V+23)+64 2835 POKE V+29,PEEK(V+29)+64 2840 POKEV+45,1+7*RND(0):POKEV+21,PEEK(V+21)+64:GOTO3000 2850 BP=BP-1:SP(6)=SP(6)-256 2860 IFBP=0THENPOKEV+21,PEEK(V+21)-64:BA=1 2865 IF BP=0THENPOKEV+23,PEEK(V+23)-64:POKEV+29,PEEK(V+29)-64 2867 GOTO3000 2870 BN=BN-1:IFBN<>0THEN3000 2880 BA=4:POKE2046,41:POKEV+45,1:BP=80:POKEV+21,PEEK(V+21)+64:GOTO3000 2882 S1=0:S2=0:IFT196)OR(BA<>2)OR(QA<>2)THEN 3500 3010 REM ROCKET/BALLOON COLLISION 3015 P1=0:P2=0:T1=TQ+5:T2=T1 3020 QA=3:QN=2:POKE2045,39:SP(10)=NO:BN=8:BA=3:POKEV+21,PEEK(V+21)-64 3030 SP(6)=SP(6)+1028:POKE V+23,PEEK(V+23)-64:POKEV+29,PEEK(V+29)-64:GOTO2000 3500 TQ=TQ+1:POKE V+21,PEEK(V+21)OR128:IFTQ<500 OR BA<>1THEN 2000 3505 FORJ=1TO1000:NEXTJ 3510 FORJ=0TO10:SP(J)=0:POKEVV+24,0 3515 POKEV+21,0 3520 PRINT"[147] FINALLY, TWO PIECES " 3525 PRINT 3530 PRINT" BY WOLFGANG AMADEUS 3540 [153]" M O Z A R T 3550 PRINT:PRINT" FIRST, ANDANTE" 3560 GOSUB 5040:GOSUB100 3570 PRINT:PRINT" NEXT, AN ALLEGRO " 3580 GOSUB 5040:GOSUB100 3590 RESTORE: 3600 PRINT:PRINT "THE WHOLE PROGRAM WILL NOW BE REPEATED" 3700 FORJ=832TO1000:READA:NEXTJ 3710 POKEVV+4,0:POKEVV+11,0:POKEVV+18,0:POKEVV+24,0 3720 GOTO10290 4000 C$(1)=" [144] [146] BLACK" 4010 C$(2)="  [146] WHITE" 4030 C$(3)="  [146] RED" 4040 C$(4)=" [159] [146] CYAN" 4050 C$(5)=" [156] [146] PURPLE" 4060 C$(6)="  [146] GREEN" 4070 C$(7)="  [146] BLUE" 4080 C$(8)=" [158] [146] YELLOW" 4090 C$(9)=" [129] [146] ORANGE" 4100 C$(10)=" [149] [146] BROWN" 4110 C$(11)=" [150] [146] LIGHT RED" 4120 C$(12)=" [151] [146] DARK GRAY" 4130 C$(13)=" [152] [146] MEDIUM GRAY" 4140 C$(14)=" [153] [146] LIGHT GREEN" 4150 C$(15)=" [154] [146] LIGHT BLUE" 4160 C$(16)=" [155] [146] LIGHT GRAY" 4170 POKE 53280,1:POKE53281,6:POKE208*256+21,0 4180 PRINT"[147] HELLO. WELCOME TO THE CBM COMMODORE 64[146]" 4190 PRINT 4200 PRINT" HERE ARE SOME BARS OF COLOUR TO HELP 4210 [153]" ADJUST YOUR SET" 4220 [153] 4230 [137]10300 5000 [143] SET UP NOTES IN N 5010 A[178]2[174]31[170]33[172]2[174]16:Q[178]720:P[178]2[174](1[173]12) 5020 [129]JJ[178]1[164]60: N(JJ)[178]A[170]Q:Q[178]Q[172]P:[130]JJ 5030 [143] ENTER HERE IF N ALREADY SET UP 5040 VV[178]212[172]256:N(5)[178]A 5050 [135] NV,NS,AT,D,S,DV 5060 [129]JJ[178]1[164]NV:PP(JJ)[178]0:[130]JJ 5065 [129]KK[178]1[164]NS 5070 [135]DN 5075 [139]DN[177]1 [167][129]JJ[178]1[164]NV:PQ(JJ)[178]PP(JJ):[130]JJ 5078 [129]JJ[178]1[164]NV 5080 [135]A$:[135]B$ 5090 [129]TT[178]1[164][195](A$) 5100 V%(PP(JJ),JJ)[178][198]([202](A$,TT,1))[171]35 5110 W%(PP(JJ),JJ)[178][198]([202](B$,TT,1))[171]48:PP(JJ)[178]PP(JJ)[170]1 5120 [130]TT,JJ 5121 [139] DN[178]1[167] 5129 :[143] COPY REPEATED BAR 5122 [129]JJ[178]1[164]NV 5123 PR[178]PP(JJ) 5124 V%(PP(JJ),JJ)[178]V%(PQ(JJ),JJ):W%(PP(JJ),JJ)[178]W%(PQ(JJ),JJ) 5125 PQ(JJ)[178]PQ(JJ)[170]1:PP(JJ)[178]PP(JJ)[170]1 5126 [139] PQ(JJ)[179]PR [167] 5124 5127 [130] JJ 5129 [130]KK 5130 KK[178]PP(1)[171]1 5140 [129]JJ[178]0[164]NV[171]1 5150 [151]VV[170]7[172]JJ[170]5,16[172]AT[170]D 5160 [151] VV[170]7[172]JJ[170]6,16[172]S 5170 [130]JJ 5180 [151]VV[170]24,15 5190 [142] 6100 [143] MACHINE CODE ROUTINE TO SERVICE SPRITES AND SOUND GENERATORS 6110 [143] IT UPDATES THEIR POSITION EVERY INTERRUPT 6120 [131]165,47,133,251,165,48,133,252,160,0,177,251,201,83,208,8,200,177,251 6130 [131]201,80,240,38,136,200,200,177,251,133,253,200,177,251,133,254,24,165,251 6140 [131]101,253,133,251,165,252,101,254,133,252,197,50,208,212,165,251 6150 [131]197,49,208,206,76,49,234 6160 [131]152,24,105,6,168,162,0,200,200,24,177,251,41,1,240,1,56,102,255,200 6170 [131]177,251 ,157,0,208,200,177,251,157,1,208,232,232,200,224,16,208,225 6180 [131]165,255,141, 16,208 6182 [131]162,0,200,200,177,251,240,29,169,0,157,4,212,177,251,157,4,212,169,0 6184 [131]145,251,200,177,251,157,1,212,200,177,251,157,0,212,76,208,3 6186 [131]200,200,200,138,24,105,7,170,224,21,208,209,76,49,234 6190 [143] INSERT WEDGE (CODE AT 988) 6200 [131]120,169,64,141,20,3,169,3,141,21,3,88,96 6205 [143] SPRITE DATA- BRIGHT DOT 6210 [131]0,0,0,0,0,0,0,0,0 6215 [131]0,0,0,0,0,0,0,0,0 6220 [131]0,0,0,0,0,0,0,24,0 6225 [131]0,60,0,0,60,0,0,24,0 6230 [131]0,0,0,0,0,0,0,0,0 6235 [131]0,0,0,0,0,0,0,0,0 6240 [131]0,0,0,0,0,0,0,0,0 6300 [143] GOLDEN RAIN(1) 6310 [131]0,32,0,8,132,136,18,0,2 6315 [131]32,162,164,9,16,146,48,105,40 6320 [131]64,146,2,0,170,160,148,100,0 6325 [131]0,90,2,72,36,144,0,124,8 6330 [131]66,124,32,0,124,0,144,124,4 6335 [131]66,124,136,0,124,0,32,124,36 6340 [131]0,124,0,77,125,18,0,124,0 6350 [143] GOLDEN RAIN(2) 6360 [131]0,64,0,17,2,68,36,0,1 6365 [131]65,33,82,16,0,0,33,105,8 6370 [131]16,146,32,1,18,2,4,36,160 6375 [131]144,72,0,0,36,2,72,124,144 6380 [131]0,124,8,66,124,33,0,124,0 6385 [131]144,124,4,66,124,136,32,124,0 6390 [131]0,124,4,5,124,0,72,125,18 6400 [143] GOLDEN RAIN(3) 6410 [131]0,128,0,34,1,34,72,64,4 6415 [131]130,16,161,16,128,4,2,36,128 6420 [131]16,146,8,32,8,32,2,164,2 6425 [131]4,72,160,144,36,0,0,124,2 6430 [131]72,124,144,0,124,8,66,124,33 6440 [131]0,124,0,144,124,4,66,124,136 6445 [131]32,124,0,0,124,4,5,124,0 6450 [143] EXPLOSION(1) 6455 [131]0,0,0,0,0,0,0,0,0 6460 [131]0,0,0,0,0,0,0,0,0 6465 [131]0,0,0,0,56,0,0,198,0 6470 [131]1,147,0,3,73,128,2,16,192 6475 [131]3,66,192,1,137,128,0,195,0 6480 [131]0,124,0,0,0,0,0,0,0 6485 [131]0,0,0,0,0,0,0,0,0 6500 [143] EXPLOSION(2) 6505 [131]0,0,0,0,0,0,0,0,0 6510 [131]0,0,0,0,16,0,0,16,128 6515 [131]8,57,0,4,198,0,3,33,128 6520 [131]6,0,192,12,72,224,12,4,120 6525 [131]62,0,96,6,16,192,3,36,192 6530 [131]5,129,160,8,254,16,0,48,0 6535 [131]0,32,0,0,32,0,0,0,0 6550 [143] EXPLOSION(3) 6555 [131]0,16,0,0,16,0,0,16,16 6560 [131]73,16,32,32,17,64,18,20,128 6565 [131]8,17,64,68,2,16,2,84,0 6570 [131]17,9,8,32,0,32,0,72,127 6575 [131]254,0,0,0,2,4,18,32,72 6580 [131]4,36,32,8,160,144,18,32,8 6585 [131]32,33,4,64,32,2,0,32,0 6600 [143] MOON 6605 [131]252,0,0,63,240,0,15,252,0 6610 [131]7,255,128,3,255,240,1,255,248 6615 [131]0,255,252,0,127,254,0,63,254 6620 [131]0,63,255,0,63,255,0,63,255 6625 [131]0,63,255,0,127,254,0,127,254 6630 [131]0,255,252,1,255,248,3,255,224 6635 [131]7,255,128,31,248,0,254,0,0 6650 [143] PARACHUTE 6655 [131]0,254,0,15,255,224,62,251,248 6660 [131]126,250,252,254,26,254,254,216,126 6665 [131]126,30,252,127,255,252,32,0,8 6670 [131]16,0,16,8,0,32,4,0,64 6675 [131]2,0,128,1,1,0,0,130,0 6680 [131]0,84,0,0,124,0,0,56,0 6685 [131]0,40,0,0,108,0,0,0,0 6700 [143] COMMODORE BALLOON 6705 [131]0,127,0,1,255,192,3,255,224 6710 [131]3,231,224,7,217,240,7,223,240 6715 [131]7,217,240,3,231,224,3,255,224 6720 [131]3,255,224,2,255,160,1,127,64 6725 [131]1,62,64,0,156,128,0,156,128 6730 [131]0,73,0,0,73,0,0,62,0 6735 [131]0,62,0,0,62,0,0,28,0 7500 [143] GAVOTTE BY G.F.HANDEL 7502 [131]3,2,0,10,0,15 7505 [131]1 7510 [131]"(ONOQOJSQSTSQOVTSQOQONOQOJSQSTSQOVTSQOQ" 7520 [131]"811112211112222222241111221111222222224" 7530 [131]"((JJLOLNOLIJ(JJLOLNOLIJ" 7540 [131]"88442211222484422112224" 7550 [131]"(7;>CBCECB@GEC<@><;97;>CBCECB@GEC<@>" 7560 [131]"842211112222222211114221111222222224" 7565 [131]2 7570 [131]"JHGLHGEJGECHGECBCBCEC>HGHJGEGHEJCBCEGEC" 7580 [131]"211421142112222411112211111111221111224" 7590 [131]"CGECE(ECBC(CC@>(((CCBCECB;" 7600 [131]"42112221122222288621111224" 7610 [131]";7496427;479;><;9;79BC7><;@<>27" 7620 [131]"4224211222222222222222211222224" 8000 [143] MARINES MARCH 8010 [131]2,2,0,12,0,1 8015 [131]1 8020 [131]"(AEHHHHHMHEFHHFCAAEHHHHHMHEFHHFCAML" 8030 [131]"81122223121122226112222312112222611" 8040 [131]"(5599(9(9(9(9999(44(4(4(459999(99(9(9(9(9999(44(4(4(459999(" 8050 [131]"81111111111111122111111111111221111111111112211111111111122" 8055 [131]1 8060 [131]"JFJFHJHMLJFJMHAEHHHHHMHEFHHFCA" 8070 [131]"222231211222261122223121122227" 8080 [131]"(:(5(:(5(9999((:(5(:(5(9999(99(9(9(9(9999(44(4(4(459999" 8090 [131]"1111111111112211111111111122111111111111221111111111113" 8500 [143] ANDANTE 8510 [131]2,2,3,11,0,17 8515 [131]2 8520 [131]"(MOMOQMHHHOQOQROHHHTLMOLMVSOMLTQVTSST(" 8530 [131]"44111122224111122224111141111111122422" 8540 [131]"(EHEAEHEHEAHMLMOLHLOLOLHE(HJGHMOOOH(" 8550 [131]"444111111114111111111111224442222422" 8595 [131]2 8600 [131]"TQRTVROQRTRQOQMRQO(RQOMLTRQOMJVROMLLM(" 8610 [131]"41111411111111224224111141111111122422" 8620 [131]"(QNJ(OLHMLJOMAEAH(OLH(EMJ(GH((A(" 8630 [131]"22222222222211112422222223122422" 8700 [143] ALLEGRO 8710 [131] 2,2,1,9, 0,10 8715 [131]2 8720 [131]"(QTRQOM(MOOOOQM(MOOOOQMOQRTVXYVQST(TVXYVSTVSTVXYTXVTVXYVSTVST(" 8730 [131]"82222242222211422222112111111222242211111111111111111111111142" 8740 [131]"(MQOMHE(EHHHHE(EHHHHE(MLOLOMOMOLOLOMOMOL(" 8750 [131]"82222242222224222222448222222222222222242" 8795 [131]2 8800 [131]"HTQVTROTRQMRQOMT(QTRQOMOQRTVXYXMOQRTQOMXY(T(R(O(M(HMMMHQQQMTOQM(" 8810 [131]"2626262626444424222222111111118111111118222222224222222222243142" 8820 [131]"(AMJOMLHMLKJHFGH(MQOMHE(QROTRQ(QROTRQ(Q(O(H(E( 2048+14*64THEN 10290 10270 POKE 43,PEEK(A):POKE 44,PEEK(A+1):GOTO10250 10290 GOTO4000 10300 FOR J=1TO10:PRINTC$(J): Q0=2048+64*J:GOSUB11000:NEXTJ 10305 FORJ=11TO16:PRINT C$(J):FORK=1TO 200:NEXTK,J 10310 V=208*256 10312 PRINT" NOW TURN UP THE VOLUME ... AND WAIT" 10315 GOSUB 5000:GOSUB100 10318 FORK=1TO2000:NEXTK 10320 POKE53280,0:POKE 53281,0:PRINT"[147]" 10330 POKEVV+24,0 10340 PRINT "[147] [155] NIGHT FALLS ....AND HERE IS" 10350 PRINT" A SHORT DISPLAY OF FIREWORKS FOR YOU 10360 [129] J[178]1[164] 30:[151] 1134[170]460[172][187](0),46:[129]K[178]1[164]100:[130]K,J 10400 [143]SET UP MAIN LOOP 10405 SP(8)[178]2[174]31[170]2[174]16:SP(9)[178]2[174]31[170]2[174]16 10410 A[178]2[174]31:VV[178]212[172]256:[151]VV[170]19,12:[151]VV[170]20,0 10420 SP(0)[178]A[170]50[172]256[170]200:SP(1)[178]A[170]280[172]256[170]180 10430 SP(7)[178]A[170]250[172]256[170]80:[151]V[170]46,7:[151] 2047,40:[151]V[170]21,128 10440 NO[178]2[174]31[170]129[172]2[174]16[170]5000:[151]VV[170]24,15 10450 CW[178]1:GR[178]1:QA[178]1:BA[178]1:[141]5040:TQ[178]0 10460 [151] 2042,33:[151]2043,33: 10470 [151] V[170]23, 3:[151] V[170]29, 3 10480 [137] 2000 11000 [143] SET UP A SPRIOITE IN LOCATION Q0 11010 [129]JJ[178]0[164]62 11020 [135] KK 11030 [151]Q0[170]JJ,KK 11040 [130]JJ 11050 [142]