Added support for MACRO-10 literals

This commit is contained in:
Jeff 2017-03-13 10:33:22 -07:00 committed by Jeff Parsons
commit 8b1625a174
2 changed files with 163 additions and 96 deletions

View file

@ -63,37 +63,37 @@ Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c
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 v="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,17)-1,x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),C=Math.pow(2,36)-1,D=Math.pow(2,36),E=Math.pow(2,32),Tb=Math.pow(2,34),Ub=Math.pow(2,36),Vb=Math.pow(2,21),Wb=Math.pow(2,26),Xb=Math.pow(2,23),Yb=Math.pow(2,30),v="pdp10",Pb="PDPjs",Zb={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){t.call(this,"Panel",a,512);this.K=this.M=0;this.T=b;this.i=this.I=this.u=this.w=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.B={};this.b={START:[1,1,!0,!1,this.Sb],STEP:[1,1,!1,!1,this.Tb],ENABLE:[1,1,!1,!1,this.Nb],CONT:[1,1,!0,!1,this.Lb],DEP:[0,0,!0,!1,this.Mb],EXAM:[1,1,!0,!1,this.Ob],LOAD:[1,1,!0,!1,this.Qb],TEST:[0,0,!0,!1,this.Pb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Rb,a];this.C=this.v=this.H=this.G=null;this.exports={hold:this.Jb,toggle:this.bc,reset:this.Yb,
function $b(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.u=this.w=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.B={};this.b={START:[1,1,!0,!1,this.Sb],STEP:[1,1,!1,!1,this.Tb],ENABLE:[1,1,!1,!1,this.Nb],CONT:[1,1,!0,!1,this.Lb],DEP:[0,0,!0,!1,this.Mb],EXAM:[1,1,!0,!1,this.Ob],LOAD:[1,1,!0,!1,this.Qb],TEST:[0,0,!0,!1,this.Pb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Rb,a];this.C=this.v=this.H=this.G=null;this.exports={hold:this.Jb,toggle:this.bc,reset:this.Yb,
set:this.ac};Kb(this)}ka($b,t);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)};
l.ka=function(a,b,c,d){if(this.G&&this.G.ka(a,b,c,d)||this.v&&this.v.ka(a,b,c,d)||this.C&&this.C.ka(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[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=
l.ka=function(a,b,c,d){if(this.G&&this.G.ka(a,b,c,d)||this.v&&this.v.ka(a,b,c,d)||this.C&&this.C.ka(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[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):t.prototype.ka.call(this,a,b,c,d)}};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.C=d;ec(this);fc(this)};l.ua=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.Yb=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.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.B)jc(a,c,null!=b?b:a.B[c])}function kc(a,b,c){if(a=a.J[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.Jb=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.ac=function(a,b){if("SR"==a)return ic(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.bc=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==mc,a.R=b==nc),!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.Sb=function(a){a||this.v.A.L||(G(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Tb=function(){};l.Nb=function(a){a||this.v.W()};
l.Lb=function(a){if(!a&&!this.v.A.L)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.C)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Oa(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&Hb(this.v,c.stack||c.message)}this.stop();this.G&&H(this.G)}};l.Mb=function(a){a&&!this.v.A.L&&(this.P&&uc(this),a=bc(this,this.w=this.u),this.S==ac?vc(this.H,this.i,a):this.v.g(this.i,a))};
l.Ob=function(a){if(!a&&!this.v.A.L){var b;this.R&&uc(this);this.S==ac?b=Ac(this.H,this.i):b=this.v.f(this.i);bc(this,this.w=b)}};l.Qb=function(a){a||this.v.A.L||hc(this,this.u)};l.Pb=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Rb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.H.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.i&~c|a.i+b&c)}
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.Sb=function(a){a||this.v.A.M||(G(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Tb=function(){};l.Nb=function(a){a||this.v.W()};
l.Lb=function(a){if(!a&&!this.v.A.M)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.C)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Oa(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&Hb(this.v,c.stack||c.message)}this.stop();this.G&&H(this.G)}};l.Mb=function(a){a&&!this.v.A.M&&(this.P&&uc(this),a=bc(this,this.w=this.u),this.S==ac?vc(this.H,this.i,a):this.v.g(this.i,a))};
l.Ob=function(a){if(!a&&!this.v.A.M){var b;this.R&&uc(this);this.S==ac?b=wc(this.H,this.i):b=this.v.f(this.i);bc(this,this.w=b)}};l.Qb=function(a){a||this.v.A.M||hc(this,this.u)};l.Pb=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Rb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.H.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.i&~c|a.i+b&c)}
function hc(a,b){a.i=b&a.H.u;if(a.N!==a.i){a.N=a.i;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.B[e]=f;d.F||jc(d,e,f)}}}function bc(a,b){a.I=b%D;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.B[e]=f;d.F||jc(d,e,f)}}return a.I}function ic(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.v.i)};
function gc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=qb(d.id);e||(e=new $b(d,!0));sb(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";Ya(gc);function Bc(a,b,c){t.call(this,"Bus",a,16);this.v=b;this.C=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.u=this.I-1;this.i=Math.log2(16384);this.B=this.I/16384|0;this.w=0;this.b=[];a=new Cc(this);Dc(a,this.C);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;Kb(this)}ka(Bc,t);l=Bc.prototype;l.reset=function(){};
l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,Ec(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,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Fc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,n=16384-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.D)return h.Ma+=h.D-e,h.D=e,!0;if(e>=h.D+h.Ma){n=h.size-(e-k);n>f&&(n=f);h.Ma=e-h.D+n;e=k+16384;f-=n;g++;continue}}return Gc(Hc,e,f)}e=new Cc(a,e,n,16384,d);Dc(e,a.C,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+ua(b)),!0):Gc(Jc,b,c)}
function Ac(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.C(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.gb||e.Hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
function wc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.C(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.gb||e.Hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Ib=function(a){this.w||(this.C&&Nb(this.C,4)&&Ob(this.C,"memory fault on "+I(this.C,a),!0,!0),this.v.W())};function Gc(a,b,c){r("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){t.call(this,"Device",a,256)}ka(Kc,t);l=Kc.prototype;l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.C=d;Kb(this)};l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new F(this)).data()};
l.restore=function(){return!0};Ya(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=u(d);switch(c.type){case "default":c=new Kc(c),sb(c,d)}}});function Cc(a,b,c,d,e){this.H=a;this.id=Lc+=2;this.D=b;this.Ma=c;this.size=d||0;this.type=e||Mc;this.G=e==Nc;this.b=null;this.f=this.C=this.jb;this.g=this.w=this.Na;this.i=this.v=0;Dc(this);this.gb=this.Hb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=Cc.prototype;l.save=function(){return this.u};
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.gb=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.i||(a.f=b[0]||a.jb);if(c||void 0===c)a.C=b[0]||a.jb}function Sc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Na);if(c||void 0===c)a.w=b[1]||a.Na}l.Ha=function(a,b){b?this.v++||Sc(this,Tc,!1):this.i++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.v||(a.g=a.G?a.Na:a.w):--a.i||(a.f=a.C)}
function Dc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Rc(a,Tc,!1),(a.v=c.v)&&Sc(a,Tc,!1))}l.jb=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+I(this.b,b),!0);this.H.Ib(b);return-1};l.Na=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+I(this.b,a)+" to invalid addresses "+I(this.b,c),!0)};l.Wb=function(a){return this.u[a]};l.ec=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.gb=!0)};
l.Ub=function(a,b){if(this.b&&null!=this.D){var c=this.b;Vc(c,this.D+a,2,c.N)&&c.W(!1)}return this.C(a,b)};l.dc=function(a,b,c){if(this.b&&null!=this.D){var d=this.b;Vc(d,this.D+b,2,d.I)&&d.W(!1)}this.G?this.Na(a,0,c):this.w(a,b,c)};var Mc=0,Nc=2,Ic=["NONE","RAM","ROM"],Lc=0,Qc=[],Pc=[Cc.prototype.Wb,Cc.prototype.ec],Tc=[Cc.prototype.Ub,Cc.prototype.dc];
function Wc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ya=0;this.ab=b;this.ea=c;this.Za=Math.round(this.ab/1E4)/100;this.ba=this.Za*this.ea;this.$a=this.Ba=this.fa=this.Sa=0;this.A.L=this.A.Xa=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.Ia=!1;this.za=this.ha=0;this.Aa=+a.csStart;this.la=+a.csInterval;this.ma=+a.csStop;this.O=[];this.sb=this.Zb.bind(this);this.T=this.N=this.R=this.S=this.M=this.ya=this.P=this.na=this.bb=this.aa=
function Wc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ya=0;this.ab=b;this.ea=c;this.Za=Math.round(this.ab/1E4)/100;this.ba=this.Za*this.ea;this.$a=this.Ba=this.fa=this.Sa=0;this.A.M=this.A.Xa=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.Ia=!1;this.za=this.ha=0;this.Aa=+a.csStart;this.la=+a.csInterval;this.ma=+a.csStop;this.O=[];this.sb=this.Zb.bind(this);this.T=this.N=this.R=this.S=this.L=this.ya=this.P=this.na=this.bb=this.aa=
0;this.Fa=null;Kb(this)}ka(Wc,t);l=Wc.prototype;l.Da=function(a,b,c,d){this.G=a;this.H=b;this.C=d;this.Fa=a.u;for(a=0;a<Xc.length;a++)(b=this.J[Xc[a]])&&this.G.ka(null,Xc[a],b);Kb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.ua=function(a,b){var c=Yc(this.G,"autoStart");null!=c?this.A.Z="true"==c?!0:"false"==c?!1:!!c:null==this.A.Z&&(this.A.Z=!this.C&&void 0===this.J.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.C?(a=this.C,b=this.A.Z,a.Aa=!0,a.j("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.xa&&(b=a.xa,a.xa=null,cd(a,b))):this.status("No debugger detected");this.A.Z||this.j("CPU will not be auto-started "+(this.Fa?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ja=function(a){return a?this.save():!0};l.Z=function(){return this.A.L?!0:this.A.Z?(pc(this),!0):!1};l.wb=function(){return 0};function $c(a){void 0===a.Aa&&(a.Aa=0);void 0===a.la&&(a.la=-1);void 0===a.ma&&(a.ma=-1);a.A.Ia=0<=a.Aa&&0<a.la;a.A.Ia&&(a.za=0,a.ha=a.Aa-a.T)}function tc(a,b){if(a.A.Ia){var c=!1;a.za=a.za+a.wb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.la,c=!0);0<=a.ma&&a.ma<=dd(a)&&(a.la=a.ma=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+m(a.za))}}
l.ka=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.A.V)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Ua?" (waiting for notification)":""))+".");a=!1}a&&(d.A.L?d.W():pc(d))},!0;case "speed":return this.J[b]=
l.ja=function(a){return a?this.save():!0};l.Z=function(){return this.A.M?!0:this.A.Z?(pc(this),!0):!1};l.wb=function(){return 0};function $c(a){void 0===a.Aa&&(a.Aa=0);void 0===a.la&&(a.la=-1);void 0===a.ma&&(a.ma=-1);a.A.Ia=0<=a.Aa&&0<a.la;a.A.Ia&&(a.za=0,a.ha=a.Aa-a.T)}function tc(a,b){if(a.A.Ia){var c=!1;a.za=a.za+a.wb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.la,c=!0);0<=a.ma&&a.ma<=dd(a)&&(a.la=a.ma=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+m(a.za))}}
l.ka=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.A.V)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Ua?" (waiting for notification)":""))+".");a=!1}a&&(d.A.M?d.W():pc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){ed(d,d.ea<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function fd(a,b){var c=1;b&&1<a.ea&&a.aa&&(c=a.aa/a.Za);a.$a=Math.round(1E3/gd);a.Ba=Math.floor(a.ab/gd*c);b||(a.fa=a.Ba);a.Sa=0}function dd(a){return a.T+a.N+a.R-a.S}function Zc(a){a.aa=0;a.bb=0;a.T=a.N=a.R=a.S=0;$c(a);ed(a,1)}
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Za*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&hd(a.G)}sc(a,a.N);a.N=0;a.M=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Za*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&hd(a.G)}sc(a,a.N);a.N=0;a.L=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function rc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
l.Zb=function(){if(this.A.L){this.Sa>=this.ab&&fd(this,!0);this.na=0;this.ya=nb();if(this.P){var a=this.ya-this.P;a>this.$a&&(this.M+=a,this.M>this.ya&&(this.M=this.ya))}try{do{var b=id(this,this.A.Ia?1:this.Ba);try{this.Oa(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.na+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ba;++this.bb>=ld&&(this.G&&H(this.G,void 0),this.bb=0);break}}while(this.A.L)}catch(e){this.W();this.G&&this.G.stop(nb(),dd(this));Hb(this,
e.stack||e.message);return}if(this.A.L){a=setTimeout;b=this.sb;this.P=nb();var c=this.$a;this.na&&(c=Math.round(c*this.na/this.Ba));var c=c-(this.P-this.ya),d=this.P-this.M;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.M-=c),c=0;this.Sa+=this.na;this.P+=c;a(b,c)}}};
function pc(a,b){if(!Ib(a))if(a.A.L)a.j(a.toString()+" busy");else{ed(a);a.A.L=!0;a.A.Xa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&hd(a.G,!0),a.G.start(a.M,dd(a)));a.C||a.status("Started");setTimeout(a.sb,0)}}l.Oa=function(){return 0};l.W=function(a){var b=!1;if(this.A.L){kd(this);sc(this,this.N);this.N=0;this.A.L=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(nb(),dd(this));b=!0;this.C||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.rb=b;this.Pa=+a.addrReset||0;this.Fb=nd.bind(this);this.w=J.bind(this);this.wa=null;this.ob=[];this.A.complete=!1}ka(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.rb);this.A.L&&this.W();this.b=this.K=this.Ca=0;this.i=this.xa=this.Pa;this.I=this.qa=-1;this.F=this.u=0;this.cb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.i;this.B=0;this.f=this.Vb;this.g=this.fc;this.wa=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};
l.Zb=function(){if(this.A.M){this.Sa>=this.ab&&fd(this,!0);this.na=0;this.ya=nb();if(this.P){var a=this.ya-this.P;a>this.$a&&(this.L+=a,this.L>this.ya&&(this.L=this.ya))}try{do{var b=id(this,this.A.Ia?1:this.Ba);try{this.Oa(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.na+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ba;++this.bb>=ld&&(this.G&&H(this.G,void 0),this.bb=0);break}}while(this.A.M)}catch(e){this.W();this.G&&this.G.stop(nb(),dd(this));Hb(this,
e.stack||e.message);return}if(this.A.M){a=setTimeout;b=this.sb;this.P=nb();var c=this.$a;this.na&&(c=Math.round(c*this.na/this.Ba));var c=c-(this.P-this.ya),d=this.P-this.L;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.L-=c),c=0;this.Sa+=this.na;this.P+=c;a(b,c)}}};
function pc(a,b){if(!Ib(a))if(a.A.M)a.j(a.toString()+" busy");else{ed(a);a.A.M=!0;a.A.Xa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&hd(a.G,!0),a.G.start(a.L,dd(a)));a.C||a.status("Started");setTimeout(a.sb,0)}}l.Oa=function(){return 0};l.W=function(a){var b=!1;if(this.A.M){kd(this);sc(this,this.N);this.N=0;this.A.M=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(nb(),dd(this));b=!0;this.C||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.rb=b;this.Pa=+a.addrReset||0;this.Fb=nd.bind(this);this.w=J.bind(this);this.wa=null;this.ob=[];this.A.complete=!1}ka(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.rb);this.A.M&&this.W();this.b=this.K=this.Ca=0;this.i=this.xa=this.Pa;this.I=this.qa=-1;this.F=this.u=0;this.cb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.i;this.B=0;this.f=this.Vb;this.g=this.fc;this.wa=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};
l.wb=function(){return 0};l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ca,this.i,this.qa,this.I,this.u,this.B,this.xa,this.va,this.Pa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
l.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.K=b.next().value;this.Ca=b.next().value;this.i=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.B=b.next().value;this.xa=b.next().value;this.va=b.next().value;this.Pa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];if(e.cc===b[c]){d=e;break a}}d=
null}d&&(d.next=this.wa,this.wa=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Rb;return c}function G(a,b){a.i=b%Rb}function od(a){var b=[];for(a=a.wa;a;)b.push(a.cc),a=a.next;return b}l.Vb=function(a){var b=this.H;a=this.va=a;return b.b[(a&b.u)>>>b.i].f(a&16383,a)};l.fc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b};
@ -121,7 +121,7 @@ function(a,b){a=this.f(b);b=this.f(b+1&15);b=oe.call(this,b,a,this.f(this.b));0>
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%D+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%D:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<A;)a++,c*=2;G(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<A||d>z&&
d<C)this.u|=131072;if(71<=a){if(0<e&&e<A||e>z&&e<C)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%A,c=A-Math.pow(2,70-a),f<=z?e+c>z&&(this.u|=131072):e-c<=z&&(this.u|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.u|=131072):(f-c<=z&&(this.u|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>z?C:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=C,e+=A)):(c=d>z?D-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+
d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%D,d=0):(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},J,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.L||(this.g(b,d*
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%D,d=0):(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},J,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.M||(this.g(b,d*
y+c),a||pd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<A&&G(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=A&&G(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,G(this,this.b))},function(){this.qa=this.b},J,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&x,this.f(this.b));a>=D&&(a-=D);a/y|0||(this.u|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&x);this.g(this.b,c);this.b==b&&(a=c);a-=262145;
0>a&&(a+=D);(a/y|0)==x&&(this.u|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.u&x)*y+this.i);G(this,this.b+1)},function(a,b){this.g(b,(this.u&x)*y+this.i);G(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,N.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,N.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,N.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,N.call(this,this.f(b),this.f(this.b))))},
function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},ke,function(a,b){0>R(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){R(this.f(b),this.b)||G(this,this.i+1)},function(a,b){0>=R(this.f(b),this.b)&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){0<=R(this.f(b),this.b)&&G(this,
@ -156,7 +156,7 @@ function ze(a){t.call(this,"RAM",a);this.U=this.Ga=null;this.i=+a.addr;this.u=+a
c.U=a.U,null==c.sa&&(c.sa=a.sa),null==c.ra&&(c.ra=a.ra)):c.b=null);Ae(c)})}}ka(ze,t);ze.prototype.Da=function(a,b,c,d){this.H=b;this.v=c;this.C=d;Ae(this)};ze.prototype.ua=function(a,b){this.U&&(this.C&&ye(this.C,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};ze.prototype.ja=function(){return!0};
function Ae(a){if(a.H&&(!a.w&&a.u&&(Fc(a.H,a.i,a.u,1)?a.w=!0:a.u=0),!Jb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ga)return;Be(a,a.Ga,a.sa,a.ra,a.i)?a.status('Loaded image "'+a.B+'"'):a.da('Error loading image "'+a.B+'"')}a.F=!0;Kb(a)}}
ze.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.H,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-A&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.w(g,d,e.D+d);c-=16384;b++;d=0}this.Ga&&Be(this,this.Ga,this.sa,this.ra,this.i,!this.C)}this.F=!1};
function Be(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Pa=d,G(a,d),f?a.A.V?a.A.L||pc(a):a.A.Z=!0:a.C&&a.A.V?a.W()||a.G.A.reset||(ad(a.C),H(a.G,-1)):!1===f&&a.W(),!a.A.L&&a.Fa&&a.Fa.stop()));return g}Ya(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new ze(d);sb(d,c)}});
function Be(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Pa=d,G(a,d),f?a.A.V?a.A.M||pc(a):a.A.Z=!0:a.C&&a.A.V?a.W()||a.G.A.reset||(ad(a.C),H(a.G,-1)):!1===f&&a.W(),!a.A.M&&a.Fa&&a.Fa.stop()));return g}Ya(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new ze(d);sb(d,c)}});
function Ce(a){t.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=De;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ka(null,a,b))}this.b=this.B=null;this.exports={connect:this.xb,receiveData:this.Va,receiveStatus:this.Xb,setConnection:this.$b}}ka(Ce,t);l=Ce.prototype;
l.ka=function(a,b,c){var d=this;switch(b){case De:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ra.mb:ra.Cb:46==c?b=ra.mb:a.ctrlKey&&c>=ra.lb&&c<=ra.Db&&(b=c-(ra.lb-ra.zb));b&&(a.preventDefault&&a.preventDefault(),d.Va(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Bb&&(b=ra.Ab);d.Va(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.Va(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.C=d;Kb(this)};
@ -172,22 +172,22 @@ function Ke(a,b){var c,d=a.na[0],e=a.na[1];c="("==d||"{"==d||"["==d?"\\":"";for(
d)break;a=a.replace(b[0],d.toString())}return a}function Le(a,b,c,d){var e;null!=b?(e=a.hb(b),0<=e?e=a.ib(e):(e=a.K[b],null==e&&(e=sa(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
function Ne(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=void 0,p=8,q="";p?32<p&&(p=32):p=32;for(var B=null==k||isNaN(k),S=n=n||p;0<p--;)S||(q=","+q,S=n),q=(B?"?":k&1?"1":"0")+q,k>>=1,S--;g=q+g;d>>=8}d=m(c,0,!0)+" "+c+". "+ua(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
function Oe(a,b){if(b)return Ne(a,b,a.K[b]);var c=0;for(b in a.K)Ne(a,b,a.K[b]),c++;return 0<c}function I(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=ua(b,0<c?(c+2)/3|0:0);break;case 10:a=va(b,0<c?Math.ceil(.3*c):0);break;default:a=m(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Me={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ie=Math.pow(2,32);
function Pe(a){Ee.call(this,a);this.Aa=!1;this.ya=18;this.la=36;this.na=["<",">"];this.ma=[];this.za=X();this.M=X(0);this.ga=X(0);this.ba=X(0);this.F=[];this.b=this.N=this.I=[];Qe(this);this.S=this.ha=0;this.i=[];this.va=void 0;Re(this);this.C=this;this.oa={};this.X=this.tb=0;this.T=null;this.P=[];Se(this,a.messages);this.xa=a.commands;this.O=0;this.Fa=this.wa=null;this.B=this.Ca=this.Ba=this.fa=this.qa=0;this.pa=this.ea=this.aa=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return cd(b,
function Pe(a){Ee.call(this,a);this.Aa=!1;this.ya=18;this.la=36;this.na=["<",">"];this.ma=[];this.za=X();this.L=X(0);this.ga=X(0);this.ba=X(0);this.F=[];this.b=this.N=this.I=[];Qe(this);this.S=this.ha=0;this.i=[];this.va=void 0;Re(this);this.C=this;this.oa={};this.X=this.tb=0;this.T=null;this.P=[];Se(this,a.messages);this.xa=a.commands;this.O=0;this.Fa=this.wa=null;this.B=this.Ca=this.Ba=this.fa=this.qa=0;this.pa=this.ea=this.aa=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return cd(b,
a)}):void 0===global[v]&&(global[v]=function(a){return cd(b,a)})}ka(Pe,Ee);function Te(a){a=a&&a.D;null==a&&(a=-1);return a}function X(a,b,c){return{D:void 0===a?null:a,Ta:void 0===b?!1:b,ia:!1,ca:c}}function Ue(a,b,c,d){a.D=b;a.Ta=c||!1;a.ia=!1;a.ca=d}function Ve(a){return[a.D,a.Ta,a.ia,a.ca,a.Wa]}function We(a,b){var c=X(b[0],b[1],b[2]);c.ia=b[3];b[4]&&(c.pb=Fe(a,c.Wa=b[4]));return c}l=Pe.prototype;
l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;this.ya=b.F;(a=Yc(a,"messages"))&&Se(this,a);Xe(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Te(Ye(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Ic[c],p&&d.j(m(p.id,8)+" %"+m(e<<d.H.i,8)+" %"+m(p.D,8)+
" "+m(p.Ma,4,!0)+" "+m(p.size,4,!0)+" "+n),c!=Mc&&(c=-1),n=0);a+=16384;e++}}});Kb(this)};
l.ka=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-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.J[b]=c,Wa(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(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.Ea=function(a,b){var c=-1,d=Te(a);-1!==d&&(c=Ac(this.H,d),b&&null!=a.D&&(a.D+=b||1));return c};l.nb=function(a,b,c){var d=Te(a);-1!==d&&(vc(this.H,d,b),c&&null!=a.D&&(a.D+=c||1),H(this.G,-1))};
d.aa.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(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.Ea=function(a,b){var c=-1,d=Te(a);-1!==d&&(c=wc(this.H,d),b&&null!=a.D&&(a.D+=b||1));return c};l.nb=function(a,b,c){var d=Te(a);-1!==d&&(vc(this.H,d,b),c&&null!=a.D&&(a.D+=c||1),H(this.G,-1))};
function Ye(a,b,c){var d,e;c||(c=X());var f=c.D;if(void 0!==b){b=Ke(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var n=a.F[k].U[f];if(null!=n){h=n.o;break}}null!=h&&(g=X(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Je(a,b,void 0)}null!=f&&(f=Ze(f,a.ya),Ue(c,f,d,e));return c}function $e(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.pb=Fe(a,b.Wa=c[2]))}
function Ze(a,b){0>a&&a>=-A&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function Y(a,b){return I(a,b.D)}function af(a){return ua(a/Rb,6)+" "+ua(a%Rb,6)}
function Se(a,b){a.C=a;a.X=a.tb=536870916;a.T=null;a.P=[];b=Fe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){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|=Zb[c],a.j(c+" messages enabled"))}}function Xe(a,b){for(var c in Zb)if(16==Zb[c]){a.oa[c]=b;break}}l.hb=function(a){return bf.indexOf(a.toUpperCase())};
l.ib=function(a){var b,c=this.v;switch(a){case cf:b=c.i;break;case df:b=c.K;break;case ef:b=c.b;break;case ff:b=c.u&65536?1:0;break;case gf:b=c.u&32768?1:0;break;case hf:b=c.u&131072?1:0;break;case jf:b=c.u&32?1:0;break;case kf:b=c.u&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+Y(this,X(this.v.xa)));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.L)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,kd(a),a.fa=0,a.G&&H(a.G,void 0))}};
l.message=function(a,b){b&&(a+=" @"+Y(this,X(this.v.xa)));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.M)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,kd(a),a.fa=0,a.G&&H(a.G,void 0))}};
function Re(a){var b;if(!qd(a))a.i&&a.i.length&&a.j("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lf);for(b=0;b<a.i.length;b++)a.i[b]=X();a.S=0;a.j("instruction history buffer allocated")}}function mf(a,b,c){if(!nf(a,c))return!1;pc(a.v,b);return!0}
function qc(a,b,c,d){if(!nf(a))return!1;var e="";null===c&&(e=(c=!a.wa||"tr"==a.wa)?"tr":"t");a.B=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Oa(b);0<f&&(rc(a.v,f),a.B+=f,sc(a.v,f,!0),tc(a.v,f),a.fa++)}catch(g){"number"!=typeof g&&(a.B=0,Hb(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),H(a.G,-1));ad(a,c||!1,e);return 0<a.B}l.W=function(a){this.v&&this.v.W(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Aa&&(c&&a.j(of+c),Ue(a.M,a.v.i),b&&1!=a.O?pf(a):qf(a))}
function nf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.L?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Ib(a.v)}l.ua=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ja=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Re(this);this.fa=0;this.T=null;this.B=0;Ue(this.M,this.v.i);this.A.L=!1;rf(this);a||ad(this)};
l.save=function(){var a=new F(this);a.set(0,Ve(this.M));a.set(1,Ve(this.ga));a.set(2,Ve(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.M=We(this,a[b++]),this.ga=We(this,a[b++]),this.ba=We(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.L=!0;this.Ba=a;this.Ca=b};
l.stop=function(a,b){if(this.A.L){this.A.L=!1;this.B=b-this.Ca;if(!this.O){b="stopped";if(this.B){a-=this.Ba;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";qd(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ad(this,!0);bd(this);rf(this,this.v.i);this.T=null}};function qd(a){return 1<a.b.length||!!a.ha}
function qc(a,b,c,d){if(!nf(a))return!1;var e="";null===c&&(e=(c=!a.wa||"tr"==a.wa)?"tr":"t");a.B=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Oa(b);0<f&&(rc(a.v,f),a.B+=f,sc(a.v,f,!0),tc(a.v,f),a.fa++)}catch(g){"number"!=typeof g&&(a.B=0,Hb(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),H(a.G,-1));ad(a,c||!1,e);return 0<a.B}l.W=function(a){this.v&&this.v.W(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Aa&&(c&&a.j(of+c),Ue(a.L,a.v.i),b&&1!=a.O?pf(a):qf(a))}
function nf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.M?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Ib(a.v)}l.ua=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ja=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Re(this);this.fa=0;this.T=null;this.B=0;Ue(this.L,this.v.i);this.A.M=!1;rf(this);a||ad(this)};
l.save=function(){var a=new F(this);a.set(0,Ve(this.L));a.set(1,Ve(this.ga));a.set(2,Ve(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=We(this,a[b++]),this.ga=We(this,a[b++]),this.ba=We(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.M=!0;this.Ba=a;this.Ca=b};
l.stop=function(a,b){if(this.A.M){this.A.M=!1;this.B=b-this.Ca;if(!this.O){b="stopped";if(this.B){a-=this.Ba;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";qd(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ad(this,!0);bd(this);rf(this,this.v.i);this.T=null}};function qd(a){return 1<a.b.length||!!a.ha}
function rd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.xa==b&&(b=pd(a.v,1)));if(0<c&&(a.ha&&!--a.ha||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.fa++,0>d&&(d=a.v.f(b)),0<=d&&(Ue(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function sf(a,b,c,d){var e=X(b.D),f=a.Ea(b,1),g,h,k,n=0,p=f/Vb|0,q;for(q in tf)if(g=tf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=uf;n=p&3;break;case 32256:k=vf;n=p&7;break;case 29248:k=wf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>xf&&(k="B");k=ag[g||0]+k;if(g){if(28700==h)n=f/Wb&127,h=I(a,n,-1);else if(n=f>>23&15,h=I(a,n,-1),g==cg&&(g=dg[n]))k=ag[g],h="";k=Da(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=I(a,f&262143,-1);(f=f>>18&15)&&(k+="("+I(a,f,-1)+")")}else k=Da(k,8)+af(f);f=k;g="";h=Y(a,
e)+":";if(-1!==e.D&&-1!==b.D){do if(k=a.Ea(e,1),g+=" "+af(k),null==e.D)break;while(e.D!=b.D)}h+=Da(g,16)+f;c&&(h=Da(h,48)+";"+(c||""),h=a.v.A.Ia?h+("cycles="+dd(a.v).toString()+" cs="+m(a.v.za)):h+(null!=d?"="+d.toString():""));return h}
@ -196,7 +196,7 @@ h);e=-1;break}n=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!n){a.j("unknown operand:
15<q){a.j("memory index out of range: "+h);e=-1;break}e+=q<<18}n[1]&&(e+=4194304)}}}else a.j("missing operand(s)"),e=-1;else a.j("unknown instruction: "+b);return e}function Qe(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=Te(c);var d=a.H;Uc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Te(c),d=a.H,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ha=0}
l.Ha=function(a,b,c){var d=!0;c||fg(this,a,b,!1,!0);if(a!=this.b){var e=Te(b);if(-1===e)this.j("invalid address: "+Y(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ha(e&16383,a==this.I)}}d&&(a.push(b),c?b.ia=!0:(gg(this,a,a.length-1,"set"),Re(this)));return d};function fg(a,b,c,d,e){var f=!1;c=Te(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Te(h)&&(!d||h.ia)){f=!0;h.ia||e||gg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,Uc(d.b[c>>>d.i],b==a.I));h.ia||Re(a);break}}return f}
function hg(a,b){for(var c=1;c<b.length;c++)gg(a,b,c);return b.length-1}function gg(a,b,c,d){c=b[c];a.j(b[0]+" "+Y(a,c)+(d?" "+d:c.Wa?' "'+c.Wa+'"':""))}function rf(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ia){if(!fg(a,a.b,c,!0))break;b=0}}}
function Vc(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ia)for(var k=Te(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.ia&&(fg(a,d,h,!0),e=!0);if(p=h.pb){for(var f=!1,q=0;q<p.length;q++)if(!ig(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var B=q+1;B<p.length&&p[B].indexOf("else");B++)q++;if(B==p.length){f=!0;break}}a.v.A.L||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.qa--;return f}
function Vc(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ia)for(var k=Te(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.ia&&(fg(a,d,h,!0),e=!0);if(p=h.pb){for(var f=!1,q=0;q<p.length;q++)if(!ig(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var B=q+1;B<p.length&&p[B].indexOf("else");B++)q++;if(B==p.length){f=!0;break}}a.v.A.M||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.qa--;return f}
function jg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);Ue(e.za,d);f+="="+I(e,e.Ea(e.za),36)+" ";c+=f}if(b){b="";for(d=0;d<bf.length;d++)(e=bf[d]||"")&&(e+="="+I(a,a.ib(d),d>=ff?1:d==df?23:18)+" "),b+=e;c+="\n"+b}return c}l.ub=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function ye(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],q=Fa(p,k,a.ub);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({od:b,D:c,Kb:d,U:e,qb:f})}function kg(a,b,c){var d=[],e=Te(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.D>>>0,h=f.Kb;if(e>=g&&e<g+h){e=Fa(f.qb,[e-g],a.ub);0<=e?lg(a,b,e,d):c&&(e=~e,lg(a,b,e-1,d),lg(a,b,e,d));break}}return d}
function lg(a,b,c,d){var e={},f=a.F[b].qb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
@ -204,21 +204,21 @@ function mg(a,b){var c=Ye(a,b[1],a.ba);if(c){var d=b[2];void 0==d?(a.j("begin as
function og(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Oe(a)||a.j("no variables"),!0;if(!c[2])return Oe(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Je(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function pg(a,b,c){var d=null;if(b=Ye(a,b)){var e=kg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.D-e[1])&&(g=" + "+m(f,4,!0)),f=e[0]+" ("+I(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.D)&&(g=" - "+m(f,4,!0)),f=e[4]+" ("+I(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function pf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=Je(a,b);if(void 0===g)return;b=a.hb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case cf:G(h,
g);Ue(a.M,h.i);break;case ff:f=65536;break;case gf:f=32768;break;case hf:f=131072;break;case jf:f=32;break;case kf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);H(a.G);a.j("updated registers:")}}a.j(jg(a,e));c&&(Ue(a.M,d.i),qf(a,Y(a,a.M)))}}function qg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ne(a,null,c[2].charCodeAt(0)):Je(a,b,!0)}
g);Ue(a.L,h.i);break;case ff:f=65536;break;case gf:f=32768;break;case hf:f=131072;break;case jf:f=32;break;case kf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);H(a.G);a.j("updated registers:")}}a.j(jg(a,e));c&&(Ue(a.L,d.i),qf(a,Y(a,a.L)))}}function qg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ne(a,null,c[2].charCodeAt(0)):Je(a,b,!0)}
function rg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Le(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.wa=b;Va(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ea&&a.ea.stop();H(a.G,-1);Mb(a,!1)})}}
function qf(a,b,c,d){if(b=Ye(a,b,a.M)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Le(a,c.substr(1)),null!=c&&(d=c);else{d=Ye(a,c);if(!d||d.D<b.D)return;e=d.D-b.D;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.B:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.D;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.D=n.D;h.Ta=n.Ta;h.ia=n.ia;h.ca=n.ca;a.j(sf(a,b,g,f));e-=b.D-k;c++}}}
function qf(a,b,c,d){if(b=Ye(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Le(a,c.substr(1)),null!=c&&(d=c);else{d=Ye(a,c);if(!d||d.D<b.D)return;e=d.D-b.D;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.B:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.D;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.D=n.D;h.Ta=n.Ta;h.ia=n.ia;h.ca=n.ca;a.j(sf(a,b,g,f));e-=b.D-k;c++}}}
function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(of+b):(a.R&&(a.j("ended assemble at "+Y(a,a.ba)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Jb(a)&&0<b.length){a.R&&(b="a "+Y(a,a.ba)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),n=1;n<h.length;n++){var p=h.charAt(n);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(n);g.unshift(h.substr(0,n));break}}switch(g[0].charAt(0)){case "a":mg(a,g);break;
case "b":a:{var q=g[0],B=g[1],S=b;if("?"==B)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var la=q.charAt(1);if("l"==la){var Ad;Ad=0+hg(a,a.b);Ad+=hg(a,a.N);(Ad+=hg(a,a.I))||a.j("no breakpoints")}else if("n"==la){var yf=+B||0;B&&(a.ha=yf);a.j("break after "+yf+" instruction(s)")}else if(void 0===
B)a.j("missing breakpoint address");else{var Z=X();if("*"!=B&&(Z=Ye(a,B,a.M),!Z))break a;"c"==la?null==Z.D?(Qe(a),a.j("all breakpoints cleared")):fg(a,a.b,Z)||fg(a,a.N,Z)||fg(a,a.I,Z)||a.j("breakpoint missing: "+Y(a,Z)):null!=Z.D&&($e(a,Z,S),"p"==la?a.Ha(a.b,Z):"r"==la?a.Ha(a.N,Z):"w"==la?a.Ha(a.I,Z):a.j("unknown breakpoint command: "+la))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var $a,ab=g[0],ma=g[1],za=g[2],dh=g[3];if("?"==ma){var bb="";for($a in Zb)a.oa[$a]&&(bb&&(bb+=","),bb+=
B)a.j("missing breakpoint address");else{var Z=X();if("*"!=B&&(Z=Ye(a,B,a.L),!Z))break a;"c"==la?null==Z.D?(Qe(a),a.j("all breakpoints cleared")):fg(a,a.b,Z)||fg(a,a.N,Z)||fg(a,a.I,Z)||a.j("breakpoint missing: "+Y(a,Z)):null!=Z.D&&($e(a,Z,S),"p"==la?a.Ha(a.b,Z):"r"==la?a.Ha(a.N,Z):"w"==la?a.Ha(a.I,Z):a.j("unknown breakpoint command: "+la))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var $a,ab=g[0],ma=g[1],za=g[2],fh=g[3];if("?"==ma){var bb="";for($a in Zb)a.oa[$a]&&(bb&&(bb+=","),bb+=
$a);bb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");bb.length&&a.j("dump extension commands:\n\t"+bb)}else if("state"==ma){var Bd=sg(a.G,!0);"console"==za?console.log(Bd):(a.ta&&(a.ta.value=""),Bd&&a.j(Bd))}else if("symbols"==ma)for(var Cd=0;Cd<a.F.length;Cd++){var Dd=a.F[Cd],cb;for(cb in Dd.U)if("."!=cb.charAt(0)){var zf=Dd.U[cb].o;
if(void 0!==zf){var Af=Dd.U[cb].l;Af&&(cb=Af);a.j(I(a,zf)+" "+cb)}}}else{if("d"==ab){for($a in Zb)if(g[1]==$a){var Bf=a.oa[$a];Bf?(g.shift(),g.shift(),Bf(g)):a.j("no dump registered for "+ma);break a}ma||(ab=a.Fa||"dw")}else a.Fa=ab;if("dh"==ab){var Cf=ma,Df=za,Ef="",Ff=0,ia=a.S,na=a.i;if(na.length){var ea=+Cf||a.va,wb=+Df||10;isNaN(ea)?ea=wb:Ef="more ";ea>na.length&&(a.j("note: only "+na.length+" available"),ea=na.length);ia-=ea;0>ia&&(null==na[na.length-1].D?(ea=ia+ea,ia=0):ia+=na.length);var Ed=
[];"call"==Df&&(wb=1E5,Ed=["CALL"]);for(void 0!==Cf&&a.j(ea+" instructions earlier:");0<wb&&ia!=a.S;){var Gf=na[ia++];if(null==Gf.D)break;var xb=X(Gf.D),eh=ea--,Hf=sf(a,xb,"history",eh);(!Ed.length||0<=Hf.indexOf(Ed[0]))&&a.j(Hf);xb.fb&&(ia+=xb.fb,wb-=xb.fb,ea-=xb.fb);ia>=na.length&&(ia=0);a.va=ea;Ff++;wb--}}Ff||(a.j("no "+Ef+"history available"),a.va=void 0)}else{var db=Ye(a,ma,a.ga);if(db){var Ia=0,If="ds"==ab;if(za){if("l"==za.charAt(0))za=za.substr(1)||dh,Ia=Le(a,za);else{var Jf=Ye(a,za);Jf&&
(Ia=Jf.D-db.D)}0>Ia&&(Ia=0);65536<Ia&&(Ia=65536)}var fh=a.ca;db.ca&&(a.ca=db.ca);for(var Kf="db"==ab?1:2,Fd=Ia||32,Gd=1==Kf?2:4,gh=(Fd+Gd-1)/Gd|0||1,Ja="";gh--&&0<Fd;){for(var Ka="",Lf="",ma=Y(a,db),Mf=Gd;0<Mf--&&0<Fd--;){var wc=a.Ea(db,1);If?(Ka&&(Ka+=","),Ka+=wc):(Ka+=af(wc),Ka+=" ");for(var Nf=0;1==Kf&&6>Nf;Nf++)Lf+=String.fromCharCode((wc%64|0)+32),wc/=64}Ja&&(Ja+="\n");Ja=If?Ja+(Ka+","):Ja+(ma+": "+Ka+(0>Mf?" "+Lf:""))}Ja&&a.j(Ja);a.ca=fh}}}}break;case "e":if("else"==g[0])break;var Of,Pf,Qf=
g[0],Hd=g[1];"e"==Qf||"ew"==Qf?(Of=a.Ea,Pf=a.nb):Hd=null;if(null==Hd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var xc=Ye(a,Hd,a.ga);if(xc)for(var Id=2;Id<g.length;Id++){var yb=Je(a,g[Id]);if(void 0===yb)break;yb=Ze(yb);a.j("changing "+Y(a,xc)+" from "+af(Of.call(a,xc))+" to "+af(yb));Pf.call(a,xc,yb,1)}}break;case "g":a:{var Rf=g[1],hh=b;if(void 0!==Rf){var Jd=Ye(a,Rf);if(!Jd)break a;$e(a,Jd,hh);a.Ha(a.b,Jd,!0)}mf(a,!0,c)}break;case "h":a.A.L?(c||a.j("halting"),
a.W()):Lb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Kd;var zb=b.substr(2),zb=Ea(zb);Je(a,zb)?(c||a.j("true: "+zb),Kd=!0):(c||a.j("false: "+zb),Kd=!1);Kd||(d=!1);break}f=!0;break;case "k":var ih=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Ld=0,Md=X(),Ab=X();for(a.j("stack trace for "+Y(a,Ab));10>Ld;){for(var La=null,jh=256;65536>Ab.D>>>0;){Md.D=a.Ea(Ab,2);if(null==Ab.D||!jh--)break;if(!(Md.D&1)){for(var kh=
a,yc=Md,Sf=null,Bb=yc.D,Tf=Bb,Nd=1;6>=Nd&&Bb;Nd++){if(2<Nd){yc.D=Bb;var zc=sf(kh,yc);if(0<=zc.indexOf("JSR")){var Uf=zc.indexOf(" ");if(Bb+(zc.indexOf(" ",Uf+1)-Uf-1)/2==Tf){Sf=zc;break}}}Bb-=2}yc.D=Tf;if(La=Sf)break}}if(!La||null==La)break;var Vf=null;if("ks"==ih){var Wf=La.match(/[0-9A-F]+$/);Wf&&(Vf=pg(a,Wf[0]))}La=Da(La,50)+" ;"+(Vf||"stack="+Y(a,Ab));a.j(La);Ld++}Ld||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){pg(a,g[1],!0);break}f=!0;break;case "m":a:{var oa,pa=null,K=g[1];
"?"==K&&(K=void 0);if(void 0!==K){var Aa=0;if("all"==K)Aa=1879046143,K=null;else if("on"==K)pa=!0,K=null;else if("off"==K)pa=!1,K=null;else{"keys"==K&&(K="key");"kbd"==K&&(K="keyboard");for(oa in Zb)if(K==oa){Aa=Zb[oa];pa=!!(a.X&Aa);break}if(!Aa){a.j("unknown message category: "+K);break a}}if(Aa)if("on"==g[2])a.X|=Aa,pa=!0;else if("off"==g[2]&&(a.X&=~Aa,pa=!1,1073741824==Aa)){for(var Xf=1E3<=a.P.length?a.P.length-1E3:0;Xf<a.P.length;)a.j(a.P[Xf++]);a.P=[]}}var lh=0,Cb="";for(oa in Zb)if(!K||K==oa){var mh=
!!(a.X&Zb[oa]);if(null===pa||pa==mh)Cb&&(Cb+=","),++lh%10||(Cb+="\n\t"),"key"==oa&&(oa="keys"),Cb+=oa}void 0===K&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==pa?pa?"messages on: ":"messages off: ":"message categories:\n\t")+(Cb||"none"));Re(a)}break;case "p":if("print"==g[0]){qg(a,b.substr(5));break}var Yf=g[0],Zf="p"==Yf?0:"pr"==Yf?1:-1;if("?"==g[1]||0>Zf)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");
[];"call"==Df&&(wb=1E5,Ed=["CALL"]);for(void 0!==Cf&&a.j(ea+" instructions earlier:");0<wb&&ia!=a.S;){var Gf=na[ia++];if(null==Gf.D)break;var xb=X(Gf.D),gh=ea--,Hf=sf(a,xb,"history",gh);(!Ed.length||0<=Hf.indexOf(Ed[0]))&&a.j(Hf);xb.fb&&(ia+=xb.fb,wb-=xb.fb,ea-=xb.fb);ia>=na.length&&(ia=0);a.va=ea;Ff++;wb--}}Ff||(a.j("no "+Ef+"history available"),a.va=void 0)}else{var db=Ye(a,ma,a.ga);if(db){var Ia=0,If="ds"==ab;if(za){if("l"==za.charAt(0))za=za.substr(1)||fh,Ia=Le(a,za);else{var Jf=Ye(a,za);Jf&&
(Ia=Jf.D-db.D)}0>Ia&&(Ia=0);65536<Ia&&(Ia=65536)}var hh=a.ca;db.ca&&(a.ca=db.ca);for(var Kf="db"==ab?1:2,Fd=Ia||32,Gd=1==Kf?2:4,ih=(Fd+Gd-1)/Gd|0||1,Ja="";ih--&&0<Fd;){for(var Ka="",Lf="",ma=Y(a,db),Mf=Gd;0<Mf--&&0<Fd--;){var xc=a.Ea(db,1);If?(Ka&&(Ka+=","),Ka+=xc):(Ka+=af(xc),Ka+=" ");for(var Nf=0;1==Kf&&6>Nf;Nf++)Lf+=String.fromCharCode((xc%64|0)+32),xc/=64}Ja&&(Ja+="\n");Ja=If?Ja+(Ka+","):Ja+(ma+": "+Ka+(0>Mf?" "+Lf:""))}Ja&&a.j(Ja);a.ca=hh}}}}break;case "e":if("else"==g[0])break;var Of,Pf,Qf=
g[0],Hd=g[1];"e"==Qf||"ew"==Qf?(Of=a.Ea,Pf=a.nb):Hd=null;if(null==Hd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var yc=Ye(a,Hd,a.ga);if(yc)for(var Id=2;Id<g.length;Id++){var yb=Je(a,g[Id]);if(void 0===yb)break;yb=Ze(yb);a.j("changing "+Y(a,yc)+" from "+af(Of.call(a,yc))+" to "+af(yb));Pf.call(a,yc,yb,1)}}break;case "g":a:{var Rf=g[1],jh=b;if(void 0!==Rf){var Jd=Ye(a,Rf);if(!Jd)break a;$e(a,Jd,jh);a.Ha(a.b,Jd,!0)}mf(a,!0,c)}break;case "h":a.A.M?(c||a.j("halting"),
a.W()):Lb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Kd;var zb=b.substr(2),zb=Ea(zb);Je(a,zb)?(c||a.j("true: "+zb),Kd=!0):(c||a.j("false: "+zb),Kd=!1);Kd||(d=!1);break}f=!0;break;case "k":var kh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Ld=0,Md=X(),Ab=X();for(a.j("stack trace for "+Y(a,Ab));10>Ld;){for(var La=null,lh=256;65536>Ab.D>>>0;){Md.D=a.Ea(Ab,2);if(null==Ab.D||!lh--)break;if(!(Md.D&1)){for(var mh=
a,zc=Md,Sf=null,Bb=zc.D,Tf=Bb,Nd=1;6>=Nd&&Bb;Nd++){if(2<Nd){zc.D=Bb;var Ac=sf(mh,zc);if(0<=Ac.indexOf("JSR")){var Uf=Ac.indexOf(" ");if(Bb+(Ac.indexOf(" ",Uf+1)-Uf-1)/2==Tf){Sf=Ac;break}}}Bb-=2}zc.D=Tf;if(La=Sf)break}}if(!La||null==La)break;var Vf=null;if("ks"==kh){var Wf=La.match(/[0-9A-F]+$/);Wf&&(Vf=pg(a,Wf[0]))}La=Da(La,50)+" ;"+(Vf||"stack="+Y(a,Ab));a.j(La);Ld++}Ld||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){pg(a,g[1],!0);break}f=!0;break;case "m":a:{var oa,pa=null,K=g[1];
"?"==K&&(K=void 0);if(void 0!==K){var Aa=0;if("all"==K)Aa=1879046143,K=null;else if("on"==K)pa=!0,K=null;else if("off"==K)pa=!1,K=null;else{"keys"==K&&(K="key");"kbd"==K&&(K="keyboard");for(oa in Zb)if(K==oa){Aa=Zb[oa];pa=!!(a.X&Aa);break}if(!Aa){a.j("unknown message category: "+K);break a}}if(Aa)if("on"==g[2])a.X|=Aa,pa=!0;else if("off"==g[2]&&(a.X&=~Aa,pa=!1,1073741824==Aa)){for(var Xf=1E3<=a.P.length?a.P.length-1E3:0;Xf<a.P.length;)a.j(a.P[Xf++]);a.P=[]}}var nh=0,Cb="";for(oa in Zb)if(!K||K==oa){var oh=
!!(a.X&Zb[oa]);if(null===pa||pa==oh)Cb&&(Cb+=","),++nh%10||(Cb+="\n\t"),"key"==oa&&(oa="keys"),Cb+=oa}void 0===K&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==pa?pa?"messages on: ":"messages off: ":"message categories:\n\t")+(Cb||"none"));Re(a)}break;case "p":if("print"==g[0]){qg(a,b.substr(5));break}var Yf=g[0],Zf="p"==Yf?0:"pr"==Yf?1:-1;if("?"==g[1]||0>Zf)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");
else if(a.O)a.j("step in progress");else{var $f=X(a.v.i);a.Ea($f);a.O?(a.Ha(a.b,$f,!0),mf(a)||(a.G&&hd(a.G),a.O=0)):rg(a,Zf?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}pf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Db=+g[2];if(8==Db||10==Db||16==Db)a.ca=Db;else{a.j("invalid base: "+Db);break}}a.j("default base: "+a.ca);break;case "cs":var Eb;void 0!==g[3]&&(Eb=+g[3]);switch(g[2]){case "int":a.v.la=Eb;break;case "start":a.v.Aa=Eb;break;case "stop":a.v.ma=Eb;break;
default:a.j("unknown cs option");break a}void 0!==Eb&&$c(a.v);a.j("checksums "+(a.v.A.Ia?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),
a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":rg(a,g[0],g[1]);break;case "u":qf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){og(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.rb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){qg(a,b.substr(1));break}var Od="commands:",Pd;for(Pd in tg)Od+="\n"+Da(Pd,9)+tg[Pd];qd(a)||(Od+="\nnote: history disabled if no exec breakpoints");
@ -227,46 +227,46 @@ var tg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output
cf=0,df=1,ef=2,ff=3,gf=4,hf=5,jf=6,kf=7,bf="PC RA EA C0 C1 OV ND PD".split(" "),ug={},tf=(ug[28672]={0:101},ug[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:cg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},ug[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},ug[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},ug[29248]={24576:79,24640:80,25088:81,25152:82},ug[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},ug),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(" "),dg={8:102,4:103,2:104,6:105,1:106},lf=1E3,of=">> ";Ya(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Pe(d);sb(d,c)}});
function ng(a,b,c,d){this.H=b||0;this.v=c;this.done=d;this.j=c.j;this.G={};this.I={};this.F=this.u=0;this.B=[];this.C=null;this.b=0;this.i=this.J=null;this.w="";var e=this;Ha(a,null,!0,function(a,b,c){if(!c){var d=e.v;c=d.K;d.K={};try{d=b;if(ya(a,".html")){for(var d="",f,g=/<pre>([\s\S]*?)<\/pre>/gi;f=g.exec(b);){var h=f[1];0<=h.indexOf("&")&&(h=h.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&"));d+=h}(f=d.match(/&[a-z]+;/i))&&e.j("warning"+(e.u?" at line "+va(e.u):"")+": "+("unrecognized HTML entity: "+
f[0]))}var B,S=d.split(/\r?\n/);for(B=0;B<S.length&&(e.u++,vg(e,S[B]+"\r\n"));B++);}catch(la){e.j(la.message),e.F=-1}e.v.K=c;c=e.F}e.done(e,a,c)})}
function vg(a,b){if(a.b){if(1==a.b){var c=b.indexOf("<");0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.C+" definition: "+b)}if(1<a.b){c=b;b="";for(var d=0;d<c.length;d++)if("<"==c[d])a.b++;else if(">"==c[d]&&(a.b--,1==a.b)){a.b=0;b=c.substr(d+1);c=c.substr(0,d);break}d=a.J||"";a.G[d].La+=c;a.b||(a.J=null,wg(a,d))}if(a.b)return!0}null!=a.i&&(b=xg(a,b));c=b.match(/\s*([A-Z$%.][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;b=c[1];d=c[2].toUpperCase();c=c[3].trim();if(b){var e=b.slice(-1);b=b.slice(0,-1);":"==e?yg(a,b,a.H,!0):(c=d+c,d=e)}a.C=d;c=c.trim();if(!wg(a,d,c))switch(d){case "=":d=Je(a.v,c);void 0===d?a.error("parseExpression("+c+")"):yg(a,b,d);break;case zg:case Ag:case Bg:xg(a,c);break;case Cg:case Dg:case Eg:a:{b=d;var d=c,f;if(b==Cg){c=d.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!c){a.error("unrecognized "+b+" definition: "+d);break a}b=c[1];d=c[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);
e=-1;f=3}else{e=Fg(a,d,",");if(!e){a.error("missing "+b+" expression: "+d);break a}d=d.substr(e.length+1);e=e.trim();c=d.match(/\s*(<|)(.*)/i);b="@"+b;d=[];e=Je(a.v,e);f=1}b=b.toUpperCase();a.b=1;var g="";c[f]&&(a.b=2,g=c[f+1],">"==g.slice(-1)&&(a.b=0,g=g.slice(0,-1)));a.G[b]={name:b,Eb:d,yb:e,La:g};a.b?a.J=b:wg(a,b)}}return 820<=a.u?(Oe(a.v),a.error("temporary line limit reached"),!1):!0}
function wg(a,b,c){var d=a.G[b];if(!d)return!1;if(null!=c){b=[];var e=",";"("==c[0]&&(e+=")",c=c.substr(1));for(;c;){c=c.trim();var f=Fg(a,c,e);if(!f)break;b.push(f);c=c.substr(f.length+1)}Gg(a,d.La,d.Eb,b);return!0}if("@"!=b[0])return!1;switch(b.substr(1)){case Dg:d.yb||Gg(a,d.La);break;case Eg:for(;0<d.yb--;)Gg(a,d.La);break;default:return!1}return!0}
function Gg(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",n=0;;){var p=f.indexOf(h,n);if(0>p)break;var n=p+1,q=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(q>=f.length)&&f[q].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(q),n=p+k.length)}if(!vg(a,f))break}}ng.prototype.error=function(a){throw Error("error"+(this.u?" at line "+va(this.u):"")+": "+a);};
function Fg(a,b,c){c=void 0===c?"":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing angle bracket(s): "+b);break}d++}f?0<f&&a.error("extra angle bracket(s): "+b):e=b.substr(0,d);return e}
function xg(a,b){var c=b;null==a.i&&(a.i=a.w="",b&&(a.i=b[0],c=b=b.substr(1)));if(a.i){var d=b.indexOf(a.i);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.i=null);a.w+=b}if(null==a.i){var e=0;b=0;var f,g,d=a.w.length;a.C==Ag&&d++;for(var h=0;h<d;h++){e||(b=0,g=29,f=7,a.C==Bg&&(f--,g++));var k=a.w.charCodeAt(h)&127;6==f&&(97<=k&&122>=k&&(k-=32),k=k+32&63);b+=k*Math.pow(2,g);g-=f;e++;0>g&&(e=b,a.B[a.H++]=e,e=0)}e&&(a.B[a.H++]=b)}return c}
function yg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&void 0!==a.I[b]?a.error("label "+b+" redefined"):(a.I[b]={name:b,value:c,dd:d,cd:e,ed:f},a.v.K[b]=c)}var zg="ASCII",Ag="ASCIZ",Bg="SIXBIT",Cg="DEFINE",Dg="IFE",Eg="REPEAT";
function Hg(a,b,c){t.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Ig(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Jg(this);if(this.v=rb("CPU",this.id)){this.C=rb("Debugger",this.id);this.H=new Bc({id:this.Ra+".bus",busWidth:this.aa},this.v,this.C);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ta)for(b=
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.ta=this.u.ta;this.j(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.Da&&d.Da(this,this.H,this.v,this.C);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.K=!0,this.b=Kg),this.b&&(this.I=new F(this,"1.34.2"),Lg(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Mg(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.M=b,g.T=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&Ng(this,this.Ka)}else r("Unable to find CPU component")}ka(Hg,t);function Ig(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function Yc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(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 Ng(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){Ng(a,b,c)});return}}b.call(a,c)}
function Og(a,b){var c=new F(a,"1.34.2",Pg);if(Lg(c)&&Qg(c)){var d=c.get(Rg),e=b?b.get(Rg):"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=Hg.prototype;
l.Ka=function(a){void 0===a&&(a=this.b||(this.M?Sg:Kg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.2");if(a==Tg)b=!0;else if(a>Kg){if(Lg(d,this.M)){this.B=new F(this,"1.34.2",Ug);Lg(this.B)&&(Vg(this,d),a=Wg,Xg(this.B));this.B.set(Rg,Ga());Yg(this.B);var e=this.b&&!this.K;if(a==Sg||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Qg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lg(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(Zg,""),this.i=null)):this.j(f+": "+g),Xg(d),Lg(d)?(c=Qg(d),e=!0):c=!1))}e&&Og(this,c?d:null)}else a==Wg&&d.clear()}else Og(this);delete this.M;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=$g(this,g,d,b,c));b=[d,a,c];a!=Tg?Ng(this,this.vb,b):this.vb(b)}};
function $g(a,b,c,d,e){if(!b.A.V){b.A.V=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ua(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.T?(c.clear(),a.b=Kg,window&&window.location.reload()):a.P=!0,b.ua(null),e=!1),!d&&b.kb){var g=b.kb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.vb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&($g(this,this.v,b,c,a),H(this,-2),this.v.Z());this.P&&(Vg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0};
function Vg(a,b){if(ob("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.i||"";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;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function sg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Pg),h=Ga();g.set(Rg,h);f.set(Rg,h);f.set(ah,"1.34.2");f.set(bh,window?window.location.href:null);f.set(ch,window?window.navigator.userAgent:"");a.v&&a.v.ja&&(c&&(b&&(a.v.A.Z=a.v.A.L),a.v.W()),d=a.v.ja(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.V&&(n.ja&&(d=n.ja(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.V=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&nh(a,a.i,f.toString()),Yg(g)&&Yg(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==oh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
function ng(a,b,c,d){this.B=b||0;this.u=c;this.done=d;this.j=c.j;this.J={};this.L={};this.K=this.v=0;this.I=[];this.H=null;this.b=0;this.F=null;this.G=this.C="";this.i=null;this.w="";var e=this;Ha(a,null,!0,function(a,b,c){if(!c){var d=e.u;c=d.K;d.K={};try{d=b;if(ya(a,".html")){for(var d="",f,g=/<pre>([\s\S]*?)<\/pre>/gi;f=g.exec(b);){var h=f[1];0<=h.indexOf("&")&&(h=h.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&"));d+=h}(f=d.match(/&[a-z]+;/i))&&e.j("warning"+(e.v?" at line "+
va(e.v):"")+": "+("unrecognized HTML entity: "+f[0]))}var B,S=d.split(/\r?\n/);for(B=0;B<S.length&&(e.v++,vg(e,S[B]+"\r\n"));B++);}catch(la){e.j(la.message),e.K=-1}e.u.K=c;c=e.K}e.done(e,a,c)})}
function vg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.G);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.H+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.G)a.b++;else if(b[d]==a.C&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.F||"";a.J[d].La+=b;a.b||(a.F=null,wg(a,d));b=c}if(a.b)return!0}null!=a.i&&(b=xg(a,b));d=b.match(/\s*([A-Z$%.][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!d||d[4]&&";"!=d[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;b=d[1];c=d[2].toUpperCase();d=d[3].trim();if(b){var e=b.slice(-1);b=b.slice(0,-1);":"==e?yg(a,b,a.B,!0):(d=c+d,c=e)}a.H=c;for(var e=d=d.trim(),f=null,g=0,h=0,k=-1;h<e.length;){var n=e[h];"["==n&&(g++||(k=h));h++;if("]"==n&&0>=--g)break}0>g&&a.error("missing bracket(s): "+e);0<=k&&(f=e.substr(k,h-k));(e=f)&&(d=d.replace(e,zg(a,Ag,e)));if(!wg(a,c,d))switch(c){case "=":c=d;d=Je(a.u,c);void 0===d?a.error("parseExpression("+c+")"):yg(a,b,d);break;case Bg:case Cg:case Dg:xg(a,d);break;case Eg:case Fg:case Gg:zg(a,
c,d)}return 820<=a.v?(Oe(a.u),a.error("temporary line limit reached"),!1):!0}function wg(a,b,c){var d=a.J[b];if(!d)return!1;if(null!=c){b=[];var e=",";"("==c[0]&&(e+=")",c=c.substr(1));for(;c;){c=c.trim();var f=Hg(a,c,e);if(!f)break;b.push(f);c=c.substr(f.length+1)}Ig(a,d.La,d.Eb,b);return!0}if("@"!=b[0])return!1;switch(b.substr(1)){case Fg:d.yb||Ig(a,d.La);break;case Gg:for(;0<d.yb--;)Ig(a,d.La);break;default:return!1}return!0}
function Ig(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",n=0;;){var p=f.indexOf(h,n);if(0>p)break;var n=p+1,q=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(q>=f.length)&&f[q].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(q),n=p+k.length)}if(!vg(a,f))break}}ng.prototype.error=function(a){throw Error("error"+(this.v?" at line "+va(this.v):"")+": "+a);};
function Hg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
function xg(a,b){var c=b;null==a.i&&(a.i=a.w="",b&&(a.i=b[0],c=b=b.substr(1)));if(a.i){var d=b.indexOf(a.i);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.i=null);a.w+=b}if(null==a.i){var e=0;b=0;var f,g,d=a.w.length;a.H==Cg&&d++;for(var h=0;h<d;h++){e||(b=0,g=29,f=7,a.H==Dg&&(f--,g++));var k=a.w.charCodeAt(h)&127;6==f&&(97<=k&&122>=k&&(k-=32),k=k+32&63);b+=k*Math.pow(2,g);g-=f;e++;0>g&&(e=b,a.I[a.B++]=e,e=0)}e&&(a.I[a.B++]=b)}return c}
function zg(a,b,c){var d,e,f;a.G="<";a.C=">";if(b==Eg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];c=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);e=-1;f=3}else if(b==Ag)a.G="[",a.C="]",b="@"+va(a.v,5),d=[c[0],c.substr(1)],c=[],e=a.v,f=0;else{e=Hg(a,c);if(!e)return a.error("missing "+b+" expression: "+c),"";c=c.substr(e.length+1);e=e.trim();d=c.match(/\s*(<|)(.*)/i);b="@"+b;c=[];e=Je(a.u,e);f=1}b=b.toUpperCase();a.b=1;var g=
"";d[f]&&(a.b=2,g=d[f+1],g.slice(-1)==a.C&&(a.b=0,g=g.slice(0,-1)));a.J[b]={name:b,Eb:c,yb:e,La:g};a.b?a.F=b:wg(a,b);return b}function yg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&void 0!==a.L[b]?a.error("label "+b+" redefined"):(a.L[b]={name:b,value:c,dd:d,cd:e,ed:f},a.u.K[b]=c)}var Bg="ASCII",Cg="ASCIZ",Dg="SIXBIT",Eg="DEFINE",Ag="LITERAL",Fg="IFE",Gg="REPEAT";
function Jg(a,b,c){t.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Kg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Lg(this);if(this.v=rb("CPU",this.id)){this.C=rb("Debugger",this.id);this.H=new Bc({id:this.Ra+".bus",busWidth:this.aa},this.v,this.C);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ta)for(b=
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.ta=this.u.ta;this.j(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.Da&&d.Da(this,this.H,this.v,this.C);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.K=!0,this.b=Mg),this.b&&(this.I=new F(this,"1.34.2"),Ng(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Og(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.T=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&Pg(this,this.Ka)}else r("Unable to find CPU component")}ka(Jg,t);function Kg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function Yc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(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 Pg(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){Pg(a,b,c)});return}}b.call(a,c)}
function Qg(a,b){var c=new F(a,"1.34.2",Rg);if(Ng(c)&&Sg(c)){var d=c.get(Tg),e=b?b.get(Tg):"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=Jg.prototype;
l.Ka=function(a){void 0===a&&(a=this.b||(this.L?Ug:Mg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.2");if(a==Vg)b=!0;else if(a>Mg){if(Ng(d,this.L)){this.B=new F(this,"1.34.2",Wg);Ng(this.B)&&(Xg(this,d),a=Yg,Zg(this.B));this.B.set(Tg,Ga());$g(this.B);var e=this.b&&!this.K;if(a==Ug||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Sg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ng(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(ah,""),this.i=null)):this.j(f+": "+g),Zg(d),Ng(d)?(c=Sg(d),e=!0):c=!1))}e&&Qg(this,c?d:null)}else a==Yg&&d.clear()}else Qg(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=bh(this,g,d,b,c));b=[d,a,c];a!=Vg?Pg(this,this.vb,b):this.vb(b)}};
function bh(a,b,c,d,e){if(!b.A.V){b.A.V=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ua(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.T?(c.clear(),a.b=Mg,window&&window.location.reload()):a.P=!0,b.ua(null),e=!1),!d&&b.kb){var g=b.kb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.vb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(bh(this,this.v,b,c,a),H(this,-2),this.v.Z());this.P&&(Xg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0};
function Xg(a,b){if(ob("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.i||"";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;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function sg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Rg),h=Ga();g.set(Tg,h);f.set(Tg,h);f.set(ch,"1.34.2");f.set(dh,window?window.location.href:null);f.set(eh,window?window.navigator.userAgent:"");a.v&&a.v.ja&&(c&&(b&&(a.v.A.Z=a.v.A.M),a.v.W()),d=a.v.ja(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.V&&(n.ja&&(d=n.ja(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.V=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&ph(a,a.i,f.toString()),$g(g)&&$g(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==qh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.H&&this.H.reset&&(Ob(this,"Resetting "+this.H.type),this.H.reset());this.v&&this.v.reset&&(Ob(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.v&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};l.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
l.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}H(this,-1)};
function H(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.Ya+=d))&&(e.textContent=c.A.L?c.aa.toFixed(2)+"Mhz":"Stopped",c.Ya=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.A.L;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.C&&a.C.ca||8,e=e||0,e=8==f?ua(e,void 0):m(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.va);hc(a,a.i);bc(a,a.w)}}
l.ka=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?sg(d,!1,!0):Ng(d,d.Ka))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ka(Kg)}else d.reset(),d.v&&!d.C&&d.v.Z()},!0;case "save":if(ya(Na(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Jg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=sg(d,b);b?nh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function Jg(a,b){var c=a.i;c||((c=Qa(Zg),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ph(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function ph(a,b){a.i=null;b=Ha(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(Zg,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function Mg(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+qh(a,"1.34.2"));return b}
function nh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=qh(a,"1.34.2");d.data=c;b=Ha(Na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Ra(Zg,""),a.i=null)}}
function hd(a,b){if(a.ta){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ta.focus();!b&&window&&window.scrollTo(c,d)}}var Ug="failsafe",Pg="validate",Rg="timestamp",ah="version",bh="url",ch="browser",Zg="user",Tg=-1,Kg=0,Sg=1,Wg=2,oh=3;Ya(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new Hg(g,d,!0);sb(g,f);g.O&&Ng(g,g.Ka)}});
Za.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Ka(Tg)}});Za.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.A.V&&sg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=qh(a,b,c);Xg(this,a.Gb)}l=F.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function Lg(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function Qg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function Yg(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Xg(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){Xg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function qh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var rh=0;
function sh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):th(k,a,b,c,d,e,f,g)})}
function th(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?uh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function uh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);uh(a,b,c)}})}else c(a,null)}
function vh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--rh||gb(!0));n=!1}var h,k,n=!0;rh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));q.appendChild(B)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?sh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--rh||gb(!0)):g("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),--rh||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?sh(c,b,a,e,!0,f,p):th(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(S){g(S.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return vh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return vh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
function H(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.Ya+=d))&&(e.textContent=c.A.M?c.aa.toFixed(2)+"Mhz":"Stopped",c.Ya=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.v.A.M;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.C&&a.C.ca||8,e=e||0,e=8==f?ua(e,void 0):m(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.va);hc(a,a.i);bc(a,a.w)}}
l.ka=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?sg(d,!1,!0):Pg(d,d.Ka))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ka(Mg)}else d.reset(),d.v&&!d.C&&d.v.Z()},!0;case "save":if(ya(Na(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Lg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=sg(d,b);b?ph(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function Lg(a,b){var c=a.i;c||((c=Qa(ah),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=rh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function rh(a,b){a.i=null;b=Ha(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(ah,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function Og(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+sh(a,"1.34.2"));return b}
function ph(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=sh(a,"1.34.2");d.data=c;b=Ha(Na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Ra(ah,""),a.i=null)}}
function hd(a,b){if(a.ta){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ta.focus();!b&&window&&window.scrollTo(c,d)}}var Wg="failsafe",Rg="validate",Tg="timestamp",ch="version",dh="url",eh="browser",ah="user",Vg=-1,Mg=0,Ug=1,Yg=2,qh=3;Ya(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new Jg(g,d,!0);sb(g,f);g.O&&Pg(g,g.Ka)}});
Za.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Ka(Vg)}});Za.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.A.V&&sg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=sh(a,b,c);Zg(this,a.Gb)}l=F.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function Ng(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function Sg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function $g(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Zg(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){Zg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function sh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var th=0;
function uh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):vh(k,a,b,c,d,e,f,g)})}
function vh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?wh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function wh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);wh(a,b,c)}})}else c(a,null)}
function xh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--th||gb(!0));n=!1}var h,k,n=!0;th++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));q.appendChild(B)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?uh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--th||gb(!0)):g("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),--th||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?uh(c,b,a,e,!0,f,p):vh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(S){g(S.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return xh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return xh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var q=b[p];if('"'==q||"'"==q)n&&q!=n?k+=q:(n?n=null:n=q,k&&(h.push(k),k=""));else{if(!n){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){k&&(h.push(k),k="");";"==q&&h.length&&(g.push(h),h=[]);continue}}k+=q}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=gb;window.sendEvent=ib;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map