start tok64 d64-Zlpb9f 3 ad=12:sr=12:w=33:hp=0:lp=0:POKE54296,15 4 GOSUB1000:GOSUB3000 10 GETk$:IFk$=""THEN10 11 GOSUB100 12 IFk$=""THEN10 13 POKE54276,0 14 POKE54277,ad 15 POKE54278,sr 16 POKE54275,hp:POKE54274,lp 17 POKE54276,w 18 POKE54273,a:POKE54272,b 20 GETk$:IFk$=""THEN20 21 GOSUB100 22 IFk$=""THEN20 23 POKE54283,0 24 POKE54284,ad 25 POKE54285,sr 26 POKE54282,hp:POKE54281,lp 27 POKE54283,w 28 POKE54280,a:POKE54279,b 30 GETk$:IFk$=""THEN30 31 GOSUB100 32 IFk$=""THEN20 33 POKE54290,0 34 POKE54291,ad 35 POKE54292,sr 36 POKE54289,hp:POKE54288,lp 37 POKE54290,w 38 POKE54287,a:POKE54286,b 39 GOTO10 100 IFo=2THEN200 101 IFo=3THEN300 102 IFo=4THEN400 103 IFk$="{home}"THENPOKE54276,0:POKE54283,0:POKE54290,0:k$="":RETURN 105 IFk$="2"THENo=2:k$="":RETURN 106 IFk$="3"THENo=3:k$="":RETURN 107 IFk$="4"THENo=4:k$="":RETURN 112 IFk$="z"THENa=28:b=214:RETURN 113 IFk$="x"THENa=32:b=94 :RETURN 114 IFk$="c"THENa=34:b=75 :RETURN 115 IFk$="v"THENa=38:b=126:RETURN 125 IFk$="b"THENa=43:b=52 :RETURN 130 IFk$="n"THENa=45:b=198:RETURN 135 IFk$="m"THENa=51:b=97 :RETURN 140 IFk$=","THENa=57:b=172:RETURN 145 IFk$="."THENa=64:b=188:RETURN 150 IFk$="/"THENa=68:b=149:RETURN 151 REM 152 REM 154 IFk$="s"THENa=30:b=141:RETURN 155 IFk$="f"THENa=36:b=85 :RETURN 160 IFk$="g"THENa=40:b=200:RETURN 161 IFk$="j"THENa=48:b=127:RETURN 165 IFk$="k"THENa=54:b=111:RETURN 170 IFk$="l"THENa=61:b=126:RETURN 175 IFk$=";"THENa=72:b=169:RETURN 189 IFk$="{arrow left}"THENGOSUB650 190 IFk$="{pound}"THENGOSUB600 191 IFk$="{f1}"THENw=33:k$="":RETURN 192 IFk$="{f3}"THENw=17:k$="":RETURN 193 IFk$="{f5}"THENw=129:k$="":RETURN 194 IFk$="{f7}"THENw=65:k$="":RETURN 195 k$="":RETURN 196 REM 197 REM 200 IFk$="{home}"THENPOKE54276,0:POKE54283,0:POKE54290,0:k$="":RETURN 201 IFk$="1"THENo=1:k$="":RETURN 202 IFk$="3"THENo=3:k$="":RETURN 203 IFk$="4"THENo=4:k$="":RETURN 212 IFk$="z"THENa=14:b=107:RETURN 213 IFk$="x"THENa=16:b=47 :RETURN 214 IFk$="c"THENa=17:b=37 :RETURN 215 IFk$="v"THENa=19:b=63 :RETURN 225 IFk$="b"THENa=21:b=154:RETURN 230 IFk$="n"THENa=22:b=227:RETURN 235 IFk$="m"THENa=25:b=177:RETURN 240 IFk$=","THENa=28:b=214:RETURN 245 IFk$="."THENa=32:b=94 :RETURN 250 IFk$="/"THENa=34:b=75 :RETURN 251 REM 252 REM 254 IFk$="s"THENa=15:b=70 :RETURN 255 IFk$="f"THENa=18:b=42 :RETURN 260 IFk$="g"THENa=20:b=100:RETURN 261 IFk$="j"THENa=24:b=63 :RETURN 265 IFk$="k"THENa=27:b=56 :RETURN 270 IFk$="l"THENa=30:b=141:RETURN 275 IFk$=";"THENa=36:b=85 :RETURN 289 IFk$="{arrow left}"THENGOSUB650 290 IFk$="{pound}"THENGOSUB600 291 IFk$="{f1}"THENw=33:k$="":RETURN 292 IFk$="{f3}"THENw=17:k$="":RETURN 293 IFk$="{f5}"THENw=129:k$="":RETURN 294 IFk$="{f7}"THENw=65:k$="":RETURN 295 k$="":RETURN 296 REM 297 REM 300 IFk$="{home}"THENPOKE54276,0:POKE54283,0:POKE54290,0:k$="":RETURN 301 IFk$="1"THENo=1:k$="":RETURN 302 IFk$="2"THENo=2:k$="":RETURN 303 IFk$="4"THENo=4:k$="":RETURN 312 IFk$="z"THENa=7 :b=53 :RETURN 313 IFk$="x"THENa=8 :b=23 :RETURN 314 IFk$="c"THENa=8 :b=147:RETURN 315 IFk$="v"THENa=9 :b=159:RETURN 325 IFk$="b"THENa=10:b=205:RETURN 330 IFk$="n"THENa=11:b=114:RETURN 335 IFk$="m"THENa=12:b=216:RETURN 340 IFk$=","THENa=14:b=107:RETURN 345 IFk$="."THENa=16:b=47 :RETURN 350 IFk$="/"THENa=17:b=37 :RETURN 351 REM 352 REM 354 IFk$="s"THENa=7 :b=163:RETURN 355 IFk$="f"THENa=9 :b=21 :RETURN 360 IFk$="g"THENa=10:b=60 :RETURN 361 IFk$="j"THENa=12:b=32 :RETURN 365 IFk$="k"THENa=13:b=156:RETURN 370 IFk$="l"THENa=15:b=70 :RETURN 375 IFk$=";"THENa=18:b=42 :RETURN 389 IFk$="{arrow left}"THENGOSUB650 390 IFk$="{pound}"THENGOSUB600 391 IFk$="{f1}"THENw=33:k$="":RETURN 392 IFk$="{f3}"THENw=17:k$="":RETURN 393 IFk$="{f5}"THENw=129:k$="":RETURN 394 IFk$="{f7}"THENw=65:k$="":RETURN 395 k$="":RETURN 396 REM 400 IFk$="{home}"THENPOKE54276,0:POKE54283,0:POKE54290,0:k$="":RETURN 401 IFk$="1"THENo=1:k$="":RETURN 402 IFk$="2"THENo=2:k$="":RETURN 403 IFk$="3"THENo=3:k$="":RETURN 412 IFk$="z"THENa=3 :b=155:RETURN 413 IFk$="x"THENa=4 :b=12 :RETURN 414 IFk$="c"THENa=4 :b=73 :RETURN 415 IFk$="v"THENa=4 :b=208:RETURN 425 IFk$="b"THENa=5 :b=103:RETURN 430 IFk$="n"THENa=5 :b=185:RETURN 435 IFk$="m"THENa=6 :b=108:RETURN 440 IFk$=","THENa=7 :b=53 :RETURN 445 IFk$="."THENa=8 :b=23 :RETURN 450 IFk$="/"THENa=8 :b=147:RETURN 451 REM 452 REM 455 IFk$="s"THENa=3 :b=210:RETURN 456 IFk$="f"THENa=4 :b=139:RETURN 460 IFk$="g"THENa=5 :b=25 :RETURN 461 IFk$="j"THENa=6 :b=16 :RETURN 465 IFk$="k"THENa=6 :b=206:RETURN 470 IFk$="l"THENa=7 :b=163:RETURN 475 IFk$=";"THENa=9 :b=21 :RETURN 489 IFk$="{arrow left}"THENGOSUB650 490 IFk$="{pound}"THENGOSUB600 491 IFk$="{f1}"THENw=33:k$="":RETURN 492 IFk$="{f3}"THENw=17:k$="":RETURN 493 IFk$="{f5}"THENw=129:k$="":RETURN 494 IFk$="{f7}"THENw=65:k$="":RETURN 495 k$="":RETURN 496 RETURN 594 REM 595 REM 596 REM 597 REM 600 REM 602 PRINT"{home}{down*4}";TAB(34);"({pound})" 605 GETq$:IFq$="" THEN 605 608 PRINT"{home}{down*4}";TAB(34);"{space*3}" 610 IFq$="+"THENad=12:sr=12:w=33:hp=0:lp=0:k$="":RETURN 620 IFq$="-"THENad=9 :sr=0 :w=65:hp=2:lp=255:k$="":RETURN 630 IFq$="@"THENad=24:sr=15:w=17:hp=0:lp=0:k$="":RETURN 640 IFq$="*"THENad=135:sr=15:w=17:hp=0:lp=0:k$="":RETURN 641 RETURN 642 REM 643 REM 644 REM 650 PRINT"{home}{down*4}{right*3}({arrow left})" 651 GETx$:IFx$=""THEN650 652 PRINT"{home}{down*4}{right*3}{space*3}" 655 IFx$="9"THENGOSUB800 660 IFx$>"8"OR x$<"1" THEN RETURN 662 x=VAL(x$) 670 ad=ad(x):sr=sr(x):hp=hp(x):lp=lp(x):w=w(x) 671 k$="":RETURN 800 PRINT"{clear}what instrument do you wish to examine" 810 INPUT"{space*13}1 to 8 ";de 820 IFde>8ORde<1THEN810 830 PRINT"{clear}the instrument you wish to examine is: " 840 PRINT"{down}{space*14}";in$(de) 850 PRINT"{down}its settings are as follows: " 860 PRINT"{down*2}{green}{space*8}{cm a}{sh asterisk*16}{cm r}{sh asterisk*5}{cm s}" 870 PRINT"{space*8}{sh -}{cyan}attack/decay{space*4}{green}{sh -}{cyan}";ad(de);TAB(31);"{green}{sh -}" 871 PRINT"{space*8}{cm q}{sh asterisk*16}{sh +}{sh asterisk*5}{cm w}" 872 PRINT"{space*8}{sh -}{cyan}sustain/release {green}{sh -}{cyan}";sr(de);TAB(31);"{green}{sh -}" 873 PRINT"{space*8}{cm q}{sh asterisk*16}{sh +}{sh asterisk*5}{cm w}" 874 PRINT"{space*8}{sh -}{cyan}waveform{space*8}{green}{sh -}{cyan}";w(de);TAB(31);"{green}{sh -}" 875 PRINT"{space*8}{cm q}{sh asterisk*16}{sh +}{sh asterisk*5}{cm w}" 876 PRINT"{space*8}{sh -}{cyan}high pulse rate {green}{sh -}{cyan}";hp(de);TAB(31);"{green}{sh -}" 877 PRINT"{space*8}{cm q}{sh asterisk*16}{sh +}{sh asterisk*5}{cm w}" 878 PRINT"{space*8}{sh -}{cyan}low pulse rate{space*2}{green}{sh -}{cyan}";lp(de);TAB(31);"{green}{sh -}" 879 PRINT"{space*8}{cm z}{sh asterisk*16}{cm e}{sh asterisk*5}{cm x}" 880 INPUT"{white}{space*4}do you wish to redefine(y/n){cyan}";t$ 885 IFt$="y"THENPRINT"{down*9}":GOSUB2010 886 IFt$="n"THEN895 895 GOSUB3000 900 RETURN 990 REM 991 REM 992 REM 1000 POKE53280,0:POKE53281,0 1010 PRINT"{clear}{space*10}hello and welcome to" 1020 PRINT"{down}{white}{space*14}synthesound 64 {red}" 1030 PRINT"{down}with this program you can play any one" 1040 PRINT"{down}of four octaves. you can change octaves" 1050 PRINT"{down}at{space*2}any{space*2}time while you're playing by" 1060 PRINT"{down}pressing keys {cyan} 1, 2, 3 or 4.{red}there are" 1070 PRINT"{down}also twelve sets of sounds that can be" 1080 PRINT"{down}used. eight of these are user definable" 1090 PRINT"{down}and can{space*2}be set{space*2}up at the start of the" 1100 PRINT"{down}program, or redefined while the program" 1110 PRINT"{down}is running{space*2}by{space*2}pressing{space*2}key '{arrow left}' & '9'" 1120 INPUT"{down}{white}{space*6}enter 'octave' 1 to 4 ";o 1125 PRINT"{red}" 1130 IFo>4ORo<1THEN1120 1140 RETURN 2000 REM 2001 REM 2002 REM 2010 PRINT"{up*11}{space*3}enter name for instrument number ";de 2020 INPUT"{down}{space*12}";in$(de) 2030 INPUT"{down}enter attack/decay level(0-255)";ad(de) 2035 IFad(de)>255ORad(de)<0THENPRINT"sorry ";ad(de);" is out of range":GOTO2030 2040 INPUT"{down}enter sustain/release level(0-255)";sr(de) 2045 IFsr(de)>255ORsr(de)<0THENPRINT"sorry ";sr(de);" is out of range":GOTO2040 2050 INPUT"{down}enter waveform required (s,t,n or p)";w$(de) 2060 IFw$(de)="t"THENw(de)=17:GOTO2990 2065 IFw$(de)="s"THENw(de)=33:GOTO2990 2070 IFw$(de)="n"THENw(de)=129:GOTO2990 2075 IFw$(de)="p"THENw(de)=65:GOTO2100 2080 PRINT"{down}sorry ";w$(de);" not understood":GOTO2050 2100 INPUT"{down}enter high pulse rate (0-15)";hp(de) 2110 IFhp(de)<0THENPRINT"{down}sorry, pulse rate too low":GOTO2100 2120 IFhp(de)>15THENPRINT"{down}sorry, pulse rate too high":GOTO2100 2130 INPUT"{down}enter low pulse rate (0-255)";lp(de) 2140 IFlp(de)<0THENPRINT"{down}sorry, pulse rate too low":GOTO2130 2150 IFlp(de)>255THENPRINT"{down}sorry, pulse rate too high":GOTO2130 2990 RETURN 2995 REM 2996 REM 2997 REM 3000 PRINT"{clear}{red}{space*9}{reverse on}{space*22}" 3010 PRINT"{red}{space*9}{reverse on} {reverse off}{white}{reverse on} {right} {sh -} {right} {right} {sh -} {right} {right} {right} {sh -} {right}{red} " 3020 PRINT"{red}{space*9}{reverse on} {reverse off}{white}{reverse on} {right} {sh -} {right} {right} {sh -} {right} {right} {right} {sh -} {right}{red} " 3040 PRINT"{red}{space*9}{reverse on} {reverse off}{white}{reverse on}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{sh space}{sh -}{red} " 3050 PRINT"{red}{space*9}{reverse on} {reverse off}{white}{reverse on}z{sh -}x{sh -}c{sh -}v{sh -}b{sh -}n{sh -}m{sh -},{sh -}.{sh -}/{sh -}{red} " 3060 PRINT"{down}{green}{cm a}{sh asterisk*18}{cm r}{sh asterisk*18}{cm s}" 3100 PRINT"{sh -}{cyan}instrument{space*2}keys{space*2}{green}{sh -}{cyan}{space*3}octave{space*3}key{space*3}{green}{sh -}" 3105 PRINT"{cm q}{sh asterisk*18}{sh +}{sh asterisk*18}{cm w}" 3110 PRINT"{sh -}{cyan}piano{space*8}{pound} +{space*2}{green}{sh -}{cyan}{space*4}first{space*4}1{space*4}{green}{sh -}" 3120 PRINT"{sh -}{cyan}banjo{space*8}{pound} -{space*2}{green}{sh -}{cyan}{space*4}second{space*3}2{space*4}{green}{sh -}" 3130 PRINT"{sh -}{cyan}xylophone{space*4}{pound} @{space*2}{green}{sh -}{cyan}{space*4}third{space*4}3{space*4}{green}{sh -}" 3140 PRINT"{sh -}{cyan}woodwind{space*5}{pound} *{space*2}{green}{sh -}{cyan}{space*4}fourth{space*3}4{space*4}{green}{sh -}" 3160 FORi=1TO8 3165 IFin$(i)=""THENin$(i)="not used" 3170 PRINT"{sh -}{cyan}";in$(i);TAB(14);"{arrow left}";i;TAB(19);"{green}{sh -}{space*18}{sh -}" 3180 NEXTi 3190 PRINT"{cm z}{sh asterisk*18}{cm e}{sh asterisk*18}{cm x}" 3200 PRINT"{up*9}" 3210 PRINTTAB(19)"{cm q}{sh asterisk*18}{cm w}" 3220 PRINTTAB(19)"{sh -}{cyan} waveform{space*4}key{space*2}{green}{sh -}" 3230 PRINTTAB(19)"{cm q}{sh asterisk*18}{cm w}" 3240 PRINTTAB(21)"{cyan}sawtooth{space*5}f1" 3250 PRINTTAB(21)"triangle{space*5}f3" 3260 PRINTTAB(21)"noise{space*8}f5" 3270 PRINTTAB(21)"pulse{space*8}f7" 3280 PRINT"{down}{space*4}press '{yellow}{arrow left}{cyan}' then '{yellow}9{cyan}' to re-define." 3400 RETURN stop tok64 (bastext 1.0)