, > MkSrcPDP - Make a PDP-11 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%?33)*2+4:mask%=("&"+wth%,"F")) F: P :Close_All:: Z"Input object file: "in$ d0file(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%; 6out(&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(" ") rout("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) Oout(&F1+" ""*SAVE "";~mcode%;"" "";~O%;"" "";~exec%;"" "";~load%") &out%:#out%,13:#out%,255 07out%:#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): : 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%):X%?3=&14:="PDP-11" 5ݤDis_Code(A%,Ptr%,Data%): s%,d%,c%:!X%=0:num%=2  ;c%=!Data%:s%=(c%&0FC0)64:d%=c%63:c%=(c%&F000)&1000 * $(X%+4)=pdp:X%?3=num%:=num% 4: > ݤpdp H x0 50-63 xx: Rq(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: fp((c%-1)&7)<5:="MOVCMPBITBICBIS",(c%7)*3-2,3)+" B",c%8+1,1)+" "+mr(s%)+","+mr(d%) =("FNpdp_"+~c%) p: z(ݤpdp_F:="FLOP "+mr(s%)+","+mr(d%) : (ݤpdp_E:="SUB "+mr(s%)+","+mr(d%) : Qݤpdp_8: s%<32:="BPLBMIBHIBLSBVCBVSBCCBCS",3*((s%4))+1,3)+" "+jr(?Data%) # 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) .: 8(ݤpdp_6:="ADD "+mr(s%)+","+mr(d%) B: LSݤpdp_0: s%<32: s%>3:="BR BNEBEQBGEBLTBGTBLE",3*(s%4)-2,3)+" "+jr(?Data%) V^ s%=0: d%<7:="HALTWAITRTIBPTIOTRESETRTT",d%*4+1+(d%>2)+(d%>3)+(d%=5),4+(d%>1)-2*(d%>4)) ` s%=1:="JMP "+mr(d%) j! s%=2: d%<8:="RTS "+r(d%) t) s%=2:(d%&38)=&18:="SPL "+(d%7) ~/ s%=2:(d%&30)=&20:="CCC &"+h0(d%&F,2) / s%=2:(d%&30)=&30:="SCC &"+h0(d%&F,2)  s%=3:="SWAB "+mr(d%) /(s%&38)=&20:="JSR "+r(s%7)+","+mr(d%)  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%)+")" 2@ m%=6:num%=num%+2:="&"+h0(Data%!(num%-2),4)+"("+r(A%)+")"