, > MkSrcPDP - Make a PDP-11 source file # > MkSrcCore v0.10 16-Aug-2007  (C)2007 J.G.Harston (: 2G ctrl% 31,name% 127:X%=ctrl%:Y%=X%256:cpu%=65:mask%=&FFFF:wdth%=4 <: F :Close_All:: P"Input object file: "in$ Z0file(in$,5)<>1:"File '"in$"' not found": d: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%; !out(&F4+" Source for "+in$)  out(" ") "?out("OS_CLI=&FFF7:OSBYTE=&FFF4:OSWORD=&FFF1:OSWRCH=&FFEE") ,?out("OSWRCR=&FFEC:OSNEWL=&FFE7:OSASCI=&FFE3:OSRDCH=&FFE0") 6 out(" ") @out("load%=&"+~load%) J&out(&DE+" mcode% &"+~(len%+20)) T out(&E3+" P=0 "+&B8+" 1") ^out("P%=load%:O%=mcode%") hout("[OPT P*3+4") r: |1addr%=load%::ĩ~addr%,8);~addr%;:L$=line addr%=exec%:out(".exec%") zlb%=label%-4:lb%=lb%+4:lb%>label%+lbmax% !lb%=(addr%mask%): !lb%=(addr%mask%):out(".L"+h0(addr%mask%,wdth%)) eA%=L$,"&"):A%:L%=L$,A%):L%>=(load%mask%) L%<(load%mask%)+len%:L$=L$,A%-1)+"L"+L$,A%+1) 3L$=L$+16-L$," ")+" :\ "+h0(addr%,wdth%)+"= " = A%=0 num%-1:L$=L$+h0(?(addr%-load%+mem%+A%),2)+" ": L$=L$+38-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) Oout(&F1+" ""*SAVE "";~mcode%;"" "";~O%;"" "";~exec%;"" "";~load%") line%=&FFFE:out("") 7out%:#out%:out%=0:X%!2=&FFFFFB00:A%=file(out$,2) : : Aݤline:num%=Dis_Code(cpu%,addr%,addr%-load%+mem%):L$=$(X%+4) &/num%=X%?3:flg%=X%?2:A%=L$,"&FF"):A%=0:=L$ 0+L%=(L$,A%,5))-&FFCE:L%<0 L%>43:=L$ :G((L%3-(L%>27))3-3*(L%=24)+(L%>24 L%<28)-3*(L%=27)-(L%=28)):=L$ Dg=L$,A%-1)+"OS"+"FINDGBPBBPUTBGETARGSFILERDCHASCINEWLWRCRWRCHWORDBYTE_CLI",(L%3)*4+1,4)+A$,A%+5) N: Xout(A$):out%=0: b;line%=line%+1:?name%=13:name%?1=line%256:name%?2=line% l=name%?3=A$+4:$(name%+4)=A$:gbpb(2,out%,name%,A$+4,0): v: 3Close_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 3gbpb(A%,ch%,X%!1,X%!5,X%!9):?X%=ch%: &FFD1: : : 1 > DisPDP 1.00 - PDP-11 disassembly routines ݤDis_Name(A%)="PDP-11" /ݤDis_Code(A%,Ptr%,Data%): s%,d%,c%:num%=2 ;c%=!Data%:s%=(c%&0FC0)64:d%=c%63:c%=(c%&F000)&1000  $(X%+4)=pdp:X%?3=num%:=num%  ݤpdp  x0 50-63 xx:  q(c%7)=0: s%>39: s%<52:="CLRCOMINCDECNEGADCSBCTSTRORROLASRASL",3*(s%-40)+1,3)+" B",c%8+1,1)+" "+mr(d%) *) x1, x2, x3, x4, x5 else x0, x6, x7: 4p((c%-1)&7)<5:="MOVCMPBITBICBIS",(c%7)*3-2,3)+" B",c%8+1,1)+" "+mr(s%)+","+mr(d%) =("FNpdp_"+~c%) >: H(ݤpdp_F:="FLOP "+mr(s%)+","+mr(d%) R: \(ݤpdp_E:="SUB "+mr(s%)+","+mr(d%) f: pQݤpdp_8: s%<32:="BPLBMIBHIBLSBVCBVSBCCBCS",3*((s%4))+1,3)+" "+jr(?Data%) z# s%<36:="EMT &"+h0(?Data%,2) # s%<40:="TRAP &"+h0(?Data%,2)  s%=52:="MTPS "+mr(d%)  s%=53:="MFPD "+mr(d%)  s%=54:="MTPD "+mr(d%)  s%=55:="MFPS "+mr(d%) ="EQUB &"+h0(!Data%,4) :  ݤpdp_7 > s%<40:="MUL DIV ASH ASHCXOR ",3*(s%8)+1,4)+" "+mr(d%) A s%=40: d%<32:="FADDFSUBFMULFDIV",3*(d%8)+1,4)+" "+r(d%) 9(s%&38)=&38:="SOB "+r(s%)+","+jr(d%-192*(d%>31)) ="EQUB &"+h0(!Data%,4) : (ݤpdp_6:="ADD "+mr(s%)+","+mr(d%) : Sݤpdp_0: s%<32: s%>3:="BR BNEBEQBGEBLTBGTBLE",3*(s%4)-2,3)+" "+jr(?Data%) $^ s%=0: d%<7:="HALTWAITRTIBPTIOTRESETRTT",d%*4+1+(d%>2)+(d%>3)+(d%=5),4+(d%>2)-2*(d%>4)) . s%=1:="JMP "+mr(d%) 8! s%=2: d%<8:="RTS "+r(d%) B) s%=2:(d%&38)=&18:="SPL "+(d%7) L/ s%=2:(d%&30)=&20:="CCC &"+h0(d%&F,2) V/ s%=2:(d%&30)=&30:="SCC &"+h0(d%&F,2) ` s%=3:="SWAB "+mr(d%) j/(s%&38)=&20:="JSR "+r(s%7)+","+mr(d%) t s%=52:="MARK &"+h0(d%,2) ~ s%=53:="MFPI "+mr(d%)  s%=54:="MTPI "+mr(d%)  s%=55:="SXT "+mr(d%) ="EQUB &"+h0(!Data%,4) : ;ݤr(A%):A%=A%7: A%=7:="PC" A%=6:="SP" ="R"+ A% .ݤmr(A%): m%:m%=(A%&38)8:(A%7)=7:=pc  m%=0:=r(A%)  m%=1:="("+r(A%)+")"  m%=2:="("+r(A%)+")+"  m%=3:="@("+r(A%)+")+"  m%=4:="-("+r(A%)+")"  m%=5:="@-("+r(A%)+")" @ m%=6:num%=num%+2:="&"+h0(Data%!(num%-2),4)+"("+r(A%)+")"  A m%=7:num%=num%+2:="@&"+h0(Data%!(num%-2),4)+"("+r(A%)+")" ="" ݤpc ( m%=0:="PC" 2 m%=1:="(PC)" <2 m%=2:num%=num%+2:="#&"+h0(Data%!(num%-2),4) F3 m%=3:num%=num%+2:="@#&"+h0(Data%!(num%-2),4) P m%=4:="-(PC)" Z m%=5:="@-(PC)" d8 m%=6:num%=num%+2:="&"+h0(Ptr%+4+Data%!(num%-2),4) n9 m%=7:num%=num%+2:="@&"+h0(Ptr%+4+Data%!(num%-2),4) x: Kݤjr(A%): A%<128:="&"+h0(Ptr%+A%*2+2,4) ="&"+h0(Ptr%+A%*2+2-512,4) :