5 POKE52,55:POKE56,55:CLR:GOTO9000 10 GETA$:IFA$=""THEN10 15 IFA$<"[133]"ORA$>"[140]"THEN10 20 A=ASC(A$)-132:RETURN 30 HI=INT(Z/256):LO=Z-256*HI:RETURN 40 PRINT"[208]RESS ANY FUNCTION KEY TO CONTINUE":RETURN 50 PRINT"[201]NVALID [201]NPUT":GOSUB100:RETURN 60 POKE53280,Z:PRINT"[147]";:RETURN 70 GETA$:IFASC(A$+CHR$(0))<>13THEN70 75 RETURN 80 GETA$:IFA$<>"Y"ANDA$<>"N"THEN80 85 PRINTA$:RETURN 90 B=ASC(A$+CHR$(0)):RETURN 100 REM BUZZER FROM "MLX" BY CHARLES BRANNON 110 POKEVL,15:POKESD+5,45:POKESD+6,165 120 POKESD+4,33:POKESD+1,6:POKESD,5 130 FORT=1TO200:NEXT:POKESD+4,32:POKESD+1,0:POKESD,0:RETURN 150 PRINT"[147] [212][146]APE OR":PRINT" [196][146]ISK?":INPUT"";A$ 160 GOSUB90:IFB<>196ANDB<>212THEN150 170 DV=1-7*(B=196):RETURN 200 REM BELL SOUND FROM "MLX" BY CHARLES BRANNON 210 POKEVL,15:POKESD+5,0:POKESD+6,247 220 POKESD+4,17:POKESD+1,40:POKESD,5 230 FORT=1TO100:NEXT:POKESD+4,16:RETURN 300 IFP2>=LMTHENP=LM-1:RETURN 305 IFP2<1THENP=1:RETURN 310 RETURN 400 PRINT"DELETE N LINES STARTING AT P"M$ 405 PRINT"INSERT N LINES STARTING AT P"M$ 410 PRINT"NEXT"M$:PRINT"PREVIOUS"M$ 420 PRINT"ONCE AGAIN"M$:PRINT"MENU"M$"":RETURN 500 IFN(1)<1OR(N(1)>MX)ORN(2)<1ORN(2)>MXTHENGOSUB50:RETURN 505 IFN(1)+N(2)>N+1THENN(1)=N-N(2)+1 510 FORK=TB-3+4*N(2)TOTB+4*(N-N(1)+1) 515 POKEK,PEEK(K+4*N(1)):NEXT:N=N-N(1):POKETB,N 520 FORK=TB+1+4*NTOTB+4*(N+N(2)):POKEK,255:NEXT:RETURN 600 IFN(1)<1OR(N(1)>MX)ORN(2)<1ORN(2)>MXTHENGOSUB50:RETURN 605 IFN(1)+N>MXTHENGOSUB50:RETURN 610 FORK=TB+4*NTOTB+4*N(2)-3STEP-1 615 POKEK+4*N(1),PEEK(K):NEXT:N=N+N(1):POKETB,N 620 FORK=TB-3+4*N(2)TOTB+4*(N(1)+N(2)-1):POKEK,255:NEXT:RETURN 1000 Z=14:GOSUB60:PRINTTAB(15)"[205]AIN [205]ENU 1010 [153]"ASC1: VALXIT (null)ROGRAM 1030 PRINT"[198]3: [197]DIT [205]USIC [198]ILE 1040 [153]"ASC4: LENLEAR (null)USIC PEEKOX ASCILE 1050 PRINT"[198]5: [208]ERFORM [205]USIC 1060 [153]"ASC6: (null)AVE (null)USIC ASCILE TO STR$EVICE 1070 PRINT"[198]7: [210]EAD [196]IRECTORY ([196]ISK [207][206][204][217][146]) 1080 [153]"ASC8: (null)OAD/(null)ERIFY (null)USIC ASCILE 1090 GOSUB40:GOSUB10:ONAGOSUB1100,3000,5000,1700,1100,2400,2600,2800 1095 IFA>1THEN1000 1100 RETURN 1700 Z=0:GOSUB60:POKE251,36:POKE183,1:POKE186,8:POKE187,251:POKE188,0:SYS15078 1710 PRINT"[208]RESS [210][197][212][213][210][206][146]" 1720 GOSUB70:RETURN 2400 Z=14:GOSUB60:PRINT"[195]LEAR [205]USIC [194]OX [198]ILE (Y/N)? ";:GOSUB80 2405 IFA$="Y"THENPRINT"[193]RE YOU SURE? ";:GOSUB80 2410 IFA$="Y"THENSYS14598 2415 RETURN 2600 Z=1:GOSUB60:PRINTTAB(12)"[211][193][214][197] TO [196]EVICE 2605 [133]"ASCILENAME";F$:[139]F$[178]""[167][142] 2610 [141]150 2615 [139]DV[178]8[167]F$[178]"@0:"[170]F$ 2620 T$[178]F$:Z[178][194](53)[170]256[172][194](54)[171][195](T$):[141]30 2625 [151]SA,[195](T$):[151]SX,LO:[151]SY,HI:[158]65469 2630 [151]SA,1:[151]SX,DV:[151]SY,1:[158]65466 2635 [151]253,0:[151]254,60 2640 [133]"VALNDING";FIN 2645 Z[178][165]A(FIN[170]1):[141]30:[151]16382,LO:[151]16383,HI 2650 [151]SA,253:[151]SX,LO:[151]SY,HI:[158]14561 2655 [139]([194](SP)[175]1)[176](ST [175]191)[167]2670 2660 [141]200:[153]:[153]"STR$ONE. (null)RESS (null)VAL(null)(null)(null)(null)WAIT":[141]70:[142] 2670 [141]100:[153]"VALRROR ON (null)ATN(null)VAL. (null)RY AGAIN.":[139]DV[178]1[167]2605 2675 [159]15,8,15:[132]15,B,B$:[153]B;B$:[160]15:[137]2605 2800 Z[178]1:[141]60:[153][163]13)"(null)(null)ATNSTR$/(null)VAL(null)RIGHT$ASC(null) 2805 INPUT"[198]ILENAME";F$:IFF$=""THENRETURN 2810 GOSUB150 2820 T$=F$:Z=PEEK(53)+256*PEEK(54)-LEN(T$):GOSUB30 2825 POKESA,LEN(T$):POKESX,LO:POKESY,HI:SYS65469 2830 POKESA,1:POKESX,DV:POKESY,1:SYS65466 2835 PRINT"[147] [204][146][207][193][196] OR":PRINT" [214][146][197][210][201][198][217]?":INPUT"";A$ 2840 B=ASC(A$+CHR$(0)):IFB<>204ANDB<>214THEN2835 2845 FORI=0TO5:POKE679+I,PEEK(45+I):NEXT 2850 B=ABS(B=214):POKESA,B:SYS14570 2855 POKE45,PEEK(679):POKE46,PEEK(680):POKE47,PEEK(681) 2860 POKE48,PEEK(682):POKE49,PEEK(683):POKE50,PEEK(684) 2865 IF(PEEK(SP)AND1)OR(ST AND191)THEN2900 2870 BEG=1:POKE820,3:POKE821,64 2875 POKE822,PEEK(MB-2):POKE823,PEEK(MB-1):FIN=FNP(PEEK(822)+256*PEEK(823))-1 2880 Z=PEEK(822)+256*PEEK(823)-3:GOSUB30:POKE822,LO:POKE823,HI:POKE2,PEEK(2)OR6 2885 IFPEEK(15872)=0THENPOKE2,PEEK(2)AND223:GOTO2895 2890 POKE2,PEEK(2)OR32 2895 IFPEEK(15360)=0THENPOKE2,PEEK(2)AND191:GOTO2660 2897 POKE2,PEEK(2)OR64:GOTO2660 2900 GOSUB100:PRINT"[197]RROR ON [204][207][193][196]/[214][197][210][201][198][217]. [212]RY AGAIN.":IFDV=1THEN2805 2905 OPEN15,8,15:INPUT#15,B,B$:PRINTB;B$:CLOSE15:GOTO2805 3000 Z=14:GOSUB60:PRINTTAB(11)"[205]USIC [194]OX [197]DITOR 3010 [153]"ASC1: PEEKACK TO (null)AIN (null)ENU 3020 PRINT"[198]2: [211]ET/[210]EMOVE [198]ENCE 3030 [153]"ASC3: STR$ISPLAY AND VALDIT (null)NE (null)OICE 3040 PRINT"[198]4: [211]ET [202]UMPS 3050 [153]"ASC5: STR$ISPLAY AND VALDIT (null)HREE (null)OICES 3060 PRINT"[198]6: [211]ET [207]RCHESTRATION 3070 [153]"ASC7: STR$UPLICATE (null)ASSAGE 3090 GOSUB40:GOSUB10:ONAGOSUB3100,3300,3500,3700,4200,4400,4600,3100 3095 IFA>1THEN3000 3097 A=3 3100 RETURN 3300 Z=7:GOSUB60 3305 INPUT"VOICE #, PULSE #";V,P 3310 IFV<1ORV>3ORP<1ORP>LMTHENGOSUB50:GOTO3305 3315 P1=P 3320 Z=7:GOSUB60:PRINT"[214]OICE #"V:PRINT"[208]ULSE #"TAB(10)"[206]OTE"TAB(20)"[204]ENGTH 3325 [129]I[178]1[164]10:Z[178][165]A(P):[141]30:[151]SA,LO:[151]SX,HI:[151]SY,V[171]1:[158]14180 3330 P[178][165]P([194](251)[170]256[172][194](252)):P2[178][165]P([194](253)[170]256[172][194](254)):[141]300 3332 [139]P[178]LM[170]1[176]([194](SY)[178]128)[167][153]",,":P[178]P2:[137]3340 3335 I$[178]BL$[170][196](P2):[153][201](I$,7)CM$; 3337 [153][163]10)[194](SY)CM$[163]20)[194](SA)[170]256[172][194](SX) 3340 [130] 3345 M$[178]",,":[153]"";:[141]410 3360 [133]"ON CMD";I$,N,L:I[178][198](I$):[139]I[179]48[167]3375 3365 [139]I[179]58[167]I[178][197](I$):[137]3390 3367 [139]I[179]77[167]3375 3370 I[178]I[171]76:[145]I[137]3380,3315,3382,3385 3375 [141]50:[137]3360 3380 [142] 3382 P[178]P1:[137]3320 3385 P[178]P1:Z[178][165]A(P1):[141]30:[151]251,LO:[151]252,HI:[151]SY,V[171]1:[158]14246 3387 P[178][165]P([194](251)[170]256[172][194](252)):[139]P[179]1[167]P[178]1 3388 [137]3315 3390 [129]K[178]0[164]L[171]1:[151]([165]A(I[170]K)[170]V[171]1),255:[130] 3395 [151][165]A(I)[170]V[171]1,N 3400 Z[178][165]A(I[170]L):[141]30:[151]SA,LO:[151]SX,HI:[151]SY,V[171]1:[158]14141 3405 [139][194](SY)[178]255[167][151]([165]A(I[170]L)[170]V[171]1),0 3410 I$[178]BL$[170][196](I[170]L):[153][201](I$,7)CM$"ON":[137]3360 3500 Z[178]6:[141]60 3505 [133]"PULSE #";P 3510 [139]P[179]1[176]P[177]LM[167][141]50:[137]3505 3515 P1[178]P 3520 Z[178]6:[141]60:[153]"(null)ULSE #"[163]10)"(null)OICE #1"[163]20)"(null)OICE #2"; 3522 [153][163]30)"(null)OICE #3 3525 FORI=1TO10:Z=FNA(P):GOSUB30:POKESA,LO:POKESX,HI:SYS15215 3530 B=PEEK(SA)+256*PEEK(SX):P=FNP(B):P2=P-1:GOSUB300 3532 IFP=LM+1ORPEEK(679)=128THENPRINT",,,":P=P2:GOTO3540 3535 I$=BL$+STR$(P2):PRINTRIGHT$(I$,7); 3537 PRINTCM$TAB(10)PEEK(679)CM$TAB(20)PEEK(680)CM$TAB(30)PEEK(681) 3540 NEXT 3545 M$=",,,":PRINT"";:GOSUB410 3560 INPUT"[145] [157]";I$,N(0),N(1),N(2):I=ASC(I$):IFI<48THEN3575 3565 IFI<58THENI=VAL(I$):GOTO3590 3567 IFI<77THEN3575 3570 I=I-76:ONIGOTO3580,3515,3582,3585 3575 GOSUB50:GOTO3560 3580 RETURN 3582 P=P1:GOTO3520 3585 P=P1:Z=FNA(P1):GOSUB30:POKESA,LO:POKESX,HI:SYS15277 3587 P=FNP(PEEK(251)+256*PEEK(252)):IFP<1THENP=1 3588 GOTO3515 3590 FORK=0TO2:IFN(K)<0ORN(K)>255THENGOSUB50:K=2:GOTO3595 3592 POKE(FNA(I)+K),N(K) 3595 NEXT:GOTO3560 3700 Z=5:GOSUB60:PRINT"[196]UPLICATE PASSAGE WITH TRANSPOSE? ";:GOSUB80 3705 IFA$="N"THENNT=0:GOTO3720 3710 PRINT"[206]UMBER OF OCTAVES":INPUT"(-2 TO 2 INCLUSIVE)";N:N=INT(N):NT=12*N 3715 IFN<-2ORN>2THENGOSUB50:GOTO3710 3720 PRINT"[208]ASSAGE TO BE DUPLICATED:":INPUT"[214]OICE, [211]TART, [204]ENGTH";V,P,L 3725 IFV<1ORV>3ORP<1ORP+L>LMTHENGOSUB50:GOTO3720 3730 PRINT"[196]ESTINATION:":INPUT"[214]OICE, [211]TART";V1,P1 3735 IFV1<1ORV1>3ORP1<1THENGOSUB50:GOTO3730 3740 INPUT"[206]UMBER OF TIMES";N:IFN<1ORN>255THENGOSUB50:GOTO3740 3745 IFP1+N*L>LMTHENGOSUB50:GOTO3730 3750 Z=FNA(P)+V-1:GOSUB30:POKE680,LO:POKE681,HI 3755 Z=FNA(P1)+V1-1:GOSUB30:POKE253,LO:POKE254,HI 3760 Z=L:GOSUB30:POKE682,LO:POKE683,HI:POKESX,N:POKE679,(NT)AND255 3765 SYS14273:RETURN 4200 Z=13:GOSUB60:PRINT" [211][146]ET [198]ENCE 4205 [153]" (null)WAITEMOVE ASCENCE" 4210 [133]"";A$ 4215 [141]90:B[178]B[171]209:[139]B[179]1[176]B[177]2[167]4200 4220 [133]"ATNT";I:[139]I[179]1[176]I[177]12287[167]4200 4225 [145]B[137]4230,4235 4230 I[178][165]A(I):[129]J[178]0[164]2:[151]I[170]J,0:[130]:[142] 4235 I[178][165]A(I):[129]J[178]0[164]2:[151]I[170]J,128:[130]:[142] 4400 Z[178]2:[141]60:TB[178]15872:MX[178]114:N[178][194](TB):[153]N"JUMP(S) PRESENT 4405 INPUT"[211]TART AT JUMP #";P:IFP<1OR(P>NANDN<>.)THENGOSUB50:GOTO4405 4410 Z=2:GOSUB60:PRINT"[202]UMP #"TAB(10)"[198]ROM"TAB(25)"[212]O" 4415 FORI=PTOP+9:FORJ=0TO3:N(J)=PEEK(TB-3+4*I+J):NEXT:IFI>MXTHEN4430 4420 PRINT" "I;:IFI>NORN(1)=255THENPRINT",,":GOTO4430 4425 PRINTCM$TAB(10)FNP(N(0)+256*N(1))CM$TAB(25)FNP(N(2)+256*N(3)) 4430 NEXT 4435 M$=",,":GOSUB400 4465 INPUT"[145] [157]";I$,N(1),N(2):I=ASC(I$):IFI<48THENGOSUB50:GOTO4465 4470 IFI<58THENI=VAL(I$):GOTO4505 4475 I=I-76-13*(I=68)-9*(I=73):IFI<1THENGOTO4465 4477 ONIGOTO4485,4490,4495,4500,4520,4540 4480 GOSUB50:GOTO4465 4485 RETURN 4490 P=P+10:IFP>113THEN4500 4495 GOTO4410 4500 P=P-10:IFP<1THENP=1 4502 GOTO4410 4505 IFI<1ORI>113ORN(1)<1ORN(1)>LM ORN(2)<1ORN(2)>LMTHENGOSUB50:GOTO4465 4510 Z=FNA(N(1)):GOSUB30:POKETB+4*I-3,LO:POKETB+4*I-2,HI 4515 Z=FNA(N(2)):GOSUB30:POKETB+4*I-1,LO:POKETB+4*I,HI:IFI>NTHENN=I:POKETB,N 4517 GOTO4465 4520 GOSUB500:GOTO4410 4540 GOSUB600:GOTO4410 4600 Z=4:GOSUB60:TB=15360:N=PEEK(TB):PRINTN"INSTRUMENT CHANGE(S) PRESENT 4602 MX[178]127 4605 [133]"(null)TART AT CHANGE #";P:[139]P[179]1[176](P[177]N[175]N[179][177].)[167][141]50:[137]4605 4610 Z[178]4:[141]60:[153]"LENHANGE #"[163]10)"ATNT PULSE"[163]20)"(null)OICE #"; 4612 [153][163]29)"RIGHT$NSTRUMENT 4615 FORI=PTOP+9:FORJ=0TO3:N(J)=PEEK(TB-3+4*I+J):NEXT:IFI>255THEN4630 4620 PRINT" "I;:IFI>NORN(1)=255THENPRINT",,,":GOTO4630 4625 PRINTCM$TAB(10)FNP(N(0)+256*N(1))CM$TAB(20)N(2)CM$TAB(29)N(3) 4630 NEXT 4635 M$=",,,":GOSUB400 4665 INPUT"[145] [157]";I$,N(1),N(2),N(3):I=ASC(I$):IFI<48THENGOSUB50:GOTO4665 4670 IFI<58THENI=VAL(I$):GOTO4705 4675 I=I-76-13*(I=68)-9*(I=73):IFI<1THENGOTO4665 4677 ONIGOTO4685,4690,4695,4700,4720,4740 4680 GOSUB50:GOTO4665 4685 RETURN 4690 P=P+10:IFP>255THEN4700 4695 GOTO4610 4700 P=P-10:IFP<1THENP=1 4702 GOTO4610 4705 IFI<1ORI>255ORN(1)<1ORN(1)>LMORN(2)<1ORN(2)>255THENGOSUB50:GOTO4665 4707 IFN(3)<1ORN(3)>255THENGOSUB50:GOTO4665 4710 Z=FNA(N(1)):GOSUB30:POKETB+4*I-3,LO:POKETB+4*I-2,HI 4715 POKETB+4*I-1,N(2):POKETB+4*I,N(3):IFI>NTHENN=I:POKETB,N 4717 GOTO4665 4720 GOSUB500:GOTO4610 4740 GOSUB600:GOTO4610 4750 FORK=TB+4*(N(2)+N(1)-1)TOTB+4*N(2)-4STEP-1 5000 Z=14:GOSUB60:PRINTTAB(12)"[208]ERFORMANCE [205]ENU 5010 [153]"ASC1: PEEKACK TO (null)AIN (null)ENU 5020 PRINT"[198]2: [211]ET [212]EMPERAMENT 5030 [153]"ASC3: (null)ET RIGHT$NSTRUMENTS 5040 PRINT"[198]4: [211]ET [212]RANSPOSE 5050 [153]"ASC5: (null)LAY 5070 PRINT"[198]7: [211]ET [212]EMPO 5090 [141]40:[141]10:[145]A[141]5100,5300,5500,5700,6200,6400,5100,5100 5095 [139]A[177]1[167]5000 5097 A[178]5 5100 [142] 5300 Z[178]10:[141]60:TB[178]16332:N[178][194](TB):[153]N"INSTRUMENT(S) PRESENT 5305 PRINT"[201]NST"TAB(5)"[198]ORM"TAB(10)"[193]TT"TAB(15)"[196]EC"TAB(20)"[211]US"; 5310 PRINTTAB(25)"[210]EL"TAB(30)"[215]IDTH" 5315 FORI=1TO9:FORJ=0TO4:N(J)=PEEK(TB-4+5*I+J):NEXT 5320 PRINT" "I;CM$TAB(5);:IFN(2)=255THENPRINT",,,,,":GOTO5330 5322 GOSUB5450:PRINTCM$TAB(10)INT(N(3)/16)CM$TAB(15)(N(3)AND15); 5325 PRINTCM$TAB(20)INT(N(4)/16)CM$TAB(25)(N(4)AND15); 5327 IFN(2)=64THENPRINTCM$TAB(30)N(0)+256*N(1):GOTO5330 5328 PRINTCM$ 5330 NEXT 5345 M$=",,,,,,":GOSUB420 5365 INPUT"[145] [157]";I$,A$,N(0),N(1),N(2),N(3),N(4):I=ASC(I$) 5367 IFI<48THENGOSUB50:GOTO5365 5370 IFI<58THENI=VAL(I$):GOTO5400 5375 I=I-76:IFI<1THENGOTO5365 5377 ONIGOTO5385,5300,5300,5300 5380 GOSUB50:GOTO5365 5385 RETURN 5400 IFI<1ORI>9THENGOSUB50:GOTO5365 5405 J=3-(A$="T")-2*(A$="S")-3*(A$="P")-4*(A$="N") 5410 IFJ=3THEN5440 5415 POKETB-2+5*I,2^J 5420 FORJ=0TO3:N(J)=N(J)AND15:NEXT:N(4)=N(4)AND4095 5425 POKETB-1+5*I,16*N(0)+N(1) 5430 POKETB+5*I,16*N(2)+N(3) 5435 Z=N(4):GOSUB30:POKETB-4+5*I,LO:POKETB-3+5*I,HI:GOTO5475 5440 FORJ=0TO4:POKETB-4+5*I+J,255:NEXT:GOTO5475 5450 J=INT(LOG(N(2)+.1)/LOG(2))-4:PRINTW$(J);:RETURN 5475 J=.:FORI=1TO9:IFPEEK(TB-2+5*I)<>255THENJ=J+1 5480 NEXT:POKETB,J:GOTO5365 5500 Z=3:GOSUB60 5502 IF(PEEK(2)AND1)=.THENGOSUB6200:GOTO5500 5504 IF(PEEK(2)AND2)=.THENPOKE2,(PEEK(2)OR2):GOTO5500 5506 IF(PEEK(2)AND16)=.THENGOSUB5700:GOTO5500 5510 PRINT" 1, [208]LAY, 5515 [153]" 2, PEEKEGINNING,"BEG 5520 [153]" 3, VALNDING,"FIN 5525 [153]" 4, (null)EMPO - (null)ULSES/TEMPO NOTE,"PN 5530 [153][163]14)"(null)EMPO NOTES/MINUTE,"NM 5532 [153][163]14)"(null)ULSE="[194](824)[170]256[172][194](825)"MILLISECONDS 5535 PRINT" 5, [202]UMPS,";:P=PEEK(2)AND32:GOSUB5590 5540 PRINT" 6, [207]RCHESTRATION,";:P=PEEK(2)AND64:GOSUB5590 5545 PRINT" 7, [212]RANSPOSE,";:P=PEEK(826):PRINTP+256*(P>24) 5550 PRINT" 8, ";:IF(FR-1/11)<1E-5THENPRINT"[197]QUAL TEMPERAMENT,":GOTO5557 5555 PRINTFR"[157]-COMMA [205]EANTONE TEMPERAMENT, 5557 [153]" 9, (null)ENU, 5558 INPUT"";A$,C$,B$:GOSUB90:IFB<49ORB>57THENPRINT"":GOTO5558 5560 ONB-48GOSUB5600,5570,5570,5700,5580,5580,6400,6200,5565 5562 IFB<>57THENGOTO5500 5565 RETURN 5570 I=VAL(B$):IFI<1ORI>LMTHENGOSUB50:RETURN 5572 Z=FNA(I):GOSUB30:IFB=50THENPOKE820,LO:POKE821,HI:BEG=I:RETURN 5575 POKE822,LO:POKE823,HI:FIN=I:RETURN 5580 K=2^(B-48):IF(PEEK(2)ANDK)=.THENPOKE2,(PEEK(2)ORK):RETURN 5585 POKE2,(PEEK(2)AND(255-K)):RETURN 5590 IFPTHENPRINT"[197]NABLED":RETURN 5595 PRINT"[196]ISABLED":RETURN 5600 PRINT"[208]LAYING":SYS14860:RETURN 5700 Z=13:GOSUB60:INPUT"[208]ULSES PER TEMPO NOTE";PN 5705 INPUT"[212]EMPO NOTES PER MINUTE";NM 5710 IFNM*PN<1ORNM>60000THENGOSUB50:GOTO5700 5715 Z=INT(60000/(NM*PN)+.5):GOSUB30:POKE824,LO:POKE825,HI 5720 POKE2,(PEEK(2)OR16):RETURN 6200 Z=13:GOSUB60:TB=14336 6205 PRINT"[197]QUAL TEMPERAMENT":PRINT"[205]EAN-TONE TEMPERAMENT" 6210 INPUTA$:GOSUB90:IFB<>197ANDB<>205THENGOSUB50:GOTO6200 6215 IFB=197THENFR=1/11:GOSUB6300:GOTO6260 6220 INPUT"[198]RACTION OF A COMMA (0.0-0.5)";FR 6225 IFFR<0ORFR>.5THENGOSUB50:GOTO6220 6230 GOSUB6300:F=1.5^(1-4*FR)*5^FR 6235 FORJ=1TO12:G=7217.9119*F^(J-7) 6240 FORK=-6TO6:N=7*J+12*K:IFN<1ORN>87THEN6250 6245 Z=INT(G*2^K):GOSUB30:POKETB+2*N,LO:POKETB+2*N+1,HI 6250 NEXTK,J:POKE2,(PEEK(2)OR1):GOTO6270 6260 FORN=1TO87:Z=INT(7217.9119*2^((N-49)/12)) 6265 GOSUB30:POKETB+2*N,LO:POKETB+2*N+1,HI:NEXT:POKE2,(PEEK(2)OR1) 6270 GOSUB200:RETURN 6300 PRINT"[211]ETTING TEMPERAMENT. [208]LEASE WAIT.":RETURN 6400 Z=13:GOSUB60 6405 INPUT"[206]UMBER OF SEMITONES (-24 TO 24)";N 6410 IFABS(N)>24THENGOSUB50:GOTO6405 6415 POKE826,N-256*(N<0):RETURN 9000 REM INITIALISE 9005 SD=54272:VL=SD+24:LM=12287:MB=16384:TH=3:SA=780:SX=781:SY=782:SP=783 9010 POKE2,0:POKE53280,14:POKE53281,15:POKE646,0:PRINTCHR$(14)CHR$(8) 9015 DEFFNA(P)=MB+TH*P 9020 DEFFNP(X)=INT((X-MB)/TH) 9025 BL$=" ":CM$=",":DIMN(4),W$(3) 9030 W$(0)="T":W$(1)="S":W$(2)="P":W$="N" 9035 IFPEEK(52)<>55THEN5 9040 GOSUB200:PRINT"[147]"TAB(16)"[205][193][197][211][212][210][207] 9050 [153]""[163]11)"ATN (null)USIC (null)ROCESSOR 9060 PRINT""TAB(11)"[194]Y [199]ARY [196]. [203]OHLER 9070 [153]" (null)RESS ANY KEY TO START ":[151]2,1 9075 [161]A$:[139]A$[178]""[167]9075 9080 [139][194](14592)[178]162[175][194](14860)[178]32[167]9200 9085 [141]150 9095 [151]251,77:[151]252,76 9100 [151]SA,2:[151]SX,251:[151]SY,.:[158]65469 9105 [151]SA,1:[151]SX,DV:[151]SY,1:[158]65466 9110 [129]I[178]0[164]5:[151]679[170]I,[194](45[170]I):[130] 9115 [153]"(null)OADING MACHINE LANGUAGE. (null)LEASE WAIT." 9120 [151]SA,.:[158]65493 9125 [151]45,[194](679):[151]46,[194](680):[151]47,[194](681) 9130 [151]48,[194](682):[151]49,[194](683):[151]50,[194](684):[137]9040 9200 [143] MAIN PROGRAMME 9210 [141]2400:[141]1000:Z[178]14:[141]60:[153]"VALXITING (null)ATNVAL(null)(null)(null)(null)":[128]