)ô > MkSrc09 - Make a 6809 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:á ø: :ô > Dis09 1.00 - 24Sep2007 - 6809 disassembly routines  : ݤDis_Name(A%)="6809"  $ݤDis_Code(A%,Ptr%,Data%):num%=1 *HX%!0=0:$(X%+4)=¤_diss:çnum%<1:num%=1:$(X%+4)="EQUB &"+¤h0(Data%?0,2) 4X%?3=num%:=num% >ݤ_diss:op%=?Data%:num%=1 H/ç(op%€&CF)=&83:="SUBD "+¤mde2((op%€&30)16) R/ç(op%€&CF)=&C3:="ADDD "+¤mde2((op%€&30)16) \çop%=&87:num%=0:="" fçop%=&C7:num%=0:="" pBç(op%€&CF)=&87:="ST"+½(65+(op%€64)64)+" "+¤mde((op%€&30)16) z/ç(op%€&CF)=&8C:="CMPX "+¤mde2((op%€&30)16) „/ç(op%€&CF)=&CC:="LDD "+¤mde2((op%€&30)16) 1çop%=&8D:num%=2:="BSR &"+¤h0(¤jr(Data%?1),4) ˜.ç(op%€&CF)=&8D:="JSR "+¤mde((op%€&30)16) ¢çop%=&CD:num%=0:="" ¬/ç(op%€&CF)=&CD:="STD "+¤mde2((op%€&30)16) ¶/ç(op%€&CF)=&8E:="LDX "+¤mde2((op%€&30)16) À/ç(op%€&CF)=&CE:="LDU "+¤mde2((op%€&30)16) Êçop%=&8F:num%=0:="" Ô/ç(op%€&CF)=&8F:="STX "+¤mde2((op%€&30)16) Şçop%=&CF:num%=0:="" è/ç(op%€&CF)=&CF:="STU "+¤mde2((op%€&30)16) ò]ç(op%€&80)=&80:=¤alu(op%€15)+½(65+(op%€64)64)+" "+À" ",(op%€&8E)=&86)+¤mde((op%€&30)16) ü2ç(op%€&E0)=&40:=¤rot(op%€15)+½(65+(op%€16)16) /ç(op%€&EF)=&6E:="JMP "+¤mde2((op%€&30)16) 8ç(op%€&E0)=&60:=¤rot(op%€15)+" "+¤mde((op%€&30)16) qç(op%€&E0)=&20:num%=num%+1:="B"+Á"RARNHILSCCCSNEEQVCVSPLMIGELTGTLE",(op%€15)*2+1,2)+" &"+¤h0(¤jr(Data%?1),4) $çop%=&0E:="JMP "+¤mde(1) .-ç(op%€&F0)=&00:=¤rot(op%€15)+" "+¤mde(1) 8çop%=&10:=¤grp10 Bçop%=&11:=¤grp11 Lçop%=&12:="NOP" Vçop%=&13:="SYNC" `çop%=&19:="DAA" jçop%=&1A:="ORCC "+¤mde(0) tçop%=&1C:="ANDCC "+¤mde(0) ~çop%=&1D:="SEX" ˆaç(op%€&FE)=&1E:num%=num%+1:=Á"EXGTFR",(op%€1)*3+1,3)+" "+¤r(Data%?1 16)+","+¤r(Data%?1 €15) ’1ç(op%€&FC)=&30:="LEA"+¤reg(op%€3)+" "+¤mde(2) œ/çop%=&34:num%=num%+1:="PSHS "+¤stk(Data%?1) ¦/çop%=&35:num%=num%+1:="PULS "+¤stk(Data%?1) °/çop%=&36:num%=num%+1:="PSHU "+¤stk(Data%?1) º/çop%=&37:num%=num%+1:="PULS "+¤stk(Data%?1) Äçop%=&39:="RTS" Îçop%=&3A:="ABX" Øçop%=&3B:="RTI" âçop%=&3C:="CWAI" ìçop%=&3D:="MUL" öçop%=&3F:="SWI" >çop%=&16:num%=3:="LBRA &"+¤h0(¤ljr(256*Data%?1+Data%?2),4)  >çop%=&17:num%=3:="LBSR &"+¤h0(¤ljr(256*Data%?1+Data%?2),4) çop%=&3E:="RESET" num%=0:="" (#ݤgrp10:num%=num%+1:op%=Data%?1 2~ç(op%€&E0)=&20:num%=num%+1:="LB"+Á"RARNHILSCCCSNEEQVCVSPLMIGELTGTLE",(op%€15)*2+1,2)+" &"+¤h0(¤ljr(256*Data%?1+Data%?2),4) <çop%=&3F:="SWI2" F/ç(op%€&CF)=&83:="CMPD "+¤mde2((op%€&30)16) P/ç(op%€&CF)=&8C:="CMPY "+¤mde2((op%€&30)16) Z/ç(op%€&CF)=&8E:="LDY "+¤mde2((op%€&30)16) dçop%=&8F;num%=0:="" n/ç(op%€&CF)=&8F:="STY "+¤mde2((op%€&30)16) x/ç(op%€&CF)=&CE:="LDS "+¤mde2((op%€&30)16) ‚çop%=&CF:num%=0:="" Œ/ç(op%€&CF)=&CF:="STS "+¤mde2((op%€&30)16) –num%=0:=""  #ݤgrp11:num%=num%+1:op%=Data%?1 ªçop%=&3F:="SWI3" ´/ç(op%€&CF)=&83:="CMPU "+¤mde2((op%€&30)16) ¾/ç(op%€&CF)=&8C:="CMPS "+¤mde2((op%€&30)16) Ènum%=0:="" ÒMݤalu(A%)=Á"SUBCMPSBCxxxANDBITLD ST EORADCOR ADD",A%*3+1,3+(A%=6 „ A%=7)) Ü5ݤrot(A%):çA%=1„A%=2„A%=5„A%=11„A%=14:num%=-9:="" æB=Á"NEGxxxxxxCOMLSRxxxRORASRASLROLDECxxxINCTSTxxxCLR",A%*3+1,3) ğDݤmde2(A%):çA%=0:num%=num%+2:="#&"+¤h0(Data%?1,2)+¤h0(Data%?2,2) ú4ݤmde(A%):çA%=0:num%=num%+1:="#&"+¤h0(Data%?1,2) )çA%=1:num%=num%+1:="&"+¤h0(Data%?1,2) $çA%=2:num%=num%+1:=¤idx(Data%?1) 8çA%=3:num%=num%+2:="&"+¤h0(Data%?1,2)+¤h0(Data%?2,2) ",ݤidx(A%):R$=¤reg((A%€&60)32):A%=A%€&9F ,çA%<16:=Ã(A%€15)+","+R$ 6 çA%<32:=Ã((A%€15)-16)+","+R$ @&O$="":C$="":ç(A%€16):O$="[":C$="]" J A%=A%€15 TçA%=0:çO$<>"":num%=0:="" ^çA%=0:=O$+R$+"+"+C$ hçA%=1:=O$+R$+"++"+C$ rçA%=2:çO$<>"":num%=0:="" |çA%=2:=O$+"-"+R$+C$ †çA%=3:=O$+"--"+R$+C$ çA%=4:=O$+R$+C$ šçA%=5:=O$+"B,"+R$+C$ ¤çA%=6:=O$+"A,"+R$+C$ ®çA%=7:num%=0:"" ¸6çA%=8:num%=num%+1:=O$+"&"+¤h0(Data%?2,2)+","+R$+C$ ÂEçA%=9:num%=num%+2:=O$+"&"+¤h0(Data%?2,2)+¤h0(Data%?3,2)+","+R$+C$ ÌçA%=10:num%=0:="" ÖçA%=11:=O$+"D,"+R$+C$ à6çA%=12:num%=num%+1:=O$+"&"+¤h0(Data%?2,2)+",PC"+C$ êEçA%=13:num%=num%+2:=O$+"&"+¤h0(Data%?2,2)+¤h0(Data%?3,2)+",PC"+C$ ôçA%=14:num%=0:="" şçA%=14:çO$="":num%=0:="" ?çA%=15:num%=num%+2:=O$+"&"+¤h0(Data%?2,2)+¤h0(Data%?3,2)+C$ ="" ݤreg(A%)=Á"XYUS",A%+1,1) &Gݤr(A%)=Á"D X Y U S PC????A B CCDP????????",A%*2+1,1-(A%=5 „ A%>9)) 00ݤjr(A%):çA%<128:=Ptr%+2+A% ‹ =Ptr%+2-256+A% :5ݤljr(A%):çA%<32768:=Ptr%+2+A% ‹ =Ptr%+3-65536+A% Dݤstk(A%):A$="" Nç(A%€1):A$="CC" Xç(A%€2):A$=A$+",A" bç(A%€4):A$=A$+",B" lç(A%€8):A$=A$+",DP" vç(A%€16):A$=A$+",X" €ç(A%€32):A$=A$+",Y" Šç(A%€64):A$=A$+",S/U" ”ç(A%€128):A$=A$+",PC" çÀA$,1):A$=ÁA$,2) ¨=A$ ÿ