pcjs/versions/pdpjs/1.30.6/pdp11-dbg.js

365 lines
135 KiB
JavaScript

(function(){/*
http://pcjs.org/modules/shared/lib/diskapi.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/messages.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/debugger.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/defines.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/panel.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/bus.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/device.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/memory.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/cpu.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/cpustate.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/cpuops.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/rom.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/ram.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/keyboard.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/serialport.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/pc11.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/disk.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/rk11.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/rl11.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2016
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016
*/
for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da<ca.length-1;da++){var ea=ca[da];ea in ba||(ba[ea]={});ba=ba[ea]}var fa=ca[ca.length-1],ia=ba[fa],ja=ia?ia:function(a){return Math.log(a)/Math.LN2};
ja!=ia&&null!=ja&&aa(ba,fa,{configurable:!0,writable:!0,value:ja});
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},ma={Ff:0,Xc:1,Hf:2,If:3,Jf:4,Kf:5,Lf:6,Mf:7,zc:8,Nf:9,Yc:10,Of:11,Pf:12,Zc:13,Qf:14,Rf:15,Sf:16,Tf:17,Uf:18,Vf:19,Wf:20,Xf:21,Yf:22,Zf:23,$f:24,ag:25,bg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,xc:65,Ef:66,Gf:67,cg:68,E:69,dg:70,eg:71,fg:72,gg:73,hg:74,ig:75,jg:76,kg:77,lg:78,mg:79,ng:80,Q:81,og:82,pg:83,qg:84,rg:85,sg:86,tg:87,ug:88,vg:89,gd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,wg:97,xg:98,yg:99,d:100,e:101,Ag:102,Bg:103,Cg:104,Dg:105,Gg:106,k:107,Hg:108,Ig:109,n:110,Jg:111,p:112,q:113,r:114,Kg:115,t:116,Mg:117,Ng:118,Og:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,$c:127};
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function oa(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function p(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
function q(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function v(a){return q(a,4,!0)}function w(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function qa(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ra={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function sa(a){return a.replace(/[&<>"']/g,function(a){return ra[a]})}function ua(a,b){return(a+" ").slice(0,b)}function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var Ca={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function Da(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}var Ea=Date.now||function(){return+new Date};
function Fa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ga(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ha(a,b){var c,d={ha:null,ja:null,Ua:null,Ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ua=g.load;d.Ta=g.exec;if(e=g.bytes)d.ha=e;else if(e=g.words)for(d.ha=Array(2*e.length),f=c=0;c<e.length;c++)d.ha[f++]=e[c]&255,d.ha[f++]=e[c]>>8&255;else if(e=g.data)for(d.ha=Array(4*e.length),f=c=0;c<e.length;c++)d.ha[f++]=
e[c]&255,d.ha[f++]=e[c]>>8&255,d.ha[f++]=e[c]>>16&255,d.ha[f++]=e[c]>>24&255;else d.ha=g;d.ja=g.symbols;d.ha.length?1==d.ha.length&&(x(d.ha[0]),d=null):(x("Empty resource: "+a),d=null)}catch(h){x("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){x("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ha=e)}return d}
function Ia(){return"http://"+(window?window.location.host:"www.pcjs.org")}function x(a){window&&window.alert(a)}function Ja(a){var b=!1;window&&(b=window.confirm(a));return b}var Ka=null;function La(){if(null==Ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ka=a}return Ka}
function Oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Pa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Qa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}
function Ra(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function Sa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ta(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ua={init:[],show:[],exit:[]},Wa=!1,bb=!1,cb=!0;function db(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function eb(a){Ua.init.push(a)}
function fb(a){if(cb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function gb(a){!cb&&a?(cb=!0,Wa&&hb("init"),bb&&hb("show")):cb=a}function hb(a){Ua[a]&&fb(Ua[a])}db("onload",function(){Wa=!0;fb(Ua.init)});db("onpageshow",function(){bb=!0;fb(Ua.show)});db(Qa("Opera")||Qa("iOS")?"onunload":"onbeforeunload",function(){fb(Ua.exit)});
function y(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Dc=b.comment;this.jd=b;b=this.id.indexOf(".");0>b?this.jb=this.id:(this.kb=this.id.substr(0,b),this.jb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,mb:!1,nc:!1,la:!1,error:!1};this.cc=null;this.C.error=!1;this.D={};this.j=null;this.pa=d||0;B.push(this)}var ib=void 0,jb={};
if(window){ib||(ib=window.location.search.substr(1));for(var kb,lb=/\+/g,mb=/([^&=]+)=?([^&]*)/g;kb=mb.exec(ib);)jb[decodeURIComponent(kb[1].replace(lb," "))]=decodeURIComponent(kb[2].replace(lb," "))}function nb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function D(a,b){b||(b=y);a.prototype=nb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ob=window.PCjs.Machines||(window.PCjs.Machines={}),B=window.PCjs.Components||(window.PCjs.Components=[])}else ob={},B=[];function pb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function qb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<B.length;b++){var d=B[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function rb(a){if(void 0!==a){var b;for(b=0;b<B.length;b++)if(B[b].id===a)return B[b]}return null}function sb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<B.length;d++)if(c)c==B[d]&&(c=null);else if(!(a!=B[d].type||b&&B[d].id.indexOf(b)))return B[d]}return null}function E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function F(a,b){b=G(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pdp11-binding":(g=E(f))&&g.binding&&a.ya(g.type,g.binding,f,g.value),l=h.length}}}}
function G(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
y.prototype={constructor:y,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ya:function(a,b,c){switch(b){case "clear":return this.D[b]||(this.D[b]=c,c.onclick=function(a){return function(){a.D.print&&(a.D.print.value="")}}(this)),!0;case "print":return this.D[b]||(this.cb=this.D[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.M=function(a){this.i(a,this.jb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.jb+": "+a)},M:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},La:function(){return this.C.la=!0},Ka:function(a,b){b&&(this.C.la=!1);return!0}};function H(a,b,c,d){a.j&&(!0===c||K(a,c|0))&&a.j.message(b,d)}function K(a,b){if(a.j){a===a.j?b|=0:b=b||a.pa;var c=a.j.pa&b;return!!b&&c===b||!!(c&a.j.pd)}return!1}
function tb(a,b){if(a.C.nc)return a.C.mb=!1,a.C.nc=!1;if(a.C.error)return a.i(a.toString()+" error"),!1;a.C.mb=b;return a.C.mb}function zb(a,b){a.C.mb&&(b?a.C.nc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.C.mb}function L(a,b){a.C.error||(a.C.ready=!1!==b,a.C.ready&&(b=a.cc,a.cc=null,b&&b()))}function Ab(a,b){b&&(a.C.ready?b():a.cc=b);return a.C.ready}function Bb(a){return a.C.error?(a.i(a.toString()+" error"),!0):!1}function Cb(a,b){a.C.error=!0;a.M(b)}
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Db="undefined"!==typeof ArrayBuffer,Eb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Fb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},Gb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,
buffer:1073741824,halt:-2147483648};function Hb(a){y.call(this,"Panel",a,Hb,512);this.Da=this.v=this.hb=this.Bb=this.A=this.F=0;this.I=this.J=this.H=!1;this.K=Ib;this.g={};this.f={START:[1,1,!0,!1,this.Ed],STEP:[1,1,!1,!1,this.Fd],ENABLE:[1,1,!1,!1,this.Ad],CONT:[1,1,!0,!1,this.yd],DEP:[0,0,!0,!1,this.zd],EXAM:[1,1,!0,!1,this.Bd],LOAD:[1,1,!0,!1,this.Dd],TEST:[0,0,!0,!1,this.Cd]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Gd,a]}D(Hb);var Ib=7;function Jb(a,b){return a.f[b]&&a.f[b][1]}k=Hb.prototype;
k.reset=function(){this.stop()};
k.ya=function(a,b,c,d){if(this.B&&this.B.ya(a,b,c,d)||this.b&&this.b.ya(a,b,c,d)||this.j&&this.j.ya(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.D[b]=c,this.F++,!0;default:return"led"==a||"rled"==a?(this.D[b]=c,this.g[b]=d?1:0,this.F++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0,d?1:0]),this.D[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Kb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Lb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Kb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Lb(a,b)}}(this,b),!0):this.parent.ya.call(this,a,b,c,d)}};k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;Mb(b,this,Nb);Ob(b,this.reset.bind(this));Pb(this);Qb(this)};k.La=function(a,b){b||(Rb(),this.reset());return!0};k.Ka=function(){return!0};
function Sb(a,b,c){if(a=a.D[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Pb(a,b){for(var c in a.g)Sb(a,c,null!=b?b:a.g[c])}function Tb(a,b,c){if(a=a.D[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Qb(a){for(var b in a.f)Tb(a,b,a.f[b][1])}function Ub(a,b,c,d){a.D[b]&&(void 0===c&&(Cb(a,"Value for "+b+" is invalid"),a.b.aa()),c=8==(a.j&&a.j.ma||8)?p(c,d):q(c,d),a.D[b].textContent!=c&&(a.D[b].textContent=c))}
function Kb(a,b){var c=a.f[b];Tb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.I="DEP"==b,a.J="EXAM"==b)}function Lb(a,b){var c=a.f[b];c[2]&&c[3]&&(Tb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Ed=function(a){a||this.b.C.U||(a=this.b,a.w.reset(),Vb(a),Jb(this,"ENABLE")&&this.b.ib())};k.Fd=function(){};k.Ad=function(a){a||this.b.aa()};
k.yd=function(a){if(!a&&!this.b.C.U)if(Jb(this,"ENABLE"))this.b.ib();else{if((a=this.j)&&!zb(a,!0))tb(a,!0),a.rb(0,null),tb(a,!1);else try{var b=this.b.rb(1);0<b&&(Wb(this.b,b),Xb(this.b,b,!0),Yb(this.b,b))}catch(c){"number"!=typeof c&&Cb(this.b,c.stack||c.message)}this.stop();this.B&&this.B.za()}};k.zd=function(a){if(a&&!this.b.C.U)if(this.I&&Zb(this),a=$b(this,this.hb),this.K==Ib)ac(this.w,this.Da,a);else{var b=this.b,c=this.Da;b.J++;b.wc(oc(b,c,4),a);b.J--}};
k.Bd=function(a){a||this.b.C.U||(this.J&&Zb(this),a=this.K==Ib?pc(this.w,this.Da):qc(this.b,this.Da),$b(this,a))};k.Dd=function(a){a||this.b.C.U||rc(this,this.hb)};k.Cd=function(a){a?(this.H=!0,Pb(this,!0)):(this.H=!1,Pb(this),sc(this,0))};k.Gd=function(a,b){this.hb=a?this.hb|1<<b:this.hb&~(1<<b)};function Zb(a){var b=1145>a.b.nb?8:16,c=65472<=a.Da&&a.Da<65472+b,b=c?1:2,c=c?15:a.w.Mb;Jb(a,"STEP")||(b=-b);rc(a,a.Da&~c|a.Da+b&c)}
function rc(a,b){a.Da=b&a.w.Mb;b=a.Da;for(var c=0;22>c;c++)tc(a,"A"+c,b&1<<c)}function $b(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)tc(a,"D"+c,b&1<<c);return a.v}function tc(a,b,c){a.g[b]=c;a.H||Sb(a,b,c)}function uc(a){return void 0!==a.D.S0}function sc(a,b){if(uc(a)){a.hb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Qb(a)}}k.stop=function(){rc(this,this.b.u[7])};k.uc=function(a){this.Da=a};k.setData=function(a,b){b?this.Bb=a:this.v=a};k.Hd=function(a,b){return(b?this.Bb:this.hb)&65535};
k.He=function(a){this.Bb=a};var vc={},Nb=(vc[65400]=[null,null,Hb.prototype.Hd,Hb.prototype.He,"CNSW"],vc);function Rb(){for(var a=!1,b=G(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=E(d),f=rb(e.id);f||(a=!0,f=new Hb(e));F(f,d);a&&L(f)}}eb(Rb);
function wc(a,b,c){y.call(this,"Bus",a,wc,16);this.b=b;this.j=c;this.N=a.busWidth||16;this.A=1<<this.N;this.Mb=this.A-1;this.Ja=xc;this.ra=Math.log2(this.Ja);this.K=this.Ja>>2;this.w=this.Ja-1;this.v=this.A/this.Ja|0;this.lb=[];this.sa=0;this.B=!1;this.F=[];this.kd=[yc,zc,Ac,Bc];a=new M(this);Cc(a,this.j);this.ea=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.ea[b]=this.f[b]=a;a=this.A-xc;Dc(this,a,xc,Ec,this);this.J=this.I=(a&this.Mb)>>>this.ra;this.H=0;this.g=this.Mb;L(this)}D(wc);
var xc=8192,Fc=xc-1;function yc(a,b){var c=-1,d=this.controller,e=d.lb[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.lb[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.j&&K(this.j,16|e[5])&&H(this.j,e[4]+".readByte("+N(this.j,b)+"): "+N(this.j,c),!0,!d.sa),c;d.Ra(b,16,3);c=255;this.j&&K(this.j,16)&&H(this.j,"warning: unconverted read access to byte @"+N(this.j,b)+": "+N(this.j,c),!0,!d.sa);return c}
function zc(a,b,c){var d=!1,e=this.controller,f=e.lb[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.lb[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.j&&K(this.j,16|f[5])&&H(this.j,f[4]+".writeByte("+N(this.j,c)+","+N(this.j,b)+")",!0,!e.sa):(e.Ra(c,16,5),this.j&&K(this.j,16)&&H(this.j,"warning: unconverted write access to byte @"+N(this.j,c)+": "+N(this.j,
b),!0,!e.sa))}function Ac(a,b){var c=-1,d=this.controller;a=d.lb[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.j&&K(this.j,16|a[5])&&H(this.j,a[4]+".readWord("+N(this.j,b)+"): "+N(this.j,c),!0,!d.sa),c;d.Ra(b,16,2);c=65535;this.j&&K(this.j,16)&&H(this.j,"warning: unconverted read access to word @"+N(this.j,b)+": "+N(this.j,c),!0,!d.sa);return c}
function Bc(a,b,c){var d=!1,e=this.controller;a=e.lb[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.j&&K(this.j,16|a[5])&&H(this.j,a[4]+".writeWord("+N(this.j,c)+","+N(this.j,b)+")",!0,!e.sa):(e.Ra(c,16,4),this.j&&K(this.j,16)&&H(this.j,"warning: unconverted write access to word @"+N(this.j,c)+": "+N(this.j,b),!0,!e.sa))}
function Gc(a,b){if(b!=a.H){for(var c=0;c<a.v;c++)a.f[c]=a.ea[c];a.H=0;a.g=a.Mb;b&&(a.H=b,b=1<<b,a.g=b-1,b-=xc,a.J=(b&a.g)>>>a.ra,a.f[a.J]=a.ea[a.I])}}k=wc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Gc(this,16)};k.La=function(a,b){b||this.reset();return!0};
function Dc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ra;0<g&&h<a.ea.length;){var l=a.ea[h],m=h*a.Ja,n=a.Ja-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.G)return l.Sb+=l.G-f,l.G=f,!0;if(f>=l.G+l.Sb){n=l.size-(f-m);n>g&&(n=g);l.Sb=f-l.G+n;f=m+a.Ja;g-=n;h++;continue}}return Hc(1,f,g)}f=new M(a,f,n,a.Ja,d,e);Cc(f,a.j,l);a.ea[h++]=f;f=m+a.Ja;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Ic[d]+" at "+p(b)),!0):Hc(2,b,c)}k.dc=function(a){return this.f[(a&this.g)>>>this.ra].ec(a&this.w,a)};
k.xa=function(a){return this.f[(a&this.g)>>>this.ra].Ca(a&this.w,a)};k.Rb=function(a,b){this.f[(a&this.g)>>>this.ra].hc(a&this.w,b,a)};k.Eb=function(a,b){this.f[(a&this.g)>>>this.ra].$b(a&this.w,b,a)};function Jc(a,b){return a.ea[(b&a.Mb)>>>a.ra]}function pc(a,b){a.B=!1;a.sa++;b=Jc(a,b).J(b&a.w,b);a.sa--;return b}function Kc(a,b,c){a.B=!1;a.sa++;Jc(a,b).H(b&a.w,c&255,b);a.sa--}function ac(a,b,c){a.B=!1;a.sa++;Jc(a,b).N(b&a.w,c&65535,b);a.sa--}
function Lc(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.ea[d];if(e.eb||e.td){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function Mc(a){for(var b=Nc,c=0,d=0;d<a.ea.length;d++){var e=a.ea[d];e.type==b&&(c=e.G+e.Sb)}return c}
function Oc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&Fc;if(void 0!==a.lb[m])return x("I/O address already registered: "+q(b,8,!0)),!1;a.lb[m]=[d,e,f,g,l||"unknown",h||16,!1]}return!0}
function Mb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.nb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var t=g[4],r=g[5]||1,u=0;u<r;u++,f+=2)if(t&&1<r&&(t=g[4]+u),!Oc(a,f,f,h,l,m,n,g[7]||b.pa,t||b.jb))return!1}}return!0}
function Ob(a,b){a.F.push(b)}k.Ra=function(a,b,c){this.B=!0;this.sa||(this.j&&K(this.j,4)&&H(this.j,"memory fault ("+c+") on "+N(this.j,a),!0,!0),b&&(this.b.oa|=b),this.b.ua(4,0,a))};function Pc(a){var b=a.B;a.B=!1;return b}function Hc(a,b,c){x("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}function O(a){y.call(this,"Device",a,O,256);this.f={zg:0,vc:-1}}D(O);k=O.prototype;
k.Ha=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.j=d;var e=this;this.f.vc=Qc(c,function(){e.f.Lb|=128;e.f.Lb&64&&Rc(e.b,e.f.Kb);e.B&&e.B.za(1);Sc(e.b,e.f.vc,1E3/60)});this.f.Kb=Tc(c,64,6,524288);Mb(b,this,cd);Ob(b,this.reset.bind(this));d&&dd(d,64,function(a){var b=e.b;P(e,"KIPDR",b.R[0],0,a[0]);P(e,"KDPDR",b.R[0],8,a[0]);P(e,"KIPAR",b.ga[0],0,a[0]);P(e,"KDPAR",b.ga[0],8,a[0],!0);P(e,"SIPDR",b.R[1],0,a[0]);P(e,"SDPDR",b.R[1],8,a[0]);P(e,"SIPAR",b.ga[1],0,a[0]);P(e,"SDPAR",b.ga[1],8,a[0],!0);
P(e,"UIPDR",b.R[3],0,a[0]);P(e,"UDPDR",b.R[3],8,a[0]);P(e,"UIPAR",b.ga[3],0,a[0]);P(e,"UDPAR",b.ga[3],8,a[0],!0);b.Ma&32&&P(e,"UNIMAP",b.Db,-1,a[0])});L(this)};function P(a,b,c,d,e,f){a=a.j;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",h=!1,l=0,m=8;0>d&&(e=c.length,d=0,h=!0,m=l=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(h?"["+p(n,2)+"]":"")+":"),g+=" "+N(a,c[d+n],l);a.i(g+(f?"\n":""))}}k.reset=function(){this.f.Lb=128;Sc(this.b,this.f.vc,1E3/60,!0)};k.Od=function(){return this.f.Lb};
k.Oe=function(a){this.f.Lb=a&192;this.f.Lb&64||ed(this.b,this.f.Kb)};k.Qd=function(){return fd(this.b)};k.Qe=function(a){gd(this.b,a&-129|this.b.Ea&128)};k.Rd=function(){return hd(this.b)};k.Sd=function(){return id(this.b)};k.Td=function(){return this.b.Ma};k.Re=function(a){jd(this.b,a)};k.Ae=function(a){a=a>>1&63;var b=this.b.Db[a>>1];return a&1?b>>16:b&65535};k.Af=function(a,b){b=b>>1&63;var c=b>>1;this.b.Db[c]=b&1?this.b.Db[c]&65535|(a&63)<<16:this.b.Db[c]&-65536|a&65534};
k.te=function(a){return this.b.R[1][a>>1&7]};k.tf=function(a,b){this.b.R[1][b>>1&7]=a&65295};k.re=function(a){return this.b.R[1][(a>>1&7)+8]};k.rf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.se=function(a){return this.b.ga[1][a>>1&7]};k.sf=function(a,b){b=b>>1&7;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.qe=function(a){return this.b.ga[1][(a>>1&7)+8]};k.qf=function(a,b){b=(b>>1&7)+8;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.Nd=function(a){return this.b.R[0][a>>1&7]};
k.Ne=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Ld=function(a){return this.b.R[0][(a>>1&7)+8]};k.Le=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Md=function(a){return this.b.ga[0][a>>1&7]};k.Me=function(a,b){b=b>>1&7;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Kd=function(a){return this.b.ga[0][(a>>1&7)+8]};k.Ke=function(a,b){b=(b>>1&7)+8;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.ze=function(a){return this.b.R[3][a>>1&7]};k.zf=function(a,b){this.b.R[3][b>>1&7]=a&65295};
k.xe=function(a){return this.b.R[3][(a>>1&7)+8]};k.xf=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};k.ye=function(a){return this.b.ga[3][a>>1&7]};k.yf=function(a,b){b=b>>1&7;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.we=function(a){return this.b.ga[3][(a>>1&7)+8]};k.wf=function(a,b){b=(b>>1&7)+8;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Pb=function(a){a&=7;return this.b.O&2048?this.b.$a[a]:this.b.u[a]};k.Tb=function(a,b){b&=7;this.b.O&2048?this.b.$a[b]=a:this.b.u[b]=a};
k.Yd=function(){return this.b.O&49152?this.b.Na[0]:this.b.u[6]};k.We=function(a){this.b.O&49152?this.b.Na[0]=a:this.b.u[6]=a};k.ae=function(){return this.b.u[7]};k.Ze=function(a){this.b.u[7]=a};k.Qb=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.$a[a]};k.Ub=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.$a[b]=a};k.Zd=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Na[1]};k.Xe=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Na[1]=a};
k.$d=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Na[3]};k.Ye=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Na[3]=a};k.Jd=function(a){return this.b.sc[a-65504>>1]};k.Je=function(a,b){this.b.sc[b-65504>>1]=a};k.Rc=function(a){return 65520==a?(Mc(this.w)>>6)-1:0};k.Vc=function(){};k.ve=function(){return 1};k.vf=function(){};k.Id=function(){return this.b.oa};k.Ie=function(){this.b.oa=0};k.Pd=function(){return this.b.rc};k.Pe=function(a,b){b&1||(a&=255);this.b.rc=a};
k.Ud=function(a,b){return b?0:this.b.Cb};k.Se=function(a){kd(this.b,a)};k.ue=function(a,b){return b?0:this.b.gb&65280};k.uf=function(a){this.b.gb=a|255};k.Xd=function(){return ld(this.b)};k.Ve=function(a){md(this.b,a&-1793|ld(this.b)&1792)};k.Uc=function(a,b){K(this)&&H(this,"writeIgnored("+p(b)+"): "+p(a),!0,!0)};
var Q={},cd=(Q[61568]=[null,null,O.prototype.Ae,O.prototype.Af,"UNIMAP",64,1170],Q[62592]=[null,null,O.prototype.te,O.prototype.tf,"SIPDR",8,1145,64],Q[62608]=[null,null,O.prototype.re,O.prototype.rf,"SDPDR",8,1145,64],Q[62624]=[null,null,O.prototype.se,O.prototype.sf,"SIPAR",8,1145,64],Q[62640]=[null,null,O.prototype.qe,O.prototype.qf,"SDPAR",8,1145,64],Q[62656]=[null,null,O.prototype.Nd,O.prototype.Ne,"KIPDR",8,1145,64],Q[62672]=[null,null,O.prototype.Ld,O.prototype.Le,"KDPDR",8,1145,64],Q[62688]=
[null,null,O.prototype.Md,O.prototype.Me,"KIPAR",8,1145,64],Q[62704]=[null,null,O.prototype.Kd,O.prototype.Ke,"KDPAR",8,1145,64],Q[62798]=[null,null,O.prototype.Td,O.prototype.Re,"MMR3",1,1145,64],Q[65382]=[null,null,O.prototype.Od,O.prototype.Oe,"LKS"],Q[65402]=[null,null,O.prototype.Qd,O.prototype.Qe,"MMR0",1,1145,64],Q[65404]=[null,null,O.prototype.Rd,O.prototype.Uc,"MMR1",1,1145,64],Q[65406]=[null,null,O.prototype.Sd,O.prototype.Uc,"MMR2",1,1145,64],Q[65408]=[null,null,O.prototype.ze,O.prototype.zf,
"UIPDR",8,1145,64],Q[65424]=[null,null,O.prototype.xe,O.prototype.xf,"UDPDR",8,1145,64],Q[65440]=[null,null,O.prototype.ye,O.prototype.yf,"UIPAR",8,1145,64],Q[65456]=[null,null,O.prototype.we,O.prototype.wf,"UDPAR",8,1145,64],Q[65472]=[null,null,O.prototype.Pb,O.prototype.Tb,"R0SET0"],Q[65473]=[null,null,O.prototype.Pb,O.prototype.Tb,"R1SET0"],Q[65474]=[null,null,O.prototype.Pb,O.prototype.Tb,"R2SET0"],Q[65475]=[null,null,O.prototype.Pb,O.prototype.Tb,"R3SET0"],Q[65476]=[null,null,O.prototype.Pb,
O.prototype.Tb,"R4SET0"],Q[65477]=[null,null,O.prototype.Pb,O.prototype.Tb,"R5SET0"],Q[65478]=[null,null,O.prototype.Yd,O.prototype.We,"R6KERNEL"],Q[65479]=[null,null,O.prototype.ae,O.prototype.Ze,"R7KERNEL"],Q[65480]=[null,null,O.prototype.Qb,O.prototype.Ub,"R0SET1",1,1145],Q[65481]=[null,null,O.prototype.Qb,O.prototype.Ub,"R1SET1",1,1145],Q[65482]=[null,null,O.prototype.Qb,O.prototype.Ub,"R2SET1",1,1145],Q[65483]=[null,null,O.prototype.Qb,O.prototype.Ub,"R3SET1",1,1145],Q[65484]=[null,null,O.prototype.Qb,
O.prototype.Ub,"R4SET1",1,1145],Q[65485]=[null,null,O.prototype.Qb,O.prototype.Ub,"R5SET1",1,1145],Q[65486]=[null,null,O.prototype.Zd,O.prototype.Xe,"R6SUPER",1,1145],Q[65487]=[null,null,O.prototype.$d,O.prototype.Ye,"R6USER",1,1145],Q[65504]=[null,null,O.prototype.Jd,O.prototype.Je,"CTRL",8,1170],Q[65520]=[null,null,O.prototype.Rc,O.prototype.Vc,"LSIZE",1,1170],Q[65522]=[null,null,O.prototype.Rc,O.prototype.Vc,"HSIZE",1,1170],Q[65524]=[null,null,O.prototype.ve,O.prototype.vf,"SYSID",1,1170],Q[65526]=
[null,null,O.prototype.Id,O.prototype.Ie,"CPUERR",1,1170],Q[65528]=[null,null,O.prototype.Pd,O.prototype.Pe,"MB",1,1170],Q[65530]=[null,null,O.prototype.Ud,O.prototype.Se,"PIR"],Q[65532]=[null,null,O.prototype.ue,O.prototype.uf,"SL"],Q[65534]=[null,null,O.prototype.Xd,O.prototype.Ve,"PSW"],Q);
eb(function(){for(var a=G(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=E(d);switch(c.type){case "default":c=new O(c);F(c,d);break;case "pc11":c=new nd(c);F(c,d);break;case "rl11":c=new R(c);F(c,d);break;case "rk11":c=new T(c),F(c,d)}}});var od;if(Db){var pd=new ArrayBuffer(2);(new DataView(pd)).setUint16(0,256,!0);od=256===(new Uint16Array(pd))[0]}else od=!1;var qd=od;
function M(a,b,c,d,e,f){this.w=a;this.id=rd+=2;this.b=null;this.G=b;this.Sb=c;this.size=d||0;this.type=e||sd;this.f=e==td;this.controller=null;Cc(this);this.eb=this.td=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],ud(this,f.kd);else if(Db)this.A=new ArrayBuffer(this.size),this.F=new DataView(this.A,0,this.size),this.D=new Uint8Array(this.A,0,this.size),this.P=new Uint16Array(this.A,0,this.size>>1),this.b=new Int32Array(this.A,0,this.size>>2),ud(this,qd?vd:wd);else{a=this.b=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;ud(this,xd)}else ud(this)}var sd=0,Nc=1,td=2,Ec=4,Ic=["NONE","RAM","ROM","VID","H/W"],rd=0;
M.prototype={constructor:M,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Db)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Db)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.eb=!0}return!1},wb:function(a,b){b?this.g++||yd(this,zd,!1):this.B++||Ad(this,zd,!1)},S:function(a,b){this.j&&K(this.j,32)&&H(this.j,
"attempt to read invalid address "+N(this.j,b),!0);this.w.Ra(b,32,2);return 255},v:function(a,b,c){this.j&&K(this.j,32)&&H(this.j,"attempt to write "+N(this.j,b)+" to invalid addresses "+N(this.j,c),!0);this.w.Ra(c,32,4)},T:function(a,b){return this.ec(a++,b++)|this.ec(a,b)<<8},K:function(a,b,c){this.hc(a++,b&255,c++);this.hc(a,b>>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},va:function(a,b){a&1&&this.w.Ra(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+
1]&255)<<8},Pa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.eb=!0},ab:function(a,b,c){a&1&&this.w.Ra(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.eb=!0},jb:function(a,b){if(this.j&&null!=this.G){var c=this.j;Bd(c,this.G+a,1,c.N)&&c.aa(!0)}return this.I(a,b)},ma:function(a,b){if(this.j&&null!=this.G){var c=this.j;Bd(c,this.G+a,2,c.N)&&c.aa(!0)}return this.J(a,b)},Aa:function(a,
b,c){if(this.j&&null!=this.G){var d=this.j;Bd(d,this.G+a,1,d.F)&&d.aa(!0)}this.f?this.v(a,b,c):this.H(a,b,c)},Wa:function(a,b,c){if(this.j&&null!=this.G){var d=this.j;Bd(d,this.G+a,2,d.F)&&d.aa(!0)}this.f?this.v(a,b,c):this.N(a,b,c)},Y:function(a){return this.D[a]},kb:function(a,b){a=this.D[a];this.j&&K(this.j,32)&&H(this.j,"Memory.readByte("+N(this.j,b)+"): "+N(this.j,a),!0);return a},da:function(a,b){a&1&&this.w.Ra(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Ra(b,64,2);a=
this.P[a>>1];this.j&&K(this.j,32)&&H(this.j,"Memory.readWord("+N(this.j,b)+"): "+N(this.j,a),!0);return a},wa:function(a,b){this.D[a]=b;this.eb=!0},Ga:function(a,b,c){this.D[a]=b;this.eb=!0;this.j&&K(this.j,32)&&H(this.j,"Memory.writeByte("+N(this.j,c)+","+N(this.j,b)+")",!0)},Sa:function(a,b,c){a&1&&this.w.Ra(c,64,4);this.F.setUint16(a,b,!0);this.eb=!0},Xa:function(a,b,c){a&1&&this.w.Ra(c,64,4);this.P[a>>1]=b;this.eb=!0;this.j&&K(this.j,32)&&H(this.j,"Memory.writeWord("+N(this.j,c)+","+N(this.j,
b)+")",!0)}};function Cc(a,b,c){a.j=b;a.B=a.g=0;c&&((a.B=c.B)&&Ad(a,zd,!1),(a.g=c.g)&&yd(a,zd,!1))}function Cd(a,b){b?--a.g||(a.hc=a.f?a.v:a.H,a.$b=a.f?a.K:a.N):--a.B||(a.ec=a.I,a.Ca=a.J)}function yd(a,b,c){c&&a.g||(a.hc=!a.f&&b[1]||a.v,a.$b=!a.f&&b[3]||a.K);if(c||void 0===c)a.H=b[1]||a.v,a.N=b[3]||a.K}function Ad(a,b,c){c&&a.B||(a.ec=b[0]||a.S,a.Ca=b[2]||a.T);if(c||void 0===c)a.I=b[0]||a.S,a.J=b[2]||a.T}function ud(a,b){b||(b=Dd);Ad(a,b,void 0);yd(a,b,void 0)}
var Dd=[],xd=[M.prototype.ca,M.prototype.Pa,M.prototype.va,M.prototype.ab],zd=[M.prototype.jb,M.prototype.Aa,M.prototype.ma,M.prototype.Wa];if(Db)var wd=[M.prototype.Y,M.prototype.wa,M.prototype.da,M.prototype.Sa],vd=[M.prototype.kb,M.prototype.Ga,M.prototype.na,M.prototype.Xa];
function Ed(a,b){y.call(this,"CPU",a,Ed,1);b=a.cycles||b;var c=a.multiplier||1;this.Vb=0;this.ub=b;this.ob=c;this.kc=Math.round(this.ub/1E4)/100;this.Ab=this.kc*this.ob;this.C.U=!1;this.C.gc=!1;this.C.bb=a.autoStart;this.C.Jb=!1;this.Wb=this.Ga=0;this.Xb=a.csStart;this.Nb=a.csInterval;this.Ob=a.csStop;this.N=[];this.Ic=this.Fe.bind(this);L(this)}D(Ed);var Fd=["power","reset"];k=Ed.prototype;
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.j=d;this.v=a.v;for(a=0;a<Fd.length;a++)(b=this.D[Fd[a]])&&this.B.ya(null,Fd[a],b);L(this)};k.yc=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.La=function(a,b){var c=Gd(this.B,"autoStart");null!=c?this.C.bb="true"==c?!0:"false"==c?!1:!!c:null==this.C.bb&&(this.C.bb=!this.j&&void 0===this.D.run);if(!b){this.yc();if(a&&this.restore){Hd(this);if(!this.restore(a))return!1;Id(this)}else this.reset();this.j?(a=this.j,b=this.C.bb,a.Xa=!0,a.i("Type ? for help with PDPjs Debugger commands"),Jd(a),b||a.qb(),a.Sa&&(b=a.Sa,a.Sa=null,Kd(a,b))):this.i("No debugger detected");this.C.bb?this.i("CPU will auto-start"):this.i("CPU will not be auto-started, click Run to start")}return!0};
k.Ka=function(a){return a?this.save():!0};k.bb=function(){return this.C.U?!0:this.C.bb?(this.ib(),!0):!1};k.Nc=function(){return 0};function Id(a){void 0===a.Xb&&(a.Xb=0);void 0===a.Nb&&(a.Nb=-1);void 0===a.Ob&&(a.Ob=-1);a.C.Jb=0<=a.Xb&&0<a.Nb;a.C.Jb&&(a.Wb=0,a.Ga=a.Xb-a.na)}function Yb(a,b){if(a.C.Jb){var c=!1;a.Wb=a.Wb+a.Nc()|0;a.Ga-=b;0>=a.Ga&&(a.Ga+=a.Nb,c=!0);0<=a.Ob&&a.Ob<=Ld(a)&&(a.Nb=a.Ob=-1,Id(a),a.aa(),c=!0);c&&a.i(Ld(a)+" cycles: checksum="+q(a.Wb))}}
k.ya=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.D[b]=c,!0;case "run":return this.D[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.la)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.la);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.cc?" (waiting for notification)":""))+".");a=!1}a&&(d.C.U?d.aa():d.ib())},
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Md(d,d.ob<<1,!0)},c.textContent=this.Ab.toFixed(2)+"Mhz",!0}return!1};k.za=function(a){this.B&&this.B.za(a)};function Xb(a,b,c){a.na+=b;c&&(a.ma=a.b=a.K=0)}function Nd(a,b){var c=1;b&&1<a.ob&&a.Aa&&(c=a.Aa/a.kc);a.Gc=Math.round(1E3/30);a.vb=Math.floor(a.ub/30*c);b||(a.Pa=a.vb);a.lc=0}function Ld(a){return a.na+a.Y+a.ma-a.b}function Hd(a){a.Aa=0;a.Hc=0;a.na=a.Y=a.ma=a.b=a.K=0;Id(a);Md(a,1)}
function Md(a,b,c){var d=!1;if(void 0!==b){.8>a.Aa/a.Ab?b=1:d=!0;a.ob=b;b=a.kc*a.ob;if(a.Ab!=b){a.Ab=b;b=a.Ab.toFixed(2)+"Mhz";var e=a.D.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.B&&a.B.qb()}Xb(a,a.Y);a.Y=0;a.T=Ea();a.da=0;Nd(a);return d}function Qc(a,b){var c=a.N.length;a.N.push([-1,b]);return c}function Sc(a,b,c,d){0<=b&&b<a.N.length&&(d||0>a.N[b][0])&&(c=a.ub*a.ob/1E3*c|0,a.C.U&&(c+=Od(a)),a.N[b][0]=c)}
function Pd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Wb(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Od(a,b){var c=a.ma-=a.b;a.b=a.K=0;b&&(a.ma=0);return c}
k.Fe=function(){if(this.C.U){this.lc>=this.ub&&Nd(this,!0);this.Xa=0;this.tb=Ea();if(this.da){var a=this.tb-this.da;a>this.Gc&&(this.T+=a,this.T>this.tb&&(this.T=this.tb))}try{do{var b=Pd(this,this.C.Jb?1:this.vb);try{this.rb(b)}catch(e){if("number"!=typeof e)throw e;}b=Od(this,!0);this.Xa+=b;this.Y+=b;Yb(this,b);Wb(this,b);this.Pa-=b;if(0>=this.Pa){this.Pa+=this.vb;15<=++this.Hc&&(this.za(),this.Hc=0);break}}while(this.C.U)}catch(e){this.aa();this.B&&this.B.stop(Ea(),Ld(this));Cb(this,e.stack||e.message);
return}if(this.C.U){a=setTimeout;b=this.Ic;this.da=Ea();var c=this.Gc;this.Xa&&(c=Math.round(c*this.Xa/this.vb));var c=c-(this.da-this.tb),d=this.da-this.T;d&&(this.Aa=Math.round(this.Y/(10*d))/100,864E5<=d&&(this.na=0,Md(this)));if(0>c||this.Aa<this.Ab)-1E3>c&&(this.T-=c),c=0;this.lc+=this.Xa;this.da+=c;a(b,c)}}};
k.ib=function(a){if(Bb(this))return!1;if(this.C.U)return this.i(this.toString()+" busy"),!1;Md(this);this.C.U=!0;this.C.gc=!0;var b=this.D.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.qb(!0),this.B.start(this.T,Ld(this)));this.j||this.status("Started");setTimeout(this.Ic,0);return!0};k.rb=function(){return 0};
k.aa=function(a){var b=!1;if(this.C.U){Od(this);Xb(this,this.Y);this.Y=0;this.C.U=!1;if(b=this.D.run)b.textContent="Run";this.B&&this.B.stop(Ea(),Ld(this));b=!0;this.j||this.status("Stopped")}this.C.complete=a;return b};
function Qd(a){this.nb=+a.model||1170;this.Cc=a.addrReset||0;Ed.call(this,a,6666667);this.Fb=0;this.Fc=255;1120==this.nb?(this.decode=Rd.bind(this),this.wa=this.rd,this.Fb=8,this.Fc=-1):(this.decode=Sd.bind(this),this.wa=this.sd);Td(this);this.J=0;this.I=null;this.ic=[];this.C.complete=!1}D(Qd,Ed);k=Qd.prototype;k.yc=function(){for(var a=192,b=0;b<this.ic.length;b++){var c=this.ic[b];0>c.Zb&&(c.Zb=a,a+=4)}};
k.reset=function(){this.status("Model "+this.nb);this.C.U&&this.aa();Td(this);Hd(this);this.C.error=!1;this.parent.reset.call(this)};
function Td(a){a.V=65536;a.W=32768;a.Z=65535;a.X=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.Cc,-1,-2,-3,-4,-5,-6,-7,-8];a.$a=[0,0,0,0,0,0];a.Na=[0,0,0,0];a.A=0;a.Ec=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ga=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0]];a.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.sc=[0,0,0,0,0,0,0,0];a.rc=0;a.L=0;a.F=a.H=0;a.g=a.f=a.jc=0;a.va=-1;Vb(a)}function Vb(a){a.Ea=0;a.Gb=0;a.Hb=0;a.Ma=0;a.oa=0;a.Cb=0;a.gb=255;a.ca=0;a.Sa=0;a.Wa=0;a.S=262143;a.Ib=0;a.ta=0;a.I=null;a.w&&(Ud(a),a.Wc=Mc(a.w))}function Ud(a){a.ca?(a.P=65536,a.ab=a.Ma&16?4186112:253952,a.ba=a.vd,a.Ca=a.Be,a.$b=a.Bf,Gc(a.w,a.Ma&16?22:18)):(a.P=0,a.ab=57344,a.ba=a.ud,a.Ca=a.Sc,a.$b=a.wc,Gc(a.w,16))}
function fd(a){var b=a.Ea;b&57344||(b=b&-3199|a.Sa<<5|a.Wa<<1);return b}function gd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.Gb=a.ta>>16&65535,a.Hb=a.ta&65535);a.Ea=b;a.Sa=(b&96)>>5;a.Wa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.ca!=c&&(a.ca=c,Ud(a))}}function hd(a){a.Ea&57344||(a.Gb=a.ta>>16&65535);a=a.Gb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function id(a){a.Ea&57344||(a.Hb=a.ta&65535);return a.Hb}
function jd(a,b){1170>a.nb&&(b&=-49);a.Ma!=b&&(a.Ma=b,a.S=b&16?4194303:262143,Ud(a))}function Vd(a,b,c){a.Cc=b;a.w.reset();Vb(a);Wd(a,b);md(a,0);if(c){for(b=2;5>=b;b++)a.u[b]=0;a.C.U||a.ib()}else a.j?a.aa()||Jd(a.j):!1===c&&a.aa();!a.C.U&&a.v&&a.v.stop()}k.Nc=function(){return 0};
k.save=function(){var a=new U(this);a.set(0,[this.u,this.$a,this.Na,this.Db,this.sc,this.oa,this.rc,this.Cb,this.gb,ld(this),this.va,this.A,this.L,this.Ea,this.Gb,this.Hb,this.Ma,this.Sa,this.Wa,this.R,this.ga,this.ca,this.S,this.Ib,this.ta]);a.set(1,[this.na,this.ob]);a.set(2,Lc(this.w));return a.data()};
k.restore=function(a){var b=a[1];this.na=b[1];Md(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.K){for(var f=0,g=Array(b.K),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.ea[d];if(!f||!f.restore(e)){x("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Xd(a){return a.V&65536?1:0}function Yd(a){return a.W&32768?2:0}function Zd(a){return a.Z&65535?0:4}function $d(a){return a.X&32768?8:0}
function ae(a){var b=a.u[7];a.ta=b;var c=a.Ca(b);a.u[7]=b+2&65535;return c}function be(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function Wd(a,b){a.u[7]=b&65535}function Tc(a,b,c,d){c={Zb:b,pb:c,message:d||0,next:null};c.name=Fb[b];a.ic.push(c);return c}function ce(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.L|=1)}
function Rc(a,b){if(b!=a.I){var c=a.I;if(!c||c.pb<=b.pb)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.pb<=b.pb){b.next=d;c.next=b;break}c=d}while(c)}}a.L|=1;b.message&&K(a,b.message|8)&&H(a,"setIRQ(vector="+p(b.Zb)+",priority="+b.pb+")",!0,!0)}function ed(a,b){ce(a,b);b.message&&K(a,b.message|8)&&H(a,"clearIRQ(vector="+p(b.Zb)+",priority="+b.pb+")",!0,!0)}function de(a){return a.L&64?(a.ua(168,64,-6),!0):a.L&32?(a.ua(4,32,-5),!0):a.L&16?(a.ua(12,16,-7),!0):!1}
function ld(a){return a.O=a.O&63728|$d(a)|Zd(a)|Yd(a)|Xd(a)}function md(a,b){a.X=b<<12;a.Z=~b&4;a.W=b<<14;a.V=b<<16;if((b^a.O)&2048)for(var c=a.$a.length;0<=--c;){var d=a.u[c];a.u[c]=a.$a[c];a.$a[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Na[c]=a.u[6],a.u[6]=a.Na[a.A]);a.O=b;a.L&=-3;a.L|=a.I?2:1}function kd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.L|=1}a.Cb=b}k.Fa=function(a){this.X=this.Z=a;this.W=0};k.sb=function(a,b){this.X=this.Z=this.V=a;this.W=b||0};
function ze(a,b){a.X=a.Z=a.V=b;a.W=a.X^a.V>>1}function Ae(a,b,c,d){a.X=a.Z=a.V=b;a.W=(c^d)&(d^b)}
k.ua=function(a,b,c){if(!this.J){0>this.va?this.va=ld(this):this.A||(c=-4);-4==c&&(this.L&256&&(c=-1),this.L|=256,this.oa|=4,this.u[6]=a=4);if(-1!=c){this.ta=a|4143316992;this.A=0;var d=this.Ca(a|this.P),e=this.Ca(a+2&65535|this.P);md(this,e&-12289|this.va>>2&12288);Be(this,this.va);Be(this,this.u[7]);Wd(this,d)}this.b-=5;this.L&=~(b|19);this.L|=129;this.va=-1;this.qd=a;this.od=c;-1==c&&this.aa();if(-4<=c)throw a;}};
function Ce(a){var b=De(a),c=De(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);Wd(a,b);md(a,c);a.L&=-17}k.Ia=function(a){var b=a>>13&31;31>b&&(a=this.Ma&32?this.Db[b]+(a&8190)&4194302:a&-3932161);return a};
function oc(a,b,c){var d,e,f;if(!(c&a.ca))return f=b&65535,57344<=f&&(f|=a.ab),f;d=b>>13;a.Ma&a.Ec[a.A]||(d&=7);e=a.R[a.A][d];f=(a.ga[a.A][d]<<6)+(b&8191)&a.S;3932160<=f&&(f=a.Ia(f));if(a.J)return f;f>=a.Wc&&f<a.ab?(a.oa|=32,a.ua(4,0,f)):f&1&&!(c&1)&&(a.oa|=64,a.ua(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
8128)&&(g|=16384));a.R[a.A][d]=e;if(f!=(4194170&a.S)||a.A)a.Sa=a.A,a.Wa=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Sa<<5|a.Wa<<1,gd(a,a.Ea&-61695|g&61694)),a.ua(168,64,-2)),a.Ea&61440||!(f<(4191360&a.S)||f>(4194239&a.S))||(a.Ea|=4096,a.Ea&512&&(a.L|=64)));return f}function Ee(a,b){return a.w.dc(b)}function De(a){var b=a.Ca(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}
function Be(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.ta=a.ta&65535|(a.ta&-65536)<<8|16121856;a.L&256||a.wa(4,-2,c);a.$b(c,b)}
function Fe(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.ua(4,0,-3),0;case 1:return 6==c&&a.wa(d,0,a.u[6]),a.b-=3,7==c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];6==c&&a.wa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!=c&&(e|=g);e=a.Ca(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;6==c&&a.wa(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!=c&&(e|=g);e=a.Ca(e)|g;a.b-=8;break;case 6:return e=a.Ca(be(a,2)),e=e+a.u[c]&65535,6==c&&a.wa(d,
0,e),a.b-=6,e|g;case 7:return e=a.Ca(be(a,2)),e=e+a.u[c]&65535,e=a.Ca(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.ta=a.ta&65535|(a.ta&-65536)<<8|(f<<3&248|c)<<16;return e}k.rd=function(a,b,c){!this.A&&0>=b&&c<=this.gb&&(this.L|=32)};k.sd=function(a,b,c){this.A||(65534<=c&&(c|=-65536),a&4&&c<=this.gb&&(c<=this.gb-32?this.ua(4,0,-4):(this.oa|=8,this.L|=32)))};function qc(a,b){a.J++;b=a.Sc(oc(a,b,2));a.J--;return b}k.ud=function(a,b,c){a=Fe(this,a,b,c);3932160<=a&&(a=this.Ia(a));return a};
k.vd=function(a,b,c){return oc(this,Fe(this,a,b,c),c)};k.Sc=function(a){3932160<=a&&(a=this.Ia(a));return this.w.xa(this.Ib=a)};k.Be=function(a){return this.w.xa(this.Ib=oc(this,a,2))};k.wc=function(a,b){3932160<=a&&(a=this.Ia(a));this.w.Eb(this.Ib=a,b)};k.Bf=function(a,b){this.w.Eb(this.Ib=oc(this,a,4),b)};
function Ge(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Fe(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.A=a.O>>12&3,c=a.Ca(d|c&a.P),a.A=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Na[a.O>>12&3];return c}function He(a,b,c,d){a.ta=a.ta&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Fe(a,b,e,4),c&65536||(e&=65535),a.A=a.O>>12&3,e=oc(a,e|c&65536,4),a.A=a.O>>14&3,a.w.Eb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Na[a.O>>12&3]=d}
function Ie(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?Ee(a,a.ba(b,c,3)):a.u[c+a.Fb]&a.Fc}function Je(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?a.w.xa(a.ba(b,c,2)):a.u[c+a.Fb]}function Ke(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Fe(a,b,c,8)}function Le(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ee(a,a.ba(b,c,3)):a.u[c]&255}function Me(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.xa(a.ba(b,c,2)):a.u[c]}
function Ne(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.jc=a.ba(b,e,7),c=0>c?a.u[-c-1]&255:c,c=d.call(a,c,Ee(a,e)),e&1&&a.b--,a.w.Rb(e,c)):(b=a.u[e],c=0>c?a.u[-c-1]&255:c,a.u[e]=b&65280|d.call(a,c,b&255))}function V(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,6),a.w.Eb(e,d.call(a,0>c?a.u[-c-1]:c,a.w.xa(e)))):a.u[e]=d.call(a,0>c?a.u[-c-1]:c,a.u[e])}
function Oe(a,b,c,d,e){var f=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.ba(b,f,5),e.call(a,(c=0>c?a.u[-c-1]&255:c)<<8),d&1&&a.b--,a.w.Rb(d,c)):(c?(c=0>c?a.u[-c-1]&255:c,a.u[f]=a.u[f]&~d|c<<24>>24&d):a.u[f]&=~d,e.call(a,c<<8))}function Pe(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,4),d.call(a,c=0>c?a.u[-c-1]:c),a.w.Eb(e,c)):(a.u[e]=c=0>c?a.u[-c-1]:c,d.call(a,c))}function W(a,b,c){c&&(Wd(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
k.rb=function(a){this.C.complete=!0;var b=this.j?Qe(this.j)?1:this.C.gc?-1:0:0,c=a?this.C.gc?0:1:-1;this.C.gc=!1;this.ma=this.b=a;do{if(b){if(Re(this.j,this.u[7],c)){this.aa();break}c||c++;b++}if(this.L){if(a=this.L&11)if(a=!1,this.L&2){var d=160,e=(this.Cb&224)>>5,f=this.I&&this.I.pb>e?this.I:null;f&&(d=f.Zb,e=f.pb);e>(this.O&224)>>5?(this.L&8&&(be(this,2),this.L&=-9),this.ua(d,0,-10),e=!0):e=!1;e&&(f&&ce(this,f),a=!0);this.I||this.Cb||(this.L&=-3)}else this.L&1&&this.L++;if(a){if(b&&Re(this.j,this.u[7],
c)){this.aa();break}if(0>c)break}if(this.L&112&&de(this)){if(b&&Re(this.j,this.u[7],c)){this.aa();break}if(0>c)break}}this.L=this.L&15|this.O&16;this.decode(ae(this))}while(0<this.b);return this.C.complete?this.ma-this.b:void 0===this.C.complete?0:-1};eb(function(){for(var a=G(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Qd(d);F(d,c)}});function Se(a,b){var c=b+a;this.X=this.Z=this.V=c;this.W=(a^c)&(b^c);return c&65535}
function Te(a,b){var c=b+a,d=c<<8;this.X=this.Z=this.V=d;this.W=(a<<8^d)&(b<<8^d);return c&255}function Ue(a,b){a=b<<1;ze(this,a);return a&65535}function Ve(a,b){a=b<<1;ze(this,a<<8);return a&255}function We(a,b){a=b&32768|b>>1|b<<16;ze(this,a);return a&65535}function Xe(a,b){a=b&128|b>>1|b<<8;ze(this,a<<8);return a&255}function Ye(a,b){a=b&~a;this.Fa(a);return a}function Ze(a,b){a=b&~a;this.Fa(a<<8);return a}function $e(a,b){a|=b;this.Fa(a);return a}function af(a,b){a|=b;this.Fa(a<<8);return a}
function bf(a,b){a=~b|65536;this.sb(a);return a&65535}function cf(a,b){a=~b|256;this.sb(a<<8);return a&255}function df(a,b){this.X=this.Z=a=b-a;this.W=b&(b^a);return a&65535}function ef(a,b){a=b-a;var c=a<<8;b<<=8;this.X=this.Z=c;this.W=b&(b^c);return a&255}function ff(a,b){this.X=this.Z=a=b+a;this.W=a&(b^a);return a&65535}function gf(a,b){a=b+a;var c=a<<8;this.X=this.Z=c;this.W=c&(b<<8^c);return a&255}function hf(a,b){a=-b;this.sb(a,a&b&32768);return a&65535}
function jf(a,b){a=-b;this.sb(a<<8,(a&b&128)<<8);return a&255}function kf(a,b){a=b<<1|this.V>>16&1;ze(this,a);return a&65535}function lf(a,b){a=b<<1|this.V>>16&1;ze(this,a<<8);return a&255}function mf(a,b){a=(this.V&65536|b)>>1|b<<16;ze(this,a);return a&65535}function nf(a,b){a=((this.V&65536)>>8|b)>>1|b<<8;ze(this,a<<8);return a&255}function of(a,b){var c=b-a;Ae(this,c,a,b);return c&65535}function pf(a,b){var c=b-a;Ae(this,c<<8,a<<8,b<<8);return c&255}
function qf(a,b){this.X=this.Z=b&65280;this.W=this.V=0;return(b<<8|b>>8)&65535}function rf(a,b){a^=b;this.Fa(a);return a&65535}function sf(a){V(this,a,Je(this,a),Se);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
function tf(a){var b=Me(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.V=this.W=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.V=c<<17-b,c>>=b;else if(b)if(16<b)this.W=c,c=0;else{this.V=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.W=32768)}this.u[a]=c&65535;this.X=this.Z=c;this.b-=(this.g?6:7)+b}
function uf(a){var b=Me(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.V=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.V=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.W=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;this.b-=(this.g?6:7)+b}function vf(a){W(this,a,!Xd(this))}function wf(a){W(this,a,Xd(this))}
function xf(a){V(this,a,Je(this,a),Ye);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function yf(a){Ne(this,a,Ie(this,a),Ze);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function zf(a){V(this,a,Je(this,a),$e);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function Af(a){Ne(this,a,Ie(this,a),af);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
function Bf(a){var b=Je(this,a);a=Me(this,a);this.Fa((0>b?this.u[-b-1]:b)&a);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Cf(a){var b=Ie(this,a);a=Le(this,a);this.Fa(((0>b?this.u[-b-1]&255:b)&a)<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Df(a){W(this,a,Zd(this))}function Ef(a){W(this,a,!$d(this)==!Yd(this))}function Ff(a){W(this,a,!Zd(this)&&!$d(this)==!Yd(this))}function Gf(a){W(this,a,!Xd(this)&&!Zd(this))}
function Hf(a){W(this,a,Zd(this)||!$d(this)!=!Yd(this))}function If(a){W(this,a,Xd(this)||Zd(this))}function Jf(a){W(this,a,!$d(this)!=!Yd(this))}function Kf(a){W(this,a,$d(this))}function Lf(a){W(this,a,!Zd(this))}function Mf(a){W(this,a,!$d(this))}function Nf(){this.ua(12,0,-9)}function Of(a){W(this,a,!0)}function Pf(a){W(this,a,!Yd(this))}function Qf(a){W(this,a,Yd(this))}function Rf(a){a&1&&(this.V=0);a&2&&(this.W=0);a&4&&(this.Z=1);a&8&&(this.X=0);this.b-=5}
function Sf(a){var b=Je(this,a);a=Me(this,a);var c=(b=0>b?this.u[-b-1]:b)-a;Ae(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Tf(a){var b=Ie(this,a);a=Le(this,a);var c=(b=(0>b?this.u[-b-1]&255:b)<<8)-(a<<=8);Ae(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}
function Uf(a){var b=Me(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.W=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.Z=this.X=0,this.W=32768,this.V=65536,this.b-=7}function Vf(){this.ua(24,0,-9);this.b-=20}
function Wf(){this.O&49152?(this.oa|=128,this.ua(4,0,-8)):(this.v&&1120==this.nb&&this.v.setData(this.u[0],!0),this.j?Xf(this.j):this.aa());this.b-=7}function Yf(){this.ua(16,0,-9);this.b-=20}var Zf=[0,7,7,10,7,11,9,13];function $f(a){this.K=this.b;Wd(this,Ke(this,a));this.b=this.K-Zf[this.g]}var ag=[0,14,14,17,14,18,16,20];function bg(a){this.K=this.b;var b=Ke(this,a);a=a>>6&7;Be(this,this.u[a]);this.u[a]=this.u[7];Wd(this,b);this.b=this.K-ag[this.g]}
var cg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function dg(a){var b=Je(this,a);this.K=this.b;Pe(this,a,b,this.Fa);this.b=this.K-cg[(this.F?8:0)+this.g]+(7!=this.f||this.g?0:2)}function eg(a){var b=Ie(this,a);Oe(this,a,b,65535,this.Fa);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}var fg=[7,13,13,17,14,18,17,21];
function gg(a){var b=Me(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.X=b>>16;this.Z=this.X|b;this.W=0;this.V=-32768>b||32767<b?65536:0;this.b-=23}function hg(){this.b-=5}function ig(){this.O&49152||(this.w.reset(),Vb(this),this.v&&this.v.setData(this.u[0],!0));this.b-=667}function jg(a){if(a&8)X.call(this,a);else{var b=De(this);a&=7;7==a?Wd(this,b):(Wd(this,this.u[a]),this.u[a]=b);this.b-=9}}
function kg(){Ce(this);this.b-=13}function lg(a){a&1&&(this.V=65536);a&2&&(this.W=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);this.b-=5}function mg(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)Wd(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function ng(a){V(this,a,Je(this,a),of);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function og(a){V(this,a,0,qf);this.b-=this.g?9:3+(7==this.f?2:0)}function pg(){this.ua(28,0,-9)}
function qg(){this.v&&(this.v.uc(this.u[7],!0),this.v.setData(this.u[0],!0));this.L|=8;be(this,-2);this.b-=3}function rg(a){V(this,a,this.u[(a>>6&7)+this.Fb],rf);this.b-=this.g?9:3+(7==this.f?2:0)}function X(a){var b;if(b=this.j)b=this.j,K(b,1)?(H(b,"undefined opcode "+N(b,a),!0,!0),b=Xf(b)):b=!1;b||this.ua(8,0,-9)}function Rd(a){sg[a>>12].call(this,a)}function tg(a){ug[a>>6&3].call(this,a)}function vg(a){wg[a>>6&3].call(this,a)}function xg(a){yg[a>>6&3].call(this,a)}
function zg(a){Ag[a&15].call(this,a)}function Bg(a){Cg[a&15].call(this,a)}function Dg(a){Eg[a>>6&3].call(this,a)}function Fg(a){Gg[a>>6&3].call(this,a)}function Hg(a){Ig[a>>6&3].call(this,a)}
var sg=[function(a){Jg[a>>8&15].call(this,a)},dg,Sf,Bf,xf,zf,sf,X,function(a){Kg[a>>8&15].call(this,a)},eg,Tf,Cf,yf,Af,ng,X],Jg=[function(a){Lg[a>>4&15].call(this,a)},Of,Lf,Df,Ef,Jf,Ff,Hf,bg,bg,tg,vg,xg,X,X,X],ug=[function(a){Pe(this,a,0,this.sb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,bf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,ff);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,df);this.b-=this.g?9:3+(7==this.f?2:0)}],wg=[function(a){V(this,a,0,hf);
this.b-=this.g?11:6},function(a){V(this,a,Xd(this)?1:0,Se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,Xd(this)?1:0,of);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Me(this,a);this.sb(a);this.b-=this.g?4:3+(7==this.f?2:0)}],yg=[function(a){V(this,a,0,mf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,kf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,We);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ue);this.b-=this.g?9:3+(7==this.f?2:0)}],Lg=
[function(a){Mg[a&15].call(this,a)},X,X,X,$f,$f,$f,$f,jg,X,zg,Bg,og,og,og,og],Mg=[Wf,qg,kg,Nf,Yf,ig,X,X,X,X,X,X,X,X,X,X],Ag=[hg,function(){this.V=0;this.b-=5},function(){this.W=0;this.b-=5},Rf,function(){this.Z=1;this.b-=5},Rf,Rf,Rf,function(){this.X=0;this.b-=5},Rf,Rf,Rf,Rf,Rf,Rf,Rf],Cg=[hg,function(){this.V=65536;this.b-=5},function(){this.W=32768;this.b-=5},lg,function(){this.Z=0;this.b-=5},lg,lg,lg,function(){this.X=32768;this.b-=5},lg,lg,lg,lg,lg,lg,lg],Kg=[Mf,Kf,Gf,If,Pf,Qf,vf,wf,Vf,pg,Dg,Fg,
Hg,X,X,X],Eg=[function(a){Oe(this,a,0,255,this.sb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ne(this,a,0,cf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ne(this,a,1,gf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ne(this,a,1,ef);this.b-=this.g?9:3+(7==this.f?2:0)}],Gg=[function(a){Ne(this,a,0,jf);this.b-=this.g?11:6},function(a){Ne(this,a,Xd(this)?1:0,Te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ne(this,a,Xd(this)?1:0,pf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Le(this,
a);this.sb(a<<8);this.b-=this.g?4:3+(7==this.f?2:0)}],Ig=[function(a){Ne(this,a,0,nf);this.b-=this.g?9+(this.jc&1):3+(7==this.f?2:0)},function(a){Ne(this,a,0,lf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ne(this,a,0,Xe);this.b-=this.g?9+(this.jc&1):3+(7==this.f?2:0)},function(a){Ne(this,a,0,Ve);this.b-=this.g?9:3+(7==this.f?2:0)}];function Sd(a){Ng[a>>12].call(this,a)}
var Ng=[function(a){Og[a>>8&15].call(this,a)},dg,Sf,Bf,xf,zf,sf,function(a){Pg[a>>8&15].call(this,a)},function(a){Qg[a>>8&15].call(this,a)},eg,Tf,Cf,yf,Af,ng,X],Og=[function(a){Rg[a>>4&15].call(this,a)},Of,Lf,Df,Ef,Jf,Ff,Hf,bg,bg,tg,vg,xg,function(a){Sg[a>>6&3].call(this,a)},X,X],Sg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.Ca(a|this.P);Wd(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Ge(this,a,0);this.Fa(a);Be(this,a);this.b-=11},function(a){var b=De(this);
this.K=this.b;this.Fa(b);He(this,a,0,b);this.b=this.K-fg[this.g]},function(a){Pe(this,a,$d(this)?65535:0,this.Fa);this.b-=this.g?9:3+(7==this.f?2:0)}],Rg=[function(a){Tg[a&15].call(this,a)},X,X,X,$f,$f,$f,$f,jg,function(a){a&8?(this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.L|=1,this.L&=-3),this.b-=5):X.call(this,a)},zg,Bg,og,og,og,og],Tg=[Wf,qg,function(){Ce(this);this.L|=this.O&16;this.b-=13},Nf,Yf,ig,kg,function(){this.ua(8,0,-9)},X,X,X,X,X,X,X,X],Pg=[gg,gg,Uf,Uf,tf,tf,uf,uf,rg,rg,X,X,X,X,mg,
mg],Qg=[Mf,Kf,Gf,If,Pf,Qf,vf,wf,Vf,pg,Dg,Fg,Hg,function(a){Ug[a>>6&3].call(this,a)},X,X],Ug=[X,function(a){a=Ge(this,a,65536);this.Fa(a);Be(this,a);this.b-=11},function(a){var b=De(this);this.K=this.b;this.Fa(b);He(this,a,65536,b);this.b=this.K-fg[this.g]},X];
function Vg(a){y.call(this,"ROM",a,Vg,128);this.ja=this.B=null;this.A=a.addr;this.f=a.size;this.F=!1;this.v=a.alias;this.g=a.file;this.H=w(this.g);if(this.g){a=this.g;var b=pa(this.H);"json"!=b&&"hex"!=b&&(a=Ia()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.M("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(pb(c.kb,a,b),(a=Ha(a,b))?(c.B=a.ha,c.ja=a.ja):c.g=null);Wg(c)})}}D(Vg);k=Vg.prototype;
k.Ha=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Wg(this)};k.La=function(){this.ja&&(this.j&&Xg(this.j,this.id,this.A,this.f,this.ja),delete this.ja);return!0};k.Ka=function(){return!0};
function Wg(a){if(!Ab(a)){if(a.g){if(!a.B||!a.w)return;a.f||(a.f=a.B.length);if(a.B.length!=a.f)Cb(a,"ROM size ("+q(a.B.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")");else{var b;a:{b=a.A;a.status(a.f+"-byte ROM at "+p(b));if(57344<=b&&b<57344+xc){var c={};b=(c[b]=[Vg.prototype.pe,Vg.prototype.pf,null,null,null,a.f>>1],c);if(Mb(a.w,a,b)){b=a.F=!0;break a}}else if(Dc(a.w,b,a.f,td)){for(c=0;c<a.B.length;c++)Kc(a.w,b+c,a.B[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.v?b.push(a.v):
null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.A>>>f.ra;0<g&&l<f.ea.length;)h.push(f.ea[l++]),g-=f.Ja;f=d.w;d=d.f;g=0;for(e>>>=f.ra;0<d&&e<f.ea.length;){l=h[g++];if(!l)break;f.ea[e++]=l;d-=f.Ja}}a.F||delete a.B}}}L(a)}}k.pe=function(a){return this.B[a-this.A]};k.pf=function(){};eb(function(){for(var a=G(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Vg(d);F(d,c)}});
function Yg(a){y.call(this,"RAM",a,Yg);this.ja=this.B=null;this.g=a.addr;this.v=a.size;this.Ua=a.load;this.Ta=a.exec;this.A=!1;this.f=a.file;this.F=w(this.f);if(this.f){a=this.f;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=Ia()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.M("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(pb(c.kb,a,b),(a=Ha(a,b))?(c.B=a.ha,c.ja=a.ja,null==c.Ua&&(c.Ua=a.Ua),null==c.Ta&&(c.Ta=a.Ta)):c.f=null);Zg(c)})}}
D(Yg);Yg.prototype.Ha=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Zg(this)};Yg.prototype.La=function(){this.ja&&(this.j&&Xg(this.j,this.id,this.g,this.v,this.ja),delete this.ja);return!0};Yg.prototype.Ka=function(){return!0};function Zg(a){if(a.w&&(!a.A&&a.v&&(Dc(a.w,a.g,a.v,Nc)?a.A=!0:a.v=0),!Ab(a))){if(!a.A)x("No RAM allocated");else if(a.f){if(!a.B||!a.w)return;$g(a,a.B,a.Ua,a.Ta,a.g)}L(a)}}
Yg.prototype.reset=function(){if(this.A){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.ra;0<c&&b<a.ea.length;){var e=a.ea[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Db&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.H(d,g,e.G+d);c-=a.Ja;b++;d=0}this.B&&$g(this,this.B,this.Ua,this.Ta,this.g,!0)}};
function $g(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){H(a,"invalid signature ("+v(m)+") at offset "+v(n),4096);break}if(l+6>=b.length){H(a,"invalid block at offset "+v(n),4096);break}for(var l=l+2,t=b[l++]&255|(b[l++]&255)<<8,r=b[l++]&255|(b[l++]&255)<<8,m=m+((t&255)+(t>>8)+(r&255)+(r>>8)),u=l,z=t-=6;0<t&&l<b.length;)m+=b[l++]&255,t--;if(t||l>=b.length){H(a,"insufficient data for block at offset "+v(n),4096);break}m+=
b[l++]&255;if(m&255){H(a,"invalid checksum ("+q(m,2,!0)+") for block at offset "+v(n),4096);break}if(z)for(H(a,"loading "+v(z)+" bytes at "+v(r)+"-"+v(r+z-1),4096);z--;)Kc(a.w,r++,b[u++]&255);else r&1?g=!0:null==d&&(d=r),null!=d&&H(a,"starting address: "+v(d),4096);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)Kc(a.w,c+e,b[e]);h=!0}if(h){if(null==d||g)a.b.aa(),f=!1;null!=d&&Vd(a.b,d,f)}return h}
eb(function(){for(var a=G(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Yg(d);F(d,c)}});function ah(a){y.call(this,"Keyboard",a,ah,1024);L(this)}D(ah);ah.prototype.ya=function(){return!1};ah.prototype.Ha=function(a,b,c,d){this.B=a;this.b=c;this.j=d};eb(function(){for(var a=G(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new ah(d);F(d,c)}});
function bh(a){this.K=a.adapter;this.Y=a.baudReceive||9600;this.wa=a.baudTransmit||9600;this.va=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ca=a.charBOL;this.H=0;this.J=!0;y.call(this,"SerialPort",a,bh,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=ch;b&&(void 0===c&&(c="Panel"),(c=sb(c,this.id))&&(b=c.D[b])&&this.ya(null,a,b))}this.A=this.P=this.S=null;this.exports={connect:this.Qc,receiveData:this.fc,receiveStatus:this.Ee}}D(bh);var ch="buffer";k=bh.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case ch:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.zc:ma.$c:46==c?b=ma.zc:a.ctrlKey&&c>=ma.xc&&c<=ma.gd&&(b=c-(ma.xc-ma.Xc));b&&(a.preventDefault&&a.preventDefault(),d.fc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==ma.Zc&&(b=ma.Yc);d.fc(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.fc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;var e=this;this.da=Tc(this.b,this.K?-1:48,4,262144);this.na=Qc(this.b,function(){var a;a=-1;e.I.length&&(a=e.I.shift()&255,H(e,"receiveByte("+q(a,2,!0)+")"),e.va&&97<=a&&122>a&&(a-=32),Sc(e.b,e.na,1E3/Math.round(e.Y/10)));0<=a&&(e.N=a,e.f&128?e.N|=49152:e.f|=128,e.f&64&&Rc(c,e.da))});this.T=Tc(this.b,this.K?-1:52,4,262144);this.Aa=Qc(this.b,function(){e.g|=128;e.g&64&&Rc(c,e.T)});Mb(b,this,dh,this.K?64832+8*(this.K-1)-65392:0);Ob(b,this.reset.bind(this));
L(this)};k.Qc=function(a){if(!this.A){var b=Gd(this.B,"connection");if(b){var c=b.split("->");if(2==c.length){var d=va(c[0]);if(d!=this.jb)return;c=va(c[1]);if(this.A=rb(c)){var e=this.A.exports;if(e){var f=e.connect;f&&f.call(this.A,this.J);if(this.P=e.receiveData){this.J=a;this.S=e.receiveStatus;this.status(this.kb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.La=function(a,b){if(!b)if(this.Qc(this.J),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){eh(this)};k.save=function(){var a=new U(this);a.set(0,[]);return a.data()};k.restore=function(){return eh(this)};function eh(a){a.N=0;a.f=8192;a.g=128;a.I=[];return!0}
k.fc=function(a){if("number"==typeof a)this.I.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.I.push(b)}else this.I=this.I.concat(a);Sc(this.b,this.na,1E3/Math.round(this.Y/10));return!0};k.Ee=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Rc(this.b,this.da))};k.ce=function(){var a=this.f&65534;this.f&=-32769;return a};
k.af=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.J?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.A,b))};k.be=function(){this.f&=-129;return this.N};k.$e=function(){};k.De=function(){return this.g};k.Df=function(a){this.g&128&&(a&64?Rc(this.b,this.T):ed(this.b,this.T));this.g=this.g&-70|a&69};k.Ce=function(){return 0};
k.Cf=function(a){a&=255;H(this,"transmitByte("+q(a,2,!0)+")");this.P&&this.P.call(this.A,a);a&=127;if(this.v)if(13==a)this.H=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.H&&this.H--;else{if(a){var b;b=(b=13!=a&&10!=a?Ca[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.H%a,this.ma&&(b=ua("",c)));this.ca&&!this.H&&c&&(b=String.fromCharCode(this.ca)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}}else if(null!=this.F){if(10==
a||1024<=this.F.length)this.i(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Sc(this.b,this.Aa,1E3/Math.round(this.wa/10));this.g&=-129};var fh={},dh=(fh[65392]=[null,null,bh.prototype.ce,bh.prototype.af,"RCSR"],fh[65394]=[null,null,bh.prototype.be,bh.prototype.$e,"RBUF"],fh[65396]=[null,null,bh.prototype.De,bh.prototype.Df,"XCSR"],fh[65398]=[null,null,bh.prototype.Ce,bh.prototype.Cf,"XBUF"],fh);
eb(function(){for(var a=G(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new bh(d);F(d,c)}});function nd(a){y.call(this,"PC11",a,nd);this.N=gh(this,a.autoMount);this.g=0;this.ca=a.baudReceive||3600;this.I=this.J=this.f=0;this.H=[];this.F=hh;this.v=Fh;this.K=this.A="";this.ha=this.Ua=this.Ta=null;this.T=-1;this.P=!Qa("Mobi")&&window&&"FileReader"in window}D(nd);var hh="",Fh=0;
function gh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=nd.prototype;
k.ya=function(a,b,c){var d=this,e=Fh;switch(b){case "listTapes":return this.D[b]=c,c.onchange=function(){var a=d.D.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){x("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.D[b]=c,!0;case "readTape":e=2;case "loadTape":return e||(e=1),this.D[b]=c,c.onclick=function(){var a=
d.D.listTapes;a&&Gh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.D[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Gh(d,w(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.D[b]=c,!0}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;this.Y=Hh(a);var e=this;if(a=gh(this,Gd(this.B,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.S=Tc(this.b,56,4,4096);this.da=Qc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.I<e.H.length&&(e.J=e.H[e.I++]&255,Ih(e,e.I/e.H.length*100),e.f|=128,e.f&=-2049,e.f&64&&Rc(e.b,e.S))});Mb(b,this,Jh);Ob(b,this.reset.bind(this));Kh(this,"None",hh,!0);this.P&&Kh(this,"Local Tape","?");Kh(this,"Remote Tape","??");Lh(this)||L(this)};
k.La=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.J=0};function Lh(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.D.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=w(c,!0)}c&&b?Mh(a,b,c,1,!0):Nh(a)}return!!a.g}
function Gh(a,b,c,d,e){if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"');a.F="??"}else a.F=c;Mh(a,b,c,d,!1,e)}else Oh(a,!1)}
function Mh(a,b,c,d,e,f){var g=-1;if(a.A.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Oh(a,!0),a.C.mb?a.M("PC11 busy"):(e&&(a.g++,K(a)&&H(a,"auto-loading tape: "+b)),Ph(a,b,c,d,f)?g++:a.C.mb=!0);g&&Qh(a,a.K,a.A,a.v,a.ha,a.Ua,a.Ta)}
function Ph(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Qh(a,b,c,d,e),a.F="?");Nh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):Ia()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ga(f,null,!0,function(e,f,g){var h=0>g&&a.B&&!a.B.C.la;g?a.M('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(pb(a.kb,e,f),(e=Ha(e,f))&&Qh(a,b,c,d,e.ha,e.Ua,
e.Ta));a.C.mb=!1;a.g&&(a.g--,a.g||L(a));Nh(a)})}function Kh(a,b,c,d){if((a=a.D.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Nh(a){var b=a.D.listTapes;if(b&&b.options){a=a.F||a.A;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Ih(a,b){b|=0;if(b!==a.T){var c=a.D.readProgress;c&&(c=(c=G(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.T=b}}
function Qh(a,b,c,d,e,f,g){a.K=b;a.A=c;a.v=d;a.ha=e;a.Ua=f;a.Ta=g;2==d?a.Y&&$g(a.Y,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.M('No valid memory address for tape "'+b+'"'):(a.I=0,a.H=e,a.status('Loaded tape "'+b+'"'),Ih(a,0))}function Oh(a,b){if(a.A||!1===b)a.K="",a.A="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.F=hh,a.v=Fh,Nh(a))}k.save=function(){return(new U(this)).data()};k.restore=function(){return!0};k.Wd=function(){return this.f&65534};
k.Ue=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Rc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.J=0,Sc(this.b,this.da,1E3/Math.round(this.ca/10))));this.f=this.f&-66|a&65};k.Vd=function(){this.f&=-129;this.f|=2048;return this.J};k.Te=function(){};var Rh={},Jh=(Rh[65384]=[null,null,nd.prototype.Wd,nd.prototype.Ue,"PRS"],Rh[65386]=[null,null,nd.prototype.Vd,nd.prototype.Te,"PRB"],Rh);
function Sh(a,b,c){y.call(this,"Disk",{id:a.kb+".disk"+q(++Th,4)},Sh,8192);this.controller=a;this.B=a.B;this.j=a.j;this.v=b;this.Va=b.name;this.bc=b.bc;Uh(this,c,b.fa,b.ka,b.ia,b.Ba);L(this)}var Th=0;D(Sh);k=Sh.prototype;k.Ha=function(a,b,c,d){this.j=d};
function Uh(a,b,c,d,e,f){a.mode=b;a.fa=c;a.ka=d;a.ia=e;a.Ba=f;a.b=[];if("preload"!=a.mode){b=Array(a.fa);for(c=0;c<b.length;c++){d=Array(a.ka);for(e=0;e<d.length;e++){f=Array(a.ia);for(var g=1;g<=f.length;g++)f[g-1]=Vh(null,c,e,g,a.Ba,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
function Wh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Va=b;a.Oa=c;a.tc=w(c);a.w=e;a.A=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.fa=e[0];a.ka=e[1];a.ia=e[2];a.Ba=e[3]||512;c=a.Ba>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.fa);for(d=0;d<a.b.length;d++)for(var r=a.b[d]=Array(a.ka),u=0;u<r.length;u++)for(var z=r[u]=Array(a.ia),A=0;A<z.length;A++){for(var C=Vh(null,d,u,A+1,a.Ba,0),ta=C.data,Va=0;Va<c;Va++,f+=4)var S=ta[Va]=b.getInt32(f,
!0),e=e+S&-1;C.Qa=c;z[A]=C}a.f=e;c=a}else a.M("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Va,a.Oa),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=pa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):qa(c,"/")&&(d="dir"),f=Ia()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.bc?"":e)+"&format=json"));return!!Ga(f,
null,!0,function(b,c,d){Xh(a,b,c,d)})}
function Xh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.B&&!a.B.C.la;if(d)a.controller.M('Unable to load disk "'+a.Va+'" (error '+d+": "+b+")",f);else{pb(a.controller.kb,b,c);try{if(0<w(a.tc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Va]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(h.length)if(1==h.length)x(h[0]);else{a.fa=h.length;a.ka=h[0].length;a.ia=h[0][0].length;var l=h[0][0][0];a.Ba=l&&l.length||512;for(d=c=0;d<a.fa;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ia;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var t=l.data;if(void 0===t){var r=l.bytes;if(void 0!==r&&r.length){for(var u=m<<2,z=r.length;z<u;z++)r[z]=n;Yh(l,r)}else t=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=t;delete l.bytes}Vh(l,d,f);for(u=
0;u<t.length;u++)c=c+t[u]&-1}a.b=h;a.f=c;e=a}else x("Empty disk image: "+a.Va)}catch(A){x("Disk image error ("+b+"): "+A.message)}}a.w&&(a.w.call(a.A,a.v,e,a.Va,a.Oa),a.w=null)}function Vh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Eg=b;a.Fg=c;a.Za=a.Qa=0;a.eb=!1;return a}
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.md&&b<f.ka)for(h=g[b]=Array(f.Kc),g=0;g<h.length;g++)h[g]=Vh(null,a,b,g+1,f.qc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.md&&9==f.mc&&(d=h[g]=Vh(null,a,b,f.mc,f.qc,0))}}e&&e(d,!1);return d};function Yh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Qa?f<a.Za?(a.Qa+=a.Za-f,a.Za=f):f>=a.Za+a.Qa&&(a.Qa+=f-(a.Za+a.Qa)+1):(a.Za=f,a.Qa=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Zh(a,b){var c=a.ka*a.ia,d=b/c|0;return d<a.fa?(b%=c,a.seek(d,b/a.ia|0,b%a.ia+1)):null}function $h(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function ai(a){for(var b="",c=0,d;d=Zh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode($h(a,d,e));return btoa(b)}
k.save=function(){var a=0,b=[];b[a++]=[this.Oa,this.f,this.fa,this.ka,this.ia,this.Ba];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Qa){for(var h=[],l=0,m=g.Za,n=g.Za+g.Qa;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.Za,h]}}return b};
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?Uh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Za=e;for(h.Qa=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.M("Unable to restore disk '"+this.Va+": "+c);return b};
k.toJSON=function(){var a;a=0;for(var b;b=Zh(this,a++);)bi(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function bi(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function T(a){y.call(this,"RK11",a,T,65536);this.J=ci(this,a.autoMount);this.F=0;this.g=Array(8);this.K=!Qa("Mobi")&&window&&"FileReader"in window}D(T);function ci(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=T.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RK11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&di(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&ei(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Vd(d.b,0,!0),(a=d.Ac(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.K){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Ra(ai(a),a.tc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.K)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;ei(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;if(a=ci(this,Gd(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.J[e]=a[e]);fi(this);this.Kb=Tc(this.b,144,5,65536);Mb(b,this,gi);Ob(b,this.reset.bind(this));hi(this,"None","",!0);this.K&&hi(this,"Local Disk","?");hi(this,"Remote Disk","??");ii(this)||L(this)};
k.La=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.pc){for(a=0;a<this.g.length;a++)ji(this,a,!0);ii(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";di(this,0)}}return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){fi(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return fi(this,a[0])};function ii(a,b){b||(a.F=0);for(var c in a.J){var d=a.J[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!ki(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
function ei(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}ki(a,e,b,c,!1,d)}else ji(a,e)}
function ki(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Oa.toLowerCase()!=d.toLowerCase()&&(g++,ji(a,b,!0),h.yb?a.M("RK11 busy"):(h.yb=!0,e&&(h.xb=!0,a.F++,K(a)&&H(a,"auto-loading disk: "+c)),h.fb=!!f,Wh(new Sh(a,h,"preload"),c,d,f,a.bd)&&g++));return g}
k.bd=function(a,b,c,d,e){a.yb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RK"+a.zb)),b=null);b?(a.qa=b,a.Va=c,a.Oa=d,this.M('Loaded disk "'+c+'" in drive '+("RK"+a.zb),a.xb||e),this.B&&this.B.qb()):a.fb=!1;a.xb&&(a.xb=!1,--this.F||L(this));di(this,a.zb)};
function hi(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function di(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.fb?"?":c.Oa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ji(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Va="",d.Oa="",d.qa=null,d.fb=!1,c||(a.M("Drive RK"+b+" unloaded",c),di(a,b))}
function fi(a,b){var c=0;b||(b=[]);a.P=b[c++]||2496;a.v=b[c++]||0;a.f=b[c++]||128;a.I=b[c++]||0;a.H=b[c++]||0;a.A=b[c++]||0;a.N=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.zb=b;d.name=c.jb;d.yb=d.fb=!1;d.fa=203;d.ka=2;d.ia=12;d.Ba=512;d.bc=!0;d.nd=0;d.ld=0;d.mc=1;d.Kc=d.ia;d.qc=d.Ba;d.wd=0;d.Ge=null;d.qa||(d.Oa="");d.status=2368}return!0}
k.ad=function(a,b,c,d,e,f){this.H=f&65535;this.f=this.f&-49|f>>12&48;this.I=65536-e&65535;this.A=this.A&-16|d&15;a&&(this.v=this.v|a|32768,this.f|=49152);return!0};
k.Ac=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){if(!m){m=a.seek(b,c,d+1);if(!m){l=4096;break}n=0}var t,r;if(0>(t=a.read(m,n++))||0>(r=a.read(m,n++))){l=32;break}if(!g&&(ac(this.w,f,t|r<<8),Pc(this.w))){l=1024;break}f+=2;if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){l=64;break}}return h?h(l,b,c,d,e,f):l};
k.cd=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){var t=pc(this.w,f);if(Pc(this.w)){l=1024;break}f+=2;if(!m){m=a.seek(b,c,d+1,!0);if(!m){l=4096;break}n=0}if(g){var r,u;if(0>(r=a.read(m,n++))||0>(u=a.read(m,n++))){l=32;break}if(t!=(r|u<<8)){l=1;break}}else if(!a.write(m,n++,t&255)||!a.write(m,n++,t>>8)){l=32;break}if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){l=64;break}}return h?h(l,b,c,d,e,f):l};k.he=function(){return this.P};k.ff=function(){};
k.ie=function(){return this.v};k.gf=function(){};k.ee=function(){return this.f&61438};
k.cf=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){a=!0;var b,c="",d=(this.A&57344)>>13,e=this.g[d],f,g,h,l,m;this.f&=-129;var n=(this.f&14)>>1;switch(n){case 0:K(this)&&H(this,this.type+": CRESET("+d+")",!0);this.v=0;this.f=128;this.A=0;break;case 4:f=(this.A&8160)>>5;K(this)&&H(this,this.type+": SEEK("+f+")",!0);f>=e.fa&&(this.v|=32832,this.f|=49152);break;case 5:c="RCHK";case 2:c||(c="READ"),b=this.Ac;case 3:c||(c="WCHK");case 1:c||(c="WRITE");b||(b=this.cd);f=(this.A&8160)>>5;g=(this.A&
16)>>4;h=this.A&15;l=65536-this.I&65535;m=(this.f&48)<<12|this.H;K(this)&&H(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(m)+"-"+p(m+(l-1<<1)),!0);if(f>=e.fa){this.v|=32832;this.f|=49152;break}if(h>=e.ia){this.v|=32800;this.f|=49152;break}a=b.call(this,e,f,g,h,l,m,3<=n,this.ad.bind(this));break;case 6:K(this)&&H(this,this.type+": DRESET("+d+")");break;default:K(this)&&H(this,this.type+": UNSUPPORTED("+n+")")}this.P=e.status|(e.qa?128:0)|d<<13|this.A&15;this.v&32768&&K(this)&&H(this,this.type+": ERROR: "+
p(this.v)+")");a&&(this.f&=-2,this.f|=128,this.f&64&&Rc(this.b,this.Kb))}};k.je=function(){return this.I};k.hf=function(a){this.I=a};k.de=function(){return this.H};k.bf=function(a){this.H=a};k.fe=function(){return this.A};k.df=function(a){this.A=a};k.ge=function(){return this.N};k.ef=function(a){this.N=a};
var li={},gi=(li[65280]=[null,null,T.prototype.he,T.prototype.ff,"RKDS"],li[65282]=[null,null,T.prototype.ie,T.prototype.gf,"RKER"],li[65284]=[null,null,T.prototype.ee,T.prototype.cf,"RKCS"],li[65286]=[null,null,T.prototype.je,T.prototype.hf,"RKWC"],li[65288]=[null,null,T.prototype.de,T.prototype.bf,"RKBA"],li[65290]=[null,null,T.prototype.fe,T.prototype.df,"RKDA"],li[65294]=[null,null,T.prototype.ge,T.prototype.ef,"RKDB"],li);
function R(a){y.call(this,"RL11",a,R,131072);this.K=mi(this,a.autoMount);this.I=0;this.g=Array(4);this.N=!Qa("Mobi")&&window&&"FileReader"in window}D(R);function mi(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=R.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&ni(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&oi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Vd(d.b,0,!0),(a=d.Bc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.N){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Ra(ai(a),a.tc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.N)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;oi(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;if(a=mi(this,Gd(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);pi(this);this.Kb=Tc(this.b,112,5,131072);Mb(b,this,qi);Ob(b,this.reset.bind(this));ri(this,"None","",!0);this.N&&ri(this,"Local Disk","?");ri(this,"Remote Disk","??");si(this)||L(this)};
k.La=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.pc){for(a=0;a<this.g.length;a++)ti(this,a,!0);si(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";ni(this,0)}}return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){pi(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return pi(this,a[0])};function si(a,b){b||(a.I=0);for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!ui(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.I}
function oi(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}ui(a,e,b,c,!1,d)}else ti(a,e)}
function ui(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Oa.toLowerCase()!=d.toLowerCase()&&(g++,ti(a,b,!0),h.yb?a.M("RL11 busy"):(h.yb=!0,e&&(h.xb=!0,a.I++,K(a)&&H(a,"auto-loading disk: "+c)),h.fb=!!f,Wh(new Sh(a,h,"preload"),c,d,f,a.ed)&&g++));return g}
k.ed=function(a,b,c,d,e){a.yb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RL"+a.zb)),b=null);b?(a.qa=b,a.Va=c,a.Oa=d,this.M('Loaded disk "'+c+'" in drive '+("RL"+a.zb),a.xb||e),this.B&&this.B.qb()):a.fb=!1;a.xb&&(a.xb=!1,--this.I||L(this));ni(this,a.zb)};
function ri(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ni(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.fb?"?":c.Oa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ti(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Va="",d.Oa="",d.qa=null,d.fb=!1,c||(a.M("Drive RL"+b+" unloaded",c),ni(a,b))}
function pi(a,b){var c=0;b||(b=[]);a.f=b[c++]||129;a.J=b[c++]||0;a.v=b[c++]||0;a.A=b[c++]||0;a.H=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.zb=b;d.name=c.jb;d.yb=d.fb=!1;d.fa=512;d.ka=2;d.ia=40;d.Ba=256;d.bc=!0;d.nd=0;d.ld=0;d.mc=1;d.Kc=d.ia;d.qc=d.Ba;d.wd=0;d.Ge=null;d.qa||(d.Oa="");d.status=29}return!0}
k.dd=function(a,b,c,d,e,f){this.J=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.A=this.v=b<<7|(c?64:0)|d&63;this.H=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
k.Bc=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,t;if(0>(n=a.read(l,m++))||0>(t=a.read(l,m++))){h=5120;break}ac(this.w,this.b.Ia(f),n|t<<8);if(Pc(this.w)){h=8192;break}f+=2;if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};
k.fd=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=pc(this.w,this.b.Ia(f));if(Pc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};k.me=function(){return this.f&65535};
k.lf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){a=!0;var b,c="",d=this.g[(this.f&768)>>8],e=d.qa,f,g,h;this.f&=-2;switch(this.f&14){case 4:this.H&8&&(this.f&=63);this.H=d.status|this.A&64|(e&&512==e.fa?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.A=this.v&4?this.A+b:this.A-b,this.v=this.A=this.A&65408|c);break;case 8:this.H=this.A;break;case 12:c="READ",b=this.Bc;case 10:c||(c="WRITE"),b||(b=this.fd),f=this.v>>7,g=this.v&64?1:0,
h=this.v&63,!e||f>=e.fa||h>=e.ia?this.f|=37888:(a=65536-this.H&65535,e=(this.F&63)<<16|this.J,K(this)&&H(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(e)+"-"+p(e+(a-1<<1)),!0),a=b.call(this,d,f,g,h,a,e,this.dd.bind(this)))}a&&(this.f|=129,this.f&64&&Rc(this.b,this.Kb))}};k.ke=function(){return this.J};k.jf=function(a){this.J=a&65534};k.ne=function(){return this.v};k.mf=function(a){this.v=a};k.oe=function(){return this.H};k.nf=function(a){this.H=a};k.le=function(){return this.F};
k.kf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};var vi={},qi=(vi[63744]=[null,null,R.prototype.me,R.prototype.lf,"RLCS"],vi[63746]=[null,null,R.prototype.ke,R.prototype.jf,"RLBA"],vi[63748]=[null,null,R.prototype.ne,R.prototype.mf,"RLDA"],vi[63750]=[null,null,R.prototype.oe,R.prototype.nf,"RLMP"],vi[63752]=[null,null,R.prototype.le,R.prototype.kf,"RLBE"],vi);function wi(a){y.call(this,"Debugger",a,wi);this.ma=a.base||16;this.Ga=!1;this.J=0;this.T=!1;this.A=-1;this.g=[];this.ca={}}D(wi);
var xi={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};wi.prototype.Oc=function(){return-1};wi.prototype.Pc=function(){};
function yi(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.T?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a}
function zi(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Ai(a,b,c){var d;if(b){b=Bi(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=va(n);if(!n){f=!0;break}n=Ci(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],r=n.length;l.length&&xi[n]<xi[l[l.length-1]]&&zi(h,l,1);l.push(n);b=b.substr(t+r)}zi(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Di(a,null,
d))}return d}function Bi(a,b){for(var c,d=a.Ga?"(":"{",e=a.Ga?")":"}",f=new RegExp(a.Ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Ai(a,c[1]);b=b.replace(d+c[1]+e,null!=g?N(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Ci(a,b,c,d){var e;null!=b?(e=a.Oc(b),0<=e?e=a.Pc(e):(e=a.ca[b],null==e&&(e=na(b,a.ma))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}function Di(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=oa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+p(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function Ei(a,b){if(b)return Di(a,b,a.ca[b]);var c=0;for(b in a.ca)Di(a,b,a.ca[b]),c++;return 0<c}function N(a,b,c,d){switch(a.ma){case 8:a=p(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=q(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
function Fi(a){wi.call(this,a);this.Xa=!1;this.Ga=!0;this.K=Y(0);this.Wa=Y(0);this.S=Y(0);this.I=[];this.f=this.N=this.F=[];Gi(this);this.wa=0;Hi(this);this.Pa={};Ii(this,a.messages);this.Sa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Kd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Kd(b,a)})}D(Fi,wi);
var Ji={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ki=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
Li={SP:6,PC:7,PS:20,IR:21,ER:22,SL:23,MMR0:24,MMR1:25,MMR2:26,MMR3:27,AR:28,DR:29,SR:30},Mi="KI KD SI SD ?? ?? UI UD".split(" "),Ni={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},
65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106,32768],35072:[107,32768]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,
63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],
180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},Oi=[0],Pi=[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=Fi.prototype;
k.Ha=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.v=a.v;(a=Gd(a,"messages"))&&Ii(this,a);this.ub=Ni;this.Fb=1145>this.b.nb?Pi:[];dd(this,16,function(a){a:{var b=d.w.ea,c=a[0],e=a=0,l=b.length;if(c){a=d.ba(Qi(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.w.ra;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Ic[c],n&&d.i(q(n.id,8)+" %"+
q(e<<d.w.ra,8)+" %%"+q(n.G,8)+" "+v(n.Sb)+" "+v(n.size)+" "+m),c!=sd&&(c=-1),m=0);a+=d.w.Ja;e++}}});L(this)};
k.ya=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.D[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Kd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.g.length-1&&(b=d.g[++d.A])):40==a.keyCode&&(0<d.A?b=d.g[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.D[b]=c,Ta(c,function(){if(d.va){var a=d.va.value;
d.va.value="";Kd(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Ta(c,function(a){var b=!1;zb(d,!0)||(tb(d,!0),b=d.rb(a?1:0,null),tb(d,!1));return b}),!0}return!1};k.qb=function(a){if(this.va){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.va.focus();!a&&window&&window.scrollTo(b,c)}};k.ba=function(a){a=a&&a.G;null==a&&(a=-1);return a};k.Ia=function(a){return 3932160<=a?this.b.Ia(a):a};
k.dc=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(a.ac||65535<d?(c=this.w,d=this.Ia(d),c.B=!1,c.sa++,d=Jc(c,d).I(d&c.w,d),c.sa--):(c=this.b,c.J++,d=Ee(c,oc(c,d,3)),c.J--),c=d,b&&Ri(a,b));return c};k.xa=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=a.ac||65535<d?pc(this.w,this.Ia(d)):qc(this.b,d),b&&Ri(a,b));return c};
k.Rb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){if(a.ac||65535<d)Kc(this.w,this.Ia(d),b);else{var e=this.b;e.J++;d=oc(e,d,5);d&1&&e.b--;e.w.Rb(d,b);e.J--}c&&Ri(a,c);this.B.za(-1)}};k.Eb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){if(a.ac||65535<d)ac(this.w,this.Ia(d),b);else{var e=this.b;e.J++;e.wc(oc(e,d,4),b);e.J--}c&&Ri(a,c);this.B.za(-1)}};function Y(a,b){return{G:a,ac:b,Ya:!1}}k.uc=function(a,b){a.G=b;a.Ya=!1;return a};function Si(a){return[a.G,a.Ya]}
function Ti(a){return{G:a[0],Ya:a[1]}}function Qi(a,b,c){var d,e=(c?a.K:a.Wa).G;c=!1;if(void 0!==b){b=Bi(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.I.length;e++){var g=a.I[e].ja[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=Ai(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Ui(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.hd=yi(a,b.Tc=c[2]))}function Ri(a,b){null!=a.G&&(a.G+=b||1)}
function Ii(a,b){a.j=a;a.pa=a.pd=536870912;a.na=null;a.Y=[];b=yi(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Gb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.pa|=Gb[c],a.i(c+" messages enabled"))}}function dd(a,b,c){for(var d in Gb)if(b==Gb[d]){a.Pa[d]=c;break}}
k.Oc=function(a){a=a.toUpperCase();var b=Li[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Vi(a){return 6>a?"R"+a:6==a?"SP":"PC"}
k.Pc=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.$a[a-8];else if(20>a)b=this.b.Na[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=ld(this.b);break;case 21:b=c.Cb;break;case 22:b=c.oa;break;case 23:b=c.gb;break;case 24:b=fd(c);break;case 25:b=hd(c);break;case 26:b=id(c);break;case 27:b=c.Ma;break;case 28:d&&(b=d.Da);break;case 29:d&&(b=d.Bb);break;case 30:d&&uc(d)&&(b=d.hb)}}return b};
k.message=function(a,b){b&&(a+=" @"+N(this,Y(this.b.ta&65535).G));if(!this.na||a!=this.na)if(this.na=a,this.pa&1073741824)this.Y.push(a);else{var c;if(this.pa&-2147483648&&this.b&&(c=this.b.C.U)||zb(this,!0))this.aa(),c&&(a+=" (cpu halted)");this.i(a);this.b&&(a=this.b,Od(a),a.Pa=0,a.za())}};
function Hi(a){var b;if(!Qe(a))a.H&&a.H.length&&a.i("instruction history buffer freed"),a.da=0,a.H=[];else if(!a.H||!a.H.length){a.H=Array(1E3);for(b=0;b<a.H.length;b++)a.H[b]=Y();a.da=0;a.i("instruction history buffer allocated")}}k.ib=function(a,b){if(!Wi(this,b))return!1;this.b.ib(a);return!0};
k.rb=function(a,b,c){if(!Wi(this))return!1;null===b&&(b=!this.vb||"tr"==this.vb);this.J=0;a||Qe(this)&&Re(this,this.b.u[7],0);try{a=Pd(this.b,a);var d=this.b.rb(a);0<d&&(Wb(this.b,d),this.J+=d,Xb(this.b,d,!0),Yb(this.b,d),this.Aa++)}catch(e){"number"!=typeof e&&(this.J=0,Cb(this.b,e.stack||e.message))}!1!==c&&(this.v&&this.v.stop(),this.B.za(-1));Jd(this,b||!1);return 0<this.J};k.aa=function(a){this.b&&this.b.aa(a)};
function Jd(a,b){if(a.Xa){void 0===b&&(b=!0);var c;c=a.b;if(c=c.L&128?c.qd|c.od<<8:0){var d=c>>8;a.i("trapped to "+N(a,c&255,1)+" ("+(0>d?Eb[-d]:N(a,d))+")")}a.K=Y(a.b.u[7]);b&&1!=a.P?Xi(a):Yi(a)}}function Wi(a,b){var c;(c=!a.b||!Ab(a.b))||(c=a.b,c.C.la?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.U?(b||a.i("cpu busy or unavailable, command ignored"),!1):!Bb(a.b)}k.La=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.Ka=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Hi(this);this.Aa=0;this.na=null;this.J=0;this.K=Y(this.b.u[7]);this.C.U=!1;Zi(this);a||Jd(this)};k.save=function(){var a=new U(this);a.set(0,Si(this.K));a.set(1,Si(this.S));a.set(2,[this.g,this.T,this.pa]);a.set(3,this.I);return a.data()};
k.restore=function(a){var b=0;void 0!==a[2]&&(this.K=Ti(a[b++]),this.S=Ti(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.T=a[b][1],this.pa|=a[b][2]);a[3]&&(this.I=a[3]);return!0};k.start=function(a,b){this.P||this.i("running");this.C.U=!0;this.Gb=a;this.Hb=b};
k.stop=function(a,b){if(this.C.U){this.C.U=!1;this.J=b-this.Hb;if(!this.P){b="stopped";if(this.J){a-=this.Gb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";Qe(this)&&(b+=this.Aa+" instructions, ",this.Aa=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else K(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Jd(this,!0);this.qb();Zi(this,this.b.u[7]);this.na=null}};function Qe(a){return 1<a.f.length||!!a.wa}
function Re(a,b,c){var d=-1;c||(d=qc(a.b,b),0==d&&(b=be(a.b,2)));if(0<c&&(a.wa&&!--a.wa||Bd(a,b,1,a.f)))return!0;0<=c&&a.H.length&&(a.Aa++,0>d&&(d=qc(a.b,b)),65535!=(d&65535)&&(a.uc(a.H[a.da],b),++a.da==a.H.length&&(a.da=0)));return!1}function Xf(a){var b=a.b;if(b.C.U)throw Wd(b,a.b.ta&65535),a.aa(),-1;return!1}
function Gi(a){var b,c;a.f=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];var d=a.w;c=a.ba(c);Cd(d.ea[c>>>d.ra],!1)}a.N=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.w,c=a.ba(c),Cd(d.ea[c>>>d.ra],!0);a.F=["bw"];a.ab=0}k.wb=function(a,b,c){var d=!0;c||$i(this,a,b,!1,!0);if(a!=this.f){var e=this.ba(b);if(-1===e)this.i("invalid address: "+N(this,b.G)),d=!1;else{var f=this.w;f.ea[e>>>f.ra].wb(e&f.w,a==this.F)}}d&&(a.push(b),c?b.Ya=!0:(aj(this,a,a.length-1,"set"),Hi(this)));return d};
function $i(a,b,c,d,e){var f=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.Ya)){f=!0;h.Ya||e||aj(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Cd(d.ea[c>>>d.ra],b==a.F));h.Ya||Hi(a);break}}return f}function bj(a,b){for(var c=1;c<b.length;c++)aj(a,b,c);return b.length-1}function aj(a,b,c,d){c=b[c];a.i(b[0]+" "+N(a,c.G)+(d?" "+d:c.Tc?' "'+c.Tc+'"':""))}
function Zi(a,b){if(void 0!==b)Bd(a,b,1,a.f,!0),a.P=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ya){if(!$i(a,a.f,c,!0))break;b=0}}}
function Bd(a,b,c,d,e){var f=!1;if(!a.ab++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ya)for(var l=a.ba(h)&65535,m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Ya&&($i(a,d,h,!0),e=!0);if(n=h.hd){for(var f=!1,t=0;t<n.length;t++)if(!cj(a,n[t],!0)){if(n[t].indexOf("if")){f=!0;break}for(var r=t+1;r<n.length&&n[r].indexOf("else");r++)t++;if(r==n.length){f=!0;break}}a.b.C.U||(f=!0)}if(f){e||aj(a,d,g,"hit");break}}}a.ab--;return f}
function dj(a,b,c,d){var e=Y(b.G),f=a.xa(b,2),g,h;for(h in a.ub)if(g=a.ub[h][f&h])break;g||(g=Oi);var l=g[0];0<=a.Fb.indexOf(l)&&(g=Oi,l=g[0]);var m=h="",n=Ki[l],t=g.length-1;l||t||(h=N(a,f));for(l=1;l<=t;l++){var r=g[l];if(void 0!==r){var u;u=a;var z=r,r=b,A="",C=z&61440;if(4096==C)r=r.G+((f&255)<<24>>23)&65535,A=N(u,r);else if(8192==C)r=r.G-((f&63)<<1)&65535,A=N(u,r);else if(12288==C)A=N(u,f&7,1);else if(24576==C)A=N(u,f&63,1);else if(32768==C)A=N(u,f&255,1);else if(C=f&z,z&4032&&(C>>=6,z>>=6),
z&63)switch(z=C&7,C&56){case 0:A=Vi(z);break;case 8:A="@"+Vi(z);break;case 16:7>z?A="("+Vi(z)+")+":(C=u.xa(r,2),A="#"+N(u,C,0,!0));break;case 24:7>z?A="@("+Vi(z)+")+":(C=u.xa(r,2),A="@#"+N(u,C,0,!0));break;case 32:A="-("+Vi(z)+")";break;case 40:A="@-("+Vi(z)+")";break;case 48:C=u.xa(r,2);A=N(u,C,0,!0)+"("+Vi(z)+")";7==z&&(A=N(u,C+r.G&65535));break;case 56:C=u.xa(r,2),A="@"+N(u,C)+"("+Vi(z)+")",7==z&&(A="@"+N(u,C+r.G&65535))}u=A;if(!u||!u.length){h="INVALID";break}"string"!=typeof u&&(m=u[1],u=u[0]);
0<h.length&&(h+=",");h+=u||"???"}}f="";g=N(a,e.G)+":";if(-1!==e.G&&-1!==b.G){do if(f+=" "+N(a,a.xa(e,2)),null==e.G)break;while(e.G!=b.G)}g+=ua(f,24);g+=ua(n,5);h&&(g+=" "+h);if(c||m)g=ua(g,60)+";"+(c||""),g=a.b.C.Jb?g+("cycles="+Ld(a.b).toString()+" cs="+q(a.b.Wb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function ej(a,b){switch(b){case "N":a=$d(a.b);break;case "Z":a=Zd(a.b);break;case "V":a=Yd(a.b);break;case "C":a=Xd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.b;if(8>b)c=Vi(b),c+="="+N(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+N(a,d.$a[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+N(a,d.Na[b-16]);else switch(b){case 20:c="PS="+N(a,ld(d));break;case 21:c="IR="+N(a,d.Cb);break;case 22:c="ER="+N(a,d.oa);break;case 23:c="SL="+N(a,d.gb);break;case 24:c="MMR0="+N(a,fd(d));break;case 25:c="MMR1="+N(a,hd(d));break;case 26:c="MMR2="+N(a,id(d));break;case 27:c="MMR3="+N(a,d.Ma);break;case 28:a.v&&(c="AR="+N(a,a.v.Da,3));break;case 29:a.v&&
(c="DR="+N(a,a.v.Bb));break;case 30:a.v&&uc(a.v)&&(c="SR="+N(a,a.v.hb,3))}c&&(c+=" ");return c}function fj(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,20)+Z(a,21)+Z(a,23);d+=ej(a,"T")+ej(a,"N")+ej(a,"Z")+ej(a,"V")+ej(a,"C");b&&(b=d,c=""+(Z(a,24)+Z(a,25)),c+=Z(a,26)+Z(a,27)+Z(a,22),c=c+"\n"+(Z(a,30)+Z(a,28)+Z(a,29)),d=b+("\n"+c));return d}k.Lc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Xg(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],t=Da(n,l,a.Lc);0>t&&n.splice(-(t+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.I.push({Lg:b,G:c,xd:d,ja:e,Jc:f})}function gj(a,b,c){var d=[],e=a.ba(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.G>>>0,h=f.xd;if(e>=g&&e<g+h){e=Da(f.Jc,[e-g],a.Lc);0<=e?hj(a,b,e,d):c&&(e=~e,hj(a,b,e-1,d),hj(a,b,e,d));break}}return d}
function hj(a,b,c,d){var e={},f=a.I[b].Jc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].ja[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function ij(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ei(a)||a.i("no variables"),!0;if(!c[2])return Ei(a,c[1]);if(!c[3])return delete a.ca[c[1]],!0;b=Ai(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function jj(a,b,c){var d=null;if(b=Qi(a,b,!0)){a.ba(b);var e=gj(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.G-e[1])&&(g=" + "+v(f)),f=e[0]+" ("+N(a,e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.G)&&(g=" - "+v(f)),f=e[4]+" ("+N(a,e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Xi(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}g=Ai(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.u[6]=g&65535;break;case "PC":case "R7":Wd(e,
g);a.K=Y(e.u[7]);break;case "N":e.X=g?32768:0;break;case "Z":e.Z=g?0:1;break;case "V":e.W=g?32768:0;break;case "C":e.V=g?65536:0;break;case "PS":md(e,g);break;case "IR":kd(e,g);break;case "ER":e.oa=g;d=!0;break;case "SL":e.gb=g|255;break;case "MMR0":gd(e,g);d=!0;break;case "MMR3":jd(e,g);d=!0;break;case "AR":a.v&&(d=a.v,rc(d,d.Da=g));d=!0;break;case "DR":a.v&&(d=a.v,$b(d,d.Bb=g));d=!0;break;case "SR":if(a.v&&uc(a.v)){sc(a.v,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.u[b]=
g&65535;break}a.i("unknown register: "+f);return}a.B.za();a.i("updated registers:")}}a.i(fj(a,d));c&&(a.K=Y(e.u[7]),Yi(a,N(a,a.K.G)))}}function kj(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):Di(a,null,c[2].charCodeAt(0)):Ai(a,b,!0)}
function lj(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Ci(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.vb=b;Sa(c,function(){return tb(a,!0)&&a.rb(e,d,!1)},function(){a.v&&a.v.stop();a.B.za(-1);tb(a,!1)})}}
function Yi(a,b,c,d){if(b=Qi(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ci(a,c.substr(1)),null!=c&&(d=c);else{d=Qi(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=zb(a,!1)||a.P?a.J:null;var g=null!=f?"cycles":null,h=gj(a,b),l=b.G;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=dj(a,b,g,f);a.i(f);a.K=b;e-=b.G-l;c++}}}
function cj(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.T&&(a.i("ended assemble at "+N(a,a.S.G)),a.K=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(Ab(a)&&0<b.length){a.T&&(b="a "+N(a,a.S.G)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var t=
Qi(a,g[1],!0);if(t)if(a.S=t,void 0===g[2])a.i("begin assemble at "+N(a,t.G)),a.T=!0,a.B.za();else{var r;a.i("not supported yet");r=[];if(r.length){for(var u=0;u<r.length;u++)a.Rb(t,r[u],1);a.i(dj(a,a.S))}}break;case "b":a:{var z=g[0],A=g[1],C=b;if("?"==A)a.i("breakpoint commands:"),a.i("\tbp [#]\tset exec breakpoint at addr #"),a.i("\tbr [#]\tset read breakpoint at addr #"),a.i("\tbw [#]\tset write breakpoint at addr #"),a.i("\tbc [#]\tclear breakpoint at addr #"),a.i("\tbl\tlist all breakpoints"),
a.i("\tbn [#]\tbreak after # instruction(s)");else{var ta=z.charAt(1);if("l"==ta){var Va;Va=0+bj(a,a.f);Va+=bj(a,a.N);(Va+=bj(a,a.F))||a.i("no breakpoints")}else if("n"==ta)a.wa=Ci(a,A),a.i("break after "+a.wa+" instruction(s)");else if(void 0===A)a.i("missing breakpoint address");else{var S=Y();if("*"!=A&&(S=Qi(a,A,!0),!S))break a;"c"==ta?null==S.G?(Gi(a),a.i("all breakpoints cleared")):$i(a,a.f,S)||$i(a,a.N,S)||$i(a,a.F,S)||a.i("breakpoint missing: "+N(a,S.G)):null!=S.G&&(Ui(a,S,C),"p"==ta?a.wb(a.f,
S):"r"==ta?a.wb(a.N,S):"w"==ta?a.wb(a.F,S):a.i("unknown breakpoint command: "+ta))}}}break;case "c":a.cb&&(a.cb.value="");break;case "d":a:{var ub,Ma=g[0],wa=g[1],Xa=g[2],Ej=g[3];if("?"==wa){var vb="";for(ub in Gb)a.Pa[ub]&&(vb&&(vb+=","),vb+=ub);vb+=",state,symbols";a.i("dump memory commands:");a.i("\tda [a] dump info for address a");a.i("\tdb [a] [n] dump n bytes at address a");a.i("\tdw [a] [n] dump n words at address a");a.i("\tdd [a] [n] dump n dwords at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
a.i("\tdh [p] [n] dump n instructions from history position p");vb.length&&a.i("dump extension commands:\n\t"+vb)}else if("state"==wa){var ih=mj(a.B,!0);"console"==Xa?console.log(ih):(a.cb&&(a.cb.value=""),a.i(ih))}else if("symbols"==wa)for(var ee=0;ee<a.I.length;ee++){var fe=a.I[ee],wb;for(wb in fe.ja)if("."!=wb.charAt(0)){var jh=fe.ja[wb].o;if(void 0!==jh){var kh=fe.ja[wb].l;kh&&(wb=kh);a.i(N(a,jh)+" "+wb)}}}else{if("d"==Ma){for(ub in Gb)if(g[1]==ub){var lh=a.Pa[ub];lh?(g.shift(),g.shift(),lh(g)):
a.i("no dump registered for "+wa);break a}wa||(Ma=a.Vb||"dw")}else a.Vb=Ma;if("dh"==Ma){var mh=wa,nh=Xa,oh="",ph=0,la=a.da,xa=a.H;if(xa.length){var ga=+mh||a.tb,bc=+nh||10;isNaN(ga)?ga=bc:oh="more ";ga>xa.length&&(a.i("note: only "+xa.length+" available"),ga=xa.length);la-=ga;0>la&&(null==xa[xa.length-1].G?(ga=la+ga,la=0):la+=xa.length);var ge=[];"call"==nh&&(bc=1E5,ge=["CALL"]);for(void 0!==mh&&a.i(ga+" instructions earlier:");0<bc&&la!=a.da;){var qh=xa[la++];if(null==qh.G)break;var cc=Y(qh.G),Fj=
ga--,rh=dj(a,cc,"history",Fj);(!ge.length||0<=rh.indexOf(ge[0]))&&a.i(rh);cc.oc&&(la+=cc.oc,bc-=cc.oc,ga-=cc.oc);la>=xa.length&&(la=0);a.tb=ga;ph++;bc--}}ph||(a.i("no "+oh+"history available"),a.tb=void 0)}else{var ya=Qi(a,wa);if(ya)if("da"==Ma){var ha=a.b,he=ya.G,za,I=[];if(ha.ca){var sh=ha.A<<1,Uc=he>>13;7<Uc&&(sh|=1);ha.Ma&ha.Ec[ha.A]||(Uc&=7);var th=he&8191,uh=ha.ga[ha.A][Uc]<<6;za=uh+th&ha.S;3932160<=za&&(za=ha.Ia(za));I.push(za);I.push(th);I.push(sh);I.push(Uc&7);I.push(uh);I.push(ha.S)}else za=
he&65535,57344<=za&&(za|=ha.ab),I.push(za);a.i(ua("",19)+oa(ya.G,17,3)+" "+p(ya.G,8));1<I.length&&(a.i(ua("",24)+oa(I[1],13,3)+" "+p(I[1],8)),a.i("+ "+Mi[I[2]]+"PAR["+I[3]+"]: "+oa(I[4],22,3)+" "+p(I[4],8)),a.i("& MMU MASK: "+oa(I[5],22,3)+" "+p(I[5],8)),a.i("= PHYSICAL: "+oa(I[0],22,3)+" "+p(I[0],8)))}else{var dc=0,ie=!1,je="ds"==Ma;Xa&&(ie=!0,"l"==Xa.charAt(0)&&(ie=!1,Xa=Xa.substr(1)||Ej),dc=Ci(a,Xa)>>>0,65536<dc&&(dc=65536));for(var Ya="dd"==Ma?4:"db"==Ma?1:2,Vc=(ie?dc-ya.G:Ya*dc)||128,ke=
je?16:a.ma,Gj=(Vc+ke-1)/ke|0||1,Za="";Gj--&&0<Vc;){for(var $a="",le="",wa=N(a,ya.G),Wc=ke,ec=0,fc=0;0<Wc&&0<Vc;){var xb=1,Xc=1==Ya?a.dc(ya,xb):a.xa(ya,xb=2),ec=ec|Xc<<(fc<<3),fc=fc+xb;fc==Ya&&(je?($a&&($a+=","),$a+="0x"+q(ec,2*Ya)):($a+=N(a,ec,Ya),$a+=1==Ya?9==Wc?"-":" ":" "),ec=fc=0);Wc-=xb;for(Vc-=xb;1==Ya&&xb--;)var me=Xc&255,le=le+(32<=me&&128>me?String.fromCharCode(me):"."),Xc=Xc>>8}Za&&(Za+="\n");Za=je?Za+($a+","):Za+(wa+": "+$a+(0==Wc?" "+le:""))}Za&&a.i(Za);a.Wa=ya}}}}break;case "e":if("else"==
g[0])break;var yb,ne,oe,pe,qe=g[0],re=g[1];"eb"==qe?(yb=1,ne=255,oe=a.dc,pe=a.Rb):"e"==qe||"ew"==qe?(yb=2,ne=65535,oe=a.xa,pe=a.Eb):re=null;if(null==re)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var Yc=Qi(a,re);if(Yc)for(var Zc=2;Zc<g.length;Zc++){var gc=Ai(a,g[Zc]);if(void 0===gc){a.i("unrecognized value: "+g[Zc]);break}gc&~ne&&a.i("warning: "+q(gc)+" exceeds "+yb+"-byte value");a.i("changing "+N(a,Yc.G)+(K(a,16)?
"":" from "+N(a,oe.call(a,Yc),yb))+" to "+N(a,gc,yb));pe.call(a,Yc,gc,yb)}}break;case "g":a:{var vh=g[1],Hj=b;if(void 0!==vh){var se=Qi(a,vh,!0);if(!se)break a;Ui(a,se,Hj);a.wb(a.f,se,!0)}a.ib(!0,c)}break;case "h":a.C.U?(c||a.i("halting"),a.aa()):zb(a,!0)||c||a.i("already halted");break;case "i":if("if"==g[0]){var te;var hc=b.substr(2),hc=va(hc);Ai(a,hc)?(c||a.i("true: "+hc),te=!0):(c||a.i("false: "+hc),te=!1);te||(d=!1);break}f=!0;break;case "k":var Ij=g[0];if("?"==g[1])a.i("stack trace commands:"),
a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var ue=0,ve=Y(),ic=Y(a.b.u[6]);for(a.i("stack trace for "+N(a,ic.G));10>ue;){for(var ab=null,Jj=256;65536>ic.G>>>0;){ve.G=a.xa(ic,2);if(null==ic.G||!Jj--)break;if(!(ve.G&1)){for(var Kj=a,$c=ve,wh=null,jc=$c.G,xh=jc,we=1;6>=we&&jc;we++){if(2<we){$c.G=jc;var ad=dj(Kj,$c);if(0<=ad.indexOf("JSR")){var yh=ad.indexOf(" ");if(jc+(ad.indexOf(" ",yh+1)-yh-1)/2==xh){wh=ad;break}}}jc-=2}$c.G=xh;if(ab=wh)break}}if(!ab||null==ab)break;
var zh=null;if("ks"==Ij){var Ah=ab.match(/[0-9A-F]+$/);Ah&&(zh=jj(a,Ah[0]))}ab=ua(ab,50)+" ;"+(zh||"stack="+N(a,ic.G));a.i(ab);ue++}ue||a.i("no return addresses found")}break;case "l":if("ln"==g[0]){jj(a,g[1],!0);break}f=!0;break;case "m":a:{var Aa,Ba=null,J=g[1];"?"==J&&(J=void 0);if(void 0!==J){var Na=0;if("all"==J)Na=1879046143,J=null;else if("on"==J)Ba=!0,J=null;else if("off"==J)Ba=!1,J=null;else{"keys"==J&&(J="key");"kbd"==J&&(J="keyboard");for(Aa in Gb)if(J==Aa){Na=Gb[Aa];Ba=!!(a.pa&Na);break}if(!Na){a.i("unknown message category: "+
J);break a}}if(Na)if("on"==g[2])a.pa|=Na,Ba=!0;else if("off"==g[2]&&(a.pa&=~Na,Ba=!1,1073741824==Na)){for(var Bh=1E3<=a.Y.length?a.Y.length-1E3:0;Bh<a.Y.length;)a.i(a.Y[Bh++]);a.Y=[]}}var Lj=0,kc="";for(Aa in Gb)if(!J||J==Aa){var Mj=!!(a.pa&Gb[Aa]);if(null===Ba||Ba==Mj)kc&&(kc+=","),++Lj%10||(kc+="\n\t"),"key"==Aa&&(Aa="keys"),kc+=Aa}void 0===J&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==Ba?Ba?"messages on: ":"messages off: ":"message categories:\n\t")+
(kc||"none"));Hi(a)}break;case "p":if("print"==g[0]){kj(a,b.substr(5));break}var Nj=g[0];if("?"==g[1])a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else{var Ch="pr"==Nj?1:0,Dh=1+Ch;if(a.P)a.i("step in progress");else{var bd=Y(a.b.u[7]),lc=a.xa(bd);3==lc||4==lc||34816==(lc&65280)||35072==(lc&65280)?(a.P=Dh,Ri(bd,2)):2048==(lc&65024)&&(dj(a,bd),a.P=Dh);a.P?(a.wb(a.f,bd,!0),a.ib()||(a.B&&a.B.qb(),a.P=0)):lj(a,Ch?"tr":"t")}}break;case "r":if("reset"==
b){a.B&&a.B.reset();break}Xi(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var mc=+g[2];if(8==mc||10==mc||16==mc)a.ma=mc;else{a.i("invalid base: "+mc);break}}a.i("default base: "+a.ma);break;case "cs":var nc;void 0!==g[3]&&(nc=+g[3]);switch(g[2]){case "int":a.b.Nb=nc;break;case "start":a.b.Xb=nc;break;case "stop":a.b.Ob=nc;break;default:a.i("unknown cs option");break a}void 0!==nc&&Id(a.b);a.i("checksums "+(a.b.C.Jb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Md(a.b,+g[2])||a.i("warning: using 1x multiplier, previous target not reached"));
a.i("target speed: "+(a.b.Ab.toFixed(2)+"Mhz")+" ("+a.b.ob+"x)");break;default:if(g[1]){a.i("unknown option: "+g[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":lj(a,g[0],g[1]);break;case "u":Yi(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ij(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.i("PDPjs version 1.30.6 ("+a.b.nb+",RELEASE"+(Db?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){kj(a,b.substr(1));break}var xe="commands:",ye;for(ye in Ji)xe+="\n"+ua(ye,9)+Ji[ye];Qe(a)||(xe+="\nnote: history disabled if no exec breakpoints");a.i(xe);break;default:f=!0}f&&(a.i("unknown command: "+b),d=!1)}}catch(Eh){a.i("debugger error: "+(Eh.stack||Eh.message)),d=!1}return d}
function Kd(a,b,c){b=yi(a,b,c);for(var d in b)if(!cj(a,b[+d]))return!1;return!0}eb(function(){for(var a=G(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Fi(d);F(d,c)}});
function nj(a,b,c){y.call(this,"Computer",a,nj,33554432);this.C.la=!1;oj(this,b);this.K=Gd(this,"autoPower",a);this.g=0;this.Y=a.busWidth||a.buswidth;this.f=pj;this.I=null;this.F=this.S=!1;this.ca=Gd(this,"url")||"";(Math.random()+.1).toString(36);this.B=qj(this);if(this.b=sb("CPU",this.id)){this.j=sb("Debugger",this.id);this.w=new wc({id:this.kb+".bus",busWidth:this.Y},this.b,this.j);var d,e=qb(this.id);if((this.v=sb("Panel",this.id))&&this.v.cb)for(b=0;b<e.length;b++)d=e[b],d.M=this.v.M,d.i=this.v.i,
d.cb=this.v.cb;this.i("PDPjs v1.30.6\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.i("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ha&&d.Ha(this,this.w,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Gd(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=pj),this.f&&(this.J=
new U(this,"1.30.6"),rj(this.J)?b=null:delete this.J);!b&&this.f&&(b=sj(this))&&(this.F=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+va(b):"")+")")):(g.I=b,g.S=!0);L(g)})}else L(this);this.D.power||(this.K=!0);!c&&this.K&&tj(this,this.Yb)}else x("Unable to find CPU component")}D(nj);var pj=0;
function oj(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.T=b}function Gd(a,b,c){var d=b.toLowerCase(),d=jb[b]||jb[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function tj(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ab(f)){Ab(f,function(){tj(a,b,c)});return}}b.call(a,c)}
function uj(a,b){var c=new U(a,"1.30.6","validate");if(rj(c)&&vj(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=nj.prototype;
k.Yb=function(a){void 0===a&&(a=this.f||(this.I?1:pj));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.J||new U(this,"1.30.6");if(-1==a)b=!0;else if(a>pj){if(rj(d,this.I)){this.A=new U(this,"1.30.6","failsafe");rj(this.A)&&(wj(this,d),a=2,xj(this.A));this.A.set("timestamp",Fa());yj(this.A);var e=this.f&&!this.F;if(1==a||Ja("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=vj(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?rj(d,g):("error"==
f&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(Pa("user",""),this.B=null)):this.i(f+": "+g),xj(d),rj(d)?(c=vj(d),e=!0):c=!1))}e&&uj(this,c?d:null)}else 2==a&&d.clear()}else uj(this);delete this.I;delete this.J}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=zj(this,g,d,b,c));b=[d,a,c];-1!=a?tj(this,this.Mc,b):this.Mc(b)}};
function zj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.La){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.La(f,d)&&f&&(x("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.f=pj,window&&window.location.reload()):a.P=!0,b.La(null),e=!1)}if(!d&&b.Dc)for(a=b.Dc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Mc=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.C.la=!0;var d=this.D.power;d&&(d.textContent="Shutdown");this.b&&(zj(this,this.b,b,c,a),this.za(),this.b.bb());this.P&&(wj(this,b),b.clear());!c&&this.A&&(this.A.clear(),delete this.A);this.g=0};
function wj(a,b){if(Ja("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.6"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
function mj(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new U(a,"1.30.6"),g=new U(a,"1.30.6","validate"),h=Fa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ka&&(c&&a.b.aa(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=qb(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.Ka&&(d=m.Ka(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.C.la=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&Aj(a,a.B,f.toString()),yj(g)&&yj(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.C.la=!1,b=a.D.power)&&(b.textContent="Power");a.g=0;return e}
k.reset=function(){this.w&&this.w.reset&&(H(this,"Resetting "+this.w.type),this.w.reset());this.b&&this.b.reset&&(H(this,"Resetting "+this.b.type),this.b.reset());for(var a=qb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c!==this.b&&c.reset&&(H(this,"Resetting "+c.type),c.reset())}this.za(-1)};k.start=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.za(-1)};
k.stop=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.za(-1)};
k.za=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Vb+=c))&&(d.textContent=b.C.U?b.Aa.toFixed(2)+"Mhz":"Stopped",b.Vb=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.U;d=!!(b.b.L&8);if(0>=a||60<=(b.A+=a)){for(var e=0;e<b.b.u.length;e++)Ub(b,"R"+e,b.b.u[e]);e=ld(b.b);Ub(b,"PS",e);Ub(b,"NF",e&8?1:0,1);Ub(b,"ZF",e&4?1:0,1);Ub(b,"VF",e&2?1:0,1);Ub(b,"CF",e&1?1:0,1);b.A=0}rc(b,0<a&&c&&!d?b.b.Ib:b.Da);$b(b,b.Bb);a=b.b;a=a.ca?a.Ma&16?1:2:4;tc(b,"B22",a&1);tc(b,"B18",a&2);tc(b,"B16",
a&4)}};
k.ya=function(a,b,c){var d=this;switch(b){case "power":return this.D[b]=c,c.onclick=function(){d.g||(d.C.la?mj(d,!1,!0):tj(d,d.Yb))},!0;case "reset":return this.D[b]=c,c.onclick=function(){if(d.C.la&&!d.g)if(d.f&&!d.H){var a=Ja("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");mj(d,a,!0);!a&&d.N?window&&window.location.reload():(a||(d.pc=!0),d.Yb(pj),d.pc=!1)}else d.reset(),d.b&&d.b.bb()},!0;case "save":if(qa(Ia(),"pcjs.org"))c.parentNode.removeChild(c);else return this.D[b]=
c,c.onclick=function(){var a=qj(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=mj(d,b);b?Aj(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1};
function qj(a,b){var c=a.B;c||((c=Oa("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Bj(a,c))||a.M("The user ID is invalid.")):b&&a.M("Browser local storage is not available"));return c}
function Bj(a,b){a.B=null;b=Ga(Ia()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Pa("user",b.data),a.B=b.data)}catch(d){x(d.message+" ("+c+")")}return a.B}function sj(a){var b=null;a.B&&(b=Ia()+"/api/v1/user?req=load&user="+a.B+"&state="+Cj(a,"1.30.6"));return b}
function Aj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cj(a,"1.30.6");d.data=c;b=Ga(Ia()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.M("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.M(c),Pa("user",""),a.B=null)}}
function Hh(a){var b;a=qb(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.qb=function(a){if(this.cb){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.cb.focus();!a&&window&&window.scrollTo(b,c)}};eb(function(){for(var a=G(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=E(c),c=G(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=E(f),g=new nj(g,d,!0);F(g,f);g.K&&tj(g,g.Yb)}});
Ua.show.push(function(){for(var a=G(document,"pdp11","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=sb("Computer",c.id))&&c.da&&!c.C.la&&c.Yb(-1)}});Ua.exit.push(function(){for(var a=G(document,"pdp11","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=sb("Computer",c.id))&&c.C.la&&mj(c,!(!c.f||c.H),!0)}});function U(a,b,c){this.id=a.id;this.key=Cj(a,b,c);this.j=a.j;xj(this,a.jd)}function Cj(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
U.prototype={constructor:U,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){xj(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function xj(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function yj(a){var b=!0;if(La()){var c=JSON.stringify(a[a.id]);Pa(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function vj(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){x(c.message||c),b=!1}return b}function rj(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:La()&&(b=Oa(a.key))?(a[a.id]=b,a.b=!0):!1}var Dj=0;
function Oj(a,b,c,d,e,f){e("Loading "+a+"...");Ga(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Pj(h,a,b,c,d,e,f)})}
function Pj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(pb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Qj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Qj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Qj(a,b,c)}})}else c(a,null)}
function Rj(a,b,c,d){function e(a){if(void 0===h){var b=g&&G(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);l&&(--Dj||gb(!0));l=!1}var g,h,l=!0;Dj++;ob[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));n.appendChild(t)}c||
(c="/versions/pdpjs/1.30.6/components.xsl");m=function(d,h){h?Oj(c,null,null,!1,e,function(d,l){l?(pb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Dj||gb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Dj||gb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Oj(b,a,d,!0,e,m):Pj(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(r){f(r.message)}return l}window.embedPDP11=function(a,b,c,d){gb(!1);return Rj(a,b,c,d)};window.enableEvents=gb;window.sendEvent=hb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11-dbg.map