*ô > MkSrc32 - Make a 32016 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:á ø: /ô > Dis32 1.00 - 32000 disassembly routines  "ݤDis_Name(A%):X%?3=2:="32000" #ݤDis_Code(A%,Ptr%,Data%):ê op%  2op%=!Data%:X%!0=0:$(X%+4)=¤_32:X%?3=num%:=num% * ݤ_32 4 num%=1 >2ç(op%€&FF)=&12:num%=2:="RET &"+¤h0(Data%?1,2) HEç(op%€&CF)=&02:=Á"BSRRETCXPRXP",((op%€&F0)16)*3+1,3)+" "+¤dispPC R2ç(op%€&FF)=&42:num%=2:="RETT &"+¤h0(Data%?1,2) \ç(op%€&FF)=&52:="RETI" f-ç(op%€&FF)=&62:num%=2:="SAVE [reg list]" p/ç(op%€&FF)=&72:num%=2:="RESTORE [reg list]" z6ç(op%€&FF)=&82:num%=2:="ENTER [reg list],"+¤dispPC „-ç(op%€&FF)=&92:num%=2:="EXIT [reg list]" Žç(op%€&FF)=&A2:="NOP" ˜ç(op%€&FF)=&B2:="WAIT" ¢ç(op%€&FF)=&C2:="DIA" ¬2ç(op%€&FF)=&D2:num%=2:="FLAG &"+¤h0(Data%?1,2) ¶2ç(op%€&FF)=&E2:num%=2:="SVC &"+¤h0(Data%?1,2) À2ç(op%€&FF)=&F2:num%=2:="BPT &"+¤h0(Data%?1,2) Ê5ç(op%€&0F)=&0A:="B"+¤cc((op%€&F0)16)+" "+¤dispPC Ô num%=2 Þ‡ç(op%€&0000FF)=&00004E:A$=Á"ROT ASH CBIT CBITIxxxx LSH SBIT SBITINEG NOT xxxx SUBP ABS COM IBIT ADDP",(op%€&3C0)1024*5+1,5) è‘ç(op%€&0000FF)=&00004E:=ÀA$,§A$+" "," ")-1)+¤sz(Data%?1 € 3)+" "+¤gen((Data%?2 € &F8)8,Data%?1 € 3)+","+¤gen((op%€&3C000)&4000,Data%?1 € 3) ò: üŽç(op%€&003CFF)=&0000CE:num%=3:="MOVM"+¤sz(Data%?1 €3)+" "+¤gen((op%€&7C000)&4000,Data%?1 €3)+","+¤gen((Data%?2 €&F8)8,Data%?1 € 3)+¤disp : Ôç(op%€&0000FF)=&0000CE:num%=3:A$=Á"MOVM CMPM INSS"+¤sz(data%?1 € 3)+" EXTS MOVXBWMOVZBWMOVZ"+¤sz(Data%?1 €3)+"DMOVX"+¤sz(Data%?1 €3)+"DMUL MEI xxx DEI QUO REM MOD DIV",(op%€&3C00)1024*6+1,6) mç(op%€&0000FF)=&0000CE:=A$+" "+¤gen((Data%?2 €&F8)8,Data%?1 € 3)+","+¤gen((op%€&7C000)&4000,Data%?1 €3) $: .ƒç(op%€&F870FF)=&00000E:num%=3:=Á"MOVS CMPS SETCFGSKPS",(op%€&C00)1024*6+1,6)+¤sz(Data%?1 € 3)+" "+¤short((op%€&38000)&8000) 8±ç(op%€&43F)=&02E:num%=3:=Á"EXT CVTP INS CHECK",(op%€&C0)64*5+1,5)+" R"+Ã((Data%?1 €&38)8)+","+¤gen((Data%?2 €&F8)8,Data%?1 € 3)+","+¤gen((op%€&7C000)&4000,Data%?1 € 3) B: L]ç(op%€&7C)=&0C:="ADDQ"+¤sz(op%€3)+" "+¤short((op%€&380)128)+","+¤gen((Data%?1)8,op%€3) V]ç(op%€&7C)=&1C:="CMPQ"+¤sz(op%€3)+" "+¤short((op%€&380)128)+","+¤gen((Data%?1)8,op%€3) `[ç(op%€&7C)=&2C:="SPR"+¤sz(op%€3)+" "+¤areg((op%€&780)128)+","+¤gen((Data%?1)8,op%€3) jRç(op%€&7C)=&3C:="S"+¤cc((op%€&380)128)+¤sz(op%€3)+","+¤gen((Data%?1)8,op%€3) tfç(op%€&7C)=&4C:="ACB"+¤sz(op%€3)+" "+¤short((op%€&380)128)+","+¤gen((Data%?1)8,op%€3)+","+¤disp ~]ç(op%€&7C)=&5C:="MOVQ"+¤sz(op%€3)+" "+¤short((op%€&380)128)+","+¤gen((Data%?1)8,op%€3) ˆ[ç(op%€&7C)=&6C:="LPR"+¤sz(op%€3)+" "+¤areg((op%€&780)128)+","+¤gen((Data%?1)8,op%€3) ’_ç(op%€&FC)=&7C:A$=Á"CXPD BICPSRJUMP BISPR xxxx ADJSP JSR CASE",((op%€&700)256)*6+1,6) œ=ç(op%€&FC)=&7C:=A$+¤sz(op%€3)+" "+¤gen((Data%?1)8,op%€3) ¦ç(op%€&0C)<>&0C:=Á"ADDCMPBICxxxADCMOVORRxxxSUBADRANDxxxSBCTSTXOR",(op%€&3C)4*3+1,3)+¤sz(op%€3)+" "+¤gen((Data%?1)8,op%€3)+","+¤gen((op%€&7C0)64,op%€3) ° num%=3 º: Änum%=1:="EQUB &"+¤h0(op%,2) Î ØGç(op%€&00043F)=&00002E:=Á"EXT CVTP INS CHECK",(op%€&C0)64*5+1,5) âFç(op%€&00043F)=&00042E:=Á"INDEXFFS MOVSUxxxx",(op%€&C0)64*5+1,5) ì]ç(op%€&0000FF)=&00003E:=Á"MOVIFLFSR MOVLFMOVFLROUNDTRUNCSFSR FLOOR",(op%€&300)256*5+1,5) ölç(op%€&0000FF)=&0000BE:=Á"ADDFMOVFCMPFSUBFNEGFxxx xxx DIVFxxx xxx MULFABSFxxx xxx",(op%€&3C)1024*4+1,4) Hç(op%€&0030FF)=&00001E:=Á"RDVALWRVALLMR SMR",(op%€&C00)1024*5+1,5)  : num%=1:="EQUB &"+¤h0(op%) : (:ݤcc(A%)=Á"EQNECSCCHILSGTLEFSFCLOHSLTGEALNV",A%*2+1,2) 2+ݤshort(A%):ç A%<8:="+"+ÃA% ‹ =Ã(A%-16) <ݤsz(A%)=Á"BW-D",A%+1,1) Fݤgen(A%,sz%):ê rn%:rn%=A% PçA%<8:="R"+ÃA% Z#çA%<16:=¤disp+"(R"+Ã(rn%-8)+")" d,çA%=16:A$=¤disp+"(FP)":=¤disp+"("+A$+")" n,çA%=17:A$=¤disp+"(SP)":=¤disp+"("+A$+")" x,çA%=18:A$=¤disp+"(SB)":=¤disp+"("+A$+")" ‚çA%=19:="reserved" Œ8çA%=20:çsz%=0:num%=num%+1:="&"+¤h0(Data%?(num%-1),2) –8çA%=20:çsz%=1:num%=num%+2:="&"+¤h0(Data%!(num%-2),4)  sçA%=20:num%=num%+4:="&"+¤h0(Data%?(num%-4),2)+¤h0(Data%?(num%-3),2)+¤h0(Data%?(num%-2),2)+¤h0(Data%?(num%-1),2) ªçA%=21:="@"+¤disp ´çA%=22:="EXT (disp1)+disp2" ¾çA%=23:="TOS" ÈçA%=24:=¤disp+"(FP)" ÒçA%=25:=¤disp+"(SP)" ÜçA%=26:=¤disp+"(SB)" æçA%=27:="*+"+¤disp ðrn%=Data%?num%:num%=num%+1 ú/çA%=28:=¤gen(rn%8,sz%)+"[R"+Ã(rn%€7)+":B]" /çA%=29:=¤gen(rn%8,sz%)+"[R"+Ã(rn%€7)+":W]" /çA%=30:=¤gen(rn%8,sz%)+"[R"+Ã(rn%€7)+":D]" /çA%=31:=¤gen(rn%8,sz%)+"[R"+Ã(rn%€7)+":Q]" "="" ,+ݤdisp:A%=¤dispVal:="&"+¤h0(A%,dz%*2+2) 6-ݤdispPC:="&"+¤h0(¤dispVal+num%*0+Ptr%,8) @7ݤdispVal:dz%=(Data%?num%)64:dz%=»Á"0013",dz%+1,1) J,çdz%=0:num%=num%+1:A%=Data%?(num%-1):=A% TFçdz%=1:num%=num%+2:A%=Data%?(num%-1)+256*(Data%?(num%-2) € 63):=A% ^dA%=data%?(num%+3)+256*data%?(num%+2)+65536*data%?(num%+1)+&1000000*(data%?num% € 63):num%=num%+4 h=A% rݤareg(A%) |çA%=0:="US" †çA%=8:="FP" çA%=9:="SP" šçA%=10:="SB" ¤çA%=13:="PSR" ®çA%=14:="INTBASE" ¸çA%=15:="MOD"  ="xx" ÿ