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