)ô > MkSrc65 - Make a 6502 source file #ô > MkSrcCore v0.10 16-Aug-2007 ô (C)2007 J.G.Harston (: 29Ş ctrl% 63,name% 127:X%=ctrl%:Y%=X%256:X%!0=0:cpu%=0 <@A$=¤Dis_Name(cpu%):wth%=(X%?3€3)*2+4:mask%= ("&"+Äwth%,"F")) F: Pî … ö:òClose_All:ñ:à Zè"Input object file: "in$ d0ç¤file(in$,5)<>1:ñ"File '"in$"' not found":à n:len%=X%!10:ç “-¸P-2000"":out%=®(out$) ¾: È'ñ "Scanning for labels....";~load%; Ò1addr%=load%:lbmax%=0:õ:ñÄ©Ã~addr%,½8);~addr%; ÜcL$=¤line:A%=§L$,"&"):çA%:L%= ÁL$,A%):çL%>=(load%€mask%) € L%<(load%€mask%)+len%:lbmax%=lbmax%+4 æ6addr%=addr%+num%:ıaddr%>load%+len%:Ş label% lbmax% ğ: ú'ñ'"Creating labels........";~load%; 3addr%=load%:lb%=label%:õ:ñÄ©Ã~addr%,½8);~addr%; eL$=¤line:A%=§L$,"&"):çA%:L%= ÁL$,A%):çL%>=(load%€mask%) € L%<(load%€mask%)+len%:!lb%=L%:lb%=lb%+4 &addr%=addr%+num%:ıaddr%>load%+len% ": ,'ñ'"Outputting source......";~load%; 6òout(½&F4+" > "+out$) @!òout(½&F4+" Source for "+in$) J òout(" ") T?òout("OS_CLI=&FFF7:OSBYTE=&FFF4:OSWORD=&FFF1:OSWRCH=&FFEE") ^?òout("OSWRCR=&FFEC:OSNEWL=&FFE7:OSASCI=&FFE3:OSRDCH=&FFE0") h òout(" ") ròout("load%=&"+Ã~load%) |&òout(½&DE+" mcode% &"+Ã~(len%+20)) † òout(½&E3+" P=0 "+½&B8+" 1") òout("P%=load%:O%=mcode%") šòout("[OPT P*3+4") ¤: ®1addr%=load%:õ:ñÄ©Ã~addr%,½8);~addr%;:L$=¤line ¸çaddr%=exec%:òout(".exec%") Âylb%=label%-4:õlb%=lb%+4:ılb%>label%+lbmax% „ !lb%=(addr%€mask%):ç !lb%=(addr%€mask%):òout(".L"+¤h0(addr%€mask%,wth%)) ÌeA%=§L$,"&"):çA%:L%= ÁL$,A%):çL%>=(load%€mask%) € L%<(load%€mask%)+len%:L$=ÀL$,A%-1)+"L"+ÁL$,A%+1) Ö2L$=L$+Ä15-©L$," ")+" :\ "+¤h0(addr%,wth%)+"= " à=ã A%=0 ¸ num%-1:L$=L$+¤h0(?(addr%-load%+mem%+A%),2)+" ":í êL$=L$+Ä37-©L$," ") ô7ã A%=0 ¸ num%-1:L$=L$+¤ch(?(addr%-load%+mem%+A%)):í ş!òout(L$):ç(flg%€64):òout(" ") &addr%=addr%+num%:ıaddr%>load%+len% òout("]"+½&ED) Oòout(½&F1+" ""*SAVE "";~mcode%;"" "";~O%;"" "";~exec%;"" "";~load%") &çout%:Õ#out%,13:Õ#out%,255 07çout%:Ù#out%:out%=0:X%!2=&FFFFFB00:A%=¤file(out$,2) :ñ:à D: NAݤline:num%=¤Dis_Code(cpu%,addr%,addr%-load%+mem%):L$=$(X%+4) X/num%=X%?3:flg%=X%?2:A%=§L$,"&FF"):çA%=0:=L$ b+L%= (ÁL$,A%,5))-&FFCE:çL%<0 „ L%>43:=L$ lGç((L%ƒ3-(L%>27))ƒ3-3*(L%=24)+(L%>24 € L%<28)-3*(L%=27)-(L%=28)):=L$ vg=ÀL$,A%-1)+"OS"+Á"FINDGBPBBPUTBGETARGSFILERDCHASCINEWLWRCRWRCHWORDBYTE_CLI",(L%3)*4+1,4)+ÁA$,A%+5) €: Šİòout(A$):çout%=0:á ”;line%=line%+1:?name%=13:name%?1=line%256:name%?2=line% =name%?3=©A$+4:$(name%+4)=A$:ògbpb(2,out%,name%,©A$+4,0):á ¨: ²3İòClose_All:out%=out%:çout%:A%=out%:out%=0:Ù#A% ¼á Æ: Ğ2ݤch(A%):A%=A%€127:çA%<32 „ A%=127:="." ‹ =½A% Ú#ݤh0(A%,N%)=Â"0000000"+Ã~A%,N%) äBݤfile(A$,A%):$name%=A$:?X%=name%:X%?1=name%256:=(º&FFDD)€&FF î3İògbpb(A%,ch%,X%!1,X%!5,X%!9):?X%=ch%:Ö &FFD1:á ø: =ô > Dis65 1.00 - 11-Nov-1989 - 65x02 disassembly routines  Eô v1.01 - &B8 returns CLV instead of SEV, LDX/STX addr,Y returned :  ݤDis_Name(cpu%)="65x02" *7ݤDis_Code(cpu%,Ptr%,Data%):ê op%,ins%,md%,b0%,num% 4)X%!0=0:$(X%+4)=¤_diss:X%?3=num%:=num% H ݤ_diss RTç(op%€&F)=8:=Á"PHPCLCPLPSECPHACLIPLASEIDEYTYATAYCLVINYCLDINXSED",1+3*(op%16),3) \@ç(op%€&8F)=&8A:=Á"TXATXSTAXTSXDEXPHXNOPPLX",3*(op%16)-23,3) fçop%=&20:="JSR "+¤mde(3) p;ç(op%€&9F)=0:X%?2=(op%€64):=Á"BRK***RTIRTS",ins%*3+1,3) z)ç(op%€&DF)=&5A:=Á"PHYPLY",ins%*3-5,3) „çop%=&89:="BIT "+¤mde(2) $çb0%=1:=¤alu(ins%)+" "+¤mde(md%) ˜)ç(op%€31)=&12:=¤alu(ins%)+" "+¤mde(8) ¢$ç(op%€&EF)=&64:="STZ "+¤mde(md%) ¬(ç(op%€&FD)=&9C:="STZ "+¤mde(b0%*2+3) ¶3ç(op%€&D7)=&96:=¤rot(ins%)+" "+¤mde(md%€3)+",Y" À(ç(op%€7)=6:=¤rot(ins%)+" "+¤mde(md%) ÊNç(op%€&1F)=16:num%=2:="B"+Á"PLMIVCVSCCCSNEEQ",1+2*ins%,2)+" "+¤jr(Data%?1) Ô<ç(op%€&8F)=10:=¤rot((ins%+(md%€4)*1.5)‚((md%>4)€1))+" A" Ş9ç(op%€&E7)=4:="T"+Á"SR",1+(md%4),1)+"B "+¤mde(md%€3) è6ç(op%€&D3)=&C0:=¤bxy(ins%)+" "+¤mde(((md%‚3)-1)€3) ò$ç(op%€&E7)=&24:="BIT "+¤mde(md%) ü,ç(op%€&C7)=&84:=¤bxy(ins%)+" "+¤mde(md%) ;ç(op%€&FD)=&A0:="LD"+Á"YX",1+((op%€2)2),1)+" "+¤mde(2) Rç(op%€&CF)=&4C:çop%<>&5C:X%?2=64:="JMP "+À"(",op%>&5F)+¤mde(md%)+À")",op%>&5F) 0çop%=&80:num%=2:X%?2=64:="BRA "+¤jr(Data%?1) $!X%?2=128:="EQUB &"+¤h0(op%,2) .: 83ݤalu(A%)=Á"ORAANDEORADCSTALDACMPSBC",A%*3+1,3) B3ݤrot(A%)=Á"ASLROLLSRRORSTXLDXDECINC",A%*3+1,3) L3ݤbxy(A%)=Á"***BIT***STZSTYLDYCPYCPX",A%*3+1,3) V: `/ݤmde(A%):num%=2:çA%=2:="#&"+¤h0(Data%?1,2) j>ç(A%€2):num%=3:="&"+¤h0(Data%!1,4)+À",X",A%=7)+À",Y",A%=6) t+ç(A%€1):="&"+¤h0(Data%?1,2)+À",X",A%=5) ~4="(&"+¤h0(Data%!1,2)+À",X",A%=0)+")"+À",Y",A%=4) ˆ: ’Fݤjr(A%):çA%<128:="&"+¤h0(Ptr%+A%+2,4) ‹ ="&"+¤h0(Ptr%+A%+2-256,4) ÿ