> MonPDP ::end: Hos%=fx(0,1):(fx(135,0)256)((<&FFFF)&80):<&FFFF:=fx(132,0) (Hio%=(fx(130,0)=&FFFF)(os%<6):ad$="ddress":dd$="isassembl":*FX219,9 2]ctrl%39,data%15,zp%3,A%-1:bln%=-A%-1500*(1-2*(>&FFFF)):buf%=-bln%:cpu:err:end: <&X%=ctrl%:Y%=X%256:P%:P%= F:hlp:menu:end: P#ݤerr:<0:P%=P%2:O%=O%2:=-1 Z:<>17: d-1:" at line "; n=-1 xend:"FX3": bot:*QUIT  nݤmenu:'30"Memory: &"ho(P%-O%,W%)19)"Origin: &"ho(O%,W%)'"Buffer: &";~buf%18)"Buffer size: &";~bln%' >addr%=line(P%):num%=addr%-P%::addr%=line(addr%):>=ht% %Q$=:Q$>"`"Q$<"{":Q$=(Q$-32) )8+9+13+127+"*+-;= ",Q$)Q$>="0" Q$=13:P%=P%+1:=0 Q$=127Q$=8:P%=P%-1:=0 Q$=" ":P%=P%+num%:=0 ,(Q$>"/"Q$<":")(Q$>"@"Q$<"G"):hex:=0 Q$="L":lst:=0 Q$="T"Q$="Y":"MessageText",1-7*(Q$="T"),7);:": "A$:A%=P%?A$:$P%=A$:P%?A$=A%:P%?(A$-1)=P%?(A$-1)((Q$="Y")&80):P%=P%+A$:=0 Q$=9:Z%=Z%64:=0 Q$="M":m:=0 Q$="O":o:=0 Q$="+"Q$=";":P%=P%+8:=0 "Q$="-"Q$="=":P%=P%-8:=0 ,Q$="*":osc:Q$="":=0 6Q$="H":Z%=Z%32:col:=0 @WQ$="G":"Load file: "A$:A$<>"":"LOAD """+A$+""" "+~buf%+"+"+~bln%,os%=32):=0 JYQ$="P":"Save file: "A$:A$<>"":"Length: &"Q$:"SAVE """+A$+""" "+~buf%+"+"+Q$:=0 T+Q$="J":Z%=(Z%-4)+((Z%3)+1)3:col:=0 ^$Q$="W":W%="44456784",W%,1):=0 hQ$="S":mde:=0 r0Q$="Z":Dis_Name(0)="":M%=Dis_CPU:cpu:=0 |Q$="R":io%:rom:=0 ?Q$="Q"Q$="X":"Quit? "Q$:A%=(Q$&DF)=89:Q$="":A%:Q$="Q"  =Q$="Q" (ݤline(addr%):ho(addr%-O%,W%);" "; Qio%:addr%<0:N%=07:data%?N%=rm(addr%+N%):N%=0154:data%!N%=addr%!N%: ^Z%64:A%=11-Z%16:N%=0A%:ho(data%?N%,2)" ";::N%=0A%:c(data%?N%);:::=addr%+A%+1 -N%=Dis_Code(M%,addr%-O%,data%)-1:A%=Z%3 0B%=0N%2^A%:ho(data%!B%,2*(2^A%));" ";: 'W%+U%);:B%=0N%:c(data%?B%);: ,W%+V%);:$(X%+4)8:(X%?264):"":O%=("&"+A$) N,"FX3":addr%=line(addr%):addr%>end%: X1hex:"Bytes: &";Q$;::A%=:A%>96:A%=A%&DF b+(A%=95A%=8)Q$<>"":127:Q$=Q$,Q$-1) l7((A%>47A%<58)(A%>64A%<71))Q$<30:A%:Q$=Q$+A% vAA%=13:Q$<>""::?P%=("&"+Q$,2)):P%=P%+1:Q$=Q$,3):Q$<2: Posc:bot::"*"A$:A$:58:Q$=(&DF):10+13+"GP",Q$):127:Q$<>10: 7rom:"ROM: &"A$:A$=uc(A$):A$="":P%=P%&FFFFFF: .P%=(P%&FFFF)&FF00000065536*("&F"+A$): mde:"Mode: "A$:A$="": &Q%=(A$)&80:io%:fx(133,Q%)<:  22,Q%: gcpu:X%=ctrl%:Y%=X%256:!X%=0:M$=Dis_Name(M%)+" D"+dd$+"er":W%=(X%?33)*2+4:Z%=(X%?3/4)31:col: /col:A%=Z%4:U%=A%*3+13:V%=U%+A%+6:A%<8: U%=17:V%=U%+7: $bot:260,ht%-8*(wd%<40)-1): =hlp:"FX3,16":26,12:wd%=fx(160,10):ht%=fx(160,9)&FF wd%>50:28,wd%-29,ht%,wd%,0:(14-M$/2);M$''"RETURN forward 1 + forward 8"'"DELETE back 1"5"- back 8"'"SPACE move past code"''" M: Set memory a"ad$'" O: Set code origin" wd%>50:" W: A"ad$" width"'" J: Data width"'" H: Hex/Oct toggle"'"TAB: Dump/list"''"0-9 A-F: Enter bytes"'" T: Enter text"'" Y: Enter message" wd%>50:" L: List d"dd$"y"'" G: Load file"'" P: Save file"'" Z: Select CPU"'" S: Screen mode"'" R: ROM number"'" Q: Quit":28,0,ht%,wd%-31,0:  \((wd%+1-M$)/2);M$:28,0,ht%,wd%,ht%-5:B$=" ":C$=" ":fx(135,0)256=7:B$=132:C$=135 B$"RETURN"C$"forward 1"5;B$"+"C$"forward 8"'B$"DELETE"C$"backward 1"4;B$"-"C$"backward 8"'B$"TAB"C$"DUMP/LIST"8;B$"H"C$"HEX/ASCII"  B$"M"C$"Set memory a"ad$" "B$"O"C$"Set code offset"8'B$"T"C$"Enter text"9;B$"Y"C$"Enter message"'B$"L"C$"List d"dd$"y "B$"SPC"C$"Move past code";:28,0,ht%-6,wd%,1:ht%=ht%-7: *2ݤho(A%,N%):Z%32:=o0(A%,N%*3/2)=h0(A%,N%) 4-ݤc(A%):A%=A%127:A%=127A%<32:="."=A% >ݤuc(A$):B$:A$="":="" H5B$=B$+(A$((A$<"@")&DF)):A$=A$,2):A$="":=B$ R#ݤh0(A%,N%)="0000000"+~A%,N%) \4ݤo0(A%,N%):A$,B%,L%:A%<0:B%=2:A%=A%&7FFFFFFF f;A$=(A%7)+A$:A%=A%8:L%=L%+3:L%>27:=(A%+B%)+A$,N%) p?ݤfx(A%,X%):Y%:Y%=X%256:<&FFFFF:=((&FFF4)&FFFF00)256 z-A%=135:X%=:X%>-1:=X%*256A%=135:=&A00 (A%=160:X%=10:=@vdu%!28@vdu%!216-1 'A%=160:X%=9:=@vdu%!36@vdu%!220-1 =((&FFF4)&FFFF00)256 7ݤrm(!&F6):Y%:Y%=?&F8+&40:Y%&40:?&F7>&BF:?&F9=0 1!&F6<0:?&F7>&7FY%=&3E:=(&FFB9)&FF=?!&F6 $ݤDis_Name(A%):X%?3=&94:="PDP11" 4ݤDis_Code(A%,Ptr%,Data%):s%,d%,c%:!X%=0:num%=2 :c%=!Data%:s%=(c%&FC0)64:d%=c%63:c%=(c%&F000)&1000  $(X%+4)=pdp:X%?3=num%:=num%  ݤpdp o(c%7)=0:s%>39:s%<52:="CLRCOMINCDECNEGADCSBCTSTRORROLASRASL",3*(s%-40)+1,3)+" B",c%8+1,1)+" "+mr(d%) m((c%-1)7)<5:="MOVCMPBITBICBIS",(c%7)*3-2,3)+" B",c%8+1,1)+" "+mr(s%)+","+mr(d%)=("FNpdp_"+~c%) (ݤpdp_F:="FLOP "+mr(s%)+","+mr(d%) (ݤpdp_E:="SUB "+mr(s%)+","+mr(d%) Kݤpdp_8:s%<32:="BPLBMIBHIBLSBVCBVSBCCBCS",3*((s%4))+1,3)+jr(?Data%) 9s%<40:="EMT TRAP",(s%&FC)-31,4)+" &"+h0(?Data%,2) $=(s%&FC)=52:="MTPSMFPDMTPDMFPS",4*s%-207,4)+" "+mr(d%) .$X%?2=128:="EQUW &"+h0(!Data%,4) 8 ݤpdp_7 BDs%<32:="MUL DIV ASH ASHC",4*(s%8)+1,4)+" "+mr(d%)+","+r(s%) L&s%<40:="XOR "+r(s%)+","+mr(d%) V?s%=40:d%<32:="FADDFSUBFMULFDIV",4*(d%8)+1,4)+" "+r(d%) `;(s%56)=56:="SOB "+r(s%)+","+jr(d%-192*(d%>31)),3) j$X%?2=128:="EQUW &"+h0(!Data%,4) t(ݤpdp_6:="ADD "+mr(s%)+","+mr(d%) ~[ݤpdp_0:s%<32:s%>3:X%?2=(s%<8)64:="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%>1)-2*(d%>4)) "s%=1:X%?2=64:="JMP "+mr(d%) 's%=2:d%<8:X%?2=64:="RTS "+r(d%) &s%=2:(d%56)=24:="SPL "+(d%7) ,s%=2:(d%48)=32:="CCC &"+h0(d%&F,2) ,s%=2:(d%48)=48:="SCC &"+h0(d%&F,2) s%=3:="SWAB "+mr(d%) -(s%56)=32:="JSR "+r(s%7)+","+mr(d%) s%=52:="MARK &"+h0(d%,2) 9(s%&FC)=52:="MFPIMTPISXT ",4*s%-211,4)+" "+mr(d%) $X%?2=128:="EQUW &"+h0(!Data%,4) 4ݤr(A%):A%=A%7:A%=7:="PC"A%=6:="SP"="R"+A% ,ݤmr(A%):m%:m%=(A%56)8:(A%7)=7:=pc  'm%<2:="("+r(A%)+")",2-m%,2*m%+2) :m%<6:="@",m%1)+"-",m%4)+"("+r(A%)+")"+"+",m%<4) Dnum%=num%+2:="@",m%=7)+"&"+h0(Data%!(num%-2),4)+"("+r(A%)+")" (ݤpc 2m%<2:="(PC)",2-m%,2*m%+2) <127),4)