start tok64 d64-qUf0R1 100 PRINT"{clear}":IFld=0THENld=1:GOSUB4000:LOAD"stereo.mod",8,1 200 IFld<2THENld=2:LOAD"box",8,1 250 DIM cn$(24),mp(24),mx(24),mn(24) 300 PRINT"is extra sid chip{sh space}installed ?" 350 PRINT"{down}enter 0 if none":PRINT"{space*6}1 if at $de00" 400 PRINT"{space*6}2 if at $df00":PRINT"{space*3}{white}1";:INPUT"{left*3}";n:lc=-(n>0)*(221+n) 500 ss=49167:POKE ss+4,lc:nr=16:v=53248:w=v+39:POKEv+29,7:POKEv,140:POKEv+1,215 600 DEF FNcl(c)=6*(c-1)-5*(c>3):t$="{right}{left}{up}{down}hxbs+p":POKE2040,14:PRINT"{clear}" 700 POKE2041,15:POKE2042,13:POKEv+5,215:POKEv+4,188 800 DEF FNbt(x)=x-(x<0)*256:DEF FNsn(x)=x+(x>127)*256:REM poke&peek signed nums 900 dn=8:sa=780:sx=781:sy=782:sp=783:m1=49199:m2=253:s1=54270:s2=2539-256*(n=2) 1000 DEF FNcc(r)=55394+40*r:z=ss+5:sf=2560-256*(n=2) 1100 FOR n=1TO24:READcn$(n),mp(n),mn(n),mx(n):NEXT 1200 DATA atk,0,0,15,dcy,0,0,15,sus,3,0,15,rls,3,0,15,pnt,19,0,255,wav,91,0,8 1210 DATA p-w,76,0,4095,p-s,70,-128,127,vdp,46,1,127,vrt,49,1,127 1300 DATA por,25,0,16383,tps,52,-95,95,dtn,58,-2048,2047,snc,97,0,1,rng,94,0,1 1310 DATA flt,8,0,1,tem,10,56,1800,vol,9,0,15,f-m,9,1,7,aut,82,-128,127 1312 DATA res,8,0,15,f-c,88,0,255,f-s,85,-128,127,3-0,9,0,1 1400 POKE53280,9:POKE53281,9:PRINT"{clear}{yellow}":GOSUB6000 1500 PRINT"{clear}{gray}{space*2}left channel{space*10}right channel":POKEv+39,8:POKEv+41,8 1520 PRINT" {reverse on}1{reverse off}{cm y*5}{reverse on}2{reverse off}{cm y*5}{reverse on}3{reverse off}{space*10}{reverse on}1{reverse off}{cm y*5}{reverse on}2{reverse off}{cm y*5}{reverse on}3" 1530 PRINT" {cm u}{space*5}{cm u}{space*5}{cm u}{space*10}{cm u}{space*5}{cm u}{space*5}{cm u}{orange}" 1540 FORr=1TO16:PRINTTAB(18)cn$(r):NEXT 1600 PRINT"{orange}{space*4}{cm p}{space*22}{cm p}" 1650 PRINT"{space*3}{cm n}{reverse on}b{reverse off}{cm h}breaks out of loop{space*2}{cm n}{reverse on}s{reverse off}{cm h}stays in" 1700 PRINT"{space*3}{cm p}{cm y}{space*22}{cm y}{cm p}" 1750 PRINT"{space*2}{cm n}{reverse on}x{reverse off}{cm h}ends song {reverse on} sid tuner {reverse off} {cm n}{reverse on}h{reverse off}{cm h}gets help" 1800 PRINT"{space*2}{cm p}{cm y}{space*24}{cm y}{space*2}{cm p}" 1900 PRINT" {cm n}{reverse on}+{reverse off}{cm h}displays other parameters {cm n}{reverse on}p{reverse off}{cm h}prints{yellow}";:POKEv+21,7 2000 xx=0:r=1:GOSUB7500:r=1:c=1:POKEv+21,7:POKEv+27,7:GOSUB2900:GOSUB3000 2100 POKEv+40,0:xx=1:rh=r:ch=c:GOSUB7500:r=rh:c=ch 2200 GOSUB3300:IFa=7THEN5400 2210 IFa=10THEN15000 2230 ONaGOSUB7300,2300,2400,2500,2600,2700,3850,2750,2760,3850,2775 2240 IFa=6ORa=11THEN1500 2250 GOTO2100 2300 IFc=nvTHENc=1:GOTO3000 2350 c=c+1:GOTO3000 2400 IFc=1THENc=nv:GOTO3000 2450 c=c-1:GOTO3000 2500 GOSUB3200:IFr=1THENr=nr:GOTO2900 2550 r=r-1:GOTO2900 2600 GOSUB3200:IFr=nrTHENr=1:GOTO2900 2650 r=r+1:GOTO2900 2700 POKEv+21,0:PRINT"{clear}{space*9}sid tuner instructions{down}" 2705 PRINT"use cursor controls to select voice{cm @}&{cm @*2}{space*2}parameter to change. "; 2710 PRINT"then press {reverse on}return{reverse off}{space*2}and enter new value.":br$="{space*6}{cm @}"+CHR$(13) 2715 PRINTbr$"press {reverse on}+{reverse off} to change screens (there are two screens, one for "; 2720 PRINT"voice params & one for channel params).":PRINTbr$"press {reverse on}b{reverse off} to "; 2725 PRINT"break out of a hed-tal loop.":PRINTbr$"press {reverse on}s{reverse off} to stay in a "; 2730 PRINT"hed-tal loop (if{space*4}loop is at same points in each voice).":PRINTbr$; 2735 PRINT"press {reverse on}p{reverse off} to print out current settings.":PRINTbr$"press {reverse on}x{reverse off} to "; 2740 PRINT"halt music. then if you want{space*2}you can start it again (params reset)." 2743 PRINT"{space*15}- - - - - -":PRINT"(for more detailed instructions,"; 2745 PRINT" press{cm @}{space*2}{reverse on}run/stop{reverse off}/{reverse on}restore{reverse off}, enter 'run', press {reverse on}h{reverse off})" 2747 GOTO6040 2750 t=1 2755 FORi=49315TOi+2:POKEi,t:NEXT:FORi=49571TOi+2:POKEi,t:NEXT:RETURN 2760 t=0:GOTO2755 2775 POKEv+21,0 2777 PRINT"{clear}{down*4}get printer ready, & enter a label" 2780 INPUT"(or 'a' to abort print)";a$ 2785 IF a$="a"THENRETURN 2790 OPEN4,4:PRINT#4,a$:FORr=1TO16:PRINT#4,cn$(r);:FORc=1TOnv:GOSUB20000 2793 PRINT#4,x;SPC(10-LEN(STR$(x)));:NEXT 2795 PRINT#4:NEXT:PRINT#4 2800 FORr=17TO24:PRINT#4,TAB(20)cn$(r);:FORc=3TOnv-2:GOSUB17000 2820 PRINT#4,x;SPC(20-LEN(STR$(x)));:NEXT:PRINT#4:NEXT:PRINT#4:PRINT#4 2830 CLOSE4:RETURN 2900 cc=FNcc(r):FORcc=ccTOcc+3:POKEcc,0:NEXT:POKEv+3,65+r*8:RETURN 3000 cc=23+8*FNcl(c):POKEv+2,ccAND255:IFcc>255THENPOKEv+16,2:RETURN 3100 POKEv+16,0:RETURN 3200 cc=FNcc(r):FORcc=ccTOcc+3:POKEcc,8:NEXT:RETURN 3300 IFa$=CHR$(13)THENa=1:RETURN 3400 FORa=1TOLEN(t$):IFa$=MID$(t$,a,1)THENa=a+1:RETURN 3500 NEXT:a=12:RETURN 3600 IFr=16THENma=49208-m2*(c>3):RETURN 3610 ma=m1-m2*(c>3)+c+mp(r):IFr<5THENsl=s1-s2*(c>3)+7*c+INT(r/3):RETURN 3700 IF r=7 THENsl=54267-s2*(c>3)+7*c 3800 RETURN 3850 PRINT"{clear}{down*3}program error {!*3}{space*2}a="a:END 3900 POKE211,FNcl(c):POKE214,r+2:SYS58732:PRINT"{space*5}{left*5}"x:RETURN 4000 POKE53280,9:POKE53281,9:PRINTCHR$(142)"{clear}"; 4020 PRINT"{reverse off}{orange}{117}{099*38}{105}"; 4040 PRINT"{098} {yellow}{117}{099}{105}{cm r}{cm a}{099}{105} {cm a}{cm r}{cm s}{cm r} {cm r}{cm a}{105}{cm r}{cm a}{099}{cm s}{cm r}{099}{105}{space*14}{orange}{098}"; 4060 PRINT"{098} {yellow}{106}{099}{105}{098*2} {098}{space*2}{098} {098} {098*4}{cm q}{cm w} {cm q}{cm r}{107} version 1.0{space*2}{orange}{098}"; 4080 PRINT"{098} {yellow}{106}{099}{107}{cm e}{cm z}{099}{107}{space*2}{cm e} {106}{099}{107}{cm e}{106}{cm x}{cm e}{099}{cm x}{cm e}{106}{099*13}{107} {orange}{098}"; 4100 PRINT"{106}{099*38}{107}"; 4120 PRINT"{space*13}{yellow}john l. turner" 4140 PRINT"{space*13}{orange}{cm t*4} {cm t}{space*2}{cm t*6}" 4160 PRINT"{down*2}{space*16}includes" 4180 PRINT"{space*8}sid stereo player module" 4200 PRINT"{space*11}copyright (c) 1987" 4220 PRINT"{space*10}by mark a. dickenson" 4240 PRINT"{down*2}{space*2}{cm @*7}screen{cm @}design{cm @}j{cm @}a{cm @}grau{cm @*7}" 4260 PRINT"{space*2}{cm t*36}" 4280 PRINT"{down}{space*32}{cm @}" 4300 PRINT"{space*6}to see a help file, press {reverse on}h{reverse off}{reverse on}" 4320 PRINT"{down}{space*8}to begin, press any key" 4340 GETq$:IFq$=""THEN4340 4400 IF q$="h"THENGOSUB4700 4600 PRINT"{clear}{down*5}{space*2}loading {yellow}player module {.*5}":RETURN 4700 PRINTCHR$(14)"{clear}{light gray}":OPEN2,8,2,"tunerdocs,s,r" 4800 INPUT#2,a$:IFa$="nd"THENGOSUB6040:CLOSE2:PRINTCHR$(142):RETURN 4900 IFa$="pg"THENGOSUB6040:GOTO4800 5000 PRINTa$:GOTO 4800 5100 PRINT"{dark gray}{light gray}" 5200 GETx$:IFx$=""THENGOSUB5800:GOTO5200 5300 POKEv+40,0:RETURN 5400 POKEv+21,0:SYS49152:vv=54296:POKEvv,0:IFnTHENPOKEvv+sf,0:POKE211,0 5500 POKE214,22:SYS58732:PRINT"press {reverse on}'r'{reverse off} to replay,{reverse on}'p'{reverse off} to print values,"; 5520 PRINT"{space*3}or any key to play another song" 5550 GET a$:IFa$=""THEN5550 5600 IF a$="r" THEN GOSUB 7000:GOTO1500 5620 IF a$="p"THEN GOSUB 2775:PRINT"{clear}{down*5}":GOTO 5500 5636 GOTO 1400 5800 IFti>txTHENtx=ti+5:l=6-6*(l<10):FORn=39TO41:POKEv+n,l:NEXT:RETURN 5900 RETURN 6000 INPUT"{down*5}{space*5}filename{space*2}${left*3}";f$:IF f$<>"$"THEN6090 6005 OPEN1,8,2,"$":FORx=1TO141:GET#1,a$:NEXT:j=17:GOSUB6055 6010 PRINT"{clear}disk name: {reverse on}"b$:PRINT"{down}music files:":FORx=1TO95:GET#1,a$:NEXT:i=0 6015 FORp=1TO8:GET#1,a$,a$,a$:j=15:GOSUB6055:r$=RIGHT$(b$,4) 6020 IFr$=".mus"ORr$=".str"THENi=i+1:PRINTb$:IFi=20THENi=0:GOSUB6040 6025 FORx=1TO11:GET#1,a$:NEXT:IFstTHENCLOSE1:GOSUB6070:GOSUB6040:GOTO6000 6030 IFp<8THENGET#1,a$,a$ 6035 NEXTp:GOTO6015 6040 PRINTTAB(10)"{reverse on}press any key to continue"; 6045 GETa$:IFa$=""THEN6045 6050 PRINT"{clear}":RETURN 6055 b$="":FORx=0TOj:GET#1,a$ 6060 IFa$<>CHR$(96)THENIFa$<>CHR$(160)THENb$=b$+a$ 6065 NEXT:RETURN 6070 OPEN15,8,15:PRINT#15,"i":CLOSE15:RETURN 6090 fl$=f$+".mus":PRINT"{down}check left channel = "; 6100 PRINT"{space*2}"fl$;:FORi=1TOLEN(fl$)+3:PRINT"{left}";:NEXT:INPUTfl$:IFlc=0THEN7200 6200 INPUT"{down}is there a right channel(y/n)";y$:IFy$="n"THENnv=3:GOTO6500 6300 fr$=f$+".str":PRINT"{down}right channel ={space*3}"fr$;:FORi=1TOLEN(fr$)+3:PRINT"{left}"; 6400 NEXT:INPUTfr$:nv=6 6500 f$=fl$:la=PEEK(49)+256*PEEK(50)+1000:PRINT"{down*3}{space*3}loading: "f$ 6600 hi=INT(la/256):lo=la-256*hi:POKEss,lo:POKEss+1,hi:GOSUB10200:IFpTHEN6000 6700 IFnv=3THEN7000 6800 f$=fr$:PRINT"{down}{space*3}loading: "f$:hi=INT(la/256):lo=la-256*hi:POKE49169,lo 6900 POKE49170,hi:GOSUB10200:IFpTHEN6000 7000 SYS49155:POKE49172,7:IF nv=6 THEN POKE 49173,7:RETURN 7100 RETURN 7200 nv=3:GOTO6500 7300 r2=r+2:GOSUB8600 7400 GOSUB9600:GOSUB8650:GOSUB8700:GOTO 2900 7500 FOR r=rTOnr:FORc=1TOnv:GOSUB20000 8300 GOSUB3900:GETa$:IFa$<>""ORxx=0THENRETURN 8400 NEXT:IFPEEK(z)+PEEK(z+1)=0THENSYS49152:SYS49155:POKEz,7:POKEz-(lc>0),7 8500 NEXT:r=1:GOTO7500 8600 POKE211,15:POKE214,22:SYS58732:PRINT"{space*11}{left*11}"mn(r) 8610 POKE211,20:POKE214,22:SYS58732:PRINTmx(r) 8620 POKE211,FNcl(c):POKE214,r2:SYS58732:PRINT"{space*6}{left*5}";:RETURN 8650 POKE211,14:POKE214,22:SYS58732:PRINT" {orange}{reverse on} sid tuner {reverse off}{yellow}";:RETURN 8700 GOSUB3600:y=PEEK(ma) 8800 ONrGOTO8900,9000,8900,9000,9500,9500,9100,9400,9500,9500,9100,9300,9400 8850 ONr-13GOTO9500,9500,9420 8900 x=x*16OR(yAND15):POKEma,x:POKEsl,x:RETURN 9000 x=xAND15OR(yAND240):POKEma,x:POKEsl,x:RETURN 9100 hi=INT(x/256):lo=x-256*hi:POKEma,lo:POKEma+3,hi:IFr<>7THENRETURN 9200 POKEsl,lo:POKEsl+1,hi:RETURN 9300 oc=-INT(x/12):nt=x+12*oc:POKEma,FNbt(oc):POKEma+3,FNbt(nt):RETURN 9400 x=x-(x<0)*65536:GOTO9100 9420 ma=49208-256*(c>3):y=PEEK(ma):n=c+3*(c>3):IFx=0THEN9450 9430 x=yOR(2^(n-1)):GOTO18600 9440 POKEma,x:RETURN 9450 ONnGOTO9460,9470,9480 9460 x=yAND254:GOTO18600 9470 x=yAND253:GOTO18600 9480 x=yAND251:GOTO18600 9500 POKEma,FNbt(x):RETURN 9600 xx$="":POKEv+21,7 9700 GOSUB5200:IFx$=CHR$(13)THENx=VAL(xx$):POKEv+39,8:POKEv+41,8:GOTO10150 9800 IFASC(x$)=20ANDLEN(xx$)THENPRINT"{left} {left}";:xx$=LEFT$(xx$,LEN(xx$)-1):GOTO9700 9900 IFx$>"/"ANDx$<":"THENxx$=xx$+x$:PRINTx$;:GOTO9700 10000 IF LEN(xx$)=0ANDx$="-"THENxx$=x$:PRINTx$;:GOTO9700 10100 GOTO9700 10150 IFx>mx(r)THENx=mx(r):RETURN 10160 IFx3) 15120 rh=r:ch=c 15125 FORr=17TO24:FORc=3TOcm:GOSUB17000 15130 GOSUB15200:GETa$:IFa$<>""THEN16000LIST16000 15140 NEXT:IFPEEK(z)+PEEK(z+1)=0THENSYS49152:SYS49155:POKEz,7:POKEz-(lc>0),7 15150 NEXT:GOTO15125 15200 POKE211,FNcl(c):POKE214,r-14:SYS58732:PRINT"{space*5}{left*5}"x:RETURN 16000 r=rh:c=ch:GOSUB3300:IFa=7THEN5400 16010 IFa=10THEN1500 16020 ONaGOSUB18000,16300,16300,16500,16600,2700,3850,2750,2760,3850,2775 16030 IFa=6ORa=11THEN15000 16040 GOTO 15120 16300 IFnv=3THENRETURN 16350 c=4+(c=4):GOTO3000 16500 GOSUB16800:IFr=17THENr=24:GOTO16900 16550 r=r-1:GOTO16900 16600 GOSUB16800:IFr=24THENr=17:GOTO16900 16650 r=r+1:GOTO16900 16800 cc=FNcc(r-16):FORcc=ccTOcc+3:POKEcc,8:NEXT:RETURN 16900 cc=FNcc(r-16):FORcc=ccTOcc+3:POKEcc,0:NEXT:POKEv+3,8*r-63:RETURN 17000 ma=49200+mp(r):IFc=4THENma=ma+256 17010 x=PEEK(ma):ONr-16GOTO17020,20040,17040,17050,17060,20100,17050,17070 17020 IFx=0THENx=256 17025 x=INT(14400/x):RETURN 17040 x=(xAND112)/16:RETURN 17050 x=FNsn(x):RETURN 17060 x=(xAND240)/16:RETURN 17070 x=(xAND128)/128:RETURN 18000 r2=r-14:GOSUB8600:GOSUB9600:GOSUB8650:ma=49200+mp(r):IFc=4THENma=ma+256 18010 y=PEEK(ma):ONr-16GOTO18100,18150,18200,18400,18350,18300,18400,18250 18100 IF x=0THENx=256 18110 x=(INT(1800/x)*8)AND255:POKE49210,x:POKE49466,x:RETURN 18150 x=(yAND240)ORx:GOTO18500 18200 x=(yAND143)OR(x*16):GOTO18500 18250 x=(yAND127)OR(x*128):GOTO18500 18300 FORm=maTOma+2:POKEm,x:NEXT:RETURN 18350 x=(yAND15)OR(x*16):GOTO18600 18400 x=FNbt(x):FORm=maTOma+2:POKEm,x:NEXT:RETURN 18500 POKEma,x:POKE54296-sf*(c>3),x:RETURN 18600 POKEma,x:POKE54295-sf*(c>3),x:RETURN 20000 GOSUB3600:x=PEEK(ma) 20010 ONrGOTO20030,20040,20030,20040,20100,20100,20050,20060,20100,20100,20050 20020 ONr-11GOTO20070,20090,20100,20100,20080 20030 x=(xAND240)/16:RETURN 20040 x=xAND15:RETURN 20050 x=x+256*PEEK(ma+3):RETURN 20060 x=FNsn(x):RETURN 20070 x=-12*FNsn(x)+FNsn(PEEK(ma+3)):RETURN 20080 ma=49208-256*(c>3):x=PEEK(ma):n=c+3*(c>3):n=2^(n-1):x=-((xANDn)<>0):RETURN 20090 x=x+256*PEEK(ma+3):x=x+(x>32767)*65536:RETURN 20100 RETURN stop tok64 (bastext 1.0)