start tok64 d64-upnu8q 10 POKE52,PEEK(46)+8:POKE56,PEEK(52):CLR 11 a1$="abcdefghijklmnopq":a1$=a1$+a1$+a1$+a1$+a1$:a1$=a1$+a1$+a1$ 12 DEF FNh(x)=INT(x/256) 13 DEF FNl(x)=x-256*FNh(x) 14 bl$="{space*40}":c$=CHR$(.):p1=0 15 sa=780:sx=781:sy=782:sp=783:POKEsa,1:POKEsx,8:POKEsy,1:SYS 65466 16 POKE53281,0:POKE53280,11:POKE650,128 17 PRINT"{clear}"CHR$(142);:GOSUB59 18 PRINT"{down}{green} can play all current sidplayer files" 19 PRINT" as used with kplay, mplay, singalong" 20 PRINT" and other comparable sidplayers.{down}" 21 PRINT" uses sid music and related files:" 22 PRINT" {yellow}.mus {green}(music files), {light green}with{.*3}{green}" 23 PRINT" {yellow}.wds {green}(word files){space*3}{light green}and/or{.*3}{green}" 24 PRINT" {yellow}.pic {green}(koala/doodle & b/w pictures)" 25 PRINT "{green}{down} the basic sidplayer is from compute's" 26 PRINT " "CHR$(34)"all about the commodore 64, vol. two"CHR$(34) 27 PRINT " by craig chamberlain{space*3}-{space*2}(c) compute!" 28 PRINT "{down}{space*6}{light blue}{cm @*27}" 29 PRINT "{space*6}{reverse on}hit space to read directory{reverse off}{blue}{cm f}" 30 PRINT "{space*6}{cm c}{blue}{reverse on}{cm i*26}{reverse off}{cm v}" 31 PRINT "{dark gray}.(c)1986,1987 okay to copy, not to sel.{left}"CHR$(148)"l{home}" 32 ss=12288:hk=ss+274:pl=ss+297:dp=ss+471:sv=PEEK(55)+PEEK(56)*256:ma=0 33 SYS10638 34 REM ***** next screen page 35 np=0 36 PRINT"{green}{clear}{down*6}{yellow}U{sh asterisk*12}{cm r}{sh asterisk*12}{cm r}{sh asterisk*11}I{left*2}"CHR$(148)"{sh asterisk}" 37 FORa=1TO17:PRINT"{sh -}"SPC(12)"{sh -}"SPC(12)"{sh -}"SPC(11)"{sh -}{left}"CHR$(148):NEXT 38 PRINT"J{sh asterisk*12}{cm e}{sh asterisk*12}{cm e}{sh asterisk*11}K{left*2}"CHR$(148)"{sh asterisk}{home}":GOSUB59 39 PRINT"{home}{down*3}{right*3}{light blue}exit: f7 {right*15} replay: * {white}{sh -}" 40 PRINT"{right*2}{light blue}play one:f1{white}/{light blue}play from:f3{white}/{light blue}new disk:f5{white}{sh -}":GOTO67 41 PRINT"{green}{clear}{down*6}{yellow}U{sh asterisk*37}I{left*2}"CHR$(148)"{sh asterisk}" 42 FORa=1TO9:PRINT"{sh -}"SPC(37)"{sh -}{left}"CHR$(148):NEXT 43 PRINT"{cm q}{sh asterisk*37}{cm w}{left*2}"CHR$(148)"{sh asterisk}" 44 PRINT"{sh -}{green} notes:f1{white}/{green}nextsong:f3{white}/{green}menu:f5{white}/{green}exit:f7{yellow}{sh -}{left}";CHR$(148)" {yellow}" 45 PRINT"{cm q}{sh asterisk*37}{cm w}{left*2}"CHR$(148)"{sh asterisk}" 46 FOR a=1 TO 5:PRINT"{sh -}"SPC(37)"{sh -}{left}"CHR$(148):NEXT 47 PRINT"J{sh asterisk*37}K{left*2}"CHR$(148)"{sh asterisk}{home}":GOSUB59:RETURN 48 REM ***** music keyboard display 49 POKEss+5,7:POKEss+6,2:POKEss+7,14 50 v=53248:POKEv+23,7:POKEv,0:POKEv+2,0:POKEv+4,0:POKEv+16,0:POKEv+21,7 51 PRINT"{up}{right*5}{reverse on}{cm k}{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse off}{cm g}" 52 PRINT"{right*5}{reverse on}{cm k}{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse off}{cm g}" 53 PRINT"{right*5}{reverse on}{cm k}{G*27}{reverse off}{cm g}" 54 PRINT"{right*5}{reverse on}{cm k}{G*27}{reverse off}{cm g}{down}" 55 PRINT"{right*5}{reverse on}{cm k}{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse off}{cm g}" 56 PRINT"{right*5}{reverse on}{cm k}{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse on}G{reverse off}{cm m*2}{reverse on}G{reverse off}{cm m*3}{reverse off}{cm g}" 57 PRINT"{right*5}{reverse on}{cm k}{G*27}{reverse off}{cm g}" 58 PRINT"{right*5}{reverse on}{cm k}{G*27}{reverse off}{cm g}{home}":RETURN 59 PRINT"{home}{white} U{sh asterisk*36}I" 60 PRINT" {sh -}{space*11}{blue}UI{light blue}{cm r}{cyan}{cm a}I{white}{space*2}{cm f}{cyan}{cm r}I{light blue}{cm r}{blue}UI{white}{space*8}v3.4{sh -} 61 PRINT" {sh -}{space*11}{blue}JI{light blue}{sh -}{cyan}{sh -*2}{white} {reverse on}{cm b}{reverse off} {cyan}{cm q}K{light blue}{sh -}{blue}{sh -}{white}{space*13}{sh -} 62 PRINT" {sh -}{space*11}{blue}JK{light blue}{cm e}{cyan}{cm z}K{white}{cm c}{space*2}{cyan}{cm e} {light blue}{cm e}{blue}JK{white}{space*12}{sh -} 63 PRINT" {sh -} {light blue}the sidplayer art and music review{white} {sh -} 64 PRINT" J{sh asterisk*7}I {red}k{cyan}e{156}r{green}m{blue}i{yellow}t {orange}r. {brown}w{pink}o{gray}o{light green}d{light blue}a{light gray}l{light green}l{white} U{sh asterisk*8}K" 65 PRINT"{right*9}J{sh asterisk*19}K":RETURN 66 REM ***** printout dir 67 cl=5:PRINT "{home}{down*6}" 68 GOTO192 69 SYS9960: 70 REM ***** get song title 71 SYS10008 72 la=sv 73 PRINT"{home}";:f1=FRE(0):f$="":f1=1024+(40*7)+1:v0=7:h0=1 74 POKEf1,PEEK(f1)+128 75 POKEf1,PEEK(f1)-128:f1=1024+(v0*40)+h0:POKEf1,PEEK(f1)+128 76 SYS10054:GET a$:IFa$="{down}"THENv0=v0+1:IFv0>23THENv0=7 77 IFa$="{up}"THENv0=v0-1:IFv0<7THENv0=23 78 IFa$="{right}"THENh0=h0+13:IFh0>27THENh0=1 79 IFa$="{left}"THENh0=h0-13:IFh0<1THENh0=27 80 IFa$="{home}"THENv0=7:h0=1 81 IFa$="{f5}" GOTO35 82 IFa$="{f2}"THENnp=np+k:GOTO36 83 IFa$="{f3}" GOTO100 84 IFa$="{f7}"THENPOKE53280,14:POKE 53281,6:PRINT"{clear}{light blue}";:GOTO235 85 IFa$="*" GOTO94 86 IFa$=CHR$(13) GOTO90 87 IFa$=CHR$(141)THENGOSUB121:cl=13:GOTO74 88 IFPEEK(654)=5THENIFPEEK(197)=5GOTO108 89 IFa$<>"{f1}" GOTO75 90 POKEf1,PEEK(f1)-128 91 SYS9912: 92 POKE198,0:GOSUB116:GOSUB127:GOTO69 93 REM ***** replay last music 94 POKEf1,PEEK(f1)-128:SYS9912: 95 IFma128THENPOKEx,PEEK(x)-128 119 NEXT:RETURN 120 REM ***** color name 121 POKEf1,PEEK(f1)-128 122 fg=0:FOR x=f1+11 TO f1 STEP-1:a=PEEK(x):IFfg=0THENIFa=32 GOTO124 123 fg=1:POKEx,a+128:POKEx+54272,(PEEK(x+54272)+8) AND 15 124 NEXT:FOR x=f1+11 TO f1 STEP-1:IFPEEK(x)>128THENPOKEx,PEEK(x)-128 125 NEXT:RETURN 126 REM ***** load music @fre mem 127 IFf$=""THENRETURN 128 GOSUB162:GOSUB176 129 ma=la:hi=FNh(ma):lo=FNl(ma):f$=f$+".mus":GOSUB203 130 IFPEEK(sp)AND1 GOTO208 131 REM ***** hook into interrupt 132 SYS hk:POKE sx,lo:POKE sy,hi:SYS pl:f=PEEK(sx)+256*PEEK(sy):f$="":fs=f 133 REM ***** print credit block 134 IFpicTHENSYS9676::GOSUB189:GOTO141 135 f$="":GOSUB41:PRINT"{home}{down*7}{right}";SPC((40-LEN(t$))/2-1);t$ 136 IFwds=0THENGOSUB48 137 PRINT"{home}{down*19}{light blue}";:p=-1:l=0 138 f=f+p+1:POKE113,FNl(f):POKE114,FNh(f) 139 SYS9874::p=PEEK(142):l=l+1:a=PEEK(f+p) 140 IFl<6THENIFaTHENPRINT"{right*4}";LEFT$(a1$,p+1);:IFMID$(a1$,p+1,1)<>c$GOTO138 141 SYS11246:WAIT 56320,16:POKE 198,0:POKE ss,7 142 REM ***** wait until finished 143 SYS10054:IFPEEK(198) GOTO151 144 IFwdsTHENGOSUB221:GOTO146 145 GOSUB231 146 IFPEEK(ss)AND 7 GOTO143 147 GOSUB157 148 POKEv+5,0:POKEv+7,0:POKEv+9,0 149 IFa$="{f5}"THENa$="":GOTO35 150 RETURN 151 GETa$:POKE198,0:POKEss,0 152 IFa$="{f1}"THENIFp1=0THENGOSUB159:p1=pi:t$="":f=fs:pi=0:wd=0:POKEss,7:GOTO134 153 IFa$="{f1}"THENIFp1THENpi=p1:p1=0:POKEss,7:POKEv+21,0:GOTO134 154 IFa$="{f7}"THENGOSUB157:GOTO69 155 IFa$="p"THENa=PEEK(54296):POKE54296,0:WAIT198,1:GETa$:POKEss,7:POKE54296,a:GOTO143 156 GOTO147 157 GOSUB159:POKE53269,0:POKE54276,0:POKE54283,0:POKE54290,0:SYSdp:RETURN 158 RETURN 159 SYS11334:SYS9809::POKE700,0 160 RETURN 161 REM ***** load word file 162 POKE700,0:t$="":wd=0:OPEN1,8,8,f$+".wds,p":GET#1,a$,b$:IFstTHENCLOSE1:RETURN 163 CLOSE1:wd=1:wa=la:t$=a$+b$ 164 f$=f$+".wds":hi=FNh(la):lo=FNl(la):GOSUB203 165 IFPEEK(sp)AND1 GOTO208 166 POKE700,1 167 la=PEEK(sx)+PEEK(sy)*256:wt=wa:FOR a=la TO la+5:POKE a,13:NEXT:la=la+5 168 f$=LEFT$(f$,LEN(f$)-4):POKE113,FNl(wa):POKE114,FNh(wa) 169 SYS9874::a=PEEK(142) 170 t$=t$+LEFT$(a1$,a) 171 wa=wa+a+1:wt=wa 172 POKE113,FNl(wt):POKE114,FNh(wt) 173 SYS9874::a=PEEK(142) 174 SYS10013:w2$=LEFT$(a1$,a):wt=wt+a+1 175 RETURN 176 REM ***** check for picture 177 pic=0:p1=0:OPEN1,8,8,f$+".pic":GET#1,a$,b$:IF(st AND 64)THENCLOSE1:RETURN 178 CLOSE1:a=ASC(b$+c$) 179 IFa=96THENpic=1:GOTO182 180 IFa=92THENpic=2:GOTO182 181 pic=3 182 POKE 665,pic:hi=96:lo=0:f$=f$+".pic":GOSUB203:REM pics @ $6000 183 IFPEEK(sp)AND1 GOTO208 184 f$=LEFT$(f$,LEN(f$)-4):ON pic GOTO185,186,187 185 SYS10980:GOTO188 186 SYS11061:GOTO188 187 SYS11118:GOTO188 188 RETURN 189 IFwds=0THENRETURN 190 SYS11523:PRINT SPC((40-LEN(t$))/2)"{white}"t$:POKE700,2:RETURN 191 REM ***** what files on disk 192 FOR f=1 TO 4:POKE 580+f,ASC(MID$(".mus",f)):NEXT 193 OPEN 1,8,0,"$0:*=p":GET #1,s$,s$:PRINT "{green}{right}";:tb=1:k=0 194 IFnp>0THENPOKE2,5:FOR a=1 TO np:SYS9579::NEXT 195 POKE2,0:SYS9579::tb=tb+13:PRINT TAB(tb);:IFtb=40THENtb=1:PRINT "{right}"; 196 IFst=0THENk=k+1:IFk<51 GOTO195 197 IFk=0THENp$="no music on disk!":GOTO211 198 POKE2,5:SYS9579: 199 IFst=0THENPRINT"{home}{down*24}{right}"SPC(12)"{white}f2 - next page{home}" 200 CLOSE1:SYS65484 201 GOTO71 202 REM ***** music file loader 203 POKEsa,1:POKEsx,8:POKEsy,0:SYS65466 204 FOR f=1 TO LEN(f$):POKE 584+f,ASC(MID$(f$,f)):NEXT 205 POKE sa,LEN(f$):POKE sx,73:POKE sy,2:SYS 65469 206 POKEsa,0:POKEsx,lo:POKEsy,hi:SYS65493:RETURN 207 REM ***** error messages 208 p=PEEK(sa):p$="error: ":IFp=4THENp$=p$+"file not found":GOTO211 209 IFp=5THENp$=p$+"device not present":GOTO211 210 p$=p$+STR$( st ) 211 SYS9809: 212 a=LEN(p$):s=19-(a/2):a$="{sh asterisk*40}" 213 PRINT "{green}{clear}{down*9}{red}";SPC(s);"U";LEFT$(a$,a);"I" 214 PRINT SPC(s);"{sh -}{white}";p$;"{red}{sh -}" 215 PRINT SPC(s);"J";LEFT$(a$,a);"K" 216 POKE198,0:PRINT SPC(20-4);"{up}{cm w}return{cm q}":FOR b=1 TO 500:NEXT 217 PRINT SPC(20-4);"{up}{sh asterisk*8}":FOR b=1 TO 500:NEXT 218 IFPEEK(198)THENa$="":GET a$:IFa$=CHR$(13)THENRUN 219 GOTO216 220 REM ***** display words 221 IFPEEK(ss+1)<1THENRETURN 222 w1$=w2$:POKE113,FNl(wt):POKE114,FNh(wt) 223 SYS9874::a=PEEK(142) 224 SYS10013:wt=wt+a+1 225 w2$=LEFT$(a1$,a) 226 IFpic=0THENPRINT"{home}{down*10}{right}";:GOSUB229:PRINT"{down}{right}";:GOSUB230:GOTO228 227 PRINT"{home}{down*23}";:GOSUB229:GOSUB230 228 POKEss+1,0:RETURN 229 PRINT"{light green}"w1$;LEFT$(bl$,39-POS(0)):RETURN 230 PRINT"{green}"w2$;LEFT$(bl$,39-POS(0));:POKE212,0:PRINT"{home}":RETURN 231 REM ***** music only display 232 IFpic=0THENSYS10099 233 RETURN 234 : 235 END stop tok64 (bastext 1.0)