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