Speed up page load times by "compiling" the disk library manifests

This commit is contained in:
Jeff Parsons 2016-02-05 16:19:49 -08:00
commit 1b9350f86f
39 changed files with 785 additions and 275 deletions

View file

@ -68,8 +68,8 @@ var Lc=[],fc=[Ob.prototype.Ba,Ob.prototype.lb,Ob.prototype.Ra,Ob.prototype.Zb,Ob
if(xb)var ec=[Ob.prototype.ta,Ob.prototype.eb,Ob.prototype.Ma,Ob.prototype.Hb,Ob.prototype.sd,Ob.prototype.ce],dc=[Ob.prototype.za,Ob.prototype.Yb,Ob.prototype.Qa,Ob.prototype.Ub,Ob.prototype.ud,Ob.prototype.Vc],Mc=[Ob.prototype.Da,Ob.prototype.qb,Ob.prototype.Ta,Ob.prototype.cc,Ob.prototype.Gd,Ob.prototype.Xc];
function Nc(a,b){Xa.call(this,"CPU",a,Nc,1);var c=a.cycles||b,d=a.multiplier||1;this.ba={};this.ba.Jd=c;this.ba.Ud=d;this.ba.sg=Math.round(this.ba.Jd/1E4)/100;this.ba.Ce=this.ba.sg*this.ba.Ud;this.ra.Ob=!1;this.ra.gh=!1;this.ra.bh=a.autoStart;this.ra.Oi=!1;c=ab.autostart;void 0!==c&&(this.ra.bh="true"==c?!0:"false"==c?!1:null);this.ra.We=!1;this.ba.Ef=this.ba.gf=0;this.ba.Ff=a.csStart;this.ba.ff=a.csInterval;this.ba.hf=a.csStop;this.gd=[];this.Qg=this.Ie.bind(this);ub(this)}gb(Nc);
var Oc=["power","reset"];h=Nc.prototype;h.Lc=function(a,b,c,d){this.ia=a;this.ja=b;this.ma=d;for(b=0;b<Oc.length;b++)(c=this.ya[Oc[b]])&&this.ia.Xb(null,Oc[b],c);this.Yb=Gb(a,"FPU");for(b=null;b=Gb(a,"Video",b);)this.gd.push(b);this.R=Gb(a,"ChipSet");ub(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.qc=function(a,b){if(!b){if(a&&this.restore){Pc(this);if(!this.restore(a))return!1;Qc(this)}else this.reset();this.ma?this.ma.jh():this.U("No debugger detected")}Rc(this);return!0};h.pc=function(a){return a?this.save():!0};function Sc(a){(!0===a.ra.bh||null===a.ra.bh&&!a.ma&&void 0===a.ya.run)&&a.Ie()}h.Qi=function(){return 0};
function Qc(a){void 0===a.ba.Ff&&(a.ba.Ff=0);void 0===a.ba.ff&&(a.ba.ff=-1);void 0===a.ba.hf&&(a.ba.hf=-1);a.ra.We=0<=a.ba.Ff&&0<a.ba.ff;a.ra.We&&(a.ba.Ef=0,a.ba.gf=a.ba.Ff-a.Zb)}function Uc(a,b){if(a.ra.We){var c=!1;a.ba.Ef=a.ba.Ef+a.Qi()|0;a.ba.gf-=b;0>=a.ba.gf&&(a.ba.gf+=a.ba.ff,c=!0);0<=a.ba.hf&&a.ba.hf<=Xc(a)&&(a.ba.ff=a.ba.hf=-1,Qc(a),a.bc(),c=!0);c&&a.U(Xc(a)+" cycles: checksum="+l(a.ba.Ef))}}h.qd=function(){this.ia&&this.ia.Xd&&this.ia.Xd.qd()};
h.qc=function(a,b){if(!b){if(a&&this.restore){Pc(this);if(!this.restore(a))return!1;Qc(this)}else this.reset();this.ma?this.ma.jh():this.U("No debugger detected")}Rc(this);return!0};h.pc=function(a){return a?this.save():!0};function Tc(a){(!0===a.ra.bh||null===a.ra.bh&&!a.ma&&void 0===a.ya.run)&&a.Ie()}h.Qi=function(){return 0};
function Qc(a){void 0===a.ba.Ff&&(a.ba.Ff=0);void 0===a.ba.ff&&(a.ba.ff=-1);void 0===a.ba.hf&&(a.ba.hf=-1);a.ra.We=0<=a.ba.Ff&&0<a.ba.ff;a.ra.We&&(a.ba.Ef=0,a.ba.gf=a.ba.Ff-a.Zb)}function Wc(a,b){if(a.ra.We){var c=!1;a.ba.Ef=a.ba.Ef+a.Qi()|0;a.ba.gf-=b;0>=a.ba.gf&&(a.ba.gf+=a.ba.ff,c=!0);0<=a.ba.hf&&a.ba.hf<=Xc(a)&&(a.ba.ff=a.ba.hf=-1,Qc(a),a.bc(),c=!0);c&&a.U(Xc(a)+" cycles: checksum="+l(a.ba.Ef))}}h.qd=function(){this.ia&&this.ia.Xd&&this.ia.Xd.qd()};
function Yc(a,b){for(var c=0;c<a.gd.length;c++)Zc(a.gd[c],b);if(a.ia&&a.ia.Xd&&(c=a.ia.Xd,c.Ra)){Kb(c,18,c.da,c.Qa);if(c.qb){var d=c.ja,e=c.A,f,g;null==f&&(f=0);null==g&&(g=d.X-f|0);null==e&&(e={ah:0,Qd:0,Sg:[]});var k=f>>>d.Pa;f=f+g-1>>>d.Pa;e.ah=0;for(e.Qd=0;k<=f;)g=d.xa[k],e.ah+=g.size,g.size&&(e.Sg.push(wa(Jb,k,0,0,g.type)),e.Qd++),k++;c.A=e;c.Ha=c.A.Qd*c.ja.Rb/691200;d=0;c.A.Bi=0;c.A.xf||(c.A.xf=[]);var e=-1,k=0,q=-1;for(f=0;f<c.A.Qd;f++){var r=c.A.Sg[f];g=xa(Jb.type,r);r=xa(Jb.$j,r);if(g!=e||
r!=q+1)(q=f-k)&&(d+=Mb(c,k,q,e)),e=g,k=f;q=r}d+=Mb(c,k,f-k,e);e=c.A.Ok!=d;c.A.Ok=d;if(e){e=new Db(0,0,c.da.width,c.da.height);c.A.Ne=[];k=c.A.Qd;for(d=0;d<c.A.Bi;d++)f=c.A.xf[d].Qd,c.A.Ne.push(Eb(e,f,k,!d)),k-=f;for(d=0;d<c.A.Ne.length;d++)e=c.A.xf[d],k=f=c.A.Ne[d],g=c.Qa,(q=zc[e.type])||(q=new Cb),g.strokeStyle="black",g.strokeRect(k.x,k.y,k.ad,k.A),g.fillStyle="string"==typeof q?q:q.toString(),g.fillRect(k.x,k.y,k.ad,k.A),k=c,g=f,k.la=k.Ba,k.X=k.Da,f=g.x+(g.ad>>1),q=g.y+(g.A>>1),r=g.A,g.ad<g.A&&
(r=g.ad,k.za=!0,k.R.save(),k.R.translate(f,q),k.R.rotate(-Math.PI/2),f=q=0),r<k.X&&(k.X=r,k.la=k.X+"px Monaco, Lucida Console, Courier New"),g=q,k.C=f,k.W=g,k=c,e=uc[e.type]+" ("+(e.Qd*c.ja.Rb/1024|0)+"Kb)",k.R.font=k.la,k.C-=k.R.measureText(e).width>>1,k.W+=(k.X>>1)-2,Lb(k,e),k.za&&(k.R.restore(),k.za=!1)}}else Lb(c,"This space intentionally left blank");c.context.drawImage(c.da,0,0,c.da.width,c.da.height,c.Hb,c.Ub,c.ib,c.lb);c.Ra=!1}}h.Uc=function(){this.gd.length&&this.gd[0].Uc()};
@ -78,7 +78,7 @@ a=!0;break;case "speed":this.ya[b]=c;a=!0;break;case "setSpeed":this.ya[b]=c,c.o
function cd(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.ba.Ud&&a.ba.ne&&(d=a.ba.ne/a.ba.sg);a.ba.Xi=Math.round(1E3/30);a.ba.km=Math.floor(a.ba.Jd/c*d);a.ba.th=Math.floor(a.ba.Jd/30*d);a.ba.Zi=Math.floor(a.ba.Jd/60*d);a.ba.Yi=Math.floor(a.ba.Jd/2*d);b||(a.ba.jf=a.ba.th,a.ba.Hf=a.ba.Zi,a.ba.Gf=a.ba.Yi);a.ba.uh=0}function Xc(a,b){var c=a.Zb+a.Ib+a.eb-a.A;b&&1<a.ba.Ud&&a.ba.ne>a.ba.sg&&(c=Math.round(c/a.ba.Ud));return c}function Pc(a){a.ba.ne=0;a.Zb=a.Ib=a.eb=a.A=0;Qc(a);$c(a,1)}
function $c(a,b,c){var d=!1;if(void 0!==b){.8>a.ba.ne/a.ba.Ce?b=1:d=!0;a.ba.Ud=b;b=a.ba.sg*a.ba.Ud;if(a.ba.Ce!=b){a.ba.Ce=b;b=a.ba.Ce.toFixed(2)+"Mhz";var e=a.ya.setSpeed;e&&(e.textContent=b);a.U("target speed: "+b)}c&&a.Uc()}bd(a,a.Ib);a.Ib=0;a.ba.ef=sa();a.ba.De=0;cd(a);return d}
h.Ie=function(a){if(qb(this,!0)){if(!this.ra.Ob){$c(this);this.ia&&this.ia.start(this.ba.ef,Xc(this));this.ra.Ob=!0;this.ra.gh=!0;this.R&&dd(this.R);var b=this.ya.run;b&&(b.textContent="Halt");this.qd(!0);a&&this.Uc()}this.ba.uh>=this.ba.Jd&&cd(this,!0);this.ba.If=0;this.ba.tg=sa();this.ba.De&&(a=this.ba.tg-this.ba.De,a>this.ba.Xi&&(this.ba.ef+=a,this.ba.ef>this.ba.tg&&(this.ba.ef=this.ba.tg)));try{do{var c=this.ra.We?1:this.ba.km;if(this.R){ed(this.R);var d=this.R;a=c;var e=d.O[0];if(e.xe){var f=
(Xc(d.M,d.wa)-e.zd)/d.xb|0,g=fd(d,0)-f;6==e.mode&&(g-=f);var k=g*d.xb|0;6==e.mode&&(k>>=1);a>k&&(a=k)}var c=a,q=this.R;a=c;if(q.A&&q.A[11]&64){var r=q.Ja-Xc(q.M,q.wa);0<r&&a>r&&(a=r)}c=a}try{this.sf(c)}catch(B){if("number"!=typeof B)throw B;}var x=this.eb-this.A;this.Ib+=x;this.ba.If+=x;bd(this,0,!0);Uc(this,x);this.ba.Hf-=x;0>=this.ba.Hf&&(this.ba.Hf+=this.ba.Zi,Yc(this));this.ba.Gf-=x;0>=this.ba.Gf&&(this.ba.Gf+=this.ba.Yi,this.qd());this.ba.jf-=x;if(0>=this.ba.jf){this.ba.jf+=this.ba.th;break}}while(this.ra.Ob)}catch(B){this.bc();
(Xc(d.M,d.wa)-e.zd)/d.xb|0,g=fd(d,0)-f;6==e.mode&&(g-=f);var k=g*d.xb|0;6==e.mode&&(k>>=1);a>k&&(a=k)}var c=a,q=this.R;a=c;if(q.A&&q.A[11]&64){var r=q.Ja-Xc(q.M,q.wa);0<r&&a>r&&(a=r)}c=a}try{this.sf(c)}catch(B){if("number"!=typeof B)throw B;}var x=this.eb-this.A;this.Ib+=x;this.ba.If+=x;bd(this,0,!0);Wc(this,x);this.ba.Hf-=x;0>=this.ba.Hf&&(this.ba.Hf+=this.ba.Zi,Yc(this));this.ba.Gf-=x;0>=this.ba.Gf&&(this.ba.Gf+=this.ba.Yi,this.qd());this.ba.jf-=x;if(0>=this.ba.jf){this.ba.jf+=this.ba.th;break}}while(this.ra.Ob)}catch(B){this.bc();
Rc(this);this.ia&&this.ia.stop(sa(),Xc(this));qb(this,!1);wb(this,B.stack||B.message);return}c=setTimeout;d=this.Qg;this.ba.De=sa();e=this.ba.Xi;this.ba.If&&(e=Math.round(e*this.ba.If/this.ba.th));e-=this.ba.De-this.ba.tg;if(f=this.ba.De-this.ba.ef)this.ba.ne=Math.round(this.Ib/(10*f))/100,864E5<=f&&(this.Zb=0,this.R&&ed(this.R,!0),$c(this));if(0>e||this.ba.ne<this.ba.Ce)e=0;this.ba.uh+=this.ba.If;this.ba.De+=e;c(d,e)}else Rc(this),this.ia&&this.ia.stop(sa(),Xc(this))};h.sf=function(){return 0};
h.bc=function(a){rb(this,!0);this.eb-=this.A;this.A=0;bd(this,this.Ib);this.Ib=0;if(this.ra.Ob){this.ra.Ob=!1;this.R&&dd(this.R);var b=this.ya.run;b&&(b.textContent="Run")}this.ra.Sd=a};function Rc(a,b){Yc(a,b);a.qd()}
function gd(a,b,c,d){this.M=a;this.ma=a.ma;this.id=b;this.kc=c||"";this.ga=0;this.Za=65535;this.ec=this.Za+1;this.$b=this.Kc=this.ext=this.Bb=this.type=this.Ea=0;this.dc=-1;this.fa=this.fd=2;this.B=this.Fa=65535;this.ya=this.nh;this.O=this.Ei;this.ja=this.Gi;this.A={ga:-1,Ea:0,Za:0,Bb:0,type:0,ext:0,dc:-1};1==this.id&&(this.Sf=0,this.R=null,this.af=!1,this.P=Array(32),this.C=[]);hd(this,!0,d)}function id(a,b){a.C.push(b);return[a.C.length,1]}h=gd.prototype;
@ -187,8 +187,8 @@ function Qi(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;pf(this,a,-2147483648,d&1
function Wi(a,b){var c=a-b|0;hf(this,a,b,c,this.Ja|63,!0);this.A-=-1===this.Z?-1===this.Y?this.C.xc:this.C.ac:this.C.Mc;return c&this.B}function Xi(a,b){pf(this,a&b,128);this.A-=-1===this.Z?-1===this.Y?this.C.ci:this.C.Pf:this.C.Pf;this.V|=2;return a}function Yi(a,b){pf(this,a&b,this.Ja);this.A-=-1===this.Z?-1===this.Y?this.C.ci:this.C.Pf:this.C.Pf;this.V|=2;return a}function Zi(a,b){var c=this.F&this.B,d=(1<<(this.G&31))-1;return a&~(d<<c)|(b&d)<<c}
function $i(a,b){return b>>(this.F&this.B)&(1<<(this.G&31))-1&this.B}function aj(a,b){if(-1===this.Y){switch(this.mc&7){case 0:this.F=this.F&-256|a;break;case 1:this.G=this.G&-256|a;break;case 2:this.H=this.H&-256|a;break;case 3:this.D=this.D&-256|a;break;case 4:this.F=this.F&-65281|a<<8;break;case 5:this.G=this.G&-65281|a<<8;break;case 6:this.H=this.H&-65281|a<<8;break;case 7:this.D=this.D&-65281|a<<8}this.A-=this.C.ei}else this.Z=this.Y,P(this,a),this.A-=this.C.di;return b}
function bj(a,b){if(-1===this.Y){switch(this.mc&7){case 0:this.F=this.F&~this.B|a;break;case 1:this.G=this.G&~this.B|a;break;case 2:this.H=this.H&~this.B|a;break;case 3:this.D=this.D&~this.B|a;break;case 4:t(this,u(this)&~this.B|a);break;case 5:this.K=this.D&~this.B|a;break;case 6:this.J=this.J&~this.B|a;break;case 7:this.I=this.I&~this.B|a}this.A-=this.C.ei}else this.Z=this.Y,Q(this,a),this.A-=this.C.di;return b}
function cj(a,b){var c=a^b;pf(this,c,128);this.A-=-1===this.Z?-1===this.Y?this.C.xc:this.C.ac:this.C.Mc;return c}function dj(a,b){this.A-=-1===this.Z?-1===this.Y?this.C.xc:this.C.ac:this.C.Mc;return pf(this,a^b,this.Ja)&this.B}function ej(a){p.call(this,13,0);return a}function he(a){p.call(this,6);return a}function fj(a){ke.call(this);return a}function gj(){8086==this.na?(this.lb=-1,Lh.call(this,0,null,2)):p.call(this,0,null,2)}function hj(){this.A-=-1===this.Y?2:this.C.Yj;return 1}
function ij(){var a=this.G&255;this.A-=(-1===this.Y?this.C.Wh:this.C.Vh)+(a<<this.C.Xh);return a}function jj(){var a=this.ca();this.A-=(-1===this.Y?this.C.Wh:this.C.Vh)+(a<<this.C.Xh);return a}function kj(){return null}function lj(){return this.xb}function Mf(a,b){this.lb=a;void 0===b&&(b=11);Lh.call(this,a,null,b)}
function cj(a,b){var c=a^b;pf(this,c,128);this.A-=-1===this.Z?-1===this.Y?this.C.xc:this.C.ac:this.C.Mc;return c}function dj(a,b){this.A-=-1===this.Z?-1===this.Y?this.C.xc:this.C.ac:this.C.Mc;return pf(this,a^b,this.Ja)&this.B}function ej(a){if(80186>this.na)return fj.call(this,a);p.call(this,13,0);return a}function he(a){p.call(this,6);return a}function fj(a){ke.call(this);return a}function gj(){8086==this.na?(this.lb=-1,Lh.call(this,0,null,2)):p.call(this,0,null,2)}
function hj(){this.A-=-1===this.Y?2:this.C.Yj;return 1}function ij(){var a=this.G&255;this.A-=(-1===this.Y?this.C.Wh:this.C.Vh)+(a<<this.C.Xh);return a}function jj(){var a=this.ca();this.A-=(-1===this.Y?this.C.Wh:this.C.Vh)+(a<<this.C.Xh);return a}function kj(){return null}function lj(){return this.xb}function Mf(a,b){this.lb=a;void 0===b&&(b=11);Lh.call(this,a,null,b)}
function p(a,b,c,d){var e=!1;this.ra.Sd?80186<=this.na&&(e=!0,0>this.lb?(-1!=this.Jc&&(this.Ca.$b=3,cf(this,this.Jc),this.Jc=-1),ef(this,this.Ge),-1!=this.rd&&(nd(this,this.rd),this.rd=-1),-1!==this.X&&(t(this,this.ib&~this.Aa.Fa|this.X-this.Aa.Ea),this.X=-1)):8!=this.lb?(b=0,a=8):(b=0,a=-1,te(this),e=d=!1)):ef(this,this.Ge);var f=a,g=b,k=32,q=Cf(this,this.Na);204!=q||this.Pd||(d=!1);this.ea&131072&&(6==f&&99==q||13==f&&205==q)&&(d=!1);!1===d&&(k|=1);983040<=this.Na&&1048575>=this.Na&&(d=!1);n(this,
k|-2147483648)&&(d=!0);if(n(this,k)||d){var r=this.ra.Ob,f="Fault "+ha(f)+(null!=g?" ("+ia(g)+")":"")+" on opcode "+ha(q);d&&r&&(f+=" (blocked by PCjs Debugger)");this.ma?(pb(this,f,d||k,!0),d&&(d=r,this.ma.bc())):(this.Va(f),this.bc())}if(d&&e)throw-1;if(e)throw this.lb=a,Lh.call(this,a,b,c),this.Ge=this.Na,this.V=1==a?this.V|8192:this.V|4096,a;}function we(a,b,c){this.qe=a;a=0;b&&(a|=1);c&&(a|=2);3==this.ta&&(a|=4);p.call(this,14,a)}function ie(){this.Ub[this.ca()].call(this)}
function le(){zd(this,u(this)&this.B);this.A-=this.C.Sc}function Kd(){this.X=this.ka;var a=u(this)&this.B;zd(this,this.F&this.B);zd(this,this.G&this.B);zd(this,this.H&this.B);zd(this,this.D&this.B);zd(this,a);zd(this,this.K&this.B);zd(this,this.J&this.B);zd(this,this.I&this.B);this.A-=this.C.Sj;this.X=-1}
@ -254,7 +254,7 @@ a;var c=(b=this.F&65535)/a;if(255<c)return gj.call(this),a;this.la=c&255|(b%a&25
a;this.la|=0;this.Ba|=0}this.Ua=!0;this.A-=-1===this.Y?this.C.mj:this.C.lj;this.V|=2;return a},function(a,b){if(2==this.fa){if(!a)return gj.call(this),a;var c=a<<16>>16,d=(b=this.H<<16|this.F&65535)/c|0;if(d!=d<<16>>16||8086==this.na&&-32768==d)return gj.call(this),a;this.la=d&65535;this.Ba=b%c&65535}else{var c=this.F,d=this.H,e=a,f=0,g=0;0>e&&(e=-e|0,f=1-f);0>d&&(c=-c|0,d=~d+(c?0:1)|0,g=1,f=1-f);!Ch.call(this,c,d,e)||this.la>2147483647+f||this.Ba>2147483647+g?c=!1:(f&&(this.la=-this.la),g&&(this.Ba=
-this.Ba),c=!0);if(!c)return gj.call(this),a;this.la|=0;this.Ba|=0}this.Ua=!0;this.A-=-1===this.Y?this.C.qj:this.C.pj;this.V|=2;return a}],Gd=[function(a){var b=a+1|0;hf(this,a,1,b,190);this.A-=-1===this.Y?this.C.Mf:this.C.Lf;return b&255},function(a){var b=a-1|0;hf(this,a,1,b,190,!0);this.A-=-1===this.Y?this.C.Mf:this.C.Lf;return b&255},fj,fj,fj,fj,fj,fj],Hd=[function(a){var b=a+1|0;hf(this,a,1,b,this.Ja|62);this.A-=-1===this.Y?this.C.Mf:this.C.Lf;return b&this.B},function(a){var b=a-1|0;hf(this,
a,1,b,this.Ja|62,!0);this.A-=-1===this.Y?this.C.Mf:this.C.Lf;return b&this.B},function(a){zd(this,v(this));df(this,a);this.A-=-1===this.Y?this.C.ij:this.C.hj;this.V|=2;return a},function(a){if(-1===this.Y)return fj.call(this,a);this.X=this.ka;xh.call(this,a,this.va(this.Y+this.fa));this.A-=this.C.fj;this.V|=2;this.X=-1;return a},function(a){df(this,a);this.A-=-1===this.Y?this.C.Dj:this.C.Cj;this.V|=2;return a},function(a){if(-1===this.Y)return fj.call(this,a);Cd(this,a,this.va(this.Y+this.fa));this.A-=
this.C.Aj;this.V|=2;return a},function(a){var b=a;this.V&512&&(a=a-2&65535,80286>this.na&&(b=a));zd(this,b);this.A-=-1===this.Y?this.C.Sc:this.C.Tj;this.V|=2;return a},ej];function re(){this.da[this.ca()].call(this,$i);this.A-=-1===this.Y?6:13}function se(){this.qa[this.ca()].call(this,Zi);this.A-=-1===this.Y?12:19}var je=Array(256);je[0]=function(){var a=this.ca();16>(a&56)&&(this.V|=1);this.Oa[a].call(this,this.Ng,kj)};je[1]=function(){var a=this.ca();a&16||(this.V|=1);this.Oa[a].call(this,Tj,kj)};
this.C.Aj;this.V|=2;return a},function(a){var b=a;this.V&512&&(a=a-2&65535,80286>this.na&&(b=a));zd(this,b);this.A-=-1===this.Y?this.C.Sc:this.C.Tj;this.V|=2;return a},fj];function re(){this.da[this.ca()].call(this,$i);this.A-=-1===this.Y?6:13}function se(){this.qa[this.ca()].call(this,Zi);this.A-=-1===this.Y?12:19}var je=Array(256);je[0]=function(){var a=this.ca();16>(a&56)&&(this.V|=1);this.Oa[a].call(this,this.Ng,kj)};je[1]=function(){var a=this.ca();a&16||(this.V|=1);this.Oa[a].call(this,Tj,kj)};
je[2]=function(){!(this.bb&1)||this.ea&131072?p.call(this,6):this.da[this.ca()].call(this,Mh)};je[3]=function(){!(this.bb&1)||this.ea&131072?p.call(this,6):this.da[this.ca()].call(this,Th)};
je[5]=function(){this.ta?p.call(this,13,0,0,!0):(Af(this,this.va(2054)),this.I=this.va(2086),this.J=this.va(2088),this.K=this.va(2090),this.D=this.va(2094),this.H=this.va(2096),this.G=this.va(2098),this.F=this.va(2100),ld(this.cb,2102,this.va(2084)),ld(this.Ca,2108,this.va(2082)),ld(this.Aa,2114,this.va(2080)),ld(this.Ab,2120,this.va(2078)),Bd(this,this.va(2072)),df(this,this.va(2074)),t(this,this.va(2092)),this.Dc=this.va(2126)|this.Wa(2128)<<16,this.Bd=this.Dc+this.va(2130),this.Oc=this.va(2138)|
this.Wa(2140)<<16,this.Pd=this.Oc+this.va(2142),ld(this.Ac,2132,this.va(2076)),ld(this.Ya,2144,this.va(2070)),this.A-=195)};je[6]=function(){this.ta?p.call(this,13,0):(this.bb&=-9,this.A-=2)};je[11]=Jd;je[166]=Jd;je[255]=Jd;var w=[];w[5]=Jd;
@ -877,17 +877,17 @@ Z[1009]=15;Z[113]=16;Z[81]=10768;Z[119]=17;Z[87]=10769;Z[101]=18;Z[69]=10770;Z[1
Z[X[";"]]=39;Z[X[":"]]=10791;Z[X["'"]]=40;Z[X['"']]=10792;Z[X["`"]]=41;Z[X["~"]]=10793;Z[1016]=42;Z[X["\\"]]=43;Z[X["|"]]=10795;Z[122]=44;Z[90]=10796;Z[120]=45;Z[88]=10797;Z[99]=46;Z[67]=10798;Z[118]=47;Z[86]=10799;Z[98]=48;Z[66]=10800;Z[110]=49;Z[78]=10801;Z[109]=50;Z[77]=10802;Z[X[","]]=51;Z[X["<"]]=10803;Z[X["."]]=52;Z[X[">"]]=10804;Z[X["/"]]=53;Z[X["?"]]=10805;Z[3016]=54;Z[1044]=55;Z[1018]=56;Z[1032]=57;Z[1020]=58;Z[1112]=59;Z[1113]=60;Z[1114]=61;Z[1115]=62;Z[1116]=63;Z[1117]=64;Z[1118]=65;
Z[1119]=66;Z[1120]=67;Z[1121]=68;Z[1144]=69;Z[1145]=70;Z[1036]=71;Z[1038]=72;Z[1033]=73;Z[1109]=74;Z[1037]=75;Z[1101]=76;Z[1039]=77;Z[1107]=78;Z[1035]=79;Z[1040]=80;Z[1034]=81;Z[1045]=82;Z[1046]=83;Z[4027]=84;Z[1122]=87;Z[1123]=88;Z[1091]=91;Z[1093]=93;Z[1224]=91;Z[4003]=7470;Z[4008]=7494;Z[4046]=3677523;h=El.prototype;
h.Xb=function(a,b,c,d){var e=this,f=a+"-"+b;if(void 0===this.ya[f])switch(b){case "kbd":return c.onkeydown=function(a){return Nl(e,a,!0)},c.onkeypress=function(a){a=a||window.event;a=a.which||a.keyCode;e.O="";var b=!Z[a]||!!(e.wc&128);b||Ol(e,a,!0);return b},c.onkeyup=function(a){return Nl(e,a,!1)},!0;case "caps-lock":return this.ya[f]=c,c.onclick=function(){e.M&&e.M.Uc();Ol(e,1020,!0)},!0;case "num-lock":return this.ya[f]=c,c.onclick=function(){e.M&&e.M.Uc();Ol(e,1144,!0)},!0;case "scroll-lock":return this.ya[f]=
c,c.onclick=function(){e.M&&e.M.Uc();Ol(e,1145,!0)},!0;case "test":return this.ya[f]=c,c.onclick=function(){e.M&&e.M.Uc();d&&!e.O&&(e.O=d,Pl(e,300))},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==Kl[g]&&"button"==a)return this.ya[f]=c,c.onclick=function(a,b,c){return function(){a.M&&a.M.Uc();Ql(a,c,!0);Ol(a,c,!0)}}(this,g,Kl[g]),!0;if(void 0!==Ll[b])return this.da++,this.ya[f]=c,a=function(a,b,c){return function(){Ol(a,c)}}(this,b,Ll[b]),b=function(a,b,c){return function(){Rl(a,c)}}(this,
b,Ll[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}return!1};function Sl(a,b,c){if(a.da){for(var d in Il)if(b==Il[d]){b=+d;(d=Hl[d])&&(b=d);break}for(var e in Ll)if((d=Ll[e]==b)||(d=b,97<=d&&122>=d&&(d-=32),d=Ll[e]==d),d){(a=a.ya["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}h.Lc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Gb(a,"ChipSet")};
c,c.onclick=function(){e.M&&e.M.Uc();Ol(e,1145,!0)},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==Kl[g]&&"button"==a)return this.ya[f]=c,c.onclick=function(a,b,c){return function(){a.M&&a.M.Uc();Pl(a,c,!0);Ol(a,c,!0)}}(this,g,Kl[g]),!0;if(void 0!==Ll[b])return this.da++,this.ya[f]=c,a=function(a,b,c){return function(){Ol(a,c)}}(this,b,Ll[b]),b=function(a,b,c){return function(){Ql(a,c)}}(this,b,Ll[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=
c.onmouseout=b),!0;if(d)return this.ya[f]=c,c.onclick=function(){e.M&&e.M.Uc();d&&!e.O&&(e.O=d,Rl(e,300))},!0}return!1};function Sl(a,b,c){if(a.da){for(var d in Il)if(b==Il[d]){b=+d;(d=Hl[d])&&(b=d);break}for(var e in Ll)if((d=Ll[e]==b)||(d=b,97<=d&&122>=d&&(d-=32),d=Ll[e]==d),d){(a=a.ya["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}h.Lc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Gb(a,"ChipSet")};
function Fl(a,b){var c=0;a.na=null;b&&(a.na=b.toUpperCase(),c=Gl.indexOf(a.na),0>c&&(c=0));b=Gl[c];a.ta=parseInt(b.substr(2),10)}function nl(a,b){pb(a,"keyboard reset",65792);a.A=[170];a.ia=!0;b&&a.R&&pl(a.R,a.A[0])}function jl(a,b,c){a.W!==c&&(a.W=a.X=c)&&(a.ia=!0);a.Z!==b&&(a.Z=b)&&!a.X&&ql(a,!0);a.Z&&a.X&&(nl(a,!0),a.X=!1)}function kl(a){var b=0;a.A.length&&a.ia&&(b=a.A[0],a.R&&pl(a.R,b));n(a)&&pb(a,"scan code "+ha(b)+" available")}
function ql(a,b){0<a.A.length&&(a.A.shift(),(a.ia=b)&&(a.A.length&&a.R?pl(a.R,a.A[0]):b=!1),n(a)&&pb(a,"scan codes shifted, notify "+(b?"true":"false")))}h.qc=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};h.pc=function(a){return a?this.save():!0};h.reset=function(){if(!this.na&&this.R)switch(this.R.na){case Xj:case 5160:Fl(this,Gl[0]);break;default:Fl(this,Gl[1])}Tl(this);this.wc=this.P=0;this.A=[];this.ia=!0;this.O=""};
h.save=function(){var a=new $e(this),b=0,c=[];c[b++]=this.W;c[b]=this.Z;af(a,0,c);return a.data()};h.restore=function(a){return Tl(this,a[0])};function Tl(a,b){var c=0;void 0===b&&(b=[]);a.W=a.ia=b[c++];a.Z=b[c];return!0}function Pl(a,b){if(0<a.O.length){var c=a.O.charCodeAt(0);10==c&&(c=13);a.O=a.O.substr(1);Ol(a,c,!0)}0<a.O.length&&setTimeout(function(a){return function(){Pl(a,b)}}(a),b)}
function Ql(a,b,c,d){if(Z[b]){var e=Math.floor(b/1E3)&2;if(b=Jl[b]||0){!e||b&85||(b>>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.P:a.wc)&b):d||b&255&&(b=255);if(c){a.P&=~b;d&&(a.P|=b);c=b;var f,g;for(g in Ml)d="led-"+g,e=Ml[g],c&&c!=e||!(f=a.ya[d])||(f.style.backgroundColor=a.P&e?"#00ff00":"#000000")}else a.wc&=~b,d&&(a.wc|=b);return!0}}return!1}
h.save=function(){var a=new $e(this),b=0,c=[];c[b++]=this.W;c[b]=this.Z;af(a,0,c);return a.data()};h.restore=function(a){return Tl(this,a[0])};function Tl(a,b){var c=0;void 0===b&&(b=[]);a.W=a.ia=b[c++];a.Z=b[c];return!0}function Rl(a,b){if(0<a.O.length){var c=a.O.charCodeAt(0);10==c&&(c=13);a.O=a.O.substr(1);Ol(a,c,!0)}0<a.O.length&&setTimeout(function(a){return function(){Rl(a,b)}}(a),b)}
function Pl(a,b,c,d){if(Z[b]){var e=Math.floor(b/1E3)&2;if(b=Jl[b]||0){!e||b&85||(b>>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.P:a.wc)&b):d||b&255&&(b=255);if(c){a.P&=~b;d&&(a.P|=b);c=b;var f,g;for(g in Ml)d="led-"+g,e=Ml[g],c&&c!=e||!(f=a.ya[d])||(f.style.backgroundColor=a.P&e?"#00ff00":"#000000")}else a.wc&=~b,d&&(a.wc|=b);return!0}}return!1}
function Ol(a,b,c){if(Z[b]&&a.M&&a.M.ra.Ob){Jl[b]&&a.C.length&&0<a.C[0].Kd&&(a.C[0].Kd=0);for(var d,e=0;e<a.C.length;e++)if(d=a.C[e],d.Ke==b){if(!c||0<=d.Kd){e=-1;break}0<e&&(0<a.C[0].Kd&&(a.C[0].Kd=0),a.C.splice(e,1));break}0>e||(e==a.C.length&&(d={},d.Ke=b,d.wc=a.wc,Sl(a,b,!0),e++),0<e&&a.C.splice(0,0,d),d.Af=!0,d.Kd=c?-1:Jl[b]?0:1,Ul(a,d))}}
function Rl(a,b,c){if(!Z[b]||!(c||a.M&&a.M.ra.Ob))return!1;for(var d=!1,e=0;e<a.C.length;e++){var f=a.C[e];if(f.Ke==b||f.Ke==Il[b]){a.C.splice(e,1);f.pk&&clearTimeout(f.pk);f.Af&&!c&&Vl(a,f.Ke,!1);Sl(a,b,!1);d=!0;break}}!a.C.length&&a.la&&(Ql(a,1020),a.la=!1);return d}function Ul(a,b){if(!a.M||!a.M.ra.Ob)Rl(a,b.Ke,!0);else if(Vl(a,b.Ke,b.Af)&&b.Kd){var c;if(0>b.Kd){if(!b.Af){Rl(a,b.Ke);return}b.Af=!1;c=a.wa}else c=1==b.Kd++?500:100;b.pk=setTimeout(function(a){return function(){Ul(a,b)}}(a),c)}}
function Ql(a,b,c){if(!Z[b]||!(c||a.M&&a.M.ra.Ob))return!1;for(var d=!1,e=0;e<a.C.length;e++){var f=a.C[e];if(f.Ke==b||f.Ke==Il[b]){a.C.splice(e,1);f.pk&&clearTimeout(f.pk);f.Af&&!c&&Vl(a,f.Ke,!1);Sl(a,b,!1);d=!0;break}}!a.C.length&&a.la&&(Pl(a,1020),a.la=!1);return d}function Ul(a,b){if(!a.M||!a.M.ra.Ob)Ql(a,b.Ke,!0);else if(Vl(a,b.Ke,b.Af)&&b.Kd){var c;if(0>b.Kd){if(!b.Af){Ql(a,b.Ke);return}b.Af=!1;c=a.wa}else c=1==b.Kd++?500:100;b.pk=setTimeout(function(a){return function(){Ul(a,b)}}(a),c)}}
function Wl(a,b,c){var d=b;if(65<=b&&90>=b)!(a.wc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.wc&515)==c&&(d=b-32);else if(!!(a.wc&3)==c){if(a=Il[b])d=a}else if(a=Hl[b])d=a;return d}h.Fg=function(a){a||(this.wc&=-256)};
function Nl(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,k=Wl(a,g,!0);a.eh&&k==X["`"]&&(g=k=27);if(Z[g+1E3])if(k+=1E3,2==b.location&&(k+=2E3),Ql(a,k,!1,c)){if(20==g||144==g||145==g)a.qa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var q=0;q<a.C.length;q++){var r=a.C[q];r.Af=!1;0<r.Kd&&(r.Kd=0)}}else 8==g&&8==(a.wc&40)&&(k=4008),d=!1;else if(Z[k]&&a.wc&60&&(d=!1),d&&c||a.wc&192)f=!0;d||b.preventDefault();f||a.ka&&d||(c?Ol(a,k,e):Rl(a,k)||(b=Wl(a,g,!1),b!=k&&Rl(a,b)));return d}
function Vl(a,b,c){var d=!1;Ql(a,b,!0,c);var e=Z[b]||Z[b+1E3];if(void 0!==e){14==e&&40==(a.wc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.ta)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,k=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==k?a.P&3||a.P&512&&b||(g=k):29==k?a.P&12||(g=k):56==k?a.P&48||(g=k):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.A&&(20>e.A.length?(n(e)&&pb(e,"scan code "+ha(f)+" buffered"),e.A.push(f),
function Nl(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,k=Wl(a,g,!0);a.eh&&k==X["`"]&&(g=k=27);if(Z[g+1E3])if(k+=1E3,2==b.location&&(k+=2E3),Pl(a,k,!1,c)){if(20==g||144==g||145==g)a.qa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var q=0;q<a.C.length;q++){var r=a.C[q];r.Af=!1;0<r.Kd&&(r.Kd=0)}}else 8==g&&8==(a.wc&40)&&(k=4008),d=!1;else if(Z[k]&&a.wc&60&&(d=!1),d&&c||a.wc&192)f=!0;d||b.preventDefault();f||a.ka&&d||(c?Ol(a,k,e):Ql(a,k)||(b=Wl(a,g,!1),b!=k&&Ql(a,b)));return d}
function Vl(a,b,c){var d=!1;Pl(a,b,!0,c);var e=Z[b]||Z[b+1E3];if(void 0!==e){14==e&&40==(a.wc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.ta)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,k=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==k?a.P&3||a.P&512&&b||(g=k):29==k?a.P&12||(g=k):56==k?a.P&48||(g=k):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.A&&(20>e.A.length?(n(e)&&pb(e,"scan code "+ha(f)+" buffered"),e.A.push(f),
1==e.A.length&&e.R&&pl(e.R,f)):(20==e.A.length&&e.A.push(255),pb(e,"scan code buffer overflow")));d=!0}return d}Sa(function(){for(var a=mb(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new El(d);lb(d,c)}});
function Xl(a,b,c,d,e){Xa.call(this,"Video",a,Xl,262144);this.na=a.model;this.nb=Yl[this.na]||Zl;this.Ed=a.memory||0;this.Xf=a.switches;this.Da=a.mode;if(void 0===this.Da||void 0===$l[this.Da])this.Da=am;this.hd=a.charCols;this.je=a.charRows;if(void 0===this.hd||void 0===this.je)this.hd=$l[this.Da][0],this.je=$l[this.Da][1];this.Ba=a.screenWidth;this.Ma=a.screenHeight;this.Qg=a.scale;this.Pg=12<=Math.round(this.Ba/this.hd);this.wa=b;this.qa=c;this.ia=(this.Ak=d)||b||null;this.cg=a.touchScreen;this.ke=
bm;this.Z=null;this.Og=a.autoLock;this.sb=this.fc=0;this.Ua=[];this.Ja=Array(this.nb==vl?256:16);this.xb=!1;var f=this;this.nf=Ja("Gecko/");b=["","moz","webkit","ms"];if(this.la=e)if(this.la.Ue=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.la.Ue){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){cm(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
@ -934,7 +934,7 @@ function Qm(a,b){if(1==b)return a.Ja[0]=hm[0],a.Ja[1]=hm[7],a.Ja;if(2==b){var c=
(c.Tc[20]&12)<<4,c.Tc[16]&128&&(g&=-49,g|=(c.Tc[20]&3)<<4),g=d[g],k=g<<2&252,q=g>>4&252,g=g>>10&252):(k=(g&4?170:0)|(g&32?85:0),q=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ja[f]=[k,q,g,255]}a.xb=!0}return a.Ja}function ul(a,b,c,d){a.Jc=b;a.sd=c;a.rb=d}
function Mm(a,b){var c=!1;if(window&&a.Jc&&(!b||a.W)){var d=0,e=a.rb?a.rb:8,f=Qm(a);Rm(a,3,a.sd[0],d,e,8,a.Jc,f)&&(c=!0);d=a.rb?0:2048;e=a.rb?a.rb:9;Rm(a,1,a.sd[1],d,e,14,a.Jc,fm,gm)&&(c=!0);a.rb&&Rm(a,a.nb,a.sd[1],0,a.rb,14,a.Jc,f)&&(c=!0)}return c}function Rm(a,b,c,d,e,f,g,k,q){var r=!1;null!=c&&(Sm(a,b,c,d,e,f,g,k,q)&&(r=!0),a.Pg&&Sm(a,b<<1,c,d,e,f,g,k,q)&&(r=!0));return r}
function Sm(a,b,c,d,e,f,g,k,q){var r=!1,x=b&1?0:1,B=a.Ua[b],y=16>k.length?k.length:16;B||(B={Qc:e<<x,Rc:f<<x,Me:Array(y),ui:k.slice(0,y),wf:q,Tg:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Me[q]?B.ui[q]:[];if(J[0]!==U[0]||J[1]!==U[1]||J[2]!==U[2]){var r=B,U=q,F=x,O=c,V=d,Y=e,ga=f,da=g,bb=[0,0,0,0],ta=window.document.createElement("canvas");ta.width=r.Qc<<4;ta.height=r.Rc<<4;for(var pa=ta.getContext("2d"),Ma=void 0,$a=void 0,Ia=void 0,Vb=8>ga||!V?ga:8,Da=pa.createImageData(r.Qc,r.Rc),Ma=0;256>Ma;Ma++){for(Ia=
0;Ia<ga;Ia++)for(var Sd=r.wf&&U&1&&Ia>=ga-2,Tc=da[Ia<Vb?O+Ma*Vb+Ia:V+Ma*Vb+Ia-Vb],Td=0;Td<=F;Td++)for($a=0;$a<Y;$a++){var De=$a<<F,Ud=(Ia<<F)+Td,Ee=Sd||Tc&128>>(8<=$a&&192<=Ma&&223>=Ma?7:$a)?J:bb;Tm(Da,De,Ud,Ee);F&&Tm(Da,De+1,Ud,Ee)}pa.putImageData(Da,(Ma&15)*r.Qc,(Ma>>4)*r.Rc)}r.Me[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.ui[U]=J;r.Tg[U]=ta;r=!0}}a.Ua[b]=B;return r}function Um(a){0<a.eb||0<=a.ta?0>a.Yb&&(a.Yb=0):a.Yb=-1}
0;Ia<ga;Ia++)for(var Sd=r.wf&&U&1&&Ia>=ga-2,Sc=da[Ia<Vb?O+Ma*Vb+Ia:V+Ma*Vb+Ia-Vb],Td=0;Td<=F;Td++)for($a=0;$a<Y;$a++){var De=$a<<F,Ud=(Ia<<F)+Td,Ee=Sd||Sc&128>>(8<=$a&&192<=Ma&&223>=Ma?7:$a)?J:bb;Tm(Da,De,Ud,Ee);F&&Tm(Da,De+1,Ud,Ee)}pa.putImageData(Da,(Ma&15)*r.Qc,(Ma>>4)*r.Rc)}r.Me[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.ui[U]=J;r.Tg[U]=ta;r=!0}}a.Ua[b]=B;return r}function Um(a){0<a.eb||0<=a.ta?0>a.Yb&&(a.Yb=0):a.Yb=-1}
function Pm(a){if(a.W){for(var b=10;15>=b;b++)if(null==a.C.zb[b])return;var c=a.C.zb[10],b=c&31,d=a.C.zb[11]&31,e=a.C.zb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)qn(a);else{c=a.C.zb[15]+((a.C.zb[14]&63)<<8);a.ta!=c&&(qn(a),a.ta=c);d=d-b+1;if(a.eg!=b||a.ye!=d)a.eg=b,a.ye=d;a.ib=e+1;Um(a)}}}
function qn(a){if(0<=a.ta){if(void 0!==a.ka){var b=a.ka[a.ta];if(b&131072){var b=b&-131073,c=a.ta%a.O,d=a.ta/a.O|0;a.W&&a.Ua[a.W]&&(a.qb&&rn(a,c,d,b,a.qb),rn(a,c,d,b));a.ka[a.ta]=b}}a.ta=-1}}
function sn(a){var b,c=a.C;a.Be=!1;var d=c.Zd[5];if(null!=d){b=1024;var e=0,f=c.Zd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.dd=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.nb==vl&&(e=3,c.dd=f&7)}d&8&&(b=1280);c=c.He[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Be=!0));b|=e}return b}
@ -967,14 +967,14 @@ var Am={948:Xl.prototype.Gl,949:Xl.prototype.Fl,952:Xl.prototype.Hl,954:Xl.proto
960:Xl.prototype.dk,961:Xl.prototype.dk,962:Xl.prototype.Zm,964:Xl.prototype.gn,965:Xl.prototype.fn,970:Xl.prototype.Sm,972:Xl.prototype.Rm,974:Xl.prototype.Qm,975:Xl.prototype.Pm,986:Xl.prototype.ek},Gm={963:Xl.prototype.Tl,966:Xl.prototype.tl,967:Xl.prototype.ul,969:Xl.prototype.sl,970:Xl.prototype.Ul,972:Xl.prototype.Vl},Hm={963:Xl.prototype.jn,966:Xl.prototype.Hm,967:Xl.prototype.Im,968:Xl.prototype.Jm,969:Xl.prototype.Gm};
Sa(function(){for(var a=mb(window.document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=kb(c),e=window.document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=
function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());c.appendChild(e);var f=window.document.createElement("textarea");Ja("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Xl(d,e,g,f,c);lb(d,c)}});
function Cn(a){this.Da=a.adapter;switch(this.Da){case 1:this.wa=1016;this.la=4;break;case 2:this.wa=760;this.la=3;break;default:Ba("Unrecognized serial adapter #"+this.Da);return}this.ia=this.W=null;this.Ha=a.tabSize;this.da=0;Xa.call(this,"SerialPort",a,Cn,4194304);var b=a.binding;if("console"==b)this.W="";else{var c;a=Dn;b&&(void 0===c&&(c="Panel"),(c=jb(c,this.id))&&(b=c.ya[b])&&this.Xb(null,a,b))}}gb(Cn);var Dn="buffer";h=Cn.prototype;h.yi=function(a,b){return a==this.ce?(this.Z=b,this):null};
h.Xb=function(a,b,c){var d=this;switch(b){case Dn:return this.ya[b]=this.ia=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),En(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;En(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
function Cn(a){this.Ha=a.adapter;switch(this.Ha){case 1:this.wa=1016;this.la=4;break;case 2:this.wa=760;this.la=3;break;default:Ba("Unrecognized serial adapter #"+this.Ha);return}this.ia=this.W=null;this.Ja=a.tabSize;this.Da=a.charBOL;this.X=0;Xa.call(this,"SerialPort",a,Cn,4194304);var b=a.binding;if("console"==b)this.W="";else{var c;a=Dn;b&&(void 0===c&&(c="Panel"),(c=jb(c,this.id))&&(b=c.ya[b])&&this.Xb(null,a,b))}}gb(Cn);var Dn="buffer";h=Cn.prototype;
h.yi=function(a,b){return a==this.ce?(this.Z=b,this):null};h.Xb=function(a,b,c){var d=this;switch(b){case Dn:return this.ya[b]=this.ia=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),En(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;En(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
h.Lc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Gb(a,"ChipSet");jc(b,this,Fn,this.wa);nc(b,this,Gn,this.wa);ub(this)};h.qc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.pc=function(a){return a?this.save():!0};h.reset=function(){Hn(this)};
h.save=function(){var a=new $e(this),b=0,c=[];c[b++]=this.ta;c[b++]=this.Ba;c[b++]=this.X;c[b++]=this.qa;c[b++]=this.O;c[b++]=this.C;c[b++]=this.P;c[b++]=this.A;c[b++]=this.za;c[b]=this.ka;af(a,0,c);return a.data()};h.restore=function(a){return Hn(this,a[0])};function Hn(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.ta=b[c++];a.Ba=b[c++];a.X=b[c++];a.qa=b[c++];a.O=b[c++];a.C=b[c++];a.P=b[c++];a.A=b[c++];a.za=b[c++];a.ka=b[c];return!0}function En(a,b){a.ka=a.ka.concat(b);In(a)}
function In(a){0<a.ka.length&&!(a.A&1)&&(a.ta=a.ka.shift(),a.A|=1);var b=-1;a.A&1&&a.qa&1&&(b=4);0<=b?(a.O&=-8,a.O|=b,a.R&&a.la&&Wf(a.R,a.la,100)):(a.O|=1,a.R&&a.la&&Vf(a.R,a.la))}h.Pl=function(a,b){var c=this.C&128?this.X&255:this.ta;m(this,a,null,b,this.C&128?"DLL":"RBR",c);this.A&=-2;In(this);return c};h.Al=function(a,b){var c=this.C&128?this.X>>8:this.qa;m(this,a,null,b,this.C&128?"DLM":"IER",c);return c};h.Bl=function(a,b){var c=this.O;m(this,a,null,b,"IIR",c);return c};
h.save=function(){var a=new $e(this),b=0,c=[];c[b++]=this.ta;c[b++]=this.Ba;c[b++]=this.da;c[b++]=this.qa;c[b++]=this.O;c[b++]=this.C;c[b++]=this.P;c[b++]=this.A;c[b++]=this.za;c[b]=this.ka;af(a,0,c);return a.data()};h.restore=function(a){return Hn(this,a[0])};function Hn(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.ta=b[c++];a.Ba=b[c++];a.da=b[c++];a.qa=b[c++];a.O=b[c++];a.C=b[c++];a.P=b[c++];a.A=b[c++];a.za=b[c++];a.ka=b[c];return!0}function En(a,b){a.ka=a.ka.concat(b);In(a)}
function In(a){0<a.ka.length&&!(a.A&1)&&(a.ta=a.ka.shift(),a.A|=1);var b=-1;a.A&1&&a.qa&1&&(b=4);0<=b?(a.O&=-8,a.O|=b,a.R&&a.la&&Wf(a.R,a.la,100)):(a.O|=1,a.R&&a.la&&Vf(a.R,a.la))}h.Pl=function(a,b){var c=this.C&128?this.da&255:this.ta;m(this,a,null,b,this.C&128?"DLL":"RBR",c);this.A&=-2;In(this);return c};h.Al=function(a,b){var c=this.C&128?this.da>>8:this.qa;m(this,a,null,b,this.C&128?"DLM":"IER",c);return c};h.Bl=function(a,b){var c=this.O;m(this,a,null,b,"IIR",c);return c};
h.Cl=function(a,b){var c=this.C;m(this,a,null,b,"LCR",c);return c};h.El=function(a,b){var c=this.P;m(this,a,null,b,"MCR",c);return c};h.Dl=function(a,b){var c=this.A;m(this,a,null,b,"LSR",c);return c};h.Jl=function(a,b){var c=this.za;m(this,a,null,b,"MSR",c);return c};
h.hn=function(a,b,c){m(this,a,b,c,this.C&128?"DLL":"THR");if(this.C&128)this.X=this.X&-256|b;else{this.Ba=b;this.A&=-97;if(this.ia)13==b?this.da=0:8==b?(this.ia.value=this.ia.value.slice(0,-1),0<this.da&&this.da--):(a=String.fromCharCode(b),c=32<=b?1:0,9==b&&(b=this.Ha||8,c=b-this.da%b,this.Ha&&(a=oa("",c))),this.ia.value+=a,this.ia.scrollTop=this.ia.scrollHeight,this.da+=c),b=!0;else if(null!=this.W){if(10==b||1024<=this.W.length)this.U(this.W),this.W="";10!=b&&(this.W+=String.fromCharCode(b));b=
!0}else b=!1;b&&(this.A|=96)}};h.Tm=function(a,b,c){m(this,a,b,c,this.C&128?"DLM":"IER");this.C&128?this.X=this.X&255|b<<8:this.qa=b};h.Um=function(a,b,c){m(this,a,b,c,"LCR");this.C=b};
h.hn=function(a,b,c){m(this,a,b,c,this.C&128?"DLL":"THR");if(this.C&128)this.da=this.da&-256|b;else{this.Ba=b;this.A&=-97;if(this.ia)13==b?this.X=0:8==b?(this.ia.value=this.ia.value.slice(0,-1),0<this.X&&this.X--):(a=String.fromCharCode(b),c=32<=b?1:0,9==b&&(b=this.Ja||8,c=b-this.X%b,this.Ja&&(a=oa("",c))),this.Da&&!this.X&&c&&(a=String.fromCharCode(this.Da)+a),this.ia.value+=a,this.ia.scrollTop=this.ia.scrollHeight,this.X+=c),b=!0;else if(null!=this.W){if(10==b||1024<=this.W.length)this.U(this.W),
this.W="";10!=b&&(this.W+=String.fromCharCode(b));b=!0}else b=!1;b&&(this.A|=96)}};h.Tm=function(a,b,c){m(this,a,b,c,this.C&128?"DLM":"IER");this.C&128?this.da=this.da&255|b<<8:this.qa=b};h.Um=function(a,b,c){m(this,a,b,c,"LCR");this.C=b};
h.Vm=function(a,b,c){var d=this.P;m(this,a,b,c,"MCR");this.P=b;this.Z&&(d^b)&3&&(a=this.Z,b=this.P,(c=3==(b&3))?a.Hc||(d=!1,a.P&2||(a.reset(),pb(a,"serial mouse reset"),d=!0),a.P&1||(pb(a,"serial mouse ID requested"),d=!0),d&&(En(a.R,[77,77]),pb(a,"serial mouse ID sent")),Jn(a),a.Hc=c):a.Hc&&(pb(a,"serial mouse inactive"),Kn(a),a.Hc=c),a.P=b)};
var Fn={0:Cn.prototype.Pl,1:Cn.prototype.Al,2:Cn.prototype.Bl,3:Cn.prototype.Cl,4:Cn.prototype.El,5:Cn.prototype.Dl,6:Cn.prototype.Jl},Gn={0:Cn.prototype.hn,1:Cn.prototype.Tm,3:Cn.prototype.Um,4:Cn.prototype.Vm};Sa(function(){for(var a=mb(window.document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Cn(d);lb(d,c)}});function Ln(a){Xa.call(this,"Mouse",a,Ln,33554432);if(this.ta=a.serial)this.wa="SerialPort";this.qa=this.la=this.Hc=!1;this.C=[];this.A=[];ub(this)}gb(Ln);var Km=0;h=Ln.prototype;
h.Lc=function(a,b,c,d){this.ia=a;this.ja=b;this.M=c;this.ma=d;for(b=null;b=Gb(a,"Video",b);)this.C.push(b)};h.qc=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.wa&&!this.R){for(var c=null;(c=Gb(this.ia,this.wa,c))&&(!c.yi||!(this.R=c.yi(this.ta,this))););if(this.R)for(this.A=[],c=0;c<this.C.length;c++){var d;d=this.C[c];d.Z=this;(d=d.ia)&&this.A.push(d)}else Ba(this.id+": "+this.wa+" "+this.ta+" unavailable")}this.Hc?Jn(this):Kn(this)}return!0};
@ -1129,7 +1129,7 @@ function oq(a,b){b=gq(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=lq(b,c+1),
function Qj(a,b,c,d){var e,f;if(!d&&(d=n(a,1)&&0>vp.indexOf(b),!d)){var g=up[b];g&&(d=n(a,g)?!0:524288==g&&n(a,g=1048576))}d&&(e=a.M.F>>8&255,f=a.M.H&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Ab[b])&&g[e]||"")&&(g=" "+oq(a,g)),a.message("INT "+ha(b)+": AH="+ha(e)+" at "+Rp(c-2-a.M.Ca.Ea,a.M.Ca.ga)+g));return d}
function ob(a,b,c,d,e,f,g,k){k|=256;if(null==e||(a.vc&k)==k)k=null,null!=e&&(k=a.M.Ca.ga,e-=a.M.Ca.Ea),a.message(b.ce+"."+(null!=d?"outPort":"inPort")+"("+ia(c)+","+(f?f:"unknown")+(null!=d?","+ha(d):"")+")"+(null!=g?": "+ha(g):"")+(null!=e?" at "+Rp(e,k):""))}h.jh=function(){this.U("Type ? for help with PCjs Debugger commands");this.qd();if(this.rb){var a=this.rb;this.rb=null;tp(this,a)}};
function rp(a,b){var c;if(Kf(a)){if(!a.qa||!a.qa.length){a.qa=Array(1E3);for(c=0;c<a.qa.length;c++)a.qa[c]=pp(a);a.Oa=0;b||a.U("instruction history buffer allocated")}if(!a.X||!a.X.length)for(a.X=Array(256),c=0;c<a.X.length;c++)a.X[c]=[c,0]}else a.qa&&a.qa.length&&!b&&a.U("instruction history buffer freed"),a.Oa=0,a.qa=[],a.X=[]}h.Ie=function(a){if(!pq(this))return!1;this.M.Ie(a);return!0};
h.sf=function(a,b,c){if(!pq(this))return!1;this.ka=0;do{a||Kf(this)&&Nf(this,this.M.Na,0);try{var d=this.M.sf(a);0<d&&(this.ka+=d,bd(this.M,d,!0),Uc(this.M,d),this.wa++)}catch(f){if("number"!=typeof f){var e=f;this.ka=0;wb(this.M,e.stack||e.message)}}}while(this.M.V&3312);!1!==c&&Rc(this.M);this.qd(b||!1);return 0<this.ka};h.bc=function(a){this.M&&this.M.bc(a)};h.qd=function(a){void 0===a&&(a=!0);this.da=pp(this,v(this.M),this.M.Ca.ga);a&&1!=this.P?qq(this):rq(this)};
h.sf=function(a,b,c){if(!pq(this))return!1;this.ka=0;do{a||Kf(this)&&Nf(this,this.M.Na,0);try{var d=this.M.sf(a);0<d&&(this.ka+=d,bd(this.M,d,!0),Wc(this.M,d),this.wa++)}catch(f){if("number"!=typeof f){var e=f;this.ka=0;wb(this.M,e.stack||e.message)}}}while(this.M.V&3312);!1!==c&&Rc(this.M);this.qd(b||!1);return 0<this.ka};h.bc=function(a){this.M&&this.M.bc(a)};h.qd=function(a){void 0===a&&(a=!0);this.da=pp(this,v(this.M),this.M.Ca.ga);a&&1!=this.P?qq(this):rq(this)};
function pq(a){var b;if(b=a.M&&vb(a.M))b=a.M,b.ra.gc?b=!0:(b.U(b.toString()+" not powered"),b=!1);b&&!rb(a.M)?(a=a.M,a.ra.wd?(a.U(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}h.qc=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};h.pc=function(a,b){b&&this.U(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){rp(this);this.wa=this.Ha=0;this.eb=null;this.ka=0;this.da=pp(this,v(this.M),this.M.Ca.ga);this.ra.Ob=!1;sq(this);a||this.qd()};
h.save=function(){var a=new $e(this);af(a,0,cq(this.da));af(a,1,cq(this.Ba));af(a,2,[this.O,this.Ma,this.vc]);af(a,3,this.C);return a.data()};h.restore=function(a){var b=0;void 0!==a[2]&&(this.da=dq(a[b++]),this.Ba=dq(a[b++]),this.O=a[b][0],"string"==typeof this.O&&(this.O=[this.O]),this.Ma=a[b][1],this.vc|=a[b][2]);a[3]&&(this.C=a[3]);return!0};h.start=function(a,b){this.P||this.U("running");this.ra.Ob=!0;this.mc=a;this.zd=b};
h.stop=function(a,b){if(this.ra.Ob){this.ra.Ob=!1;this.ka=b-this.zd;if(!this.P){var c="stopped";if(this.ka){var d=a-this.mc,e=0<d?Math.round(1E3*this.ka/d):0,c=c+" (";Kf(this)&&(c+=this.wa+" opcodes, ",this.Ha-=this.wa,this.wa=0);c+=this.ka+" cycles, "+d+" ms, "+e+" hz)"}this.U(c)}this.qd(!0);this.Uc();sq(this,this.M.Na)}};function Kf(a){return 1<a.A.length||!!a.Ua||n(a,16)}
@ -1178,18 +1178,18 @@ fq(a,g[1],!0);if(B)if(a.Ba=B,void 0===g[2])a.U("begin assemble at "+Zp(B)),a.Ma=
a.U("\tbc [a]\tclear breakpoint at addr [a]"),a.U("\tbl\tlist all breakpoints"),a.U("\tbn [n]\tbreak after [n] instruction(s)");else{var V=U.charAt(1);if("l"==V){var Y=0,Y=Y+wq(a,a.A),Y=Y+wq(a,a.za);(Y+=wq(a,a.la))||a.U("no breakpoints")}else if("n"==V)a.Ua=Lp(a,F),a.U("break after "+a.Ua+" instruction(s)");else if(void 0===F)a.U("missing breakpoint address");else{var ga={};if("*"!=F&&(ga=fq(a,F,!0,!0),!ga))break a;F=null==ga.Xa?F:ia(ga.Xa);"c"==V?null==ga.Xa?(qp(a),a.U("all breakpoints cleared")):
Yp(a,a.A,ga)||Yp(a,a.za,ga)||Yp(a,a.la,ga)||a.U("breakpoint missing: "+Zp(ga)):"i"==V?a.U("breakpoint "+(ic(a.ja,ga.Xa)?"enabled":"cleared")+": port "+F+" (input)"):"o"==V?a.U("breakpoint "+(mc(a.ja,ga.Xa)?"enabled":"cleared")+": port "+F+" (output)"):null!=ga.Xa&&(iq(a,ga,O),"p"==V?a.Od(a.A,ga):"r"==V?a.Od(a.za,ga):"w"==V?a.Od(a.la,ga):a.U("unknown breakpoint command: "+V))}}}break;case "c":Mq(a);break;case "d":a:{var da=g,bb,ta=da[0],pa=da[1],Ma=da[2],$a=da[3];if("?"==pa){var Ia="";for(bb in Dp)a.ib[bb]&&
(Ia&&(Ia+=","),Ia+=bb);Ia+=",state,symbols";a.U("dump memory commands:");a.U("\tdb [a] [#] dump # bytes at address a");a.U("\tdw [a] [#] dump # words at address a");a.U("\tdd [a] [#] dump # dwords at address a");a.U("\tdh [#] [#] dump # instructions from history");a.U("\tds [#] dump descriptor info for selector #");Ia.length&&a.U("dump extension commands:\n\t"+Ia)}else if("state"==pa){var Vb=Uq(a.ia,!0);"console"==Ma?console.log(Vb):(Mq(a),a.U(Vb))}else if("symbols"==pa)for(var Da=
0;Da<a.C.length;Da++){var Sd=a.C[Da],Tc;for(Tc in Sd.Nd)if("."!=Tc.charAt(0)){var Td=Sd.Nd[Tc],De=Td.o;if(void 0!==De){var Ud=Td.s;void 0===Ud&&(Ud=Sd.ga);var Ee=Sd.Nd[Tc].l;Ee&&(Tc=Ee);a.U(Rp(De,Ud)+" "+Tc)}}}else{if("ds"==ta||"dg"==ta||"dl"==ta)ta="d",da=[ta,"desc",pa];"d"==ta&&"page"==pa&&(ta="dp",da.shift());if("dp"==ta){da.shift();var hi=da[0];if(hi){var Qe=a.hc(fq(a,hi));if(-1===Qe)a.U("invalid address: "+hi);else{var Yd,Ka=null;if(80386<=a.M.na){var Zd=a.ja,Ka={};Ka.bk=(Qe&-4194304)>>>20;Ka.wi=
0;Da<a.C.length;Da++){var Sd=a.C[Da],Sc;for(Sc in Sd.Nd)if("."!=Sc.charAt(0)){var Td=Sd.Nd[Sc],De=Td.o;if(void 0!==De){var Ud=Td.s;void 0===Ud&&(Ud=Sd.ga);var Ee=Sd.Nd[Sc].l;Ee&&(Sc=Ee);a.U(Rp(De,Ud)+" "+Sc)}}}else{if("ds"==ta||"dg"==ta||"dl"==ta)ta="d",da=[ta,"desc",pa];"d"==ta&&"page"==pa&&(ta="dp",da.shift());if("dp"==ta){da.shift();var hi=da[0];if(hi){var Qe=a.hc(fq(a,hi));if(-1===Qe)a.U("invalid address: "+hi);else{var Yd,Ka=null;if(80386<=a.M.na){var Zd=a.ja,Ka={};Ka.bk=(Qe&-4194304)>>>20;Ka.wi=
a.M.Md+Ka.bk;Ka.Db=Zd.xa[(Ka.wi&Zd.Lb)>>>Zd.Pa];Ka.Ui=Ka.Db.Yd(Ka.bk);Ka.ck=(Qe&4190208)>>>10;Ka.xi=(Ka.Ui&-4096)+Ka.ck;Ka.Eb=Zd.xa[(Ka.xi&Zd.Lb)>>>Zd.Pa];Ka.Vi=Ka.Eb.Yd(Ka.ck);Ka.Jk=(Ka.Vi&-4096)+(Qe&4095)}if(Yd=Ka){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var rd="%"+l(Qe),rd=rd+(" %%"+kq(Yd.wi,Yd.Ui)),rd=rd+(" %%"+kq(Yd.xi,Yd.Vi,!0)),rd=rd+(" %%"+l(Yd.Jk));a.U(rd)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
ta){if("disk"==pa){da[0]="l";da[1]="json";Qq(a,da);break a}for(bb in Dp)if(da[1]==bb){var Vm=a.ib[bb];Vm?(da.shift(),da.shift(),Vm(da)):a.U("no dump registered for "+pa);break a}pa||(ta=a.Jc||"db")}else a.Jc=ta;if("dh"==ta){var Wm=pa,Xm=Ma,Ym="",Zm=0,sb=a.Oa,vc=a.qa;if(vc.length){var Fb=+Wm||a.Zb,$d=+Xm||10;isNaN(Fb)?Fb=$d:Ym="more ";Fb>vc.length&&(a.U("note: only "+vc.length+" available"),Fb=vc.length);sb-=Fb;0>sb&&(null==vc[vc.length-1].ga?(Fb=sb+Fb,sb=0):sb+=vc.length);var ii=[];"call"==Xm&&($d=
1E5,ii=["CALL"]);for(void 0!==Wm&&a.U(Fb+" instructions earlier:");0<$d&&sb!=a.Oa;){var tb=vc[sb++];if(null==tb.ga)break;var tb=pp(a,tb.Xa,tb.ga,tb.Ia,tb.type,tb.Wb,tb.oc),$m=yq(a,tb,"history",Fb--);(!ii.length||0<=$m.indexOf(ii[0]))&&a.U($m);tb.Qe&&(sb+=tb.Qe,$d-=tb.Qe,Fb-=tb.Qe);sb>=vc.length&&(sb=0);a.Zb=Fb;Zm++;$d--}}Zm||(a.U("no "+Ym+"history available"),a.Zb=void 0)}else if("di"==ta)da.shift(),a.U("no information");else{var ae=fq(a,pa);if(ae&&(null!=ae.ga||null!=ae.Ia)){var pg=0;Ma&&("l"==Ma.charAt(0)&&
(Ma=Ma.substr(1)||$a),pg=Lp(a,Ma)>>>0,65536<pg&&(pg=65536));for(var sd="",mr=(pg||128)+15>>4||1,ji="dd"==ta?4:"dw"==ta?2:1,an=0;an<mr;an++){for(var qg=0,ki=0,Re="",li="",pa=Zp(ae),mi=0;16>mi;mi++){var rg=a.Wa(ae,1),qg=qg|rg<<(ki++<<3);ki==ji&&(Re+=l(qg,2*ji),Re+=1==ji?7==mi?"-":" ":" ",qg=ki=0);li+=32<=rg&&128>rg?String.fromCharCode(rg):"."}sd&&(sd+="\n");sd+=pa+" "+Re+" "+li}sd&&a.U(sd);a.Ib=ae}}}}}break;case "e":if("else"==g[0])break;var sg=1,bn=255,cn=a.Wa,dn=a.sc;"ew"==g[0]&&(sg=2,bn=65535,
cn=a.va,dn=a.pb);var en=sg<<1,fn=g[1];if(null==fn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var tg=fq(a,fn);if(tg)for(var ug=2;ug<g.length;ug++){var Se=hq(a,g[ug]);if(void 0===Se){a.U("unrecognized value: "+g[ug]);break}Se&~bn&&a.U("warning: "+l(Se)+" exceeds "+sg+"-byte value");var nr=cn.call(a,tg);a.U("changing "+Zp(tg)+" from 0x"+l(nr,en)+" to 0x"+l(Se,en));dn.call(a,tg,Se,sg)}}break;case "f":Nq(a,g[1]);break;
case "g":a:{var gn=g[1],or=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==gn){var ni=fq(a,gn,!0);if(!ni)break a;iq(a,ni,or);a.Od(a.A,ni,!0)}a.Ie(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var oi;a.ra.Ob?(oi="halting",a.bc()):oi="already halted";c||a.U(oi);break;case "i":if("if"==g[0]){var pi;var Te=b.substr(2),Te=qa(Te);hq(a,Te)?(c||a.U("true: "+Te),pi=!0):(c||a.U("false: "+Te),pi=!1);pi||(d=!1);break}if("int"==g[0]){var vg;a:switch(Lp(a,g[1])){case 19:Qj(a,19,a.M.Na,!0);a.Ha=
a.wa;vg=!0;break a;case 33:Qj(a,33,a.M.Na,!0);a.Ha=a.wa;vg=!0;break a;default:vg=!1}vg||(d=!1);break}var qi=g[1];if(qi&&"?"!=qi){var ri=Lp(a,qi);if(void 0!==ri){var pr=kc(a.ja,ri,1);a.U(ia(ri)+": "+ha(pr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var qr=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var si=0,hn=a.M.Ca.ga,Ue=pp(a),Vc=pp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+Zp(Vc));10>si;){for(var wc=null,rr=256;Vc.Xa>>>0<a.M.Kg>>>0;){Ue.Xa=a.vb(Vc,!0);if(null==Vc.Ia||!rr--)break;Ue.ga=hn;if(wc=Sq(a,Ue))break;Ue.ga=a.vb(Vc);if(wc=Sq(a,Ue,!0)){hn=a.vb(Vc,!0);0<wc.indexOf("INT")&&a.vb(Vc,!0);break}}if(!wc||null==wc)break;var jn=null;if("ks"==qr){var kn=wc.match(/[0-9A-F]+$/);kn&&(jn=Pq(a,kn[0]))}wc=oa(wc,50)+" ;"+(jn||"stack="+Zp(Vc));a.U(wc);si++}si||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){Pq(a,g[1],
a.wa;vg=!0;break a;case 33:Qj(a,33,a.M.Na,!0);a.Ha=a.wa;vg=!0;break a;default:vg=!1}vg||(d=!1);break}var qi=g[1];if(qi&&"?"!=qi){var ri=Lp(a,qi);if(void 0!==ri){var pr=kc(a.ja,ri,1);a.U(ia(ri)+": "+ha(pr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var qr=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var si=0,hn=a.M.Ca.ga,Ue=pp(a),Uc=pp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+Zp(Uc));10>si;){for(var wc=null,rr=256;Uc.Xa>>>0<a.M.Kg>>>0;){Ue.Xa=a.vb(Uc,!0);if(null==Uc.Ia||!rr--)break;Ue.ga=hn;if(wc=Sq(a,Ue))break;Ue.ga=a.vb(Uc);if(wc=Sq(a,Ue,!0)){hn=a.vb(Uc,!0);0<wc.indexOf("INT")&&a.vb(Uc,!0);break}}if(!wc||null==wc)break;var jn=null;if("ks"==qr){var kn=wc.match(/[0-9A-F]+$/);kn&&(jn=Pq(a,kn[0]))}wc=oa(wc,50)+" ;"+(jn||"stack="+Zp(Uc));a.U(wc);si++}si||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){Pq(a,g[1],
!0);break}Qq(a,g);break;case "m":if("mouse"==g[0]){var ti=g[1],wg=g[2];if(a.Z){var ln=1;"-"==wg.charAt(0)&&(ln=-1,wg=wg.substr(1));var td=Lp(a,wg,ti);if(void 0!==td)switch(td=td*ln|0,ti){case "x":a.Z.Df(td,0);break;case "y":a.Z.Df(0,td);break;case "click":a.Z.he(td,!0);a.Z.he(td,!1);break;default:a.U("unknown action: "+ti)}}else a.U("no mouse");break}a:{var xc,yc=null,Ua=g[1];"?"==Ua&&(Ua=void 0);if(void 0!==Ua){var ud=0;if("all"==Ua)ud=1610481663,Ua=null;else if("on"==Ua)yc=!0,Ua=null;else if("off"==
Ua)yc=!1,Ua=null;else{"keys"==Ua&&(Ua="key");"kbd"==Ua&&(Ua="keyboard");for(xc in Dp)if(Ua==xc){ud=Dp[xc];yc=!!(a.vc&ud);break}if(!ud){a.U("unknown message category: "+Ua);break a}}ud&&("on"==g[2]?(a.vc|=ud,yc=!0):"off"==g[2]&&(a.vc&=~ud,yc=!1))}var sr=0,Wc="";for(xc in Dp)if(!Ua||Ua==xc){var tr=!!(a.vc&Dp[xc]);if(null===yc||yc==tr)Wc&&(Wc+=","),++sr%10||(Wc+="\n\t"),"key"==xc&&(xc="keys"),Wc+=xc}void 0===Ua&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==yc?
yc?"messages on: ":"messages off: ":"message categories:\n\t")+(Wc||"none"));rp(a)}break;case "o":var ui=g[1],ur=g[2];if(ui&&"?"!=ui){var vi=Lp(a,ui,"port #"),wi=Lp(a,ur);void 0!==vi&&void 0!==wi&&(oc(a.ja,vi,1,wi),a.U(ia(vi)+": "+ha(wi)))}else a.U("output commands:"),a.U("\to [p] [b]\twrite byte [b] to port [p]"),a.U("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Rq(a,b.substr(5));break}var mn="pr"==g[0]?1:0,be=1+mn;if(a.P)a.U("step in progress");else{var xg,
Ua)yc=!1,Ua=null;else{"keys"==Ua&&(Ua="key");"kbd"==Ua&&(Ua="keyboard");for(xc in Dp)if(Ua==xc){ud=Dp[xc];yc=!!(a.vc&ud);break}if(!ud){a.U("unknown message category: "+Ua);break a}}ud&&("on"==g[2]?(a.vc|=ud,yc=!0):"off"==g[2]&&(a.vc&=~ud,yc=!1))}var sr=0,Vc="";for(xc in Dp)if(!Ua||Ua==xc){var tr=!!(a.vc&Dp[xc]);if(null===yc||yc==tr)Vc&&(Vc+=","),++sr%10||(Vc+="\n\t"),"key"==xc&&(xc="keys"),Vc+=xc}void 0===Ua&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==yc?
yc?"messages on: ":"messages off: ":"message categories:\n\t")+(Vc||"none"));rp(a)}break;case "o":var ui=g[1],ur=g[2];if(ui&&"?"!=ui){var vi=Lp(a,ui,"port #"),wi=Lp(a,ur);void 0!==vi&&void 0!==wi&&(oc(a.ja,vi,1,wi),a.U(ia(vi)+": "+ha(wi)))}else a.U("output commands:"),a.U("\to [p] [b]\twrite byte [b] to port [p]"),a.U("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Rq(a,b.substr(5));break}var mn="pr"==g[0]?1:0,be=1+mn;if(a.P)a.U("step in progress");else{var xg,
nn=!1,nb=pp(a,v(a.M),a.M.Ca.ga);do switch(xg=!1,a.Wa(nb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:aq(a,nb,1);xg=!0;break;case 204:case 206:a.P=be;aq(a,nb,1);break;case 205:case 224:case 225:case 226:a.P=be;aq(a,nb,nb.Wb?4:2);break;case 232:a.P=be;aq(a,nb,nb.Wb?5:3);break;case 154:a.P=be;aq(a,nb,nb.Wb?7:5);break;case 255:var on=a.vb(nb)&14591;if(4351==on||6399==on)a.P=be,yq(a,nb);break;case 243:case 242:aq(a,nb,1);nn=xg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:nn&&
(a.P=be,aq(a,nb,1))}while(xg);a.P?(a.Od(a.A,nb,!0),a.Ie()||(a.M.Uc(),a.P=0)):Tq(a,mn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}qq(a,g);break;case "t":Tq(a,g[0],g[1]);break;case "u":rq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Oq(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.8 ("+a.M.na+",RELEASE,NOPREFETCH"+(xb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Ve;void 0!==g[3]&&(Ve=+g[3]);switch(g[2]){case "int":a.M.ba.ff=
Ve;break;case "start":a.M.ba.Ff=Ve;break;case "stop":a.M.ba.hf=Ve;break;default:a.U("unknown cs option");break a}void 0!==Ve&&Qc(a.M);a.U("checksums "+(a.M.ra.We?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&($c(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Ud+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
@ -1204,12 +1204,12 @@ function dr(a,b,c){for(var d=hb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]
h.Vf=function(a){void 0===a&&(a=this.Nc||(this.O?1:ar));if(!this.C){this.C++;var b=!1,c=!1;this.X=!1;var d=this.ia||new $e(this,cr);if(-1==a)b=!0;else if(a>ar){if(d.load(this.O)){this.R=new $e(this,cr,"failsafe");this.R.load()&&(fr(this,d),a=2,Wq(this.R));af(this.R,"timestamp",ua());Xq(this.R);var e=this.Nc&&!this.P;if(1==a||Ca("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Yq(d)){var f=Zq(d,"code"),g=Zq(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Va("Error: "+g),"unable to verify user"==g&&(Ha("user",""),this.A=null)):this.U(f+": "+g),Wq(d),d.load()?(c=Yq(d),e=!0):c=!1))}e&&er(this,c?d:null)}else 2==a&&d.clear()}else er(this);delete this.O;delete this.ia}e=hb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.M&&(c=gr(this,g,d,b,c));b=[d,a,c];-1!=a?dr(this,this.Ji,b):this.Ji(b)}};
function gr(a,b,c,d,e){if(!b.ra.gc){b.ra.gc=!0;if(b.qc){var f=null;e&&((f=Zq(c,b.id))||(f=Zq(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.qc(f,d)&&f&&(Ba("Unable to restore state for "+b.type),a.W&&!a.da?(c.clear(),a.Nc=ar,window&&window.location.reload()):a.X=!0,b.qc(null),e=!1)}if(!d&&b.rk)for(a=b.rk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Ji=function(a){var b=a[0],c=0>a[1];a=a[2];this.ra.gc=!0;var d=this.ya.power;d&&(d.textContent="On");this.sk||(this.U("PCjs v"+cr+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.sk=!0);this.M&&(gr(this,this.M,b,c,a),Sc(this.M));this.X&&(fr(this,b),b.clear());!c&&this.R&&(this.R.clear(),delete this.R);this.C=0};
h.Ji=function(a){var b=a[0],c=0>a[1];a=a[2];this.ra.gc=!0;var d=this.ya.power;d&&(d.textContent="On");this.sk||(this.U("PCjs v"+cr+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.sk=!0);this.M&&(gr(this,this.M,b,c,a),Tc(this.M));this.X&&(fr(this,b),b.clear());!c&&this.R&&(this.R.clear(),delete this.R);this.C=0};
function fr(a,b){if(Ca("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.qa,d=a.ie(),e=b.toString(),f={app:"PCjs"};f.ver=cr;f.url=c;f.user=d;f.type="bug";f.data=e;za("http://www.pcjs.org/api/v1/report",!0,f)}}
function Uq(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new $e(a,cr),g=new $e(a,cr,"validate"),k=ua();af(g,"timestamp",k);af(f,"timestamp",k);af(f,"version","1.20.8");af(f,"url",window?window.location.href:null);af(f,"browser",window?window.navigator.userAgent:"");a.M&&a.M.pc&&(c&&a.M.bc(),d=a.M.pc(b,c),"object"===typeof d&&af(f,a.M.id,d),c&&(a.M.ra.gc=!1,!1===d&&(e=null)));for(var k=hb(a.id),q=0;q<k.length;q++){var r=k[q];r.ra.gc&&(r.pc&&(d=r.pc(b,c),"object"===typeof d&&af(f,r.id,d)),c&&
(r.ra.gc=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.A&&hr(a,a.A,f.toString()),Xq(g)&&Xq(f)||(e=null,d=k=!0)):a.Nc&&(d=!0,k=3==a.Nc),d&&f.clear(k)):e=f.toString());c&&(a.ra.gc=!1,b=a.ya.power)&&(b.textContent="Off");a.C=0;return e}h.reset=function(){this.ja&&this.ja.reset&&(pb(this,"Resetting "+this.ja.type),this.ja.reset());for(var a=hb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ja&&c.reset&&(pb(this,"Resetting "+c.type),c.reset())}};
h.start=function(a,b){for(var c=hb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};h.stop=function(a,b){for(var c=hb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
h.Xb=function(a,b,c){var d=this;switch(b){case "power":return this.ya[b]=c,c.onclick=function(){d.C||(d.ra.gc?Uq(d,!1,!0):dr(d,d.Vf))},!0;case "reset":return this.ya[b]=c,c.onclick=function(){if(d.ra.gc&&!d.C)if(d.Nc&&!d.Dg){var a=Ca("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Uq(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.fh=!0),d.Vf(ar),d.fh=!1)}else d.reset(),d.M&&Sc(d.M)},!0;case "save":return this.ya[b]=c,c.onclick=
h.Xb=function(a,b,c){var d=this;switch(b){case "power":return this.ya[b]=c,c.onclick=function(){d.C||(d.ra.gc?Uq(d,!1,!0):dr(d,d.Vf))},!0;case "reset":return this.ya[b]=c,c.onclick=function(){if(d.ra.gc&&!d.C)if(d.Nc&&!d.Dg){var a=Ca("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Uq(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.fh=!0),d.Vf(ar),d.fh=!1)}else d.reset(),d.M&&Tc(d.M)},!0;case "save":return this.ya[b]=c,c.onclick=
function(){var a=br(d,!0);if(a){var b=!!(d.Nc&&!d.Dg||d.W),c=Uq(d,b);b?hr(d,a,c):d.Va("Resume disabled, machine state not saved")}},!0}return!1};function br(a,b){var c=a.A;c||(c=Ga("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ir(a,c))||a.Va("The user ID is invalid."))):b&&a.Va("Browser local storage is not available"));return c}
function ir(a,b){a.A=null;var c=za(Aa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Ha("user",c.data),a.A=c.data)}catch(e){Ba(e.message+" ("+d+")")}return a.A}
function hr(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vq(a,cr);d.data=c;b=za(Aa()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Va("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.Va(c),Ha("user",""),a.A=null)}}