8-Bit Software Online Conversion

Run-Build Mix-Ed - Listing

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