10 DEFFNS="RunBld" 20 PROCa:IF c%=1?&945=&C6:?&949=&C6 ELSE ?&945=&E6:?&949=&E6 30 MODE128+7:HIMEM=PAGE+&B00:mix$="":REPEAT:CLS:PRINT'"†Construct a mix player"'"†By C.J.Richardson."'' 40 PRINT'"ƒ(L)oad mix"'"ƒ(S)ave mix player"'"ƒ(P)lay mix in memory ";mix$'"ƒ(I) Spool data into program"'"ƒ(O) Spool data out to file"'"ƒ(*) Oscli command"'"ƒEscape to alter data" 50 q$=GET$:IF q$="L"OSCLI".":INPUT"ƒName of mix to load ";mix$:OSCLI"LO. "+mix$+" "+STR$~(PAGE+&B00) 60 IF q$="P"PRINT"†Top of code is at &";~P%:CALLstart 70 IFq$="S"PROCg:OSCLI".":INPUT"†Save file name ";run$:OSCLI"SA."+run$+" 900 "+STR$~P%+" "+STR$~start:PRINT"10*K.0*LO. |M*RUN "+run$+"|M"'"20*FX138,0,128"'"†Is an example of the program to run the"'"†saved data" 80 IFq$="I"OSCLI".":INPUT"„Spooled file to load in ";in$:OSCLI"K.0DEL. 260,2000|M*EX. "+in$+"|MRUN|M":OSCLI"FX138,0,128":END 90 IFq$="O"OSCLI".":INPUT"„Name of data file to save ";out$:OSCLI"K.0*SPOOL "+out$+"|ML.260,|M*SPOOL|MRUN|M":OSCLI"FX138,0,128":END 100 IFq$="*"INPUT"*"o$:OSCLIo$:PRINT"ƒPress a key":REPEATUNTILGET 110 UNTILFALSE 120 DEFPROCa 130 FORl%=0TO2STEP2:P%=&900:[:OPTl% 140 SEI:LDA#&FF:STA&FE43:LDA#&84:JSRo:LDA#&0:JSRo:LDA#&A4:JSRo:LDA#&0:JSRo:LDA#&C4:JSRo:LDA#&0:JSRo:LDA#&0:STA&70:LDA&75:STA&71 150 .m:LDY#&0:LDA(&70),Y:AND#&F:JSRn:LDY#&4:.m1:DEY:BNEm1:LDA(&70),Y:AND#&F0:LSRA:LSRA:LSRA:LSRA:JSRn:INC&70:BNEm:INC&71:LDA&71:CMP&76:BNEm 160 LDA#&F:JSRn:CLI:RTS:.o:STA&FE4F:LDY#&0:STY&FE40:NOP:NOP:NOP:NOP:NOP:NOP:LDY #&8:STY&FE40:RTS:.n:TAY:LDA&985,Y:ORA#&90:JSRo:ORA#&20:JSRo:EOR#&60 170 JSRo:LDY&74:.m2:DEY:BNEm2:RTS 180 ]:!P%=&01010000:!(P%+4)=&03020201:!(P%+8)=&07060504:!(P%+12)=&0F0C0908:!(P%+16)=&00000020 190 P%=P%+20:[OPTl%:.start:]:REPEAT:READa%,b%,c%:IF a%<>0:[:OPTl%:LDA#a%:STA&75:LDA#b%:STA&76:LDA#c%:STA&74:JSR&900:] 200 UNTILa%=0:IFb%=1[:OPTL%:JMPstart:]:RESTORE:NEXT:ENDPROC ELSE [:OPTL%:RTS:]:RESTORE:NEXT:ENDPROC 210 DEFPROCg 220 s%=&FF:e%=0:REPEAT:READa%,b%,c%:IFa%<>0IFa%e%e%=b% 240 UNTILa%=0:s%=s%*&100:e%=e%*&100:RESTORE:ENDPROC 250 REM REPEAT START,FINISH,LENGTH, THEN 0,0,0=straight or 0,1,0=loop or 0,0,1=reverse 260 DATA&19,&80,&20 270 DATA0,0,0