home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Go64!
/
Go64_2001-06_2001_CSW_Side_A.d64
/
mozart
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
6KB
|
216 lines
1000 a=1000:goto20:rem **mozart**
1010 rem ** eroeffnung und menue **
1020 dimt$(119),wa(12,7),wb(12,7),sv(160),sp(160),sd(160)
1030 dimw$(13)
1040 t=1:d=30:tz=0:w=0:vo=0:so=2:vt=ve:ht=ho
1050 nc=(asc("[193]")=65):rem not commodore-64
1060 restore
1070 forve=1 to5:gosub2930:gosub150:nextve
1080 w=0
1090 forve=9 to19 step2:gosub2930:printsr$;:nextve
1100 gosub120:he=ho:ve=9:gosub110:printd;
1110 ve=11:gosub110:printso;
1120 ve=22:gosub2930:gosub150
1130 forw=7 to13:readw$(w):nextw
1140 rem
1150 rem ** noten und takte lesen **
1160 rem
1170 fort=1 to119:readt$(t):nextt
1180 forz=2 to12:forwt=1 to7
1190 readwa(z,wt):readwb(z,wt)
1200 nextwt:nextz
1500 rem
1510 rem ** funktionsauswahl **
1520 rem
1530 x=7:gosub3130:if(in$<"1")or(in$>"6") then1530
1540 x=in-48:onx goto3530,3630,3730,3830,2030,950
2000 rem
2010 rem ** 24 takte mozart-walzer **
2020 rem
2030 gosub3030:x=8:gosub3230
2040 fori=1 to2
2050 forwa=1 to7
2060 gosub2530:t=wa(z,wa):gosub2710
2070 nextwa
2080 sd=d/2:sp=67:sv=12:gosub2630
2090 nexti
2100 forwb=1 to7
2110 gosub2530:t=wb(z,wb):gosub2710
2120 nextwb
2130 t$(0)="[205][193]5":t=0:gosub2710
2140 sv(tz+1)=-1:tz=0
2150 rem
2160 rem ** notenfeld vorspielen **
2170 rem
2180 x=9:gosub3230:sr$=w$(13):gosub3330
2190 fortz=1 to160
2200 sv=sv(tz):sp=sp(tz):sd=sd(tz)
2210 ifsv=12 then gosub400:goto2250
2220 gosub200
2230 if(in>0)or(sv<0) thentz=160:goto2250
2240 gosub400
2250 nexttz
2260 tz=0:ifsv=-1 then2030
2270 goto1530
2500 rem
2510 rem ** zufallszahl 2-12 **
2520 rem
2530 gosub260:z=int(rv*11)+2
2540 return
2600 rem
2610 rem ** notenfeld aufbauen **
2620 rem
2630 tz=tz+1:sd(tz)=sd:sv(tz)=sv:sp(tz)=sp+12-so*12
2640 return
2700 rem
2710 forl=1 tolen(t$(t))
2720 ha=asc(mid$(t$(t),l,1)):ifnc then2740
2730 ha=ha+32:ifha>128 thenha=ha-160
2740 sv=12:ifl=1 thensv=15
2750 ifha>91 thensd=d/16:sp=ha-32-5:gosub2630:goto2840
2760 ifmid$(t$(t),l+1,1)="*" then2810
2770 sp=ha-5:sd=d/8:gosub2630:goto2840
2780 rem
2790 rem ** triller **
2800 rem
2810 sd=d/32:sp=ha-5
2820 forh1=1 to8:sp=ha+ha-9-sp:gosub2630:nexth1
2830 l=l+1
2840 nextl
2850 return
2900 rem
2910 rem ** bildschirmsteuerung **
2920 rem
2930 readsr$:w=w+1:w$(w)=sr$
2940 ho=(ht-len(sr$))/2-3:gosub110
2950 return
3000 rem
3010 rem ** zeile loeschen **
3020 rem
3030 ve=vt-2:ho=ht-8:gosub110:sr$=w$(10):printright$(sr$,8);
3040 return
3100 rem
3110 rem ** textzeile **
3120 rem
3130 gosub3030:ve=22:gosub2940:printsr$;:sr$=w$(x)
3140 gosub2940:printsr$;:gosub210
3150 return
3200 rem
3210 rem ** zeile in inverse **
3220 rem
3230 ve=22:sr$=w$(10):gosub2940:printsr$;:sr$=w$(x)
3240 gosub2940:gosub150
3250 return
3300 rem
3310 rem ** zeile printen **
3320 rem
3330 ve=vt-2:ho=ht-8:gosub110:printsr$;
3340 return
3400 rem
3410 rem ** zahl loeschen **
3420 rem
3430 ve=x*2+7:ho=he:gosub110:printw$(10);:gosub110
3440 inputa$:gosub110:printw$(10):gosub110:print" ";a$;
3450 return
3500 rem
3510 rem ** tempo veraendern **
3520 rem
3530 gosub3430:d=int(val(a$)):if(d<6)or(d>99) then3530
3540 goto1530
3600 rem
3610 rem ** oktave veraendern **
3620 rem
3630 gosub3430:so=int(val(a$))
3640 if(so<0)or(so>5) then3630
3650 goto1530
3700 rem
3710 rem ** takteingabe **
3720 rem
3730 x=11:gosub3230:x=3
3740 gosub3430:t=int(val(a$))
3750 if(t<0)or(t>119) then3740
3760 if(t=0)or(tz>150) then3880
3770 gosub3030:sr$=t$(t):gosub3330:gosub2710:goto3740
3800 rem
3810 rem ** zufalls-melodie **
3820 rem
3830 x=12:gosub3230
3840 forzu=1 to24
3850 gosub260:t=int(rv*118)+1:gosub3030
3860 sr$=t$(t):gosub3330:gosub2710
3870 nextzu
3880 sv(tz+1)=-99:goto2190
25000 rem
25010 rem *** menuedaten ***
25020 rem
25030 data" ","[205] [207] [218] [193] [210] [212]","-----------"
25040 data" [203][214] 294d "," ","1 ... [212]empo (6-99) :"
25050 data"2 ... [207]ktave (0-5) :","3 ... [212]akt (0-119) :"
25060 data"4 ... [210]andom-[211]ound ","5 ... [205]ozart-[215]alzer "
25070 data"6 ... [208]rogrammende ","-ich lerne [206]oten-"
25080 data" [211]ie waehlen :","-ich komponiere-"
25090 data"-ich musiziere-"," "
25100 data"0 = vorspielen","[211]o ein [218]ufall !",">[212][193][211][212][197]<"
25110 rem
25120 rem *** noten der takte 1-119 ***
25130 rem
25140 data"[210][207][212]","[202]ghlt","[212][205][209]","[212][207]*","[200][205][209]","qmqtyt","[209][207][200]"
25150 data"ljlmol","qmljhg","[205][205][205]","[205][200][197]","[209]tq[205]","[214][211][207]"
25160 data"mhmqhm","qm[209][212]","[212]x[[207]","mqtojs","[209][205][200]","rqoqrt"
25170 data"cgjosv","[209][209][209]","rqroml","sojvso","loto[204]","qm[200][209]"
25180 data"qmol[200]","[202][207][211]","jqotsv","txto[204]","[205][200][209]","[212][200][200]"
25190 data"mlmqhm","mlmq[200]","lmoljh","[212]rqom","[202]rojl","mlmhea"
25200 data"[212]xtol","[212]to[216]","[209]mqty","[205]qm[200]","mhqmtq","onorhl"
25210 data"[209]qr[212]","[212][216][207]","ol[200][212]","[212][209][205]","[205]qm[212]","qmlhjg","ymlm[200]"
25220 data"qtytqm","oj[207][211]","[211][214][211]","[212]xtot","[211]vsos","tx[x[212]"
25230 data"rqomlo","yxytqm","[211][211][211]","tx[212][207]","[207][202][211]","ol[200][212]","[205][209][200]"
25240 data"[207]ot[216]","totxto","rq[207][212]","sv[vsv","[207]tx[207]","tstolh"
25250 data"[211][214][207]","qoqtyt","so[202][211]","mqmh[197]","[202]omlj","[209][212][217]"
25260 data"ororlo","ommllj","[210][207][204]","[207][207][207]","orvrol","ojosvs"
25270 data"qvtxsv","qmtqyt","[vsoj","[212]xt[207]","tstx[207]","tqol[200]"
25280 data"mhmqtq","[204][207][212]","vtst[207]","[209]ol[200]","[207]tolo","jqomlh"
25290 data"[211]so[214]","[211][211]*","txtx[207]","[202]jo[211]","oqroml","[212]ol[200]"
25300 data"orjolo","[207][211][214]","qyxtvs","ro[202][204]","[209][209]*","ojsovs"
25310 data"onosvs","txtolh","mhqm[212]","[204]oljh","qtomlj","[207][200][200]"
25320 data"[207][200][204]","oxto[204]","[205]mo[209]","qtotjs","lmoqro","rv[202]lo"
25330 data"qmlo[212]","vtxtot"
25340 rem
25350 rem *** zahlentafeln ***
25360 rem
25370 data18,55,18,85,98,21,33,7,55,18,86,18,9,76,5,81,5,31
25380 data89,88,50,46,101,5,38,5,93,80,47,53,47,96,109,12
25390 data11,91,105,47,45,47,77,100,32,67,14,119,78,6,63,26
25400 data79,32,2,32,110,43,58,20,58,99,69,51,37,87,61,58
25410 data69,58,28,1,71,95,71,56,22,104,114,24,106,71,54,71
25420 data82,19,35,13,35,107,116,18,44,118,70,35,92,35,17,66
25430 data83,84,42,65,79,40,41,113,97,42,64,42,115,57,30,52
25440 data30,60,34,15,108,62,59,30,90,30,49,103,3,72,3,4
25450 data112,25,48,111,94,3,39,3,102,117,10,27,10,16,8,75
25460 data73,68,23,10,29,10,74,36
30000 rem
30010 rem ***************************
30020 rem * *
30030 rem * dieses programm wurde *
30040 rem * fuer basicode - 3 auf *
30050 rem * einem kc85/4 entwickelt.*
30060 rem * den algorithmus entnah- *
30070 rem * men wir dem kv 294d von *
30080 rem * wolfgang-amadeus mozart,*
30090 rem * der uns die verstuemme- *
30100 rem * lung seines werkes ver- *
30110 rem * zeihen moege. *
30120 rem * in die vorliegende form *
30130 rem * brachten die noten: *
30140 rem * *
32000 rem * uwe und andreas zierott *
32010 rem * pappelallee 1 *
32020 rem * lehnin 1804 *
32030 rem * ddr *
32040 rem * *
32050 rem * 21.09.89 *
32060 rem * *
32070 rem ***************************
32080 rem
32090 rem erstausstrahlung: radio ddr
32100 rem 900110