home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
commodore-users-of-norman
/
CUON_09_(08-1984).d64
/
testcard
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
11KB
|
342 lines
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:IFT1<TQTHENS1=N(V%(P1,1)):T1=T1+DV*W%(P1,1):P1=P1+1
2884 IFT2<TQTHEN S2=N(V%(P2,2)):T2=T2+DV*W%(P2,2):P2=P2+1
2886 SP(8)=S1:SP(9)=S2
2890 BP=BP+1:IFBP=213THENPOKEV+21,PEEK(V+21)-64:BA=1
2900 SP(6)=SP(6)+1
3000 P=PEEK(V+30)AND96:IF(P<>96)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(<AAA<EEEAH<A("
8830 [131]426262626244444422222242222224222222222222224222222222224442"
10210 FORJ=832 TO 1000
10220 READA:POKEJ,A:NEXTJ
10230 SYS(988)
10240 REM MAKE SPACE FOR SPRITES
10250 A=PEEK(43)+256*PEEK(44)
10260 IF A> 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]