Code cleanup

This commit is contained in:
Jeff Parsons 2016-02-11 15:44:10 -08:00
commit b6cf972131
36 changed files with 561 additions and 227 deletions

View file

@ -14,8 +14,8 @@ function Ta(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ba("An unexp
function Xa(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.sk=b.comment;this.wk=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.ti=this.id.substr(0,b),this.ce=this.id.substr(b+1)):this.ce=this.id;this[a]=c;this.ra={Ze:!1,cd:!1,eh:!1,hc:!1,wd:!1};this.rg=null;this.ra.wd=!1;this.ya={};this.ma=null;this.wc=d||0;Ya[Ya.length]=this}var Za=void 0,ab={};
if(window){Za||(Za=window.location.search.substr(1));for(var bb,cb=/\+/g,db=/([^&=]+)=?([^&]*)/g;bb=db.exec(Za);)ab[decodeURIComponent(bb[1].replace(cb," "))]=decodeURIComponent(bb[2].replace(cb," "))}function fb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[];function hb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ib(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function jb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function kb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function lb(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=jb(d,a.id))&&(b=d.ya[b])&&a.Ub(null,c,b))}
window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function mb(a,b){for(var c=ob(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===window.document.ELEMENT_NODE){var k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=kb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
function jb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function kb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function lb(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=jb(d,a.id))&&(b=d.ya[b])&&a.Ub(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function mb(a,b){for(var c=ob(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===document.ELEMENT_NODE){var k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=kb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
function ob(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
Xa.prototype={constructor:Xa,parent:null,toString:function(){return this.name?this.name:this.id||this.type},Ub:function(a,b,c){switch(b){case "clear":return this.ya[b]||(this.ya[b]=c,c.onclick=function(a){return function(){a.ya.print&&(a.ya.print.value="")}}(this)),!0;case "print":return this.ya[b]||(this.Af=this.ya[b]=c,c.value="",this.S=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.Va=function(a,b,c){this.S(a,"notice",c)}),!0;default:return!1}},log:function(){},S:function(){},status:function(a){this.S(this.ce+": "+a)},Va:function(a,b){b||Ba(a)},lc:function(){return this.ra.hc=!0},kc:function(a,b){b&&(this.ra.hc=!1);return!0}};function m(a,b,c,d,e,f,g){a.ma&&(!0===g?g=0:null==g&&(g=a.wc),pb(a.ma,a,b,c,d,e,f,g))}function qb(a,b,c,d){a.ma&&(!0===c||n(a,c|0))&&a.ma.message(b,d)}
@ -38,7 +38,7 @@ h.Ub=function(a,b,c,d){return this.ia&&this.ia.Ub(a,b,c,d)||this.M&&this.M.Ub(a,
function Jb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.ka||(a.ka=Math.abs(a.O-d)>Math.abs(a.Y-b)?1:2),1==a.ka?b=a.Y:2==a.ka&&(d=a.O));a.O=d;a.Y=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.A&&a.A.Ne)for(f=0;f<a.A.Ne.length;f++)if(e=a.A.Ne[f],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.A.xf[f],g=xa(Kb.ak,a.A.Tg[d.Xk]),f=g*a.ja.Rb,d=(g+d.Qd)*a.ja.Rb-1;0<b&&(f+=e.bd*(b-1)*a.Ha);f+=c*a.Ha;f|=0;
f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ja)){b=c;if(a.context&&a.qa&&a.ta){e=a.qa.width;a.ta.fillStyle="black";a.ta.fillRect(0,360,e,360);Lb(a,378,a.qa,a.ta);a.wa=a.Ma.width/24|0;if(null==b)Mb(a,"Mouse over memory to dump");else for(Mb(a,"0x"+l(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var k;k=a.ja;var q=b++;k=k.xa[(q&k.Lb)>>>k.Pa].pe(q&k.A,q);Mb(a,l(k,2),null,1);d+=32<=k&&128>k?String.fromCharCode(k):"."}Mb(a,d,null,0,1)}a.context.drawImage(a.qa,0,360,e,360,a.xb,a.Ib,a.cb,a.Yb)}a.Ja=
c}}}h.qd=function(){};function Nb(a,b,c,d){a.A.xf[a.A.Ci++]={Xk:b,Qd:c,type:d};return wa(Kb,b,c,0,d)}function Lb(a,b,c,d){var e,f=null.style.color,g=a.Ua=10;a.C=g;a.W=b;a.X=a.Da=18;e||(e=a.Ba||a.Da+"px Monaco, Lucida Console, Courier New");a.la=a.Ba=e;c&&(a.Ma=c);d&&(a.R=d,a.Oa=f||"white")}
function Mb(a,b,c,d,e){a.R.font=a.la;a.R.fillStyle=a.Oa;a.R.fillText(b,a.C,a.W);a.C+=a.wa;null!=c&&(16!=a.rb?b=c.toString():(b=8>a.Ta?"0x":"",b+=l(c,a.Ta)),a.R.fillText(b,a.C,a.W),a.C+=a.wa);d&&(a.C+=a.wa*d);e&&(a.C=a.Ua,a.W+=(a.X+2)*(e||1))}function Ib(){for(var a=!1,b=ob(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=kb(d),f=ib(e.id);f||(a=!0,f=new Cb(e));mb(f,d);a&&vb(f)}}Sa(Ib);
function Mb(a,b,c,d,e){a.R.font=a.la;a.R.fillStyle=a.Oa;a.R.fillText(b,a.C,a.W);a.C+=a.wa;null!=c&&(16!=a.rb?b=c.toString():(b=8>a.Ta?"0x":"",b+=l(c,a.Ta)),a.R.fillText(b,a.C,a.W),a.C+=a.wa);d&&(a.C+=a.wa*d);e&&(a.C=a.Ua,a.W+=(a.X+2)*(e||1))}function Ib(){for(var a=!1,b=ob(document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=kb(d),f=ib(e.id);f||(a=!0,f=new Cb(e));mb(f,d);a&&vb(f)}}Sa(Ib);
function Ob(a,b,c){Xa.call(this,"Bus",a,Ob);this.M=b;this.ma=c;this.P=a.buswidth||20;this.X=Math.pow(2,this.P);this.wg=this.Lb=this.X-1|0;this.Pa=32==this.P||20>=this.P?12:24>=this.P?14:15;this.Rb=1<<this.Pa;this.la=this.Rb>>2;this.A=this.Rb-1;this.W=this.X/this.Rb|0;this.O=this.W-1;this.C=[];this.R=[];this.ia=this.Y=!1;this.da=[];this.ka=[];a=new Pb;Qb(a,this.ma);this.xa=Array(this.W);for(b=0;b<this.W;b++)this.xa[b]=a;a=this.M;b=this.xa;c=this.Pa;a.kd=a.xa=b;a.Pa=c;a.Rb=1<<a.Pa;a.Ha=a.Rb-1;a.Hd=
b.length;a.jd=a.Hd-1;a=this.M;a.Lb=a.qb=this.Lb;vb(this)}gb(Ob);var Kb,Rb={ak:20,count:8,po:1,type:3},Sb=0,Tb;for(Tb in Rb){var Ub=Rb[Tb];Rb[Tb]={ph:(1<<Ub)-1<<Sb,shift:Sb};Sb+=Ub}Kb=Rb;h=Ob.prototype;h.reset=function(){Wb(this,!0)};h.lc=function(a,b){b||this.reset();return!0};
function Xb(a,b,c,d,e){for(var f=b>>>a.Pa;0<c&&f<a.xa.length;){var g=a.xa[f],k=f*a.Rb,q=c>a.Rb?a.Rb:c;if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.Ia)return g.Le+=g.Ia-b,g.Ia=b,!0;if(b>=g.Ia+g.Le){q=g.size-(b-k);q>c&&(q=c);g.Le=b-g.Ia+q;c-=q;b=k+a.Rb;continue}}return Yb(a,1,b,c)}g=a.xa[f];b=new Pb(b,q,a.Rb,d,e);Qb(b,a.ma,g);a.xa[f++]=b;b=k+a.Rb;c-=q}return 0>=c?(Zb(a.M),!0):Yb(a,2,b,c)}
@ -134,8 +134,7 @@ function Lf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.na)2<b.length&&
h.qd=function(a){if(this.Qg&&(a||!this.ra.Ob||this.ra.Pi)){Lf(this,"EAX",this.F);Lf(this,"EBX",this.D);Lf(this,"ECX",this.G);Lf(this,"EDX",this.H);Lf(this,"ESP",u(this));Lf(this,"EBP",this.K);Lf(this,"ESI",this.J);Lf(this,"EDI",this.I);Lf(this,"CS",this.Ca.ga);Lf(this,"DS",this.Ab.ga);Lf(this,"SS",this.Aa.ga);Lf(this,"ES",this.bb.ga);Lf(this,"EIP",v(this));var b=Cd(this);Lf(this,"PS",b);Lf(this,"V",b&2048);Lf(this,"D",b&1024);Lf(this,"I",b&512);Lf(this,"T",b&256);Lf(this,"S",b&128);Lf(this,"Z",b&
64);Lf(this,"A",b&16);Lf(this,"P",b&4);Lf(this,"C",b&1);80386==this.na&&(Lf(this,"FS",this.Sb.ga),Lf(this,"GS",this.Tb.ga),Lf(this,"CR0",this.hb),Lf(this,"CR2",this.qe),Lf(this,"CR3",this.Md))}if(b=this.ya.speed)b.textContent=this.ra.Ob&&this.ba.ne?this.ba.ne.toFixed(2)+"Mhz":"Stopped";this.parent.qd.call(this,a)};
h.sf=function(a){this.ra.Sd=!0;var b=this.ra.Ni=this.ma&&Mf(this.ma),c=a?this.ra.hh?0:1:-1;this.ra.hh=!1;this.cb=this.A=a;this.R&&!a&&gd(this.R);a||n(this,1024)||(this.V|=4);do{var d=this.V&3312;if(d)this.La|=d;else if(this.Ge=this.Na,this.P=this.Ab,this.O=this.Aa,this.Z=this.Y=-1,this.La&3072&&Pe(this),this.La=this.V&256,this.za){a:{if(!(this.V&4))for(var d=80286>this.na?0:1,e=0;2>e;e++){switch(d){case 0:if(this.za&1&&this.ea&512){var f=Nf(this.R);if(-1<=f&&(this.za&=-2,0<=f)){this.za&=-5;Of.call(this,
f);d=!0;break a}}break;case 1:if(this.za&2){this.za&=-3;80386<=this.na&&(this.Ma[6]|=16384);Of.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.S("interrupt dispatched");this.V=0;break}if(this.za&4){this.V=this.A=0;break}}if(b){if(Pf(this.ma,this.Na,c)){this.bc();break}c=1}this.V=0;this.W[this.ca()].call(this)}while(0<this.A);return this.ra.Sd?this.cb-this.A:void 0===this.ra.Sd?0:-1};
Sa(function(){for(var a=ob(window.document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gd(d);mb(d,c)}});
f);d=!0;break a}}break;case 1:if(this.za&2){this.za&=-3;80386<=this.na&&(this.Ma[6]|=16384);Of.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.S("interrupt dispatched");this.V=0;break}if(this.za&4){this.V=this.A=0;break}}if(b){if(Pf(this.ma,this.Na,c)){this.bc();break}c=1}this.V=0;this.W[this.ca()].call(this)}while(0<this.A);return this.ra.Sd?this.cb-this.A:void 0===this.ra.Sd?0:-1};Sa(function(){for(var a=ob(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gd(d);mb(d,c)}});
function Qf(a){Xa.call(this,"FPU",a,Qf);this.na=a.model||8087;(a=a.stepping)&&ca(a,16);this.ja=new Float64Array(8);this.da=new Int32Array(this.ja.buffer);this.wa=new Float32Array(1);this.Ba=new Int32Array(this.wa.buffer);this.X=new Float64Array(1);this.ia=new Int32Array(this.X.buffer);this.O=Array(3);this.ka=this.la=-1;this.Y=this.W=this.qa=this.A=0;this.ta=new Float64Array(1);this.za=new Int32Array(this.ta.buffer);this.za[0]=0;this.za[1]=268402688;Rf(this)}gb(Qf);h=Qf.prototype;
h.Jc=function(a,b,c){this.M=c;this.R=Hb(a,"ChipSet");vb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)Rf(this);else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.save=function(){var a=new bf(this),b=[],c=0;b[c++]=this.mc;b[c++]=Sf(this);b[c++]=Tf(this);for(var d=0;d<this.ja.length;d++)b[c++]=this.ja[d];cf(a,0,b);return a.data()};
h.restore=function(a){a=a[0];var b=0;this.mc=a[b++]&-57409;var c=a[b++];this.sa=c&-14337;this.C=(c&14336)>>11;Uf(this);Vf(this,a[b++]);for(c=0;c<this.ja.length;c++)this.ja[c]=a[b++];return!0};function Rf(a){a.P=0;a.mc=959;a.sa=0;a.C=0;a.R&&(a=a.R,a.na>=Wf&&Xf(a,13))}function Uf(a){a.sa&=-129;a.sa&~a.mc&63&&(a.sa|=128);if(a.sa&128&&!(a.mc&128))return a=a.R,a.na>=Wf?Yf(a,13):a.Ma&0||Of.call(a.M,2),!0;a=a.R;a.na>=Wf&&Xf(a,13);return!1}function Zf(a,b){80387<=a.na||(b&=-65);a.sa|=b;return Uf(a)}
@ -162,9 +161,9 @@ og(this),T(this,0)))},48:function(){W(this,this.A,ag(this,T(this,this.A),T(this,
this.nk()},3:function(){ig(this)&&(this.nk(),Dg(this))},4:Wg,6:Xg,7:bh,48:Sg,49:eh,50:function(){W(this,this.A,T(this,0))},51:Zg},222:{0:function(){W(this,0,ag(this,T(this,0),lg(this)))},1:function(){W(this,0,cg(this,T(this,0),lg(this)))},2:function(){eg(this,T(this,0),lg(this))},3:function(){eg(this,T(this,0),lg(this))&&Dg(this)},4:function(){W(this,0,bg(this,T(this,0),lg(this)))},5:function(){W(this,0,bg(this,lg(this),T(this,0)))},6:function(){W(this,0,dg(this,T(this,0),lg(this)))},7:function(){W(this,
0,dg(this,lg(this),T(this,0)))},48:function(){W(this,this.A,ag(this,T(this,this.A),T(this,0)))&&Dg(this)},49:function(){W(this,this.A,cg(this,T(this,this.A),T(this,0)))&&Dg(this)},50:Qg,51:function(){eg(this,T(this,0),T(this,1))&&null!=Dg(this)&&Dg(this)},52:function(){W(this,this.A,bg(this,T(this,0),T(this,this.A)))&&Dg(this)},53:function(){W(this,this.A,bg(this,T(this,this.A),T(this,0)))&&Dg(this)},54:function(){W(this,this.A,dg(this,T(this,0),T(this,this.A)))&&Dg(this)},55:function(){W(this,this.A,
dg(this,T(this,this.A),T(this,0)))&&Dg(this)}},223:{0:function(){Eg(this,lg(this))},2:function(){null!=fg(this,T(this,0),32768)&&this.M.pb(this.M.Z,this.ia[0])},3:function(){null!=fg(this,T(this,0),32768)&&(this.M.pb(this.M.Z,this.ia[0]),Dg(this))},4:function(){var a=pg(this),b=Bg(a[0],8)+1E8*Bg(a[1],8)+1E16*Bg(a[2],2);a[2]&32768&&(b=-b);Eg(this,b)},5:function(){var a;a=this.M.ua(this.M.Z);a=4294967296*this.M.ua(this.M.Z+4)+(a>>>0);Eg(this,a)},6:function(){var a=fg(this,Dg(this));null!=a&&(this.O[0]=
Cg(a,8),this.O[1]=Cg(a/1E8,8),this.O[2]=Cg(a/1E16,2),0>a&&(this.O[2]|=32768),zg(this))},7:function(){null!=fg(this,T(this,0),Mg)&&(this.mk(),Dg(this))},48:function(){Sg.call(this);Dg(this)},49:eh,50:$g,51:$g,52:ch}},gh=[Ng,Tg,Ug,Vg,Wg,Xg,ah,Yg,bh,ch];Sa(function(){for(var a=ob(window.document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Qf(d);mb(d,c)}});
function hh(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}function ih(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function jh(a,b){var c=a+b|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function kh(a,b){var c=a+b|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function lh(a,b){var c=a&b;rf(this,c,128);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c}function mh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return rf(this,a&b,this.Ja)&this.B}function nh(a,b){this.A-=10+(-1===this.Z?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Bf(this),a;zf(this);return a}
Cg(a,8),this.O[1]=Cg(a/1E8,8),this.O[2]=Cg(a/1E16,2),0>a&&(this.O[2]|=32768),zg(this))},7:function(){null!=fg(this,T(this,0),Mg)&&(this.mk(),Dg(this))},48:function(){Sg.call(this);Dg(this)},49:eh,50:$g,51:$g,52:ch}},gh=[Ng,Tg,Ug,Vg,Wg,Xg,ah,Yg,bh,ch];Sa(function(){for(var a=ob(document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Qf(d);mb(d,c)}});function hh(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function ih(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function jh(a,b){var c=a+b|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}function kh(a,b){var c=a+b|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}
function lh(a,b){var c=a&b;rf(this,c,128);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c}function mh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return rf(this,a&b,this.Ja)&this.B}function nh(a,b){this.A-=10+(-1===this.Z?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Bf(this),a;zf(this);return a}
function oh(a){if(-1===this.Z)return p.call(this,6),a;var b=a,c=this.vb(this.Z),d=this.vb(this.Z+this.fa);2==this.fa&&(b=a<<16>>16,c=c<<16>>16,d=d<<16>>16);this.A-=this.C.cj;(b<c||b>d)&&p.call(this,5);this.V|=2;return a}function ph(a,b){var c=0;if(b){zf(this);for(var d=1;d&this.B;){if(b&d){a=c;break}d<<=1;c++}}else Bf(this);this.A-=11+3*c;return a}function qh(a,b){var c=0;if(b){zf(this);for(var d=2==this.fa?15:31,e=1<<d;e;){if(b&e){a=d;break}e>>>=1;c++;d--}}else Bf(this);this.A-=11+3*c;return a}
function rh(a,b){a&1<<(b&(2==this.fa?15:31))?sf(this):tf(this);this.A-=-1===this.Z?3:6;this.V|=2;return a}function sh(a,b){var c=1<<(b&(2==this.fa?15:31));a&c?sf(this):tf(this);this.A-=-1===this.Z?6:8;return a^c}function th(a,b){var c=1<<(b&(2==this.fa?15:31));a&c?sf(this):tf(this);this.A-=-1===this.Z?6:8;return a&~c}function uh(a,b){var c=1<<(b&(2==this.fa?15:31));a&c?sf(this):tf(this);this.A-=-1===this.Z?6:8;return a|c}
function vh(a,b){if(-1===this.Z)return rh.call(this,a,b);var c=this.fa<<3;if(b>=c||b<-c)a=Gf(this,this.pd,this.rb+(b>>(2==this.fa?4:5))*this.fa);b=1<<(b&(2==this.fa?15:31));a&b?sf(this):tf(this);this.A-=6;this.V|=2;return a}function wh(a,b){if(-1===this.Z)return sh.call(this,a,b);var c=this.fa<<3;if(b>=c||b<-c)a=Gf(this,this.pd,this.rb+(b>>(2==this.fa?4:5))*this.fa);b=1<<(b&(2==this.fa?15:31));a&b?sf(this):tf(this);this.A-=8;return a^b}
@ -855,18 +854,18 @@ b){return fl(this,1,a,b)},66:function(a,b){return fl(this,2,a,b)},67:Xj.prototyp
32:function(a,b,c){bl(this,0,b,c)},33:function(a,b,c){el(this,0,b,c)},64:function(a,b,c){hl(this,0,a,b,c)},65:function(a,b,c){hl(this,1,a,b,c)},66:function(a,b,c){hl(this,2,a,b,c)},67:Xj.prototype.gn,129:function(a,b,c){Vk(this,0,2,a,b,c)},130:function(a,b,c){Vk(this,0,3,a,b,c)},131:function(a,b,c){Vk(this,0,1,a,b,c)},135:function(a,b,c){Vk(this,0,0,a,b,c)}},lk={96:Xj.prototype.hn,97:Xj.prototype.jn,98:Xj.prototype.kn,99:Xj.prototype.mn,160:Xj.prototype.fn},nk={96:Xj.prototype.tm,97:Xj.prototype.um,
100:Xj.prototype.sm,112:Xj.prototype.Im,113:Xj.prototype.Jm,128:function(a,b,c){Xk(this,7,a,b,c)},132:function(a,b,c){Xk(this,0,a,b,c)},133:function(a,b,c){Xk(this,1,a,b,c)},134:function(a,b,c){Xk(this,2,a,b,c)},136:function(a,b,c){Xk(this,3,a,b,c)},137:function(a,b,c){Vk(this,1,2,a,b,c)},138:function(a,b,c){Vk(this,1,3,a,b,c)},139:function(a,b,c){Vk(this,1,1,a,b,c)},140:function(a,b,c){Xk(this,4,a,b,c)},141:function(a,b,c){Xk(this,5,a,b,c)},142:function(a,b,c){Xk(this,6,a,b,c)},143:function(a,b,
c){Vk(this,1,0,a,b,c)},160:function(a,b,c){bl(this,1,b,c)},161:function(a,b,c){el(this,1,b,c)},192:function(a,b,c){Lk(this,1,0,a,b,c)},194:function(a,b,c){Nk(this,1,0,a,b,c)},196:function(a,b,c){Lk(this,1,1,a,b,c)},198:function(a,b,c){Nk(this,1,1,a,b,c)},200:function(a,b,c){Lk(this,1,2,a,b,c)},202:function(a,b,c){Nk(this,1,2,a,b,c)},204:function(a,b,c){Lk(this,1,3,a,b,c)},206:function(a,b,c){Nk(this,1,3,a,b,c)},208:function(a,b,c){n(this,768)&&m(this,a,b,c,"DMA1.CMD",null,!0);this.R[1].Zg=b},210:function(a,
b,c){Pk(this,1,a,b,c)},212:function(a,b,c){Qk(this,1,a,b,c)},214:function(a,b,c){Sk(this,1,a,b,c)},216:function(a,b,c){n(this,768)&&m(this,a,b,c,"DMA1.RESET_FF",null,!0);this.R[1].Pb=0},218:function(a,b,c){Tk(this,1,a,b,c)},240:Xj.prototype.Tm,241:Xj.prototype.Um};Sa(function(){for(var a=ob(window.document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Xj(d);mb(d,c);sk(d)}});
b,c){Pk(this,1,a,b,c)},212:function(a,b,c){Qk(this,1,a,b,c)},214:function(a,b,c){Sk(this,1,a,b,c)},216:function(a,b,c){n(this,768)&&m(this,a,b,c,"DMA1.RESET_FF",null,!0);this.R[1].Pb=0},218:function(a,b,c){Tk(this,1,a,b,c)},240:Xj.prototype.Tm,241:Xj.prototype.Um};Sa(function(){for(var a=ob(document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Xj(d);mb(d,c);sk(d)}});
function tl(a){Xa.call(this,"ROM",a,tl);this.A=null;this.ia=a.addr;this.R=a.size;this.P=a.alias;this.O=a.file;this.X=ja(this.O);this.C=a.notify;this.Y=null;if(this.C&&(a=this.C.indexOf("["),0<a)){try{this.Y=eval(this.C.substr(a))}catch(c){}this.C=this.C.substr(0,a)}if(this.O){a=this.O;var b=ka(this.X);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.O+"&format=bytes&decimal=true");za(a,!0,null,this,this.W)}}gb(tl);tl.prototype.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;ul(this)};
tl.prototype.lc=function(){this.Nd&&(this.ma&&vl(this.ma,this.id,0,this.ia>>>4,0,this.ia,this.R,this.Nd),delete this.Nd);return!0};tl.prototype.kc=function(){return!0};
tl.prototype.W=function(a,b,c){if(c)this.Va("Unable to load system ROM (error "+c+": "+a+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,f=d.data;if(e)this.A=e;else if(f)for(this.A=Array(4*f.length),c=b=0;b<f.length;b++)this.A[c++]=f[b]&255,this.A[c++]=f[b]>>8&255,this.A[c++]=f[b]>>16&255,this.A[c++]=f[b]>>24&255;else this.A=d;this.Nd=d.symbols;if(!this.A.length){Ba("Empty ROM: "+a);return}if(1==this.A.length){Ba(this.A[0]);return}}catch(g){this.Va("ROM data error: "+
g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.A=Array(a.length),d=0;d<a.length;d++)this.A[d]=ca(a[d],16);ul(this)}};
function ul(a){if(!wb(a))if(!a.O)vb(a);else if(a.A&&a.ja){if(a.A.length!=a.R)xb(a,"ROM size (0x"+l(a.A.length)+") does not match specified size ("+("0x"+l(a.R))+")");else{var b;b=a.ia;if(Xb(a.ja,b,a.R,dc)){for(var c=0;c<a.A.length;c++){var d=a.ja,e=b+c;d.xa[(e&d.Lb)>>>d.Pa].tf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.P?b.push(a.P):null!=a.P&&a.P.length&&(b=a.P);for(c=0;c<b.length;c++){var d=a,e=b[c],f=ac(d.ja,d.ia,d.R);$b(d.ja,e,d.R,f)}a.C&&((b=ib(a.C,a.id))?(c=a.A,d=a.Y,5==
b.nb?wl(b,c,d||[12640,8752],8):b.nb==xl&&wl(b,c,d||[14221,16269],8),vb(b)):a.Va("Unable to find component: "+a.C));delete a.A}}vb(a)}}Sa(function(){for(var a=ob(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new tl(d);mb(d,c)}});function yl(a){Xa.call(this,"RAM",a,yl);this.C=a.addr;this.A=a.size;this.ia=a.test;this.O=!!this.A;this.P=!1}gb(yl);h=yl.prototype;h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");vb(this)};
b.nb?wl(b,c,d||[12640,8752],8):b.nb==xl&&wl(b,c,d||[14221,16269],8),vb(b)):a.Va("Unable to find component: "+a.C));delete a.A}}vb(a)}}Sa(function(){for(var a=ob(document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new tl(d);mb(d,c)}});function yl(a){Xa.call(this,"RAM",a,yl);this.C=a.addr;this.A=a.size;this.ia=a.test;this.O=!!this.A;this.P=!1}gb(yl);h=yl.prototype;h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");vb(this)};
h.lc=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};h.kc=function(a){return a&&this.controller?this.save():!0};
h.reset=function(){if(!this.C&&!this.O&&this.R){var a=1024*wk(this.R);this.A&&a!=this.A&&(cc(this.ja,this.C,this.A),this.P=!1);this.A=a}!this.P&&this.A&&Xb(this.ja,this.C,this.A,1)&&(this.P=!0,this.status(Math.floor(this.A/1024)+"Kb allocated"),"ramCPQ"==this.ce&&(this.controller=new zl(this),Xb(this.ja,Al,4,4,this.controller)));if(this.P){if(this.ia||jc(this.ja,1138,4660),"ramCPQ"!=this.ce&&this.R&&(a=this.R,a.A)){var b=1048576>this.C?21:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+
1]=c>>8;Ak(a)}}else Ba("No RAM allocated")};h.save=function(){var a=new bf(this);this.controller&&cf(a,0,this.controller.save());return a.data()};h.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function zl(a){this.P=a;this.ma=Bl;this.R=Cl;this.C=Dl;this.A=null}var Al=-2134900736,Bl=65535,Cl=2575,Dl=2,El=[null,0],Fl=[function(a){return this.controller.Wa(a)},null,null,function(a,b){this.controller.tc(a,b)},null,null];h=zl.prototype;h.save=function(){return[this.ma,this.C]};
h.restore=function(a){this.tc(0,a[0]&255);this.tc(2,a[1]&255);return!0};h.Wa=function(a){var b=255;2>a?b=a&1?this.R>>8:this.R&255:4>a&&(b=a&1?this.C>>8:this.C&255);return b};h.tc=function(a,b){if(a)2==a&&(this.C=this.C&-256|b);else if(b!=(this.ma&255)){var c=this.P.ja;if(b&1)this.A&&($b(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=ac(c,917504,131072));var d=ac(c,16646144,131072);$b(c,917504,131072,d,b&2?1:dc)}this.ma=this.ma&-256|b}};h.Si=function(){return El};h.jh=function(){return Fl};
Sa(function(){for(var a=ob(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new yl(d);mb(d,c)}});function Gl(a){Xa.call(this,"Keyboard",a,Gl,65536);Hl(this,a.model);this.ka=Ia("Mobi");this.qa=Ia("MSIE");qb(this,"mobile keyboard support: "+(this.ka?"true":"false"));this.da=0;this.la=this.fh=!1;this.C=[];this.wa=50;vb(this)}gb(Gl);
Sa(function(){for(var a=ob(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new yl(d);mb(d,c)}});function Gl(a){Xa.call(this,"Keyboard",a,Gl,65536);Hl(this,a.model);this.ka=Ia("Mobi");this.qa=Ia("MSIE");qb(this,"mobile keyboard support: "+(this.ka?"true":"false"));this.da=0;this.la=this.fh=!1;this.C=[];this.wa=50;vb(this)}gb(Gl);
var Il=["US83","US84","US101"],X={Bn:1,Cn:3,Dn:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,xn:65,yn:66,zn:67,En:68,E:69,Fn:70,In:71,Jn:72,Kn:73,Ln:74,Mn:75,Nn:76,On:77,Pn:78,Qn:79,Rn:80,Q:81,Sn:82,Wn:83,ao:84,fo:85,ho:86,io:87,ko:88,lo:89,mo:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,no:97,oo:98,qo:99,d:100,e:101,ro:102,so:103,to:104,
uo:105,vo:106,k:107,wo:108,xo:109,n:110,zo:111,p:112,q:113,r:114,Ao:115,t:116,Co:117,Do:118,Eo:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Jl={};Jl[186]=X[";"];Jl[187]=X["="];Jl[188]=X[","];Jl[189]=X["-"];Jl[190]=X["."];Jl[191]=X["/"];Jl[192]=X["`"];Jl[219]=X["["];Jl[220]=X["\\"];Jl[221]=X["]"];Jl[222]=X["'"];Jl[173]=X["-"];var Kl={};Kl[X["1"]]=X["!"];Kl[X["2"]]=X["@"];Kl[X["3"]]=X["#"];Kl[X["4"]]=X.$;Kl[X["5"]]=X["%"];Kl[X["6"]]=X["^"];Kl[X["7"]]=X["&"];Kl[X["8"]]=X["*"];Kl[X["9"]]=X["("];
Kl[X["0"]]=X[")"];Kl[186]=X[":"];Kl[187]=X["+"];Kl[188]=X["<"];Kl[189]=X._;Kl[190]=X[">"];Kl[191]=X["?"];Kl[192]=X["~"];Kl[219]=X["{"];Kl[220]=X["|"];Kl[221]=X["}"];Kl[222]=X['"'];Kl[173]=X._;Kl[61]=X["+"];Kl[59]=X[":"];
@ -888,7 +887,7 @@ function Sl(a,b,c){if(!Z[b]||!(c||a.M&&a.M.ra.Ob))return!1;for(var d=!1,e=0;e<a.
function Yl(a,b,c){var d=b;if(65<=b&&90>=b)!(a.xc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.xc&515)==c&&(d=b-32);else if(!!(a.xc&3)==c){if(a=Kl[b])d=a}else if(a=Jl[b])d=a;return d}h.Gg=function(a){a||(this.xc&=-256)};
function Pl(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,k=Yl(a,g,!0);a.fh&&k==X["`"]&&(g=k=27);if(Z[g+1E3])if(k+=1E3,2==b.location&&(k+=2E3),Rl(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.Bf=!1;0<r.Kd&&(r.Kd=0)}}else 8==g&&8==(a.xc&40)&&(k=4008),d=!1;else if(Z[k]&&a.xc&60&&(d=!1),d&&c||a.xc&192)f=!0;d||b.preventDefault();f||a.ka&&d||(c?Ql(a,k,e):Sl(a,k)||(b=Yl(a,g,!1),b!=k&&Sl(a,b)));return d}
function Xl(a,b,c){var d=!1;Rl(a,b,!0,c);var e=Z[b]||Z[b+1E3];if(void 0!==e){14==e&&40==(a.xc&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)&&qb(e,"scan code "+ga(f)+" buffered"),e.A.push(f),
1==e.A.length&&e.R&&rl(e.R,f)):(20==e.A.length&&e.A.push(255),qb(e,"scan code buffer overflow")));d=!0}return d}Sa(function(){for(var a=ob(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gl(d);mb(d,c)}});
1==e.A.length&&e.R&&rl(e.R,f)):(20==e.A.length&&e.A.push(255),qb(e,"scan code buffer overflow")));d=!0}return d}Sa(function(){for(var a=ob(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gl(d);mb(d,c)}});
function Zl(a,b,c,d,e){Xa.call(this,"Video",a,Zl,262144);this.na=a.model;this.nb=$l[this.na]||am;this.Ed=a.memory||0;this.Yf=a.switches;this.Da=a.mode;if(void 0===this.Da||void 0===bm[this.Da])this.Da=cm;this.jd=a.charCols;this.je=a.charRows;if(void 0===this.jd||void 0===this.je)this.jd=bm[this.Da][0],this.je=bm[this.Da][1];this.Ba=a.screenWidth;this.Ma=a.screenHeight;this.Rg=a.scale;this.Qg=12<=Math.round(this.Ba/this.jd);this.wa=b;this.qa=c;this.ia=(this.Bk=d)||b||null;this.dg=a.touchScreen;this.ke=
dm;this.Y=null;this.Pg=a.autoLock;this.sb=this.gc=0;this.Ua=[];this.Ja=Array(this.nb==xl?256:16);this.xb=!1;var f=this;this.nf=Ia("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(){em(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
document.msFullscreenElement?!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){em(f,null)},!1);break}}this.ia&&(this.ia.onfocus=function(){return f.Gg(!0)},this.ia.onblur=function(){return f.Gg(!1)},this.ia.ze=this.ia.requestPointerLock||this.ia.mozRequestPointerLock||this.ia.webkitRequestPointerLock,this.ia.rk=this.ia.exitPointerLock||this.ia.mozExitPointerLock||this.ia.webkitExitPointerLock,this.ia.ze&&(e=function(){f.Sf(document.pointerLockElement===
@ -933,7 +932,7 @@ h.Gk=function(a,b,c){if(c)this.Va("Unable to load font ROM (error "+c+": "+a+")"
function Sm(a,b){if(1==b)return a.Ja[0]=jm[0],a.Ja[1]=jm[7],a.Ja;if(2==b){var c=a.C.pf;if(a.C===a.A){var d=a.A.Uc[0],c=d&7;d&16&&(c|=8);18!=a.A.Uc[1]&&(c|=32)}a.Ja[0]=jm[c&15];c=c&32?lm:km;for(d=0;d<c.length;d++)a.Ja[d+1]=jm[c[d]];return a.Ja}if(a.da===a.Xc)return jm;a.xb&&b&&!a.Ja[16]&&(a.xb=!1);if(!a.xb){var c=a.A,d=c.qf,e,f,g,k,q;if(8==b)for(f=0;256>f;f++)g=d[f]||0,k=g<<2&252,q=g>>4&252,g=g>>10&252,a.Ja[f]=[k,q,g,255];else{var r=d&&d[255];e=null!=c.Uc[15]?c.Uc:mm;for(f=0;16>f;f++)g=e[f]&63,r?(g|=
(c.Uc[20]&12)<<4,c.Uc[16]&128&&(g&=-49,g|=(c.Uc[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 wl(a,b,c,d){a.Lc=b;a.sd=c;a.rb=d}
function Om(a,b){var c=!1;if(window&&a.Lc&&(!b||a.W)){var d=0,e=a.rb?a.rb:8,f=Sm(a);Tm(a,3,a.sd[0],d,e,8,a.Lc,f)&&(c=!0);d=a.rb?0:2048;e=a.rb?a.rb:9;Tm(a,1,a.sd[1],d,e,14,a.Lc,hm,im)&&(c=!0);a.rb&&Tm(a,a.nb,a.sd[1],0,a.rb,14,a.Lc,f)&&(c=!0)}return c}function Tm(a,b,c,d,e,f,g,k,q){var r=!1;null!=c&&(Um(a,b,c,d,e,f,g,k,q)&&(r=!0),a.Qg&&Um(a,b<<1,c,d,e,f,g,k,q)&&(r=!0));return r}
function Um(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={Rc:e<<x,Sc:f<<x,Me:Array(y),vi:k.slice(0,y),wf:q,Ug:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Me[q]?B.vi[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,ha=f,da=g,eb=[0,0,0,0],ua=window.document.createElement("canvas");ua.width=r.Rc<<4;ua.height=r.Sc<<4;for(var pa=ua.getContext("2d"),Oa=void 0,$a=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=pa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
function Um(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={Rc:e<<x,Sc:f<<x,Me:Array(y),vi:k.slice(0,y),wf:q,Ug:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Me[q]?B.vi[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,ha=f,da=g,eb=[0,0,0,0],ua=document.createElement("canvas");ua.width=r.Rc<<4;ua.height=r.Sc<<4;for(var pa=ua.getContext("2d"),Oa=void 0,$a=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=pa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
0;Ja<ha;Ja++)for(var Ud=r.wf&&U&1&&Ja>=ha-2,Tc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for($a=0;$a<Y;$a++){var Fe=$a<<F,Wd=(Ja<<F)+Vd,Ge=Ud||Tc&128>>(8<=$a&&192<=Oa&&223>=Oa?7:$a)?J:eb;Vm(Da,Fe,Wd,Ge);F&&Vm(Da,Fe+1,Wd,Ge)}pa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Me[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.vi[U]=J;r.Ug[U]=ua;r=!0}}a.Ua[b]=B;return r}function Wm(a){0<a.cb||0<=a.ta?0>a.Yb&&(a.Yb=0):a.Yb=-1}
function Rm(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)Xm(a);else{c=a.C.zb[15]+((a.C.zb[14]&63)<<8);a.ta!=c&&(Xm(a),a.ta=c);d=d-b+1;if(a.fg!=b||a.ye!=d)a.fg=b,a.ye=d;a.ib=e+1;Wm(a)}}}
function Xm(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&&Ym(a,c,d,b,a.qb),Ym(a,c,d,b));a.ka[a.ta]=b}}a.ta=-1}}
@ -942,8 +941,8 @@ function $m(a,b){var c=a.C;return c&&null!=b&&b!=c.vg?(c.Ng(b),a.ja.Ng(c.sb,c.gc
function Qm(a,b){var c,d=a.Qa,e=a.C;if(e)if(e.nb==am)d=cm;else if(5<=e.nb){var d=null,f=e.Ed>>2,g=32768<f?32768:f,k=e.Zd[6];if(null!=k){switch(k&12){case 0:e.sb=655360;e.gc=f;d=255;break;case 4:e.sb=655360;e.gc=f;d=3==a.Ha?15:16;break;case 8:e.sb=720896;e.gc=g;d=cm;break;case 12:e.sb=753664,e.gc=g,d=3==a.Ha?2:3}var q=80==(e.Zd[5]&80);!q||e.sb==a.sb&&e.gc==a.gc||(b=!0);c=e.He[1]&8;f=e.zb[6];f|=e.zb[7]&1?256:0;e.nb==xl&&(f|=e.zb[7]&32?512:0);g=e.zb[9];255!=d&&(k&1?655360!=e.sb&&!q&&350>f?d=c?7-d:6:
e.Zd[5]&64?d=g&31?143>=e.zb[18]?19:20:21:g&128||350>f?d=c?13:14:480<=f&&(d=3==a.Ha?17:18):d-=c?2:0);c=Zm(a)}}else e.fd&8&&(e.fd&2?(d=e.fd&16?6:5,e.fd&4||--d):(d=e.fd&1?3:1,e.fd&4&&--d));else a.Qa=null,null==d&&(d=a.Da);if(!Pm(a,d,b))return!1;$m(a,c);return!0}
function Pm(a,b,c){if(null!=b&&(b!=a.Qa||c)){a.Og=0;a.Qa=b;a.xb=!1;b=a.C||(b==cm?a.za:a.da);if(b!=a.C||b.sb!=a.sb||b.gc!=a.gc){Xm(a);if(a.sb){if(!cc(a.ja,a.sb,a.gc))return!1;a.C&&(a.C.Ic=!1)}a.C=b;b.Ic=!0;a.sb=b.sb;a.gc=b.gc;if(!Xb(a.ja,b.sb,b.gc,3,b===a.A?b:null))return!1}a.W=0;a.O=a.jd;a.X=a.je;a.Ib=a.O;a.hd=bm[cm][2];b=0;if(c=bm[a.Qa])a.O=c[0],a.X=c[1],a.hd=c[2],b=c[3],a.W=c[4],4!=a.Ha&&7!=a.Ha||a.C!==a.A||3!=a.W||(7==a.A.zb[9]?a.X=43:a.W=a.nb);a.Xf=a.O*a.X|0;a.of=a.Xf/a.hd|0;a.Vb=a.of;a.ud=0;
void 0!==b&&(a.Vb=(a.Vb<<1)+b|0,a.ud=a.Vb+b>>1);a.Ua.length&&(a.Ra=a.Ba/a.O|0,a.Ta=a.Ma/a.X|0,a.W?(b=a.Ua[a.W],c=a.Ua[a.W<<1],a.Rg&&80==a.O?c&&a.Ra>=3*c.Rc>>2&&(a.W<<=1,b=c):(c&&a.Ra>=c.Rc&&(a.W<<=1,b=c),b&&(a.Ra=b.Rc,a.Ta=b.Sc)),a.Zb=a.cc=0,b&&(a.Zb=a.O*b.Rc,a.cc=a.X*b.Sc)):(a.Ra=a.Ta=1,a.Zb=a.O,a.cc=a.X),a.Hb=a.qa.createImageData(a.Zb,a.cc),a.lb=window.document.createElement("canvas"),a.lb.width=a.Zb,a.lb.height=a.cc,a.qb=a.lb.getContext("2d"),a.le=a.me=0,a.vd=a.Ba,a.Gd=a.Ma,b=a.Ba-a.O*a.Ra,c=a.Ma-
a.X*a.Ta,0<b&&(a.le=b>>1,a.vd-=b),0<c&&(a.me=c>>1,a.Gd-=c),b||c)&&(a.qa.fillStyle=a.wa.style.backgroundColor,a.qa.fillRect(0,0,a.Ba,a.Ma));wn(a,!0);ad(a)}return!0}function Vm(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function xn(a){a.cb=-1;a.Oa=!1;var b=a.of;if(void 0===a.ka||a.ka.length!=b)a.ka=Array(b)}function wn(a,b){b||(a.xb=!1);xn(a)}
void 0!==b&&(a.Vb=(a.Vb<<1)+b|0,a.ud=a.Vb+b>>1);a.Ua.length&&(a.Ra=a.Ba/a.O|0,a.Ta=a.Ma/a.X|0,a.W?(b=a.Ua[a.W],c=a.Ua[a.W<<1],a.Rg&&80==a.O?c&&a.Ra>=3*c.Rc>>2&&(a.W<<=1,b=c):(c&&a.Ra>=c.Rc&&(a.W<<=1,b=c),b&&(a.Ra=b.Rc,a.Ta=b.Sc)),a.Zb=a.cc=0,b&&(a.Zb=a.O*b.Rc,a.cc=a.X*b.Sc)):(a.Ra=a.Ta=1,a.Zb=a.O,a.cc=a.X),a.Hb=a.qa.createImageData(a.Zb,a.cc),a.lb=document.createElement("canvas"),a.lb.width=a.Zb,a.lb.height=a.cc,a.qb=a.lb.getContext("2d"),a.le=a.me=0,a.vd=a.Ba,a.Gd=a.Ma,b=a.Ba-a.O*a.Ra,c=a.Ma-a.X*
a.Ta,0<b&&(a.le=b>>1,a.vd-=b),0<c&&(a.me=c>>1,a.Gd-=c),b||c)&&(a.qa.fillStyle=a.wa.style.backgroundColor,a.qa.fillRect(0,0,a.Ba,a.Ma));wn(a,!0);ad(a)}return!0}function Vm(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function xn(a){a.cb=-1;a.Oa=!1;var b=a.of;if(void 0===a.ka||a.ka.length!=b)a.ka=Array(b)}function wn(a,b){b||(a.xb=!1);xn(a)}
function Ym(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var k=a.Ua[a.W];k.wf&&(d=k.wf[d]);var q=g>>4&15;k.wf&&(q=k.wf[q]);e?(b*=k.Rc,c*=k.Sc,e.fillStyle=k.Me[q],e.fillRect(b,c,k.Rc,k.Sc)):(b=b*a.Ra+a.le,c=c*a.Ta+a.me,a.qa.fillStyle=k.Me[q],a.qa.fillRect(b,c,a.Ra,a.Ta));g&256&&(q=(f&15)*k.Rc,f=(f>>4)*k.Sc,e?e.drawImage(k.Ug[d],q,f,k.Rc,k.Sc,b,c,k.Rc,k.Sc):a.qa.drawImage(k.Ug[d],q,f,k.Rc,k.Sc,b,c,a.Ra,a.Ta));g&512&&(f=a.fg,g=a.ye,e?(a.ib&&a.ib!==k.Sc&&(f=f*k.Sc/a.ib|0,g=g*k.Sc/a.ib|0),e.fillStyle=k.Me[d],
e.fillRect(b,c+f,k.Rc,g)):(a.ib&&a.ib!==a.Ta&&(f=f*a.Ta/a.ib|0,g=g*a.Ta/a.ib|0),a.qa.fillStyle=k.Me[d],a.qa.fillRect(b,c+f,a.Ra,g)))}
function ad(a,b){if(a.ra.hc){var c=!1,d=a.C;d&&(d!==a.A?d.fd&8&&(c=!0):d.Ld&32&&(c=!0));if(c||b){if(b)xn(a);else if(void 0===a.ka)return;var e=!1;!(b||++a.Og&15)&&0<=a.Yb&&(a.Yb++,e=!0);var f=0,g=a.Xf,k=a.sb,c=k,q=c+a.gc;19<=a.Qa&&(k=c=655360,q=c+65536);if(yn(a,d)&8||d.mf&&d.mf<d.hi)d.Uf=(d.zb[12]<<8)+d.zb[13]|0,d.mf=0;var r=d.Uf;a.W&&(r<<=1);c+=r;r=a.Vb;5<=a.nb&&d.zb[19]&&d.zb[19]<<1!=d.zb[1]+1&&(a.Ib=d.zb[19]<<(a.W?1:d.zb[20]&64?3:4),r=(a.Ib*(a.X-1)+a.O)/a.hd|0,a.Qa<=cm&&(r<<=1));c+r>q&&(r=q-c,
@ -965,13 +964,13 @@ h.Em=function(a,b,c){c&&!n(this)||m(this,a,b,c,this.da.type+".COLOR");this.da.pf
function Bn(a,b,c,d,e){if(b.Ac<b.qh){e&&!n(a)||m(a,c,d,e,"CRTC."+b.jg[b.Ac]);b.zb[b.Ac]=d;if(12==b.Ac||13==b.Ac)yn(a,b)&1?b.Uf=(b.zb[12]<<8)+b.zb[13]|0:b.mf||(b.mf=b.hi);(9==b.Ac&&8!=b.Jg||18==b.Ac&&223==d)&&Qm(a,!0);Rm(a)}}function Cn(a,b,c){var d=b.fd;m(a,b.port+4,null,c,"MODE",d);return d}function Dn(a,b,c){var d=yn(a,b);b===a.A?(d|=b.sa&48^48,b.Ve=!1):d=(b.sa^=9)|240;b.sa=d;m(a,b.port+6,null,c,b===a.A?"STATUS1":"STATUS",d);return d}
var Cm={948:Zl.prototype.Jl,949:Zl.prototype.Il,952:Zl.prototype.Kl,954:Zl.prototype.Ll},Dm={948:Zl.prototype.cn,949:Zl.prototype.bn,952:Zl.prototype.dn},Em={980:Zl.prototype.ol,981:Zl.prototype.nl,984:Zl.prototype.pl,985:Zl.prototype.ml,986:Zl.prototype.ql},Fm={980:Zl.prototype.Gm,981:Zl.prototype.Fm,984:Zl.prototype.Hm,985:Zl.prototype.Em},Gm={960:Zl.prototype.il,961:Zl.prototype.Hk,962:Zl.prototype.Wl,964:Zl.prototype.Ul,965:Zl.prototype.Tl,974:Zl.prototype.Cl,975:Zl.prototype.Bl},Hm={954:Zl.prototype.fk,
960:Zl.prototype.ek,961:Zl.prototype.ek,962:Zl.prototype.en,964:Zl.prototype.on,965:Zl.prototype.nn,970:Zl.prototype.Ym,972:Zl.prototype.Xm,974:Zl.prototype.Wm,975:Zl.prototype.Vm,986:Zl.prototype.fk},Im={963:Zl.prototype.Xl,966:Zl.prototype.vl,967:Zl.prototype.wl,969:Zl.prototype.ul,970:Zl.prototype.Yl,972:Zl.prototype.Zl},Jm={963:Zl.prototype.qn,966:Zl.prototype.Mm,967:Zl.prototype.Nm,968:Zl.prototype.Om,969:Zl.prototype.Lm};
Sa(function(){for(var a=ob(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");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Zl(d,e,g,f,c);mb(d,c)}});
Sa(function(){for(var a=ob(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=kb(c),e=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=document.createElement("textarea");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Zl(d,e,g,f,c);mb(d,c)}});
function En(a){this.Y=a.adapter;switch(this.Y){case 1:this.O=956;this.P=7;break;case 2:this.O=888;this.P=7;break;case 3:this.O=632;this.P=5;break;default:Ba("Unrecognized parallel adapter #"+this.Y);return}this.A=this.C=null;Xa.call(this,"ParallelPort",a,En,4194304);a=a.binding;"console"==a?this.C="":lb(this,a,Fn)}gb(En);var Fn="buffer";h=En.prototype;h.Ub=function(a,b,c){switch(b){case Fn:return this.ya[b]=this.A=c,!0}return!1};
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");lc(b,this,Gn,this.O);pc(b,this,Hn,this.O);vb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.reset=function(){In(this)};h.save=function(){var a=new bf(this),b=0,c=[];c[b++]=this.ia;c[b++]=this.ec;c[b]=this.yf;cf(a,0,c);return a.data()};h.restore=function(a){return In(this,a[0])};
function In(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.ia=b[c++];a.ec=b[c++];a.yf=b[c];return!0}h.xl=function(a,b){var c=this.ia;m(this,a,null,b,"DATA",c);return c};h.Vl=function(a,b){var c=this.ec;m(this,a,null,b,"STAT",c);return c};h.tl=function(a,b){var c=this.yf;m(this,a,null,b,"CTRL",c);return c};
h.Pm=function(a,b,c){m(this,a,b,c,"DATA");this.ia=b;this.ec|=64;if(this.A)8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0;else if(null!=this.C){if(10==b||1024<=this.C.length)this.S(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));a=!0}else a=!1;a&&(this.ec&=-65);Jn(this)};h.Km=function(a,b,c){m(this,a,b,c,"CTRL");this.yf=b;Jn(this)};function Jn(a){a.R&&a.P&&(a.yf&16&&!(a.ec&64)?Yf(a.R,a.P):Xf(a.R,a.P))}
var Gn={0:En.prototype.xl,1:En.prototype.Vl,2:En.prototype.tl},Hn={0:En.prototype.Pm,2:En.prototype.Km};Sa(function(){for(var a=ob(window.document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new En(d);mb(d,c)}});
var Gn={0:En.prototype.xl,1:En.prototype.Vl,2:En.prototype.tl},Hn={0:En.prototype.Pm,2:En.prototype.Km};Sa(function(){for(var a=ob(document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new En(d);mb(d,c)}});
function Kn(a){this.za=a.adapter;switch(this.za){case 1:this.ta=1016;this.ka=4;break;case 2:this.ta=760;this.ka=3;break;default:Ba("Unrecognized serial adapter #"+this.za);return}this.O=this.W=null;this.Ja=a.tabSize;this.Ha=a.charBOL;this.X=0;Xa.call(this,"SerialPort",a,Kn,8388608);a=a.binding;"console"==a?this.W="":lb(this,a,Ln)}gb(Kn);var Ln="buffer";h=Kn.prototype;h.zi=function(a,b){return a==this.ce?(this.Y=b,this):null};
h.Ub=function(a,b,c){var d=this;switch(b){case Ln:return this.ya[b]=this.O=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),Mn(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;Mn(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");lc(b,this,Nn,this.ta);pc(b,this,On,this.ta);vb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.reset=function(){Pn(this)};
@ -981,13 +980,13 @@ h.Fl=function(a,b){var c=this.C;m(this,a,null,b,"LCR",c);return c};h.Hl=function
h.pn=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.Da=b;this.A&=-97;if(this.O)13==b?this.X=0:8==b?(this.O.value=this.O.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.Ha&&!this.X&&c&&(a=String.fromCharCode(this.Ha)+a),this.O.value+=a,this.O.scrollTop=this.O.scrollHeight,this.X+=c),b=!0;else if(null!=this.W){if(10==b||1024<=this.W.length)this.S(this.W),this.W=
"";10!=b&&(this.W+=String.fromCharCode(b));b=!0}else b=!1;b&&(this.A|=96)}};h.Zm=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.$m=function(a,b,c){m(this,a,b,c,"LCR");this.C=b};
h.an=function(a,b,c){var d=this.P;m(this,a,b,c,"MCR");this.P=b;this.Y&&(d^b)&3&&(a=this.Y,b=this.P,(c=3==(b&3))?a.Ic||(d=!1,a.P&2||(a.reset(),qb(a,"serial mouse reset"),d=!0),a.P&1||(qb(a,"serial mouse ID requested"),d=!0),d&&(Mn(a.R,[77,77]),qb(a,"serial mouse ID sent")),Rn(a),a.Ic=c):a.Ic&&(qb(a,"serial mouse inactive"),Sn(a),a.Ic=c),a.P=b)};
var Nn={0:Kn.prototype.Sl,1:Kn.prototype.Dl,2:Kn.prototype.El,3:Kn.prototype.Fl,4:Kn.prototype.Hl,5:Kn.prototype.Gl,6:Kn.prototype.Ml},On={0:Kn.prototype.pn,1:Kn.prototype.Zm,3:Kn.prototype.$m,4:Kn.prototype.an};Sa(function(){for(var a=ob(window.document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Kn(d);mb(d,c)}});function Tn(a){Xa.call(this,"Mouse",a,Tn,16777216);if(this.ta=a.serial)this.wa="SerialPort";this.qa=this.la=this.Ic=!1;this.C=[];this.A=[];vb(this)}gb(Tn);var Mm=0;h=Tn.prototype;
var Nn={0:Kn.prototype.Sl,1:Kn.prototype.Dl,2:Kn.prototype.El,3:Kn.prototype.Fl,4:Kn.prototype.Hl,5:Kn.prototype.Gl,6:Kn.prototype.Ml},On={0:Kn.prototype.pn,1:Kn.prototype.Zm,3:Kn.prototype.$m,4:Kn.prototype.an};Sa(function(){for(var a=ob(document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Kn(d);mb(d,c)}});function Tn(a){Xa.call(this,"Mouse",a,Tn,16777216);if(this.ta=a.serial)this.wa="SerialPort";this.qa=this.la=this.Ic=!1;this.C=[];this.A=[];vb(this)}gb(Tn);var Mm=0;h=Tn.prototype;
h.Jc=function(a,b,c,d){this.ia=a;this.ja=b;this.M=c;this.ma=d;for(b=null;b=Hb(a,"Video",b);)this.C.push(b)};h.lc=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=Hb(this.ia,this.wa,c))&&(!c.zi||!(this.R=c.zi(this.ta,this))););if(this.R)for(this.A=[],c=0;c<this.C.length;c++){var d;d=this.C[c];d.Y=this;(d=d.ia)&&this.A.push(d)}else Ba(this.id+": "+this.wa+" "+this.ta+" unavailable")}this.Ic?Rn(this):Sn(this)}return!0};
h.kc=function(a){return a?this.save():!0};h.reset=function(){Un(this)};h.save=function(){var a=new bf(this),b=0,c=[];c[b++]=this.Ic;c[b++]=this.O;c[b++]=this.Y;c[b++]=this.W;c[b++]=this.X;c[b++]=this.da;c[b++]=this.ka;c[b]=this.P;cf(a,0,c);return a.data()};h.restore=function(a){return Un(this,a[0])};function Un(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.Ic=d;a.O=b[c++];a.Y=b[c++];a.W=b[c++];a.X=b[c++];a.da=b[c++];a.ka=b[c++];a.P=b[c];return!0}h.Sf=function(a){this.la=a};
function Rn(a){if(!a.qa)for(var b=0;b<a.A.length;b++)Vn(a,a.A[b])&&(a.qa=!0)}function Sn(a){if(a.qa)for(var b=0;b<a.A.length;b++){var c=a.A[b];c&&(c.style.cursor="auto")}}function Vn(a,b){return b?(b.addEventListener("mousemove",function(b){Wn(a,b)},!1),b.addEventListener("mousedown",function(b){Wn(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Wn(a,b,!1)},!1),b.style.cursor="none",!0):!1}
function Wn(a,b,c){if(void 0!==c){var d;!(d=!1!==a.la)&&(d=a.C.length)&&(d=a.C[0],d=d.Pg?d.ze(!0):!1);d||(a.la=null);a.he(b.button,c)}else{if(0>a.O||0>a.Y)a.O=b.clientX,a.Y=b.clientY;a.la?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.O,d=b.clientY-a.Y);a.O=b.clientX;a.Y=b.clientY;a.Ef(c,d,a.O,a.Y)}}
h.he=function(a,b){if(this.Ic&&this.M&&this.M.ra.Ob){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case Mm:this.da!=b&&(this.da=b,Xn(this,c));break;case 2:this.ka!=b&&(this.ka=b,Xn(this,c))}}};h.Ef=function(a,b,c,d){this.Ic&&this.M&&this.M.ra.Ob&&(a||b)&&(this.W=a,this.X=b,Xn(this,null,c,d))};
function Xn(a,b,c,d){var e=64|(a.da?32:0)|(a.ka?16:0)|(a.X&192)>>4|(a.W&192)>>6,f=a.W&63,g=a.X&63;n(a,8388608)&&qb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+ga(e)+","+ga(f)+","+ga(g)+"]",0,!0);Mn(a.R,[e,f,g]);a.W=a.X=0}Sa(function(){for(var a=ob(window.document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Tn(d);mb(d,c)}});
function Xn(a,b,c,d){var e=64|(a.da?32:0)|(a.ka?16:0)|(a.X&192)>>4|(a.W&192)>>6,f=a.W&63,g=a.X&63;n(a,8388608)&&qb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+ga(e)+","+ga(f)+","+ga(g)+"]",0,!0);Mn(a.R,[e,f,g]);a.W=a.X=0}Sa(function(){for(var a=ob(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Tn(d);mb(d,c)}});
function Yn(a,b,c){Xa.call(this,"Disk",{id:a.ti+".disk"+l(++Zn,4)},Yn,2097152);this.controller=a;this.ia=a.ia;this.ma=a.ma;this.C=b;this.O=b.name;this.$e=b.$e;this.qg=this.P=!1;$n(this,c,b.Nb,b.yb,b.ob,b.$a);this.W=[];this.ka=[];this.ja=null;this.qa=0;this.la=!1;vb(this)}var Zn=0;gb(Yn);function ao(a,b,c,d,e,f){this.Ga=a;this.nc=c;this.Yg=d;this.Di=e;this.te=f}var bo=[0,2],co=[24,2],eo=[60,4],fo=[0,2],go=[4,2],ho=[6,2],io=[28,2],jo=[32,2],ko=[34,2],lo=[38,2],mo=[44,4],no=[50,2];
function oo(a,b,c){var d;c=c||2;var e=b&511,f=po(a.Ga,a.te[b>>9]);if(f){if(e+c<=f.length)return qo(a.Ga,f,e,c);for(e=d=0;c--;)d|=oo(a,b++,1)<<e,e+=8}return d}function ro(a,b,c){return oo(a,b[0]+(c||0),b[1])}function so(a,b,c){for(var d=0;!c||b<c;){var e=oo(a,b,1);if(!e)break;var f;f=a;var g=b+1,k=e,q="";for(k||(k=-1);k--;){var r=oo(f,g++,1);if(!r)break;q+=String.fromCharCode(r)}f=q;if(!f)break;b+=1+e;if(d){if(e=oo(a,b),g=a.A[e])g=g[0],a.Ad[g]&&a.Ad[g].se[e].push(f)}else c||(a.cg=f);b+=2;d++}}
ao.prototype.Ti=function(a,b){var c=null;if(this.Ad)for(var d in this.Ad){var e=this.Ad[d];if(a>=e.ii&&a<=e.bk){d=a-=e.ii;var f,g;for(g in e.se){var k=e.se[g],q=a-k[0];if(!q){c=this.cg+"!"+k[1];break}b&&0<q&&q<d&&(f=k,d=q)}!c&&f&&(c=this.cg+"!"+f[1]+"+"+ia(d));break}}return c||this.nc+"+"+("0x"+l(a))};h=Yn.prototype;h.Jc=function(a,b,c,d){this.ma=d};h.lc=function(a,b){b||!this.qg||this.P||(vb(this,!1),this.load(this.O,this.Y,null,this.Uk,this));return!0};h.Uk=function(){vb(this,!0)};
@ -1022,7 +1021,7 @@ function Fo(a){Xa.call(this,"FDC",a,Fo,524288);this.dmaRead=this.zk;this.dmaWrit
h.Ub=function(a,b,c){var d=this;switch(b){case "listDisks":return this.ya[b]=c,c.onchange=function(){var a=d.ya.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){Ba("FDC option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.ya[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&Ho(d,a)},!0;
case "loadDrive":return this.ya[b]=c,c.onclick=function(){var a=d.ya.listDisks;a&&Io(d,a.options[a.selectedIndex].text,a.value)},!0;case "mountDrive":return this.qa?(this.ya[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Io(d,ja(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.ia=a;this.R=Hb(a,"ChipSet");if((this.W=Jo(this.ia,"autoMount")||this.W)&&"string"==typeof this.W)try{this.W=eval("("+this.W+")")}catch(e){Ba("FDC auto-mount error: "+e.message+" ("+this.W+")"),this.W=null}Ko(this);lc(b,this,Lo);pc(b,this,Mo);this.qa&&No(this,"Local Disk","?");No(this,"Remote Disk","??");Oo(this)||vb(this)};
h.lc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ia.gh){this.C=[];for(var c=0;c<this.A.length;c++)Po(this,c,!0);Oo(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ya.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.la;d++){var e=window.document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.la&&(c.value="0",Ho(this,0))}}return!0};h.kc=function(a){return a?this.save():!0};
h.lc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ia.gh){this.C=[];for(var c=0;c<this.A.length;c++)Po(this,c,!0);Oo(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ya.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.la;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.la&&(c.value="0",Ho(this,0))}}return!0};h.kc=function(a){return a?this.save():!0};
h.reset=function(){Ko(this)};
h.save=function(){var a=new bf(this),b=0,c=[];c[b++]=this.kb;c[b++]=0;c[b++]=this.sa;c[b++]=this.Y;c[b++]=this.O;c[b++]=this.P;c[b++]=this.da;for(var d=b++,e=0,f=[],g=0;g<this.A.length;g++){var k=e++,q=this.A[g],r=0,x=[];x[r++]=q.Gb;x[r++]=[q.name,q.Nb,q.yb,q.ob,q.$a,q.$e,q.yg,q.Kf,q.Lf];x[r++]=q.mb;x[r++]=q.ee+100;x[r++]=q.Wb;x[r++]=q.Cb;x[r++]=q.fe;x[r++]=q.Mb;x[r++]=q.jb;x[r++]=q.Ye;x[r++]=q.jk;x[r]=q.Je;f[k]=x}c[d]=f;d=b++;for(e=0;e<this.A.length;e++)f=this.A[e],f.Ga&&Qo(this,f.Je,f.Ga);c[d]=
this.C;c[b++]=this.X;c[b]=this.mc;cf(a,0,c);return a.data()};h.restore=function(a){return Ko(this,a[0])};
@ -1032,9 +1031,9 @@ x[B++];g.jb=x[B++];g.tb=null;g.Ga||(g.Je="");y=x[B++];102==y&&(y=!1);if("boolean
h.kk=function(a,b,c){if(a.Ga){var d=a.Ga.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Wb=Math.floor(b/f),b%=f,a.mb=Math.floor(b/e),a.Cb=b%e+1,a.Mb=c*d[3],a.Gb=0,!0}return!1};
function Oo(a,b){b||(a.ka=0);if(a.W)for(var c in a.W){var d=a.W[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ya.listDisks)&&f.options)for(var g=0;g<f.options.length;g++)if(f.options[g].value==e){f=f.options[g].innerText;break a}f=ja(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.A.length)){!Ro(a,g,f,e,!0)&&b&&vb(a,!1);continue}a.Va("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.ka}
function Io(a,b,c,d){var e,f=a.ya.listDrives;if(f&&!isNaN(e=ca(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Va('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ja(c);a.S("Attempting to load "+c+' as "'+b+'"')}for(a.S("loading disk "+c+"...");Ro(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,k=
void 0,k=0;k<f.C.length;k++)if(f.C[k][1]==g){f.C.splice(k,1);break}Po(a,e,!1,!0)}}else Po(a,e);else a.Va("Nothing to load")}function Ro(a,b,c,d,e,f){var g=a.A[b];if(d&&g.Je!=d){Po(a,b,e,!0);if(g.cd)return a.Va("Drive "+b+" busy"),!0;g.cd=!0;e&&(g.we=!0,a.ka++,n(a)&&qb(a,"loading diskette '"+c+"'"));g.Ye=!!f;(new Yn(a,g,"preload")).load(c,d,f,a.Ji);return!1}return!0}
void 0,k=0;k<f.C.length;k++)if(f.C[k][1]==g){f.C.splice(k,1);break}Po(a,e,!1,!0)}}else Po(a,e);else a.Va("Unable to load the selected drive")}function Ro(a,b,c,d,e,f){var g=a.A[b];if(d&&g.Je!=d){Po(a,b,e,!0);if(g.cd)return a.Va("Drive "+b+" busy"),!0;g.cd=!0;e&&(g.we=!0,a.ka++,n(a)&&qb(a,"loading diskette '"+c+"'"));g.Ye=!!f;(new Yn(a,g,"preload")).load(c,d,f,a.Ji);return!1}return!0}
h.Ji=function(a,b,c,d,e){var f;a.cd=!1;b&&(f=b.info(),b&&f[0]>a.Nb||f[1]>a.yb)&&(this.Va('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.kb)),b=null);b?(a.Ga=b,a.jk=c,a.Je=d,So(this,c,d,b),f=b.info(),this.X|=128,this.Va('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.kb),a.we||e),a.yg=f[0],a.Kf=f[1],a.Lf=f[2]):a.Ye=!1;a.we&&(a.we=!1,--this.ka||vb(this));Ho(this,a.kb)};
function No(a,b,c){if((a=a.ya.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=window.document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
function No(a,b,c){if((a=a.ya.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
function Ho(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.ya.listDisks,e=a.ya.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.Ye?"?":c.Je,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function Po(a,b,c,d){var e=a.A[b];e.Ga&&(Qo(a,e.Je,e.Ga),e.jk="",e.Je="",e.Ga=null,e.Ye=!1,a.X|=128,d||a.Va("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Ho(a,b))}
function So(a,b,c,d){var e;for(e=0;e<a.C.length;e++)if(a.C[e][1]==c){d.restore(a.C[e][2]);return}a.C[e]=[b,c,[]]}function Qo(a,b,c){var d;for(d=0;d<a.C.length;d++)if(a.C[d][1]==b){a.C[d][2]=c.save();break}}h.Sm=function(a,b,c){m(this,a,b,c,"OUTPUT");b&4?this.da&4||this.da&8&&this.R&&Yf(this.R,6):Ko(this);this.da=b};h.Al=function(a,b){m(this,a,null,b,"STATUS",this.sa);return this.sa};
h.yl=function(a,b){var c=0;this.O<this.P&&(c=this.Y[this.O]);this.da&8&&this.R&&Xf(this.R,6);n(this)&&m(this,a,null,b,"DATA["+this.O+"]",c);++this.O>=this.P&&(this.sa&=-81,this.O=this.P=0);return c};
@ -1045,7 +1044,7 @@ d.mb=c>>2&1,c=To(this),d.Wb+=c-d.ee,0>d.Wb&&(d.Wb=0),d.Wb>=d.Nb&&(d.Wb=d.Nb-1),d
function Wo(a,b,c,d,e,f,g,k){Uo(a);Vo(a,b.kb|b.mb<<2|b.Gb&255);Vo(a,(b.Gb&65280)>>>8);Vo(a,(b.Gb&16711680)>>>16);var q=0;if(e!=b.Wb||f!=b.mb)q=g=1;c&128&&(f^=q,d||(q=0));Vo(a,e+q);Vo(a,f);Vo(a,g);Vo(a,k)}function To(a){var b=a.Y[a.O];a.O++;return b}function Uo(a){a.O=a.P=0}function Vo(a,b){a.Y[a.P++]=b}
h.zk=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.Gb&&a.Ga){do{if(a.tb&&(e=a.jb,0<=(b=a.Ga.read(a.tb,a.jb++)))){d=a.tb;break}a.tb=a.Ga.seek(a.Wb,a.mb,a.Cb);if(!a.tb){a.Gb=1088;break}a.jb=0;Xo(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};h.Ak=function(a,b){return void 0!==b&&0<=b?Yo(a,b):-1};
h.Qk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Gb)c=-1;else{a.ld[a.Te++]=c;if(a.Te==a.ld.length){a.Wb=a.ld[0];a.mb=a.ld[1];a.Cb=a.ld[2];a.Mb=128<<a.ld[3];for(var d=a.Te=0;d<a.Mb;d++)if(0>Yo(a,a.Ai)){c=-1;break a}a.mg++}a.mg>=a.fe&&(c=-1)}else c=-1;return c};function Yo(a,b){if(a.Gb||!a.Ga)return-1;do{if(a.tb&&a.Ga.write(a.tb,a.jb++,b))break;a.tb=a.Ga.seek(a.Wb,a.mb,a.Cb);if(!a.tb){a.Gb=8256;b=-1;break}a.jb=0;Xo(a)}while(1);return b}
function Xo(a){a.Cb++;a.Cb>=a.Lf+1&&(a.Cb=1,a.mb++,a.mb>=a.Kf&&(a.mb=0,a.Wb++))}var Lo={1012:Fo.prototype.Al,1013:Fo.prototype.yl,1015:Fo.prototype.zl},Mo={1010:Fo.prototype.Sm,1013:Fo.prototype.Rm,1015:Fo.prototype.Qm};Sa(function(){for(var a=ob(window.document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Fo(d);mb(d,c)}});
function Xo(a){a.Cb++;a.Cb>=a.Lf+1&&(a.Cb=1,a.mb++,a.mb>=a.Kf&&(a.mb=0,a.Wb++))}var Lo={1012:Fo.prototype.Al,1013:Fo.prototype.yl,1015:Fo.prototype.zl},Mo={1010:Fo.prototype.Sm,1013:Fo.prototype.Rm,1015:Fo.prototype.Qm};Sa(function(){for(var a=ob(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Fo(d);mb(d,c)}});
function Zo(a){Xa.call(this,"HDC",a,Zo,1048576);this.dmaRead=this.Ck;this.dmaWrite=this.Dk;this.dmaWriteBuffer=this.Rk;this.dmaWriteFormat=this.Sk;this.Ja=[];if(a.drives)try{this.Ja=eval("("+a.drives+")")}catch(b){Ba("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.qa="at"==a.type}gb(Zo);
var $o=["XTC","ATC","COMPAQ"],ap=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,6],19:[1023,
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];h=Zo.prototype;h.Ub=function(){return!1};
@ -1077,7 +1076,7 @@ function up(a,b,c){b.errorCode=4;b.Pe&&b.Pe.length==b.Mb||(b.Pe=Array(b.Mb));b.j
function kp(a,b,c){var d=-1,e=null,f=0;if(a.errorCode)return b&&b(d,!1,e,f),d;var g=!1!==c?1:0;if(a.tb&&(f=a.jb,d=a.Ga.read(a.tb,a.jb),a.jb+=g,0<=d))return e=a.tb,b&&b(d,!1,e,f),d;if(b){if(a.Ga)return a.Ga.seek(a.be,a.mb,a.Cb+a.lg,!1,function(c,q){(a.tb=c)?(e=c,f=a.jb=0,vp(a),d=a.Ga.read(a.tb,a.jb),a.jb+=g):a.errorCode=20;b(d,q,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d}
function np(a,b){if(a.errorCode)return-1;do{if(a.tb&&a.Ga.write(a.tb,a.jb++,b))break;a.Ga&&a.Ga.seek(a.be,a.mb,a.Cb+a.lg,!0,function(b){a.tb=b});if(!a.tb){a.errorCode=20;b=-1;break}a.jb=0;vp(a)}while(1);return b}function vp(a){a.Cb++;var b=1-a.lg;a.Cb>=a.ob+b&&(a.Cb=b,a.mb++,a.mb>=a.yb&&(a.mb=0,a.be++))}h.cm=function(){var a=this.M.H&255;!(this.M.F>>8)&&128<a&&(this.ta=a-128);return!0};h.dm=function(){var a;(a=this.M.F>>8||!this.R)||(a=!(this.R.vc[0].Cd&64));return a?!0:!1};
var cp={800:Zo.prototype.am,801:Zo.prototype.bm,802:Zo.prototype.$l},bp={496:Zo.prototype.Ek,497:Zo.prototype.hl,498:Zo.prototype.jl,499:Zo.prototype.kl,500:Zo.prototype.fl,501:Zo.prototype.el,502:Zo.prototype.gl,503:Zo.prototype.ll},ep={800:Zo.prototype.rn,801:Zo.prototype.un,802:Zo.prototype.tn,803:Zo.prototype.sn,807:Zo.prototype.ji,811:Zo.prototype.ji,815:Zo.prototype.ji},dp={496:Zo.prototype.ym,497:Zo.prototype.Dm,498:Zo.prototype.Bm,499:Zo.prototype.Cm,500:Zo.prototype.xm,501:Zo.prototype.wm,
502:Zo.prototype.zm,503:Zo.prototype.vm,1014:Zo.prototype.Am};Sa(function(){for(var a=ob(window.document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Zo(d);mb(d,c)}});
502:Zo.prototype.zm,503:Zo.prototype.vm,1014:Zo.prototype.Am};Sa(function(){for(var a=ob(document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Zo(d);mb(d,c)}});
function wp(a){Xa.call(this,"Debugger",a,wp);this.wa=this.Ha=this.ka=0;this.Ra=4;this.Ja=5;this.Fa=1048575;this.da=xp(this);this.Ib=xp(this);this.W=-1;this.O=[];this.Ma=!1;this.Ba=xp(this);this.C=[];this.Da={};this.A=this.za=this.la=[];yp(this);this.Ua=0;zp(this);this.ib=[];Ap(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return Bp(b,a)}):void 0===global.$&&(global.$=function(a){return Bp(b,a)})}gb(wp);
var Cp={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Dp=[26,28,40,42,109],Ep={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Fp="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
@ -1200,7 +1199,7 @@ tn=!1,nb=xp(a,v(a.M),a.M.Ca.ga);do switch(yg=!1,a.Wa(nb)){case 38:case 46:case 5
(a.P=de,iq(a,nb,1))}while(yg);a.P?(a.Od(a.A,nb,!0),a.Ie()||(a.M.Vc(),a.P=0)):ar(a,sn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}yq(a,g);break;case "t":ar(a,g[0],g[1]);break;case "u":zq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Wq(a,b.substr(3))||(d=!1);break}a.S("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(yb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Ye;void 0!==g[3]&&(Ye=+g[3]);switch(g[2]){case "int":a.M.ba.ff=
Ye;break;case "start":a.M.ba.Gf=Ye;break;case "stop":a.M.ba.hf=Ye;break;default:a.S("unknown cs option");break a}void 0!==Ye&&Sc(a.M);a.S("checksums "+(a.M.ra.We?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(bd(a.M,+g[2])||a.S("warning: using 1x multiplier, previous target not reached"));a.S("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Ud+"x)");break;default:a.S("unknown option: "+g[1])}else a.S("execution options:"),a.S("\tcs int #\tset checksum cycle interval to #"),a.S("\tcs start #\tset checksum cycle start count to #"),
a.S("\tcs stop #\tset checksum cycle stop count to #"),a.S("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Zq(a,b.substr(1));break}var Ze="commands:",yi;for(yi in Ep)Ze+="\n"+oa(yi,7)+Ep[yi];Mf(a)||(Ze+="\nnote: frequency/history disabled if no exec breakpoints");a.S(Ze);break;default:a.S("unknown command: "+b),d=!1}}}catch(vn){a.S("debugger error: "+(vn.stack||vn.message)),d=!1}return d}function Bp(a,b,c){b=rq(a,b,c);for(var d in b)if(!Fq(a,b[d]))return!1;return!0}
Sa(function(){for(var a=ob(window.document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new wp(d);mb(d,c)}});function bf(a,b,c){this.id=a.id;this.key=cr(a,b,c);this.ma=a.ma;dr(this,a.wk)}function cr(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
Sa(function(){for(var a=ob(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new wp(d);mb(d,c)}});function bf(a,b,c){this.id=a.id;this.key=cr(a,b,c);this.ma=a.ma;dr(this,a.wk)}function cr(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
bf.prototype={constructor:bf,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Fa()&&(a=Ga(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){dr(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function dr(a,b){a[a.id]={};b&&cf(a,"parms",b);a.A=!1}function er(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(Ba("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function fr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Ba(c.message||c),b=!1}return b}function gr(a,b){return a[a.id][b]||null}function cf(a,b,c){try{a[a.id][b]=c}catch(d){}}
function hr(a,b,c){Xa.call(this,"Computer",a,hr,67108864);this.ra.hc=!1;this.W=b;this.Y=Jo(this,"autoPower",a);this.C=0;this.la=a.busWidth||a.buswidth;this.Oc=ir;this.O=null;this.P=this.ka=!1;this.qa=Jo(this,"url")||"";this.ta=(Math.random()+.1).toString(36).substr(2,12);this.A=jr(this);if(this.M=jb("CPU",this.id)){this.ma=jb("Debugger",this.id);this.ja=new Ob({id:this.ti+".bus",buswidth:this.la},this.M,this.ma);var d,e=hb(this.id);if((this.Xd=jb("Panel",this.id))&&this.Xd.Af)for(b=0;b<e.length;b++)d=
@ -1219,12 +1218,12 @@ h.Ub=function(a,b,c){var d=this;switch(b){case "power":return this.ya[b]=c,c.onc
function(){var a=jr(d,!0);if(a){var b=!!(d.Oc&&!d.Eg||d.X),c=br(d,b);b?pr(d,a,c):d.Va("Resume disabled, machine state not saved")}},!0}return!1};function jr(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=qr(a,c))||a.Va("The user ID is invalid."))):b&&a.Va("Browser local storage is not available"));return c}
function qr(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 pr(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cr(a,kr);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)}}
function Hb(a,b,c){a=hb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}Sa(function(){for(var a=ob(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=kb(c),c=ob(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=kb(f),g=new hr(g,d,!0);mb(g,f);g.Y&&lr(g,g.Wf)}});Na.show.push(function(){for(var a=ob(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.tk&&!c.ra.hc&&c.Wf(-1)}});
Na.exit.push(function(){for(var a=ob(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.ra.hc&&br(c,!(!c.Oc||c.Eg),!0)}});var rr=0;function sr(a,b,c,d,e,f){e("Loading "+a+"...");za(a,!0,null,null,function(g,k,q){q?(k||(k="unable to load "+a+" ("+q+")"),f(k,null)):tr(k,a,b,c,d,e,f)})}
function Hb(a,b,c){a=hb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}Sa(function(){for(var a=ob(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=kb(c),c=ob(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=kb(f),g=new hr(g,d,!0);mb(g,f);g.Y&&lr(g,g.Wf)}});Na.show.push(function(){for(var a=ob(document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.tk&&!c.ra.hc&&c.Wf(-1)}});
Na.exit.push(function(){for(var a=ob(document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.ra.hc&&br(c,!(!c.Oc||c.Eg),!0)}});var rr=0;function sr(a,b,c,d,e,f){e("Loading "+a+"...");za(a,!0,null,null,function(g,k,q){q?(k||(k="unable to load "+a+" ("+q+")"),f(k,null)):tr(k,a,b,c,d,e,f)})}
function tr(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(B){k=null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,k)}}a?e?Dr(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Dr(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");za(e,!0,null,null,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=k[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(f);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);k[0]!=q&&(g=g.replace(k[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Dr(a,b,c)}})}else c(a,null)}
function Er(a,b,c,d){function e(a){if(void 0===k){var b=g&&ob(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--rr||Ua(!0));q=!1}var g,k,q=!0;rr++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){if(k){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--rr||Ua(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,window.document))?g.parentNode?(g.parentNode.replaceChild(r,g),--rr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(d)};k?sr(c,null,null,!1,e,q):f("failed to load XML file: "+b)}else f(d)};"<"!=b.charAt(0)?sr(b,a,d,!0,e,r):tr(b,null,a,d,!1,e,r)}else f("missing machine element: "+
function Er(a,b,c,d){function e(a){if(void 0===k){var b=g&&ob(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--rr||Ua(!0));q=!1}var g,k,q=!0;rr++;try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){if(k){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--rr||Ua(!0)):f("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(r,g),--rr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(d)};k?sr(c,null,null,!1,e,q):f("failed to load XML file: "+b)}else f(d)};"<"!=b.charAt(0)?sr(b,a,d,!0,e,r):tr(b,null,a,d,!1,e,r)}else f("missing machine element: "+
a)}catch(x){f(x.message)}return q}window.embedPC=function(a,b,c,d){Ua(!1);return Er(a,b,c,d)};window.enableEvents=Ua;window.sendEvent=Wa;})();