diff --git a/apps/pdp10/diags/ka10/dakal/README.md b/apps/pdp10/diags/ka10/dakal/README.md index eabb159ed..9cf4b92ff 100644 --- a/apps/pdp10/diags/ka10/dakal/README.md +++ b/apps/pdp10/diags/ka10/dakal/README.md @@ -7,7 +7,7 @@ machines: type: pdp10 config: /devices/pdp10/machine/ka10/test/debugger/machine.xml debugger: true - commands: a dakal.mac; g 33726 + commands: a dakal.mac --- PDP-10 KA10 Basic Instruction Diagnostic #12 diff --git a/modules/pdp10/lib/cpuops.js b/modules/pdp10/lib/cpuops.js index 187fe0d04..ed55f1a35 100644 --- a/modules/pdp10/lib/cpuops.js +++ b/modules/pdp10/lib/cpuops.js @@ -6407,23 +6407,43 @@ PDP10.doMUL = function(dst, src, fTruncate, fExternal) } } + ext = PDP10.split72.call(this, res, ext, fExternal); + if (fTruncate) { /* - * If ext is something OTHER than an extension of the res sign bit, then we have overflow. + * Special code for IMUL. I originally tried to avoid calling split72() in this case, but the PDP-10 + * still appears to be splitting the result of the multiplication into separately signed 36-bit values, + * so the simplest solution is to call split72() in both cases. */ + res = this.regEX; if (!fExternal) { + /* + * Regarding IMUL overflows, the original spec says: + * + * Set Overflow if the product is >= 2^35 or < -2^35 (ie, if the high order word of the double + * length product is not null); the high order word is lost. + * + * However, when the DAKAL diagnostic performs a sequence like this: + * + * 00=000000000000 01=000000000000 02=000000000000 03=400000036755 + * 04=400000000000 05=000000000003 06=400000000000 07=000000000004 + * 10=000000000000 11=000000000011 12=777777400000 13=777777777776 + * 14=000000200000 15=400000037134 16=000000000016 17=000000000000 + * PC=037145 RA=00400000 EA=400000 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0 + * 037145: 220600 000013 IMUL 14,13 ;cycles=1 + * + * it sets 14=777777400000 and leaves overflow clear; since the 'high order word" would be 777777777777, + * not null, I think the spec over-simplifies. So our check is more exhaustive: it verifies that ext is + * nothing more than an extension of the sign bit of res (ie, 0 if res is positive, -1 if res is negative). + * Any other combination of values implies an overflow. + */ if ((ext || res > PDP10.INT_MASK) && (ext != PDP10.WORD_MASK || res <= PDP10.INT_MASK)) { this.regPS |= PDP10.PSFLAG.AROV; } } - /* - * Also note that, in the truncate case, we return the low order bits (res), rather than the - * the high order bits (ext) that split72() does. - */ - return res; + ext = res; } - - return PDP10.split72.call(this, res, ext, fExternal); + return ext; }; /** @@ -6531,8 +6551,9 @@ PDP10.split72 = function(res, ext, fExternal) var sign = ext - (ext % PDP10.INT_LIMIT); ext = ((ext * 2) % PDP10.WORD_LIMIT) + Math.trunc(res / PDP10.INT_LIMIT); res = sign + (res % PDP10.INT_LIMIT); + var signNew = ext - (ext % PDP10.INT_LIMIT); - if (sign != signNew) { + if (signNew != sign) { /* * I used to restore ext's original sign (ext = sign + (ext - signNew)), but the PDP-10's defined * behavior for multiplication overflow (ie, whenever both operands are 0o400000000000) is to set both @@ -6543,9 +6564,13 @@ PDP10.split72 = function(res, ext, fExternal) * If both operands are -2^35 set Overflow; the double length result stored is -2^70. */ res = ext; - if (!fExternal) this.regPS |= PDP10.PSFLAG.AROV; } + if (fExternal) return res; + + if (res == PDP10.INT_LIMIT && ext == PDP10.INT_LIMIT) { + this.regPS |= PDP10.PSFLAG.AROV; + } this.regEX = res; return ext; }; diff --git a/modules/pdp10/lib/cpustate.js b/modules/pdp10/lib/cpustate.js index 36739f01e..11dcff1ec 100644 --- a/modules/pdp10/lib/cpustate.js +++ b/modules/pdp10/lib/cpustate.js @@ -510,7 +510,7 @@ class CPUStatePDP10 extends CPUPDP10 { */ getXC() { - return this.regXC >= 0? this.regXC : this.regPC; + return this.regXC >= 0? this.regXC : ((this.regRA & PDP10.OPCODE.I_FIELD)? this.lastPC : this.regPC); } /** @@ -546,8 +546,9 @@ class CPUStatePDP10 extends CPUPDP10 { */ setPC(addr) { - this.regPC = addr % PDP10.ADDR_LIMIT; + this.regRA = 0; this.regXC = -1; + this.regPC = addr % PDP10.ADDR_LIMIT; } /** diff --git a/versions/pdpjs/1.34.3/pdp10-dbg.js b/versions/pdpjs/1.34.3/pdp10-dbg.js index b51af40a6..82c57cb86 100644 --- a/versions/pdpjs/1.34.3/pdp10-dbg.js +++ b/versions/pdpjs/1.34.3/pdp10-dbg.js @@ -41,23 +41,23 @@ function Aa(a){return a.replace(/[&<>"']/g,function(a){return Ba[a]})}function C function Ha(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function Ia(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, f,e))});if(b&&"object"==typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function Ja(a,b){var c,d={da:null,Z:null,la:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;cb.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=g.load;d.za=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(q(d.da[0]),d=null):(q("Empty resource: "+a),d=null));d.Z=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.bb=this.id:(this.cb=this.id.substr(0,a),this.bb=this.id.substr(a+1));this.A={ready:!1,Wa:!1,rb:!1,aa:!1,error:!1};this.gb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;fb.push(this)}function gb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date} +function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Eb=b.comment;this.Ub=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.bb=this.id:(this.cb=this.id.substr(0,a),this.bb=this.id.substr(a+1));this.A={ready:!1,Wa:!1,rb:!1,aa:!1,error:!1};this.gb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.Aa=null;fb.push(this)}function gb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date} function q(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc, set:this.nc};Mb(this)}ja(cc,r);m=cc.prototype;m.reset=function(a){this.stop();a&&ec(this,this.w=0)}; m.ta=function(a,b,c,d){if(this.H&&this.H.ta(a,b,c,d)||this.v&&this.v.ta(a,b,c,d)||this.D&&this.D.ta(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.C[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(){fc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){gc(a,b)}}(this,b),a.ontouchstart= -function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.ta.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ba=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()}; +function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.ta.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ca=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()}; m.restore=function(a){if(a=a[0])kc(this,this.i=a[0]),ec(this,this.w=a[1]),lc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.C)mc(a,c,null!=b?b:a.C[c])}function nc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])} m.Vb=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return lc(this,oa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};m.oc=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.O=b==pc,a.R=b==qc),!0):!1} function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(I(this.v,this.i),this.b[rc]&&this.b[rc][1]&&sc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()}; @@ -75,43 +75,43 @@ m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[rc]&&this.b[rc][1])sc(this.v);else m.ac=function(a){if(!a&&!this.v.A.P){var b;this.R&&xc(this);this.T==dc?b=zc(this.G,this.i):b=this.v.f(this.i);ec(this,this.w=b)}};m.cc=function(a){a||this.v.A.P||kc(this,this.j)};m.bc=function(a){a?(this.F=!0,hc(this,!0)):(this.F=!1,hc(this),lc(this,0))};m.dc=function(a,b){this.j=a?this.j|1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.j&1<d.length){for(var e=0,f=Array(4096),g=0;gd.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Ya+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ya){l=h.size-(e-k);l>f&&(l=f);h.Ya=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Fc(Gc,e,f)}e=new Bc(a,e,l,16384,d);Cc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Hc[d]+" at "+va(b)),!0):Fc(Lc,b,c)} function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function yc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Dc(a){for(var b=0,c=[],d=0;d=a.qa&&(a.qa+=a.pa,c=!0);0<=a.ua&&a.ua<=fd(a)&&(a.pa=a.ua=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}} +m.Ca=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0}; +m.sa=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(sc(this),!0):!1};m.Lb=function(){return 0};function bd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.qa&&(a.qa=-1);void 0===a.va&&(a.va=-1);a.A.Va=0<=a.Ia&&0=a.ua&&(a.ua+=a.qa,c=!0);0<=a.va&&a.va<=fd(a)&&(a.qa=a.va=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}} m.ta=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.H)if(a=d.H,a.A.aa)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;ca.ba/a.ga?b=1:d=!0;a.ka=b;b=a.mb*a.ka;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.T=0;hd(a);return d}function kd(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c} -m.lc=function(){if(this.A.P){this.eb>=this.pb&&hd(this,!0);this.va=0;this.Ga=nb();if(this.T){var a=this.Ga-this.T;a>this.ob&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Va?1:this.Ja);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.va+=b;this.M+=b;wc(this,b);uc(this,b);this.na-=b;if(0>=this.na){this.na+=this.Ja;++this.qb>=nd&&(this.H&&K(this.H,void 0),this.qb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this, -e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Gb;this.T=nb();var c=this.ob;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.T-this.Ga),d=this.T-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,gd(this)));if(0>c||this.bac&&(this.L-=c),c=0;this.eb+=this.va;this.T+=c;a(b,c)}}}; +m.lc=function(){if(this.A.P){this.eb>=this.pb&&hd(this,!0);this.wa=0;this.Ga=nb();if(this.T){var a=this.Ga-this.T;a>this.ob&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Va?1:this.Ja);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.wa+=b;this.M+=b;wc(this,b);uc(this,b);this.na-=b;if(0>=this.na){this.na+=this.Ja;++this.qb>=nd&&(this.H&&K(this.H,void 0),this.qb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this, +e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Gb;this.T=nb();var c=this.ob;this.wa&&(c=Math.round(c*this.wa/this.Ja));var c=c-(this.T-this.Ga),d=this.T-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,gd(this)));if(0>c||this.bac&&(this.L-=c),c=0;this.eb+=this.wa;this.T+=c;a(b,c)}}}; function sc(a,b){if(!zb(a))if(a.A.P)a.u(a.toString()+" busy");else{gd(a);a.A.P=!0;a.A.jb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Gb,0)}}m.$a=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){md(this);vc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"]; -function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.nb=b;this.ab=+a.addrReset||0;this.Sb=pd.bind(this);this.w=M.bind(this);this.Da=null;this.Db=[];this.A.complete=!1}ja(od,Yc);m=od.prototype; -m.reset=function(){this.status("Model "+this.nb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.Ea=this.ab;this.K=this.O=-1;this.F=this.j=0;this.kb=[0,0];this.wa=[0,0];this.oa=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Lb=function(){return 0}; -m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.Ea,this.Ca,this.ab]);a.set(1,[]);a.set(2,[this.W,this.ka,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()}; -m.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.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Ca=b.next().value;this.ab=b.next().value;b=a[2];this.W=b[0];gd(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)}; -m.sc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b}; -m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.jb?-1:0:0,c=a?this.A.jb?0:1:-1;this.A.jb=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La= -this.f(this.Ea=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Sb(a);this.N--}while(0>4].call(this,a,a&15)}function O(a){this.w(a)} +function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.nb=b;this.ab=+a.addrReset||0;this.Sb=pd.bind(this);this.w=M.bind(this);this.Ea=null;this.Db=[];this.A.complete=!1}ja(od,Yc);m=od.prototype; +m.reset=function(){this.status("Model "+this.nb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.pa=this.ab;this.K=this.O=-1;this.F=this.j=0;this.kb=[0,0];this.xa=[0,0];this.oa=[0,0];this.ya=[0,0];this.Da=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Ea=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Lb=function(){return 0}; +m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.pa,this.Da,this.ab]);a.set(1,[]);a.set(2,[this.W,this.ka,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()}; +m.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.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.pa=b.next().value;this.Da=b.next().value;this.ab=b.next().value;b=a[2];this.W=b[0];gd(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)}; +m.sc=function(a,b){var c=this.G;a=this.Da=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b}; +m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.jb?-1:0:0,c=a?this.A.jb?0:1:-1;this.A.jb=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Ea||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La= +this.f(this.pa=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Sb(a);this.N--}while(0>4].call(this,a,a&15)}function O(a){this.w(a)} function wd(){var a=0,b=this.f(this.b),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function xd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.j&=-8193;this.K=-1}} function yd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function zd(a,b){this.g(b,this.f(this.b))}function Ad(a,b){this.g(b,this.b)}function Bd(a,b){this.g(this.b,this.f(b))}function Cd(a,b){this.g(b,0)}function Dd(a,b){this.g(b,C-this.f(b))}function Ed(a,b){this.g(b,C)} function Fd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Gd(a,d,c)+(c-(c&x)))}function Hd(a,b){var c=this.f(b);this.g(b,Gd(a,c,0))}function Id(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+(b-(b&x)))}function Jd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Kd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)} function be(a,b){var c=this.b*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}function ce(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+b)}function de(a,b){var c=this.f(this.b),d=(c&x)*y,c=Gd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)} function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Ub?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/y|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){ne[a&7].call(this,a,a>>3&127)} function oe(){}function pe(){}function M(a){this.u("undefined opcode: "+va(a));sd(this,-1);this.Y()}function qe(a){a>z&&(a!=B?a=Xb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%D;re.call(this,a,b,c);return c} -function se(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.kb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.oa;f[0]=c;f[1]=0;c=this.xa;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=D,b[1]--),ue(this.kb,this.wa),ve(this.xa)))break;we(this.oa);we(this.wa)}while(!ve(this.wa)); -a=this.kb[0];this.F=this.xa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a} -function xe(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.nb||e!=B)&&(e=D-e,b=!b);f>z&&(f=D-f,b=!b);if(ez)&&(g!=C||a<=z)&&(this.j|=131072),a;c=a;b=g;a=b-b%B;b=2*b%D+Math.trunc(c/B);c=a+c%B;a!=b-b%B&&(c=b,d||(this.j|=131072));d?d=c:(this.F=c,d=b);return d} +function se(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.kb;f[0]=0;f[1]=0;f=this.xa;f[0]=1;f[1]=0;f=this.oa;f[0]=c;f[1]=0;c=this.ya;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=D,b[1]--),ue(this.kb,this.xa),ve(this.ya)))break;we(this.oa);we(this.xa)}while(!ve(this.xa)); +a=this.kb[0];this.F=this.ya[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a} +function xe(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.nb||e!=B)&&(e=D-e,b=!b);f>z&&(f=D-f,b=!b);if(ez)&&(g!=C||a<=z)&&(this.j|=131072),g=a);return g} function ye(a){a?a==B?this.j|=163840:a=Xb-a:this.j|=98304;return a}function ze(a,b){var c=a-b;0>c&&(c+=D);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Wb);b=Math.trunc(b/Wb);c=Math.trunc(c/Wb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function S(a,b){return R(a,(~(b/E|0)&15)*E+(~b>>>0))}function T(a,b){return(a>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function V(a){return a>>0)}function X(a){return(a/y|0)+(a&x)*y}function fe(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Ub?x*y:0}return b}function Gd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b} function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]} @@ -155,18 +155,18 @@ function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||I(this,this.i+1);this.g(b c))},P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P],ne=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)}, function(a){this.w(a)}]; function Be(a){r.call(this,"ROM",a,128);this.Z=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=xa(this.w);if(this.w){a=this.w;var b=ya(this.F);"json"!=b&&"hex"!=b&&(a=Ka()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ia(a,null,!0,function(a,b,f){f?(c.ha("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(gb(c.cb,a,b),(a=Ja(a,b))?(c.b=a.da,c.Z=a.Z):c.w=null);Ce(c)})}}ja(Be,r); -Be.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ba=function(){this.Z&&(this.D&&De(this.D,this.id,this.C,this.j,this.Z),delete this.Z);return!0};Be.prototype.sa=function(){return!0}; +Be.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ca=function(){this.Z&&(this.D&&De(this.D,this.id,this.C,this.j,this.Z),delete this.Z);return!0};Be.prototype.sa=function(){return!0}; function Ce(a){if(!Bb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Ec(a.G,b,a.j,Pc)){var c;for(c=0;c>>f.i;0>>= f.i;0>>a.i;0g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h>>a.i;0g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h=na.xb&&c<=na.Rb&&(b=c-(na.xb-na.Nb));b&&(a.preventDefault&&a.preventDefault(),d.hb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==na.Pb&&(b=na.Ob);d.hb(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.hb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)}; -m.Mb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.bb)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.cb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Mb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0}; +m.Mb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.bb)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.cb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ca=function(a,b){if(!b)if(this.Mb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0}; m.sa=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new G(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.hb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Da(b.substring(c,f))),c=f+1}}return a}function Le(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)&(c/Me|0))*Me+((b&c)>>>0)} @@ -182,7 +182,7 @@ function Qe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.ub(b);if(0<=f)f=a. function We(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.U?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function Xe(a){var b=a.i;a.i={};return b}function Ye(a,b){if(b)return We(a,b,a.i[b].value);var c=0;for(b in a.i)We(a,b,a.i[b].value),c++;return 0=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=va(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c} var Te={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Se={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Me=Math.pow(2,32); -function Ze(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.T=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];$e(this);this.W=this.qa=0;this.j=[];this.Da=void 0;af(this);this.D=this;this.wa={};this.ca=this.Fb=0;this.ba=null;this.R=[];bf(this,a.messages);this.va=a.commands;this.Ha=[];this.O=0;this.Oa=this.Ea=null;this.F=this.La=this.Ka=this.oa=this.Ca=0;this.xa=this.na=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b, +function Ze(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.T=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];$e(this);this.W=this.qa=0;this.j=[];this.Da=void 0;af(this);this.D=this;this.wa={};this.ca=this.Fb=0;this.ba=null;this.R=[];bf(this,a.messages);this.va=a.commands;this.Ha=[];this.O=0;this.Oa=this.Ea=null;this.F=this.La=this.Ka=this.oa=this.ya=0;this.xa=this.na=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b, a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ja(Ze,Je);function cf(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,fb:void 0===b?!1:b,ra:!1,U:c}}function df(a,b,c,d){a.B=b;a.fb=c||!1;a.ra=!1;a.U=d}function ef(a){return[a.B,a.fb,a.ra,a.U,a.ib]}function ff(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.Ab=Ke(a,c.ib=b[4]));return c}m=Ze.prototype; m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&bf(this,b);if(a=$c(a,"commands"))this.va=a;gf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=cf(hf(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+ n(e<a&&a>=-B&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function lf(a,b){return L(a,b/Tb,18)+" "+L(a,b%Tb,18)} function bf(a,b){a.D=a;a.ca=a.Fb=536870916;a.ba=null;a.R=[];b=Ke(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){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>23&&a.v.Ea==b&&(b=sd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(df(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1} +function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.pa==b&&(b=sd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(df(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1} function Df(a,b,c,d){var e=Z(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Ef)if(g=Ef[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Ff;l=p&3;break;case 32256:k=Gf;l=p&7;break;case 29248:k=Hf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>If&&(k="B");k=Jf[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p>18&15)&&(k+="("+L(a,f, -1)+")")}else k=Ca(k,8)+lf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+lf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ca(g,16)+f;c&&(h=Ca(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h} function Lf(a,b,c,d,e,f){var g=-1,h,k;a.ja=null;if(b){for(var l=b.toUpperCase(),p=0;pIf&&(ka="B");if(l==Jf[k]+ka){g=29248!=h?F:(F&3)<<1|(F&12)<<2;g=(J|g<<6)*Yb;break}}if(0<=g)break}if(0<=g)break}!(0>g)|| c&&c.match(/^[0-9A-Z$%.?]/i)||(c=b+c,b="",g=0)}else c&&(g=h=0);if(0<=g&&c)for(l=c.split(","),A=0;Ak||15 -k||127k||15k||262143g&&!f&&a.u("unknown instruction: "+b+" "+c);return g}function $e(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b>>d.i],!0);a.K=["bw"];a.Ca=0;a.qa=0} +k||127k||15k||262143g&&!f&&a.u("unknown instruction: "+b+" "+c);return g}function $e(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b>>d.i],!0);a.K=["bw"];a.ya=0;a.qa=0} m.Ra=function(a,b,c){var d=!0;c||Mf(this,a,b,!1,!0);if(a!=this.b){var e=cf(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Nf(this,a,a.length-1,"set"),af(this)));return d};function Mf(a,b,c,d,e){var f=!1;c=cf(c);for(var g=1;g>>d.i],b==a.K));h.ra||af(a);break}}return f} function Of(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=va(d,2);df(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d=rf?1:d==of?23:18)+" "),b+=e;c+="\n"+b}return c}m.Hb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],u=Ga(p,k,a.Hb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,Z:e,Cb:f})}function Rf(a,b,c){var d=[],e=cf(b)>>>0;for(b=0;b>>0,h=f.Wb;if(e>=g&&e>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(I(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),cd(a)):a.u("no data")}function rg(a,b,c,d){var e={},f=a.I[b].Cb,g=0,h=null;0<=c&&c=b[1][0]?b[1]:vo (c||h));a.xa=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Lf(a,e,b.join(""),f.B||0);0<=b&&(a.zb(f,b),a.u(Df(a,f)));return!0}function wg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ye(a)||a.u("no variables"),!0;if(!c[2])return Ye(a,c[1]);if(!c[3])return delete a.i[c[1]],!0;b=Ve(a,c[3]);return void 0!==b?(a.i[c[1]]={value:b,ja:void 0},!0):!1}a.u("invalid assignment:"+b);return!1} function xg(a,b,c){var d=null;b=hf(a,b);var e=Rf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case nf:I(h, -g);df(a.M,h.i);break;case qf:rd(h,g);break;case rf:f=131072;break;case sf:f=65536;break;case tf:f=32768;break;case uf:f=32;break;case vf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Qf(a,e));c&&(df(a.M,0<=d.O?d.O:d.i),Bf(a,L(a,a.M.B,18)))}}function yg(a,b){b=Da(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ka;l=b;h.B=l.B;h.fb=l.fb;h.ra=l.ra;h.U=l.U;a.u(Df(a,b,g,f));e-=b.B-k;c++}} function Pf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(zf+b):(a.V&&(a.u("ended assemble at "+L(a,a.ka.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Bb(a)&&0p||"z"ra.length&&(a.u("note: only "+ra.length+" available"),ea=ra.length);la-=ea;0>la&&(null==ra[ra.length-1].B?(ea=la+ea,la=0):la+=ra.length);var Od=[];"call"==Wf&&(Cb= 1E5,Od=["CALL"]);for(void 0!==Vf&&a.u(ea+" instructions earlier:");0=ra.length&&(la=0);a.Da=ea;Yf++;Cb--}}Yf||(a.u("no "+Xf+"history available"),a.Da=void 0)}else{var Na=0,ag="ds"==ib,Eb=hf(a,qa,a.pa);Ea&&("l"==Ea.charAt(0)?(Ea=Ea.substr(1)||Jh,Na=Qe(a,Ea)):Na=hf(a,Ea).B-Eb.B,0>Na&&(Na=0),65536Fb?".":String.fromCharCode(Fb)),Ic=Ic-7}Oa&&(Oa+="\n");Oa=ag?Oa+(sa+","):Oa+(qa+": "+sa+(0>cg?" "+Rd:""))}Oa&&a.u(Oa);a.U=Lh}}}break;case "e":if("else"== @@ -231,7 +231,7 @@ a.Y()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Wd;v 1)){for(var Rh=a,Jc=Yd,ig=null,Jb=Jc.B,jg=Jb,Zd=1;6>=Zd&&Jb;Zd++){if(2pg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update"); -else if(a.O)a.u("step in progress");else{var qg=Z(a.v.i);a.Na(qg);a.O?(a.Ra(a.b,qg,!0),xf(a)||(a.H&&jd(a.H),a.O=0)):zg(a,pg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Af(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var lb=+g[2];if(2==lb||8==lb||10==lb||16==lb)a.U=lb;else{a.u("invalid base: "+lb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.pa=Lb;break;case "start":a.v.Ia=Lb;break;case "stop":a.v.ua=Lb; +else if(a.O)a.u("step in progress");else{var qg=Z(a.v.i);a.Na(qg);a.O?(a.Ra(a.b,qg,!0),xf(a)||(a.H&&jd(a.H),a.O=0)):zg(a,pg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Af(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var lb=+g[2];if(2==lb||8==lb||10==lb||16==lb)a.U=lb;else{a.u("invalid base: "+lb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.qa=Lb;break;case "start":a.v.Ia=Lb;break;case "stop":a.v.va=Lb; break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ka+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"), a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":zg(a,g[0],g[1]);break;case "u":Bf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){wg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.nb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){yg(a,b.substr(1));break}var $d="commands:",ae;for(ae in Bg)$d+="\n"+Ca(ae,9)+Bg[ae];td(a)||($d+="\nnote: history disabled if no exec breakpoints"); a.u($d);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(sg){a.u("Debugger "+(sg.stack||sg.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Ke(a,b,c));for(;b=a.Ha.shift();)if(!Pf(a,b))return!1;return!0} @@ -242,8 +242,8 @@ nf=0,of=1,pf=2,qf=3,rf=4,sf=5,tf=6,uf=7,vf=8,mf="PC RA EA PS OV C0 C1 ND PD".spl function vg(a,b,c,d,e){this.la=b;this.W=c||"";this.b=d;this.done=e;this.H=null;this.v={};this.N={};this.R=[];this.O=[];this.S=[];this.ea=[];this.ba=this.V=this.ia=0;this.X=this.la||0;this.Fa=-1;this.w=[];this.M=null;this.i=0;this.L=null;this.J=this.I="";this.ga=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.j=null;this.C="";this.G=[];this.K=0;this.F=a.split(";");this.T=[];Dg(this)} function Dg(a){if(a.K==a.F.length)a.done(Eg(a));else{var b=a.F[a.K];a.u("loading "+xa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ia(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(za(b,".html")){e="";var c;for(b=/
([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Fg(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);if(d.length&
 1){if(c=d.pop())Fg(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Fg(a,"unexpected number of lines ("+d.length+")");a.G=a.G.concat(d);a.T[a.K]=d.length>>1;a.K++;setTimeout(function(){Dg(a)},0)}})}}
-function Eg(a){if(0<=a.W.indexOf("p"))return a.u(a.G.join("")),0;var b=Xe(a.b);try{for(var c=0;c
 J)break;var u=J+1,F=J+l.length,ka="",Ab="";J&&(ka=b[J-1]).match(/[0-9A-Z$%.]/i)||!(F>=b.length)&&(Ab=b[F]).match(/[0-9A-Z$%.]/i)||("'"==ka&&J--,"'"==Ab&&F++,b=b.substr(0,J)+p+b.substr(F),u=J+p.length,g=!0)}c=null}}d=h[1];b=h[3];c=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Ig(a,d,a.X,Jg));var H;f&&(H=c.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=H[1],c=H[2],"=="==f?e|=Sg:"=:"==f&&(e|=Tg),Ig(a,d,c,e),f=c="");if(!f&&!c)return!0;a.M=f;if(H=Ug(a,c))c=c.replace(H,Vg(a,Wg,Ug(a,h))),b||(b="\t");for(;H=Xg(a,c);)c=
@@ -265,27 +265,27 @@ function Og(a,b){for(var c="",d=0;d=D)&&Fg(a,"truncated value "+va(b)+" at location "+va(c)+" to "+va(d));return d}vg.prototype.error=function(a,b){throw Error("error in "+Gg(this,b)+": "+a);};function Fg(a,b){a.u("warning in "+Gg(a,void 0)+": "+b)}vg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
 var Jg=1,Sg=2,Tg=4,Zg="ASCII",$g="ASCIZ",bh="BLOCK",hh="DEFINE",ch="END",dh="EXP",ih="IFDEF",jh="IFE",kh="IFG",lh="IFL",mh="IFN",nh="IFNDEF",Qg="IRP",Rg="IRPC",qh="LALL",Wg="LITERAL",rh="LIST",fh="LOC",sh="NOSYM",oh="OPDEF",th="PAGE",ph="REPEAT",ah="SIXBIT",uh="SUBTTL",vh="TITLE",gh="XWD",wh="XLIST",Dh=-1,xh=-2,Eh=-3,Ch=-4;
-function Fh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.R=null;Gh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.T=this.O=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Hh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.cb+".bus",busWidth:this.W},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
-0;b\nLicense: GPL version 3 or later ");for(b=0;b\nLicense: GPL version 3 or later ");for(b=0;bIh){if(Uh(d,this.L)){this.C=new G(this,"1.34.3",ci);Uh(this.C)&&(di(this,d),a=ei,fi(this.C));this.C.set($h,Ha());gi(this.C);var e=this.b&&!this.K;if(a==ai||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Zh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Uh(d,g):("error"==f&&"no machine state"!=
 g?(this.ha("Error: "+g),"unable to verify user"==g&&(Ra(hi,""),this.i=null)):this.u(f+": "+g),fi(d),Uh(d)?(c=Zh(d),e=!0):c=!1))}e&&Xh(this,c?d:null)}else a==ei&&d.clear()}else Xh(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ii(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(di(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
 function di(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ia("http://www.pcjs.org/api/v1/report",d,!0)}}
 function Ag(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",Yh),h=Ha();g.set($h,h);f.set($h,h);f.set(ji,"1.34.3");f.set(ki,window?window.location.href:null);f.set(li,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k=d||30<=(c.lb+=d))&&(e.textContent=c.A.P?c.ba.toFixed(2)+"Mhz":"Stopped",c.lb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?va(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0=d||30<=(c.lb+=d))&&(e.textContent=c.A.P?c.ba.toFixed(2)+"Mhz":"Stopped",c.lb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?va(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.u=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
+function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.v=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
 function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.u=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
+function gb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.i=0;this.D=this.H=-1;this.K=this.L=this.o=!1;this.N=hb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
 set:this.Ab};B(this)}l(gb,t);k=gb.prototype;k.reset=function(a){this.stop();a&&ib(this,this.i=0)};
-k.U=function(a,b,c,d){if(this.u&&this.u.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,
-b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.V=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
+k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,
+b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.V=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
 k.restore=function(a){if(a=a[0])ob(this,this.f=a[0]),ib(this,this.i=a[1]),pb(this,a[2]);return!0};k.xb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}mb(this);return!0};function qb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function lb(a,b){for(var c in a.l)qb(a,c,null!=b?b:a.l[c])}function rb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function mb(a){for(var b in a.a)rb(a,b,a.a[b][1])}
 k.jb=function(a,b,c){if(jb(this,b)){if(c){var d=this;setTimeout(function(){kb(d,b);a&&a()},+c);return!1}kb(this,b)}return!0};
 k.Ab=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d,e,f=0g&&(g+=Math.pow(2,36)),g=0>>a.f];a.i++;b=c.i(b&16383,b);a.i--;a=b}else a=this.j.b(this.f);ib(this,this.i=a)}};k.pb=function(a){a||this.j.h.B||ob(this,this.g)};k.ob=function(a){a?(this.o=!0,lb(this,!0)):(this.o=!1,lb(this),pb(this,0))};k.qb=function(a,b){this.g=a?this.g|1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.a["S"+b][1]=a.g&1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.a["S"+b][1]=a.g&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.f;0f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Ea+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Ea){u=h.size-(e-m);u>f&&(u=f);h.Ea=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Ib(Jb,e,f)}e=new Eb(a,e,u,16384,d);Fb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kb[d]+" at "+ka(b)),!0):Ib(Lb,b,c)}
 function Cb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Gb(a){for(var b=0,c=[],d=0;d=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=ac(a)&&(a.na=a.oa=-1,$b(a),N(a),c=!0);c&&a.M(ac(a)+" cycles: checksum="+la(a.xa))}}
-k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;ca.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.L=0;cc(a)}function ec(a){for(var b=[],c=0;ca.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.L=0;cc(a)}function ec(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fc(a,b){var c=a.N-=a.H;a.H=0;b&&(a.N=0);return c}
-k.yb=function(){if(this.h.B){this.za>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.u&&Ab(this.u,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
-this.u&&this.u.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,bc(this));if(0>c||this.Wc&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
-function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
+k.yb=function(){if(this.h.B){this.za>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.v&&Ab(this.v,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
+this.v&&this.v.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,bc(this));if(0>c||this.Wc&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
+function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
 function hc(a){var b=+a.model||1001;Wb.call(this,a,1E6);this.Wa=b;this.ua=+a.addrReset||0;this.gb=ic.bind(this);this.i=O.bind(this);this.la=null;this.Sa=[];this.h.complete=!1}l(hc,Wb);k=hc.prototype;
-k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.v=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.o=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.l=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
-k.save=function(){var a=new L(this);a.set(0,[this.a,this.v,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.l,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
-k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.v=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];bc(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
-k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.v&4194304?this.v=this.qa=this.b(this.a):0<=this.aa?(this.v=this.ra=this.b(this.aa),this.aa=-1):(this.v=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.v&=8388607;this.a=this.v&262143;if(a=this.v>>18&15)this.a=this.a+
-(this.qa=this.b(a))&Za;a=this.v&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0>4].call(this,a,a&15)}function P(a){this.i(a)}function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
-function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.v=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.v=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
+k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.u=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.l=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.o=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
+k.save=function(){var a=new L(this);a.set(0,[this.a,this.u,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.o,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
+k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.o=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];bc(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
+k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.o=this.o&-5|0;do{if(a=this.o)if(a=this.o&11)this.o&2?this.la||(this.o&=-3):this.o&1&&this.o++,a=!1;if(a){if(this.o&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.qa=this.b(this.a):0<=this.aa?(this.u=this.ra=this.b(this.aa),this.aa=-1):(this.u=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.u&=8388607;this.a=this.u&262143;if(a=this.u>>18&15)this.a=this.a+
+(this.qa=this.b(a))&Za;a=this.u&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0>4].call(this,a,a&15)}function P(a){this.i(a)}function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
+function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
 function oc(a,b){this.c(b,this.b(this.a))}function pc(a,b){this.c(b,this.a)}function qc(a,b){this.c(this.a,this.b(b))}function rc(a,b){this.c(b,0)}function sc(a,b){this.c(b,I-this.b(b))}function tc(a,b){this.c(b,I)}function uc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,vc(a,d,c)+(c-(c&C)))}function wc(a,b){var c=this.b(b);this.c(b,vc(a,c,0))}function xc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,vc(a,c,b)+(b-(b&C)))}
 function yc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function zc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Ac(a,b){var c=this.a*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Bc(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,vc(a,c,b)+b)}function Cc(a,b){var c=this.b(this.a),d=(c&C)*E,c=vc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}
 function Dc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Fc(a,b){var c=this.b(b);this.c(b,Ec(a,c,this.a)+this.a)}function Gc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Hc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Ic(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Jc(a,b){var c=this.b(b);this.c(b,Ec(a,c,0))}
 function Kc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Lc(a,b){var c=this.b(this.a),d=c/E|0,c=Ec(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Mc[a&7].call(this,a,a>>3&127)}function Nc(){}function Oc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Pc(a){a>F&&(a!=G?a=db-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Qc.call(this,a,b,c);return c}
-function S(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=I-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ea;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=J,b[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.X);Uc(this.da)}while(!Tc(this.da));
-a=this.Na[0];this.o=this.ea[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
-function Vc(a,b,c,d){var e=a,f=b;b=!1;var g;e>F&&(d||1001!=this.Wa||e!=G)&&(e=J-e,b=!b);f>F&&(f=J-f,b=!b);if(eF)&&(g!=I||a<=F)&&(this.g|=131072),a;c=a;b=g;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;a!=b-b%G&&(c=b,d||(this.g|=131072));d?d=c:(this.o=c,d=b);return d}
+function S(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.l=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=I-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ea;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=J,b[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.X);Uc(this.da)}while(!Tc(this.da));
+a=this.Na[0];this.l=this.ea[0];d&&a&&(a=J-a);e&&this.l&&(this.l=J-this.l);return a}
+function Vc(a,b,c,d){var e=a,f=b;b=!1;var g;e>F&&(d||1001!=this.Wa||e!=G)&&(e=J-e,b=!b);f>F&&(f=J-f,b=!b);if(eF)&&(g!=I||a<=F)&&(this.g|=131072),g=a);return g}
 function Wc(a){a?a==G?this.g|=163840:a=db-a:this.g|=98304;return a}function Xc(a,b){var c=a-b;0>c&&(c+=J);Qc.call(this,c,b,a);return c}function Qc(a,b,c){a=Math.trunc(a/cb);b=Math.trunc(b/cb);c=Math.trunc(c/cb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a>>0)}function Z(a){return(a/E|0)+(a&C)*E}function Ec(a,b,c){switch(a&384){case 0:b-=b&C;break;case 128:b=0;break;case 256:b=C*E;break;case 384:b=c>ab?C*E:0}return b}function vc(a,b,c){switch(a&384){case 0:b&=C;break;case 128:b=0;break;case 256:b=C;break;case 384:b=c>F?C:0}return b}
 function Sc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=J&&(a[0]%=J,a[1]++)}function Rc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Uc(a){a[1]%2&&(a[0]+=J);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Tc(a){return!a[0]&&!a[1]}
@@ -111,9 +111,9 @@ var kc=[P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,
 function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},
 function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},oc,pc,qc,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&C)*E;this.c(b,a)},function(a,b){this.c(b,this.a*E)},function(a,b){a=this.b(b);a=(a/E|0)+(a&C)*E;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&C)*E;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Wc.call(this,this.b(this.a)))},function(a,b){this.c(b,
 Wc.call(this,this.a))},function(a,b){this.c(this.a,Wc.call(this,this.b(b)))},function(a,b){a=Wc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Pc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Pc.call(this,this.b(b)))},function(a,b){a=Pc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a,!0))},function(a,
-b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.o)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a));this.c(b+1&15,this.o)},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.o)},function(a,b){a=S.call(this,
-this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=S.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,
-c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=S.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c,d,e=this.b(b);0a&&(c+=e*Math.pow(2,a)%G,d=G-Math.pow(2,35-a)),eF&&(this.g|=131072):e-d=a?c=ea||(this.c(b,a),this.c(b+1&15,this.l))},function(a,b){a=S.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.l))},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,
+c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=S.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.l))},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c,d,e=this.b(b);0a&&(c+=e*Math.pow(2,a)%G,d=G-Math.pow(2,35-a)),eF&&(this.g|=131072):e-d=a?c=eF&&(d=J-Math.pow(2,36+a),c+=d));this.c(b,c)}},function(a,b){if(a=((this.a&bb)<<14>>23|this.a&255)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%J+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c=this.b(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c>23|this.a&255){var c,d=this.b(b),e=this.b(b+1&15);if(0F&&dF&&eF&&(this.g|=131072):e-c<=F&&(this.g|=131072);e=0;f>F&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=F?f+c>F&&(this.g|=131072):(f-c<=F&&(this.g|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?I:0:Math.trunc(d%
 G/Math.pow(2,-a-35)),d<=F?d=0:(d=I,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=((this.a&bb)<<14>>23|this.a&255)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%J+Math.trunc(d/
@@ -154,27 +154,27 @@ function ad(a){t.call(this,"RAM",a);this.O=this.Y=null;this.f=+a.addr;this.g=+a.
 c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);bd(c)})}}l(ad,t);ad.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;bd(this)};ad.prototype.V=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.f,this.g,this.O),delete this.O);b||this.reset();return!0};ad.prototype.R=function(){return!0};
 function bd(a){if(a.s&&(!a.i&&a.g&&(Hb(a.s,a.f,a.g,1)?a.i=!0:a.g=0),!Wa(a))){if(!a.i)q("No RAM allocated");else if(a.a){if(!a.Y)return;cd(a,a.Y,a.T,a.S,a.f)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;B(a)}}
 ad.prototype.reset=function(){if(this.i&&!this.o){for(var a=this.s,b=this.f,c=this.g,d=b&16383,b=b>>>a.f;0g&&g>=-G&&(g+=J);for(var g=Math.trunc(Math.abs(g))%J,h=d;f--&&h=n.Ta&&c<=n.fb&&(b=c-(n.Ta-n.ab));b&&(a.preventDefault&&a.preventDefault(),d.Da(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.cb&&(b=n.bb);d.Da(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.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.j=c;this.w=d;B(this)};
-k.$a=function(a){if(!this.a){var b=Yb(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
+a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
+k.$a=function(a){if(!this.a){var b=Yb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
 k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Da=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d\nLicense: GPL version 3 or later ");for(b=0;b\nLicense: GPL version 3 or later ");for(b=0;bid){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
-g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(xd,""),this.f=null)):this.M(f+": "+g),vd(d),jd(d)?(c=od(d),e=!0):c=!1))}e&&md(this,c?d:null)}else a==ud&&d.clear()}else md(this);delete this.C;delete this.v}e=w(this.id);for(f=0;fid){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
+g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(xd,""),this.f=null)):this.M(f+": "+g),vd(d),jd(d)?(c=od(d),e=!0):c=!1))}e&&md(this,c?d:null)}else a==ud&&d.clear()}else md(this);delete this.C;delete this.u}e=w(this.id);for(f=0;fa[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(yd(this,this.j,b,c,a),Ab(this,-2),this.j.J());this.K&&(td(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
 function td(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo help us diagnose it, click OK to send this "+Ya+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Ya;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
 function zd(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new L(a,"1.34.3"),g=new L(a,"1.34.3",nd),h=ta();g.set(pd,h);f.set(pd,h);f.set(Ad,"1.34.3");f.set(Bd,window?window.location.href:null);f.set(Cd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.h.J=a.j.h.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.h.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.o&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0