Added ROT and ROTC (albeit untested)

This commit is contained in:
Jeff 2017-03-03 21:09:45 -08:00 • committed by Jeff Parsons
commit 88f66f9590
3 changed files with 163 additions and 110 deletions

View file

@ -53,160 +53,161 @@ function Cb(a,b){var c=y;b=z(b.parentNode,c+"-control");for(var d=0;d<b.length;d
function z(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function Db(a){for(var b=!0,c=Eb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Fb.indexOf(e)&&(g=function(){return function(){Db(a)}}());var f=Gb[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=Bb(d[1],a);if(h)if(f=Hb[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){u("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Eb[a];return b}l=v.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ga=function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.oa=this.I[b]=c,c.value="",this.g=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.da=function(a){this.g(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.g=function(){};
l.status=function(a){this.g(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Ib(a,b){a.v.error=!0;a.da(b)}function Jb(a){return a.v.error?(a.g(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.v.ready?b():a.Ma=b);return a.v.ready}function D(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Lb(a,b){a.v.Fa&&(b?a.v.Xa=!0:void 0===b&&a.g(a.toString()+" busy"));return a.v.Fa}
function Mb(a,b){if(a.v.Xa)return a.v.Fa=!1,a.v.Xa=!1;if(a.v.error)return a.g(a.toString()+" error"),!1;a.v.Fa=b;return a.v.Fa}l.pa=function(){return this.v.U=!0};l.fa=function(a,b){b&&(this.v.U=!1);return!0};function Nb(a,b){if(a.C){a===a.C?b|=0:b=b||a.X;var c=a.C.X&b;return!!b&&c===b||!!(c&a.C.nb)}return!1}function Ob(a,b,c,d){a.C&&(!0===c||Nb(a,c|0))&&a.C.message(b,d)}
l.ga=function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.oa=this.I[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.i(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Ib(a,b){a.v.error=!0;a.da(b)}function Jb(a){return a.v.error?(a.i(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.v.ready?b():a.Ma=b);return a.v.ready}function A(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Lb(a,b){a.v.Fa&&(b?a.v.Xa=!0:void 0===b&&a.i(a.toString()+" busy"));return a.v.Fa}
function Mb(a,b){if(a.v.Xa)return a.v.Fa=!1,a.v.Xa=!1;if(a.v.error)return a.i(a.toString()+" error"),!1;a.v.Fa=b;return a.v.Fa}l.pa=function(){return this.v.U=!0};l.fa=function(a,b){b&&(this.v.U=!1);return!0};function Nb(a,b){if(a.C){a===a.C?b|=0:b=b||a.X;var c=a.C.X&b;return!!b&&c===b||!!(c&a.C.nb)}return!1}function Ob(a,b,c,d){a.C&&(!0===c||Nb(a,c|0))&&a.C.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var wb=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],Eb=window?window.PCjs.Commands:{},Fb=["hold","sleep","wait"],Gb={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Hb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var y="pdp10",Pb="PDPjs",Qb=Math.pow(2,18),Rb=Math.pow(2,18)-1,E=Math.pow(2,36),F=Math.pow(2,36)-1,G=Math.pow(2,18),H=Math.pow(2,18)-1,Sb=Math.pow(2,17)-1,Tb=Math.pow(2,35)-1,Ub=Math.pow(2,35),Vb=Math.pow(2,36),J=Math.pow(2,32),Wb=Math.pow(2,21),Xb=Math.pow(2,26),Yb=Math.pow(2,23),Zb=Math.pow(2,30),y="pdp10",Pb="PDPjs",K={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,
var y="pdp10",Pb="PDPjs",Qb=Math.pow(2,18),Rb=Math.pow(2,18)-1,E=Math.pow(2,36),F=Math.pow(2,36)-1,G=Math.pow(2,18),H=Math.pow(2,18)-1,Sb=Math.pow(2,17)-1,Tb=Math.pow(2,35)-1,Ub=Math.pow(2,35),Vb=Math.pow(2,36),I=Math.pow(2,32),Wb=Math.pow(2,21),Xb=Math.pow(2,26),Yb=Math.pow(2,23),Zb=Math.pow(2,30),y="pdp10",Pb="PDPjs",K={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,
computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function $b(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.w=this.A=0;this.N=this.O=-1;this.P=this.R=this.H=!1;this.S=ac;this.D={};this.b={START:[1,1,!0,!1,this.Nb],STEP:[1,1,!1,!1,this.Ob],ENABLE:[1,1,!1,!1,this.Ib],CONT:[1,1,!0,!1,this.Gb],DEP:[0,0,!0,!1,this.Hb],EXAM:[1,1,!0,!1,this.Jb],LOAD:[1,1,!0,!1,this.Lb],TEST:[0,0,!0,!1,this.Kb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Mb,a];this.C=this.u=this.G=this.F=null;this.exports={hold:this.Eb,toggle:this.Xb,reset:this.Tb,
set:this.Wb};D(this)}p($b,v);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.A=0)};
set:this.Wb};A(this)}p($b,v);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.A=0)};
l.ga=function(a,b,c,d){if(this.F&&this.F.ga(a,b,c,d)||this.u&&this.u.ga(a,b,c,d)||this.C&&this.C.ga(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.D[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.wa=function(a,b,c,d){this.F=a;this.G=b;this.u=c;this.C=d;ec(this);fc(this)};l.pa=function(a,b){if(!b)if(this.W&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,[this.f,this.A,this.w]);return a.data()};
l.restore=function(a){if(a=a[0])hc(this,this.f=a[0]),bc(this,this.A=a[1]),ic(this,a[2]);return!0};l.Tb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.D)jc(a,c,null!=b?b:a.D[c])}function kc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
l.Eb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.Wb=function(a,b){if("SR"==a)return ic(this,ta(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.Xb=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==tc,a.R=b==uc),!0):!1}
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Nb=function(a){a||this.u.v.K||(this.u.w=this.f%Qb,this.b[vc]&&this.b[vc][1]&&wc(this.u))};l.Ob=function(){};l.Ib=function(a){a||this.u.V()};
l.Gb=function(a){if(!a&&!this.u.v.K)if(this.b[vc]&&this.b[vc][1])wc(this.u);else{if((a=this.C)&&!Lb(a,!0))Mb(a,!0),xc(a,0,null),Mb(a,!1);else try{var b=this.u.Ja(1);0<b&&(yc(this.u,b),zc(this.u,b,!0),Ac(this.u,b))}catch(c){"number"!=typeof c&&Ib(this.u,c.stack||c.message)}this.stop();this.F&&M(this.F)}};l.Hb=function(a){a&&!this.u.v.K&&(this.P&&Bc(this),a=bc(this,this.A=this.w),this.S==ac?Cc(this.G,this.f,a):this.u.j(this.f,a))};
l.Jb=function(a){if(!a&&!this.u.v.K){var b;this.R&&Bc(this);this.S==ac?b=Dc(this.G,this.f):b=this.u.i(this.f);bc(this,this.A=b)}};l.Lb=function(a){a||this.u.v.K||hc(this,this.w)};l.Kb=function(a){a?(this.H=!0,ec(this,!0)):(this.H=!1,ec(this),ic(this,0))};l.Mb=function(a,b){this.w=a?this.w|1<<b:this.w&~(1<<b)};function Bc(a){var b=1,c=a.G.w;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.f&~c|a.f+b&c)}
l.Jb=function(a){if(!a&&!this.u.v.K){var b;this.R&&Bc(this);this.S==ac?b=Dc(this.G,this.f):b=this.u.g(this.f);bc(this,this.A=b)}};l.Lb=function(a){a||this.u.v.K||hc(this,this.w)};l.Kb=function(a){a?(this.H=!0,ec(this,!0)):(this.H=!1,ec(this),ic(this,0))};l.Mb=function(a,b){this.w=a?this.w|1<<b:this.w&~(1<<b)};function Bc(a){var b=1,c=a.G.w;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.f&~c|a.f+b&c)}
function hc(a,b){a.f=b&a.G.w;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.D[e]=g;d.H||jc(d,e,g)}}}function bc(a,b){a.J=b%E;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.D[e]=g;d.H||jc(d,e,g)}}return a.J}function ic(a,b){a.w=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.w&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.u.w)};
function gc(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=Ab(d.id);e||(e=new $b(d,!0));Cb(e,c)}}var ac=7,tc="DEP",vc="ENABLE",uc="EXAM",lc="STEP";eb(gc);function Ec(a,b,c){v.call(this,"Bus",a,16);this.u=b;this.C=c;this.J=+a.busWidth||18;this.H=1<<this.J;this.w=this.H-1;this.f=Math.log2(16384);this.D=this.H/16384|0;this.A=0;this.b=[];a=new Fc(this);Gc(a,this.C);this.b=Array(this.D);for(b=0;b<this.D;b++)this.b[b]=a;D(this)}p(Ec,v);l=Ec.prototype;l.reset=function(){};
function gc(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=Ab(d.id);e||(e=new $b(d,!0));Cb(e,c)}}var ac=7,tc="DEP",vc="ENABLE",uc="EXAM",lc="STEP";eb(gc);function Ec(a,b,c){v.call(this,"Bus",a,16);this.u=b;this.C=c;this.J=+a.busWidth||18;this.H=1<<this.J;this.w=this.H-1;this.f=Math.log2(16384);this.D=this.H/16384|0;this.A=0;this.b=[];a=new Fc(this);Gc(a,this.C);this.b=Array(this.D);for(b=0;b<this.D;b++)this.b[b]=a;A(this)}p(Ec,v);l=Ec.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,Hc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ic(a,b,c,d){for(var e=b,g=c,f=e>>>a.f;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.B)return h.Ha+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.B+m;e=k+16384;g-=m;f++;continue}}return Jc(Kc,e,g)}e=new Fc(a,e,m,16384,d);Gc(e,a.C,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Lc[d]+" at "+va(b)),!0):Jc(Mc,b,c)}
function Dc(a,b){var c=a.b[(b&a.w)>>>a.f];a.A++;b=c.G(b&16383,b);a.A--;return b}function Cc(a,b,c){var d=a.b[(b&a.w)>>>a.f];a.A++;d.F(c,b&16383,b);a.A--}function Hc(a){for(var b=0,c=[],d=0;d<a.D;d++){var e=a.b[d];if(e.Za||e.Cb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
l.Db=function(a){this.A||(this.C&&Nb(this.C,4)&&Ob(this.C,"memory fault on "+N(this.C,a),!0,!0),this.u.V())};function Jc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Kc=1,Mc=2;function Nc(a){v.call(this,"Device",a,256)}p(Nc,v);l=Nc.prototype;l.wa=function(a,b,c,d){this.G=b;this.F=a;this.u=c;this.C=d;D(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new L(this)).data()};
l.restore=function(){return!0};eb(function(){for(var a=z(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=x(d);switch(c.type){case "default":c=new Nc(c),Cb(c,d)}}});function Fc(a,b,c,d,e){this.w=a;this.id=Oc+=2;this.B=b;this.Ha=c;this.size=d||0;this.type=e||Pc;this.I=e==Qc;this.b=null;this.i=this.G=this.ab;this.j=this.F=this.Ia;this.f=this.u=0;Gc(this);this.Za=this.Cb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Rc(this,Sc)}else Rc(this)}l=Fc.prototype;l.save=function(){return this.C};
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Za=!0):!1};function Rc(a,b){b||(b=Tc);Uc(a,b,void 0);Vc(a,b,void 0)}function Uc(a,b,c){c&&a.f||(a.i=b[0]||a.ab);if(c||void 0===c)a.G=b[0]||a.ab}function Vc(a,b,c){c&&a.u||(a.j=!a.I&&b[1]||a.Ia);if(c||void 0===c)a.F=b[1]||a.Ia}l.Da=function(a,b){b?this.u++||Vc(this,Wc,!1):this.f++||Uc(this,Wc,!1)};function Xc(a,b){b?--a.u||(a.j=a.I?a.Ia:a.F):--a.f||(a.i=a.G)}
l.Db=function(a){this.A||(this.C&&Nb(this.C,4)&&Ob(this.C,"memory fault on "+N(this.C,a),!0,!0),this.u.V())};function Jc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Kc=1,Mc=2;function Nc(a){v.call(this,"Device",a,256)}p(Nc,v);l=Nc.prototype;l.wa=function(a,b,c,d){this.G=b;this.F=a;this.u=c;this.C=d;A(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new L(this)).data()};
l.restore=function(){return!0};eb(function(){for(var a=z(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=x(d);switch(c.type){case "default":c=new Nc(c),Cb(c,d)}}});function Fc(a,b,c,d,e){this.w=a;this.id=Oc+=2;this.B=b;this.Ha=c;this.size=d||0;this.type=e||Pc;this.I=e==Qc;this.b=null;this.g=this.G=this.ab;this.j=this.F=this.Ia;this.f=this.u=0;Gc(this);this.Za=this.Cb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Rc(this,Sc)}else Rc(this)}l=Fc.prototype;l.save=function(){return this.C};
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Za=!0):!1};function Rc(a,b){b||(b=Tc);Uc(a,b,void 0);Vc(a,b,void 0)}function Uc(a,b,c){c&&a.f||(a.g=b[0]||a.ab);if(c||void 0===c)a.G=b[0]||a.ab}function Vc(a,b,c){c&&a.u||(a.j=!a.I&&b[1]||a.Ia);if(c||void 0===c)a.F=b[1]||a.Ia}l.Da=function(a,b){b?this.u++||Vc(this,Wc,!1):this.f++||Uc(this,Wc,!1)};function Xc(a,b){b?--a.u||(a.j=a.I?a.Ia:a.F):--a.f||(a.g=a.G)}
function Gc(a,b,c){a.b=b;a.f=a.u=0;c&&((a.f=c.f)&&Uc(a,Wc,!1),(a.u=c.u)&&Vc(a,Wc,!1))}l.ab=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+N(this.b,b),!0);this.w.Db(b);return-1};l.Ia=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+N(this.b,a)+" to invalid addresses "+N(this.b,c),!0)};l.Rb=function(a){return this.C[a]};l.$b=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Za=!0)};
l.Pb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Yc(c,this.B+a,2,c.M)&&c.V(!1)}return this.G(a,b)};l.Zb=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Yc(d,this.B+b,2,d.J)&&d.V(!1)}this.I?this.Ia(a,0,c):this.F(a,b,c)};var Pc=0,Qc=2,Lc=["NONE","RAM","ROM"],Oc=0,Tc=[],Sc=[Fc.prototype.Rb,Fc.prototype.$b],Wc=[Fc.prototype.Pb,Fc.prototype.Zb];
function Zc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Qa=0;this.Va=b;this.aa=c;this.Ta=Math.round(this.Va/1E4)/100;this.W=this.Ta*this.aa;this.Ua=this.va=this.ba=this.Aa=0;this.v.K=this.v.Pa=!1;this.v.Z=a.autoStart;"string"==typeof this.v.Z&&(this.v.Z="true"==this.v.Z);this.v.Ea=!1;this.ta=this.ia=0;this.ua=+a.csStart;this.ha=+a.csInterval;this.ja=+a.csStop;this.M=[];this.kb=this.Ub.bind(this);this.R=this.L=this.O=this.P=this.J=this.sa=this.N=this.ka=this.Wa=this.S=0;
this.ya=null;D(this)}p(Zc,v);l=Zc.prototype;l.wa=function(a,b,c,d){this.F=a;this.G=b;this.C=d;this.ya=a.w;for(a=0;a<$c.length;a++)(b=this.I[$c[a]])&&this.F.ga(null,$c[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=ad(this.F,"autoStart");null!=c?this.v.Z="true"==c?!0:"false"==c?!1:!!c:null==this.v.Z&&(this.v.Z=!this.C&&void 0===this.I.run);if(!b){if(a){bd(this);if(!this.restore(a))return!1;cd(this)}else this.reset();this.C?(a=this.C,b=this.v.Z,a.ya=!0,a.g("Type ? for help with PDPjs Debugger commands"),dd(a),b||ed(a),a.ua&&(b=a.ua,a.ua=null,fd(a,b))):this.status("No debugger detected");this.v.Z||this.g("CPU will not be auto-started "+(this.ya?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.v.K?!0:this.v.Z?(wc(this),!0):!1};l.rb=function(){return 0};function cd(a){void 0===a.ua&&(a.ua=0);void 0===a.ha&&(a.ha=-1);void 0===a.ja&&(a.ja=-1);a.v.Ea=0<=a.ua&&0<a.ha;a.v.Ea&&(a.ta=0,a.ia=a.ua-a.R)}function Ac(a,b){if(a.v.Ea){var c=!1;a.ta=a.ta+a.rb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.ha,c=!0);0<=a.ja&&a.ja<=gd(a)&&(a.ha=a.ja=-1,cd(a),a.V(),c=!0);c&&a.g(gd(a)+" cycles: checksum="+t(a.ta))}}
this.ya=null;A(this)}p(Zc,v);l=Zc.prototype;l.wa=function(a,b,c,d){this.F=a;this.G=b;this.C=d;this.ya=a.w;for(a=0;a<$c.length;a++)(b=this.I[$c[a]])&&this.F.ga(null,$c[a],b);A(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=ad(this.F,"autoStart");null!=c?this.v.Z="true"==c?!0:"false"==c?!1:!!c:null==this.v.Z&&(this.v.Z=!this.C&&void 0===this.I.run);if(!b){if(a){bd(this);if(!this.restore(a))return!1;cd(this)}else this.reset();this.C?(a=this.C,b=this.v.Z,a.ya=!0,a.i("Type ? for help with PDPjs Debugger commands"),dd(a),b||ed(a),a.ua&&(b=a.ua,a.ua=null,fd(a,b))):this.status("No debugger detected");this.v.Z||this.i("CPU will not be auto-started "+(this.ya?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.v.K?!0:this.v.Z?(wc(this),!0):!1};l.rb=function(){return 0};function cd(a){void 0===a.ua&&(a.ua=0);void 0===a.ha&&(a.ha=-1);void 0===a.ja&&(a.ja=-1);a.v.Ea=0<=a.ua&&0<a.ha;a.v.Ea&&(a.ta=0,a.ia=a.ua-a.R)}function Ac(a,b){if(a.v.Ea){var c=!1;a.ta=a.ta+a.rb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.ha,c=!0);0<=a.ja&&a.ja<=gd(a)&&(a.ha=a.ja=-1,cd(a),a.V(),c=!0);c&&a.i(gd(a)+" cycles: checksum="+t(a.ta))}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.F)if(a=d.F,a.v.U)a=!0;else{var b=null,c,h=zb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.v.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.v.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.v.K?d.V():wc(d))},!0;case "speed":return this.I[b]=
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){hd(d,d.aa<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",!0}return!1};function zc(a,b,c){a.R+=b;c&&(a.O=a.P=0)}function id(a,b){var c=1;b&&1<a.aa&&a.S&&(c=a.S/a.Ta);a.Ua=Math.round(1E3/jd);a.va=Math.floor(a.Va/jd*c);b||(a.ba=a.va);a.Aa=0}function gd(a){return a.R+a.L+a.O-a.P}function bd(a){a.S=0;a.Wa=0;a.R=a.L=a.O=a.P=0;cd(a);hd(a,1)}
function hd(a,b,c){var d=!1;if(void 0!==b){.8>a.S/a.W?b=1:d=!0;a.aa=b;b=a.Ta*a.aa;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.F&&kd(a.F)}zc(a,a.L);a.L=0;a.J=xb();a.N=0;id(a);return d}function ld(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function md(a){for(var b=[],c=0;c<a.M.length;c++)b.push(a.M[c][0]);return b}
function hd(a,b,c){var d=!1;if(void 0!==b){.8>a.S/a.W?b=1:d=!0;a.aa=b;b=a.Ta*a.aa;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.F&&kd(a.F)}zc(a,a.L);a.L=0;a.J=xb();a.N=0;id(a);return d}function ld(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function md(a){for(var b=[],c=0;c<a.M.length;c++)b.push(a.M[c][0]);return b}
function yc(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function nd(a,b){var c=a.O-=a.P;a.P=0;b&&(a.O=0);return c}
l.Ub=function(){if(this.v.K){this.Aa>=this.Va&&id(this,!0);this.ka=0;this.sa=xb();if(this.N){var a=this.sa-this.N;a>this.Ua&&(this.J+=a,this.J>this.sa&&(this.J=this.sa))}try{do{var b=ld(this,this.v.Ea?1:this.va);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=nd(this,!0);this.ka+=b;this.L+=b;Ac(this,b);yc(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.va;++this.Wa>=Id&&(this.F&&M(this.F,void 0),this.Wa=0);break}}while(this.v.K)}catch(e){this.V();this.F&&this.F.stop(xb(),gd(this));Ib(this,
e.stack||e.message);return}if(this.v.K){a=setTimeout;b=this.kb;this.N=xb();var c=this.Ua;this.ka&&(c=Math.round(c*this.ka/this.va));var c=c-(this.N-this.sa),d=this.N-this.J;d&&(this.S=Math.round(this.L/(10*d))/100,864E5<=d&&(this.R=0,hd(this)));if(0>c||this.S<this.W)-1E3>c&&(this.J-=c),c=0;this.Aa+=this.ka;this.N+=c;a(b,c)}}};
function wc(a,b){if(!Jb(a))if(a.v.K)a.g(a.toString()+" busy");else{hd(a);a.v.K=!0;a.v.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&kd(a.F,!0),a.F.start(a.J,gd(a)));a.C||a.status("Started");setTimeout(a.kb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.v.K){nd(this);zc(this,this.L);this.L=0;this.v.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(xb(),gd(this));b=!0;this.C||this.status("Stopped")}this.v.complete=a;return b};var jd=30,Id=15,$c=["power","reset"];
function Jd(a){var b=+a.model||1001;Zc.call(this,a,1E6);this.jb=b;this.gb=+a.addrReset||0;this.Ab=Kd.bind(this);this.b=P.bind(this);this.la=null;this.fb=[];this.v.complete=!1}p(Jd,Zc);l=Jd.prototype;l.reset=function(){this.status("Model "+this.jb);this.v.K&&this.V();this.f=this.H=this.Ba=0;this.w=this.ra=this.gb;this.Ra=this.ib=this.za=this.ub=this.Sa=!1;this.D=-1;this.qa=this.w;this.A=0;this.i=this.Qb;this.j=this.ac;this.la=null;bd(this);this.v.error=!1;Zc.prototype.reset.call(this)};l.rb=function(){return 0};
function wc(a,b){if(!Jb(a))if(a.v.K)a.i(a.toString()+" busy");else{hd(a);a.v.K=!0;a.v.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&kd(a.F,!0),a.F.start(a.J,gd(a)));a.C||a.status("Started");setTimeout(a.kb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.v.K){nd(this);zc(this,this.L);this.L=0;this.v.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(xb(),gd(this));b=!0;this.C||this.status("Stopped")}this.v.complete=a;return b};var jd=30,Id=15,$c=["power","reset"];
function Jd(a){var b=+a.model||1001;Zc.call(this,a,1E6);this.jb=b;this.gb=+a.addrReset||0;this.Ab=Kd.bind(this);this.b=O.bind(this);this.la=null;this.fb=[];this.v.complete=!1}p(Jd,Zc);l=Jd.prototype;l.reset=function(){this.status("Model "+this.jb);this.v.K&&this.V();this.f=this.H=this.Ba=0;this.w=this.ra=this.gb;this.Ra=this.ib=this.za=this.ub=this.Sa=!1;this.D=-1;this.qa=this.w;this.A=0;this.g=this.Qb;this.j=this.ac;this.la=null;bd(this);this.v.error=!1;Zc.prototype.reset.call(this)};l.rb=function(){return 0};
l.save=function(){var a=new L(this);a.set(0,[this.f,this.H,this.D,this.Ba,this.w,this.ra,this.qa,this.A]);a.set(1,[]);a.set(2,[this.R,this.aa,this.v.Z]);a.set(3,Ld(this));a.set(4,md(this));return a.data()};
l.restore=function(a){var b;b=a[0];la();ia();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.H=b.next().value;this.D=b.next().value;this.Ba=b.next().value;this.w=b.next().value;this.ra=b.next().value;this.qa=b.next().value;this.A=b.next().value;b=a[2];this.R=b[0];hd(this,b[1]);this.v.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.fb.length;d++){var e=this.fb[d];if(e.Yb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.M.length&&
b<a.length;b++)this.M[b][0]=a[b];return!0};function Md(a,b){var c=a.w;a.w=(c+b)%Qb;return c}l.abs=function(a){a>Tb&&(a!=Ub?a=Vb-a:this.Ra=this.za=!0);return a};function Nd(a,b){b?b==Ub?a.Ra=a.za=!0:b=Vb-b:a.ib=a.za=!0;return b}function Ld(a){var b=[];for(a=a.la;a;)b.push(a.Yb),a=a.next;return b}l.Qb=function(a){var b=this.G;a=this.qa=a;return b.b[(a&b.w)>>>b.f].i(a&16383,a)};l.ac=function(a,b){var c=this.G;a=this.qa=a;c.b[(a&c.w)>>>c.f].j(b,a&16383,a);return b};
l.Ja=function(a){this.v.complete=!0;var b=this.C?Od(this.C)?1:this.v.Pa?-1:0:0,c=a?this.v.Pa?0:1:-1;this.v.Pa=!1;this.O=this.P=a;this.A=this.A&-5|(b?4:0);do{if(this.A){if(this.A&4){if(Pd(this.C,this.w,c)){this.V();break}++b||(this.A&=-5);c||c++}if(a=this.A&11)this.A&2?this.la||(this.A&=-3):this.A&1&&this.A++,a=!1;if(a){if(this.A&4&&Pd(this.C,this.w,c)){this.V();break}if(0>c)break}}this.A&=15;this.H=this.H&4194304?this.i(this.f):this.Ba=this.i(this.ra=this.w);this.H&=8388607;this.f=this.H&262143;if(a=
this.H>>18&15)this.f=this.f+this.i(a)&Rb;this.H&4194304?a=-1:(this.w=(this.w+1)%Qb,a=this.Ba/Yb|0);0<=a&&this.Ab(a)}while(0<this.P);return this.v.complete?this.O-this.P:!1===this.v.complete?-1:0};eb(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Jd(d);Cb(d,c)}});function Kd(a){Qd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Rd(){var a=0,b=this.i(this.f),c=b/Zb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Zb+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.j(this.f,b)}function Sd(a,b){a=this.i(this.f);if(0>this.D)this.D=a,this.H=this.f|4194304,Md(this,-1);else{var c=this.D/Zb&63,d=this.D>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.j(b,a);this.D=-1}}
function Td(a,b){a=this.i(this.f);if(0>this.D)this.D=a,this.H=this.f|4194304,Md(this,-1);else{var c=this.D/Zb&63,d=this.D>>24&63;b=this.i(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.j(this.f,a);this.D=-1}}function Ud(a,b){this.j(b,this.i(this.f))}function Vd(a,b){this.j(b,this.f)}function Wd(a,b){this.j(this.f,this.i(b))}function Xd(a,b){this.j(b,0)}function Yd(a,b){this.j(b,F-this.i(b))}function Zd(a,b){this.j(b,F)}
function $d(a,b){var c=this.i(this.f),d=this.i(b);this.j(b,ae(a,d,c)+(c-(c&H)))}function be(a,b){var c=this.i(b);this.j(b,ae(a,c,0))}function ce(a,b){b=this.i(b);var c=this.i(this.f);this.j(this.f,ae(a,c,b)+(b-(b&H)))}function de(a,b){var c=this.i(this.f),d=c;if(a&=384)switch(d-=d&H,a){case 256:d+=H;break;case 384:d+=c>Tb?H:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ee(a,b){var c=(this.i(this.f)&H)*G,d=this.i(b);this.j(b,ae(a,d,c)+c)}
function fe(a,b){var c=this.f*G,d=this.i(b);this.j(b,ae(a,d,c)+c)}function ge(a,b){b=(this.i(b)&H)*G;var c=this.i(this.f);this.j(this.f,ae(a,c,b)+b)}function he(a,b){var c=this.i(this.f),d=(c&H)*G,c=ae(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function ie(a,b){var c=this.i(this.f)&H,d=this.i(b);this.j(b,je(a,d,c)+c)}function ke(a,b){var c=this.i(b);this.j(b,je(a,c,this.f)+this.f)}function le(a,b){b=this.i(b)&H;var c=this.i(this.f);this.j(this.f,je(a,c,b)+b)}
function me(a,b){var c=this.i(this.f),d=c;if(a&=384)switch(d&=H,a){case 256:d+=H*G;break;case 384:d+=c>Sb?H*G:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ne(a,b){var c=this.i(this.f)/G|0,d=this.i(b);this.j(b,je(a,d,c)+c)}function oe(a,b){var c=this.i(b);this.j(b,je(a,c,0))}function pe(a,b){b=this.i(b)/G|0;var c=this.i(this.f);this.j(this.f,je(a,c,b)+b)}function qe(a,b){var c=this.i(this.f),d=c/G|0,c=je(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function R(a){this.b(a)}function re(){}
function P(a){this.g("undefined opcode: "+va(a));Md(this,-1);this.V()}function je(a,b,c){switch(a&384){case 0:b-=b&H;break;case 128:b=0;break;case 256:b=H*G;break;case 384:b=c>Sb?H*G:0}return b}function ae(a,b,c){switch(a&384){case 0:b&=H;break;case 128:b=0;break;case 256:b=H;break;case 384:b=c>Tb?H:0}return b}function S(a,b){return((a/J|0)&(b/J|0))*J+((a&b)>>>0)}function se(a,b){return((a/J|0)^(b/J|0))*J+((a^b)>>>0)}function te(a,b){return(~((a/J|0)^(b/J|0))&15)*J+(~(a^b)>>>0)}
function U(a,b){return(a/J|0|b/J|0)*J+((a|b)>>>0)}
var Qd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Rd,function(a,b){0>this.D&&Rd.call(this);Sd.call(this,0,b)},Sd,function(a,b){0>this.D&&Rd.call(this);Td.call(this,0,b)},Td,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
b<a.length;b++)this.M[b][0]=a[b];return!0};function Md(a,b){var c=a.w;a.w=(c+b)%Qb;return c}l.abs=function(a){a>Tb&&(a!=Ub?a=Vb-a:this.Ra=this.za=!0);return a};function Nd(a,b){b?b==Ub?a.Ra=a.za=!0:b=Vb-b:a.ib=a.za=!0;return b}function Ld(a){var b=[];for(a=a.la;a;)b.push(a.Yb),a=a.next;return b}l.Qb=function(a){var b=this.G;a=this.qa=a;return b.b[(a&b.w)>>>b.f].g(a&16383,a)};l.ac=function(a,b){var c=this.G;a=this.qa=a;c.b[(a&c.w)>>>c.f].j(b,a&16383,a);return b};
l.Ja=function(a){this.v.complete=!0;var b=this.C?Od(this.C)?1:this.v.Pa?-1:0:0,c=a?this.v.Pa?0:1:-1;this.v.Pa=!1;this.O=this.P=a;this.A=this.A&-5|(b?4:0);do{if(this.A){if(this.A&4){if(Pd(this.C,this.w,c)){this.V();break}++b||(this.A&=-5);c||c++}if(a=this.A&11)this.A&2?this.la||(this.A&=-3):this.A&1&&this.A++,a=!1;if(a){if(this.A&4&&Pd(this.C,this.w,c)){this.V();break}if(0>c)break}}this.A&=15;this.H=this.H&4194304?this.g(this.f):this.Ba=this.g(this.ra=this.w);this.H&=8388607;this.f=this.H&262143;if(a=
this.H>>18&15)this.f=this.f+this.g(a)&Rb;this.H&4194304?a=-1:(this.w=(this.w+1)%Qb,a=this.Ba/Yb|0);0<=a&&this.Ab(a)}while(0<this.P);return this.v.complete?this.O-this.P:!1===this.v.complete?-1:0};eb(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Jd(d);Cb(d,c)}});function Kd(a){Qd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Rd(){var a=0,b=this.g(this.f),c=b/Zb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Zb+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.j(this.f,b)}function Sd(a,b){a=this.g(this.f);if(0>this.D)this.D=a,this.H=this.f|4194304,Md(this,-1);else{var c=this.D/Zb&63,d=this.D>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.j(b,a);this.D=-1}}
function Td(a,b){a=this.g(this.f);if(0>this.D)this.D=a,this.H=this.f|4194304,Md(this,-1);else{var c=this.D/Zb&63,d=this.D>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.j(this.f,a);this.D=-1}}function Ud(a,b){this.j(b,this.g(this.f))}function Vd(a,b){this.j(b,this.f)}function Wd(a,b){this.j(this.f,this.g(b))}function Xd(a,b){this.j(b,0)}function Yd(a,b){this.j(b,F-this.g(b))}function Zd(a,b){this.j(b,F)}
function $d(a,b){var c=this.g(this.f),d=this.g(b);this.j(b,ae(a,d,c)+(c-(c&H)))}function be(a,b){var c=this.g(b);this.j(b,ae(a,c,0))}function ce(a,b){b=this.g(b);var c=this.g(this.f);this.j(this.f,ae(a,c,b)+(b-(b&H)))}function de(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&H,a){case 256:d+=H;break;case 384:d+=c>Tb?H:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ee(a,b){var c=(this.g(this.f)&H)*G,d=this.g(b);this.j(b,ae(a,d,c)+c)}
function fe(a,b){var c=this.f*G,d=this.g(b);this.j(b,ae(a,d,c)+c)}function ge(a,b){b=(this.g(b)&H)*G;var c=this.g(this.f);this.j(this.f,ae(a,c,b)+b)}function he(a,b){var c=this.g(this.f),d=(c&H)*G,c=ae(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function ie(a,b){var c=this.g(this.f)&H,d=this.g(b);this.j(b,je(a,d,c)+c)}function ke(a,b){var c=this.g(b);this.j(b,je(a,c,this.f)+this.f)}function le(a,b){b=this.g(b)&H;var c=this.g(this.f);this.j(this.f,je(a,c,b)+b)}
function me(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=H,a){case 256:d+=H*G;break;case 384:d+=c>Sb?H*G:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ne(a,b){var c=this.g(this.f)/G|0,d=this.g(b);this.j(b,je(a,d,c)+c)}function oe(a,b){var c=this.g(b);this.j(b,je(a,c,0))}function pe(a,b){b=this.g(b)/G|0;var c=this.g(this.f);this.j(this.f,je(a,c,b)+b)}function qe(a,b){var c=this.g(this.f),d=c/G|0,c=je(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function R(a){this.b(a)}function re(){}
function O(a){this.i("undefined opcode: "+va(a));Md(this,-1);this.V()}function je(a,b,c){switch(a&384){case 0:b-=b&H;break;case 128:b=0;break;case 256:b=H*G;break;case 384:b=c>Sb?H*G:0}return b}function ae(a,b,c){switch(a&384){case 0:b&=H;break;case 128:b=0;break;case 256:b=H;break;case 384:b=c>Tb?H:0}return b}function S(a,b){return((a/I|0)&(b/I|0))*I+((a&b)>>>0)}function se(a,b){return((a/I|0)^(b/I|0))*I+((a^b)>>>0)}function te(a,b){return(~((a/I|0)^(b/I|0))&15)*I+(~(a^b)>>>0)}
function U(a,b){return(a/I|0|b/I|0)*I+((a|b)>>>0)}
var Qd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Rd,function(a,b){0>this.D&&Rd.call(this);Sd.call(this,0,b)},Sd,function(a,b){0>this.D&&Rd.call(this);Td.call(this,0,b)},Td,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Ud,Vd,Wd,function(a,b){b&&this.j(b,this.i(this.f))},function(a,b){a=this.i(this.f);a=(a/G|0)+a%G*G;this.j(b,a)},function(a,b){this.j(b,this.f*G)},function(a,b){a=this.i(b);a=(a/G|0)+a%G*G;this.j(this.f,a)},function(a,b){a=this.i(this.f);a=(a/G|0)+a%G*G;this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,Nd(this,this.i(this.f)))},function(a,b){this.j(b,this.f?Vb-this.f:0)},function(a,b){this.j(this.f,Nd(this,
this.i(b)))},function(a,b){a=Nd(this,this.i(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.i(this.f)))},function(a,b){this.j(b,this.f)},function(a,b){this.j(this.f,this.abs(this.i(b)))},function(a,b){a=this.abs(this.i(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){if(a=this.f<<14>>24){var c=this.i(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.j(b,c)}},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){if(a=this.f<<14>>24){var c=this.i(b),d=this.i(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%E):
(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.j(b,c);this.j(b+1&15,d)}},P,function(a,b){a=this.i(b);this.j(b,this.i(this.f));this.j(this.f,a)},function(a,b){a=!1;for(var c=this.i(b),d=c/G|0,c=c&H;!a;)this.j(c,this.i(d)),c==this.f&&(a=!0),d=d+1&H,c=c+1&H,this.v.K||(this.j(b,d*G+c),a||Md(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a,b){a=this.i(b);a+=262145;this.j(a&H,this.i(this.f));a>=E&&(a-=E);a/G|0||(this.Sa=!0);this.j(b,a)},function(a,b){a=this.i(b);var c=this.i(a&H);this.j(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=E);(a/G|0)==H&&(this.Sa=!0);this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Ud,Vd,Wd,function(a,b){b&&this.j(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/G|0)+a%G*G;this.j(b,a)},function(a,b){this.j(b,this.f*G)},function(a,b){a=this.g(b);a=(a/G|0)+a%G*G;this.j(this.f,a)},function(a,b){a=this.g(this.f);a=(a/G|0)+a%G*G;this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,Nd(this,this.g(this.f)))},function(a,b){this.j(b,this.f?Vb-this.f:0)},function(a,b){this.j(this.f,Nd(this,
this.g(b)))},function(a,b){a=Nd(this,this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.g(this.f)))},function(a,b){this.j(b,this.f)},function(a,b){this.j(this.f,this.abs(this.g(b)))},function(a,b){a=this.abs(this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){if(a=(this.f<<14>>24)%36){var c=this.g(b),c=0<a?c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a)):Math.trunc(c/Math.pow(2,-a))+c*Math.pow(2,36+a)%E;this.j(b,c)}},function(a,b){if(a=this.f<<14>>24){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.j(b,c)}},function(a){this.b(a)},function(a){this.b(a)},
function(a,b){if(a=(this.f<<14>>24)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0<a?36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a))):-36<a?(c=Math.trunc(c/Math.pow(2,-a))+d*Math.pow(2,36+a)%E,d=Math.trunc(d/Math.pow(2,-a))+e*Math.pow(2,36+a)%E):(c=Math.trunc(d/Math.pow(2,-a-36))+c*Math.pow(2,72+a)%E,d=Math.trunc(e/Math.pow(2,-a-36))+
d*Math.pow(2,72+a)%E);this.j(b,c);this.j(b+1&15,d)}},function(a,b){if(a=this.f<<14>>24){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%E):(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.j(b,c);this.j(b+1&15,d)}},O,function(a,b){a=this.g(b);this.j(b,this.g(this.f));this.j(this.f,a)},function(a,b){a=!1;
for(var c=this.g(b),d=c/G|0,c=c&H;!a;)this.j(c,this.g(d)),c==this.f&&(a=!0),d=d+1&H,c=c+1&H,this.v.K||(this.j(b,d*G+c),a||Md(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.j(a&H,this.g(this.f));a>=E&&(a-=E);a/G|0||(this.Sa=!0);this.j(b,a)},function(a,b){a=this.g(b);var c=this.g(a&H);this.j(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=E);(a/G|0)==H&&
(this.Sa=!0);this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Xd,Xd,function(){this.j(this.f,0)},function(a,b){this.j(this.f,this.j(b,0))},function(a,b){this.j(b,S(this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),this.f))},function(a,b){this.j(this.f,S(this.g(b),this.g(this.f)))},
function(a,b){this.j(this.f,this.j(b,S(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(F-this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(F-this.g(b),this.f))},function(a,b){this.j(this.f,S(F-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(F-this.g(b),this.g(this.f))))},Ud,Vd,re,Ud,function(a,b){this.j(b,S(this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),F-this.f))},function(a,b){this.j(this.f,S(this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,
this.j(b,S(this.g(b),F-this.g(this.f))))},re,re,Wd,Wd,function(a,b){this.j(b,se(this.g(b),this.g(this.f)))},function(a,b){this.j(b,se(this.g(b),this.f))},function(a,b){this.j(this.f,se(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,se(this.g(b),this.g(this.f))))},function(a,b){this.j(b,U(this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),this.f))},function(a,b){this.j(this.f,U(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),this.g(this.f))))},
function(a,b){this.j(b,S(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,S(F-this.g(b),F-this.f))},function(a,b){this.j(this.f,S(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(F-this.g(b),F-this.g(this.f))))},function(a,b){this.j(b,te(this.g(b),this.g(this.f)))},function(a,b){this.j(b,te(this.g(b),this.f))},function(a,b){this.j(this.f,te(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,te(this.g(b),this.g(this.f))))},Yd,Yd,function(a,b){this.j(this.f,
F-this.g(b))},function(a,b){this.j(this.f,this.j(b,F-this.g(b)))},function(a,b){this.j(b,U(F-this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(F-this.g(b),this.f))},function(a,b){this.j(this.f,U(F-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(F-this.g(b),this.g(this.f))))},function(a,b){this.j(b,F-this.g(this.f))},function(a,b){this.j(b,F-this.f)},function(){this.j(this.f,F-this.g(this.f))},function(a,b){this.j(this.f,this.j(b,F-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),
F-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),F-this.f))},function(a,b){this.j(this.f,U(this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),F-this.g(this.f))))},function(a,b){this.j(b,U(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,U(F-this.g(b),F-this.f))},function(a,b){this.j(this.f,U(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(F-this.g(b),F-this.g(this.f))))},Zd,Zd,function(){this.j(this.f,F)},function(a,b){this.j(this.f,this.j(b,
F))},$d,be,ce,de,ee,fe,ge,he,$d,be,ce,de,ee,fe,ge,he,$d,be,ce,de,ee,fe,ge,he,$d,be,ce,de,ee,fe,ge,he,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Xd,Xd,function(){this.j(this.f,0)},function(a,b){this.j(this.f,this.j(b,0))},function(a,b){this.j(b,S(this.i(b),this.i(this.f)))},function(a,b){this.j(b,S(this.i(b),this.f))},function(a,b){this.j(this.f,S(this.i(b),this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,S(this.i(b),this.i(this.f))))},function(a,b){this.j(b,S(F-this.i(b),this.i(this.f)))},function(a,b){this.j(b,S(F-this.i(b),this.f))},function(a,
b){this.j(this.f,S(F-this.i(b),this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,S(F-this.i(b),this.i(this.f))))},Ud,Vd,re,Ud,function(a,b){this.j(b,S(this.i(b),F-this.i(this.f)))},function(a,b){this.j(b,S(this.i(b),F-this.f))},function(a,b){this.j(this.f,S(this.i(b),F-this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,S(this.i(b),F-this.i(this.f))))},re,re,Wd,Wd,function(a,b){this.j(b,se(this.i(b),this.i(this.f)))},function(a,b){this.j(b,se(this.i(b),this.f))},function(a,b){this.j(this.f,
se(this.i(b),this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,se(this.i(b),this.i(this.f))))},function(a,b){this.j(b,U(this.i(b),this.i(this.f)))},function(a,b){this.j(b,U(this.i(b),this.f))},function(a,b){this.j(this.f,U(this.i(b),this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.i(b),this.i(this.f))))},function(a,b){this.j(b,S(F-this.i(b),F-this.i(this.f)))},function(a,b){this.j(b,S(F-this.i(b),F-this.f))},function(a,b){this.j(this.f,S(F-this.i(b),F-this.i(this.f)))},function(a,
b){this.j(this.f,this.j(b,S(F-this.i(b),F-this.i(this.f))))},function(a,b){this.j(b,te(this.i(b),this.i(this.f)))},function(a,b){this.j(b,te(this.i(b),this.f))},function(a,b){this.j(this.f,te(this.i(b),this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,te(this.i(b),this.i(this.f))))},Yd,Yd,function(a,b){this.j(this.f,F-this.i(b))},function(a,b){this.j(this.f,this.j(b,F-this.i(b)))},function(a,b){this.j(b,U(F-this.i(b),this.i(this.f)))},function(a,b){this.j(b,U(F-this.i(b),this.f))},function(a,
b){this.j(this.f,U(F-this.i(b),this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,U(F-this.i(b),this.i(this.f))))},function(a,b){this.j(b,F-this.i(this.f))},function(a,b){this.j(b,F-this.f)},function(){this.j(this.f,F-this.i(this.f))},function(a,b){this.j(this.f,this.j(b,F-this.i(this.f)))},function(a,b){this.j(b,U(this.i(b),F-this.i(this.f)))},function(a,b){this.j(b,U(this.i(b),F-this.f))},function(a,b){this.j(this.f,U(this.i(b),F-this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.i(b),
F-this.i(this.f))))},function(a,b){this.j(b,U(F-this.i(b),F-this.i(this.f)))},function(a,b){this.j(b,U(F-this.i(b),F-this.f))},function(a,b){this.j(this.f,U(F-this.i(b),F-this.i(this.f)))},function(a,b){this.j(this.f,this.j(b,U(F-this.i(b),F-this.i(this.f))))},Zd,Zd,function(){this.j(this.f,F)},function(a,b){this.j(this.f,this.j(b,F))},$d,be,ce,de,ee,fe,ge,he,$d,be,ce,de,ee,fe,ge,he,$d,be,ce,de,ee,fe,ge,he,$d,be,ce,de,ee,fe,ge,he,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,
qe,ie,ke,le,me,ne,oe,pe,qe,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},R,R,R,R,R,R,R,R,R,
R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R];
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R];
function ue(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.D=+a.addr;this.w=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.H=wa(this.A);if(this.A){a=this.A;var b=xa(this.H);"json"!=b&&"hex"!=b&&(a=Ea()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,g){g?(c.da("Unable to load ROM resource (error "+g+": "+a+")"),c.A=null):(nb(c.La,a,b),(a=Ma(a,b))?(c.b=a.Y,c.T=a.T):c.A=null);ve(c)})}}p(ue,v);
ue.prototype.wa=function(a,b,c,d){this.G=b;this.u=c;this.C=d;ve(this)};ue.prototype.pa=function(){this.T&&(this.C&&we(this.C,this.id,this.D,this.w,this.T),delete this.T);return!0};ue.prototype.fa=function(){return!0};
function ve(a){if(!Kb(a)){if(a.A){if(!a.b||!a.G)return;a.w||(a.w=a.b.length);if(a.b.length!=a.w)Ib(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.w,8,!0)+")");else{var b;b=a.D;if(Ic(a.G,b,a.w,Qc)){var c;for(c=0;c<a.b.length;c++)Cc(a.G,b+c,a.b[c]);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(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.G,f=d.w,h=[],k=d.D>>>g.f;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.G;d=d.w;f=0;for(e>>>=
g.f;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}D(a)}}eb(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ue(d);Cb(d,c)}});
g.f;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}A(a)}}eb(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ue(d);Cb(d,c)}});
function xe(a){v.call(this,"RAM",a);this.T=this.Ca=null;this.f=+a.addr;this.w=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.A=this.H=!1;this.b=a.file;this.D=wa(this.b);if(this.b){a=this.b;var b=xa(this.D);"json"!=b&&"hex"!=b&&(a=Ea()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,g){g?(c.da("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(nb(c.La,a,b),(a=Ma(a,b))?(c.Ca=a.Ca,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);ye(c)})}}p(xe,v);xe.prototype.wa=function(a,b,c,d){this.G=b;this.u=c;this.C=d;ye(this)};xe.prototype.pa=function(a,b){this.T&&(this.C&&we(this.C,this.id,this.f,this.w,this.T),delete this.T);b||this.reset();return!0};xe.prototype.fa=function(){return!0};
function ye(a){if(a.G&&(!a.A&&a.w&&(Ic(a.G,a.f,a.w,1)?a.A=!0:a.w=0),!Kb(a))){if(!a.A)u("No RAM allocated");else if(a.b){if(!a.Ca)return;ze(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.D+'"'):a.da('Error loading image "'+a.D+'"')}a.H=!0;D(a)}}
function ye(a){if(a.G&&(!a.A&&a.w&&(Ic(a.G,a.f,a.w,1)?a.A=!0:a.w=0),!Kb(a))){if(!a.A)u("No RAM allocated");else if(a.b){if(!a.Ca)return;ze(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.D+'"'):a.da('Error loading image "'+a.D+'"')}a.H=!0;A(a)}}
xe.prototype.reset=function(){if(this.A&&!this.H){for(var a=this.G,b=this.f,c=this.w,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=sa&&(f+=ra);f=Math.trunc(Math.abs(f))%ra;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.B+d);c-=16384;b++;d=0}this.Ca&&ze(this,this.Ca,this.na,this.ma,this.f,!this.C)}this.H=!1};
function ze(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)Cc(a.G,c+f,b[f]);f=!0}f&&(null==d&&(a.u.V(),g=!1),null!=d&&(a=a.u,a.gb=d,a.w=d%Qb,g?a.v.U?a.v.K||wc(a):a.v.Z=!0:a.C&&a.v.U?a.V()||a.F.v.reset||(dd(a.C),M(a.F,-1)):!1===g&&a.V(),!a.v.K&&a.ya&&a.ya.stop()));return f}eb(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new xe(d);Cb(d,c)}});
function Ae(a){v.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.w=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Be;b&&(void 0===c&&(c="Panel"),(c=Bb(c,this.id))&&(b=c.I[b])&&this.ga(null,a,b))}this.b=this.D=null;this.exports={connect:this.tb,receiveData:this.Na,receiveStatus:this.Sb,setConnection:this.Vb}}p(Ae,v);l=Ae.prototype;
l.ga=function(a,b,c){var d=this;switch(b){case Be:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.cb:q.yb:46==c?b=q.cb:a.ctrlKey&&c>=q.bb&&c<=q.zb&&(b=c-(q.bb-q.vb));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.xb&&(b=q.wb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.wa=function(a,b,c,d){this.F=a;this.G=b;this.u=c;this.C=d;D(this)};
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.wa=function(a,b,c,d){this.F=a;this.G=b;this.u=c;this.C=d;A(this)};
l.tb=function(a){if(!this.b){var b=ad(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ia(c[0]);if(d!=this.Ka)return;c=Ia(c[1]);if(this.b=Ab(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.w);if(this.D=e.receiveData){this.w=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.tb(this.w),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new L(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};l.Sb=function(){};l.Vb=function(a,b){return this.b?!1:(this.b=a,this.D=b,!0)};var Be="buffer";
eb(function(){for(var a=z(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ae(d);Cb(d,c)}});function Ce(a){v.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.D=0;this.P=!1;this.A=-1;this.w=[];this.W={}}p(Ce,v);Ce.prototype.sb=function(){return-1};Ce.prototype.$a=function(){};
function De(a,b,c,d){if(c)if(b){0>a.A&&a.w.length&&(a.A=0);if(0>a.A||b!=a.w[a.A])a.w.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.w[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ia(b.substring(c,g))),c=g+1}}return a}
function Ee(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function V(a,b,c){var d;if(b){b=Fe(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ia(n);if(!n){g=!0;break}n=Ge(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],B=n.length;k.length&&He[n]<He[k[k.length-1]]&&Ee(h,k,1);k.push(n);b=b.substr(r+B)}Ee(h,k)&&1==h.length||(g=!0);g?c&&a.g("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Ie(a,null,
function V(a,b,c){var d;if(b){b=Fe(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ia(n);if(!n){g=!0;break}n=Ge(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],C=n.length;k.length&&He[n]<He[k[k.length-1]]&&Ee(h,k,1);k.push(n);b=b.substr(r+C)}Ee(h,k)&&1==h.length||(g=!0);g?c&&a.i("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Ie(a,null,
d))}return d}function Fe(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",g=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=V(a,c[1]);b=b.replace(d+c[1]+e,null!=f?N(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Ge(a,b,c,d){var e;null!=b?(e=a.sb(b),0<=e?e=a.$a(e):(e=a.W[b],null==e&&(e=ta(b,a.ca))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ie(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var B=null==k||isNaN(k),aa=m=m||n;0<n--;)aa||(r=","+r,aa=m),r=(B?"?":k&1?"1":"0")+r,k>>=1,aa--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+va(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}
function Ge(a,b,c,d){var e;null!=b?(e=a.sb(b),0<=e?e=a.$a(e):(e=a.W[b],null==e&&(e=ta(b,a.ca))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Ie(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var C=null==k||isNaN(k),aa=m=m||n;0<n--;)aa||(r=","+r,aa=m),r=(C?"?":k&1?"1":"0")+r,k>>=1,aa--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+va(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function Je(a,b){if(b)return Ie(a,b,a.W[b]);var c=0;for(b in a.W)Ie(a,b,a.W[b]),c++;return 0<c}function N(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=va(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=ua(b,10,a);break;default:b=t(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var He={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Ke(a){Ce.call(this,a);this.ya=!1;this.la=!0;this.va=W();this.L=W(0);this.ja=W(0);this.ba=W(0);this.H=[];this.b=this.M=this.J=[];Le(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Me(this);this.C=this;this.qa={};this.X=this.nb=0;this.S=null;this.O=[];Ne(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=this.ta=null;this.D=this.Aa=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return fd(b,a)}):void 0===global[y]&&(global[y]=function(a){return fd(b,
a)})}p(Ke,Ce);function Y(a){a=a&&a.B;null==a&&(a=-1);return a}function W(a,b,c){return{B:void 0===a?null:a,qb:void 0===b?!1:b,ea:!1,ca:c}}function Oe(a,b,c,d){a.B=b;a.qb=c||!1;a.ea=!1;a.ca=d}function Pe(a){return[a.B,a.qb,a.ca,a.ea,a.Oa]}function Qe(a,b){var c=W(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.lb=De(a,c.Oa=b[4]));return c}l=Ke.prototype;
l.wa=function(a,b,c,d){this.G=b;this.F=a;this.u=c;this.ha=a.w;(a=ad(a,"messages"))&&Ne(this,a);Re(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c,d.ja));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.G.f;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.g("..."):(c=n.type,m=Lc[c],n&&d.g(t(n.id,8)+" %"+t(e<<d.G.f,8)+" %"+t(n.B,8)+" "+t(n.Ha,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=Pc&&(c=-1),m=0);a+=16384;e++}}});D(this)};
l.wa=function(a,b,c,d){this.G=b;this.F=a;this.u=c;this.ha=a.w;(a=ad(a,"messages"))&&Ne(this,a);Re(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c,d.ja));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.G.f;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Lc[c],n&&d.i(t(n.id,8)+" %"+t(e<<d.G.f,8)+" %"+t(n.B,8)+" "+t(n.Ha,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=Pc&&(c=-1),m=0);a+=16384;e++}}});A(this)};
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",fd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.w.length-1&&(b=d.w[++d.A])):40==a.keyCode&&(0<d.A?b=d.w[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,cb(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";fd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,cb(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=xc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function ed(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.xa=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=Dc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.eb=function(a,b,c){var d=Y(a);-1!==d&&(Cc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),M(this.F,-1))};
function Z(a,b,c){var d,e;c||(c=W());var g=c.B;if(void 0!==b){b=Fe(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.H.length;k++){var m=a.H[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=W(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=V(a,b,void 0)}null!=g&&Oe(c,g,d,e);return c}function Se(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lb=De(a,b.Oa=c[2]))}
function Te(a){return va(a/Qb,6)+" "+va(a%Qb,6)}function Ne(a,b){a.C=a;a.X=a.nb=536870916;a.S=null;a.O=[];b=De(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=K[c],a.g(c+" messages enabled"))}}function Re(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.sb=function(a){return Ue.indexOf(a.toUpperCase())};
function Te(a){return va(a/Qb,6)+" "+va(a%Qb,6)}function Ne(a,b){a.C=a;a.X=a.nb=536870916;a.S=null;a.O=[];b=De(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=K[c],a.i(c+" messages enabled"))}}function Re(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.sb=function(a){return Ue.indexOf(a.toUpperCase())};
l.$a=function(a){var b;switch(a){case Ve:b=this.u.w;break;case We:b=this.u.H;break;case Xe:b=this.u.f;break;case Ye:b=this.u.ib?1:0;break;case Ze:b=this.u.za?1:0;break;case $e:b=this.u.Ra?1:0;break;case af:b=this.u.ub?1:0;break;case bf:b=this.u.Sa?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+N(this,W(this.u.ra).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.u&&(c=this.u.v.K)||Lb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.g(a);this.u&&(a=this.u,nd(a),a.ba=0,a.F&&M(a.F,void 0))}};
function Me(a){var b;if(!Od(a))a.f&&a.f.length&&a.g("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(cf);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.g("instruction history buffer allocated")}}function df(a,b,c){if(!ef(a,c))return!1;wc(a.u,b);return!0}
function xc(a,b,c,d){if(!ef(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.D=0;b||Od(a)&&Pd(a,a.u.w,0);try{b=ld(a.u,b);var g=a.u.Ja(b);0<g&&(yc(a.u,g),a.D+=g,zc(a.u,g,!0),Ac(a.u,g),a.ia++)}catch(f){"number"!=typeof f&&(a.D=0,Ib(a.u,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),M(a.F,-1));dd(a,c||!1,e);return 0<a.D}l.V=function(a){this.u&&this.u.V(a)};function dd(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.g(Nf+c),Oe(a.L,a.u.w),b&&1!=a.N?Pf(a):Qf(a))}
function ef(a,b){var c;(c=!a.u||!Kb(a.u))||(c=a.u,c.v.U?c=!0:(c.g(c.toString()+" not powered"),c=!1),c=!c);return c||a.u.v.K?(b||a.g("cpu busy or unavailable, command ignored"),!1):!Jb(a.u)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Me(this);this.ia=0;this.S=null;this.D=0;Oe(this.L,this.u.w);this.v.K=!1;Rf(this);a||dd(this)};
l.save=function(){var a=new L(this);a.set(0,Pe(this.L));a.set(1,Pe(this.ja));a.set(2,Pe(this.ba));a.set(3,[this.w,this.P,this.X]);a.set(4,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Qe(this,a[b++]),this.ja=Qe(this,a[b++]),this.ba=Qe(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.H=a[4]);return!0};l.start=function(a,b){this.N||this.g("running");this.v.K=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.v.K){this.v.K=!1;this.D=b-this.Aa;if(!this.N){b="stopped";if(this.D){a-=this.za;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Od(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}dd(this,!0);ed(this);Rf(this,this.u.w);this.S=null}};function Od(a){return 1<a.b.length||!!a.ka}
function Pd(a,b,c){var d=-1;c||(d=a.u.i(b),2756==d>>23&&a.u.ra==b&&(b=Md(a.u,1)));if(0<c&&(a.ka&&!--a.ka||Yc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.u.i(b)),0<=d&&(Oe(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
l.message=function(a,b){b&&(a+=" @"+N(this,W(this.u.ra).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.u&&(c=this.u.v.K)||Lb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.i(a);this.u&&(a=this.u,nd(a),a.ba=0,a.F&&M(a.F,void 0))}};
function Me(a){var b;if(!Od(a))a.f&&a.f.length&&a.i("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(cf);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.i("instruction history buffer allocated")}}function df(a,b,c){if(!ef(a,c))return!1;wc(a.u,b);return!0}
function xc(a,b,c,d){if(!ef(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.D=0;b||Od(a)&&Pd(a,a.u.w,0);try{b=ld(a.u,b);var g=a.u.Ja(b);0<g&&(yc(a.u,g),a.D+=g,zc(a.u,g,!0),Ac(a.u,g),a.ia++)}catch(f){"number"!=typeof f&&(a.D=0,Ib(a.u,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),M(a.F,-1));dd(a,c||!1,e);return 0<a.D}l.V=function(a){this.u&&this.u.V(a)};function dd(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.i(Nf+c),Oe(a.L,a.u.w),b&&1!=a.N?Pf(a):Qf(a))}
function ef(a,b){var c;(c=!a.u||!Kb(a.u))||(c=a.u,c.v.U?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.u.v.K?(b||a.i("cpu busy or unavailable, command ignored"),!1):!Jb(a.u)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Me(this);this.ia=0;this.S=null;this.D=0;Oe(this.L,this.u.w);this.v.K=!1;Rf(this);a||dd(this)};
l.save=function(){var a=new L(this);a.set(0,Pe(this.L));a.set(1,Pe(this.ja));a.set(2,Pe(this.ba));a.set(3,[this.w,this.P,this.X]);a.set(4,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Qe(this,a[b++]),this.ja=Qe(this,a[b++]),this.ba=Qe(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.H=a[4]);return!0};l.start=function(a,b){this.N||this.i("running");this.v.K=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.v.K){this.v.K=!1;this.D=b-this.Aa;if(!this.N){b="stopped";if(this.D){a-=this.za;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Od(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}dd(this,!0);ed(this);Rf(this,this.u.w);this.S=null}};function Od(a){return 1<a.b.length||!!a.ka}
function Pd(a,b,c){var d=-1;c||(d=a.u.g(b),2756==d>>23&&a.u.ra==b&&(b=Md(a.u,1)));if(0<c&&(a.ka&&!--a.ka||Yc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.u.g(b)),0<=d&&(Oe(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
function Sf(a,b,c,d){var e=W(b.B),g=a.xa(b,1),f,h,k,m=0,n=g/Wb|0,r;for(r in Tf)if(f=Tf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Uf;m=n&3;break;case 32256:k=Vf;m=n&7;break;case 29248:k=Wf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Xf&&(k="B");k=Yf[f||0]+k;k=Ha(k,8);f?(k=28700==h?k+N(a,g/Xb&127,-1):k+N(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=N(a,g&262143,-1),(g=g>>18&15)&&(k+="("+N(a,g,-1)+")")):k+=Te(g);g=k;f="";h=N(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.xa(e,1),f+=" "+Te(k),null==
e.B)break;while(e.B!=b.B)}h+=Ha(f,16)+g;c&&(h=Ha(h,48)+";"+(c||""),h=a.u.v.Ea?h+("cycles="+gd(a.u).toString()+" cs="+t(a.u.ta)):h+(null!=d?"="+d.toString():""));return h}function Le(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Y(c);var d=a.G;Xc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=Y(c),d=a.G,Xc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
l.Da=function(a,b,c){var d=!0;c||Zf(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.g("invalid address: "+N(this,b.B)),d=!1;else{var g=this.G;g.b[e>>>g.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:($f(this,a,a.length-1,"set"),Me(this)));return d};function Zf(a,b,c,d,e){var g=!1;c=Y(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==Y(h)&&(!d||h.ea)){g=!0;h.ea||e||$f(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.G,Xc(d.b[c>>>d.f],b==a.J));h.ea||Me(a);break}}return g}
function ag(a,b){for(var c=1;c<b.length;c++)$f(a,b,c);return b.length-1}function $f(a,b,c,d){c=b[c];a.g(b[0]+" "+N(a,c.B)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Rf(a,b){if(void 0!==b)Yc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!Zf(a,a.b,c,!0))break;b=0}}}
function Yc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Zf(a,d,h,!0),e=!0);if(n=h.lb){for(var g=!1,r=0;r<n.length;r++)if(!bg(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var B=r+1;B<n.length&&n[B].indexOf("else");B++)r++;if(B==n.length){g=!0;break}}a.u.v.K||(g=!0)}if(g){e||$f(a,d,f,"hit");break}}}a.ra--;return g}
l.Da=function(a,b,c){var d=!0;c||Zf(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.i("invalid address: "+N(this,b.B)),d=!1;else{var g=this.G;g.b[e>>>g.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:($f(this,a,a.length-1,"set"),Me(this)));return d};function Zf(a,b,c,d,e){var g=!1;c=Y(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==Y(h)&&(!d||h.ea)){g=!0;h.ea||e||$f(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.G,Xc(d.b[c>>>d.f],b==a.J));h.ea||Me(a);break}}return g}
function ag(a,b){for(var c=1;c<b.length;c++)$f(a,b,c);return b.length-1}function $f(a,b,c,d){c=b[c];a.i(b[0]+" "+N(a,c.B)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Rf(a,b){if(void 0!==b)Yc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!Zf(a,a.b,c,!0))break;b=0}}}
function Yc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Zf(a,d,h,!0),e=!0);if(n=h.lb){for(var g=!1,r=0;r<n.length;r++)if(!bg(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var C=r+1;C<n.length&&n[C].indexOf("else");C++)r++;if(C==n.length){g=!0;break}}a.u.v.K||(g=!0)}if(g){e||$f(a,d,f,"hit");break}}}a.ra--;return g}
function cg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=va(d,2);Oe(e.va,d);g+="="+N(e,e.xa(e.va),36)+" ";c+=g}if(b){b="";for(d=0;d<Ue.length;d++)(e=Ue[d]||"")&&(e+="="+N(a,a.$a(d),d>=Ye?1:d==We?23:18)+" "),b+=e;c+="\n"+b}return c}l.ob=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function we(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Ja(n,k,a.ob);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({fd:b,B:c,Fb:d,T:e,mb:g})}function dg(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.H.length;b++){var g=a.H[b],f=g.B>>>0,h=g.Fb;if(e>=f&&e<f+h){e=Ja(g.mb,[e-f],a.ob);0<=e?eg(a,b,e,d):c&&(e=~e,eg(a,b,e-1,d),eg(a,b,e,d));break}}return d}
function eg(a,b,c,d){var e={},g=a.H[b].mb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function fg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Je(a)||a.g("no variables"),!0;if(!c[2])return Je(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=V(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
function gg(a,b,c){var d=null;if(b=Z(a,b)){var e=dg(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.B-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+N(a,e[1])+")"+f,c&&a.g(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.B)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+N(a,e[5])+")"+f,c&&a.g(g),d||(d=g))}else c&&a.g("no symbols")}return d}
function Pf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trm\tdump misc registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.u,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}f=V(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.w=f%Qb;Oe(a.L,d.w);break;default:a.g("unknown register: "+
g);return}M(a.F);a.g("updated registers:")}}a.g(cg(a,e));c&&(Oe(a.L,d.w),Qf(a,N(a,a.L.B)))}}function hg(a,b){b=Ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.g(c[2]):Ie(a,null,c[2].charCodeAt(0)):V(a,b,!0)}
function ig(a,b,c){if("?"==c)a.g("trace commands:"),a.g("\tt [#]\ttrace # instructions"),a.g("\ttr [#]\ttrace # instructions with register updates"),a.g("\ttc [#]\ttrace # cycles"),a.g("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Ge(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;bb(c,function(){return Mb(a,!0)&&xc(a,e,d,!1)},function(){a.ha&&a.ha.stop();M(a.F,-1);Mb(a,!1)})}}
function Qf(a,b,c,d){if(b=Z(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ge(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.g("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Lb(a,!1)||a.N?a.D:null,f=null!=g?"cycles":null,h=dg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(f=h[3],g=null);h=a.ba;m=b;h.B=m.B;h.ea=m.ea;h.ca=m.ca;a.g(Sf(a,b,f,g));e-=b.B-k;c++}}}
function bg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(Nf+b):(a.P&&(a.g("ended assemble at "+N(a,a.ba.B)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Kb(a)&&0<b.length){a.P&&(b="a "+N(a,a.ba.B)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=Z(a,
f[1],a.ba);if(r){var B=f[2];if(void 0==B)a.g("begin assemble at "+N(a,r.B)),a.P=!0,M(a.F);else{f.shift();f.shift();f.shift();var aa,ff=f.join(""),A=-1,mc,Kg=B.toUpperCase(),od;for(od in Tf){var Oa;mc=+od;var gf=Tf[od];switch(mc){case 32512:Oa=Uf;break;case 32256:Oa=Vf;break;case 29248:Oa=Wf;break;default:Oa=[""]}var hf,pd;for(pd in gf){for(var jf=gf[pd],Pa=0;Pa<Oa.length;Pa++){var qd=Oa[Pa];"S"==qd&&jf>Xf&&(qd="B");if(Kg==Yf[jf]+qd){hf=29248!=mc?Pa:(Pa&3)<<1|(Pa&12)<<2;A=(pd|hf<<6)*Wb;break}}if(0<=
A)break}if(0<=A)break}if(0<=A)if(ff)for(var rd=ff.split(","),mb=0;mb<rd.length;mb++){var nc=rd[mb].trim();if(nc){if(1<mb){a.g("too many operands: "+nc);A=-1;break}var ba=nc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!ba){a.g("unknown operand: "+nc);A=-1;break}var I=V(a,ba[2]);if(void 0==I){A=-1;break}if(!mb&&1<rd.length)if(28700==mc){if(0>I||127<I){a.g("device code out of range: "+ba[2]);A=-1;break}A+=I*Xb}else{if(0>I||15<I){a.g("accumulator address out of range: "+ba[2]);A=-1;break}A+=I<<23}else{if(0>
I||262143<I){a.g("memory address out of range: "+ba[2]);A=-1;break}A+=I;if(ba[3]){I=V(a,ba[3]);if(void 0==I){A=-1;break}if(0>I||15<I){a.g("memory index out of range: "+ba[3]);A=-1;break}A+=I<<18}ba[1]&&(A+=4194304)}}}else a.g("missing operand(s)"),A=-1;else a.g("unknown instruction: "+B);aa=A;0<=aa&&(a.eb(r,aa),a.g(Sf(a,r)))}}break;case "b":a:{var Lg=f[0],Qa=f[1],Mg=b;if("?"==Qa)a.g("breakpoint commands:"),a.g("\tbp #\tset exec breakpoint"),a.g("\tbr #\tset read breakpoint"),a.g("\tbw #\tset write breakpoint"),
a.g("\tbc #\tclear breakpoint (* to clear all)"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [#]\tbreak after # instruction(s)");else{var ya=Lg.charAt(1);if("l"==ya){var sd;sd=0+ag(a,a.b);sd+=ag(a,a.M);(sd+=ag(a,a.J))||a.g("no breakpoints")}else if("n"==ya){var kf=+Qa||0;Qa&&(a.ka=kf);a.g("break after "+kf+" instruction(s)")}else if(void 0===Qa)a.g("missing breakpoint address");else{var O=W();if("*"!=Qa&&(O=Z(a,Qa,a.L),!O))break a;"c"==ya?null==O.B?(Le(a),a.g("all breakpoints cleared")):Zf(a,a.b,
O)||Zf(a,a.M,O)||Zf(a,a.J,O)||a.g("breakpoint missing: "+N(a,O.B)):null!=O.B&&(Se(a,O,Mg),"p"==ya?a.Da(a.b,O):"r"==ya?a.Da(a.M,O):"w"==ya?a.Da(a.J,O):a.g("unknown breakpoint command: "+ya))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Ra,Sa=f[0],ca=f[1],oa=f[2],Ng=f[3];if("?"==ca){var Ta="";for(Ra in K)a.qa[Ra]&&(Ta&&(Ta+=","),Ta+=Ra);Ta+=",state,symbols";a.g("dump memory commands:");a.g("\tdw [a] [n] dump n words at address a");a.g("\tds [a] [n] dump n words at address a as JSON");
a.g("\tdh [p] [n] dump n instructions from history position p");Ta.length&&a.g("dump extension commands:\n\t"+Ta)}else if("state"==ca){var td=jg(a.F,!0);"console"==oa?console.log(td):(a.oa&&(a.oa.value=""),td&&a.g(td))}else if("symbols"==ca)for(var ud=0;ud<a.H.length;ud++){var vd=a.H[ud],Ua;for(Ua in vd.T)if("."!=Ua.charAt(0)){var lf=vd.T[Ua].o;if(void 0!==lf){var mf=vd.T[Ua].l;mf&&(Ua=mf);a.g(N(a,lf)+" "+Ua)}}}else{if("d"==Sa){for(Ra in K)if(f[1]==Ra){var nf=a.qa[Ra];nf?(f.shift(),f.shift(),nf(f)):
a.g("no dump registered for "+ca);break a}ca||(Sa=a.Ba||"dw")}else a.Ba=Sa;if("dh"==Sa){var of=ca,pf=oa,qf="",rf=0,X=a.R,da=a.f;if(da.length){var T=+of||a.sa,ob=+pf||10;isNaN(T)?T=ob:qf="more ";T>da.length&&(a.g("note: only "+da.length+" available"),T=da.length);X-=T;0>X&&(null==da[da.length-1].B?(T=X+T,X=0):X+=da.length);var wd=[];"call"==pf&&(ob=1E5,wd=["CALL"]);for(void 0!==of&&a.g(T+" instructions earlier:");0<ob&&X!=a.R;){var sf=da[X++];if(null==sf.B)break;var pb=W(sf.B),Og=T--,tf=Sf(a,pb,"history",
Og);(!wd.length||0<=tf.indexOf(wd[0]))&&a.g(tf);pb.Ya&&(X+=pb.Ya,ob-=pb.Ya,T-=pb.Ya);X>=da.length&&(X=0);a.sa=T;rf++;ob--}}rf||(a.g("no "+qf+"history available"),a.sa=void 0)}else{var Va=Z(a,ca,a.ja);if(Va){var za=0,uf="ds"==Sa;if(oa){if("l"==oa.charAt(0))oa=oa.substr(1)||Ng,za=Ge(a,oa);else{var vf=Z(a,oa);vf&&(za=vf.B-Va.B)}0>za&&(za=0);65536<za&&(za=65536)}var Pg=a.ca;Va.ca&&(a.ca=Va.ca);for(var wf="db"==Sa?1:2,xd=za||32,yd=1==wf?2:4,Qg=(xd+yd-1)/yd|0||1,Aa="";Qg--&&0<xd;){for(var Ba="",xf="",ca=
N(a,Va.B),yf=yd;0<yf--&&0<xd--;){var oc=a.xa(Va,1);uf?(Ba&&(Ba+=","),Ba+=oc):(Ba+=Te(oc),Ba+=" ");for(var zf=0;1==wf&&6>zf;zf++)xf+=String.fromCharCode((oc%64|0)+32),oc/=64}Aa&&(Aa+="\n");Aa=uf?Aa+(Ba+","):Aa+(ca+": "+Ba+(0>yf?" "+xf:""))}Aa&&a.g(Aa);a.ca=Pg}}}}break;case "e":if("else"==f[0])break;var Af,Bf,Cf=f[0],zd=f[1];"e"==Cf||"ew"==Cf?(Af=a.xa,Bf=a.eb):zd=null;if(null==zd)a.g("edit memory commands:"),a.g("\tew [a] [...] edit words at address a");else{var pc=Z(a,zd,a.ja);if(pc)for(var qc=2;qc<
f.length;qc++){var Ad=V(a,f[qc]);if(void 0===Ad){a.g("unknown value: "+f[qc]);break}a.g("changing "+N(a,pc.B)+" from "+Te(Af.call(a,pc))+" to "+Te(Ad));Bf.call(a,pc,Ad,1)}}break;case "g":a:{var Df=f[1],Rg=b;if(void 0!==Df){var Bd=Z(a,Df);if(!Bd)break a;Se(a,Bd,Rg);a.Da(a.b,Bd,!0)}df(a,!0,c)}break;case "h":a.v.K?(c||a.g("halting"),a.V()):Lb(a,!0)||c||a.g("already halted");break;case "i":if("if"==f[0]){var Cd;var qb=b.substr(2),qb=Ia(qb);V(a,qb)?(c||a.g("true: "+qb),Cd=!0):(c||a.g("false: "+qb),Cd=
!1);Cd||(d=!1);break}g=!0;break;case "k":var Sg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Dd=0,Ed=W(),rb=W();for(a.g("stack trace for "+N(a,rb.B));10>Dd;){for(var Ca=null,Tg=256;65536>rb.B>>>0;){Ed.B=a.xa(rb,2);if(null==rb.B||!Tg--)break;if(!(Ed.B&1)){for(var Ug=a,rc=Ed,Ef=null,sb=rc.B,Ff=sb,Fd=1;6>=Fd&&sb;Fd++){if(2<Fd){rc.B=sb;var sc=Sf(Ug,rc);if(0<=sc.indexOf("JSR")){var Gf=sc.indexOf(" ");if(sb+(sc.indexOf(" ",
Gf+1)-Gf-1)/2==Ff){Ef=sc;break}}}sb-=2}rc.B=Ff;if(Ca=Ef)break}}if(!Ca||null==Ca)break;var Hf=null;if("ks"==Sg){var If=Ca.match(/[0-9A-F]+$/);If&&(Hf=gg(a,If[0]))}Ca=Ha(Ca,50)+" ;"+(Hf||"stack="+N(a,rb.B));a.g(Ca);Dd++}Dd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){gg(a,f[1],!0);break}g=!0;break;case "m":a:{var ea,fa=null,C=f[1];"?"==C&&(C=void 0);if(void 0!==C){var pa=0;if("all"==C)pa=1879046143,C=null;else if("on"==C)fa=!0,C=null;else if("off"==C)fa=!1,C=null;else{"keys"==C&&
(C="key");"kbd"==C&&(C="keyboard");for(ea in K)if(C==ea){pa=K[ea];fa=!!(a.X&pa);break}if(!pa){a.g("unknown message category: "+C);break a}}if(pa)if("on"==f[2])a.X|=pa,fa=!0;else if("off"==f[2]&&(a.X&=~pa,fa=!1,1073741824==pa)){for(var Jf=1E3<=a.O.length?a.O.length-1E3:0;Jf<a.O.length;)a.g(a.O[Jf++]);a.O=[]}}var Vg=0,tb="";for(ea in K)if(!C||C==ea){var Wg=!!(a.X&K[ea]);if(null===fa||fa==Wg)tb&&(tb+=","),++Vg%10||(tb+="\n\t"),"key"==ea&&(ea="keys"),tb+=ea}void 0===C&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(tb||"none"));Me(a)}break;case "p":if("print"==f[0]){hg(a,b.substr(5));break}var Kf=f[0],Lf="p"==Kf?0:"pr"==Kf?1:-1;if("?"==f[1]||0>Lf)a.g("step commands:"),a.g("\tp\tstep over instruction"),a.g("\tpr\tstep over instruction with register update");else if(a.N)a.g("step in progress");else{var Mf=W(a.u.w);a.xa(Mf);a.N?(a.Da(a.b,Mf,!0),df(a)||(a.F&&kd(a.F),a.N=0)):ig(a,Lf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();
break}Pf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var ub=+f[2];if(8==ub||10==ub||16==ub)a.ca=ub;else{a.g("invalid base: "+ub);break}}a.g("default base: "+a.ca);break;case "cs":var vb;void 0!==f[3]&&(vb=+f[3]);switch(f[2]){case "int":a.u.ha=vb;break;case "start":a.u.ua=vb;break;case "stop":a.u.ja=vb;break;default:a.g("unknown cs option");break a}void 0!==vb&&cd(a.u);a.g("checksums "+(a.u.v.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(hd(a.u,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));
a.g("target speed: "+(a.u.W.toFixed(2)+"Mhz")+" ("+a.u.aa+"x)");break;default:if(f[1]){a.g("unknown option: "+f[1]);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;case "t":ig(a,f[0],f[1]);break;case "u":Qf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){fg(a,
b.substr(3))||(d=!1);break}if("ver"==f[0]){a.g((Pb||"PDP10")+" version 1.34.2 ("+a.u.jb+",RELEASE)");a.g(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){hg(a,b.substr(1));break}var Gd="commands:",Hd;for(Hd in kg)Gd+="\n"+Ha(Hd,9)+kg[Hd];Od(a)||(Gd+="\nnote: history disabled if no exec breakpoints");a.g(Gd);break;default:g=!0}g&&(a.g("unknown command: "+b),d=!1)}}catch(Of){a.g("debugger error: "+(Of.stack||Of.message)),d=!1}return d}
function eg(a,b,c,d){var e={},g=a.H[b].mb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function fg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Je(a)||a.i("no variables"),!0;if(!c[2])return Je(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=V(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function gg(a,b,c){var d=null;if(b=Z(a,b)){var e=dg(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.B-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+N(a,e[1])+")"+f,c&&a.i(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.B)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+N(a,e[5])+")"+f,c&&a.i(g),d||(d=g))}else c&&a.i("no symbols")}return d}
function Pf(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=V(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.w=f%Qb;Oe(a.L,d.w);break;default:a.i("unknown register: "+
g);return}M(a.F);a.i("updated registers:")}}a.i(cg(a,e));c&&(Oe(a.L,d.w),Qf(a,N(a,a.L.B)))}}function hg(a,b){b=Ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):Ie(a,null,c[2].charCodeAt(0)):V(a,b,!0)}
function ig(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Ge(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;bb(c,function(){return Mb(a,!0)&&xc(a,e,d,!1)},function(){a.ha&&a.ha.stop();M(a.F,-1);Mb(a,!1)})}}
function Qf(a,b,c,d){if(b=Z(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ge(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.i("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Lb(a,!1)||a.N?a.D:null,f=null!=g?"cycles":null,h=dg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(f=h[3],g=null);h=a.ba;m=b;h.B=m.B;h.ea=m.ea;h.ca=m.ca;a.i(Sf(a,b,f,g));e-=b.B-k;c++}}}
function bg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(Nf+b):(a.P&&(a.i("ended assemble at "+N(a,a.ba.B)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Kb(a)&&0<b.length){a.P&&(b="a "+N(a,a.ba.B)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=Z(a,
f[1],a.ba);if(r){var C=f[2];if(void 0==C)a.i("begin assemble at "+N(a,r.B)),a.P=!0,M(a.F);else{f.shift();f.shift();f.shift();var aa,ff=f.join(""),B=-1,mc,Kg=C.toUpperCase(),od;for(od in Tf){var Oa;mc=+od;var gf=Tf[od];switch(mc){case 32512:Oa=Uf;break;case 32256:Oa=Vf;break;case 29248:Oa=Wf;break;default:Oa=[""]}var hf,pd;for(pd in gf){for(var jf=gf[pd],Pa=0;Pa<Oa.length;Pa++){var qd=Oa[Pa];"S"==qd&&jf>Xf&&(qd="B");if(Kg==Yf[jf]+qd){hf=29248!=mc?Pa:(Pa&3)<<1|(Pa&12)<<2;B=(pd|hf<<6)*Wb;break}}if(0<=
B)break}if(0<=B)break}if(0<=B)if(ff)for(var rd=ff.split(","),mb=0;mb<rd.length;mb++){var nc=rd[mb].trim();if(nc){if(1<mb){a.i("too many operands: "+nc);B=-1;break}var ba=nc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!ba){a.i("unknown operand: "+nc);B=-1;break}var J=V(a,ba[2]);if(void 0==J){B=-1;break}if(!mb&&1<rd.length)if(28700==mc){if(0>J||127<J){a.i("device code out of range: "+ba[2]);B=-1;break}B+=J*Xb}else{if(0>J||15<J){a.i("accumulator address out of range: "+ba[2]);B=-1;break}B+=J<<23}else{if(0>
J||262143<J){a.i("memory address out of range: "+ba[2]);B=-1;break}B+=J;if(ba[3]){J=V(a,ba[3]);if(void 0==J){B=-1;break}if(0>J||15<J){a.i("memory index out of range: "+ba[3]);B=-1;break}B+=J<<18}ba[1]&&(B+=4194304)}}}else a.i("missing operand(s)"),B=-1;else a.i("unknown instruction: "+C);aa=B;0<=aa&&(a.eb(r,aa),a.i(Sf(a,r)))}}break;case "b":a:{var Lg=f[0],Qa=f[1],Mg=b;if("?"==Qa)a.i("breakpoint commands:"),a.i("\tbp #\tset exec breakpoint"),a.i("\tbr #\tset read breakpoint"),a.i("\tbw #\tset write breakpoint"),
a.i("\tbc #\tclear breakpoint (* to clear all)"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [#]\tbreak after # instruction(s)");else{var ya=Lg.charAt(1);if("l"==ya){var sd;sd=0+ag(a,a.b);sd+=ag(a,a.M);(sd+=ag(a,a.J))||a.i("no breakpoints")}else if("n"==ya){var kf=+Qa||0;Qa&&(a.ka=kf);a.i("break after "+kf+" instruction(s)")}else if(void 0===Qa)a.i("missing breakpoint address");else{var P=W();if("*"!=Qa&&(P=Z(a,Qa,a.L),!P))break a;"c"==ya?null==P.B?(Le(a),a.i("all breakpoints cleared")):Zf(a,a.b,
P)||Zf(a,a.M,P)||Zf(a,a.J,P)||a.i("breakpoint missing: "+N(a,P.B)):null!=P.B&&(Se(a,P,Mg),"p"==ya?a.Da(a.b,P):"r"==ya?a.Da(a.M,P):"w"==ya?a.Da(a.J,P):a.i("unknown breakpoint command: "+ya))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Ra,Sa=f[0],ca=f[1],oa=f[2],Ng=f[3];if("?"==ca){var Ta="";for(Ra in K)a.qa[Ra]&&(Ta&&(Ta+=","),Ta+=Ra);Ta+=",state,symbols";a.i("dump memory commands:");a.i("\tdw [a] [n] dump n words at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
a.i("\tdh [p] [n] dump n instructions from history position p");Ta.length&&a.i("dump extension commands:\n\t"+Ta)}else if("state"==ca){var td=jg(a.F,!0);"console"==oa?console.log(td):(a.oa&&(a.oa.value=""),td&&a.i(td))}else if("symbols"==ca)for(var ud=0;ud<a.H.length;ud++){var vd=a.H[ud],Ua;for(Ua in vd.T)if("."!=Ua.charAt(0)){var lf=vd.T[Ua].o;if(void 0!==lf){var mf=vd.T[Ua].l;mf&&(Ua=mf);a.i(N(a,lf)+" "+Ua)}}}else{if("d"==Sa){for(Ra in K)if(f[1]==Ra){var nf=a.qa[Ra];nf?(f.shift(),f.shift(),nf(f)):
a.i("no dump registered for "+ca);break a}ca||(Sa=a.Ba||"dw")}else a.Ba=Sa;if("dh"==Sa){var of=ca,pf=oa,qf="",rf=0,X=a.R,da=a.f;if(da.length){var T=+of||a.sa,ob=+pf||10;isNaN(T)?T=ob:qf="more ";T>da.length&&(a.i("note: only "+da.length+" available"),T=da.length);X-=T;0>X&&(null==da[da.length-1].B?(T=X+T,X=0):X+=da.length);var wd=[];"call"==pf&&(ob=1E5,wd=["CALL"]);for(void 0!==of&&a.i(T+" instructions earlier:");0<ob&&X!=a.R;){var sf=da[X++];if(null==sf.B)break;var pb=W(sf.B),Og=T--,tf=Sf(a,pb,"history",
Og);(!wd.length||0<=tf.indexOf(wd[0]))&&a.i(tf);pb.Ya&&(X+=pb.Ya,ob-=pb.Ya,T-=pb.Ya);X>=da.length&&(X=0);a.sa=T;rf++;ob--}}rf||(a.i("no "+qf+"history available"),a.sa=void 0)}else{var Va=Z(a,ca,a.ja);if(Va){var za=0,uf="ds"==Sa;if(oa){if("l"==oa.charAt(0))oa=oa.substr(1)||Ng,za=Ge(a,oa);else{var vf=Z(a,oa);vf&&(za=vf.B-Va.B)}0>za&&(za=0);65536<za&&(za=65536)}var Pg=a.ca;Va.ca&&(a.ca=Va.ca);for(var wf="db"==Sa?1:2,xd=za||32,yd=1==wf?2:4,Qg=(xd+yd-1)/yd|0||1,Aa="";Qg--&&0<xd;){for(var Ba="",xf="",ca=
N(a,Va.B),yf=yd;0<yf--&&0<xd--;){var oc=a.xa(Va,1);uf?(Ba&&(Ba+=","),Ba+=oc):(Ba+=Te(oc),Ba+=" ");for(var zf=0;1==wf&&6>zf;zf++)xf+=String.fromCharCode((oc%64|0)+32),oc/=64}Aa&&(Aa+="\n");Aa=uf?Aa+(Ba+","):Aa+(ca+": "+Ba+(0>yf?" "+xf:""))}Aa&&a.i(Aa);a.ca=Pg}}}}break;case "e":if("else"==f[0])break;var Af,Bf,Cf=f[0],zd=f[1];"e"==Cf||"ew"==Cf?(Af=a.xa,Bf=a.eb):zd=null;if(null==zd)a.i("edit memory commands:"),a.i("\tew [a] [...] edit words at address a");else{var pc=Z(a,zd,a.ja);if(pc)for(var qc=2;qc<
f.length;qc++){var Ad=V(a,f[qc]);if(void 0===Ad){a.i("unknown value: "+f[qc]);break}a.i("changing "+N(a,pc.B)+" from "+Te(Af.call(a,pc))+" to "+Te(Ad));Bf.call(a,pc,Ad,1)}}break;case "g":a:{var Df=f[1],Rg=b;if(void 0!==Df){var Bd=Z(a,Df);if(!Bd)break a;Se(a,Bd,Rg);a.Da(a.b,Bd,!0)}df(a,!0,c)}break;case "h":a.v.K?(c||a.i("halting"),a.V()):Lb(a,!0)||c||a.i("already halted");break;case "i":if("if"==f[0]){var Cd;var qb=b.substr(2),qb=Ia(qb);V(a,qb)?(c||a.i("true: "+qb),Cd=!0):(c||a.i("false: "+qb),Cd=
!1);Cd||(d=!1);break}g=!0;break;case "k":var Sg=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Dd=0,Ed=W(),rb=W();for(a.i("stack trace for "+N(a,rb.B));10>Dd;){for(var Ca=null,Tg=256;65536>rb.B>>>0;){Ed.B=a.xa(rb,2);if(null==rb.B||!Tg--)break;if(!(Ed.B&1)){for(var Ug=a,rc=Ed,Ef=null,sb=rc.B,Ff=sb,Fd=1;6>=Fd&&sb;Fd++){if(2<Fd){rc.B=sb;var sc=Sf(Ug,rc);if(0<=sc.indexOf("JSR")){var Gf=sc.indexOf(" ");if(sb+(sc.indexOf(" ",
Gf+1)-Gf-1)/2==Ff){Ef=sc;break}}}sb-=2}rc.B=Ff;if(Ca=Ef)break}}if(!Ca||null==Ca)break;var Hf=null;if("ks"==Sg){var If=Ca.match(/[0-9A-F]+$/);If&&(Hf=gg(a,If[0]))}Ca=Ha(Ca,50)+" ;"+(Hf||"stack="+N(a,rb.B));a.i(Ca);Dd++}Dd||a.i("no return addresses found")}break;case "l":if("ln"==f[0]){gg(a,f[1],!0);break}g=!0;break;case "m":a:{var ea,fa=null,D=f[1];"?"==D&&(D=void 0);if(void 0!==D){var pa=0;if("all"==D)pa=1879046143,D=null;else if("on"==D)fa=!0,D=null;else if("off"==D)fa=!1,D=null;else{"keys"==D&&
(D="key");"kbd"==D&&(D="keyboard");for(ea in K)if(D==ea){pa=K[ea];fa=!!(a.X&pa);break}if(!pa){a.i("unknown message category: "+D);break a}}if(pa)if("on"==f[2])a.X|=pa,fa=!0;else if("off"==f[2]&&(a.X&=~pa,fa=!1,1073741824==pa)){for(var Jf=1E3<=a.O.length?a.O.length-1E3:0;Jf<a.O.length;)a.i(a.O[Jf++]);a.O=[]}}var Vg=0,tb="";for(ea in K)if(!D||D==ea){var Wg=!!(a.X&K[ea]);if(null===fa||fa==Wg)tb&&(tb+=","),++Vg%10||(tb+="\n\t"),"key"==ea&&(ea="keys"),tb+=ea}void 0===D&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.i((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(tb||"none"));Me(a)}break;case "p":if("print"==f[0]){hg(a,b.substr(5));break}var Kf=f[0],Lf="p"==Kf?0:"pr"==Kf?1:-1;if("?"==f[1]||0>Lf)a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else if(a.N)a.i("step in progress");else{var Mf=W(a.u.w);a.xa(Mf);a.N?(a.Da(a.b,Mf,!0),df(a)||(a.F&&kd(a.F),a.N=0)):ig(a,Lf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();
break}Pf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var ub=+f[2];if(8==ub||10==ub||16==ub)a.ca=ub;else{a.i("invalid base: "+ub);break}}a.i("default base: "+a.ca);break;case "cs":var vb;void 0!==f[3]&&(vb=+f[3]);switch(f[2]){case "int":a.u.ha=vb;break;case "start":a.u.ua=vb;break;case "stop":a.u.ja=vb;break;default:a.i("unknown cs option");break a}void 0!==vb&&cd(a.u);a.i("checksums "+(a.u.v.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(hd(a.u,+f[2])||a.i("warning: using 1x multiplier, previous target not reached"));
a.i("target speed: "+(a.u.W.toFixed(2)+"Mhz")+" ("+a.u.aa+"x)");break;default:if(f[1]){a.i("unknown option: "+f[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":ig(a,f[0],f[1]);break;case "u":Qf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){fg(a,
b.substr(3))||(d=!1);break}if("ver"==f[0]){a.i((Pb||"PDP10")+" version 1.34.2 ("+a.u.jb+",RELEASE)");a.i(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){hg(a,b.substr(1));break}var Gd="commands:",Hd;for(Hd in kg)Gd+="\n"+Ha(Hd,9)+kg[Hd];Od(a)||(Gd+="\nnote: history disabled if no exec breakpoints");a.i(Gd);break;default:g=!0}g&&(a.i("unknown command: "+b),d=!1)}}catch(Of){a.i("debugger error: "+(Of.stack||Of.message)),d=!1}return d}
function fd(a,b,c){b=De(a,b,c);for(var d in b)if(!bg(a,b[+d]))return!1;return!0}
var kg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Xf=20,Yf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
Ve=0,We=1,Xe=2,Ye=3,Ze=4,$e=5,af=6,bf=7,Ue="PC RA EA C0 C1 OV ND PD".split(" "),lg={},Tf=(lg[28672]={0:101},lg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},lg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Xf,9216:53,9472:52,
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},lg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},lg[29248]={24576:79,24640:80,25088:81,25152:82},lg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},lg),Uf=["","I","M","S"],Vf=" L E LE A GE N G".split(" "),Wf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),cf=1E3,Nf=">> ";eb(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ke(d);Cb(d,c)}});
function mg(a,b,c){v.call(this,"Computer",a,33554432);this.v.U=!1;this.R=null;ng(this,b);this.O=ad(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.H=this.N=null;this.L=this.W=!1;this.J=this.D=null;this.S=this.P=!1;this.ba=ad(this,"url")||"";(Math.random()+.1).toString(36);this.f=og(this);if(this.u=Bb("CPU",this.id)){this.C=Bb("Debugger",this.id);this.G=new Ec({id:this.La+".bus",busWidth:this.aa},this.u,this.C);var d,e=zb(this.id);if((this.w=Bb("Panel",this.id))&&this.w.oa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.w.da,d.g=this.w.g,d.oa=this.w.oa;this.g(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.wa&&d.wa(this,this.G,this.u,this.C);b=null;d=ad(this,"resume",a);void 0!==d&&(1<d.length?b=this.H=d:this.b=parseInt(d,10));var g;if(a=ad(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=pg),this.b&&(this.J=new L(this,"1.34.2"),qg(this.J)?b=null:
delete this.J);!b&&this.b&&(b=rg(this))&&(this.L=!0);if(b){var f=this;La(b,null,!0,function(a,b,c){c?(f.H=null,f.L=!1,f.da("Unable to load machine state from server (error "+c+(b?": "+Ia(b):"")+")")):(f.M=b,f.W=!0);D(f)})}else D(this);this.I.power||(this.O=!0);!c&&this.O&&sg(this,this.Ga)}else u("Unable to find CPU component")}p(mg,v);function ng(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
0;b<e.length;b++)d=e[b],d.da=this.w.da,d.i=this.w.i,d.oa=this.w.oa;this.i(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.wa&&d.wa(this,this.G,this.u,this.C);b=null;d=ad(this,"resume",a);void 0!==d&&(1<d.length?b=this.H=d:this.b=parseInt(d,10));var g;if(a=ad(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=pg),this.b&&(this.J=new L(this,"1.34.2"),qg(this.J)?b=null:
delete this.J);!b&&this.b&&(b=rg(this))&&(this.L=!0);if(b){var f=this;La(b,null,!0,function(a,b,c){c?(f.H=null,f.L=!1,f.da("Unable to load machine state from server (error "+c+(b?": "+Ia(b):"")+")")):(f.M=b,f.W=!0);A(f)})}else A(this);this.I.power||(this.O=!0);!c&&this.O&&sg(this,this.Ga)}else u("Unable to find CPU component")}p(mg,v);function ng(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
function ad(a,b,c,d){var e=b.toLowerCase(),e=$a(b)||$a(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function sg(a,b,c){for(var d=zb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Kb(g)){Kb(g,function(){sg(a,b,c)});return}}b.call(a,c)}
function tg(a,b){var c=new L(a,"1.34.2",ug);if(qg(c)&&vg(c)){var d=c.get(wg),e=b?b.get(wg):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=mg.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?xg:pg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.J||new L(this,"1.34.2");if(a==yg)b=!0;else if(a>pg){if(qg(d,this.M)){this.D=new L(this,"1.34.2",zg);qg(this.D)&&(Ag(this,d),a=Bg,Cg(this.D));this.D.set(wg,Ka());Dg(this.D);var e=this.b&&!this.L;if(a==xg||yb("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=vg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?qg(d,f):("error"==g&&"no machine state"!=
f?(this.da("Error: "+f),"unable to verify user"==f&&(Ya(Eg,""),this.f=null)):this.g(g+": "+f),Cg(d),qg(d)?(c=vg(d),e=!0):c=!1))}e&&tg(this,c?d:null)}else a==Bg&&d.clear()}else tg(this);delete this.M;delete this.J}e=zb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.u&&(c=Fg(this,f,d,b,c));b=[d,a,c];a!=yg?sg(this,this.pb,b):this.pb(b)}};
f?(this.da("Error: "+f),"unable to verify user"==f&&(Ya(Eg,""),this.f=null)):this.i(g+": "+f),Cg(d),qg(d)?(c=vg(d),e=!0):c=!1))}e&&tg(this,c?d:null)}else a==Bg&&d.clear()}else tg(this);delete this.M;delete this.J}e=zb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.u&&(c=Fg(this,f,d,b,c));b=[d,a,c];a!=yg?sg(this,this.pb,b):this.pb(b)}};
function Fg(a,b,c,d,e){if(!b.v.U){b.v.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(u("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=pg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.hb){var f=b.hb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.v.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.u&&(Fg(this,this.u,b,c,a),M(this,-2),this.u.Z());this.P&&(Ag(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.A=0};
function Ag(a,b){if(yb("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;La("http://www.pcjs.org/api/v1/report",d,!0)}}
@ -229,7 +230,7 @@ function bh(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(nb(c,b,a),(
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?ch(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function ch(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");La(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],f);ch(a,b,c)}})}else c(a,null)}
function dh(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&z(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Fa(a))}function f(a){g("Error: "+a);m&&(--$g||ib(!0));m=!1}var h,k,m=!0;$g++;wb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=n:B.appendChild(document.createTextNode(n));r.appendChild(B)}d||
function dh(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&z(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Fa(a))}function f(a){g("Error: "+a);m&&(--$g||ib(!0));m=!1}var h,k,m=!0;$g++;wb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=n:C.appendChild(document.createTextNode(n));r.appendChild(C)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?ah(d,null,a,null,!1,g,function(a,e){e?(nb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--$g||ib(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--$g||
ib(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?ah(c,b,a,e,!0,g,n):bh(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(aa){f(aa.message)}return m}window.embedPDP10=function(a,b,c,d){ib(!1);return dh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return dh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return Bb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Eb[a]){for(var c=!0,d=Eb,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Db(a)||(c=!1)}return c};window.enableEvents=ib;window.sendEvent=kb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map