Started work on new decoding functions

This commit is contained in:
Jeff 2016-09-22 18:47:32 -07:00 committed by Jeff Parsons
commit 7f0b6a091d
8 changed files with 852 additions and 732 deletions

View file

@ -1,212 +1,212 @@
(function(){var m;
function aa(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&f&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var e,c=a;((f=b)&&10!=f?16==f?null!==c.match(/^[0-9a-f]+$/i):8==f?null!==c.match(/^[0-7]+$/):2==
f&&null!==c.match(/^[01]+$/):null!==c.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(d=e|0)}return d}function ba(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),c=String.fromCharCode(f)+c;a>>=4}return(d?"0x":"")+c}
function ca(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function ia(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ja(){var a=ka();return-1!==a.indexOf("pcjs.org",a.length-8)}var la={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function pa(a,b){return(a+" ").slice(0,b)}
function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,d){var c=0,f=a.length,e=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var sa=Date.now||function(){return+new Date};function wa(){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 ca(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function da(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ja(){var a=ka();return-1!==a.indexOf("pcjs.org",a.length-8)}var la={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function na(a,b){return(a+" ").slice(0,b)}
function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,d){var c=0,f=a.length,e=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var sa=Date.now||function(){return+new Date};function ta(){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 xa(a,b,d,c){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return c&&c(a,e,f),[e,f];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),c&&c(a,e,f))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(e=g.responseText,200!=g.status&&(f=g.status||-1),c&&c(a,e,f),h=[e,f]);return h}function ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Aa(){if(null==za){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}za=a}return za}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(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 Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Ka(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
function Fa(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.lc=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.nc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,mb:!1,cc:!1,ea:!1,error:!1};this.Vb=null;this.A.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Nc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.oc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.w={ready:!1,nb:!1,dc:!1,fa:!1,error:!1};this.Wb=null;this.w.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function w(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},v=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ta(g.type,g.binding,h,g.value),l=k.length}}}}
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ua(g.type,g.binding,h,g.value),l=k.length}}}}
function A(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ta:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.eb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
this.na=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},na:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.ea=!0},Ma:function(a,b){b&&(this.A.ea=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Gc)}return!1}
function fb(a,b){if(a.A.cc)return a.A.mb&&(a.A.mb=!1),a.A.cc=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.mb=b;return a.A.mb}function qb(a,b){a.A.mb&&(b?a.A.cc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.mb}function C(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Vb;a.Vb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Vb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.na(b)}
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}w(ub);m=ub.prototype;m.ta=function(a,b,d,c){return this.i&&this.i.ta(a,b,d,c)||this.f&&this.f.ta(a,b,d,c)||this.H&&this.H.ta(a,b,d,c)?!0:this.parent.ta.call(this,a,b,d,c)};m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.f=d;this.H=c};
m.Na=function(a,b){b||vb();return!0};m.Ma=function(){return!0};m.wa=function(){};function vb(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new ub(f));db(e,c);a&&C(e)}}Qa(vb);
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.za=1<<this.X;this.T=this.za>>2;this.G=this.za-1;this.F=this.I/this.za|0;this.B=this.F-1;this.Sa=[];this.J=null;this.Gb=this.Cc;a=new G;xb(a,this.H);this.R=Array(this.F);for(b=0;b<this.F;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Sa[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Sa[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
function zb(a,b,d){var c=this.controller.Sa[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Sa[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Ab(a,b){var d=this.controller.Sa[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
function Bb(a,b,d){if(a=this.controller.Sa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Cc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.za,n=a.za-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.C)return k.Tb+=k.C-e,k.C=e,!0;if(e>=k.C+k.Tb){n=k.size-(e-l);n>h&&(n=h);k.Tb=e-k.C+n;e=l+a.za;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.za,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.za;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].rb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].vc(b,a):this.R[d++].rb(b,a)|this.R[d&this.B].rb(0,a+1)<<8};function Gb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].gc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.B].Ob(0,b+1)<<8}m.ac=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)};
m.ic=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Bc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.B].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={fc:[],Ha:0,pa:128,H:127,Ic:0};this.i={data:0,fd:0,ob:20,cd:0};this.B={Ib:0,K:0};this.F={Qb:2496,ka:0,S:128,Rb:0,Pb:0,sa:0,wc:0,ma:[],bb:[406,406,406,406],Y:[12,12,12,12]};this.I={K:129,Fb:0,ca:0,Xa:0,Ta:0,$a:0,ma:[],Y:[40,40,40,40],bb:[1024,1024,512,512],Ec:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Y:[22,22,22,50],ab:[19,19,19,32],bc:[815,411,815,630],ma:[],U:2176,ub:0,sb:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,oa:[4544,4544,4544,4544,4544,
4544,4544,4544],tb:[0,0,0,0,0,0,0,0],jb:0,ad:[0,0,0,0,0,0,0,0],xc:0,yc:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],bd:[1,2,3,4,5,6,7,8],zc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],$b:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],Xc:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Za:0,hc:0}}w(Hb);
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ua:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.fb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
this.oa=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},oa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.w.fa=!0},Ma:function(a,b){b&&(this.w.fa=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Hc)}return!1}
function fb(a,b){if(a.w.dc)return a.w.nb&&(a.w.nb=!1),a.w.dc=!1;if(a.w.error)return a.g(a.toString()+" error"),!1;a.w.nb=b;return a.w.nb}function gb(a,b){a.w.nb&&(b?a.w.dc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.w.nb}function C(a){if(!a.w.error&&(a.w.ready=!0,a.w.ready)){var b=a.Wb;a.Wb=null;b&&b()}}function rb(a,b){b&&(a.w.ready?b():a.Wb=b);return a.w.ready}function sb(a,b){a.w.error=!0;a.oa(b)}
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}w(ub);m=ub.prototype;m.ua=function(a,b,d,c){return this.i&&this.i.ua(a,b,d,c)||this.f&&this.f.ua(a,b,d,c)||this.H&&this.H.ua(a,b,d,c)?!0:this.parent.ua.call(this,a,b,d,c)};m.Xa=function(a,b,d,c){this.i=a;this.F=b;this.f=d;this.H=c};
m.Na=function(a,b){b||vb();return!0};m.Ma=function(){return!0};m.xa=function(){};function vb(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new ub(f));db(e,c);a&&C(e)}}Qa(vb);
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.Aa=1<<this.X;this.T=this.Aa>>2;this.F=this.Aa-1;this.G=this.I/this.Aa|0;this.A=this.G-1;this.Ta=[];this.J=null;this.Gb=this.Dc;a=new G;xb(a,this.H);this.R=Array(this.G);for(b=0;b<this.G;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Ta[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Ta[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
function zb(a,b,d){var c=this.controller.Ta[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Ta[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Ab(a,b){var d=this.controller.Ta[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
function Bb(a,b,d){if(a=this.controller.Ta[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Dc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.Aa,n=a.Aa-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.C)return k.Ub+=k.C-e,k.C=e,!0;if(e>=k.C+k.Ub){n=k.size-(e-l);n>h&&(n=h);k.Ub=e-k.C+n;e=l+a.Aa;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.Aa,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.Aa;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].sb(a&this.F,a)};m.Ha=function(a){var b=a&this.F,d=(a&this.i)>>>this.X;return b!=this.F?this.R[d].wc(b,a):this.R[d++].sb(b,a)|this.R[d&this.A].sb(0,a+1)<<8};function Gb(a,b){var d=b&a.F,c=(b&a.i)>>>a.X;return d!=a.F?a.R[c].hc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.A].Ob(0,b+1)<<8}m.bc=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.F,b&255,a)};
m.jc=function(a,b){var d=a&this.F,c=(a&this.i)>>>this.X;d!=this.F?this.R[c].Cc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.A].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={gc:[],Ia:0,qa:128,H:127,Jc:0};this.i={data:0,gd:0,pb:20,dd:0};this.A={Ib:0,K:0};this.G={Qb:2496,la:0,S:128,Rb:0,Pb:0,ta:0,xc:0,na:[],cb:[406,406,406,406],Z:[12,12,12,12]};this.I={K:129,Fb:0,ca:0,Ya:0,Ua:0,ab:0,na:[],Z:[40,40,40,40],cb:[1024,1024,512,512],Fc:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Z:[22,22,22,50],bb:[19,19,19,32],cc:[815,411,815,630],na:[],U:2176,vb:0,tb:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,pa:[4544,4544,4544,4544,4544,
4544,4544,4544],ub:[0,0,0,0,0,0,0,0],kb:0,bd:[0,0,0,0,0,0,0,0],yc:0,zc:[0,0,0,0,0,0,0,0],F:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Ac:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],ac:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$a:0,ic:0}}w(Hb);
var Ib=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=Hb.prototype;
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ub;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Sa[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Sa[n]=[h,g,k,e,!1]}}f=this.Dc.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.Tc=function(){return Vb(this.f)};m.ed=function(a){Wb(this.f,a&-1809|Vb(this.f)&1808)};
function Xb(a){var b=a.F,d,c,f,e=b.sa>>13&7;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Uc,drive:e,blocksize:256,mapped:0,maxblock:b.bb[e]*b.Y[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.ka=0;b.S=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.bb[e]){b.ka|=32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Yb(a,b.ma[e],d,c,f);return;case 2:if((b.sa>>4&511)>=b.bb[e]){b.ka|=
32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.Zb(b.ma[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.sa%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Uc=function(a,b,d,c,f){var e=this.F;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ka|=33024;e.S|=49152;break;case 2:e.ka|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
function Zb(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:128,mapped:1,maxblock:b.bb[e]*b.Y[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Xa&8&&(b.K&=63);b.Xa=b.Ec[e]|b.$a&64;break;case 3:1==(b.ca&3)&&(b.$a=b.ca&4?b.$a+(b.ca&65408)&65408|b.ca<<2&64:b.$a-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.$a);break;case 4:b.Xa=b.$a;break;case 5:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+
(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;Yb(a,b.ma[e],d,c,f);return;case 6:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;a.Zb(b.ma[e],d,c,f);return}H(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
m.Vc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ta=c>>16&63;e.ca=~~(d/e.Y[b.La])<<6|d%e.Y[b.La];e.$a=e.ca;e.Xa=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function $b(a){a=a.J;a.U=2176;a.Aa=0;a.oa=[4544,4544,4544,4544,4544,4544,4544,4544];a.tb=[0,0,0,0,0,0,0,0];a.jb=a.ub=a.sb=a.Za=a.hc=0}
function ac(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Aa&=-2049;d.oa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.ma[b]&&(d.ma[b]={cache:[],postProcess:a.Wc,drive:b,blocksize:256,mapped:0,maxblock:d.bc[0]*d.ab[0]*d.Y[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.$b[b]=d.Pa[b];d.U|=32896;d.oa[b]|=32896;d.jb|=1<<b;break;case 9:$b(a);break;case 19:d.oa[b]|=64;break;case 49:if(d.Pa[b]>=d.bc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+
(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;Yb(a,d.ma[b],c,f,e);return;case 57:if(d.Pa[b]>=d.bc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;a.Zb(d.ma[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.oa[b]|=128;return!!(d.U&64)})}
m.Wc=function(a,b,d,c,f){var e=this.J;e.ub=65536-f&65535;e.sb=c&65535;e.U=e.U&-769|c>>8&768;e.Za=c>>16&63;f=~~(d/e.Y[0]);c=~~(f/e.ab[0]);e.Ba[b.La]=f%e.ab[0]<<8|d%e.Y[0];e.$b[b.La]=e.Pa[b.La]=c;e.jb|=1<<b.La;d>=b.Rc-1&&(e.oa[b.La]|=1024);switch(a){case 1:e.Aa|=512;e.U|=49152;break;case 2:e.Aa|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.oa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Oc=function(){this.B.K|=128;this.B.K&64&&H(this.f,0,192,64)};
function bc(a,b){var d=b>>13&31;31>d?a.f.Ia&32&&(b=a.f.wb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&cc(898)):b|=4186112;return b}
function dc(a,b,d,c,f,e){var h=~~((e+d.Ua-1)/d.Ua),g=new XMLHttpRequest;2048>h&&c+2048<d.Rc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Ua<<1)+"-"+(((c+h)*d.Ua<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Yb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Ua;p++)d.cache[n][p]=q<l.length?
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Ua<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){dc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Ua&&0<c;f++){if(0>K(this.f,a.Qc?bc(this,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
function Yb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Ua;e++)b.cache[d][e]=0;for(e=0;e<b.Ua&&0<f;e++){h=L(a.f,b.Qc?bc(a,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}m.reset=function(){this.i.ob=this.i.ob&-120|20;this.N.Ha=0;this.N.pa=128;this.B.K=0;this.F.S=128;this.I.K=128;$b(this)};
m.Dc=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Xb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Xb=c;e.Oa=2}break;case 4194294:if(70!==e.fb)return J(e,4);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.fb)return J(e,4);c=1;break;case 4194290:if(70!==e.fb)return J(e,4);c=0;break;case 4194288:if(70!==e.fb)return J(e,4);c=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.fb)return J(e,4);f=a-4194272>>1;0>b?c=e.ec[f]:(c=I(this,e.ec[f],a,b,d),0<=c&&(e.ec[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[3]=b),c=e.ra[3]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[1]=b),c=e.ra[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Ya[f]=b),c=e.Ya[f]),c;case 4194246:return a&
1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[0]=b),c=e.ra[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Ya[f]=b),c=e.Ya[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.L|=16,J(e,4)}break;case 4194176:f=a>>1&31;c=I(this,e.ja[3][f],a,b,d);0<=c&&(e.ja[3][f]=c,e.ja[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.B;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=e.Ca;c&65280&&(c=(c<<8|c>>8)&
65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Wb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Wb=c>>1&15,c&257?(f=2,e.Ia&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.ob=this.i.ob&-8|f));break;case 4194168:0>b?c=this.i.cd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Ic=0),h.pa&=-129,H(e,100,128,52,function(){h.pa|=128;return!!(h.pa&64)}));c=0;break;case 4194164:0>b?c=h.pa:(c=I(this,h.pa,a,b,d),0<=c&&(128==(h.pa&192)&&c&
64&&H(e,8,128,52,function(){h.pa|=128;return!!(h.pa&64)}),h.pa=h.pa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.fc.length&&(c=h.fc.shift(),0<h.fc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=I(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=I(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Oc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.L|=16,J(e,4)}break;case 4194048:f=
this.F;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.ka,a,b,d);0<=c&&(f.ka=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Xb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.sa,a,b,d);0<=c&&(f.sa=c);break;case 4194060:break;case 4194062:c=I(this,f.wc,a,b,d);0<=c&&(f.wc=c);break;default:return e.L|=16,J(e,4)}break;case 4193728:var g=
this.J;f=g.Aa&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.Za=g.Za&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?ac(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.ub,a,b,d);0<=c&&(g.ub=c);break;case 4193732:c=I(this,g.sb,a,b,d);0<=c&&(g.sb=c&65534);break;case 4193734:c=I(this,g.Ba[f],a,b,d);0<=c&&(g.Ba[f]=c&7967);break;case 4193736:c=I(this,g.Aa,a,b,d);0<=c&&(g.Aa=c&63|g.Aa&65472,c&128&&$b(this));break;case 4193738:c=g.oa[f];break;case 4193740:c=g.tb[f];
break;case 4193742:c=I(this,g.jb,a,b,d);0<=c&&(g.jb=c&255);break;case 4193744:c=g.ad[f];break;case 4193746:c=I(this,g.xc,a,b,d);0<=c&&(g.xc=c);break;case 4193748:c=I(this,g.yc[f],a,b,d);0<=c&&(g.yc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.bd[f];break;case 4193754:c=I(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.$b[f]=g.Pa[f];c=g.$b[f];break;case 4193760:c=g.Zc[f];break;case 4193762:c=g.$c[f];break;case 4193764:c=
g.Xc[f];break;case 4193766:c=g.Yc[f];break;case 4193768:c=I(this,g.Za,a,b,d);0<=c&&(g.Za=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.hc,a,b,d);0<=c&&(g.hc=c);break;default:return e.L|=16,J(e,4)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ta=f.Ta&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||Zb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Xa,
a,b,d);0<=c&&(f.Xa=c);break;case 4192520:c=I(this,f.Ta,a,b,d);0<=c&&(f.Ta=c&63,f.K=f.K&-49|(f.Ta&3)<<4);break;default:return e.L|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ia:(c=I(this,e.Ia,a,b,d),0<=c&&(70!==e.fb&&(c&=-49),e.Ia=c,e.hb[0]=c&4?15:7,e.hb[1]=c&2?15:7,e.hb[3]=c&1?15:7,e.Jb&&(f=2,e.Ia&16&&(f=1),this.i.ob=this.i.ob&-8|f)));break;default:return e.L|=16,J(e,4)}break;case 4191424:f=a>>1&31;c=I(this,e.ja[0][f],a,b,d);0<=c&&(e.ja[0][f]=c,e.ja[0][f&15]&=65295);break;case 4191360:f=
a>>1&31;c=I(this,e.ja[1][f],a,b,d);0<=c&&(e.ja[1][f]=c,e.ja[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.fb)return J(e,4);f=a>>2&31;c=e.wb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.wb[f]=a&2?c<<16|e.wb[f]&65535:e.wb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Ib[a>>1&255];else return e.L|=16,J(e,4);break;default:return e.L|=16,J(e,4)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===
typeof c&&cc(76);return c};var Ub={};Ub[4194302]=[null,null,Hb.prototype.Tc,Hb.prototype.ed];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var ec;if(tb){var fc=new ArrayBuffer(2);(new DataView(fc)).setUint16(0,256,!0);ec=256===(new Uint16Array(fc))[0]}else ec=!1;var gc=ec;
function G(a,b,d,c,f){this.id=hc+=2;this.f=null;this.C=a;this.Tb=b;this.size=d||0;this.type=c||ic;this.O=c==jc;this.controller=null;xb(this);this.Va=this.Kc=!1;if(d)if(f)this.controller=f,this.f=null,kc(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),kc(this,gc?lc:mc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;kc(this,nc)}else kc(this)}
var ic=0,jc=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],hc=0;
G.prototype={constructor:G,parent:null,Ib:function(a){this.C=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Va=!0}return!1},cb:function(a,b){b?0===this.B++&&oc(this,pc,!1):0===this.i++&&qc(this,pc,!1)},T:function(){this.H&&
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.C),!0);return 255},F:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.C),!0)},V:function(a,b){return this.rb(a++,b++)|this.rb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},aa:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ya:function(a,
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Va=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Va=!0},Z:function(a,b){if(this.H&&null!=this.C){var d=this.H;rc(d,this.C+a,1,d.W)&&d.la(!0)}return this.Ob(a,b)},fa:function(a,b){if(this.H&&null!=this.C){var d=this.H;rc(d,this.C+a,2,d.W)&&d.la(!0)}return this.gc(a,b)},va:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;
rc(c,this.C+a,1,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;rc(c,this.C+a,2,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.kc(a,b,d)},W:function(a){return this.G[a]},$:function(a){return this.G[a]},da:function(a){return this.J.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},ua:function(a,b){this.G[a]=b;this.Va=!0},xa:function(a,b){this.G[a]=b;this.Va=!0},Da:function(a,b){this.J.setUint16(a,b,!0);this.Va=!0},
Ra:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Va=!0}};function xb(a,b,d){a.H=b;a.i=a.B=0;d&&((a.i=d.i)&&qc(a,pc,!1),(a.B=d.B)&&oc(a,pc,!1))}function sc(a,b){b?0===--a.B&&(a.xb=a.O?a.F:a.yb,a.Bc=a.O?a.N:a.kc):0===--a.i&&(a.rb=a.Ob,a.vc=a.gc)}function oc(a,b,d){d&&a.B||(a.xb=!a.O&&b[1]||a.F,a.Bc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.F,a.kc=b[3]||a.N}function qc(a,b,d){d&&a.i||(a.rb=b[0]||a.T,a.vc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.gc=b[2]||a.V}
function kc(a,b){b||(b=tc);qc(a,b,void 0);oc(a,b,void 0)}var tc=[],nc=[G.prototype.aa,G.prototype.ya,G.prototype.qa,G.prototype.Bb],pc=[G.prototype.Z,G.prototype.va,G.prototype.fa,G.prototype.Ja];if(tb)var mc=[G.prototype.W,G.prototype.ua,G.prototype.da,G.prototype.Da],lc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ra];
function uc(a,b){u.call(this,"CPU",a,uc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.ib=d;this.xa=Math.round(this.ya/1E4)/100;this.gb=this.xa*this.ib;this.A.ia=!1;this.A.jc=!1;this.A.Db=a.autoStart;this.A.rc=!1;this.A.nb=!1;this.Lb=this.Z=0;this.Mb=a.csStart;this.pb=a.csInterval;this.qb=a.csStop;this.qa=[];this.Eb=this.kb.bind(this);C(this)}w(uc);var vc=["power","reset"];m=uc.prototype;
m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<vc.length;b++)(d=this.O[vc[b]])&&this.i.ta(null,vc[b],d);this.da=null;a=wc(a,"autoStart");null!=a&&(this.A.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){xc(this);if(!this.restore(a))return!1;Kc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}M(this);return!0};
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.A.Db||!this.H&&void 0===this.O.run?(this.kb(!0),!0):!1};m.tc=function(){return 0};function Kc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.A.nb=0<=a.Mb&&0<a.pb;a.A.nb&&(a.Lb=0,a.Z=a.Mb-a.W)}function Lc(a,b){if(a.A.nb){var d=!1;a.Lb=a.Lb+a.tc()|0;a.Z-=b;0>=a.Z&&(a.Z+=a.pb,d=!0);0<=a.qb&&a.qb<=Mc(a)&&(a.pb=a.qb=-1,Kc(a),a.la(),d=!0);d&&a.g(Mc(a)+" cycles: checksum="+r(a.Lb))}}
function Nc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.la());var f=a.H&&a.H.va||8;d=!a.A.ia||a.A.rc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
m.ta=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.A.ea)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.ea);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Vb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ia?c.la():c.kb())};
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Oc(c,c.ib<<1,!0)},d.textContent=this.gb.toFixed(2)+"Mhz",a=!0}return a};function Pc(a,b,d){a.W+=b;d&&(a.V=a.N=0)}function Qc(a,b){var d=1;b&&1<a.ib&&a.P&&(d=a.P/a.xa);a.lb=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.Da=0}function Mc(a){return a.W+a.J+a.V-a.N}function xc(a){a.P=0;a.zb=0;a.W=a.J=a.V=a.N=0;Kc(a);Oc(a,1)}
function Oc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.gb?b=1:c=!0;a.ib=b;b=a.xa*a.ib;if(a.gb!=b){a.gb=b;b=a.gb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Sb()}Pc(a,a.J);a.J=0;a.I=sa();a.T=0;Qc(a);return c}function Rc(a){a.V-=a.N;a.N=0}
m.kb=function(a){if(fb(this,!0)){if(!this.A.ia){Oc(this);this.i&&this.i.start(this.I,Mc(this));this.A.ia=!0;this.A.jc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Sb(!0))}this.Da>=this.ya&&Qc(this,!0);this.fa=0;this.ua=sa();this.T&&(a=this.ua-this.T,a>this.lb&&(this.I+=a,this.I>this.ua&&(this.I=this.ua)));try{do{for(var d=this.A.nb?1:this.va,c=this.qa.length-1;0<=c;c--){var f=this.qa[c];0>f[0]||d>f[0]&&(d=f[0])}this.vb(d);var e=this.V-this.N;
a=e;for(var h=this.qa.length-1;0<=h;h--){var g=this.qa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=e;this.J+=e;Pc(this,0,!0);Lc(this,e);this.$-=e;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.wa(),this.zb=0);break}}while(this.A.ia)}catch(k){this.la();M(this);this.i&&this.i.stop(sa(),Mc(this));fb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Eb;this.T=sa();f=this.lb;this.fa&&(f=Math.round(f*this.fa/this.va));f=f-(this.T-this.ua);if(e=this.T-this.I)this.P=
Math.round(this.J/(10*e))/100,864E5<=e&&(this.W=0,Oc(this));if(0>f||this.P<this.gb)-1E3>f&&(this.I-=f),f=0;this.Da+=this.fa;this.T+=f;d(c,f)}else M(this),this.i&&this.i.stop(sa(),Mc(this))};m.vb=function(){return 0};m.la=function(a){qb(this,!0);Rc(this);Pc(this,this.J);this.J=0;if(this.A.ia){this.A.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function M(a,b){a.i&&a.i.wa(b)}
function Sc(a){this.uc=+a.model||1170;this.Ub=a.resetAddr||0;uc.call(this,a,1E6);this.Ja=0;this.D=65536;this.u=32768;this.w=65535;this.j=32768;this.M=15;this.b=[0,0,0,0,0,0,0,this.Ub];this.Ya=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Xb=0;this.Oa=2;this.Qa=255;this.F=0;this.aa=-1;this.L=0;this.fb=70;this.Wb=this.Kb=this.Jb=this.B=this.Ia=this.Ab=this.Ca=this.ba=0;this.hb=[7,7,7,7];this.ja=[[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],[65535,65535,65535,65535,65535,65535,65535,65535,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]];this.wb=[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];this.ec=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Hc=!1}w(Sc,uc);m=Sc.prototype;
m.reset=function(){this.A.ia&&this.la();Tc(this);xc(this);this.A.error=!1;this.parent.reset.call(this)};function Tc(a){a.Qa=255;a.L=0;a.f=[];a.Xb=0;a.ba=a.Ca=a.Ab=a.Ia=a.Jb=0;a.hb[0]=a.hb[1]=a.hb[3]=7;a.Kb=0}m.tc=function(){return 0};
m.save=function(){var a=new Uc(this);N(a,0,[]);N(a,1,[this.Ra,this.W,this.ib]);for(var b=this.G,d=0,c=[],f=0;f<b.F;f++){var e=b.R[f];if(e.Va||e.Kc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}N(a,2,c);return a.data()};
m.restore=function(a){var b=a[1];this.Ra=b[0];this.W=b[1];Oc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
m.ta=function(a,b,d){var c=!1;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":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ta.call(this,a,b,d)}return c};
m.wa=function(a){if(this.Ja&&(a||!this.A.ia||this.A.rc)){for(a=0;a<this.b.length;a++)Nc(this,"R"+a,this.b[a]);a=Vb(this);Nc(this,"PS",a);Nc(this,"NF",a&8?1:0,1);Nc(this,"ZF",a&4?1:0,1);Nc(this,"VF",a&2?1:0,1);Nc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.A.ia&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].dd===c){0<e&&(a.f[e-1].Ea+=a.f[e].Ea);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Ea>b){a.f[e].Ea-=b;break}b-=a.f[e].Ea}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function Vb(a){return a.M=a.M&63728|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.D&65536?1:0)}
function Wb(a,b){a.j=b<<12;a.w=~b&4;a.u=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Ya.length;0<=--d;){var c=a.b[d];a.b[d]=a.Ya[d];a.Ya[d]=c}a.B=b>>14&3;d=a.M>>14&3;a.B!=d&&(a.ra[d]=a.b[6],a.b[6]=a.ra[a.B]);a.Oa=2;a.M=b}function cc(a){console.log("panic("+a+")")}
function J(a,b){var d,c,f=0;0>a.aa?a.aa=Vb(a):a.B||(b=4,f=1);a.ba&57344||(a.Ca=63222,a.Ab=b);a.B=0;0<=(d=P(a,b|65536))&&0<=(c=P(a,b+2&65535|65536))&&(Wb(a,c&53247|a.aa>>2&12288),f&&(a.L|=4,a.b[6]=4),0<=Vc(a,a.aa)&&0<=Vc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.aa=-1}
function Wc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.hb[a.B];f=a.ja[a.B][c];e=(a.ja[a.B][c+16]<<6)+(b&8191)&4194303;if(a.Ia&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.Ia&32&&(e=a.wb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&cc(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.L|=32,J(a,4);if(e&1&&!(d&1))return a.L|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?
192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.ja[a.B][c]=f;if(4194170!==e||a.B)a.Kb=a.B,a.Wb=c;if(h){if(h&57344)return 0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Wb<<1),J(a,168);a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.F|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(d&1))return a.L|=64,J(a,4);return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ga(b):b}
function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.ic(b,d),d):b}function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Hb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.ac(b,d),d):b}function P(a,b){return L(a,Wc(a,b,2))}function Xc(a){var b=P(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
function Vc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Ca=a.Ca<<8|246);if(!a.B&&c<=a.Qa&&4<c){if(c<=a.Qa-32)return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return 0<=(d=Wc(a,c|65536,4))?K(a,d,b):d}
function Yc(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.B&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32||65534<=a.b[6])return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return 7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=P(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
P(a,c)))return c;c|=65536;break;case 6:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=P(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Ca=a.Ca<<8|f<<3&248|e);if(6===e&&!a.B&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32)return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return c}
function S(a,b,d){var c;return b&56?(0<=(c=Yc(a,b,d))&&(c=Wc(a,c,d)),c):4194304+(b&7)}function T(a,b){var d;b&56?0<=(d=S(a,b,2))&&(d=L(a,d)):d=a.b[b&7];return d}function Zc(a,b){var d;b&56?0<=(d=S(a,b,3))&&(d=Q(a,d)):d=a.b[b&7]&255;return d}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.vb=function(a){this.A.complete=!0;var b=this.A.Hc=this.H&&$c(this.H),d=a?this.A.jc?0:1:-1;this.A.jc=!1;this.V=this.N=a;this.Ra&256?(Rc(this),a=!1):a=!0;if(a){do{if(b){if(ad(this.H,this.b[7],d)){this.la();break}d=1}var c,f,e,h,g;if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Xb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Ea){this.f[a].Ea--;this.Oa=2;break}if(this.f[a].oc){if(!this.f[a].oc()){this.f.splice(a,1);g--;continue}this.f[a].oc=null}this.f[a].Sc>c&&(c=this.f[a].Sc,
g=a)}c>(this.M&224)&&(0>g?J(this,160):(J(this,this.f[g].dd),this.f.splice(g,1)))}this.ba&57344||(this.Ca=0,this.Ab=this.b[7]);this.F=this.M&16;if(0<=(a=P(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=T(this,a>>6))&&(a&56?0<=(e=S(this,a,4))&&0<=K(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=T(this,a>>6))&&0<=(f=T(this,a))&&(this.j=this.w=this.D=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=T(this,a>>6))&&0<=(f=
T(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&~c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.w=this.D=a,this.u=
(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.w=this.D=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=Zc(this,a>>6))&&(a&56?0<=(e=S(this,a,5))&&0<=R(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(a=c-f,this.j=this.w=this.D=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=
Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f&~c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f|c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.w=this.D=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.w=this.D=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=Yc(this,
a,0))&&(g=a>>6&7,0<=Vc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.D=this.u=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.D=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.w=
a>>16|a,this.j=a>>16):(this.u=32768,this.w=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.w=this.j=0,this.u=32768,this.D=65536));break;case 29696:0<=(c=T(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.D=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.D=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.w=a);break;case 30208:if(0<=(c=T(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|
1];this.D=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=L(this,e=S(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=
a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=U(this.b[7],a);break;case 512:this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 768:this.w&65535||(this.b[7]=U(this.b[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1280:(this.j&32768)!==(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1536:this.w&65535&&(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1792:this.w&
65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=U(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=U(this.b[7],a));break;case 33280:!(this.D&65536)&&this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=U(this.b[7],a));break;case 33536:if(this.D&65536||!(this.w&65535))this.b[7]=U(this.b[7],a);break;case 33792:this.u&32768||(this.b[7]=U(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=U(this.b[7],a));break;case 34304:this.D&65536||(this.b[7]=U(this.b[7],
a));break;case 34560:this.D&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:J(this,24);break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(h=Yc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.w=f&65280,this.u=this.D=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,this.u=this.D=0);break;case 2560:a&56?0<=(e=S(this,a,4))&&0<=K(this,e,0)&&(this.j=this.D=this.u=this.w=0):this.j=this.D=
this.u=this.w=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=S(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.w=a,this.D=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);
break;case 2816:0<=(f=L(this,e=S(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=S(this,a,6)))&&(a=f+(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=S(this,a,6)))&&(a=f-(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.j=this.w=f,this.D=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=(this.D&65536|f)>>1,0<=K(this,
e,a)&&(this.D=f<<16,this.j=this.w=a,this.u=a^this.D>>1)):(g=a&7,f=this.b[g],a=(this.D&65536|f)>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.w=a,this.u=a^this.D>>1);break;case 3136:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1|this.D>>16&1,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.D>>16&1,this.b[g]=a&65535,this.D=this.j=this.w=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.w=a,this.u=
this.j^this.D>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.w=a,this.u=this.j^this.D>>1);break;case 3264:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.D=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=P(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Yc(this,a,0))&&(61440!==(this.M&61440)&&
(h&=65535),this.B=this.M>>12&3,0<=(c=P(this,h))&&(this.B=this.M>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.ra[this.M>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(h&=65535,this.B=this.M>>12&3,0<=(e=Wc(this,h,4))&&(this.B=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=
f:this.ra[this.M>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=S(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=S(this,a,5))&&0<=R(this,e,0)&&(this.j=this.D=this.u=this.w=0):(this.b[a&7]&=65280,this.j=this.D=this.u=this.w=0);break;case 35392:0<=(f=Q(this,e=S(this,a,7)))&&(a=~f,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.D=65536,this.u=0));break;case 35456:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^
f))<<8));break;case 35520:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=Q(this,e=S(this,a,7)))&&(a=-f,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+(this.D>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.D=a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-(this.D>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.D=a<<8,this.u=((a^f)&f)<<8));break;
case 35776:0<=(f=Zc(this,a))&&(this.j=this.w=f<<8,this.D=this.u=0);break;case 35840:0<=(f=Q(this,e=S(this,a,7)))&&(a=((this.D&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.D=f<<16,this.j=this.w=a<<8,this.u=this.j^this.D>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,7)))&&(a=f<<1|this.D>>16&1,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,7)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.D=f<<16,this.j=this.w=a<<8,this.u=this.j^this.D>>1));break;case 36032:0<=
(f=Q(this,e=S(this,a,7)))&&(a=f<<1,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=Yc(this,a,0))&&(this.B=this.M>>12&3,0<=(c=P(this,h|65536))&&(this.B=this.M>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.ra[this.M>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(this.B=this.M>>12&3,0<=(e=Wc(this,
h|65536,4))&&(this.B=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.ra[this.M>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Xc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.u=
32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.M?(this.L|=128,J(this,4)):(this.ga=3,Rc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Ea,this.f[a].Ea=0;0===g&&0===this.ga&&(this.ga=2,Rc(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.M&49152||(Tc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=P(this,e|65536))&&(e=e+2&65535,0<=(c=P(this,e|65536))&&(this.b[6]=
e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.b[7]=h,Wb(this,c),this.F&=-17,2===a&&(this.F|=this.M&16)));break;default:J(this,8)}}}}}}this.F&&(this.F&2?J(this,168):this.F&4?J(this,4):this.F&16&&J(this,12),this.F=0)}while(0<this.N)}return this.A.complete?this.V-this.N:void 0===this.A.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Sc(c);db(c,d)}});
function bd(a){u.call(this,"ROM",a,bd);this.i=null;this.J=a.addr;this.B=a.size;this.N=a.writable;this.F=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=ia(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){cd(d,a,b,e)})}}w(bd);bd.prototype.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;dd(this)};
bd.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.B,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.pc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({gd:b,C:d,Pc:c,Ka:f,mc:e})}delete this.Ka}return!0};bd.prototype.Ma=function(){return!0};
function cd(a,b,d,c){if(c)a.na("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.nc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.na("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);dd(a)}}
function dd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.G){a.B||(a.B=a.i.length);if(a.i.length!=a.B)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.G,b,a.B,a.N?1:jc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.B,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
h-=f.za;f=e.G;e=e.B;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.za}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new bd(c);db(c,d)}});function ed(a){u.call(this,"RAM",a,ed);this.F=a.addr;this.B=a.size;this.i=!1}w(ed);m=ed.prototype;m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
m.reset=function(){!this.i&&this.B&&Cb(this.G,this.F,this.B,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function fd(a){u.call(this,"Keyboard",a,fd,65536);C(this)}w(fd);fd.prototype.ta=function(){return!1};fd.prototype.Wa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new fd(c);db(c,d)}});function gd(a){u.call(this,"Debugger",a,gd);this.va=a.base||16;this.Z=this.Ja=this.P=0;this.aa=!1;this.I=-1;this.F=[];this.fa={}}w(gd);var hd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function id(a,b,d,c){if(d)if(b){0>a.I&&a.F.length&&(a.I=0);if(0>a.I||b!=a.F[a.I])a.F.splice(0,0,b),a.I=0;a.I--}else a.aa?b="end":b=a.F[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(qa(b.substring(d,e))),d=e+1}}return a}
function jd(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
m.Xa=function(a,b,d,c){this.F=b;this.f=d;this.H=c;switch(this.P){default:a=Jb;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Ta[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Ta[n]=[h,g,k,e,!1]}}f=this.Ec.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.Uc=function(){return Vb(this.f)};
m.fd=function(a){Wb(this.f,a&-1809|Vb(this.f)&1808);this.f.W|=128};
function Xb(a){var b=a.G,d,c,f,e=b.ta>>13&7;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.cb[e]*b.Z[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.la=0;b.S=128;b.ta=0;break;case 1:if((b.ta>>4&511)>=b.cb[e]){b.la|=32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Yb(a,b.na[e],d,c,f);return;case 2:if((b.ta>>4&511)>=b.cb[e]){b.la|=
32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.$b(b.na[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.ta%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.G;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.la|=33024;e.S|=49152;break;case 2:e.la|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
function Zb(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.cb[e]*b.Z[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Ya&8&&(b.K&=63);b.Ya=b.Fc[e]|b.ab&64;break;case 3:1==(b.ca&3)&&(b.ab=b.ca&4?b.ab+(b.ca&65408)&65408|b.ca<<2&64:b.ab-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.ab);break;case 4:b.Ya=b.ab;break;case 5:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+
(b.ca&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;Yb(a,b.na[e],d,c,f);return;case 6:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+(b.ca&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;a.$b(b.na[e],d,c,f);return}H(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
m.Wc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ua=c>>16&63;e.ca=~~(d/e.Z[b.La])<<6|d%e.Z[b.La];e.ab=e.ca;e.Ya=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function $b(a){a=a.J;a.U=2176;a.Ba=0;a.pa=[4544,4544,4544,4544,4544,4544,4544,4544];a.ub=[0,0,0,0,0,0,0,0];a.kb=a.vb=a.tb=a.$a=a.ic=0}
function ac(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Ba&=-2049;d.pa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.na[b]&&(d.na[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.cc[0]*d.bb[0]*d.Z[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ac[b]=d.Pa[b];d.U|=32896;d.pa[b]|=32896;d.kb|=1<<b;break;case 9:$b(a);break;case 19:d.pa[b]|=64;break;case 49:if(d.Pa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+
(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;Yb(a,d.na[b],c,f,e);return;case 57:if(d.Pa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;a.$b(d.na[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.pa[b]|=128;return!!(d.U&64)})}
m.Xc=function(a,b,d,c,f){var e=this.J;e.vb=65536-f&65535;e.tb=c&65535;e.U=e.U&-769|c>>8&768;e.$a=c>>16&63;f=~~(d/e.Z[0]);c=~~(f/e.bb[0]);e.Ca[b.La]=f%e.bb[0]<<8|d%e.Z[0];e.ac[b.La]=e.Pa[b.La]=c;e.kb|=1<<b.La;d>=b.Sc-1&&(e.pa[b.La]|=1024);switch(a){case 1:e.Ba|=512;e.U|=49152;break;case 2:e.Ba|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.pa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Pc=function(){this.A.K|=128;this.A.K&64&&H(this.f,0,192,64)};
function bc(a,b,d,c,f,e){var h=~~((e+d.Va-1)/d.Va),g=new XMLHttpRequest;2048>h&&c+2048<d.Sc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Va<<1)+"-"+(((c+h)*d.Va<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Zb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Va;p++)d.cache[n][p]=q<l.length?
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Va<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.$b=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){bc(this,this.$b,a,b,d,c);return}for(f=0;f<a.Va&&0<c;f++){if(0>K(this.f,a.Rc?cc(this.f,d):d,a.cache[b][f])){a.Zb(2,a,b,d,c);return}d+=2;--c}b++}a.Zb(0,a,b,d,c)};
function Yb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Va;e++)b.cache[d][e]=0;for(e=0;e<b.Va&&0<f;e++){h=L(a.f,b.Rc?cc(a.f,c):c);if(0>h){b.Zb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Zb(0,b,d,c,f)}m.reset=function(){this.i.pb=this.i.pb&-120|20;this.N.Ia=0;this.N.qa=128;this.A.K=0;this.G.S=128;this.I.K=128;$b(this)};
m.Ec=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Yb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Yb=c;e.Oa=2}break;case 4194294:if(70!==e.gb)return J(e,4,222);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.gb)return J(e,4,224);c=1;break;case 4194290:if(70!==e.gb)return J(e,4,226);c=0;break;case 4194288:if(70!==e.gb)return J(e,4,228);c=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.gb)return J(e,4,232);f=a-4194272>>1;0>b?c=e.fc[f]:(c=I(this,e.fc[f],a,b,d),0<=c&&(e.fc[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[3]=b),c=e.sa[3]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[1]=b),c=e.sa[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Za[f]=
b),c=e.Za[f]),c;case 4194246:return a&1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[0]=b),c=e.sa[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Za[f]=b),c=e.Za[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.L|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;c=I(this,e.ka[3][f],a,b,d);0<=c&&(e.ka[3][f]=c,e.ka[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.A;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=
e.Da;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Xb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Xb=c>>1&15,c&257?(f=2,e.Ra&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.pb=this.i.pb&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Jc=0),h.qa&=-129,H(e,100,128,52,function(){h.qa|=128;return!!(h.qa&64)}));c=0;break;case 4194164:0>b?c=h.qa:(c=I(this,h.qa,a,b,
d),0<=c&&(128==(h.qa&192)&&c&64&&H(e,8,128,52,function(){h.qa|=128;return!!(h.qa&64)}),h.qa=h.qa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ia&=-129,0<h.gc.length&&(c=h.gc.shift(),0<h.gc.length&&setTimeout(function(){h.Ia|=128;h.Ia&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ia:(c=I(this,h.Ia,a,b,d),0<=c&&(h.Ia=h.Ia&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=I(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Pc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.L|=
16,J(e,4,126)}break;case 4194048:f=this.G;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.la,a,b,d);0<=c&&(f.la=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Xb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.ta,a,b,d);0<=c&&(f.ta=c);break;case 4194060:break;case 4194062:c=I(this,f.xc,a,b,d);0<=c&&(f.xc=c);break;default:return e.L|=
16,J(e,4,128)}break;case 4193728:var g=this.J;f=g.Ba&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.$a=g.$a&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?ac(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.vb,a,b,d);0<=c&&(g.vb=c);break;case 4193732:c=I(this,g.tb,a,b,d);0<=c&&(g.tb=c&65534);break;case 4193734:c=I(this,g.Ca[f],a,b,d);0<=c&&(g.Ca[f]=c&7967);break;case 4193736:c=I(this,g.Ba,a,b,d);0<=c&&(g.Ba=c&63|g.Ba&65472,c&128&&$b(this));break;case 4193738:c=
g.pa[f];break;case 4193740:c=g.ub[f];break;case 4193742:c=I(this,g.kb,a,b,d);0<=c&&(g.kb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=I(this,g.yc,a,b,d);0<=c&&(g.yc=c);break;case 4193748:c=I(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=I(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.ac[f]=g.Pa[f];c=g.ac[f];break;case 4193760:c=g.$c[f];
break;case 4193762:c=g.ad[f];break;case 4193764:c=g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=I(this,g.$a,a,b,d);0<=c&&(g.$a=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.ic,a,b,d);0<=c&&(g.ic=c);break;default:return e.L|=16,J(e,4,132)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ua=f.Ua&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||Zb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,
a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Ya,a,b,d);0<=c&&(f.Ya=c);break;case 4192520:c=I(this,f.Ua,a,b,d);0<=c&&(f.Ua=c&63,f.K=f.K&-49|(f.Ua&3)<<4);break;default:return e.L|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ra:(c=I(this,e.Ra,a,b,d),0<=c&&(70!==e.gb&&(c&=-49),e.Ra=c,e.ib[0]=c&4?15:7,e.ib[1]=c&2?15:7,e.ib[3]=c&1?15:7,e.Jb&&(f=2,e.Ra&16&&(f=1),this.i.pb=this.i.pb&-8|f)));break;default:return e.L|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;c=I(this,e.ka[0][f],
a,b,d);0<=c&&(e.ka[0][f]=c,e.ka[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=I(this,e.ka[1][f],a,b,d);0<=c&&(e.ka[1][f]=c,e.ka[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.gb)return J(e,4,234);f=a>>2&31;c=e.Sb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.Sb[f]=a&2?c<<16|e.Sb[f]&65535:e.Sb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Ib[a>>1&255];else return e.L|=16,J(e,
4,138);break;default:return e.L|=16,J(e,4,142)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};var Jb={};Jb[4194302]=[null,null,Hb.prototype.Uc,Hb.prototype.fd];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var dc;if(tb){var ec=new ArrayBuffer(2);(new DataView(ec)).setUint16(0,256,!0);dc=256===(new Uint16Array(ec))[0]}else dc=!1;var fc=dc;
function G(a,b,d,c,f){this.id=gc+=2;this.f=null;this.C=a;this.Ub=b;this.size=d||0;this.type=c||hc;this.O=c==ic;this.controller=null;xb(this);this.Wa=this.Lc=!1;if(d)if(f)this.controller=f,this.f=null,jc(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.F=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),jc(this,fc?kc:lc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;jc(this,mc)}else jc(this)}
var hc=0,ic=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],gc=0;
G.prototype={constructor:G,parent:null,Ib:function(a){this.C=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Wa=!0}return!1},eb:function(a,b){b?0===this.A++&&nc(this,oc,!1):0===this.i++&&pc(this,oc,!1)},T:function(){this.H&&
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.C),!0);return 255},G:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.C),!0)},V:function(a,b){return this.sb(a++,b++)|this.sb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},da:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},za:function(a,
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Wa=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Wa=!0},$:function(a,b){if(this.H&&null!=this.C){var d=this.H;qc(d,this.C+a,1,d.Y)&&d.ma(!0)}return this.Ob(a,b)},ga:function(a,b){if(this.H&&null!=this.C){var d=this.H;qc(d,this.C+a,2,d.Y)&&d.ma(!0)}return this.hc(a,b)},wa:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;
qc(c,this.C+a,1,c.J)&&c.ma(!0)}this.O?this.G(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;qc(c,this.C+a,2,c.J)&&c.ma(!0)}this.O?this.G(a,b,d):this.lc(a,b,d)},Y:function(a){return this.F[a]},aa:function(a){return this.F[a]},ea:function(a){return this.J.getUint16(a,!0)},ja:function(a){return a&1?this.F[a]|this.F[a+1]<<8:this.P[a>>1]},va:function(a,b){this.F[a]=b;this.Wa=!0},ya:function(a,b){this.F[a]=b;this.Wa=!0},Ea:function(a,b){this.J.setUint16(a,b,!0);this.Wa=
!0},Sa:function(a,b){a&1?(this.F[a]=b,this.F[a+1]=b>>8):this.P[a>>1]=b;this.Wa=!0}};function xb(a,b,d){a.H=b;a.i=a.A=0;d&&((a.i=d.i)&&pc(a,oc,!1),(a.A=d.A)&&nc(a,oc,!1))}function rc(a,b){b?0===--a.A&&(a.xb=a.O?a.G:a.yb,a.Cc=a.O?a.N:a.lc):0===--a.i&&(a.sb=a.Ob,a.wc=a.hc)}function nc(a,b,d){d&&a.A||(a.xb=!a.O&&b[1]||a.G,a.Cc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.G,a.lc=b[3]||a.N}function pc(a,b,d){d&&a.i||(a.sb=b[0]||a.T,a.wc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.hc=b[2]||a.V}
function jc(a,b){b||(b=sc);pc(a,b,void 0);nc(a,b,void 0)}var sc=[],mc=[G.prototype.da,G.prototype.za,G.prototype.ra,G.prototype.Bb],oc=[G.prototype.$,G.prototype.wa,G.prototype.ga,G.prototype.Ja];if(tb)var lc=[G.prototype.Y,G.prototype.va,G.prototype.ea,G.prototype.Ea],kc=[G.prototype.aa,G.prototype.ya,G.prototype.ja,G.prototype.Sa];
function tc(a,b){u.call(this,"CPU",a,tc,1);var d=a.multiplier||1;this.za=a.cycles||b;this.jb=d;this.ya=Math.round(this.za/1E4)/100;this.hb=this.ya*this.jb;this.w.ia=!1;this.w.kc=!1;this.w.Db=a.autoStart;this.w.sc=!1;this.w.ob=!1;this.Lb=this.Y=0;this.Mb=a.csStart;this.qb=a.csInterval;this.rb=a.csStop;this.ja=[];this.Eb=this.lb.bind(this);C(this)}w(tc);var uc=["power","reset"];m=tc.prototype;
m.Xa=function(a,b,d,c){this.i=a;this.F=b;this.H=c;for(b=0;b<uc.length;b++)(d=this.O[uc[b]])&&this.i.ua(null,uc[b],d);this.da=null;a=vc(a,"autoStart");null!=a&&(this.w.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){wc(this);if(!this.restore(a))return!1;xc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}yc(this);return!0};
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.w.Db||!this.H&&void 0===this.O.run?(this.lb(!0),!0):!1};m.uc=function(){return 0};function xc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.w.ob=0<=a.Mb&&0<a.qb;a.w.ob&&(a.Lb=0,a.Y=a.Mb-a.V)}function zc(a,b){if(a.w.ob){var d=!1;a.Lb=a.Lb+a.uc()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.qb,d=!0);0<=a.rb&&a.rb<=Mc(a)&&(a.qb=a.rb=-1,xc(a),a.ma(),d=!0);d&&a.g(Mc(a)+" cycles: checksum="+r(a.Lb))}}
function Nc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.ma());var f=a.H&&a.H.wa||8;d=!a.w.ia||a.w.sc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
m.ua=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.w.fa)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.w.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.w.fa);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.w.ready?"powered yet":"ready yet"+(b.Wb?" (waiting for notification)":""))+".");a=!1}a&&(c.w.ia?c.ma():c.lb())};
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Oc(c,c.jb<<1,!0)},d.textContent=this.hb.toFixed(2)+"Mhz",a=!0}return a};function Pc(a,b,d){a.V+=b;d&&(a.T=a.G=0)}function Qc(a,b){var d=1;b&&1<a.jb&&a.N&&(d=a.N/a.ya);a.mb=Math.round(1E3/30);a.va=Math.floor(a.za/30*d);b||(a.$=a.va);a.Ea=0}function Mc(a){return a.V+a.J+a.T-a.G}function wc(a){a.N=0;a.zb=0;a.V=a.J=a.T=a.G=0;xc(a);Oc(a,1)}
function Oc(a,b,d){var c=!1;if(void 0!==b){.8>a.N/a.hb?b=1:c=!0;a.jb=b;b=a.ya*a.jb;if(a.hb!=b){a.hb=b;b=a.hb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Tb()}Pc(a,a.J);a.J=0;a.I=sa();a.P=0;Qc(a);return c}function Rc(a){a.T-=a.G;a.G=0}
m.lb=function(a){if(fb(this,!0)){if(!this.w.ia){Oc(this);this.i&&this.i.start(this.I,Mc(this));this.w.ia=!0;this.w.kc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.xa(!0),a&&this.i.Tb(!0))}this.Ea>=this.za&&Qc(this,!0);this.ea=0;this.ra=sa();this.P&&(a=this.ra-this.P,a>this.mb&&(this.I+=a,this.I>this.ra&&(this.I=this.ra)));try{do{for(var d,c=this.w.ob?1:this.va,f=this.ja.length-1;0<=f;f--){var e=this.ja[f];0>e[0]||c>e[0]&&(c=e[0])}d=c;try{this.wb(d)}catch(l){if("number"!=
typeof l)throw l;}var h=this.T-this.G;a=h;for(var g=this.ja.length-1;0<=g;g--){var k=this.ja[g];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ea+=h;this.J+=h;Pc(this,0,!0);zc(this,h);this.$-=h;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.xa(),this.zb=0);break}}while(this.w.ia)}catch(l){this.ma();yc(this);this.i&&this.i.stop(sa(),Mc(this));fb(this,!1);sb(this,l.stack||l.message);return}d=setTimeout;c=this.Eb;this.P=sa();f=this.mb;this.ea&&(f=Math.round(f*this.ea/this.va));f=f-(this.P-
this.ra);if(e=this.P-this.I)this.N=Math.round(this.J/(10*e))/100,864E5<=e&&(this.V=0,Oc(this));if(0>f||this.N<this.hb)-1E3>f&&(this.I-=f),f=0;this.Ea+=this.ea;this.P+=f;d(c,f)}else yc(this),this.i&&this.i.stop(sa(),Mc(this))};m.wb=function(){return 0};m.ma=function(a){gb(this,!0);Rc(this);Pc(this,this.J);this.J=0;if(this.w.ia){this.w.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.w.complete=a};function yc(a,b){a.i&&a.i.xa(b)}
function Sc(a){this.vc=+a.model||1170;this.Vb=a.resetAddr||0;tc.call(this,a,1E6);this.Ja=0;this.decode=Tc.bind(this);this.D=65536;this.u=32768;this.B=65535;this.j=32768;this.wa=-1;this.b=[0,0,0,0,0,0,0,this.Vb];this.Za=[0,0,0,0,0,0];this.sa=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Yb=0;this.Oa=2;this.Qa=255;this.W=0;this.aa=-1;this.L=0;this.gb=70;this.Xb=this.Kb=this.Jb=this.A=this.Ra=this.Ab=this.Da=this.ba=0;this.ib=[7,7,7,7];this.ka=[[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],[65535,65535,65535,65535,65535,65535,65535,65535,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]];this.Sb=[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];this.fc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.w.complete=this.w.Ic=!1}w(Sc,tc);m=Sc.prototype;
m.reset=function(){this.w.ia&&this.ma();Uc(this);wc(this);this.w.error=!1;this.parent.reset.call(this)};function Uc(a){a.Qa=255;a.L=0;a.f=[];a.Yb=0;a.ba=a.Da=a.Ab=a.Ra=a.Jb=0;a.ib[0]=a.ib[1]=a.ib[3]=7;a.Kb=0}m.uc=function(){return 0};
m.save=function(){var a=new Vc(this);M(a,0,[]);M(a,1,[this.Sa,this.V,this.jb]);for(var b=this.F,d=0,c=[],f=0;f<b.G;f++){var e=b.R[f];if(e.Wa||e.Lc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}M(a,2,c);return a.data()};
m.restore=function(a){var b=a[1];this.Sa=b[0];this.V=b[1];Oc(this,b[3]);a:{b=this.F;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
m.ua=function(a,b,d){var c=!1;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":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ua.call(this,a,b,d)}return c};
m.xa=function(a){if(this.Ja&&(a||!this.w.ia||this.w.sc)){for(a=0;a<this.b.length;a++)Nc(this,"R"+a,this.b[a]);a=Vb(this);Nc(this,"PS",a);Nc(this,"NF",a&8?1:0,1);Nc(this,"ZF",a&4?1:0,1);Nc(this,"VF",a&2?1:0,1);Nc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.w.ia&&this.N?this.N.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].ed===c){0<e&&(a.f[e-1].Fa+=a.f[e].Fa);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Fa>b){a.f[e].Fa-=b;break}b-=a.f[e].Fa}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function Vb(a){return a.M=a.M&63728|(a.j&32768?8:0)|(a.B&65535?0:4)|(a.u&32768?2:0)|(a.D&65536?1:0)}
function Wb(a,b){a.j=b<<12;a.B=~b&4;a.u=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Za.length;0<=--d;){var c=a.b[d];a.b[d]=a.Za[d];a.Za[d]=c}a.A=b>>14&3;d=a.M>>14&3;a.A!=d&&(a.sa[d]=a.b[6],a.b[6]=a.sa[a.A]);a.Oa=2;a.M=b}function Wc(a,b){!a.W&128&&(a.j=a.B=b,a.u=0)}
function J(a,b,d){var c,f,e=0;0>a.aa?a.aa=Vb(a):a.A||(b=4,e=1);a.ba&57344||(a.Da=63222,a.Ab=b);a.A=0;0<=(c=N(a,b|65536))&&0<=(f=N(a,b+2&65535|65536))&&(Wb(a,f&53247|a.aa>>2&12288),e&&(a.L|=4,a.b[6]=4),0<=Xc(a,a.aa)&&0<=Xc(a,a.b[7])&&(a.b[7]=c));a.W&=-113;a.aa=-1;throw b|d<<8;}function cc(a,b){var d=b>>13&31;31>d?a.Ra&32&&(b=a.Sb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Yc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.ib[a.A];f=a.ka[a.A][c];e=(a.ka[a.A][c+16]<<6)+(b&8191)&4194303;a.Ra&16?3932160<=e&&4186112>e&&(e=cc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.L|=32,J(a,4,24)),e&1&&!(d&1)&&(a.L|=64,J(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&
8128)&&(h|=16384));a.ka[a.A][c]=f;if(4194170!==e||a.A)a.Kb=a.A,a.Xb=c;h&&(h&57344&&(0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Xb<<1),J(a,168,28)),a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.W|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(d&1)&&(a.L|=64,J(a,4,22));return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.F.Ha(b):b}function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.F.jc(b,d),d):b}
function P(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.F.Hb(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.F.bc(b,d),d):b}function N(a,b){return L(a,Yc(a,b,2))}function Zc(a){var b=N(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function Xc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Da=a.Da<<8|246);!a.A&&c<=a.Qa&&4<c&&(c<=a.Qa-32?(a.L|=4,a.b[6]=4,J(a,4,32)):(a.L|=8,a.W|=4));return 0<=(d=Yc(a,c|65536,4))?K(a,d,b):d}
function $c(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.A&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])&&(a.b[6]<=a.Qa-32||65534<=a.b[6]?(a.L|=4,a.b[6]=4,J(a,4,36)):(a.L|=8,a.W|=64)),7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=N(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
N(a,c)))return c;c|=65536;break;case 6:if(0>(c=N(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=N(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=N(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Da=a.Da<<8|f<<3&248|e);6===e&&!a.A&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])&&(a.b[6]<=a.Qa-32?(a.L|=4,a.b[6]=4,J(a,4,38)):(a.L|=8,a.W|=64));return c}
function R(a,b,d){var c;return b&56?(0<=(c=$c(a,b,d))&&(c=Yc(a,c,d)),c):4194304+(b&7)}function S(a,b){var d;b&56?(d=R(a,b,2),d=L(a,d)):d=a.b[b&7];return d}function ad(a,b){var d;b&56?0<=(d=R(a,b,3))&&(d=P(a,d)):d=a.b[b&7]&255;return d}function T(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.wb=function(a){this.w.complete=!0;var b=this.w.Ic=this.H&&bd(this.H),d=a?this.w.kc?0:1:-1;this.w.kc=!1;this.T=this.G=a;this.Sa&256?(Rc(this),a=!1):a=!0;if(a){do{if(b){if(cd(this.H,this.b[7],d)){this.ma();break}d=1}var c,f,e,h,g;this.W&112&&(this.W&32?J(this,168,52):this.W&64?J(this,4,54):this.W&16&&J(this,12,56),this.W&=-113);if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Yb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Fa){this.f[a].Fa--;this.Oa=2;break}if(this.f[a].pc){if(!this.f[a].pc()){this.f.splice(a,
1);g--;continue}this.f[a].pc=null}this.f[a].Tc>c&&(c=this.f[a].Tc,g=a)}c>(this.M&224)&&(0>g?J(this,160,42):(J(this,this.f[g].ed,44),this.f.splice(g,1)))}this.ba&57344||(this.Da=0,this.Ab=this.b[7]);this.W=this.M&16;this.wa=N(this,this.b[7]);this.b[7]=this.b[7]+2&65535;this.decode(this.wa);if(0<=this.wa)switch(a=this.wa,this.b[7]=this.b[7]+2&65535,a&61440){case 20480:0<=(c=S(this,a>>6))&&(a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.B=a,this.u=0)):(this.j=this.B=a=this.b[a&
7]|=c,this.u=0));break;case 24576:0<=(c=S(this,a>>6))&&(a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.B=this.D=a,this.u=(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.B=this.D=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=ad(this,a>>6))&&(a&56?0<=(e=R(this,a,5))&&0<=Q(this,e,c)&&(this.j=this.B=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.B=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=ad(this,a>>6))&&0<=(f=ad(this,a))&&(a=c-f,this.j=this.B=this.D=
a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=ad(this,a>>6))&&0<=(f=ad(this,a))&&(this.j=this.B=(c&f)<<8,this.u=0);break;case 49152:0<=(c=ad(this,a>>6))&&0<=(f=P(this,e=R(this,a,7)))&&(a=f&~c,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=0));break;case 53248:0<=(c=ad(this,a>>6))&&0<=(f=P(this,e=R(this,a,7)))&&(a=f|c,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=0));break;case 57344:0<=(c=S(this,a>>6))&&(a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.B=this.D=a,this.u=(c^f)&
(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.B=this.D=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=$c(this,a,0))&&(g=a>>6&7,0<=Xc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=S(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.B=this.j|a,this.D=this.u=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=S(this,a))&&(c?(g=
a>>6&7,f=this.b[g]<<16|this.b[g|1],this.D=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.B=a>>16|a,this.j=a>>16):(this.u=32768,this.B=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.B=this.j=0,this.u=32768,this.D=65536));break;case 29696:0<=(c=S(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.D=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.D=
a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.B=a);break;case 30208:if(0<=(c=S(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|1];this.D=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.B=a>>16|a}break;case 30720:a&56?0<=
(f=L(this,e=R(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.B=f,this.u=0)):(this.j=this.B=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=T(this.b[7],a);break;case 512:this.B&65535&&(this.b[7]=T(this.b[7],a));break;case 768:this.B&65535||(this.b[7]=T(this.b[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.b[7]=T(this.b[7],a));break;case 1280:(this.j&
32768)!==(this.u&32768)&&(this.b[7]=T(this.b[7],a));break;case 1536:this.B&65535&&(this.j&32768)===(this.u&32768)&&(this.b[7]=T(this.b[7],a));break;case 1792:this.B&65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=T(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=T(this.b[7],a));break;case 33280:!(this.D&65536)&&this.B&65535&&(this.b[7]=T(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=T(this.b[7],a));break;case 33536:if(this.D&65536||!(this.B&65535))this.b[7]=T(this.b[7],a);break;
case 33792:this.u&32768||(this.b[7]=T(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=T(this.b[7],a));break;case 34304:this.D&65536||(this.b[7]=T(this.b[7],a));break;case 34560:this.D&65536&&(this.b[7]=T(this.b[7],a));break;case 34816:J(this,24,2);break;case 35072:J(this,28,4);break;default:switch(a&65472){case 64:0<=(h=$c(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.B=f&65280,this.u=this.D=0)):(g=a&7,f=this.b[g],
this.b[g]=(f<<8|f>>8)&65535,this.j=this.B=f&65280,this.u=this.D=0);break;case 2560:a&56?0<=(e=R(this,a,4))&&0<=K(this,e,0)&&(this.j=this.D=this.u=this.B=0):this.j=this.D=this.u=this.B=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=R(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.B=a,this.D=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.B=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.B=a,this.u=a&(a^f));break;case 2752:a&
56?0<=(f=L(this,e=R(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.B=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.B=a,this.u=(a^f)&f);break;case 2816:0<=(f=L(this,e=R(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=R(this,a,6)))&&(a=f+(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=R(this,a,6)))&&(a=f-(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=
(a^f)&f));break;case 3008:0<=(f=S(this,a))&&(this.j=this.B=f,this.D=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=(this.D&65536|f)>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.B=a,this.u=a^this.D>>1)):(g=a&7,f=this.b[g],a=(this.D&65536|f)>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.B=a,this.u=a^this.D>>1);break;case 3136:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f<<1|this.D>>16&1,0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.D>>16&1,this.b[g]=
a&65535,this.D=this.j=this.B=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.B=a,this.u=this.j^this.D>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.B=a,this.u=this.j^this.D>>1);break;case 3264:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.D=this.j=this.B=a,this.u=a^f);break;case 3328:h=this.b[7]+
((a&63)<<1)&65535;0<=(c=N(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=$c(this,a,0))&&(61440!==(this.M&61440)&&(h&=65535),this.A=this.M>>12&3,0<=(c=N(this,h))&&(this.A=this.M>>14&3,0<=Xc(this,c)&&(this.j=this.B=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.sa[this.M>>12&3],0<=Xc(this,c)&&(this.j=this.B=c,this.u=0));break;case 3456:0<=(f=Zc(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=$c(this,a,0))&&(h&=65535,
this.A=this.M>>12&3,0<=(e=Yc(this,h,4))&&(this.A=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.B=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.sa[this.M>>12&3]=f,this.j=this.B=f,this.u=0));break;case 3520:0<=(e=R(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.B=a,this.u=0));break;case 35328:a&56?0<=(e=R(this,a,5))&&0<=Q(this,e,0)&&(this.j=this.D=this.u=this.B=0):(this.b[a&7]&=65280,this.j=this.D=this.u=this.B=0);break;case 35392:0<=(f=P(this,e=R(this,a,7)))&&(a=
~f,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.D=65536,this.u=0));break;case 35456:0<=(f=P(this,e=R(this,a,7)))&&(a=f+1,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=(a&(a^f))<<8));break;case 35520:0<=(f=P(this,e=R(this,a,7)))&&(a=f-1,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=P(this,e=R(this,a,7)))&&(a=-f,0<=Q(this,e,a)&&(this.D=this.j=this.B=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=P(this,e=R(this,a,7)))&&(a=f+(this.D>>16&1),0<=Q(this,e,a)&&(this.j=this.B=this.D=
a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=P(this,e=R(this,a,7)))&&(a=f-(this.D>>16&1),0<=Q(this,e,a)&&(this.j=this.B=this.D=a<<8,this.u=((a^f)&f)<<8));break;case 35776:0<=(f=ad(this,a))&&(this.j=this.B=f<<8,this.D=this.u=0);break;case 35840:0<=(f=P(this,e=R(this,a,7)))&&(a=((this.D&65536)>>8|f)>>1,0<=Q(this,e,a)&&(this.D=f<<16,this.j=this.B=a<<8,this.u=this.j^this.D>>1));break;case 35904:0<=(f=P(this,e=R(this,a,7)))&&(a=f<<1|this.D>>16&1,0<=Q(this,e,a)&&(this.D=this.j=this.B=a<<8,this.u=(a^
f)<<8));break;case 35968:0<=(f=P(this,e=R(this,a,7)))&&(a=f&128|f>>1,0<=Q(this,e,a)&&(this.D=f<<16,this.j=this.B=a<<8,this.u=this.j^this.D>>1));break;case 36032:0<=(f=P(this,e=R(this,a,7)))&&(a=f<<1,0<=Q(this,e,a)&&(this.D=this.j=this.B=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=$c(this,a,0))&&(this.A=this.M>>12&3,0<=(c=N(this,h|65536))&&(this.A=this.M>>14&3,0<=Xc(this,c)&&(this.j=this.B=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.sa[this.M>>12&3],0<=Xc(this,
c)&&(this.j=this.B=c,this.u=0));break;case 36224:0<=(f=Zc(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=$c(this,a,0))&&(this.A=this.M>>12&3,0<=(e=Yc(this,h|65536,4))&&(this.A=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.B=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.sa[this.M>>12&3]=f,this.j=this.B=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Zc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<
5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.u=0);a&4&&(this.B=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.u=32768);a&4&&(this.B=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.M?(this.L|=128,J(this,4,46)):(this.ga=3,Rc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Fa,this.f[a].Fa=0;0===g&&0===this.ga&&(this.ga=2,Rc(this));break;case 3:J(this,12,6);break;case 4:J(this,
16,8);break;case 5:this.M&49152||(Uc(this),this.F.reset());break;case 2:case 6:e=this.b[6];0<=(h=N(this,e|65536))&&(e=e+2&65535,0<=(c=N(this,e|65536))&&(this.b[6]=e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.b[7]=h,Wb(this,c),this.W&=-17,2===a&&(this.W|=this.M&16)));break;default:J(this,8,48)}}}}}}}while(0<this.G)}return this.w.complete?this.T-this.G:void 0===this.w.complete?0:-1};
Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Sc(c);db(c,d)}});function Tc(a){dd[a>>12].call(this,a)}function U(){--this.G}
var dd=[function(){},function(a){var b=S(this,a>>6);a&56?K(this,R(this,a,4),b):this.b[a&7]=b;Wc(this,b);--this.G},function(a){var b=S(this,a>>6);a=S(this,a);var d=b-a;!this.W&128&&(this.j=this.B=this.D=d,this.u=(b^a)&(b^d));--this.G},function(a){Wc(this,S(this,a>>6)&S(this,a));--this.G},function(a){var b=S(this,a>>6);if(a&56){a=R(this,a,4);var d=L(this,a);K(this,a,b=~b&d)}else a&=7,this.b[a]=b=~b&this.b[a];Wc(this,b);--this.G},U,U,U,U,U,U,U,U,U,U,U];
function ed(a){u.call(this,"ROM",a,ed);this.i=null;this.J=a.addr;this.A=a.size;this.N=a.writable;this.G=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=da(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){fd(d,a,b,e)})}}w(ed);ed.prototype.Xa=function(a,b,d,c){this.F=b;this.f=d;this.H=c;gd(this)};
ed.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.A,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.qc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({hd:b,C:d,Qc:c,Ka:f,nc:e})}delete this.Ka}return!0};ed.prototype.Ma=function(){return!0};
function fd(a,b,d,c){if(c)a.oa("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.oc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.oa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);gd(a)}}
function gd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.F){a.A||(a.A=a.i.length);if(a.i.length!=a.A)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.A,8,!0)+")");else{var b;b=a.J;if(Cb(a.F,b,a.A,a.N?1:ic)){var d;for(d=0;d<a.i.length;d++){var c=a.F,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.F,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.F,h=e.A,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
h-=f.Aa;f=e.F;e=e.A;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.Aa}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function hd(a){u.call(this,"RAM",a,hd);this.G=a.addr;this.A=a.size;this.i=!1}w(hd);m=hd.prototype;m.Xa=function(a,b,d,c){this.F=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
m.reset=function(){!this.i&&this.A&&Cb(this.F,this.G,this.A,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new hd(c);db(c,d)}});function id(a){u.call(this,"Keyboard",a,id,65536);C(this)}w(id);id.prototype.ua=function(){return!1};id.prototype.Xa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new id(c);db(c,d)}});function jd(a){u.call(this,"Debugger",a,jd);this.wa=a.base||16;this.$=this.Ja=this.P=0;this.da=!1;this.I=-1;this.G=[];this.ga={}}w(jd);var kd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function ld(a,b,d,c){if(d)if(b){0>a.I&&a.G.length&&(a.I=0);if(0>a.I||b!=a.G[a.I])a.G.splice(0,0,b),a.I=0;a.I--}else a.da?b="end":b=a.G[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(qa(b.substring(d,e))),d=e+1}}return a}
function md(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0}
function kd(a,b,d){var c;if(b){b=ld(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=qa(n);if(!n){e=!0;break}n=md(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&hd[n]<hd[k[k.length-1]]&&jd(g,k,1);k.push(n);b=b.substr(p+q)}jd(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&nd(a,null,
c))}return c}function ld(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=kd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.Z-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
function md(a,b,d,c){var f;null!=b?(f=a.fa[b],null==f&&(f=aa(b,a.va)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function nd(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
function od(a,b){if(b)return nd(a,b,a.fa[b]);var d=0;for(b in a.fa)nd(a,b,a.fa[b]),d++;return 0<d}function X(a,b,d){switch(a.va){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
function pd(a){gd.call(this,a);this.V=Y();this.zb=Y();this.$=Y();this.N=[];this.B=this.W=this.J=[];qd(this);this.xa=0;rd(this);this.Ra=[];sd(this,a.messages);this.lb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return td(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return td(b,a)})}w(pd,gd);
var ud={"?":"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",v:"print version","var":"assign variable"},vd="NONE 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(" "),
wd={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],
function nd(a,b,d){var c;if(b){b=od(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=qa(n);if(!n){e=!0;break}n=pd(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&kd[n]<kd[k[k.length-1]]&&md(g,k,1);k.push(n);b=b.substr(p+q)}md(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&qd(a,null,
c))}return c}function od(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=nd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.$-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
function pd(a,b,d,c){var f;null!=b?(f=a.ga[b],null==f&&(f=aa(b,a.wa)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function qd(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
function rd(a,b){if(b)return qd(a,b,a.ga[b]);var d=0;for(b in a.ga)qd(a,b,a.ga[b]),d++;return 0<d}function X(a,b,d){switch(a.wa){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
function sd(a){jd.call(this,a);this.V=Y();this.zb=Y();this.aa=Y();this.N=[];this.A=this.Y=this.J=[];td(this);this.ya=0;ud(this);this.Sa=[];vd(this,a.messages);this.mb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return wd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return wd(b,a)})}w(sd,jd);
var xd={"?":"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",v:"print version","var":"assign variable"},yd="NONE 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(" "),
zd={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],35072:[107]},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]}};m=pd.prototype;
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=wc(a,"messages"))&&sd(this,a);this.qc=wd;xd(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(yd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.C,8)+" "+r(n.Tb,4,
!0)+" "+r(n.size,4,!0)+" "+l),d!=ic&&(d=-1),l=0);a+=c.G.za;g++}}});C(this)};
m.ta=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ua=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",td(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.F.length-1&&(b=c.F[++c.I])):40==a.keyCode&&(0<c.I?b=c.F[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Ka(d,function(){if(c.ua){var a=c.ua.value;
c.ua.value="";td(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(fb(c,!0),b=c.vb(a?1:0),fb(c,!1));return b}),!0}return!1};m.Sb=function(){this.ua&&this.ua.focus()};function Z(a){a=a&&a.C;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Ob(c&d.G,c),b&&zd(a,b));return d};m.Ga=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.G,c),b&&zd(a,b));return d};
m.ac=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&zd(a,d);M(this.f,!0)}};m.ic=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].kc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.B].yb(0,b>>8&255,c+1));d&&zd(a,d);M(this.f,!0)}};function Y(a){return{C:a,Fa:!1}}function Ad(a){return[a.C,a.Fa]}function Bd(a){return{C:a[0],Fa:a[1]}}
function yd(a,b,d){var c;d=(d?a.V:a.zb).C;if(void 0!==b){c=b=ld(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=kd(a,b,void 0)}null!=d&&(c=Y(d));return c}function Cd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Fc=id(a,b.Ac=d[2]))}function zd(a,b){null!=a.C&&(a.C+=b||1)}
function sd(a,b){a.H=a;a.ha=a.Gc=536870912;a.ya=null;a.Da=[];var d=id(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function xd(a,b){for(var d in F)if(64==F[d]){a.Ra[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).C));if(this.ha&1073741824)this.Da.push(a);else if(!this.ya||a!=this.ya)if(this.ya=a,this.ha&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Rc(d);d.$=0;M(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.lb){var a=this.lb;this.lb=null;td(this,a)}};
function rd(a){var b;if($c(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.qa=0;a.g("instruction history buffer allocated")}if(!a.ga||!a.ga.length)for(a.ga=Array(256),b=0;b<a.ga.length;b++)a.ga[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.qa=0,a.T=[],a.ga=[]}m.kb=function(a){if(!Dd(this))return!1;this.f.kb(a);return!0};
m.vb=function(a,b,d){if(!Dd(this))return!1;this.P=0;a||$c(this)&&ad(this,this.f.b[7],0);try{var c=this.f.vb(a);0<c&&(this.P+=c,Pc(this.f,c,!0),Lc(this.f,c),this.Z++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&M(this.f);this.wa(b||!1);return 0<this.P};m.la=function(a){this.f&&this.f.la(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.da?be(this):ce(this)};
function Dd(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.ea?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){rd(this);this.Z=this.Ja=0;this.ya=null;this.P=0;this.V=Y(this.f.b[7]);this.A.ia=!1;de(this);a||this.wa()};
m.save=function(){var a=new Uc(this);N(a,0,Ad(this.V));N(a,1,Ad(this.$));N(a,2,[this.F,this.aa,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Bd(a[b++]),this.$=Bd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.aa=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.da||this.g("running");this.A.ia=!0;this.Jc=a;this.Lc=b};
m.stop=function(a,b){if(this.A.ia){this.A.ia=!1;this.P=b-this.Lc;if(!this.da){var d="stopped";if(this.P){var c=a-this.Jc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";$c(this)&&(d+=this.Z+" opcodes, ",this.Ja-=this.Z,this.Z=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Sb();de(this,this.f.b[7])}};function $c(a){return 1<a.B.length||!!a.xa}
function ad(a,b,d){var c=a.f;if(0<d&&(a.xa&&!--a.xa||rc(a,b,1,a.B)))return!0;0<=d&&a.ga.length&&(a.Z++,null!=Gb(a.G,b)&&(b=a.T[a.qa],b.C=c.b[7],b.Fa=!1,++a.qa==a.T.length&&(a.qa=0)));return!1}function qd(a){var b,d;a.B=["bp"];if(void 0!==a.W)for(b=1;b<a.W.length;b++){d=a.W[b];var c=a.G;sc(c.R[Z(d)>>>c.X],!1)}a.W=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,sc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
m.cb=function(a,b,d){var c=!0;d||ee(this,a,b,!1,!0);if(a!=this.B){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.C)),c=!1;else{var e=this.G;e.R[f>>>e.X].cb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(fe(this,a,a.length-1,"set"),rd(this)));return c};function ee(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Fa)){e=!0;g.Fa||f||fe(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.G,sc(c.R[d>>>c.X],b==a.J));g.Fa||rd(a);break}}return e}
function ge(a,b){for(var d=1;d<b.length;d++)fe(a,b,d);return b.length-1}function fe(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.C)+(c?" "+c:d.Ac?' "'+d.Ac+'"':""))}function de(a,b){if(void 0!==b)rc(a,b,1,a.B,!0),a.da=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.Fa){if(!ee(a,a.B,c,!0))break;d=0}}}
function rc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(ee(a,c,g,!0),f=!0);if(n=g.Fc){for(var e=!1,p=0;p<n.length;p++)if(!he(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.A.ia||(e=!0)}if(e){f||fe(a,c,h,"hit");break}}}a.Eb--;return e}
function ie(a,b,d,c){var f=Y(b.C),e=a.Ga(b,2),h,g;for(g in a.qc)if(h=a.qc[g][e&g])break;h||(h=[0]);g="";for(var k=vd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.C+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.C-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch((y&56)>>3){case 0:x=je(B);break;
case 1:x="@"+je(B);break;case 2:7>B?x="("+je(B)+")+":(D=q.Ga(p,2),x="#"+X(q,D));break;case 3:7>B?x="@("+je(B)+")+":(D=q.Ga(p,2),x="@#"+X(q,D));break;case 4:x="-("+je(B)+")";break;case 5:x="@-("+je(B)+")";break;case 6:D=q.Ga(p,2);x=X(q,D)+"("+je(B)+")";7==B&&(x=[x,X(q,D+p.C&65535)]);break;case 7:D=q.Ga(p,2),x="@"+X(q,D)+"("+je(B)+")",7==B&&(x=[x,X(q,D+p.C&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.C)+":";
if(-1!==f.C&&-1!==b.C){do if(e+=" "+X(a,a.Ga(f,2)),null==f.C)break;while(f.C!=b.C)}h+=pa(e,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.nb?h+("cycles="+Mc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ke(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
function je(a){return 6>a?"R"+a:6==a?"SP":"PC"}function le(a,b){var d="",c=a.f;8>b?(d=je(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.ra[b-16]):20==b&&(d="PS="+X(a,Vb(c)));d&&(d+=" ");return d}function me(a){var b,d="";for(b=0;6>b;b++)d+=le(a,b);d=d+"\n"+(le(a,6)+le(a,7)+le(a,20));return d+=ke(a,"T")+ke(a,"N")+ke(a,"Z")+ke(a,"V")+ke(a,"C")}m.pc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function ne(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.C>>>0,g=e.Pc;if(f>=h&&f<h+g){f=ra(e.mc,[f-h],a.pc);0<=f?oe(a,b,f,c):d&&(f=~f,oe(a,b,f-1,c),oe(a,b,f,c));break}}return c}function oe(a,b,d,c){var f={},e=a.N[b].mc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
function pe(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return od(a)||a.g("no variables"),!0;if(!d[2])return od(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;var c=kd(a,d[3]);return void 0!==c?(a.fa[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function qe(a,b,d){var c=null;if(b=yd(a,b,!0)){var f=ne(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.C-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.C)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
function be(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=kd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.u=
g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}M(c);a.g("updated registers:")}a.g(me(a));d&&(a.V=Y(c.b[7]),ce(a,X(a,a.V.C)))}}function re(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):kd(a,b,!0)}function se(a,b,d){var c="t"!=b;d=md(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return fb(a,!0)&&a.vb(f,c,!1)},function(){M(a.f);fb(a,!1)})}
function ce(a,b,d,c){if(b=yd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=yd(a,d,!0);if(!c||c.C<b.C)return;f=c.C-b.C;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=qb(a,!1)||a.da?a.P:null;var h=null!=e?"cycles":null,g=ne(a,b),k=b.C;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=ie(a,b,h,e);a.g(e);a.V=b;f-=b.C-k;d++}}}
function he(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.aa&&(a.g("ended assemble at "+X(a,a.$.C)),a.V=a.$,a.aa=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ya=null;if(rb(a)&&0<b.length){a.aa&&(b="a "+X(a,a.$.C)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=yd(a,e[1],!0);if(n)if(a.$=
n,void 0===e[2])a.g("begin assemble at "+X(a,n.C)),a.aa=!0,M(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.ac(n,p[q],1);a.g(ie(a,a.$))}}break;case "b":a:{var D=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var B=D.charAt(1);if("l"==B){var Fa=0,Fa=Fa+ge(a,a.B),Fa=Fa+ge(a,a.W);(Fa+=ge(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.xa=md(a,x),a.g("break after "+a.xa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=yd(a,x,!0),!V))break a;"c"==B?null==V.C?(qd(a),a.g("all breakpoints cleared")):ee(a,a.B,V)||ee(a,a.W,V)||ee(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.C)):null!=V.C&&(Cd(a,V,y),"p"==B?a.cb(a.B,V):"r"==B?a.cb(a.W,V):"w"==B?a.cb(a.J,V):
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.eb&&(a.eb.value="");break;case "d":a:{var Ga,Ha=e[0],da=e[1],ta=e[2],Me=e[3];if("?"==da){var ea="";for(Ga in F)a.Ra[Ga]&&(ea&&(ea+=","),ea+=Ga);ea+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ea.length&&a.g("dump extension commands:\n\t"+
ea)}else if("state"==da){var Ed=te(a.i,!0);"console"==ta?console.log(Ed):(a.eb&&(a.eb.value=""),a.g(Ed))}else if("symbols"==da)for(var yc=0;yc<a.N.length;yc++){var zc=a.N[yc],Ia;for(Ia in zc.Ka)if("."!=Ia.charAt(0)){var Fd=zc.Ka[Ia].o;if(void 0!==Fd){var Gd=zc.Ka[Ia].l;Gd&&(Ia=Gd);a.g(X(a,Fd)+" "+Ia)}}}else{if("d"==Ha){for(Ga in F)if(e[1]==Ga){var Hd=a.Ra[Ga];Hd?(e.shift(),e.shift(),Hd(e)):a.g("no dump registered for "+da);break a}da||(Ha=a.Nc||"db")}else a.Nc=Ha;if("dh"==Ha){var Id=da,Jd=ta,Kd="",
Ld=0,O=a.qa,fa=a.T;if(fa.length){var W=+Id||a.Ub,Ja=+Jd||10;isNaN(W)?W=Ja:Kd="more ";W>fa.length&&(a.g("note: only "+fa.length+" available"),W=fa.length);O-=W;0>O&&(null==fa[fa.length-1].C?(W=O+W,O=0):O+=fa.length);var Ac=[];"call"==Jd&&(Ja=1E5,Ac=["CALL"]);for(void 0!==Id&&a.g(W+" instructions earlier:");0<Ja&&O!=a.qa;){var Md=fa[O++];if(null==Md.C)break;var gb=Y(Md.C),Ne=W--,Nd=ie(a,gb,"history",Ne);(!Ac.length||0<=Nd.indexOf(Ac[0]))&&a.g(Nd);gb.dc&&(O+=gb.dc,Ja-=gb.dc,W-=gb.dc);O>=fa.length&&(O=
0);a.Ub=W;Ld++;Ja--}}Ld||(a.g("no "+Kd+"history available"),a.Ub=void 0)}else{var Jb=yd(a,da);if(Jb){var Kb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Me),Kb=md(a,ta)>>>0,65536<Kb&&(Kb=65536));for(var ua="",Lb="dd"==Ha?4:"dw"==Ha?2:1,Mb=Lb*Kb||128,Oe=Mb+15>>4||1;Oe--&&0<Mb;){var Nb=0,Bc=0,hb,ib="",Cc="",da=X(a,Jb.C);for(hb=16;0<hb&&0<Mb;hb--){var Ob=a.Hb(Jb,1),Nb=Nb|Ob<<(Bc++<<3);Bc==Lb&&(ib+=r(Nb,2*Lb),ib+=1==Lb?9==hb?"-":" ":" ",Nb=Bc=0);Cc+=32<=Ob&&128>Ob?String.fromCharCode(Ob):".";Mb--}ua&&
(ua+="\n");ua+=da+" "+ib+(0==hb?" "+Cc:"")}ua&&a.g(ua);a.zb=Jb}}}}break;case "e":if("else"==e[0])break;var Pb=1,Od=255,Pd=a.Hb,Qd=a.ac;"ew"==e[0]&&(Pb=2,Od=65535,Pd=a.Ga,Qd=a.ic);var Rd=Pb<<1,Sd=e[1];if(null==Sd)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Qb=yd(a,Sd);if(Qb)for(var Rb=2;Rb<e.length;Rb++){var jb=kd(a,e[Rb]);if(void 0===jb){a.g("unrecognized value: "+e[Rb]);break}jb&~Od&&a.g("warning: "+r(jb)+" exceeds "+
Pb+"-byte value");var Pe=Pd.call(a,Qb);a.g("changing "+X(a,Qb.C)+" from "+r(Pe,Rd,!0)+" to "+r(jb,Rd,!0));Qd.call(a,Qb,jb,Pb)}}break;case "g":a:{var Td=e[1],Qe=b;if(void 0!==Td){var Dc=yd(a,Td,!0);if(!Dc)break a;Cd(a,Dc,Qe);a.cb(a.B,Dc,!0)}a.kb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Ec;if(a.A.ia)Ec="halting",a.la();else{if(qb(a,!0))break a;Ec="already halted"}d||a.g(Ec)}break;case "i":if("if"==e[0]){var Fc;var kb=b.substr(2),kb=qa(kb);kd(a,kb)?(d||a.g("true: "+
kb),Fc=!0):(d||a.g("false: "+kb),Fc=!1);Fc||(c=!1)}break;case "k":var Re=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Gc=0,Ud=Y(),lb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,lb.C));10>Gc;){for(var va=null,Se=256;65536>lb.C>>>0;){Ud.C=a.Ga(lb,2);if(null==lb.C||!Se--)break;for(var Te=a,Sb=Ud,Vd=null,mb=Sb.C,Wd=mb,Hc=1;6>=Hc&&mb;Hc++){if(2<Hc){Sb.C=mb;var Tb=ie(Te,Sb);if(0<=Tb.indexOf("JSR")){var Xd=Tb.indexOf(" ");if(mb+
(Tb.indexOf(" ",Xd+1)-Xd-1)/2==Wd){Vd=Tb;break}}}mb--}Sb.C=Wd;if(va=Vd)break}if(!va||null==va)break;var Yd=null;if("ks"==Re){var Zd=va.match(/[0-9A-F]+$/);Zd&&(Yd=qe(a,Zd[0]))}va=pa(va,50)+" ;"+(Yd||"stack="+X(a,lb.C));a.g(va);Gc++}Gc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){qe(a,e[1],!0);break}break;case "m":a:{var ga,ha=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var na=0;if("all"==E)na=1878917119,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==
E&&(E="key");"kbd"==E&&(E="keyboard");for(ga in F)if(E==ga){na=F[ga];ha=!!(a.ha&na);break}if(!na){a.g("unknown message category: "+E);break a}}if(na)if("on"==e[2])a.ha|=na,ha=!0;else if("off"==e[2]&&(a.ha&=~na,ha=!1,1073741824==na)){for(var Ic=0;Ic<a.Da.length;Ic++)a.g(a.Da[Ic]);a.Da=[]}}var Ue=0,oa="";for(ga in F)if(!E||E==ga){var Ve=!!(a.ha&F[ga]);if(null===ha||ha==Ve)oa&&(oa+=","),++Ue%10||(oa+="\n\t"),"key"==ga&&(ga="keys"),oa+=ga}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(oa||"none"));rd(a)}break;case "p":if("print"==e[0]){re(a,b.substr(5));break}var We="pr"==e[0]?1:0;if(a.da)a.g("step in progress");else{var $d=Y(a.f.b[7]);a.Hb($d);a.da?(a.cb(a.B,$d,!0),a.kb()||(a.i&&a.i.Sb(),a.da=0)):se(a,We?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}be(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var nb=+e[2];if(8==nb||10==nb||16==nb)a.va=nb;else{a.g("invalid base: "+nb);
break}}a.g("default base: "+a.va);break;case "cs":var ob;void 0!==e[3]&&(ob=+e[3]);switch(e[2]){case "int":a.f.pb=ob;break;case "start":a.f.Mb=ob;break;case "stop":a.f.qb=ob;break;default:a.g("unknown cs option");break a}void 0!==ob&&Kc(a.f);a.g("checksums "+(a.f.A.nb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Oc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.gb.toFixed(2)+"Mhz")+" ("+a.f.ib+"x)");break;case "?":a.g("debugger options:");
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":se(a,e[0],e[1]);break;case "u":ce(a,e[1],e[2],8);break;case "v":if("var"==e[0]){pe(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.uc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){re(a,b.substr(1));break}var pb="commands:",Jc;for(Jc in ud)pb+="\n"+pa(Jc,9)+ud[Jc];$c(a)||(pb+="\nnote: history disabled if no exec breakpoints");a.g(pb);break;default:a.g("unknown command: "+b),c=!1}}}catch(ae){a.g("debugger error: "+(ae.stack||ae.message)),c=!1}return c}function td(a,b,d){b=id(a,b,d);for(var c in b)if(!he(a,b[c]))return!1;return!0}
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new pd(c);db(c,d)}});
function ue(a,b,d){u.call(this,"Computer",a,ue,67108864);this.A.ea=!1;ve(this,b);this.W=wc(this,"autoPower",a);this.F=0;this.fa=a.busWidth||a.buswidth;this.i=we;this.T=null;this.N=this.aa=!1;this.url=wc(this,"url")||"";(Math.random()+.1).toString(36);this.B=xe(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new wb({id:this.nc+".bus",busWidth:this.fa},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.eb)for(b=0;b<f.length;b++)c=f[b],c.na=this.I.na,c.g=
this.I.g,c.eb=this.I.eb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Wa&&c.Wa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=wc(this,"state")||(e=!0,a.state))b=this.Z=a,e||(this.N=!0,this.i=we),this.i&&
(this.V=new Uc(this,"1.30.0"),ye(this.V)?b=null:delete this.V);!b&&this.i&&(b=ze(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.aa=!0);C(h)})}else C(this);this.O.power||(this.W=!0);!d&&this.W&&Ae(this,this.Nb)}else t("Unable to find CPU component")}w(ue);var we=0;
function ve(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function wc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function Ae(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){Ae(a,b,d)});return}}b.call(a,d)}
function Be(a,b){var d=new Uc(a,"1.30.0","validate");if(ye(d)&&Ce(d)){var c=De(d,"timestamp"),f=b?De(b,"timestamp"):"unknown";c!=f&&(a.na("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=ue.prototype;
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:we));if(!this.F){this.F++;var b=!1,d=!1;this.$=!1;var c=this.V||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>we){if(ye(c,this.T)){this.J=new Uc(this,"1.30.0","failsafe");ye(this.J)&&(Ee(this,c),a=2,Fe(this.J));N(this.J,"timestamp",wa());Ge(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Ce(c)){var e=De(c,"code"),h=De(c,"data");e&&("ok"==e?ye(c,h):("error"==
e&&"no machine state"!=h?(this.na("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(e+": "+h),Fe(c),ye(c)?(d=Ce(c),f=!0):d=!1))}f&&Be(this,d?c:null)}else 2==a&&c.clear()}else Be(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=He(this,h,c,b,d));b=[c,a,d];-1!=a?Ae(this,this.sc,b):this.sc(b)}};
function He(a,b,d,c,f){if(!b.A.ea){b.A.ea=!0;if(b.Na){var e=null;f&&((e=De(d,b.id))||(e=De(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.Z&&!a.aa?(d.clear(),a.i=we,window&&window.location.reload()):a.$=!0,b.Na(null),f=!1)}if(!c&&b.lc)for(a=b.lc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
m.sc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ga=!0;this.A.ea=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(He(this,this.f,b,d,a),this.f.Db());this.$&&(Ee(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0};
function Ee(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
function te(a,b,d){var c,f="none";if(a.F)return null;a.F--;var e=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=wa();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.la(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.A.ea=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ea&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)),
d&&(l.A.ea=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.B&&Ie(a,a.B,e.toString()),Ge(h)&&Ge(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.A.ea=!1,b=a.O.power)&&(b.textContent="Power");a.F=0;return f}
m.reset=function(){this.G&&this.G.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.G.type,void 0),this.G.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.G&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
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]}};m=sd.prototype;
m.Xa=function(a,b,d,c){this.F=b;this.f=d;this.i=a;(a=vc(a,"messages"))&&vd(this,a);this.rc=zd;Ad(this,function(a){a:{var b=c.F.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(Bd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.F.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.F.X,8)+" %%"+r(n.C,8)+" "+r(n.Ub,4,
!0)+" "+r(n.size,4,!0)+" "+l),d!=hc&&(d=-1),l=0);a+=c.F.Aa;g++}}});C(this)};
m.ua=function(a,b,d){var c=this;switch(b){case "debugInput":return this.va=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",wd(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.G.length-1&&(b=c.G[++c.I])):40==a.keyCode&&(0<c.I?b=c.G[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Fa(d,function(){if(c.va){var a=c.va.value;
c.va.value="";wd(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Fa(d,function(a){var b=!1;gb(c,!0)||(fb(c,!0),b=c.wb(a?1:0),fb(c,!1));return b}),!0}return!1};m.Tb=function(){this.va&&this.va.focus()};function Z(a){a=a&&a.C;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.F,d=d.R[(c&d.i)>>>d.X].Ob(c&d.F,c),b&&Cd(a,b));return d};m.Ha=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.F,c),b&&Cd(a,b));return d};
m.bc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.F;f.R[(c&f.i)>>>f.X].yb(c&f.F,b&255,c);d&&Cd(a,d);yc(this.f,!0)}};m.jc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.F,e=c&f.F,h=(c&f.i)>>>f.X;e!=f.F?f.R[h].lc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.A].yb(0,b>>8&255,c+1));d&&Cd(a,d);yc(this.f,!0)}};function Y(a){return{C:a,Ga:!1}}function Dd(a){return[a.C,a.Ga]}function Ed(a){return{C:a[0],Ga:a[1]}}
function Bd(a,b,d){var c;d=(d?a.V:a.zb).C;if(void 0!==b){c=b=od(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=nd(a,b,void 0)}null!=d&&(c=Y(d));return c}function ce(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Gc=ld(a,b.Bc=d[2]))}function Cd(a,b){null!=a.C&&(a.C+=b||1)}
function vd(a,b){a.H=a;a.ha=a.Hc=536870912;a.za=null;a.Ea=[];var d=ld(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function Ad(a,b){for(var d in F)if(64==F[d]){a.Sa[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).C));if(this.ha&1073741824)this.Ea.push(a);else if(!this.za||a!=this.za)if(this.za=a,this.ha&-2147483648&&(this.ma(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Rc(d);d.$=0;yc(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.xa();if(this.mb){var a=this.mb;this.mb=null;wd(this,a)}};
function ud(a){var b;if(bd(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.ra=0;a.g("instruction history buffer allocated")}if(!a.ja||!a.ja.length)for(a.ja=Array(256),b=0;b<a.ja.length;b++)a.ja[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.ra=0,a.T=[],a.ja=[]}m.lb=function(a){if(!de(this))return!1;this.f.lb(a);return!0};
m.wb=function(a,b,d){if(!de(this))return!1;this.P=0;a||bd(this)&&cd(this,this.f.b[7],0);try{var c=this.f.wb(a);0<c&&(this.P+=c,Pc(this.f,c,!0),zc(this.f,c),this.$++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&yc(this.f);this.xa(b||!1);return 0<this.P};m.ma=function(a){this.f&&this.f.ma(a)};m.xa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.ea?ee(this):fe(this)};
function de(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.w.fa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!gb(a.f)?(a=a.f,a.w.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){ud(this);this.$=this.Ja=0;this.za=null;this.P=0;this.V=Y(this.f.b[7]);this.w.ia=!1;ge(this);a||this.xa()};
m.save=function(){var a=new Vc(this);M(a,0,Dd(this.V));M(a,1,Dd(this.aa));M(a,2,[this.G,this.da,this.ha]);M(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Ed(a[b++]),this.aa=Ed(a[b++]),this.G=a[b][0],"string"==typeof this.G&&(this.G=[this.G]),this.da=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.ea||this.g("running");this.w.ia=!0;this.Kc=a;this.Mc=b};
m.stop=function(a,b){if(this.w.ia){this.w.ia=!1;this.P=b-this.Mc;if(!this.ea){var d="stopped";if(this.P){var c=a-this.Kc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";bd(this)&&(d+=this.$+" opcodes, ",this.Ja-=this.$,this.$=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.xa(!0);this.Tb();ge(this,this.f.b[7])}};function bd(a){return 1<a.A.length||!!a.ya}
function cd(a,b,d){var c=a.f;if(0<d&&(a.ya&&!--a.ya||qc(a,b,1,a.A)))return!0;0<=d&&a.ja.length&&(a.$++,null!=Gb(a.F,b)&&(b=a.T[a.ra],b.C=c.b[7],b.Ga=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function td(a){var b,d;a.A=["bp"];if(void 0!==a.Y)for(b=1;b<a.Y.length;b++){d=a.Y[b];var c=a.F;rc(c.R[Z(d)>>>c.X],!1)}a.Y=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.F,rc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
m.eb=function(a,b,d){var c=!0;d||he(this,a,b,!1,!0);if(a!=this.A){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.C)),c=!1;else{var e=this.F;e.R[f>>>e.X].eb(f&e.F,a==this.J)}}c&&(a.push(b),d?b.Ga=!0:(ie(this,a,a.length-1,"set"),ud(this)));return c};function he(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Ga)){e=!0;g.Ga||f||ie(a,b,h,"cleared");b.splice(h,1);b!=a.A&&(c=a.F,rc(c.R[d>>>c.X],b==a.J));g.Ga||ud(a);break}}return e}
function je(a,b){for(var d=1;d<b.length;d++)ie(a,b,d);return b.length-1}function ie(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.C)+(c?" "+c:d.Bc?' "'+d.Bc+'"':""))}function ge(a,b){if(void 0!==b)qc(a,b,1,a.A,!0),a.ea=0;else for(var d=1;d<a.A.length;d++){var c=a.A[d];if(c.Ga){if(!he(a,a.A,c,!0))break;d=0}}}
function qc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Ga)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Ga&&(he(a,c,g,!0),f=!0);if(n=g.Gc){for(var e=!1,p=0;p<n.length;p++)if(!ke(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.w.ia||(e=!0)}if(e){f||ie(a,c,h,"hit");break}}}a.Eb--;return e}
function le(a,b,d,c){var f=Y(b.C),e=a.Ha(b,2),h,g;for(g in a.rc)if(h=a.rc[g][e&g])break;h||(h=[0]);g="";for(var k=yd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.C+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.C-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch(y&56){case 0:x=me(B);break;case 8:x=
"@"+me(B);break;case 16:7>B?x="("+me(B)+")+":(D=q.Ha(p,2),x="#"+X(q,D));break;case 24:7>B?x="@("+me(B)+")+":(D=q.Ha(p,2),x="@#"+X(q,D));break;case 32:x="-("+me(B)+")";break;case 40:x="@-("+me(B)+")";break;case 48:D=q.Ha(p,2);x=X(q,D)+"("+me(B)+")";7==B&&(x=[x,X(q,D+p.C&65535)]);break;case 56:D=q.Ha(p,2),x="@"+X(q,D)+"("+me(B)+")",7==B&&(x=[x,X(q,D+p.C&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.C)+":";if(-1!==
f.C&&-1!==b.C){do if(e+=" "+X(a,a.Ha(f,2)),null==f.C)break;while(f.C!=b.C)}h+=na(e,24);h+=na(k,5);g&&(h+=" "+g);d&&(h=na(h,60)+";"+d,h=a.f.w.ob?h+("cycles="+Mc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ne(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.B&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}function me(a){return 6>a?"R"+a:6==a?"SP":"PC"}
function oe(a,b){var d="",c=a.f;8>b?(d=me(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Za[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.sa[b-16]):20==b&&(d="PS="+X(a,Vb(c)));d&&(d+=" ");return d}function pe(a){var b,d="";for(b=0;6>b;b++)d+=oe(a,b);d=d+"\n"+(oe(a,6)+oe(a,7)+oe(a,20));return d+=ne(a,"T")+ne(a,"N")+ne(a,"Z")+ne(a,"V")+ne(a,"C")}m.qc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function qe(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.C>>>0,g=e.Qc;if(f>=h&&f<h+g){f=ra(e.nc,[f-h],a.qc);0<=f?re(a,b,f,c):d&&(f=~f,re(a,b,f-1,c),re(a,b,f,c));break}}return c}function re(a,b,d,c){var f={},e=a.N[b].nc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
function se(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return rd(a)||a.g("no variables"),!0;if(!d[2])return rd(a,d[1]);if(!d[3])return delete a.ga[d[1]],!0;var c=nd(a,d[3]);return void 0!==c?(a.ga[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function te(a,b,d){var c=null;if(b=Bd(a,b,!0)){var f=qe(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.C-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.C)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
function ee(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=nd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.B=g?0:1;break;case "VF":c.u=
g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}yc(c);a.g("updated registers:")}a.g(pe(a));d&&(a.V=Y(c.b[7]),fe(a,X(a,a.V.C)))}}function ue(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):nd(a,b,!0)}function ve(a,b,d){var c="t"!=b;d=pd(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return fb(a,!0)&&a.wb(f,c,!1)},function(){yc(a.f);fb(a,!1)})}
function fe(a,b,d,c){if(b=Bd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=Bd(a,d,!0);if(!c||c.C<b.C)return;f=c.C-b.C;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=gb(a,!1)||a.ea?a.P:null;var h=null!=e?"cycles":null,g=qe(a,b),k=b.C;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=le(a,b,h,e);a.g(e);a.V=b;f-=b.C-k;d++}}}
function ke(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.da&&(a.g("ended assemble at "+X(a,a.aa.C)),a.V=a.aa,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(rb(a)&&0<b.length){a.da&&(b="a "+X(a,a.aa.C)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=Bd(a,e[1],!0);
if(n)if(a.aa=n,void 0===e[2])a.g("begin assemble at "+X(a,n.C)),a.da=!0,yc(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.bc(n,p[q],1);a.g(le(a,a.aa))}}break;case "b":a:{var D=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var B=D.charAt(1);if("l"==B){var Ga=0,Ga=Ga+je(a,a.A),Ga=Ga+je(a,a.Y);(Ga+=je(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.ya=pd(a,x),a.g("break after "+a.ya+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=Bd(a,x,!0),!V))break a;"c"==B?null==V.C?(td(a),a.g("all breakpoints cleared")):he(a,a.A,V)||he(a,a.Y,V)||he(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.C)):null!=V.C&&(ce(a,V,y),"p"==B?a.eb(a.A,V):"r"==B?a.eb(a.Y,V):"w"==B?a.eb(a.J,V):
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.fb&&(a.fb.value="");break;case "d":a:{var Ha,Ia=e[0],ea=e[1],ua=e[2],Pe=e[3];if("?"==ea){var fa="";for(Ha in F)a.Sa[Ha]&&(fa&&(fa+=","),fa+=Ha);fa+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");fa.length&&a.g("dump extension commands:\n\t"+
fa)}else if("state"==ea){var Fd=we(a.i,!0);"console"==ua?console.log(Fd):(a.fb&&(a.fb.value=""),a.g(Fd))}else if("symbols"==ea)for(var Ac=0;Ac<a.N.length;Ac++){var Bc=a.N[Ac],Ja;for(Ja in Bc.Ka)if("."!=Ja.charAt(0)){var Gd=Bc.Ka[Ja].o;if(void 0!==Gd){var Hd=Bc.Ka[Ja].l;Hd&&(Ja=Hd);a.g(X(a,Gd)+" "+Ja)}}}else{if("d"==Ia){for(Ha in F)if(e[1]==Ha){var Id=a.Sa[Ha];Id?(e.shift(),e.shift(),Id(e)):a.g("no dump registered for "+ea);break a}ea||(Ia=a.Oc||"db")}else a.Oc=Ia;if("dh"==Ia){var Jd=ea,Kd=ua,Ld="",
Md=0,O=a.ra,ga=a.T;if(ga.length){var W=+Jd||a.Vb,Ka=+Kd||10;isNaN(W)?W=Ka:Ld="more ";W>ga.length&&(a.g("note: only "+ga.length+" available"),W=ga.length);O-=W;0>O&&(null==ga[ga.length-1].C?(W=O+W,O=0):O+=ga.length);var Cc=[];"call"==Kd&&(Ka=1E5,Cc=["CALL"]);for(void 0!==Jd&&a.g(W+" instructions earlier:");0<Ka&&O!=a.ra;){var Nd=ga[O++];if(null==Nd.C)break;var hb=Y(Nd.C),Qe=W--,Od=le(a,hb,"history",Qe);(!Cc.length||0<=Od.indexOf(Cc[0]))&&a.g(Od);hb.ec&&(O+=hb.ec,Ka-=hb.ec,W-=hb.ec);O>=ga.length&&(O=
0);a.Vb=W;Md++;Ka--}}Md||(a.g("no "+Ld+"history available"),a.Vb=void 0)}else{var Kb=Bd(a,ea);if(Kb){var Lb=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Pe),Lb=pd(a,ua)>>>0,65536<Lb&&(Lb=65536));for(var va="",Mb="dd"==Ia?4:"dw"==Ia?2:1,Nb=Mb*Lb||128,Re=Nb+15>>4||1;Re--&&0<Nb;){var Ob=0,Dc=0,ib,jb="",Ec="",ea=X(a,Kb.C);for(ib=16;0<ib&&0<Nb;ib--){var Pb=a.Hb(Kb,1),Ob=Ob|Pb<<(Dc++<<3);Dc==Mb&&(jb+=r(Ob,2*Mb),jb+=1==Mb?9==ib?"-":" ":" ",Ob=Dc=0);Ec+=32<=Pb&&128>Pb?String.fromCharCode(Pb):".";Nb--}va&&
(va+="\n");va+=ea+" "+jb+(0==ib?" "+Ec:"")}va&&a.g(va);a.zb=Kb}}}}break;case "e":if("else"==e[0])break;var Qb=1,Pd=255,Qd=a.Hb,Rd=a.bc;"ew"==e[0]&&(Qb=2,Pd=65535,Qd=a.Ha,Rd=a.jc);var Sd=Qb<<1,Td=e[1];if(null==Td)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Rb=Bd(a,Td);if(Rb)for(var Sb=2;Sb<e.length;Sb++){var kb=nd(a,e[Sb]);if(void 0===kb){a.g("unrecognized value: "+e[Sb]);break}kb&~Pd&&a.g("warning: "+r(kb)+" exceeds "+
Qb+"-byte value");var Se=Qd.call(a,Rb);a.g("changing "+X(a,Rb.C)+" from "+r(Se,Sd,!0)+" to "+r(kb,Sd,!0));Rd.call(a,Rb,kb,Qb)}}break;case "g":a:{var Ud=e[1],Te=b;if(void 0!==Ud){var Fc=Bd(a,Ud,!0);if(!Fc)break a;ce(a,Fc,Te);a.eb(a.A,Fc,!0)}a.lb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Gc;if(a.w.ia)Gc="halting",a.ma();else{if(gb(a,!0))break a;Gc="already halted"}d||a.g(Gc)}break;case "i":if("if"==e[0]){var Hc;var lb=b.substr(2),lb=qa(lb);nd(a,lb)?(d||a.g("true: "+
lb),Hc=!0):(d||a.g("false: "+lb),Hc=!1);Hc||(c=!1)}break;case "k":var Ue=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ic=0,Vd=Y(),mb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,mb.C));10>Ic;){for(var wa=null,Ve=256;65536>mb.C>>>0;){Vd.C=a.Ha(mb,2);if(null==mb.C||!Ve--)break;for(var We=a,Tb=Vd,Wd=null,nb=Tb.C,Xd=nb,Jc=1;6>=Jc&&nb;Jc++){if(2<Jc){Tb.C=nb;var Ub=le(We,Tb);if(0<=Ub.indexOf("JSR")){var Yd=Ub.indexOf(" ");if(nb+
(Ub.indexOf(" ",Yd+1)-Yd-1)/2==Xd){Wd=Ub;break}}}nb--}Tb.C=Xd;if(wa=Wd)break}if(!wa||null==wa)break;var Zd=null;if("ks"==Ue){var $d=wa.match(/[0-9A-F]+$/);$d&&(Zd=te(a,$d[0]))}wa=na(wa,50)+" ;"+(Zd||"stack="+X(a,mb.C));a.g(wa);Ic++}Ic||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){te(a,e[1],!0);break}break;case "m":a:{var ha,ia=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var oa=0;if("all"==E)oa=1878917119,E=null;else if("on"==E)ia=!0,E=null;else if("off"==E)ia=!1,E=null;else{"keys"==
E&&(E="key");"kbd"==E&&(E="keyboard");for(ha in F)if(E==ha){oa=F[ha];ia=!!(a.ha&oa);break}if(!oa){a.g("unknown message category: "+E);break a}}if(oa)if("on"==e[2])a.ha|=oa,ia=!0;else if("off"==e[2]&&(a.ha&=~oa,ia=!1,1073741824==oa)){for(var Kc=0;Kc<a.Ea.length;Kc++)a.g(a.Ea[Kc]);a.Ea=[]}}var Xe=0,pa="";for(ha in F)if(!E||E==ha){var Ye=!!(a.ha&F[ha]);if(null===ia||ia==Ye)pa&&(pa+=","),++Xe%10||(pa+="\n\t"),"key"==ha&&(ha="keys"),pa+=ha}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==ia?ia?"messages on: ":"messages off: ":"message categories:\n\t")+(pa||"none"));ud(a)}break;case "p":if("print"==e[0]){ue(a,b.substr(5));break}var Ze="pr"==e[0]?1:0;if(a.ea)a.g("step in progress");else{var ae=Y(a.f.b[7]);a.Hb(ae);a.ea?(a.eb(a.A,ae,!0),a.lb()||(a.i&&a.i.Tb(),a.ea=0)):ve(a,Ze?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}ee(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var ob=+e[2];if(8==ob||10==ob||16==ob)a.wa=ob;else{a.g("invalid base: "+ob);
break}}a.g("default base: "+a.wa);break;case "cs":var pb;void 0!==e[3]&&(pb=+e[3]);switch(e[2]){case "int":a.f.qb=pb;break;case "start":a.f.Mb=pb;break;case "stop":a.f.rb=pb;break;default:a.g("unknown cs option");break a}void 0!==pb&&xc(a.f);a.g("checksums "+(a.f.w.ob?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Oc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.hb.toFixed(2)+"Mhz")+" ("+a.f.jb+"x)");break;case "?":a.g("debugger options:");
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":ve(a,e[0],e[1]);break;case "u":fe(a,e[1],e[2],8);break;case "v":if("var"==e[0]){se(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.vc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){ue(a,b.substr(1));break}var qb="commands:",Lc;for(Lc in xd)qb+="\n"+na(Lc,9)+xd[Lc];bd(a)||(qb+="\nnote: history disabled if no exec breakpoints");a.g(qb);break;default:a.g("unknown command: "+b),c=!1}}}catch(be){a.g("debugger error: "+(be.stack||be.message)),c=!1}return c}function wd(a,b,d){b=ld(a,b,d);for(var c in b)if(!ke(a,b[c]))return!1;return!0}
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new sd(c);db(c,d)}});
function xe(a,b,d){u.call(this,"Computer",a,xe,67108864);this.w.fa=!1;ye(this,b);this.Y=vc(this,"autoPower",a);this.G=0;this.ga=a.busWidth||a.buswidth;this.i=ze;this.T=null;this.N=this.da=!1;this.url=vc(this,"url")||"";(Math.random()+.1).toString(36);this.A=Ae(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.F=new wb({id:this.oc+".bus",busWidth:this.ga},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.fb)for(b=0;b<f.length;b++)c=f[b],c.oa=this.I.oa,c.g=
this.I.g,c.fb=this.I.fb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Xa&&c.Xa(this,this.F,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=vc(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.N=!0,this.i=ze),this.i&&
(this.V=new Vc(this,"1.30.0"),Be(this.V)?b=null:delete this.V);!b&&this.i&&(b=Ce(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.oa("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.da=!0);C(h)})}else C(this);this.O.power||(this.Y=!0);!d&&this.Y&&De(this,this.Nb)}else t("Unable to find CPU component")}w(xe);var ze=0;
function ye(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.ea=b}function vc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.ea&&(c=a.ea[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function De(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){De(a,b,d)});return}}b.call(a,d)}
function Ee(a,b){var d=new Vc(a,"1.30.0","validate");if(Be(d)&&Fe(d)){var c=Ge(d,"timestamp"),f=b?Ge(b,"timestamp"):"unknown";c!=f&&(a.oa("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=xe.prototype;
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:ze));if(!this.G){this.G++;var b=!1,d=!1;this.aa=!1;var c=this.V||new Vc(this,"1.30.0");if(-1==a)b=!0;else if(a>ze){if(Be(c,this.T)){this.J=new Vc(this,"1.30.0","failsafe");Be(this.J)&&(He(this,c),a=2,Ie(this.J));M(this.J,"timestamp",ta());Je(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Fe(c)){var e=Ge(c,"code"),h=Ge(c,"data");e&&("ok"==e?Be(c,h):("error"==
e&&"no machine state"!=h?(this.oa("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.A=null)):this.g(e+": "+h),Ie(c),Be(c)?(d=Fe(c),f=!0):d=!1))}f&&Ee(this,d?c:null)}else 2==a&&c.clear()}else Ee(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=Ke(this,h,c,b,d));b=[c,a,d];-1!=a?De(this,this.tc,b):this.tc(b)}};
function Ke(a,b,d,c,f){if(!b.w.fa){b.w.fa=!0;if(b.Na){var e=null;f&&((e=Ge(d,b.id))||(e=Ge(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.$&&!a.da?(d.clear(),a.i=ze,window&&window.location.reload()):a.aa=!0,b.Na(null),f=!1)}if(!c&&b.mc)for(a=b.mc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
m.tc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ja=!0;this.w.fa=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(Ke(this,this.f,b,d,a),this.f.Db());this.aa&&(He(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.G=0};
function He(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.A||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
function we(a,b,d){var c,f="none";if(a.G)return null;a.G--;var e=new Vc(a,"1.30.0"),h=new Vc(a,"1.30.0","validate"),g=ta();M(h,"timestamp",g);M(e,"timestamp",g);M(e,"version","1.30.0");M(e,"url",window?window.location.href:null);M(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.ma(),c=a.f.Ma(b,d),"object"===typeof c&&M(e,a.f.id,c),d&&(a.f.w.fa=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.w.fa&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&M(e,l.id,c)),
d&&(l.w.fa=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.A&&Le(a,a.A,e.toString()),Je(h)&&Je(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.w.fa=!1,b=a.O.power)&&(b.textContent="Power");a.G=0;return f}
m.reset=function(){this.F&&this.F.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.F.type,void 0),this.F.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.F&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
m.ta=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.F||(c.A.ea?te(c,!1,!0):Ae(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.ea&&!c.F)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");te(c,a,!0);!a&&c.Z?window&&window.location.reload():c.Nb(we)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
d;d.onclick=function(){var a=xe(c,!0);if(a){var b=!!(c.i&&!c.P||c.Z),d=te(c,b);b?Ie(c,a,d):c.na("Resume disabled, machine state not saved")}};return!0}return!1};
function xe(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=Je(a,d))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return d}
function Je(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(f){t(f.message+" ("+c+")")}return a.B}function ze(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Ke(a,"1.30.0"));return b}
function Ie(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ke(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.na("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.na(d),Ca("user",""),a.B=null)}}m.Sb=function(){};
m.wa=function(a){this.f&&this.f.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new ue(h,c,!0);db(h,e);h.W&&Ae(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ga&&!d.A.ea&&d.Nb(-1)}});
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.A.ea&&te(d,!(!d.i||d.P),!0)}});function Uc(a,b,d){this.id=a.id;this.key=Ke(a,b,d);this.H=a.H;Fe(this,a.Mc)}function Ke(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
Uc.prototype={constructor:Uc,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){Fe(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
function Fe(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Ge(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Ce(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function ye(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function De(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var Le=0;
function Xe(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Ye(g,a,b,d,c,f,e)})}
function Ye(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ze(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ze(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);Ze(a,b,d)}})}else d(a,null)}
function $e(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Le||Sa(!0));k=!1}var h,g,k=!0;Le++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Xe(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Le||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Le||Sa(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?Xe(b,a,c,!0,f,l):Ye(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return $e(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();
m.ua=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.G||(c.w.fa?we(c,!1,!0):De(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.w.fa&&!c.G)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");we(c,a,!0);!a&&c.$?window&&window.location.reload():c.Nb(ze)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
d;d.onclick=function(){var a=Ae(c,!0);if(a){var b=!!(c.i&&!c.P||c.$),d=we(c,b);b?Le(c,a,d):c.oa("Resume disabled, machine state not saved")}};return!0}return!1};
function Ae(a,b){var d=a.A;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=Me(a,d))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return d}
function Me(a,b){a.A=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.A=d.data)}catch(f){t(f.message+" ("+c+")")}return a.A}function Ce(a){var b=null;a.A&&(b=ka()+"/api/v1/user?req=load&user="+a.A+"&state="+Ne(a,"1.30.0"));return b}
function Le(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ne(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.oa("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.oa(d),Ca("user",""),a.A=null)}}m.Tb=function(){};
m.xa=function(a){this.f&&this.f.xa(a);this.I&&this.I.xa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new xe(h,c,!0);db(h,e);h.Y&&De(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ja&&!d.w.fa&&d.Nb(-1)}});
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.w.fa&&we(d,!(!d.i||d.P),!0)}});function Vc(a,b,d){this.id=a.id;this.key=Ne(a,b,d);this.H=a.H;Ie(this,a.Nc)}function Ne(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
Vc.prototype={constructor:Vc,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){Ie(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
function Ie(a,b){a[a.id]={};b&&M(a,"parms",b);a.f=!1}function Je(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Fe(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function Be(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function Ge(a,b){return a[a.id][b]||null}function M(a,b,d){try{a[a.id][b]=d}catch(c){}}var Oe=0;
function $e(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):af(g,a,b,d,c,f,e)})}
function af(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?bf(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function bf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);bf(a,b,d)}})}else d(a,null)}
function cf(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Oe||Sa(!0));k=!1}var h,g,k=!0;Oe++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?$e(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Oe||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Oe||Sa(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?$e(b,a,c,!0,f,l):af(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return cf(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();

View file

@ -8,146 +8,145 @@ typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encod
function q(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 ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(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}var t={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Gb=b.comment;this.bc=b;b=this.id.indexOf(".");0>b?this.tb=this.id:(this.Eb=this.id.substr(0,b),this.tb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,xb:!1,L:!1,error:!1};this.lb=null;this.h.error=!1;this.A={};this.H=null;x.push(this)}var wa=void 0,xa={};
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Hb=b.comment;this.cc=b;b=this.id.indexOf(".");0>b?this.ub=this.id:(this.Fb=this.id.substr(0,b),this.ub=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,yb:!1,L:!1,error:!1};this.mb=null;this.h.error=!1;this.w={};this.I=null;x.push(this)}var wa=void 0,xa={};
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(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 y(a,b){b||(b=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},x=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ea(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<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function B(a,b){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=A(h))&&g.binding&&a.aa(g.type,g.binding,h,g.value),l=k.length}}}}
function B(a,b){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=A(h))&&g.binding&&a.ba(g.type,g.binding,h,g.value),l=k.length}}}}
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.yb=this.A[b]=c,c.value="",this.X=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.K=function(a){this.X(a,this.tb)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.tb+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.xb)return a.h.Za&&(a.h.Za=!1),a.h.xb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.lb;a.lb=null;b&&b()}}
function Ga(a,b){b&&(a.h.ready?b():a.lb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.aa=function(a,b,c,d){return this.s&&this.s.aa(a,b,c,d)||this.c&&this.c.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.c=c;this.H=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=function(){};
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.zb=this.w[b]=c,c.value="",this.X=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.K=function(a){this.X(a,this.ub)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.ub+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.yb)return a.h.Za&&(a.h.Za=!1),a.h.yb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.mb;a.mb=null;b&&b()}}
function Ga(a,b){b&&(a.h.ready?b():a.mb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.ba=function(a,b,c,d){return this.s&&this.s.ba(a,b,c,d)||this.c&&this.c.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.u=b;this.c=c;this.I=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=function(){};
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===e){e=x[h];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}u(Ja);
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.H=c;this.D=a.busWidth||16;this.s=Math.pow(2,this.D);this.v=this.s-1|0;this.f=(this.D>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.J=this.g>>2;this.i=this.g-1;this.j=this.s/this.g|0;this.M=this.j-1;this.oa=[];this.u=null;this.$a=this.P;a=new F;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=La;this.Wa[1]=Ma;this.Wa[2]=Na;this.Wa[3]=Oa;this.I=this.s-8192;Pa(this,this.I,
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.I=c;this.F=a.busWidth||16;this.s=Math.pow(2,this.F);this.u=this.s-1|0;this.f=(this.F>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.M=this.g>>2;this.i=this.g-1;this.j=this.s/this.g|0;this.N=this.j-1;this.oa=[];this.A=null;this.$a=this.R;a=new F;Ka(a,this.I);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=La;this.Wa[1]=Ma;this.Wa[2]=Na;this.Wa[3]=Oa;this.J=this.s-8192;Pa(this,this.J,
8192,Qa,this);D(this)}y(E);function La(a,b){var c=this.controller.oa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.oa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.$a(b,-1,1)}
function Ma(a,b,c){var d=this.controller.oa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.oa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.$a(c,b,1)}function Na(a,b){var c=this.controller.oa[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return this.controller.$a(b,-1,0)}
function Oa(a,b,c){if(a=this.controller.oa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}this.controller.$a(c,b,0)}E.prototype.reset=function(){this.u&&this.u()};E.prototype.P=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Pa)return k.rb+=k.Pa-e,k.Pa=e,!0;if(e>=k.Pa+k.rb){r=k.size-(e-l);r>h&&(r=h);k.rb=e-k.Pa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.H,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Oa(a,b,c){if(a=this.controller.oa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}this.controller.$a(c,b,0)}E.prototype.reset=function(){this.A&&this.A()};E.prototype.R=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Qa)return k.sb+=k.Qa-e,k.Qa=e,!0;if(e>=k.Qa+k.sb){r=k.size-(e-l);r>h&&(r=h);k.sb=e-k.Qa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.I,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function G(a){v.call(this,"Device",a,G);this.u=a.name;this.s={Bb:[],fa:0,T:128,b:127,Zb:0};this.b={data:0,wc:0,Qa:20,sc:0};this.f={Ab:0,l:0};this.g={gb:2496,O:0,w:128,hb:0,fb:0,U:0,Pb:0,R:[],Ea:[406,406,406,406],C:[12,12,12,12]};this.i={l:129,Ya:0,G:0,sa:0,pa:0,wa:0,R:[],C:[40,40,40,40],Ea:[1024,1024,512,512],Xb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],C:[22,22,22,50],Da:[19,19,19,32],sb:[815,411,815,630],R:[],B:2176,Ta:0,Ra:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,
4544],Sa:[0,0,0,0,0,0,0,0],Ja:0,qc:[0,0,0,0,0,0,0,0],Qb:0,Rb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],rc:[1,2,3,4,5,6,7,8],Sb:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],qb:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],mc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],va:0,Cb:0}}y(G);
function G(a){v.call(this,"Device",a,G);this.A=a.name;this.s={Cb:[],ga:0,U:128,b:127,$b:0};this.b={data:0,xc:0,Ra:20,tc:0};this.f={Bb:0,l:0};this.g={gb:2496,P:0,v:128,hb:0,fb:0,V:0,Qb:0,S:[],Ea:[406,406,406,406],D:[12,12,12,12]};this.i={l:129,Ya:0,H:0,sa:0,pa:0,wa:0,S:[],D:[40,40,40,40],Ea:[1024,1024,512,512],Yb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],D:[22,22,22,50],Da:[19,19,19,32],tb:[815,411,815,630],S:[],B:2176,Ua:0,Sa:0,aa:[0,0,0,0,0,0,0,0],$:0,T:[4544,4544,4544,4544,4544,4544,4544,
4544],Ta:[0,0,0,0,0,0,0,0],Ja:0,rc:[0,0,0,0,0,0,0,0],Rb:0,Sb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],sc:[1,2,3,4,5,6,7,8],Tb:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],rb:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],qc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],va:0,Db:0}}y(G);
var Ta=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=G.prototype;
m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;switch(this.u){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.I+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Wb.bind(this);b.u=this.reset.bind(this);b.$a=f}D(this)};m.hc=function(){return Va(this.c)};m.uc=function(a){Wa(this.c,a&-1809|Va(this.c)&1808)};
function Xa(a){var b=a.g,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.jc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.C[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.gb=2496;b.O=0;b.w=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;Ya(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;
b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;a.pb(b.R[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.U%9&15;H(a.c,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}m.jc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.w=e.w&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.O|=33024;e.w|=49152;break;case 2:e.O|=33792,e.w|=49152}H(this.c,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
function Za(a){var b=a.i,c,d,f,e=b.l>>8&3;b.l&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.kc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.C[e],url:"rl"+e+".dsk"});switch(b.l>>1&7){case 2:b.sa&8&&(b.l&=63);b.sa=b.Xb[e]|b.wa&64;break;case 3:1==(b.G&3)&&(b.wa=b.G&4?b.wa+(b.G&65408)&65408|b.G<<2&64:b.wa-(b.G&65408)&65408|b.G<<2&64,b.G=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Ya(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.pb(b.R[e],c,d,f);return}H(a.c,20,160,112,function(){b.l|=129;return!!(b.l&64)})}
m.kc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.l=e.l&-49|d>>12&48;e.pa=d>>16&63;e.G=~~(c/e.C[b.ia])<<6|c%e.C[b.ia];e.wa=e.G;e.sa=65536-f&65535;switch(a){case 1:e.l|=33792;break;case 2:e.l|=40960}H(this.c,20,160,112,function(){e.l|=129;return!!(e.l&64)})};function $a(a){a=a.j;a.B=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ja=a.Ta=a.Ra=a.va=a.Cb=0}
function ab(a,b){var c=a.j,d,f,e;c.B&=-16513;c.Z&=-2049;c.S[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.lc,drive:b,blocksize:256,mapped:0,maxblock:c.sb[0]*c.Da[0]*c.C[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.qb[b]=c.ka[b];c.B|=32896;c.S[b]|=32896;c.Ja|=1<<b;break;case 9:$a(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ka[b]>=c.sb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&
255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;Ya(a,c.R[b],d,f,e);return;case 57:if(c.ka[b]>=c.sb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;a.pb(c.R[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.S[b]|=128;return!!(c.B&64)})}
m.lc=function(a,b,c,d,f){var e=this.j;e.Ta=65536-f&65535;e.Ra=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.C[0]);d=~~(f/e.Da[0]);e.$[b.ia]=f%e.Da[0]<<8|c%e.C[0];e.qb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.fc-1&&(e.S[b.ia]|=1024);switch(a){case 1:e.Z|=512;e.B|=49152;break;case 2:e.Z|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.S[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.dc=function(){this.f.l|=128;this.f.l&64&&H(this.c,0,192,64)};
function bb(a,b){var c=b>>13&31;31>c?a.c.ha&32&&(b=a.c.Ua[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&cb(898)):b|=4186112;return b}
function db(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.fc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.ob(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){db(this,this.pb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.ec?bb(this,c):c,a.cache[b][f])){a.ob(2,a,b,c,d);return}c+=2;--d}b++}a.ob(0,a,b,c,d)};
function Ya(a,b,c,d,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){h=M(a.c,b.ec?bb(a,d):d);if(0>h){b.ob(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.ob(0,b,c,d,f)}m.reset=function(){this.b.Qa=this.b.Qa&-120|20;this.s.fa=0;this.s.T=128;this.f.l=0;this.g.w=128;this.i.l=128;$a(this)};
m.Wb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.nb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nb=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Fa)return J(e,4);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4);d=0;break;case 4194288:if(70!==e.Fa)return J(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Fa)return J(e,4);f=a-4194272>>1;0>b?d=e.zb[f]:(d=I(this,e.zb[f],a,b,c),0<=d&&(e.zb[f]=d));break;case 4194254:return a&1?e.o>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.o&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=e.Ia[f]),d;case 4194246:return a&
1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.o&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.m|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.N[3][f],a,b,c);0<=d&&(e.N[3][f]=d,e.N[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=e.da;d&65280&&(d=(d<<8|d>>8)&65535);
break;case 4194170:e.F=e.F&62337|e.bb<<5|e.mb<<1;0>b?d=e.F:(d=I(this,e.F,a,b,c),0<=d&&(e.F=d&=62337,e.bb=d>>5&3,e.mb=d>>1&15,d&257?(f=2,e.ha&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Qa=this.b.Qa&-8|f));break;case 4194168:0>b?d=this.b.sc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.Zb=0),h.T&=-129,H(e,100,128,52,function(){h.T|=128;return!!(h.T&64)}));d=0;break;case 4194164:0>b?d=h.T:(d=I(this,h.T,a,b,c),0<=d&&(128==(h.T&192)&&d&64&&H(e,8,128,52,
function(){h.T|=128;return!!(h.T&64)}),h.T=h.T&128|d&-129));break;case 4194162:d=0;0>b&&(h.fa&=-129,0<h.Bb.length&&(d=h.Bb.shift(),0<h.Bb.length&&setTimeout(function(){h.fa|=128;h.fa&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.fa:(d=I(this,h.fa,a,b,c),0<=d&&(h.fa=h.fa&128|d&-129));break;case 4194150:0>b?(d=f.l,f.l&=-129):(d=I(this,f.l,a,b,c),0<=d&&(d&64&&!f.Ab&&(setInterval(this.dc.bind(this),25),f.Ab=1),f.l=d&-129));break;default:return e.m|=16,J(e,4)}break;case 4194048:f=this.g;switch(a&
-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.O,a,b,c);0<=d&&(f.O=d);break;case 4194052:d=I(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&Xa(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=I(this,f.Pb,a,b,c);0<=d&&(f.Pb=d);break;default:return e.m|=16,J(e,4)}break;case 4193728:var g=this.j;
f=g.Z&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?ab(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ta,a,b,c);0<=d&&(g.Ta=d);break;case 4193732:d=I(this,g.Ra,a,b,c);0<=d&&(g.Ra=d&65534);break;case 4193734:d=I(this,g.$[f],a,b,c);0<=d&&(g.$[f]=d&7967);break;case 4193736:d=I(this,g.Z,a,b,c);0<=d&&(g.Z=d&63|g.Z&65472,d&128&&$a(this));break;case 4193738:d=g.S[f];break;case 4193740:d=g.Sa[f];break;case 4193742:d=
I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.qc[f];break;case 4193746:d=I(this,g.Qb,a,b,c);0<=d&&(g.Qb=d);break;case 4193748:d=I(this,g.Rb[f],a,b,c);0<=d&&(g.Rb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.rc[f];break;case 4193754:d=I(this,g.Sb[f],a,b,c);0<=d&&(g.Sb[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.qb[f]=g.ka[f];d=g.qb[f];break;case 4193760:d=g.oc[f];break;case 4193762:d=g.pc[f];break;case 4193764:d=g.mc[f];
break;case 4193766:d=g.nc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Cb,a,b,c);0<=d&&(g.Cb=d);break;default:return e.m|=16,J(e,4)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.l,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.l=f.l&-1023|d&1022,f.l&128||Za(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=I(this,f.sa,a,b,c);
0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.l=f.l&-49|(f.pa&3)<<4);break;default:return e.m|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.ha:(d=I(this,e.ha,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.ha=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.ha&16&&(f=1),this.b.Qa=this.b.Qa&-8|f)));break;default:return e.m|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.N[0][f],a,b,c);0<=d&&(e.N[0][f]=d,e.N[0][f&15]&=65295);break;case 4191360:f=
a>>1&31;d=I(this,e.N[1][f],a,b,c);0<=d&&(e.N[1][f]=d,e.N[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4);f=a>>2&31;d=e.Ua[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Ua[f]=a&2?d<<16|e.Ua[f]&65535:e.Ua[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Ta[a>>1&255];else return e.m|=16,J(e,4);break;default:return e.m|=16,J(e,4)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===
typeof d&&cb(76);return d};var Ua={};Ua[4194302]=[null,null,G.prototype.hc,G.prototype.uc];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var eb;if(Ha){var fb=new ArrayBuffer(2);(new DataView(fb)).setUint16(0,256,!0);eb=256===(new Uint16Array(fb))[0]}else eb=!1;var gb=eb;
function F(a,b,c,d,f){this.id=hb+=2;this.c=null;this.Pa=a;this.rb=b;this.size=c||0;this.type=d||ib;this.i=d==jb;this.controller=null;Ka(this);this.ra=this.ac=!1;if(c)if(f)this.controller=f,this.c=null,kb(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),kb(this,gb?lb:mb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;kb(this,nb)}else kb(this)}
var ib=0,jb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],hb=0;
F.prototype={constructor:F,parent:null,Ab:function(a){this.Pa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},D:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,
b)<<8},I:function(a,b,c){this.ib(a++,b&255,c++);this.ib(a,b>>8,c)},W:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},xa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Oa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.P(a,
b)},ca:function(a,b){return this.ma(a,b)},za:function(a,b,c){this.i||this.Vb(a,b,c)},La:function(a,b,c){this.i||this.Ma(a,b,c)},J:function(a){return this.b[a]},V:function(a){return this.b[a]},ba:function(a){return this.g.getUint16(a,!0)},na:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},ya:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ca:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Na:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
1]=b;this.ra=!0}};function Ka(a,b,c){a.H=b;a.A=a.v=0;c&&((a.A=c.A)&&ob(a,pb,!1),(a.v=c.v)&&qb(a,pb,!1))}function qb(a,b,c){c&&a.v||(a.ib=!a.i&&b[1]||a.D,a.vc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Vb=b[1]||a.D,a.Ma=b[3]||a.I}function ob(a,b,c){c&&a.A||(a.eb=b[0]||a.s,a.ic=b[2]||a.u);if(c||void 0===c)a.P=b[0]||a.s,a.ma=b[2]||a.u}function kb(a,b){b||(b=rb);ob(a,b,void 0);qb(a,b,void 0)}
var rb=[],nb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa],pb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La];if(Ha)var mb=[F.prototype.J,F.prototype.ya,F.prototype.ba,F.prototype.Ca],lb=[F.prototype.V,F.prototype.Aa,F.prototype.na,F.prototype.Na];
function sb(a,b){v.call(this,"CPU",a,sb);var c=a.multiplier||1;this.vb=a.cycles||b;this.ma=c;this.ub=Math.round(this.vb/1E4)/100;this.ba=this.ub*this.ma;this.h.ga=!1;this.h.Tb=!1;this.h.Xa=a.autoStart;this.h.Mb=!1;this.h.kb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Lb=this.Db.bind(this);D(this)}y(sb);var tb=["power","reset"];m=sb.prototype;
m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.H=d;for(b=0;b<tb.length;b++)(c=this.A[tb[b]])&&this.s.aa(null,tb[b],c);this.xa=null;a=ub(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){vb(this);if(!this.restore(a))return!1;wb(this)}else this.reset();this.X("No debugger detected")}xb(this);return!0};m.ta=function(a){return a?this.save():!0};
m.Xa=function(){return this.h.Xa||void 0===this.A.run?(this.Db(),!0):!1};m.Ob=function(){return 0};function wb(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.kb=0<=a.Oa&&0<a.ya;a.h.kb&&(a.Na=0,a.ca=a.Oa-a.W)}
function N(a,b,c,d){if(a.A[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;if(!a.h.ga||a.h.Mb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.A[b].textContent!=d&&(a.A[b].textContent=d)}}
m.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.lb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?O(d):d.Db())};a=!0;
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){yb(d,d.ma<<1)},c.textContent=this.ba.toFixed(2)+"Mhz",a=!0}return a};function zb(a,b,c){a.W+=b;c&&(a.V=a.J=0)}function Ab(a,b){var c=1;b&&1<a.ma&&a.M&&(c=a.M/a.ub);a.Ib=Math.round(1E3/30);a.jb=Math.floor(a.vb/30*c);b||(a.Aa=a.jb);a.wb=0}function Bb(a){return a.W+a.I+a.V-a.J}function vb(a){a.M=0;a.Jb=0;a.W=a.I=a.V=a.J=0;wb(a);yb(a,1)}
function yb(a,b){if(void 0!==b){.8>a.M/a.ba&&(b=1);a.ma=b;var c=a.ub*a.ma;if(a.ba!=c){a.ba=c;var c=a.ba.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}zb(a,a.I);a.I=0;a.D=ha();a.P=0;Ab(a)}function Cb(a){a.V-=a.J;a.J=0}
m.Db=function(){if(Fa(this,!0)){if(!this.h.ga){yb(this);this.s&&this.s.start(this.D,Bb(this));this.h.ga=!0;this.h.Tb=!0;this.xa&&this.xa.start();var a=this.A.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.wb>=this.vb&&Ab(this,!0);this.Ba=0;this.Ma=ha();this.P&&(a=this.Ma-this.P,a>this.Ib&&(this.D+=a,this.D>this.Ma&&(this.D=this.Ma)));try{do{for(var b=this.h.kb?1:this.jb,c=this.La.length-1;0<=c;c--){var d=this.La[c];0>d[0]||b>d[0]&&(b=d[0])}this.Ub(b);for(var f=this.V-this.J,a=f,e=this.La.length-
1;0<=e;e--){var h=this.La[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ba+=f;this.I+=f;zb(this,0,!0);a=f;if(this.h.kb){var g=!1;this.Na=this.Na+this.Ob()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,g=!0);0<=this.za&&this.za<=Bb(this)&&(this.ya=this.za=-1,wb(this),O(this),g=!0);g&&this.X(Bb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=f;if(0>=this.Aa){this.Aa+=this.jb;15<=++this.Jb&&(this.s&&this.s.Ka(),this.Jb=0);break}}while(this.h.ga)}catch(k){O(this);xb(this);this.s&&this.s.stop(ha(),
Bb(this));Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Lb;this.P=ha();d=this.Ib;this.Ba&&(d=Math.round(d*this.Ba/this.jb));d=d-(this.P-this.Ma);if(f=this.P-this.D)this.M=Math.round(this.I/(10*f))/100,864E5<=f&&(this.W=0,yb(this));if(0>d||this.M<this.ba)-1E3>d&&(this.D-=d),d=0;this.wb+=this.Ba;this.P+=d;b(c,d)}else xb(this),this.s&&this.s.stop(ha(),Bb(this))};m.Ub=function(){return 0};
function O(a){a.h.Za&&(a.h.xb=!0);Cb(a);zb(a,a.I);a.I=0;if(a.h.ga){a.h.ga=!1;a.xa&&a.xa.stop();var b=a.A.run;b&&(b.textContent="Run")}a.h.complete=void 0}function xb(a){a.s&&a.s.Ka(void 0)}
function Db(a){this.$b=+a.model||1170;this.cc=a.resetAddr||0;sb.call(this,a,1E6);this.Fb=0;this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.o=15;this.a=[0,0,0,0,0,0,0,this.cc];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.nb=0;this.ja=2;this.la=255;this.u=0;this.na=-1;this.m=0;this.Fa=70;this.mb=this.bb=this.ab=this.j=this.ha=this.Va=this.da=this.F=0;this.Ha=[7,7,7,7];this.N=[[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],[65535,65535,65535,65535,65535,65535,65535,65535,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]];this.Ua=[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];this.zb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Yb=!1}y(Db,sb);m=Db.prototype;
m.reset=function(){this.h.ga&&O(this);Eb(this);vb(this);this.h.error=!1;this.parent.reset.call(this)};function Eb(a){a.la=255;a.m=0;a.i=[];a.nb=0;a.F=a.da=a.Va=a.ha=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Ob=function(){return 0};
m.save=function(){var a=new P(this);Q(a,0,[]);Q(a,1,[this.Hb,this.W,this.ma]);for(var b=this.v,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.ac){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}Q(a,2,d);return a.data()};
m.restore=function(a){var b=a[1];this.Hb=b[0];this.W=b[1];yb(this,b[3]);a:{b=this.v;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.J){for(var e=0,h=Array(b.J),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.aa=function(a,b,c){var d=!1;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":this.A[b]=c;this.Fb++;d=!0;break;default:d=this.parent.aa.call(this,a,b,c)}return d};
m.Ka=function(a){if(this.Fb&&(a||!this.h.ga||this.h.Mb)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=Va(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.A.speed)a.textContent=this.h.ga&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].tc===d){0<e&&(a.i[e-1].ea+=a.i[e].ea);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Lb,0));for(e=a.i.length;0<e--;){if(a.i[e].ea>b){a.i[e].ea-=b;break}b-=a.i[e].ea}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}function Va(a){return a.o=a.o&63728|(a.c&32768?8:0)|(a.f&65535?0:4)|(a.b&32768?2:0)|(a.g&65536?1:0)}
function Wa(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.o)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.o>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.o=b}function cb(a){console.log("panic("+a+")")}
function J(a,b){var c,d,f=0;0>a.na?a.na=Va(a):a.j||(b=4,f=1);a.F&57344||(a.da=63222,a.Va=b);a.j=0;0<=(c=R(a,b|65536))&&0<=(d=R(a,b+2&65535|65536))&&(Wa(a,d&53247|a.na>>2&12288),f&&(a.m|=4,a.a[6]=4),0<=S(a,a.na)&&0<=S(a,a.a[7])&&(a.a[7]=c));a.u=0;return a.na=-1}
function Fb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.N[a.j][d];e=(a.N[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ha&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.ha&32&&(e=a.Ua[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&cb(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.m|=32,J(a,4);if(e&1&&!(c&1))return a.m|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:
128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.N[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.mb=d;if(h){if(h&57344)return 0<=a.na&&(h|=128),a.F&57344||(a.F=a.F|h|a.bb<<5|a.mb<<1),J(a,168);a.F&61440||!(4191360>e||4194239<e)||(a.F|=4096,a.F&512&&(a.u|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return a.m|=64,J(a,4);return e}
function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.v;var d=b&c.i,f=(b&c.v)>>>c.f;c=d!=c.i?c.b[f].ic(d,b):c.b[f++].eb(d,b)|c.b[f&c.M].eb(0,b+1)<<8}else c=b;return c}function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.v;var d=c,f=b&a.i,e=(b&a.v)>>>a.f;f!=a.i?a.b[e].vc(f,d&65535,b):(a.b[e++].ib(f,d&255,b),a.b[e&a.M].ib(0,d>>8&255,b+1));return c}return b}
function T(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.v,c=c.b[(b&c.v)>>>c.f].eb(b&c.i,b)):c=b;return c}function U(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.v,a.b[(b&a.v)>>>a.f].ib(b&a.i,c&255,b),c):b}function R(a,b){return M(a,Fb(a,b,2))}function Gb(a){var b=R(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
function S(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.F&57344||(a.da=a.da<<8|246);if(!a.j&&d<=a.la&&4<d){if(d<=a.la-32)return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return 0<=(c=Fb(a,d|65536,4))?L(a,c,b):c}
function V(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32||65534<=a.a[6])return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=R(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
R(a,d)))return d;d|=65536;break;case 6:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=R(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.F&57344||(a.da=a.da<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32)return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return d}
function W(a,b,c){var d;return b&56?(0<=(d=V(a,b,c))&&(d=Fb(a,d,c)),d):4194304+(b&7)}function X(a,b){var c;b&56?0<=(c=W(a,b,2))&&(c=M(a,c)):c=a.a[b&7];return c}function Y(a,b){var c;b&56?0<=(c=W(a,b,3))&&(c=T(a,c)):c=a.a[b&7]&255;return c}function Z(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.Ub=function(a){this.h.complete=!0;this.h.Yb=!1;this.h.Tb=!1;this.V=this.J=a;this.Hb&256?(Cb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.nb&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].ea){this.i[a].ea--;this.ja=2;break}if(this.i[a].Kb){if(!this.i[a].Kb()){this.i.splice(a,1);e--;continue}this.i[a].Kb=null}this.i[a].gc>b&&(b=this.i[a].gc,e=a)}b>(this.o&224)&&(0>e?J(this,160):(J(this,this.i[e].tc),this.i.splice(e,1)))}this.F&57344||
(this.da=0,this.Va=this.a[7]);this.u=this.o&16;if(0<=(a=R(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=X(this,a>>6))&&(a&56?0<=(d=W(this,a,4))&&0<=L(this,d,b)&&(this.c=this.f=b,this.b=0):(this.c=this.f=this.a[a&7]=b,this.b=0));break;case 8192:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=this.g=a=b-c,this.b=(b^c)&(b^a));break;case 12288:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=b&c,this.b=0);break;case 16384:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,
d=W(this,a,6)))&&(a=c&~b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]&=~b,this.b=0));break;case 20480:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c|b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=b+c,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&
(c^a)));break;case 36864:0<=(b=Y(this,a>>6))&&(a&56?0<=(d=W(this,a,5))&&0<=U(this,d,b)&&(this.c=this.f=b<<8,this.b=0):(b&128&&(b|=65280),this.c=this.f=this.a[a&7]=b,this.b=0));break;case 40960:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(a=b-c,this.c=this.f=this.g=a<<8,this.b=((b^c)&(b^a))<<8);break;case 45056:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(this.c=this.f=(b&c)<<8,this.b=0);break;case 49152:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c&~b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));
break;case 53248:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c|b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-b,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=V(this,a,0))&&(e=a>>6&7,0<=S(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=
(b=X(this,a))&&(e=a>>6&7,b&32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.c=a>>16,this.f=this.c|a,this.g=this.b=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=X(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.b=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.c=a>>16):(this.b=32768,this.f=a>>15|a,this.c=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=
this.a[e|1]=1))):(this.f=this.c=0,this.b=32768,this.g=65536));break;case 29696:0<=(b=X(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.b=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.b=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.b=32768))),this.a[e]=a&65535,this.c=this.f=a);break;case 30208:if(0<=(b=X(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.b=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&
(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.b=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.c=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=M(this,d=W(this,a,6)))&&(c^=this.a[a>>6&7],0<=L(this,d,c)&&(this.c=this.f=c,this.b=0)):(this.c=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.b=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&
65280){case 256:this.a[7]=Z(this.a[7],a);break;case 512:this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=Z(this.a[7],a));break;case 1024:(this.c&32768)===(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1280:(this.c&32768)!==(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1536:this.f&65535&&(this.c&32768)===(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1792:this.f&65535&&(this.c&32768)===(this.b&32768)||(this.a[7]=Z(this.a[7],a));break;case 32768:this.c&
32768||(this.a[7]=Z(this.a[7],a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 33024:this.c&32768&&(this.a[7]=Z(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=Z(this.a[7],a);break;case 33792:this.b&32768||(this.a[7]=Z(this.a[7],a));break;case 34048:this.b&32768&&(this.a[7]=Z(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=Z(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=Z(this.a[7],a));break;case 34816:J(this,24);
break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(f=V(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<8|c>>8,0<=L(this,d,a)&&(this.c=this.f=c&65280,this.b=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.c=this.f=c&65280,this.b=this.g=0);break;case 2560:a&56?0<=(d=W(this,a,4))&&0<=L(this,d,0)&&(this.c=this.g=this.b=this.f=0):this.c=this.g=this.b=this.f=this.a[a&7]=0;break;case 2624:0<=(c=M(this,d=W(this,a,6)))&&(a=~c,0<=L(this,
d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c+1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=M(this,d=W(this,a,6)))&&(a=-c,0<=L(this,d,a)&&(this.g=this.c=this.f=
a,this.b=a&c));break;case 2880:0<=(c=M(this,d=W(this,a,6)))&&(a=c+(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=M(this,d=W(this,a,6)))&&(a=c-(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=X(this,a))&&(this.c=this.f=c,this.g=this.b=0);break;case 3072:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|
c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c&32768|c>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=
this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=R(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=V(this,a,0))&&(61440!==(this.o&61440)&&(f&=65535),this.j=this.o>>12&3,0<=(b=R(this,f))&&(this.j=this.o>>14&3,0<=S(this,b)&&(this.c=
this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Gb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(f&=65535,this.j=this.o>>12&3,0<=(d=Fb(this,f,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=W(this,a,4))&&(a=-(this.c>>
15&1),0<=L(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=W(this,a,5))&&0<=U(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=T(this,d=W(this,a,7)))&&(a=~c,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=(c=T(this,d=W(this,a,7)))&&(a=c+1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=T(this,d=W(this,a,7)))&&(a=c-1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=
((a^c)&c)<<8));break;case 35584:0<=(c=T(this,d=W(this,a,7)))&&(a=-c,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a&c)<<8));break;case 35648:0<=(c=T(this,d=W(this,a,7)))&&(a=c+(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=(a&(a^c))<<8));break;case 35712:0<=(c=T(this,d=W(this,a,7)))&&(a=c-(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=((a^c)&c)<<8));break;case 35776:0<=(c=Y(this,a))&&(this.c=this.f=c<<8,this.g=this.b=0);break;case 35840:0<=(c=T(this,d=W(this,
a,7)))&&(a=((this.g&65536)>>8|c)>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 35904:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 35968:0<=(c=T(this,d=W(this,a,7)))&&(a=c&128|c>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 36032:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 36160:a&
56?0<=(f=V(this,a,0))&&(this.j=this.o>>12&3,0<=(b=R(this,f|65536))&&(this.j=this.o>>14&3,0<=S(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Gb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(this.j=this.o>>12&3,0<=(d=Fb(this,f|65536,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&
12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Gb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.o&49152||(this.o=this.o&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.o?(this.m|=128,J(this,4)):(this.Ca=3,
Cb(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].ea,this.i[a].ea=0;0===e&&0===this.Ca&&(this.Ca=2,Cb(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.o&49152||(Eb(this),this.v.reset());break;case 2:case 6:d=this.a[6];0<=(f=R(this,d|65536))&&(d=d+2&65535,0<=(b=R(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.o&49152&&(b=b&63519|this.o&63712),this.a[7]=f,Wa(this,b),this.u&=-17,2===a&&(this.u|=this.o&
16)));break;default:J(this,8)}}}}}}this.u&&(this.u&2?J(this,168):this.u&4?J(this,4):this.u&16&&J(this,12),this.u=0)}while(0<this.J)}return this.h.complete?this.V-this.J:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Db(d);B(d,c)}});
function Hb(a){v.call(this,"ROM",a,Hb);this.b=null;this.s=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.i=a.file;this.D=ba(this.i);if(this.i){a=this.i;var b=ca(this.D);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Ib(c,a,b,e)})}}y(Hb);Hb.prototype.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;Jb(this)};Hb.prototype.ua=function(){this.j&&(this.H&&this.H.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
Hb.prototype.ta=function(){return!0};
function Ib(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Eb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Jb(a)}}
function Jb(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.v){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.s;if(Pa(a.v,b,a.f,a.u?1:jb)){var c;for(c=0;c<a.b.length;c++){var d=a.v,f=b+c;d.b[(f&d.v)>>>d.f].Vb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.v,h=e.f,g=[],k=e.s>>>f.f;0<h&&
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.v;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Hb(d);B(d,c)}});function Kb(a){v.call(this,"RAM",a,Kb);this.g=a.addr;this.f=a.size;this.b=!1}y(Kb);m=Kb.prototype;m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.f&&Pa(this.v,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Kb(d);B(d,c)}});function Lb(a){v.call(this,"Keyboard",a,Lb);D(this)}y(Lb);Lb.prototype.aa=function(){return!1};Lb.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.H=d;this.xa=null};
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Lb(d);B(d,c)}});
function Mb(a,b,c){v.call(this,"Computer",a,Mb);this.h.L=!1;Nb(this,b);this.J=ub(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.b=Ob;this.D=null;this.s=this.V=!1;this.url=ub(this,"url")||"";(Math.random()+.1).toString(36);this.f=Pb(this);if(this.c=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.v=new E({id:this.Eb+".bus",busWidth:this.ba},this.c,this.H);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.yb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.yb=
this.i.yb;this.X("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.X("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ga&&d.Ga(this,this.v,this.c,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=ub(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.s=!0,this.b=Ob),this.b&&(this.I=
new P(this,"1.30.0"),Qb(this.I)?b=null:delete this.I);!b&&this.b&&(b=Rb(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.u=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.D=b,h.V=!0);D(h)})}else D(this);this.A.power||(this.J=!0);!c&&this.J&&Sb(this,this.cb)}else q("Unable to find CPU component")}y(Mb);var Ob=0;
function Nb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.W=b}function ub(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.W&&(d=a.W[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Sb(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Sb(a,b,c)});return}}b.call(a,c)}
function Tb(a,b){var c=new P(a,"1.30.0","validate");if(Qb(c)&&Ub(c)){var d=Vb(c,"timestamp"),f=b?Vb(b,"timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Mb.prototype;
m.cb=function(a){void 0===a&&(a=this.b||(this.D?1:Ob));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.I||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Ob){if(Qb(d,this.D)){this.j=new P(this,"1.30.0","failsafe");Qb(this.j)&&(Wb(this,d),a=2,Xb(this.j));Q(this.j,"timestamp",ia());Yb(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Ub(d)){var e=Vb(d,"code"),h=Vb(d,"data");e&&("ok"==e?Qb(d,h):("error"==e&&
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),Xb(d),Qb(d)?(c=Ub(d),f=!0):c=!1))}f&&Tb(this,c?d:null)}else 2==a&&d.clear()}else Tb(this);delete this.D;delete this.I}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=Zb(this,h,d,b,c));b=[d,a,c];-1!=a?Sb(this,this.Nb,b):this.Nb(b)}};
function Zb(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Vb(c,b.id))||(e=Vb(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Ob,window&&window.location.reload()):a.P=!0,b.ua(null),f=!1)}if(!d&&b.Gb)for(a=b.Gb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.h.L=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.c&&(Zb(this,this.c,b,c,a),this.c.Xa());this.P&&(Wb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
function Wb(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
function $b(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new P(a,"1.30.0"),h=new P(a,"1.30.0","validate"),g=ia();Q(h,"timestamp",g);Q(e,"timestamp",g);Q(e,"version","1.30.0");Q(e,"url",window?window.location.href:null);Q(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&O(a.c),d=a.c.ta(b,c),"object"===typeof d&&Q(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&Q(e,l.id,d)),c&&(l.h.L=
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&ac(a,a.f,e.toString()),Yb(h)&&Yb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.A.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.v&&this.v.reset&&this.v.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.Ga=function(a,b,c,d){this.u=b;this.c=c;this.I=d;switch(this.A){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.J+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Xb.bind(this);b.A=this.reset.bind(this);b.$a=f}D(this)};m.ic=function(){return Va(this.c)};
m.vc=function(a){Wa(this.c,a&-1809|Va(this.c)&1808);this.c.C|=128};
function Xa(a){var b=a.g,c,d,f,e=b.V>>13&7;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.kc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.D[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.gb=2496;b.P=0;b.v=128;b.V=0;break;case 1:if((b.V>>4&511)>=b.Ea[e]){b.P|=32832;b.v|=49152;break}if((b.V&15)>=b.D[e]){b.P|=32800;b.v|=49152;break}c=(b.V>>4&511)*b.D[e]+(b.V&15);d=(b.v&48)<<12|b.fb;f=65536-b.hb&65535;Ya(a,b.S[e],c,d,f);return;case 2:if((b.V>>4&511)>=b.Ea[e]){b.P|=32832;
b.v|=49152;break}if((b.V&15)>=b.D[e]){b.P|=32800;b.v|=49152;break}c=(b.V>>4&511)*b.D[e]+(b.V&15);d=(b.v&48)<<12|b.fb;f=65536-b.hb&65535;a.qb(b.S[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.V%9&15;H(a.c,20,160,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}m.kc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.v=e.v&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}H(this.c,20,160,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
function Za(a){var b=a.i,c,d,f,e=b.l>>8&3;b.l&=-2;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.lc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.D[e],url:"rl"+e+".dsk"});switch(b.l>>1&7){case 2:b.sa&8&&(b.l&=63);b.sa=b.Yb[e]|b.wa&64;break;case 3:1==(b.H&3)&&(b.wa=b.H&4?b.wa+(b.H&65408)&65408|b.H<<2&64:b.wa-(b.H&65408)&65408|b.H<<2&64,b.H=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.H>>6>=b.Ea[e]){b.l|=37888;break}if((b.H&63)>=b.D[e]){b.l|=37888;break}c=(b.H>>6)*b.D[e]+(b.H&63);
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Ya(a,b.S[e],c,d,f);return;case 6:if(b.H>>6>=b.Ea[e]){b.l|=37888;break}if((b.H&63)>=b.D[e]){b.l|=37888;break}c=(b.H>>6)*b.D[e]+(b.H&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.qb(b.S[e],c,d,f);return}H(a.c,20,160,112,function(){b.l|=129;return!!(b.l&64)})}
m.lc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.l=e.l&-49|d>>12&48;e.pa=d>>16&63;e.H=~~(c/e.D[b.ia])<<6|c%e.D[b.ia];e.wa=e.H;e.sa=65536-f&65535;switch(a){case 1:e.l|=33792;break;case 2:e.l|=40960}H(this.c,20,160,112,function(){e.l|=129;return!!(e.l&64)})};function $a(a){a=a.j;a.B=2176;a.$=0;a.T=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Ja=a.Ua=a.Sa=a.va=a.Db=0}
function ab(a,b){var c=a.j,d,f,e;c.B&=-16513;c.$&=-2049;c.T[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.S[b]&&(c.S[b]={cache:[],postProcess:a.mc,drive:b,blocksize:256,mapped:0,maxblock:c.tb[0]*c.Da[0]*c.D[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.rb[b]=c.ka[b];c.B|=32896;c.T[b]|=32896;c.Ja|=1<<b;break;case 9:$a(a);break;case 19:c.T[b]|=64;break;case 49:if(c.ka[b]>=c.tb[0]||c.aa[b]>>8>=c.Da[0]||(c.aa[b]&255)>=c.D[0]){c.Ta[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.aa[b]>>8))*c.D[0]+
(c.aa[b]&255);f=(c.va&63)<<16|c.Sa;e=65536-c.Ua&65535;Ya(a,c.S[b],d,f,e);return;case 57:if(c.ka[b]>=c.tb[0]||c.aa[b]>>8>=c.Da[0]||(c.aa[b]&255)>=c.D[0]){c.Ta[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.aa[b]>>8))*c.D[0]+(c.aa[b]&255);f=(c.va&63)<<16|c.Sa;e=65536-c.Ua&65535;a.qb(c.S[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.T[b]|=128;return!!(c.B&64)})}
m.mc=function(a,b,c,d,f){var e=this.j;e.Ua=65536-f&65535;e.Sa=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.D[0]);d=~~(f/e.Da[0]);e.aa[b.ia]=f%e.Da[0]<<8|c%e.D[0];e.rb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.gc-1&&(e.T[b.ia]|=1024);switch(a){case 1:e.$|=512;e.B|=49152;break;case 2:e.$|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.T[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.ec=function(){this.f.l|=128;this.f.l&64&&H(this.c,0,192,64)};
function bb(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.gc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.pb(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4,122);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.qb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){bb(this,this.qb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.fc?cb(this.c,c):c,a.cache[b][f])){a.pb(2,a,b,c,d);return}c+=2;--d}b++}a.pb(0,a,b,c,d)};
function Ya(a,b,c,d,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){h=M(a.c,b.fc?cb(a.c,d):d);if(0>h){b.pb(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.pb(0,b,c,d,f)}m.reset=function(){this.b.Ra=this.b.Ra&-120|20;this.s.ga=0;this.s.U=128;this.f.l=0;this.g.v=128;this.i.l=128;$a(this)};
m.Xb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.ob;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.ob=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4,222);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Fa)return J(e,4,224);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4,226);d=0;break;case 4194288:if(70!==e.Fa)return J(e,4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Fa)return J(e,4,232);f=a-4194272>>1;0>b?d=e.Ab[f]:(d=I(this,e.Ab[f],a,b,c),0<=d&&(e.Ab[f]=d));break;case 4194254:return a&1?e.o>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.o&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=
e.Ia[f]),d;case 4194246:return a&1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.o&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.m|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;d=I(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=
e.ea;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.G=e.G&62337|e.bb<<5|e.nb<<1;0>b?d=e.G:(d=I(this,e.G,a,b,c),0<=d&&(e.G=d&=62337,e.bb=d>>5&3,e.nb=d>>1&15,d&257?(f=2,e.na&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Ra=this.b.Ra&-8|f));break;case 4194168:0>b?d=this.b.tc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.$b=0),h.U&=-129,H(e,100,128,52,function(){h.U|=128;return!!(h.U&64)}));d=0;break;case 4194164:0>b?d=h.U:(d=I(this,h.U,a,b,c),0<=d&&
(128==(h.U&192)&&d&64&&H(e,8,128,52,function(){h.U|=128;return!!(h.U&64)}),h.U=h.U&128|d&-129));break;case 4194162:d=0;0>b&&(h.ga&=-129,0<h.Cb.length&&(d=h.Cb.shift(),0<h.Cb.length&&setTimeout(function(){h.ga|=128;h.ga&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.ga:(d=I(this,h.ga,a,b,c),0<=d&&(h.ga=h.ga&128|d&-129));break;case 4194150:0>b?(d=f.l,f.l&=-129):(d=I(this,f.l,a,b,c),0<=d&&(d&64&&!f.Bb&&(setInterval(this.ec.bind(this),25),f.Bb=1),f.l=d&-129));break;default:return e.m|=16,J(e,4,
126)}break;case 4194048:f=this.g;switch(a&-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=I(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&Xa(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=I(this,f.Qb,a,b,c);0<=d&&(f.Qb=d);break;default:return e.m|=
16,J(e,4,128)}break;case 4193728:var g=this.j;f=g.$&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?ab(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ua,a,b,c);0<=d&&(g.Ua=d);break;case 4193732:d=I(this,g.Sa,a,b,c);0<=d&&(g.Sa=d&65534);break;case 4193734:d=I(this,g.aa[f],a,b,c);0<=d&&(g.aa[f]=d&7967);break;case 4193736:d=I(this,g.$,a,b,c);0<=d&&(g.$=d&63|g.$&65472,d&128&&$a(this));break;case 4193738:d=g.T[f];
break;case 4193740:d=g.Ta[f];break;case 4193742:d=I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.rc[f];break;case 4193746:d=I(this,g.Rb,a,b,c);0<=d&&(g.Rb=d);break;case 4193748:d=I(this,g.Sb[f],a,b,c);0<=d&&(g.Sb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.sc[f];break;case 4193754:d=I(this,g.Tb[f],a,b,c);0<=d&&(g.Tb[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.rb[f]=g.ka[f];d=g.rb[f];break;case 4193760:d=g.pc[f];break;case 4193762:d=
g.qc[f];break;case 4193764:d=g.nc[f];break;case 4193766:d=g.oc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Db,a,b,c);0<=d&&(g.Db=d);break;default:return e.m|=16,J(e,4,132)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.l,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.l=f.l&-1023|d&1022,f.l&128||Za(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.H,a,b,c);0<=d&&(f.H=d);
break;case 4192518:d=I(this,f.sa,a,b,c);0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.l=f.l&-49|(f.pa&3)<<4);break;default:return e.m|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.na:(d=I(this,e.na,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.na=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.na&16&&(f=1),this.b.Ra=this.b.Ra&-8|f)));break;default:return e.m|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;d=I(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=
d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=I(this,e.O[1][f],a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4,234);f=a>>2&31;d=e.ib[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.ib[f]=a&2?d<<16|e.ib[f]&65535:e.ib[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Ta[a>>1&255];else return e.m|=16,J(e,4,138);break;default:return e.m|=
16,J(e,4,142)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var Ua={};Ua[4194302]=[null,null,G.prototype.ic,G.prototype.vc];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var db;if(Ha){var eb=new ArrayBuffer(2);(new DataView(eb)).setUint16(0,256,!0);db=256===(new Uint16Array(eb))[0]}else db=!1;var fb=db;
function F(a,b,c,d,f){this.id=gb+=2;this.c=null;this.Qa=a;this.sb=b;this.size=c||0;this.type=d||hb;this.i=d==ib;this.controller=null;Ka(this);this.ra=this.bc=!1;if(c)if(f)this.controller=f,this.c=null,jb(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),jb(this,fb?kb:lb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;jb(this,mb)}else jb(this)}
var hb=0,ib=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],gb=0;
F.prototype={constructor:F,parent:null,Bb:function(a){this.Qa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},F:function(){},A:function(a,b){return this.eb(a++,b++)|this.eb(a,
b)<<8},J:function(a,b,c){this.jb(a++,b&255,c++);this.jb(a,b>>8,c)},Z:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},ya:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ca:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Pa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},N:function(a,b){return this.R(a,
b)},da:function(a,b){return this.ma(a,b)},Aa:function(a,b,c){this.i||this.Wb(a,b,c)},Ma:function(a,b,c){this.i||this.Na(a,b,c)},M:function(a){return this.b[a]},W:function(a){return this.b[a]},ca:function(a){return this.g.getUint16(a,!0)},xa:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},za:function(a,b){this.b[a]=b;this.ra=!0},Ba:function(a,b){this.b[a]=b;this.ra=!0},La:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
1]=b;this.ra=!0}};function Ka(a,b,c){a.I=b;a.w=a.u=0;c&&((a.w=c.w)&&nb(a,ob,!1),(a.u=c.u)&&pb(a,ob,!1))}function pb(a,b,c){c&&a.u||(a.jb=!a.i&&b[1]||a.F,a.wc=!a.i&&b[3]||a.J);if(c||void 0===c)a.Wb=b[1]||a.F,a.Na=b[3]||a.J}function nb(a,b,c){c&&a.w||(a.eb=b[0]||a.s,a.jc=b[2]||a.A);if(c||void 0===c)a.R=b[0]||a.s,a.ma=b[2]||a.A}function jb(a,b){b||(b=qb);nb(a,b,void 0);pb(a,b,void 0)}
var qb=[],mb=[F.prototype.Z,F.prototype.Ca,F.prototype.ya,F.prototype.Pa],ob=[F.prototype.N,F.prototype.Aa,F.prototype.da,F.prototype.Ma];if(Ha)var lb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La],kb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa];
function rb(a,b){v.call(this,"CPU",a,rb);var c=a.multiplier||1;this.wb=a.cycles||b;this.da=c;this.vb=Math.round(this.wb/1E4)/100;this.Z=this.vb*this.da;this.h.ha=!1;this.h.Ub=!1;this.h.Xa=a.autoStart;this.h.Nb=!1;this.h.lb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Mb=this.Eb.bind(this);D(this)}y(rb);var sb=["power","reset"];m=rb.prototype;
m.Ga=function(a,b,c,d){this.s=a;this.u=b;this.I=d;for(b=0;b<sb.length;b++)(c=this.w[sb[b]])&&this.s.ba(null,sb[b],c);this.xa=null;a=tb(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){ub(this);if(!this.restore(a))return!1;vb(this)}else this.reset();this.X("No debugger detected")}wb(this);return!0};m.ta=function(a){return a?this.save():!0};
m.Xa=function(){return this.h.Xa||void 0===this.w.run?(this.Eb(),!0):!1};m.Pb=function(){return 0};function vb(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.lb=0<=a.Oa&&0<a.ya;a.h.lb&&(a.Na=0,a.ca=a.Oa-a.W)}
function N(a,b,c,d){if(a.w[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),xb(a));var f=a.I&&a.I.b||8;if(!a.h.ha||a.h.Nb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.w[b].textContent!=d&&(a.w[b].textContent=d)}}
m.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.mb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ha?xb(d):d.Eb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){yb(d,d.da<<1)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function zb(a,b,c){a.W+=b;c&&(a.R=a.A=0)}function Ab(a,b){var c=1;b&&1<a.da&&a.M&&(c=a.M/a.vb);a.Jb=Math.round(1E3/30);a.Pa=Math.floor(a.wb/30*c);b||(a.Aa=a.Pa);a.xb=0}function Bb(a){return a.W+a.J+a.R-a.A}function ub(a){a.M=0;a.Kb=0;a.W=a.J=a.R=a.A=0;vb(a);yb(a,1)}
function yb(a,b){if(void 0!==b){.8>a.M/a.Z&&(b=1);a.da=b;var c=a.vb*a.da;if(a.Z!=c){a.Z=c;var c=a.Z.toFixed(2)+"Mhz",d=a.w.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}zb(a,a.J);a.J=0;a.F=ha();a.N=0;Ab(a)}function Cb(a){a.R-=a.A;a.A=0}
m.Eb=function(){if(Fa(this,!0)){if(!this.h.ha){yb(this);this.s&&this.s.start(this.F,Bb(this));this.h.ha=!0;this.h.Ub=!0;this.xa&&this.xa.start();var a=this.w.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.xb>=this.wb&&Ab(this,!0);this.Ba=0;this.Ma=ha();this.N&&(a=this.Ma-this.N,a>this.Jb&&(this.F+=a,this.F>this.Ma&&(this.F=this.Ma)));try{do{for(var b,c=this.h.lb?1:this.Pa,d=this.La.length-1;0<=d;d--){var f=this.La[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Vb(b)}catch(l){if("number"!=typeof l)throw l;
}for(var e=this.R-this.A,a=e,h=this.La.length-1;0<=h;h--){var g=this.La[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.Ba+=e;this.J+=e;zb(this,0,!0);a=e;if(this.h.lb){var k=!1;this.Na=this.Na+this.Pb()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,k=!0);0<=this.za&&this.za<=Bb(this)&&(this.ya=this.za=-1,vb(this),xb(this),k=!0);k&&this.X(Bb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=e;if(0>=this.Aa){this.Aa+=this.Pa;15<=++this.Kb&&(this.s&&this.s.Ka(),this.Kb=0);break}}while(this.h.ha)}catch(l){xb(this);
wb(this);this.s&&this.s.stop(ha(),Bb(this));Fa(this,!1);b=l.stack||l.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Mb;this.N=ha();d=this.Jb;this.Ba&&(d=Math.round(d*this.Ba/this.Pa));d=d-(this.N-this.Ma);if(f=this.N-this.F)this.M=Math.round(this.J/(10*f))/100,864E5<=f&&(this.W=0,yb(this));if(0>d||this.M<this.Z)-1E3>d&&(this.F-=d),d=0;this.xb+=this.Ba;this.N+=d;b(c,d)}else wb(this),this.s&&this.s.stop(ha(),Bb(this))};m.Vb=function(){return 0};
function xb(a){a.h.Za&&(a.h.yb=!0);Cb(a);zb(a,a.J);a.J=0;if(a.h.ha){a.h.ha=!1;a.xa&&a.xa.stop();var b=a.w.run;b&&(b.textContent="Run")}a.h.complete=void 0}function wb(a){a.s&&a.s.Ka(void 0)}
function Db(a){this.ac=+a.model||1170;this.dc=a.resetAddr||0;rb.call(this,a,1E6);this.Gb=0;this.decode=Eb.bind(this);this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.kb=-1;this.a=[0,0,0,0,0,0,0,this.dc];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.ob=0;this.ja=2;this.la=255;this.C=0;this.ma=-1;this.m=0;this.Fa=70;this.nb=this.bb=this.ab=this.j=this.na=this.Va=this.ea=this.G=0;this.Ha=[7,7,7,7];this.O=[[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],[65535,65535,65535,65535,65535,65535,65535,65535,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]];this.ib=[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];this.Ab=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Zb=!1}y(Db,rb);m=Db.prototype;
m.reset=function(){this.h.ha&&xb(this);Fb(this);ub(this);this.h.error=!1;this.parent.reset.call(this)};function Fb(a){a.la=255;a.m=0;a.i=[];a.ob=0;a.G=a.ea=a.Va=a.na=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Pb=function(){return 0};
m.save=function(){var a=new O(this);P(a,0,[]);P(a,1,[this.Ib,this.W,this.da]);for(var b=this.u,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.bc){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}P(a,2,d);return a.data()};
m.restore=function(a){var b=a[1];this.Ib=b[0];this.W=b[1];yb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.M){for(var e=0,h=Array(b.M),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.ba=function(a,b,c){var d=!1;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":this.w[b]=c;this.Gb++;d=!0;break;default:d=this.parent.ba.call(this,a,b,c)}return d};
m.Ka=function(a){if(this.Gb&&(a||!this.h.ha||this.h.Nb)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=Va(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.w.speed)a.textContent=this.h.ha&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].uc===d){0<e&&(a.i[e-1].fa+=a.i[e].fa);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Mb,0));for(e=a.i.length;0<e--;){if(a.i[e].fa>b){a.i[e].fa-=b;break}b-=a.i[e].fa}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}function Va(a){return a.o=a.o&63728|(a.c&32768?8:0)|(a.f&65535?0:4)|(a.b&32768?2:0)|(a.g&65536?1:0)}
function Wa(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.o)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.o>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.o=b}function Gb(a,b){!a.C&128&&(a.c=a.f=b,a.b=0)}
function J(a,b,c){var d,f,e=0;0>a.ma?a.ma=Va(a):a.j||(b=4,e=1);a.G&57344||(a.ea=63222,a.Va=b);a.j=0;0<=(d=Q(a,b|65536))&&0<=(f=Q(a,b+2&65535|65536))&&(Wa(a,f&53247|a.ma>>2&12288),e&&(a.m|=4,a.a[6]=4),0<=R(a,a.ma)&&0<=R(a,a.a[7])&&(a.a[7]=d));a.C&=-113;a.ma=-1;throw b|c<<8;}function cb(a,b){var c=b>>13&31;31>c?a.na&32&&(b=a.ib[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Hb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.O[a.j][d];e=(a.O[a.j][d+16]<<6)+(b&8191)&4194303;a.na&16?3932160<=e&&4186112>e&&(e=cb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,J(a,4,24)),e&1&&!(c&1)&&(a.m|=64,J(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&
(h|=16384));a.O[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.nb=d;h&&(h&57344&&(0<=a.ma&&(h|=128),a.G&57344||(a.G=a.G|h|a.bb<<5|a.nb<<1),J(a,168,28)),a.G&61440||!(4191360>e||4194239<e)||(a.G|=4096,a.G&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,J(a,4,22));return e}function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.u;var d=b&c.i,f=(b&c.u)>>>c.f;c=d!=c.i?c.b[f].jc(d,b):c.b[f++].eb(d,b)|c.b[f&c.N].eb(0,b+1)<<8}else c=b;return c}
function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.u;var d=c,f=b&a.i,e=(b&a.u)>>>a.f;f!=a.i?a.b[e].wc(f,d&65535,b):(a.b[e++].jb(f,d&255,b),a.b[e&a.N].jb(0,d>>8&255,b+1));return c}return b}function S(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.u,c=c.b[(b&c.u)>>>c.f].eb(b&c.i,b)):c=b;return c}function T(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.u,a.b[(b&a.u)>>>a.f].jb(b&a.i,c&255,b),c):b}
function Q(a,b){return M(a,Hb(a,b,2))}function Ib(a){var b=Q(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}function R(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.G&57344||(a.ea=a.ea<<8|246);!a.j&&d<=a.la&&4<d&&(d<=a.la-32?(a.m|=4,a.a[6]=4,J(a,4,32)):(a.m|=8,a.C|=4));return 0<=(c=Hb(a,d|65536,4))?L(a,c,b):c}
function U(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])&&(a.a[6]<=a.la-32||65534<=a.a[6]?(a.m|=4,a.a[6]=4,J(a,4,36)):(a.m|=8,a.C|=64)),7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=Q(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=Q(a,
d)))return d;d|=65536;break;case 6:if(0>(d=Q(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=Q(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=Q(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.G&57344||(a.ea=a.ea<<8|f<<3&248|e);6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])&&(a.a[6]<=a.la-32?(a.m|=4,a.a[6]=4,J(a,4,38)):(a.m|=8,a.C|=64));return d}
function V(a,b,c){var d;return b&56?(0<=(d=U(a,b,c))&&(d=Hb(a,d,c)),d):4194304+(b&7)}function W(a,b){var c;b&56?(c=V(a,b,2),c=M(a,c)):c=a.a[b&7];return c}function X(a,b){var c;b&56?0<=(c=V(a,b,3))&&(c=S(a,c)):c=a.a[b&7]&255;return c}function Y(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.Vb=function(a){this.h.complete=!0;this.h.Zb=!1;this.h.Ub=!1;this.R=this.A=a;this.Ib&256?(Cb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;this.C&112&&(this.C&32?J(this,168,52):this.C&64?J(this,4,54):this.C&16&&J(this,12,56),this.C&=-113);if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.ob&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].fa){this.i[a].fa--;this.ja=2;break}if(this.i[a].Lb){if(!this.i[a].Lb()){this.i.splice(a,1);e--;continue}this.i[a].Lb=null}this.i[a].hc>b&&(b=this.i[a].hc,
e=a)}b>(this.o&224)&&(0>e?J(this,160,42):(J(this,this.i[e].uc,44),this.i.splice(e,1)))}this.G&57344||(this.ea=0,this.Va=this.a[7]);this.C=this.o&16;this.kb=Q(this,this.a[7]);this.a[7]=this.a[7]+2&65535;this.decode(this.kb);if(0<=this.kb)switch(a=this.kb,this.a[7]=this.a[7]+2&65535,a&61440){case 20480:0<=(b=W(this,a>>6))&&(a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c|b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=W(this,a>>6))&&(a&56?0<=(c=
M(this,d=V(this,a,6)))&&(a=b+c,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&(c^a)));break;case 36864:0<=(b=X(this,a>>6))&&(a&56?0<=(d=V(this,a,5))&&0<=T(this,d,b)&&(this.c=this.f=b<<8,this.b=0):(b&128&&(b|=65280),this.c=this.f=this.a[a&7]=b,this.b=0));break;case 40960:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(a=b-c,this.c=this.f=this.g=a<<8,this.b=((b^c)&(b^a))<<8);break;case 45056:0<=(b=X(this,a>>6))&&0<=
(c=X(this,a))&&(this.c=this.f=(b&c)<<8,this.b=0);break;case 49152:0<=(b=X(this,a>>6))&&0<=(c=S(this,d=V(this,a,7)))&&(a=c&~b,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 53248:0<=(b=X(this,a>>6))&&0<=(c=S(this,d=V(this,a,7)))&&(a=c|b,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=W(this,a>>6))&&(a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c-b,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,
this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=U(this,a,0))&&(e=a>>6&7,0<=R(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=(b=W(this,a))&&(e=a>>6&7,b&32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.c=a>>16,this.f=this.c|a,this.g=this.b=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=W(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.b=0,b&32768&&(b|=-65536),a=~~(c/
b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.c=a>>16):(this.b=32768,this.f=a>>15|a,this.c=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=this.a[e|1]=1))):(this.f=this.c=0,this.b=32768,this.g=65536));break;case 29696:0<=(b=W(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.b=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.b=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.b=32768))),this.a[e]=a&65535,this.c=this.f=
a);break;case 30208:if(0<=(b=W(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.b=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.b=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.c=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=M(this,d=V(this,a,6)))&&(c^=this.a[a>>6&7],0<=L(this,d,c)&&(this.c=this.f=c,this.b=
0)):(this.c=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.b=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.a[7]=Y(this.a[7],a);break;case 512:this.f&65535&&(this.a[7]=Y(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=Y(this.a[7],a));break;case 1024:(this.c&32768)===(this.b&32768)&&(this.a[7]=Y(this.a[7],a));break;case 1280:(this.c&32768)!==(this.b&32768)&&(this.a[7]=Y(this.a[7],a));break;case 1536:this.f&
65535&&(this.c&32768)===(this.b&32768)&&(this.a[7]=Y(this.a[7],a));break;case 1792:this.f&65535&&(this.c&32768)===(this.b&32768)||(this.a[7]=Y(this.a[7],a));break;case 32768:this.c&32768||(this.a[7]=Y(this.a[7],a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=Y(this.a[7],a));break;case 33024:this.c&32768&&(this.a[7]=Y(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=Y(this.a[7],a);break;case 33792:this.b&32768||(this.a[7]=Y(this.a[7],a));break;case 34048:this.b&
32768&&(this.a[7]=Y(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=Y(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=Y(this.a[7],a));break;case 34816:J(this,24,2);break;case 35072:J(this,28,4);break;default:switch(a&65472){case 64:0<=(f=U(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c<<8|c>>8,0<=L(this,d,a)&&(this.c=this.f=c&65280,this.b=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.c=this.f=c&65280,this.b=this.g=0);break;case 2560:a&
56?0<=(d=V(this,a,4))&&0<=L(this,d,0)&&(this.c=this.g=this.b=this.f=0):this.c=this.g=this.b=this.f=this.a[a&7]=0;break;case 2624:0<=(c=M(this,d=V(this,a,6)))&&(a=~c,0<=L(this,d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c+1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c-1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=
(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=M(this,d=V(this,a,6)))&&(a=-c,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&c));break;case 2880:0<=(c=M(this,d=V(this,a,6)))&&(a=c+(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=M(this,d=V(this,a,6)))&&(a=c-(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=W(this,a))&&(this.c=this.f=c,this.g=this.b=
0);break;case 3072:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=M(this,
d=V(this,a,6)))&&(a=c&32768|c>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=Q(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=
b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=U(this,a,0))&&(61440!==(this.o&61440)&&(f&=65535),this.j=this.o>>12&3,0<=(b=Q(this,f))&&(this.j=this.o>>14&3,0<=R(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=R(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Ib(this))&&((this.G&57344||(this.ea=22),a&56)?0<=(f=U(this,a,0))&&(f&=65535,this.j=this.o>>12&3,0<=(d=Hb(this,f,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&
(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=V(this,a,4))&&(a=-(this.c>>15&1),0<=L(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=V(this,a,5))&&0<=T(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=S(this,d=V(this,a,7)))&&(a=~c,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=
(c=S(this,d=V(this,a,7)))&&(a=c+1,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=S(this,d=V(this,a,7)))&&(a=c-1,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=((a^c)&c)<<8));break;case 35584:0<=(c=S(this,d=V(this,a,7)))&&(a=-c,0<=T(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a&c)<<8));break;case 35648:0<=(c=S(this,d=V(this,a,7)))&&(a=c+(this.g>>16&1),0<=T(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=(a&(a^c))<<8));break;case 35712:0<=(c=S(this,d=V(this,a,7)))&&(a=c-
(this.g>>16&1),0<=T(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=((a^c)&c)<<8));break;case 35776:0<=(c=X(this,a))&&(this.c=this.f=c<<8,this.g=this.b=0);break;case 35840:0<=(c=S(this,d=V(this,a,7)))&&(a=((this.g&65536)>>8|c)>>1,0<=T(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 35904:0<=(c=S(this,d=V(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=T(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 35968:0<=(c=S(this,d=V(this,a,7)))&&(a=c&128|c>>1,0<=T(this,
d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 36032:0<=(c=S(this,d=V(this,a,7)))&&(a=c<<1,0<=T(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 36160:a&56?0<=(f=U(this,a,0))&&(this.j=this.o>>12&3,0<=(b=Q(this,f|65536))&&(this.j=this.o>>14&3,0<=R(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=R(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Ib(this))&&((this.G&57344||
(this.ea=22),a&56)?0<=(f=U(this,a,0))&&(this.j=this.o>>12&3,0<=(d=Hb(this,f|65536,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Ib(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.o&49152||(this.o=this.o&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);
a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.o?(this.m|=128,J(this,4,46)):(this.Ca=3,Cb(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].fa,this.i[a].fa=0;0===e&&0===this.Ca&&(this.Ca=2,Cb(this));break;case 3:J(this,12,6);break;case 4:J(this,16,8);break;case 5:this.o&49152||(Fb(this),this.u.reset());break;case 2:case 6:d=
this.a[6];0<=(f=Q(this,d|65536))&&(d=d+2&65535,0<=(b=Q(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.o&49152&&(b=b&63519|this.o&63712),this.a[7]=f,Wa(this,b),this.C&=-17,2===a&&(this.C|=this.o&16)));break;default:J(this,8,48)}}}}}}}while(0<this.A)}return this.h.complete?this.R-this.A:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Db(d);B(d,c)}});function Eb(a){Jb[a>>12].call(this,a)}function Z(){--this.A}
var Jb=[function(){},function(a){var b=W(this,a>>6);a&56?L(this,V(this,a,4),b):this.a[a&7]=b;Gb(this,b);--this.A},function(a){var b=W(this,a>>6);a=W(this,a);var c=b-a;!this.C&128&&(this.c=this.f=this.g=c,this.b=(b^a)&(b^c));--this.A},function(a){Gb(this,W(this,a>>6)&W(this,a));--this.A},function(a){var b=W(this,a>>6);if(a&56){a=V(this,a,4);var c=M(this,a);L(this,a,b=~b&c)}else a&=7,this.a[a]=b=~b&this.a[a];Gb(this,b);--this.A},Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z];
function Kb(a){v.call(this,"ROM",a,Kb);this.b=null;this.s=a.addr;this.f=a.size;this.A=a.writable;this.g=a.alias;this.i=a.file;this.F=ba(this.i);if(this.i){a=this.i;var b=ca(this.F);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Lb(c,a,b,e)})}}y(Kb);Kb.prototype.Ga=function(a,b,c,d){this.u=b;this.c=c;this.I=d;Mb(this)};Kb.prototype.ua=function(){this.j&&(this.I&&this.I.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
Kb.prototype.ta=function(){return!0};
function Lb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Fb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Mb(a)}}
function Mb(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.u){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.s;if(Pa(a.u,b,a.f,a.A?1:ib)){var c;for(c=0;c<a.b.length;c++){var d=a.u,f=b+c;d.b[(f&d.u)>>>d.f].Wb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.u,h=e.f,g=[],k=e.s>>>f.f;0<h&&
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.u;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Kb(d);B(d,c)}});function Nb(a){v.call(this,"RAM",a,Nb);this.g=a.addr;this.f=a.size;this.b=!1}y(Nb);m=Nb.prototype;m.Ga=function(a,b,c,d){this.u=b;this.c=c;this.I=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.f&&Pa(this.u,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nb(d);B(d,c)}});function Ob(a){v.call(this,"Keyboard",a,Ob);D(this)}y(Ob);Ob.prototype.ba=function(){return!1};Ob.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.I=d;this.xa=null};
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ob(d);B(d,c)}});
function Pb(a,b,c){v.call(this,"Computer",a,Pb);this.h.L=!1;Qb(this,b);this.M=tb(this,"autoPower",a);this.g=0;this.ca=a.busWidth||a.buswidth;this.b=Rb;this.F=null;this.s=this.W=!1;this.url=tb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Sb(this);if(this.c=Ea("CPU",this.id)){this.I=Ea("Debugger",this.id);this.u=new E({id:this.Fb+".bus",busWidth:this.ca},this.c,this.I);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.zb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.zb=
this.i.zb;this.X("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.X("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ga&&d.Ga(this,this.u,this.c,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.A=d:this.b=parseInt(d,10));var e;if(a=tb(this,"state")||(e=!0,a.state))b=this.N=a,e||(this.s=!0,this.b=Rb),this.b&&(this.J=
new O(this,"1.30.0"),Tb(this.J)?b=null:delete this.J);!b&&this.b&&(b=Ub(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.A=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.F=b,h.W=!0);D(h)})}else D(this);this.w.power||(this.M=!0);!c&&this.M&&Vb(this,this.cb)}else q("Unable to find CPU component")}y(Pb);var Rb=0;
function Qb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.Z=b}function tb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.Z&&(d=a.Z[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Vb(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Vb(a,b,c)});return}}b.call(a,c)}
function Wb(a,b){var c=new O(a,"1.30.0","validate");if(Tb(c)&&Xb(c)){var d=Yb(c,"timestamp"),f=b?Yb(b,"timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Pb.prototype;
m.cb=function(a){void 0===a&&(a=this.b||(this.F?1:Rb));if(!this.g){this.g++;var b=!1,c=!1;this.R=!1;var d=this.J||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Rb){if(Tb(d,this.F)){this.j=new O(this,"1.30.0","failsafe");Tb(this.j)&&(Zb(this,d),a=2,$b(this.j));P(this.j,"timestamp",ia());ac(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Xb(d)){var e=Yb(d,"code"),h=Yb(d,"data");e&&("ok"==e?Tb(d,h):("error"==e&&
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),$b(d),Tb(d)?(c=Xb(d),f=!0):c=!1))}f&&Wb(this,c?d:null)}else 2==a&&d.clear()}else Wb(this);delete this.F;delete this.J}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=bc(this,h,d,b,c));b=[d,a,c];-1!=a?Vb(this,this.Ob,b):this.Ob(b)}};
function bc(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Yb(c,b.id))||(e=Yb(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Rb,window&&window.location.reload()):a.R=!0,b.ua(null),f=!1)}if(!d&&b.Hb)for(a=b.Hb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.h.L=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.c&&(bc(this,this.c,b,c,a),this.c.Xa());this.R&&(Zb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
function Zb(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
function cc(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new O(a,"1.30.0"),h=new O(a,"1.30.0","validate"),g=ia();P(h,"timestamp",g);P(e,"timestamp",g);P(e,"version","1.30.0");P(e,"url",window?window.location.href:null);P(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&xb(a.c),d=a.c.ta(b,c),"object"===typeof d&&P(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&P(e,l.id,d)),c&&(l.h.L=
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&dc(a,a.f,e.toString()),ac(h)&&ac(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.w.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
m.aa=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.g||(d.h.L?$b(d,!1,!0):Sb(d,d.cb))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");$b(d,a,!0);!a&&d.M?window&&window.location.reload():d.cb(Ob)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=
c;c.onclick=function(){var a=Pb(d,!0);if(a){var b=!!(d.b&&!d.u||d.M),c=$b(d,b);b?ac(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
function Pb(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=bc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
function bc(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Rb(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+cc(a,"1.30.0"));return b}
function ac(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("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.K(c),na("user",""),a.f=null)}}
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Mb(h,d,!0);B(h,e);h.J&&Sb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.h.L&&c.cb(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&$b(c,!(!c.b||c.u),!0)}});function P(a,b,c){this.id=a.id;this.key=cc(a,b,c);this.H=a.H;Xb(this,a.bc)}function cc(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}
P.prototype={constructor:P,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){Xb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,1);c=0}}};
function Xb(a,b){a[a.id]={};b&&Q(a,"parms",b);a.c=!1}function Yb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ub(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Qb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Vb(a,b){return a[a.id][b]||null}function Q(a,b,c){try{a[a.id][b]=c}catch(d){}}var dc=0;
function ec(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):fc(g,a,b,c,d,f,e)})}
function fc(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?gc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function gc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);gc(a,b,c)}})}else c(a,null)}
function hc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--dc||ua(!0));k=!1}var h,g,k=!0;dc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?ec(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--dc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--dc||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?ec(b,a,d,!0,f,l):fc(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return hc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
m.ba=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.g||(d.h.L?cc(d,!1,!0):Vb(d,d.cb))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.A){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");cc(d,a,!0);!a&&d.N?window&&window.location.reload():d.cb(Rb)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.w[b]=
c;c.onclick=function(){var a=Sb(d,!0);if(a){var b=!!(d.b&&!d.A||d.N),c=cc(d,b);b?dc(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
function Sb(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=ec(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
function ec(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Ub(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+fc(a,"1.30.0"));return b}
function dc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=fc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("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.K(c),na("user",""),a.f=null)}}
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Pb(h,d,!0);B(h,e);h.M&&Vb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.da&&!c.h.L&&c.cb(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&cc(c,!(!c.b||c.A),!0)}});function O(a,b,c){this.id=a.id;this.key=fc(a,b,c);this.I=a.I;$b(this,a.cc)}function fc(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}
O.prototype={constructor:O,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){$b(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,1);c=0}}};
function $b(a,b){a[a.id]={};b&&P(a,"parms",b);a.c=!1}function ac(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Xb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Tb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Yb(a,b){return a[a.id][b]||null}function P(a,b,c){try{a[a.id][b]=c}catch(d){}}var gc=0;
function hc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):ic(g,a,b,c,d,f,e)})}
function ic(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?jc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function jc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);jc(a,b,c)}})}else c(a,null)}
function kc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--gc||ua(!0));k=!1}var h,g,k=!0;gc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?hc(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--gc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--gc||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?hc(b,a,d,!0,f,l):ic(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return kc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();