PC8080 bufferRotate option appears to be working as well the screenRotate option, so when everything else is working, we can choose whichever rotation method yields the best performance

This commit is contained in:
Jeff Parsons 2016-05-03 13:16:07 -07:00
commit 377b9895fa
5 changed files with 553 additions and 548 deletions

View file

@ -42,18 +42,18 @@ c}}}m.qd=function(){};function Kb(a,b,c,d){a.A.Af[a.A.Ai++]={Qk:b,Ud:c,type:d};r
function Jb(a,b,c,d,e){a.N.font=a.ga;a.N.fillStyle=a.Fa;a.N.fillText(b,a.C,a.U);a.C+=a.pa;null!=c&&(16!=a.Tb?b=c.toString():(b=8>a.Ka?"0x":"",b+=r(c,a.Ka)),a.N.fillText(b,a.C,a.U),a.C+=a.pa);d&&(a.C+=a.pa*d);e&&(a.C=a.Oa,a.U+=(a.X+2)*(e||1))}function Fb(){for(var a=!1,b=nb(document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=jb(d),f=hb(e.id);f||(a=!0,f=new zb(e));mb(f,d);a&&rb(f)}}Qa(Fb);
function Lb(a,b,c){Ua.call(this,"Bus",a,Lb);this.F=b;this.ha=c;this.N=a.busWidth||20;this.X=Math.pow(2,this.N);this.xg=this.Gb=this.X-1|0;this.La=32==this.N||20>=this.N?12:24>=this.N?14:15;this.Sb=1<<this.La;this.ga=this.Sb>>2;this.A=this.Sb-1;this.U=this.X/this.Sb|0;this.ea=this.U-1;this.B=[];this.C=[];this.L=this.W=!1;this.aa=[];this.fa=[];a=new B;Mb(a,this.ha);this.sa=Array(this.U);for(b=0;b<this.U;b++)this.sa[b]=a;a=this.F;b=this.sa;c=this.La;a.ld=a.sa=b;a.La=c;a.Sb=1<<a.La;a.Fa=a.Sb-1;a.Gd=b.length;
a.jd=a.Gd-1;a=this.F;a.Gb=a.Db=this.Gb;rb(this)}db(Lb);var Hb,Nb={$j:20,count:8,oo:1,type:3},Ob=0,Pb;for(Pb in Nb){var Qb=Nb[Pb];Nb[Pb]={mh:(1<<Qb)-1<<Ob,shift:Ob};Ob+=Qb}Hb=Nb;m=Lb.prototype;m.reset=function(){Rb(this,!0)};m.ic=function(a,b){b||this.reset();return!0};
function Sb(a,b,c,d,e){for(var f=b>>>a.La;0<c&&f<a.sa.length;){var g=a.sa[f],h=f*a.Sb,k=a.Sb-(b-h);k>c&&(k=c);if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.Da)return g.Ne+=g.Da-b,g.Da=b,!0;if(b>=g.Da+g.Ne){k=g.size-(b-h);k>c&&(k=c);g.Ne=b-g.Da+k;b=h+a.Sb;c-=k;f++;continue}}return Tb(a,1,b,c)}b=new B(b,k,a.Sb,d,e);Mb(b,a.ha,g);a.sa[f++]=b;b=h+a.Sb;c-=k}return 0>=c?(Ub(a.F),!0):Tb(a,2,b,c)}
function Rb(a,b){if(32==a.N)b?a.V&&(Wb(a,1048576,1048576,a.V),a.V=null):a.V||(a.V=Xb(a,1048576,1048576),Wb(a,1048576,1048576,Xb(a,0,1048576)));else if(20<a.N){var c=a.Gb&-1048577|(b?1048576:0);if(c!=a.Gb&&(a.Gb=c,a.F)){var d=a.F;d.Gb=d.Db=c}}}m.Og=function(a,b,c,d){if(!(a&this.A||!b||b&this.A)){for(var e=a>>>this.La;0<b;){var f=this.sa[e];if(!f.controller)return Tb(this,3,a,b,d);Yb(f,c,!0);b-=this.Sb;e++}return!0}return Tb(this,4,a,b)};
function Zb(a,b,c){if(!(b&a.A||!c||c&a.A)){for(var d=b>>>a.La;0<c;){var e=a.sa[d];b=new B(b);Mb(b,a.ha,e);a.sa[d++]=b;b=d*a.Sb;c-=a.Sb}Ub(a.F);return!0}return Tb(a,5,b,c)}function Xb(a,b,c){var d=[];for(b>>>=a.La;0<c&&b<a.sa.length;)d.push(a.sa[b++]),c-=a.Sb;return d}
function Wb(a,b,c,d,e){for(var f=0,g=b>>>a.La;0<c&&g<a.sa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new B(b),l=k,n=e,q=a.ha;l.id=h.id|1;l.Ne=h.Ne;l.size=h.size;n&&(l.type=n,l.N=n==$b);vb?(l.V=h.V,l.qa=h.qa,l.Ya=h.Ya,l.fe=h.fe,l.da=h.da,Yb(l,ac?bc:cc)):(l.da=h.da,Yb(l,dc));Mb(l,q,h);h=k}a.sa[g++]=h;c-=a.Sb}}m.Qa=function(a){return this.sa[(a&this.Gb)>>>this.La].jc(a&this.A,a)};
m.na=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;return b!=this.A?this.sa[c].rf(b,a):this.sa[c++].jc(b,a)|this.sa[c&this.ea].jc(0,a+1)<<8};function ec(a,b){var c=b&a.A,d=(b&a.Gb)>>>a.La;return c!=a.A?a.sa[d].cg(c,b):a.sa[d++].se(c,b)|a.sa[d&a.ea].se(0,b+1)<<8}m.oa=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;if(b<this.A-2)return this.sa[c].Nd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.sa[c].jc(b++,a++)<<f,--g||(c=c+1&this.ea,b=0),f+=8;return d};
m.qc=function(a,b){this.sa[(a&this.Gb)>>>this.La].sc(a&this.A,b&255,a)};m.jb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;c!=this.A?this.sa[d].yf(c,b&65535,a):(this.sa[d++].sc(c,b&255,a),this.sa[d&this.ea].sc(0,b>>8&255,a+1))};function fc(a,b,c){var d=b&a.A,e=(b&a.Gb)>>>a.La;d!=a.A?a.sa[e].oi(d,c&65535,b):(a.sa[e++].wf(d,c&255,b),a.sa[e&a.ea].wf(0,c>>8&255,b+1))}
m.nb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;if(c<this.A-2)this.sa[d].xf(c,b);else for(var e=4,f=4-(c&3);e--;)this.sa[d].sc(c++,b&255,a++),--f||(d=d+1&this.ea,c=0),b>>>=8};m.Si=function(){return null};function gc(a,b){if(void 0===b)return a.L=!a.L,a.L;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}
function hc(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.B[k]?w("Input port "+u(k)+" already registered"):f.B[k]=[h,!1]}}function ic(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.B[b],h=a.aa[b]||1,k=1==h?255:2==h?65535:-1,l=k;void 0!==g?(g[0]&&(l=g[0](b,d),void 0===l?l=k:l&=k),a.ha&&a.L!=g[1]&&jc(a.ha,b,l)):a.ha&&(ob(a.ha,a,b,null,d),a.L&&jc(a.ha,b,l));e|=l<<f;f+=h<<3;b+=h;c-=h}return e}
function kc(a,b){if(void 0===b)return a.W=!a.W,a.W;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}function lc(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.C[k]?w("Output port "+u(k)+" already registered"):f.C[k]=[h,!1]}}
function mc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.fa[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ha&&a.W!=g[1]&&nc(a.ha,b,k)}else a.ha&&(ob(a.ha,a,b,k,e),a.W&&nc(a.ha,b,k));f+=h<<3;b+=h;c-=h}}function Tb(a,b,c,d,e){b="Memory block error ("+b+": "+r(c)+","+r(d)+")";e?a.ha?a.ha.message(b):a.log(b):w(b);return!1}var oc;if(vb){var pc=new ArrayBuffer(2);(new DataView(pc)).setUint16(0,256,!0);oc=256===(new Uint16Array(pc))[0]}else oc=!1;var ac=oc;
function B(a,b,c,d,e,f){this.id=qc+=2;this.da=null;this.C=0;this.Da=a;this.Ne=b;this.size=c||0;this.type=d||rc;this.N=d==$b;this.controller=null;this.F=f;Mb(this);this.Wa=this.Ni=!1;if(c)if(e)this.controller=e,a=e.Ri(a),this.da=a[0],this.C=a[1],Yb(this,e.gh());else if(vb)this.V=new ArrayBuffer(c),this.qa=new DataView(this.V,0,c),this.Ya=new Uint8Array(this.V,0,c),this.fe=new Uint16Array(this.V,0,c>>1),this.da=new Int32Array(this.V,0,c>>2),Yb(this,ac?bc:cc);else{this.da=Array(c>>2);for(e=0;e<this.da.length;e++)this.da[e]=
0;Yb(this,dc)}else Yb(this)}var rc=0,$b=2,sc="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),xc=["black","blue","green","cyan"],qc=0;function yc(a){vb&&!ac&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
function Sb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.La;0<g&&h<a.sa.length;){var k=a.sa[h],l=h*a.Sb,n=a.Sb-(f-l);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.Da)return k.Ne+=k.Da-f,k.Da=f,!0;if(f>=k.Da+k.Ne){n=k.size-(f-l);n>g&&(n=g);k.Ne=f-k.Da+n;f=l+a.Sb;g-=n;h++;continue}}return Tb(a,1,f,g)}f=new B(f,n,a.Sb,d,e);Mb(f,a.ha,k);a.sa[h++]=f;f=l+a.Sb;g-=n}return 0>=g?(Ub(a.F),a.status(Math.floor(c/1024)+"Kb "+Wb[d]+" at "+r(b)),!0):Tb(a,2,b,c)}
function Rb(a,b){if(32==a.N)b?a.V&&(Xb(a,1048576,1048576,a.V),a.V=null):a.V||(a.V=Yb(a,1048576,1048576),Xb(a,1048576,1048576,Yb(a,0,1048576)));else if(20<a.N){var c=a.Gb&-1048577|(b?1048576:0);if(c!=a.Gb&&(a.Gb=c,a.F)){var d=a.F;d.Gb=d.Db=c}}}m.Og=function(a,b,c,d){if(!(a&this.A||!b||b&this.A)){for(var e=a>>>this.La;0<b;){var f=this.sa[e];if(!f.controller)return Tb(this,3,a,b,d);Zb(f,c,!0);b-=this.Sb;e++}return!0}return Tb(this,4,a,b)};
function $b(a,b,c){if(!(b&a.A||!c||c&a.A)){for(var d=b>>>a.La;0<c;){var e=a.sa[d];b=new B(b);Mb(b,a.ha,e);a.sa[d++]=b;b=d*a.Sb;c-=a.Sb}Ub(a.F);return!0}return Tb(a,5,b,c)}function Yb(a,b,c){var d=[];for(b>>>=a.La;0<c&&b<a.sa.length;)d.push(a.sa[b++]),c-=a.Sb;return d}
function Xb(a,b,c,d,e){for(var f=0,g=b>>>a.La;0<c&&g<a.sa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new B(b),l=k,n=e,q=a.ha;l.id=h.id|1;l.Ne=h.Ne;l.size=h.size;n&&(l.type=n,l.N=n==ac);vb?(l.V=h.V,l.qa=h.qa,l.Ya=h.Ya,l.fe=h.fe,l.da=h.da,Zb(l,bc?cc:dc)):(l.da=h.da,Zb(l,ec));Mb(l,q,h);h=k}a.sa[g++]=h;c-=a.Sb}}m.Qa=function(a){return this.sa[(a&this.Gb)>>>this.La].jc(a&this.A,a)};
m.na=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;return b!=this.A?this.sa[c].rf(b,a):this.sa[c++].jc(b,a)|this.sa[c&this.ea].jc(0,a+1)<<8};function fc(a,b){var c=b&a.A,d=(b&a.Gb)>>>a.La;return c!=a.A?a.sa[d].cg(c,b):a.sa[d++].se(c,b)|a.sa[d&a.ea].se(0,b+1)<<8}m.oa=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;if(b<this.A-2)return this.sa[c].Nd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.sa[c].jc(b++,a++)<<f,--g||(c=c+1&this.ea,b=0),f+=8;return d};
m.qc=function(a,b){this.sa[(a&this.Gb)>>>this.La].sc(a&this.A,b&255,a)};m.jb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;c!=this.A?this.sa[d].yf(c,b&65535,a):(this.sa[d++].sc(c,b&255,a),this.sa[d&this.ea].sc(0,b>>8&255,a+1))};function gc(a,b,c){var d=b&a.A,e=(b&a.Gb)>>>a.La;d!=a.A?a.sa[e].oi(d,c&65535,b):(a.sa[e++].wf(d,c&255,b),a.sa[e&a.ea].wf(0,c>>8&255,b+1))}
m.nb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;if(c<this.A-2)this.sa[d].xf(c,b);else for(var e=4,f=4-(c&3);e--;)this.sa[d].sc(c++,b&255,a++),--f||(d=d+1&this.ea,c=0),b>>>=8};m.Si=function(){return null};function hc(a,b){if(void 0===b)return a.L=!a.L,a.L;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}
function ic(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.B[k]?w("Input port "+u(k)+" already registered"):f.B[k]=[h,!1]}}function jc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.B[b],h=a.aa[b]||1,k=1==h?255:2==h?65535:-1,l=k;void 0!==g?(g[0]&&(l=g[0](b,d),void 0===l?l=k:l&=k),a.ha&&a.L!=g[1]&&kc(a.ha,b,l)):a.ha&&(ob(a.ha,a,b,null,d),a.L&&kc(a.ha,b,l));e|=l<<f;f+=h<<3;b+=h;c-=h}return e}
function lc(a,b){if(void 0===b)return a.W=!a.W,a.W;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}function mc(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.C[k]?w("Output port "+u(k)+" already registered"):f.C[k]=[h,!1]}}
function nc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.fa[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ha&&a.W!=g[1]&&oc(a.ha,b,k)}else a.ha&&(ob(a.ha,a,b,k,e),a.W&&oc(a.ha,b,k));f+=h<<3;b+=h;c-=h}}function Tb(a,b,c,d,e){b="Memory block error ("+b+": "+r(c)+","+r(d)+")";e?a.ha?a.ha.message(b):a.log(b):w(b);return!1}var pc;if(vb){var qc=new ArrayBuffer(2);(new DataView(qc)).setUint16(0,256,!0);pc=256===(new Uint16Array(qc))[0]}else pc=!1;var bc=pc;
function B(a,b,c,d,e,f){this.id=rc+=2;this.da=null;this.C=0;this.Da=a;this.Ne=b;this.size=c||0;this.type=d||sc;this.N=d==ac;this.controller=null;this.F=f;Mb(this);this.Wa=this.Ni=!1;if(c)if(e)this.controller=e,a=e.Ri(a),this.da=a[0],this.C=a[1],Zb(this,e.gh());else if(vb)this.V=new ArrayBuffer(c),this.qa=new DataView(this.V,0,c),this.Ya=new Uint8Array(this.V,0,c),this.fe=new Uint16Array(this.V,0,c>>1),this.da=new Int32Array(this.V,0,c>>2),Zb(this,bc?cc:dc);else{this.da=Array(c>>2);for(e=0;e<this.da.length;e++)this.da[e]=
0;Zb(this,ec)}else Zb(this)}var sc=0,ac=2,xc=["black","blue","green","cyan"],Wb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),rc=0;function yc(a){vb&&!bc&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
B.prototype={constructor:B,parent:null,hh:function(a){this.Da=a},save:function(){var a,b;if(this.controller)a=null;else if(vb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.qa.getInt32(b<<2,!0);else a=this.da;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(vb)for(b=0;b<a.length;b++)this.qa.setInt32(b<<2,a[b],!0);else this.da=a;return this.Wa=!0}return!1},Sd:function(a,b,c){b?0===this.Ue++&&(c&&(this.F=c),Bc(this,Ac,!1)):0===this.Te++&&
(c&&(this.F=c),zc(this,Ac,!1))},ia:function(){this.ha&&A(this.ha,129)&&this.ha.message("attempt to read invalid block %"+r(this.Da),!0);return 255},L:function(a,b){this.ha&&A(this.ha,129)&&this.ha.message("attempt to write "+u(b)+" to invalid block %"+r(this.Da),!0)},ka:function(a,b){return this.jc(a++,b++)|this.jc(a,b)<<8},fa:function(a,b){return this.jc(a++,b++)|this.jc(a++,b++)<<8|this.jc(a++,b++)<<16|this.jc(a,b)<<24},X:function(a,b,c){this.sc(a++,b&255,c++);this.sc(a,b>>8,c)},U:function(a,b,
c){this.sc(a++,b&255,c++);this.sc(a++,b>>8&255,c++);this.sc(a++,b>>16&255,c++);this.sc(a,b>>>24,c)},Fa:function(a){return this.da[a>>2]>>>((a&3)<<3)&255},sb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b]>>a;return 24>a?c&65535:c&255|(this.da[b+1]&255)<<8},$a:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b];a&&(c=c>>>a|this.da[b+1]<<32-a);return c},uc:function(a,b){var c=a>>2,d=(a&3)<<3;this.da[c]=this.da[c]&~(255<<d)|b<<d;this.Wa=!0},Dd:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.da[c]=this.da[c]&
@ -65,8 +65,8 @@ this.W;this.Cd.xf(a,b,c)},Ka:function(a,b){return Fc(this.F,b,!1).jc(a,b)},Ub:fu
2]},bc:function(a,b){this.Ya[a]=b;this.Wa=!0},ra:function(a,b){this.Ya[a]=b;this.Wa=!0},Cc:function(a,b){this.Ya[a]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.sc=this.ra;this.Cd.Wa=!0},rd:function(a,b){this.qa.setUint16(a,b,!0);this.Wa=!0},ya:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.fe[a>>1]=b;this.Wa=!0},Gd:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.fe[a>>1]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.yf=this.ya;this.Cd.Wa=!0},Vc:function(a,b){this.qa.setInt32(a,
b,!0);this.Wa=!0},wa:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a+2]=b>>16,this.Ya[a+3]=b>>24):this.da[a>>2]=b;this.Wa=!0},jd:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a+2]=b>>16,this.Ya[a+3]=b>>24):this.da[a>>2]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.xf=this.wa;this.Cd.Wa=!0}};function Mb(a,b,c){a.ha=b;a.Te=a.Ue=0;c&&(c.F&&(a.F=c.F),(a.Te=c.Te)&&zc(a,Ac,!1),(a.Ue=c.Ue)&&Bc(a,Ac,!1))}
function Gc(a,b){b?0===--a.Ue&&(a.sc=a.N?a.L:a.wf,a.yf=a.N?a.X:a.oi,a.xf=a.N?a.U:a.ua):0===--a.Te&&(a.jc=a.se,a.rf=a.cg,a.Nd=a.ii)}function Bc(a,b,c){c&&a.Ue||(a.sc=!a.N&&b[3]||a.L,a.yf=!a.N&&b[4]||a.X,a.xf=!a.N&&b[5]||a.U);if(c||void 0===c)a.wf=b[3]||a.L,a.oi=b[4]||a.X,a.ua=b[5]||a.U}function zc(a,b,c){c&&a.Te||(a.jc=b[0]||a.ia,a.rf=b[1]||a.ka,a.Nd=b[2]||a.fa);if(c||void 0===c)a.se=b[0]||a.ia,a.cg=b[1]||a.ka,a.ii=b[2]||a.fa}
function Yb(a,b,c){b||(b=5==a.type?Hc:6==a.type?Ic:Jc);zc(a,b,c);Bc(a,b,c)}var Jc=[],dc=[B.prototype.Fa,B.prototype.sb,B.prototype.$a,B.prototype.uc,B.prototype.Dd,B.prototype.Xc],Ac=[B.prototype.Ea,B.prototype.rb,B.prototype.Pa,B.prototype.tc,B.prototype.td,B.prototype.Wc],Ic=[B.prototype.Ja,B.prototype.Jb,B.prototype.fb,B.prototype.Uc,B.prototype.Hd,B.prototype.ve],Hc=[B.prototype.Ka,B.prototype.Ub,B.prototype.gb,B.prototype.ee,B.prototype.Id,B.prototype.kd];
if(vb)var cc=[B.prototype.Ca,B.prototype.Tb,B.prototype.Oa,B.prototype.bc,B.prototype.rd,B.prototype.Vc],bc=[B.prototype.aa,B.prototype.pa,B.prototype.ga,B.prototype.ra,B.prototype.ya,B.prototype.wa],Kc=[B.prototype.Ia,B.prototype.Db,B.prototype.cb,B.prototype.Cc,B.prototype.Gd,B.prototype.jd];
function Zb(a,b,c){b||(b=5==a.type?Hc:6==a.type?Ic:Jc);zc(a,b,c);Bc(a,b,c)}var Jc=[],ec=[B.prototype.Fa,B.prototype.sb,B.prototype.$a,B.prototype.uc,B.prototype.Dd,B.prototype.Xc],Ac=[B.prototype.Ea,B.prototype.rb,B.prototype.Pa,B.prototype.tc,B.prototype.td,B.prototype.Wc],Ic=[B.prototype.Ja,B.prototype.Jb,B.prototype.fb,B.prototype.Uc,B.prototype.Hd,B.prototype.ve],Hc=[B.prototype.Ka,B.prototype.Ub,B.prototype.gb,B.prototype.ee,B.prototype.Id,B.prototype.kd];
if(vb)var dc=[B.prototype.Ca,B.prototype.Tb,B.prototype.Oa,B.prototype.bc,B.prototype.rd,B.prototype.Vc],cc=[B.prototype.aa,B.prototype.pa,B.prototype.ga,B.prototype.ra,B.prototype.ya,B.prototype.wa],Kc=[B.prototype.Ia,B.prototype.Db,B.prototype.cb,B.prototype.Cc,B.prototype.Gd,B.prototype.jd];
function Lc(a,b){Ua.call(this,"CPU",a,Lc,1);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.Jd=c;this.Y.Yd=d;this.Y.ug=Math.round(this.Y.Jd/1E4)/100;this.Y.Fe=this.Y.ug*this.Y.Yd;this.la.Ib=!1;this.la.eh=!1;this.la.Ki=a.autoStart;this.la.Oi=!1;this.la.Ye=!1;this.Y.If=this.Y.kf=0;this.Y.Jf=a.csStart;this.Y.jf=a.csInterval;this.Y.lf=a.csStop;this.pi=this.Ke.bind(this);rb(this)}db(Lc);var Mc=["power","reset"];m=Lc.prototype;
m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.ha=d;for(b=0;b<Mc.length;b++)(c=this.qa[Mc[b]])&&this.V.Pb(null,Mc[b],c);this.Tb=Eb(a,"FPU");this.N=Eb(a,"ChipSet");a=Nc(a,"autoStart");null!=a&&(this.la.Ki="true"==a?!0:"false"==a?!1:!!a);rb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.ic=function(a,b){if(!b){if(a&&this.restore){Oc(this);if(!this.restore(a))return!1;Pc(this)}else this.reset();this.ha?this.ha.hh():this.O("No debugger detected")}Qc(this);return!0};m.hc=function(a){return a?this.save():!0};function Sc(a){(a.la.Ki||!a.ha&&void 0===a.qa.run)&&a.Ke(!0)}m.Qi=function(){return 0};function Pc(a){void 0===a.Y.Jf&&(a.Y.Jf=0);void 0===a.Y.jf&&(a.Y.jf=-1);void 0===a.Y.lf&&(a.Y.lf=-1);a.la.Ye=0<=a.Y.Jf&&0<a.Y.jf;a.la.Ye&&(a.Y.If=0,a.Y.kf=a.Y.Jf-a.uc)}
@ -99,16 +99,16 @@ Fd,this.X[102]=Fd,this.X[103]=Fd,this.X[104]=Jd,this.X[105]=Kd,this.X[106]=Ld,th
ke;this.X[102]=le;this.X[103]=me;for(c in M)this.tc[+c]=M[c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=ne,this.tc[167]=oe)}}this.Id=[];this.le=[];this.ne=0;Oc(this);this.la.Wd=this.la.Mi=!1;this.Pg=0;this.ld=this.sa=[];this.La=this.Sb=this.Fa=this.Gd=this.jd=this.Gb=this.Db=0;pe(this)}db(Ad,Lc);function qe(a,b,c,d){Gc((d?a.ld:a.sa)[b>>>a.La],c);d&&Ub(a)}
function re(a){var b;if(a.sa===a.ld){a.sa=Array(a.Gd);a.me=new B(null,0,0,5,null,a);Mb(a.me,a.ha);for(b=0;b<a.Gd;b++)a.sa[b]=a.me;a.kd=new B;a.ag=Array(512);a.oe=0}else for(var c=0;c<a.Hd.length;c++){b=a.Hd[c];var d=a.sa[b];512>a.oe&&(a.ag[a.oe++]=d);a.sa[b]=a.me}a.Hd=[]}function Ub(a){a.Za&-2147483648&&re(a)}
function Fc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.ld[(a.Pd+e&a.Gb)>>>a.La],g=f.Nd(e);if(!(g&1))return d||se.call(a,b,!1,c),a.kd;if(!(g&4)&&3==a.pa)return d||se.call(a,b,!0,c),a.kd;var h=(b&4190208)>>>10,g=a.ld[((g&-4096)+h&a.Gb)>>>a.La],k=g.Nd(h);if(!(k&1))return d||se.call(a,b,!1,c),a.kd;if(!(k&4)&&3==a.pa)return d||se.call(a,b,!0,c),a.kd;c=a.ld[((k&-4096)+(b&4095)&a.Gb)>>>a.La];if(d)return c;d=b>>>a.La;k=a.sa[d];b=b&-4096;var l;0<a.oe?(l=a.ag[--a.oe],l.hh(b)):l=new B(b,0,0,6);b=l;b.Cd=c;b.yb=f;b.A=
e>>2;b.zb=g;b.B=h>>2;vb&&ac&&c.da&&!c.controller&&!c.Te&&!c.Ue?(b.Ya=c.Ya,b.fe=c.fe,b.da=c.da,Yb(b,Kc)):(b.ea=c?yc(32):0,b.W=c?yc(96):0,Yb(b,Ic));Mb(b,a.ha,k);a.sa[d]=b;a.Hd.push(d);return b}function te(a){a.sa!==a.ld&&(a.sa=a.ld,a.me=null,a.Hd=null,a.kd=null)}m=Ad.prototype;m.reset=function(){this.la.Ib&&this.Wb();pe(this);Oc(this);this.la.ud=!1};
e>>2;b.zb=g;b.B=h>>2;vb&&bc&&c.da&&!c.controller&&!c.Te&&!c.Ue?(b.Ya=c.Ya,b.fe=c.fe,b.da=c.da,Zb(b,Kc)):(b.ea=c?yc(32):0,b.W=c?yc(96):0,Zb(b,Ic));Mb(b,a.ha,k);a.sa[d]=b;a.Hd.push(d);return b}function te(a){a.sa!==a.ld&&(a.sa=a.ld,a.me=null,a.Hd=null,a.kd=null)}m=Ad.prototype;m.reset=function(){this.la.Ib&&this.Wb();pe(this);Oc(this);this.la.ud=!1};
function ue(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.I;break;case 2:c=a.M;break;case 3:c=a.H;break;case 4:c=I(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function ve(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.I=c;break;case 2:a.M=c;break;case 3:a.H=c;break;case 4:G(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}}
function pe(a){a.G=0;a.H=0;a.I=0;a.M=0;a.gb=0;a.P=0;a.K=0;a.J=0;a.cb=!1;a.ia=a.wa=0;a.aa=0;a.ig=0;a.L=0;a.Za=65520;a.Mc=0;a.Td=1023;a.ca=a.Pa=0;a.Wc=a.td=a.Vc=a.Xc=0;a.rb=-1;a.bc=a.sb=-1;a.re=a.U=-1;a.va=new dd(a,1,"CS");a.vb=new dd(a,2,"DS");a.Xa=new dd(a,2,"ES");a.ta=new dd(a,3,"SS");G(a,0);jd(a,0);if(80386<=a.ja){switch(a.Uc){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Za=16;a.ji=0;a.te=0;a.Pd=0;a.Ja=[0,0,0,0,null,null,0,
0];a.Ce=[null,null,null,null,null,null,0,0];a.Nb=new dd(a,2,"FS");a.Ob=new dd(a,2,"GS");te(a)}a.qf=new dd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ha=0;a.D=a.C=-1;a.$b=a.qf;a.ua=0;if(80286>a.ja)yd(a,0,65535);else{a.Ec=0;a.Ad=65535;a.Bc=new dd(a,5,"LDT",!0);a.Sa=new dd(a,4,"TSS",!0);a.Ea=new dd(a,6,"VER",!0);yd(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ja&&(d&=16777215);b=b.Aa=d;a.Ga=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}xd(a,0);ld(a)}
function we(a){2==a.Oc?(a.dc=a.na,a.Oa=xe,a.$a=ye,a.Jb=ze,2==a.ba?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=De,a.fa=Ee,a.ya=Fe)):(a.dc=a.oa,a.Oa=Ge,a.$a=He,a.Jb=Ie,2==a.ba?(a.W=Je,a.fa=Me,a.ya=Ne):(a.W=Oe,a.fa=Pe,a.ya=Qe))}function md(a,b){a.ba!=b&&(a.Ha|=1024,a.ba=b,a.R=2==b?65535:-1,Re(a))}function Re(a){2==a.ba?(a.Ia=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=Je,a.fa=Me,a.ya=Ne)):(a.Ia=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.W=De,a.fa=Ee,a.ya=Fe):(a.W=Oe,a.fa=Pe,a.ya=Qe))}
function Se(a){a.Oc=a.va.Oc;a.Ba=a.va.Ba;we(a);a.ba=a.va.ba;a.R=a.va.R;Re(a);a.Ha&=-3073}m.Qi=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+wd(this)|0};function Te(a,b,c){void 0===a.Id[b]&&(a.Id[b]=[]);a.Id[b].push(c)}function Ue(a,b,c){void 0!==c&&(null==a.le[b]&&a.ne++,a.le[b]=c)}function ef(a,b){var c=a.le[b];null!=c&&(c(--a.ne),delete a.le[b])}
function we(a){2==a.Oc?(a.dc=a.na,a.Oa=xe,a.$a=ye,a.Jb=ze,2==a.ba?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=De,a.fa=Ee,a.ya=Fe)):(a.dc=a.oa,a.Oa=Ge,a.$a=He,a.Jb=Ie,2==a.ba?(a.W=Je,a.fa=Ke,a.ya=Ne):(a.W=Oe,a.fa=Pe,a.ya=Qe))}function md(a,b){a.ba!=b&&(a.Ha|=1024,a.ba=b,a.R=2==b?65535:-1,Re(a))}function Re(a){2==a.ba?(a.Ia=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=Je,a.fa=Ke,a.ya=Ne)):(a.Ia=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.W=De,a.fa=Ee,a.ya=Fe):(a.W=Oe,a.fa=Pe,a.ya=Qe))}
function Se(a){a.Oc=a.va.Oc;a.Ba=a.va.Ba;we(a);a.ba=a.va.ba;a.R=a.va.R;Re(a);a.Ha&=-3073}m.Qi=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+wd(this)|0};function Te(a,b,c){void 0===a.Id[b]&&(a.Id[b]=[]);a.Id[b].push(c)}function Ue(a,b,c){void 0!==c&&(null==a.le[b]&&a.ne++,a.le[b]=c)}function Ve(a,b){var c=a.le[b];null!=c&&(c(--a.ne),delete a.le[b])}
function ff(a,b){for(var c=a.Ja[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ja[e],g=g&~(d>>2&3);b?a.sa[g>>>a.La].Sd(g&a.Fa,f,a):Gc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Dc(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<<g;a.ua|=2;break}}e>>=2;f>>=4}}}
function ld(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.hg=b&&!c?gf:Ed;ed(a.va,!1,b,c);ed(a.vb,!1,b,c);ed(a.ta,!1,b,c);ed(a.Xa,!1,b,c);80386<=a.ja&&(ed(a.Nb,!1,b,c),ed(a.Ob,!1,b,c));Se(a)}
m.save=function(){var a=new hf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.Ad,this.Mc,this.Td,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ja&&(g.push(this.ji),g.push(this.te),g.push(this.Pd),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,wd(this)];80386<=this.ja&&(b.push(this.Nb.save()),b.push(this.Ob.save()));N(a,1,b);N(a,2,[this.ka.lc,
this.Ka.lc,this.S,this.Ha,this.ua,this.D,this.C]);N(a,3,[0,this.uc,this.Y.Yd]);b=this.ea;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.V&&b.xg==b.Gb)||Rb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=$b||h.Wa||h.Ni){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,q=[];l<h.length;){for(var p=h[l],z=l+1;z<h.length&&h[z]===p;)z++;q[n++]=z-l;q[n++]=p;l=z}if(q.length<h.length){h=q;break a}}e[k]=h}}f||Rb(b,!1);e[d]=f;N(a,4,e);return a.data()};
this.Ka.lc,this.S,this.Ha,this.ua,this.D,this.C]);N(a,3,[0,this.uc,this.Y.Yd]);b=this.ea;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.V&&b.xg==b.Gb)||Rb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=ac||h.Wa||h.Ni){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,q=[];l<h.length;){for(var p=h[l],z=l+1;z<h.length&&h[z]===p;)z++;q[n++]=z-l;q[n++]=p;l=z}if(q.length<h.length){h=q;break a}}e[k]=h}}f||Rb(b,!1);e[d]=f;N(a,4,e);return a.data()};
m.restore=function(a){var b=a[0];this.G=b[0];this.H=b[1];this.I=b[2];this.M=b[3];var c=b[4];this.P=b[5];this.K=b[6];this.J=b[7];b=a[1];this.va.restore(b[1]);this.vb.restore(b[2]);this.ta.restore(b[3]);this.Xa.restore(b[4]);var d=b[5];d&&d.length&&(this.Za=d[0],this.Ec=d[1],this.Ad=d[2],this.Mc=d[3],this.Td=d[4],this.Bc.restore(d[5]),this.Sa.restore(d[6]),this.Pa=d[7],80386<=this.ja&&(this.ji=d[8],this.te=d[9],this.Pd=d[10],this.Ja=d[11],this.Ce=d[12]),ld(this));xd(this,b[6]);var d=!1,e;a:{e=this.ea;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ga){for(var l=0,n=Array(e.ga),q=0;q<k.length-1;)for(var p=k[q++],z=k[q++];p--;)n[l++]=z;k=n}l=e.sa[h];if(!l||!l.restore(k)){w("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Rb(e,f[g]);e=!0}e&&(yd(this,b[0],this.va.Z),G(this,c),jd(this,this.ta.Z),80386<=this.ja&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&jf(this,b[0])||this.vb;this.Ka=null!=b[1]&&jf(this,b[1])||this.ta;
this.S=b[2];this.Ha=b[3];this.ua=b[4];this.D=b[5];this.C=b[6];b=a[3];this.uc=b[1];Xc(this,b[2]);return d};function jf(a,b){switch(b){case "CS":return a.va;case "DS":return a.vb;case "SS":return a.ta;case "ES":return a.Xa;case "NULL":return a.qf;default:return[0,b,0,0,""]}}function kf(a,b){null!=yd(a,K(a),b)&&(a.S|=a.Dd)}function pd(a,b){-1!==a.vb.load(b)&&(a.S|=a.Dd)}
@ -138,21 +138,21 @@ m.restore=function(a){a=a[0];var b=0;this.kc=a[b++]&-57409;var c=a[b++];this.ma=
function Zf(a){return a.ma|a.B<<11}function gg(a,b){return isFinite(b)?!0:!fg(a,Infinity===b?8:16)}function hg(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,gg(a,d)||(d=null));return d}function ig(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,gg(a,d)||(d=null));return d}function jg(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,gg(a,d)||(d=null));return d}function kg(a,b,c){var d=null;null==b||null==c||!c&&fg(a,2)||(d=b/c,gg(a,d)||(d=null));return d}
function lg(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:0===b&&(d=16384));a.ma=a.ma&-18177|d;return!0}return!1}function mg(a,b,c){if(null==b)return null;var d=a.kc&3072;0==d?(d=Math.round(b),.5===d-b&&d%2&&d--):d=1024==d||3072==d&&0<b?Math.floor(b):Math.ceil(b);if(c){if(d>=c){if(fg(a,1))return null;d=-c}else if(d<-c){if(fg(a,1))return null;d=-c}a.L[0]=d|0;2147483648<c&&(a.L[1]=d/4294967296|0,!a.L[1]&&0>d&&(a.L[1]=-1))}return d}
function ng(a,b){var c=3;if(a.C&1<<b){var d=a.V[b],c=0;0===d?c=1:isFinite(d)||(c=2)}return c}function $f(a){for(var b=0,c=a.V.length-1;0<=c;c--)b<<=2,b|=ng(a,c);return b}function bg(a,b){a.C=0;for(var c=1;128>=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function og(a){var b=a.B+0&7;return a.C&1<<b?(a.pa[0]=a.V[b],!0):fg(a,1)?!1:(a.pa[0]=a.ka[0],!0)}function pg(a){var b=a.B+0&7;return a.C&1<<b?(a.X[0]=a.V[b],!0):fg(a,1)?!1:(a.X[0]=a.ka[0],!0)}
function U(a,b){var c=null,d=a.B+b&7;a.C&1<<d?c=a.V[d]:fg(a,1)||(c=a.ka[0]);return c}function W(a,b,c){return null!=c&&(isNaN(c)?!fg(a,1):1)?(b=a.B+b&7,a.V[b]=c,a.C|=1<<b,!0):!1}function Cg(a,b,c){var d=null;b=a.B+b&7;if(c||a.C&1<<b||!fg(a,1))c=b<<1,d=Dg(a,a.aa[c],a.aa[c+1]);return d}function Eg(a){return a.F.na(a.F.D)<<16>>16}function Fg(a){return a.F.oa(a.F.D)}function Gg(a){a.ua[0]=a.F.oa(a.F.D);return a.pa[0]}function Hg(a){a.L[0]=a.F.oa(a.F.D);a.L[1]=a.F.oa(a.F.D+4);return a.X[0]}
function U(a,b){var c=null,d=a.B+b&7;a.C&1<<d?c=a.V[d]:fg(a,1)||(c=a.ka[0]);return c}function W(a,b,c){return null!=c&&(isNaN(c)?!fg(a,1):1)?(b=a.B+b&7,a.V[b]=c,a.C|=1<<b,!0):!1}function qg(a,b,c){var d=null;b=a.B+b&7;if(c||a.C&1<<b||!fg(a,1))c=b<<1,d=rg(a,a.aa[c],a.aa[c+1]);return d}function Eg(a){return a.F.na(a.F.D)<<16>>16}function Fg(a){return a.F.oa(a.F.D)}function Gg(a){a.ua[0]=a.F.oa(a.F.D);return a.pa[0]}function Hg(a){a.L[0]=a.F.oa(a.F.D);a.L[1]=a.F.oa(a.F.D+4);return a.X[0]}
function Ig(a){a.ea[0]=a.F.oa(a.F.D);a.ea[1]=a.F.oa(a.F.D+4);a.ea[2]=a.F.na(a.F.D+8);return a.ea}m.ni=function(){this.F.nb(this.F.D,this.L[0])};m.nk=function(){this.F.nb(this.F.D,this.L[0]);this.F.nb(this.F.D+4,this.L[1])};m.qk=Xf.prototype.ni;m.pk=Xf.prototype.nk;function Jg(a){a.F.nb(a.F.D,a.ea[0]);a.F.nb(a.F.D+4,a.ea[1]);a.F.jb(a.F.D+8,a.ea[2])}
function Kg(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.L[0]=f;a.L[1]=c|(d|e)<<20;return a.X[0]}function Dg(a,b,c){var d=c>>20&2047,e=2147483648|(c&1048575)<<11|b>>>21;2047==d?d=32767:d?d+=15360:e&=2147483647;a.ea[0]=b<<11;a.ea[1]=e;a.ea[2]=c>>16&32768|d;return a.ea}function Lg(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function Mg(a,b){for(var c=0,d=0;b--;)c|=a%10<<d,a/=10,d+=4;return c}
function Kg(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.L[0]=f;a.L[1]=c|(d|e)<<20;return a.X[0]}function rg(a,b,c){var d=c>>20&2047,e=2147483648|(c&1048575)<<11|b>>>21;2047==d?d=32767:d?d+=15360:e&=2147483647;a.ea[0]=b<<11;a.ea[1]=e;a.ea[2]=c>>16&32768|d;return a.ea}function Lg(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function Mg(a,b){for(var c=0,d=0;b--;)c|=a%10<<d,a/=10,d+=4;return c}
function Ng(a){var b=null,c=1<<a.B;if(!(a.C&c)&&(a.ma&=-513,fg(a,65)))return b;a.C&=~c;b=a.V[a.B];a.B=a.B+1&7;return b}function Og(a,b){if(null!=b){var c=a.B-1&7,d=1<<c;if(a.C&d&&(a.ma|=512,fg(a,65)))return;if(isNaN(b)&&fg(a,1)){if(fg(a,1))return;b=NaN}a.V[a.B=c]=b;a.C|=d}}
function Pg(a,b){var c,d=a.F;c=d.tb(b);a.kc=c&-57409;c=d.tb(b+=d.ba);a.ma=c&-14337;a.B=(c&14336)>>11;ag(a);bg(a,d.tb(b+=d.ba));!(d.Za&1)||d.ca&131072?(a.W=d.tb(b+=d.ba),c=d.tb(b+=d.ba),a.ia=c&2047,a.W|=(c&-4096)<<4,a.fa=-1,a.U=d.tb(b+=d.ba),a.U|=(d.tb(b+=d.ba)&-4096)<<4,a.ga=-1):(a.W=d.tb(b+=d.ba),c=d.tb(b+=d.ba),a.fa=c&65535,a.ia=c>>16&2047,a.U=d.tb(b+=d.ba),a.ga=d.tb(b+=d.ba)&65535);return b+d.ba}
function Qg(a,b){var c=a.F;c.rc(b,a.kc);c.rc(b+=c.ba,Zf(a));c.rc(b+=c.ba,$f(a));if(!(c.Za&1)||c.ca&131072){var d=(a.fa<<4)+a.W;c.rc(b+=c.ba,d);c.rc(b+=c.ba,d>>4&-4096|a.ia);d=(a.ga<<4)+a.U;c.rc(b+=c.ba,d);c.rc(b+=c.ba,d>>4&-4096)}else c.rc(b+=c.ba,a.W),c.rc(b+=c.ba,a.fa|a.ia<<16),c.rc(b+=c.ba,a.U),c.rc(b+=c.ba,a.ga);return b+c.ba}var Rg=Math.log(10)/Math.LN2,Sg=Math.LOG2E,Tg=Math.PI,Ug=Math.log(2)/Math.LN10,Vg=Math.LN2,Wg=Math.pow(2,63);function Xg(){this.ma&=-32896;ag(this)}
function Yg(){lg(this,U(this,0),U(this,this.A))}function Zg(){lg(this,U(this,0),U(this,this.A))&&Ng(this)}function $g(){Zg.call(this)}function ah(){W(this,0,kg(this,U(this,0),Gg(this)))}function bh(){this.C&=~(1<<this.B)}function ch(){Yf(this)}function dh(){this.kc=this.F.na(this.F.D)&-57409}function eh(){Pg(this,this.F.D)}function fh(){for(var a=this.F,b=Pg(this,a.D),c=this.ea,d=0;d<this.V.length;d++)c[0]=a.oa(b),c[1]=a.oa(b+=4),c[2]=a.na(b+=4),c&&W(this,d,Kg(this,c)),b+=2}
function gh(){for(var a=this.F,b=Qg(this,a.D),c=0;c<this.V.length;c++){var d=Cg(this,c,!0);a.nb(b,d[0]);a.nb(b+=4,d[1]);a.jb(b+=4,d[2]);b+=2}Yf(this)}function hh(){Qg(this,this.F.D);this.kc|=63}function ih(){W(this,this.A,U(this,0))&&Ng(this)}function jh(){ih.call(this)}function kh(){this.F.jb(this.F.D,this.kc)}function lh(){this.F.jb(this.F.D,Zf(this))}function mh(){80287<=this.ja&&(this.F.G=this.F.G&-65536|Zf(this))}function nh(){var a=U(this,0);W(this,0,U(this,this.A));W(this,this.A,a)}
function gh(){for(var a=this.F,b=Qg(this,a.D),c=0;c<this.V.length;c++){var d=qg(this,c,!0);a.nb(b,d[0]);a.nb(b+=4,d[1]);a.jb(b+=4,d[2]);b+=2}Yf(this)}function hh(){Qg(this,this.F.D);this.kc|=63}function ih(){W(this,this.A,U(this,0))&&Ng(this)}function jh(){ih.call(this)}function kh(){this.F.jb(this.F.D,this.kc)}function lh(){this.F.jb(this.F.D,Zf(this))}function mh(){80287<=this.ja&&(this.F.G=this.F.G&-65536|Zf(this))}function nh(){var a=U(this,0);W(this,0,U(this,this.A));W(this,this.A,a)}
function oh(){nh.call(this)}
var ph={216:{0:function(){W(this,0,hg(this,U(this,0),Gg(this)))},1:function(){W(this,0,jg(this,U(this,0),Gg(this)))},2:function(){lg(this,U(this,0),Gg(this))},3:function(){lg(this,U(this,0),Gg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Gg(this)))},5:function(){W(this,0,ig(this,Gg(this),U(this,0)))},6:ah,7:ah,48:function(){W(this,0,hg(this,U(this,0),U(this,this.A)))},49:function(){W(this,0,jg(this,U(this,0),U(this,this.A)))},50:Yg,51:Zg,52:function(){W(this,0,ig(this,U(this,0),U(this,
this.A)))},53:function(){W(this,0,ig(this,U(this,this.A),U(this,0)))},54:function(){W(this,0,kg(this,U(this,0),U(this,this.A)))},55:function(){W(this,0,kg(this,U(this,this.A),U(this,0)))}},217:{0:function(){Og(this,Gg(this))},2:function(){og(this)&&this.qk()},3:function(){og(this)&&(this.qk(),Ng(this))},4:eh,5:dh,6:hh,7:kh,48:function(){Og(this,U(this,this.A))},49:nh,50:function(){},51:jh,64:function(){W(this,0,-U(this,0))},65:function(){W(this,0,Math.abs(U(this,0)))},68:function(){lg(this,U(this,
0),0)},69:function(){this.ma&=-18177;this.aa[((this.B+0&7)<<1)+1]&-2147483648&&(this.ma|=512);if(3==ng(this,this.B))this.ma|=16640;else{var a=U(this,0);this.ma=isNaN(a)?this.ma|256:0===a?this.ma|16384:Infinity===a||-Infinity===a?this.ma|1280:this.ma|1024}},80:function(){Og(this,1)},81:function(){Og(this,Rg)},82:function(){Og(this,Sg)},83:function(){Og(this,Tg)},84:function(){Og(this,Ug)},85:function(){Og(this,Vg)},86:function(){Og(this,0)},96:function(){W(this,0,Math.pow(2,U(this,0))-1)},97:function(){W(this,
1,U(this,1)*Math.log(U(this,0))/Math.LN2)&&Ng(this)},98:function(){W(this,0,Math.tan(U(this,0)))&&Og(this,1)},99:function(){W(this,1,Math.atan2(U(this,1),U(this,0)))&&Ng(this)},100:function(){var a=U(this,0);null!=a&&(this.X[0]=a,W(this,0,(this.L[1]>>20&2047)-1023),this.L[1]=(this.L[1]|1072693248)&-1073741825,Og(this,this.X[0]))},102:function(){this.B=this.B-1&7;this.ma&=-513},103:function(){this.B=this.B+1&7;this.ma&=-513},112:function(){W(this,0,U(this,0)%U(this,1))},113:function(){W(this,1,U(this,
1)*Math.log(U(this,0)+1)/Math.LN2)&&Ng(this)},114:function(){var a=U(this,0),b=null;if(0<=a||!fg(this,1))b=Math.sqrt(a),gg(this,b)||(b=null);W(this,0,b)},116:function(){W(this,0,mg(this,U(this,0),Wg))},117:function(){var a=U(this,0),b=U(this,1);null!=a&&null!=b&&W(this,0,a*Math.pow(2,0<b?Math.floor(b):Math.ceil(b)))}},218:{0:function(){W(this,0,hg(this,U(this,0),Fg(this)))},1:function(){W(this,0,jg(this,U(this,0),Fg(this)))},2:function(){lg(this,U(this,0),Fg(this))},3:function(){lg(this,U(this,0),
Fg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Fg(this)))},5:function(){W(this,0,ig(this,Fg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Fg(this)))},7:function(){W(this,0,kg(this,Fg(this),U(this,0)))}},219:{0:function(){Og(this,Fg(this))},2:function(){null!=mg(this,U(this,0),2147483648)&&this.ni()},3:function(){null!=mg(this,U(this,0),2147483648)&&(this.ni(),Ng(this))},5:function(){Og(this,Kg(this,Ig(this)))},7:function(){Cg(this,0)&&(Jg(this),Ng(this))},64:function(){8087==
Fg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Fg(this)))},5:function(){W(this,0,ig(this,Fg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Fg(this)))},7:function(){W(this,0,kg(this,Fg(this),U(this,0)))}},219:{0:function(){Og(this,Fg(this))},2:function(){null!=mg(this,U(this,0),2147483648)&&this.ni()},3:function(){null!=mg(this,U(this,0),2147483648)&&(this.ni(),Ng(this))},5:function(){Og(this,Kg(this,Ig(this)))},7:function(){qg(this,0)&&(Jg(this),Ng(this))},64:function(){8087==
this.ja&&(this.kc&=-129)},65:function(){8087==this.ja&&(this.kc|=128)},66:Xg,67:ch,68:function(){},115:function(){}},220:{0:function(){W(this,0,hg(this,U(this,0),Hg(this)))},1:function(){W(this,0,jg(this,U(this,0),Hg(this)))},2:function(){lg(this,U(this,0),Hg(this))},3:function(){lg(this,U(this,0),Hg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Hg(this)))},5:function(){W(this,0,ig(this,Hg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Hg(this)))},7:function(){W(this,0,kg(this,
Hg(this),U(this,0)))},48:function(){W(this,this.A,hg(this,U(this,this.A),U(this,0)))},49:function(){W(this,this.A,jg(this,U(this,this.A),U(this,0)))},50:function(){Yg.call(this)},51:$g,52:function(){W(this,this.A,ig(this,U(this,0),U(this,this.A)))},53:function(){W(this,this.A,ig(this,U(this,this.A),U(this,0)))},54:function(){W(this,this.A,kg(this,U(this,0),U(this,this.A)))},55:function(){W(this,this.A,kg(this,U(this,this.A),U(this,0)))}},221:{0:function(){Og(this,Hg(this))},2:function(){pg(this)&&
this.pk()},3:function(){pg(this)&&(this.pk(),Ng(this))},4:fh,6:gh,7:lh,48:bh,49:oh,50:function(){W(this,this.A,U(this,0))},51:ih},222:{0:function(){W(this,0,hg(this,U(this,0),Eg(this)))},1:function(){W(this,0,jg(this,U(this,0),Eg(this)))},2:function(){lg(this,U(this,0),Eg(this))},3:function(){lg(this,U(this,0),Eg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Eg(this)))},5:function(){W(this,0,ig(this,Eg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Eg(this)))},7:function(){W(this,
@ -175,7 +175,7 @@ function bi(a,b){this.A-=-1===this.C?-1===this.D?this.B.Lj:this.B.Kj:this.B.Ij;r
function ei(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ja||80386==this.ja&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return bi.call(this,0,b)}
function fi(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ja){b=this.Nb.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ja){b=this.Ob.Z;break}default:C.call(this,6),b=a}-1!==this.C&&md(this,2);return bi.call(this,0,b)}
function Th(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ia=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ia=a*b|0,this.wa=0}function gi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function hi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R}
function ii(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function ji(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ki(){return uf(this)?1:0}function li(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0}
function ii(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function ji(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ki(){return uf(this)?1:0}function li(){return pf(this)?1:0}function mi(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0}
function Hi(){return pf(this)||sf(this)?0:1}function Ii(){return tf(this)?1:0}function Ji(){return tf(this)?0:1}function Ki(){return qf(this)?1:0}function Li(){return qf(this)?0:1}function Mi(){return!tf(this)!=!uf(this)?1:0}function Ni(){return!tf(this)!=!uf(this)?0:1}function Oi(){return sf(this)||!tf(this)!=!uf(this)?1:0}function Pi(){return sf(this)||!tf(this)!=!uf(this)?0:1}function Qi(a,b){return Ri.call(this,a,b,this.xa())}function Si(a,b){return Ti.call(this,a,b,this.xa())}
function Ui(a,b){return Ri.call(this,a,b,this.I&31)}function Vi(a,b){return Ti.call(this,a,b,this.I&31)}function Wi(a,b){return Xi.call(this,a,b,this.xa())}function Yi(a,b){return Zi.call(this,a,b,this.xa())}function $i(a,b){return Xi.call(this,a,b,this.I&31)}function aj(a,b){return Zi.call(this,a,b,this.I&31)}function bj(a,b){var c=a-b|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}
function cj(a,b){var c=a-b|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function dj(a,b){vf(this,a&b,128);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function ej(a,b){vf(this,a&b,this.Ia);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function fj(a,b){var c=this.G&this.R,d=(1<<(this.I&31))-1;return a&~(d<<c)|(b&d)<<c}
@ -186,7 +186,7 @@ function nj(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a
function pj(a){this.Za=a;ld(this);this.Za&-2147483648?re(this):te(this)}function zd(a){this.Pd=a;Ub(this)}function qj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Ri(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;vf(this,a,32768,d&32768)}return a}function Ti(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;vf(this,a,-2147483648,d&-2147483648)}return a}
function Xi(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;vf(this,a,32768,d&1)}return a}function Zi(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;vf(this,a,-2147483648,d&1)}return a}function rj(){this.A-=-1===this.D?2:this.B.Yj;return 1}function sj(){var a=this.I&255;this.A-=(-1===this.D?this.B.Uh:this.B.Th)+(a<<this.B.Vh);return a}function tj(){var a=this.xa();this.A-=(-1===this.D?this.B.Uh:this.B.Th)+(a<<this.B.Vh);return a}function uj(){return null}
function vj(){return this.aa}function wj(a,b){this.bc=this.va.Z;this.sb=this.ta.Z;this.U=this.ga;var c=K(this),d=this.ba;null!=yd(this,a,b,!0)&&(od(this,this.bc,d,2),od(this,c,d,d));this.bc=this.sb=this.U=-1}function xj(a,b,c){this.A-=this.B.wj+(c||0);c=wd(this);var d=this.va.Z,e=K(this);a=this.va.Wi(a);-1!==a&&(J(this,c),J(this,d),J(this,e),null!=b&&J(this,b),this.rb=-1,lf(this,a))}
function yj(a){this.sb=this.ta.Z;this.U=this.ga;var b=D(this),c=D(this);a&&G(this,I(this)+a);yd(this,b,c,!1)&&(a&&G(this,I(this)+a),zj.call(this,this.vb),zj.call(this,this.Xa),80386<=this.ja&&(zj.call(this,this.Nb),zj.call(this,this.Ob)));2==a&&this.ne&&ef(this,this.Ga);this.sb=this.U=-1}function Aj(){8086==this.ja?(this.rb=-1,xj.call(this,0,null,2)):C.call(this,0,null,2)}function Vf(a,b){this.rb=a;void 0===b&&(b=11);xj.call(this,a,null,b)}
function yj(a){this.sb=this.ta.Z;this.U=this.ga;var b=D(this),c=D(this);a&&G(this,I(this)+a);yd(this,b,c,!1)&&(a&&G(this,I(this)+a),zj.call(this,this.vb),zj.call(this,this.Xa),80386<=this.ja&&(zj.call(this,this.Nb),zj.call(this,this.Ob)));2==a&&this.ne&&Ve(this,this.Ga);this.sb=this.U=-1}function Aj(){8086==this.ja?(this.rb=-1,xj.call(this,0,null,2)):C.call(this,0,null,2)}function Vf(a,b){this.rb=a;void 0===b&&(b=11);xj.call(this,a,null,b)}
function C(a,b,c,d){var e=!1;this.la.Wd?80186<=this.ja&&(e=!0,0>this.rb?(-1!=this.bc&&(this.bc!==this.va.Z&&(this.va.Lb=this.bc&3,kf(this,this.bc)),this.bc=-1),this.re!==this.Ga&&lf(this,this.re),-1!=this.sb&&(this.sb!==this.ta.Z&&jd(this,this.sb),this.sb=-1),-1!==this.U&&(this.U!==this.ga&&G(this,this.gb&~this.ta.Ba|this.U-this.ta.Aa),this.U=-1)):8!=this.rb?(b=0,a=8):(b=0,a=-1,pe(this),e=d=!1)):lf(this,this.re);var f=a,g=b,h=32,k=If(this,this.Ga);204!=k||this.Td||(d=!1);this.ca&131072&&(6==f&&99==
k||13==f&&205==k)&&(d=!1);!1===d&&(h|=1);983040<=this.Ga&&1048575>=this.Ga&&(d=!1);A(this,h|-2147483648)&&(d=!0);if(A(this,h)||d){var l=this.la.Ib,f="Fault "+t(f)+(null!=g?" ("+u(g)+")":"")+" on opcode "+t(k);d&&l&&(f+=" (blocked)");this.ha?(y(this,f,d||h,!0),d&&(d=l,this.ha.Wb())):(this.Na(f),this.Wb())}if(d&&e)throw-1;if(e)throw this.rb=a,xj.call(this,a,b,c),this.re=this.Ga,this.S=1==a?this.S|8192:this.S|4096,a;}
function se(a,b,c){this.te=a;a=0;b&&(a|=1);c&&(a|=2);3==this.pa&&(a|=4);C.call(this,14,a)}function zj(a){var b=a.wb&7680;a.Z&65528&&(6144==b||7168==b||7168>b&&a.Gc<this.pa&&a.Gc<(a.Z&3))&&a.load(0)}
@ -254,7 +254,7 @@ function Je(a){var b,c;switch((this.L=this.xa())&199){case 0:c=R(this,this.G);br
break;case 69:c=Mf(this,this.P+this.T());break;case 70:c=R(this,this.K+this.T());break;case 71:c=R(this,this.J+this.T());break;case 128:c=R(this,this.G+T(this));break;case 129:c=R(this,this.I+T(this));break;case 130:c=R(this,this.M+T(this));break;case 131:c=R(this,this.H+T(this));break;case 132:c=R(this,Bj.call(this,2)+T(this));break;case 133:c=Mf(this,this.P+T(this));break;case 134:c=R(this,this.K+T(this));break;case 135:c=R(this,this.J+T(this));break;case 192:c=this.G&65535;break;case 193:c=this.I&
65535;break;case 194:c=this.M&65535;break;case 195:c=this.H&65535;break;case 196:c=I(this)&65535;break;case 197:c=this.P&65535;break;case 198:c=this.K&65535;break;case 199:c=this.J&65535;break;default:c=0}var d=this.L>>3&7;switch(d){case 0:b=this.G&65535;break;case 1:b=this.I&65535;break;case 2:b=this.M&65535;break;case 3:b=this.H&65535;break;case 4:b=I(this)&65535;break;case 5:b=this.P&65535;break;case 6:b=this.K&65535;break;case 7:b=this.J&65535;break;default:b=0}a=a.call(this,b,c);switch(d){case 0:this.G=
this.G&-65536|a;break;case 1:this.I=this.I&-65536|a;break;case 2:this.M=this.M&-65536|a;break;case 3:this.H=this.H&-65536|a;break;case 4:G(this,I(this)&-65536|a);break;case 5:this.P=this.P&-65536|a;break;case 6:this.K=this.K&-65536|a;break;case 7:this.J=this.J&-65536|a}}
function Me(a){var b,c,d=(this.L=this.xa())&199;switch(d){case 0:b=R(this,this.G);this.C=this.D;break;case 1:b=R(this,this.I);this.C=this.D;break;case 2:b=R(this,this.M);this.C=this.D;break;case 3:b=R(this,this.H);this.C=this.D;break;case 4:b=R(this,Bj.call(this,0));this.C=this.D;break;case 5:b=R(this,T(this));this.C=this.D;break;case 6:b=R(this,this.K);this.C=this.D;break;case 7:b=R(this,this.J);this.C=this.D;break;case 64:b=R(this,this.G+this.T());this.C=this.D;break;case 65:b=R(this,this.I+this.T());
function Ke(a){var b,c,d=(this.L=this.xa())&199;switch(d){case 0:b=R(this,this.G);this.C=this.D;break;case 1:b=R(this,this.I);this.C=this.D;break;case 2:b=R(this,this.M);this.C=this.D;break;case 3:b=R(this,this.H);this.C=this.D;break;case 4:b=R(this,Bj.call(this,0));this.C=this.D;break;case 5:b=R(this,T(this));this.C=this.D;break;case 6:b=R(this,this.K);this.C=this.D;break;case 7:b=R(this,this.J);this.C=this.D;break;case 64:b=R(this,this.G+this.T());this.C=this.D;break;case 65:b=R(this,this.I+this.T());
this.C=this.D;break;case 66:b=R(this,this.M+this.T());this.C=this.D;break;case 67:b=R(this,this.H+this.T());this.C=this.D;break;case 68:b=R(this,Bj.call(this,1)+this.T());this.C=this.D;break;case 69:b=Mf(this,this.P+this.T());this.C=this.D;break;case 70:b=R(this,this.K+this.T());this.C=this.D;break;case 71:b=R(this,this.J+this.T());this.C=this.D;break;case 128:b=R(this,this.G+T(this));this.C=this.D;break;case 129:b=R(this,this.I+T(this));this.C=this.D;break;case 130:b=R(this,this.M+T(this));this.C=
this.D;break;case 131:b=R(this,this.H+T(this));this.C=this.D;break;case 132:b=R(this,Bj.call(this,2)+T(this));this.C=this.D;break;case 133:b=Mf(this,this.P+T(this));this.C=this.D;break;case 134:b=R(this,this.K+T(this));this.C=this.D;break;case 135:b=R(this,this.J+T(this));this.C=this.D;break;case 192:b=this.G&65535;break;case 193:b=this.I&65535;break;case 194:b=this.M&65535;break;case 195:b=this.H&65535;break;case 196:b=I(this)&65535;break;case 197:b=this.P&65535;break;case 198:b=this.K&65535;break;
case 199:b=this.J&65535;break;default:b=0}switch(this.L>>3&7){case 0:c=this.G&65535;break;case 1:c=this.I&65535;break;case 2:c=this.M&65535;break;case 3:c=this.H&65535;break;case 4:c=I(this)&65535;break;case 5:c=this.P&65535;break;case 6:c=this.K&65535;break;case 7:c=this.J&65535;break;default:c=0}a=a.call(this,b,c);switch(d){case 192:this.G=this.G&-65536|a;break;case 193:this.I=this.I&-65536|a;break;case 194:this.M=this.M&-65536|a;break;case 195:this.H=this.H&-65536|a;break;case 196:G(this,I(this)&
@ -279,10 +279,10 @@ function Bj(a){var b=this.xa(),c=b>>6,d,e;switch(b>>3&7){case 0:d=this.G;break;c
function $d(){this.tc[this.xa()].call(this)}function he(){J(this,I(this)&this.R);this.A-=this.B.Sc}function Gd(){this.U=this.ga;var a=I(this)&this.R;J(this,this.G&this.R);J(this,this.I&this.R);J(this,this.M&this.R);J(this,this.H&this.R);J(this,a);J(this,this.P&this.R);J(this,this.K&this.R);J(this,this.J&this.R);this.A-=this.B.Sj;this.U=-1}
function Hd(){this.U=this.ga;this.J=this.J&~this.R|D(this);this.K=this.K&~this.R|D(this);this.P=this.P&~this.R|D(this);G(this,I(this)+this.ba);this.H=this.H&~this.R|D(this);this.M=this.M&~this.R|D(this);this.I=this.I&~this.R|D(this);this.G=this.G&~this.R|D(this);this.A-=this.B.Qj;this.U=-1}function Id(){this.W.call(this,yh)}function ie(){!(this.Za&1)||this.ca&131072?C.call(this,6):this.fa.call(this,xh)}function je(){this.S|=20;this.ka=this.Ka=this.Nb;this.A-=this.B.od}
function ke(){this.S|=20;this.ka=this.Ka=this.Ob;this.A-=this.B.od}function le(){this.S|=1024;this.Ha&1024||(this.ba^=6,this.R^=-65536,Re(this));this.A-=this.B.od}function me(){this.S|=2048;this.Ha&2048||(this.Oc^=6,this.Ba^=-65536,we(this));this.A-=this.B.od}function Jd(){J(this,this.Ma());this.A-=this.B.Sc}function Kd(){this.W.call(this,Qh)}function Ld(){J(this,this.T());this.A-=this.B.Sc}function Md(){this.W.call(this,Oh)}
function Nd(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=this.M&65535;Hf(this,e,1,!0)&&(e=ic(this.ea,e,1,this.Ga-b-1),this.qc(this.Xa.oc(this.J&c,1),e),this.J=this.J&~c|this.J+(this.ca&1024?-1:1)&c,this.I=this.I&~c|this.I-b&c,this.A-=d,a&&(nf(this),this.S|=256))}}
function Od(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=this.M&65535;Hf(this,e,this.ba,!0)&&(e=ic(this.ea,e,this.ba,this.Ga-b-1),this.rc(this.Xa.oc(this.J&c,this.ba),e),this.J=this.J&~c|this.J+(this.ca&1024?-this.ba:this.ba)&c,this.I=this.I&~c|this.I-b&c,this.A-=d,a&&(nf(this),this.S|=256))}}
function Pd(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=this.M&65535;if(Hf(this,e,1,!1)){var f=this.Qa(this.vb.nc(this.K&c,1));mc(this.ea,e,1,f,this.Ga-b-1);this.K=this.K&~c|this.K+(this.ca&1024?-1:1)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(nf(this),this.S|=256)}}}
function Qd(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=nd(this,this.vb,this.K&c),f=this.M&65535;Hf(this,f,this.ba,!1)&&(mc(this.ea,f,this.ba,e,this.Ga-b-1),this.K=this.K&~c|this.K+(this.ca&1024?-this.ba:this.ba)&c,this.I=this.I&~c|this.I-b&c,this.A-=d,a&&(nf(this),this.S|=256))}}function Cj(){var a=this.T();uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Nd(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=this.M&65535;Hf(this,e,1,!0)&&(e=jc(this.ea,e,1,this.Ga-b-1),this.qc(this.Xa.oc(this.J&c,1),e),this.J=this.J&~c|this.J+(this.ca&1024?-1:1)&c,this.I=this.I&~c|this.I-b&c,this.A-=d,a&&(nf(this),this.S|=256))}}
function Od(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=this.M&65535;Hf(this,e,this.ba,!0)&&(e=jc(this.ea,e,this.ba,this.Ga-b-1),this.rc(this.Xa.oc(this.J&c,this.ba),e),this.J=this.J&~c|this.J+(this.ca&1024?-this.ba:this.ba)&c,this.I=this.I&~c|this.I-b&c,this.A-=d,a&&(nf(this),this.S|=256))}}
function Pd(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=this.M&65535;if(Hf(this,e,1,!1)){var f=this.Qa(this.vb.nc(this.K&c,1));nc(this.ea,e,1,f,this.Ga-b-1);this.K=this.K&~c|this.K+(this.ca&1024?-1:1)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(nf(this),this.S|=256)}}}
function Qd(){var a=1,b=0,c=this.Ba,d=5;this.Ha&192&&(a=this.I&c,b=1,this.Ha&256&&(d=4));if(a--){var e=nd(this,this.vb,this.K&c),f=this.M&65535;Hf(this,f,this.ba,!1)&&(nc(this.ea,f,this.ba,e,this.Ga-b-1),this.K=this.K&~c|this.K+(this.ca&1024?-this.ba:this.ba)&c,this.I=this.I&~c|this.I-b&c,this.A-=d,a&&(nf(this),this.S|=256))}}function Cj(){var a=this.T();uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Dj(){var a=this.T();uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}function Ej(){var a=this.T();pf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Fj(){var a=this.T();pf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}function Gj(){var a=this.T();sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Hj(){var a=this.T();sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}
function Ij(){var a=this.T();pf(this)||sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Jj(){var a=this.T();pf(this)||sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}function Kj(){var a=this.T();tf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Lj(){var a=this.T();tf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}function Mj(){var a=this.T();qf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Nj(){var a=this.T();qf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}function Oj(){var a=this.T();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Pj(){var a=this.T();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Qj(){var a=this.T();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
@ -318,12 +318,12 @@ this.I&-256|this.xa();this.A-=this.B.gc},function(){this.M=this.M&-256|this.xa()
~this.R|this.Ma();this.A-=this.B.gc},function(){this.M=this.M&~this.R|this.Ma();this.A-=this.B.gc},function(){this.H=this.H&~this.R|this.Ma();this.A-=this.B.gc},function(){G(this,I(this)&~this.R|this.Ma());this.A-=this.B.gc},function(){this.P=this.P&~this.R|this.Ma();this.A-=this.B.gc},function(){this.K=this.K&~this.R|this.Ma();this.A-=this.B.gc},function(){this.J=this.J&~this.R|this.Ma();this.A-=this.B.gc},bk,ck,bk,ck,function(){this.W.call(this,Xh)},function(){this.W.call(this,Vh)},function(){this.S|=
1;this.Jb.call(this,jk,this.xa)},function(){this.S|=1;this.ya.call(this,jk,this.Ma)},dk,ek,dk,ek,function(){if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{var a=this.B.xj;this.rb=-1;xj.call(this,3,null,a)}},function(){var a=this.xa();if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{var b;a:{b=this.Id[a];if(void 0!==b)for(var c=0;c<b.length;c++)if(!b[c](this.Ga)){b=!1;break a}this.la.Mi&&A(this,16)&&kk(this.ha,a,this.Ga);b=!0}b?(this.rb=-1,xj.call(this,a,null,0)):this.A--}},function(){if(uf(this))if(this.ca&
131072&&3>this.Pa)C.call(this,13,0);else{var a=this.B.yj;this.rb=-1;xj.call(this,4,null,a)}else this.A-=this.B.zj},function(){if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{this.sb=this.ta.Z;this.U=this.ga;this.A-=this.B.vj;if(this.Za&1&&this.ca&16384){var a=this.na(this.Sa.Aa+0);kd(this.va,a,!1)}else{var a=this.pa,b=D(this),c=D(this),d=D(this);if(this.ca&131072)d=d&131071|this.ca&-131072;else if(d&131072){var e=D(this),f=D(this),g=D(this),h=D(this),k=D(this),l=D(this);ld(this,!0,!0);jd(this,
f);G(this,e);vd(this,g);pd(this,h);this.Nb.load(k);this.Ob.load(l)}null!=yd(this,b,c,!1)&&(xd(this,d,a),this.ne&&ef(this,this.Ga))}this.sb=this.U=-1}},function(){this.Jb.call(this,Yj,rj)},function(){this.ya.call(this,2==this.ba?Zj:ak,rj)},function(){this.Jb.call(this,Yj,sj)},function(){this.ya.call(this,2==this.ba?Zj:ak,sj)},function(){var a=this.xa();if(a){var b=this.G&255;this.G=this.G&-65536|b/a<<8|b%a;vf(this,this.G,128);this.A-=this.B.aj}else Aj.call(this)},function(){var a=this.G&255,b=(this.G>>
f);G(this,e);vd(this,g);pd(this,h);this.Nb.load(k);this.Ob.load(l)}null!=yd(this,b,c,!1)&&(xd(this,d,a),this.ne&&Ve(this,this.Ga))}this.sb=this.U=-1}},function(){this.Jb.call(this,Yj,rj)},function(){this.ya.call(this,2==this.ba?Zj:ak,rj)},function(){this.Jb.call(this,Yj,sj)},function(){this.ya.call(this,2==this.ba?Zj:ak,sj)},function(){var a=this.xa();if(a){var b=this.G&255;this.G=this.G&-65536|b/a<<8|b%a;vf(this,this.G,128);this.A-=this.B.aj}else Aj.call(this)},function(){var a=this.G&255,b=(this.G>>
8&255)*this.xa()|0,c=a+b|0;this.G=this.G&-65536|c&255;of(this,a,b,c,191);this.A-=this.B.$i},function(){this.G=this.G&-256|(pf(this)?255:0);this.A-=2},function(){this.G=this.G&-256|Jf(this,this.ka,this.H+(this.G&255));this.A-=this.B.Zj},function(){fk.call(this,216)},function(){fk.call(this,217)},function(){fk.call(this,218)},function(){fk.call(this,219)},function(){fk.call(this,220)},function(){fk.call(this,221)},function(){fk.call(this,222)},function(){fk.call(this,223)},function(){var a=this.T(),
b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b&&!sf(this)?(O(this,K(this)+a),this.A-=this.B.Gj):this.A-=this.B.Gh},function(){var a=this.T(),b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b&&sf(this)?(O(this,K(this)+a),this.A-=this.B.Hh):this.A-=this.B.Ih},function(){var a=this.T(),b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b?(O(this,K(this)+a),this.A-=this.B.Fj):this.A-=this.B.Gh},function(){var a=this.T();this.I&this.Ba?this.A-=this.B.Ih:(O(this,K(this)+a),this.A-=this.B.Hh)},function(){var a=this.xa();
Hf(this,a,1,!0)&&(this.G=this.G&-256|ic(this.ea,a,1,this.Ga-2)&255,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|ic(this.ea,a,this.ba,this.Ga-2)&this.R,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,1,!1)&&(mc(this.ea,a,1,this.G&255,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.xa();Hf(this,a,this.ba,!1)&&(mc(this.ea,a,this.ba,this.G&this.R,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.Ma(),b=K(this),a=b+a;J(this,b);O(this,a);
this.A-=this.B.ej},function(){var a=this.Ma();O(this,K(this)+a);this.A-=this.B.Ch},function(){yd(this,this.Ma(),Rf(this));this.A-=this.B.Bj},function(){var a=this.T();O(this,K(this)+a);this.A-=this.B.Ch},function(){var a=this.M&65535;Hf(this,a,1,!0)&&(this.G=this.G&-256|ic(this.ea,a,1,this.Ga-1)&255,this.A-=this.B.Ah)},function(){var a=this.M&65535;Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|ic(this.ea,a,this.ba,this.Ga-1)&this.R,this.A-=this.B.Ah)},function(){var a=this.M&65535;Hf(this,a,1,!1)&&
(mc(this.ea,a,1,this.G&255,this.Ga-1),this.A-=this.B.Oh)},function(){var a=this.M&65535;Hf(this,a,2,!1)&&(mc(this.ea,a,this.ba,this.G&this.R,this.Ga-1),this.A-=this.B.Oh)},gk,gk,function(){this.S|=132;this.A-=this.B.od},function(){this.S|=68;this.A-=this.B.od},function(){this.ca&131072?C.call(this,13,0):(this.ua|=4,this.A-=2,this.ha&&A(this,-2147483648)?(nf(this),this.ha.Wb()):this.ca&512||(this.ha&&nf(this),this.Wb()))},function(){pf(this)?xf(this):wf(this);this.A-=2},function(){this.cb=!1;this.Jb.call(this,
Hf(this,a,1,!0)&&(this.G=this.G&-256|jc(this.ea,a,1,this.Ga-2)&255,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|jc(this.ea,a,this.ba,this.Ga-2)&this.R,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,1,!1)&&(nc(this.ea,a,1,this.G&255,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.xa();Hf(this,a,this.ba,!1)&&(nc(this.ea,a,this.ba,this.G&this.R,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.Ma(),b=K(this),a=b+a;J(this,b);O(this,a);
this.A-=this.B.ej},function(){var a=this.Ma();O(this,K(this)+a);this.A-=this.B.Ch},function(){yd(this,this.Ma(),Rf(this));this.A-=this.B.Bj},function(){var a=this.T();O(this,K(this)+a);this.A-=this.B.Ch},function(){var a=this.M&65535;Hf(this,a,1,!0)&&(this.G=this.G&-256|jc(this.ea,a,1,this.Ga-1)&255,this.A-=this.B.Ah)},function(){var a=this.M&65535;Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|jc(this.ea,a,this.ba,this.Ga-1)&this.R,this.A-=this.B.Ah)},function(){var a=this.M&65535;Hf(this,a,1,!1)&&
(nc(this.ea,a,1,this.G&255,this.Ga-1),this.A-=this.B.Oh)},function(){var a=this.M&65535;Hf(this,a,2,!1)&&(nc(this.ea,a,this.ba,this.G&this.R,this.Ga-1),this.A-=this.B.Oh)},gk,gk,function(){this.S|=132;this.A-=this.B.od},function(){this.S|=68;this.A-=this.B.od},function(){this.ca&131072?C.call(this,13,0):(this.ua|=4,this.A-=2,this.ha&&A(this,-2147483648)?(nf(this),this.ha.Wb()):this.ca&512||(this.ha&&nf(this),this.Wb()))},function(){pf(this)?xf(this):wf(this);this.A-=2},function(){this.cb=!1;this.Jb.call(this,
lk,uj);this.cb&&(this.G=this.G&~this.R|this.ia&this.R)},function(){this.cb=!1;this.ya.call(this,mk,uj);this.cb&&(this.G=this.G&~this.R|this.ia&this.R,this.M=this.M&~this.R|this.wa&this.R)},function(){xf(this);this.A-=2},function(){wf(this);this.A-=2},function(){this.pa>this.Pa?C.call(this,13,0):(this.ca&=-513,this.A-=this.B.cj)},function(){this.pa>this.Pa?C.call(this,13,0):(this.ca|=512,this.S|=4,this.A-=2)},function(){this.ca&=-1025;this.A-=2},function(){this.ca|=1024;this.A-=2},function(){this.Jb.call(this,
Cd,uj)},function(){this.ya.call(this,Dd,uj)}],Tj=[th,gi,rh,ii,vh,bj,jj,Jh],hk=[uh,hi,sh,ji,wh,cj,kj,Kh],ik=[function(a,b){this.A-=-1===this.C?this.B.zc:this.B.Rj;return b},Mh,Mh,Mh,Mh,Mh,Mh,Mh],jk=[function(a,b){this.A-=-1===this.C?this.B.Jj:this.B.Hj;return b},Nh,Nh,Nh,Nh,Nh,Nh,Nh],Yj=[function(a,b){var c=a,d=b&this.ra;if(d){var e;(d&=7)?(e=a<<d-1,c=(a<<d|a>>8-d)&255):e=a<<7;Af(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e;(d&=7)?(e=a<<8-d,c=(a>>>d|e)&255):e=a;Af(this,c,e,
128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=Bf(this);(d%=9)?(c=(a<<d|e<<d-1|a>>9-d)&255,e=a<<d-1):e<<=7;Af(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=Bf(this);(d%=9)?(c=(a>>d|e<<8-d|a<<9-d)&255,e=a<<8-d):e<<=7;Af(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=0;8<d?c=0:(e=a<<d-1,c=e<<1&255);vf(this,c,128,e&128,(c^e)&128)}return c},function(a,b){var c=b&this.ra;c&&(c=8<c?0:a>>>c-1,a=c>>>1&255,vf(this,a,128,c&1,a&128));return a},Nh,
@ -349,7 +349,7 @@ M[36]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6
M[130]=function(){var a=this.Ma();pf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[131]=function(){var a=this.Ma();pf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[132]=function(){var a=this.Ma();sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[133]=function(){var a=this.Ma();sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[134]=function(){var a=this.Ma();pf(this)||sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};
M[135]=function(){var a=this.Ma();pf(this)||sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[136]=function(){var a=this.Ma();tf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[137]=function(){var a=this.Ma();tf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[138]=function(){var a=this.Ma();qf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[139]=function(){var a=this.Ma();qf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};
M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,ki)};
M[145]=function(){qj.call(this,ki)};M[146]=function(){qj.call(this,li)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)};
M[145]=function(){qj.call(this,ki)};M[146]=function(){qj.call(this,li)};M[147]=function(){qj.call(this,mi)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)};
M[159]=function(){qj.call(this,Pi)};M[160]=function(){od(this,this.Nb.Z,this.ba,2);this.A-=this.B.Ie};M[161]=function(){this.U=this.ga;var a=D(this);this.Nb.load(a);this.A-=this.B.zc;this.U=-1};M[163]=function(){this.fa.call(this,Fh);-1!==this.D&&(this.A-=6)};M[164]=function(){this.fa.call(this,2==this.ba?Qi:Si);this.A-=-1===this.D?3:7};M[165]=function(){this.fa.call(this,2==this.ba?Ui:Vi);this.A-=-1===this.D?3:7};M[168]=function(){od(this,this.Ob.Z,this.ba,2);this.A-=this.B.Ie};
M[169]=function(){this.U=this.ga;var a=D(this);this.Ob.load(a);this.A-=this.B.zc;this.U=-1};M[171]=function(){this.fa.call(this,Ih);-1!==this.D&&(this.A-=5)};M[172]=function(){this.fa.call(this,2==this.ba?Wi:Yi);this.A-=-1===this.D?3:7};M[173]=function(){this.fa.call(this,2==this.ba?$i:aj);this.A-=-1===this.D?3:7};M[175]=function(){this.W.call(this,2==this.ba?Ph:Rh)};M[178]=function(){this.W.call(this,ai)};M[179]=function(){this.fa.call(this,Hh);-1!==this.D&&(this.A-=5)};
M[180]=function(){this.W.call(this,Yh)};M[181]=function(){this.W.call(this,Zh)};
@ -367,7 +367,7 @@ window.webkitAudioContext),this.sb&&(this.Fa=new this.sb));this.reset(!0);rb(thi
Ak[5150][0][wk]={Lc:48,hd:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},Qd:"Monitor Type"};Ak[5150][0][5]={Lc:12,hd:{16:0,32:4,48:8,64:12},Qd:"Base Memory (16Kb Increments)"};Ak[5150][1][6]={Lc:31,hd:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},Qd:"Expansion Memory (32Kb Increments)"};Ak[5160]=[{},{}];Ak[5160][0][vk]=Ak[5150][0][vk];Ak[5160][0][3]=Ak[5150][0][3];Ak[5160][0][wk]=Ak[5150][0][wk];
Ak[5160][0][5]={Lc:12,hd:{64:0,128:4,192:8,256:12},Qd:"Base Memory (64Kb Increments)"};Ak[5160][1][6]=Ak[5150][1][6];Ak[5160.101]=[{},{}];Ak[5160.101][0][5]={Lc:143,hd:{128:1,256:130,512:8,640:141},Qd:"Base Memory (128Kb Increments)"};Ak[5160.101][0][3]={Lc:16,hd:{0:0,1:16},Qd:"Coprocessor"};Ak[5160.101][1][2]={Lc:1,hd:{0:0,1:1},Qd:"Floppy Type"};Ak[5160.101][1][vk]=Ak[5150][0][vk];Ak[5160.101][1][wk]=Ak[5150][0][wk];m=pk.prototype;
m.Pb=function(a,b,c){switch(b){case tk:return this.qa[b]=c,Bk(this,0,b),!0;case xk:if(5150==(this.ja|0)||5160.101==this.ja)return this.qa[b]=c,Bk(this,1,b),!0;break;case "swdesc":return this.qa[b]=c,!0}return!1};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.Tb=Eb(a,"FPU");uk(this,3,this.Tb?1:0,!0);this.B=Eb(a,"Keyboard");this.gb=c.Y.Jd/1193181;hc(b,this,Ck);lc(b,this,Dk);this.ja<cg?5160.101!=this.ja?(hc(b,this,Ek),lc(b,this,Fk)):(hc(b,this,Gk),lc(b,this,Hk)):(hc(b,this,Ik),lc(b,this,Jk),5180==(this.ja|0)&&(hc(b,this,Kk),lc(b,this,Lk)));if(d){var e=this;Mk(d,1024,function(){for(var a=0;a<e.vc.length;a++){for(var b=e.vc[a],c="PIC"+a+":",d=0;d<b.Yc.length;d++)c+=" IC"+(d+1)+"="+t(b.Yc[d]);
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.Tb=Eb(a,"FPU");uk(this,3,this.Tb?1:0,!0);this.B=Eb(a,"Keyboard");this.gb=c.Y.Jd/1193181;ic(b,this,Ck);mc(b,this,Dk);this.ja<cg?5160.101!=this.ja?(ic(b,this,Ek),mc(b,this,Fk)):(ic(b,this,Gk),mc(b,this,Hk)):(ic(b,this,Ik),mc(b,this,Jk),5180==(this.ja|0)&&(ic(b,this,Kk),mc(b,this,Lk)));if(d){var e=this;Mk(d,1024,function(){for(var a=0;a<e.vc.length;a++){for(var b=e.vc[a],c="PIC"+a+":",d=0;d<b.Yc.length;d++)c+=" IC"+(d+1)+"="+t(b.Yc[d]);
c+=" IMR="+t(b.Bd)+" IRR="+t(b.mc)+" ISR="+t(b.Pc)+" DELAY="+b.nf;e.ha.O(c)}});Mk(d,2048,function(a){a=(a=a[0])?+a:null;for(var b=0;b<e.W.length;b++)if(null==a||b==a){Nk(e,b);var c=e.W[b],d="TIMER"+b+":",l=0;if(null!=c.nd)for(var n=0;n<=c.nd;n++)l|=c.Ab[n]<<8*n;d+=" mode="+(c.mode>>1)+" bytes="+c.nd+" count="+u(l);e.ha.O(d)}});Mk(d,4096,function(){for(var a="",b=0;64>b;b++){var c=13>=b?Ok(e,b):e.A[b];a&&(a+="\n");a+="CMOS["+t(b)+"]: "+t(c)}e.ha.O(a)})}Te(c,26,this.am.bind(this))};
m.ic=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};
m.reset=function(a){var b;Pk(this);this.L=Array(this.cb);for(b=0;b<this.cb;b++)Qk(this,b);this.vc=Array(this.Ea);Rk(this,0,32);1<this.Ea&&Rk(this,1,160);this.Pa=this.Oa=null;this.W=Array(5180==(this.ja|0)?6:3);for(b=0;b<this.W.length;b++)Sk(this,b);this.Ca=this.rb=this.X=this.$a=null;this.ya=0;5160.101==this.ja&&(this.wa=0);if(this.ja>=cg){this.N=16;this.fa=0;this.aa=16;this.Ja=0;this.ga=160;512<=Tk(this)&&(this.ga|=16);3==+Uk(this,wk,void 0)&&(this.ga|=64);5180==(this.ja|0)&&(this.ga|=12);this.Ka=
@ -430,12 +430,12 @@ function Zl(a){Ua.call(this,"ROM",a,Zl);this.A=null;this.L=a.addr;this.C=a.size;
Zl.prototype.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;am(this)};Zl.prototype.ic=function(){this.Rd&&(this.ha&&bm(this.ha,this.id,0,this.L>>>4,0,this.L,this.C,this.Rd),delete this.Rd);return!0};Zl.prototype.hc=function(){return!0};
function $l(a,b,c,d){if(d)a.Na("Unable to load system ROM (error "+d+": "+b+")");else{fb(a.ve,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Rd=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.Na("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.length;e++)a.A[e]=ca(b[e],16);am(a)}}
function am(a){if(!sb(a))if(!a.V)rb(a);else if(a.A&&a.ea){a.C||(a.C=a.A.length);if(a.A.length!=a.C)ub(a,"ROM size (0x"+r(a.A.length)+") does not match specified size ("+("0x"+r(a.C))+")");else{var b;b=a.L;if(Sb(a.ea,b,a.C,$b)){for(var c=0;c<a.A.length;c++){var d=a.ea,e=b+c;d.sa[(e&d.Gb)>>>d.La].wf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Xb(d.ea,d.L,d.C);Wb(d.ea,e,d.C,f)}a.B&&((b=hb(a.B,a.id))?
function am(a){if(!sb(a))if(!a.V)rb(a);else if(a.A&&a.ea){a.C||(a.C=a.A.length);if(a.A.length!=a.C)ub(a,"ROM size (0x"+r(a.A.length)+") does not match specified size ("+("0x"+r(a.C))+")");else{var b;b=a.L;if(Sb(a.ea,b,a.C,ac)){for(var c=0;c<a.A.length;c++){var d=a.ea,e=b+c;d.sa[(e&d.Gb)>>>d.La].wf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Yb(d.ea,d.L,d.C);Xb(d.ea,e,d.C,f)}a.B&&((b=hb(a.B,a.id))?
(c=a.A,d=a.W,5==b.Ua?cm(b,c,d||[12640,8752],8):b.Ua==dm&&cm(b,c,d||[14221,16269],8),rb(b)):a.Na("Unable to find component: "+a.B));delete a.A}}rb(a)}}Qa(function(){for(var a=nb(document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new Zl(d);mb(d,c)}});function em(a){Ua.call(this,"RAM",a,em);this.B=a.addr;this.A=a.size;this.L=a.test;this.V=!!this.A;this.C=!1}db(em);m=em.prototype;m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");rb(this)};
m.ic=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};m.hc=function(a){return a&&this.controller?this.save():!0};
m.reset=function(){if(!this.B&&!this.V&&this.N){var a=1024*Tk(this.N);this.A&&a!=this.A&&(Zb(this.ea,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Sb(this.ea,this.B,this.A,1)&&(this.C=!0,this.status(Math.floor(this.A/1024)+"Kb allocated"),"ramCPQ"==this.ee&&(this.controller=new fm(this),Sb(this.ea,gm,4,4,this.controller)));if(this.C){if(this.L||fc(this.ea,1138,4660),"ramCPQ"!=this.ee&&this.N&&(a=this.N,a.A)){var b=1048576>this.B?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;Xk(a)}}else w("No RAM allocated")};m.save=function(){var a=new hf(this);this.controller&&N(a,0,this.controller.save());return a.data()};m.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function fm(a){this.N=a;this.C=hm;this.ha=im;this.B=jm;this.A=null}var gm=-2134900736,hm=65535,im=2575,jm=2,km=[null,0],lm=[function(a){return this.controller.Qa(a)},null,null,function(a,b){this.controller.qc(a,b)},null,null];m=fm.prototype;m.save=function(){return[this.C,this.B]};
m.restore=function(a){this.qc(0,a[0]&255);this.qc(2,a[1]&255);return!0};m.Qa=function(a){var b=255;2>a?b=a&1?this.ha>>8:this.ha&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};m.qc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.N.ea;if(b&1)this.A&&(Wb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Xb(c,917504,131072));var d=Xb(c,16646144,131072);Wb(c,917504,131072,d,b&2?1:$b)}this.C=this.C&-256|b}};m.Ri=function(){return km};m.gh=function(){return lm};
m.reset=function(){if(!this.B&&!this.V&&this.N){var a=1024*Tk(this.N);this.A&&a!=this.A&&($b(this.ea,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Sb(this.ea,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.ee&&(this.controller=new fm(this),Sb(this.ea,gm,4,4,this.controller)));if(this.C){if(this.L||gc(this.ea,1138,4660),"ramCPQ"!=this.ee&&this.N&&(a=this.N,a.A)){var b=1048576>this.B?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;Xk(a)}}else w("No RAM allocated")};
m.save=function(){var a=new hf(this);this.controller&&N(a,0,this.controller.save());return a.data()};m.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function fm(a){this.N=a;this.C=hm;this.ha=im;this.B=jm;this.A=null}var gm=-2134900736,hm=65535,im=2575,jm=2,km=[null,0],lm=[function(a){return this.controller.Qa(a)},null,null,function(a,b){this.controller.qc(a,b)},null,null];m=fm.prototype;m.save=function(){return[this.C,this.B]};
m.restore=function(a){this.qc(0,a[0]&255);this.qc(2,a[1]&255);return!0};m.Qa=function(a){var b=255;2>a?b=a&1?this.ha>>8:this.ha&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};m.qc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.N.ea;if(b&1)this.A&&(Xb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Yb(c,917504,131072));var d=Yb(c,16646144,131072);Xb(c,917504,131072,d,b&2?1:ac)}this.C=this.C&-256|b}};m.Ri=function(){return km};m.gh=function(){return lm};
Qa(function(){for(var a=nb(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new em(d);mb(d,c)}});function mm(a){Ua.call(this,"Keyboard",a,mm,65536);nm(this,a.model);this.ia=Ga("Mobi");this.pa=Ga("MSIE");y(this,"mobile keyboard support: "+(this.ia?"true":"false"));this.ga=0;this.ka=this.bh=!1;this.B=[];this.ua=50;rb(this)}db(mm);
var om=["US83","US84","US101"],X={zn:1,An:3,Bn: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,vn:65,wn:66,xn:67,Cn:68,E:69,Dn:70,Gn:71,Hn:72,In:73,Jn:74,Kn:75,Ln:76,Mn:77,On:78,Pn:79,Qn:80,Q:81,Rn:82,Vn:83,$n:84,eo:85,fo:86,ho:87,jo:88,ko:89,lo:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,mo:97,no:98,po:99,d:100,e:101,qo:102,ro:103,so:104,
to:105,uo:106,k:107,vo:108,wo:109,n:110,yo:111,p:112,q:113,r:114,zo:115,t:116,Bo:117,Co:118,Do:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},pm={};pm[186]=X[";"];pm[187]=X["="];pm[188]=X[","];pm[189]=X["-"];pm[190]=X["."];pm[191]=X["/"];pm[192]=X["`"];pm[219]=X["["];pm[220]=X["\\"];pm[221]=X["]"];pm[222]=X["'"];pm[173]=X["-"];var qm={};qm[X["1"]]=X["!"];qm[X["2"]]=X["@"];qm[X["3"]]=X["#"];qm[X["4"]]=X.$;qm[X["5"]]=X["%"];qm[X["6"]]=X["^"];qm[X["7"]]=X["&"];qm[X["8"]]=X["*"];qm[X["9"]]=X["("];
@ -490,7 +490,7 @@ a.wg|-2147483648;c[16]=a.di;c[17]=a.qb;c[18]=a.dd;c[19]=a.Mb;c[20]=a.Uf;c[21]=a.
Um.prototype.Ri=function(a){return[this.sd,a-this.ob]};Um.prototype.gh=function(){return this.A};Um.prototype.Og=function(a){if(null!=a&&a!=this.wg){var b=a&65280,c=dn[b];c||b&4096&&(c=dn[4096]);var b=a&255,d=dn[b];d||b&16&&(d=dn[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.wg=a}};
function gn(a,b){var c=a.mb[b];if(null!=c&&5<=a.Ua){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ua==dm&&(e=32);break;case 10:5==a.Ua&&(d=32);break;case 16:d=4;a.Ua==dm&&(e=128);break;case 18:d=2;a.Ua==dm&&(e=64);break;case 21:d=8;a.Ua==dm&&(f=32);break;case 24:d=16,a.Ua==dm&&(f=64)}d&&(c|=a.mb[7]&d?256:0,c|=a.mb[7]&e?512:0,c|=a.mb[9]&f?512:0)}return c}var Vm=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Vm[dm]=["VGA",980,753664,16384,262144,7];var Hm=0;
m=Z.prototype;
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;c=(c=Fm[this.ja])&&c[0];3!==c&&(hc(b,this,hn),lc(b,this,jn));1!==c&&(hc(b,this,kn),lc(b,this,ln));5<=this.Ua&&(hc(b,this,mn),lc(b,this,nn));this.Ua==dm&&(hc(b,this,on),lc(b,this,pn));if(d){var e=this;Mk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.sd){var c,d,f,q=!1,p=8,z=8,F=-1,v=b.video.L>>3;for(c=0;c<a.length;c++){var E=a[c];if(c){var H=E.charAt(0);d=ca(E.substr(1));switch(H){case "l":p=d;break;case "n":1<=d&&8>=d&&(z=d,q=!0);break;case "p":0<=
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;c=(c=Fm[this.ja])&&c[0];3!==c&&(ic(b,this,hn),mc(b,this,jn));1!==c&&(ic(b,this,kn),mc(b,this,ln));5<=this.Ua&&(ic(b,this,mn),mc(b,this,nn));this.Ua==dm&&(ic(b,this,on),mc(b,this,pn));if(d){var e=this;Mk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.sd){var c,d,f,q=!1,p=8,z=8,F=-1,v=b.video.L>>3;for(c=0;c<a.length;c++){var E=a[c];if(c){var H=E.charAt(0);d=ca(E.substr(1));switch(H){case "l":p=d;break;case "n":1<=d&&8>=d&&(z=d,q=!0);break;case "p":0<=
d&&3>=d&&(F=d);break;case "w":d<v&&(v=d);break;default:b.ha.O("unrecognized argument: "+E)}}else f=ca(E)}void 0===f?f=b.B||0:f>=b.ob&&(f-=b.ob);a="";for(c=0;c<p;c++){E=r(b.ob+f)+":";for(d=0;d<z&&f<b.sd.length;d++)H=b.sd[f++],E+=" "+(0>F?r(H):da(H>>(F<<3),8));q&&(f+=v-z);a&&(a+="\n");a+=E}a&&b.ha.O(a);b.B=f}else b.ha.O("no buffer")}else e.ha.O("BIOSMODE: "+t(e.Ia)),b=e.C,fn(b,"CRTC",b.Ac,b.mb,b.kg),5<=b.Ua&&(fn(b," GRC",b.be,b.ae,b.Ug),fn(b," SEQ",b.ce,b.Je,b.Vg),fn(b," ATC",b.Od,b.Tc,b.Tg),fn(b," ATCINDX",
b.Od),b.ha.O(" ATCDATA: "+b.Xe),fn(b," FEAT",b.dg),fn(b," MISC",b.uf),fn(b," STATUS0",b.Mg)),fn(b," STATUS1",b.ma),1!=b.Ua&&3!=b.Ua||fn(b," MODEREG",b.gd),3==b.Ua&&fn(b," COLOR",b.sf),5<=b.Ua&&(b.ha.O(" LATCHES: "+r(b.Fb)),b.ha.O(" ACCESS: "+r(b.wg,4)),b.ha.O("Use 'dump video [addr]' to dump video memory"));else e.ha.O("no active video card")})}if((this.B=Eb(a,"Keyboard"))&&this.ka){for(var f in this.qa)0<f.indexOf("lock")&&this.B.Pb("led",f,this.qa[f]);this.B.Pb(this.vk?"textarea":"canvas",
"kbd",this.V)}this.Vc=9;(this.N=Eb(a,"ChipSet"))&&this.bg&&5==this.Ua&&(this.Vc=sk(this.bg,this.Vc));"mouse"==this.gg?(this.W=Eb(a,"Mouse"))&&qn(this,2):"keygrid"==this.gg&&this.B&&qn(this,1)};
@ -501,28 +501,28 @@ function qn(a,b){var c=a.V;c&&!a.me&&(c.addEventListener("touchstart",function(b
function sn(a,b,c){var d,e,f=0,g=0;e=a.ka;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.ra/a.ka.offsetWidth,k=a.Ea/a.ka.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(1==a.me)d=d/(a.ra/3)|0,e=e/(a.Ea/3)|0,1!=e?e?wm(a.B,1040,!0):wm(a.B,1038,!0):1!=d&&(d?wm(a.B,1039,!0):wm(a.B,1037,!0));else if(a.W){g=a.Id;f=b.timeStamp-a.hg;!0===c?(a.Id=500<f,a.hg=b.timeStamp,
a.Xc=setTimeout(a.un,500)):null!=a.Xc&&(clearTimeout(a.Xc),a.Xc=null);void 0===c&&(a.Id=!1);g||b.preventDefault();if(!1===c){a.Hd?(a.W.je(tn,!1),a.Hd=!1,b=!0):b=!1;if(b)return;if(200>f){a.W.je(tn,!0);a.W.je(tn,!1);return}}if(c||0>a.uc||0>a.Cc)a.uc=d,a.Cc=e;c=Math.round(d-a.uc);b=Math.round(e-a.Cc);a.uc=d;a.Cc=e;a.W.Hf(c,b,a.uc,a.Cc)}}m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};
m.reset=function(){var a=!0,b=0;this.N&&(b=+Uk(this.N,wk,void 0));this.ja||(this.Ua=3==b?1:3);this.wa=3;switch(this.Ua){case dm:b=7;break;case 5:var c=Lm[this.Vc];c&&(b=c[0]);b||(b=4);break;case 1:b=3;this.wa=7;break;default:b=2}this.ya!==b&&(this.ya=b,a=!0);this.C=null;this.pa=this.rd=new Um(this,1);this.aa=this.Wc=new Um(this,3);5>this.Ua?this.A=new Um:(this.A=new Um(this,this.Ua,null,this.Ed),un(this));vn(this);this.Ia=null;this.cb=this.ua=-1;this.Pa=0;wn(this,this.wa);if(this.C.ob&&a){a=this.C.ob+
this.Ub;for(b=this.C.ob;b<a;b+=2){var d=65536*Math.random()|0;4==this.ya||7==this.ya?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);fc(this.ea,b,c|d<<8)}rn(this,!0)}};function un(a){a.A.uf&1?(a.pa=a.rd,a.aa=a.A):(a.pa=a.A,a.aa=a.Wc)}m.save=function(){var a=new hf(this);N(a,0,en(this.rd));N(a,1,en(this.Wc));N(a,2,[this.ya,this.wa,this.Ia]);N(a,3,en(this.A));return a.data()};
this.Ub;for(b=this.C.ob;b<a;b+=2){var d=65536*Math.random()|0;4==this.ya||7==this.ya?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);gc(this.ea,b,c|d<<8)}rn(this,!0)}};function un(a){a.A.uf&1?(a.pa=a.rd,a.aa=a.A):(a.pa=a.A,a.aa=a.Wc)}m.save=function(){var a=new hf(this);N(a,0,en(this.rd));N(a,1,en(this.Wc));N(a,2,[this.ya,this.wa,this.Ia]);N(a,3,en(this.A));return a.data()};
m.restore=function(a){var b=a[2];this.ya=b[0];this.wa=b[1];this.Ia=b[2];this.C=null;this.pa=this.rd=new Um(this,1,a[0]);this.aa=this.Wc=new Um(this,3,a[1]);this.A=new Um(this,this.Ua,a[3],this.Ed);this.A.Hc&&un(this);vn(this);if(!xn(this))return!1;yn(this);return!0};
function Jm(a,b,c,d){if(d)a.Na("Unable to load font ROM (error "+d+": "+b+")");else{fb(a.ve,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(8192==f.length)cm(a,f,[6144,0]);else if(2048==f.length)cm(a,f,[0]);else{a.Na("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Na("Font ROM data error: "+g.message);return}(a.ia||a.ha)&&rb(a)}}
function zn(a,b){if(1==b)return a.Ca[0]=Om[0],a.Ca[1]=Om[7],a.Ca;if(2==b){var c=a.C.sf;if(a.C===a.A){var d=a.A.Tc[0],c=d&7;d&16&&(c|=8);18!=a.A.Tc[1]&&(c|=32)}a.Ca[0]=Om[c&15];c=c&32?Qm:Pm;for(d=0;d<c.length;d++)a.Ca[d+1]=Om[c[d]];return a.Ca}if(a.aa===a.Wc)return Om;a.rb&&b&&!a.Ca[16]&&(a.rb=!1);if(!a.rb){var c=a.A,d=c.tf,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.Ca[f]=[h,k,g,255];else{var l=d&&d[255];e=null!=c.Tc[15]?c.Tc:Rm;for(f=0;16>f;f++)g=e[f]&63,l?(g|=
(c.Tc[20]&12)<<4,c.Tc[16]&128&&(g&=-49,g|=(c.Tc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ca[f]=[h,k,g,255]}a.rb=!0}return a.Ca}function cm(a,b,c,d){a.Uc=b;a.Jb=c;a.Tb=d}
function vn(a,b){var c=!1;if(window&&a.Uc&&(!b||a.U)){var d=0,e=a.Tb?a.Tb:8,f=zn(a);null!=a.Jb[0]&&An(a,3,a.Jb[0],d,e,8,a.Uc,f)&&(c=!0);d=a.Tb?0:2048;e=a.Tb?a.Tb:9;null!=a.Jb[1]&&(An(a,1,a.Jb[1],d,e,14,a.Uc,Mm,Nm)&&(c=!0),a.Tb&&An(a,a.Ua,a.Jb[1],0,a.Tb,14,a.Uc,f)&&(c=!0))}return c}function An(a,b,c,d,e,f,g,h,k){var l=!1;null!=c&&(Bn(a,b,c,d,e,f,g,h,k)&&(l=!0),a.tn&&Bn(a,b<<1,c,d,e,f,g,h,k)&&(l=!0));return l}
function Bn(a,b,c,d,e,f,g,h,k){var l=!1,n=b&1?0:1,q=a.Oa[b],p=16>h.length?h.length:16;q||(q={Qc:e<<n,Rc:f<<n,Oe:Array(p),si:h.slice(0,p),zf:k,Sg:Array(p)});for(k=0;k<p;k++){var z=h[k],F=q.Oe[k]?q.si[k]:[];if(z[0]!==F[0]||z[1]!==F[1]||z[2]!==F[2]){var l=q,F=k,v=n,E=c,H=d,L=e,V=f,P=g,bb=[0,0,0,0],ia=document.createElement("canvas");ia.width=l.Qc<<4;ia.height=l.Rc<<4;for(var ja=ia.getContext("2d"),Ha=void 0,Xa=void 0,Ba=void 0,Vb=8>V||!H?V:8,wa=ja.createImageData(l.Qc,l.Rc),Ha=0;256>Ha;Ha++){for(Ba=
0;Ba<V;Ba++)for(var Vd=l.zf&&F&1&&Ba>=V-2,Rc=P[Ba<Vb?E+Ha*Vb+Ba:H+Ha*Vb+Ba-Vb],Wd=0;Wd<=v;Wd++)for(Xa=0;Xa<L;Xa++){var Ke=Xa<<v,Xd=(Ba<<v)+Wd,Le=Vd||Rc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?z:bb;Cn(wa,Ke,Xd,Le);v&&Cn(wa,Ke+1,Xd,Le)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Oe[F]="#"+r(z[0],2)+r(z[1],2)+r(z[2],2);l.si[F]=z;l.Sg[F]=ia;l=!0}}a.Oa[b]=q;return l}function Dn(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
0;Ba<V;Ba++)for(var Vd=l.zf&&F&1&&Ba>=V-2,Rc=P[Ba<Vb?E+Ha*Vb+Ba:H+Ha*Vb+Ba-Vb],Wd=0;Wd<=v;Wd++)for(Xa=0;Xa<L;Xa++){var Le=Xa<<v,Xd=(Ba<<v)+Wd,Me=Vd||Rc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?z:bb;Cn(wa,Le,Xd,Me);v&&Cn(wa,Le+1,Xd,Me)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Oe[F]="#"+r(z[0],2)+r(z[1],2)+r(z[2],2);l.si[F]=z;l.Sg[F]=ia;l=!0}}a.Oa[b]=q;return l}function Dn(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
function yn(a){if(a.U){for(var b=10;15>=b;b++)if(null==a.C.mb[b])return;var c=a.C.mb[10],b=c&31,d=a.C.mb[11]&31,e=a.C.mb[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)En(a);else{c=a.C.mb[15]+((a.C.mb[14]&63)<<8);a.ua!=c&&(En(a),a.ua=c);d=d-b+1;if(a.ig!=b||a.Ce!=d)a.ig=b,a.Ce=d;a.$a=e+1;Dn(a)}}}
function En(a){if(0<=a.ua){if(void 0!==a.fa){var b=a.fa[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.L,d=a.ua/a.L|0;a.U&&a.Oa[a.U]&&(a.gb&&bo(a,c,d,b,a.gb),bo(a,c,d,b));a.fa[a.ua]=b}}a.ua=-1}}
function En(a){if(0<=a.ua){if(void 0!==a.fa){var b=a.fa[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.L,d=a.ua/a.L|0;a.U&&a.Oa[a.U]&&(a.gb&&Fn(a,c,d,b,a.gb),Fn(a,c,d,b));a.fa[a.ua]=b}}a.ua=-1}}
function co(a){var b,c=a.C;a.gf=!1;var d=c.ae[5];if(null!=d){b=1024;var e=0,f=c.ae[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.Ua==dm&&(e=3,c.dd=f&7)}d&8&&(b=1280);c=c.Je[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.gf=!0));b|=e}return b}
function eo(a,b){var c=a.C;return c&&null!=b&&b!=c.wg?(c.Og(b),a.ea.Og(c.ob,c.ac,c.gh(),!0),!0):!1}
function xn(a,b){var c,d=a.Ia,e=a.C;if(e)if(1==e.Ua)d=7;else if(5<=e.Ua){var d=null,f=e.Ed>>2,g=32768<f?32768:f,h=e.ae[6];if(null!=h){switch(h&12){case 0:e.ob=655360;e.ac=f;d=255;break;case 4:e.ob=655360;e.ac=f;d=3==a.ya?15:16;break;case 8:e.ob=720896;e.ac=g;d=7;break;case 12:e.ob=753664,e.ac=g,d=3==a.ya?2:3}c=80==(e.ae[5]&80);!c||e.ob==a.ob&&e.ac==a.ac||(b=!0);var f=gn(e,6),g=e.mb[9],k=e.mb[23],l=e.Je[1]&8;255!=d&&(h&1?655360==e.ob||c||k&1?e.ae[5]&64?d=g&31?143>=e.mb[18]?19:20:21:g&128||350>f?d=
l?13:14:480<=f&&(d=3==a.ya?17:18):d=l?7-d:6:d-=l?2:0);c=co(a)}}else e.gd&8&&(e.gd&2?(d=e.gd&16?6:5,e.gd&4||--d):(d=e.gd&1?3:1,e.gd&4&&--d));else a.Ia=null,null==d&&(d=a.wa);if(!wn(a,d,b))return!1;eo(a,c);return!0}
function wn(a,b,c){if(null!=b&&(b!=a.Ia||c)){a.Pg=0;a.Ia=b;a.rb=!1;b=a.C||(7==b?a.pa:a.aa);if(b!=a.C||b.ob!=a.ob||b.ac!=a.ac){En(a);if(a.ob){if(!Zb(a.ea,a.ob,a.ac))return!1;a.C&&(a.C.Hc=!1)}a.C=b;b.Hc=!0;a.ob=b.ob;a.ac=b.ac;if(!Sb(a.ea,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.kd;a.X=a.le;a.Db=a.L;a.jd=Gm[7][2];b=0;if(c=Gm[a.Ia])a.L=c[0],a.X=c[1],a.jd=c[2],b=c[3],a.U=c[4],4!=a.ya&&7!=a.ya||a.C!==a.A||3!=a.U||(7==(a.A.mb[9]&31)?a.X=350>gn(a.A,18)?43:50:a.U=a.Ua);a.ag=a.L*a.X|0;a.Yf=a.ag/
function wn(a,b,c){if(null!=b&&(b!=a.Ia||c)){a.Pg=0;a.Ia=b;a.rb=!1;b=a.C||(7==b?a.pa:a.aa);if(b!=a.C||b.ob!=a.ob||b.ac!=a.ac){En(a);if(a.ob){if(!$b(a.ea,a.ob,a.ac))return!1;a.C&&(a.C.Hc=!1)}a.C=b;b.Hc=!0;a.ob=b.ob;a.ac=b.ac;if(!Sb(a.ea,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.kd;a.X=a.le;a.Db=a.L;a.jd=Gm[7][2];b=0;if(c=Gm[a.Ia])a.L=c[0],a.X=c[1],a.jd=c[2],b=c[3],a.U=c[4],4!=a.ya&&7!=a.ya||a.C!==a.A||3!=a.U||(7==(a.A.mb[9]&31)?a.X=350>gn(a.A,18)?43:50:a.U=a.Ua);a.ag=a.L*a.X|0;a.Yf=a.ag/
a.jd|0;a.Ub=a.Yf;a.td=0;void 0!==b&&(a.Ub=(a.Ub<<1)+b|0,a.td=a.Ub+b>>1);if(a.Oa.length){a.Ja=a.ra/a.L|0;a.Ka=a.Ea/a.X|0;if(a.U){b=a.Oa[a.U];if(!b)break a;c=a.Oa[a.U<<1];a.Wf&&80==a.L?c&&a.Ja>=3*c.Qc>>2&&(a.U<<=1,b=c):(c&&a.Ja>=c.Qc&&(a.U<<=1,b=c),a.Wf||(a.Ja=b.Qc,a.Ka=b.Rc));a.bc=a.tc=0;b&&(a.bc=a.L*b.Qc,a.tc=a.X*b.Rc)}else a.Ja=a.Ka=1,a.bc=a.L,a.tc=a.X;a.sb=a.ia.createImageData(a.bc,a.tc);a.fb=document.createElement("canvas");a.fb.width=a.bc;a.fb.height=a.tc;a.gb=a.fb.getContext("2d");a.ne=a.oe=
0;a.Dd=a.ra;a.Gd=a.Ea;b=a.ra-a.L*a.Ja;c=a.Ea-a.X*a.Ka;0<b&&(a.ne=b>>1,a.Dd-=b);0<c&&(a.oe=c>>1,a.Gd-=c);if(b||c)a.ia.fillStyle=a.ka.style.backgroundColor,a.ia.fillRect(0,0,a.ra,a.Ea)}}fo(a,!0);rn(a)}return!0}function Cn(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 go(a){a.Pa=-1;a.Fa=!1;var b=a.Yf;if(void 0===a.fa||a.fa.length!=b)a.fa=Array(b)}function fo(a,b){b||(a.rb=!1);go(a)}
function bo(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.zf&&(d=h.zf[d]);var k=g>>4&15;h.zf&&(k=h.zf[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Oe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.ne,c=c*a.Ka+a.oe,a.ia.fillStyle=h.Oe[k],a.ia.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ia.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.ig,g=a.Ce,e?(a.$a&&a.$a!==h.Rc&&(f=f*h.Rc/a.$a|0,g=g*h.Rc/a.$a|0),e.fillStyle=h.Oe[d],
function Fn(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.zf&&(d=h.zf[d]);var k=g>>4&15;h.zf&&(k=h.zf[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Oe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.ne,c=c*a.Ka+a.oe,a.ia.fillStyle=h.Oe[k],a.ia.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ia.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.ig,g=a.Ce,e?(a.$a&&a.$a!==h.Rc&&(f=f*h.Rc/a.$a|0,g=g*h.Rc/a.$a|0),e.fillStyle=h.Oe[d],
e.fillRect(b,c+f,h.Qc,g)):(a.$a&&a.$a!==a.Ka&&(f=f*a.Ka/a.$a|0,g=g*a.Ka/a.$a|0),a.ia.fillStyle=h.Oe[d],a.ia.fillRect(b,c+f,a.Ja,g)))}
function rn(a,b){if(a.la.cc){var c=!1,d=a.C;d&&(d!==a.A?d.gd&8&&(c=!0):d.Od&32&&(c=!0));if(c||b){if(b)go(a);else if(void 0===a.fa)return;var e=!1;!(b||++a.Pg&15)&&0<=a.cb&&(a.cb++,e=!0);var f=0,g=a.ag,h=a.ob,c=h,k=c+a.ac;19<=a.Ia&&(h=c=655360,k=c+65536);if(ho(a,d)&8||d.pf&&d.pf<d.ei){var l=(d.mb[12]<<8)+d.mb[13]|0;d.Md!==l&&(d.Md=l,fo(a));d.pf=0}l=d.Md;a.U&&(l<<=1);var c=c+l,n=a.Ub;5<=a.Ua&&d.mb[19]&&d.mb[19]<<1!=d.mb[1]+1&&(a.Db=d.mb[19]<<(a.U?1:d.mb[20]&64?3:4),n=(a.Db*(a.X-1)+a.L)/a.jd|0,7>=a.Ia&&
(n<<=1));c+n>k&&(n=k-c,0>n&&(n=0));k=c+n;if(l=!b&&a.Fa){for(var l=a.ea,q=!0,p=c>>>l.La;0<n&&p<l.sa.length;)l.sa[p].Wa&&(l.sa[p].Wa=q=!1,l.sa[p].Ni=!0),n-=l.Sb,p++;l=q}if(l){if(!e)return;if(!a.Pa){f=a.ua-d.Md;if(0>f)return;g=f+1}}if(a.U){if(a.Oa[a.U]){d=f;f=0;e=a.Pa=0;h=1048575;n=a.C.gd&32;5<=a.Ua&&(n=a.C.Tc[16]&8);l=a.ua-a.C.Md;n&&(e=32768,h&=~e,a.cb&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)n=ec(a.ea,c),n|=65536,n&e&&(a.Pa++,n&=h),d==l&&(n|=a.cb&1?131072:0),a.Fa&&n===a.fa[d]||(bo(a,d%a.L,d/a.L|0,n,a.gb),
a.fa[d]=n,f++),c+=2,d++;a.Fa=!0;f&&a.gb&&a.ia.drawImage(a.fb,0,0,a.bc,a.tc,a.ne,a.oe,a.Dd,a.Gd);Dn(a)}}else if(a.td){for(var g=k,z,k=c,d=a.Pa=0,f=a.jd,e=16==f?65536:196608,h=16==f?1:2,l=zn(a,h),q=n=0,p=a.L,F=0,v=a.X,E=0;k<g;){z=ec(a.ea,k);if(a.Fa&&z===a.fa[d])n+=f;else{a.fa[d]=z;z=z>>8|(z&255)<<8;var H=e,L=16;n<p&&(p=n);for(var V=0;V<f;V++){var P=(z&(H>>=h))>>(L-=h);Cn(a.sb,n++,q,l[P])}n>F&&(F=n);q<v&&(v=q);q>=E&&(E=q+1)}k+=2;d++;if(n>=a.L){n=0;q+=2;if(q>a.X)break;q==a.X&&(q=1,k=c+a.td)}}a.Fa=!0;
(n<<=1));c+n>k&&(n=k-c,0>n&&(n=0));k=c+n;if(l=!b&&a.Fa){for(var l=a.ea,q=!0,p=c>>>l.La;0<n&&p<l.sa.length;)l.sa[p].Wa&&(l.sa[p].Wa=q=!1,l.sa[p].Ni=!0),n-=l.Sb,p++;l=q}if(l){if(!e)return;if(!a.Pa){f=a.ua-d.Md;if(0>f)return;g=f+1}}if(a.U){if(a.Oa[a.U]){d=f;f=0;e=a.Pa=0;h=1048575;n=a.C.gd&32;5<=a.Ua&&(n=a.C.Tc[16]&8);l=a.ua-a.C.Md;n&&(e=32768,h&=~e,a.cb&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)n=fc(a.ea,c),n|=65536,n&e&&(a.Pa++,n&=h),d==l&&(n|=a.cb&1?131072:0),a.Fa&&n===a.fa[d]||(Fn(a,d%a.L,d/a.L|0,n,a.gb),
a.fa[d]=n,f++),c+=2,d++;a.Fa=!0;f&&a.gb&&a.ia.drawImage(a.fb,0,0,a.bc,a.tc,a.ne,a.oe,a.Dd,a.Gd);Dn(a)}}else if(a.td){for(var g=k,z,k=c,d=a.Pa=0,f=a.jd,e=16==f?65536:196608,h=16==f?1:2,l=zn(a,h),q=n=0,p=a.L,F=0,v=a.X,E=0;k<g;){z=fc(a.ea,k);if(a.Fa&&z===a.fa[d])n+=f;else{a.fa[d]=z;z=z>>8|(z&255)<<8;var H=e,L=16;n<p&&(p=n);for(var V=0;V<f;V++){var P=(z&(H>>=h))>>(L-=h);Cn(a.sb,n++,q,l[P])}n>F&&(F=n);q<v&&(v=q);q>=E&&(E=q+1)}k+=2;d++;if(n>=a.L){n=0;q+=2;if(q>a.X)break;q==a.X&&(q=1,k=c+a.td)}}a.Fa=!0;
p<a.L&&(a.gb.putImageData(a.sb,0,0,p,v,F-p,E-v),a.ia.drawImage(a.fb,0,0,a.L,a.X,0,0,a.ra,a.Ea))}else if(a.gf){g=h;f=a.Pa=0;e=zn(a,8);h=a.C.sd;n=l=0;q=a.L;p=0;F=a.X;v=0;E=a.C.Je[4]&8?4:1;z=a.C.Tc[19]&15;for(H=a.Db>a.L?a.Db-a.L-z>>3:0;c<k;){d=h[c-g];V=4;z||(a.Fa&&d===a.fa[f]?(l+=V,V=0):a.fa[f]=d,f++);if(V){l<q&&(q=l);for(L=0;L<V;L++)Cn(a.sb,l++,n,e[d&255]),d>>=8;l>p&&(p=l);n<F&&(F=n);n>=v&&(v=n+1)}c+=E;if(l>=a.L){l=0;if(++n>a.X)break;c+=H}}z||(a.Fa=!0);q<a.L&&(a.gb.putImageData(a.sb,0,0,q,F,p-q,v-F),
a.ia.drawImage(a.fb,0,0,a.L,a.X,0,0,a.ra,a.Ea))}else{g=h;d=a.Pa=0;f=zn(a);e=a.C.sd;l=h=0;n=a.L;q=0;p=a.X;F=0;v=a.C.Tc[19]&15;for(E=a.Db>a.L?a.Db-a.L-v>>3:0;c<k;){z=c++-g;z=e[z];L=8;v?h?(H=a.L-h,L>H&&(L=H)):(z<<=v,L-=v,a.Fa=!1):(a.Fa&&z===a.fa[d]?(h+=L,L=0):a.fa[d]=z,d++);if(L){h<n&&(n=h);for(H=0;H<L;H++)V=Tm[z&2155905152]||0,Cn(a.sb,h++,l,f[V]),z<<=1;h>q&&(q=h);l<p&&(p=l);l>=F&&(F=l+1)}if(h>=a.L){h=0;if(++l>a.X)break;c+=E}}v||(a.Fa=!0);n<a.L&&(a.gb.putImageData(a.sb,0,0,n,p,q-n,F-p),a.ia.drawImage(a.fb,
0,0,a.L,a.X,0,0,a.ra,a.Ea))}}}}function ho(a,b){var c=0,d=Wc(a.F)-b.vh;0>d&&(b.vh=d,d=-d|0);d%b.qh>b.jm&&(c|=1);d%b.th>b.lm&&(c|=9);b.ei=d/b.th|0;return c}m.Gl=function(a,b){return io(this,this.pa,a,b)};m.an=function(a,b,c){var d=this.pa;d.Jg=d.Ac;d.Ac=b&31;x(this,a,b,c,"CRTC.INDX")};m.Fl=function(a,b){return jo(this,this.pa,a,b)};m.$m=function(a,b,c){ko(this,this.pa,a,b,c)};m.Hl=function(a,b){return lo(this,this.pa,b)};m.bn=function(a,b,c){a=this.pa;x(this,a.port+4,b,c,"MODE");a.gd=b;xn(this,!1)};
@ -543,13 +543,13 @@ var hn={948:Z.prototype.Gl,949:Z.prototype.Fl,952:Z.prototype.Hl,954:Z.prototype
Qa(function(){for(var a=nb(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=jb(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<=ya().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());var f=+(d.aspect||Ya.aspect);f&&.3<=f&&3.33>=f&&(Pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ga("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);mb(d,c)}});
function no(a){this.W=a.adapter;switch(this.W){case 1:this.V=956;this.C=7;break;case 2:this.V=888;this.C=7;break;case 3:this.V=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.W);return}this.A=this.B=null;Ua.call(this,"ParallelPort",a,no,4194304);a=a.binding;"console"==a?this.B="":kb(this,a,oo)}db(no);var oo="buffer";m=no.prototype;m.Pb=function(a,b,c){switch(b){case oo:return this.qa[b]=this.A=c,!0}return!1};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");hc(b,this,po,this.V);lc(b,this,qo,this.V);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){ro(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Bf;N(a,0,c);return a.data()};m.restore=function(a){return ro(this,a[0])};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");ic(b,this,po,this.V);mc(b,this,qo,this.V);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){ro(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Bf;N(a,0,c);return a.data()};m.restore=function(a){return ro(this,a[0])};
function ro(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.L=b[c++];a.Yb=b[c++];a.Bf=b[c];return!0}m.tl=function(a,b){var c=this.L;x(this,a,null,b,"DATA",c);return c};m.Rl=function(a,b){var c=this.Yb;x(this,a,null,b,"STAT",c);return c};m.pl=function(a,b){var c=this.Bf;x(this,a,null,b,"CTRL",c);return c};
m.Nm=function(a,b,c){x(this,a,b,c,"DATA");this.L=b;this.Yb|=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.B){if(10==b||1024<=this.B.length)this.O(this.B),this.B="";10!=b&&(this.B+=String.fromCharCode(b));a=!0}else a=!1;a&&(this.Yb&=-65);so(this)};m.Im=function(a,b,c){x(this,a,b,c,"CTRL");this.Bf=b;so(this)};function so(a){a.N&&a.C&&(a.Bf&16&&!(a.Yb&64)?eg(a.N,a.C):dg(a.N,a.C))}
var po={0:no.prototype.tl,1:no.prototype.Rl,2:no.prototype.pl},qo={0:no.prototype.Nm,2:no.prototype.Im};Qa(function(){for(var a=nb(document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new no(d);mb(d,c)}});
function to(a){this.ra=a.adapter;switch(this.ra){case 1:this.ka=1016;this.fa=4;break;case 2:this.ka=760;this.fa=3;break;default:w("Unrecognized serial adapter #"+this.ra);return}this.V=this.U=null;this.Ca=a.tabSize;this.ya=a.charBOL;this.X=0;Ua.call(this,"SerialPort",a,to,8388608);a=a.binding;"console"==a?this.U="":kb(this,a,uo)}db(to);var uo="buffer";m=to.prototype;m.wi=function(a,b){return a==this.ee?(this.W=b,this):null};
m.Pb=function(a,b,c){var d=this;switch(b){case uo:return this.qa[b]=this.V=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),vo(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;vo(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");hc(b,this,wo,this.ka);lc(b,this,xo,this.ka);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){yo(this)};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");ic(b,this,wo,this.ka);mc(b,this,xo,this.ka);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){yo(this)};
m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.pa;c[b++]=this.wa;c[b++]=this.aa;c[b++]=this.ia;c[b++]=this.L;c[b++]=this.B;c[b++]=this.C;c[b++]=this.A;c[b++]=this.ua;c[b]=this.ga;N(a,0,c);return a.data()};m.restore=function(a){return yo(this,a[0])};function yo(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.pa=b[c++];a.wa=b[c++];a.aa=b[c++];a.ia=b[c++];a.L=b[c++];a.B=b[c++];a.C=b[c++];a.A=b[c++];a.ua=b[c++];a.ga=b[c];return!0}function vo(a,b){a.ga=a.ga.concat(b);zo(a)}
function zo(a){0<a.ga.length&&!(a.A&1)&&(a.pa=a.ga.shift(),a.A|=1);var b=-1;a.A&1&&a.ia&1&&(b=4);0<=b?(a.L&=-8,a.L|=b,a.N&&a.fa&&eg(a.N,a.fa,100)):(a.L|=1,a.N&&a.fa&&dg(a.N,a.fa))}m.Ol=function(a,b){var c=this.B&128?this.aa&255:this.pa;x(this,a,null,b,this.B&128?"DLL":"RBR",c);this.A&=-2;zo(this);return c};m.Al=function(a,b){var c=this.B&128?this.aa>>8:this.ia;x(this,a,null,b,this.B&128?"DLM":"IER",c);return c};m.Bl=function(a,b){var c=this.L;x(this,a,null,b,"IIR",c);return c};
m.Cl=function(a,b){var c=this.B;x(this,a,null,b,"LCR",c);return c};m.El=function(a,b){var c=this.C;x(this,a,null,b,"MCR",c);return c};m.Dl=function(a,b){var c=this.A;x(this,a,null,b,"LSR",c);return c};m.Jl=function(a,b){var c=this.ua;x(this,a,null,b,"MSR",c);return c};
@ -598,7 +598,7 @@ var sp={3:{Vd:3,ie:0,name:aa.Zn},4:{Vd:2,ie:1,name:aa.Xn},5:{Vd:9,ie:7,name:aa.i
m.Pb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.ga){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.ga?a.text.localeCompare(b.text):a.value.localeCompare(b.value)});for(a=0;a<b.length;a++)c.options[a]=b[a]}c.onchange=function(){var a=d.qa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){w("FDC option error: "+h.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}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ia){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value,10),(a=
d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ia){c.parentNode.removeChild(c);break}this.qa[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;up(d,fa(b,!0),b,a)}return!1};return!0}return!1};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ia&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);ic(b,this,wp);mc(b,this,xp);yp(this,"None","",!0);this.ia&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)};
m.ic=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.V.dh){this.B=[];for(var c=0;c<this.A.length;c++)Ap(this,c,!0);zp(this,!0)}}else if(!this.restore(a))return!1;if(c=this.qa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.value="";for(var d=0;d<this.ka;d++){var e=document.createElement("option");e.value=d;e.text=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.ka&&(c.value="0",tp(this,0))}}return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){vp(this)};
m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.hb;c[b++]=0;c[b++]=this.ma;c[b++]=this.W;c[b++]=this.L;c[b++]=this.C;c[b++]=this.aa;for(var d=b++,e=0,f=[],g=0;g<this.A.length;g++){var h=e++,k=this.A[g],l=0,n=[];n[l++]=k.Cb;n[l++]=[k.name,k.Bb,k.ub,k.lb,k.Va,k.bf,k.zg,k.Nf,k.Of];n[l++]=k.kb;n[l++]=k.ge+100;n[l++]=k.Qb;n[l++]=k.xb;n[l++]=k.he;n[l++]=k.Hb;n[l++]=k.eb;n[l++]=k.$e;n[l++]=k.kk;n[l]=k.Le;f[h]=n}c[d]=f;d=b++;for(e=0;e<this.A.length;e++)f=this.A[e],f.za&&Bp(this,f.Le,f.za);c[d]=
this.B;c[b++]=this.X;c[b]=this.kc;N(a,0,c);return a.data()};m.restore=function(a){return vp(this,a[0])};
@ -626,7 +626,7 @@ function Kp(a){Ua.call(this,"HDC",a,Kp,1048576);this.dmaRead=this.yk;this.dmaWri
var Lp=["XTC","ATC","COMPAQ"],Mp=[{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]}];m=Kp.prototype;
m.Pb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.qa[b]=c,c.onclick=function(a){return function(){var b=d.A&&d.A[a];b&&b.za?(b=b.za,b=Ia(pp(b),"octet-stream",!0,b.Ng.replace(".json",".img")),w(b)):d.Na("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;if(d=Nc(a,"drives"))this.ua=d;else if(this.Fa)try{this.ua=eval("("+this.Fa+")")}catch(e){w("HDC drive configuration error: "+e.message+" ("+this.Fa+")")}this.N=Eb(a,"ChipSet");this.U=0;this.Ia=3;hc(b,this,this.ia?Np:Op);lc(b,this,this.ia?Pp:Qp);this.ia&&(this.U++,this.N&&5180==this.N.ja&&this.U++,this.Ia=2,b.aa[496]=2,b.fa[496]=2);Te(c,19,this.Zl.bind(this));Te(c,64,this.$l.bind(this));this.reset();Rp(this)||rb(this)};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;if(d=Nc(a,"drives"))this.ua=d;else if(this.Fa)try{this.ua=eval("("+this.Fa+")")}catch(e){w("HDC drive configuration error: "+e.message+" ("+this.Fa+")")}this.N=Eb(a,"ChipSet");this.U=0;this.Ia=3;ic(b,this,this.ia?Np:Op);mc(b,this,this.ia?Pp:Qp);this.ia&&(this.U++,this.N&&5180==this.N.ja&&this.U++,this.Ia=2,b.aa[496]=2,b.fa[496]=2);Te(c,19,this.Zl.bind(this));Te(c,64,this.$l.bind(this));this.reset();Rp(this)||rb(this)};
m.ic=function(a,b){if(!b)if(!a||!this.restore)Sp(this),this.V.dh&&Rp(this,!0);else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.ff=function(){return this.V?this.V.ff():""};m.ke=function(){return this.V?this.V.ke():""};m.reset=function(){Sp(this,null,!0)};
m.save=function(){var a=new hf(this),b=0,c=[];this.ia?(c[b++]=this.X,c[b++]=this.Pa,c[b++]=this.aa,c[b++]=this.Ca,c[b++]=this.ya,c[b++]=this.wa,c[b++]=this.ra,c[b++]=this.ma,c[b++]=this.Ea,c[b++]=[this.ga,this.hb]):(c[b++]=this.pa,c[b++]=this.ma,c[b++]=this.W,c[b++]=this.L,c[b++]=this.C,c[b++]=this.Oa,c[b++]=this.Ka,c[b++]=this.Ja,c[b++]=this.ka);for(var d=0,e=[],f=0;f<this.A.length;f++){var g=d++,h=this.A[f],k=0,l=[];l[k++]=h.errorCode;l[k++]=h.mk;l[k++]=h.bf;l[k++]=h.Qe;l[k++]=h.Re;l[k++]=h.kb;
l[k++]=h.ub;l[k++]=h.de;l[k++]=h.xb;l[k++]=h.he;l[k++]=h.Hb;l[k++]=h.eb;l[k]=h.za?h.za.save():null;e[g]=l}c[b]=e;N(a,0,c);return a.data()};m.restore=function(a){return Sp(this,a[0])};
@ -693,13 +693,13 @@ m.Pb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ka=this.
function Fq(a,b,c){var d=Tq(a)?2:1;c||(c=d);if(c==d){if(b===a.F.va.Z)return a.F.va;if(b===a.F.vb.Z)return a.F.vb;if(b===a.F.Xa.Z)return a.F.Xa;if(b===a.F.ta.Z)return a.F.ta;if(80386<=a.F.ja){if(b===a.F.Nb.Z)return a.F.Nb;if(b===a.F.Ob.Z)return a.F.Ob}if(a.fb&&2==c||!a.bc)return null}a=a.bc;if(2!=c)a.lh(b),a.Ta=65535,a.Zb=65536;else{var e;c=a.F;b=b&65535;b&4?(d=c.Bc.Aa,e=d+c.Bc.Ta|0):(d=c.Ec,e=c.Ad);d=d+(b&65528)|0;if(e-d|0){e=If(c,d+0,2);var f=If(c,d+4,2),g=f&7936,h=If(c,d+2,2)|(f&255)<<16,k=If(c,
d+6,2);80386<=c.ja&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.Z=b;a.Aa=h;a.Ta=e;a.Zb=(e>>>0)+1;a.wb=f;a.type=g;a.ext=k;a.Xb=d;ed(a,!0,!0,!1)}}return a}m.dc=function(a,b,c){var d=a&&a.Da;if(null==d&&(d=-1,a)){var e=Fq(this,a.Z,a.type);e&&(b=a.Ra||0,c=c||1,d=e=-1===e.Xb||e.cd&&(b>>>0)+c>e.Zb||!e.cd&&(b>>>0)+c<=e.Zb?e.Aa+b|0:-1,a.Da=d)}return d};m.Qa=function(a,b){var c=255,d=this.dc(a,!1,1);-1!==d&&(c=If(this.F,d,1,5==a.type)|0,b&&Uq(this,a,b));return c};
m.tb=function(a,b){return a.Rb?this.oa(a,b?4:0):this.na(a,b?2:0)};m.na=function(a,b){var c=65535,d=this.dc(a,!1,2);-1!==d&&(c=If(this.F,d,2,5==a.type),b&&Uq(this,a,b));return c};m.oa=function(a,b){var c=-1,d=this.dc(a,!1,4);-1!==d&&(c=If(this.F,d,4,5==a.type),b&&Uq(this,a,b));return c};m.qc=function(a,b,c){var d=this.dc(a,!0,1);if(-1!==d){if(5!=a.type)this.F.qc(d,b);else{var e=this.ea;e.sa[(d&e.Gb)>>>e.La].wf(d&e.A,b&255,d)}c&&Uq(this,a,c);Qc(this.F,!0)}};
m.jb=function(a,b,c){var d=this.dc(a,!0,2);-1!==d&&(5!=a.type?this.F.jb(d,b):fc(this.ea,d,b),c&&Uq(this,a,c),Qc(this.F,!0))};function iq(a,b,c,d,e,f,g){return Vq(a,{},b,c,d,e,f,g)}function Vq(a,b,c,d,e,f,g,h){b.Ra=c||0;b.Z=d;b.Da=e;b.type=f||(Tq(a)?2:1);b.Rb=null!=g?g:a.F&&4==a.F.va.ba;b.pc=null!=h?h:a.F&&4==a.F.va.Oc;b.Xd=!1;return b}function Wq(a){return[a.Ra,a.Z,a.Da,a.Xd,a.Rb,a.pc,a.Se,a.Wd]}function Xq(a){return{Ra:a[0],Z:a[1],Da:a[2],Xd:a[3],Rb:a[4],pc:a[5],Se:a[6],Wd:a[7]}}
m.jb=function(a,b,c){var d=this.dc(a,!0,2);-1!==d&&(5!=a.type?this.F.jb(d,b):gc(this.ea,d,b),c&&Uq(this,a,c),Qc(this.F,!0))};function iq(a,b,c,d,e,f,g){return Vq(a,{},b,c,d,e,f,g)}function Vq(a,b,c,d,e,f,g,h){b.Ra=c||0;b.Z=d;b.Da=e;b.type=f||(Tq(a)?2:1);b.Rb=null!=g?g:a.F&&4==a.F.va.ba;b.pc=null!=h?h:a.F&&4==a.F.va.Oc;b.Xd=!1;return b}function Wq(a){return[a.Ra,a.Z,a.Da,a.Xd,a.Rb,a.pc,a.Se,a.Wd]}function Xq(a){return{Ra:a[0],Z:a[1],Da:a[2],Xd:a[3],Rb:a[4],pc:a[5],Se:a[6],Wd:a[7]}}
function Yq(a,b,c){if(null!=b.Z&&(a=Fq(a,b.Z,b.type))){var d=b.Ra&a.Ba;if(!a.cd){if(d>>>0>=a.Zb)return!1}else if(d>>>0<a.Zb)return!1;c&&(b.Ra=d,b.Rb=4==a.ba,b.pc=4==a.Oc)}return!0}
function Zq(a,b,c,d){var e,f=c?a.aa:a.Db;c=d?0:f.type;var g=f.Ra,h=f.Z,f=f.Da;if(void 0!==b){b=$q(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=1;break;case "#":c=2;break;case "%":c=4;e=b.charAt(1);"%"==e&&(c=5,e+=e);g=0;h=null;break;default:0<=f&&(c=0),e=""}e&&(b=b.substr(e.length),f-=e.length);e=b;var k;if(e.match(/^[a-z_][a-z0-9_]*$/i))for(var l=e.toUpperCase(),n=0;n<a.B.length;n++){e=a.B[n];var q=e.Rd[l];if(void 0!==q){l=q.o;void 0!==l&&(k=q.s,void 0===k&&(k=e.Z),k=iq(a,l,k,q.p));break}}if(e=
k)return e;0>f?null!=h?(g=ar(a,b,void 0),f=null):(f=ar(a,b,void 0),null==f&&(g=null)):(h=ar(a,b.substring(0,f),void 0),g=ar(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=iq(a,g,h,f,c),d||Yq(a,e,!0)||(a.O("invalid offset: "+Sq(e)),e=null));return e}function br(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Dk=cr(a,b.jk=c[2]))}function Uq(a,b,c){c=c||1;null!=b.Da&&(b.Da+=c);null!=b.Z&&(b.Ra+=c,Yq(a,b)||(b.Ra=0,b.Da=null))}function Iq(a,b,c){return null!=b?r(b,4)+":"+r(a,a&-65536||c?8:4):r(a)}
function Sq(a){var b;switch(a.type){case 1:case 3:b="&";break;case 2:b="#";break;case 4:b="%";break;case 5:b="%%";break;default:b=a.Z?"":"%"}return 4<=a.type||null==a.Z?b+r(a.Da):b+Iq(a.Ra,a.Z,a.pc)}function Jq(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Qa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
function Dq(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.dc(Zq(a,c));if(-1===e){a.O("invalid address: "+c);return}f=e>>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Fc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=sc[c],6==c&&(d=d.Cd,h+=" -> "+sc[d.type]),d&&a.O(r(d.id)+" %"+r(f<<a.F.La)+" %%"+r(d.Da)+" "+u(d.Ne)+" "+u(d.size)+" "+h),c!=
rc&&5!=c&&(c=-1),h=0),e+=a.F.Sb,f++}function dr(a,b,c){a=r(a)+" "+r(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-");a+=b&4?"U":"S";a+=b&2?"W":"R";return a+=b&1?"P":"N"}
function Dq(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.dc(Zq(a,c));if(-1===e){a.O("invalid address: "+c);return}f=e>>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Fc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=Wb[c],6==c&&(d=d.Cd,h+=" -> "+Wb[d.type]),d&&a.O(r(d.id)+" %"+r(f<<a.F.La)+" %%"+r(d.Da)+" "+u(d.Ne)+" "+u(d.size)+" "+h),c!=
sc&&5!=c&&(c=-1),h=0),e+=a.F.Sb,f++}function dr(a,b,c){a=r(a)+" "+r(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-");a+=b&4?"U":"S";a+=b&2?"W":"R";return a+=b&1?"P":"N"}
var Gq={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},Kq={PREV_TSS:0,CPL0_SP:2,CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,
TASK_LDT:42},Lq={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,TASK_IOPM:100};
function Nq(a,b,c){var d=[],e;for(e=null;e=Eb(a.V,"Disk",e);){var f=e,g=b,h=c,d=[];if(f.C)for(var k=0;k<f.C.length;k++){var l=f.C[k];if(l.fg==g&&(l=l.zd[h])){for(var n in l.we)f=l.we[n],d[f[1]]=f[0];break}}if(d.length)break}return d}function lq(a,b){a.ha=a;a.wc=a.Gk=1073741824;a.Pa=null;var c=cr(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in wq)0<=ua(c,d)&&(a.wc|=wq[d],a.O(d+" messages enabled"));kq(a)}
@ -716,7 +716,7 @@ m.vf=function(a,b,c){if(!ir(this))return!1;this.fa=0;do{a||Tf(this)&&Wf(this,thi
function ir(a){var b;if(b=a.F&&sb(a.F))b=a.F,b.la.cc?b=!0:(b.O(b.toString()+" not powered"),b=!1);b&&!qb(a.F)?(a=a.F,a.la.ud?(a.O(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.ic=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.hc=function(a,b){b&&this.O(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){kq(this);this.pa=this.ya=0;this.Pa=null;this.fa=0;this.aa=iq(this,K(this.F),this.F.va.Z);this.la.Ib=!1;lr(this);a||this.qd()};
m.save=function(){var a=new hf(this);N(a,0,Wq(this.aa));N(a,1,Wq(this.ua));N(a,2,[this.L,this.Ea,this.wc]);N(a,3,this.B);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.aa=Xq(a[b++]),this.ua=Xq(a[b++]),this.L=a[b][0],"string"==typeof this.L&&(this.L=[this.L]),this.Ea=a[b][1],this.wc|=a[b][2]);a[3]&&(this.B=a[3]);return!0};m.start=function(a,b){this.N||this.O("running");this.la.Ib=!0;this.uc=a;this.xd=b};
m.stop=function(a,b){if(this.la.Ib){this.la.Ib=!1;this.fa=b-this.xd;if(!this.N){var c="stopped";if(this.fa){var d=a-this.uc,e=0<d?Math.round(1E3*this.fa/d):0,c=c+" (";Tf(this)&&(c+=this.pa+" opcodes, ",this.ya-=this.pa,this.pa=0);c+=this.fa+" cycles, "+d+" ms, "+e+" hz)"}else A(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.O(c)}this.qd(!0);this.yd();lr(this,this.F.Ga)}};function Tf(a){return 1<a.A.length||!!a.Oa||A(a,16)}
function Wf(a,b,c){var d=a.F;if(0<c&&(a.Oa&&!--a.Oa||mr(a,b,1,a.A)))return!0;0<=c&&a.X.length&&(a.pa++,b=If(d,b),null!=b&&(a.X[b][1]++,Vq(a,a.ia[a.Fa],K(d),d.va.Z),++a.Fa==a.ia.length&&(a.Fa=0)));return!1}function Cc(a,b,c){return mr(a,b,c||1,a.ra)?(a.Wb(!0),!0):!1}function Ec(a,b,c){return mr(a,b,c||1,a.ga)?(a.Wb(!0),!0):!1}function jc(a,b,c){a.O("break on input from port "+u(b)+": "+r(c));a.Wb(!0)}function nc(a,b,c){a.O("break on output to port "+u(b)+": "+r(c));a.Wb(!0)}
function Wf(a,b,c){var d=a.F;if(0<c&&(a.Oa&&!--a.Oa||mr(a,b,1,a.A)))return!0;0<=c&&a.X.length&&(a.pa++,b=If(d,b),null!=b&&(a.X[b][1]++,Vq(a,a.ia[a.Fa],K(d),d.va.Z),++a.Fa==a.ia.length&&(a.Fa=0)));return!1}function Cc(a,b,c){return mr(a,b,c||1,a.ra)?(a.Wb(!0),!0):!1}function Ec(a,b,c){return mr(a,b,c||1,a.ga)?(a.Wb(!0),!0):!1}function kc(a,b,c){a.O("break on input from port "+u(b)+": "+r(c));a.Wb(!0)}function oc(a,b,c){a.O("break on output to port "+u(b)+": "+r(c));a.Wb(!0)}
function jq(a){var b,c;a.A=["bp"];if(void 0!==a.ra)for(b=1;b<a.ra.length;b++)c=a.ra[b],qe(a.F,a.dc(c),!1,5==c.type);a.ra=["br"];if(void 0!==a.ga)for(b=1;b<a.ga.length;b++)c=a.ga[b],qe(a.F,a.dc(c),!0,5==c.type);a.ga=["bw"];a.fb=0}
m.Sd=function(a,b,c){var d=!0;c||Rq(this,a,b,!1,!0);if(a!=this.A){var e=this.dc(b);if(-1===e)this.O("invalid address: "+Sq(b)),d=!1;else{var f=this.F,g=5==b.type;(g?f.ld:f.sa)[e>>>f.La].Sd(e&f.Fa,a==this.ga);g&&Ub(f)}}d&&(a.push(b),c?(null!=b.Da&&(b.Z=null),b.Xd=!0):(nr(this,a,a.length-1,"set"),kq(this)));return d};
function Rq(a,b,c,d,e){for(var f=!1,g=or(a,a.dc(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==or(a,a.dc(k))||-1===g&&c.Z==k.Z&&c.Ra==k.Ra)if(!d||k.Xd){f=!0;k.Xd||e||nr(a,b,h,"cleared");b.splice(h,1);b!=a.A&&qe(a.F,g,b==a.ga,5==k.type);k.Xd||kq(a);break}}return f}function pr(a,b){for(var c=1;c<b.length;c++)nr(a,b,c);return b.length-1}function nr(a,b,c,d){c=b[c];a.O(b[0]+" "+Sq(c)+(d?" "+d:c.jk?' "'+c.jk+'"':""))}
@ -746,7 +746,7 @@ function Hr(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){
function Ir(a,b,c){var d=null;if(b=Zq(a,b,!0)){a.dc(b);var e=tr(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ra-e[1])&&(g=" + "+u(f)),f=e[0]+" ("+Iq(e[1],b.Z)+")"+g,c&&a.O(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ra)&&(g=" - "+u(f)),f=e[4]+" ("+Iq(e[5],b.Z)+")"+g,c&&a.O(f),d||(d=f))}else c&&a.O("no symbols")}return d}
function Jr(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Zq(a,b[1]);if(g&&(d=Eq(a,b[2],"drive #"),void 0!==d)){if(!c){e=Eq(a,b[3],"sector #");if(void 0===e)return;f=Eq(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.tc;2<=d&&a.Jb&&(d-=2,h=a.Jb);if(h){var k=h.Gi(d);if(k)if(k.za)if(c)Fr(a),a.O(k.za.toJSON());else if(h.lk(k,e,f)){for(var l=0,n=!1,c=Sq(g);!n&&0<k.Hb--;)(function(a,b){h.jc(k,function(c){0>c?(a.O("out of data at address "+Sq(b)),n=!0):(a.qc(b,c,1),l++)})})(a,g);a.O(l+" bytes read at "+
c)}else a.O("sector "+e+" request out of range");else a.O("drive "+d+" not loaded");else a.O("invalid drive: "+d)}else a.O("disk controller not present")}}else a.O("list/load commands:"),a.O("\tl [address] [drive #] [sector #] [# sectors]")}
function jr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1];if(a.Tb&&"fp"==e){c=a.Tb;d=Zf(c);for(var f=c.kc,g=0;8>g;g++){var h=c,e=null;if(g<h.V.length){var e=[],k=h.B+g&7;e[0]=k;e[1]=ng(h,k);e[2]=h.V[k];k<<=1;e[3]=h.aa[k];e[4]=h.aa[k+1];h=Dg(h,e[3],e[4]);e[5]=h[0];e[6]=h[1];e[7]=
function jr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1];if(a.Tb&&"fp"==e){c=a.Tb;d=Zf(c);for(var f=c.kc,g=0;8>g;g++){var h=c,e=null;if(g<h.V.length){var e=[],k=h.B+g&7;e[0]=k;e[1]=ng(h,k);e[2]=h.V[k];k<<=1;e[3]=h.aa[k];e[4]=h.aa[k+1];h=rg(h,e[3],e[4]);e[5]=h[0];e[6]=h[1];e[7]=
h[2]}if(!e)break;a.O("ST"+g+": "+ma(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+sq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+da(d,16)+" ("+u(d)+") CW: "+da(f,16)+" ("+u(f)+")");return}if("p"==e)d=80286<=a.F.ja;else{f=null;g=e.indexOf("=");if(0<g)f=e.substr(g+1),e=e.substr(0,g);else if(2<b.length)f=b[2];else{a.O("missing value for "+b[1]);return}g=!1;h=ar(a,f);if(void 0!==h)switch(g=!0,k=e.toUpperCase(),"E"==k.charAt(0)&&4>=a.Ja&&(k=null),
k){case "AL":a.F.G=a.F.G&-256|h&255;break;case "AH":a.F.G=a.F.G&-65281|h<<8&255;break;case "AX":a.F.G=a.F.G&-65536|h&65535;break;case "BL":a.F.H=a.F.H&-256|h&255;break;case "BH":a.F.H=a.F.H&-65281|h<<8&255;break;case "BX":a.F.H=a.F.H&-65536|h&65535;break;case "CL":a.F.I=a.F.I&-256|h&255;break;case "CH":a.F.I=a.F.I&-65281|h<<8&255;break;case "CX":a.F.I=a.F.I&-65536|h&65535;break;case "DL":a.F.M=a.F.M&-256|h&255;break;case "DH":a.F.M=a.F.M&-65281|h<<8&255;break;case "DX":a.F.M=a.F.M&-65536|h&65535;
break;case "SP":G(a.F,I(a.F)&-65536|h&65535);break;case "BP":a.F.P=a.F.P&-65536|h&65535;break;case "SI":a.F.K=a.F.K&-65536|h&65535;break;case "DI":a.F.J=a.F.J&-65536|h&65535;break;case "DS":pd(a.F,h);break;case "ES":vd(a.F,h);break;case "SS":jd(a.F,h);break;case "CS":kf(a.F,h);a.aa=iq(a,K(a.F),a.F.va.Z);break;case "IP":case "EIP":O(a.F,h);a.aa=iq(a,K(a.F),a.F.va.Z);break;case "PC":case "PS":xd(a.F,h);break;case "C":h?wf(a.F):xf(a.F);break;case "P":h?(e=a.F,e.resultType&=-3,e.ca|=4):(e=a.F,e.resultType&=
@ -759,60 +759,60 @@ function cr(a,b,c,d){if(c)if(b){0>a.U&&a.L.length&&(a.U=0);if(0>a.U||b!=a.L[a.U]
function qr(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.Ea&&(a.O("ended assemble at "+Sq(a.ua)),a.aa=a.ua,a.Ea=!1),b="";else if(!c){var e=">> ";a.F.Za&1&&(e=a.F.ca&131072?"-- ":"## ");a.O(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.Pa=null;if(sb(a)&&0<b.length){a.Ea&&(b="a "+Sq(a.ua)+" "+b);var g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var n=h.charAt(l);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":var q=
Zq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+Sq(q)),a.Ea=!0,Qc(a.F);else{var p;a.O("not supported yet");p=[];if(p.length){for(var z=0;z<p.length;z++)a.qc(q,p[z],1);a.O(rr(a,a.ua))}}break;case "b":a:{var F=g[0],v=g[1],E=b;if("?"==v)a.O("breakpoint commands:"),a.O("\tbi [p]\ttoggle break on input port [p]"),a.O("\tbo [p]\ttoggle break on output port [p]"),a.O("\tbp [a]\tset exec breakpoint at addr [a]"),a.O("\tbr [a]\tset read breakpoint at addr [a]"),a.O("\tbw [a]\tset write breakpoint at addr [a]"),
a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+pr(a,a.A),L=L+pr(a,a.ra);(L+=pr(a,a.ga))||a.O("no breakpoints")}else if("n"==H)a.Oa=Eq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var V={};if("*"!=v&&(V=Zq(a,v,!0,!0),!V))break a;v=null==V.Ra?v:u(V.Ra);"c"==H?null==V.Ra?(jq(a),a.O("all breakpoints cleared")):Rq(a,
a.A,V)||Rq(a,a.ra,V)||Rq(a,a.ga,V)||a.O("breakpoint missing: "+Sq(V)):"i"==H?a.O("breakpoint "+(gc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(kc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=V.Ra&&(br(a,V,E),"p"==H?a.Sd(a.A,V):"r"==H?a.Sd(a.ra,V):"w"==H?a.Sd(a.ga,V):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in wq)a.$a[bb]&&(Ba&&(Ba+=
a.A,V)||Rq(a,a.ra,V)||Rq(a,a.ga,V)||a.O("breakpoint missing: "+Sq(V)):"i"==H?a.O("breakpoint "+(hc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(lc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=V.Ra&&(br(a,V,E),"p"==H?a.Sd(a.A,V):"r"==H?a.Sd(a.ra,V):"w"==H?a.Sd(a.ga,V):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in wq)a.$a[bb]&&(Ba&&(Ba+=
","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Vb=Nr(a.V,!0);"console"==Ha?console.log(Vb):(Fr(a),
a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa<a.B.length;wa++){var Vd=a.B[wa],Rc;for(Rc in Vd.Rd)if("."!=Rc.charAt(0)){var Wd=Vd.Rd[Rc],Ke=Wd.o;if(void 0!==Ke){var Xd=Wd.s;void 0===Xd&&(Xd=Vd.Z);var Le=Vd.Rd[Rc].l;Le&&(Rc=Le);a.O(Iq(Ke,Xd)+" "+Rc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var mi=P[0];if(mi){var Ve=a.dc(Zq(a,mi));if(-1===Ve)a.O("invalid address: "+mi);else{var be,Da=null;if(80386<=a.F.ja){var ce=
a.ea,Da={};Da.bk=(Ve&-4194304)>>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Ve&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Ve&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Ve),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)),
qd=qd+(" %%"+r(be.Fk));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var Fn=a.$a[bb];Fn?(P.shift(),P.shift(),Fn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Gn=ja,Hn=Ha,In="",Jn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Db=+Gn||a.Ub,de=+Hn||10;isNaN(Db)?Db=de:In="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length);
tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ni=[];"call"==Hn&&(de=1E5,ni=["CALL"]);for(void 0!==Gn&&a.O(Db+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var We=iq(a,rd.Ra,rd.Z,rd.Da,rd.type,rd.Rb,rd.pc),gs=Db--,Kn=rr(a,We,"history",gs);(!ni.length||0<=Kn.indexOf(ni[0]))&&a.O(Kn);We.Se&&(tb+=We.Se,de-=We.Se,Db-=We.Se);tb>=tc.length&&(tb=0);a.Ub=Db;Jn++;de--}}Jn||(a.O("no "+In+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift();
var oi=P[0];if(oi){var Xe=Eq(a,oi);if(void 0===Xe||0>Xe||255<Xe)a.O("invalid vector: "+oi);else{var Ln="&",Mn=!!(a.F.Za&1),Nn=!1,qg=a.F.Mc+(Xe<<(Mn?3:2)),pi=a.F.na(qg+0),hs=a.F.na(qg+2);Mn&&(Ln="#",a.F.na(qg+4)&2048&&(Nn=!0,pi|=a.F.na(qg+6)<<16));a.O("dumpIDT("+u(Xe)+"): "+Ln+r(hs,4)+":"+r(pi,Nn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=Zq(a,ja);if(ee&&(null!=ee.Z||null!=ee.Da)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=Eq(a,Ha)>>>
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,is=tg+15>>4||1;is--&&0<tg;){var ug=0,qi=0,Ye,Ze="",ri="",ja=Sq(ee);for(Ye=16;0<Ye&&0<tg;Ye--){var vg=a.Qa(ee,1),ug=ug|vg<<(qi++<<3);qi==sg&&(Ze+=r(ug,2*sg),Ze+=1==sg?9==Ye?"-":" ":" ",ug=qi=0);ri+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ze+(0==Ye?" "+ri:"")}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var wg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(wg=2,On=65535,Pn=a.na,
Qn=a.jb);var Rn=wg<<1,Sn=g[1];if(null==Sn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=Zq(a,Sn);if(xg)for(var yg=2;yg<g.length;yg++){var $e=ar(a,g[yg]);if(void 0===$e){a.O("unrecognized value: "+g[yg]);break}$e&~On&&a.O("warning: "+r($e)+" exceeds "+wg+"-byte value");var js=Pn.call(a,xg);a.O("changing "+Sq(xg)+" from 0x"+r(js,Rn)+" to 0x"+r($e,Rn));Qn.call(a,xg,$e,wg)}}break;case "f":Gr(a,g[1]);break;case "g":a:{var Tn=
g[1],ks=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Tn){var si=Zq(a,Tn,!0);if(!si)break a;br(a,si,ks);a.Sd(a.A,si,!0)}a.Ke(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ti;if(a.la.Ib)ti="halting",a.Wb();else{if(qb(a,!0))break a;ti="already halted"}c||a.O(ti)}break;case "i":if("if"==g[0]){var ui;var af=b.substr(2),af=na(af);ar(a,af)?(c||a.O("true: "+af),ui=!0):(c||a.O("false: "+af),ui=!1);ui||(d=!1);break}if("int"==g[0]){var zg;a:switch(Eq(a,g[1])){case 19:kk(a,19,a.F.Ga,
!0);a.ya=a.pa;zg=!0;break a;case 33:kk(a,33,a.F.Ga,!0);a.ya=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var vi=g[1];if(vi&&"?"!=vi){var wi=Eq(a,vi);if(void 0!==wi){var ls=ic(a.ea,wi,1);a.O(u(wi)+": "+t(ls))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ms=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var xi=0,Un=a.F.va.Z,bf=iq(a),
Tc=iq(a,I(a.F),a.F.ta.Z);for(a.O("stack trace for "+Sq(Tc));10>xi;){for(var uc=null,ns=256;Tc.Ra>>>0<a.F.Lg>>>0;){bf.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;bf.Z=Un;if(uc=Lr(a,bf))break;bf.Z=a.tb(Tc);if(uc=Lr(a,bf,!0)){Un=a.tb(Tc,!0);0<uc.indexOf("INT")&&a.tb(Tc,!0);break}}if(!uc||null==uc)break;var Vn=null;if("ks"==ms){var Wn=uc.match(/[0-9A-F]+$/);Wn&&(Vn=Ir(a,Wn[0]))}uc=ma(uc,50)+" ;"+(Vn||"stack="+Sq(Tc));a.O(uc);xi++}xi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Ir(a,
g[1],!0);break}Jr(a,g);break;case "m":if("mouse"==g[0]){var yi=g[1],Ag=g[2];if(a.W){var Xn=1;"-"==Ag.charAt(0)&&(Xn=-1,Ag=Ag.substr(1));var td=Eq(a,Ag,yi);if(void 0!==td)switch(td=td*Xn|0,yi){case "x":a.W.Hf(td,0);break;case "y":a.W.Hf(0,td);break;case "click":a.W.je(td,!0);a.W.je(td,!1);break;default:a.O("unknown action: "+yi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==
Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&(Oa="keyboard");for(vc in wq)if(Oa==vc){ud=wq[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var os=0,Uc="";for(vc in wq)if(!Oa||Oa==vc){var ps=!!(a.wc&wq[vc]);if(null===wc||wc==ps)Uc&&(Uc+=","),++os%10||(Uc+="\n\t"),"key"==vc&&(vc="keys"),Uc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Uc||"none"));kq(a)}break;case "o":var zi=g[1],qs=g[2];if(zi&&"?"!=zi){var Ai=Eq(a,zi,"port #"),Bi=Eq(a,qs);void 0!==Ai&&void 0!==Bi&&(mc(a.ea,Ai,1,Bi),a.O(u(Ai)+": "+t(Bi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Kr(a,b.substr(5));break}var Yn="pr"==g[0]?1:0,fe=1+Yn;if(a.N)a.O("step in progress");else{var Bg,
Zn=!1,lb=iq(a,K(a.F),a.F.va.Z);do switch(Bg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Uq(a,lb,1);Bg=!0;break;case 204:case 206:a.N=fe;Uq(a,lb,1);break;case 205:case 224:case 225:case 226:a.N=fe;Uq(a,lb,lb.Rb?4:2);break;case 232:a.N=fe;Uq(a,lb,lb.Rb?5:3);break;case 154:a.N=fe;Uq(a,lb,lb.Rb?7:5);break;case 255:var $n=a.tb(lb)&14591;if(4351==$n||6399==$n)a.N=fe,rr(a,lb);break;case 243:case 242:Uq(a,lb,1);Zn=Bg=!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:Zn&&
(a.N=fe,Uq(a,lb,1))}while(Bg);a.N?(a.Sd(a.A,lb,!0),a.Ke()||(a.V&&a.V.yd(),a.N=0)):Mr(a,Yn?"tr":"t")}break;case "r":if("reset"==b){a.V&&a.V.reset();break}jr(a,g);break;case "t":Mr(a,g[0],g[1]);break;case "u":kr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Hr(a,b.substr(3))||(d=!1);break}a.O("PCjs version 1.22.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(ya());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var cf;void 0!==g[3]&&(cf=+g[3]);switch(g[2]){case "int":a.F.Y.jf=
cf;break;case "start":a.F.Y.Jf=cf;break;case "stop":a.F.Y.lf=cf;break;default:a.O("unknown cs option");break a}void 0!==cf&&Pc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Xc(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Yd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var df="commands:",Ci;for(Ci in pq)df+="\n"+ma(Ci,7)+pq[Ci];Tf(a)||(df+="\nnote: frequency/history disabled if no exec breakpoints");a.O(df);break;default:a.O("unknown command: "+b),d=!1}}}catch(ao){a.O("debugger error: "+(ao.stack||ao.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0}
a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa<a.B.length;wa++){var Vd=a.B[wa],Rc;for(Rc in Vd.Rd)if("."!=Rc.charAt(0)){var Wd=Vd.Rd[Rc],Le=Wd.o;if(void 0!==Le){var Xd=Wd.s;void 0===Xd&&(Xd=Vd.Z);var Me=Vd.Rd[Rc].l;Me&&(Rc=Me);a.O(Iq(Le,Xd)+" "+Rc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ni=P[0];if(ni){var We=a.dc(Zq(a,ni));if(-1===We)a.O("invalid address: "+ni);else{var be,Da=null;if(80386<=a.F.ja){var ce=
a.ea,Da={};Da.bk=(We&-4194304)>>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(We&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(We&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(We),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)),
qd=qd+(" %%"+r(be.Fk));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var Gn=a.$a[bb];Gn?(P.shift(),P.shift(),Gn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Hn=ja,In=Ha,Jn="",Kn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Db=+Hn||a.Ub,de=+In||10;isNaN(Db)?Db=de:Jn="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length);
tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var oi=[];"call"==In&&(de=1E5,oi=["CALL"]);for(void 0!==Hn&&a.O(Db+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var Xe=iq(a,rd.Ra,rd.Z,rd.Da,rd.type,rd.Rb,rd.pc),hs=Db--,Ln=rr(a,Xe,"history",hs);(!oi.length||0<=Ln.indexOf(oi[0]))&&a.O(Ln);Xe.Se&&(tb+=Xe.Se,de-=Xe.Se,Db-=Xe.Se);tb>=tc.length&&(tb=0);a.Ub=Db;Kn++;de--}}Kn||(a.O("no "+Jn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift();
var pi=P[0];if(pi){var Ye=Eq(a,pi);if(void 0===Ye||0>Ye||255<Ye)a.O("invalid vector: "+pi);else{var Mn="&",Nn=!!(a.F.Za&1),On=!1,sg=a.F.Mc+(Ye<<(Nn?3:2)),qi=a.F.na(sg+0),is=a.F.na(sg+2);Nn&&(Mn="#",a.F.na(sg+4)&2048&&(On=!0,qi|=a.F.na(sg+6)<<16));a.O("dumpIDT("+u(Ye)+"): "+Mn+r(is,4)+":"+r(qi,On?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=Zq(a,ja);if(ee&&(null!=ee.Z||null!=ee.Da)){var tg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),tg=Eq(a,Ha)>>>
0,65536<tg&&(tg=65536));for(var sd="",ug="dd"==ia?4:"dw"==ia?2:1,vg=ug*tg||128,js=vg+15>>4||1;js--&&0<vg;){var wg=0,ri=0,Ze,$e="",si="",ja=Sq(ee);for(Ze=16;0<Ze&&0<vg;Ze--){var xg=a.Qa(ee,1),wg=wg|xg<<(ri++<<3);ri==ug&&($e+=r(wg,2*ug),$e+=1==ug?9==Ze?"-":" ":" ",wg=ri=0);si+=32<=xg&&128>xg?String.fromCharCode(xg):".";vg--}sd&&(sd+="\n");sd+=ja+" "+$e+(0==Ze?" "+si:"")}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var yg=1,Pn=255,Qn=a.Qa,Rn=a.qc;"ew"==g[0]&&(yg=2,Pn=65535,Qn=a.na,
Rn=a.jb);var Sn=yg<<1,Tn=g[1];if(null==Tn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var zg=Zq(a,Tn);if(zg)for(var Ag=2;Ag<g.length;Ag++){var af=ar(a,g[Ag]);if(void 0===af){a.O("unrecognized value: "+g[Ag]);break}af&~Pn&&a.O("warning: "+r(af)+" exceeds "+yg+"-byte value");var ks=Qn.call(a,zg);a.O("changing "+Sq(zg)+" from 0x"+r(ks,Sn)+" to 0x"+r(af,Sn));Rn.call(a,zg,af,yg)}}break;case "f":Gr(a,g[1]);break;case "g":a:{var Un=
g[1],ls=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Un){var ti=Zq(a,Un,!0);if(!ti)break a;br(a,ti,ls);a.Sd(a.A,ti,!0)}a.Ke(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ui;if(a.la.Ib)ui="halting",a.Wb();else{if(qb(a,!0))break a;ui="already halted"}c||a.O(ui)}break;case "i":if("if"==g[0]){var vi;var bf=b.substr(2),bf=na(bf);ar(a,bf)?(c||a.O("true: "+bf),vi=!0):(c||a.O("false: "+bf),vi=!1);vi||(d=!1);break}if("int"==g[0]){var Bg;a:switch(Eq(a,g[1])){case 19:kk(a,19,a.F.Ga,
!0);a.ya=a.pa;Bg=!0;break a;case 33:kk(a,33,a.F.Ga,!0);a.ya=a.pa;Bg=!0;break a;default:Bg=!1}Bg||(d=!1);break}var wi=g[1];if(wi&&"?"!=wi){var xi=Eq(a,wi);if(void 0!==xi){var ms=jc(a.ea,xi,1);a.O(u(xi)+": "+t(ms))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ns=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var yi=0,Vn=a.F.va.Z,cf=iq(a),
Tc=iq(a,I(a.F),a.F.ta.Z);for(a.O("stack trace for "+Sq(Tc));10>yi;){for(var uc=null,os=256;Tc.Ra>>>0<a.F.Lg>>>0;){cf.Ra=a.tb(Tc,!0);if(null==Tc.Da||!os--)break;cf.Z=Vn;if(uc=Lr(a,cf))break;cf.Z=a.tb(Tc);if(uc=Lr(a,cf,!0)){Vn=a.tb(Tc,!0);0<uc.indexOf("INT")&&a.tb(Tc,!0);break}}if(!uc||null==uc)break;var Wn=null;if("ks"==ns){var Xn=uc.match(/[0-9A-F]+$/);Xn&&(Wn=Ir(a,Xn[0]))}uc=ma(uc,50)+" ;"+(Wn||"stack="+Sq(Tc));a.O(uc);yi++}yi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Ir(a,
g[1],!0);break}Jr(a,g);break;case "m":if("mouse"==g[0]){var zi=g[1],Cg=g[2];if(a.W){var Yn=1;"-"==Cg.charAt(0)&&(Yn=-1,Cg=Cg.substr(1));var td=Eq(a,Cg,zi);if(void 0!==td)switch(td=td*Yn|0,zi){case "x":a.W.Hf(td,0);break;case "y":a.W.Hf(0,td);break;case "click":a.W.je(td,!0);a.W.je(td,!1);break;default:a.O("unknown action: "+zi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==
Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&(Oa="keyboard");for(vc in wq)if(Oa==vc){ud=wq[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var ps=0,Uc="";for(vc in wq)if(!Oa||Oa==vc){var qs=!!(a.wc&wq[vc]);if(null===wc||wc==qs)Uc&&(Uc+=","),++ps%10||(Uc+="\n\t"),"key"==vc&&(vc="keys"),Uc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Uc||"none"));kq(a)}break;case "o":var Ai=g[1],rs=g[2];if(Ai&&"?"!=Ai){var Bi=Eq(a,Ai,"port #"),Ci=Eq(a,rs);void 0!==Bi&&void 0!==Ci&&(nc(a.ea,Bi,1,Ci),a.O(u(Bi)+": "+t(Ci)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Kr(a,b.substr(5));break}var Zn="pr"==g[0]?1:0,fe=1+Zn;if(a.N)a.O("step in progress");else{var Dg,
$n=!1,lb=iq(a,K(a.F),a.F.va.Z);do switch(Dg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Uq(a,lb,1);Dg=!0;break;case 204:case 206:a.N=fe;Uq(a,lb,1);break;case 205:case 224:case 225:case 226:a.N=fe;Uq(a,lb,lb.Rb?4:2);break;case 232:a.N=fe;Uq(a,lb,lb.Rb?5:3);break;case 154:a.N=fe;Uq(a,lb,lb.Rb?7:5);break;case 255:var ao=a.tb(lb)&14591;if(4351==ao||6399==ao)a.N=fe,rr(a,lb);break;case 243:case 242:Uq(a,lb,1);$n=Dg=!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:$n&&
(a.N=fe,Uq(a,lb,1))}while(Dg);a.N?(a.Sd(a.A,lb,!0),a.Ke()||(a.V&&a.V.yd(),a.N=0)):Mr(a,Zn?"tr":"t")}break;case "r":if("reset"==b){a.V&&a.V.reset();break}jr(a,g);break;case "t":Mr(a,g[0],g[1]);break;case "u":kr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Hr(a,b.substr(3))||(d=!1);break}a.O("PCjs version 1.22.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(ya());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var df;void 0!==g[3]&&(df=+g[3]);switch(g[2]){case "int":a.F.Y.jf=
df;break;case "start":a.F.Y.Jf=df;break;case "stop":a.F.Y.lf=df;break;default:a.O("unknown cs option");break a}void 0!==df&&Pc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Xc(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Yd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var ef="commands:",Di;for(Di in pq)ef+="\n"+ma(Di,7)+pq[Di];Tf(a)||(ef+="\nnote: frequency/history disabled if no exec breakpoints");a.O(ef);break;default:a.O("unknown command: "+b),d=!1}}}catch(bo){a.O("debugger error: "+(bo.stack||bo.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0}
Qa(function(){for(var a=nb(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new hq(d);mb(d,c)}});function hf(a,b,c){this.id=a.id;this.key=Or(a,b,c);this.ha=a.ha;Pr(this,a.gk)}function Or(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}
hf.prototype={constructor:hf,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:Ca()&&(a=Ea(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){Pr(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 Pr(a,b){a[a.id]={};b&&N(a,"parms",b);a.A=!1}function Qr(a){var b=!0;if(Ca()){var c=JSON.stringify(a[a.id]);Fa(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Rr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Sr(a,b){return a[a.id][b]||null}function N(a,b,c){try{a[a.id][b]=c}catch(d){}}
function Tr(a,b,c){Ua.call(this,"Computer",a,Tr,67108864);this.la.cc=!1;Ur(this,b);this.ga=Nc(this,"autoPower",a);this.N=0;this.ua=a.busWidth||a.buswidth;this.A=Vr;this.aa=null;this.W=this.ra=!1;this.wa=Nc(this,"url")||"";this.ya=(Math.random()+.1).toString(36).substr(2,12);this.B=Wr(this);if(this.F=ib("CPU",this.id)){this.ha=ib("Debugger",this.id);this.L=[];for(b=null;b=Eb(this,"Video",b);)this.L.push(b);this.ea=new Lb({id:this.ve+".bus",busWidth:this.ua},this.F,this.ha);var d,e=gb(this.id);if((this.C=
ib("Panel",this.id))&&this.C.Df)for(b=0;b<e.length;b++)d=e[b],d.Na=this.C.Na,d.O=this.C.O,d.Df=this.C.Df;for(b=0;b<e.length;b++)d=e[b],d.Ic&&d.Ic(this,this.ea,this.F,this.ha);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.X=d:this.A=parseInt(d,10));var f;if(a=Nc(this,"state")||(f=!0,a.state))b=this.ia=a,f||(this.W=!0,this.A=Vr),this.A&&(this.fa=new hf(this,Xr),this.fa.load()?b=null:delete this.fa);!b&&this.A&&(b=Yr(this))&&(this.W=!0);if(b){var g=this;va(b,null,!0,function(a,b,c){c?(g.X=null,g.W=
!1,g.Na("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.aa=b,g.ra=!0);rb(g)})}else rb(this);this.qa.power||(this.ga=!0);!c&&this.ga&&Zr(this,this.$f)}else w("Unable to find CPU component")}db(Tr);var Xr="1.22.0",Vr=0;m=Tr.prototype;m.ff=function(){return this.ya};function Ur(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.U=b}
function Nc(a,b,c){var d=b.toLowerCase(),d=Ya[b]||Ya[d];void 0===d&&a.U&&(d=a.U[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}m.ke=function(){return this.B||""};function Zr(a,b,c){for(var d=gb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!sb(f)){sb(f,function(){Zr(a,b,c)});return}}b.call(a,c)}
function $r(a,b){var c=new hf(a,Xr,"validate");if(c.load()&&Rr(c)){var d=Sr(c,"timestamp"),e=b?Sr(b,"timestamp"):"unknown";d!=e&&(a.Na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
m.$f=function(a){void 0===a&&(a=this.A||(this.aa?1:Vr));if(!this.N){this.N++;var b=!1,c=!1;this.pa=!1;var d=this.fa||new hf(this,Xr);if(-1==a)b=!0;else if(a>Vr){if(d.load(this.aa)){this.V=new hf(this,Xr,"failsafe");this.V.load()&&(as(this,d),a=2,Pr(this.V));N(this.V,"timestamp",qa());Qr(this.V);var e=this.A&&!this.W;if(1==a||za("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Rr(d)){var f=Sr(d,"code"),g=Sr(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Na("Error: "+g),"unable to verify user"==g&&(Fa("user",""),this.B=null)):this.O(f+": "+g),Pr(d),d.load()?(c=Rr(d),e=!0):c=!1))}e&&$r(this,c?d:null)}else 2==a&&d.clear()}else $r(this);delete this.aa;delete this.fa}e=gb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.F&&(c=bs(this,g,d,b,c));b=[d,a,c];-1!=a?Zr(this,this.Ii,b):this.Ii(b)}};
function bs(a,b,c,d,e){if(!b.la.cc){b.la.cc=!0;if(b.ic){var f=null;e&&((f=Sr(c,b.id))||(f=Sr(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ic(f,d)&&f&&(w("Unable to restore state for "+b.type),a.ia&&!a.ra?(c.clear(),a.A=Vr,window&&window.location.reload()):a.pa=!0,b.ic(null),e=!1)}if(!d&&b.tk)for(a=b.tk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Ii=function(a){var b=a[0],c=0>a[1];a=a[2];this.la.cc=!0;var d=this.qa.power;d&&(d.textContent="Shutdown");this.ka||(this.O("PCjs v"+Xr+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ka=!0);this.F&&(bs(this,this.F,b,c,a),Sc(this.F));this.pa&&(as(this,b),b.clear());!c&&this.V&&(this.V.clear(),delete this.V);this.N=0};
function as(a,b){if(za("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.wa,d=a.ke(),e=b.toString(),f={app:"PCjs"};f.ver=Xr;f.url=c;f.user=d;f.type="bug";f.data=e;va("http://www.pcjs.org/api/v1/report",f,!0)}}
function Nr(a,b,c){var d,e="none";if(a.N)return null;a.N--;var f=new hf(a,Xr),g=new hf(a,Xr,"validate"),h=qa();N(g,"timestamp",h);N(f,"timestamp",h);N(f,"version","1.22.0");N(f,"url",window?window.location.href:null);N(f,"browser",ya());a.F&&a.F.hc&&(c&&a.F.Wb(),d=a.F.hc(b,c),"object"===typeof d&&N(f,a.F.id,d),c&&(a.F.la.cc=!1,!1===d&&(e=null)));for(var h=gb(a.id),k=0;k<h.length;k++){var l=h[k];l.la.cc&&(l.hc&&(d=l.hc(b,c),"object"===typeof d&&N(f,l.id,d)),c&&(l.la.cc=!1,!1===d&&(e=null)))}e&&(c?
(h=d=!1,b?(a.B&&cs(a,a.B,f.toString()),Qr(g)&&Qr(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=3==a.A),d&&f.clear(h)):e=f.toString());c&&(a.la.cc=!1,b=a.qa.power)&&(b.textContent="Power");a.N=0;return e}m.reset=function(){this.ea&&this.ea.reset&&(y(this,"Resetting "+this.ea.type),this.ea.reset());for(var a=gb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ea&&c.reset&&(y(this,"Resetting "+c.type),c.reset())}};
function Tr(a,b,c){Ua.call(this,"Computer",a,Tr,67108864);this.la.cc=!1;Ur(this,b);this.ga=Nc(this,"autoPower",a);this.N=0;this.ra=a.busWidth||a.buswidth;this.A=Vr;this.aa=null;this.W=this.pa=!1;this.ua=Nc(this,"url")||"";this.ya=(Math.random()+.1).toString(36).substr(2,12);this.B=Wr(this);if(this.F=ib("CPU",this.id)){this.ha=ib("Debugger",this.id);this.L=[];for(b=null;b=Eb(this,"Video",b);)this.L.push(b);this.ea=new Lb({id:this.ve+".bus",busWidth:this.ra},this.F,this.ha);var d,e=gb(this.id);if((this.C=
ib("Panel",this.id))&&this.C.Df)for(b=0;b<e.length;b++)d=e[b],d.Na=this.C.Na,d.O=this.C.O,d.Df=this.C.Df;this.O(Xr+" v"+Yr+"\n"+Zr+"\n"+$r);for(b=0;b<e.length;b++)d=e[b],d.Ic&&d.Ic(this,this.ea,this.F,this.ha);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.X=d:this.A=parseInt(d,10));var f;if(a=Nc(this,"state")||(f=!0,a.state))b=this.ia=a,f||(this.W=!0,this.A=Vr),this.A&&(this.fa=new hf(this,Yr),this.fa.load()?b=null:delete this.fa);!b&&this.A&&(b=as(this))&&(this.W=!0);if(b){var g=this;va(b,null,
!0,function(a,b,c){c?(g.X=null,g.W=!1,g.Na("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.aa=b,g.pa=!0);rb(g)})}else rb(this);this.qa.power||(this.ga=!0);!c&&this.ga&&bs(this,this.$f)}else w("Unable to find CPU component")}db(Tr);var Xr="PCjs",Yr="1.22.0",Zr="Copyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>",$r="License: GPL version 3 or later <http://gnu.org/licenses/gpl.html>",Vr=0;m=Tr.prototype;m.ff=function(){return this.ya};
function Ur(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.U=b}function Nc(a,b,c){var d=b.toLowerCase(),d=Ya[b]||Ya[d];void 0===d&&a.U&&(d=a.U[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}m.ke=function(){return this.B||""};function bs(a,b,c){for(var d=gb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!sb(f)){sb(f,function(){bs(a,b,c)});return}}b.call(a,c)}
function cs(a,b){var c=new hf(a,Yr,"validate");if(c.load()&&Rr(c)){var d=Sr(c,"timestamp"),e=b?Sr(b,"timestamp"):"unknown";d!=e&&(a.Na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
m.$f=function(a){void 0===a&&(a=this.A||(this.aa?1:Vr));if(!this.N){this.N++;var b=!1,c=!1;this.ka=!1;var d=this.fa||new hf(this,Yr);if(-1==a)b=!0;else if(a>Vr){if(d.load(this.aa)){this.V=new hf(this,Yr,"failsafe");this.V.load()&&(ds(this,d),a=2,Pr(this.V));N(this.V,"timestamp",qa());Qr(this.V);var e=this.A&&!this.W;if(1==a||za("Click OK to restore the previous "+Xr+" machine state, or CANCEL to reset the machine.")){if(c=Rr(d)){var f=Sr(d,"code"),g=Sr(d,"data");f&&("ok"==f?d.load(g):("error"==f&&
"no machine state"!=g?(this.Na("Error: "+g),"unable to verify user"==g&&(Fa("user",""),this.B=null)):this.O(f+": "+g),Pr(d),d.load()?(c=Rr(d),e=!0):c=!1))}e&&cs(this,c?d:null)}else 2==a&&d.clear()}else cs(this);delete this.aa;delete this.fa}e=gb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.F&&(c=es(this,g,d,b,c));b=[d,a,c];-1!=a?bs(this,this.Ii,b):this.Ii(b)}};
function es(a,b,c,d,e){if(!b.la.cc){b.la.cc=!0;if(b.ic){var f=null;e&&((f=Sr(c,b.id))||(f=Sr(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ic(f,d)&&f&&(w("Unable to restore state for "+b.type),a.ia&&!a.pa?(c.clear(),a.A=Vr,window&&window.location.reload()):a.ka=!0,b.ic(null),e=!1)}if(!d&&b.tk)for(a=b.tk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Ii=function(a){var b=a[0],c=0>a[1];a=a[2];this.wa=!0;this.la.cc=!0;var d=this.qa.power;d&&(d.textContent="Shutdown");this.F&&(es(this,this.F,b,c,a),Sc(this.F));this.ka&&(ds(this,b),b.clear());!c&&this.V&&(this.V.clear(),delete this.V);this.N=0};
function ds(a,b){if(za("There may be a problem with your "+Xr+" machine.\n\nTo help us diagnose it, click OK to send this "+Xr+" machine state to http://www.pcjs.org.")){var c=a.ua,d=a.ke(),e=b.toString(),f=Yr,g={};g.app=Xr;g.ver=f;g.url=c;g.user=d;g.type="bug";g.data=e;va("http://www.pcjs.org/api/v1/report",g,!0)}}
function Nr(a,b,c){var d,e="none";if(a.N)return null;a.N--;var f=new hf(a,Yr),g=new hf(a,Yr,"validate"),h=qa();N(g,"timestamp",h);N(f,"timestamp",h);N(f,"version","1.22.0");N(f,"url",window?window.location.href:null);N(f,"browser",ya());a.F&&a.F.hc&&(c&&a.F.Wb(),d=a.F.hc(b,c),"object"===typeof d&&N(f,a.F.id,d),c&&(a.F.la.cc=!1,!1===d&&(e=null)));for(var h=gb(a.id),k=0;k<h.length;k++){var l=h[k];l.la.cc&&(l.hc&&(d=l.hc(b,c),"object"===typeof d&&N(f,l.id,d)),c&&(l.la.cc=!1,!1===d&&(e=null)))}e&&(c?
(h=d=!1,b?(a.B&&fs(a,a.B,f.toString()),Qr(g)&&Qr(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=3==a.A),d&&f.clear(h)):e=f.toString());c&&(a.la.cc=!1,b=a.qa.power)&&(b.textContent="Power");a.N=0;return e}m.reset=function(){this.ea&&this.ea.reset&&(y(this,"Resetting "+this.ea.type),this.ea.reset());for(var a=gb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ea&&c.reset&&(y(this,"Resetting "+c.type),c.reset())}};
m.start=function(a,b){for(var c=gb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=gb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.Pb=function(a,b,c){var d=this;switch(b){case "power":return this.qa[b]=c,c.onclick=function(){d.N||(d.la.cc?Nr(d,!1,!0):Zr(d,d.$f))},!0;case "reset":return this.qa[b]=c,c.onclick=function(){if(d.la.cc&&!d.N)if(d.A&&!d.X){var a=za("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Nr(d,a,!0);!a&&d.ia?window&&window.location.reload():(a||(d.dh=!0),d.$f(Vr),d.dh=!1)}else d.reset(),d.F&&Sc(d.F)},!0;case "save":if(ha(xa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.qa[b]=c;c.onclick=function(){var a=Wr(d,!0);if(a){var b=!!(d.A&&!d.X||d.ia),c=Nr(d,b);b?cs(d,a,c):d.Na("Resume disabled, machine state not saved")}};return!0}return!1};
function Wr(a,b){var c=a.B;c||(c=Ea("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=ds(a,c))||a.Na("The user ID is invalid."))):b&&a.Na("Browser local storage is not available"));return c}
function ds(a,b){a.B=null;var c=va(xa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Fa("user",c.data),a.B=c.data)}catch(e){w(e.message+" ("+d+")")}return a.B}function Yr(a){var b=null;a.B&&(b=xa()+"/api/v1/user?req=load&user="+a.B+"&state="+Or(a,Xr));return b}
function cs(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Or(a,Xr);d.data=c;b=va(xa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Na("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.Na(c),Fa("user",""),a.B=null)}}
m.Pb=function(a,b,c){var d=this;switch(b){case "power":return this.qa[b]=c,c.onclick=function(){d.N||(d.la.cc?Nr(d,!1,!0):bs(d,d.$f))},!0;case "reset":return this.qa[b]=c,c.onclick=function(){if(d.la.cc&&!d.N)if(d.A&&!d.X){var a=za("Click OK to save changes to this "+Xr+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Nr(d,a,!0);!a&&d.ia?window&&window.location.reload():(a||(d.dh=!0),d.$f(Vr),d.dh=!1)}else d.reset(),d.F&&Sc(d.F)},!0;case "save":if(ha(xa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.qa[b]=c;c.onclick=function(){var a=Wr(d,!0);if(a){var b=!!(d.A&&!d.X||d.ia),c=Nr(d,b);b?fs(d,a,c):d.Na("Resume disabled, machine state not saved")}};return!0}return!1};
function Wr(a,b){var c=a.B;c||(c=Ea("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=gs(a,c))||a.Na("The user ID is invalid."))):b&&a.Na("Browser local storage is not available"));return c}
function gs(a,b){a.B=null;var c=va(xa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Fa("user",c.data),a.B=c.data)}catch(e){w(e.message+" ("+d+")")}return a.B}function as(a){var b=null;a.B&&(b=xa()+"/api/v1/user?req=load&user="+a.B+"&state="+Or(a,Yr));return b}
function fs(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Or(a,Yr);d.data=c;b=va(xa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Na("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.Na(c),Fa("user",""),a.B=null)}}
function Eb(a,b,c){a=gb(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}m.yd=function(a){if(this.L.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.L[0];d.V&&d.V.focus();a&&window&&window.scrollTo(b,c)}};m.qd=function(a){this.F&&this.F.qd(a);this.C&&this.C.qd(a)};
function cd(a,b){for(var c=0;c<a.L.length;c++)rn(a.L[c],b);if(a.C&&(c=a.C,c.Ja)){Ib(c,18,c.aa,c.Ia);if(c.gb){var d=c.ea,e=c.A,f,g;null==f&&(f=0);null==g&&(g=d.X-f|0);null==e&&(e={$g:0,Ud:0,Rg:[]});var h=f>>>d.La;f=f+g-1>>>d.La;e.$g=0;for(e.Ud=0;h<=f;)g=d.sa[h],e.$g+=g.size,g.size&&(e.Rg.push(sa(Hb,h,0,0,g.type)),e.Ud++),h++;c.A=e;c.ya=c.A.Ud*c.ea.Sb/691200;d=0;c.A.Ai=0;c.A.Af||(c.A.Af=[]);var e=-1,h=0,k=-1;for(f=0;f<c.A.Ud;f++){var l=c.A.Rg[f];g=ta(Hb.type,l);l=ta(Hb.$j,l);if(g!=e||l!=k+1)(k=f-h)&&
(d+=Kb(c,h,k,e)),e=g,h=f;k=l}d+=Kb(c,h,f-h,e);e=c.A.Kk!=d;c.A.Kk=d;if(e){e=new Bb(0,0,c.aa.width,c.aa.height);c.A.Pe=[];h=c.A.Ud;for(d=0;d<c.A.Ai;d++)f=c.A.Af[d].Ud,c.A.Pe.push(Cb(e,f,h,!d)),h-=f;for(d=0;d<c.A.Pe.length;d++)e=c.A.Af[d],h=f=c.A.Pe[d],g=c.Ia,(k=xc[e.type])||(k=new Ab),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.ad,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.ad,h.A),h=c,g=f,h.ga=h.ua,h.X=h.wa,f=g.x+(g.ad>>1),k=g.y+(g.A>>1),l=g.A,g.ad<g.A&&(l=g.ad,h.ra=!0,
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.X&&(h.X=l,h.ga=h.X+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=sc[e.type]+" ("+(e.Ud*c.ea.Sb/1024|0)+"Kb)",h.N.font=h.ga,h.C-=h.N.measureText(e).width>>1,h.U+=(h.X>>1)-2,Jb(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Jb(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
Qa(function(){for(var a=nb(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=jb(c),c=nb(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=jb(f),g=new Tr(g,d,!0);mb(g,f);g.ga&&Zr(g,g.$f)}});La.show.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.ka&&!c.la.cc&&c.$f(-1)}});
La.exit.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.la.cc&&Nr(c,!(!c.A||c.X),!0)}});var es=0;function fs(a,b,c,d,e,f){e("Loading "+a+"...");va(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):rs(h,a,b,c,d,e,f)})}
function rs(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){fb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?ss(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function ss(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);ss(a,b,c)}})}else c(a,null)}
function ts(a,b,c,d){function e(a){if(void 0===h){var b=g&&nb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--es||Sa(!0));k=!1}var g,h,k=!0;es++;eb[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));n.appendChild(q)}c||
(c="/versions/pcjs/1.22.0/components.xsl");l=function(d,h){h?fs(c,null,null,!1,e,function(d,k){if(k)if(fb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(k);l?(g.outerHTML=l,--es||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--es||Sa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?fs(b,a,d,!0,e,l):rs(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(p){f(p.message)}return k}window.embedPC=function(a,b,c,d){Sa(!1);return ts(a,b,c,d)};window.enableEvents=Sa;window.sendEvent=Ta;
function us(a,b,c,d){if(!c&&b){d.push(b);a=eb[d[0]];b=null;for(var e in a)if(ha(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?va(b,null,!0,function(a,b){vs(b,d)}):vs(null,d)}else w("Error ("+c+") requesting "+a)}
function vs(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=eb[f],k={},l;for(l in h){var n=h[l],q=ga(l);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(h[l]);){var p=d[2];p&&(h[p]||(n=n.replace(d[0],"")))}d=l=fa(l)}else"xsl"==q&&(e=l=fa(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.X&&(h.X=l,h.ga=h.X+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=Wb[e.type]+" ("+(e.Ud*c.ea.Sb/1024|0)+"Kb)",h.N.font=h.ga,h.C-=h.N.measureText(e).width>>1,h.U+=(h.X>>1)-2,Jb(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Jb(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
Qa(function(){for(var a=nb(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=jb(c),c=nb(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=jb(f),g=new Tr(g,d,!0);mb(g,f);g.ga&&bs(g,g.$f)}});La.show.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.wa&&!c.la.cc&&c.$f(-1)}});
La.exit.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.la.cc&&Nr(c,!(!c.A||c.X),!0)}});var ss=0;function ts(a,b,c,d,e,f){e("Loading "+a+"...");va(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):us(h,a,b,c,d,e,f)})}
function us(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){fb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?vs(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function vs(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);vs(a,b,c)}})}else c(a,null)}
function ws(a,b,c,d){function e(a){if(void 0===h){var b=g&&nb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--ss||Sa(!0));k=!1}var g,h,k=!0;ss++;eb[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));n.appendChild(q)}c||
(c="/versions/pcjs/1.22.0/components.xsl");l=function(d,h){h?ts(c,null,null,!1,e,function(d,k){if(k)if(fb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(k);l?(g.outerHTML=l,--ss||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ss||Sa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?ts(b,a,d,!0,e,l):us(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(p){f(p.message)}return k}window.embedPC=function(a,b,c,d){Sa(!1);return ws(a,b,c,d)};window.enableEvents=Sa;window.sendEvent=Ta;
function xs(a,b,c,d){if(!c&&b){d.push(b);a=eb[d[0]];b=null;for(var e in a)if(ha(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?va(b,null,!0,function(a,b){ys(b,d)}):ys(null,d)}else w("Error ("+c+") requesting "+a)}
function ys(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=eb[f],k={},l;for(l in h){var n=h[l],q=ga(l);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(h[l]);){var p=d[2];p&&(h[p]||(n=n.replace(d[0],"")))}d=l=fa(l)}else"xsl"==q&&(e=l=fa(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),c=Ia(c,"javascript",!1,g),c=c+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n'),c+="...\n",c+='<script type="text/javascript" src="'+g+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",w(c)):w("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=ib("Computer",a),e=ib("Debugger",a);if(d){var f=Nr(d,!0),g=d.U?JSON.stringify(d.U):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,gk:g}))return!0;va(b,null,!0,function(c,d,e){us(c,d,e,[a,fa(b,!0),g,f])});return!0}w("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b,c){var d=ib("Computer",a),e=ib("Debugger",a);if(d){var f=Nr(d,!0),g=d.U?JSON.stringify(d.U):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,gk:g}))return!0;va(b,null,!0,function(c,d,e){xs(c,d,e,[a,fa(b,!0),g,f])});return!0}w("Unable to identify machine '"+a+"'");return!1};})();

View file

@ -5,19 +5,19 @@ function ha(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ia={"&":"&amp;","
function na(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.mg|g<<f.shift&f.mg}return c}function oa(a,b){return(b&a.mg)>>a.shift}
function pa(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function n(a){window&&window.alert(a)}function ra(a){var b=!1;window&&(b=window.confirm(a));return b}var sa=null;function ta(){if(null==sa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}sa=a}return sa}function wa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function p(a){window&&window.alert(a)}function ra(a){var b=!1;window&&(b=window.confirm(a));return b}var sa=null;function ta(){if(null==sa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}sa=a}return sa}function wa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function xa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ya(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}
function za(a,b,c,d){var e=null;b="data:application/"+b+(c?";base64":"")+",";b=ya("Firefox")?b+(c?a:encodeURIComponent(a)):b+(c?a:encodeURI(a));d&&(e=document.createElement("a"),"string"!=typeof e.download&&(e=null));e?(e.href=b,e.download=d,document.body.appendChild(e),e.click(),document.body.removeChild(e),a="Check your Downloads folder for "+d+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+(d?" ("+d+")":"")+".");return a}
var Aa={init:[],show:[],exit:[]},Ba=!1,Ca=!0;function Da(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ea(a){Aa.init.push(a)}function Fa(a){if(Ca)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){n("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Ga(a){!Ca&&a?(Ca=!0,Ba&&Ha("init")):Ca=a}function Ha(a){Aa[a]&&Fa(Aa[a])}Da("onload",function(){Ba=!0;Fa(Aa.init)});
Da("onpageshow",function(){Fa(Aa.show)});Da(ya("Opera")||ya("iOS")?"onunload":"onbeforeunload",function(){Fa(Aa.exit)});function Ia(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.zh=b.comment;this.fj=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.lf=this.id.substr(0,b),this.jf=this.id.substr(b+1)):this.jf=this.id;this[a]=c;this.ea={ne:!1,Qc:!1,hg:!1,Rb:!1,Yc:!1};this.Bf=null;this.ea.Yc=!1;this.ka={};this.Ia=null;Ja.push(this)}var Ka=void 0,La={};
var Aa={init:[],show:[],exit:[]},Ba=!1,Ca=!0;function Da(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ea(a){Aa.init.push(a)}function Fa(a){if(Ca)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){p("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Ga(a){!Ca&&a?(Ca=!0,Ba&&Ha("init")):Ca=a}function Ha(a){Aa[a]&&Fa(Aa[a])}Da("onload",function(){Ba=!0;Fa(Aa.init)});
Da("onpageshow",function(){Fa(Aa.show)});Da(ya("Opera")||ya("iOS")?"onunload":"onbeforeunload",function(){Fa(Aa.exit)});function Ia(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.zh=b.comment;this.fj=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.lf=this.id.substr(0,b),this.jf=this.id.substr(b+1)):this.jf=this.id;this[a]=c;this.da={ne:!1,Qc:!1,hg:!1,Rb:!1,Yc:!1};this.Bf=null;this.da.Yc=!1;this.ka={};this.Ia=null;Ja.push(this)}var Ka=void 0,La={};
if(window){Ka||(Ka=window.location.search.substr(1));for(var Ma,Na=/\+/g,Oa=/([^&=]+)=?([^&]*)/g;Ma=Oa.exec(Ka);)La[decodeURIComponent(Ma[1].replace(Na," "))]=decodeURIComponent(Ma[2].replace(Na," "))}function Pa(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 Qa(a,b){b||(b=Ia);a.prototype=Pa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ja=[],Ra={};function Sa(a,b,c){Ra[a]&&b&&(Ra[a][b]=c)}function Ta(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ja.length;b++){var d=Ja[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ua(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ja.length;c++)if(Ja[c].id===a)return Ja[c]}return null}
function Va(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<Ja.length;d++)if(c)c==Ja[d]&&(c=null);else if(!(a!=Ja[d].type||b&&Ja[d].id.indexOf(b)))return Ja[d]}return null}function Wa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){n(c.message+" ("+a+")")}return b}function Xa(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=Va(d,a.id))&&(b=d.ka[b])&&a.zb(null,c,b))}
function Va(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<Ja.length;d++)if(c)c==Ja[d]&&(c=null);else if(!(a!=Ja[d].type||b&&Ja[d].id.indexOf(b)))return Ja[d]}return null}function Wa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){p(c.message+" ("+a+")")}return b}function Xa(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=Va(d,a.id))&&(b=d.ka[b])&&a.zb(null,c,b))}
function Ya(a,b){for(var c=Za(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(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case "pcjs-binding":(h=Wa(g))&&h.binding&&a.zb(h.type,h.binding,g,h.value),m=k.length}}}}
function Za(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}
Ia.prototype={constructor:Ia,parent:null,toString:function(){return this.name?this.name:this.id||this.type},zb:function(a,b,c){switch(b){case "clear":return this.ka[b]||(this.ka[b]=c,c.onclick=function(a){return function(){a.ka.print&&(a.ka.print.value="")}}(this)),!0;case "print":return this.ka[b]||(this.gg=this.ka[b]=c,c.value="",this.rc=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.Ba=function(a,b,c){this.rc(a,"notice",c)}),!0;default:return!1}},log:function(){},rc:function(){},status:function(a){this.rc(this.jf+": "+a)},Ba:function(a,b){b||n(a)},Vb:function(){return this.ea.Rb=!0},Ub:function(a,b){b&&(this.ea.Rb=!1);return!0}};function $a(a,b){if(a.ea.hg)return a.ea.Qc&&(a.ea.Qc=!1),a.ea.hg=!1;if(a.ea.Yc)return a.rc(a.toString()+" error"),!1;a.ea.Qc=b;return a.ea.Qc}function ab(a,b){if(!a.ea.Yc&&(a.ea.ne=!1!==b,a.ea.ne)){var c=a.Bf;a.Bf=null;c&&c()}}
function bb(a,b){b&&(a.ea.ne?b():a.Bf=b);return a.ea.ne}function cb(a,b){a.ea.Yc=!0;a.Ba(b)}
this.Ba=function(a,b,c){this.rc(a,"notice",c)}),!0;default:return!1}},log:function(){},rc:function(){},status:function(a){this.rc(this.jf+": "+a)},Ba:function(a,b){b||p(a)},Vb:function(){return this.da.Rb=!0},Ub:function(a,b){b&&(this.da.Rb=!1);return!0}};function $a(a,b){if(a.da.hg)return a.da.Qc&&(a.da.Qc=!1),a.da.hg=!1;if(a.da.Yc)return a.rc(a.toString()+" error"),!1;a.da.Qc=b;return a.da.Qc}function ab(a,b){if(!a.da.Yc&&(a.da.ne=!1!==b,a.da.ne)){var c=a.Bf;a.Bf=null;c&&c()}}
function bb(a,b){b&&(a.da.ne?b():a.Bf=b);return a.da.ne}function cb(a,b){a.da.Yc=!0;a.Ba(b)}
var db="undefined"!==typeof ArrayBuffer,eb={Lf:4,kc:5,bd:6,Ic:7,Jc:8,Sa:9,Kb:11,Lb:12,Sd:4,ai:60,bi:83,dc:3,yb:9,qc:16,Kf:1,fi:19,hi:28,ji:16,ii:21,gi:37,di:2,Ag:9,ei:5,ci:33,Cg:10,Bg:8,Xe:3,We:15,yi:51,zi:1,Ai:2,Bi:4,xi:32,Dg:15,Di:15,Ma:16,Na:4,Fi:11,Ei:18,Ci:24,Mb:4,Gi:2,we:16,Hi:17,Ig:18,Ii:19,Hg:5,Jg:6,Ni:2,Mi:8,Ki:9,Li:10,Ji:10,Kg:10,Lg:10,li:80,ni:144,ki:86,mi:154,pi:101,si:165,oi:107,ri:171,Pi:70,Ri:113,Oi:76,Qi:124,ui:80,wi:128,ti:86,vi:134,Ze:3,Ye:16,Qg:10,Pg:8,Si:51,ec:8,Ti:17,Ui:36,Ac:11,
Vi:16,Td:10,Rc:2,xg:18,yg:7,zg:15,Eg:12,Fg:7,Gg:11,Mg:18,Ng:7,Og:15,Rg:15,Sg:7,Tg:13,Xg:11,Yg:7,Zg:8,Wi:8,Zi:12,Xi:18,Yi:17,$i:15,Vg:8,Ug:20,Wg:2,bh:3,$e:9,ah:5,$g:11,eh:4,dh:17,aj:11},fb={Lf:0,kc:0,bd:0,Ic:0,Jc:0,Sa:0,Kb:1,Lb:1,Sd:3,ai:14,bi:16,dc:2,yb:7,qc:7,Kf:0,fi:7,hi:13,ji:7,ii:11,gi:16,di:3,Ag:6,ei:2,ci:13,Cg:5,Bg:5,Xe:2,We:7,yi:23,zi:0,Ai:1,Bi:3,xi:17,Dg:7,Di:11,Ma:7,Na:3,Fi:7,Ei:11,Ci:15,Mb:2,Gi:3,we:7,Hi:8,Ig:8,Ii:8,Hg:4,Jg:4,Ni:2,Mi:3,Ki:5,Li:2,Ji:3,Kg:5,Lg:3,li:14,ni:22,ki:17,mi:25,pi:17,
si:25,oi:20,ri:28,Pi:13,Ri:21,Oi:16,Qi:24,ui:13,wi:21,ti:16,vi:24,Ze:2,Ye:7,Qg:5,Pg:5,Si:19,ec:5,Ti:5,Ui:17,Ac:3,Vi:5,Td:3,Rc:0,xg:8,yg:5,zg:9,Eg:5,Fg:5,Gg:4,Mg:5,Ng:5,Og:4,Rg:7,Sg:5,Tg:8,Xg:3,Yg:4,Zg:3,Wi:11,Zi:11,Xi:15,Yi:15,$i:7,Vg:5,Ug:8,Wg:0,bh:2,$e:6,ah:3,$g:6,eh:3,dh:5,aj:5};function gb(a){Ia.call(this,"Panel",a,gb);this.H=this.I=this.S=-1}Qa(gb);
@ -25,23 +25,23 @@ function hb(a,b,c,d){this.A=[a,b,c,d];this.B=null;void 0===a&&(this.A[0]=256*Mat
function jb(a,b,c,d){void 0===d&&(d=b>=c>>2);d?(b=new ib(a.x,a.y,a.Fc,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new ib(a.x,a.y,a.Fc*b/c|0,a.A),a.x+=b.Fc,a.Fc-=b.Fc);return b}l=gb.prototype;l.zb=function(a,b,c,d){return this.ba&&this.ba.zb(a,b,c,d)||this.A&&this.A.zb(a,b,c,d)||this.C&&this.C.zb(a,b,c,d)?!0:this.parent.zb.call(this,a,b,c,d)};l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.A=c;this.Ia=d;this.C=kb(a,"Keyboard")};l.Vb=function(a,b){b||lb();return!0};l.Ub=function(){return!0};
l.je=function(a,b){a.button||(this.S=b?0:-1,mb(this,a,b))};l.ng=function(a){mb(this,a)};
function mb(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.S||(a.S=Math.abs(a.H-d)>Math.abs(a.I-b)?1:2),1==a.S?b=a.I:2==a.S&&(d=a.H));a.H=d;a.I=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.B&&a.B.ce)for(f=0;f<a.B.ce.length;f++)if(e=a.B.ce[f],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.B.He[f],g=oa(nb.bj,a.B.$f[d.Ij]),f=g*a.ha.xb,d=(g+d.hd)*a.ha.xb-1;0<b&&(f+=e.Fc*(b-1)*a.ma);f+=c*a.ma;f|=0;f>d&&
(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.oa)){b=c;if(a.context&&a.W&&a.Y){e=a.W.width;a.Y.fillStyle="black";a.Y.fillRect(0,360,e,360);ob(a,378,a.W,a.Y);a.Z=a.pa.width/24|0;if(null==b)pb(a,"Mouse over memory to dump");else for(pb(a,"0x"+ea(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ha;var k=b++;h=h.S[(k&h.Fa)>>>h.da].Fd(k&h.B,k);pb(a,ea(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}pb(a,d,null,0,1)}a.context.drawImage(a.W,0,360,e,360,a.La,a.Ta,a.za,a.Ea)}a.oa=c}}}
(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.oa)){b=c;if(a.context&&a.W&&a.Y){e=a.W.width;a.Y.fillStyle="black";a.Y.fillRect(0,360,e,360);ob(a,378,a.W,a.Y);a.Z=a.pa.width/24|0;if(null==b)pb(a,"Mouse over memory to dump");else for(pb(a,"0x"+ea(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ha;var k=b++;h=h.S[(k&h.Fa)>>>h.ea].Fd(k&h.B,k);pb(a,ea(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}pb(a,d,null,0,1)}a.context.drawImage(a.W,0,360,e,360,a.La,a.Ta,a.za,a.Ea)}a.oa=c}}}
l.Xd=function(){};function qb(a,b,c,d){a.B.He[a.B.Hh++]={Ij:b,hd:c,type:d};return na(nb,b,c,0,d)}function ob(a,b,c,d){var e,f=null.style.color,g=a.xa=10;a.D=g;a.K=b;a.L=a.la=18;e||(e=a.ia||a.la+"px Monaco, Lucida Console, Courier New");a.R=a.ia=e;c&&(a.pa=c);d&&(a.G=d,a.qa=f||"white")}
function pb(a,b,c,d,e){a.G.font=a.R;a.G.fillStyle=a.qa;a.G.fillText(b,a.D,a.K);a.D+=a.Z;null!=c&&(16!=a.Ja?b=c.toString():(b=8>a.va?"0x":"",b+=ea(c,a.va)),a.G.fillText(b,a.D,a.K),a.D+=a.Z);d&&(a.D+=a.Z*d);e&&(a.D=a.xa,a.K+=(a.L+2)*(e||1))}function lb(){for(var a=!1,b=Za(document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=Wa(d),f=Ua(e.id);f||(a=!0,f=new gb(e));Ya(f,d);a&&ab(f)}}Ea(lb);
function rb(a,b,c){Ia.call(this,"Bus",a,rb);this.A=b;this.Ia=c;this.D=a.busWidth||20;this.L=Math.pow(2,this.D);this.ba=this.Fa=this.L-1|0;this.da=32==this.D||20>=this.D?12:24>=this.D?14:15;this.xb=1<<this.da;this.ha=this.xb>>2;this.B=this.xb-1;this.H=this.L/this.xb|0;this.C=this.H-1;this.I=[];this.K=[];this.P=[];this.R=[];a=new q;sb(a,this.Ia);this.S=Array(this.H);for(b=0;b<this.H;b++)this.S[b]=a;a=this.A;b=this.S;c=this.da;a.vc=a.S=b;a.da=c;a.xb=1<<a.da;a.pb=a.xb-1;a.mf=b.length;a.Yd=a.mf-1;a=this.A;
function rb(a,b,c){Ia.call(this,"Bus",a,rb);this.A=b;this.Ia=c;this.D=a.busWidth||20;this.L=Math.pow(2,this.D);this.ba=this.Fa=this.L-1|0;this.ea=32==this.D||20>=this.D?12:24>=this.D?14:15;this.xb=1<<this.ea;this.ha=this.xb>>2;this.B=this.xb-1;this.H=this.L/this.xb|0;this.C=this.H-1;this.I=[];this.K=[];this.P=[];this.R=[];a=new q;sb(a,this.Ia);this.S=Array(this.H);for(b=0;b<this.H;b++)this.S[b]=a;a=this.A;b=this.S;c=this.ea;a.vc=a.S=b;a.ea=c;a.xb=1<<a.ea;a.pb=a.xb-1;a.mf=b.length;a.Yd=a.mf-1;a=this.A;
a.Fa=a.oc=this.Fa;ab(this)}Qa(rb);var nb,tb={bj:20,count:8,Tm:1,type:3},ub=0,vb;for(vb in tb){var wb=tb[vb];tb[vb]={mg:(1<<wb)-1<<ub,shift:ub};ub+=wb}nb=tb;l=rb.prototype;l.reset=function(){xb(this,!0)};l.Vb=function(a,b){b||this.reset();return!0};
function yb(a,b,c,d,e){for(var f=b>>>a.da;0<c&&f<a.S.length;){var g=a.S[f],h=f*a.xb,k=a.xb-(b-h);k>c&&(k=c);if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.fe)return g.De+=g.fe-b,g.fe=b,!0;if(b>=g.fe+g.De){k=g.size-(b-h);k>c&&(k=c);g.De=b-g.fe+k;b=h+a.xb;c-=k;f++;continue}}return zb(a,1,b,c)}b=new q(b,k,a.xb,d,e);sb(b,a.Ia,g);a.S[f++]=b;b=h+a.xb;c-=k}return 0>=c?(a=a.A,a.Pa&-2147483648&&Bb(a),!0):zb(a,2,b,c)}
function xb(a,b){if(32==a.D)b?a.G&&(Cb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Db(a,1048576,1048576),Cb(a,1048576,1048576,Db(a,0,1048576)));else if(20<a.D){var c=a.Fa&-1048577|(b?1048576:0);if(c!=a.Fa&&(a.Fa=c,a.A)){var d=a.A;d.Fa=d.oc=c}}}l.Uf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.da;0<b;){var f=this.S[e];if(!f.controller)return zb(this,3,a,b,d);Eb(f,c,!0);b-=this.xb;e++}return!0}return zb(this,4,a,b)};
function Fb(a,b,c){if(!(b&a.B||!c||c&a.B)){for(var d=b>>>a.da;0<c;){var e=a.S[d];b=new q(b);sb(b,a.Ia,e);a.S[d++]=b;b=d*a.xb;c-=a.xb}a=a.A;a.Pa&-2147483648&&Bb(a);return!0}return zb(a,5,b,c)}function Db(a,b,c){var d=[];for(b>>>=a.da;0<c&&b<a.S.length;)d.push(a.S[b++]),c-=a.xb;return d}
function Cb(a,b,c,d,e){for(var f=0,g=b>>>a.da;0<c&&g<a.S.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new q(b),m=k,p=e,x=a.Ia;m.id=h.id|1;m.De=h.De;m.size=h.size;p&&(m.type=p,m.I=p==Gb);db?(m.S=h.S,m.P=h.P,m.Ka=h.Ka,m.vd=h.vd,m.V=h.V,Eb(m,Hb?Ib:Jb)):(m.V=h.V,Eb(m,Kb));sb(m,x,h);h=k}a.S[g++]=h;c-=a.xb}}l.Jb=function(a){return this.S[(a&this.Fa)>>>this.da].Wb(a&this.B,a)};
l.ga=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;return b!=this.B?this.S[c].ye(b,a):this.S[c++].Wb(b,a)|this.S[c&this.C].Wb(0,a+1)<<8};function Lb(a,b){var c=b&a.B,d=(b&a.Fa)>>>a.da;return c!=a.B?a.S[d].ef(c,b):a.S[d++].Fd(c,b)|a.S[d&a.C].Fd(0,b+1)<<8}l.fa=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;if(b<this.B-2)return this.S[c].Gd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.S[c].Wb(b++,a++)<<f,--g||(c=c+1&this.C,b=0),f+=8;return d};
l.Mc=function(a,b){this.S[(a&this.Fa)>>>this.da].Yb(a&this.B,b&255,a)};l.bb=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;c!=this.B?this.S[d].Fe(c,b&65535,a):(this.S[d++].Yb(c,b&255,a),this.S[d&this.C].Yb(0,b>>8&255,a+1))};function Mb(a,b,c){var d=b&a.B,e=(b&a.Fa)>>>a.da;d!=a.B?a.S[e].ph(d,c&65535,b):(a.S[e++].kf(d,c&255,b),a.S[e&a.C].kf(0,c>>8&255,b+1))}
l.Va=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;if(c<this.B-2)this.S[d].Ee(c,b);else for(var e=4,f=4-(c&3);e--;)this.S[d].Yb(c++,b&255,a++),--f||(d=d+1&this.C,c=0),b>>>=8};function Nb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?n("Input port 0x"+ea(k,4)+" already registered"):f.I[k]=[h,!1]}}
function Ob(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.P[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g&&g[0]&&(m=g[0](b,d),void 0===m?m=k:m&=k);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}function Pb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.K[k]?n("Output port 0x"+ea(k,4)+" already registered"):f.K[k]=[h,!1]}}
function Qb(a,b,c,d,e){for(var f=0;0<c;){var g=a.K[b],h=a.R[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g&&g[0])g[0](b,k,e);f+=h<<3;b+=h;c-=h}}function zb(a,b,c,d,e){b="Memory block error ("+b+": "+ea(c)+","+ea(d)+")";e?a.Ia?a.Ia.message(b):a.log(b):n(b);return!1}var Rb;if(db){var Sb=new ArrayBuffer(2);(new DataView(Sb)).setUint16(0,256,!0);Rb=256===(new Uint16Array(Sb))[0]}else Rb=!1;var Hb=Rb;
function q(a,b,c,d,e,f){this.id=Tb+=2;this.V=null;this.H=0;this.fe=a;this.De=b;this.size=c||0;this.type=d||Ub;this.I=d==Gb;this.controller=null;this.A=f;sb(this);this.Ha=this.Ph=!1;if(c)if(e)this.controller=e,a=e.Uh(a),this.V=a[0],this.H=a[1],Eb(this,e.lg());else if(db)this.S=new ArrayBuffer(c),this.P=new DataView(this.S,0,c),this.Ka=new Uint8Array(this.S,0,c),this.vd=new Uint16Array(this.S,0,c>>1),this.V=new Int32Array(this.S,0,c>>2),Eb(this,Hb?Ib:Jb);else{this.V=Array(c>>2);for(e=0;e<this.V.length;e++)this.V[e]=
0;Eb(this,Kb)}else Eb(this)}var Ub=0,Gb=2,Vb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Wb=["black","blue","green","cyan"],Tb=0;function Xb(a){db&&!Hb&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
q.prototype={constructor:q,parent:null,Qk:function(a){this.fe=a},save:function(){var a,b;if(this.controller)a=null;else if(db)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.P.getInt32(b<<2,!0);else a=this.V;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(db)for(b=0;b<a.length;b++)this.P.setInt32(b<<2,a[b],!0);else this.V=a;return this.Ha=!0}return!1},da:function(){return 255},ha:function(){},ia:function(a,b){return this.Wb(a++,b++)|this.Wb(a,
function yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ea;0<g&&h<a.S.length;){var k=a.S[h],m=h*a.xb,n=a.xb-(f-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.fe)return k.De+=k.fe-f,k.fe=f,!0;if(f>=k.fe+k.De){n=k.size-(f-m);n>g&&(n=g);k.De=f-k.fe+n;f=m+a.xb;g-=n;h++;continue}}return zb(a,1,f,g)}f=new q(f,n,a.xb,d,e);sb(f,a.Ia,k);a.S[h++]=f;f=m+a.xb;g-=n}return 0>=g?(e=a.A,e.Pa&-2147483648&&Bb(e),a.status(Math.floor(c/1024)+"Kb "+Cb[d]+" at "+ea(b)),!0):zb(a,2,b,c)}
function xb(a,b){if(32==a.D)b?a.G&&(Db(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Eb(a,1048576,1048576),Db(a,1048576,1048576,Eb(a,0,1048576)));else if(20<a.D){var c=a.Fa&-1048577|(b?1048576:0);if(c!=a.Fa&&(a.Fa=c,a.A)){var d=a.A;d.Fa=d.oc=c}}}l.Uf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.ea;0<b;){var f=this.S[e];if(!f.controller)return zb(this,3,a,b,d);Fb(f,c,!0);b-=this.xb;e++}return!0}return zb(this,4,a,b)};
function Gb(a,b,c){if(!(b&a.B||!c||c&a.B)){for(var d=b>>>a.ea;0<c;){var e=a.S[d];b=new q(b);sb(b,a.Ia,e);a.S[d++]=b;b=d*a.xb;c-=a.xb}a=a.A;a.Pa&-2147483648&&Bb(a);return!0}return zb(a,5,b,c)}function Eb(a,b,c){var d=[];for(b>>>=a.ea;0<c&&b<a.S.length;)d.push(a.S[b++]),c-=a.xb;return d}
function Db(a,b,c,d,e){for(var f=0,g=b>>>a.ea;0<c&&g<a.S.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new q(b),m=k,n=e,x=a.Ia;m.id=h.id|1;m.De=h.De;m.size=h.size;n&&(m.type=n,m.I=n==Hb);db?(m.S=h.S,m.P=h.P,m.Ka=h.Ka,m.vd=h.vd,m.V=h.V,Fb(m,Ib?Jb:Kb)):(m.V=h.V,Fb(m,Lb));sb(m,x,h);h=k}a.S[g++]=h;c-=a.xb}}l.Jb=function(a){return this.S[(a&this.Fa)>>>this.ea].Wb(a&this.B,a)};
l.ga=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.ea;return b!=this.B?this.S[c].ye(b,a):this.S[c++].Wb(b,a)|this.S[c&this.C].Wb(0,a+1)<<8};function Mb(a,b){var c=b&a.B,d=(b&a.Fa)>>>a.ea;return c!=a.B?a.S[d].ef(c,b):a.S[d++].Fd(c,b)|a.S[d&a.C].Fd(0,b+1)<<8}l.fa=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.ea;if(b<this.B-2)return this.S[c].Gd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.S[c].Wb(b++,a++)<<f,--g||(c=c+1&this.C,b=0),f+=8;return d};
l.Mc=function(a,b){this.S[(a&this.Fa)>>>this.ea].Yb(a&this.B,b&255,a)};l.bb=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.ea;c!=this.B?this.S[d].Fe(c,b&65535,a):(this.S[d++].Yb(c,b&255,a),this.S[d&this.C].Yb(0,b>>8&255,a+1))};function Nb(a,b,c){var d=b&a.B,e=(b&a.Fa)>>>a.ea;d!=a.B?a.S[e].ph(d,c&65535,b):(a.S[e++].kf(d,c&255,b),a.S[e&a.C].kf(0,c>>8&255,b+1))}
l.Va=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.ea;if(c<this.B-2)this.S[d].Ee(c,b);else for(var e=4,f=4-(c&3);e--;)this.S[d].Yb(c++,b&255,a++),--f||(d=d+1&this.C,c=0),b>>>=8};function Ob(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?p("Input port 0x"+ea(k,4)+" already registered"):f.I[k]=[h,!1]}}
function Pb(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.P[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g&&g[0]&&(m=g[0](b,d),void 0===m?m=k:m&=k);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}function Qb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.K[k]?p("Output port 0x"+ea(k,4)+" already registered"):f.K[k]=[h,!1]}}
function Rb(a,b,c,d,e){for(var f=0;0<c;){var g=a.K[b],h=a.R[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g&&g[0])g[0](b,k,e);f+=h<<3;b+=h;c-=h}}function zb(a,b,c,d,e){b="Memory block error ("+b+": "+ea(c)+","+ea(d)+")";e?a.Ia?a.Ia.message(b):a.log(b):p(b);return!1}var Sb;if(db){var Tb=new ArrayBuffer(2);(new DataView(Tb)).setUint16(0,256,!0);Sb=256===(new Uint16Array(Tb))[0]}else Sb=!1;var Ib=Sb;
function q(a,b,c,d,e,f){this.id=Ub+=2;this.V=null;this.H=0;this.fe=a;this.De=b;this.size=c||0;this.type=d||Vb;this.I=d==Hb;this.controller=null;this.A=f;sb(this);this.Ha=this.Ph=!1;if(c)if(e)this.controller=e,a=e.Uh(a),this.V=a[0],this.H=a[1],Fb(this,e.lg());else if(db)this.S=new ArrayBuffer(c),this.P=new DataView(this.S,0,c),this.Ka=new Uint8Array(this.S,0,c),this.vd=new Uint16Array(this.S,0,c>>1),this.V=new Int32Array(this.S,0,c>>2),Fb(this,Ib?Jb:Kb);else{this.V=Array(c>>2);for(e=0;e<this.V.length;e++)this.V[e]=
0;Fb(this,Lb)}else Fb(this)}var Vb=0,Hb=2,Wb=["black","blue","green","cyan"],Cb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Ub=0;function Xb(a){db&&!Ib&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
q.prototype={constructor:q,parent:null,Qk:function(a){this.fe=a},save:function(){var a,b;if(this.controller)a=null;else if(db)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.P.getInt32(b<<2,!0);else a=this.V;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(db)for(b=0;b<a.length;b++)this.P.setInt32(b<<2,a[b],!0);else this.V=a;return this.Ha=!0}return!1},ea:function(){return 255},ha:function(){},ia:function(a,b){return this.Wb(a++,b++)|this.Wb(a,
b)<<8},Y:function(a,b){return this.Wb(a++,b++)|this.Wb(a++,b++)<<8|this.Wb(a++,b++)<<16|this.Wb(a,b)<<24},ba:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a,b>>8,c)},ka:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a++,b>>8&255,c++);this.Yb(a++,b>>16&255,c++);this.Yb(a,b>>>24,c)},va:function(a){return this.V[a>>2]>>>((a&3)<<3)&255},fb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b]>>a;return 24>a?c&65535:c&255|(this.V[b+1]&255)<<8},Ga:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b];a&&(c=c>>>
a|this.V[b+1]<<32-a);return c},Bb:function(a,b){var c=a>>2,d=(a&3)<<3;this.V[c]=this.V[c]&~(255<<d)|b<<d;this.Ha=!0},xc:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.V[c]=this.V[c]&~(65535<<d)|b<<d:(this.V[c]=this.V[c]&16777215|b<<24,c++,this.V[c]=this.V[c]&-256|b>>8);this.Ha=!0},fc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.V[c]=this.V[c]&~e|b<<d;c++;this.V[c]=this.V[c]&e|b>>>32-d}else this.V[c]=b;this.Ha=!0},ua:function(a,b){this.A&&Yb(this.A,b,1,!1);return this.Fd(a,b)},Xa:function(a,
b){this.A&&Yb(this.A,b,2,!1);return this.ef(a,b)},Fa:function(a,b){this.A&&Yb(this.A,b,4,!1);return this.ih(a,b)},Ab:function(a,b,c){this.A&&Yb(this.A,c,1,!0);this.I||this.kf(a,b,c)},wc:function(a,b,c){this.A&&Yb(this.A,c,2,!0);this.I||this.ph(a,b,c)},Zb:function(a,b,c){this.A&&Yb(this.A,c,4,!0);this.I||this.oa(a,b,c)},za:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L.Wb(a,b)},qb:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L.ye(a,b)},
@ -50,29 +50,29 @@ b,c){Zb(this.A,c,!0).Yb(a,b,c)},Gc:function(a,b,c){Zb(this.A,c,!0).Fe(a,b,c)},oc
1]<<8:this.vd[a>>1]},Ea:function(a){return this.P.getInt32(a,!0)},Z:function(a){return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},Ja:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Gd=this.Z;return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},ub:function(a,b){this.Ka[a]=b;this.Ha=!0},ma:function(a,b){this.Ka[a]=b;this.Ha=!0},Cb:function(a,b){this.Ka[a]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Yb=this.ma;this.L.Ha=
!0},vc:function(a,b){this.P.setUint16(a,b,!0);this.Ha=!0},qa:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.vd[a>>1]=b;this.Ha=!0},yc:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.vd[a>>1]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Fe=this.qa;this.L.Ha=!0},Nb:function(a,b){this.P.setInt32(a,b,!0);this.Ha=!0},pa:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.Ha=!0},ic:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=
b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Ee=this.pa;this.L.Ha=!0}};function sb(a,b,c){a.Ia=b;a.ge=a.he=0;c&&(c.A&&(a.A=c.A),(a.ge=c.ge)&&$b(a,bc,!1),(a.he=c.he)&&cc(a,bc,!1))}function cc(a,b,c){c&&a.he||(a.Yb=!a.I&&b[3]||a.ha,a.Fe=!a.I&&b[4]||a.ba,a.Ee=!a.I&&b[5]||a.ka);if(c||void 0===c)a.kf=b[3]||a.ha,a.ph=b[4]||a.ba,a.oa=b[5]||a.ka}
function $b(a,b,c){c&&a.ge||(a.Wb=b[0]||a.da,a.ye=b[1]||a.ia,a.Gd=b[2]||a.Y);if(c||void 0===c)a.Fd=b[0]||a.da,a.ef=b[1]||a.ia,a.ih=b[2]||a.Y}function Eb(a,b,c){b||(b=5==a.type?dc:6==a.type?ec:fc);$b(a,b,c);cc(a,b,c)}
var fc=[],Kb=[q.prototype.va,q.prototype.fb,q.prototype.Ga,q.prototype.Bb,q.prototype.xc,q.prototype.fc],bc=[q.prototype.ua,q.prototype.Xa,q.prototype.Fa,q.prototype.Ab,q.prototype.wc,q.prototype.Zb],ec=[q.prototype.za,q.prototype.qb,q.prototype.La,q.prototype.Gb,q.prototype.zc,q.prototype.mc],dc=[q.prototype.Da,q.prototype.rb,q.prototype.Oa,q.prototype.Hb,q.prototype.Gc,q.prototype.oc];
if(db)var Jb=[q.prototype.ra,q.prototype.Ta,q.prototype.Ea,q.prototype.ub,q.prototype.vc,q.prototype.Nb],Ib=[q.prototype.W,q.prototype.la,q.prototype.Z,q.prototype.ma,q.prototype.qa,q.prototype.pa],gc=[q.prototype.xa,q.prototype.pb,q.prototype.Ja,q.prototype.Cb,q.prototype.yc,q.prototype.ic];
function hc(a,b){Ia.call(this,"CPU",a,hc);var c=a.cycles||b,d=a.multiplier||1;this.T={};this.T.ad=c;this.T.Cd=d;this.T.Df=Math.round(this.T.ad/1E4)/100;this.T.te=this.T.Df*this.T.Cd;this.ea.Sb=!1;this.ea.Rh=!1;this.ea.Oh=a.autoStart;this.ea.Qh=!1;this.ea.zf=!1;this.T.Ff=this.T.ve=0;this.T.Gf=a.csStart;this.T.Ne=a.csInterval;this.T.Oe=a.csStop;this.xj=this.mh.bind(this);ab(this)}Qa(hc);var ic=["power","reset"];l=hc.prototype;
l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.Ia=d;for(b=0;b<ic.length;b++)(c=this.ka[ic[b]])&&this.ba.zb(null,ic[b],c);this.qd=kb(a,"FPU");this.P=kb(a,"ChipSet");a=jc(a,"autoStart");null!=a&&(this.ea.Oh="true"==a?!0:"false"==a?!1:!!a);ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Vb=function(a,b){if(!b){if(a&&this.restore){kc(this);if(!this.restore(a))return!1;lc(this)}else this.reset();this.rc("No debugger detected")}mc(this);return!0};
l.Ub=function(a){return a?this.save():!0};function nc(a){(a.ea.Oh||void 0===a.ka.run)&&a.mh(!0)}l.Th=function(){return 0};function lc(a){void 0===a.T.Gf&&(a.T.Gf=0);void 0===a.T.Ne&&(a.T.Ne=-1);void 0===a.T.Oe&&(a.T.Oe=-1);a.ea.zf=0<=a.T.Gf&&0<a.T.Ne;a.ea.zf&&(a.T.Ff=0,a.T.ve=a.T.Gf-a.$c)}
l.zb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.ka[b]=c;a=!0;break;case "run":this.ka[b]=c;c.onclick=function(){var a;if(a=d.ba)if(a=d.ba,a.ea.Rb)a=!0;else{var b=null,c,h=Ta(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.ea.ne);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.ea.Rb);c++);c==h.length&&(b=a);n("The "+b.type+" component ("+b.id+") is not "+(b.ea.ne?"powered yet":"ready yet"+(b.Bf?" (waiting for notification)":""))+".");a=!1}a&&(d.ea.Sb?oc(d,!0):d.mh(!0))};
a=!0;break;case "speed":this.ka[b]=c;a=!0;break;case "setSpeed":this.ka[b]=c,c.onclick=function(){pc(d,d.T.Cd<<1,!0)},c.textContent=this.T.te.toFixed(2)+"Mhz",a=!0}return a};function qc(a,b){if(a.ea.Sb){var c=a.A-b;a.A-=c;a.mc-=c}}function rc(a,b,c){a.$c+=b;c&&(a.mc=a.A=0)}
function $b(a,b,c){c&&a.ge||(a.Wb=b[0]||a.ea,a.ye=b[1]||a.ia,a.Gd=b[2]||a.Y);if(c||void 0===c)a.Fd=b[0]||a.ea,a.ef=b[1]||a.ia,a.ih=b[2]||a.Y}function Fb(a,b,c){b||(b=5==a.type?dc:6==a.type?ec:fc);$b(a,b,c);cc(a,b,c)}
var fc=[],Lb=[q.prototype.va,q.prototype.fb,q.prototype.Ga,q.prototype.Bb,q.prototype.xc,q.prototype.fc],bc=[q.prototype.ua,q.prototype.Xa,q.prototype.Fa,q.prototype.Ab,q.prototype.wc,q.prototype.Zb],ec=[q.prototype.za,q.prototype.qb,q.prototype.La,q.prototype.Gb,q.prototype.zc,q.prototype.mc],dc=[q.prototype.Da,q.prototype.rb,q.prototype.Oa,q.prototype.Hb,q.prototype.Gc,q.prototype.oc];
if(db)var Kb=[q.prototype.ra,q.prototype.Ta,q.prototype.Ea,q.prototype.ub,q.prototype.vc,q.prototype.Nb],Jb=[q.prototype.W,q.prototype.la,q.prototype.Z,q.prototype.ma,q.prototype.qa,q.prototype.pa],gc=[q.prototype.xa,q.prototype.pb,q.prototype.Ja,q.prototype.Cb,q.prototype.yc,q.prototype.ic];
function hc(a,b){Ia.call(this,"CPU",a,hc);var c=a.cycles||b,d=a.multiplier||1;this.T={};this.T.ad=c;this.T.Cd=d;this.T.Df=Math.round(this.T.ad/1E4)/100;this.T.te=this.T.Df*this.T.Cd;this.da.Sb=!1;this.da.Rh=!1;this.da.Oh=a.autoStart;this.da.Qh=!1;this.da.zf=!1;this.T.Ff=this.T.ve=0;this.T.Gf=a.csStart;this.T.Ne=a.csInterval;this.T.Oe=a.csStop;this.xj=this.mh.bind(this);ab(this)}Qa(hc);var ic=["power","reset"];l=hc.prototype;
l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.Ia=d;for(b=0;b<ic.length;b++)(c=this.ka[ic[b]])&&this.ba.zb(null,ic[b],c);this.qd=kb(a,"FPU");this.P=kb(a,"ChipSet");a=jc(a,"autoStart");null!=a&&(this.da.Oh="true"==a?!0:"false"==a?!1:!!a);ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Vb=function(a,b){if(!b){if(a&&this.restore){kc(this);if(!this.restore(a))return!1;lc(this)}else this.reset();this.rc("No debugger detected")}mc(this);return!0};
l.Ub=function(a){return a?this.save():!0};function nc(a){(a.da.Oh||void 0===a.ka.run)&&a.mh(!0)}l.Th=function(){return 0};function lc(a){void 0===a.T.Gf&&(a.T.Gf=0);void 0===a.T.Ne&&(a.T.Ne=-1);void 0===a.T.Oe&&(a.T.Oe=-1);a.da.zf=0<=a.T.Gf&&0<a.T.Ne;a.da.zf&&(a.T.Ff=0,a.T.ve=a.T.Gf-a.$c)}
l.zb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.ka[b]=c;a=!0;break;case "run":this.ka[b]=c;c.onclick=function(){var a;if(a=d.ba)if(a=d.ba,a.da.Rb)a=!0;else{var b=null,c,h=Ta(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.da.ne);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.da.Rb);c++);c==h.length&&(b=a);p("The "+b.type+" component ("+b.id+") is not "+(b.da.ne?"powered yet":"ready yet"+(b.Bf?" (waiting for notification)":""))+".");a=!1}a&&(d.da.Sb?oc(d,!0):d.mh(!0))};
a=!0;break;case "speed":this.ka[b]=c;a=!0;break;case "setSpeed":this.ka[b]=c,c.onclick=function(){pc(d,d.T.Cd<<1,!0)},c.textContent=this.T.te.toFixed(2)+"Mhz",a=!0}return a};function qc(a,b){if(a.da.Sb){var c=a.A-b;a.A-=c;a.mc-=c}}function rc(a,b,c){a.$c+=b;c&&(a.mc=a.A=0)}
function sc(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.T.Cd&&a.T.Bd&&(d=a.T.Bd/a.T.Df);a.T.Yh=Math.round(1E3/30);a.T.Xk=Math.floor(a.T.ad/c*d);a.T.tg=Math.floor(a.T.ad/30*d);a.T.$h=Math.floor(a.T.ad/60*d);a.T.Zh=Math.floor(a.T.ad/2*d);b||(a.T.Re=a.T.tg,a.T.Qe=a.T.$h,a.T.Pe=a.T.Zh);a.T.ug=0}function tc(a,b){var c=a.$c+a.zc+a.mc-a.A;b&&1<a.T.Cd&&a.T.Bd>a.T.Df&&(c=Math.round(c/a.T.Cd));return c}function kc(a){a.T.Bd=0;a.$c=a.zc=a.mc=a.A=0;lc(a);pc(a,1)}
function pc(a,b,c){if(void 0!==b){.8>a.T.Bd/a.T.te&&(b=1);a.T.Cd=b;b=a.T.Df*a.T.Cd;if(a.T.te!=b){a.T.te=b;b=a.T.te.toFixed(2)+"Mhz";var d=a.ka.setSpeed;d&&(d.textContent=b);a.rc("target speed: "+b)}c&&a.ba&&uc(a.ba)}rc(a,a.zc);a.zc=0;a.T.ue=ka();a.T.Rd=0;sc(a)}
l.mh=function(a){if($a(this,!0)){if(!this.ea.Sb){pc(this);this.ba&&this.ba.start(this.T.ue,tc(this));this.ea.Sb=!0;this.ea.Rh=!0;this.P&&this.P.start();var b=this.ka.run;b&&(b.textContent="Halt");this.ba&&(this.ba.Xd(!0),a&&uc(this.ba,!0))}this.T.ug>=this.T.ad&&sc(this,!0);this.T.Se=0;this.T.Ef=ka();this.T.Rd&&(a=this.T.Ef-this.T.Rd,a>this.T.Yh&&(this.T.ue+=a,this.T.ue>this.T.Ef&&(this.T.ue=this.T.Ef)));try{do{var c=this.ea.zf?1:this.T.Xk;if(this.P){vc(this.P);var d=this.P;a=c;var e=d.K[0];if(e.Od){var f=
(tc(d.A,d.Z)-e.ld)/d.Ga|0,g=wc(d,0)-f;6==e.mode&&(g-=f);var h=g*d.Ga|0;6==e.mode&&(h>>=1);a>h&&(a=h)}var c=a,k=this.P;a=c;if(k.B&&k.B[11]&64){var m=k.ia-tc(k.A,k.Z);0<m&&a>m&&(a=m)}c=a}try{this.nj(c)}catch(x){if("number"!=typeof x)throw x;}var p=this.mc-this.A;this.zc+=p;this.T.Se+=p;rc(this,0,!0);a=p;this.ea.zf&&(b=!1,this.T.Ff=this.T.Ff+this.Th()|0,this.T.ve-=a,0>=this.T.ve&&(this.T.ve+=this.T.Ne,b=!0),0<=this.T.Oe&&this.T.Oe<=tc(this)&&(this.T.Ne=this.T.Oe=-1,lc(this),oc(this),b=!0),b&&this.rc(tc(this)+
" cycles: checksum="+ea(this.T.Ff)));this.T.Qe-=p;0>=this.T.Qe&&(this.T.Qe+=this.T.$h,this.ba&&xc(this.ba));this.T.Pe-=p;0>=this.T.Pe&&(this.T.Pe+=this.T.Zh,this.ba&&this.ba.Xd());this.T.Re-=p;if(0>=this.T.Re){this.T.Re+=this.T.tg;break}}while(this.ea.Sb)}catch(x){oc(this);mc(this);this.ba&&this.ba.stop(ka(),tc(this));$a(this,!1);cb(this,x.stack||x.message);return}c=setTimeout;d=this.xj;this.T.Rd=ka();e=this.T.Yh;this.T.Se&&(e=Math.round(e*this.T.Se/this.T.tg));e-=this.T.Rd-this.T.Ef;if(f=this.T.Rd-
this.T.ue)this.T.Bd=Math.round(this.zc/(10*f))/100,864E5<=f&&(this.$c=0,this.P&&vc(this.P,!0),pc(this));if(0>e||this.T.Bd<this.T.te)e=0;this.T.ug+=this.T.Se;this.T.Rd+=e;c(d,e)}else mc(this),this.ba&&this.ba.stop(ka(),tc(this))};l.nj=function(){return 0};function oc(a,b){a.ea.Qc&&(a.ea.hg=!0);a.mc-=a.A;a.A=0;rc(a,a.zc);a.zc=0;if(a.ea.Sb){a.ea.Sb=!1;a.P&&a.P.stop();var c=a.ka.run;c&&(c.textContent="Run")}a.ea.Le=b}function mc(a){a.ba&&(xc(a.ba,void 0),a.ba.Xd(void 0))}
l.mh=function(a){if($a(this,!0)){if(!this.da.Sb){pc(this);this.ba&&this.ba.start(this.T.ue,tc(this));this.da.Sb=!0;this.da.Rh=!0;this.P&&this.P.start();var b=this.ka.run;b&&(b.textContent="Halt");this.ba&&(this.ba.Xd(!0),a&&uc(this.ba,!0))}this.T.ug>=this.T.ad&&sc(this,!0);this.T.Se=0;this.T.Ef=ka();this.T.Rd&&(a=this.T.Ef-this.T.Rd,a>this.T.Yh&&(this.T.ue+=a,this.T.ue>this.T.Ef&&(this.T.ue=this.T.Ef)));try{do{var c=this.da.zf?1:this.T.Xk;if(this.P){vc(this.P);var d=this.P;a=c;var e=d.K[0];if(e.Od){var f=
(tc(d.A,d.Z)-e.ld)/d.Ga|0,g=wc(d,0)-f;6==e.mode&&(g-=f);var h=g*d.Ga|0;6==e.mode&&(h>>=1);a>h&&(a=h)}var c=a,k=this.P;a=c;if(k.B&&k.B[11]&64){var m=k.ia-tc(k.A,k.Z);0<m&&a>m&&(a=m)}c=a}try{this.nj(c)}catch(x){if("number"!=typeof x)throw x;}var n=this.mc-this.A;this.zc+=n;this.T.Se+=n;rc(this,0,!0);a=n;this.da.zf&&(b=!1,this.T.Ff=this.T.Ff+this.Th()|0,this.T.ve-=a,0>=this.T.ve&&(this.T.ve+=this.T.Ne,b=!0),0<=this.T.Oe&&this.T.Oe<=tc(this)&&(this.T.Ne=this.T.Oe=-1,lc(this),oc(this),b=!0),b&&this.rc(tc(this)+
" cycles: checksum="+ea(this.T.Ff)));this.T.Qe-=n;0>=this.T.Qe&&(this.T.Qe+=this.T.$h,this.ba&&xc(this.ba));this.T.Pe-=n;0>=this.T.Pe&&(this.T.Pe+=this.T.Zh,this.ba&&this.ba.Xd());this.T.Re-=n;if(0>=this.T.Re){this.T.Re+=this.T.tg;break}}while(this.da.Sb)}catch(x){oc(this);mc(this);this.ba&&this.ba.stop(ka(),tc(this));$a(this,!1);cb(this,x.stack||x.message);return}c=setTimeout;d=this.xj;this.T.Rd=ka();e=this.T.Yh;this.T.Se&&(e=Math.round(e*this.T.Se/this.T.tg));e-=this.T.Rd-this.T.Ef;if(f=this.T.Rd-
this.T.ue)this.T.Bd=Math.round(this.zc/(10*f))/100,864E5<=f&&(this.$c=0,this.P&&vc(this.P,!0),pc(this));if(0>e||this.T.Bd<this.T.te)e=0;this.T.ug+=this.T.Se;this.T.Rd+=e;c(d,e)}else mc(this),this.ba&&this.ba.stop(ka(),tc(this))};l.nj=function(){return 0};function oc(a,b){a.da.Qc&&(a.da.hg=!0);a.mc-=a.A;a.A=0;rc(a,a.zc);a.zc=0;if(a.da.Sb){a.da.Sb=!1;a.P&&a.P.stop();var c=a.ka.run;c&&(c.textContent="Run")}a.da.Le=b}function mc(a){a.ba&&(xc(a.ba,void 0),a.ba.Xd(void 0))}
function yc(a,b,c,d){this.A=a;this.Ia=a.Ia;this.id=b;this.Tf=c||"";this.ja=0;this.Za=65535;this.C=this.Za+1;this.sb=this.nc=this.ext=this.lb=this.type=this.ya=0;this.hc=-1;this.U=this.Nc=2;this.N=this.sa=65535;this.L=this.Xh;this.I=this.Jh;this.K=this.Lh;this.B={ja:-1,ya:0,Za:0,lb:0,type:0,ext:0,hc:-1};1==this.id&&(this.cf=0,this.D=null,this.pe=!1,this.H=Array(32),this.G=[]);zc(this,!0,d)}l=yc.prototype;l.Xh=function(a){this.ja=a&65535;return this.ya=this.ja<<4};
l.Cf=function(a,b){var c,d,e=this.A;a&=65535;a&4?(c=e.Zb.ya,d=c+e.Zb.Za|0):(c=e.ub,d=e.wc);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,Ac(this,c,a,b);6>this.id&&t.call(e,b&&3==this.id?10:13,a&65532)}return-1};l.Uk=function(a){var b=this.A;a=b.Ab+(a<<2);var c=b.ga(a);b.X&=-769;return this.load(b.ga(a+2))+c|0};l.Tk=function(a){var b=this.A;a<<=3;var c=b.Ab+a|0;if(7<=(b.xc-c|0))return this.D=!0,a=Ac(this,c,a),-1!==a&&(a+=this.cf),a;t.call(b,13,a|2);return-1};l.Jh=function(a){return this.ya+a|0};
l.Lh=function(a){return this.ya+a|0};l.Ih=function(a,b){return(a>>>0)+b<=this.C?this.ya+a|0:this.wf()};l.zj=function(a,b){return(a>>>0)+b>this.C?this.ya+a|0:this.wf()};l.wf=function(){t.call(this.A,13,0);return-1};l.Kh=function(a,b){return(a>>>0)+b<=this.C?this.ya+a|0:this.xf()};l.Aj=function(a,b){return(a>>>0)+b>this.C?this.ya+a|0:this.xf()};l.xf=function(){t.call(this.A,13,0);return-1};
function Bc(a,b,c,d,e){a.ja=b;a.ya=d;a.Za=e;a.C=(e>>>0)+1;a.lb=c;a.type=c&7936;a.ext=c>>16&192;a.hc=(b&4?a.A.Zb.ya:a.A.ub)+(b&65528)|0;4>a.id&&zc(a,!0)}function Cc(a,b,c){var d=a.A,e=d.ga(b+2),f=d.ga(b)|(e&255)<<16,d=d.ga(b+4);a.ja=c;a.ya=f;a.Za=d;a.C=(d>>>0)+1;a.lb=e;a.type=e&7936;a.ext=0;a.hc=b;4>a.id&&zc(a,!0)}
function Ac(a,b,c,d){var e=a.A;if(!d&&c===a.B.ja)return a.ja=c,a.ya=a.B.ya,a.Za=a.B.Za,a.C=(a.B.Za>>>0)+1,a.lb=a.B.lb,a.type=a.B.type,a.ext=a.B.ext,a.hc=a.B.hc,a.B.ja=-1,zc(a,!0,!0,!1),a.ya;a.B.ja=-1;var f=e.ga(b+0),g=e.ga(b+4),h=g&7936,k=e.ga(b+2)|(g&255)<<16,m=e.ga(b+6),p=c&65528;if(80386<=e.ca){var x=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case 1:var r=a.D;a.pe=!1;if(r&&1==c&&a.G.length){var z=a.G[a.cf-1];if(z&&!z())return-1}var E=c&3,J=(g&24576)>>13,z=-1,W,da;p||
function Ac(a,b,c,d){var e=a.A;if(!d&&c===a.B.ja)return a.ja=c,a.ya=a.B.ya,a.Za=a.B.Za,a.C=(a.B.Za>>>0)+1,a.lb=a.B.lb,a.type=a.B.type,a.ext=a.B.ext,a.hc=a.B.hc,a.B.ja=-1,zc(a,!0,!0,!1),a.ya;a.B.ja=-1;var f=e.ga(b+0),g=e.ga(b+4),h=g&7936,k=e.ga(b+2)|(g&255)<<16,m=e.ga(b+6),n=c&65528;if(80386<=e.ca){var x=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case 1:var r=a.D;a.pe=!1;if(r&&1==c&&a.G.length){var z=a.G[a.cf-1];if(z&&!z())return-1}var E=c&3,J=(g&24576)>>13,z=-1,W,da;n||
b>=e.ub&&b<e.wc&&(h=0);if(6144<=h)null!=d?z=0:!1!==r?(h&1024?J<=a.sb&&(z=0):E<=a.sb&&J==a.sb&&(z=0),z||(c=c&-4|a.sb&3)):E>=a.sb&&(E>a.sb&&(z=u(e),Dc(e,u(e),!0),v(e,z),a.pe=!0),z=0);else{if(256==h||2304==h)return Ec(a,c,r)?a.ya:-1;if(1024==h)z=2,da=0,E<a.sb&&(E=a.sb);else if(3072==h)z=4,da=0,E<a.sb&&(E=a.sb);else if(1536==h)z=2,da=148224;else if(3584==h)z=4,da=148224;else if(1792==h)z=2,da=147712;else if(3840==h)z=4,da=147712;else if(1280==h)return Ec(a,k&65535,r)?a.ya:-1}0<z&&!(g&32768)&&(z=0);if(0<
z&&(p=a.sb,W=b==e.Ab+c,E<=J&&(!W||0<=e.fc||p<=J))){b=k&65535;h&2048&&(f=x|m<<16);m=h=0;d=b&3;if(d<p){if(-1===a.Cf(b,!0))return-1;m=e.ia.ya;e.ia.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.ga(m+c+k);if(!h)return t.call(e,10,h),-1;if(-1===e.R.Cf(h,!0))return-1;m=2==k?e.ga(m+c):e.fa(m+c)}c=e.X;e.X&=~da;c&131072&&Fc(e,!0,!1);if(-1===a.Cf(b,!1))return-1;Gc(e,z);a.cf=f;if(d<p){if(!0!==r)return-1;z=w(e);f=0;for(g&=31;g--;)a.H[f++]=Hc(e,e.R,z),z+=2;r=e.R.ja;g=w(e);Dc(e,h,!0);v(e,m);c&131072&&(Gc(e,4),
Ic(e,e.Xa.ja,4,2),e.Xa.load(0),Ic(e,e.Ta.ja,4,2),e.Ta.load(0),Ic(e,e.xa.ja,4,2),Jc(e,0),Ic(e,e.pa.ja,4,2),Kc(e,0));Ic(e,r,e.U,2);for(y(e,g);f;)y(e,a.H[--f]);a.pe=!0}return a.ya}if(0!=z)return t.call(e,13,c&65532|(W?2:0)),-1;if(!(g&32768))return t.call(e,11,c&65532|(W?2:0)),-1;break;case 2:if(p){if(4096>h||2048==(h&2560))return t.call(e,13,c&65532),-1;if(!(g&32768))return t.call(e,11,c&65532),-1}break;case 3:if(!p||4096>h||512!=(h&2560))return t.call(e,13,c&65532),-1;if(!(g&32768))return t.call(e,
12,c&65532),-1;break;case 4:r=h&-513;if(!p||256!=r&&2304!=r)return t.call(e,13,c&65532),-1;2304==r&&(a.Dh=k+e.ga(k+100+2)|0,a.yj=k+a.Za|0);break;case 6:if(!(h&4096)&&768<h&&2304!=h&&2816!=h)return-1}d?(a.B.ja=c,a.B.ya=k,a.B.Za=f,a.B.lb=g,a.B.type=h,a.B.ext=m,a.B.hc=b):(a.ja=c,a.ya=k,a.Za=f,a.C=(f>>>0)+1,a.lb=g,a.type=h,a.ext=m,a.hc=b,zc(a,!0,!0,!1));return k}
z&&(n=a.sb,W=b==e.Ab+c,E<=J&&(!W||0<=e.fc||n<=J))){b=k&65535;h&2048&&(f=x|m<<16);m=h=0;d=b&3;if(d<n){if(-1===a.Cf(b,!0))return-1;m=e.ia.ya;e.ia.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.ga(m+c+k);if(!h)return t.call(e,10,h),-1;if(-1===e.R.Cf(h,!0))return-1;m=2==k?e.ga(m+c):e.fa(m+c)}c=e.X;e.X&=~da;c&131072&&Fc(e,!0,!1);if(-1===a.Cf(b,!1))return-1;Gc(e,z);a.cf=f;if(d<n){if(!0!==r)return-1;z=w(e);f=0;for(g&=31;g--;)a.H[f++]=Hc(e,e.R,z),z+=2;r=e.R.ja;g=w(e);Dc(e,h,!0);v(e,m);c&131072&&(Gc(e,4),
Ic(e,e.Xa.ja,4,2),e.Xa.load(0),Ic(e,e.Ta.ja,4,2),e.Ta.load(0),Ic(e,e.xa.ja,4,2),Jc(e,0),Ic(e,e.pa.ja,4,2),Kc(e,0));Ic(e,r,e.U,2);for(y(e,g);f;)y(e,a.H[--f]);a.pe=!0}return a.ya}if(0!=z)return t.call(e,13,c&65532|(W?2:0)),-1;if(!(g&32768))return t.call(e,11,c&65532|(W?2:0)),-1;break;case 2:if(n){if(4096>h||2048==(h&2560))return t.call(e,13,c&65532),-1;if(!(g&32768))return t.call(e,11,c&65532),-1}break;case 3:if(!n||4096>h||512!=(h&2560))return t.call(e,13,c&65532),-1;if(!(g&32768))return t.call(e,
12,c&65532),-1;break;case 4:r=h&-513;if(!n||256!=r&&2304!=r)return t.call(e,13,c&65532),-1;2304==r&&(a.Dh=k+e.ga(k+100+2)|0,a.yj=k+a.Za|0);break;case 6:if(!(h&4096)&&768<h&&2304!=h&&2816!=h)return-1}d?(a.B.ja=c,a.B.ya=k,a.B.Za=f,a.B.lb=g,a.B.type=h,a.B.ext=m,a.B.hc=b):(a.ja=c,a.ya=k,a.Za=f,a.C=(f>>>0)+1,a.lb=g,a.type=h,a.ext=m,a.hc=b,zc(a,!0,!0,!1));return k}
function Ec(a,b,c){var d=a.A,e=a.sb,f=d.ia.ja,g=d.ia.ya;if(!c){if(!(d.ia.type&512))return t.call(d,13,b&65532),!1;d.bb(d.ia.hc+4,d.ia.lb&=-513)}if(-1===d.ia.load(b))return!1;var h=d.ia.ya;if(!1!==c){if(d.ia.type&512)return t.call(d,13,b&65532),!1;d.bb(d.ia.hc+4,d.ia.lb|=512)}d.ia.type=d.ia.type&-513|d.ia.lb&512;256==d.ia.type||768==d.ia.type?(d.bb(g+14,A(d)),d.bb(g+16,Lc(d)),d.bb(g+18,d.J),d.bb(g+20,d.G),d.bb(g+22,d.M),d.bb(g+24,d.D),d.bb(g+26,w(d)),d.bb(g+28,d.K),d.bb(g+30,d.I),d.bb(g+32,d.H),d.bb(g+
34,d.pa.ja),d.bb(g+36,d.Ca.ja),d.bb(g+38,d.R.ja),d.bb(g+40,d.xa.ja),d.Zb.load(d.ga(h+42)),Mc(d,d.ga(h+16)|(c?16384:0)),d.J=d.ga(h+18),d.G=d.ga(h+20),d.M=d.ga(h+22),d.D=d.ga(h+24),d.K=d.ga(h+28),d.I=d.ga(h+30),d.H=d.ga(h+32),d.pa.load(d.ga(h+34)),d.xa.load(d.ga(h+40)),Nc(d,d.ga(h+14),d.ga(h+36)),b=38,g=26,a.sb<e&&(g=(a.sb<<2)+2,b=g+2),Dc(d,d.ga(h+b),!0),v(d,d.ga(h+g))):(d.Va(g+28,d.dd),d.Va(g+32,A(d)),d.Va(g+36,Lc(d)),d.Va(g+40,d.J),d.Va(g+44,d.G),d.Va(g+48,d.M),d.Va(g+52,d.D),d.Va(g+56,w(d)),d.Va(g+
60,d.K),d.Va(g+64,d.I),d.Va(g+68,d.H),d.Va(g+72,d.pa.ja),d.Va(g+76,d.Ca.ja),d.Va(g+80,d.R.ja),d.Va(g+84,d.xa.ja),d.Va(g+88,d.Ta.ja),d.Va(g+92,d.Xa.ja),Pc.call(d,d.fa(h+28)),d.Zb.load(d.ga(h+96)),Mc(d,d.fa(h+36)|(c?16384:0)),d.J=d.fa(h+40),d.G=d.fa(h+44),d.M=d.fa(h+48),d.D=d.fa(h+52),d.K=d.fa(h+60),d.I=d.fa(h+64),d.H=d.fa(h+68),d.pa.load(d.ga(h+72)),d.xa.load(d.ga(h+84)),d.Ta.load(d.ga(h+88)),d.Xa.load(d.ga(h+92)),Nc(d,d.fa(h+32),d.ga(h+76)),b=80,g=56,a.sb<e&&(g=(a.sb<<3)+4,b=g+4),Dc(d,d.ga(h+b),!0),
@ -81,69 +81,69 @@ function zc(a,b,c,d){void 0===c&&(c=!!(a.A.Pa&1));a.zd=!1;if(c)if(a.load=a.Cf,a.
a.hc+5,d=a.A.Jb(c),d&1||a.A.Mc(c,d|1))}b&&(a.sb=a.ja&3,a.nc=(a.lb&24576)>>13,80386>a.A.ca||!(a.ext&64)?(a.U=2,a.N=65535):(a.U=4,a.N=-1),a.Nc=a.U,a.sa=a.N)}else a.load=a.Xh,a.Wh=a.Uk,a.Pb=a.Jh,a.Qb=a.Lh,a.sb=a.nc=0,a.hc=-1,a.pe=!1}
function Qc(a){this.ca=a.model||8088;var b=a.stepping;this.pd=this.ca+(b?ca(b,16):0);b=0;switch(this.ca){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}hc.call(this,a,b);this.rh=61442;this.od=1792;this.qh=28672;this.ae=4;this.Da=255;this.B=80286<=this.ca?fb:eb;this.ma=Rc;this.uh=Sc;this.vh=Tc;this.wh=Uc;if(80186<=this.ca&&(this.ma=Rc.slice(),this.uh=Sc.slice(),this.vh=Tc.slice(),this.Da=31,this.ma[15]=Vc,this.ma[96]=Wc,this.ma[97]=Xc,this.ma[98]=Yc,this.ma[99]=Vc,this.ma[100]=Vc,
this.ma[101]=Vc,this.ma[102]=Vc,this.ma[103]=Vc,this.ma[104]=Zc,this.ma[105]=$c,this.ma[106]=ad,this.ma[107]=bd,this.ma[108]=cd,this.ma[109]=dd,this.ma[110]=ed,this.ma[111]=fd,this.ma[192]=gd,this.ma[193]=hd,this.ma[200]=id,this.ma[201]=jd,this.ma[241]=kd,this.uh[7]=ld,this.vh[7]=ld,80286<=this.ca)){this.rh=2;this.od|=28672;this.ae=0;this.ma[15]=md;this.Zc=nd.slice();for(a=0;a<this.Zc.length;a++)this.Zc[a]||(this.Zc[a]=od);this.ma[84]=pd;this.ma[99]=qd;if(80386<=this.ca){var c;this.qh=0;this.od|=
196608;this.ma[100]=sd;this.ma[101]=td;this.ma[102]=ud;this.ma[103]=vd;for(c in B)this.Zc[+c]=B[c];80546<=this.pd&&80562>=this.pd&&(this.Zc[166]=wd,this.Zc[167]=xd)}}this.of=[];this.th=[];this.Vf=0;kc(this);this.ea.Le=this.ea.Hj=!1;this.yh=0;this.vc=this.S=[];this.da=this.xb=this.pb=this.mf=this.Yd=this.Fa=this.oc=0;yd(this)}Qa(Qc,hc);
196608;this.ma[100]=rd;this.ma[101]=td;this.ma[102]=ud;this.ma[103]=vd;for(c in B)this.Zc[+c]=B[c];80546<=this.pd&&80562>=this.pd&&(this.Zc[166]=wd,this.Zc[167]=xd)}}this.of=[];this.th=[];this.Vf=0;kc(this);this.da.Le=this.da.Hj=!1;this.yh=0;this.vc=this.S=[];this.ea=this.xb=this.pb=this.mf=this.Yd=this.Fa=this.oc=0;yd(this)}Qa(Qc,hc);
function Bb(a){var b;if(a.S===a.vc){a.S=Array(a.mf);a.pf=new q(null,0,0,5,null,a);sb(a.pf,a.Ia);for(b=0;b<a.mf;b++)a.S[b]=a.pf;a.Zd=new q;a.sh=Array(512);a.qf=0}else for(var c=0;c<a.nf.length;c++){b=a.nf[c];var d=a.S[b];512>a.qf&&(a.sh[a.qf++]=d);a.S[b]=a.pf}a.nf=[]}
function Zb(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.dd+e&a.Fa)>>>a.da],g=f.Gd(e);if(!(g&1))return d||zd.call(a,b,!1,c),a.Zd;if(!(g&4)&&3==a.za)return d||zd.call(a,b,!0,c),a.Zd;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.da],k=g.Gd(h);if(!(k&1))return d||zd.call(a,b,!1,c),a.Zd;if(!(k&4)&&3==a.za)return d||zd.call(a,b,!0,c),a.Zd;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.da];if(d)return c;d=b>>>a.da;k=a.S[d];b=b&-4096;var m;0<a.qf?(m=a.sh[--a.qf],m.Qk(b)):m=new q(b,0,0,6);b=m;b.L=c;b.B=f;b.D=
e>>2;b.C=g;b.G=h>>2;db&&Hb&&c.V&&!c.controller&&!c.ge&&!c.he?(b.Ka=c.Ka,b.vd=c.vd,b.V=c.V,Eb(b,gc)):(b.K=c?Xb(32):0,b.R=c?Xb(96):0,Eb(b,ec));sb(b,a.Ia,k);a.S[d]=b;a.nf.push(d);return b}function Ad(a){a.S!==a.vc&&(a.S=a.vc,a.pf=null,a.nf=null,a.Zd=null)}l=Qc.prototype;l.reset=function(){this.ea.Sb&&oc(this);yd(this);kc(this);this.ea.Yc=!1};
function Zb(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.dd+e&a.Fa)>>>a.ea],g=f.Gd(e);if(!(g&1))return d||zd.call(a,b,!1,c),a.Zd;if(!(g&4)&&3==a.za)return d||zd.call(a,b,!0,c),a.Zd;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.ea],k=g.Gd(h);if(!(k&1))return d||zd.call(a,b,!1,c),a.Zd;if(!(k&4)&&3==a.za)return d||zd.call(a,b,!0,c),a.Zd;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.ea];if(d)return c;d=b>>>a.ea;k=a.S[d];b=b&-4096;var m;0<a.qf?(m=a.sh[--a.qf],m.Qk(b)):m=new q(b,0,0,6);b=m;b.L=c;b.B=f;b.D=
e>>2;b.C=g;b.G=h>>2;db&&Ib&&c.V&&!c.controller&&!c.ge&&!c.he?(b.Ka=c.Ka,b.vd=c.vd,b.V=c.V,Fb(b,gc)):(b.K=c?Xb(32):0,b.R=c?Xb(96):0,Fb(b,ec));sb(b,a.Ia,k);a.S[d]=b;a.nf.push(d);return b}function Ad(a){a.S!==a.vc&&(a.S=a.vc,a.pf=null,a.nf=null,a.Zd=null)}l=Qc.prototype;l.reset=function(){this.da.Sb&&oc(this);yd(this);kc(this);this.da.Yc=!1};
function Bd(a,b){var c;switch(b){case 0:c=a.J;break;case 1:c=a.G;break;case 2:c=a.M;break;case 3:c=a.D;break;case 4:c=w(a);break;case 5:c=a.K;break;case 6:c=a.I;break;case 7:c=a.H}return c}function Cd(a,b,c){switch(b){case 0:a.J=c;break;case 1:a.G=c;break;case 2:a.M=c;break;case 3:a.D=c;break;case 4:v(a,c);break;case 5:a.K=c;break;case 6:a.I=c;break;case 7:a.H=c}}
function yd(a){a.J=0;a.D=0;a.G=0;a.M=0;a.Nb=0;a.K=0;a.I=0;a.H=0;a.Hb=!1;a.ua=a.Ga=0;a.oa=0;a.xh=0;a.W=0;a.Pa=65520;a.Ab=0;a.xc=1023;a.X=a.Cb=0;a.td=a.Kd=a.sd=a.Id=0;a.fc=-1;a.Gc=a.ic=-1;a.Ed=a.la=-1;a.Ca=new yc(a,1,"CS");a.xa=new yc(a,2,"DS");a.pa=new yc(a,2,"ES");a.R=new yc(a,3,"SS");v(a,0);Dc(a,0);if(80386<=a.ca){switch(a.pd){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Pa=16;a.Bh=0;a.rd=0;a.dd=0;a.qb=[0,0,0,0,null,null,0,
0];a.rf=[null,null,null,null,null,null,0,0];a.Ta=new yc(a,2,"FS");a.Xa=new yc(a,2,"GS");Ad(a)}a.Yf=new yc(a,0,"NULL");a.va=a.xa;a.rb=a.R;a.L=a.wa=0;a.F=a.C=-1;a.Eb=a.Yf;a.Ea=0;if(80286>a.ca)Nc(a,0,65535);else{a.ub=0;a.wc=65535;a.Zb=new yc(a,5,"LDT",!0);a.ia=new yc(a,4,"TSS",!0);a.Oa=new yc(a,6,"VER",!0);Nc(a,65520,61440);var b,c=A(a);b=a.Ca;var d=-65536;80386>b.A.ca&&(d&=16777215);b=b.ya=d;a.Y=b+c|0;a.Wf=(b>>>0)+(a.Ca.Za>>>0)+1}Mc(a,0);Fc(a)}
function Dd(a){2==a.Nc?(a.Ah=a.ga,a.Bb=Ed,a.Gb=Fd,a.yc=Gd,2==a.U?(a.Z=Hd,a.qa=Id,a.Ja=Jd):(a.Z=Kd,a.qa=Ld,a.Ja=Md)):(a.Ah=a.fa,a.Bb=Nd,a.Gb=Od,a.yc=Pd,2==a.U?(a.Z=Qd,a.qa=Rd,a.Ja=Sd):(a.Z=Td,a.qa=Ud,a.Ja=Vd))}function Gc(a,b){a.U!=b&&(a.wa|=1024,a.U=b,a.N=2==b?65535:-1,Wd(a))}function Wd(a){2==a.U?(a.fb=32768,a.Tb=a.ga,a.Xb=a.bb,2==a.Nc?(a.Z=Hd,a.qa=Id,a.Ja=Jd):(a.Z=Qd,a.qa=Rd,a.Ja=Sd)):(a.fb=-2147483648,a.Tb=a.fa,a.Xb=a.Va,2==a.Nc?(a.Z=Kd,a.qa=Ld,a.Ja=Md):(a.Z=Td,a.qa=Ud,a.Ja=Vd))}
function Xd(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Dd(a);a.U=a.Ca.U;a.N=a.Ca.N;Wd(a);a.wa&=-3073}l.Th=function(){var a=this.J+this.D+this.G+this.M+w(this)+this.K+this.I+this.H|0;return a=a+A(this)+this.Ca.ja+this.xa.ja+this.R.ja+this.pa.ja+Lc(this)|0};function Yd(a,b,c){void 0===a.of[b]&&(a.of[b]=[]);a.of[b].push(c)}function Zd(a,b){var c=a.th[b];null!=c&&(c(--a.Vf),delete a.th[b])}
function $d(a,b){for(var c=a.qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.qb[e],g=g&~(d>>2&3);if(b){var g=a.S[g>>>a.da],h=a;f?0===g.he++&&(h&&(g.A=h),cc(g,bc,!1)):0===g.ge++&&(h&&(g.A=h),$b(g,bc,!1))}else g=a.S[g>>>a.da],f?0===--g.he&&(f=g,f.Yb=f.I?f.ha:f.kf,f.Fe=f.I?f.ba:f.ph,f.Ee=f.I?f.ka:f.oa):0===--g.ge&&(f=g,f.Wb=f.Fd,f.ye=f.ef,f.Gd=f.ih)}c>>=2;d>>=4}}
function $d(a,b){for(var c=a.qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.qb[e],g=g&~(d>>2&3);if(b){var g=a.S[g>>>a.ea],h=a;f?0===g.he++&&(h&&(g.A=h),cc(g,bc,!1)):0===g.ge++&&(h&&(g.A=h),$b(g,bc,!1))}else g=a.S[g>>>a.ea],f?0===--g.he&&(f=g,f.Yb=f.I?f.ha:f.kf,f.Fe=f.I?f.ba:f.ph,f.Ee=f.I?f.ka:f.oa):0===--g.ge&&(f=g,f.Wb=f.Fd,f.ye=f.ef,f.Gd=f.ih)}c>>=2;d>>=4}}
function Yb(a,b,c,d){if(!(a.L&8192)&&a.qb[7]&255){c--;var e=a.qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.qb[g]&&b<=a.qb[g]+h){a.qb[6]|=1<<g;a.Ea|=2;break}}e>>=2;f>>=4}}}function Fc(a,b,c){void 0===b&&(b=!!(a.Pa&1));void 0===c&&(c=!!(a.X&131072));a.wh=b&&!c?ae:Uc;zc(a.Ca,!1,b,c);zc(a.xa,!1,b,c);zc(a.R,!1,b,c);zc(a.pa,!1,b,c);80386<=a.ca&&(zc(a.Ta,!1,b,c),zc(a.Xa,!1,b,c));Xd(a)}
l.save=function(){var a=new be(this);C(a,0,[this.J,this.D,this.G,this.M,w(this),this.K,this.I,this.H]);var b=A(this),c=this.Ca.save(),d=this.xa.save(),e=this.R.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ia.save(),this.Cb],80386<=this.ca&&(g.push(this.Bh),g.push(this.rd),g.push(this.dd),g.push(this.qb),g.push(this.rf))):g=null;b=[b,c,d,e,f,g,Lc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));C(a,1,b);C(a,2,[this.va.Tf,
this.rb.Tf,this.L,this.wa,this.Ea,this.F,this.C]);C(a,3,[0,this.$c,this.T.Cd]);b=this.ha;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||xb(b,!0);for(g=0;g<b.H;g++){var h=b.S[g];if(c&&h.type!=Gb||h.Ha||h.Ph){e[d++]=g;var k=d++;a:if(h=h.save()){for(var m=0,p=0,x=[];m<h.length;){for(var r=h[m],z=m+1;z<h.length&&h[z]===r;)z++;x[p++]=z-m;x[p++]=r;m=z}if(x.length<h.length){h=x;break a}}e[k]=h}}f||xb(b,!1);e[d]=f;C(a,4,e);return a.data()};
this.rb.Tf,this.L,this.wa,this.Ea,this.F,this.C]);C(a,3,[0,this.$c,this.T.Cd]);b=this.ha;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||xb(b,!0);for(g=0;g<b.H;g++){var h=b.S[g];if(c&&h.type!=Hb||h.Ha||h.Ph){e[d++]=g;var k=d++;a:if(h=h.save()){for(var m=0,n=0,x=[];m<h.length;){for(var r=h[m],z=m+1;z<h.length&&h[z]===r;)z++;x[n++]=z-m;x[n++]=r;m=z}if(x.length<h.length){h=x;break a}}e[k]=h}}f||xb(b,!1);e[d]=f;C(a,4,e);return a.data()};
l.restore=function(a){var b=a[0];this.J=b[0];this.D=b[1];this.G=b[2];this.M=b[3];var c=b[4];this.K=b[5];this.I=b[6];this.H=b[7];b=a[1];this.Ca.restore(b[1]);this.xa.restore(b[2]);this.R.restore(b[3]);this.pa.restore(b[4]);var d=b[5];d&&d.length&&(this.Pa=d[0],this.ub=d[1],this.wc=d[2],this.Ab=d[3],this.xc=d[4],this.Zb.restore(d[5]),this.ia.restore(d[6]),this.Cb=d[7],80386<=this.ca&&(this.Bh=d[8],this.rd=d[9],this.dd=d[10],this.qb=d[11],this.rf=d[12]),Fc(this));Mc(this,b[6]);var d=!1,e;a:{e=this.ha;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ha){for(var m=0,p=Array(e.ha),x=0;x<k.length-1;)for(var r=k[x++],z=k[x++];r--;)p[m++]=z;k=p}m=e.S[h];if(!m||!m.restore(k)){n("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&xb(e,f[g]);e=!0}e&&(Nc(this,b[0],this.Ca.ja),v(this,c),Dc(this,this.R.ja),80386<=this.ca&&(this.Ta.restore(b[7]),this.Xa.restore(b[8])),d=!0);b=a[2];this.va=null!=b[0]&&ce(this,b[0])||this.xa;this.rb=null!=b[1]&&ce(this,b[1])||this.R;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ha){for(var m=0,n=Array(e.ha),x=0;x<k.length-1;)for(var r=k[x++],z=k[x++];r--;)n[m++]=z;k=n}m=e.S[h];if(!m||!m.restore(k)){p("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&xb(e,f[g]);e=!0}e&&(Nc(this,b[0],this.Ca.ja),v(this,c),Dc(this,this.R.ja),80386<=this.ca&&(this.Ta.restore(b[7]),this.Xa.restore(b[8])),d=!0);b=a[2];this.va=null!=b[0]&&ce(this,b[0])||this.xa;this.rb=null!=b[1]&&ce(this,b[1])||this.R;
this.L=b[2];this.wa=b[3];this.Ea=b[4];this.F=b[5];this.C=b[6];b=a[3];this.$c=b[1];pc(this,b[2]);return d};function ce(a,b){switch(b){case "CS":return a.Ca;case "DS":return a.xa;case "SS":return a.R;case "ES":return a.pa;case "NULL":return a.Yf;default:return[0,b,0,0,""]}}function de(a,b){null!=Nc(a,A(a),b)&&(a.L|=a.ae)}function Jc(a,b){-1!==a.xa.load(b)&&(a.L|=a.ae)}
function Dc(a,b,c){var d=w(a);-1!==a.R.load(b)&&(v(a,d),a.R.zd?(a.Xf=a.R.ya+a.R.sa|0,a.$d=a.R.ya+a.R.Za|0):(a.Xf=a.R.ya+a.R.Za|0,a.$d=a.R.ya),c||(a.L|=4))}function Kc(a,b){-1!==a.pa.load(b)&&(a.L|=a.ae)}function A(a){return a.Y-a.Ca.ya|0}function D(a,b){a.Y=a.Ca.ya+(b&a.N)|0}function ee(a,b){a.Y=b;a.Wf=(a.Ca.ya>>>0)+(a.Ca.Za>>>0)+1;a.za=a.Ca.sb;Xd(a)}function Nc(a,b,c,d){var e=a.Ca;e.cf=b;e.D=d;b=e.load(c);return-1!==b?(ee(a,b+(a.Ca.cf&a.Ca.N)),a.Ca.pe):null}
function fe(a,b){var c=(a.Y>>>0)+b;c>a.Wf&&(8088>=a.ca||a.Ca.Za==a.Ca.sa?c=a.Ca.ya+(c-a.Wf&a.N):t.call(a,13,0));return c|0}function ge(a){a.Y=a.Ed}function w(a){return a.Nb&~a.R.sa|a.ra-a.R.ya}function v(a,b){a.Nb=b;a.ra=a.R.ya+(b&a.R.sa)|0}function he(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&ie(a),g&2&&je(a),g&4&&ke(a),g&8&&le(a),g&16&&me(a),g&32&&ne(a))}f?(a.td=d,a.sd=b):(a.td=b,a.sd=d);a.Kd=c;a.Id=d;a.resultType=e}
function F(a,b,c,d,e){a.resultType=c|26;a.Id=b;d?oe(a):pe(a);e?qe(a):re(a);return b}function se(a,b,c,d){c&d?oe(a):pe(a);(b^c)&d?qe(a):re(a)}function te(a){return ie(a)?1:0}function ie(a){a.resultType&1&&(a.X&=-2,(a.td^(a.td^a.Kd)&(a.Kd^a.sd))&a.resultType&-2147450752&&(a.X|=1),a.resultType&=-2);return a.X&1}function je(a){a.resultType&2&&(a.X&=-5,38505>>((a.Id^a.Id>>4)&15)&1&&(a.X|=4),a.resultType&=-3);return a.X&4}
function ke(a){a.resultType&4&&(a.X&=-17,(a.sd^a.td^a.Kd)&16&&(a.X|=16),a.resultType&=-5);return a.X&16}function le(a){a.resultType&8&&(a.X&=-65,a.Id&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.X|=64),a.resultType&=-9);return a.X&64}function me(a){a.resultType&16&&(a.X&=-129,a.Id&a.resultType&-2147450752&&(a.X|=128),a.resultType&=-17);return a.X&128}
function ne(a){a.resultType&32&&(a.X&=-2049,(a.td^a.sd)&(a.Kd^a.sd)&a.resultType&-2147450752&&(a.X|=2048),a.resultType&=-33);return a.X&2048}function pe(a){a.resultType&=-2;a.X&=-2}function we(a){a.resultType&=-5;a.X&=-17}function xe(a){a.resultType&=-9;a.X&=-65}function re(a){a.resultType&=-33;a.X&=-2049}function oe(a){a.resultType&=-2;a.X|=1}function ye(a){a.resultType&=-5;a.X|=16}function ze(a){a.resultType&=-9;a.X|=64}function qe(a){a.resultType&=-33;a.X|=2048}
function ne(a){a.resultType&32&&(a.X&=-2049,(a.td^a.sd)&(a.Kd^a.sd)&a.resultType&-2147450752&&(a.X|=2048),a.resultType&=-33);return a.X&2048}function pe(a){a.resultType&=-2;a.X&=-2}function ue(a){a.resultType&=-5;a.X&=-17}function xe(a){a.resultType&=-9;a.X&=-65}function re(a){a.resultType&=-33;a.X&=-2049}function oe(a){a.resultType&=-2;a.X|=1}function ye(a){a.resultType&=-5;a.X|=16}function ze(a){a.resultType&=-9;a.X|=64}function qe(a){a.resultType&=-33;a.X|=2048}
function Lc(a){return a.X&-2262|ie(a)|je(a)|ke(a)|le(a)|me(a)|ne(a)}function Ae(a,b){b=b|a.Pa&1|65520;a.Pa=a.Pa&-65536|b&65535;a.Pa&1&&Fc(a,!0)}function Mc(a,b,c){a.Pa&1||(b&=~a.qh);void 0===c&&(c=a.za);c?b=b&-12289|a.X&12288:a.Cb=(b&12288)>>12;c>a.Cb&&(b=b&-513|a.X&512);a.resultType=128;a.X=a.X&~(a.od|2261)|b&(a.od|2261)|a.rh;a.X&256&&(a.Ea|=2,a.L|=4)}
function Be(a,b,c){var d=0;if(a.Pa&1&&(a.za>a.Cb||a.X&131072)&&a.ia.Dh)for(var e=a.ia.Dh+(b>>>3),d=(1<<c)-1<<(b&7);d&&e<=a.ia.yj&&!(a.Jb(e)&d);)d>>>=8,e++;return d?(t.call(a,13,0),!1):!0}
l.zb=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.ka[b]=c;this.yh++;d=!0;break;default:d=this.parent.zb.call(this,a,b,c)}return d};
function Ce(a,b,c,d){var e=(d?a.vc:a.S)[(b&a.oc)>>>a.da];e&&5==e.type&&(e=Zb(a,b,!1,!0));if(e){var f=b&a.pb;if(!c||1==c)return e.Fd(f,b);if(2==c)return f<a.pb?e.ef(f,b):e.Fd(f,b)|Ce(a,b+1,1,d)<<8;if(4==c)return f<a.pb-2?e.ih(f,b):f==a.pb-1?e.ef(f,b)|Ce(a,b+2,2,d)<<16:e.Fd(f,b)|Ce(a,b+1,1,d)<<8|Ce(a,b+2,1,d)<<16|Ce(a,b+3,1,d)<<24}return null}l.Jb=function(a){return this.S[(a&this.oc)>>>this.da].Wb(a&this.pb,a)};
l.ga=function(a){var b=a&this.pb,c=(a&this.oc)>>>this.da;this.A-=this.B.Lf;if(b<this.pb)return this.S[c].ye(b,a);b=this.S[c].Wb(b,a);this.L&4096||(b|=this.S[c+1&this.Yd].Wb(0,a+1)<<8);return b};l.fa=function(a){var b=a&this.pb,c=(a&this.oc)>>>this.da;if(b<this.pb-2)return this.S[c].Gd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;){d|=this.S[c].Wb(b++,a++)<<f;if(this.L&4096)break;--g||(c=c+1&this.Yd,b=0);f+=8}return d};l.Mc=function(a,b){this.S[(a&this.oc)>>>this.da].Yb(a&this.pb,b&255,a)};
l.bb=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.da;this.A-=this.B.Lf;c<this.pb?this.S[d].Fe(c,b&65535,a):(this.S[d++].Yb(c,b&255,a),this.L&4096||this.S[d&this.Yd].Yb(0,b>>8&255,a+1))};l.Va=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.da;this.A-=this.B.Lf;if(c<this.pb-2)this.S[d].Ee(c,b,a);else for(var e=4,f=4-(c&3);e--;){this.S[d].Yb(c++,b&255,a++);if(this.L&4096)break;--f||(d=d+1&this.Yd,c=0);b>>>=8}};function De(a,b,c){a.Eb=b;a.La=c&a.sa;a.F=b.Pb(a.La,1);return a.L&1?0:a.Jb(a.F)}
function Ce(a,b,c,d){var e=(d?a.vc:a.S)[(b&a.oc)>>>a.ea];e&&5==e.type&&(e=Zb(a,b,!1,!0));if(e){var f=b&a.pb;if(!c||1==c)return e.Fd(f,b);if(2==c)return f<a.pb?e.ef(f,b):e.Fd(f,b)|Ce(a,b+1,1,d)<<8;if(4==c)return f<a.pb-2?e.ih(f,b):f==a.pb-1?e.ef(f,b)|Ce(a,b+2,2,d)<<16:e.Fd(f,b)|Ce(a,b+1,1,d)<<8|Ce(a,b+2,1,d)<<16|Ce(a,b+3,1,d)<<24}return null}l.Jb=function(a){return this.S[(a&this.oc)>>>this.ea].Wb(a&this.pb,a)};
l.ga=function(a){var b=a&this.pb,c=(a&this.oc)>>>this.ea;this.A-=this.B.Lf;if(b<this.pb)return this.S[c].ye(b,a);b=this.S[c].Wb(b,a);this.L&4096||(b|=this.S[c+1&this.Yd].Wb(0,a+1)<<8);return b};l.fa=function(a){var b=a&this.pb,c=(a&this.oc)>>>this.ea;if(b<this.pb-2)return this.S[c].Gd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;){d|=this.S[c].Wb(b++,a++)<<f;if(this.L&4096)break;--g||(c=c+1&this.Yd,b=0);f+=8}return d};l.Mc=function(a,b){this.S[(a&this.oc)>>>this.ea].Yb(a&this.pb,b&255,a)};
l.bb=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.ea;this.A-=this.B.Lf;c<this.pb?this.S[d].Fe(c,b&65535,a):(this.S[d++].Yb(c,b&255,a),this.L&4096||this.S[d&this.Yd].Yb(0,b>>8&255,a+1))};l.Va=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.ea;this.A-=this.B.Lf;if(c<this.pb-2)this.S[d].Ee(c,b,a);else for(var e=4,f=4-(c&3);e--;){this.S[d].Yb(c++,b&255,a++);if(this.L&4096)break;--f||(d=d+1&this.Yd,c=0);b>>>=8}};function De(a,b,c){a.Eb=b;a.La=c&a.sa;a.F=b.Pb(a.La,1);return a.L&1?0:a.Jb(a.F)}
function G(a,b){return De(a,a.va,b)}function H(a,b){return De(a,a.rb,b)}function Ee(a,b,c){a.Eb=b;a.La=c&a.sa;a.F=b.Pb(a.La,a.U);return a.L&1?0:a.Tb(a.F)}function I(a,b){a.Eb=a.va;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,2);return a.L&1?0:a.ga(a.F)}function K(a,b){a.Eb=a.rb;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,2);return a.L&1?0:a.ga(a.F)}function L(a,b){a.Eb=a.va;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,4);return a.L&1?0:a.fa(a.F)}function M(a,b){a.Eb=a.rb;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,4);return a.L&1?0:a.fa(a.F)}
function Fe(a,b){a.L&2||a.Mc(a.Eb.Qb(a.La,1),b)}function Ge(a,b){a.L&2||a.bb(a.Eb.Qb(a.La,2),b)}function He(a,b){a.L&2||a.Va(a.Eb.Qb(a.La,4),b)}function Hc(a,b,c){return a.Tb(b.Pb(c,a.U))}l.na=function(){var a=fe(this,1),b=this.Jb(this.Y);this.Y=a;return b};function Ie(a){var b=fe(a,2),c=a.ga(a.Y);a.Y=b;return c}function N(a){var b=fe(a,a.Nc),c=a.Ah(a.Y);a.Y=b;return c}l.Aa=function(){var a=fe(this,this.U),b=this.Tb(this.Y);this.Y=a;return b};
l.O=function(){var a=fe(this,1),b=this.Jb(this.Y)<<24>>24;this.Y=a;return b};function u(a){var b=a.Tb(a.ra);a.ra=a.ra+a.U|0;var c=a.Xf-a.ra|0;0>c&&0<=(a.Xf^a.ra)&&(8088>=a.ca||!a.R.zd&&a.R.Za==a.R.sa||a.R.zd&&!a.R.Za?v(a,a.ra-a.R.ya&a.R.sa):-1>c&&t.call(a,12,0));return b}
function Ic(a,b,c,d){c=a.ra-c|0;0>(c-a.$d|0)&&0<=(a.$d^c)&&(8088>=a.ca||!a.R.zd&&a.R.Za==a.R.sa||a.R.zd&&!a.R.Za?(v(a,c-a.R.ya&a.R.sa),c=a.ra):t.call(a,12,0));switch(d){case 1:a.Mc(c,b);break;case 2:a.bb(c,b);break;case 4:a.Va(c,b)}a.ra=c}function y(a,b){var c=a.ra-a.U|0;0>(c-a.$d|0)&&0<=(a.$d^c)&&(8088>=a.ca||!a.R.zd&&a.R.Za==a.R.sa||a.R.zd&&!a.R.Za?(v(a,c-a.R.ya&a.R.sa),c=a.ra):t.call(a,12,0));a.Xb(c,b);a.ra=c}
function O(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.ka[b]&&(void 0===c&&(cb(a,"Value for "+b+" is invalid"),oc(a)),d=!a.ea.Sb||a.ea.Qh?ea(c,d):"--------".substr(0,d),a.ka[b].textContent!=d&&(a.ka[b].textContent=d))}
l.Xd=function(a){this.yh&&(a||!this.ea.Sb||this.ea.Qh)&&(O(this,"EAX",this.J),O(this,"EBX",this.D),O(this,"ECX",this.G),O(this,"EDX",this.M),O(this,"ESP",w(this)),O(this,"EBP",this.K),O(this,"ESI",this.I),O(this,"EDI",this.H),O(this,"CS",this.Ca.ja),O(this,"DS",this.xa.ja),O(this,"SS",this.R.ja),O(this,"ES",this.pa.ja),O(this,"EIP",A(this)),a=Lc(this),O(this,"PS",a),O(this,"V",a&2048),O(this,"D",a&1024),O(this,"I",a&512),O(this,"T",a&256),O(this,"S",a&128),O(this,"Z",a&64),O(this,"A",a&16),O(this,
"P",a&4),O(this,"C",a&1),80386==this.ca&&(O(this,"FS",this.Ta.ja),O(this,"GS",this.Xa.ja),O(this,"CR0",this.Pa),O(this,"CR2",this.rd),O(this,"CR3",this.dd)));if(a=this.ka.speed)a.textContent=this.ea.Sb&&this.T.Bd?this.T.Bd.toFixed(2)+"Mhz":"Stopped"};
l.nj=function(a){this.ea.Le=!0;this.ea.Hj=!1;this.ea.Rh=!1;this.mc=this.A=a;this.P&&!a&&vc(this.P);a||(this.L|=4);do{if(a=this.L&3312)this.wa|=a;else if(this.Ed=this.Y,this.va=this.xa,this.rb=this.R,this.F=this.C=-1,this.wa&3072&&Xd(this),this.wa=this.L&256,this.Ea){a:if(!(this.L&4)){a=80286>this.ca?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ea&1&&this.X&512){var c=Je(this.P);if(-1<=c&&(this.Ea&=-2,0<=c)){this.Ea&=-5;Ke.call(this,c);break a}}break;case 1:if(this.Ea&2){this.Ea&=-3;80386<=this.ca&&
(this.qb[6]|=16384);Ke.call(this,1);break a}}a=1-a}}if(this.Ea&4){this.L=this.A=0;break}}this.L=0;this.ma[this.na()].call(this)}while(0<this.A);return this.ea.Le?this.mc-this.A:void 0===this.ea.Le?0:-1};Ea(function(){for(var a=Za(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Qc(d);Ya(d,c)}});
function Le(a){Ia.call(this,"FPU",a,Le);this.ca=a.model||8087;(a=a.stepping)&&ca(a,16);this.K=new Float64Array(8);this.da=new Int32Array(this.K.buffer);this.Z=new Float32Array(1);this.la=new Int32Array(this.Z.buffer);this.R=new Float64Array(1);this.I=new Int32Array(this.R.buffer);this.G=Array(3);this.ha=this.ba=-1;this.L=this.S=this.W=this.B=0;this.Y=new Float64Array(1);this.ia=new Int32Array(this.Y.buffer);this.ia[0]=0;this.ia[1]=268402688;Me(this)}Qa(Le);l=Le.prototype;
function O(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.ka[b]&&(void 0===c&&(cb(a,"Value for "+b+" is invalid"),oc(a)),d=!a.da.Sb||a.da.Qh?ea(c,d):"--------".substr(0,d),a.ka[b].textContent!=d&&(a.ka[b].textContent=d))}
l.Xd=function(a){this.yh&&(a||!this.da.Sb||this.da.Qh)&&(O(this,"EAX",this.J),O(this,"EBX",this.D),O(this,"ECX",this.G),O(this,"EDX",this.M),O(this,"ESP",w(this)),O(this,"EBP",this.K),O(this,"ESI",this.I),O(this,"EDI",this.H),O(this,"CS",this.Ca.ja),O(this,"DS",this.xa.ja),O(this,"SS",this.R.ja),O(this,"ES",this.pa.ja),O(this,"EIP",A(this)),a=Lc(this),O(this,"PS",a),O(this,"V",a&2048),O(this,"D",a&1024),O(this,"I",a&512),O(this,"T",a&256),O(this,"S",a&128),O(this,"Z",a&64),O(this,"A",a&16),O(this,
"P",a&4),O(this,"C",a&1),80386==this.ca&&(O(this,"FS",this.Ta.ja),O(this,"GS",this.Xa.ja),O(this,"CR0",this.Pa),O(this,"CR2",this.rd),O(this,"CR3",this.dd)));if(a=this.ka.speed)a.textContent=this.da.Sb&&this.T.Bd?this.T.Bd.toFixed(2)+"Mhz":"Stopped"};
l.nj=function(a){this.da.Le=!0;this.da.Hj=!1;this.da.Rh=!1;this.mc=this.A=a;this.P&&!a&&vc(this.P);a||(this.L|=4);do{if(a=this.L&3312)this.wa|=a;else if(this.Ed=this.Y,this.va=this.xa,this.rb=this.R,this.F=this.C=-1,this.wa&3072&&Xd(this),this.wa=this.L&256,this.Ea){a:if(!(this.L&4)){a=80286>this.ca?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ea&1&&this.X&512){var c=Je(this.P);if(-1<=c&&(this.Ea&=-2,0<=c)){this.Ea&=-5;Ke.call(this,c);break a}}break;case 1:if(this.Ea&2){this.Ea&=-3;80386<=this.ca&&
(this.qb[6]|=16384);Ke.call(this,1);break a}}a=1-a}}if(this.Ea&4){this.L=this.A=0;break}}this.L=0;this.ma[this.na()].call(this)}while(0<this.A);return this.da.Le?this.mc-this.A:void 0===this.da.Le?0:-1};Ea(function(){for(var a=Za(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Qc(d);Ya(d,c)}});
function Le(a){Ia.call(this,"FPU",a,Le);this.ca=a.model||8087;(a=a.stepping)&&ca(a,16);this.K=new Float64Array(8);this.ea=new Int32Array(this.K.buffer);this.Z=new Float32Array(1);this.la=new Int32Array(this.Z.buffer);this.R=new Float64Array(1);this.I=new Int32Array(this.R.buffer);this.G=Array(3);this.ha=this.ba=-1;this.L=this.S=this.W=this.B=0;this.Y=new Float64Array(1);this.ia=new Int32Array(this.Y.buffer);this.ia[0]=0;this.ia[1]=268402688;Me(this)}Qa(Le);l=Le.prototype;
l.pc=function(a,b,c){this.A=c;this.P=kb(a,"ChipSet");ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)Me(this);else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.save=function(){var a=new be(this),b=[],c=0;b[c++]=this.H;b[c++]=this.aa|this.C<<11;b[c++]=Ne(this);for(var d=0;d<this.K.length;d++)b[c++]=this.K[d];C(a,0,b);return a.data()};
l.restore=function(a){a=a[0];var b=0;this.H=a[b++]&-57409;var c=a[b++];this.aa=c&-14337;this.C=(c&14336)>>11;Oe(this);Pe(this,a[b++]);for(c=0;c<this.K.length;c++)this.K[c]=a[b++];return!0};function Me(a){a.D=0;a.H=959;a.aa=0;a.C=0;a.P&&(a=a.P,a.ca>=Qe&&Re(a,13))}function Oe(a){a.aa&=-129;a.aa&~a.H&63&&(a.aa|=128);if(a.aa&128&&!(a.H&128))return a=a.P,a.ca>=Qe?Se(a,13):a.ma&0||Ke.call(a.A,2),!0;a=a.P;a.ca>=Qe&&Re(a,13);return!1}function Te(a,b){80387<=a.ca||(b&=-65);a.aa|=b;return Oe(a)}
function Ue(a,b){return isFinite(b)?!0:!Te(a,Infinity===b?8:16)}function Ve(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,Ue(a,d)||(d=null));return d}function We(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,Ue(a,d)||(d=null));return d}function Xe(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,Ue(a,d)||(d=null));return d}function Ye(a,b,c){var d=null;null==b||null==c||!c&&Te(a,2)||(d=b/c,Ue(a,d)||(d=null));return d}
function Ze(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:0===b&&(d=16384));a.aa=a.aa&-18177|d;return!0}return!1}function $e(a,b,c){if(null==b)return null;var d=a.H&3072;0==d?(d=Math.round(b),.5===d-b&&d%2&&d--):d=1024==d||3072==d&&0<b?Math.floor(b):Math.ceil(b);if(c){if(d>=c){if(Te(a,1))return null;d=-c}else if(d<-c){if(Te(a,1))return null;d=-c}a.I[0]=d|0;2147483648<c&&(a.I[1]=d/4294967296|0,!a.I[1]&&0>d&&(a.I[1]=-1))}return d}
function af(a,b){var c=3;if(a.D&1<<b){var d=a.K[b],c=0;0===d?c=1:isFinite(d)||(c=2)}return c}function Ne(a){for(var b=0,c=a.K.length-1;0<=c;c--)b<<=2,b|=af(a,c);return b}function Pe(a,b){a.D=0;for(var c=1;128>=c;c<<=1)3!=(b&3)&&(a.D|=c),b>>=2}function bf(a){var b=a.C+0&7;return a.D&1<<b?(a.Z[0]=a.K[b],!0):Te(a,1)?!1:(a.Z[0]=a.Y[0],!0)}function cf(a){var b=a.C+0&7;return a.D&1<<b?(a.R[0]=a.K[b],!0):Te(a,1)?!1:(a.R[0]=a.Y[0],!0)}
function P(a,b){var c=null,d=a.C+b&7;a.D&1<<d?c=a.K[d]:Te(a,1)||(c=a.Y[0]);return c}function Q(a,b,c){return null!=c&&(isNaN(c)?!Te(a,1):1)?(b=a.C+b&7,a.K[b]=c,a.D|=1<<b,!0):!1}function df(a,b,c){var d=null;b=a.C+b&7;if(c||a.D&1<<b||!Te(a,1)){d=b<<1;c=a.da[d];d=a.da[d+1];b=d>>20&2047;var e=2147483648|(d&1048575)<<11|c>>>21;2047==b?b=32767:b?b+=15360:e&=2147483647;a.G[0]=c<<11;a.G[1]=e;a.G[2]=d>>16&32768|b;d=a.G}return d}function ef(a){return a.A.ga(a.A.F)<<16>>16}
function P(a,b){var c=null,d=a.C+b&7;a.D&1<<d?c=a.K[d]:Te(a,1)||(c=a.Y[0]);return c}function Q(a,b,c){return null!=c&&(isNaN(c)?!Te(a,1):1)?(b=a.C+b&7,a.K[b]=c,a.D|=1<<b,!0):!1}function df(a,b,c){var d=null;b=a.C+b&7;if(c||a.D&1<<b||!Te(a,1)){d=b<<1;c=a.ea[d];d=a.ea[d+1];b=d>>20&2047;var e=2147483648|(d&1048575)<<11|c>>>21;2047==b?b=32767:b?b+=15360:e&=2147483647;a.G[0]=c<<11;a.G[1]=e;a.G[2]=d>>16&32768|b;d=a.G}return d}function ef(a){return a.A.ga(a.A.F)<<16>>16}
function ff(a){return a.A.fa(a.A.F)}function gf(a){a.la[0]=a.A.fa(a.A.F);return a.Z[0]}function hf(a){a.I[0]=a.A.fa(a.A.F);a.I[1]=a.A.fa(a.A.F+4);return a.R[0]}function jf(a){a.G[0]=a.A.fa(a.A.F);a.G[1]=a.A.fa(a.A.F+4);a.G[2]=a.A.ga(a.A.F+8);return a.G}l.oh=function(){this.A.Va(this.A.F,this.I[0])};l.kj=function(){this.A.Va(this.A.F,this.I[0]);this.A.Va(this.A.F+4,this.I[1])};l.mj=Le.prototype.oh;l.lj=Le.prototype.kj;
function kf(a){a.A.Va(a.A.F,a.G[0]);a.A.Va(a.A.F+4,a.G[1]);a.A.bb(a.A.F+8,a.G[2])}function lf(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.I[0]=f;a.I[1]=c|(d|e)<<20;return a.R[0]}function mf(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function nf(a,b){for(var c=0,d=0;b--;)c|=a%10<<d,a/=10,d+=4;return c}
function of(a){var b=null,c=1<<a.C;if(!(a.D&c)&&(a.aa&=-513,Te(a,65)))return b;a.D&=~c;b=a.K[a.C];a.C=a.C+1&7;return b}function pf(a,b){if(null!=b){var c=a.C-1&7,d=1<<c;if(a.D&d&&(a.aa|=512,Te(a,65)))return;if(isNaN(b)&&Te(a,1)){if(Te(a,1))return;b=NaN}a.K[a.C=c]=b;a.D|=d}}
function qf(a,b){var c,d=a.A;c=d.Tb(b);a.H=c&-57409;c=d.Tb(b+=d.U);a.aa=c&-14337;a.C=(c&14336)>>11;Oe(a);Pe(a,d.Tb(b+=d.U));!(d.Pa&1)||d.X&131072?(a.L=d.Tb(b+=d.U),c=d.Tb(b+=d.U),a.W=c&2047,a.L|=(c&-4096)<<4,a.ha=-1,a.S=d.Tb(b+=d.U),a.S|=(d.Tb(b+=d.U)&-4096)<<4,a.ba=-1):(a.L=d.Tb(b+=d.U),c=d.Tb(b+=d.U),a.ha=c&65535,a.W=c>>16&2047,a.S=d.Tb(b+=d.U),a.ba=d.Tb(b+=d.U)&65535);return b+d.U}
function rf(a,b){var c=a.A;c.Xb(b,a.H);c.Xb(b+=c.U,a.aa|a.C<<11);c.Xb(b+=c.U,Ne(a));if(!(c.Pa&1)||c.X&131072){var d=(a.ha<<4)+a.L;c.Xb(b+=c.U,d);c.Xb(b+=c.U,d>>4&-4096|a.W);d=(a.ba<<4)+a.S;c.Xb(b+=c.U,d);c.Xb(b+=c.U,d>>4&-4096)}else c.Xb(b+=c.U,a.L),c.Xb(b+=c.U,a.ha|a.W<<16),c.Xb(b+=c.U,a.S),c.Xb(b+=c.U,a.ba);return b+c.U}var sf=Math.log(10)/Math.LN2,tf=Math.LOG2E,uf=Math.PI,vf=Math.log(2)/Math.LN10,wf=Math.LN2,xf=Math.pow(2,63);function yf(){this.aa&=-32896;Oe(this)}
function zf(){Ze(this,P(this,0),P(this,this.B))}function Af(){Ze(this,P(this,0),P(this,this.B))&&of(this)}function Bf(){Af.call(this)}function Cf(){Q(this,0,Ye(this,P(this,0),gf(this)))}function Df(){this.D&=~(1<<this.C)}function Ef(){Me(this)}function Ff(){this.H=this.A.ga(this.A.F)&-57409}function Gf(){qf(this,this.A.F)}function Jf(){for(var a=this.A,b=qf(this,a.F),c=this.G,d=0;d<this.K.length;d++)c[0]=a.fa(b),c[1]=a.fa(b+=4),c[2]=a.ga(b+=4),c&&Q(this,d,lf(this,c)),b+=2}
function zf(){Ze(this,P(this,0),P(this,this.B))}function Af(){Ze(this,P(this,0),P(this,this.B))&&of(this)}function Bf(){Af.call(this)}function Cf(){Q(this,0,Ye(this,P(this,0),gf(this)))}function Df(){this.D&=~(1<<this.C)}function Ef(){Me(this)}function Ff(){this.H=this.A.ga(this.A.F)&-57409}function Gf(){qf(this,this.A.F)}function Hf(){for(var a=this.A,b=qf(this,a.F),c=this.G,d=0;d<this.K.length;d++)c[0]=a.fa(b),c[1]=a.fa(b+=4),c[2]=a.ga(b+=4),c&&Q(this,d,lf(this,c)),b+=2}
function Kf(){for(var a=this.A,b=rf(this,a.F),c=0;c<this.K.length;c++){var d=df(this,c,!0);a.Va(b,d[0]);a.Va(b+=4,d[1]);a.bb(b+=4,d[2]);b+=2}Me(this)}function Lf(){rf(this,this.A.F);this.H|=63}function Mf(){Q(this,this.B,P(this,0))&&of(this)}function Nf(){Mf.call(this)}function Of(){this.A.bb(this.A.F,this.H)}function Pf(){this.A.bb(this.A.F,this.aa|this.C<<11)}function Qf(){80287<=this.ca&&(this.A.J=this.A.J&-65536|this.aa|this.C<<11)}
function Rf(){var a=P(this,0);Q(this,0,P(this,this.B));Q(this,this.B,a)}function Sf(){Rf.call(this)}
var Tf={216:{0:function(){Q(this,0,Ve(this,P(this,0),gf(this)))},1:function(){Q(this,0,Xe(this,P(this,0),gf(this)))},2:function(){Ze(this,P(this,0),gf(this))},3:function(){Ze(this,P(this,0),gf(this))&&of(this)},4:function(){Q(this,0,We(this,P(this,0),gf(this)))},5:function(){Q(this,0,We(this,gf(this),P(this,0)))},6:Cf,7:Cf,48:function(){Q(this,0,Ve(this,P(this,0),P(this,this.B)))},49:function(){Q(this,0,Xe(this,P(this,0),P(this,this.B)))},50:zf,51:Af,52:function(){Q(this,0,We(this,P(this,0),P(this,
this.B)))},53:function(){Q(this,0,We(this,P(this,this.B),P(this,0)))},54:function(){Q(this,0,Ye(this,P(this,0),P(this,this.B)))},55:function(){Q(this,0,Ye(this,P(this,this.B),P(this,0)))}},217:{0:function(){pf(this,gf(this))},2:function(){bf(this)&&this.mj()},3:function(){bf(this)&&(this.mj(),of(this))},4:Gf,5:Ff,6:Lf,7:Of,48:function(){pf(this,P(this,this.B))},49:Rf,50:function(){},51:Nf,64:function(){Q(this,0,-P(this,0))},65:function(){Q(this,0,Math.abs(P(this,0)))},68:function(){Ze(this,P(this,
0),0)},69:function(){this.aa&=-18177;this.da[((this.C+0&7)<<1)+1]&-2147483648&&(this.aa|=512);if(3==af(this,this.C))this.aa|=16640;else{var a=P(this,0);this.aa=isNaN(a)?this.aa|256:0===a?this.aa|16384:Infinity===a||-Infinity===a?this.aa|1280:this.aa|1024}},80:function(){pf(this,1)},81:function(){pf(this,sf)},82:function(){pf(this,tf)},83:function(){pf(this,uf)},84:function(){pf(this,vf)},85:function(){pf(this,wf)},86:function(){pf(this,0)},96:function(){Q(this,0,Math.pow(2,P(this,0))-1)},97:function(){Q(this,
0),0)},69:function(){this.aa&=-18177;this.ea[((this.C+0&7)<<1)+1]&-2147483648&&(this.aa|=512);if(3==af(this,this.C))this.aa|=16640;else{var a=P(this,0);this.aa=isNaN(a)?this.aa|256:0===a?this.aa|16384:Infinity===a||-Infinity===a?this.aa|1280:this.aa|1024}},80:function(){pf(this,1)},81:function(){pf(this,sf)},82:function(){pf(this,tf)},83:function(){pf(this,uf)},84:function(){pf(this,vf)},85:function(){pf(this,wf)},86:function(){pf(this,0)},96:function(){Q(this,0,Math.pow(2,P(this,0))-1)},97:function(){Q(this,
1,P(this,1)*Math.log(P(this,0))/Math.LN2)&&of(this)},98:function(){Q(this,0,Math.tan(P(this,0)))&&pf(this,1)},99:function(){Q(this,1,Math.atan2(P(this,1),P(this,0)))&&of(this)},100:function(){var a=P(this,0);null!=a&&(this.R[0]=a,Q(this,0,(this.I[1]>>20&2047)-1023),this.I[1]=(this.I[1]|1072693248)&-1073741825,pf(this,this.R[0]))},102:function(){this.C=this.C-1&7;this.aa&=-513},103:function(){this.C=this.C+1&7;this.aa&=-513},112:function(){Q(this,0,P(this,0)%P(this,1))},113:function(){Q(this,1,P(this,
1)*Math.log(P(this,0)+1)/Math.LN2)&&of(this)},114:function(){var a=P(this,0),b=null;if(0<=a||!Te(this,1))b=Math.sqrt(a),Ue(this,b)||(b=null);Q(this,0,b)},116:function(){Q(this,0,$e(this,P(this,0),xf))},117:function(){var a=P(this,0),b=P(this,1);null!=a&&null!=b&&Q(this,0,a*Math.pow(2,0<b?Math.floor(b):Math.ceil(b)))}},218:{0:function(){Q(this,0,Ve(this,P(this,0),ff(this)))},1:function(){Q(this,0,Xe(this,P(this,0),ff(this)))},2:function(){Ze(this,P(this,0),ff(this))},3:function(){Ze(this,P(this,0),
ff(this))&&of(this)},4:function(){Q(this,0,We(this,P(this,0),ff(this)))},5:function(){Q(this,0,We(this,ff(this),P(this,0)))},6:function(){Q(this,0,Ye(this,P(this,0),ff(this)))},7:function(){Q(this,0,Ye(this,ff(this),P(this,0)))}},219:{0:function(){pf(this,ff(this))},2:function(){null!=$e(this,P(this,0),2147483648)&&this.oh()},3:function(){null!=$e(this,P(this,0),2147483648)&&(this.oh(),of(this))},5:function(){pf(this,lf(this,jf(this)))},7:function(){df(this,0)&&(kf(this),of(this))},64:function(){8087==
this.ca&&(this.H&=-129)},65:function(){8087==this.ca&&(this.H|=128)},66:yf,67:Ef,68:function(){},115:function(){}},220:{0:function(){Q(this,0,Ve(this,P(this,0),hf(this)))},1:function(){Q(this,0,Xe(this,P(this,0),hf(this)))},2:function(){Ze(this,P(this,0),hf(this))},3:function(){Ze(this,P(this,0),hf(this))&&of(this)},4:function(){Q(this,0,We(this,P(this,0),hf(this)))},5:function(){Q(this,0,We(this,hf(this),P(this,0)))},6:function(){Q(this,0,Ye(this,P(this,0),hf(this)))},7:function(){Q(this,0,Ye(this,
hf(this),P(this,0)))},48:function(){Q(this,this.B,Ve(this,P(this,this.B),P(this,0)))},49:function(){Q(this,this.B,Xe(this,P(this,this.B),P(this,0)))},50:function(){zf.call(this)},51:Bf,52:function(){Q(this,this.B,We(this,P(this,0),P(this,this.B)))},53:function(){Q(this,this.B,We(this,P(this,this.B),P(this,0)))},54:function(){Q(this,this.B,Ye(this,P(this,0),P(this,this.B)))},55:function(){Q(this,this.B,Ye(this,P(this,this.B),P(this,0)))}},221:{0:function(){pf(this,hf(this))},2:function(){cf(this)&&
this.lj()},3:function(){cf(this)&&(this.lj(),of(this))},4:Jf,6:Kf,7:Pf,48:Df,49:Sf,50:function(){Q(this,this.B,P(this,0))},51:Mf},222:{0:function(){Q(this,0,Ve(this,P(this,0),ef(this)))},1:function(){Q(this,0,Xe(this,P(this,0),ef(this)))},2:function(){Ze(this,P(this,0),ef(this))},3:function(){Ze(this,P(this,0),ef(this))&&of(this)},4:function(){Q(this,0,We(this,P(this,0),ef(this)))},5:function(){Q(this,0,We(this,ef(this),P(this,0)))},6:function(){Q(this,0,Ye(this,P(this,0),ef(this)))},7:function(){Q(this,
this.lj()},3:function(){cf(this)&&(this.lj(),of(this))},4:Hf,6:Kf,7:Pf,48:Df,49:Sf,50:function(){Q(this,this.B,P(this,0))},51:Mf},222:{0:function(){Q(this,0,Ve(this,P(this,0),ef(this)))},1:function(){Q(this,0,Xe(this,P(this,0),ef(this)))},2:function(){Ze(this,P(this,0),ef(this))},3:function(){Ze(this,P(this,0),ef(this))&&of(this)},4:function(){Q(this,0,We(this,P(this,0),ef(this)))},5:function(){Q(this,0,We(this,ef(this),P(this,0)))},6:function(){Q(this,0,Ye(this,P(this,0),ef(this)))},7:function(){Q(this,
0,Ye(this,ef(this),P(this,0)))},48:function(){Q(this,this.B,Ve(this,P(this,this.B),P(this,0)))&&of(this)},49:function(){Q(this,this.B,Xe(this,P(this,this.B),P(this,0)))&&of(this)},50:Bf,51:function(){Ze(this,P(this,0),P(this,1))&&null!=of(this)&&of(this)},52:function(){Q(this,this.B,We(this,P(this,0),P(this,this.B)))&&of(this)},53:function(){Q(this,this.B,We(this,P(this,this.B),P(this,0)))&&of(this)},54:function(){Q(this,this.B,Ye(this,P(this,0),P(this,this.B)))&&of(this)},55:function(){Q(this,this.B,
Ye(this,P(this,this.B),P(this,0)))&&of(this)}},223:{0:function(){pf(this,ef(this))},2:function(){null!=$e(this,P(this,0),32768)&&this.A.bb(this.A.F,this.I[0])},3:function(){null!=$e(this,P(this,0),32768)&&(this.A.bb(this.A.F,this.I[0]),of(this))},4:function(){var a=jf(this),b=mf(a[0],8)+1E8*mf(a[1],8)+1E16*mf(a[2],2);a[2]&32768&&(b=-b);pf(this,b)},5:function(){var a;a=this.A.fa(this.A.F);a=4294967296*this.A.fa(this.A.F+4)+(a>>>0);pf(this,a)},6:function(){var a=$e(this,of(this));null!=a&&(this.G[0]=
nf(a,8),this.G[1]=nf(a/1E8,8),this.G[2]=nf(a/1E16,2),0>a&&(this.G[2]|=32768),kf(this))},7:function(){null!=$e(this,P(this,0),xf)&&(this.kj(),of(this))},48:function(){Df.call(this);of(this)},49:Sf,50:Nf,51:Nf,52:Qf}},Uf=[yf,Ef,Ff,Gf,Jf,Kf,Of,Lf,Pf,Qf];Ea(function(){for(var a=Za(document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Le(d);Ya(d,c)}});function Vf(a,b){var c=a+b+te(this)|0;he(this,a,b,c,191);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&255}
nf(a,8),this.G[1]=nf(a/1E8,8),this.G[2]=nf(a/1E16,2),0>a&&(this.G[2]|=32768),kf(this))},7:function(){null!=$e(this,P(this,0),xf)&&(this.kj(),of(this))},48:function(){Df.call(this);of(this)},49:Sf,50:Nf,51:Nf,52:Qf}},Uf=[yf,Ef,Ff,Gf,Hf,Kf,Of,Lf,Pf,Qf];Ea(function(){for(var a=Za(document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Le(d);Ya(d,c)}});function Vf(a,b){var c=a+b+te(this)|0;he(this,a,b,c,191);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&255}
function Wf(a,b){var c=a+b+te(this)|0;he(this,a,b,c,this.fb|63);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&this.N}function Xf(a,b){var c=a+b|0;he(this,a,b,c,191);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&255}function Yf(a,b){var c=a+b|0;he(this,a,b,c,this.fb|63);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&this.N}
function Zf(a,b){var c=a&b;F(this,c,128);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c}function $f(a,b){this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return F(this,a&b,this.fb)&this.N}function ag(a,b){this.A-=10+(-1===this.F?0:1);if((a&3)<(b&3))return a=a&-4|b&3,ze(this),a;xe(this);return a}
function bg(a){if(-1===this.F)return t.call(this,6),a;var b=a,c=this.Tb(this.F),d=this.Tb(this.F+this.U);2==this.U&&(b=a<<16>>16,c=c<<16>>16,d=d<<16>>16);this.A-=this.B.ci;(b<c||b>d)&&t.call(this,5);this.L|=2;return a}function cg(a,b){var c=0;if(b){xe(this);for(var d=1;d&this.N;){if(b&d){a=c;break}d<<=1;c++}}else ze(this);this.A-=11+3*c;return a}function dg(a,b){var c=0;if(b){xe(this);for(var d=2==this.U?15:31,e=1<<d;e;){if(b&e){a=d;break}e>>>=1;c++;d--}}else ze(this);this.A-=11+3*c;return a}
@ -172,8 +172,8 @@ function Pc(a){this.dd=a;this.Pa&-2147483648&&Bb(this)}function Bh(a){this.L|=1;
function kh(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;F(this,a,-2147483648,d&1)}return a}function Ch(){this.A-=-1===this.F?2:this.B.$i;return 1}function Dh(){var a=this.G&255;this.A-=(-1===this.F?this.B.Vg:this.B.Ug)+(a<<this.B.Wg);return a}function Eh(){var a=this.na();this.A-=(-1===this.F?this.B.Vg:this.B.Ug)+(a<<this.B.Wg);return a}function Fh(){return null}function Gh(){return this.oa}
function Hh(a,b){this.Gc=this.Ca.ja;this.ic=this.R.ja;this.la=this.ra;var c=A(this),d=this.U;null!=Nc(this,a,b,!0)&&(Ic(this,this.Gc,d,2),Ic(this,c,d,d));this.Gc=this.ic=this.la=-1}function Ih(a,b,c){this.A-=this.B.yi+(c||0);c=Lc(this);var d=this.Ca.ja,e=A(this);a=this.Ca.Wh(a);-1!==a&&(y(this,c),y(this,d),y(this,e),null!=b&&y(this,b),this.fc=-1,ee(this,a))}
function Jh(a){this.ic=this.R.ja;this.la=this.ra;var b=u(this),c=u(this);a&&v(this,w(this)+a);Nc(this,b,c,!1)&&(a&&v(this,w(this)+a),Kh.call(this,this.xa),Kh.call(this,this.pa),80386<=this.ca&&(Kh.call(this,this.Ta),Kh.call(this,this.Xa)));2==a&&this.Vf&&Zd(this,this.Y);this.ic=this.la=-1}function Lh(){8086==this.ca?(this.fc=-1,Ih.call(this,0,null,2)):t.call(this,0,null,2)}function Ke(a,b){this.fc=a;void 0===b&&(b=11);Ih.call(this,a,null,b)}
function t(a,b,c,d){var e=!1;this.ea.Le?80186<=this.ca&&(e=!0,0>this.fc?(-1!=this.Gc&&(this.Gc!==this.Ca.ja&&(this.Ca.sb=this.Gc&3,de(this,this.Gc)),this.Gc=-1),this.Ed!==this.Y&&ee(this,this.Ed),-1!=this.ic&&(this.ic!==this.R.ja&&Dc(this,this.ic),this.ic=-1),-1!==this.la&&(this.la!==this.ra&&v(this,this.Nb&~this.R.sa|this.la-this.R.ya),this.la=-1)):8!=this.fc?(b=0,a=8):(b=0,a=-1,yd(this),e=d=!1)):ee(this,this.Ed);var f=a,g=b,h=Ce(this,this.Y);204!=h||this.xc||(d=!1);this.X&131072&&(6==f&&99==h||
13==f&&205==h)&&(d=!1);983040<=this.Y&&1048575>=this.Y&&(d=!1);if(d){var k=this.ea.Sb,f="Fault 0x"+ea(f,2)+(null!=g?" (0x"+ea(g,4)+")":"")+" on opcode "+("0x"+ea(h,2));d&&k&&(f+=" (blocked)");this.Ba(f);oc(this)}if(d&&e)throw-1;if(e)throw this.fc=a,Ih.call(this,a,b,c),this.Ed=this.Y,this.L=1==a?this.L|8192:this.L|4096,a;}function zd(a,b,c){this.rd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.za&&(a|=4);t.call(this,14,a)}
function t(a,b,c,d){var e=!1;this.da.Le?80186<=this.ca&&(e=!0,0>this.fc?(-1!=this.Gc&&(this.Gc!==this.Ca.ja&&(this.Ca.sb=this.Gc&3,de(this,this.Gc)),this.Gc=-1),this.Ed!==this.Y&&ee(this,this.Ed),-1!=this.ic&&(this.ic!==this.R.ja&&Dc(this,this.ic),this.ic=-1),-1!==this.la&&(this.la!==this.ra&&v(this,this.Nb&~this.R.sa|this.la-this.R.ya),this.la=-1)):8!=this.fc?(b=0,a=8):(b=0,a=-1,yd(this),e=d=!1)):ee(this,this.Ed);var f=a,g=b,h=Ce(this,this.Y);204!=h||this.xc||(d=!1);this.X&131072&&(6==f&&99==h||
13==f&&205==h)&&(d=!1);983040<=this.Y&&1048575>=this.Y&&(d=!1);if(d){var k=this.da.Sb,f="Fault 0x"+ea(f,2)+(null!=g?" (0x"+ea(g,4)+")":"")+" on opcode "+("0x"+ea(h,2));d&&k&&(f+=" (blocked)");this.Ba(f);oc(this)}if(d&&e)throw-1;if(e)throw this.fc=a,Ih.call(this,a,b,c),this.Ed=this.Y,this.L=1==a?this.L|8192:this.L|4096,a;}function zd(a,b,c){this.rd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.za&&(a|=4);t.call(this,14,a)}
function Kh(a){var b=a.lb&7680;a.ja&65528&&(6144==b||7168==b||7168>b&&a.nc<this.za&&a.nc<(a.ja&3))&&a.load(0)}
function Ed(a){var b,c;switch((this.W=this.na())&199){case 0:c=G(this,this.D+this.I);this.A-=this.B.Ic;break;case 1:c=G(this,this.D+this.H);this.A-=this.B.Jc;break;case 2:c=H(this,this.K+this.I);this.A-=this.B.Jc;break;case 3:c=H(this,this.K+this.H);this.A-=this.B.Ic;break;case 4:c=G(this,this.I);this.A-=this.B.kc;break;case 5:c=G(this,this.H);this.A-=this.B.kc;break;case 6:c=G(this,N(this));this.A-=this.B.bd;break;case 7:c=G(this,this.D);this.A-=this.B.kc;break;case 64:c=G(this,this.D+this.I+this.O());
this.A-=this.B.Kb;break;case 65:c=G(this,this.D+this.H+this.O());this.A-=this.B.Lb;break;case 66:c=H(this,this.K+this.I+this.O());this.A-=this.B.Lb;break;case 67:c=H(this,this.K+this.H+this.O());this.A-=this.B.Kb;break;case 68:c=G(this,this.I+this.O());this.A-=this.B.Sa;break;case 69:c=G(this,this.H+this.O());this.A-=this.B.Sa;break;case 70:c=H(this,this.K+this.O());this.A-=this.B.Sa;break;case 71:c=G(this,this.D+this.O());this.A-=this.B.Sa;break;case 128:c=G(this,this.D+this.I+N(this));this.A-=this.B.Kb;
@ -262,12 +262,12 @@ this.F;break;case 131:c=L(this,this.D+N(this));this.C=this.F;break;case 132:c=L(
3&7].call(this,c,b.call(this));switch(d){case 192:this.J=c;break;case 193:this.G=c;break;case 194:this.M=c;break;case 195:this.D=c;break;case 196:v(this,c);break;case 197:this.K=c;break;case 198:this.I=c;break;case 199:this.H=c;break;default:He(this,c)}}
function Mh(a){var b=this.na(),c=b>>6,d,e;switch(b>>3&7){case 0:d=this.J;break;case 1:d=this.G;break;case 2:d=this.M;break;case 3:d=this.D;break;case 4:d=0;break;case 5:d=this.K;break;case 6:d=this.I;break;case 7:d=this.H}switch(b&7){case 0:e=this.J;break;case 1:e=this.G;break;case 2:e=this.M;break;case 3:e=this.D;break;case 4:e=w(this);this.va=this.rb;break;case 5:a?(e=this.K,this.va=this.rb):e=N(this);break;case 6:e=this.I;break;case 7:e=this.H}return(d<<c)+e|0}
function md(){this.Zc[this.na()].call(this)}function pd(){y(this,w(this)&this.N);this.A-=this.B.Ac}function Wc(){this.la=this.ra;var a=w(this)&this.N;y(this,this.J&this.N);y(this,this.G&this.N);y(this,this.M&this.N);y(this,this.D&this.N);y(this,a);y(this,this.K&this.N);y(this,this.I&this.N);y(this,this.H&this.N);this.A-=this.B.Ui;this.la=-1}
function Xc(){this.la=this.ra;this.H=this.H&~this.N|u(this);this.I=this.I&~this.N|u(this);this.K=this.K&~this.N|u(this);v(this,w(this)+this.U);this.D=this.D&~this.N|u(this);this.M=this.M&~this.N|u(this);this.G=this.G&~this.N|u(this);this.J=this.J&~this.N|u(this);this.A-=this.B.Si;this.la=-1}function Yc(){this.Z.call(this,bg)}function qd(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.qa.call(this,ag)}function sd(){this.L|=20;this.va=this.rb=this.Ta;this.A-=this.B.Rc}
function Xc(){this.la=this.ra;this.H=this.H&~this.N|u(this);this.I=this.I&~this.N|u(this);this.K=this.K&~this.N|u(this);v(this,w(this)+this.U);this.D=this.D&~this.N|u(this);this.M=this.M&~this.N|u(this);this.G=this.G&~this.N|u(this);this.J=this.J&~this.N|u(this);this.A-=this.B.Si;this.la=-1}function Yc(){this.Z.call(this,bg)}function qd(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.qa.call(this,ag)}function rd(){this.L|=20;this.va=this.rb=this.Ta;this.A-=this.B.Rc}
function td(){this.L|=20;this.va=this.rb=this.Xa;this.A-=this.B.Rc}function ud(){this.L|=1024;this.wa&1024||(this.U^=6,this.N^=-65536,Wd(this));this.A-=this.B.Rc}function vd(){this.L|=2048;this.wa&2048||(this.Nc^=6,this.sa^=-65536,Dd(this));this.A-=this.B.Rc}function Zc(){y(this,this.Aa());this.A-=this.B.Ac}function $c(){this.Z.call(this,sg)}function ad(){y(this,this.O());this.A-=this.B.Ac}function bd(){this.Z.call(this,qg)}
function cd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,1)&&(e=Ob(this.ha,e,1,this.Y-b-1),this.Mc(this.pa.Qb(this.H&c,1),e),this.H=this.H&~c|this.H+(this.X&1024?-1:1)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
function dd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,this.U)&&(e=Ob(this.ha,e,this.U,this.Y-b-1),this.Xb(this.pa.Qb(this.H&c,this.U),e),this.H=this.H&~c|this.H+(this.X&1024?-this.U:this.U)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
function ed(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;if(Be(this,e,1)){var f=this.Jb(this.xa.Pb(this.I&c,1));Qb(this.ha,e,1,f,this.Y-b-1);this.I=this.I&~c|this.I+(this.X&1024?-1:1)&c;this.G=this.G&~c|this.G-b&c;this.A-=d;a&&(ge(this),this.L|=256)}}}
function fd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=Hc(this,this.xa,this.I&c),f=this.M&65535;Be(this,f,this.U)&&(Qb(this.ha,f,this.U,e,this.Y-b-1),this.I=this.I&~c|this.I+(this.X&1024?-this.U:this.U)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}function Nh(){var a=this.O();ne(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}
function cd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,1)&&(e=Pb(this.ha,e,1,this.Y-b-1),this.Mc(this.pa.Qb(this.H&c,1),e),this.H=this.H&~c|this.H+(this.X&1024?-1:1)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
function dd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,this.U)&&(e=Pb(this.ha,e,this.U,this.Y-b-1),this.Xb(this.pa.Qb(this.H&c,this.U),e),this.H=this.H&~c|this.H+(this.X&1024?-this.U:this.U)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
function ed(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;if(Be(this,e,1)){var f=this.Jb(this.xa.Pb(this.I&c,1));Rb(this.ha,e,1,f,this.Y-b-1);this.I=this.I&~c|this.I+(this.X&1024?-1:1)&c;this.G=this.G&~c|this.G-b&c;this.A-=d;a&&(ge(this),this.L|=256)}}}
function fd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=Hc(this,this.xa,this.I&c),f=this.M&65535;Be(this,f,this.U)&&(Rb(this.ha,f,this.U,e,this.Y-b-1),this.I=this.I&~c|this.I+(this.X&1024?-this.U:this.U)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}function Nh(){var a=this.O();ne(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}
function Oh(){var a=this.O();ne(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}function Ph(){var a=this.O();ie(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}function Qh(){var a=this.O();ie(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}function Rh(){var a=this.O();le(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}function Sh(){var a=this.O();le(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}
function Th(){var a=this.O();ie(this)||le(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}function Uh(){var a=this.O();ie(this)||le(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}function Vh(){var a=this.O();me(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}function Wh(){var a=this.O();me(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}function Xh(){var a=this.O();je(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}
function Yh(){var a=this.O();je(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}function Zh(){var a=this.O();!me(this)!=!ne(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}function $h(){var a=this.O();!me(this)==!ne(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}function ai(){var a=this.O();le(this)||!me(this)!=!ne(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na}
@ -279,10 +279,10 @@ var Rc=[function(){this.Gb.call(this,Xf)},function(){this.qa.call(this,Yf)},func
Jg)},function(){this.Z.call(this,Kg)},function(){this.J=this.J&-256|Jg.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|Kg.call(this,this.J&this.N,this.Aa());this.A--},function(){Ic(this,this.Ca.ja,this.U,2);this.A-=this.B.Td},function(){de(this,u(this));this.A-=this.B.ec},function(){this.Gb.call(this,Vf)},function(){this.qa.call(this,Wf)},function(){this.Bb.call(this,Vf)},function(){this.Z.call(this,Wf)},function(){this.J=this.J&-256|Vf.call(this,this.J&255,this.na());this.A--},
function(){this.J=this.J&~this.N|Wf.call(this,this.J&this.N,this.Aa());this.A--},function(){Ic(this,this.R.ja,this.U,2);this.A-=this.B.Td},function(){this.la=this.ra;Dc(this,u(this));this.A-=this.B.ec;this.la=-1},function(){this.Gb.call(this,Lg)},function(){this.qa.call(this,Mg)},function(){this.Bb.call(this,Lg)},function(){this.Z.call(this,Mg)},function(){this.J=this.J&-256|Lg.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|Mg.call(this,this.J&this.N,this.Aa());this.A--},
function(){Ic(this,this.xa.ja,this.U,2);this.A-=this.B.Td},function(){this.la=this.ra;Jc(this,u(this));this.A-=this.B.ec;this.la=-1},function(){this.Gb.call(this,Zf)},function(){this.qa.call(this,$f)},function(){this.Bb.call(this,Zf)},function(){this.Z.call(this,$f)},function(){this.J=this.J&-256|Zf.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|$f.call(this,this.J&this.N,this.Aa());this.A--},function(){this.L|=20;this.va=this.rb=this.pa;this.A-=this.B.Rc},function(){var a=
this.J&255,b=ke(this),c=ie(this);9<(a&15)||b?(a+=6,b=16):b=0;159<a||c?(a+=96,c=1):c=0;a&=255;this.J=this.J&-256|a;F(this,a,128);c?oe(this):pe(this);b?ye(this):we(this);this.A-=this.B.Sd},function(){this.Gb.call(this,nh)},function(){this.qa.call(this,oh)},function(){this.Bb.call(this,nh)},function(){this.Z.call(this,oh)},function(){this.J=this.J&-256|nh.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|oh.call(this,this.J&this.N,this.Aa());this.A--},function(){this.L|=20;this.va=
this.rb=this.Ca;this.A-=this.B.Rc},function(){var a=this.J&255,b=ke(this),c=ie(this);9<(a&15)||b?(a-=6,b=16):b=0;159<a||c?(a-=96,c=1):c=0;a&=255;this.J=this.J&-256|a;F(this,a,128);c?oe(this):pe(this);b?ye(this):we(this);this.A-=this.B.Sd},function(){this.Gb.call(this,vh)},function(){this.qa.call(this,wh)},function(){this.Bb.call(this,vh)},function(){this.Z.call(this,wh)},function(){this.J=this.J&-256|vh.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|wh.call(this,this.J&
this.N,this.Aa());this.A--},function(){this.L|=20;this.va=this.rb=this.R;this.A-=this.B.Rc},function(){var a,b,c=this.J&255,d=this.J>>8&255;9<(c&15)||ke(this)?(c+=6,80286<=this.ca&&255<c&&d++,d++,a=b=1):a=b=0;this.J=this.J&-65536|(d<<8|c)&65295;a?oe(this):pe(this);b?ye(this):we(this);this.A-=this.B.Sd},function(){this.Gb.call(this,mg)},function(){this.qa.call(this,ng)},function(){this.Bb.call(this,mg)},function(){this.Z.call(this,ng)},function(){mg.call(this,this.J&255,this.na());this.A--},function(){ng.call(this,
this.J&this.N,this.Aa());this.A--},function(){this.L|=20;this.va=this.rb=this.xa;this.A-=this.B.Rc},function(){var a,b,c=this.J&255,d=this.J>>8&255;9<(c&15)||ke(this)?(c=c-6&15,d=d-1&255,a=b=1):a=b=0;this.J=this.J&-65536|d<<8|c;a?oe(this):pe(this);b?ye(this):we(this);this.A-=this.B.Sd},function(){this.J=Ah.call(this,this.J)},function(){this.G=Ah.call(this,this.G)},function(){this.M=Ah.call(this,this.M)},function(){this.D=Ah.call(this,this.D)},function(){v(this,Ah.call(this,w(this)))},function(){this.K=
this.J&255,b=ke(this),c=ie(this);9<(a&15)||b?(a+=6,b=16):b=0;159<a||c?(a+=96,c=1):c=0;a&=255;this.J=this.J&-256|a;F(this,a,128);c?oe(this):pe(this);b?ye(this):ue(this);this.A-=this.B.Sd},function(){this.Gb.call(this,nh)},function(){this.qa.call(this,oh)},function(){this.Bb.call(this,nh)},function(){this.Z.call(this,oh)},function(){this.J=this.J&-256|nh.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|oh.call(this,this.J&this.N,this.Aa());this.A--},function(){this.L|=20;this.va=
this.rb=this.Ca;this.A-=this.B.Rc},function(){var a=this.J&255,b=ke(this),c=ie(this);9<(a&15)||b?(a-=6,b=16):b=0;159<a||c?(a-=96,c=1):c=0;a&=255;this.J=this.J&-256|a;F(this,a,128);c?oe(this):pe(this);b?ye(this):ue(this);this.A-=this.B.Sd},function(){this.Gb.call(this,vh)},function(){this.qa.call(this,wh)},function(){this.Bb.call(this,vh)},function(){this.Z.call(this,wh)},function(){this.J=this.J&-256|vh.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|wh.call(this,this.J&
this.N,this.Aa());this.A--},function(){this.L|=20;this.va=this.rb=this.R;this.A-=this.B.Rc},function(){var a,b,c=this.J&255,d=this.J>>8&255;9<(c&15)||ke(this)?(c+=6,80286<=this.ca&&255<c&&d++,d++,a=b=1):a=b=0;this.J=this.J&-65536|(d<<8|c)&65295;a?oe(this):pe(this);b?ye(this):ue(this);this.A-=this.B.Sd},function(){this.Gb.call(this,mg)},function(){this.qa.call(this,ng)},function(){this.Bb.call(this,mg)},function(){this.Z.call(this,ng)},function(){mg.call(this,this.J&255,this.na());this.A--},function(){ng.call(this,
this.J&this.N,this.Aa());this.A--},function(){this.L|=20;this.va=this.rb=this.xa;this.A-=this.B.Rc},function(){var a,b,c=this.J&255,d=this.J>>8&255;9<(c&15)||ke(this)?(c=c-6&15,d=d-1&255,a=b=1):a=b=0;this.J=this.J&-65536|d<<8|c;a?oe(this):pe(this);b?ye(this):ue(this);this.A-=this.B.Sd},function(){this.J=Ah.call(this,this.J)},function(){this.G=Ah.call(this,this.G)},function(){this.M=Ah.call(this,this.M)},function(){this.D=Ah.call(this,this.D)},function(){v(this,Ah.call(this,w(this)))},function(){this.K=
Ah.call(this,this.K)},function(){this.I=Ah.call(this,this.I)},function(){this.H=Ah.call(this,this.H)},function(){this.J=yh.call(this,this.J)},function(){this.G=yh.call(this,this.G)},function(){this.M=yh.call(this,this.M)},function(){this.D=yh.call(this,this.D)},function(){v(this,yh.call(this,w(this)))},function(){this.K=yh.call(this,this.K)},function(){this.I=yh.call(this,this.I)},function(){this.H=yh.call(this,this.H)},function(){y(this,this.J&this.N);this.A-=this.B.Ac},function(){y(this,this.G&
this.N);this.A-=this.B.Ac},function(){y(this,this.M&this.N);this.A-=this.B.Ac},function(){y(this,this.D&this.N);this.A-=this.B.Ac},function(){y(this,w(this)-2&65535);this.A-=this.B.Ac},function(){y(this,this.K&this.N);this.A-=this.B.Ac},function(){y(this,this.I&this.N);this.A-=this.B.Ac},function(){y(this,this.H&this.N);this.A-=this.B.Ac},function(){this.J=this.J&~this.N|u(this);this.A-=this.B.ec},function(){this.G=this.G&~this.N|u(this);this.A-=this.B.ec},function(){this.M=this.M&~this.N|u(this);
this.A-=this.B.ec},function(){this.D=this.D&~this.N|u(this);this.A-=this.B.ec},function(){v(this,w(this)&~this.N|u(this));this.A-=this.B.ec},function(){this.K=this.K&~this.N|u(this);this.A-=this.B.ec},function(){this.I=this.I&~this.N|u(this);this.A-=this.B.ec},function(){this.H=this.H&~this.N|u(this);this.A-=this.B.ec},Nh,Oh,Ph,Qh,Rh,Sh,Th,Uh,Vh,Wh,Xh,Yh,Zh,$h,ai,bi,Nh,Oh,Ph,Qh,Rh,Sh,Th,Uh,Vh,Wh,Xh,Yh,Zh,$h,ai,bi,ci,function(){this.Ja.call(this,ri,this.Aa);this.A-=-1===this.C?1:this.B.Kf},ci,function(){this.Ja.call(this,
@ -290,7 +290,7 @@ ri,this.O);this.A-=-1===this.C?1:this.B.Kf},function(){this.Gb.call(this,ph)},fu
case 3:a=this.D;this.D=this.oa;Jc(this,a);break;case 4:a=w(this);v(this,this.oa);80386<=this.ca?this.Ta.load(a):Kc(this,a);break;case 5:a=this.K;this.K=this.oa;80386<=this.ca?this.Xa.load(a):de(this,a);break;case 6:a=this.I;this.I=this.oa;Dc(this,a);break;case 7:a=this.H,this.H=this.oa,Jc(this,a)}},function(){this.L|=1;this.la=this.ra;this.oa=u(this);this.Ja.call(this,si,Gh);this.la=-1},function(){this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.G&this.N;this.G=this.G&~this.N|a&this.N;
this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.M&this.N;this.M=this.M&~this.N|a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.D&this.N;this.D=this.D&~this.N|a&this.N;this.A-=3},function(){var a=this.J,b=w(this);this.J=this.J&~this.N|b&this.N;v(this,b&~this.N|a&this.N);this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.K&this.N;this.K=this.K&~this.N|a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.I&this.N;this.I=this.I&~this.N|
a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.H&this.N;this.H=this.H&~this.N|a&this.N;this.A-=3},function(){this.J=2==this.U?this.J&-65536|this.J<<24>>24&65535:this.J<<16>>16;this.A-=2},function(){this.M=2==this.U?this.M&-65536|(this.J&32768?65535:0):this.J&-2147483648?-1:0;this.A-=this.B.ei},function(){Hh.call(this,this.Aa(),Ie(this));this.A-=this.B.hi},function(){this.A-=3},function(){var a=Lc(this);a&131072&&3>this.Cb?t.call(this,13,0):(y(this,a&-196609),this.A-=this.B.Ac)},
function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{var a=u(this),a=a&65535|this.X&-65536;Mc(this,a);this.A-=this.B.ec}},function(){var a=this.J>>8&255;a&1?oe(this):pe(this);a&4?(this.resultType&=-3,this.X|=4):(this.resultType&=-3,this.X&=-5);a&16?ye(this):we(this);a&64?ze(this):xe(this);a&128?(this.resultType&=-17,this.X|=128):(this.resultType&=-17,this.X&=-129);this.A-=this.B.Mb},function(){this.J=this.J&-65281|(Lc(this)&213)<<8;this.A-=this.B.Mb},function(){var a=this.J&-256,b;b=N(this);
function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{var a=u(this),a=a&65535|this.X&-65536;Mc(this,a);this.A-=this.B.ec}},function(){var a=this.J>>8&255;a&1?oe(this):pe(this);a&4?(this.resultType&=-3,this.X|=4):(this.resultType&=-3,this.X&=-5);a&16?ye(this):ue(this);a&64?ze(this):xe(this);a&128?(this.resultType&=-17,this.X|=128):(this.resultType&=-17,this.X&=-129);this.A-=this.B.Mb},function(){this.J=this.J&-65281|(Lc(this)&213)<<8;this.A-=this.B.Mb},function(){var a=this.J&-256,b;b=N(this);
b=this.Jb(this.va.Pb(b,1));this.J=a|b;this.A-=this.B.Kg},function(){this.J=this.J&~this.N|Hc(this,this.va,N(this));this.A-=this.B.Kg},function(){var a=N(this),b=this.J;this.Mc(this.va.Qb(a,1),b);this.A-=this.B.Lg},function(){var a=N(this),b=this.J;this.Xb(this.va.Qb(a,this.U),b);this.A-=this.B.Lg},function(){var a=1,b=0,c=this.sa,d=this.B.Mg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Og,this.wa&256||(this.A-=this.B.Ng));if(a--){var e=this.Jb(this.va.Pb(this.I&c,1));this.Mc(this.pa.Qb(this.H&c,1),e);e=
this.X&1024?-1:1;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.A-=d;this.G=this.G&~c|this.G-b&c;a&&(ge(this),this.L|=256)}},function(){var a=1,b=0,c=this.sa,d=this.B.Mg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Og,this.wa&256||(this.A-=this.B.Ng));if(a--){var e=Hc(this,this.va,this.I&c);this.Xb(this.pa.Qb(this.H&c,this.U),e);e=this.X&1024?-this.U:this.U;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.A-=d;this.G=this.G&~c|this.G-b&c;a&&(ge(this),this.L|=256)}},function(){var a=
1,b=0,c=this.sa,d=this.B.xg;this.wa&192&&(a=this.G&c,b=1,d=this.B.zg,this.wa&256||(this.A-=this.B.yg));if(a--){var e=De(this,this.va,this.I),f=De(this,this.pa,this.H);this.C=this.F;mg.call(this,e,f);e=this.X&1024?-1:1;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.G=this.G&~c|this.G-b&c;this.A-=d-this.B.yb;a&&le(this)==(this.wa&64)&&(ge(this),this.L|=256)}},function(){var a=1,b=0,c=this.sa,d=this.B.xg;this.wa&192&&(a=this.G&c,b=1,d=this.B.zg,this.wa&256||(this.A-=this.B.yg));if(a--){var e=
@ -305,9 +305,9 @@ ti,this.Aa)},ni,oi,ni,oi,function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0
this.B.Bi},function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{this.ic=this.R.ja;this.la=this.ra;this.A-=this.B.xi;if(this.Pa&1&&this.X&16384){var a=this.ga(this.ia.ya+0);Ec(this.Ca,a,!1)}else{var a=this.za,b=u(this),c=u(this),d=u(this);if(this.X&131072)d=d&131071|this.X&-131072;else if(d&131072){var e=u(this),f=u(this),g=u(this),h=u(this),k=u(this),m=u(this);Fc(this,!0,!0);Dc(this,f);v(this,e);Kc(this,g);Jc(this,h);this.Ta.load(k);this.Xa.load(m)}null!=Nc(this,b,c,!1)&&(Mc(this,d,a),this.Vf&&
Zd(this,this.Y))}this.ic=this.la=-1}},function(){this.yc.call(this,ii,Ch)},function(){this.Ja.call(this,2==this.U?ji:ki,Ch)},function(){this.yc.call(this,ii,Dh)},function(){this.Ja.call(this,2==this.U?ji:ki,Dh)},function(){var a=this.na();if(a){var b=this.J&255;this.J=this.J&-65536|b/a<<8|b%a;F(this,this.J,128);this.A-=this.B.bi}else Lh.call(this)},function(){var a=this.J&255,b=(this.J>>8&255)*this.na()|0,c=a+b|0;this.J=this.J&-65536|c&255;he(this,a,b,c,191);this.A-=this.B.ai},function(){this.J=this.J&
-256|(ie(this)?255:0);this.A-=2},function(){this.J=this.J&-256|De(this,this.va,this.D+(this.J&255));this.A-=this.B.aj},function(){pi.call(this,216)},function(){pi.call(this,217)},function(){pi.call(this,218)},function(){pi.call(this,219)},function(){pi.call(this,220)},function(){pi.call(this,221)},function(){pi.call(this,222)},function(){pi.call(this,223)},function(){var a=this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b&&!le(this)?(D(this,A(this)+a),this.A-=this.B.Ii):this.A-=this.B.Hg},function(){var a=
this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b&&le(this)?(D(this,A(this)+a),this.A-=this.B.Ig):this.A-=this.B.Jg},function(){var a=this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b?(D(this,A(this)+a),this.A-=this.B.Hi):this.A-=this.B.Hg},function(){var a=this.O();this.G&this.sa?this.A-=this.B.Jg:(D(this,A(this)+a),this.A-=this.B.Ig)},function(){var a=this.na();Be(this,a,1)&&(this.J=this.J&-256|Ob(this.ha,a,1,this.Y-2)&255,this.A-=this.B.Cg)},function(){var a=this.na();Be(this,a,this.U)&&
(this.J=this.J&~this.N|Ob(this.ha,a,this.U,this.Y-2)&this.N,this.A-=this.B.Cg)},function(){var a=this.na();Be(this,a,1)&&(Qb(this.ha,a,1,this.J&255,this.Y-2),this.A-=this.B.Qg)},function(){var a=this.na();Be(this,a,this.U)&&(Qb(this.ha,a,this.U,this.J&this.N,this.Y-2),this.A-=this.B.Qg)},function(){var a=this.Aa(),b=A(this),a=b+a;y(this,b);D(this,a);this.A-=this.B.fi},function(){var a=this.Aa();D(this,A(this)+a);this.A-=this.B.Dg},function(){Nc(this,this.Aa(),Ie(this));this.A-=this.B.Di},function(){var a=
this.O();D(this,A(this)+a);this.A-=this.B.Dg},function(){var a=this.M&65535;Be(this,a,1)&&(this.J=this.J&-256|Ob(this.ha,a,1,this.Y-1)&255,this.A-=this.B.Bg)},function(){var a=this.M&65535;Be(this,a,this.U)&&(this.J=this.J&~this.N|Ob(this.ha,a,this.U,this.Y-1)&this.N,this.A-=this.B.Bg)},function(){var a=this.M&65535;Be(this,a,1)&&(Qb(this.ha,a,1,this.J&255,this.Y-1),this.A-=this.B.Pg)},function(){var a=this.M&65535;Be(this,a,2)&&(Qb(this.ha,a,this.U,this.J&this.N,this.Y-1),this.A-=this.B.Pg)},qi,
this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b&&le(this)?(D(this,A(this)+a),this.A-=this.B.Ig):this.A-=this.B.Jg},function(){var a=this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b?(D(this,A(this)+a),this.A-=this.B.Hi):this.A-=this.B.Hg},function(){var a=this.O();this.G&this.sa?this.A-=this.B.Jg:(D(this,A(this)+a),this.A-=this.B.Ig)},function(){var a=this.na();Be(this,a,1)&&(this.J=this.J&-256|Pb(this.ha,a,1,this.Y-2)&255,this.A-=this.B.Cg)},function(){var a=this.na();Be(this,a,this.U)&&
(this.J=this.J&~this.N|Pb(this.ha,a,this.U,this.Y-2)&this.N,this.A-=this.B.Cg)},function(){var a=this.na();Be(this,a,1)&&(Rb(this.ha,a,1,this.J&255,this.Y-2),this.A-=this.B.Qg)},function(){var a=this.na();Be(this,a,this.U)&&(Rb(this.ha,a,this.U,this.J&this.N,this.Y-2),this.A-=this.B.Qg)},function(){var a=this.Aa(),b=A(this),a=b+a;y(this,b);D(this,a);this.A-=this.B.fi},function(){var a=this.Aa();D(this,A(this)+a);this.A-=this.B.Dg},function(){Nc(this,this.Aa(),Ie(this));this.A-=this.B.Di},function(){var a=
this.O();D(this,A(this)+a);this.A-=this.B.Dg},function(){var a=this.M&65535;Be(this,a,1)&&(this.J=this.J&-256|Pb(this.ha,a,1,this.Y-1)&255,this.A-=this.B.Bg)},function(){var a=this.M&65535;Be(this,a,this.U)&&(this.J=this.J&~this.N|Pb(this.ha,a,this.U,this.Y-1)&this.N,this.A-=this.B.Bg)},function(){var a=this.M&65535;Be(this,a,1)&&(Rb(this.ha,a,1,this.J&255,this.Y-1),this.A-=this.B.Pg)},function(){var a=this.M&65535;Be(this,a,2)&&(Rb(this.ha,a,this.U,this.J&this.N,this.Y-1),this.A-=this.B.Pg)},qi,
qi,function(){this.L|=132;this.A-=this.B.Rc},function(){this.L|=68;this.A-=this.B.Rc},function(){this.X&131072?t.call(this,13,0):(this.Ea|=4,this.A-=2,this.X&512||oc(this))},function(){ie(this)?pe(this):oe(this);this.A-=2},function(){this.Hb=!1;this.yc.call(this,ui,Fh);this.Hb&&(this.J=this.J&~this.N|this.ua&this.N)},function(){this.Hb=!1;this.Ja.call(this,vi,Fh);this.Hb&&(this.J=this.J&~this.N|this.ua&this.N,this.M=this.M&~this.N|this.Ga&this.N)},function(){pe(this);this.A-=2},function(){oe(this);
this.A-=2},function(){this.za>this.Cb?t.call(this,13,0):(this.X&=-513,this.A-=this.B.di)},function(){this.za>this.Cb?t.call(this,13,0):(this.X|=512,this.L|=4,this.A-=2)},function(){this.X&=-1025;this.A-=2},function(){this.X|=1024;this.A-=2},function(){this.yc.call(this,Sc,Fh)},function(){this.Ja.call(this,Tc,Fh)}],di=[Xf,Jg,Vf,Lg,Zf,nh,vh,mg],ri=[Yf,Kg,Wf,Mg,$f,oh,wh,ng],si=[function(a,b){this.A-=-1===this.C?this.B.ec:this.B.Ti;return b},pg,pg,pg,pg,pg,pg,pg],ti=[function(a,b){this.A-=-1===this.C?
this.B.Li:this.B.Ji;return b},R,R,R,R,R,R,R],ii=[function(a,b){var c=a,d=b&this.Da;if(d){var e;(d&=7)?(e=a<<d-1,c=(a<<d|a>>8-d)&255):e=a<<7;se(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.Da;if(d){var e;(d&=7)?(e=a<<8-d,c=(a>>>d|e)&255):e=a;se(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.Da;if(d){var e=te(this);(d%=9)?(c=(a<<d|e<<d-1|a>>9-d)&255,e=a<<d-1):e<<=7;se(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.Da;if(d){var e=te(this);(d%=9)?(c=(a>>d|e<<8-d|a<<9-d)&255,
@ -347,20 +347,20 @@ var ae=[function(){this.A-=2+(-1===this.F?0:1);return this.Zb.ja},function(){thi
7168)))return ze(this),a;xe(this);return a},function(a){this.L|=2;this.A-=14+(-1===this.F?0:2);if(-1!==this.Oa.load(a)&&512==(this.Oa.lb&2560)&&this.Oa.nc>=this.za&&this.Oa.nc>=(a&3))return ze(this),a;xe(this);return a},R,R],Uc=[ld,ld,ld,ld,ld,ld,R,R],wi=[function(a){if(-1===this.F)t.call(this,6);else{a=this.wc-this.ub;var b=this.ub;80286==this.ca?b|=-16777216:80386<=this.ca&&2!=this.U&&(a|=b<<16);this.Va(this.F+2,b);this.A-=11}return a},function(a){if(-1===this.F)t.call(this,6);else{a=this.xc-this.Ab;
var b=this.Ab;80286==this.ca?b|=-16777216:80386<=this.ca&&2!=this.U&&(a|=b<<16);this.Va(this.F+2,b);this.A-=12}return a},function(a){-1===this.F||this.X&131072?t.call(this,6):(this.ub=this.fa(this.F+2)&(this.N|this.N<<8),a&=65535,this.wc=this.ub+a,this.L|=2,this.A-=11);return a},function(a){-1===this.F||this.X&131072?t.call(this,6):(this.Ab=this.fa(this.F+2)&(this.N|this.N<<8),a&=65535,this.xc=this.Ab+a,this.L|=2,this.A-=12);return a},function(){this.A-=2+(-1===this.F?0:1);return this.Pa},R,function(a){this.X&
131072?t.call(this,6):(Ae(this,a),this.A-=-1===this.F?3:6,this.L|=2);return a},R],xi=[R,R,R,R,eg,hg,gg,fg];
function S(a){Ia.call(this,"ChipSet",a,S);var b=a.model;b&&!yi[b]&&n("Unrecognized ChipSet model: "+b);this.ca=yi[b]||zi;this.D=[];b=Ai(a[Bi]);this.D[0]=[b,b];null==b&&(this.Y=[360,360],(b=a.floppies)&&b.length&&(this.Y=b),Ci(this,Di,this.Y.length),Ci(this,Ei,a.monitor||(this.ca<Qe?"mono":"ega")));b=Ai(a[Fi]);this.D[1]=[b,b];this.Ea=this.pa=1;this.ca>=Qe&&(this.Ea=this.pa=2);this.Z=a.scaleTimers||!1;this.Xa=a.rtcDate;this.Oa=!1;a.sound&&(this.La=this.qa=null,window&&(this.La=window.AudioContext||
function S(a){Ia.call(this,"ChipSet",a,S);var b=a.model;b&&!yi[b]&&p("Unrecognized ChipSet model: "+b);this.ca=yi[b]||zi;this.D=[];b=Ai(a[Bi]);this.D[0]=[b,b];null==b&&(this.Y=[360,360],(b=a.floppies)&&b.length&&(this.Y=b),Ci(this,Di,this.Y.length),Ci(this,Ei,a.monitor||(this.ca<Qe?"mono":"ega")));b=Ai(a[Fi]);this.D[1]=[b,b];this.Ea=this.pa=1;this.ca>=Qe&&(this.Ea=this.pa=2);this.Z=a.scaleTimers||!1;this.Xa=a.rtcDate;this.Oa=!1;a.sound&&(this.La=this.qa=null,window&&(this.La=window.AudioContext||
window.webkitAudioContext),this.La&&(this.qa=new this.La));this.reset(!0);ab(this)}Qa(S);var zi=5150.9,Qe=5170,yi={5150:5150,5160:5160,5170:Qe,att6300:5160.101,mpc1600:5150.101,z150:5160.15,compaq:5150.102,other:zi,deskpro386:5180},Bi="sw1",Fi="sw2",Gi={vj:1,ONE:0,Jm:64,Hm:128,lm:192,lc:192,Zf:6},Hi={Im:16,em:32,tm:48,lc:48,Zf:4},Di=1,Ei=4,T={5150:[{},{}]};T[5150][0][Di]={lc:192,Oc:{1:0,2:64,3:128,4:192},gd:"Number of Floppy Drives"};T[5150][0][3]={lc:2,Oc:{0:0,1:2},gd:"Coprocessor"};
T[5150][0][Ei]={lc:48,Oc:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},gd:"Monitor Type"};T[5150][0][5]={lc:12,Oc:{16:0,32:4,48:8,64:12},gd:"Base Memory (16Kb Increments)"};T[5150][1][6]={lc:31,Oc:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},gd:"Expansion Memory (32Kb Increments)"};T[5160]=[{},{}];T[5160][0][Di]=T[5150][0][Di];T[5160][0][3]=T[5150][0][3];T[5160][0][Ei]=T[5150][0][Ei];
T[5160][0][5]={lc:12,Oc:{64:0,128:4,192:8,256:12},gd:"Base Memory (64Kb Increments)"};T[5160][1][6]=T[5150][1][6];T[5160.101]=[{},{}];T[5160.101][0][5]={lc:143,Oc:{128:1,256:130,512:8,640:141},gd:"Base Memory (128Kb Increments)"};T[5160.101][0][3]={lc:16,Oc:{0:0,1:16},gd:"Coprocessor"};T[5160.101][1][2]={lc:1,Oc:{0:0,1:1},gd:"Floppy Type"};T[5160.101][1][Di]=T[5150][0][Di];T[5160.101][1][Ei]=T[5150][0][Ei];l=S.prototype;
l.zb=function(a,b,c){switch(b){case Bi:return this.ka[b]=c,Ii(this,0,b),!0;case Fi:if(5150==(this.ca|0)||5160.101==this.ca)return this.ka[b]=c,Ii(this,1,b),!0;break;case "swdesc":return this.ka[b]=c,!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.qd=kb(a,"FPU");Ci(this,3,this.qd?1:0,!0);this.C=kb(a,"Keyboard");this.Ga=c.T.ad/1193181;Nb(b,this,Ji);Pb(b,this,Ki);this.ca<Qe?5160.101!=this.ca?(Nb(b,this,Li),Pb(b,this,Mi)):(Nb(b,this,Ni),Pb(b,this,Oi)):(Nb(b,this,Pi),Pb(b,this,Qi),5180==(this.ca|0)&&(Nb(b,this,Ri),Pb(b,this,Si)))};l.Vb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.qd=kb(a,"FPU");Ci(this,3,this.qd?1:0,!0);this.C=kb(a,"Keyboard");this.Ga=c.T.ad/1193181;Ob(b,this,Ji);Qb(b,this,Ki);this.ca<Qe?5160.101!=this.ca?(Ob(b,this,Li),Qb(b,this,Mi)):(Ob(b,this,Ni),Qb(b,this,Oi)):(Ob(b,this,Pi),Qb(b,this,Qi),5180==(this.ca|0)&&(Ob(b,this,Ri),Qb(b,this,Si)))};l.Vb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};
l.reset=function(a){var b;Ti(this);this.G=Array(this.Ea);for(b=0;b<this.Ea;b++)Ui(this,b);this.gc=Array(this.pa);Vi(this,0,32);1<this.pa&&Vi(this,1,160);this.za=this.xa=null;this.K=Array(5180==(this.ca|0)?6:3);for(b=0;b<this.K.length;b++)Wi(this,b);this.oa=this.Ja=this.P=this.Da=null;this.ma=0;5160.101==this.ca&&(this.la=0);if(this.ca>=Qe){this.H=16;this.R=0;this.S=16;this.ua=0;this.W=160;512<=Xi(this)&&(this.W|=16);3==+Yi(this,Ei,void 0)&&(this.W|=64);5180==(this.ca|0)&&(this.W|=12);this.va=3;this.I=
Array(8);this.da=0;a&&(this.B=Array(64));Zi(this,this.Xa);for(a=21;24>=a;a++)this.B[a]=0;for(a=14;46>a;a++)void 0===this.B[a]&&(this.B[a]=0);a=0|+Yi(this,Ei,void 0)<<Hi.Zf&Hi.lc;a|=+Yi(this,3,void 0)?2:0;b=+Yi(this,Di,void 0);a|=b?b-1<<Gi.Zf&Gi.lc|Gi.vj:0;this.B[20]=a;this.B[16]=$i(this,0)<<4|$i(this,1);aj(this)}};
Array(8);this.ea=0;a&&(this.B=Array(64));Zi(this,this.Xa);for(a=21;24>=a;a++)this.B[a]=0;for(a=14;46>a;a++)void 0===this.B[a]&&(this.B[a]=0);a=0|+Yi(this,Ei,void 0)<<Hi.Zf&Hi.lc;a|=+Yi(this,3,void 0)?2:0;b=+Yi(this,Di,void 0);a|=b?b-1<<Gi.Zf&Gi.lc|Gi.vj:0;this.B[20]=a;this.B[16]=$i(this,0)<<4|$i(this,1);aj(this)}};
function Zi(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.rc("CMOS date invalid ("+b+"), using "+c)):b&&a.rc("CMOS date: "+c);a.B[0]=c.getSeconds();a.B[1]=0;a.B[2]=c.getMinutes();a.B[3]=0;a.B[4]=c.getHours();a.B[5]=0;a.B[6]=c.getDay()+1;a.B[7]=c.getDate();a.B[8]=c.getMonth()+1;c=c.getFullYear();a.B[9]=c%100;c/=100;a.B[50]=c%10|c/10<<4;a.B[10]=38;a.B[11]=2;a.B[12]=0;a.B[13]=128;a.ra=a.ia=0;a.Ta=a.Fa=null}
function bj(a){var b;void 0===b&&(b=a.Fa);a.ia=tc(a.A,a.Z)+b;a.B[11]&64&&qc(a.A,b)}function aj(a){for(var b=0,c=16;46>c;c++)b+=a.B[c];a.B[47]=b&255;a.B[46]=b>>8}
l.save=function(){var a=new be(this);C(a,0,[this.D]);for(var b=[],c=0;c<this.G;c++){for(var d=this.G[c],e=d,f=[],g=0;g<e.$b.length;g++){var h=e.$b[g];f[g]=[h.Qd,h.sf,h.jc,h.gb,h.hb,h.mode,h.tf,h.$l,h.am]}b[c]=[d.Db,d.bg,d.Gh,d.Ib,f,d.dg]}C(a,1,[b]);b=[];for(c=0;c<this.gc.length;c++)d=this.gc[c],b[c]=[d.Te,d.Sc,d.md,d.Vc,d.ac,d.Cc,d.Ld,d.Je];C(a,2,[b]);b=[];for(c=0;c<this.K.length;c++)d=this.K[c],b[c]=[d.jc,d.Ec,d.hb,d.Md,d.eg,d.mode,d.hf,d.Xc,d.kd,d.Tc,d.le,d.Od,d.ld,d.Db,d.qe];C(a,3,[this.xa,b,this.za]);
C(a,4,[this.Da,this.P,this.Ja,this.oa,this.ma]);this.ca>=Qe&&(C(a,5,[this.H,this.R,this.S,this.ua,this.W,this.va]),C(a,6,[this.I[7],this.I,this.da,this.B,this.ra,this.ia]));return a.data()};
C(a,4,[this.Da,this.P,this.Ja,this.oa,this.ma]);this.ca>=Qe&&(C(a,5,[this.H,this.R,this.S,this.ua,this.W,this.va]),C(a,6,[this.I[7],this.I,this.ea,this.B,this.ra,this.ia]));return a.data()};
l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.D=b[0]:(this.D[0][0]=b[0],this.D[1][0]=b[1]&15,this.D[0][1]=b[2],this.D[1][1]=b[3]&15);Ti(this);b=a[1];for(c=0;c<this.Ea;c++)Ui(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.pa;c++)Vi(this,c,0===c?32:160,b[0][c]);b=a[3];this.xa=b[0];this.za=b[2];for(c=0;c<this.K.length;c++)Wi(this,c,b[1][c]);b=a[4];this.Da=b[0];this.P=b[1];this.Ja=b[2];this.oa=b[3];this.ma=b[4];if(b=a[5])this.H=b[0],this.R=b[1],this.S=b[2],this.ua=b[3],this.W=b[4],
this.va=b[5];if(b=a[6])this.I=b[1],this.I[7]=b[0],this.da=b[2],this.B=b[3],this.ra=b[4],this.ia=b[5],Zi(this);return!0};l.start=function(){cj(this)};l.stop=function(){cj(this)};var dj=[0,null,null,0,Array(4),0];function Ui(a,b,c){var d=a.G[b];d||(d={$b:Array(4)});c=c&&5<=c.length?c:dj;d.Db=c[0];d.bg=c[1];d.Gh=c[2];d.Ib=c[3];d.Vk=b<<2;for(var e=0;e<d.$b.length;e++)ej(d,e,c[4][e]);d.dg=c[5]||0;a.G[b]=d}var fj=[!0,[0,0],[0,0],[0,0],[0,0]];
this.va=b[5];if(b=a[6])this.I=b[1],this.I[7]=b[0],this.ea=b[2],this.B=b[3],this.ra=b[4],this.ia=b[5],Zi(this);return!0};l.start=function(){cj(this)};l.stop=function(){cj(this)};var dj=[0,null,null,0,Array(4),0];function Ui(a,b,c){var d=a.G[b];d||(d={$b:Array(4)});c=c&&5<=c.length?c:dj;d.Db=c[0];d.bg=c[1];d.Gh=c[2];d.Ib=c[3];d.Vk=b<<2;for(var e=0;e<d.$b.length;e++)ej(d,e,c[4][e]);d.dg=c[5]||0;a.G[b]=d}var fj=[!0,[0,0],[0,0],[0,0],[0,0]];
function ej(a,b,c){var d=a.$b[b];d||(d={sf:[0,0],jc:[0,0],gb:[0,0],hb:[0,0]});c=c&&8==c.length?c:fj;d.Qd=c[0];d.sf[0]=c[1][0];d.sf[1]=c[1][1];d.jc[0]=c[2][0];d.jc[1]=c[2][1];d.gb[0]=c[3][0];d.gb[1]=c[3][1];d.hb[0]=c[4][0];d.hb[1]=c[4][1];d.mode=c[5];d.tf=c[6];d.controller=a;d.Vh=b;gj(d,c[8],c[9]);a.$b[b]=d}function gj(a,b,c,d){"string"==typeof b&&(b=Ua(b));b&&(a.done=null,a.$l=b.id,a.am=c,a.yf=b,a.kg=b[c],a.Mf=d)}var hj=[0,Array(4)];
function Vi(a,b,c,d){var e=a.gc[b];e||(e={Sc:[null,null,null,null]});d=d&&8==d.length?d:hj;e.port=c;e.bn=b<<3;e.Te=d[0];e.Sc[0]=d[1][0];e.Sc[1]=d[1][1];e.Sc[2]=d[1][2];e.Sc[3]=d[1][3];e.md=d[2];e.Vc=d[3];e.ac=d[4];e.Cc=d[5];e.Ld=d[6];e.Je=d[7];a.gc[b]=e}var ij=[[0,0],[0,0],[0,0],[0,0]];
function Wi(a,b,c){var d=a.K[b];d||(d={jc:[0,0],Ec:[0,0],hb:[0,0],Md:[0,0]});c=c&&13<=c.length?c:ij;d.jc[0]=c[0][0];d.jc[1]=c[0][1];d.Ec[0]=c[1][0];d.Ec[1]=c[1][1];d.hb[0]=c[2][0];d.hb[1]=c[2][1];d.Md[0]=c[3][0];d.Md[1]=c[3][1];d.eg=c[4];d.mode=c[5];d.hf=c[6];d.Xc=c[7];d.kd=c[8];d.Tc=c[9];d.le=c[10];d.Od=c[11];d.ld=c[12];d.Db=c[13]||0;d.qe=c[14]||!1;a.K[b]=d}
@ -370,8 +370,8 @@ function Ai(a,b){var c=b;if(a)for(var c=0,d=1,e=0;e<a.length;e++)"0"==a.charAt(e
function jj(a,b,c,d){if(c=a.ka[c]){d=d?a.D[b][0]:a.D[b][1]=a.D[b][0];c=Za(c,"pcjs-bitCell");for(var e=0;e<c.length;e++){var f=kj(a,b,e);c[e].setAttribute("title",f&&f.gd||"Reserved");lj(c[e],d&1<<e?!1:!0);c[e].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");lj(b,c);var d=b.getAttribute("id").split("-"),e=1<<+d[1]-1;switch(d[0]){case Bi:a.D[0][0]=a.D[0][0]&~e|(c?0:e);break;case Fi:a.D[1][0]=a.D[1][0]&~e|(c?0:e)}mj(a)}}(a,c[e])}}}
function mj(a){var b=a.ka.swdesc;if(null!=b){var c;c=""+(Xi(a,!0)+"Kb");c+=", "+(+ +Yi(a,3,!0)?"":"No ")+"Coprocessor";c+=", "+{0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"}[+Yi(a,Ei,!0)]+" Monitor";c+=", "+ +Yi(a,Di,!0)+" Floppy Drives";if(null!=a.D[0][1]&&a.D[0][1]!=a.D[0][0]||null!=a.D[1][1]&&a.D[1][1]!=a.D[1][0])c+=" (Reset required)";b.textContent=c}}
function nj(a,b,c){a=a.G[b];var d=a.$b[c],e=d.gb[a.Ib];a.Ib^=1;b||0!=c||a.Ib||(d.gb[0]++,255<d.gb[0]&&(d.gb[0]=0,d.gb[1]++,255<d.gb[1]&&(d.gb[1]=0)));return e}function oj(a,b,c,d){a=a.G[b];c=a.$b[c];c.gb[a.Ib]=c.sf[a.Ib]=d;a.Ib^=1}function pj(a,b,c){a=a.G[b];var d=a.$b[c],e=d.hb[a.Ib];a.Ib^=1;b||0!=c||a.Ib||(d.hb[0]--,0>d.hb[0]&&(d.hb[0]=255,d.hb[1]--,0>d.hb[1]&&(d.hb[1]=255)));return e}function qj(a,b,c,d){a=a.G[b];c=a.$b[c];c.hb[a.Ib]=c.jc[a.Ib]=d;a.Ib^=1}
function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function sj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<<b)|(c&4)<<b+2;a.Gh=c}function xj(a,b,c){b=a.G[b];var d=c&3,e=b.$b[d];e.Qd=!!(c&4);e.Qd||yj(a,b.Vk+d)}function zj(a,b){for(var c=a.G[b],d=0;d<c.$b.length;d++)ej(c,d)}function Aj(a,b,c){return a.G[b].$b[c].tf}function Bj(a,b,c,d){a.G[b].$b[c].tf=d}function Cj(a,b,c,d,e){gj(a.G[b>>2].$b[b&3],c,d,e)}
function yj(a,b,c){b=a.G[b>>2].$b[b&3];b.yf&&b.kg&&b.Mf?(c&&(b.done=c),b.Qd||Dj(a,b,!0)):c&&c(!0)}function Dj(a,b,c){c&&(b.count=b.hb[1]<<8|b.hb[0],b.type=b.mode&12,b.Sh=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.tf<<16|b.gb[1]<<8|b.gb[0],4==b.type?(d=!0,function(c){b.kg.call(b.yf,b.Mf,-1,function(f,g){0>f&&(b.Sh||(b.Sh=!0),f=255);b.Qd||a.ha.Mc(c,f);(d=g)&&setTimeout(function(){Ej(b)||Dj(a,b)},0)})}(c)):8==b.type?(c=a.ha.Jb(c),0>b.kg.call(b.yf,b.Mf,c)&&(b.Yc=!0)):0!=b.type&&(b.Yc=!0)),!d&&!Ej(b););}
function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function sj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<<b)|(c&4)<<b+2;a.Gh=c}function tj(a,b,c){b=a.G[b];var d=c&3,e=b.$b[d];e.Qd=!!(c&4);e.Qd||uj(a,b.Vk+d)}function zj(a,b){for(var c=a.G[b],d=0;d<c.$b.length;d++)ej(c,d)}function Aj(a,b,c){return a.G[b].$b[c].tf}function Bj(a,b,c,d){a.G[b].$b[c].tf=d}function Cj(a,b,c,d,e){gj(a.G[b>>2].$b[b&3],c,d,e)}
function uj(a,b,c){b=a.G[b>>2].$b[b&3];b.yf&&b.kg&&b.Mf?(c&&(b.done=c),b.Qd||Dj(a,b,!0)):c&&c(!0)}function Dj(a,b,c){c&&(b.count=b.hb[1]<<8|b.hb[0],b.type=b.mode&12,b.Sh=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.tf<<16|b.gb[1]<<8|b.gb[0],4==b.type?(d=!0,function(c){b.kg.call(b.yf,b.Mf,-1,function(f,g){0>f&&(b.Sh||(b.Sh=!0),f=255);b.Qd||a.ha.Mc(c,f);(d=g)&&setTimeout(function(){Ej(b)||Dj(a,b)},0)})}(c)):8==b.type?(c=a.ha.Jb(c),0>b.kg.call(b.yf,b.Mf,c)&&(b.Yc=!0)):0!=b.type&&(b.Yc=!0)),!d&&!Ej(b););}
function Ej(a){if(!a.Yc&&0<=--a.count&&(a.mode&32?(a.gb[0]--,0>a.gb[0]&&(a.gb[0]=255,a.gb[1]--,0>a.gb[1]&&(a.gb[1]=255))):(a.gb[0]++,255<a.gb[0]&&(a.gb[0]=0,a.gb[1]++,255<a.gb[1]&&(a.gb[1]=0))),!a.Qd))return!1;var b=a.controller;b.Db=b.Db&~(16<<a.Vh)|1<<a.Vh;a.mode&16||(a.Qd=!0,a.yf=a.Mf=null);a.done&&(a.done(!a.Yc),a.done=null);return!0}function Fj(a,b){var c=0,d=a.gc[b];if(null!=d.Je)switch(d.Je&3){case 2:c=d.ac;break;case 3:c=d.Cc}return c}
function Gj(a,b,c){b=a.gc[b];if(c&16)b.md=0,b.Sc[b.md++]=c,b.Vc=0,b.Ld=7,b.ac=b.Cc=0,b.Je=10;else if(c&8)b.Je=c;else{var d=c&224;if(d&32){var e=0;if(96==(d&96))e=1<<(c&7);else for(c=b.Ld+1;;){c&=7;d=1<<c;if(b.Cc&d){e=d;break}if(c++==b.Ld)break}b.Cc&e&&(b.Cc&=~e,Hj(a))}else 192==d&&(b.Ld=c&7)}}function Ij(a,b,c){var d=a.gc[b];d.md<d.Sc.length?(d.Sc[d.md++]=c,2==d.md&&d.Sc[0]&2&&d.md++,3!=d.md||d.Sc[0]&1||d.md++):(d.Vc=c,d=a.A,d.L|=4,Hj(a,b||253!=c?0:6))}
function Se(a,b,c){var d=a.gc[b>>3];b=1<<(b&7);d.ac&b||(d.ac|=b,d.Te=c||0,Hj(a))}function Re(a,b){var c=a.gc[b>>3],d=1<<(b&7);c.ac&d&&(c.ac&=~d,Hj(a))}function Hj(a,b){var c,d=-1;1<a.pa&&(c=a.gc[1],d=~(c.Cc|c.Vc)&c.ac);c=a.gc[0];0<=d&&(c.ac=d?c.ac|4:c.ac&-5);var d=~(c.Cc|c.Vc)&c.ac,e=a.A;e.P&&(e.Ea=d?e.Ea|1:e.Ea&-2);d&&b&&(c.Te=b)}
@ -386,30 +386,30 @@ function Rj(a,b){var c=!!(b&2),d=!!(a.P&2);a.P=b;a.C&&Sj(a.C,!(b&128),!!(b&64));
l.Zk=function(a,b){Rj(this,b)};l.Nj=function(){return this.la};l.Oj=function(){var a=this.ua;this.H&=-258;this.C&&Tj(this.C);return a};l.bl=function(a,b){if(this.H&8)switch(this.R){case 96:Uj(this,b);break;case 209:Vj(this,b);break;default:if(Uj(this,this.S&-17),this.C){var c=this.C,d=b,e=-1;switch(c.G||d){case 255:e=250;c.Ob=[];Wj(c,170);break;case 243:c.G&&(d=0);Wj(c,250);c.G=d;break;case 237:c.G&&(d=0),Wj(c,250),c.G=d}Xj(this,e)}}this.R=b;this.H&=-9};
l.Pj=function(){return this.P&-209|(tc(this.A)&64?16:0)};l.cl=function(a,b){Rj(this,b)};l.Qj=function(){var a=this.H&255;this.H&256&&(this.H|=1,this.H&=-257);return a};
l.al=function(a,b){this.R=b;this.H|=8;var c=0;240<=this.R&&(c=this.R^15,this.R=240);switch(this.R){case 32:Xj(this,this.S);break;case 173:Uj(this,this.S|16);break;case 174:Uj(this,this.S&-17);this.C&&Tj(this.C);break;case 170:this.C&&(this.C.Ob=[]);Uj(this,this.S|16);Xj(this,85);Vj(this,3);break;case 171:Xj(this,0);break;case 192:Xj(this,this.W);break;case 208:Xj(this,this.va);break;case 224:Xj(this,this.S&16?0:1);break;case 240:c&1&&yd(this.A)}};
function Uj(a,b){a.S=b;a.H=a.H&-5|b&4;a.C&&Sj(a.C,!!(b&8),!(b&16))}function Xj(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Vj(a,b){a.va=b;xb(a.ha,!!(b&2));b&1||yd(a.A)}function Yj(a,b){a.ca<Qe?(Se(a,1,4),a.la|=1):a.S&16||a.H&257||(Xj(a,b,!0),Zj(a.C),Se(a,1,120))}l.dk=function(){return this.da};l.ql=function(a,b){this.da=b;this.ma=b&128?0:128};
l.ek=function(a,b){var c=this.da&63,d;if(13>=c)if(d=this.B[c],10>c){var e=!1;4!=c&&5!=c||this.B[11]&2||(12>d?d=d?d:12:d=(d-=12)?d+128:140,e=!0);this.B[11]&4||(e&&128<d&&(d-=48),d=d%10|d/10<<4)}else 10==c&&(this.B[c]^=128);else d=this.B[c];null!=b&&12==c&&(this.B[c]&=15,d&128&&Re(this,8),d&64&&this.B[11]&64&&bj(this));return d};
l.rl=function(a,b){var c=this.da&63,d=b^this.B[c],e;if(13>=c){if(e=b,10>c){var f=!1;this.B[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&23<e&&(e+=48),this.B[11]&2||(12>=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;this.B[c]=e;11==c&&d&64&&b&64&&bj(this)};l.ej=function(a,b){this.ma=b};l.Bl=function(){};l.Cl=function(){this.qd&&Me(this.qd)};
function cj(a,b){if(a.qa)try{void 0!==b?a.Oa=b:b=a.Oa&&a.A&&a.A.ea.Sb;var c=Math.round(1193181/Nj(a,2));if(20>c||2E4<c)b=!1;b?a.L?a.L.frequency.value=c:(a.L=a.qa.createOscillator(),a.L&&(a.L.type="number"==typeof a.L.type?1:"square",a.L.connect(a.qa.destination),a.L.frequency.value=c,"start"in a.L?a.L.start(0):a.L.noteOn(0))):a.L&&("stop"in a.L?a.L.stop(0):a.L.noteOff(0),a.L.disconnect(),delete a.L)}catch(d){a.Ba("AudioContext exception: "+d.message),a.qa=null}}
function Uj(a,b){a.S=b;a.H=a.H&-5|b&4;a.C&&Sj(a.C,!!(b&8),!(b&16))}function Xj(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Vj(a,b){a.va=b;xb(a.ha,!!(b&2));b&1||yd(a.A)}function Yj(a,b){a.ca<Qe?(Se(a,1,4),a.la|=1):a.S&16||a.H&257||(Xj(a,b,!0),Zj(a.C),Se(a,1,120))}l.dk=function(){return this.ea};l.ql=function(a,b){this.ea=b;this.ma=b&128?0:128};
l.ek=function(a,b){var c=this.ea&63,d;if(13>=c)if(d=this.B[c],10>c){var e=!1;4!=c&&5!=c||this.B[11]&2||(12>d?d=d?d:12:d=(d-=12)?d+128:140,e=!0);this.B[11]&4||(e&&128<d&&(d-=48),d=d%10|d/10<<4)}else 10==c&&(this.B[c]^=128);else d=this.B[c];null!=b&&12==c&&(this.B[c]&=15,d&128&&Re(this,8),d&64&&this.B[11]&64&&bj(this));return d};
l.rl=function(a,b){var c=this.ea&63,d=b^this.B[c],e;if(13>=c){if(e=b,10>c){var f=!1;this.B[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&23<e&&(e+=48),this.B[11]&2||(12>=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;this.B[c]=e;11==c&&d&64&&b&64&&bj(this)};l.ej=function(a,b){this.ma=b};l.Bl=function(){};l.Cl=function(){this.qd&&Me(this.qd)};
function cj(a,b){if(a.qa)try{void 0!==b?a.Oa=b:b=a.Oa&&a.A&&a.A.da.Sb;var c=Math.round(1193181/Nj(a,2));if(20>c||2E4<c)b=!1;b?a.L?a.L.frequency.value=c:(a.L=a.qa.createOscillator(),a.L&&(a.L.type="number"==typeof a.L.type?1:"square",a.L.connect(a.qa.destination),a.L.frequency.value=c,"start"in a.L?a.L.start(0):a.L.noteOn(0))):a.L&&("stop"in a.L?a.L.stop(0):a.L.noteOff(0),a.L.disconnect(),delete a.L)}catch(d){a.Ba("AudioContext exception: "+d.message),a.qa=null}}
var Ji={0:function(){return nj(this,0,0)},1:function(){return pj(this,0,0)},2:function(){return nj(this,0,1)},3:function(){return pj(this,0,1)},4:function(){return nj(this,0,2)},5:function(){return pj(this,0,2)},6:function(){return nj(this,0,3)},7:function(){return pj(this,0,3)},8:function(){return rj(this,0)},13:function(){return this.G[0].dg},32:function(){return Fj(this,0)},33:function(){return this.gc[0].Vc},64:function(){return Jj(this,0,0)},65:function(){return Jj(this,0,1)},66:function(){return Jj(this,
0,2)},67:function(){return this.xa},129:function(){return Aj(this,0,2)},130:function(){return Aj(this,0,3)},131:function(){return Aj(this,0,1)},135:function(){return Aj(this,0,0)}},Li={96:S.prototype.Bk,97:S.prototype.Ck,98:S.prototype.Dk,99:S.prototype.Ek},Pi={96:S.prototype.Oj,97:S.prototype.Pj,100:S.prototype.Qj,112:S.prototype.dk,113:S.prototype.ek,128:function(){return this.I[7]},132:function(){return this.I[0]},133:function(){return this.I[1]},134:function(){return this.I[2]},136:function(){return this.I[3]},
137:function(){return Aj(this,1,2)},138:function(){return Aj(this,1,3)},139:function(){return Aj(this,1,1)},140:function(){return this.I[4]},141:function(){return this.I[5]},142:function(){return this.I[6]},143:function(){return Aj(this,1,0)},160:function(){return Fj(this,1)},161:function(){return this.gc[1].Vc},192:function(){return nj(this,1,0)},194:function(){return pj(this,1,0)},196:function(){return nj(this,1,1)},198:function(){return pj(this,1,1)},200:function(){return nj(this,1,2)},202:function(){return pj(this,
1,2)},204:function(){return nj(this,1,3)},206:function(){return pj(this,1,3)},208:function(){return rj(this,1)},218:function(){return this.G[1].dg}},Ni={96:S.prototype.Mj,97:S.prototype.Lj,100:S.prototype.Nj,102:function(){return this.D[0][1]},103:function(){return this.D[1][1]}},Ri={72:function(){return Jj(this,1,0)},73:function(){return Jj(this,1,1)},74:function(){return Jj(this,1,2)},75:function(){return this.za}},Ki={0:function(a,b){oj(this,0,0,b)},1:function(a,b){qj(this,0,0,b)},2:function(a,
b){oj(this,0,1,b)},3:function(a,b){qj(this,0,1,b)},4:function(a,b){oj(this,0,2,b)},5:function(a,b){qj(this,0,2,b)},6:function(a,b){oj(this,0,3,b)},7:function(a,b){qj(this,0,3,b)},8:function(a,b){this.G[0].bg=b},9:function(a,b){sj(this,0,b)},10:function(a,b){xj(this,0,b)},11:function(a,b){this.G[0].$b[b&3].mode=b},12:function(){this.G[0].Ib=0},13:function(){zj(this,0)},32:function(a,b){Gj(this,0,b)},33:function(a,b){Ij(this,0,b)},64:function(a,b){Mj(this,0,0,b)},65:function(a,b){Mj(this,0,1,b)},66:function(a,
b){oj(this,0,1,b)},3:function(a,b){qj(this,0,1,b)},4:function(a,b){oj(this,0,2,b)},5:function(a,b){qj(this,0,2,b)},6:function(a,b){oj(this,0,3,b)},7:function(a,b){qj(this,0,3,b)},8:function(a,b){this.G[0].bg=b},9:function(a,b){sj(this,0,b)},10:function(a,b){tj(this,0,b)},11:function(a,b){this.G[0].$b[b&3].mode=b},12:function(){this.G[0].Ib=0},13:function(){zj(this,0)},32:function(a,b){Gj(this,0,b)},33:function(a,b){Ij(this,0,b)},64:function(a,b){Mj(this,0,0,b)},65:function(a,b){Mj(this,0,1,b)},66:function(a,
b){Mj(this,0,2,b)},67:function(a,b){Oj(this,0,b)},129:function(a,b){Bj(this,0,2,b)},130:function(a,b){Bj(this,0,3,b)},131:function(a,b){Bj(this,0,1,b)},135:function(a,b){Bj(this,0,0,b)}},Mi={96:S.prototype.Ol,97:S.prototype.Pl,98:S.prototype.Ql,99:S.prototype.Rl,160:S.prototype.ej},Qi={96:S.prototype.bl,97:S.prototype.cl,100:S.prototype.al,112:S.prototype.ql,113:S.prototype.rl,128:function(a,b){this.I[7]=b},132:function(a,b){this.I[0]=b},133:function(a,b){this.I[1]=b},134:function(a,b){this.I[2]=
b},136:function(a,b){this.I[3]=b},137:function(a,b){Bj(this,1,2,b)},138:function(a,b){Bj(this,1,3,b)},139:function(a,b){Bj(this,1,1,b)},140:function(a,b){this.I[4]=b},141:function(a,b){this.I[5]=b},142:function(a,b){this.I[6]=b},143:function(a,b){Bj(this,1,0,b)},160:function(a,b){Gj(this,1,b)},161:function(a,b){Ij(this,1,b)},192:function(a,b){oj(this,1,0,b)},194:function(a,b){qj(this,1,0,b)},196:function(a,b){oj(this,1,1,b)},198:function(a,b){qj(this,1,1,b)},200:function(a,b){oj(this,1,2,b)},202:function(a,
b){qj(this,1,2,b)},204:function(a,b){oj(this,1,3,b)},206:function(a,b){qj(this,1,3,b)},208:function(a,b){this.G[1].bg=b},210:function(a,b){sj(this,1,b)},212:function(a,b){xj(this,1,b)},214:function(a,b){this.G[1].$b[b&3].mode=b},216:function(){this.G[1].Ib=0},218:function(){zj(this,1)},240:S.prototype.Bl,241:S.prototype.Cl},Oi={96:S.prototype.$k,97:S.prototype.Zk,160:S.prototype.ej},Si={72:function(a,b){Mj(this,1,0,b)},73:function(a,b){Mj(this,1,1,b)},74:function(a,b){Mj(this,1,2,b)},75:function(a,
b){qj(this,1,2,b)},204:function(a,b){oj(this,1,3,b)},206:function(a,b){qj(this,1,3,b)},208:function(a,b){this.G[1].bg=b},210:function(a,b){sj(this,1,b)},212:function(a,b){tj(this,1,b)},214:function(a,b){this.G[1].$b[b&3].mode=b},216:function(){this.G[1].Ib=0},218:function(){zj(this,1)},240:S.prototype.Bl,241:S.prototype.Cl},Oi={96:S.prototype.$k,97:S.prototype.Zk,160:S.prototype.ej},Si={72:function(a,b){Mj(this,1,0,b)},73:function(a,b){Mj(this,1,1,b)},74:function(a,b){Mj(this,1,2,b)},75:function(a,
b){Oj(this,1,b)}};Ea(function(){for(var a=Za(document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new S(d);Ya(d,c);mj(d)}});
function ak(a){Ia.call(this,"ROM",a,ak);this.B=null;this.I=a.addr;this.D=a.size;this.G=a.alias;this.H=a.file;this.P=fa(this.H);this.C=a.notify;this.L=null;if(this.C&&(a=this.C.indexOf("["),0<a)){try{this.L=eval(this.C.substr(a))}catch(d){}this.C=this.C.substr(0,a)}if(this.H){a=this.H;var b=ga(this.P);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.H+"&format=bytes&decimal=true");var c=this;pa(a,null,!0,function(a,b,f){bk(c,a,b,f)})}}Qa(ak);
ak.prototype.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;ck(this)};ak.prototype.Vb=function(){this.K&&(this.Ia&&this.Ia.A(this.id,0,this.I>>>4,0,this.I,this.D,this.K),delete this.K);return!0};ak.prototype.Ub=function(){return!0};
function bk(a,b,c,d){if(d)a.Ba("Unable to load system ROM (error "+d+": "+b+")");else{Sa(a.lf,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.B=f;else if(g)for(a.B=Array(4*g.length),d=c=0;c<g.length;c++)a.B[d++]=g[c]&255,a.B[d++]=g[c]>>8&255,a.B[d++]=g[c]>>16&255,a.B[d++]=g[c]>>24&255;else a.B=e;a.K=e.symbols;if(!a.B.length){n("Empty ROM: "+b);return}if(1==a.B.length){n(a.B[0]);return}}catch(h){a.Ba("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
function bk(a,b,c,d){if(d)a.Ba("Unable to load system ROM (error "+d+": "+b+")");else{Sa(a.lf,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.B=f;else if(g)for(a.B=Array(4*g.length),d=c=0;c<g.length;c++)a.B[d++]=g[c]&255,a.B[d++]=g[c]>>8&255,a.B[d++]=g[c]>>16&255,a.B[d++]=g[c]>>24&255;else a.B=e;a.K=e.symbols;if(!a.B.length){p("Empty ROM: "+b);return}if(1==a.B.length){p(a.B[0]);return}}catch(h){a.Ba("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e<b.length;e++)a.B[e]=ca(b[e],16);ck(a)}}
function ck(a){if(!bb(a))if(!a.H)ab(a);else if(a.B&&a.ha){a.D||(a.D=a.B.length);if(a.B.length!=a.D)cb(a,"ROM size (0x"+ea(a.B.length)+") does not match specified size ("+("0x"+ea(a.D))+")");else{var b;b=a.I;if(yb(a.ha,b,a.D,Gb)){for(var c=0;c<a.B.length;c++){var d=a.ha,e=b+c;d.S[(e&d.Fa)>>>d.da].kf(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Db(d.ha,d.I,d.D);Cb(d.ha,e,d.D,f)}a.C&&((b=Ua(a.C,
function ck(a){if(!bb(a))if(!a.H)ab(a);else if(a.B&&a.ha){a.D||(a.D=a.B.length);if(a.B.length!=a.D)cb(a,"ROM size (0x"+ea(a.B.length)+") does not match specified size ("+("0x"+ea(a.D))+")");else{var b;b=a.I;if(yb(a.ha,b,a.D,Hb)){for(var c=0;c<a.B.length;c++){var d=a.ha,e=b+c;d.S[(e&d.Fa)>>>d.ea].kf(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Eb(d.ha,d.I,d.D);Db(d.ha,e,d.D,f)}a.C&&((b=Ua(a.C,
a.id))?(c=a.B,d=a.L,5==b.Ra?dk(b,c,d||[12640,8752],8):b.Ra==ek&&dk(b,c,d||[14221,16269],8),ab(b)):a.Ba("Unable to find component: "+a.C));delete a.B}}ab(a)}}Ea(function(){for(var a=Za(document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new ak(d);Ya(d,c)}});function fk(a){Ia.call(this,"RAM",a,fk);this.C=a.addr;this.B=a.size;this.H=a.test;this.G=!!this.B;this.D=!1}Qa(fk);l=fk.prototype;l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");ab(this)};
l.Vb=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};l.Ub=function(a){return a&&this.controller?this.save():!0};
l.reset=function(){if(!this.C&&!this.G&&this.P){var a=1024*Xi(this.P);this.B&&a!=this.B&&(Fb(this.ha,this.C,this.B),this.D=!1);this.B=a}!this.D&&this.B&&yb(this.ha,this.C,this.B,1)&&(this.D=!0,this.status(Math.floor(this.B/1024)+"Kb allocated"),"ramCPQ"==this.jf&&(this.controller=new gk(this),yb(this.ha,hk,4,4,this.controller)));if(this.D){if(this.H||Mb(this.ha,1138,4660),"ramCPQ"!=this.jf&&this.P&&(a=this.P,a.B)){var b=1048576>this.C?21:23,c=a.B[b]|a.B[b+1]<<8,c=c+(this.B>>10);a.B[b]=c&255;a.B[b+
1]=c>>8;aj(a)}}else n("No RAM allocated")};l.save=function(){var a=new be(this);this.controller&&C(a,0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function gk(a){this.G=a;this.C=ik;this.D=jk;this.B=kk;this.A=null}var hk=-2134900736,ik=65535,jk=2575,kk=2,lk=[null,0],mk=[function(a){return this.controller.Jb(a)},null,null,function(a,b){this.controller.Mc(a,b)},null,null];l=gk.prototype;l.save=function(){return[this.C,this.B]};
l.restore=function(a){this.Mc(0,a[0]&255);this.Mc(2,a[1]&255);return!0};l.Jb=function(a){var b=255;2>a?b=a&1?this.D>>8:this.D&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};l.Mc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.G.ha;if(b&1)this.A&&(Cb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Db(c,917504,131072));var d=Db(c,16646144,131072);Cb(c,917504,131072,d,b&2?1:Gb)}this.C=this.C&-256|b}};l.Uh=function(){return lk};l.lg=function(){return mk};
Ea(function(){for(var a=Za(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new fk(d);Ya(d,c)}});function nk(a){Ia.call(this,"Keyboard",a,nk);ok(this,a.model);this.Y=ya("Mobi");this.W=ya("MSIE");this.S=0;this.R=this.ig=!1;this.B=[];this.da=50;ab(this)}Qa(nk);
l.reset=function(){if(!this.C&&!this.G&&this.P){var a=1024*Xi(this.P);this.B&&a!=this.B&&(Gb(this.ha,this.C,this.B),this.D=!1);this.B=a}!this.D&&this.B&&yb(this.ha,this.C,this.B,1)&&(this.D=!0,"ramCPQ"==this.jf&&(this.controller=new gk(this),yb(this.ha,hk,4,4,this.controller)));if(this.D){if(this.H||Nb(this.ha,1138,4660),"ramCPQ"!=this.jf&&this.P&&(a=this.P,a.B)){var b=1048576>this.C?21:23,c=a.B[b]|a.B[b+1]<<8,c=c+(this.B>>10);a.B[b]=c&255;a.B[b+1]=c>>8;aj(a)}}else p("No RAM allocated")};
l.save=function(){var a=new be(this);this.controller&&C(a,0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function gk(a){this.G=a;this.C=ik;this.D=jk;this.B=kk;this.A=null}var hk=-2134900736,ik=65535,jk=2575,kk=2,lk=[null,0],mk=[function(a){return this.controller.Jb(a)},null,null,function(a,b){this.controller.Mc(a,b)},null,null];l=gk.prototype;l.save=function(){return[this.C,this.B]};
l.restore=function(a){this.Mc(0,a[0]&255);this.Mc(2,a[1]&255);return!0};l.Jb=function(a){var b=255;2>a?b=a&1?this.D>>8:this.D&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};l.Mc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.G.ha;if(b&1)this.A&&(Db(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Eb(c,917504,131072));var d=Eb(c,16646144,131072);Db(c,917504,131072,d,b&2?1:Hb)}this.C=this.C&-256|b}};l.Uh=function(){return lk};l.lg=function(){return mk};
Ea(function(){for(var a=Za(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new fk(d);Ya(d,c)}});function nk(a){Ia.call(this,"Keyboard",a,nk);ok(this,a.model);this.Y=ya("Mobi");this.W=ya("MSIE");this.S=0;this.R=this.ig=!1;this.B=[];this.ea=50;ab(this)}Qa(nk);
var pk=["US83","US84","US101"],U={fm:1,gm:3,hm: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,bm:65,cm:66,dm:67,im:68,E:69,jm:70,mm:71,nm:72,om:73,pm:74,qm:75,rm:76,sm:77,um:78,vm:79,wm:80,Q:81,xm:82,Bm:83,Gm:84,Km:85,Lm:86,Mm:87,Om:88,Pm:89,Qm:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Rm:97,Sm:98,Um:99,d:100,e:101,Vm:102,Wm:103,Xm:104,
Ym:105,Zm:106,k:107,$m:108,an:109,n:110,cn:111,p:112,q:113,r:114,dn:115,t:116,en:117,fn:118,gn:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},qk={};qk[186]=U[";"];qk[187]=U["="];qk[188]=U[","];qk[189]=U["-"];qk[190]=U["."];qk[191]=U["/"];qk[192]=U["`"];qk[219]=U["["];qk[220]=U["\\"];qk[221]=U["]"];qk[222]=U["'"];qk[173]=U["-"];var V={};V[U["1"]]=U["!"];V[U["2"]]=U["@"];V[U["3"]]=U["#"];V[U["4"]]=U.$;V[U["5"]]=U["%"];V[U["6"]]=U["^"];V[U["7"]]=U["&"];V[U["8"]]=U["*"];V[U["9"]]=U["("];
V[U["0"]]=U[")"];V[186]=U[":"];V[187]=U["+"];V[188]=U["<"];V[189]=U._;V[190]=U[">"];V[191]=U["?"];V[192]=U["~"];V[219]=U["{"];V[220]=U["|"];V[221]=U["}"];V[222]=U['"'];V[173]=U._;V[61]=U["+"];V[59]=U[":"];
@ -426,13 +426,13 @@ function ok(a,b){var c=0;a.ca=null;b&&(a.ca=b.toUpperCase(),c=pk.indexOf(a.ca),0
function Zj(a,b){0<a.Ob.length&&(a.Ob.shift(),(a.H=b)&&a.Ob.length&&a.P&&Yj(a.P,a.Ob[0]))}l.Vb=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){if(!this.ca&&this.P)switch(this.P.ca){case 5150:case 5160:ok(this,pk[0]);break;default:ok(this,pk[1])}Bk(this);this.bc=this.C=0;this.Ob=[];this.H=!0;this.D=""};l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.K;c[b]=this.I;C(a,0,c);return a.data()};
l.restore=function(a){return Bk(this,a[0])};function Bk(a,b){var c=0;void 0===b&&(b=[]);a.K=a.H=b[c++];a.I=b[c];a.G=0;return!0}function zk(a,b){if(0<a.D.length){var c=a.D.charCodeAt(0);10==c&&(c=13);a.D=a.D.substr(1);wk(a,c,!0)}0<a.D.length&&setTimeout(function(a){return function(){zk(a,b)}}(a),b)}
function xk(a,b,c,d){if(X[b]){var e=Math.floor(b/1E3)&2;if(b=rk[b]||0){!e||b&85||(b>>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.bc)&b):d||b&255&&(b=255);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in uk)d="led-"+g,e=uk[g],c&&c!=e||!(f=a.ka[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.bc&=~b,d&&(a.bc|=b);return!0}}return!1}
function wk(a,b,c){if(X[b]&&a.A&&a.A.ea.Sb){rk[b]&&a.B.length&&0<a.B[0].cd&&(a.B[0].cd=0);for(var d,e=0;e<a.B.length;e++)if(d=a.B[e],d.Wd==b){if(!c||0<=d.cd){e=-1;break}0<e&&(0<a.B[0].cd&&(a.B[0].cd=0),a.B.splice(e,1));break}0>e||(e==a.B.length&&(d={},d.Wd=b,d.bc=a.bc,Ak(a,b,!0),e++),0<e&&a.B.splice(0,0,d),d.Me=!0,d.cd=c?-1:rk[b]?0:1,Ck(a,d))}}
function yk(a,b,c){if(!X[b]||!(c||a.A&&a.A.ea.Sb))return!1;for(var d=!1,e=0;e<a.B.length;e++){var f=a.B[e];if(f.Wd==b||f.Wd==V[b]){a.B.splice(e,1);f.oj&&clearTimeout(f.oj);f.Me&&!c&&Dk(a,f.Wd,!1);Ak(a,b,!1);d=!0;break}}!a.B.length&&a.R&&(xk(a,1020),a.R=!1);return d}function Ck(a,b){if(!a.A||!a.A.ea.Sb)yk(a,b.Wd,!0);else if(Dk(a,b.Wd,b.Me)&&b.cd){var c;if(0>b.cd){if(!b.Me){yk(a,b.Wd);return}b.Me=!1;c=a.da}else c=1==b.cd++?500:100;b.oj=setTimeout(function(a){return function(){Ck(a,b)}}(a),c)}}
function wk(a,b,c){if(X[b]&&a.A&&a.A.da.Sb){rk[b]&&a.B.length&&0<a.B[0].cd&&(a.B[0].cd=0);for(var d,e=0;e<a.B.length;e++)if(d=a.B[e],d.Wd==b){if(!c||0<=d.cd){e=-1;break}0<e&&(0<a.B[0].cd&&(a.B[0].cd=0),a.B.splice(e,1));break}0>e||(e==a.B.length&&(d={},d.Wd=b,d.bc=a.bc,Ak(a,b,!0),e++),0<e&&a.B.splice(0,0,d),d.Me=!0,d.cd=c?-1:rk[b]?0:1,Ck(a,d))}}
function yk(a,b,c){if(!X[b]||!(c||a.A&&a.A.da.Sb))return!1;for(var d=!1,e=0;e<a.B.length;e++){var f=a.B[e];if(f.Wd==b||f.Wd==V[b]){a.B.splice(e,1);f.oj&&clearTimeout(f.oj);f.Me&&!c&&Dk(a,f.Wd,!1);Ak(a,b,!1);d=!0;break}}!a.B.length&&a.R&&(xk(a,1020),a.R=!1);return d}function Ck(a,b){if(!a.A||!a.A.da.Sb)yk(a,b.Wd,!0);else if(Dk(a,b.Wd,b.Me)&&b.cd){var c;if(0>b.cd){if(!b.Me){yk(a,b.Wd);return}b.Me=!1;c=a.ea}else c=1==b.cd++?500:100;b.oj=setTimeout(function(a){return function(){Ck(a,b)}}(a),c)}}
function Ek(a,b,c){var d=b;if(65<=b&&90>=b)!(a.bc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.bc&515)==c&&(d=b-32);else if(!!(a.bc&3)==c){if(a=V[b])d=a}else if(a=qk[b])d=a;return d}l.Nf=function(a){a||(this.bc&=-256)};
function vk(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Ek(a,g,!0);a.ig&&h==U["`"]&&(g=h=27);if(X[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),xk(a,h,!1,c)){if(20==g||144==g||145==g)a.W||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.B.length;k++){var m=a.B[k];m.Me=!1;0<m.cd&&(m.cd=0)}}else 8==g&&8==(a.bc&40)&&(h=4008),d=!1;else if(X[h]&&a.bc&60&&(d=!1),d&&c||a.bc&192)f=!0;d||b.preventDefault();f||a.Y&&d||(c?wk(a,h,e):yk(a,h)||(b=Ek(a,g,!1),b!=h&&yk(a,b)));return d}
function Dk(a,b,c){var d=!1;xk(a,b,!0,c);var e=X[b]||X[b+1E3];if(void 0!==e){14==e&&40==(a.bc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.Z)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,h=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==h?a.C&3||a.C&512&&b||(g=h):29==h?a.C&12||(g=h):56==h?a.C&48||(g=h):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.Ob&&(20>e.Ob.length?(e.Ob.push(f),1==e.Ob.length&&e.P&&Yj(e.P,f)):20==e.Ob.length&&
e.Ob.push(255));d=!0}return d}Ea(function(){for(var a=Za(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new nk(d);Ya(d,c)}});
function Y(a,b,c,d,e){var f=this;this.$c=ya("Gecko/");var g=["","moz","webkit","ms"];Ia.call(this,"Video",a,Y);this.ca=a.model;var h=Fk[this.ca]||Fk.mda;this.Ra=h[0];this.Wc=a.memory||0;this.qd=a.switches;this.la=a.mode;if(null==this.la||null==Gk[this.la])this.la=h[1];this.Nb=a.charCols;this.wc=a.charRows;if(void 0===this.Nb||void 0===this.wc)this.Nb=Gk[this.la][0],this.wc=Gk[this.la][1];this.da=a.screenWidth;this.pa=a.screenHeight;this.dd=a.scale;this.Zd=12<=Math.round(this.da/this.Nb);this.Y=b;
function Y(a,b,c,d,e){var f=this;this.$c=ya("Gecko/");var g=["","moz","webkit","ms"];Ia.call(this,"Video",a,Y);this.ca=a.model;var h=Fk[this.ca]||Fk.mda;this.Ra=h[0];this.Wc=a.memory||0;this.qd=a.switches;this.la=a.mode;if(null==this.la||null==Gk[this.la])this.la=h[1];this.Nb=a.charCols;this.wc=a.charRows;if(void 0===this.Nb||void 0===this.wc)this.Nb=Gk[this.la][0],this.wc=Gk[this.la][1];this.ea=a.screenWidth;this.pa=a.screenHeight;this.dd=a.scale;this.Zd=12<=Math.round(this.ea/this.Nb);this.Y=b;
this.W=c;this.G=(this.ae=d)||b||null;b=a.smoothing;(c=La.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<g.length;c++)d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",this.W[d]=b;this.rd=a.touchScreen;this.xc=Hk;this.K=null;this.Yd=a.autoLock;this.cb=this.Fb=0;this.xa=[];this.oa=Array(this.Ra==ek?256:16);this.La=!1;if(this.ba=e)if(this.ba.ke=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ba.ke){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange",
"on"+d in document){document.addEventListener(d,function(){Ik(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Ik(f,null)},!1);break}}this.G&&(this.G.onfocus=function(){return f.Nf(!0)},this.G.onblur=function(){return f.Nf(!1)},this.G.Pd=this.G.requestPointerLock||this.G.mozRequestPointerLock||this.G.webkitRequestPointerLock,
this.G.pj=this.G.exitPointerLock||this.G.mozExitPointerLock||this.G.webkitExitPointerLock,this.G.Pd&&(e=function(){f.bf(document.pointerLockElement===f.G||document.mozPointerLockElement===f.G||document.webkitPointerLockElement===f.G)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",
@ -442,7 +442,7 @@ Gk[17]=[640,480,8];Gk[18]=[640,480,8];Gk[19]=[320,200,1];Gk[20]=[320,240,4];Gk[2
var Mk=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Nk=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Ok=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Pk=[2,4,6],Qk=[3,5,7],Rk=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Sk=[0,255,65280,65535,16711680,16711935,16776960,
16777215,-16777216,-16776961,-16711936,-16711681,-65536,-65281,-256,-1],Tk=[0];Tk[128]=1;Tk[32768]=2;Tk[32896]=3;Tk[8388608]=4;Tk[8388736]=5;Tk[8421376]=6;Tk[8421504]=7;Tk[-2147483648]=8;Tk[-2147483520]=9;Tk[-2147450880]=10;Tk[-2147450752]=11;Tk[-2139095040]=12;Tk[-2139094912]=13;Tk[-2139062272]=14;Tk[-2139062144]=15;
function Uk(a,b,c,d){if(void 0!==b&&(!c||c.length)){this.video=a;var e=Vk[b],f=a.ma||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(5>b?Wk:Xk)];this.Ra=b;this.cb=e[2];this.Fb=e[3];this.Wc=d||e[4];65536<=this.Wc&&720896<=this.cb&&(this.Fb=Math.min(this.Wc>>2,32768));this.cc=c[0];this.Lc=c[1];this.ff=c[2];this.aa=c[3];this.sc=c[4]&255;this.Qf=c[4]>>8&255;this.ab=c[5];this.pg=Wk;if(5<=b){this.pg=Xk;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.cb,this.Fb,this.Wc],
Array(this.Wc>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Ke=b[0];this.Ud=b[1];this.Kc=b[2];this.kh=b[3];this.gf=b[4];this.Sf=b[5];this.Ce=b[6];this.Be=b[7];this.gj=b[8];this.hj=b[9];this.Ae=b[10];this.Hd=b[11];this.ob=b[12];d=b[13];"number"==typeof d&&(d=[this.cb,this.Fb,d]);this.cb=d[0];this.Fb=d[1];d=this.Wc>>2;if((this.ud=b[14])&&this.ud.length<d){for(var e=this.ud,g=0,h=Array(d),k=0;k<e.length-1;){for(var m=e[k++],p=e[k++];m--;)h[g]=p,g+=2;g==d&&(g=1)}this.ud=h}(d=b[15])&&
Array(this.Wc>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Ke=b[0];this.Ud=b[1];this.Kc=b[2];this.kh=b[3];this.gf=b[4];this.Sf=b[5];this.Ce=b[6];this.Be=b[7];this.gj=b[8];this.hj=b[9];this.Ae=b[10];this.Hd=b[11];this.ob=b[12];d=b[13];"number"==typeof d&&(d=[this.cb,this.Fb,d]);this.cb=d[0];this.Fb=d[1];d=this.Wc>>2;if((this.ud=b[14])&&this.ud.length<d){for(var e=this.ud,g=0,h=Array(d),k=0;k<e.length-1;){for(var m=e[k++],n=e[k++];m--;)h[g]=n,g+=2;g==d&&(g=1)}this.ud=h}(d=b[15])&&
(d&-2147483648?d&=2147483647:d=Yk[d&65280]|Yk[d&255]);this.Uf(d);this.fh=b[16];this.$a=b[17];this.Hc=b[18];this.tb=b[19];this.af=b[20];this.nd=b[21];this.Dd=b[22];this.qg=b[23];this.rg=b[24];this.ed=b[25];this.gh=this.xe=0;this.Ra==ek&&(this.lh=b[26],this.jh=b[27],this.fd=b[28],this.Bc=b[29],this.Rf=b[30],this.ze=b[31])}f=Kk[f]||Kk[3];this.sg=a.A.T.ad/f.Jf|0;this.Wk=this.sg*f.Of/100|0;this.vg=this.sg*f.If|0;this.Yk=this.vg*f.Pf/100|0;this.wg=c[7]||0}}var Wk=18,Xk=25,Yk=[,,1024,5120];Yk[16]=1280;
Yk[512]=0;Yk[1024]=32;Yk[1536]=96;Yk[2560]=160;Yk[3584]=224;Yk[768]=16;Yk[4096]=1;Yk[8192]=2;Yk[24576]=98;Yk[40960]=162;Yk[57344]=226;var Zk=[];Zk[1024]=function(a){a+=this.H;return(this.controller.ob=this.V[a])>>this.controller.fh&255};Zk[17408]=function(a){return(this.controller.ob=this.V[(a&-4)+this.H])>>((a&3)<<3)&255};Zk[5120]=function(a){a+=this.H;var b=this.controller.ob=this.V[a&-2];return(a&1?b>>8:b)&255};
Zk[1280]=function(a){a+=this.H;a=this.controller.ob=this.V[a];for(var b=this.controller.rg,c=this.controller.qg&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};Zk[0]=function(a,b){var c=a+this.H,d;d=(b|b<<8|b<<16|b<<24)&this.controller.nd|this.controller.Dd;d=d&this.controller.tb|this.controller.ob&~this.controller.tb;d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ha=!0)};
@ -459,39 +459,39 @@ a.og|-2147483648;c[16]=a.fh;c[17]=a.$a;c[18]=a.Hc;c[19]=a.tb;c[20]=a.af;c[21]=a.
Uk.prototype.Uf=function(a){if(null!=a&&a!=this.og){var b=a&65280,c=Zk[b];c||b&4096&&(c=Zk[4096]);var b=a&255,d=Zk[b];d||b&16&&(d=Zk[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.og=a}};
function al(a,b){var c=a.ab[b];if(null!=c&&5<=a.Ra){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ra==ek&&(e=32);break;case 10:5==a.Ra&&(d=32);break;case 16:d=4;a.Ra==ek&&(e=128);break;case 18:d=2;a.Ra==ek&&(e=64);break;case 21:d=8;a.Ra==ek&&(f=32);break;case 24:d=16,a.Ra==ek&&(f=64)}d&&(c|=a.ab[7]&d?256:0,c|=a.ab[7]&e?512:0,c|=a.ab[9]&f?512:0)}return c}var Vk=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Vk[ek]=["VGA",980,753664,16384,262144,7];var Hk=0;
l=Y.prototype;
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;c=(c=Fk[this.ca])&&c[0];3!==c&&(Nb(b,this,bl),Pb(b,this,cl));1!==c&&(Nb(b,this,dl),Pb(b,this,el));5<=this.Ra&&(Nb(b,this,fl),Pb(b,this,gl));this.Ra==ek&&(Nb(b,this,hl),Pb(b,this,il));if((this.C=kb(a,"Keyboard"))&&this.Y){for(var e in this.ka)0<e.indexOf("lock")&&this.C.zb("led",e,this.ka[e]);this.C.zb(this.ae?"textarea":"canvas","kbd",this.G)}this.Bb=9;(this.P=kb(a,"ChipSet"))&&this.qd&&5==this.Ra&&(this.Bb=Ai(this.qd,this.Bb));"mouse"==this.rd?
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;c=(c=Fk[this.ca])&&c[0];3!==c&&(Ob(b,this,bl),Qb(b,this,cl));1!==c&&(Ob(b,this,dl),Qb(b,this,el));5<=this.Ra&&(Ob(b,this,fl),Qb(b,this,gl));this.Ra==ek&&(Ob(b,this,hl),Qb(b,this,il));if((this.C=kb(a,"Keyboard"))&&this.Y){for(var e in this.ka)0<e.indexOf("lock")&&this.C.zb("led",e,this.ka[e]);this.C.zb(this.ae?"textarea":"canvas","kbd",this.G)}this.Bb=9;(this.P=kb(a,"ChipSet"))&&this.qd&&5==this.Ra&&(this.Bb=Ai(this.qd,this.Bb));"mouse"==this.rd?
(this.K=kb(a,"Mouse"))&&jl(this,2):"keygrid"==this.rd&&this.C&&jl(this,1)};l.zb=function(a,b,c){var d=this;if(!this.ka[b])switch(this.ka[b]=c,b){case "fullScreen":return this.ba&&this.ba.ke?c.onclick=function(){d.ke()}:c.parentNode.removeChild(c),!0;case "lockPointer":return this.Kd=c.textContent,this.G&&this.G.Pd?c.onclick=function(){d.Pd(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){kl(d,!0)},!0}return!1};
l.ke=function(){var a=!1;if(this.ba){if(this.ba.ke){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.da/this.pa;b>c&&(a=Math.round(c/b*100)+"%")}this.$c?(this.Y.style.width=a,this.Y.style.width=a,this.Y.style.display="block",this.Y.style.margin="auto"):(this.ba.style.width=a,this.ba.style.height="auto");this.ba.style.backgroundColor="black";this.ba.ke();a=!0}this.G&&this.G.focus()}return a};
l.ke=function(){var a=!1;if(this.ba){if(this.ba.ke){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.ea/this.pa;b>c&&(a=Math.round(c/b*100)+"%")}this.$c?(this.Y.style.width=a,this.Y.style.width=a,this.Y.style.display="block",this.Y.style.margin="auto"):(this.ba.style.width=a,this.ba.style.height="auto");this.ba.style.backgroundColor="black";this.ba.ke();a=!0}this.G&&this.G.focus()}return a};
function Ik(a,b){!b&&a.ba&&(a.$c?a.Y.style.width=a.Y.style.height="":a.ba.style.width=a.ba.style.height="");a.C&&(a.C.ig=b)}l.Pd=function(a){var b=!1;this.G&&(a?this.G.Pd&&(this.G.Pd(),this.K&&this.K.bf(!0),b=!0):this.G.pj&&(this.G.pj(),this.K&&this.K.bf(!1),b=!0),this.G&&this.G.focus());return b};l.bf=function(a){this.K&&(this.K.bf(a),this.C&&(this.C.ig=a));var b=this.ka.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":this.Kd)};
function jl(a,b){var c=a.G;c&&!a.xc&&(c.addEventListener("touchstart",function(b){ll(a,b,!0)},!1),c.addEventListener("touchmove",function(b){ll(a,b)},!0),c.addEventListener("touchend",function(b){ll(a,b,!1)},!1),a.xc=b,a.rb=a.ub=a.sd=-1,a.vc=!1,a.Gb=null,a.oc=!1,a.$d=function(){a.oc=!0;a.K.je(ml,!0)})}l.Nf=function(a){this.C&&this.C.Nf(a)};
function ll(a,b,c){var d,e,f=0,g=0;e=a.Y;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.da/a.Y.offsetWidth,k=a.pa/a.Y.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(1==a.xc)d=d/(a.da/3)|0,e=e/(a.pa/3)|0,1!=e?e?wk(a.C,1040,!0):wk(a.C,1038,!0):1!=d&&(d?wk(a.C,1039,!0):wk(a.C,1037,!0));else if(a.K){g=a.vc;f=b.timeStamp-a.sd;!0===c?(a.vc=500<f,a.sd=b.timeStamp,
function ll(a,b,c){var d,e,f=0,g=0;e=a.Y;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.ea/a.Y.offsetWidth,k=a.pa/a.Y.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(1==a.xc)d=d/(a.ea/3)|0,e=e/(a.pa/3)|0,1!=e?e?wk(a.C,1040,!0):wk(a.C,1038,!0):1!=d&&(d?wk(a.C,1039,!0):wk(a.C,1037,!0));else if(a.K){g=a.vc;f=b.timeStamp-a.sd;!0===c?(a.vc=500<f,a.sd=b.timeStamp,
a.Gb=setTimeout(a.$d,500)):null!=a.Gb&&(clearTimeout(a.Gb),a.Gb=null);void 0===c&&(a.vc=!1);g||b.preventDefault();if(!1===c){a.oc?(a.K.je(ml,!1),a.oc=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.je(ml,!0);a.K.je(ml,!1);return}}if(c||0>a.rb||0>a.ub)a.rb=d,a.ub=e;c=Math.round(d-a.rb);b=Math.round(e-a.ub);a.rb=d;a.ub=e;a.K.ng(c,b,a.rb,a.ub)}}l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};
l.reset=function(){var a=!0,b=0;this.P&&(b=+Yi(this.P,Ei,void 0));this.ca||(this.Ra=3==b?1:3);this.la=3;switch(this.Ra){case ek:b=7;break;case 5:var c=Lk[this.Bb];c&&(b=c[0]);b||(b=4);break;case 1:b=3;this.la=7;break;default:b=2}this.ma!==b&&(this.ma=b,a=!0);this.D=null;this.Z=this.Zb=new Uk(this,1);this.S=this.Cb=new Uk(this,3);5>this.Ra?this.B=new Uk:(this.B=new Uk(this,this.Ra,null,this.Wc),nl(this));ol(this);this.va=null;this.Ea=this.ia=-1;this.za=0;pl(this,this.la);if(this.D.cb&&a){a=this.D.cb+
this.fb;for(b=this.D.cb;b<a;b+=2){var d=65536*Math.random()|0;4==this.ma||7==this.ma?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Mb(this.ha,b,c|d<<8)}kl(this,!0)}};function nl(a){a.B.gf&1?(a.Z=a.Zb,a.S=a.B):(a.Z=a.B,a.S=a.Cb)}l.save=function(){var a=new be(this);C(a,0,$k(this.Zb));C(a,1,$k(this.Cb));C(a,2,[this.ma,this.la,this.va]);C(a,3,$k(this.B));return a.data()};
this.fb;for(b=this.D.cb;b<a;b+=2){var d=65536*Math.random()|0;4==this.ma||7==this.ma?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Nb(this.ha,b,c|d<<8)}kl(this,!0)}};function nl(a){a.B.gf&1?(a.Z=a.Zb,a.S=a.B):(a.Z=a.B,a.S=a.Cb)}l.save=function(){var a=new be(this);C(a,0,$k(this.Zb));C(a,1,$k(this.Cb));C(a,2,[this.ma,this.la,this.va]);C(a,3,$k(this.B));return a.data()};
l.restore=function(a){var b=a[2];this.ma=b[0];this.la=b[1];this.va=b[2];this.D=null;this.Z=this.Zb=new Uk(this,1,a[0]);this.S=this.Cb=new Uk(this,3,a[1]);this.B=new Uk(this,this.Ra,a[3],this.Wc);this.B.cc&&nl(this);ol(this);if(!ql(this))return!1;rl(this);return!0};
function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");else{Sa(a.lf,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){n("Empty font ROM: "+b);return}if(1==f.length){n(f[0]);return}if(8192==f.length)dk(a,f,[6144,0]);else if(2048==f.length)dk(a,f,[0]);else{a.Ba("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Ba("Font ROM data error: "+g.message);return}(a.W||a.Ia)&&ab(a)}}
function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");else{Sa(a.lf,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){p("Empty font ROM: "+b);return}if(1==f.length){p(f[0]);return}if(8192==f.length)dk(a,f,[6144,0]);else if(2048==f.length)dk(a,f,[0]);else{a.Ba("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Ba("Font ROM data error: "+g.message);return}(a.W||a.Ia)&&ab(a)}}
function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;d<c.length;d++)a.oa[d+1]=Ok[c[d]];return a.oa}if(a.S===a.Cb)return Ok;a.La&&b&&!a.oa[16]&&(a.La=!1);if(!a.La){var c=a.B,d=c.ze,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;for(f=0;16>f;f++)g=e[f]&63,m?(g|=
(c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function dk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d}
function ol(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=sl(a);null!=a.Xa[0]&&tl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(tl(a,1,a.Xa[1],d,e,14,a.Ab,Mk,Nk)&&(c=!0),a.Ja&&tl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function tl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ul(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Zd&&ul(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,rd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=rd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=(ac<<J)+If,wj=cn||dn&128>>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function ul(a,b,c,d,e,f,g,h,k){var m=!1,n=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<<n,uc:f<<n,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=n,W=c,da=d,ua=e,va=f,sd=g,cn=[0,0,0,0],ve=document.createElement("canvas");ve.width=m.tc<<4;ve.height=m.uc<<4;for(var vj=ve.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,we=8>va||!da?va:8,If=vj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
0;ac<va;ac++)for(var dn=m.Ge&&E&1&&ac>=va-2,en=sd[ac<we?W+Ab*we+ac:da+Ab*we+ac-we],Jf=0;Jf<=J;Jf++)for(Oc=0;Oc<ua;Oc++){var wj=Oc<<J,xj=(ac<<J)+Jf,yj=dn||en&128>>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:cn;vl(If,wj,xj,yj);J&&vl(If,wj+1,xj,yj)}vj.putImageData(If,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ve;m=!0}}a.xa[b]=x;return m}function wl(a){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function rl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)xl(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ia!=c&&(xl(a),a.ia=c);d=d-b+1;if(a.td!=b||a.Gc!=d)a.td=b,a.Gc=d;a.Da=e+1;wl(a)}}}
function xl(a){if(0<=a.ia){if(void 0!==a.R){var b=a.R[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.R[a.ia]=b}}a.ia=-1}}
function zl(a){var b,c=a.D;a.Zc=!1;var d=c.Hd[5];if(null!=d){b=1024;var e=0,f=c.Hd[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.Hc=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.Ra==ek&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.Be[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Zc=!0));b|=e}return b}
function Al(a,b){var c=a.D;return c&&null!=b&&b!=c.og?(c.Uf(b),a.ha.Uf(c.cb,c.Fb,c.lg(),!0),!0):!1}
function ql(a,b){var c,d=a.va,e=a.D;if(e)if(1==e.Ra)d=7;else if(5<=e.Ra){var d=null,f=e.Wc>>2,g=32768<f?32768:f,h=e.Hd[6];if(null!=h){switch(h&12){case 0:e.cb=655360;e.Fb=f;d=255;break;case 4:e.cb=655360;e.Fb=f;d=3==a.ma?15:16;break;case 8:e.cb=720896;e.Fb=g;d=7;break;case 12:e.cb=753664,e.Fb=g,d=3==a.ma?2:3}c=80==(e.Hd[5]&80);!c||e.cb==a.cb&&e.Fb==a.Fb||(b=!0);var f=al(e,6),g=e.ab[9],k=e.ab[23],m=e.Be[1]&8;255!=d&&(h&1?655360==e.cb||c||k&1?e.Hd[5]&64?d=g&31?143>=e.ab[18]?19:20:21:g&128||350>f?d=
m?13:14:480<=f&&(d=3==a.ma?17:18):d=m?7-d:6:d-=m?2:0);c=zl(a)}}else e.Lc&8&&(e.Lc&2?(d=e.Lc&16?6:5,e.Lc&4||--d):(d=e.Lc&1?3:1,e.Lc&4&&--d));else a.va=null,null==d&&(d=a.la);if(!pl(a,d,b))return!1;Al(a,c);return!0}
function pl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.S);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){xl(a);if(a.cb){if(!Fb(a.ha,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ha,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Nb;a.L=a.wc;a.Ta=a.H;a.Hb=Gk[7][2];b=0;if(c=Gk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>al(a.B,18)?43:50:a.I=a.Ra);a.pd=a.H*a.L|0;a.od=a.pd/a.Hb|
0;a.fb=a.od;a.fc=0;void 0!==b&&(a.fb=(a.fb<<1)+b|0,a.fc=a.fb+b>>1);if(a.xa.length){a.ra=a.da/a.H|0;a.ua=a.pa/a.L|0;if(a.I){b=a.xa[a.I];if(!b)break a;c=a.xa[a.I<<1];a.dd&&80==a.H?c&&a.ra>=3*c.tc>>2&&(a.I<<=1,b=c):(c&&a.ra>=c.tc&&(a.I<<=1,b=c),a.dd||(a.ra=b.tc,a.ua=b.uc));a.pb=a.qb=0;b&&(a.pb=a.H*b.tc,a.qb=a.L*b.uc)}else a.ra=a.ua=1,a.pb=a.H,a.qb=a.L;a.Oa=a.W.createImageData(a.pb,a.qb);a.Fa=document.createElement("canvas");a.Fa.width=a.pb;a.Fa.height=a.qb;a.Ga=a.Fa.getContext("2d");a.yc=a.zc=0;a.ic=
a.da;a.mc=a.pa;b=a.da-a.H*a.ra;c=a.pa-a.L*a.ua;0<b&&(a.yc=b>>1,a.ic-=b);0<c&&(a.zc=c>>1,a.mc-=c);if(b||c)a.W.fillStyle=a.Y.style.backgroundColor,a.W.fillRect(0,0,a.da,a.pa)}}Bl(a,!0);kl(a)}return!0}function vl(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 Cl(a){a.za=-1;a.qa=!1;var b=a.od;if(void 0===a.R||a.R.length!=b)a.R=Array(b)}function Bl(a,b){b||(a.La=!1);Cl(a)}
function pl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.S);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){xl(a);if(a.cb){if(!Gb(a.ha,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ha,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Nb;a.L=a.wc;a.Ta=a.H;a.Hb=Gk[7][2];b=0;if(c=Gk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>al(a.B,18)?43:50:a.I=a.Ra);a.pd=a.H*a.L|0;a.od=a.pd/a.Hb|
0;a.fb=a.od;a.fc=0;void 0!==b&&(a.fb=(a.fb<<1)+b|0,a.fc=a.fb+b>>1);if(a.xa.length){a.ra=a.ea/a.H|0;a.ua=a.pa/a.L|0;if(a.I){b=a.xa[a.I];if(!b)break a;c=a.xa[a.I<<1];a.dd&&80==a.H?c&&a.ra>=3*c.tc>>2&&(a.I<<=1,b=c):(c&&a.ra>=c.tc&&(a.I<<=1,b=c),a.dd||(a.ra=b.tc,a.ua=b.uc));a.pb=a.qb=0;b&&(a.pb=a.H*b.tc,a.qb=a.L*b.uc)}else a.ra=a.ua=1,a.pb=a.H,a.qb=a.L;a.Oa=a.W.createImageData(a.pb,a.qb);a.Fa=document.createElement("canvas");a.Fa.width=a.pb;a.Fa.height=a.qb;a.Ga=a.Fa.getContext("2d");a.yc=a.zc=0;a.ic=
a.ea;a.mc=a.pa;b=a.ea-a.H*a.ra;c=a.pa-a.L*a.ua;0<b&&(a.yc=b>>1,a.ic-=b);0<c&&(a.zc=c>>1,a.mc-=c);if(b||c)a.W.fillStyle=a.Y.style.backgroundColor,a.W.fillRect(0,0,a.ea,a.pa)}}Bl(a,!0);kl(a)}return!0}function vl(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 Cl(a){a.za=-1;a.qa=!1;var b=a.od;if(void 0===a.R||a.R.length!=b)a.R=Array(b)}function Bl(a,b){b||(a.La=!1);Cl(a)}
function yl(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.xa[a.I];h.Ge&&(d=h.Ge[d]);var k=g>>4&15;h.Ge&&(k=h.Ge[k]);e?(b*=h.tc,c*=h.uc,e.fillStyle=h.be[k],e.fillRect(b,c,h.tc,h.uc)):(b=b*a.ra+a.yc,c=c*a.ua+a.zc,a.W.fillStyle=h.be[k],a.W.fillRect(b,c,a.ra,a.ua));g&256&&(k=(f&15)*h.tc,f=(f>>4)*h.uc,e?e.drawImage(h.ag[d],k,f,h.tc,h.uc,b,c,h.tc,h.uc):a.W.drawImage(h.ag[d],k,f,h.tc,h.uc,b,c,a.ra,a.ua));g&512&&(f=a.td,g=a.Gc,e?(a.Da&&a.Da!==h.uc&&(f=f*h.uc/a.Da|0,g=g*h.uc/a.Da|0),e.fillStyle=h.be[d],e.fillRect(b,
c+f,h.tc,g)):(a.Da&&a.Da!==a.ua&&(f=f*a.ua/a.Da|0,g=g*a.ua/a.Da|0),a.W.fillStyle=h.be[d],a.W.fillRect(b,c+f,a.ra,g)))}
function kl(a,b){if(a.ea.Rb){var c=!1,d=a.D;d&&(d!==a.B?d.Lc&8&&(c=!0):d.Ud&32&&(c=!0));if(c||b){if(b)Cl(a);else if(void 0===a.R)return;var e=!1;!(b||++a.Id&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.pd,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(Dl(a,d)&8||d.xe&&d.xe<d.gh){var m=(d.ab[12]<<8)+d.ab[13]|0;d.ed!==m&&(d.ed=m,Bl(a));d.xe=0}m=d.ed;a.I&&(m<<=1);var c=c+m,p=a.fb;5<=a.Ra&&d.ab[19]&&d.ab[19]<<1!=d.ab[1]+1&&(a.Ta=d.ab[19]<<(a.I?1:d.ab[20]&64?3:4),p=(a.Ta*(a.L-1)+a.H)/a.Hb|0,7>=a.va&&
(p<<=1));c+p>k&&(p=k-c,0>p&&(p=0));k=c+p;if(m=!b&&a.qa){for(var m=a.ha,x=!0,r=c>>>m.da;0<p&&r<m.S.length;)m.S[r].Ha&&(m.S[r].Ha=x=!1,m.S[r].Ph=!0),p-=m.xb,r++;m=x}if(m){if(!e)return;if(!a.za){f=a.ia-d.ed;if(0>f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;p=a.D.Lc&32;5<=a.Ra&&(p=a.D.Kc[16]&8);m=a.ia-a.D.ed;p&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)p=Lb(a.ha,c),p|=65536,p&e&&(a.za++,p&=h),d==m&&(p|=a.Ea&1?131072:0),a.qa&&p===a.R[d]||(yl(a,d%a.H,d/a.H|0,p,a.Ga),
a.R[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.W.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);wl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=sl(a,h),x=p=0,r=a.H,E=0,J=a.L,W=0;k<g;){z=Lb(a.ha,k);if(a.qa&&z===a.R[d])p+=f;else{a.R[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<r&&(r=p);for(var va=0;va<f;va++){var rd=(z&(da>>=h))>>(ua-=h);vl(a.Oa,p++,x,m[rd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
!0;r<a.H&&(a.Ga.putImageData(a.Oa,0,0,r,J,E-r,W-J),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else if(a.Zc){g=h;f=a.za=0;e=sl(a,8);h=a.D.ud;p=m=0;x=a.H;r=0;E=a.L;J=0;W=a.D.Be[4]&8?4:1;z=a.D.Kc[19]&15;for(da=a.Ta>a.H?a.Ta-a.H-z>>3:0;c<k;){d=h[c-g];va=4;z||(a.qa&&d===a.R[f]?(m+=va,va=0):a.R[f]=d,f++);if(va){m<x&&(x=m);for(ua=0;ua<va;ua++)vl(a.Oa,m++,p,e[d&255]),d>>=8;m>r&&(r=m);p<E&&(E=p);p>=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);x<a.H&&(a.Ga.putImageData(a.Oa,0,0,x,
E,r-x,J-E),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else{g=h;d=a.za=0;f=sl(a);e=a.D.ud;m=h=0;p=a.H;x=0;r=a.L;E=0;J=a.D.Kc[19]&15;for(W=a.Ta>a.H?a.Ta-a.H-J>>3:0;c<k;){z=c++-g;z=e[z];ua=8;J?h?(da=a.H-h,ua>da&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.R[d]?(h+=ua,ua=0):a.R[d]=z,d++);if(ua){h<p&&(p=h);for(da=0;da<ua;da++)va=Tk[z&2155905152]||0,vl(a.Oa,h++,m,f[va]),z<<=1;h>x&&(x=h);m<r&&(r=m);m>=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);p<a.H&&(a.Ga.putImageData(a.Oa,0,0,p,
r,x-p,E-r),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}}}}function Dl(a,b){var c=0,d=tc(a.A)-b.wg;0>d&&(b.wg=d,d=-d|0);d%b.sg>b.Wk&&(c|=1);d%b.vg>b.Yk&&(c|=9);b.gh=d/b.vg|0;return c}l.xk=function(){var a=this.Z,b;a.cc&&(b=a.sc);return b};l.Ll=function(a,b){var c=this.Z;c.Qf=c.sc;c.sc=b&31};l.wk=function(){return El(this.Z)};l.Kl=function(a,b){Fl(this,this.Z,b)};l.yk=function(){return this.Z.Lc};l.Ml=function(a,b){this.Z.Lc=b;ql(this,!1)};l.zk=function(){return Gl(this,this.Z)};
function kl(a,b){if(a.da.Rb){var c=!1,d=a.D;d&&(d!==a.B?d.Lc&8&&(c=!0):d.Ud&32&&(c=!0));if(c||b){if(b)Cl(a);else if(void 0===a.R)return;var e=!1;!(b||++a.Id&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.pd,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(Dl(a,d)&8||d.xe&&d.xe<d.gh){var m=(d.ab[12]<<8)+d.ab[13]|0;d.ed!==m&&(d.ed=m,Bl(a));d.xe=0}m=d.ed;a.I&&(m<<=1);var c=c+m,n=a.fb;5<=a.Ra&&d.ab[19]&&d.ab[19]<<1!=d.ab[1]+1&&(a.Ta=d.ab[19]<<(a.I?1:d.ab[20]&64?3:4),n=(a.Ta*(a.L-1)+a.H)/a.Hb|0,7>=a.va&&
(n<<=1));c+n>k&&(n=k-c,0>n&&(n=0));k=c+n;if(m=!b&&a.qa){for(var m=a.ha,x=!0,r=c>>>m.ea;0<n&&r<m.S.length;)m.S[r].Ha&&(m.S[r].Ha=x=!1,m.S[r].Ph=!0),n-=m.xb,r++;m=x}if(m){if(!e)return;if(!a.za){f=a.ia-d.ed;if(0>f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;n=a.D.Lc&32;5<=a.Ra&&(n=a.D.Kc[16]&8);m=a.ia-a.D.ed;n&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)n=Mb(a.ha,c),n|=65536,n&e&&(a.za++,n&=h),d==m&&(n|=a.Ea&1?131072:0),a.qa&&n===a.R[d]||(yl(a,d%a.H,d/a.H|0,n,a.Ga),
a.R[d]=n,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.W.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);wl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=sl(a,h),x=n=0,r=a.H,E=0,J=a.L,W=0;k<g;){z=Mb(a.ha,k);if(a.qa&&z===a.R[d])n+=f;else{a.R[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;n<r&&(r=n);for(var va=0;va<f;va++){var sd=(z&(da>>=h))>>(ua-=h);vl(a.Oa,n++,x,m[sd])}n>E&&(E=n);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(n>=a.H){n=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
!0;r<a.H&&(a.Ga.putImageData(a.Oa,0,0,r,J,E-r,W-J),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.ea,a.pa))}else if(a.Zc){g=h;f=a.za=0;e=sl(a,8);h=a.D.ud;n=m=0;x=a.H;r=0;E=a.L;J=0;W=a.D.Be[4]&8?4:1;z=a.D.Kc[19]&15;for(da=a.Ta>a.H?a.Ta-a.H-z>>3:0;c<k;){d=h[c-g];va=4;z||(a.qa&&d===a.R[f]?(m+=va,va=0):a.R[f]=d,f++);if(va){m<x&&(x=m);for(ua=0;ua<va;ua++)vl(a.Oa,m++,n,e[d&255]),d>>=8;m>r&&(r=m);n<E&&(E=n);n>=J&&(J=n+1)}c+=W;if(m>=a.H){m=0;if(++n>a.L)break;c+=da}}z||(a.qa=!0);x<a.H&&(a.Ga.putImageData(a.Oa,0,0,x,
E,r-x,J-E),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.ea,a.pa))}else{g=h;d=a.za=0;f=sl(a);e=a.D.ud;m=h=0;n=a.H;x=0;r=a.L;E=0;J=a.D.Kc[19]&15;for(W=a.Ta>a.H?a.Ta-a.H-J>>3:0;c<k;){z=c++-g;z=e[z];ua=8;J?h?(da=a.H-h,ua>da&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.R[d]?(h+=ua,ua=0):a.R[d]=z,d++);if(ua){h<n&&(n=h);for(da=0;da<ua;da++)va=Tk[z&2155905152]||0,vl(a.Oa,h++,m,f[va]),z<<=1;h>x&&(x=h);m<r&&(r=m);m>=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);n<a.H&&(a.Ga.putImageData(a.Oa,0,0,n,
r,x-n,E-r),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.ea,a.pa))}}}}function Dl(a,b){var c=0,d=tc(a.A)-b.wg;0>d&&(b.wg=d,d=-d|0);d%b.sg>b.Wk&&(c|=1);d%b.vg>b.Yk&&(c|=9);b.gh=d/b.vg|0;return c}l.xk=function(){var a=this.Z,b;a.cc&&(b=a.sc);return b};l.Ll=function(a,b){var c=this.Z;c.Qf=c.sc;c.sc=b&31};l.wk=function(){return El(this.Z)};l.Kl=function(a,b){Fl(this,this.Z,b)};l.yk=function(){return this.Z.Lc};l.Ml=function(a,b){this.Z.Lc=b;ql(this,!1)};l.zk=function(){return Gl(this,this.Z)};
l.dj=function(a,b){this.B.Sf=this.B.Sf&-4|b&3};l.Vj=function(){return this.B.Ud};l.wj=function(){return this.B.Kc[this.B.Ud&31]};l.cj=function(a,b){var c=this.B,d=c.Ud&32;if(c.Ke){c.Ke=!1;var e=c.Ud&31;if(16<=e||!d)c.Kc[e]=b,Bl(this,!1)}else c.Ud=b,c.Ke=!0,b&32&&!d&&ol(this,!0)&&kl(this,!0),d=(c.ab[12]<<8)+c.ab[13]|0,c.ed!=d&&(c.ed=d,Bl(this)),c.xe=0};
l.Jk=function(){var a=0;if(5==this.Ra)a=3-((this.B.gf&12)>>2),a=(this.Bb&1<<a)<<4-a;else{var b=this.B.ze[0];45!=(b&63)&&2880!=(b&4032)&&184320!=(b&258048)&&(a|=16)}a|=this.B.kh&-17;return this.B.kh=a};l.Nl=function(a,b){this.B.gf=b;nl(this)};l.Kk=function(){return this.B.lh};l.Vl=function(a,b){this.B.lh=b};l.Hk=function(){return this.B.Ce};l.Tl=function(a,b){this.B.Ce=b};l.Gk=function(){return this.B.Be[this.B.Ce]};
l.Sl=function(a,b){this.B.Be[this.B.Ce]=b;switch(this.B.Ce){case 2:this.B.$a=Sk[b&15];break;case 4:Al(this,zl(this))&&kl(this,!0)}};l.hk=function(){return this.B.jh};l.ul=function(a,b){this.B.jh=b};l.ik=function(){return this.B.Rf};l.vl=function(a,b){this.B.fd=b;this.B.Rf=3;this.B.Bc=0};l.wl=function(a,b){this.B.fd=b;this.B.Rf=0;this.B.Bc=0};l.gk=function(){var a=this.B.ze[this.B.fd]>>this.B.Bc&63;this.B.Bc+=6;12<this.B.Bc&&(this.B.Bc=0,this.B.fd=this.B.fd+1&255);return a};
@ -503,57 +503,57 @@ var bl={948:Y.prototype.xk,949:Y.prototype.wk,952:Y.prototype.yk,954:Y.prototype
961:Y.prototype.cj,962:Y.prototype.Nl,964:Y.prototype.Tl,965:Y.prototype.Sl,970:Y.prototype.Gl,972:Y.prototype.Fl,974:Y.prototype.El,975:Y.prototype.Dl,986:Y.prototype.dj},hl={963:Y.prototype.Kk,966:Y.prototype.hk,967:Y.prototype.ik,969:Y.prototype.gk,970:Y.prototype.Lk,972:Y.prototype.Mk},il={963:Y.prototype.Vl,966:Y.prototype.ul,967:Y.prototype.vl,968:Y.prototype.wl,969:Y.prototype.tl};
Ea(function(){for(var a=Za(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=Wa(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());var f=+(d.aspect||La.aspect);f&&.3<=f&&3.33>=f&&(Da("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}});
function Hl(a){this.I=a.adapter;switch(this.I){case 1:this.G=956;this.D=7;break;case 2:this.G=888;this.D=7;break;case 3:this.G=632;this.D=5;break;default:n("Unrecognized parallel adapter #"+this.I);return}this.B=this.C=null;Ia.call(this,"ParallelPort",a,Hl);a=a.binding;"console"==a?this.C="":Xa(this,a,Il)}Qa(Hl);var Il="buffer";l=Hl.prototype;l.zb=function(a,b,c){switch(b){case Il:return this.ka[b]=this.B=c,!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");Nb(b,this,Jl,this.G);Pb(b,this,Kl,this.G);ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){Ll(this)};l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.H;c[b++]=this.Db;c[b]=this.Ie;C(a,0,c);return a.data()};l.restore=function(a){return Ll(this,a[0])};
function Hl(a){this.I=a.adapter;switch(this.I){case 1:this.G=956;this.D=7;break;case 2:this.G=888;this.D=7;break;case 3:this.G=632;this.D=5;break;default:p("Unrecognized parallel adapter #"+this.I);return}this.B=this.C=null;Ia.call(this,"ParallelPort",a,Hl);a=a.binding;"console"==a?this.C="":Xa(this,a,Il)}Qa(Hl);var Il="buffer";l=Hl.prototype;l.zb=function(a,b,c){switch(b){case Il:return this.ka[b]=this.B=c,!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");Ob(b,this,Jl,this.G);Qb(b,this,Kl,this.G);ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){Ll(this)};l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.H;c[b++]=this.Db;c[b]=this.Ie;C(a,0,c);return a.data()};l.restore=function(a){return Ll(this,a[0])};
function Ll(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.H=b[c++];a.Db=b[c++];a.Ie=b[c];return!0}l.jk=function(){return this.H};l.Ik=function(){return this.Db};l.fk=function(){return this.Ie};
l.xl=function(a,b){this.H=b;this.Db|=64;var c;if(this.B)8==b?this.B.value=this.B.value.slice(0,-1):(this.B.value+=String.fromCharCode(b),this.B.scrollTop=this.B.scrollHeight),c=!0;else if(null!=this.C){if(10==b||1024<=this.C.length)this.rc(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));c=!0}else c=!1;c&&(this.Db&=-65);Ml(this)};l.sl=function(a,b){this.Ie=b;Ml(this)};function Ml(a){a.P&&a.D&&(a.Ie&16&&!(a.Db&64)?Se(a.P,a.D):Re(a.P,a.D))}
var Jl={0:Hl.prototype.jk,1:Hl.prototype.Ik,2:Hl.prototype.fk},Kl={0:Hl.prototype.xl,2:Hl.prototype.sl};Ea(function(){for(var a=Za(document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Hl(d);Ya(d,c)}});
function Nl(a){this.da=a.adapter;switch(this.da){case 1:this.Y=1016;this.R=4;break;case 2:this.Y=760;this.R=3;break;default:n("Unrecognized serial adapter #"+this.da);return}this.D=this.H=null;this.oa=a.tabSize;this.ma=a.charBOL;this.L=0;Ia.call(this,"SerialPort",a,Nl);a=a.binding;"console"==a?this.H="":Xa(this,a,Ol)}Qa(Nl);var Ol="buffer";l=Nl.prototype;l.Eh=function(a,b){return a==this.jf?(this.K=b,this):null};
function Nl(a){this.ea=a.adapter;switch(this.ea){case 1:this.Y=1016;this.R=4;break;case 2:this.Y=760;this.R=3;break;default:p("Unrecognized serial adapter #"+this.ea);return}this.D=this.H=null;this.oa=a.tabSize;this.ma=a.charBOL;this.L=0;Ia.call(this,"SerialPort",a,Nl);a=a.binding;"console"==a?this.H="":Xa(this,a,Ol)}Qa(Nl);var Ol="buffer";l=Nl.prototype;l.Eh=function(a,b){return a==this.jf?(this.K=b,this):null};
l.zb=function(a,b,c){var d=this;switch(b){case Ol:return this.ka[b]=this.D=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),Pl(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;Pl(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");Nb(b,this,Ql,this.Y);Pb(b,this,Rl,this.Y);ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){Sl(this)};l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.Z;c[b++]=this.la;c[b++]=this.S;c[b++]=this.W;c[b++]=this.G;c[b++]=this.I;c[b++]=this.C;c[b++]=this.B;c[b++]=this.ia;c[b]=this.ba;C(a,0,c);return a.data()};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");Ob(b,this,Ql,this.Y);Qb(b,this,Rl,this.Y);ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){Sl(this)};l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.Z;c[b++]=this.la;c[b++]=this.S;c[b++]=this.W;c[b++]=this.G;c[b++]=this.I;c[b++]=this.C;c[b++]=this.B;c[b++]=this.ia;c[b]=this.ba;C(a,0,c);return a.data()};
l.restore=function(a){return Sl(this,a[0])};function Sl(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.Z=b[c++];a.la=b[c++];a.S=b[c++];a.W=b[c++];a.G=b[c++];a.I=b[c++];a.C=b[c++];a.B=b[c++];a.ia=b[c++];a.ba=b[c];return!0}function Pl(a,b){a.ba=a.ba.concat(b);Tl(a)}function Tl(a){0<a.ba.length&&!(a.B&1)&&(a.Z=a.ba.shift(),a.B|=1);var b=-1;a.B&1&&a.W&1&&(b=4);0<=b?(a.G&=-8,a.G|=b,a.P&&a.R&&Se(a.P,a.R,100)):(a.G|=1,a.P&&a.R&&Re(a.P,a.R))}
l.Fk=function(){var a=this.I&128?this.S&255:this.Z;this.B&=-2;Tl(this);return a};l.rk=function(){return this.I&128?this.S>>8:this.W};l.sk=function(){return this.G};l.tk=function(){return this.I};l.vk=function(){return this.C};l.uk=function(){return this.B};l.Ak=function(){return this.ia};
l.Ul=function(a,b){if(this.I&128)this.S=this.S&-256|b;else{this.la=b;this.B&=-97;var c;if(this.D){if(13==b)this.L=0;else if(8==b)this.D.value=this.D.value.slice(0,-1),0<this.L&&this.L--;else{c=String.fromCharCode(b);var d=32<=b?1:0;9==b&&(d=this.oa||8,d=d-this.L%d,this.oa&&(c=" ".slice(0,d)));this.ma&&!this.L&&d&&(c=String.fromCharCode(this.ma)+c);this.D.value+=c;this.D.scrollTop=this.D.scrollHeight;this.L+=d}c=!0}else if(null!=this.H){if(10==b||1024<=this.H.length)this.rc(this.H),
this.H="";10!=b&&(this.H+=String.fromCharCode(b));c=!0}else c=!1;c&&(this.B|=96)}};l.Hl=function(a,b){this.I&128?this.S=this.S&255|b<<8:this.W=b};l.Il=function(a,b){this.I=b};l.Jl=function(a,b){var c=this.C;this.C=b;if(this.K&&(c^b)&3){var c=this.K,d=this.C,e=3==(d&3);if(e){if(!c.cc){var f=!1;c.C&2||(c.reset(),f=!0);c.C&1||(f=!0);f&&Pl(c.G,[77,77]);Ul(c);c.cc=e}}else c.cc&&(Vl(c),c.cc=e);c.C=d}};
var Ql={0:Nl.prototype.Fk,1:Nl.prototype.rk,2:Nl.prototype.sk,3:Nl.prototype.tk,4:Nl.prototype.vk,5:Nl.prototype.uk,6:Nl.prototype.Ak},Rl={0:Nl.prototype.Ul,1:Nl.prototype.Hl,3:Nl.prototype.Il,4:Nl.prototype.Jl};Ea(function(){for(var a=Za(document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Nl(d);Ya(d,c)}});function Wl(a){Ia.call(this,"Mouse",a,Wl);if(this.Y=a.serial)this.Z="SerialPort";this.W=this.R=this.cc=!1;this.D=[];this.B=[];ab(this)}Qa(Wl);var ml=0;l=Wl.prototype;
l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.A=c;this.Ia=d;for(b=null;b=kb(a,"Video",b);)this.D.push(b)};l.Vb=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.Z&&!this.G){for(var c=null;(c=kb(this.ba,this.Z,c))&&(!c.Eh||!(this.G=c.Eh(this.Y,this))););if(this.G)for(this.B=[],c=0;c<this.D.length;c++){var d;d=this.D[c];d.K=this;(d=d.G)&&this.B.push(d)}else n(this.id+": "+this.Z+" "+this.Y+" unavailable")}this.cc?Ul(this):Vl(this)}return!0};
l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.A=c;this.Ia=d;for(b=null;b=kb(a,"Video",b);)this.D.push(b)};l.Vb=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.Z&&!this.G){for(var c=null;(c=kb(this.ba,this.Z,c))&&(!c.Eh||!(this.G=c.Eh(this.Y,this))););if(this.G)for(this.B=[],c=0;c<this.D.length;c++){var d;d=this.D[c];d.K=this;(d=d.G)&&this.B.push(d)}else p(this.id+": "+this.Z+" "+this.Y+" unavailable")}this.cc?Ul(this):Vl(this)}return!0};
l.Ub=function(a){return a?this.save():!0};l.reset=function(){Xl(this)};l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.cc;c[b++]=this.H;c[b++]=this.I;c[b++]=this.K;c[b++]=this.L;c[b++]=this.P;c[b++]=this.S;c[b]=this.C;C(a,0,c);return a.data()};l.restore=function(a){return Xl(this,a[0])};function Xl(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.cc=d;a.H=b[c++];a.I=b[c++];a.K=b[c++];a.L=b[c++];a.P=b[c++];a.S=b[c++];a.C=b[c];return!0}l.bf=function(a){this.R=a};
function Ul(a){if(!a.W)for(var b=0;b<a.B.length;b++)Yl(a,a.B[b])&&(a.W=!0)}function Vl(a){if(a.W)for(var b=0;b<a.B.length;b++){var c=a.B[b];c&&(c.style.cursor="auto")}}function Yl(a,b){return b?(b.addEventListener("mousemove",function(b){Zl(a,b)},!1),b.addEventListener("mousedown",function(b){Zl(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Zl(a,b,!1)},!1),b.style.cursor="none",!0):!1}
function Zl(a,b,c){if(void 0!==c){var d;!(d=!1!==a.R)&&(d=a.D.length)&&(d=a.D[0],d=d.Yd?d.Pd(!0):!1);d||(a.R=null);a.je(b.button,c)}else{if(0>a.H||0>a.I)a.H=b.clientX,a.I=b.clientY;a.R?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.H,d=b.clientY-a.I);a.H=b.clientX;a.I=b.clientY;a.ng(c,d,a.H,a.I)}}
l.je=function(a,b){if(this.cc&&this.A&&this.A.ea.Sb)switch(a){case ml:if(this.P!=b){this.P=b;$l(this);break}break;case 2:this.S!=b&&(this.S=b,$l(this))}};l.ng=function(a,b){this.cc&&this.A&&this.A.ea.Sb&&(a||b)&&(this.K=a,this.L=b,$l(this))};function $l(a){Pl(a.G,[64|(a.P?32:0)|(a.S?16:0)|(a.L&192)>>4|(a.K&192)>>6,a.K&63,a.L&63]);a.K=a.L=0}Ea(function(){for(var a=Za(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Wl(d);Ya(d,c)}});
l.je=function(a,b){if(this.cc&&this.A&&this.A.da.Sb)switch(a){case ml:if(this.P!=b){this.P=b;$l(this);break}break;case 2:this.S!=b&&(this.S=b,$l(this))}};l.ng=function(a,b){this.cc&&this.A&&this.A.da.Sb&&(a||b)&&(this.K=a,this.L=b,$l(this))};function $l(a){Pl(a.G,[64|(a.P?32:0)|(a.S?16:0)|(a.L&192)>>4|(a.K&192)>>6,a.K&63,a.L&63]);a.K=a.L=0}Ea(function(){for(var a=Za(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Wl(d);Ya(d,c)}});
function am(a,b,c){Ia.call(this,"Disk",{id:a.lf+".disk"+ea(++bm,4)},am);this.controller=a;this.ba=a.ba;this.Ia=a.Ia;this.C=b;this.B=b.name;this.oe=b.oe;this.Af=this.D=!1;cm(this,c,b.ib,b.jb,b.eb,b.nb);this.I=[];this.P=[];this.G=null;this.R=0;this.S=!1;ab(this)}var bm=0;Qa(am);l=am.prototype;l.pc=function(a,b,c,d){this.Ia=d};l.Vb=function(a,b){b||!this.Af||this.D||(ab(this,!1),this.load(this.B,this.H,null,this.Gj,this));return!0};l.Gj=function(){ab(this,!0)};
l.Ub=function(a,b){if(this.D){var c,d=0;if(this.S&&!ra("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=dm(this,!1);)if(d=c[0]){this.controller.Ba('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.D&&(c="action=close&volume="+this.H,c+="&machine="+this.controller.se(),c+="&user="+this.controller.Ad(),pa(qa()+"/api/v1/disk?"+c,null,!0),this.D=!1);!d&&a&&this.controller.Ba(this.B+" saved")}return!0};
function cm(a,b,c,d,e,f){a.mode=b;a.ib=c;a.jb=d;a.eb=e;a.nb=f;a.A=[];if("preload"!=a.mode){b=Array(a.ib);for(c=0;c<b.length;c++){d=Array(a.jb);for(e=0;e<d.length;e++){f=Array(a.eb);for(var g=1;g<=f.length;g++)f[g-1]=em(null,c,e,g,a.nb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.nh=fa(b);var g=this;this.K=d;this.ha=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.ib=d[0];g.jb=d[1];g.eb=d[2];g.nb=512;b=g.nb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.jb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.eb),W=0;W<J.length;W++){for(var da=em(null,c,E,W+1,g.nb,0),ua=da.data,va=0;va<
b;va++,e+=4)var rd=ua[va]=a.getInt32(e,!0),d=d+rd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=fm(this,b),this.Af=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
b;va++,e+=4)var sd=ua[va]=a.getInt32(e,!0),d=d+sd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=fm(this,b),this.Af=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
ha(b,"/")&&(c="dir"),f=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.oe?"":d)+"&format=json"));return!!pa(f,null,!0,function(a,b,c){gm(g,a,b,c)})};
function gm(a,b,c,d){var e=null;a.re=!1;var f=0>d&&a.ba&&!a.ba.ea.Rb;if(a.Af)d?a.controller.Ba('Unable to connect to disk "'+a.H+'" (error '+d+": "+c+")",f):(a.D=!0,e=a);else if(d)a.controller.Ba('Unable to load disk "'+a.B+'" (error '+d+": "+b+")",f);else{Sa(a.controller.lf,b,c);try{if(0<fa(a.nh,!0).toLowerCase().indexOf("-readonly"))a.re=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.re=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)n(h[0]);else{a.ib=h.length;a.jb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.nb=k&&k.length||512;for(d=c=0;d<a.ib;d++)for(f=0;f<a.jb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,p=k.pattern;void 0===p&&(p=k.pattern=0);var x=k.data;if(void 0===x){var r=k.bytes;if(void 0!==r&&r.length){for(var z=
m<<2,E=r.length;E<z;E++)r[E]=p;hm(k,r,0)}else x=[],p=k.pattern=p|p<<8|p<<16|p<<24,k.data=x;delete k.bytes}em(k,d,f);for(z=0;z<x.length;z++)c=c+x[z]&-1}a.A=h;a.L=c;e=a}else n("Empty disk image: "+a.B)}catch(J){n("Disk image error ("+b+"): "+J.message)}}a.K&&(a.K.call(a.ha,a.C,e,a.B,a.H),a.K=null)}function im(a,b){var c=a.jb*a.eb,d=b/c|0;return d<a.ib?(c=b%c,a.seek(d,c/a.eb|0,c%a.eb+1)):null}function jm(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
function gm(a,b,c,d){var e=null;a.re=!1;var f=0>d&&a.ba&&!a.ba.da.Rb;if(a.Af)d?a.controller.Ba('Unable to connect to disk "'+a.H+'" (error '+d+": "+c+")",f):(a.D=!0,e=a);else if(d)a.controller.Ba('Unable to load disk "'+a.B+'" (error '+d+": "+b+")",f);else{Sa(a.controller.lf,b,c);try{if(0<fa(a.nh,!0).toLowerCase().indexOf("-readonly"))a.re=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.re=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)p(h[0]);else{a.ib=h.length;a.jb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.nb=k&&k.length||512;for(d=c=0;d<a.ib;d++)for(f=0;f<a.jb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,n=k.pattern;void 0===n&&(n=k.pattern=0);var x=k.data;if(void 0===x){var r=k.bytes;if(void 0!==r&&r.length){for(var z=
m<<2,E=r.length;E<z;E++)r[E]=n;hm(k,r,0)}else x=[],n=k.pattern=n|n<<8|n<<16|n<<24,k.data=x;delete k.bytes}em(k,d,f);for(z=0;z<x.length;z++)c=c+x[z]&-1}a.A=h;a.L=c;e=a}else p("Empty disk image: "+a.B)}catch(J){p("Disk image error ("+b+"): "+J.message)}}a.K&&(a.K.call(a.ha,a.C,e,a.B,a.H),a.K=null)}function im(a,b){var c=a.jb*a.eb,d=b/c|0;return d<a.ib?(c=b%c,a.seek(d,c/a.eb|0,c%a.eb+1)):null}function jm(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
function em(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Jj=b;a.Kj=c;a.Uc=a.Dc=0;a.Ha=!1;return a}function fm(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.ib+":"+a.jb+":"+a.eb+":"+a.nb;c+="&machine="+a.controller.se();c+="&user="+a.controller.Ad();return qa()+"/api/v1/disk?"+c}
function km(a,b,c,d,e,f,g){if(a.D){var h;h="action=read&volume="+a.H;h+="&chs="+a.ib+":"+a.jb+":"+a.eb+":"+a.nb;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.se());h+="&user="+a.controller.Ad();pa(qa()+"/api/v1/disk?"+h,null,f,function(h,m,p){h=[b,c,d,e,f,g];var x=!1,r=h[0],z=h[1],E=h[2],J=h[3];if(!p){m=JSON.parse(m);for(x=0;J--;){var W=a.seek(r,z,E,!0);if(!W)break;hm(W,m,x);x+=W.length;E++}x=h[4]}(h=h[5])&&h(p,x)})}else g&&g(-1,!1)}
function lm(a,b,c,d,e,f,g){if(a.D){var h={};a.S=!0;h.action="write";h.volume=a.H;h.chs=a.ib+":"+a.jb+":"+a.eb+":"+a.nb;h.addr=b+":"+c+":"+d+":"+e;h.machine=a.controller.se();h.user=a.controller.Ad();h.data=JSON.stringify(f);pa(qa()+"/api/v1/disk",h,g,function(f,h,p){var x=[b,c,d,e,g];f=x[0];h=x[1];var r=x[2],z=x[3],x=x[4];a.S=!1;if(0<=f&&f<a.A.length&&0<=h&&h<a.A[f].length)for(r=r-1;0<z--&&0<=r&&r<a.A[f][h].length;r++){var E=a.A[f][h][r];p?mm(a,E,!1):E.Ha||(E.Uc=E.Dc=0)}x&&nm(a)})}return!1}
function km(a,b,c,d,e,f,g){if(a.D){var h;h="action=read&volume="+a.H;h+="&chs="+a.ib+":"+a.jb+":"+a.eb+":"+a.nb;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.se());h+="&user="+a.controller.Ad();pa(qa()+"/api/v1/disk?"+h,null,f,function(h,m,n){h=[b,c,d,e,f,g];var x=!1,r=h[0],z=h[1],E=h[2],J=h[3];if(!n){m=JSON.parse(m);for(x=0;J--;){var W=a.seek(r,z,E,!0);if(!W)break;hm(W,m,x);x+=W.length;E++}x=h[4]}(h=h[5])&&h(n,x)})}else g&&g(-1,!1)}
function lm(a,b,c,d,e,f,g){if(a.D){var h={};a.S=!0;h.action="write";h.volume=a.H;h.chs=a.ib+":"+a.jb+":"+a.eb+":"+a.nb;h.addr=b+":"+c+":"+d+":"+e;h.machine=a.controller.se();h.user=a.controller.Ad();h.data=JSON.stringify(f);pa(qa()+"/api/v1/disk",h,g,function(f,h,n){var x=[b,c,d,e,g];f=x[0];h=x[1];var r=x[2],z=x[3],x=x[4];a.S=!1;if(0<=f&&f<a.A.length&&0<=h&&h<a.A[f].length)for(r=r-1;0<z--&&0<=r&&r<a.A[f][h].length;r++){var E=a.A[f][h][r];n?mm(a,E,!1):E.Ha||(E.Uc=E.Dc=0)}x&&nm(a)})}return!1}
function mm(a,b,c){b.Ha=!0;var d=a.I.indexOf(b);0<=d&&(a.I.splice(d,1),a.P.splice(d,1));a.I.push(b);a.P.push(ka());c&&nm(a)}function nm(a){if(a.I.length){var b=a.P[0]+2E3;a.G&&a.R<b&&(clearTimeout(a.G),a.G=null);if(!a.G){var c=ka(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.G=setTimeout(function(){dm(a,!0)},b);a.R=c+b}}else a.G&&(clearTimeout(a.G),a.G=null)}
function dm(a,b){b&&(a.G=null);var c=a.I[0];if(c){for(var d=c.Jj,e=c.Kj,c=c.sector,f=0,g=[],h=c-1;h<a.A[d][e].length;h++){var k=a.A[d][e][h];if(!k.Ha)break;var m=a.I.indexOf(k);a.I.splice(m,1);a.P.splice(m,1);g=g.concat(om(k));k.Ha=!1;f++}d=lm(a,d,e,c,f,g,b);return b||d}return!1}l.info=function(){return this.A.length?[this.A.length,this.A[0].length,this.A[0][0].length,this.A[0][0][0].length]:[0,0,0,0]};
l.seek=function(a,b,c,d,e){var f=null,g=this.C,h=this.A[a];if(h){var k=h[b];if(!k&&g.cg&&b<g.jb)for(k=h[b]=Array(g.xd),h=0;h<k.length;h++)k[h]=em(null,a,b,h+1,g.vb,0);if(k){for(h=0;h<k.length;h++)if(k[h]&&k[h].sector==c){f=k[h];if(null===f.pattern)if(d)f.pattern=0;else{for(d=1;++h<k.length;)null===k[h].pattern&&d++;km(this,a,b,c,d,null!=e,function(a,b){a&&(f=null);e&&e(f,b)});return e?null:f}break}!f&&g.cg&&9==g.mb&&(f=k[h]=em(null,a,b,g.mb,g.vb,0))}}e&&e(f,!1);return f};
function hm(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}function om(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var g=f<e.length?e[f]:a;c[d++]=g&255;c[d++]=g>>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}l.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};
l.write=function(a,b,c){if(this.re)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Dc?f<a.Uc?(a.Dc+=a.Uc-f,a.Uc=f):f>=a.Uc+a.Dc&&(a.Dc+=f-(a.Uc+a.Dc)+1):(a.Uc=f,a.Dc=1);d[f]=d[f]&~(255<<b)|c<<b;this.D&&mm(this,a,!0)}return!0}return null};function pm(a){for(var b="",c=0,d;d=im(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(jm(a,d,e));return btoa(b)}
l.save=function(){var a=0,b=[];b[a++]=[this.H,this.L,this.ib,this.jb,this.eb,this.nb];if(!this.D&&!this.re)for(var c=this.A,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Dc){for(var h=[],k=0,m=g.Uc,p=g.Uc+g.Dc;m<p;)h[k++]=g.data[m++];b[a++]=[d,e,f,g.Uc,h]}}return b};
l.save=function(){var a=0,b=[];b[a++]=[this.H,this.L,this.ib,this.jb,this.eb,this.nb];if(!this.D&&!this.re)for(var c=this.A,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Dc){for(var h=[],k=0,m=g.Uc,n=g.Uc+g.Dc;m<n;)h[k++]=g.data[m++];b[a++]=[d,e,f,g.Uc,h]}}return b};
l.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.A.length&&6<=e.length?cm(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.L&&e[1]!=this.L&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.L+")",b=-2));for(this.A.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],k=g[f++],m=g[f++];if(h>=this.A.length||k>=this.A[h].length||m>=this.A[h][k].length){c="sector (CHS="+h+":"+k+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.re){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.A[h][k][m]){for(k=h.data.length;k<e;)h.data[k++]=h.pattern;k=0;h.Uc=e;for(h.Dc=f.length;e<g;)h.data[e++]=f[k++];b++}}}0>b&&-2!=b&&this.controller.Ba("Unable to restore disk '"+this.B+": "+c);return b};
l.toJSON=function(){var a;a=0;for(var b;b=im(this,a++);)qm(b);a=JSON.stringify(this.A,function(a,b){return"file"==a?void 0:b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function qm(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function rm(a){Ia.call(this,"FDC",a,rm);this.dmaRead=this.qj;this.dmaWrite=this.rj;this.dmaFormat=this.Cj;this.K=a.autoMount||null;this.W=a.sortBy||"name";"none"==this.W&&(this.W=null);this.C=[];this.Y=!ya("Mobi")&&window&&"FileReader"in window}Qa(rm);aa={};
var sm={3:{jd:3,yd:0,name:aa.Fm},4:{jd:2,yd:1,name:aa.Dm},5:{jd:9,yd:7,name:aa.Nm},6:{jd:9,yd:7,name:aa.ym},7:{jd:2,yd:0,name:aa.Am},8:{jd:1,yd:2,name:aa.Em},10:{jd:2,yd:7,name:aa.zm},13:{jd:6,yd:7,name:aa.km},15:{jd:3,yd:0,name:aa.Cm}};l=rm.prototype;
l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.ka[b]=c;if(this.W){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.W?a.text.localeCompare(b.text):a.value.localeCompare(b.value)});for(a=0;a<b.length;a++)c.options[a]=b[a]}c.onchange=function(){var a=d.ka.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){n("FDC option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;
l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.ka[b]=c;if(this.W){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.W?a.text.localeCompare(b.text):a.value.localeCompare(b.value)});for(a=0;a<b.length;a++)c.options[a]=b[a]}c.onchange=function(){var a=d.ka.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){p("FDC option error: "+h.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}};return!0;case "descDisk":case "listDrives":return this.ka[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tm(d,a)},!0;case "loadDrive":return this.ka[b]=c,c.onclick=function(){var a=d.ka.listDisks;a&&um(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[b]=c;c.onclick=function(){var a=d.ka.listDrives;a&&a.options&&d.B&&(a=ca(a.value,10),(a=d.B[a])?
(a=a.ta)?(a=za(pm(a),"octet-stream",!0,a.nh.replace(".json",".img")),n(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[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;um(d,fa(b,!0),b,a)}return!1};return!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);ym(this,"None","",!0);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)};
(a=a.ta)?(a=za(pm(a),"octet-stream",!0,a.nh.replace(".json",".img")),p(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[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;um(d,fa(b,!0),b,a)}return!1};return!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){p("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Ob(b,this,wm);Qb(b,this,xm);ym(this,"None","",!0);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)};
l.Vb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.jg){this.C=[];for(var c=0;c<this.B.length;c++)Am(this,c,!0);zm(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ka.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.value="";for(var d=0;d<this.Z;d++){var e=document.createElement("option");e.value=d;e.text=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Z&&(c.value="0",tm(this,0))}}return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){vm(this)};
l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.Qa;c[b++]=0;c[b++]=this.aa;c[b++]=this.I;c[b++]=this.G;c[b++]=this.D;c[b++]=this.R;for(var d=b++,e=0,f=[],g=0;g<this.B.length;g++){var h=e++,k=this.B[g],m=0,p=[];p[m++]=k.kb;p[m++]=[k.name,k.ib,k.jb,k.eb,k.nb,k.oe,k.Hf,k.Ue,k.Ve];p[m++]=k.Ya;p[m++]=k.wd+100;p[m++]=k.wb;p[m++]=k.mb;p[m++]=k.xd;p[m++]=k.vb;p[m++]=k.Ua;p[m++]=k.me;p[m++]=k.ij;p[m]=k.Vd;f[h]=p}c[d]=f;d=b++;for(e=0;e<this.B.length;e++)f=this.B[e],f.ta&&Bm(this,f.Vd,f.ta);c[d]=this.C;
l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.Qa;c[b++]=0;c[b++]=this.aa;c[b++]=this.I;c[b++]=this.G;c[b++]=this.D;c[b++]=this.R;for(var d=b++,e=0,f=[],g=0;g<this.B.length;g++){var h=e++,k=this.B[g],m=0,n=[];n[m++]=k.kb;n[m++]=[k.name,k.ib,k.jb,k.eb,k.nb,k.oe,k.Hf,k.Ue,k.Ve];n[m++]=k.Ya;n[m++]=k.wd+100;n[m++]=k.wb;n[m++]=k.mb;n[m++]=k.xd;n[m++]=k.vb;n[m++]=k.Ua;n[m++]=k.me;n[m++]=k.ij;n[m]=k.Vd;f[h]=n}c[d]=f;d=b++;for(e=0;e<this.B.length;e++)f=this.B[e],f.ta&&Bm(this,f.Vd,f.ta);c[d]=this.C;
c[b++]=this.L;c[b]=this.H;C(a,0,c);return a.data()};l.restore=function(a){return vm(this,a[0])};
function vm(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c++;a.aa=b[c++];a.I=b[c++];a.G=b[c++];a.D=b[c++];a.R=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.C=d);void 0===a.B&&(a.Z=4,a.P&&(a.Z=+Yi(a.P,Di,void 0)),a.B=Array(4));for(d=0;d<a.B.length;d++){var g=a.B[d];if(void 0===g){var g=a.B[d]={},h;if(a.P)a:{h=a.P;if(d<+Yi(h,Di,void 0)){if(!h.Y){h=360;break a}if(d<h.Y.length){h=h.Y[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.jb=1;default:g.ib=40;g.eb=9;break;case 720:g.ib=
80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,p=f[d],x=0;h=!0;g.Qa=m;g.Qc=g.me=!1;void 0===p&&(p=[192,!0,0,2,0]);"boolean"==typeof p[1]&&(p[1]=["Floppy Drive",g.ib||40,g.jb||p[3],g.eb||9,g.nb||512,p[1],g.Hf,g.Ue,g.Ve]);g.kb=p[x++];var r=p[x++];g.name=r[0];g.ib=r[1];g.jb=r[2];g.eb=r[3];g.nb=r[4];g.oe=r[5];(g.Hf=r[6])?(g.Ue=r[7],g.Ve=r[8]):(g.Hf=g.ib,g.Ue=g.jb,g.Ve=g.eb);g.Ya=p[x++];g.wd=p[x++];g.wb=p[x++];g.wd=100<=g.wd?g.wd-100:g.wd-g.wb;g.mb=p[x++];g.xd=p[x++];
g.vb=p[x++];g.Ua=p[x++];g.Wa=null;g.ta||(g.Vd="");r=p[x++];102==r&&(r=!1);if("boolean"==typeof r){var z=r,r=p[x++],p=p[x];z?(x=r,r=k.B[m],Am(k,m,!0,!0),r.me=!0,m=new am(k,r,"preload"),k.Mh(r,m,x,p,!0)):Cm(k,m,r,p,!0)?g.ta&&p&&Dm(k,r,p,g.ta):ab(k,!1)}else void 0!==r&&g.ta&&0>g.ta.restore(r)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e}
80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,n=f[d],x=0;h=!0;g.Qa=m;g.Qc=g.me=!1;void 0===n&&(n=[192,!0,0,2,0]);"boolean"==typeof n[1]&&(n[1]=["Floppy Drive",g.ib||40,g.jb||n[3],g.eb||9,g.nb||512,n[1],g.Hf,g.Ue,g.Ve]);g.kb=n[x++];var r=n[x++];g.name=r[0];g.ib=r[1];g.jb=r[2];g.eb=r[3];g.nb=r[4];g.oe=r[5];(g.Hf=r[6])?(g.Ue=r[7],g.Ve=r[8]):(g.Hf=g.ib,g.Ue=g.jb,g.Ve=g.eb);g.Ya=n[x++];g.wd=n[x++];g.wb=n[x++];g.wd=100<=g.wd?g.wd-100:g.wd-g.wb;g.mb=n[x++];g.xd=n[x++];
g.vb=n[x++];g.Ua=n[x++];g.Wa=null;g.ta||(g.Vd="");r=n[x++];102==r&&(r=!1);if("boolean"==typeof r){var z=r,r=n[x++],n=n[x];z?(x=r,r=k.B[m],Am(k,m,!0,!0),r.me=!0,m=new am(k,r,"preload"),k.Mh(r,m,x,n,!0)):Cm(k,m,r,n,!0)?g.ta&&n&&Dm(k,r,n,g.ta):ab(k,!1)}else void 0!==r&&g.ta&&0>g.ta.restore(r)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e}
function zm(a,b){b||(a.S=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ka.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=fa(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!Cm(a,g,f,e,!0)&&b&&ab(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.S}
function um(a,b,c,d){var e,f=a.ka.listDrives;if(f&&!isNaN(e=ca(f.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ba('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=fa(c)}for(;0>Cm(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,h=void 0,h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Am(a,
e,!1,!0)}}else Am(a,e);else a.Ba("Unable to load the selected drive")}function Cm(a,b,c,d,e,f){var g=a.B[b];if(d&&g.Vd!=d){Am(a,b,e,!0);if(g.Qc)return a.Ba("Drive "+b+" busy"),0;g.Qc=!0;e&&(g.Nd=!0,a.S++);g.me=!!f;return(new am(a,g,"preload")).load(c,d,f,a.Mh)?1:0}return-1}
@ -562,8 +562,8 @@ function ym(a,b,c,d){if((a=a.ka.listDisks)&&a.options){for(var e=0;e<a.options.l
function tm(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.ka.listDisks,e=a.ka.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.me?"?":c.Vd,!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 Am(a,b,c,d){var e=a.B[b];e.ta&&(Bm(a,e.Vd,e.ta),e.ij="",e.Vd="",e.ta=null,e.me=!1,a.L|=128,d||a.Ba("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||tm(a,b))}
function Dm(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 Bm(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}}l.Al=function(a,b){b&4?this.R&4||this.R&8&&this.P&&Se(this.P,6):vm(this);this.R=b};l.lk=function(){return 80};l.nk=function(){return this.aa};l.kk=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.R&8&&this.P&&Re(this.P,6);++this.G>=this.D&&(this.aa&=-81,this.G=this.D=0);return a};
l.zl=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=this.I[0]&31;if(void 0!==sm[c]&&this.D>=sm[c].jd){var d=!1;this.G=0;var c=Em(this),e,f,g,h,k,m=c&31;switch(m){case 3:Em(this);Em(this);Fm(this);break;case 4:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];Fm(this);Gm(this,(e.kb&-16777216)>>>24);break;case 5:case 6:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.wb=Em(this);g=Em(this);h=e.mb=Em(this);k=Em(this);e.vb=128<<k;e.xd=Em(this);Em(this);Em(this);6==m?(m=e,m.kb=72,m.ta&&
(m.Wa=null,m.kb=0,this.P&&(Cj(this.P,2,this,"dmaRead",m),yj(this.P,2)))):(m=e,m.kb=72,m.ta&&(m.ta.re?m.kb=576:(m.Wa=null,m.kb=0,this.P&&(Cj(this.P,2,this,"dmaWrite",m),yj(this.P,2)))));Hm(this,e,c,d,f,g,h,k);d=!0;break;case 7:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];e.wb=e.wd=0;e.kb=268435488;Fm(this);d=!0;break;case 8:e=this.B[this.Qa];e.Ya=0;Fm(this);Gm(this,e.Qa|e.Ya<<2|e.kb&255);Gm(this,e.wb);this.Qa=this.Qa+1&3;break;case 10:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=
e.mb=1;k=0;e.kb=0;e.ta&&(e.Wa=e.ta.seek(e.wb,e.Ya,e.mb))?k=e.Wa.length>>8:e.kb=72;Hm(this,e,c,d,f,g,h,k);d=!0;break;case 13:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=1;k=Em(this);e.vb=128<<k;e.xd=Em(this);Em(this);e.Fh=Em(this);m=e;m.kb=72;m.ta&&(m.Wa=null,m.kb=0,this.P&&(m.ie=0,m.Pc=Array(4),m.cg=!0,m.vf=0,Cj(this.P,2,this,"dmaFormat",m),yj(this.P,2),m.cg=!1));Hm(this,e,c,d,f,g,h,k);d=!0;break;case 15:f=Em(this),this.Qa=f&3,e=this.B[this.Qa],e.Ya=f>>2&1,f=Em(this),e.wb+=
(m.Wa=null,m.kb=0,this.P&&(Cj(this.P,2,this,"dmaRead",m),uj(this.P,2)))):(m=e,m.kb=72,m.ta&&(m.ta.re?m.kb=576:(m.Wa=null,m.kb=0,this.P&&(Cj(this.P,2,this,"dmaWrite",m),uj(this.P,2)))));Hm(this,e,c,d,f,g,h,k);d=!0;break;case 7:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];e.wb=e.wd=0;e.kb=268435488;Fm(this);d=!0;break;case 8:e=this.B[this.Qa];e.Ya=0;Fm(this);Gm(this,e.Qa|e.Ya<<2|e.kb&255);Gm(this,e.wb);this.Qa=this.Qa+1&3;break;case 10:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=
e.mb=1;k=0;e.kb=0;e.ta&&(e.Wa=e.ta.seek(e.wb,e.Ya,e.mb))?k=e.Wa.length>>8:e.kb=72;Hm(this,e,c,d,f,g,h,k);d=!0;break;case 13:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=1;k=Em(this);e.vb=128<<k;e.xd=Em(this);Em(this);e.Fh=Em(this);m=e;m.kb=72;m.ta&&(m.Wa=null,m.kb=0,this.P&&(m.ie=0,m.Pc=Array(4),m.cg=!0,m.vf=0,Cj(this.P,2,this,"dmaFormat",m),uj(this.P,2),m.cg=!1));Hm(this,e,c,d,f,g,h,k);d=!0;break;case 15:f=Em(this),this.Qa=f&3,e=this.B[this.Qa],e.Ya=f>>2&1,f=Em(this),e.wb+=
f-e.wd,0>e.wb&&(e.wb=0),e.wb>=e.ib&&(e.wb=e.ib-1),e.wd=f,e.kb=32,e.wb||(e.kb|=268435456),Fm(this),d=!0}0<this.D&&(this.aa|=80);this.R&8&&(!e||e.kb&8||!d||this.P&&Se(this.P,6))}};l.mk=function(){var a=this.L;this.L&=-129;return a};l.yl=function(a,b){this.H=b};function Hm(a,b,c,d,e,f,g,h){Fm(a);Gm(a,b.Qa|b.Ya<<2|b.kb&255);Gm(a,(b.kb&65280)>>>8);Gm(a,(b.kb&16711680)>>>16);var k=0;if(e!=b.wb||f!=b.Ya)k=g=1;c&128&&(f^=k,d||(k=0));Gm(a,e+k);Gm(a,f);Gm(a,g);Gm(a,h)}
function Em(a){var b=a.I[a.G];a.G++;return b}function Fm(a){a.G=a.D=0}function Gm(a,b){a.I[a.D++]=b}l.qj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.kb&&a.ta){do{if(a.Wa&&(e=a.Ua,0<=(b=a.ta.read(a.Wa,a.Ua++)))){d=a.Wa;break}a.Wa=a.ta.seek(a.wb,a.Ya,a.mb);if(!a.Wa){a.kb=1088;break}a.Ua=0;Im(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};l.rj=function(a,b){return void 0!==b&&0<=b?Jm(a,b):-1};
l.Cj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.kb)c=-1;else{a.Pc[a.ie++]=c;if(a.ie==a.Pc.length){a.wb=a.Pc[0];a.Ya=a.Pc[1];a.mb=a.Pc[2];a.vb=128<<a.Pc[3];for(var d=a.ie=0;d<a.vb;d++)if(0>Jm(a,a.Fh)){c=-1;break a}a.vf++}a.vf>=a.xd&&(c=-1)}else c=-1;return c};function Jm(a,b){if(a.kb||!a.ta)return-1;do{if(a.Wa&&a.ta.write(a.Wa,a.Ua++,b))break;a.Wa=a.ta.seek(a.wb,a.Ya,a.mb);if(!a.Wa){a.kb=8256;b=-1;break}a.Ua=0;Im(a)}while(1);return b}
@ -571,66 +571,66 @@ function Im(a){a.mb++;a.mb>=a.Ve+1&&(a.mb=1,a.Ya++,a.Ya>=a.Ue&&(a.Ya=0,a.wb++))}
function Z(a){Ia.call(this,"HDC",a,Z);this.dmaRead=this.sj;this.dmaWrite=this.tj;this.dmaWriteBuffer=this.Dj;this.dmaWriteFormat=this.Ej;this.ia=[];this.qa=a.drives;this.W="at"==a.type}Qa(Z);
var Km=["XTC","ATC","COMPAQ"],Lm=[{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]}];l=Z.prototype;
l.zb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.ka[b]=c,c.onclick=function(a){return function(){var b=d.B&&d.B[a];b&&b.ta?(b=b.ta,b=za(pm(b),"octet-stream",!0,b.nh.replace(".json",".img")),n(b)):d.Ba("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;if(d=jc(a,"drives"))this.ia=d;else if(this.qa)try{this.ia=eval("("+this.qa+")")}catch(e){n("HDC drive configuration error: "+e.message+" ("+this.qa+")")}this.P=kb(a,"ChipSet");this.H=0;this.ra=3;Nb(b,this,this.W?Mm:Nm);Pb(b,this,this.W?Om:Pm);this.W&&(this.H++,this.P&&5180==this.P.ca&&this.H++,this.ra=2,b.P[496]=2,b.R[496]=2);Yd(c,19,this.Rk.bind(this));Yd(c,64,this.Sk.bind(this));this.reset();Qm(this)||ab(this)};
l.zb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.ka[b]=c,c.onclick=function(a){return function(){var b=d.B&&d.B[a];b&&b.ta?(b=b.ta,b=za(pm(b),"octet-stream",!0,b.nh.replace(".json",".img")),p(b)):d.Ba("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;if(d=jc(a,"drives"))this.ia=d;else if(this.qa)try{this.ia=eval("("+this.qa+")")}catch(e){p("HDC drive configuration error: "+e.message+" ("+this.qa+")")}this.P=kb(a,"ChipSet");this.H=0;this.ra=3;Ob(b,this,this.W?Mm:Nm);Qb(b,this,this.W?Om:Pm);this.W&&(this.H++,this.P&&5180==this.P.ca&&this.H++,this.ra=2,b.P[496]=2,b.R[496]=2);Yd(c,19,this.Rk.bind(this));Yd(c,64,this.Sk.bind(this));this.reset();Qm(this)||ab(this)};
l.Vb=function(a,b){if(!b)if(!a||!this.restore)Rm(this),this.ba.jg&&Qm(this,!0);else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.se=function(){return this.ba?this.ba.se():""};l.Ad=function(){return this.ba?this.ba.Ad():""};l.reset=function(){Rm(this,null,!0)};
l.save=function(){var a=new be(this),b=0,c=[];this.W?(c[b++]=this.K,c[b++]=this.za,c[b++]=this.L,c[b++]=this.oa,c[b++]=this.ma,c[b++]=this.la,c[b++]=this.Z,c[b++]=this.aa,c[b++]=this.pa,c[b++]=[this.R,this.Qa]):(c[b++]=this.da,c[b++]=this.aa,c[b++]=this.I,c[b++]=this.G,c[b++]=this.D,c[b++]=this.xa,c[b++]=this.va,c[b++]=this.ua,c[b++]=this.Y);for(var d=0,e=[],f=0;f<this.B.length;f++){var g=d++,h=this.B[f],k=0,m=[];m[k++]=h.errorCode;m[k++]=h.jj;m[k++]=h.oe;m[k++]=h.de;m[k++]=h.ee;m[k++]=h.Ya;m[k++]=
l.save=function(){var a=new be(this),b=0,c=[];this.W?(c[b++]=this.K,c[b++]=this.za,c[b++]=this.L,c[b++]=this.oa,c[b++]=this.ma,c[b++]=this.la,c[b++]=this.Z,c[b++]=this.aa,c[b++]=this.pa,c[b++]=[this.R,this.Qa]):(c[b++]=this.ea,c[b++]=this.aa,c[b++]=this.I,c[b++]=this.G,c[b++]=this.D,c[b++]=this.xa,c[b++]=this.va,c[b++]=this.ua,c[b++]=this.Y);for(var d=0,e=[],f=0;f<this.B.length;f++){var g=d++,h=this.B[f],k=0,m=[];m[k++]=h.errorCode;m[k++]=h.jj;m[k++]=h.oe;m[k++]=h.de;m[k++]=h.ee;m[k++]=h.Ya;m[k++]=
h.jb;m[k++]=h.Jd;m[k++]=h.mb;m[k++]=h.xd;m[k++]=h.vb;m[k++]=h.Ua;m[k]=h.ta?h.ta.save():null;e[g]=m}c[b]=e;C(a,0,c);return a.data()};l.restore=function(a){return Rm(this,a[0])};
function Rm(a,b,c){var d=0,e=!0;a.Qa=-1;if(a.W){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.K=b[d++],a.za=b[d++],a.L=b[d++],a.oa=b[d++],a.ma=b[d++],a.la=b[d++],a.Z=b[d++],a.aa=b[d++],a.pa=b[d++],a.R=b[d++],"object"==typeof a.R){var f=a.R;a.R=f[0];a.Qa=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.da=b[d++],a.aa=b[d++],a.I=b[d++],a.G=b[d++],a.D=b[d++],a.xa=b[d++],a.va=b[d++],a.ua=b[d++],f=b[d++],void 0!==f?a.Y=f:void 0===a.Y&&(a.Y=-1);void 0===a.B&&(a.B=Array(a.ia.length));b=b[d];void 0===b&&(b=
[]);for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var f=a.B[d],g=a,h=d,k=f,m=a.ia[d],p=b[d],x=c,r=0,z=!0;void 0===p&&(p=[0,0,!1,Array(8)]);k.Qa=h;k.errorCode=p[r++];k.jj=p[r++];k.oe=p[r++];k.de=p[r++];k.ee=p[r++];k.Ya=p[r++];k.jb=p[r++];k.Jd=p[r++];k.mb=p[r++];k.xd=p[r++];k.vb=p[r++];k.uf=g.W?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.Ad()||(k.mode="local");k.type=m.type;if(void 0===
k.type||void 0===Lm[g.H][k.type])k.type=g.ra;m=Lm[g.H][k.type];k.eb=m[2]||17;k.nb=m[3]||512;if(x&&g.P){var E=g.P,J=k.type;if(E.B){var x=null,m=void 0,W=E.B[18];15<J&&(x=J,J=15);h?(W=W&240|J,m=26):(W=W&15|J<<4,m=25);J=E;J.B&&(J.B[18]=W,aj(J));null!=x&&E.B&&(E.B[m]=x,aj(E))}}void 0===k.ta&&(k.ta=null,g.Ba("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Sm(g,k);k.Ua=p[r++];k.Wa=null;k.ta&&(g=p[r],void 0!==g&&0>k.ta.restore(g)&&(z=!1),z&&void 0!==k.Ua&&(k.Wa=k.ta.seek(k.Jd,k.Ya,k.mb+k.uf)));z||(e=
!1);null!=a.da&&1>=d&&(a.da|=(f.type&3)<<(1-d<<1))}0<=a.Qa&&(a.C=a.B[a.Qa]);return e}function Sm(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.de[2])?e=b.de[0]<<8|b.de[1]:c=b.type);null==c||d||(d=Lm[a.H][c][1],e=Lm[a.H][c][0]);d&&((c=Lm[a.H][b.type])&&e!=c[0]&&d!=c[1]&&a.Ba("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.ib=e,b.jb=d,null==b.ta&&(b.ta=new am(a,b,b.mode)))}}
function Rm(a,b,c){var d=0,e=!0;a.Qa=-1;if(a.W){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.K=b[d++],a.za=b[d++],a.L=b[d++],a.oa=b[d++],a.ma=b[d++],a.la=b[d++],a.Z=b[d++],a.aa=b[d++],a.pa=b[d++],a.R=b[d++],"object"==typeof a.R){var f=a.R;a.R=f[0];a.Qa=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.ea=b[d++],a.aa=b[d++],a.I=b[d++],a.G=b[d++],a.D=b[d++],a.xa=b[d++],a.va=b[d++],a.ua=b[d++],f=b[d++],void 0!==f?a.Y=f:void 0===a.Y&&(a.Y=-1);void 0===a.B&&(a.B=Array(a.ia.length));b=b[d];void 0===b&&(b=
[]);for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var f=a.B[d],g=a,h=d,k=f,m=a.ia[d],n=b[d],x=c,r=0,z=!0;void 0===n&&(n=[0,0,!1,Array(8)]);k.Qa=h;k.errorCode=n[r++];k.jj=n[r++];k.oe=n[r++];k.de=n[r++];k.ee=n[r++];k.Ya=n[r++];k.jb=n[r++];k.Jd=n[r++];k.mb=n[r++];k.xd=n[r++];k.vb=n[r++];k.uf=g.W?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.Ad()||(k.mode="local");k.type=m.type;if(void 0===
k.type||void 0===Lm[g.H][k.type])k.type=g.ra;m=Lm[g.H][k.type];k.eb=m[2]||17;k.nb=m[3]||512;if(x&&g.P){var E=g.P,J=k.type;if(E.B){var x=null,m=void 0,W=E.B[18];15<J&&(x=J,J=15);h?(W=W&240|J,m=26):(W=W&15|J<<4,m=25);J=E;J.B&&(J.B[18]=W,aj(J));null!=x&&E.B&&(E.B[m]=x,aj(E))}}void 0===k.ta&&(k.ta=null,g.Ba("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Sm(g,k);k.Ua=n[r++];k.Wa=null;k.ta&&(g=n[r],void 0!==g&&0>k.ta.restore(g)&&(z=!1),z&&void 0!==k.Ua&&(k.Wa=k.ta.seek(k.Jd,k.Ya,k.mb+k.uf)));z||(e=
!1);null!=a.ea&&1>=d&&(a.ea|=(f.type&3)<<(1-d<<1))}0<=a.Qa&&(a.C=a.B[a.Qa]);return e}function Sm(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.de[2])?e=b.de[0]<<8|b.de[1]:c=b.type);null==c||d||(d=Lm[a.H][c][1],e=Lm[a.H][c][0]);d&&((c=Lm[a.H][b.type])&&e!=c[0]&&d!=c[1]&&a.Ba("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.ib=e,b.jb=d,null==b.ta&&(b.ta=new am(a,b,b.mode)))}}
function Qm(a,b){b||(a.S=0);for(var c=0;c<a.B.length;c++){var d=a.B[c];if(d.name&&d.path){if(!(b&&d.ta&&d.ta.Af)){var e;e=a;var f=d.name,d=d.path,g=e.B[c];g.Qc?(e.Ba("Drive "+c+" busy"),e=!0):(g.Qc=!0,g.Nd=!0,e.S++,(g.ta||new am(e,g,g.mode)).load(f,d,null,e.Fj),e=!1);!e&&b&&ab(a,!1)}}else b&&void 0!==d.type&&(d.ta=null,Sm(a,d,d.type))}return!!a.S}
l.Fj=function(a,b,c){a.Qc=!1;if(a.ta=b)this.Ba('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.Qa),a.Nd),b=b.info(),b[0]==a.ib&&b[1]==a.jb&&b[2]==a.eb&&b[3]==a.nb||this.Ba("Warning: disk geometry ("+b[0]+":"+b[1]+":"+b[2]+") does not match "+Km[this.H]+" drive type "+a.type+" ("+a.ib+":"+a.jb+":"+a.eb+")");a.Nd&&(a.Nd=!1,--this.S||ab(this))};l.Ok=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.P&&Re(this.P,5);this.aa&=-33;++this.G>=this.D&&(this.G=this.D=0,this.aa&=-15);return a};
l.Wl=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=12!=this.I[0]?6:this.I.length;6==this.D&&(this.aa&=-2);this.D>=c&&(this.aa|=2,this.aa&=-2,Tm(this))};l.Pk=function(){var a=this.aa;this.G<this.D&&(this.aa|=1);return a};l.Zl=function(a,b){this.xa=b;this.P&&Re(this.P,5);Rm(this)};l.Nk=function(){return this.da};l.Yl=function(a,b){this.va=b;this.aa=13};l.Xl=function(a,b){this.ua=b};l.hh=function(){};
l.Wl=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=12!=this.I[0]?6:this.I.length;6==this.D&&(this.aa&=-2);this.D>=c&&(this.aa|=2,this.aa&=-2,Tm(this))};l.Pk=function(){var a=this.aa;this.G<this.D&&(this.aa|=1);return a};l.Zl=function(a,b){this.xa=b;this.P&&Re(this.P,5);Rm(this)};l.Nk=function(){return this.ea};l.Yl=function(a,b){this.va=b;this.aa=13};l.Xl=function(a,b){this.ua=b};l.hh=function(){};
function Um(a){var b=-1;a.C&&(b=Vm(a.C,function(){}),(1==a.C.Ua||a.C.Ua==a.C.nb)&&1<a.C.Ua&&(a.C.vb-=a.C.nb,a.L=a.L-1&255,a.C.vb>=a.C.nb?(a.aa=128,Vm(a.C,function(b){0<=b?(Wm(a),a.P&&5180==a.P.ca&&(a.aa=0),a.aa|=88):(a.aa=1,a.K=16)},!1)):a.aa=80));return b}l.uj=function(){return Um(this)|Um(this)<<8};function Xm(a,b){a.C&&a.C.vb>=a.C.nb&&(0>Ym(a.C,b)?(a.aa=1,a.K=16):(1==a.C.Ua||a.C.Ua==a.C.nb)&&1<a.C.Ua&&(a.C.vb-=a.C.nb,a.L=a.L-1&255,Wm(a),a.aa=80,a.C.vb>=a.C.nb&&(a.aa|=8)))}
l.gl=function(a,b){Xm(this,b&255);Xm(this,b>>8&255)};l.Uj=function(){return this.K};l.ll=function(a,b){this.za=b};l.Wj=function(){return this.L};l.jl=function(a,b){this.L=b};l.Xj=function(){return this.oa};l.kl=function(a,b){this.oa=b};l.Sj=function(){return this.ma};l.fl=function(a,b){this.ma=b};l.Rj=function(){return this.la};l.el=function(a,b){this.la=b};l.Tj=function(){return this.Z};l.hl=function(a,b){this.Z=b;this.aa=this.B[this.Z&16?1:0]?this.aa|80:this.aa&-65};
l.Yj=function(){var a=this.aa;this.aa&64&&(this.aa&=-129);return a};l.dl=function(a,b){this.pa=b;this.P&&Re(this.P,14);Zm(this)};l.il=function(a,b){this.R&4&&!(b&4)&&(this.K=1);this.R=b};
function Zm(a){var b=!1,c=a.pa,d=a.Z&16?1:0,e=a.Z&15,f=a.ma|(a.la&3)<<8,g=a.oa,h=a.L||256;a.Qa=-1;a.C=null;a.K=0;a.aa=80;var k=a.B[d];k?(k.Jd=f,k.Ya=e,k.mb=g,k.vb=h*k.nb,c=144<=c?c:c&240,k.Wa=null,k.Ua=0,k.errorCode=0,a.Qa=d,a.C=k):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.aa=128;Vm(k,function(b){0<=b&&a.P?(Wm(a),a.aa=88):(a.aa=1,a.K=16)},!1);break;case 48:a.aa=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.K=1;b=!0;break;case 145:k.jb=e+1,k.eb=h,b=!0}b&&Wm(a)}
function Wm(a){!a.P||a.R&2||Se(a.P,14,120)}
function Tm(a){a.G=0;var b=$m(a),c=$m(a),d=c&32,e=d>>5,f=c&31,g=$m(a),h=$m(a),k=g<<2&768|h,m=g&63,p=$m(a),x=$m(a),r=a.B[e];r&&(r.Jd=k,r.Ya=f,r.mb=m,r.vb=p*r.nb);switch(b){case 3:an(a,r?r.errorCode:4);en(a,c);en(a,g);en(a,h);en(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=$m(a));)r&&c<r.de.length&&(r.de[c++]=b);r&&Sm(a,r);b=0;r||a.Y!=e||(a.Y=-1,b=2);an(a,b|d);b=-1;break;case 224:case 228:an(a,0|d),b=-1}if(0<=b)switch(void 0===r?b=-1:(r.errorCode=0,r.jj=0),b){case 0:an(a,0|d);break;case 1:r.Ie=x;an(a,0|
d);break;case 5:an(a,0|d);break;case 8:fn(a,r,function(b){an(a,b|d)});break;case 10:gn(a,r,function(b){an(a,b|d)});break;case 15:hn(a,r,function(b){an(a,b|d)});break;default:an(a,2|d)}}function $m(a){var b=-1;a.G<a.D&&(b=a.I[a.G++]);return b}function an(a,b){a.G=a.D=0;void 0!==b&&en(a,b);a.P&&Se(a.P,5);a.aa|=32}function en(a,b){a.I[a.D++]=b}l.sj=function(a,b,c){void 0===b||0>b?Vm(a,c):c(-1,!1)};l.tj=function(a,b){return void 0!==b&&0<=b?Ym(a,b):-1};
function Tm(a){a.G=0;var b=$m(a),c=$m(a),d=c&32,e=d>>5,f=c&31,g=$m(a),h=$m(a),k=g<<2&768|h,m=g&63,n=$m(a),x=$m(a),r=a.B[e];r&&(r.Jd=k,r.Ya=f,r.mb=m,r.vb=n*r.nb);switch(b){case 3:an(a,r?r.errorCode:4);bn(a,c);bn(a,g);bn(a,h);bn(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=$m(a));)r&&c<r.de.length&&(r.de[c++]=b);r&&Sm(a,r);b=0;r||a.Y!=e||(a.Y=-1,b=2);an(a,b|d);b=-1;break;case 224:case 228:an(a,0|d),b=-1}if(0<=b)switch(void 0===r?b=-1:(r.errorCode=0,r.jj=0),b){case 0:an(a,0|d);break;case 1:r.Ie=x;an(a,0|
d);break;case 5:an(a,0|d);break;case 8:fn(a,r,function(b){an(a,b|d)});break;case 10:gn(a,r,function(b){an(a,b|d)});break;case 15:hn(a,r,function(b){an(a,b|d)});break;default:an(a,2|d)}}function $m(a){var b=-1;a.G<a.D&&(b=a.I[a.G++]);return b}function an(a,b){a.G=a.D=0;void 0!==b&&bn(a,b);a.P&&Se(a.P,5);a.aa|=32}function bn(a,b){a.I[a.D++]=b}l.sj=function(a,b,c){void 0===b||0>b?Vm(a,c):c(-1,!1)};l.tj=function(a,b){return void 0!==b&&0<=b?Ym(a,b):-1};
l.Dj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Ua<a.ee.length?a.ee[a.Ua++]=c:(a.errorCode=20,c=-1)):c=-1;return c};l.Ej=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.Pc[a.ie++]=c;if(a.ie==a.Pc.length){a.Jd=a.Pc[0];a.Ya=a.Pc[1];a.mb=a.Pc[2];a.vb=128<<a.Pc[3];for(var d=a.ie=0;d<a.vb;d++)if(0>Ym(a,a.Fh)){c=-1;break a}a.vf++}a.vf>=a.xd&&(c=-1)}else c=-1;return c};
function fn(a,b,c){b.errorCode=4;if(b.ta&&(b.Wa=null,a.P)){b.errorCode=0;Cj(a.P,3,a,"dmaRead",b);yj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function gn(a,b,c){b.errorCode=4;if(b.ta&&(b.Wa=null,a.P)){b.errorCode=0;Cj(a.P,3,a,"dmaWrite",b);yj(a.P,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
function hn(a,b,c){b.errorCode=4;b.ee&&b.ee.length==b.vb||(b.ee=Array(b.vb));b.Ua=0;a.P?(b.errorCode=0,Cj(a.P,3,a,"dmaWriteBuffer",b),yj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
function fn(a,b,c){b.errorCode=4;if(b.ta&&(b.Wa=null,a.P)){b.errorCode=0;Cj(a.P,3,a,"dmaRead",b);uj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function gn(a,b,c){b.errorCode=4;if(b.ta&&(b.Wa=null,a.P)){b.errorCode=0;Cj(a.P,3,a,"dmaWrite",b);uj(a.P,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
function hn(a,b,c){b.errorCode=4;b.ee&&b.ee.length==b.vb||(b.ee=Array(b.vb));b.Ua=0;a.P?(b.errorCode=0,Cj(a.P,3,a,"dmaWriteBuffer",b),uj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
function Vm(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.Wa&&(f=a.Ua,d=a.ta.read(a.Wa,a.Ua),a.Ua+=g,0<=d))return e=a.Wa,b&&b(d,!1,e,f),d;if(b){if(a.ta)return a.ta.seek(a.Jd,a.Ya,a.mb+a.uf,!1,function(c,k){(a.Wa=c)?(e=c,f=a.Ua=0,jn(a),d=a.ta.read(a.Wa,a.Ua),a.Ua+=g):a.errorCode=20;b(d,k,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d}
function Ym(a,b){if(a.errorCode)return-1;do{if(a.Wa&&a.ta.write(a.Wa,a.Ua++,b))break;a.ta&&a.ta.seek(a.Jd,a.Ya,a.mb+a.uf,!0,function(b){a.Wa=b});if(!a.Wa){a.errorCode=20;b=-1;break}a.Ua=0;jn(a)}while(1);return b}function jn(a){a.mb++;var b=1-a.uf;a.mb>=a.eb+b&&(a.mb=b,a.Ya++,a.Ya>=a.jb&&(a.Ya=0,a.Jd++))}l.Rk=function(){var a=this.A.M&255;!(this.A.J>>8)&&128<a&&(this.Y=a-128);return!0};l.Sk=function(){var a;(a=this.A.J>>8||!this.P)||(a=!(this.P.gc[0].Vc&64));return a?!0:!1};
var Nm={800:Z.prototype.Ok,801:Z.prototype.Pk,802:Z.prototype.Nk},Mm={496:Z.prototype.uj,497:Z.prototype.Uj,498:Z.prototype.Wj,499:Z.prototype.Xj,500:Z.prototype.Sj,501:Z.prototype.Rj,502:Z.prototype.Tj,503:Z.prototype.Yj},Pm={800:Z.prototype.Wl,801:Z.prototype.Zl,802:Z.prototype.Yl,803:Z.prototype.Xl,807:Z.prototype.hh,811:Z.prototype.hh,815:Z.prototype.hh},Om={496:Z.prototype.gl,497:Z.prototype.ll,498:Z.prototype.jl,499:Z.prototype.kl,500:Z.prototype.fl,501:Z.prototype.el,502:Z.prototype.hl,503:Z.prototype.dl,
1014:Z.prototype.il};Ea(function(){for(var a=Za(document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Z(d);Ya(d,c)}});function be(a,b,c){this.id=a.id;this.key=kn(a,b,c);this.Ia=a.Ia;ln(this,a.fj)}function kn(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}
be.prototype={constructor:be,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:ta()&&(a=wa(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){ln(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 ln(a,b){a[a.id]={};b&&C(a,"parms",b);a.A=!1}function mn(a){var b=!0;if(ta()){var c=JSON.stringify(a[a.id]);xa(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function nn(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function on(a,b){return a[a.id][b]||null}function C(a,b,c){try{a[a.id][b]=c}catch(d){}}
function pn(a,b,c){Ia.call(this,"Computer",a,pn);this.ea.Rb=!1;qn(this,b);this.ba=jc(this,"autoPower",a);this.G=0;this.ia=a.busWidth||a.buswidth;this.B=rn;this.S=null;this.K=this.da=!1;this.la=jc(this,"url")||"";this.ma=(Math.random()+.1).toString(36).substr(2,12);this.C=sn(this);if(this.A=Va("CPU",this.id)){this.Ia=Va("Debugger",this.id);this.I=[];for(b=null;b=kb(this,"Video",b);)this.I.push(b);this.ha=new rb({id:this.lf+".bus",busWidth:this.ia},this.A,this.Ia);var d,e=Ta(this.id);if((this.D=Va("Panel",
this.id))&&this.D.gg)for(b=0;b<e.length;b++)d=e[b],d.Ba=this.D.Ba,d.rc=this.D.rc,d.gg=this.D.gg;for(b=0;b<e.length;b++)d=e[b],d.pc&&d.pc(this,this.ha,this.A,this.Ia);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.P=d:this.B=parseInt(d,10));var f;if(a=jc(this,"state")||(f=!0,a.state))b=this.W=a,f||(this.K=!0,this.B=rn),this.B&&(this.R=new be(this,tn),this.R.load()?b=null:delete this.R);!b&&this.B&&(b=un(this))&&(this.K=!0);if(b){var g=this;pa(b,null,!0,function(a,b,c){c?(g.P=null,g.K=!1,g.Ba("Unable to load machine state from server (error "+
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.S=b,g.da=!0);ab(g)})}else ab(this);this.ka.power||(this.ba=!0);!c&&this.ba&&vn(this,this.df)}else n("Unable to find CPU component")}Qa(pn);var tn="1.22.0",rn=0;l=pn.prototype;l.se=function(){return this.ma};function qn(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){n(d.message+" ("+c+")")}}a.L=b}
function jc(a,b,c){var d=b.toLowerCase(),d=La[b]||La[d];void 0===d&&a.L&&(d=a.L[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l.Ad=function(){return this.C||""};function vn(a,b,c){for(var d=Ta(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!bb(f)){bb(f,function(){vn(a,b,c)});return}}b.call(a,c)}
function wn(a,b){var c=new be(a,tn,"validate");if(c.load()&&nn(c)){var d=on(c,"timestamp"),e=b?on(b,"timestamp"):"unknown";d!=e&&(a.Ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.df=function(a){void 0===a&&(a=this.B||(this.S?1:rn));if(!this.G){this.G++;var b=!1,c=!1;this.Z=!1;var d=this.R||new be(this,tn);if(-1==a)b=!0;else if(a>rn){if(d.load(this.S)){this.H=new be(this,tn,"failsafe");this.H.load()&&(xn(this,d),a=2,ln(this.H));C(this.H,"timestamp",la());mn(this.H);var e=this.B&&!this.K;if(1==a||ra("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=nn(d)){var f=on(d,"code"),g=on(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Ba("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.C=null)):this.rc(f+": "+g),ln(d),d.load()?(c=nn(d),e=!0):c=!1))}e&&wn(this,c?d:null)}else 2==a&&d.clear()}else wn(this);delete this.S;delete this.R}e=Ta(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.A&&(c=yn(this,g,d,b,c));b=[d,a,c];-1!=a?vn(this,this.Nh,b):this.Nh(b)}};
function yn(a,b,c,d,e){if(!b.ea.Rb){b.ea.Rb=!0;if(b.Vb){var f=null;e&&((f=on(c,b.id))||(f=on(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Vb(f,d)&&f&&(n("Unable to restore state for "+b.type),a.W&&!a.da?(c.clear(),a.B=rn,window&&window.location.reload()):a.Z=!0,b.Vb(null),e=!1)}if(!d&&b.zh)for(a=b.zh.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Nh=function(a){var b=a[0],c=0>a[1];a=a[2];this.ea.Rb=!0;var d=this.ka.power;d&&(d.textContent="Shutdown");this.Y||(this.rc("PCjs v"+tn+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Y=!0);this.A&&(yn(this,this.A,b,c,a),nc(this.A));this.Z&&(xn(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.G=0};
function xn(a,b){if(ra("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.la,d=a.Ad(),e=b.toString(),f={app:"PCjs"};f.ver=tn;f.url=c;f.user=d;f.type="bug";f.data=e;pa("http://www.pcjs.org/api/v1/report",f,!0)}}
function zn(a,b,c){var d,e="none";if(a.G)return null;a.G--;var f=new be(a,tn),g=new be(a,tn,"validate"),h=la();C(g,"timestamp",h);C(f,"timestamp",h);C(f,"version","1.22.0");C(f,"url",window?window.location.href:null);C(f,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Ub&&(c&&oc(a.A),d=a.A.Ub(b,c),"object"===typeof d&&C(f,a.A.id,d),c&&(a.A.ea.Rb=!1,!1===d&&(e=null)));for(var h=Ta(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Rb&&(m.Ub&&(d=m.Ub(b,c),"object"===typeof d&&C(f,m.id,d)),c&&(m.ea.Rb=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.C&&An(a,a.C,f.toString()),mn(g)&&mn(f)||(e=null,d=h=!0)):a.B&&(d=!0,h=3==a.B),d&&f.clear(h)):e=f.toString());c&&(a.ea.Rb=!1,b=a.ka.power)&&(b.textContent="Power");a.G=0;return e}l.reset=function(){this.ha&&this.ha.reset&&this.ha.reset();for(var a=Ta(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ha&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function ln(a,b){a[a.id]={};b&&C(a,"parms",b);a.A=!1}function mn(a){var b=!0;if(ta()){var c=JSON.stringify(a[a.id]);xa(a.key,c)||(p("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function nn(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){p(c.message||c),b=!1}return b}function on(a,b){return a[a.id][b]||null}function C(a,b,c){try{a[a.id][b]=c}catch(d){}}
function pn(a,b,c){Ia.call(this,"Computer",a,pn);this.da.Rb=!1;qn(this,b);this.ba=jc(this,"autoPower",a);this.G=0;this.ea=a.busWidth||a.buswidth;this.B=rn;this.S=null;this.K=this.Z=!1;this.ia=jc(this,"url")||"";this.ma=(Math.random()+.1).toString(36).substr(2,12);this.C=sn(this);if(this.A=Va("CPU",this.id)){this.Ia=Va("Debugger",this.id);this.I=[];for(b=null;b=kb(this,"Video",b);)this.I.push(b);this.ha=new rb({id:this.lf+".bus",busWidth:this.ea},this.A,this.Ia);var d,e=Ta(this.id);if((this.D=Va("Panel",
this.id))&&this.D.gg)for(b=0;b<e.length;b++)d=e[b],d.Ba=this.D.Ba,d.rc=this.D.rc,d.gg=this.D.gg;this.rc(tn+" v"+un+"\n"+vn+"\n"+wn);for(b=0;b<e.length;b++)d=e[b],d.pc&&d.pc(this,this.ha,this.A,this.Ia);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.P=d:this.B=parseInt(d,10));var f;if(a=jc(this,"state")||(f=!0,a.state))b=this.W=a,f||(this.K=!0,this.B=rn),this.B&&(this.R=new be(this,un),this.R.load()?b=null:delete this.R);!b&&this.B&&(b=xn(this))&&(this.K=!0);if(b){var g=this;pa(b,null,!0,function(a,
b,c){c?(g.P=null,g.K=!1,g.Ba("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.S=b,g.Z=!0);ab(g)})}else ab(this);this.ka.power||(this.ba=!0);!c&&this.ba&&yn(this,this.df)}else p("Unable to find CPU component")}Qa(pn);var tn="PCjs",un="1.22.0",vn="Copyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>",wn="License: GPL version 3 or later <http://gnu.org/licenses/gpl.html>",rn=0;l=pn.prototype;l.se=function(){return this.ma};
function qn(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){p(d.message+" ("+c+")")}}a.L=b}function jc(a,b,c){var d=b.toLowerCase(),d=La[b]||La[d];void 0===d&&a.L&&(d=a.L[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l.Ad=function(){return this.C||""};function yn(a,b,c){for(var d=Ta(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!bb(f)){bb(f,function(){yn(a,b,c)});return}}b.call(a,c)}
function zn(a,b){var c=new be(a,un,"validate");if(c.load()&&nn(c)){var d=on(c,"timestamp"),e=b?on(b,"timestamp"):"unknown";d!=e&&(a.Ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.df=function(a){void 0===a&&(a=this.B||(this.S?1:rn));if(!this.G){this.G++;var b=!1,c=!1;this.Y=!1;var d=this.R||new be(this,un);if(-1==a)b=!0;else if(a>rn){if(d.load(this.S)){this.H=new be(this,un,"failsafe");this.H.load()&&(An(this,d),a=2,ln(this.H));C(this.H,"timestamp",la());mn(this.H);var e=this.B&&!this.K;if(1==a||ra("Click OK to restore the previous "+tn+" machine state, or CANCEL to reset the machine.")){if(c=nn(d)){var f=on(d,"code"),g=on(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Ba("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.C=null)):this.rc(f+": "+g),ln(d),d.load()?(c=nn(d),e=!0):c=!1))}e&&zn(this,c?d:null)}else 2==a&&d.clear()}else zn(this);delete this.S;delete this.R}e=Ta(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.A&&(c=Bn(this,g,d,b,c));b=[d,a,c];-1!=a?yn(this,this.Nh,b):this.Nh(b)}};
function Bn(a,b,c,d,e){if(!b.da.Rb){b.da.Rb=!0;if(b.Vb){var f=null;e&&((f=on(c,b.id))||(f=on(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Vb(f,d)&&f&&(p("Unable to restore state for "+b.type),a.W&&!a.Z?(c.clear(),a.B=rn,window&&window.location.reload()):a.Y=!0,b.Vb(null),e=!1)}if(!d&&b.zh)for(a=b.zh.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Nh=function(a){var b=a[0],c=0>a[1];a=a[2];this.la=!0;this.da.Rb=!0;var d=this.ka.power;d&&(d.textContent="Shutdown");this.A&&(Bn(this,this.A,b,c,a),nc(this.A));this.Y&&(An(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.G=0};
function An(a,b){if(ra("There may be a problem with your "+tn+" machine.\n\nTo help us diagnose it, click OK to send this "+tn+" machine state to http://www.pcjs.org.")){var c=a.ia,d=a.Ad(),e=b.toString(),f=un,g={};g.app=tn;g.ver=f;g.url=c;g.user=d;g.type="bug";g.data=e;pa("http://www.pcjs.org/api/v1/report",g,!0)}}
function Cn(a,b,c){var d,e="none";if(a.G)return null;a.G--;var f=new be(a,un),g=new be(a,un,"validate"),h=la();C(g,"timestamp",h);C(f,"timestamp",h);C(f,"version","1.22.0");C(f,"url",window?window.location.href:null);C(f,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Ub&&(c&&oc(a.A),d=a.A.Ub(b,c),"object"===typeof d&&C(f,a.A.id,d),c&&(a.A.da.Rb=!1,!1===d&&(e=null)));for(var h=Ta(a.id),k=0;k<h.length;k++){var m=h[k];m.da.Rb&&(m.Ub&&(d=m.Ub(b,c),"object"===typeof d&&C(f,m.id,d)),c&&(m.da.Rb=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.C&&Dn(a,a.C,f.toString()),mn(g)&&mn(f)||(e=null,d=h=!0)):a.B&&(d=!0,h=3==a.B),d&&f.clear(h)):e=f.toString());c&&(a.da.Rb=!1,b=a.ka.power)&&(b.textContent="Power");a.G=0;return e}l.reset=function(){this.ha&&this.ha.reset&&this.ha.reset();for(var a=Ta(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ha&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
l.stop=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.zb=function(a,b,c){var d=this;switch(b){case "power":return this.ka[b]=c,c.onclick=function(){d.G||(d.ea.Rb?zn(d,!1,!0):vn(d,d.df))},!0;case "reset":return this.ka[b]=c,c.onclick=function(){if(d.ea.Rb&&!d.G)if(d.B&&!d.P){var a=ra("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zn(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.jg=!0),d.df(rn),d.jg=!1)}else d.reset(),d.A&&nc(d.A)},!0;case "save":if(ha(qa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.ka[b]=c;c.onclick=function(){var a=sn(d,!0);if(a){var b=!!(d.B&&!d.P||d.W),c=zn(d,b);b?An(d,a,c):d.Ba("Resume disabled, machine state not saved")}};return!0}return!1};
function sn(a,b){var c=a.C;c||(c=wa("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=Bn(a,c))||a.Ba("The user ID is invalid."))):b&&a.Ba("Browser local storage is not available"));return c}
function Bn(a,b){a.C=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(xa("user",c.data),a.C=c.data)}catch(e){n(e.message+" ("+d+")")}return a.C}function un(a){var b=null;a.C&&(b=qa()+"/api/v1/user?req=load&user="+a.C+"&state="+kn(a,tn));return b}
function An(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kn(a,tn);d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ba("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.Ba(c),xa("user",""),a.C=null)}}
l.zb=function(a,b,c){var d=this;switch(b){case "power":return this.ka[b]=c,c.onclick=function(){d.G||(d.da.Rb?Cn(d,!1,!0):yn(d,d.df))},!0;case "reset":return this.ka[b]=c,c.onclick=function(){if(d.da.Rb&&!d.G)if(d.B&&!d.P){var a=ra("Click OK to save changes to this "+tn+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Cn(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.jg=!0),d.df(rn),d.jg=!1)}else d.reset(),d.A&&nc(d.A)},!0;case "save":if(ha(qa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.ka[b]=c;c.onclick=function(){var a=sn(d,!0);if(a){var b=!!(d.B&&!d.P||d.W),c=Cn(d,b);b?Dn(d,a,c):d.Ba("Resume disabled, machine state not saved")}};return!0}return!1};
function sn(a,b){var c=a.C;c||(c=wa("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=En(a,c))||a.Ba("The user ID is invalid."))):b&&a.Ba("Browser local storage is not available"));return c}
function En(a,b){a.C=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(xa("user",c.data),a.C=c.data)}catch(e){p(e.message+" ("+d+")")}return a.C}function xn(a){var b=null;a.C&&(b=qa()+"/api/v1/user?req=load&user="+a.C+"&state="+kn(a,un));return b}
function Dn(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kn(a,un);d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ba("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.Ba(c),xa("user",""),a.C=null)}}
function kb(a,b,c){a=Ta(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}function uc(a,b){if(a.I.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.I[0];e.G&&e.G.focus();b&&window&&window.scrollTo(c,d)}}l.Xd=function(a){this.A&&this.A.Xd(a);this.D&&this.D.Xd(a)};
function xc(a,b){for(var c=0;c<a.I.length;c++)kl(a.I[c],b);if(a.D&&(c=a.D,c.ua)){ob(c,18,c.P,c.ra);if(c.Ga){var d=c.ha,e=c.B,f,g;null==f&&(f=0);null==g&&(g=d.L-f|0);null==e&&(e={fg:0,hd:0,$f:[]});var h=f>>>d.da;f=f+g-1>>>d.da;e.fg=0;for(e.hd=0;h<=f;)g=d.S[h],e.fg+=g.size,g.size&&(e.$f.push(na(nb,h,0,0,g.type)),e.hd++),h++;c.B=e;c.ma=c.B.hd*c.ha.xb/691200;d=0;c.B.Hh=0;c.B.He||(c.B.He=[]);var e=-1,h=0,k=-1;for(f=0;f<c.B.hd;f++){var m=c.B.$f[f];g=oa(nb.type,m);m=oa(nb.bj,m);if(g!=e||m!=k+1)(k=f-h)&&
(d+=qb(c,h,k,e)),e=g,h=f;k=m}d+=qb(c,h,f-h,e);e=c.B.Bj!=d;c.B.Bj=d;if(e){e=new ib(0,0,c.P.width,c.P.height);c.B.ce=[];h=c.B.hd;for(d=0;d<c.B.Hh;d++)f=c.B.He[d].hd,c.B.ce.push(jb(e,f,h,!d)),h-=f;for(d=0;d<c.B.ce.length;d++)e=c.B.He[d],h=f=c.B.ce[d],g=c.ra,(k=Wb[e.type])||(k=new hb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.Fc,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.Fc,h.A),h=c,g=f,h.R=h.ia,h.L=h.la,f=g.x+(g.Fc>>1),k=g.y+(g.A>>1),m=g.A,g.Fc<g.A&&(m=g.Fc,h.da=!0,h.G.save(),
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.R=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Vb[e.type]+" ("+(e.hd*c.ha.xb/1024|0)+"Kb)",h.G.font=h.R,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,pb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.P,0,0,c.P.width,c.P.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Wa(c),c=Za(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Wa(f),g=new pn(g,d,!0);Ya(g,f);g.ba&&vn(g,g.df)}});Aa.show.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.Y&&!c.ea.Rb&&c.df(-1)}});
Aa.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.ea.Rb&&zn(c,!(!c.B||c.P),!0)}});var Cn=0;function Dn(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):En(h,a,b,c,d,e,f)})}
function En(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Fn(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Fn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Fn(a,b,c)}})}else c(a,null)}
function Gn(a,b,c,d){function e(a){if(void 0===h){var b=g&&Za(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function f(a){e("Error: "+a);k&&(--Cn||Ga(!0));k=!1}var g,h,k=!0;Cn++;Ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));p.appendChild(x)}c||
(c="/versions/pcjs/1.22.0/components.xsl");m=function(d,h){h?Dn(c,null,null,!1,e,function(d,k){if(k)if(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(k);m?(g.outerHTML=m,--Cn||Ga(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Cn||Ga(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Dn(b,a,d,!0,e,m):En(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC=function(a,b,c,d){Ga(!1);return Gn(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;
function Hn(a,b,c,d){if(!c&&b){d.push(b);a=Ra[d[0]];b=null;for(var e in a)if(ha(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?pa(b,null,!0,function(a,b){In(b,d)}):In(null,d)}else n("Error ("+c+") requesting "+a)}
function In(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=Ra[f],k={},m;for(m in h){var p=h[m],x=ga(m);if("xml"==x){for(x=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=x.exec(h[m]);){var r=d[2];r&&(h[r]||(p=p.replace(d[0],"")))}d=m=fa(m)}else"xsl"==x&&(e=m=fa(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(m=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),c=za(c,"javascript",!1,g),c=c+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n'),c+="...\n",c+='<script type="text/javascript" src="'+g+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",n(c)):n("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=Va("Computer",a),e=Va("Debugger",a);if(d){var f=zn(d,!0),g=d.L?JSON.stringify(d.L):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,fj:g}))return!0;pa(b,null,!0,function(c,d,e){Hn(c,d,e,[a,fa(b,!0),g,f])});return!0}n("Unable to identify machine '"+a+"'");return!1};})();
function xc(a,b){for(var c=0;c<a.I.length;c++)kl(a.I[c],b);if(a.D&&(c=a.D,c.ua)){ob(c,18,c.P,c.ra);if(c.Ga){var d=c.ha,e=c.B,f,g;null==f&&(f=0);null==g&&(g=d.L-f|0);null==e&&(e={fg:0,hd:0,$f:[]});var h=f>>>d.ea;f=f+g-1>>>d.ea;e.fg=0;for(e.hd=0;h<=f;)g=d.S[h],e.fg+=g.size,g.size&&(e.$f.push(na(nb,h,0,0,g.type)),e.hd++),h++;c.B=e;c.ma=c.B.hd*c.ha.xb/691200;d=0;c.B.Hh=0;c.B.He||(c.B.He=[]);var e=-1,h=0,k=-1;for(f=0;f<c.B.hd;f++){var m=c.B.$f[f];g=oa(nb.type,m);m=oa(nb.bj,m);if(g!=e||m!=k+1)(k=f-h)&&
(d+=qb(c,h,k,e)),e=g,h=f;k=m}d+=qb(c,h,f-h,e);e=c.B.Bj!=d;c.B.Bj=d;if(e){e=new ib(0,0,c.P.width,c.P.height);c.B.ce=[];h=c.B.hd;for(d=0;d<c.B.Hh;d++)f=c.B.He[d].hd,c.B.ce.push(jb(e,f,h,!d)),h-=f;for(d=0;d<c.B.ce.length;d++)e=c.B.He[d],h=f=c.B.ce[d],g=c.ra,(k=Wb[e.type])||(k=new hb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.Fc,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.Fc,h.A),h=c,g=f,h.R=h.ia,h.L=h.la,f=g.x+(g.Fc>>1),k=g.y+(g.A>>1),m=g.A,g.Fc<g.A&&(m=g.Fc,h.ea=!0,h.G.save(),
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.R=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Cb[e.type]+" ("+(e.hd*c.ha.xb/1024|0)+"Kb)",h.G.font=h.R,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,pb(h,e),h.ea&&(h.G.restore(),h.ea=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.P,0,0,c.P.width,c.P.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Wa(c),c=Za(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Wa(f),g=new pn(g,d,!0);Ya(g,f);g.ba&&yn(g,g.df)}});Aa.show.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.la&&!c.da.Rb&&c.df(-1)}});
Aa.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.da.Rb&&Cn(c,!(!c.B||c.P),!0)}});var Fn=0;function Gn(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Hn(h,a,b,c,d,e,f)})}
function Hn(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?In(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function In(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);In(a,b,c)}})}else c(a,null)}
function Jn(a,b,c,d){function e(a){if(void 0===h){var b=g&&Za(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function f(a){e("Error: "+a);k&&(--Fn||Ga(!0));k=!1}var g,h,k=!0;Fn++;Ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));n.appendChild(x)}c||
(c="/versions/pcjs/1.22.0/components.xsl");m=function(d,h){h?Gn(c,null,null,!1,e,function(d,k){if(k)if(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(k);m?(g.outerHTML=m,--Fn||Ga(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Fn||Ga(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Gn(b,a,d,!0,e,m):Hn(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC=function(a,b,c,d){Ga(!1);return Jn(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;
function Kn(a,b,c,d){if(!c&&b){d.push(b);a=Ra[d[0]];b=null;for(var e in a)if(ha(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?pa(b,null,!0,function(a,b){Ln(b,d)}):Ln(null,d)}else p("Error ("+c+") requesting "+a)}
function Ln(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=Ra[f],k={},m;for(m in h){var n=h[m],x=ga(m);if("xml"==x){for(x=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=x.exec(h[m]);){var r=d[2];r&&(h[r]||(n=n.replace(d[0],"")))}d=m=fa(m)}else"xsl"==x&&(e=m=fa(m));k[m]=n}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(m=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),c=za(c,"javascript",!1,g),c=c+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n'),c+="...\n",c+='<script type="text/javascript" src="'+g+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",p(c)):p("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=Va("Computer",a),e=Va("Debugger",a);if(d){var f=Cn(d,!0),g=d.L?JSON.stringify(d.L):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,fj:g}))return!0;pa(b,null,!0,function(c,d,e){Kn(c,d,e,[a,fa(b,!0),g,f])});return!0}p("Unable to identify machine '"+a+"'");return!1};})();

View file

@ -539,14 +539,19 @@ Video.prototype.updateScreen = function(n)
var cyDirty = yMaxDirty - yDirty;
if (this.rotateBuffer) {
/*
* TODO: One last bit of work required for "bufferRotate" (if you really don't want to use
* "screenRotate"): the dirty coordinates must be "rotated" as well, because they are relative
* to the frame buffer, not the image buffer. That's why this code copies the ENTIRE imageBuffer.
* If rotateBuffer is set, then it must be -90, so we must "rotate" the dirty coordinates as well,
* because they are relative to the frame buffer, not the rotated image buffer. Alternatively, you
* can use the following call to blast the ENTIRE imageBuffer into contextBuffer instead:
*
* this.contextBuffer.putImageData(this.imageBuffer, 0, 0);
*/
this.contextBuffer.putImageData(this.imageBuffer, 0, 0);
} else {
this.contextBuffer.putImageData(this.imageBuffer, 0, 0, xDirty, yDirty, cxDirty, cyDirty);
var xDirtyOrig = xDirty, cxDirtyOrig = cxDirty;
xDirty = yDirty;
cxDirty = cyDirty;
yDirty = this.cxBuffer - (xDirtyOrig + cxDirtyOrig);
cyDirty = cxDirtyOrig;
}
this.contextBuffer.putImageData(this.imageBuffer, 0, 0, xDirty, yDirty, cxDirty, cyDirty);
this.contextScreen.drawImage(this.canvasBuffer, 0, 0, this.canvasBuffer.width, this.canvasBuffer.height, 0, 0, this.cxScreen, this.cyScreen);
}
};

View file

@ -4,7 +4,7 @@ function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&amp;","
function ia(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ja=Date.now||function(){return+new Date};function la(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function ma(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function na(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
typeof b){var l="",k;for(k in b)b.hasOwnProperty(k)&&(l&&(l+="&"),l+=k+"="+encodeURIComponent(b[k]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function pa(){return window?window.navigator.userAgent:""}function t(a){window&&window.alert(a)}function qa(a){var b=!1;window&&(b=window.confirm(a));return b}var ra=null;function sa(){if(null==ra){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ra=a}return ra}
function ta(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function ua(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function va(a){if(window){var b=pa();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Da(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ea={init:[],show:[],exit:[]},Fa=!1,Ga=!0;function Ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ja(a){Ea.init.push(a)}
@ -13,97 +13,97 @@ function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.
if(window){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(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 Wa(a,b){b||(b=w);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var x=[],Xa={};function Ya(a,b,c){Xa[a]&&b&&(Xa[a][b]=c)}function Za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function $a(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<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function cb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),l=k.length}}}}
function cb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),k=l.length}}}}
function A(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}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},oa:function(a,b,c){switch(b){case "clear":return this.T[b]||(this.T[b]=c,c.onclick=function(a){return function(){a.T.print&&(a.T.print.value="")}}(this)),!0;case "print":return this.T[b]||(this.ta=this.T[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.pa=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.eb+": "+a)},pa:function(a,b){b||t(a)},Ba:function(){return this.A.ia=!0},Aa:function(a,b){b&&(this.A.ia=!1);return!0}};function db(a,b,c,d,e,f){var h=!0;a.F&&(!0===h?h=0:null==h&&(h=a.ha),eb(a.F,a,b,c,d,e,f,h))}function fb(a,b,c){a.F&&(!0===c||gb(a,c|0))&&a.F.message(b,void 0)}
function gb(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.Xb)}return!1}function hb(a,b){if(a.A.wb)return a.A.Qa&&(a.A.Qa=!1),a.A.wb=!1;if(a.A.Sa)return a.g(a.toString()+" error"),!1;a.A.Qa=b;return a.A.Qa}function ib(a,b){a.A.Qa&&(b?a.A.wb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Qa}function C(a){if(!a.A.Sa&&(a.A.Ta=!0,a.A.Ta)){var b=a.rb;a.rb=null;b&&b()}}function jb(a,b){b&&(a.A.Ta?b():a.rb=b);return a.A.Ta}function kb(a,b){a.A.Sa=!0;a.pa(b)}
this.na=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.eb+": "+a)},na:function(a,b){b||t(a)},Ba:function(){return this.A.ia=!0},Aa:function(a,b){b&&(this.A.ia=!1);return!0}};function db(a,b,c,d,e,f){var h=!0;a.F&&(!0===h?h=0:null==h&&(h=a.ha),eb(a.F,a,b,c,d,e,f,h))}function fb(a,b,c){a.F&&(!0===c||gb(a,c|0))&&a.F.message(b,void 0)}
function gb(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.Xb)}return!1}function hb(a,b){if(a.A.wb)return a.A.Qa&&(a.A.Qa=!1),a.A.wb=!1;if(a.A.Sa)return a.g(a.toString()+" error"),!1;a.A.Qa=b;return a.A.Qa}function ib(a,b){a.A.Qa&&(b?a.A.wb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Qa}function C(a){if(!a.A.Sa&&(a.A.Ta=!0,a.A.Ta)){var b=a.rb;a.rb=null;b&&b()}}function jb(a,b){b&&(a.A.Ta?b():a.rb=b);return a.A.Ta}function kb(a,b){a.A.Sa=!0;a.na(b)}
var lb="undefined"!==typeof ArrayBuffer,mb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function nb(a){w.call(this,"Panel",a,nb)}Wa(nb);m=nb.prototype;m.oa=function(a,b,c,d){return this.w&&this.w.oa(a,b,c,d)||this.b&&this.b.oa(a,b,c,d)||this.u&&this.u.oa(a,b,c,d)||this.F&&this.F.oa(a,b,c,d)?!0:this.parent.oa.call(this,a,b,c,d)};m.Ha=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.u=ob(a,"Keyboard")};m.Ba=function(a,b){b||pb();return!0};m.Aa=function(){return!0};m.va=function(){};
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function nb(a){w.call(this,"Panel",a,nb)}Wa(nb);m=nb.prototype;m.oa=function(a,b,c,d){return this.w&&this.w.oa(a,b,c,d)||this.b&&this.b.oa(a,b,c,d)||this.u&&this.u.oa(a,b,c,d)||this.F&&this.F.oa(a,b,c,d)?!0:this.parent.oa.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.u=ob(a,"Keyboard")};m.Ba=function(a,b){b||pb();return!0};m.Aa=function(){return!0};m.va=function(){};
function pb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new nb(e));cb(f,d);a&&C(f)}}Ja(pb);
function qb(a,b,c){w.call(this,"Bus",a,qb);this.b=b;this.F=c;this.J=a.busWidth||16;this.X=Math.pow(2,this.J);this.D=this.X-1|0;this.ea=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.ua=1<<this.ea;this.Y=this.ua>>2;this.B=this.ua-1;this.M=this.X/this.ua|0;this.K=this.M-1;this.w=[];this.u=[];this.G=this.H=!1;this.aa=[];this.ba=[];a=new D;rb(a,this.F);this.U=Array(this.M);for(b=0;b<this.M;b++)this.U[b]=a;C(this)}Wa(qb);m=qb.prototype;m.reset=function(){};m.Ba=function(a,b){b||this.reset();return!0};
function sb(a,b,c,d){for(var e=b>>>a.ea;0<c&&e<a.U.length;){var f=a.U[e],h=e*a.ua,g=a.ua-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.C)return f.nb+=f.C-b,f.C=b,!0;if(b>=f.C+f.nb){g=f.size-(b-h);g>c&&(g=c);f.nb=b-f.C+g;b=h+a.ua;c-=g;e++;continue}}return tb(1,b,c)}b=new D(b,g,a.ua,d);rb(b,a.F,f);a.U[e++]=b;b=h+a.ua;c-=g}return 0>=c?!0:tb(2,b,c)}m.W=function(a){return this.U[(a&this.D)>>>this.ea].ab(a&this.B,a)};function ub(a,b){return a.U[(b&a.D)>>>a.ea].lb(b&a.B,b)}
m.Ga=function(a){var b=a&this.B,c=(a&this.D)>>>this.ea;return b!=this.B?this.U[c].Tb(b,a):this.U[c++].ab(b,a)|this.U[c&this.K].ab(0,a+1)<<8};function vb(a,b){var c=b&a.B,d=(b&a.D)>>>a.ea;return c!=a.B?a.U[d].Bb(c,b):a.U[d++].lb(c,b)|a.U[d&a.K].lb(0,b+1)<<8}m.fa=function(a,b){this.U[(a&this.D)>>>this.ea].cb(a&this.B,b&255,a)};function wb(a,b,c){a.U[(b&a.D)>>>a.ea].ob(b&a.B,c&255,b)}
m.ub=function(a,b){var c=a&this.B,d=(a&this.D)>>>this.ea;c!=this.B?this.U[d].Vb(c,b&65535,a):(this.U[d++].cb(c,b&255,a),this.U[d&this.K].cb(0,b>>8&255,a+1))};function xb(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}
function yb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.aa[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.F&&a.G!=h[1]&&zb(a.F,b,l)):a.F&&(eb(a.F,a,b,null,c),a.G&&zb(a.F,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Ib(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
function Jb(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.u[b],g=a.ba[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.F&&a.H!=h[1]&&Kb(a.F,b,k)}else a.F&&(eb(a.F,a,b,k,d),a.H&&Kb(a.F,b,k));f+=g<<3;b+=g;e-=g}}function tb(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Lb;if(lb){var Mb=new ArrayBuffer(2);(new DataView(Mb)).setUint16(0,256,!0);Lb=256===(new Uint16Array(Mb))[0]}else Lb=!1;var Nb=Lb;
function D(a,b,c,d){this.id=Ob+=2;this.b=null;this.C=a;this.nb=b;this.size=c||0;this.type=d||Pb;this.w=d==Qb;rb(this);this.ya=this.Lb=!1;if(c)if(lb)this.G=new ArrayBuffer(c),this.H=new DataView(this.G,0,c),this.B=new Uint8Array(this.G,0,c),this.K=new Uint16Array(this.G,0,c>>1),this.b=new Int32Array(this.G,0,c>>2),Rb(this,Nb?Sb:Tb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Rb(this,Ub)}else Rb(this)}var Pb=0,Qb=2,Vb=["NONE","RAM","ROM","VIDEO","H/W"],Ob=0;
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(lb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(lb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.ya=!0}return!1},Ja:function(a,b){b?0===this.u++&&Wb(this,Xb,!1):0===this.T++&&Yb(this,Xb,!1)},M:function(){this.F&&gb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.C),!0);
return 255},D:function(a,b){this.F&&gb(this.F,129)&&this.F.message("attempt to write "+r(b)+" to invalid block %"+q(this.C),!0)},X:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<8},J:function(a,b,c){this.cb(a++,b&255,c++);this.cb(a,b>>8,c)},ga:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.ya=!0},Ia:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.ya=!0},aa:function(a,b){if(this.F&&null!=this.C){var c=this.F;Zb(c,this.C+a,1,c.aa)&&c.da(!0)}return this.lb(a,b)},la:function(a,b){if(this.F&&null!=this.C){var c=this.F;Zb(c,this.C+a,2,c.aa)&&c.da(!0)}return this.Bb(a,b)},sa:function(a,b,c){if(this.F&&null!=this.C){var d=this.F;Zb(d,this.C+a,1,d.H)&&d.da(!0)}this.w?this.D(a,b,c):this.ob(a,b,c)},Fa:function(a,
b,c){if(this.F&&null!=this.C){var d=this.F;Zb(d,this.C+a,2,d.H)&&d.da(!0)}this.w?this.D(a,b,c):this.Cb(a,b,c)},Y:function(a){return this.B[a]},ba:function(a){return this.B[a]},ka:function(a){return this.H.getUint16(a,!0)},na:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},Ea:function(a,b){this.B[a]=b;this.ya=!0},wa:function(a,b){this.B[a]=b;this.ya=!0},Ca:function(a,b){this.H.setUint16(a,b,!0);this.ya=!0},eb:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.ya=!0}};
function rb(a,b,c){a.F=b;a.T=a.u=0;c&&((a.T=c.T)&&Yb(a,Xb,!1),(a.u=c.u)&&Wb(a,Xb,!1))}function $b(a,b){b?0===--a.u&&(a.cb=a.w?a.D:a.ob,a.Vb=a.w?a.J:a.Cb):0===--a.T&&(a.ab=a.lb,a.Tb=a.Bb)}function Wb(a,b,c){c&&a.u||(a.cb=!a.w&&b[2]||a.D,a.Vb=!a.w&&b[3]||a.J);if(c||void 0===c)a.ob=b[2]||a.D,a.Cb=b[3]||a.J}function Yb(a,b,c){c&&a.T||(a.ab=b[0]||a.M,a.Tb=b[1]||a.X);if(c||void 0===c)a.lb=b[0]||a.M,a.Bb=b[1]||a.X}function Rb(a,b){b||(b=ac);Yb(a,b,void 0);Wb(a,b,void 0)}
var ac=[],Ub=[D.prototype.ga,D.prototype.ra,D.prototype.xa,D.prototype.Ia],Xb=[D.prototype.aa,D.prototype.la,D.prototype.sa,D.prototype.Fa];if(lb)var Tb=[D.prototype.Y,D.prototype.ka,D.prototype.Ea,D.prototype.Ca],Sb=[D.prototype.ba,D.prototype.na,D.prototype.wa,D.prototype.eb];
function qb(a,b,c){w.call(this,"Bus",a,qb);this.b=b;this.F=c;this.J=a.busWidth||16;this.W=Math.pow(2,this.J);this.C=this.W-1|0;this.ea=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.ua=1<<this.ea;this.Y=this.ua>>2;this.B=this.ua-1;this.L=this.W/this.ua|0;this.K=this.L-1;this.w=[];this.u=[];this.G=this.H=!1;this.aa=[];this.ba=[];a=new D;rb(a,this.F);this.U=Array(this.L);for(b=0;b<this.L;b++)this.U[b]=a;C(this)}Wa(qb);m=qb.prototype;m.reset=function(){};m.Ba=function(a,b){b||this.reset();return!0};
function sb(a,b,c,d){for(var e=b,f=c,h=e>>>a.ea;0<f&&h<a.U.length;){var g=a.U[h],l=h*a.ua,k=a.ua-(e-l);k>f&&(k=f);if(g&&g.size){if(g.type==d){if(e+f<=g.D)return g.nb+=g.D-e,g.D=e,!0;if(e>=g.D+g.nb){k=g.size-(e-l);k>f&&(k=f);g.nb=e-g.D+k;e=l+a.ua;f-=k;h++;continue}}return tb(1,e,f)}e=new D(e,k,a.ua,d);rb(e,a.F,g);a.U[h++]=e;e=l+a.ua;f-=k}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ub[d]+" at "+r(b)),!0):tb(2,b,c)}m.X=function(a){return this.U[(a&this.C)>>>this.ea].ab(a&this.B,a)};
function vb(a,b){return a.U[(b&a.C)>>>a.ea].lb(b&a.B,b)}m.Fa=function(a){var b=a&this.B,c=(a&this.C)>>>this.ea;return b!=this.B?this.U[c].Tb(b,a):this.U[c++].ab(b,a)|this.U[c&this.K].ab(0,a+1)<<8};function wb(a,b){var c=b&a.B,d=(b&a.C)>>>a.ea;return c!=a.B?a.U[d].Bb(c,b):a.U[d++].lb(c,b)|a.U[d&a.K].lb(0,b+1)<<8}m.ga=function(a,b){this.U[(a&this.C)>>>this.ea].cb(a&this.B,b&255,a)};function xb(a,b,c){a.U[(b&a.C)>>>a.ea].ob(b&a.B,c&255,b)}
m.ub=function(a,b){var c=a&this.B,d=(a&this.C)>>>this.ea;c!=this.B?this.U[d].Vb(c,b&65535,a):(this.U[d++].cb(c,b&255,a),this.U[d&this.K].cb(0,b>>8&255,a+1))};function yb(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}
function zb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.aa[b]||1,l=1==g?255:2==g?65535:-1,k=l;void 0!==h?(h[0]&&(k=h[0](b,c),void 0===k?k=l:k&=l),a.F&&a.G!=h[1]&&Ab(a.F,b,k)):a.F&&(eb(a.F,a,b,null,c),a.G&&Ab(a.F,b,k));e|=k<<f;f+=g<<3;b+=g;d-=g}return e}function Jb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
function Kb(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.u[b],g=a.ba[b]||1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h){if(h[0])h[0](b,l,d);a.F&&a.H!=h[1]&&Lb(a.F,b,l)}else a.F&&(eb(a.F,a,b,l,d),a.H&&Lb(a.F,b,l));f+=g<<3;b+=g;e-=g}}function tb(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Mb;if(lb){var Nb=new ArrayBuffer(2);(new DataView(Nb)).setUint16(0,256,!0);Mb=256===(new Uint16Array(Nb))[0]}else Mb=!1;var Ob=Mb;
function D(a,b,c,d){this.id=Pb+=2;this.b=null;this.D=a;this.nb=b;this.size=c||0;this.type=d||Qb;this.w=d==Rb;rb(this);this.ya=this.Lb=!1;if(c)if(lb)this.G=new ArrayBuffer(c),this.H=new DataView(this.G,0,c),this.B=new Uint8Array(this.G,0,c),this.K=new Uint16Array(this.G,0,c>>1),this.b=new Int32Array(this.G,0,c>>2),Sb(this,Ob?Tb:Ub);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Sb(this,Vb)}else Sb(this)}var Qb=0,Rb=2,ub=["NONE","RAM","ROM","VID","H/W"],Pb=0;
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(lb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(lb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.ya=!0}return!1},Ja:function(a,b){b?0===this.u++&&Wb(this,Xb,!1):0===this.T++&&Yb(this,Xb,!1)},L:function(){this.F&&gb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.D),!0);
return 255},C:function(a,b){this.F&&gb(this.F,129)&&this.F.message("attempt to write "+r(b)+" to invalid block %"+q(this.D),!0)},W:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<8},J:function(a,b,c){this.cb(a++,b&255,c++);this.cb(a,b>>8,c)},fa:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.ya=!0},Ia:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.ya=!0},aa:function(a,b){if(this.F&&null!=this.D){var c=this.F;Zb(c,this.D+a,1,c.aa)&&c.da(!0)}return this.lb(a,b)},la:function(a,b){if(this.F&&null!=this.D){var c=this.F;Zb(c,this.D+a,2,c.aa)&&c.da(!0)}return this.Bb(a,b)},sa:function(a,b,c){if(this.F&&null!=this.D){var d=this.F;Zb(d,this.D+a,1,d.H)&&d.da(!0)}this.w?this.C(a,b,c):this.ob(a,b,c)},Ha:function(a,
b,c){if(this.F&&null!=this.D){var d=this.F;Zb(d,this.D+a,2,d.H)&&d.da(!0)}this.w?this.C(a,b,c):this.Cb(a,b,c)},Y:function(a){return this.B[a]},ba:function(a){return this.B[a]},ka:function(a){return this.H.getUint16(a,!0)},pa:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},Ea:function(a,b){this.B[a]=b;this.ya=!0},wa:function(a,b){this.B[a]=b;this.ya=!0},Ca:function(a,b){this.H.setUint16(a,b,!0);this.ya=!0},eb:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.ya=!0}};
function rb(a,b,c){a.F=b;a.T=a.u=0;c&&((a.T=c.T)&&Yb(a,Xb,!1),(a.u=c.u)&&Wb(a,Xb,!1))}function $b(a,b){b?0===--a.u&&(a.cb=a.w?a.C:a.ob,a.Vb=a.w?a.J:a.Cb):0===--a.T&&(a.ab=a.lb,a.Tb=a.Bb)}function Wb(a,b,c){c&&a.u||(a.cb=!a.w&&b[2]||a.C,a.Vb=!a.w&&b[3]||a.J);if(c||void 0===c)a.ob=b[2]||a.C,a.Cb=b[3]||a.J}function Yb(a,b,c){c&&a.T||(a.ab=b[0]||a.L,a.Tb=b[1]||a.W);if(c||void 0===c)a.lb=b[0]||a.L,a.Bb=b[1]||a.W}function Sb(a,b){b||(b=ac);Yb(a,b,void 0);Wb(a,b,void 0)}
var ac=[],Vb=[D.prototype.fa,D.prototype.ra,D.prototype.xa,D.prototype.Ia],Xb=[D.prototype.aa,D.prototype.la,D.prototype.sa,D.prototype.Ha];if(lb)var Ub=[D.prototype.Y,D.prototype.ka,D.prototype.Ea,D.prototype.Ca],Tb=[D.prototype.ba,D.prototype.pa,D.prototype.wa,D.prototype.eb];
function bc(a,b){w.call(this,"CPU",a,bc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.$a=c;this.i.tb=0;this.i.Na=d;this.i.yb=Math.round(this.i.$a/1E4)/100;this.i.La=this.i.yb*this.i.Na;this.A.ma=!1;this.A.xb=!1;this.A.Kb=a.autoStart;this.A.Mb=!1;this.A.Ra=!1;this.i.fb=this.i.Xa=0;this.i.gb=a.csStart;this.i.Wa=a.csInterval;this.i.Ya=a.csStop;this.aa=this.Oa.bind(this);C(this)}Wa(bc);var cc=["power","reset"];m=bc.prototype;
m.Ha=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<cc.length;b++)(c=this.T[cc[b]])&&this.w.oa(null,cc[b],c);this.Ea=(b=ob(a,"Video"))&&Math.max(b.Ea,b.Zb)||60;this.K=ob(a,"ChipSet");a=oc(a,"autoStart");null!=a&&(this.A.Kb="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){this.i.tb=0};m.save=function(){return null};m.restore=function(){return!1};
m.Ga=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<cc.length;b++)(c=this.T[cc[b]])&&this.w.oa(null,cc[b],c);this.Ea=(b=ob(a,"Video"))&&Math.max(b.Ea,b.Zb)||60;this.K=ob(a,"ChipSet");a=dc(a,"autoStart");null!=a&&(this.A.Kb="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){this.i.tb=0};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){if(!b){if(a&&this.restore){pc(this);if(!this.restore(a))return!1;qc(this)}else this.reset();if(this.F){var c=this.F;c.g("Type ? for help with PC8080 Debugger commands");c.va();if(c.Ia){var d=c.Ia;c.Ia=null;rc(c,d)}}else this.g("No debugger detected")}sc(this);return!0};m.Aa=function(a){return a?this.save():!0};function tc(a){(a.A.Kb||!a.F&&void 0===a.T.run)&&a.Oa(!0)}m.Ob=function(){return 0};
function qc(a){void 0===a.i.gb&&(a.i.gb=0);void 0===a.i.Wa&&(a.i.Wa=-1);void 0===a.i.Ya&&(a.i.Ya=-1);a.A.Ra=0<=a.i.gb&&0<a.i.Wa;a.A.Ra&&(a.i.fb=0,a.i.Xa=a.i.gb-a.H)}function uc(a,b){if(a.A.Ra){var c=!1;a.i.fb=a.i.fb+a.Ob()|0;a.i.Xa-=b;0>=a.i.Xa&&(a.i.Xa+=a.i.Wa,c=!0);0<=a.i.Ya&&a.i.Ya<=vc(a)&&(a.i.Wa=a.i.Ya=-1,qc(a),a.da(),c=!0);c&&a.g(vc(a)+" cycles: checksum="+q(a.i.fb))}}
m.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.T[b]=c;a=!0;break;case "run":this.T[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.A.ia)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.Ta);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.ia);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.Ta?"powered yet":"ready yet"+(b.rb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.ma?d.da(!0):d.Oa(!0))};a=
!0;break;case "speed":this.T[b]=c;a=!0;break;case "setSpeed":this.T[b]=c,c.onclick=function(){wc(d,d.i.Na<<1,!0)},c.textContent=this.i.La.toFixed(2)+"Mhz",a=!0}return a};function xc(a,b,c){a.H+=b;c&&(a.D=a.b=0)}
function yc(a,b){var c=30;c<a.Ea&&(c=a.Ea);2>c&&(c=2);var d=1;b&&1<a.i.Na&&a.i.Ka&&(d=a.i.Ka/a.i.yb);a.i.Pb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.$a/c*d);a.i.zb=Math.floor(a.i.$a/30*d);a.i.Rb=Math.floor(a.i.$a/a.Ea*d);a.i.Qb=Math.floor(a.i.$a/2*d);b||(a.i.Za=a.i.zb,a.i.ib=a.i.Rb,a.i.hb=a.i.Qb);a.i.Ab=0}function vc(a){return a.H+a.G+a.D-a.b}function pc(a){a.i.Ka=0;a.H=a.G=a.D=a.b=0;qc(a);wc(a,1)}
!0;break;case "speed":this.T[b]=c;a=!0;break;case "setSpeed":this.T[b]=c,c.onclick=function(){wc(d,d.i.Na<<1,!0)},c.textContent=this.i.La.toFixed(2)+"Mhz",a=!0}return a};function xc(a,b,c){a.H+=b;c&&(a.C=a.b=0)}
function yc(a,b){var c=30;c<a.Ea&&(c=a.Ea);2>c&&(c=2);var d=1;b&&1<a.i.Na&&a.i.Ka&&(d=a.i.Ka/a.i.yb);a.i.Pb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.$a/c*d);a.i.zb=Math.floor(a.i.$a/30*d);a.i.Rb=Math.floor(a.i.$a/a.Ea*d);a.i.Qb=Math.floor(a.i.$a/2*d);b||(a.i.Za=a.i.zb,a.i.ib=a.i.Rb,a.i.hb=a.i.Qb);a.i.Ab=0}function vc(a){return a.H+a.G+a.C-a.b}function pc(a){a.i.Ka=0;a.H=a.G=a.C=a.b=0;qc(a);wc(a,1)}
function wc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ka/a.i.La?b=1:d=!0;a.i.Na=b;b=a.i.yb*a.i.Na;if(a.i.La!=b){a.i.La=b;b=a.i.La.toFixed(2)+"Mhz";var e=a.T.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.mb()}xc(a,a.G);a.G=0;a.i.Va=ja();a.i.Ma=0;yc(a);return d}
m.Oa=function(a){if(hb(this,!0)){if(!this.A.ma){wc(this);this.w&&this.w.start(this.i.Va,vc(this));this.A.ma=!0;this.A.xb=!0;this.K&&this.K.start();var b=this.T.run;b&&(b.textContent="Halt");this.w&&(this.w.va(!0),a&&this.w.mb(!0))}this.i.Ab>=this.i.$a&&yc(this,!0);this.i.jb=0;this.i.sb=ja();this.i.Ma&&(a=this.i.sb-this.i.Ma,a>this.i.Pb&&(this.i.Va+=a,this.i.Va>this.i.sb&&(this.i.Va=this.i.sb)));try{do{var c=this.A.Ra?1:this.i.hc;try{this.bb(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.D-
m.Oa=function(a){if(hb(this,!0)){if(!this.A.ma){wc(this);this.w&&this.w.start(this.i.Va,vc(this));this.A.ma=!0;this.A.xb=!0;this.K&&this.K.start();var b=this.T.run;b&&(b.textContent="Halt");this.w&&(this.w.va(!0),a&&this.w.mb(!0))}this.i.Ab>=this.i.$a&&yc(this,!0);this.i.jb=0;this.i.sb=ja();this.i.Ma&&(a=this.i.sb-this.i.Ma,a>this.i.Pb&&(this.i.Va+=a,this.i.Va>this.i.sb&&(this.i.Va=this.i.sb)));try{do{var c=this.A.Ra?1:this.i.hc;try{this.bb(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.C-
this.b;this.G+=d;this.i.jb+=d;xc(this,0,!0);uc(this,d);this.i.ib-=d;0>=this.i.ib&&(this.i.ib+=this.i.Rb,this.w&&zc(this.w,this.i.tb++),this.i.tb>this.Ea&&(this.i.tb=0));this.i.hb-=d;0>=this.i.hb&&(this.i.hb+=this.i.Qb,this.w&&this.w.va());this.i.Za-=d;if(0>=this.i.Za){this.i.Za+=this.i.zb;break}}while(this.A.ma)}catch(e){this.da();sc(this);this.w&&this.w.stop(ja(),vc(this));hb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;d=this.aa;this.i.Ma=ja();a=this.i.Pb;this.i.jb&&(a=Math.round(a*
this.i.jb/this.i.zb));a-=this.i.Ma-this.i.sb;if(b=this.i.Ma-this.i.Va)this.i.Ka=Math.round(this.G/(10*b))/100,864E5<=b&&(this.H=0,wc(this));if(0>a||this.i.Ka<this.i.La)a=0;this.i.Ab+=this.i.jb;this.i.Ma+=a;c(d,a)}else sc(this),this.w&&this.w.stop(ja(),vc(this))};m.bb=function(){return 0};m.da=function(a){ib(this,!0);this.D-=this.b;this.b=0;xc(this,this.G);this.G=0;if(this.A.ma){this.A.ma=!1;this.K&&this.K.stop();var b=this.T.run;b&&(b.textContent="Run")}this.A.qb=a};
function sc(a,b){a.w&&(zc(a.w,-1),a.w.va(b))}function Ac(a){this.Ua=a.model||8080;bc.call(this,a,1E6);this.M=Bc;pc(this);this.A.qb=this.A.Yb=!1;this.Y=0;this.J=[];this.X=0;Cc(this)}Wa(Ac,bc);function Dc(a,b){a.J.push(b)}m=Ac.prototype;m.reset=function(){this.A.ma&&this.da();Cc(this);pc(this);this.A.Sa=!1;this.parent.reset.call(this)};function Cc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.V=0;a.ca=0;F(a,a.X);Ec(a,0);a.u=0}function Fc(a,b){a.X=b;F(a,b)}
m.Ob=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.V|0;return a=a+this.ca+this.L+Gc(this)|0};
m.save=function(){var a=new Hc(this);H(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.V,this.ca,this.L,Gc(this)]);H(a,1,[this.u,this.H,this.i.Na]);for(var b=this.B,c=0,d=[],e=0;e<b.M;e++){var f=b.U[e];if(f.ya||f.Lb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],n=g+1;n<f.length&&f[n]===p;)n++;l[k++]=n-g;l[k++]=p;g=n}if(l.length<f.length){f=l;break a}}d[h]=f}}H(a,2,d);return a.data()};
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.V=b[6];this.ca=b[7]&65535;F(this,b[8]);Ec(this,b[9]);b=a[1];this.u=b[0];this.H=b[1];wc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.Y){for(var f=0,h=Array(b.Y),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.U[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
this.i.jb/this.i.zb));a-=this.i.Ma-this.i.sb;if(b=this.i.Ma-this.i.Va)this.i.Ka=Math.round(this.G/(10*b))/100,864E5<=b&&(this.H=0,wc(this));if(0>a||this.i.Ka<this.i.La)a=0;this.i.Ab+=this.i.jb;this.i.Ma+=a;c(d,a)}else sc(this),this.w&&this.w.stop(ja(),vc(this))};m.bb=function(){return 0};m.da=function(a){ib(this,!0);this.C-=this.b;this.b=0;xc(this,this.G);this.G=0;if(this.A.ma){this.A.ma=!1;this.K&&this.K.stop();var b=this.T.run;b&&(b.textContent="Run")}this.A.qb=a};
function sc(a,b){a.w&&(zc(a.w,-1),a.w.va(b))}function Ac(a){this.Ua=a.model||8080;bc.call(this,a,1E6);this.L=Bc;pc(this);this.A.qb=this.A.Yb=!1;this.Y=0;this.J=[];this.W=0;Cc(this)}Wa(Ac,bc);function Dc(a,b){a.J.push(b)}m=Ac.prototype;m.reset=function(){this.A.ma&&this.da();Cc(this);pc(this);this.A.Sa=!1;this.parent.reset.call(this)};function Cc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.V=0;a.ca=0;F(a,a.W);Ec(a,0);a.u=0}function Fc(a,b){a.W=b;F(a,b)}
m.Ob=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.V|0;return a=a+this.ca+this.M+Gc(this)|0};
m.save=function(){var a=new Hc(this);H(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.V,this.ca,this.M,Gc(this)]);H(a,1,[this.u,this.H,this.i.Na]);for(var b=this.B,c=0,d=[],e=0;e<b.L;e++){var f=b.U[e];if(f.ya||f.Lb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var p=f[g],n=g+1;n<f.length&&f[n]===p;)n++;k[l++]=n-g;k[l++]=p;g=n}if(k.length<f.length){f=k;break a}}d[h]=f}}H(a,2,d);return a.data()};
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.V=b[6];this.ca=b[7]&65535;F(this,b[8]);Ec(this,b[9]);b=a[1];this.u=b[0];this.H=b[1];wc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.Y){for(var f=0,h=Array(b.Y),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.U[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.oa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.T[b]=c;this.Y++;d=!0;break;default:d=this.parent.oa.call(this,a,b,c)}return d};function Ic(a){return a.N<<8|a.O}function Jc(a,b){a.N=b>>8&255;a.O=b&255}function Kc(a){return a.P<<8|a.R}function Lc(a,b){a.P=b>>8&255;a.R=b&255}function I(a){return a.S<<8|a.V}
function Mc(a,b){a.S=b>>8&255;a.V=b&255}function F(a,b){a.L=b&65535}function Nc(a){return a.I&256?1:0}function Oc(a){return mb[a.Z&255]?4:0}function Pc(a){return(a.Z^a.ja)&16?16:0}function Qc(a){return a.I&255?0:64}function Rc(a){return a.Z&128?128:0}function Gc(a){return a.qa&-214|Rc(a)|Qc(a)|Pc(a)|Oc(a)|Nc(a)}function Ec(a,b){a.I=a.Z=a.ja=0;b&1&&(a.I|=256);b&4||(a.Z|=1);b&16&&(a.ja|=16);b&64||(a.I|=255);b&128&&(a.Z^=192);a.qa=a.qa&-513|b&512|2}
function Sc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b)&255}function Tc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?1:0))&255}function kd(a,b){a.I=a.Z=a.ja=a.j&b;(a.j|b)&8&&(a.ja^=16);return a.I}function ld(a,b){a.ja=b^255;b=a.Z=b+255&255;a.I=a.I&-256|b;return b}function md(a,b){a.ja=b;b=a.Z=b+1&255;a.I=a.I&-256|b;return b}function nd(a,b){return a.Z=a.I=a.ja=a.j|b}function J(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+1^256)&255}
function od(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?0:1)^256)&255}function pd(a,b){return a.Z=a.I=a.ja=a.j^b}m.W=function(a){return this.B.W(a)};m.fa=function(a,b){this.B.fa(a,b)};function L(a){var b=a.W(a.L);F(a,a.L+1);return b}function M(a){var b=a.B.Ga(a.L);F(a,a.L+2);return b}function N(a){var b=a.B.Ga(a.ca);a.ca=a.ca+2&65535;return b}function Q(a,b){a.ca=a.ca-2&65535;a.B.ub(a.ca,b)}
function Mc(a,b){a.S=b>>8&255;a.V=b&255}function F(a,b){a.M=b&65535}function Nc(a){return a.I&256?1:0}function Oc(a){return mb[a.Z&255]?4:0}function Pc(a){return(a.Z^a.ja)&16?16:0}function Qc(a){return a.I&255?0:64}function Rc(a){return a.Z&128?128:0}function Gc(a){return a.qa&-214|Rc(a)|Qc(a)|Pc(a)|Oc(a)|Nc(a)}function Ec(a,b){a.I=a.Z=a.ja=0;b&1&&(a.I|=256);b&4||(a.Z|=1);b&16&&(a.ja|=16);b&64||(a.I|=255);b&128&&(a.Z^=192);a.qa=a.qa&-513|b&512|2}
function Sc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b)&255}function Tc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?1:0))&255}function Uc(a,b){a.I=a.Z=a.ja=a.j&b;(a.j|b)&8&&(a.ja^=16);return a.I}function ld(a,b){a.ja=b^255;b=a.Z=b+255&255;a.I=a.I&-256|b;return b}function md(a,b){a.ja=b;b=a.Z=b+1&255;a.I=a.I&-256|b;return b}function nd(a,b){return a.Z=a.I=a.ja=a.j|b}function J(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+1^256)&255}
function od(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?0:1)^256)&255}function pd(a,b){return a.Z=a.I=a.ja=a.j^b}m.X=function(a){return this.B.X(a)};m.ga=function(a,b){this.B.ga(a,b)};function L(a){var b=a.X(a.M);F(a,a.M+1);return b}function M(a){var b=a.B.Fa(a.M);F(a,a.M+2);return b}function N(a){var b=a.B.Fa(a.ca);a.ca=a.ca+2&65535;return b}function Q(a,b){a.ca=a.ca-2&65535;a.B.ub(a.ca,b)}
function R(a,b,c,d){d=d||2;a.T[b]&&(void 0===c&&(kb(a,"Value for "+b+" is invalid"),a.da()),c=!a.A.ma||a.A.Mb?q(c,d):"--------".substr(0,d),a.T[b].textContent!=c&&(a.T[b].textContent=c))}
m.va=function(a){this.Y&&(a||!this.A.ma||this.A.Mb)&&(R(this,"A",this.j),R(this,"B",this.N),R(this,"C",this.O),R(this,"BC",Ic(this),4),R(this,"D",this.P),R(this,"E",this.R),R(this,"DE",Kc(this),4),R(this,"H",this.S),R(this,"L",this.V),R(this,"HL",I(this),4),R(this,"SP",this.ca,4),R(this,"PC",this.L,4),a=Gc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.T.speed)a.textContent=
m.va=function(a){this.Y&&(a||!this.A.ma||this.A.Mb)&&(R(this,"A",this.j),R(this,"B",this.N),R(this,"C",this.O),R(this,"BC",Ic(this),4),R(this,"D",this.P),R(this,"E",this.R),R(this,"DE",Kc(this),4),R(this,"H",this.S),R(this,"L",this.V),R(this,"HL",I(this),4),R(this,"SP",this.ca,4),R(this,"PC",this.M,4),a=Gc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.T.speed)a.textContent=
this.A.ma&&this.i.Ka?this.i.Ka.toFixed(2)+"Mhz":"Stopped"};
m.bb=function(a){this.A.qb=!0;var b=this.A.Yb=this.F&&qd(this.F),c=a?this.A.xb?0:1:-1;this.A.xb=!1;this.D=this.b=a;do{if(this.u){var d;this.u&8&&this.qa&512?(d=199|(this.u&7)<<3,this.u&=-16,this.qa&=-513,this.M[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.u&16){this.b=0;break}}if(b){if(rd(this.F,this.L,c)){this.da();break}c=1}this.M[L(this)].call(this)}while(0<this.b);return this.A.qb?this.D-this.b:void 0===this.A.qb?0:-1};
Ja(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ac(d);cb(d,c)}});function sd(){this.b-=4}function td(){F(this,M(this));this.b-=10}function ud(){F(this,N(this));this.b-=10}function vd(){var a=M(this);Q(this,this.L);F(this,a);this.b-=17}
var Bc=[sd,function(){Jc(this,M(this));this.b-=10},function(){this.fa(Ic(this),this.j);this.b-=7},function(){Jc(this,Ic(this)+1);this.b-=5},function(){this.N=md(this,this.N);this.b-=5},function(){this.N=ld(this,this.N);this.b-=5},function(){this.N=L(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.I=this.I&255|a&256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+Ic(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Ic(this));this.b-=7},function(){Jc(this,Ic(this)-
1);this.b-=5},function(){this.O=md(this,this.O);this.b-=5},function(){this.O=ld(this,this.O);this.b-=5},function(){this.O=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.I=this.I&255|a;this.b-=4},sd,function(){Lc(this,M(this));this.b-=10},function(){this.fa(Kc(this),this.j);this.b-=7},function(){Lc(this,Kc(this)+1);this.b-=5},function(){this.P=md(this,this.P);this.b-=5},function(){this.P=ld(this,this.P);this.b-=5},function(){this.P=L(this);this.b-=7},function(){var a=this.j<<
1;this.j=a&255|this.I>>8;this.I=this.I&255|a&256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+Kc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Kc(this));this.b-=7},function(){Lc(this,Kc(this)-1);this.b-=5},function(){this.R=md(this,this.R);this.b-=5},function(){this.R=ld(this,this.R);this.b-=5},function(){this.R=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.I&256|this.j)>>1;this.I=this.I&255|a;this.b-=4},sd,function(){Mc(this,M(this));this.b-=10},function(){var a=
M(this);this.B.ub(a,I(this));this.b-=16},function(){Mc(this,I(this)+1);this.b-=5},function(){this.S=md(this,this.S);this.b-=5},function(){this.S=ld(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=0,b=Nc(this);if(Pc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Sc(this,a);this.I=b?this.I|256:this.I&-257;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+I(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){var a;a=M(this);a=this.B.Ga(a);Mc(this,a);this.b-=
16},function(){Mc(this,I(this)-1);this.b-=5},function(){this.V=md(this,this.V);this.b-=5},function(){this.V=ld(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},sd,function(){this.ca=M(this)&65535;this.b-=10},function(){this.fa(M(this),this.j);this.b-=13},function(){this.ca=this.ca+1&65535;this.b-=5},function(){var a=I(this);this.fa(a,md(this,this.W(a)));this.b-=10},function(){var a=I(this);this.fa(a,ld(this,this.W(a)));this.b-=10},function(){this.fa(I(this),
L(this));this.b-=10},function(){this.I|=256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+this.ca);this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(M(this));this.b-=13},function(){this.ca=this.ca-1&65535;this.b-=5},function(){this.j=md(this,this.j);this.b-=5},function(){this.j=ld(this,this.j);this.b-=5},function(){this.j=L(this);this.b-=7},function(){this.I=Nc(this)?this.I&-257:this.I|256;this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;
this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.V;this.b-=5},function(){this.N=this.W(I(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.V;this.b-=5},function(){this.O=this.W(I(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=
this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.W(I(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.W(I(this));
this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.V=this.N;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=
5},function(){this.b-=5},function(){this.V=this.W(I(this));this.b-=7},function(){this.V=this.j;this.b-=5},function(){this.fa(I(this),this.N);this.b-=7},function(){this.fa(I(this),this.O);this.b-=7},function(){this.fa(I(this),this.P);this.b-=7},function(){this.fa(I(this),this.R);this.b-=7},function(){this.fa(I(this),this.S);this.b-=7},function(){this.fa(I(this),this.V);this.b-=7},function(){var a=this.L-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.u|=16;this.b-=7;
this.F&&gb(this,-2147483648)?(F(this,a),this.F.da()):this.qa&512||(this.F&&F(this,a),this.da())},function(){this.fa(I(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.W(I(this));this.b-=7},function(){this.b-=5},function(){this.j=Sc(this,this.N);this.b-=4},function(){this.j=Sc(this,this.O);
this.b-=4},function(){this.j=Sc(this,this.P);this.b-=4},function(){this.j=Sc(this,this.R);this.b-=4},function(){this.j=Sc(this,this.S);this.b-=4},function(){this.j=Sc(this,this.V);this.b-=4},function(){this.j=Sc(this,this.W(I(this)));this.b-=7},function(){this.j=Sc(this,this.j);this.b-=4},function(){this.j=Tc(this,this.N);this.b-=4},function(){this.j=Tc(this,this.O);this.b-=4},function(){this.j=Tc(this,this.P);this.b-=4},function(){this.j=Tc(this,this.R);this.b-=4},function(){this.j=Tc(this,this.S);
this.b-=4},function(){this.j=Tc(this,this.V);this.b-=4},function(){this.j=Tc(this,this.W(I(this)));this.b-=7},function(){this.j=Tc(this,this.j);this.b-=4},function(){this.j=J(this,this.N);this.b-=4},function(){this.j=J(this,this.O);this.b-=4},function(){this.j=J(this,this.P);this.b-=4},function(){this.j=J(this,this.R);this.b-=4},function(){this.j=J(this,this.S);this.b-=4},function(){this.j=J(this,this.V);this.b-=4},function(){this.j=J(this,this.W(I(this)));this.b-=7},function(){this.j=J(this,this.j);
this.b-=4},function(){this.j=od(this,this.N);this.b-=4},function(){this.j=od(this,this.O);this.b-=4},function(){this.j=od(this,this.P);this.b-=4},function(){this.j=od(this,this.R);this.b-=4},function(){this.j=od(this,this.S);this.b-=4},function(){this.j=od(this,this.V);this.b-=4},function(){this.j=od(this,this.W(I(this)));this.b-=7},function(){this.j=od(this,this.j);this.b-=4},function(){this.j=kd(this,this.N);this.b-=4},function(){this.j=kd(this,this.O);this.b-=4},function(){this.j=kd(this,this.P);
this.b-=4},function(){this.j=kd(this,this.R);this.b-=4},function(){this.j=kd(this,this.S);this.b-=4},function(){this.j=kd(this,this.V);this.b-=4},function(){this.j=kd(this,this.W(I(this)));this.b-=7},function(){this.j=kd(this,this.j);this.b-=4},function(){this.j=pd(this,this.N);this.b-=4},function(){this.j=pd(this,this.O);this.b-=4},function(){this.j=pd(this,this.P);this.b-=4},function(){this.j=pd(this,this.R);this.b-=4},function(){this.j=pd(this,this.S);this.b-=4},function(){this.j=pd(this,this.V);
this.b-=4},function(){this.j=pd(this,this.W(I(this)));this.b-=7},function(){this.j=pd(this,this.j);this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.V);this.b-=4},function(){this.j=nd(this,this.W(I(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){J(this,this.N);
this.b-=4},function(){J(this,this.O);this.b-=4},function(){J(this,this.P);this.b-=4},function(){J(this,this.R);this.b-=4},function(){J(this,this.S);this.b-=4},function(){J(this,this.V);this.b-=4},function(){J(this,this.W(I(this)));this.b-=7},function(){J(this,this.j);this.b-=4},function(){Qc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Jc(this,N(this));this.b-=10},function(){var a=M(this);Qc(this)||F(this,a);this.b-=10},td,function(){var a=M(this);Qc(this)||(Q(this,this.L),F(this,a),this.b-=
6);this.b-=11},function(){Q(this,Ic(this));this.b-=11},function(){this.j=Sc(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,0);this.b-=11},function(){Qc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},ud,function(){var a=M(this);Qc(this)&&F(this,a);this.b-=10},td,function(){var a=M(this);Qc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},vd,function(){this.j=Tc(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,8);this.b-=11},function(){Nc(this)||(F(this,N(this)),this.b-=6);
this.b-=5},function(){Lc(this,N(this));this.b-=10},function(){var a=M(this);Nc(this)||F(this,a);this.b-=10},function(){var a=L(this);Jb(this.B,a,this.j,this.L+-2&65535);this.b-=10},function(){var a=M(this);Nc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Kc(this));this.b-=11},function(){this.j=J(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,16);this.b-=11},function(){Nc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},ud,function(){var a=M(this);Nc(this)&&F(this,
a);this.b-=10},function(){var a=L(this);this.j=yb(this.B,a,this.L+-2&65535)&255;this.b-=10},function(){var a=M(this);Nc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},vd,function(){this.j=od(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,24);this.b-=11},function(){Oc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Mc(this,N(this));this.b-=10},function(){var a=M(this);Oc(this)||F(this,a);this.b-=10},function(){var a=N(this);Q(this,I(this));Mc(this,a);this.b-=18},function(){var a=
M(this);Oc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,I(this));this.b-=11},function(){this.j=kd(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,32);this.b-=11},function(){Oc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){F(this,I(this));this.b-=5},function(){var a=M(this);Oc(this)&&F(this,a);this.b-=10},function(){var a=I(this);Mc(this,Kc(this));Lc(this,a);this.b-=5},function(){var a=M(this);Oc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=
11},vd,function(){this.j=pd(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,40);this.b-=11},function(){Rc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Ec(this,a);this.j=a>>8;this.b-=10},function(){var a=M(this);Rc(this)||F(this,a);this.b-=10},function(){this.qa&=-513;this.b-=4},function(){var a=M(this);Rc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Gc(this)&255|this.j<<8);this.b-=11},function(){this.j=nd(this,L(this));this.b-=7},function(){Q(this,
this.L);F(this,48);this.b-=11},function(){Rc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){this.ca=I(this)&65535;this.b-=5},function(){var a=M(this);Rc(this)&&F(this,a);this.b-=10},function(){this.qa|=512;this.b-=4},function(){var a=M(this);Rc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},vd,function(){J(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,56);this.b-=11}];
function S(a){w.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!wd[b]&&t("Unrecognized ChipSet model: "+b);this.Ua=wd[b]||xd;a.sound&&(this.X=null,window&&(this.X=window.AudioContext||window.webkitAudioContext),this.X&&new this.X);C(this)}Wa(S);var xd=1978.1,wd={SI1978:xd};m=S.prototype;m.oa=function(){return!1};
m.Ha=function(a,b,c,d){this.B=b;this.b=c;this.F=d;this.w=a;if(this.Ua==xd){var e;a=yd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.w[g]?t("Input port "+r(g)+" already registered"):c.w[g]=[h,!1]}var k;e=zd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.u[d]?t("Output port "+r(d)+" already registered"):f.u[d]=[c,!1]}};
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.Aa=function(a){return a?this.save():!0};m.reset=function(){this.G=this.H=this.D=this.u=this.M=this.K=this.J=0};m.save=function(){var a=new Hc(this);this.Ua==xd&&H(a,0,[this.J,this.K,this.M,this.u,this.D,this.G,this.H]);return a.data()};m.restore=function(a){a=a[0];this.Ua==xd&&(this.J=a[0],this.K=a[1],this.M=a[2],this.u=a[3],this.D=a[4],this.G=a[5],this.H=a[6]);return!0};m.start=function(){};m.stop=function(){};
m.cc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.dc=function(a,b){var c=this.K;db(this,a,null,b,"STATUS1",c);return c};m.ec=function(a,b){var c=this.M;db(this,a,null,b,"STATUS2",c);return c};m.bc=function(a,b){var c=this.u>>8-this.D&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.D=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.G=b};
m.bb=function(a){this.A.qb=!0;var b=this.A.Yb=this.F&&qd(this.F),c=a?this.A.xb?0:1:-1;this.A.xb=!1;this.C=this.b=a;do{if(this.u){var d;this.u&8&&this.qa&512?(d=199|(this.u&7)<<3,this.u&=-16,this.qa&=-513,this.L[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.u&16){this.b=0;break}}if(b){if(rd(this.F,this.M,c)){this.da();break}c=1}this.L[L(this)].call(this)}while(0<this.b);return this.A.qb?this.C-this.b:void 0===this.A.qb?0:-1};
Ja(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ac(d);cb(d,c)}});function sd(){this.b-=4}function td(){F(this,M(this));this.b-=10}function ud(){F(this,N(this));this.b-=10}function vd(){var a=M(this);Q(this,this.M);F(this,a);this.b-=17}
var Bc=[sd,function(){Jc(this,M(this));this.b-=10},function(){this.ga(Ic(this),this.j);this.b-=7},function(){Jc(this,Ic(this)+1);this.b-=5},function(){this.N=md(this,this.N);this.b-=5},function(){this.N=ld(this,this.N);this.b-=5},function(){this.N=L(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.I=this.I&255|a&256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+Ic(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.X(Ic(this));this.b-=7},function(){Jc(this,Ic(this)-
1);this.b-=5},function(){this.O=md(this,this.O);this.b-=5},function(){this.O=ld(this,this.O);this.b-=5},function(){this.O=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.I=this.I&255|a;this.b-=4},sd,function(){Lc(this,M(this));this.b-=10},function(){this.ga(Kc(this),this.j);this.b-=7},function(){Lc(this,Kc(this)+1);this.b-=5},function(){this.P=md(this,this.P);this.b-=5},function(){this.P=ld(this,this.P);this.b-=5},function(){this.P=L(this);this.b-=7},function(){var a=this.j<<
1;this.j=a&255|this.I>>8;this.I=this.I&255|a&256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+Kc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.X(Kc(this));this.b-=7},function(){Lc(this,Kc(this)-1);this.b-=5},function(){this.R=md(this,this.R);this.b-=5},function(){this.R=ld(this,this.R);this.b-=5},function(){this.R=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.I&256|this.j)>>1;this.I=this.I&255|a;this.b-=4},sd,function(){Mc(this,M(this));this.b-=10},function(){var a=
M(this);this.B.ub(a,I(this));this.b-=16},function(){Mc(this,I(this)+1);this.b-=5},function(){this.S=md(this,this.S);this.b-=5},function(){this.S=ld(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=0,b=Nc(this);if(Pc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Sc(this,a);this.I=b?this.I|256:this.I&-257;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+I(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){var a;a=M(this);a=this.B.Fa(a);Mc(this,a);this.b-=
16},function(){Mc(this,I(this)-1);this.b-=5},function(){this.V=md(this,this.V);this.b-=5},function(){this.V=ld(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},sd,function(){this.ca=M(this)&65535;this.b-=10},function(){this.ga(M(this),this.j);this.b-=13},function(){this.ca=this.ca+1&65535;this.b-=5},function(){var a=I(this);this.ga(a,md(this,this.X(a)));this.b-=10},function(){var a=I(this);this.ga(a,ld(this,this.X(a)));this.b-=10},function(){this.ga(I(this),
L(this));this.b-=10},function(){this.I|=256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+this.ca);this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.X(M(this));this.b-=13},function(){this.ca=this.ca-1&65535;this.b-=5},function(){this.j=md(this,this.j);this.b-=5},function(){this.j=ld(this,this.j);this.b-=5},function(){this.j=L(this);this.b-=7},function(){this.I=Nc(this)?this.I&-257:this.I|256;this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;
this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.V;this.b-=5},function(){this.N=this.X(I(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.V;this.b-=5},function(){this.O=this.X(I(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=
this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.X(I(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.X(I(this));
this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.X(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.V=this.N;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=
5},function(){this.b-=5},function(){this.V=this.X(I(this));this.b-=7},function(){this.V=this.j;this.b-=5},function(){this.ga(I(this),this.N);this.b-=7},function(){this.ga(I(this),this.O);this.b-=7},function(){this.ga(I(this),this.P);this.b-=7},function(){this.ga(I(this),this.R);this.b-=7},function(){this.ga(I(this),this.S);this.b-=7},function(){this.ga(I(this),this.V);this.b-=7},function(){var a=this.M-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.u|=16;this.b-=7;
this.F&&gb(this,-2147483648)?(F(this,a),this.F.da()):this.qa&512||(this.F&&F(this,a),this.da())},function(){this.ga(I(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.X(I(this));this.b-=7},function(){this.b-=5},function(){this.j=Sc(this,this.N);this.b-=4},function(){this.j=Sc(this,this.O);
this.b-=4},function(){this.j=Sc(this,this.P);this.b-=4},function(){this.j=Sc(this,this.R);this.b-=4},function(){this.j=Sc(this,this.S);this.b-=4},function(){this.j=Sc(this,this.V);this.b-=4},function(){this.j=Sc(this,this.X(I(this)));this.b-=7},function(){this.j=Sc(this,this.j);this.b-=4},function(){this.j=Tc(this,this.N);this.b-=4},function(){this.j=Tc(this,this.O);this.b-=4},function(){this.j=Tc(this,this.P);this.b-=4},function(){this.j=Tc(this,this.R);this.b-=4},function(){this.j=Tc(this,this.S);
this.b-=4},function(){this.j=Tc(this,this.V);this.b-=4},function(){this.j=Tc(this,this.X(I(this)));this.b-=7},function(){this.j=Tc(this,this.j);this.b-=4},function(){this.j=J(this,this.N);this.b-=4},function(){this.j=J(this,this.O);this.b-=4},function(){this.j=J(this,this.P);this.b-=4},function(){this.j=J(this,this.R);this.b-=4},function(){this.j=J(this,this.S);this.b-=4},function(){this.j=J(this,this.V);this.b-=4},function(){this.j=J(this,this.X(I(this)));this.b-=7},function(){this.j=J(this,this.j);
this.b-=4},function(){this.j=od(this,this.N);this.b-=4},function(){this.j=od(this,this.O);this.b-=4},function(){this.j=od(this,this.P);this.b-=4},function(){this.j=od(this,this.R);this.b-=4},function(){this.j=od(this,this.S);this.b-=4},function(){this.j=od(this,this.V);this.b-=4},function(){this.j=od(this,this.X(I(this)));this.b-=7},function(){this.j=od(this,this.j);this.b-=4},function(){this.j=Uc(this,this.N);this.b-=4},function(){this.j=Uc(this,this.O);this.b-=4},function(){this.j=Uc(this,this.P);
this.b-=4},function(){this.j=Uc(this,this.R);this.b-=4},function(){this.j=Uc(this,this.S);this.b-=4},function(){this.j=Uc(this,this.V);this.b-=4},function(){this.j=Uc(this,this.X(I(this)));this.b-=7},function(){this.j=Uc(this,this.j);this.b-=4},function(){this.j=pd(this,this.N);this.b-=4},function(){this.j=pd(this,this.O);this.b-=4},function(){this.j=pd(this,this.P);this.b-=4},function(){this.j=pd(this,this.R);this.b-=4},function(){this.j=pd(this,this.S);this.b-=4},function(){this.j=pd(this,this.V);
this.b-=4},function(){this.j=pd(this,this.X(I(this)));this.b-=7},function(){this.j=pd(this,this.j);this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.V);this.b-=4},function(){this.j=nd(this,this.X(I(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){J(this,this.N);
this.b-=4},function(){J(this,this.O);this.b-=4},function(){J(this,this.P);this.b-=4},function(){J(this,this.R);this.b-=4},function(){J(this,this.S);this.b-=4},function(){J(this,this.V);this.b-=4},function(){J(this,this.X(I(this)));this.b-=7},function(){J(this,this.j);this.b-=4},function(){Qc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Jc(this,N(this));this.b-=10},function(){var a=M(this);Qc(this)||F(this,a);this.b-=10},td,function(){var a=M(this);Qc(this)||(Q(this,this.M),F(this,a),this.b-=
6);this.b-=11},function(){Q(this,Ic(this));this.b-=11},function(){this.j=Sc(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,0);this.b-=11},function(){Qc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},ud,function(){var a=M(this);Qc(this)&&F(this,a);this.b-=10},td,function(){var a=M(this);Qc(this)&&(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},vd,function(){this.j=Tc(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,8);this.b-=11},function(){Nc(this)||(F(this,N(this)),this.b-=6);
this.b-=5},function(){Lc(this,N(this));this.b-=10},function(){var a=M(this);Nc(this)||F(this,a);this.b-=10},function(){var a=L(this);Kb(this.B,a,this.j,this.M+-2&65535);this.b-=10},function(){var a=M(this);Nc(this)||(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Kc(this));this.b-=11},function(){this.j=J(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,16);this.b-=11},function(){Nc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},ud,function(){var a=M(this);Nc(this)&&F(this,
a);this.b-=10},function(){var a=L(this);this.j=zb(this.B,a,this.M+-2&65535)&255;this.b-=10},function(){var a=M(this);Nc(this)&&(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},vd,function(){this.j=od(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,24);this.b-=11},function(){Oc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Mc(this,N(this));this.b-=10},function(){var a=M(this);Oc(this)||F(this,a);this.b-=10},function(){var a=N(this);Q(this,I(this));Mc(this,a);this.b-=18},function(){var a=
M(this);Oc(this)||(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},function(){Q(this,I(this));this.b-=11},function(){this.j=Uc(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,32);this.b-=11},function(){Oc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){F(this,I(this));this.b-=5},function(){var a=M(this);Oc(this)&&F(this,a);this.b-=10},function(){var a=I(this);Mc(this,Kc(this));Lc(this,a);this.b-=5},function(){var a=M(this);Oc(this)&&(Q(this,this.M),F(this,a),this.b-=6);this.b-=
11},vd,function(){this.j=pd(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,40);this.b-=11},function(){Rc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Ec(this,a);this.j=a>>8;this.b-=10},function(){var a=M(this);Rc(this)||F(this,a);this.b-=10},function(){this.qa&=-513;this.b-=4},function(){var a=M(this);Rc(this)||(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Gc(this)&255|this.j<<8);this.b-=11},function(){this.j=nd(this,L(this));this.b-=7},function(){Q(this,
this.M);F(this,48);this.b-=11},function(){Rc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){this.ca=I(this)&65535;this.b-=5},function(){var a=M(this);Rc(this)&&F(this,a);this.b-=10},function(){this.qa|=512;this.b-=4},function(){var a=M(this);Rc(this)&&(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},vd,function(){J(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,56);this.b-=11}];
function S(a){w.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!wd[b]&&t("Unrecognized ChipSet model: "+b);this.Ua=wd[b]||xd;a.sound&&(this.W=null,window&&(this.W=window.AudioContext||window.webkitAudioContext),this.W&&new this.W);C(this)}Wa(S);var xd=1978.1,wd={SI1978:xd};m=S.prototype;m.oa=function(){return!1};
m.Ga=function(a,b,c,d){this.B=b;this.b=c;this.F=d;this.w=a;if(this.Ua==xd){var e;a=yd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.w[g]?t("Input port "+r(g)+" already registered"):c.w[g]=[h,!1]}var l;e=zd;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.u[d]?t("Output port "+r(d)+" already registered"):f.u[d]=[c,!1]}};
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.Aa=function(a){return a?this.save():!0};m.reset=function(){this.G=this.H=this.C=this.u=this.L=this.K=this.J=0};m.save=function(){var a=new Hc(this);this.Ua==xd&&H(a,0,[this.J,this.K,this.L,this.u,this.C,this.G,this.H]);return a.data()};m.restore=function(a){a=a[0];this.Ua==xd&&(this.J=a[0],this.K=a[1],this.L=a[2],this.u=a[3],this.C=a[4],this.G=a[5],this.H=a[6]);return!0};m.start=function(){};m.stop=function(){};
m.cc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.dc=function(a,b){var c=this.K;db(this,a,null,b,"STATUS1",c);return c};m.ec=function(a,b){var c=this.L;db(this,a,null,b,"STATUS2",c);return c};m.bc=function(a,b){var c=this.u>>8-this.C&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.C=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.G=b};
m.jc=function(a,b,c){db(this,a,b,c,"SHIFT.DATA",null);this.u=b<<8|this.u>>8};m.lc=function(a,b,c){db(this,a,b,c,"SOUND2",null);this.H=b};m.mc=function(a,b,c){db(this,a,b,c,"WATCHDOG",null)};var yd={0:S.prototype.cc,1:S.prototype.dc,2:S.prototype.ec,3:S.prototype.bc},zd={2:S.prototype.ic,3:S.prototype.kc,4:S.prototype.jc,5:S.prototype.lc,6:S.prototype.mc};Ja(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new S(d);cb(d,c)}});
function Ad(a){w.call(this,"ROM",a,Ad);this.w=null;this.H=a.addr;this.u=a.size;this.J=a.writable;this.D=a.alias;this.G=a.file;this.K=ba(this.G);if(this.G){a=this.G;var b=ca(this.K);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Bd(c,a,b,f)})}}Wa(Ad);var Cd=[0,5];Ad.prototype.Ha=function(a,b,c,d){this.B=b;this.b=c;this.F=d;Dd(this)};
Ad.prototype.Ba=function(){if(this.Da){if(this.F){var a=this.F,b=this.id,c=this.H,d=this.u,e=this.Da,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],n=ia(p,k,a.Fb);0>n&&p.splice(-(n+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,C:c,gc:d,Da:e,Db:f})}delete this.Da}return!0};Ad.prototype.Aa=function(){return!0};
function Bd(a,b,c,d){if(d)a.pa("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Da=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.pa("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
function Ad(a){w.call(this,"ROM",a,Ad);this.w=null;this.H=a.addr;this.u=a.size;this.J=a.writable;this.C=a.alias;this.G=a.file;this.K=ba(this.G);if(this.G){a=this.G;var b=ca(this.K);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Bd(c,a,b,f)})}}Wa(Ad);var Cd=[0,5];Ad.prototype.Ga=function(a,b,c,d){this.B=b;this.b=c;this.F=d;Dd(this)};
Ad.prototype.Ba=function(){if(this.Da){if(this.F){var a=this.F,b=this.id,c=this.H,d=this.u,e=this.Da,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var l=g.o,k=g.a;if(void 0!==l){var p=f,l=[l>>>0,h],n=ia(p,l,a.Fb);0>n&&p.splice(-(n+1),0,l)}k&&(g.a=k.replace(/''/g,'"'))}a.J.push({nc:b,D:c,gc:d,Da:e,Db:f})}delete this.Da}return!0};Ad.prototype.Aa=function(){return!0};
function Bd(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Da=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.na("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=aa(b[e],16);Dd(a)}}
function Dd(a){if(!jb(a))if(!a.G)C(a);else if(a.w&&a.B){a.u||(a.u=a.w.length);if(a.w.length!=a.u)kb(a,"ROM size (0x"+q(a.w.length)+") does not match specified size ("+("0x"+q(a.u))+")");else if(Ed(a,a.H)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.u,g=[],k=d.H>>>f.ea;0<h&&k<f.U.length;)g.push(f.U[k++]),h-=f.ua;f=d.B;d=d.u;h=0;for(e>>>=f.ea;0<d&&e<f.U.length;){k=g[h++];if(!k)break;f.U[e++]=k;d-=f.ua}}delete a.w}C(a)}}
function Ed(a,b){if(sb(a.B,b,a.u,a.J?1:Qb)){var c;for(c=0;c<a.w.length;c++)wb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Cd.length;c++)wb(a.B,Cd[c],118);Dc(a.b,function(a){return function(b){if(0<=Cd.indexOf(b)){var c=!1,h=a.b,g=a.F;if(5==b)switch(c=!0,h.O){case 2:Fd(a,String.fromCharCode(h.R));break;case 9:for(var k=Kc(h),l="",p=255;p--;){var n=a.b.W(k++);if(36==n)break;l+=String.fromCharCode(n)}Fd(a,l);break;default:c=!1}c?ud.call(h):g&&(a.g("\nCP/M vector "+r(b)),F(h,b),g.da());b=!0}else b=!1;return b}}(a));
Fc(a.b,b)}return!0}return!1}function Fd(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}Ja(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ad(d);cb(d,c)}});function Gd(a){w.call(this,"RAM",a,Gd);this.D=a.addr;this.u=a.size;this.w=!1}Wa(Gd);m=Gd.prototype;m.Ha=function(a,b,c,d){this.B=b;this.b=c;this.F=d;C(this)};m.Ba=function(a,b){b||this.reset();return!0};m.Aa=function(a){return a?this.save():!0};
m.reset=function(){!this.w&&this.u&&sb(this.B,this.D,this.u,1)&&(this.w=!0,this.status(Math.floor(this.u/1024)+"Kb allocated"));this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Gd(d);cb(d,c)}});function Hd(a){w.call(this,"Keyboard",a,Hd,65536);C(this)}Wa(Hd);
Ja(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Hd(d);cb(d,c)}});
function Id(a,b,c,d,e){var f=this;this.sa=va("Gecko/");var h=["","moz","webkit","ms"];w.call(this,"Video",a,Id,262144);this.Y=a.screenWidth;this.M=a.screenHeight;this.ba=a.bufferAddr;this.J=a.bufferCols;this.K=a.bufferRows;this.la=a.bufferBits||1;this.pb=a.bufferLeft||0;this.na=a.bufferRotate;this.Zb=a.interruptRate;this.Ea=a.refreshRate||60;this.G=b;this.H=c;this.wa=d||b||null;b=a.smoothing;(c=Ra.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<h.length;c++)d=(d=h[c])?d+"ImageSmoothingEnabled":
"imageSmoothingEnabled",this.H[d]=b;this.Fa=a.screenRotate;90==this.Fa&&(this.H.translate(0,this.M),this.H.rotate(-this.Fa*Math.PI/180),this.H.scale(this.M/this.Y,this.Y/this.M));this.Ia=[[0,0,0,255],[255,255,255,255]];a=this.J;b=this.K;this.na&&(a=this.K,b=this.J);this.ka=this.H.createImageData(a,b);this.D=document.createElement("canvas");this.D.width=a;this.D.height=b;this.ra=this.D.getContext("2d");if(this.u=e)if(this.u.Pa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,
this.u.Pa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Jd(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Jd(f,null)},!1);break}}}Wa(Id);
Id.prototype.Ha=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.aa=(this.J*this.la>>3)*this.K;sb(this.B,this.ba,this.aa,3)&&(this.xa=this.aa>>1,this.Ca=16/this.la|0,this.ga=!1,void 0===this.X||this.X.length!=this.xa)&&(this.X=Array(this.xa));C(this)};Id.prototype.oa=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.T[b]=c,this.u&&this.u.Pa?c.onclick=function(){d.Pa()}:c.parentNode.removeChild(c),!0}return!1};
Id.prototype.Pa=function(){var a=!1;if(this.u){if(this.u.Pa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.M;b>c&&(a=Math.round(c/b*100)+"%")}this.sa?(this.G.style.width=a,this.G.style.width=a,this.G.style.display="block",this.G.style.margin="auto"):(this.u.style.width=a,this.u.style.height="auto");this.u.style.backgroundColor="black";this.u.Pa();a=!0}this.wa&&this.wa.focus()}return a};
function Jd(a,b){!b&&a.u&&(a.sa?a.G.style.width=a.G.style.height="":a.u.style.width=a.u.style.height="");fb(a,"notifyFullScreen("+b+")",!0)}
function Dd(a){if(!jb(a))if(!a.G)C(a);else if(a.w&&a.B){a.u||(a.u=a.w.length);if(a.w.length!=a.u)kb(a,"ROM size (0x"+q(a.w.length)+") does not match specified size ("+("0x"+q(a.u))+")");else if(Ed(a,a.H)){var b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.u,g=[],l=d.H>>>f.ea;0<h&&l<f.U.length;)g.push(f.U[l++]),h-=f.ua;f=d.B;d=d.u;h=0;for(e>>>=f.ea;0<d&&e<f.U.length;){l=g[h++];if(!l)break;f.U[e++]=l;d-=f.ua}}delete a.w}C(a)}}
function Ed(a,b){if(sb(a.B,b,a.u,a.J?1:Rb)){var c;for(c=0;c<a.w.length;c++)xb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Cd.length;c++)xb(a.B,Cd[c],118);Dc(a.b,function(a){return function(b){if(0<=Cd.indexOf(b)){var c=!1,h=a.b,g=a.F;if(5==b)switch(c=!0,h.O){case 2:Fd(a,String.fromCharCode(h.R));break;case 9:for(var l=Kc(h),k="",p=255;p--;){var n=a.b.X(l++);if(36==n)break;k+=String.fromCharCode(n)}Fd(a,k);break;default:c=!1}c?ud.call(h):g&&(a.g("\nCP/M vector "+r(b)),F(h,b),g.da());b=!0}else b=!1;return b}}(a));
Fc(a.b,b)}return!0}return!1}function Fd(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}Ja(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ad(d);cb(d,c)}});function Gd(a){w.call(this,"RAM",a,Gd);this.C=a.addr;this.u=a.size;this.w=!1}Wa(Gd);m=Gd.prototype;m.Ga=function(a,b,c,d){this.B=b;this.b=c;this.F=d;C(this)};m.Ba=function(a,b){b||this.reset();return!0};m.Aa=function(a){return a?this.save():!0};
m.reset=function(){!this.w&&this.u&&sb(this.B,this.C,this.u,1)&&(this.w=!0);this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Gd(d);cb(d,c)}});function Hd(a){w.call(this,"Keyboard",a,Hd,65536);C(this)}Wa(Hd);Ja(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Hd(d);cb(d,c)}});
function Id(a,b,c,d,e){var f=this;this.ra=va("Gecko/");var h=["","moz","webkit","ms"];w.call(this,"Video",a,Id,262144);this.ba=a.screenWidth;this.Y=a.screenHeight;this.ka=a.bufferAddr;this.H=a.bufferCols;this.W=a.bufferRows;this.pa=a.bufferBits||1;this.pb=a.bufferLeft||0;if(this.C=a.bufferRotate)this.C=this.C%360,0<this.C&&(this.C-=360),-90!=this.C&&(this.na("unsupported buffer rotation: "+this.C),this.C=0);this.Zb=a.interruptRate;this.Ea=a.refreshRate||60;this.K=b;this.L=c;this.wa=d||b||null;b=a.smoothing;
(c=Ra.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<h.length;c++)d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",this.L[d]=b;if(this.G=a.screenRotate)this.G=this.G%360,0<this.G&&(this.G-=360),-90!=this.G?(this.na("unsupported screen rotation: "+this.G),this.G=0):(this.L.translate(0,this.Y),this.L.rotate(this.G*Math.PI/180),this.L.scale(this.Y/this.ba,this.ba/this.Y));this.Ha=[[0,0,0,255],[255,255,255,255]];a=this.H;b=this.W;this.C&&(a=this.W,b=this.H);this.sa=this.L.createImageData(a,
b);this.J=document.createElement("canvas");this.J.width=a;this.J.height=b;this.Ia=this.J.getContext("2d");if(this.u=e)if(this.u.Pa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.u.Pa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Jd(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<
h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Jd(f,null)},!1);break}}}Wa(Id);Id.prototype.Ga=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.fa=(this.H*this.pa>>3)*this.W;sb(this.B,this.ka,this.fa,3)&&(this.xa=this.fa>>1,this.Ca=16/this.pa|0,this.la=!1,void 0===this.aa||this.aa.length!=this.xa)&&(this.aa=Array(this.xa));C(this)};
Id.prototype.oa=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.T[b]=c,this.u&&this.u.Pa?c.onclick=function(){d.Pa()}:c.parentNode.removeChild(c),!0}return!1};
Id.prototype.Pa=function(){var a=!1;if(this.u){if(this.u.Pa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.ba/this.Y;b>c&&(a=Math.round(c/b*100)+"%")}this.ra?(this.K.style.width=a,this.K.style.width=a,this.K.style.display="block",this.K.style.margin="auto"):(this.u.style.width=a,this.u.style.height="auto");this.u.style.backgroundColor="black";this.u.Pa();a=!0}this.wa&&this.wa.focus()}return a};
function Jd(a,b){!b&&a.u&&(a.ra?a.K.style.width=a.K.style.height="":a.u.style.width=a.u.style.height="");fb(a,"notifyFullScreen("+b+")",!0)}
Ja(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(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<=pa().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());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");va("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Id(d,e,h,f,c);cb(d,c)}});
function Kd(a){w.call(this,"Debugger",a,Kd);this.style=Ld;this.ga=this.Ca=this.M=0;this.Y=T();this.Gb=T();this.G=-1;this.D=[];this.la=!1;this.ka=T();this.J=[];this.na={};this.u=this.aa=this.H=[];Md(this);this.wa=0;Nd(this);this.Fa=[];Od(this,a.messages);this.Ia=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return rc(b,a)}):void 0===global.$&&(global.$=function(a){return rc(b,a)})}Wa(Kd);
function Kd(a){w.call(this,"Debugger",a,Kd);this.style=Ld;this.fa=this.Ca=this.L=0;this.Y=T();this.Gb=T();this.G=-1;this.C=[];this.la=!1;this.ka=T();this.J=[];this.pa={};this.u=this.aa=this.H=[];Md(this);this.wa=0;Nd(this);this.Ha=[];Od(this,a.messages);this.Ia=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return rc(b,a)}):void 0===global.$&&(global.$=function(a){return rc(b,a)})}Wa(Kd);
var Pd={"?":"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",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Ld=8080,Qd="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
Rd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Sd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Td=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
@ -113,98 +113,98 @@ Rd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CAL
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
18193,33],[65,128]],Ud={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Kd.prototype;
m.Ha=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=oc(a,"messages"))&&Od(this,a);this.pb=Td;Vd(this,function(a){a:{var b=d.B.U,c=a[0],g=a=0,k=b.length;if(c){a=W(X(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ea;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=Vb[c],p&&d.g(q(p.id)+" %"+q(g<<d.B.ea)+" %%"+q(p.C)+" "+r(p.nb)+" "+r(p.size)+
" "+l),c!=Pb&&(c=-1),l=0);a+=d.B.ua;g++}}});C(this)};
m.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.sa=this.T[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",rc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.G<d.D.length-1&&(b=d.D[++d.G]):40==a.keyCode&&(0<d.G?b=d.D[--d.G]:(b="",d.G=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.T[b]=c,Da(c,function(){if(d.sa){var a=d.sa.value;d.sa.value=
"";rc(d,a,!0);return!0}return!1}),!0;case "step":return this.T[b]=c,Da(c,function(a){var b=!1;ib(d,!0)||(hb(d,!0),b=d.bb(a?1:0),hb(d,!1));return b}),!0}return!1};m.mb=function(){this.sa&&this.sa.focus()};function W(a){a=a&&a.C;null==a&&(a=-1);return a}m.W=function(a,b){var c=255,d=W(a);-1!==d&&(c=ub(this.B,d),b&&Wd(a,b));return c};m.Ga=function(a,b){var c=65535,d=W(a);-1!==d&&(c=vb(this.B,d),b&&Wd(a,b));return c};m.fa=function(a,b,c){var d=W(a);-1!==d&&(wb(this.B,d,b),c&&Wd(a,c),sc(this.b,!0))};
m.ub=function(a,b,c){var d=W(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.D)>>>e.ea;f!=e.B?e.U[h].Cb(f,b&65535,d):(e.U[h++].ob(f,b&255,d),e.U[h&e.K].ob(0,b>>8&255,d+1));c&&Wd(a,c);sc(this.b,!0)}};function T(a){return{C:a,za:!1}}function Xd(a){return[a.C,a.za]}function Yd(a){return{C:a[0],za:a[1]}}
function X(a,b,c){var d;c=(c?a.Y:a.Gb).C;if(void 0!==b){d=b=Zd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Da[d];if(void 0!==f){d=f.o;void 0!==d&&(e=T(d));break}}if(d=e)return d;c=$d(a,b,void 0)}null!=c&&(d=T(c));return d}function ae(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Wb=be(a,b.Ub=c[2]))}function Wd(a,b){null!=a.C&&(a.C+=b||1)}function Z(a){return q(a,4)}
function ce(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.W(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Od(a,b){a.F=a;a.ha=a.Xb=1073741824;a.xa=null;var c=be(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Ud)0<=ma(c,d)&&(a.ha|=Ud[d],a.g(d+" messages enabled"))}function Vd(a,b){for(var c in Ud)if(64==Ud[c]){a.Fa[c]=b;break}}
m.Ga=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=dc(a,"messages"))&&Od(this,a);this.pb=Td;Vd(this,function(a){a:{var b=d.B.U,c=a[0],g=a=0,l=b.length;if(c){a=W(X(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ea;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,k=0;l--;){var p=b[g];p.type==c?k++||d.g("..."):(c=p.type,k=ub[c],p&&d.g(q(p.id)+" %"+q(g<<d.B.ea)+" %%"+q(p.D)+" "+r(p.nb)+" "+r(p.size)+
" "+k),c!=Qb&&(c=-1),k=0);a+=d.B.ua;g++}}});C(this)};
m.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.sa=this.T[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",rc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.G<d.C.length-1&&(b=d.C[++d.G]):40==a.keyCode&&(0<d.G?b=d.C[--d.G]:(b="",d.G=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.T[b]=c,Da(c,function(){if(d.sa){var a=d.sa.value;d.sa.value=
"";rc(d,a,!0);return!0}return!1}),!0;case "step":return this.T[b]=c,Da(c,function(a){var b=!1;ib(d,!0)||(hb(d,!0),b=d.bb(a?1:0),hb(d,!1));return b}),!0}return!1};m.mb=function(){this.sa&&this.sa.focus()};function W(a){a=a&&a.D;null==a&&(a=-1);return a}m.X=function(a,b){var c=255,d=W(a);-1!==d&&(c=vb(this.B,d),b&&Wd(a,b));return c};m.Fa=function(a,b){var c=65535,d=W(a);-1!==d&&(c=wb(this.B,d),b&&Wd(a,b));return c};m.ga=function(a,b,c){var d=W(a);-1!==d&&(xb(this.B,d,b),c&&Wd(a,c),sc(this.b,!0))};
m.ub=function(a,b,c){var d=W(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.C)>>>e.ea;f!=e.B?e.U[h].Cb(f,b&65535,d):(e.U[h++].ob(f,b&255,d),e.U[h&e.K].ob(0,b>>8&255,d+1));c&&Wd(a,c);sc(this.b,!0)}};function T(a){return{D:a,za:!1}}function Xd(a){return[a.D,a.za]}function Yd(a){return{D:a[0],za:a[1]}}
function X(a,b,c){var d;c=(c?a.Y:a.Gb).D;if(void 0!==b){d=b=Zd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Da[d];if(void 0!==f){d=f.o;void 0!==d&&(e=T(d));break}}if(d=e)return d;c=$d(a,b,void 0)}null!=c&&(d=T(c));return d}function ae(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Wb=be(a,b.Ub=c[2]))}function Wd(a,b){null!=a.D&&(a.D+=b||1)}function Z(a){return q(a,4)}
function ce(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.X(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Od(a,b){a.F=a;a.ha=a.Xb=1073741824;a.xa=null;var c=be(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Ud)0<=ma(c,d)&&(a.ha|=Ud[d],a.g(d+" messages enabled"))}function Vd(a,b){for(var c in Ud)if(64==Ud[c]){a.Ha[c]=b;break}}
function de(a,b){var c;a=a.toUpperCase();null==b?c=ma(Sd,a):(c=ma(Sd,a.substr(b,3)),0>c&&(c=ma(Sd,a.substr(b,2))));return c}function ee(a,b){var c=0,d=fe(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"}
function fe(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Ic(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Kc(d);break;case 4:c=d.S;break;case 5:c=d.V;break;case 10:c=I(d);break;case 6:c=d.W(I(d));break;case 11:c=d.ca;break;case 12:c=d.L;break;case 13:c=d.j<<8|Gc(d)&255}}return c}
function fe(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Ic(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Kc(d);break;case 4:c=d.S;break;case 5:c=d.V;break;case 10:c=I(d);break;case 6:c=d.X(I(d));break;case 11:c=d.ca;break;case 12:c=d.M;break;case 13:c=d.j<<8|Gc(d)&255}}return c}
function ge(a,b){b=Zd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=de(b,c+1),0<=e&&(b=b.substr(0,c)+ee(a,e)+b.substr(c+1+Sd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=X(a,e))?(d=e+' "'+ce(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=X(a,e))?(Wd(d),d=e+' "'+
ce(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(T(this.b.L).C));if(!this.xa||a!=this.xa)if(this.xa=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Za=0;c.D-=c.b;c.b=0;sc(c)}};function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ha&g)!=g||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
function Nd(a){var b;if(qd(a)){if(!a.X||!a.X.length){a.X=Array(1E3);for(b=0;b<a.X.length;b++)a.X[b]=T();a.ra=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.X&&a.X.length&&a.g("instruction history buffer freed"),a.ra=0,a.X=[],a.K=[]}m.Oa=function(a){if(!he(this))return!1;this.b.Oa(a);return!0};
m.bb=function(a,b,c){if(!he(this))return!1;this.M=0;a||qd(this)&&rd(this,this.b.L,0);try{var d=this.b.bb(a);0<d&&(this.M+=d,xc(this.b,d,!0),uc(this.b,d),this.ga++)}catch(e){"number"!=typeof e&&(this.M=0,kb(this.b,e.stack||e.message))}!1!==c&&sc(this.b);this.va(b||!1);return 0<this.M};m.da=function(a){this.b&&this.b.da(a)};m.va=function(a){void 0===a&&(a=!0);this.Y=T(this.b.L);a&&1!=this.ba?ie(this):je(this)};
function he(a){var b;if(b=a.b&&jb(a.b))b=a.b,b.A.ia?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ib(a.b)?(a=a.b,a.A.Sa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Ba=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Aa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Nd(this);this.ga=this.Ca=0;this.xa=null;this.M=0;this.Y=T(this.b.L);this.A.ma=!1;ke(this);a||this.va()};
m.save=function(){var a=new Hc(this);H(a,0,Xd(this.Y));H(a,1,Xd(this.ka));H(a,2,[this.D,this.la,this.ha]);H(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Yd(a[b++]),this.ka=Yd(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.la=a[b][1],this.ha|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ba||this.g("running");this.A.ma=!0;this.$b=a;this.ac=b};
m.stop=function(a,b){if(this.A.ma){this.A.ma=!1;this.M=b-this.ac;if(!this.ba){var c="stopped";if(this.M){var d=a-this.$b,e=0<d?Math.round(1E3*this.M/d):0,c=c+" (";qd(this)&&(c+=this.ga+" opcodes, ",this.Ca-=this.ga,this.ga=0);c+=this.M+" cycles, "+d+" ms, "+e+" hz)"}else gb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.va(!0);this.mb();ke(this,this.b.L)}};function qd(a){return 1<a.u.length||!!a.wa}
function rd(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||Zb(a,b,1,a.u)))return!0;0<=c&&a.K.length&&(a.ga++,b=ub(a.B,b),null!=b&&(a.K[b][1]++,b=a.X[a.ra],b.C=d.L,b.za=!1,++a.ra==a.X.length&&(a.ra=0)));return!1}function zb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.da(!0)}function Kb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.da(!0)}
function Md(a){var b,c;a.u=["bp"];if(void 0!==a.aa)for(b=1;b<a.aa.length;b++){c=a.aa[b];var d=a.B;$b(d.U[W(c)>>>d.ea],!1)}a.aa=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.B,$b(d.U[W(c)>>>d.ea],!0);a.H=["bw"];a.Jb=0}m.Ja=function(a,b,c){var d=!0;c||le(this,a,b,!1,!0);if(a!=this.u){var e=W(b);if(-1===e)this.g("invalid address: "+Z(b.C)),d=!1;else{var f=this.B;f.U[e>>>f.ea].Ja(e&f.B,a==this.H)}}d&&(a.push(b),c?b.za=!0:(me(this,a,a.length-1,"set"),Nd(this)));return d};
function le(a,b,c,d,e){var f=!1;c=W(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==W(g)&&(!d||g.za)){f=!0;g.za||e||me(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(d=a.B,$b(d.U[c>>>d.ea],b==a.H));g.za||Nd(a);break}}return f}function ne(a,b){for(var c=1;c<b.length;c++)me(a,b,c);return b.length-1}function me(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.C)+(d?" "+d:c.Ub?' "'+c.Ub+'"':""))}
ce(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(T(this.b.M).D));if(!this.xa||a!=this.xa)if(this.xa=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Za=0;c.C-=c.b;c.b=0;sc(c)}};function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ha&g)!=g||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
function Nd(a){var b;if(qd(a)){if(!a.W||!a.W.length){a.W=Array(1E3);for(b=0;b<a.W.length;b++)a.W[b]=T();a.ra=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.W&&a.W.length&&a.g("instruction history buffer freed"),a.ra=0,a.W=[],a.K=[]}m.Oa=function(a){if(!he(this))return!1;this.b.Oa(a);return!0};
m.bb=function(a,b,c){if(!he(this))return!1;this.L=0;a||qd(this)&&rd(this,this.b.M,0);try{var d=this.b.bb(a);0<d&&(this.L+=d,xc(this.b,d,!0),uc(this.b,d),this.fa++)}catch(e){"number"!=typeof e&&(this.L=0,kb(this.b,e.stack||e.message))}!1!==c&&sc(this.b);this.va(b||!1);return 0<this.L};m.da=function(a){this.b&&this.b.da(a)};m.va=function(a){void 0===a&&(a=!0);this.Y=T(this.b.M);a&&1!=this.ba?ie(this):je(this)};
function he(a){var b;if(b=a.b&&jb(a.b))b=a.b,b.A.ia?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ib(a.b)?(a=a.b,a.A.Sa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Ba=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Aa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Nd(this);this.fa=this.Ca=0;this.xa=null;this.L=0;this.Y=T(this.b.M);this.A.ma=!1;ke(this);a||this.va()};
m.save=function(){var a=new Hc(this);H(a,0,Xd(this.Y));H(a,1,Xd(this.ka));H(a,2,[this.C,this.la,this.ha]);H(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Yd(a[b++]),this.ka=Yd(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.la=a[b][1],this.ha|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ba||this.g("running");this.A.ma=!0;this.$b=a;this.ac=b};
m.stop=function(a,b){if(this.A.ma){this.A.ma=!1;this.L=b-this.ac;if(!this.ba){var c="stopped";if(this.L){var d=a-this.$b,e=0<d?Math.round(1E3*this.L/d):0,c=c+" (";qd(this)&&(c+=this.fa+" opcodes, ",this.Ca-=this.fa,this.fa=0);c+=this.L+" cycles, "+d+" ms, "+e+" hz)"}else gb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.va(!0);this.mb();ke(this,this.b.M)}};function qd(a){return 1<a.u.length||!!a.wa}
function rd(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||Zb(a,b,1,a.u)))return!0;0<=c&&a.K.length&&(a.fa++,b=vb(a.B,b),null!=b&&(a.K[b][1]++,b=a.W[a.ra],b.D=d.M,b.za=!1,++a.ra==a.W.length&&(a.ra=0)));return!1}function Ab(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.da(!0)}function Lb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.da(!0)}
function Md(a){var b,c;a.u=["bp"];if(void 0!==a.aa)for(b=1;b<a.aa.length;b++){c=a.aa[b];var d=a.B;$b(d.U[W(c)>>>d.ea],!1)}a.aa=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.B,$b(d.U[W(c)>>>d.ea],!0);a.H=["bw"];a.Jb=0}m.Ja=function(a,b,c){var d=!0;c||le(this,a,b,!1,!0);if(a!=this.u){var e=W(b);if(-1===e)this.g("invalid address: "+Z(b.D)),d=!1;else{var f=this.B;f.U[e>>>f.ea].Ja(e&f.B,a==this.H)}}d&&(a.push(b),c?b.za=!0:(me(this,a,a.length-1,"set"),Nd(this)));return d};
function le(a,b,c,d,e){var f=!1;c=W(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==W(g)&&(!d||g.za)){f=!0;g.za||e||me(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(d=a.B,$b(d.U[c>>>d.ea],b==a.H));g.za||Nd(a);break}}return f}function ne(a,b){for(var c=1;c<b.length;c++)me(a,b,c);return b.length-1}function me(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.D)+(d?" "+d:c.Ub?' "'+c.Ub+'"':""))}
function ke(a,b){if(void 0!==b)Zb(a,b,1,a.u,!0),a.ba=0;else for(var c=1;c<a.u.length;c++){var d=a.u[c];if(d.za){if(!le(a,a.u,d,!0))break;c=0}}}
function Zb(a,b,c,d,e){var f=!1;if(!a.Jb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.za)for(var k=W(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.za&&(le(a,d,g,!0),e=!0);if(p=g.Wb){for(var f=!1,n=0;n<p.length;n++)if(!oe(a,p[n],!0)){if(p[n].indexOf("if")){f=!0;break}for(var u=n+1;u<p.length&&p[u].indexOf("else");u++)n++;if(u==p.length){f=!0;break}}a.b.A.ma||(f=!0)}if(f){e||me(a,d,h,"hit");break}}}a.Jb--;return f}
function pe(a,b,c,d){for(var e=T(b.C),f=a.W(b,1),h=a.pb[f],g="",k=(8086!=a.style?Qd:Rd)[h[0]],l=h.length-1,p=0,n,u=1;u<=l;u++){var z="";n=h[u];if(void 0!==n&&!(n&16384&&a.style==Ld)){var v=n&240;if(v){var O=n&15;O?p=O:n|=p;n&61440||(n|=1==u?8192:4096);if(v&32)a:{var z=a,v=n,O=b,B=" ";switch(v&15){case 1:B=q(z.W(O,1),2);break;case 2:B=q(z.W(O,1)<<24>>24,4);break;case 3:B=q(z.Ga(O,2),4);break;default:z="imm("+r(v)+")";break a}8086==z.style&&v&64?B="["+B+"]":v&16||(B=(z.style==Ld?"$":"0x")+B);z=B}else v&
16?(z=(n&3840)>>8,v=Sd[z],8086==a.style&&n&64&&(6==z&&(v="HL"),v="["+v+"]"),z=v):v&128&&(z=(f>>3&7).toString());if(!z||!z.length){g="INVALID";break}0<g.length&&(g+=",");g+=z||"???"}}}f="";h=Z(e.C)+" ";if(-1!==e.C&&-1!==b.C){do if(f+=q(a.W(e,1),2),null==e.C)break;while(e.C!=b.C)}h+=ga(f,10);h=h+(n&32768?"*":" ")+ga(k,7);g&&(h+=" "+g);c&&(h=ga(h,40)+";"+c,h=a.b.A.Ra?h+("cycles="+vc(a.b).toString()+" cs="+q(a.b.i.fb)):h+(null!=d?"="+d.toString():""));return h}
function Oe(a,b){var c;switch(b){case "I":c=a.b.qa&512;break;case "S":c=Rc(a.b);break;case "Z":c=Qc(a.b);break;case "A":c=Pc(a.b);break;case "P":c=Oc(a.b);break;case "C":c=Nc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Pe(a,b){return Sd[b]+"="+ee(a,b)+" "}function Qe(a){return Pe(a,7)+Pe(a,8)+Pe(a,9)+Pe(a,10)+Pe(a,11)+Oe(a,"I")+Oe(a,"S")+Oe(a,"Z")+Oe(a,"A")+Oe(a,"P")+Oe(a,"C")}
function Zb(a,b,c,d,e){var f=!1;if(!a.Jb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.za)for(var l=W(g),k=0;k<c;k++)if(b+k==l){var p,f=!0;g.za&&(le(a,d,g,!0),e=!0);if(p=g.Wb){for(var f=!1,n=0;n<p.length;n++)if(!oe(a,p[n],!0)){if(p[n].indexOf("if")){f=!0;break}for(var u=n+1;u<p.length&&p[u].indexOf("else");u++)n++;if(u==p.length){f=!0;break}}a.b.A.ma||(f=!0)}if(f){e||me(a,d,h,"hit");break}}}a.Jb--;return f}
function pe(a,b,c,d){for(var e=T(b.D),f=a.X(b,1),h=a.pb[f],g="",l=(8086!=a.style?Qd:Rd)[h[0]],k=h.length-1,p=0,n,u=1;u<=k;u++){var z="";n=h[u];if(void 0!==n&&!(n&16384&&a.style==Ld)){var v=n&240;if(v){var O=n&15;O?p=O:n|=p;n&61440||(n|=1==u?8192:4096);if(v&32)a:{var z=a,v=n,O=b,B=" ";switch(v&15){case 1:B=q(z.X(O,1),2);break;case 2:B=q(z.X(O,1)<<24>>24,4);break;case 3:B=q(z.Fa(O,2),4);break;default:z="imm("+r(v)+")";break a}8086==z.style&&v&64?B="["+B+"]":v&16||(B=(z.style==Ld?"$":"0x")+B);z=B}else v&
16?(z=(n&3840)>>8,v=Sd[z],8086==a.style&&n&64&&(6==z&&(v="HL"),v="["+v+"]"),z=v):v&128&&(z=(f>>3&7).toString());if(!z||!z.length){g="INVALID";break}0<g.length&&(g+=",");g+=z||"???"}}}f="";h=Z(e.D)+" ";if(-1!==e.D&&-1!==b.D){do if(f+=q(a.X(e,1),2),null==e.D)break;while(e.D!=b.D)}h+=ga(f,10);h=h+(n&32768?"*":" ")+ga(l,7);g&&(h+=" "+g);c&&(h=ga(h,40)+";"+c,h=a.b.A.Ra?h+("cycles="+vc(a.b).toString()+" cs="+q(a.b.i.fb)):h+(null!=d?"="+d.toString():""));return h}
function qe(a,b){var c;switch(b){case "I":c=a.b.qa&512;break;case "S":c=Rc(a.b);break;case "Z":c=Qc(a.b);break;case "A":c=Pc(a.b);break;case "P":c=Oc(a.b);break;case "C":c=Nc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function re(a,b){return Sd[b]+"="+ee(a,b)+" "}function Qe(a){return re(a,7)+re(a,8)+re(a,9)+re(a,10)+re(a,11)+qe(a,"I")+qe(a,"S")+qe(a,"Z")+qe(a,"A")+qe(a,"P")+qe(a,"C")}
var Re={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Se(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function $d(a,b,c){var d;if(b){b=Zd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],n=p.length,p=ha(p);if(!p){f=!0;break}p=Te(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],u=p.length;k.length&&Re[p]<Re[k[k.length-1]]&&Se(g,k,1);k.push(p);b=b.substr(n+u)}Se(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Ue(a,null,
d))}return d}function Zd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=$d(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=X(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Ga(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ga-a.Ca}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function Te(a,b,c,d){var e;void 0!==b?(e=de(b),0<=e?e=fe(a,e):(e=a.na[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ue(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Ve(a,b){if(b)return Ue(a,b,a.na[b]);var c=0;for(b in a.na)Ue(a,b,a.na[b]),c++;return 0<c}Kd.prototype.Fb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function We(a,b,c){var d=[],e=W(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.C>>>0,g=f.gc;if(e>=h&&e<h+g){e=ia(f.Db,[e-h],a.Fb);0<=e?Xe(a,b,e,d):c&&(e=~e,Xe(a,b,e-1,d),Xe(a,b,e,d));break}}return d}function Xe(a,b,c,d){var e={},f=a.J[b].Db,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Da[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function $d(a,b,c){var d;if(b){b=Zd(a,b);for(var e=0,f=!1,h=b,g=[],l=[],k=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<k.length;){var p=k[e++],n=p.length,p=ha(p);if(!p){f=!0;break}p=Te(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==k.length)break;var p=k[e++],u=p.length;l.length&&Re[p]<Re[l[l.length-1]]&&Se(g,l,1);l.push(p);b=b.substr(n+u)}Se(g,l)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Ue(a,null,
d))}return d}function Zd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=$d(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=X(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Fa(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.fa-a.Ca}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function Te(a,b,c,d){var e;void 0!==b?(e=de(b),0<=e?e=fe(a,e):(e=a.pa[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ue(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var l=d&255,k=8,p="";void 0===k?k=32:32<k&&(k=32);if(null==l||isNaN(l))for(;0<k--;)p="?"+p;else for(;0<k--;)p=(l&1?"1":"0")+p,l>>=1;h=p+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Ve(a,b){if(b)return Ue(a,b,a.pa[b]);var c=0;for(b in a.pa)Ue(a,b,a.pa[b]),c++;return 0<c}Kd.prototype.Fb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function We(a,b,c){var d=[],e=W(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.D>>>0,g=f.gc;if(e>=h&&e<h+g){e=ia(f.Db,[e-h],a.Fb);0<=e?Xe(a,b,e,d):c&&(e=~e,Xe(a,b,e-1,d),Xe(a,b,e,d));break}}return d}function Xe(a,b,c,d){var e={},f=a.J[b].Db,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Da[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Ye(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Qd:Rd;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.pb[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Ze(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.g("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.na[c[1]],!0;var d=$d(a,c[3]);return void 0!==d?(a.na[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function $e(a,b,c){var d=null;if(b=X(a,b,!0)){var e=We(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.C-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.C)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Ze(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.g("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.pa[c[1]],!0;var d=$d(a,c[3]);return void 0!==d?(a.pa[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function $e(a,b,c){var d=null;if(b=X(a,b,!0)){var e=We(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.D-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.D)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function af(a,b){switch(b[1]){case "8080":a.style=Ld;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Wa=c;break;case "start":a.b.i.gb=c;break;case "stop":a.b.i.Ya=c;break;default:a.g("unknown cs option");return}void 0!==c&&qc(a.b);a.g("checksums "+(a.b.A.Ra?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(wc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.La.toFixed(2)+"Mhz")+
" ("+a.b.i.Na+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
function ie(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=$d(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P=
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.V=g&255;break;case "SP":d.ca=g&65535;break;case "PC":F(d,g);a.Y=T(d.L);break;case "PS":Ec(d,g);break;case "C":d.I=g?d.I|256:d.I&255;break;case "P":g?Oc(d)||(d.Z^=1):Oc(d)&&(d.Z^=1);break;case "A":d.ja=g?~d.Z&16|d.ja&-17:d.Z&16|d.ja&-17;break;case "Z":d.I=g?d.I&-256:d.I|255;break;case "S":g?Rc(d)||(d.Z^=192):Rc(d)&&(d.Z^=192);break;case "I":d.qa=g?d.qa|512:d.qa&-513;break;default:a.g("unknown register: "+
e);return}if(!h){a.g("invalid value: "+f);return}sc(d);a.g("updated registers:")}a.g(Qe(a));c&&(a.Y=T(d.L),je(a,Z(a.Y.C)))}}function bf(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ge(a,c[2])):$d(a,b,!0)}function cf(a,b,c){var d="t"!=b;c=Te(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return hb(a,!0)&&a.bb(e,d,!1)},function(){sc(a.b);hb(a,!1)})}
function je(a,b,c,d){if(b=X(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=X(a,c,!0);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ib(a,!1)||a.ba?a.M:null;var h=null!=f?"cycles":null,g=We(a,b),k=b.C;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=pe(a,b,h,f);a.g(f);a.Y=b;e-=b.C-k;c++}}}
function be(a,b,c,d){if(c)if(b){0>a.G&&a.D.length&&(a.G=0);if(0>a.G||b!=a.D[a.G])a.D.splice(0,0,b),a.G=0;a.G--}else a.la?b="end":b=a.D[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a}
function oe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.la&&(a.g("ended assemble at "+Z(a.ka.C)),a.Y=a.ka,a.la=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.xa=null;if(jb(a)&&0<b.length){a.la&&(b="a "+Z(a.ka.C)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=X(a,f[1],!0);if(p)if(a.ka=
p,void 0===f[2])a.g("begin assemble at "+Z(p.C)),a.la=!0,sc(a.b);else{var n;a.g("not supported yet");n=[];if(n.length){for(var u=0;u<n.length;u++)a.fa(p,n[u],1);a.g(pe(a,a.ka))}}break;case "b":a:{var z=f[0],v=f[1],O=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var B=z.charAt(1);if("l"==B){var U=0,U=U+ne(a,a.u),U=U+ne(a,a.aa);(U+=ne(a,a.H))||a.g("no breakpoints")}else if("n"==B)a.wa=Te(a,v),a.g("break after "+a.wa+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var E=T();if("*"!=v&&(E=X(a,v,!0),!E))break a;v=r(E.C);"c"==B?null==E.C?(Md(a),a.g("all breakpoints cleared")):le(a,a.u,E)||le(a,a.aa,E)||
le(a,a.H,E)||a.g("breakpoint missing: "+Z(E.C)):"i"==B?a.g("breakpoint "+(xb(a.B,E.C)?"enabled":"cleared")+": port "+v+" (input)"):"o"==B?a.g("breakpoint "+(Ib(a.B,E.C)?"enabled":"cleared")+": port "+v+" (output)"):null!=E.C&&(ae(a,E,O),"p"==B?a.Ja(a.u,E):"r"==B?a.Ja(a.aa,E):"w"==B?a.Ja(a.H,E):a.g("unknown breakpoint command: "+B))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var wa,P=f[0],K=f[1],ka=f[2],xa=f[3];if("?"==K){var ya="";for(wa in Ud)a.Fa[wa]&&(ya&&(ya+=","),ya+=wa);ya+=",state,symbols";
a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ya.length&&a.g("dump extension commands:\n\t"+ya)}else if("state"==K){var qe=df(a.w,!0);"console"==ka?console.log(qe):(a.ta&&(a.ta.value=""),a.g(qe))}else if("symbols"==K)for(var Uc=0;Uc<a.J.length;Uc++){var Vc=a.J[Uc],ab;for(ab in Vc.Da)if("."!=ab.charAt(0)){var re=Vc.Da[ab].o;
if(void 0!==re){var se=Vc.Da[ab].l;se&&(ab=se);a.g(Z(re)+" "+ab)}}}else{if("d"==P){for(wa in Ud)if(f[1]==wa){var te=a.Fa[wa];te?(f.shift(),f.shift(),te(f)):a.g("no dump registered for "+K);break a}K||(P=a.fc||"db")}else a.fc=P;if("dh"==P){var ue=K,ve=ka,we="",xe=0,V=a.ra,za=a.X;if(za.length){var Y=+ue||a.Nb,bb=+ve||10;isNaN(Y)?Y=bb:we="more ";Y>za.length&&(a.g("note: only "+za.length+" available"),Y=za.length);V-=Y;0>V&&(null==za[za.length-1].C?(Y=V+Y,V=0):V+=za.length);var Wc=[];"call"==ve&&(bb=
1E5,Wc=["CALL"]);for(void 0!==ue&&a.g(Y+" instructions earlier:");0<bb&&V!=a.ra;){var ye=za[V++];if(null==ye.C)break;var Ab=T(ye.C),zf=Y--,ze=pe(a,Ab,"history",zf);(!Wc.length||0<=ze.indexOf(Wc[0]))&&a.g(ze);Ab.vb&&(V+=Ab.vb,bb-=Ab.vb,Y-=Ab.vb);V>=za.length&&(V=0);a.Nb=Y;xe++;bb--}}xe||(a.g("no "+we+"history available"),a.Nb=void 0)}else{var dc=X(a,K);if(dc){var ec=0;ka&&("l"==ka.charAt(0)&&(ka=ka.substr(1)||xa),ec=Te(a,ka)>>>0,65536<ec&&(ec=65536));for(var Ma="",fc="dd"==P?4:"dw"==P?2:1,gc=fc*ec||
128,Af=gc+15>>4||1;Af--&&0<gc;){var hc=0,Xc=0,Bb,Cb="",Yc="",K=Z(dc.C);for(Bb=16;0<Bb&&0<gc;Bb--){var ic=a.W(dc,1),hc=hc|ic<<(Xc++<<3);Xc==fc&&(Cb+=q(hc,2*fc),Cb+=1==fc?9==Bb?"-":" ":" ",hc=Xc=0);Yc+=32<=ic&&128>ic?String.fromCharCode(ic):".";gc--}Ma&&(Ma+="\n");Ma+=K+" "+Cb+(0==Bb?" "+Yc:"")}Ma&&a.g(Ma);a.Gb=dc}}}}break;case "e":if("else"==f[0])break;var jc=1,Ae=255,Be=a.W,Ce=a.fa;"ew"==f[0]&&(jc=2,Ae=65535,Be=a.Ga,Ce=a.ub);var De=jc<<1,Ee=f[1];if(null==Ee)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),
a.g("\tew [a] [...] edit words at address a");else{var kc=X(a,Ee);if(kc)for(var lc=2;lc<f.length;lc++){var Db=$d(a,f[lc]);if(void 0===Db){a.g("unrecognized value: "+f[lc]);break}Db&~Ae&&a.g("warning: "+q(Db)+" exceeds "+jc+"-byte value");var Bf=Be.call(a,kc);a.g("changing "+Z(kc.C)+" from 0x"+q(Bf,De)+" to 0x"+q(Db,De));Ce.call(a,kc,Db,jc)}}break;case "f":Ye(a,f[1]);break;case "g":a:{var Fe=f[1],Cf=b;if(void 0!==Fe){var Zc=X(a,Fe,!0);if(!Zc)break a;ae(a,Zc,Cf);a.Ja(a.u,Zc,!0)}a.Oa(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var $c;if(a.A.ma)$c="halting",a.da();else{if(ib(a,!0))break a;$c="already halted"}c||a.g($c)}break;case "i":if("if"==f[0]){var ad;var Eb=b.substr(2),Eb=ha(Eb);$d(a,Eb)?(c||a.g("true: "+Eb),ad=!0):(c||a.g("false: "+Eb),ad=!1);ad||(d=!1);break}var bd=f[1];if(bd&&"?"!=bd){var cd=Te(a,bd);if(void 0!==cd){var Df=yb(a.B,cd);a.g(r(cd)+": "+("0x"+q(Df,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var Ef=f[0];
if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var dd=0,Ge=T(),Fb=T(a.b.ca);for(a.g("stack trace for "+Z(Fb.C));10>dd;){for(var Na=null,Ff=256;65536>Fb.C>>>0;){Ge.C=a.Ga(Fb,2);if(null==Fb.C||!Ff--)break;for(var Gf=a,mc=Ge,He=null,Gb=mc.C,Ie=Gb,ed=1;6>=ed&&Gb;ed++){if(2<ed){mc.C=Gb;var nc=pe(Gf,mc);if(0<=nc.indexOf("CALL")){var Je=nc.indexOf(" ");if(Gb+(nc.indexOf(" ",Je+1)-Je-1)/2==Ie){He=nc;break}}}Gb--}mc.C=Ie;if(Na=He)break}if(!Na||
null==Na)break;var Ke=null;if("ks"==Ef){var Le=Na.match(/[0-9A-F]+$/);Le&&(Ke=$e(a,Le[0]))}Na=ga(Na,50)+" ;"+(Ke||"stack="+Z(Fb.C));a.g(Na);dd++}dd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){$e(a,f[1],!0);break}break;case "m":a:{var Aa,Ba=null,G=f[1];"?"==G&&(G=void 0);if(void 0!==G){var Oa=0;if("all"==G)Oa=1610481663,G=null;else if("on"==G)Ba=!0,G=null;else if("off"==G)Ba=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(Aa in Ud)if(G==Aa){Oa=Ud[Aa];Ba=!!(a.ha&
Oa);break}if(!Oa){a.g("unknown message category: "+G);break a}}Oa&&("on"==f[2]?(a.ha|=Oa,Ba=!0):"off"==f[2]&&(a.ha&=~Oa,Ba=!1))}var Hf=0,Ia="";for(Aa in Ud)if(!G||G==Aa){var If=!!(a.ha&Ud[Aa]);if(null===Ba||Ba==If)Ia&&(Ia+=","),++Hf%10||(Ia+="\n\t"),"key"==Aa&&(Aa="keys"),Ia+=Aa}void 0===G&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ba?Ba?"messages on: ":"messages off: ":"message categories:\n\t")+(Ia||"none"));Nd(a)}break;case "o":var fd=f[1],Jf=f[2];if(fd&&
"?"!=fd){var gd=Te(a,fd,"port #"),hd=Te(a,Jf);void 0!==gd&&void 0!==hd&&(Jb(a.B,gd,hd),a.g(r(gd)+": "+("0x"+q(hd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){bf(a,b.substr(5));break}var Me="pr"==f[0]?1:0,Kf=1+Me;if(a.ba)a.g("step in progress");else{var id=T(a.b.L);switch(a.W(id)){case 205:a.ba=Kf,Wd(id,3)}a.ba?(a.Ja(a.u,id,!0),a.Oa()||(a.w&&a.w.mb(),a.ba=0)):cf(a,Me?"tr":"t")}break;
case "r":if("reset"==b){a.w&&a.w.reset();break}ie(a,f);break;case "s":af(a,f);break;case "t":cf(a,f[0],f[1]);break;case "u":je(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Ze(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.22.0 ("+a.b.Ua+",RELEASE"+(lb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){bf(a,b.substr(1));break}var Hb="commands:",jd;for(jd in Pd)Hb+="\n"+ga(jd,7)+Pd[jd];qd(a)||(Hb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Hb);break;default:a.g("unknown command: "+
b),d=!1}}}catch(Ne){a.g("debugger error: "+(Ne.stack||Ne.message)),d=!1}return d}function rc(a,b,c){b=be(a,b,c);for(var d in b)if(!oe(a,b[d]))return!1;return!0}Ja(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Kd(d);cb(d,c)}});function Hc(a,b,c){this.id=a.id;this.key=ef(a,b,c);this.F=a.F;ff(this,a.Sb)}function ef(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}
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.V=g&255;break;case "SP":d.ca=g&65535;break;case "PC":F(d,g);a.Y=T(d.M);break;case "PS":Ec(d,g);break;case "C":d.I=g?d.I|256:d.I&255;break;case "P":g?Oc(d)||(d.Z^=1):Oc(d)&&(d.Z^=1);break;case "A":d.ja=g?~d.Z&16|d.ja&-17:d.Z&16|d.ja&-17;break;case "Z":d.I=g?d.I&-256:d.I|255;break;case "S":g?Rc(d)||(d.Z^=192):Rc(d)&&(d.Z^=192);break;case "I":d.qa=g?d.qa|512:d.qa&-513;break;default:a.g("unknown register: "+
e);return}if(!h){a.g("invalid value: "+f);return}sc(d);a.g("updated registers:")}a.g(Qe(a));c&&(a.Y=T(d.M),je(a,Z(a.Y.D)))}}function bf(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ge(a,c[2])):$d(a,b,!0)}function cf(a,b,c){var d="t"!=b;c=Te(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return hb(a,!0)&&a.bb(e,d,!1)},function(){sc(a.b);hb(a,!1)})}
function je(a,b,c,d){if(b=X(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=X(a,c,!0);if(!d||d.D<b.D)return;e=d.D-b.D;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ib(a,!1)||a.ba?a.L:null;var h=null!=f?"cycles":null,g=We(a,b),l=b.D;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var k=g[0]+":";g[2]&&(k+=" "+g[2]);a.g(k)}g[3]&&(h=g[3],f=null);f=pe(a,b,h,f);a.g(f);a.Y=b;e-=b.D-l;c++}}}
function be(a,b,c,d){if(c)if(b){0>a.G&&a.C.length&&(a.G=0);if(0>a.G||b!=a.C[a.G])a.C.splice(0,0,b),a.G=0;a.G--}else a.la?b="end":b=a.C[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a}
function oe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.la&&(a.g("ended assemble at "+Z(a.ka.D)),a.Y=a.ka,a.la=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.xa=null;if(jb(a)&&0<b.length){a.la&&(b="a "+Z(a.ka.D)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),l=1;l<h.length;l++){var k=h.charAt(l);if("?"==g||"r"==g||"a">k||"z"<k){f[0]=h.substr(l);f.unshift(h.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var p=X(a,f[1],!0);if(p)if(a.ka=
p,void 0===f[2])a.g("begin assemble at "+Z(p.D)),a.la=!0,sc(a.b);else{var n;a.g("not supported yet");n=[];if(n.length){for(var u=0;u<n.length;u++)a.ga(p,n[u],1);a.g(pe(a,a.ka))}}break;case "b":a:{var z=f[0],v=f[1],O=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var B=z.charAt(1);if("l"==B){var U=0,U=U+ne(a,a.u),U=U+ne(a,a.aa);(U+=ne(a,a.H))||a.g("no breakpoints")}else if("n"==B)a.wa=Te(a,v),a.g("break after "+a.wa+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var E=T();if("*"!=v&&(E=X(a,v,!0),!E))break a;v=r(E.D);"c"==B?null==E.D?(Md(a),a.g("all breakpoints cleared")):le(a,a.u,E)||le(a,a.aa,E)||
le(a,a.H,E)||a.g("breakpoint missing: "+Z(E.D)):"i"==B?a.g("breakpoint "+(yb(a.B,E.D)?"enabled":"cleared")+": port "+v+" (input)"):"o"==B?a.g("breakpoint "+(Jb(a.B,E.D)?"enabled":"cleared")+": port "+v+" (output)"):null!=E.D&&(ae(a,E,O),"p"==B?a.Ja(a.u,E):"r"==B?a.Ja(a.aa,E):"w"==B?a.Ja(a.H,E):a.g("unknown breakpoint command: "+B))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var wa,P=f[0],K=f[1],ka=f[2],xa=f[3];if("?"==K){var ya="";for(wa in Ud)a.Ha[wa]&&(ya&&(ya+=","),ya+=wa);ya+=",state,symbols";
a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ya.length&&a.g("dump extension commands:\n\t"+ya)}else if("state"==K){var se=df(a.w,!0);"console"==ka?console.log(se):(a.ta&&(a.ta.value=""),a.g(se))}else if("symbols"==K)for(var Vc=0;Vc<a.J.length;Vc++){var Wc=a.J[Vc],ab;for(ab in Wc.Da)if("."!=ab.charAt(0)){var te=Wc.Da[ab].o;
if(void 0!==te){var ue=Wc.Da[ab].l;ue&&(ab=ue);a.g(Z(te)+" "+ab)}}}else{if("d"==P){for(wa in Ud)if(f[1]==wa){var ve=a.Ha[wa];ve?(f.shift(),f.shift(),ve(f)):a.g("no dump registered for "+K);break a}K||(P=a.fc||"db")}else a.fc=P;if("dh"==P){var we=K,xe=ka,ye="",ze=0,V=a.ra,za=a.W;if(za.length){var Y=+we||a.Nb,bb=+xe||10;isNaN(Y)?Y=bb:ye="more ";Y>za.length&&(a.g("note: only "+za.length+" available"),Y=za.length);V-=Y;0>V&&(null==za[za.length-1].D?(Y=V+Y,V=0):V+=za.length);var Xc=[];"call"==xe&&(bb=
1E5,Xc=["CALL"]);for(void 0!==we&&a.g(Y+" instructions earlier:");0<bb&&V!=a.ra;){var Ae=za[V++];if(null==Ae.D)break;var Bb=T(Ae.D),Af=Y--,Be=pe(a,Bb,"history",Af);(!Xc.length||0<=Be.indexOf(Xc[0]))&&a.g(Be);Bb.vb&&(V+=Bb.vb,bb-=Bb.vb,Y-=Bb.vb);V>=za.length&&(V=0);a.Nb=Y;ze++;bb--}}ze||(a.g("no "+ye+"history available"),a.Nb=void 0)}else{var ec=X(a,K);if(ec){var fc=0;ka&&("l"==ka.charAt(0)&&(ka=ka.substr(1)||xa),fc=Te(a,ka)>>>0,65536<fc&&(fc=65536));for(var Ma="",gc="dd"==P?4:"dw"==P?2:1,hc=gc*fc||
128,Bf=hc+15>>4||1;Bf--&&0<hc;){var ic=0,Yc=0,Cb,Db="",Zc="",K=Z(ec.D);for(Cb=16;0<Cb&&0<hc;Cb--){var jc=a.X(ec,1),ic=ic|jc<<(Yc++<<3);Yc==gc&&(Db+=q(ic,2*gc),Db+=1==gc?9==Cb?"-":" ":" ",ic=Yc=0);Zc+=32<=jc&&128>jc?String.fromCharCode(jc):".";hc--}Ma&&(Ma+="\n");Ma+=K+" "+Db+(0==Cb?" "+Zc:"")}Ma&&a.g(Ma);a.Gb=ec}}}}break;case "e":if("else"==f[0])break;var kc=1,Ce=255,De=a.X,Ee=a.ga;"ew"==f[0]&&(kc=2,Ce=65535,De=a.Fa,Ee=a.ub);var Fe=kc<<1,Ge=f[1];if(null==Ge)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),
a.g("\tew [a] [...] edit words at address a");else{var lc=X(a,Ge);if(lc)for(var mc=2;mc<f.length;mc++){var Eb=$d(a,f[mc]);if(void 0===Eb){a.g("unrecognized value: "+f[mc]);break}Eb&~Ce&&a.g("warning: "+q(Eb)+" exceeds "+kc+"-byte value");var Cf=De.call(a,lc);a.g("changing "+Z(lc.D)+" from 0x"+q(Cf,Fe)+" to 0x"+q(Eb,Fe));Ee.call(a,lc,Eb,kc)}}break;case "f":Ye(a,f[1]);break;case "g":a:{var He=f[1],Df=b;if(void 0!==He){var $c=X(a,He,!0);if(!$c)break a;ae(a,$c,Df);a.Ja(a.u,$c,!0)}a.Oa(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var ad;if(a.A.ma)ad="halting",a.da();else{if(ib(a,!0))break a;ad="already halted"}c||a.g(ad)}break;case "i":if("if"==f[0]){var bd;var Fb=b.substr(2),Fb=ha(Fb);$d(a,Fb)?(c||a.g("true: "+Fb),bd=!0):(c||a.g("false: "+Fb),bd=!1);bd||(d=!1);break}var cd=f[1];if(cd&&"?"!=cd){var dd=Te(a,cd);if(void 0!==dd){var Ef=zb(a.B,dd);a.g(r(dd)+": "+("0x"+q(Ef,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var Ff=f[0];
if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ed=0,Ie=T(),Gb=T(a.b.ca);for(a.g("stack trace for "+Z(Gb.D));10>ed;){for(var Na=null,Gf=256;65536>Gb.D>>>0;){Ie.D=a.Fa(Gb,2);if(null==Gb.D||!Gf--)break;for(var Hf=a,nc=Ie,Je=null,Hb=nc.D,Ke=Hb,fd=1;6>=fd&&Hb;fd++){if(2<fd){nc.D=Hb;var oc=pe(Hf,nc);if(0<=oc.indexOf("CALL")){var Le=oc.indexOf(" ");if(Hb+(oc.indexOf(" ",Le+1)-Le-1)/2==Ke){Je=oc;break}}}Hb--}nc.D=Ke;if(Na=Je)break}if(!Na||
null==Na)break;var Me=null;if("ks"==Ff){var Ne=Na.match(/[0-9A-F]+$/);Ne&&(Me=$e(a,Ne[0]))}Na=ga(Na,50)+" ;"+(Me||"stack="+Z(Gb.D));a.g(Na);ed++}ed||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){$e(a,f[1],!0);break}break;case "m":a:{var Aa,Ba=null,G=f[1];"?"==G&&(G=void 0);if(void 0!==G){var Oa=0;if("all"==G)Oa=1610481663,G=null;else if("on"==G)Ba=!0,G=null;else if("off"==G)Ba=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(Aa in Ud)if(G==Aa){Oa=Ud[Aa];Ba=!!(a.ha&
Oa);break}if(!Oa){a.g("unknown message category: "+G);break a}}Oa&&("on"==f[2]?(a.ha|=Oa,Ba=!0):"off"==f[2]&&(a.ha&=~Oa,Ba=!1))}var If=0,Ia="";for(Aa in Ud)if(!G||G==Aa){var Jf=!!(a.ha&Ud[Aa]);if(null===Ba||Ba==Jf)Ia&&(Ia+=","),++If%10||(Ia+="\n\t"),"key"==Aa&&(Aa="keys"),Ia+=Aa}void 0===G&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ba?Ba?"messages on: ":"messages off: ":"message categories:\n\t")+(Ia||"none"));Nd(a)}break;case "o":var gd=f[1],Kf=f[2];if(gd&&
"?"!=gd){var hd=Te(a,gd,"port #"),id=Te(a,Kf);void 0!==hd&&void 0!==id&&(Kb(a.B,hd,id),a.g(r(hd)+": "+("0x"+q(id,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){bf(a,b.substr(5));break}var Oe="pr"==f[0]?1:0,Lf=1+Oe;if(a.ba)a.g("step in progress");else{var jd=T(a.b.M);switch(a.X(jd)){case 205:a.ba=Lf,Wd(jd,3)}a.ba?(a.Ja(a.u,jd,!0),a.Oa()||(a.w&&a.w.mb(),a.ba=0)):cf(a,Oe?"tr":"t")}break;
case "r":if("reset"==b){a.w&&a.w.reset();break}ie(a,f);break;case "s":af(a,f);break;case "t":cf(a,f[0],f[1]);break;case "u":je(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Ze(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.22.0 ("+a.b.Ua+",RELEASE"+(lb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){bf(a,b.substr(1));break}var Ib="commands:",kd;for(kd in Pd)Ib+="\n"+ga(kd,7)+Pd[kd];qd(a)||(Ib+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Ib);break;default:a.g("unknown command: "+
b),d=!1}}}catch(Pe){a.g("debugger error: "+(Pe.stack||Pe.message)),d=!1}return d}function rc(a,b,c){b=be(a,b,c);for(var d in b)if(!oe(a,b[d]))return!1;return!0}Ja(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Kd(d);cb(d,c)}});function Hc(a,b,c){this.id=a.id;this.key=ef(a,b,c);this.F=a.F;ff(this,a.Sb)}function ef(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}
Hc.prototype={constructor:Hc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ff(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 ff(a,b){a[a.id]={};b&&H(a,"parms",b);a.b=!1}function gf(a){var b=!0;if(sa()){var c=JSON.stringify(a[a.id]);ua(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function hf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function jf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:sa()&&(b=ta(a.key))?(a[a.id]=b,a.b=!0):!1}function kf(a,b){return a[a.id][b]||null}function H(a,b,c){try{a[a.id][b]=c}catch(d){}}
function lf(a,b,c){w.call(this,"Computer",a,lf,67108864);this.A.ia=!1;mf(this,b);this.ba=oc(this,"autoPower",a);this.D=0;this.ra=a.busWidth||a.buswidth;this.w=nf;this.X=null;this.J=this.na=!1;this.sa=oc(this,"url")||"";(Math.random()+.1).toString(36);this.u=of(this);if(this.b=$a("CPU",this.id)){this.F=$a("Debugger",this.id);this.aa=[];for(b=null;b=ob(this,"Video",b);)this.aa.push(b);this.B=new qb({id:this.Hb+".bus",busWidth:this.ra},this.b,this.F);var d,e=Za(this.id);if((this.G=$a("Panel",this.id))&&
this.G.ta)for(b=0;b<e.length;b++)d=e[b],d.pa=this.G.pa,d.g=this.G.g,d.ta=this.G.ta;for(b=0;b<e.length;b++)d=e[b],d.Ha&&d.Ha(this,this.B,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.M=d:this.w=parseInt(d,10));var f;if(a=oc(this,"state")||(f=!0,a.state))b=this.ga=a,f||(this.J=!0,this.w=nf),this.w&&(this.Y=new Hc(this,pf),jf(this.Y)?b=null:delete this.Y);!b&&this.w&&(b=qf(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.M=null,h.J=!1,h.pa("Unable to load machine state from server (error "+
c+(b?": "+ha(b):"")+")")):(h.X=b,h.na=!0);C(h)})}else C(this);this.T.power||(this.ba=!0);!c&&this.ba&&rf(this,this.kb)}else t("Unable to find CPU component")}Wa(lf);var pf="1.22.0",nf=0;function mf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
function oc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function rf(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!jb(f)){jb(f,function(){rf(a,b,c)});return}}b.call(a,c)}
function sf(a,b){var c=new Hc(a,pf,"validate");if(jf(c)&&hf(c)){var d=kf(c,"timestamp"),e=b?kf(b,"timestamp"):"unknown";d!=e&&(a.pa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=lf.prototype;
m.kb=function(a){void 0===a&&(a=this.w||(this.X?1:nf));if(!this.D){this.D++;var b=!1,c=!1;this.la=!1;var d=this.Y||new Hc(this,pf);if(-1==a)b=!0;else if(a>nf){if(jf(d,this.X)){this.H=new Hc(this,pf,"failsafe");jf(this.H)&&(tf(this,d),a=2,ff(this.H));H(this.H,"timestamp",la());gf(this.H);var e=this.w&&!this.J;if(1==a||qa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=hf(d)){var f=kf(d,"code"),h=kf(d,"data");f&&("ok"==f?jf(d,h):("error"==f&&"no machine state"!=
h?(this.pa("Error: "+h),"unable to verify user"==h&&(ua("user",""),this.u=null)):this.g(f+": "+h),ff(d),jf(d)?(c=hf(d),e=!0):c=!1))}e&&sf(this,c?d:null)}else 2==a&&d.clear()}else sf(this);delete this.X;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=uf(this,h,d,b,c));b=[d,a,c];-1!=a?rf(this,this.Ib,b):this.Ib(b)}};
function uf(a,b,c,d,e){if(!b.A.ia){b.A.ia=!0;if(b.Ba){var f=null;e&&((f=kf(c,b.id))||(f=kf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ba(f,d)&&f&&(t("Unable to restore state for "+b.type),a.ga&&!a.na?(c.clear(),a.w=nf,window&&window.location.reload()):a.la=!0,b.Ba(null),e=!1)}if(!d&&b.Eb)for(a=b.Eb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Ib=function(a){var b=a[0],c=0>a[1];a=a[2];this.A.ia=!0;var d=this.T.power;d&&(d.textContent="Shutdown");this.ka||(this.g("PC8080 v"+pf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ka=!0);this.b&&(uf(this,this.b,b,c,a),tc(this.b));this.la&&(tf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.D=0};
function tf(a,b){if(qa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.sa,d=a.u||"",e=b.toString(),f={app:"PC8080"};f.ver=pf;f.url=c;f.user=d;f.type="bug";f.data=e;na("http://www.pcjs.org/api/v1/report",f,!0)}}
function df(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Hc(a,pf),h=new Hc(a,pf,"validate"),g=la();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.22.0");H(f,"url",window?window.location.href:null);H(f,"browser",pa());a.b&&a.b.Aa&&(c&&a.b.da(),d=a.b.Aa(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.ia=!1,!1===d&&(e=null)));for(var g=Za(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ia&&(l.Aa&&(d=l.Aa(b,c),"object"===typeof d&&H(f,l.id,d)),c&&(l.A.ia=!1,!1===d&&(e=null)))}e&&(c?(g=
d=!1,b?(a.u&&vf(a,a.u,f.toString()),gf(h)&&gf(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.A.ia=!1,b=a.T.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(fb(this,"Resetting "+this.B.type),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(fb(this,"Resetting "+c.type),c.reset())}};
function lf(a,b,c){w.call(this,"Computer",a,lf,67108864);this.A.ia=!1;mf(this,b);this.ba=dc(this,"autoPower",a);this.C=0;this.pa=a.busWidth||a.buswidth;this.w=nf;this.W=null;this.J=this.la=!1;this.ra=dc(this,"url")||"";(Math.random()+.1).toString(36);this.u=of(this);if(this.b=$a("CPU",this.id)){this.F=$a("Debugger",this.id);this.aa=[];for(b=null;b=ob(this,"Video",b);)this.aa.push(b);this.B=new qb({id:this.Hb+".bus",busWidth:this.pa},this.b,this.F);var d,e=Za(this.id);if((this.G=$a("Panel",this.id))&&
this.G.ta)for(b=0;b<e.length;b++)d=e[b],d.na=this.G.na,d.g=this.G.g,d.ta=this.G.ta;this.g(pf+" v"+qf+"\n"+rf+"\n"+sf);for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.B,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.L=d:this.w=parseInt(d,10));var f;if(a=dc(this,"state")||(f=!0,a.state))b=this.fa=a,f||(this.J=!0,this.w=nf),this.w&&(this.Y=new Hc(this,qf),jf(this.Y)?b=null:delete this.Y);!b&&this.w&&(b=tf(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.L=null,
h.J=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+ha(b):"")+")")):(h.W=b,h.la=!0);C(h)})}else C(this);this.T.power||(this.ba=!0);!c&&this.ba&&uf(this,this.kb)}else t("Unable to find CPU component")}Wa(lf);var pf="PC8080",qf="1.22.0",rf="Copyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>",sf="License: GPL version 3 or later <http://gnu.org/licenses/gpl.html>",nf=0;
function mf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}function dc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function uf(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!jb(f)){jb(f,function(){uf(a,b,c)});return}}b.call(a,c)}
function vf(a,b){var c=new Hc(a,qf,"validate");if(jf(c)&&hf(c)){var d=kf(c,"timestamp"),e=b?kf(b,"timestamp"):"unknown";d!=e&&(a.na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=lf.prototype;
m.kb=function(a){void 0===a&&(a=this.w||(this.W?1:nf));if(!this.C){this.C++;var b=!1,c=!1;this.ka=!1;var d=this.Y||new Hc(this,qf);if(-1==a)b=!0;else if(a>nf){if(jf(d,this.W)){this.H=new Hc(this,qf,"failsafe");jf(this.H)&&(wf(this,d),a=2,ff(this.H));H(this.H,"timestamp",la());gf(this.H);var e=this.w&&!this.J;if(1==a||qa("Click OK to restore the previous "+pf+" machine state, or CANCEL to reset the machine.")){if(c=hf(d)){var f=kf(d,"code"),h=kf(d,"data");f&&("ok"==f?jf(d,h):("error"==f&&"no machine state"!=
h?(this.na("Error: "+h),"unable to verify user"==h&&(ua("user",""),this.u=null)):this.g(f+": "+h),ff(d),jf(d)?(c=hf(d),e=!0):c=!1))}e&&vf(this,c?d:null)}else 2==a&&d.clear()}else vf(this);delete this.W;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=xf(this,h,d,b,c));b=[d,a,c];-1!=a?uf(this,this.Ib,b):this.Ib(b)}};
function xf(a,b,c,d,e){if(!b.A.ia){b.A.ia=!0;if(b.Ba){var f=null;e&&((f=kf(c,b.id))||(f=kf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ba(f,d)&&f&&(t("Unable to restore state for "+b.type),a.fa&&!a.la?(c.clear(),a.w=nf,window&&window.location.reload()):a.ka=!0,b.Ba(null),e=!1)}if(!d&&b.Eb)for(a=b.Eb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Ib=function(a){var b=a[0],c=0>a[1];a=a[2];this.sa=!0;this.A.ia=!0;var d=this.T.power;d&&(d.textContent="Shutdown");this.b&&(xf(this,this.b,b,c,a),tc(this.b));this.ka&&(wf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.C=0};
function wf(a,b){if(qa("There may be a problem with your "+pf+" machine.\n\nTo help us diagnose it, click OK to send this "+pf+" machine state to http://www.pcjs.org.")){var c=a.ra,d=a.u||"",e=b.toString(),f=qf,h={};h.app=pf;h.ver=f;h.url=c;h.user=d;h.type="bug";h.data=e;na("http://www.pcjs.org/api/v1/report",h,!0)}}
function df(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Hc(a,qf),h=new Hc(a,qf,"validate"),g=la();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.22.0");H(f,"url",window?window.location.href:null);H(f,"browser",pa());a.b&&a.b.Aa&&(c&&a.b.da(),d=a.b.Aa(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.ia=!1,!1===d&&(e=null)));for(var g=Za(a.id),l=0;l<g.length;l++){var k=g[l];k.A.ia&&(k.Aa&&(d=k.Aa(b,c),"object"===typeof d&&H(f,k.id,d)),c&&(k.A.ia=!1,!1===d&&(e=null)))}e&&(c?(g=
d=!1,b?(a.u&&yf(a,a.u,f.toString()),gf(h)&&gf(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.A.ia=!1,b=a.T.power)&&(b.textContent="Power");a.C=0;return e}m.reset=function(){this.B&&this.B.reset&&(fb(this,"Resetting "+this.B.type),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(fb(this,"Resetting "+c.type),c.reset())}};
m.start=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.oa=function(a,b,c){var d=this;switch(b){case "power":return this.T[b]=c,c.onclick=function(){d.D||(d.A.ia?df(d,!1,!0):rf(d,d.kb))},!0;case "reset":return this.T[b]=c,c.onclick=function(){if(d.A.ia&&!d.D)if(d.w&&!d.M){var a=qa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");df(d,a,!0);!a&&d.ga?window&&window.location.reload():d.kb(nf)}else d.reset(),d.b&&tc(d.b)},!0;case "save":if(da(oa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.T[b]=c;c.onclick=function(){var a=of(d,!0);if(a){var b=!!(d.w&&!d.M||d.ga),c=df(d,b);b?vf(d,a,c):d.pa("Resume disabled, machine state not saved")}};return!0}return!1};
function of(a,b){var c=a.u;c||(c=ta("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=wf(a,c))||a.pa("The user ID is invalid."))):b&&a.pa("Browser local storage is not available"));return c}
function wf(a,b){a.u=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ua("user",c.data),a.u=c.data)}catch(e){t(e.message+" ("+d+")")}return a.u}function qf(a){var b=null;a.u&&(b=oa()+"/api/v1/user?req=load&user="+a.u+"&state="+ef(a,pf));return b}
function vf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ef(a,pf);d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.pa("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.pa(c),ua("user",""),a.u=null)}}
m.oa=function(a,b,c){var d=this;switch(b){case "power":return this.T[b]=c,c.onclick=function(){d.C||(d.A.ia?df(d,!1,!0):uf(d,d.kb))},!0;case "reset":return this.T[b]=c,c.onclick=function(){if(d.A.ia&&!d.C)if(d.w&&!d.L){var a=qa("Click OK to save changes to this "+pf+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");df(d,a,!0);!a&&d.fa?window&&window.location.reload():d.kb(nf)}else d.reset(),d.b&&tc(d.b)},!0;case "save":if(da(oa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.T[b]=c;c.onclick=function(){var a=of(d,!0);if(a){var b=!!(d.w&&!d.L||d.fa),c=df(d,b);b?yf(d,a,c):d.na("Resume disabled, machine state not saved")}};return!0}return!1};
function of(a,b){var c=a.u;c||(c=ta("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=zf(a,c))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return c}
function zf(a,b){a.u=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ua("user",c.data),a.u=c.data)}catch(e){t(e.message+" ("+d+")")}return a.u}function tf(a){var b=null;a.u&&(b=oa()+"/api/v1/user?req=load&user="+a.u+"&state="+ef(a,qf));return b}
function yf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ef(a,qf);d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.na("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.na(c),ua("user",""),a.u=null)}}
function ob(a,b,c){a=Za(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}m.mb=function(){};m.va=function(a){this.b&&this.b.va(a);this.G&&this.G.va(a)};
function zc(a,b){for(var c=0;c<a.aa.length;c++)a:{var d=a.aa[c];if(0<=b){if(b&1){d=d.b;d.u=d.u&-8|10;break a}var e=d.b;e.u=e.u&-8|9;if(e=d.ga){for(var e=d.B,f=d.aa,h=!0,g=d.ba>>>e.ea;0<f&&g<e.U.length;)e.U[g].ya&&(e.U[g].ya=h=!1,e.U[g].Lb=!0),f-=e.ua,g++;e=h}if(e)break a}var g=d.ba,k=g+d.aa,l=0,p=d.Ia,n=0,u=0,e=d.J,z=0,f=d.K,v=h=0,O=d.la,B=(1<<O)-1;d.pb&&(O=-O,v=16+O);for(;g<k;){var U=vb(d.B,g);if(d.ga&&U===d.X[l])n+=d.Ca;else{d.X[l]=U;var E=v;v&&(U=U>>8|(U&255)<<8);n<e&&(e=n);for(var wa=0;wa<d.Ca;wa++){var P=
U>>E&B,K=d.ka,ka=n++,P=p[P],xa=void 0,xa=d.na?(K.height-ka-1)*K.width+u:ka+u*K.width,xa=xa*P.length;K.data[xa]=P[0];K.data[xa+1]=P[1];K.data[xa+2]=P[2];K.data[xa+3]=P[3];E+=O}n>z&&(z=n);u<f&&(f=u);u>=h&&(h=u+1)}g+=2;l++;if(n>=d.J&&(n=0,u++,u>d.K))break}d.ga=!0;e<d.J&&(g=z-e,h-=f,d.na?d.ra.putImageData(d.ka,0,0):d.ra.putImageData(d.ka,0,0,e,f,g,h),d.H.drawImage(d.D,0,0,d.D.width,d.D.height,0,0,d.Y,d.M))}}
Ja(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new lf(h,d,!0);cb(h,f);h.ba&&rf(h,h.kb)}});Ea.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.ka&&!c.A.ia&&c.kb(-1)}});
Ea.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.A.ia&&df(c,!(!c.w||c.M),!0)}});var xf=0;function yf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Lf(g,a,b,c,d,e,f)})}
function Lf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){g=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Mf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Mf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Mf(a,b,c)}})}else c(a,null)}
function Nf(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--xf||La(!0));k=!1}var h,g,k=!0;xf++;Xa[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));p.appendChild(n)}c||
(c="/versions/pc8080/1.22.0/components.xsl");l=function(d,g){g?yf(c,null,null,!1,e,function(d,l){if(l)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--xf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--xf||La(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?yf(b,a,d,!0,e,l):Lf(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return Nf(a,b,c,d)};window.enableEvents=La;window.sendEvent=Pa;
function Of(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){Pf(b,d)}):Pf(null,d)}else t("Error ("+c+") requesting "+a)}
function Pf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],k={},l;for(l in g){var p=g[l],n=ca(l);if("xml"==n){for(n=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=n.exec(g[l]);){var u=d[2];u&&(g[u]||(p=p.replace(d[0],"")))}d=l=ba(l)}else"xsl"==n&&(e=l=ba(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),l=h,g=null,k="data:application/javascript,",k=va("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
function zc(a,b){for(var c=0;c<a.aa.length;c++)a:{var d=a.aa[c];if(0<=b){if(b&1){d=d.b;d.u=d.u&-8|10;break a}var e=d.b;e.u=e.u&-8|9;if(e=d.la){for(var e=d.B,f=d.fa,h=!0,g=d.ka>>>e.ea;0<f&&g<e.U.length;)e.U[g].ya&&(e.U[g].ya=h=!1,e.U[g].Lb=!0),f-=e.ua,g++;e=h}if(e)break a}var g=d.ka,l=g+d.fa,k=0,p=d.Ha,n=0,u=0,e=d.H,z=0,f=d.W,v=h=0,O=d.pa,B=(1<<O)-1;d.pb&&(O=-O,v=16+O);for(;g<l;){var U=wb(d.B,g);if(d.la&&U===d.aa[k])n+=d.Ca;else{d.aa[k]=U;var E=v;v&&(U=U>>8|(U&255)<<8);n<e&&(e=n);for(var wa=0;wa<d.Ca;wa++){var P=
U>>E&B,K=d.sa,ka=n++,P=p[P],xa=void 0,xa=d.C?(K.height-ka-1)*K.width+u:ka+u*K.width,xa=xa*P.length;K.data[xa]=P[0];K.data[xa+1]=P[1];K.data[xa+2]=P[2];K.data[xa+3]=P[3];E+=O}n>z&&(z=n);u<f&&(f=u);u>=h&&(h=u+1)}g+=2;k++;if(n>=d.H&&(n=0,u++,u>d.W))break}d.la=!0;e<d.H&&(g=z-e,h-=f,d.C&&(l=e,k=g,e=f,g=h,f=d.H-(l+k),h=k),d.Ia.putImageData(d.sa,0,0,e,f,g,h),d.L.drawImage(d.J,0,0,d.J.width,d.J.height,0,0,d.ba,d.Y))}}
Ja(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new lf(h,d,!0);cb(h,f);h.ba&&uf(h,h.kb)}});Ea.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.sa&&!c.A.ia&&c.kb(-1)}});
Ea.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.A.ia&&df(c,!(!c.w||c.L),!0)}});var Mf=0;function Nf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Of(g,a,b,c,d,e,f)})}
function Of(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){g=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Pf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Pf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,p=/( [a-z]+=)(['"])(.*?)\2/g;k=p.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Pf(a,b,c)}})}else c(a,null)}
function Qf(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);l&&(--Mf||La(!0));l=!1}var h,g,l=!0;Mf++;Xa[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=k:n.appendChild(document.createTextNode(k));p.appendChild(n)}c||
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?Nf(c,null,null,!1,e,function(d,k){if(k)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Mf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Mf||La(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Nf(b,a,d,!0,e,k):Of(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPC8080=function(a,b,c,d){La(!1);return Qf(a,b,c,d)};window.enableEvents=La;window.sendEvent=Pa;
function Rf(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){Sf(b,d)}):Sf(null,d)}else t("Error ("+c+") requesting "+a)}
function Sf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],l={},k;for(k in g){var p=g[k],n=ca(k);if("xml"==n){for(n=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=n.exec(g[k]);){var u=d[2];u&&(g[u]||(p=p.replace(d[0],"")))}d=k=ba(k)}else"xsl"==n&&(e=k=ba(k));l[k]=p}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),k=h,g=null,l="data:application/javascript,",l=va("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=df(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Sb:h}))return!0;na(b,null,!0,function(c,d,e){Of(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=df(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Sb:h}))return!0;na(b,null,!0,function(c,d,e){Rf(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();

View file

@ -4,130 +4,130 @@ function ea(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&amp;","
function p(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",k;for(k in b)b.hasOwnProperty(k)&&(l&&(l+="&"),l+=k+"="+encodeURIComponent(b[k]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function r(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function oa(){if(null==la){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}la=a}return la}function pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var sa={init:[],show:[],exit:[]},ua=!1,va=!0;function wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function xa(a){sa.init.push(a)}
function ya(a){if(va)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function za(a){!va&&a?(va=!0,ua&&Aa("init")):va=a}function Aa(a){sa[a]&&ya(sa[a])}wa("onload",function(){ua=!0;ya(sa.init)});wa("onpageshow",function(){ya(sa.show)});wa(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){ya(sa.exit)});
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.za=b.comment;this.$a=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Qa=this.id.substr(0,b),this.Aa=this.id.substr(b+1)):this.Aa=this.id;this[a]=c;this.h={ia:!1,pa:!1,Ka:!1,K:!1,ba:!1};this.Da=null;this.h.ba=!1;this.B={};this.H=null;u.push(this)}var Ba=void 0,Ca={};
function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var sa={init:[],show:[],exit:[]},ta=!1,va=!0;function wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function xa(a){sa.init.push(a)}
function ya(a){if(va)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function za(a){!va&&a?(va=!0,ta&&Aa("init")):va=a}function Aa(a){sa[a]&&ya(sa[a])}wa("onload",function(){ta=!0;ya(sa.init)});wa("onpageshow",function(){ya(sa.show)});wa(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){ya(sa.exit)});
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.za=b.comment;this.$a=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Qa=this.id.substr(0,b),this.Aa=this.id.substr(b+1)):this.Aa=this.id;this[a]=c;this.h={ia:!1,pa:!1,Ka:!1,K:!1,aa:!1};this.Da=null;this.h.aa=!1;this.B={};this.I=null;u.push(this)}var Ba=void 0,Ca={};
if(window){Ba||(Ba=window.location.search.substr(1));for(var Da,Ea=/\+/g,Fa=/([^&=]+)=?([^&]*)/g;Da=Fa.exec(Ba);)Ca[decodeURIComponent(Da[1].replace(Ea," "))]=decodeURIComponent(Da[2].replace(Ea," "))}function Ga(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 v(a,b){b||(b=t);a.prototype=Ga(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var u=[],Ha={};function Ja(a,b,c){Ha[a]&&b&&(Ha[a][b]=c)}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function v(a,b){b||(b=t);a.prototype=Ga(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var u=[],Ha={};function Ia(a,b,c){Ha[a]&&b&&(Ha[a][b]=c)}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ka(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<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function x(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function La(a,b){for(var c=y(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=x(h))&&g.binding&&a.O(g.type,g.binding,h,g.value),k=l.length}}}}
function y(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}
t.prototype={constructor:t,parent:null,toString:function(){return this.name?this.name:this.id||this.type},O:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Z=this.B[b]=c,c.value="",this.R=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.L=function(a,b,c){this.R(a,"notice",c)}),!0;default:return!1}},log:function(){},R:function(){},status:function(a){this.R(this.Aa+": "+a)},L:function(a,b){b||r(a)},X:function(){return this.h.K=!0},W:function(a,b){b&&(this.h.K=!1);return!0}};function Ma(a,b){if(a.h.Ka)return a.h.pa&&(a.h.pa=!1),a.h.Ka=!1;if(a.h.ba)return a.R(a.toString()+" error"),!1;a.h.pa=b;return a.h.pa}function B(a){if(!a.h.ba&&(a.h.ia=!0,a.h.ia)){var b=a.Da;a.Da=null;b&&b()}}
this.H=function(a,b,c){this.R(a,"notice",c)}),!0;default:return!1}},log:function(){},R:function(){},status:function(a){this.R(this.Aa+": "+a)},H:function(a,b){b||r(a)},X:function(){return this.h.K=!0},W:function(a,b){b&&(this.h.K=!1);return!0}};function Ma(a,b){if(a.h.Ka)return a.h.pa&&(a.h.pa=!1),a.h.Ka=!1;if(a.h.aa)return a.R(a.toString()+" error"),!1;a.h.pa=b;return a.h.pa}function B(a){if(!a.h.aa&&(a.h.ia=!0,a.h.ia)){var b=a.Da;a.Da=null;b&&b()}}
function Na(a,b){b&&(a.h.ia?b():a.Da=b);return a.h.ia}
var Oa="undefined"!==typeof ArrayBuffer,Pa=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Qa(a){t.call(this,"Panel",a,Qa)}v(Qa);m=Qa.prototype;m.O=function(a,b,c,d){return this.u&&this.u.O(a,b,c,d)||this.a&&this.a.O(a,b,c,d)||this.b&&this.b.O(a,b,c,d)?!0:this.parent.O.call(this,a,b,c,d)};m.ca=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.b=Ra(a,"Keyboard")};m.X=function(a,b){b||Sa();return!0};m.W=function(){return!0};m.fa=function(){};
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Qa(a){t.call(this,"Panel",a,Qa)}v(Qa);m=Qa.prototype;m.O=function(a,b,c,d){return this.u&&this.u.O(a,b,c,d)||this.a&&this.a.O(a,b,c,d)||this.b&&this.b.O(a,b,c,d)?!0:this.parent.O.call(this,a,b,c,d)};m.ba=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.I=d;this.b=Ra(a,"Keyboard")};m.X=function(a,b){b||Sa();return!0};m.W=function(){return!0};m.ea=function(){};
function Sa(){for(var a=!1,b=y(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=x(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<u.length;h++)if(u[h].id===f){f=u[h];break a}f=null}f||(a=!0,f=new Qa(e));La(f,d);a&&B(f)}}xa(Sa);
function Ta(a,b,c){t.call(this,"Bus",a,Ta);this.a=b;this.H=c;this.j=a.busWidth||16;this.s=Math.pow(2,this.j);this.i=this.s-1|0;this.c=16>=this.j?10:20>=this.j?12:24>=this.j?14:15;this.f=1<<this.c;this.A=this.f>>2;this.g=this.f-1;this.l=this.s/this.f|0;this.u=this.l-1;this.o=[];this.m=[];this.C=[];this.D=[];a=new C;Ua(a,this.H);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;B(this)}v(Ta);Ta.prototype.reset=function(){};Ta.prototype.X=function(a,b){b||this.reset();return!0};
function Va(a,b,c,d){for(var e=b>>>a.c;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.f,g=a.f-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.oa)return f.Ia+=f.oa-b,f.oa=b,!0;if(b>=f.oa+f.Ia){g=f.size-(b-h);g>c&&(g=c);f.Ia=b-f.oa+g;b=h+a.f;c-=g;e++;continue}}return Wa(1,b,c)}b=new C(b,g,a.f,d);Ua(b,a.H,f);a.b[e++]=b;b=h+a.f;c-=g}return 0>=c?!0:Wa(2,b,c)}Ta.prototype.F=function(a){return this.b[(a&this.i)>>>this.c].xa(a&this.g,a)};
function Xa(a,b){var c=b&a.g,d=(b&a.i)>>>a.c;return c!=a.g?a.b[d].qb(c,b):a.b[d++].xa(c,b)|a.b[d&a.u].xa(0,b+1)<<8}Ta.prototype.M=function(a,b){this.b[(a&this.i)>>>this.c].ya(a&this.g,b&255,a)};function Ya(a,b,c){a.b[(b&a.i)>>>a.c].cb(b&a.g,c&255,b)}function Za(a,b,c){var d=b&a.g,e=(b&a.i)>>>a.c;d!=a.g?a.b[e].rb(d,c&65535,b):(a.b[e++].ya(d,c&255,b),a.b[e&a.u].ya(0,c>>8&255,b+1))}function Wa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var $a;
if(Oa){var ab=new ArrayBuffer(2);(new DataView(ab)).setUint16(0,256,!0);$a=256===(new Uint16Array(ab))[0]}else $a=!1;var bb=$a;
function C(a,b,c,d){this.id=cb+=2;this.a=null;this.oa=a;this.Ia=b;this.size=c||0;this.type=d||db;this.g=d==eb;Ua(this);this.S=this.Ta=!1;if(c)if(Oa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),fb(this,bb?gb:hb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;fb(this,ib)}else fb(this)}var db=0,eb=2,cb=0;
function Ta(a,b,c){t.call(this,"Bus",a,Ta);this.a=b;this.I=c;this.j=a.busWidth||16;this.s=Math.pow(2,this.j);this.i=this.s-1|0;this.c=16>=this.j?10:20>=this.j?12:24>=this.j?14:15;this.f=1<<this.c;this.A=this.f>>2;this.g=this.f-1;this.l=this.s/this.f|0;this.u=this.l-1;this.o=[];this.m=[];this.C=[];this.D=[];a=new C;Ua(a,this.I);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;B(this)}v(Ta);Ta.prototype.reset=function(){};Ta.prototype.X=function(a,b){b||this.reset();return!0};
function Va(a,b,c,d){for(var e=b,f=c,h=e>>>a.c;0<f&&h<a.b.length;){var g=a.b[h],l=h*a.f,k=a.f-(e-l);k>f&&(k=f);if(g&&g.size){if(g.type==d){if(e+f<=g.oa)return g.Ia+=g.oa-e,g.oa=e,!0;if(e>=g.oa+g.Ia){k=g.size-(e-l);k>f&&(k=f);g.Ia=e-g.oa+k;e=l+a.f;f-=k;h++;continue}}return Wa(1,e,f)}e=new C(e,k,a.f,d);Ua(e,a.I,g);a.b[h++]=e;e=l+a.f;f-=k}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Xa[d]+" at "+("0x"+n(b,4))),!0):Wa(2,b,c)}
Ta.prototype.F=function(a){return this.b[(a&this.i)>>>this.c].xa(a&this.g,a)};function Ya(a,b){var c=b&a.g,d=(b&a.i)>>>a.c;return c!=a.g?a.b[d].qb(c,b):a.b[d++].xa(c,b)|a.b[d&a.u].xa(0,b+1)<<8}Ta.prototype.M=function(a,b){this.b[(a&this.i)>>>this.c].ya(a&this.g,b&255,a)};function Za(a,b,c){a.b[(b&a.i)>>>a.c].cb(b&a.g,c&255,b)}function $a(a,b,c){var d=b&a.g,e=(b&a.i)>>>a.c;d!=a.g?a.b[e].rb(d,c&65535,b):(a.b[e++].ya(d,c&255,b),a.b[e&a.u].ya(0,c>>8&255,b+1))}
function Wa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var ab;if(Oa){var bb=new ArrayBuffer(2);(new DataView(bb)).setUint16(0,256,!0);ab=256===(new Uint16Array(bb))[0]}else ab=!1;var cb=ab;
function C(a,b,c,d){this.id=db+=2;this.a=null;this.oa=a;this.Ia=b;this.size=c||0;this.type=d||eb;this.g=d==fb;Ua(this);this.S=this.Ta=!1;if(c)if(Oa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),gb(this,cb?hb:ib);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;gb(this,jb)}else gb(this)}var eb=0,fb=2,Xa=["NONE","RAM","ROM","VID","H/W"],db=0;
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Oa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Oa)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.S=!0}return!1},o:function(){return 255},m:function(){},B:function(a,b){return this.xa(a++,b++)|this.xa(a,b)<<8},u:function(a,b,c){this.ya(a++,b&255,c++);this.ya(a,b>>8,c)},D:function(a){return this.a[a>>
2]>>>((a&3)<<3)&255},N:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},V:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.S=!0},Aa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.S=!0},A:function(a,b){return this.Oa(a,b)},I:function(a,b){return this.ab(a,b)},P:function(a,b,c){this.g||this.cb(a,b,c)},aa:function(a,
b,c){this.g||this.ga(a,b,c)},s:function(a){return this.b[a]},C:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},J:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Y:function(a,b){this.b[a]=b;this.S=!0},U:function(a,b){this.b[a]=b;this.S=!0},$:function(a,b){this.f.setUint16(a,b,!0);this.S=!0},za:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.S=!0}};function Ua(a,b,c){a.H=b;a.i=a.j=0;c&&((a.i=c.i)&&jb(a,kb,!1),(a.j=c.j)&&lb(a,kb,!1))}
function lb(a,b,c){c&&a.j||(a.ya=!a.g&&b[2]||a.m,a.rb=!a.g&&b[3]||a.u);if(c||void 0===c)a.cb=b[2]||a.m,a.ga=b[3]||a.u}function jb(a,b,c){c&&a.i||(a.xa=b[0]||a.o,a.qb=b[1]||a.B);if(c||void 0===c)a.Oa=b[0]||a.o,a.ab=b[1]||a.B}function fb(a,b){b||(b=mb);jb(a,b,void 0);lb(a,b,void 0)}var mb=[],ib=[C.prototype.D,C.prototype.N,C.prototype.V,C.prototype.Aa],kb=[C.prototype.A,C.prototype.I,C.prototype.P,C.prototype.aa];
if(Oa)var hb=[C.prototype.s,C.prototype.G,C.prototype.Y,C.prototype.$],gb=[C.prototype.C,C.prototype.J,C.prototype.U,C.prototype.za];
function nb(a,b){t.call(this,"CPU",a,nb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.na=c;this.c.Ha=0;this.c.ma=d;this.c.La=Math.round(this.c.na/1E4)/100;this.c.ja=this.c.La*this.c.ma;this.h.T=!1;this.h.Va=!1;this.h.Sa=a.autoStart;this.h.Ua=!1;this.h.Ba=!1;this.c.Fa=this.c.la=0;this.c.Ga=a.csStart;this.c.qa=a.csInterval;this.c.ra=a.csStop;this.Ja=this.Pa.bind(this);B(this)}v(nb);var ob=["power","reset"];m=nb.prototype;
m.ca=function(a,b,c,d){this.u=a;this.o=b;this.H=d;for(b=0;b<ob.length;b++)(c=this.B[ob[b]])&&this.u.O(null,ob[b],c);this.Y=(b=Ra(a,"Video"))&&Math.max(b.Y,b.eb)||60;this.V=Ra(a,"ChipSet");a=pb(a,"autoStart");null!=a&&(this.h.Sa="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.c.Ha=0};m.save=function(){return null};m.restore=function(){return!1};
m.X=function(a,b){if(!b){if(a&&this.restore){qb(this);if(!this.restore(a))return!1;rb(this)}else this.reset();this.R("No debugger detected")}sb(this);return!0};m.W=function(a){return a?this.save():!0};function tb(a){(a.h.Sa||void 0===a.B.run)&&a.Pa()}m.Wa=function(){return 0};function rb(a){void 0===a.c.Ga&&(a.c.Ga=0);void 0===a.c.qa&&(a.c.qa=-1);void 0===a.c.ra&&(a.c.ra=-1);a.h.Ba=0<=a.c.Ga&&0<a.c.qa;a.h.Ba&&(a.c.Fa=0,a.c.la=a.c.Ga-a.N)}
m.O=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.K)a=!0;else{var b=null,c,g=w(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ia);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.K);c++);c==g.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ia?"powered yet":"ready yet"+(b.Da?" (waiting for notification)":""))+".");a=!1}a&&(d.h.T?ub(d,!0):d.Pa())};a=!0;break;
case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){wb(d,d.c.ma<<1)},c.textContent=this.c.ja.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.N+=b;c&&(a.J=a.a=0)}
function yb(a,b){var c=30;c<a.Y&&(c=a.Y);2>c&&(c=2);var d=1;b&&1<a.c.ma&&a.c.da&&(d=a.c.da/a.c.La);a.c.Xa=Math.round(1E3/30);a.c.kb=Math.floor(a.c.na/c*d);a.c.Ma=Math.floor(a.c.na/30*d);a.c.Za=Math.floor(a.c.na/a.Y*d);a.c.Ya=Math.floor(a.c.na/2*d);b||(a.c.ua=a.c.Ma,a.c.ta=a.c.Za,a.c.sa=a.c.Ya);a.c.Na=0}function zb(a){return a.N+a.I+a.J-a.a}function qb(a){a.c.da=0;a.N=a.I=a.J=a.a=0;rb(a);wb(a,1)}
function wb(a,b){if(void 0!==b){.8>a.c.da/a.c.ja&&(b=1);a.c.ma=b;var c=a.c.La*a.c.ma;if(a.c.ja!=c){a.c.ja=c;var c=a.c.ja.toFixed(2)+"Mhz",d=a.B.setSpeed;d&&(d.textContent=c);a.R("target speed: "+c)}}xb(a,a.I);a.I=0;a.c.ka=ha();a.c.ea=0;yb(a)}
m.Pa=function(){if(Ma(this,!0)){if(!this.h.T){wb(this);this.u&&this.u.start(this.c.ka,zb(this));this.h.T=!0;this.h.Va=!0;this.V&&this.V.start();var a=this.B.run;a&&(a.textContent="Halt");this.u&&this.u.fa(!0)}this.c.Na>=this.c.na&&yb(this,!0);this.c.va=0;this.c.Ea=ha();this.c.ea&&(a=this.c.Ea-this.c.ea,a>this.c.Xa&&(this.c.ka+=a,this.c.ka>this.c.Ea&&(this.c.ka=this.c.Ea)));try{do{var b=this.h.Ba?1:this.c.kb;try{this.bb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.J-this.a;this.I+=c;this.c.va+=
c;xb(this,0,!0);a=c;if(this.h.Ba){var d=!1;this.c.Fa=this.c.Fa+this.Wa()|0;this.c.la-=a;0>=this.c.la&&(this.c.la+=this.c.qa,d=!0);0<=this.c.ra&&this.c.ra<=zb(this)&&(this.c.qa=this.c.ra=-1,rb(this),ub(this),d=!0);d&&this.R(zb(this)+" cycles: checksum="+n(this.c.Fa))}this.c.ta-=c;0>=this.c.ta&&(this.c.ta+=this.c.Za,this.u&&Ab(this.u,this.c.Ha++),this.c.Ha>this.Y&&(this.c.Ha=0));this.c.sa-=c;0>=this.c.sa&&(this.c.sa+=this.c.Ya,this.u&&this.u.fa());this.c.ua-=c;if(0>=this.c.ua){this.c.ua+=this.c.Ma;
break}}while(this.h.T)}catch(e){ub(this);sb(this);this.u&&this.u.stop(ha(),zb(this));Ma(this,!1);b=e.stack||e.message;this.h.ba=!0;this.L(b);return}b=setTimeout;c=this.Ja;this.c.ea=ha();a=this.c.Xa;this.c.va&&(a=Math.round(a*this.c.va/this.c.Ma));a-=this.c.ea-this.c.Ea;if(d=this.c.ea-this.c.ka)this.c.da=Math.round(this.I/(10*d))/100,864E5<=d&&(this.N=0,wb(this));if(0>a||this.c.da<this.c.ja)a=0;this.c.Na+=this.c.va;this.c.ea+=a;b(c,a)}else sb(this),this.u&&this.u.stop(ha(),zb(this))};m.bb=function(){return 0};
function ub(a,b){a.h.pa&&(a.h.Ka=!0);a.J-=a.a;a.a=0;xb(a,a.I);a.I=0;if(a.h.T){a.h.T=!1;a.V&&a.V.stop();var c=a.B.run;c&&(c.textContent="Run")}a.h.Ca=b}function sb(a){a.u&&(Ab(a.u,-1),a.u.fa(void 0))}function Bb(a){this.P=a.model||8080;nb.call(this,a,1E6);this.$=Cb;qb(this);this.h.Ca=this.h.fb=!1;this.ga=0;this.U=[];this.aa=0;Db(this)}v(Bb,nb);function Eb(a,b){a.U.push(b)}m=Bb.prototype;m.reset=function(){this.h.T&&ub(this);Db(this);qb(this);this.h.ba=!1;this.parent.reset.call(this)};
function Db(a){a.b=0;a.g=0;a.v=0;a.i=0;a.w=0;a.j=0;a.l=0;a.A=0;D(a,a.aa);Fb(a,0);a.D=0}function Gb(a,b){a.aa=b;D(a,b)}m.Wa=function(){var a=this.b+this.g+this.v+this.i+this.w+this.j+this.l|0;return a=a+this.A+this.m+Hb(this)|0};
m.save=function(){var a=new E(this);G(a,0,[this.b,this.g,this.v,this.i,this.w,this.j,this.l,this.A,this.m,Hb(this)]);G(a,1,[this.D,this.N,this.c.ma]);for(var b=this.o,c=0,d=[],e=0;e<b.l;e++){var f=b.b[e];if(f.S||f.Ta){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var A=f[g],q=g+1;q<f.length&&f[q]===A;)q++;k[l++]=q-g;k[l++]=A;g=q}if(k.length<f.length){f=k;break a}}d[h]=f}}G(a,2,d);return a.data()};
m.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.v=b[2];this.i=b[3];this.w=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);Fb(this,b[9]);b=a[1];this.D=b[0];this.N=b[1];wb(this,b[3]);a:{b=this.o;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,h=Array(b.A),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.O=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.B[b]=c;this.ga++;d=!0;break;default:d=this.parent.O.call(this,a,b,c)}return d};function Ib(a){return a.g<<8|a.v}function Jb(a,b){a.g=b>>8&255;a.v=b&255}function H(a){return a.i<<8|a.w}function Kb(a,b){a.i=b>>8&255;a.w=b&255}function I(a){return a.j<<8|a.l}
function J(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.m=b&65535}function K(a){return a.f&256?1:0}function Lb(a){return Pa[a.s&255]?4:0}function Hb(a){return a.G&-214|(a.s&128?128:0)|(a.f&255?0:64)|((a.s^a.C)&16?16:0)|Lb(a)|K(a)}function Fb(a,b){a.f=a.s=a.C=0;b&1&&(a.f|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.f|=255);b&128&&(a.s^=192);a.G=a.G&-513|b&512|2}function M(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b)&255}function N(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?1:0))&255}
function O(a,b){a.f=a.s=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.f}function Mb(a,b){a.C=b^255;b=a.s=b+255&255;a.f=a.f&-256|b;return b}function Nb(a,b){a.C=b;b=a.s=b+1&255;a.f=a.f&-256|b;return b}function P(a,b){return a.s=a.f=a.C=a.b|b}function Q(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+1^256)&255}function R(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?0:1)^256)&255}function S(a,b){return a.s=a.f=a.C=a.b^b}m.F=function(a){return this.o.F(a)};m.M=function(a,b){this.o.M(a,b)};
function T(a){var b=a.F(a.m);D(a,a.m+1);return b}function U(a){var b=Xa(a.o,a.m);D(a,a.m+2);return b}function V(a){var b=Xa(a.o,a.A);a.A=a.A+2&65535;return b}function W(a,b){a.A=a.A-2&65535;Za(a.o,a.A,b)}function X(a,b,c,d){d=d||2;a.B[b]&&(void 0===c&&(a.h.ba=!0,a.L("Value for "+b+" is invalid"),ub(a)),c=!a.h.T||a.h.Ua?n(c,d):"--------".substr(0,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
m.fa=function(a){this.ga&&(a||!this.h.T||this.h.Ua)&&(X(this,"A",this.b),X(this,"B",this.g),X(this,"C",this.v),X(this,"BC",Ib(this),4),X(this,"D",this.i),X(this,"E",this.w),X(this,"DE",H(this),4),X(this,"H",this.j),X(this,"L",this.l),X(this,"HL",I(this),4),X(this,"SP",this.A,4),X(this,"PC",this.m,4),a=Hb(this),X(this,"PS",a,4),X(this,"IF",a&512?1:0,1),X(this,"SF",a&128?1:0,1),X(this,"ZF",a&64?1:0,1),X(this,"AF",a&16?1:0,1),X(this,"PF",a&4?1:0,1),X(this,"CF",a&1?1:0,1));if(a=this.B.speed)a.textContent=
this.h.T&&this.c.da?this.c.da.toFixed(2)+"Mhz":"Stopped"};m.bb=function(a){this.h.Ca=!0;this.h.fb=!1;this.h.Va=!1;this.J=this.a=a;do{if(a=this.D)this.D&8&&this.G&512?(a=199|(this.D&7)<<3,this.D&=-16,this.G&=-513,this.$[a].call(this),a=!0):a=!1,a=!a;if(a&&this.D&16){this.a=0;break}this.$[T(this)].call(this)}while(0<this.a);return this.h.Ca?this.J-this.a:void 0===this.h.Ca?0:-1};xa(function(){for(var a=y(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Bb(d);La(d,c)}});
function Ob(){this.a-=4}function Pb(){D(this,U(this));this.a-=10}function Qb(){D(this,V(this));this.a-=10}function Rb(){var a=U(this);W(this,this.m);D(this,a);this.a-=17}
var Cb=[Ob,function(){Jb(this,U(this));this.a-=10},function(){this.M(Ib(this),this.b);this.a-=7},function(){Jb(this,Ib(this)+1);this.a-=5},function(){this.g=Nb(this,this.g);this.a-=5},function(){this.g=Mb(this,this.g);this.a-=5},function(){this.g=T(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+Ib(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(Ib(this));this.a-=7},function(){Jb(this,Ib(this)-
1);this.a-=5},function(){this.v=Nb(this,this.v);this.a-=5},function(){this.v=Mb(this,this.v);this.a-=5},function(){this.v=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ob,function(){Kb(this,U(this));this.a-=10},function(){this.M(H(this),this.b);this.a-=7},function(){Kb(this,H(this)+1);this.a-=5},function(){this.i=Nb(this,this.i);this.a-=5},function(){this.i=Mb(this,this.i);this.a-=5},function(){this.i=T(this);this.a-=7},function(){var a=this.b<<
1;this.b=a&255|this.f>>8;this.f=this.f&255|a&256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+H(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(H(this));this.a-=7},function(){Kb(this,H(this)-1);this.a-=5},function(){this.w=Nb(this,this.w);this.a-=5},function(){this.w=Mb(this,this.w);this.a-=5},function(){this.w=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(this.f&256|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ob,function(){J(this,U(this));this.a-=10},function(){var a=
U(this);Za(this.o,a,I(this));this.a-=16},function(){J(this,I(this)+1);this.a-=5},function(){this.j=Nb(this,this.j);this.a-=5},function(){this.j=Mb(this,this.j);this.a-=5},function(){this.j=T(this);this.a-=7},function(){var a=0,b=K(this);if((this.s^this.C)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=M(this,a);this.f=b?this.f|256:this.f&-257;this.a-=4},Ob,function(){var a;J(this,a=I(this)+I(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){var a;a=U(this);a=Xa(this.o,a);J(this,
a);this.a-=16},function(){J(this,I(this)-1);this.a-=5},function(){this.l=Nb(this,this.l);this.a-=5},function(){this.l=Mb(this,this.l);this.a-=5},function(){this.l=T(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Ob,function(){this.A=U(this)&65535;this.a-=10},function(){this.M(U(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=I(this);this.M(a,Nb(this,this.F(a)));this.a-=10},function(){var a=I(this);this.M(a,Mb(this,this.F(a)));this.a-=10},function(){this.M(I(this),
T(this));this.a-=10},function(){this.f|=256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+this.A);this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(U(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=Nb(this,this.b);this.a-=5},function(){this.b=Mb(this,this.b);this.a-=5},function(){this.b=T(this);this.a-=7},function(){this.f=K(this)?this.f&-257:this.f|256;this.a-=4},function(){this.a-=5},function(){this.g=this.v;this.a-=5},function(){this.g=this.i;this.a-=
2]>>>((a&3)<<3)&255},N:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},V:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.S=!0},Aa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.S=!0},A:function(a,b){return this.Oa(a,b)},J:function(a,b){return this.ab(a,b)},P:function(a,b,c){this.g||this.cb(a,b,c)},fa:function(a,
b,c){this.g||this.ga(a,b,c)},s:function(a){return this.b[a]},C:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Y:function(a,b){this.b[a]=b;this.S=!0},U:function(a,b){this.b[a]=b;this.S=!0},$:function(a,b){this.f.setUint16(a,b,!0);this.S=!0},za:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.S=!0}};function Ua(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&kb(a,lb,!1),(a.j=c.j)&&mb(a,lb,!1))}
function mb(a,b,c){c&&a.j||(a.ya=!a.g&&b[2]||a.m,a.rb=!a.g&&b[3]||a.u);if(c||void 0===c)a.cb=b[2]||a.m,a.ga=b[3]||a.u}function kb(a,b,c){c&&a.i||(a.xa=b[0]||a.o,a.qb=b[1]||a.B);if(c||void 0===c)a.Oa=b[0]||a.o,a.ab=b[1]||a.B}function gb(a,b){b||(b=nb);kb(a,b,void 0);mb(a,b,void 0)}var nb=[],jb=[C.prototype.D,C.prototype.N,C.prototype.V,C.prototype.Aa],lb=[C.prototype.A,C.prototype.J,C.prototype.P,C.prototype.fa];
if(Oa)var ib=[C.prototype.s,C.prototype.G,C.prototype.Y,C.prototype.$],hb=[C.prototype.C,C.prototype.L,C.prototype.U,C.prototype.za];
function ob(a,b){t.call(this,"CPU",a,ob);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.na=c;this.c.Ha=0;this.c.ma=d;this.c.La=Math.round(this.c.na/1E4)/100;this.c.ja=this.c.La*this.c.ma;this.h.T=!1;this.h.Va=!1;this.h.Sa=a.autoStart;this.h.Ua=!1;this.h.Ba=!1;this.c.Fa=this.c.la=0;this.c.Ga=a.csStart;this.c.qa=a.csInterval;this.c.ra=a.csStop;this.Ja=this.Pa.bind(this);B(this)}v(ob);var pb=["power","reset"];m=ob.prototype;
m.ba=function(a,b,c,d){this.u=a;this.o=b;this.I=d;for(b=0;b<pb.length;b++)(c=this.B[pb[b]])&&this.u.O(null,pb[b],c);this.Y=(b=Ra(a,"Video"))&&Math.max(b.Y,b.eb)||60;this.V=Ra(a,"ChipSet");a=qb(a,"autoStart");null!=a&&(this.h.Sa="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.c.Ha=0};m.save=function(){return null};m.restore=function(){return!1};
m.X=function(a,b){if(!b){if(a&&this.restore){rb(this);if(!this.restore(a))return!1;sb(this)}else this.reset();this.R("No debugger detected")}tb(this);return!0};m.W=function(a){return a?this.save():!0};function ub(a){(a.h.Sa||void 0===a.B.run)&&a.Pa()}m.Wa=function(){return 0};function sb(a){void 0===a.c.Ga&&(a.c.Ga=0);void 0===a.c.qa&&(a.c.qa=-1);void 0===a.c.ra&&(a.c.ra=-1);a.h.Ba=0<=a.c.Ga&&0<a.c.qa;a.h.Ba&&(a.c.Fa=0,a.c.la=a.c.Ga-a.N)}
m.O=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.K)a=!0;else{var b=null,c,g=w(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ia);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.K);c++);c==g.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ia?"powered yet":"ready yet"+(b.Da?" (waiting for notification)":""))+".");a=!1}a&&(d.h.T?vb(d,!0):d.Pa())};a=!0;break;
case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){xb(d,d.c.ma<<1)},c.textContent=this.c.ja.toFixed(2)+"Mhz",a=!0}return a};function yb(a,b,c){a.N+=b;c&&(a.L=a.a=0)}
function zb(a,b){var c=30;c<a.Y&&(c=a.Y);2>c&&(c=2);var d=1;b&&1<a.c.ma&&a.c.ca&&(d=a.c.ca/a.c.La);a.c.Xa=Math.round(1E3/30);a.c.kb=Math.floor(a.c.na/c*d);a.c.Ma=Math.floor(a.c.na/30*d);a.c.Za=Math.floor(a.c.na/a.Y*d);a.c.Ya=Math.floor(a.c.na/2*d);b||(a.c.ua=a.c.Ma,a.c.ta=a.c.Za,a.c.sa=a.c.Ya);a.c.Na=0}function Ab(a){return a.N+a.J+a.L-a.a}function rb(a){a.c.ca=0;a.N=a.J=a.L=a.a=0;sb(a);xb(a,1)}
function xb(a,b){if(void 0!==b){.8>a.c.ca/a.c.ja&&(b=1);a.c.ma=b;var c=a.c.La*a.c.ma;if(a.c.ja!=c){a.c.ja=c;var c=a.c.ja.toFixed(2)+"Mhz",d=a.B.setSpeed;d&&(d.textContent=c);a.R("target speed: "+c)}}yb(a,a.J);a.J=0;a.c.ka=ha();a.c.da=0;zb(a)}
m.Pa=function(){if(Ma(this,!0)){if(!this.h.T){xb(this);this.u&&this.u.start(this.c.ka,Ab(this));this.h.T=!0;this.h.Va=!0;this.V&&this.V.start();var a=this.B.run;a&&(a.textContent="Halt");this.u&&this.u.ea(!0)}this.c.Na>=this.c.na&&zb(this,!0);this.c.va=0;this.c.Ea=ha();this.c.da&&(a=this.c.Ea-this.c.da,a>this.c.Xa&&(this.c.ka+=a,this.c.ka>this.c.Ea&&(this.c.ka=this.c.Ea)));try{do{var b=this.h.Ba?1:this.c.kb;try{this.bb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.L-this.a;this.J+=c;this.c.va+=
c;yb(this,0,!0);a=c;if(this.h.Ba){var d=!1;this.c.Fa=this.c.Fa+this.Wa()|0;this.c.la-=a;0>=this.c.la&&(this.c.la+=this.c.qa,d=!0);0<=this.c.ra&&this.c.ra<=Ab(this)&&(this.c.qa=this.c.ra=-1,sb(this),vb(this),d=!0);d&&this.R(Ab(this)+" cycles: checksum="+n(this.c.Fa))}this.c.ta-=c;0>=this.c.ta&&(this.c.ta+=this.c.Za,this.u&&Bb(this.u,this.c.Ha++),this.c.Ha>this.Y&&(this.c.Ha=0));this.c.sa-=c;0>=this.c.sa&&(this.c.sa+=this.c.Ya,this.u&&this.u.ea());this.c.ua-=c;if(0>=this.c.ua){this.c.ua+=this.c.Ma;
break}}while(this.h.T)}catch(e){vb(this);tb(this);this.u&&this.u.stop(ha(),Ab(this));Ma(this,!1);b=e.stack||e.message;this.h.aa=!0;this.H(b);return}b=setTimeout;c=this.Ja;this.c.da=ha();a=this.c.Xa;this.c.va&&(a=Math.round(a*this.c.va/this.c.Ma));a-=this.c.da-this.c.Ea;if(d=this.c.da-this.c.ka)this.c.ca=Math.round(this.J/(10*d))/100,864E5<=d&&(this.N=0,xb(this));if(0>a||this.c.ca<this.c.ja)a=0;this.c.Na+=this.c.va;this.c.da+=a;b(c,a)}else tb(this),this.u&&this.u.stop(ha(),Ab(this))};m.bb=function(){return 0};
function vb(a,b){a.h.pa&&(a.h.Ka=!0);a.L-=a.a;a.a=0;yb(a,a.J);a.J=0;if(a.h.T){a.h.T=!1;a.V&&a.V.stop();var c=a.B.run;c&&(c.textContent="Run")}a.h.Ca=b}function tb(a){a.u&&(Bb(a.u,-1),a.u.ea(void 0))}function Cb(a){this.P=a.model||8080;ob.call(this,a,1E6);this.$=Db;rb(this);this.h.Ca=this.h.fb=!1;this.ga=0;this.U=[];this.fa=0;Eb(this)}v(Cb,ob);function Fb(a,b){a.U.push(b)}m=Cb.prototype;m.reset=function(){this.h.T&&vb(this);Eb(this);rb(this);this.h.aa=!1;this.parent.reset.call(this)};
function Eb(a){a.b=0;a.g=0;a.v=0;a.i=0;a.w=0;a.j=0;a.l=0;a.A=0;D(a,a.fa);Gb(a,0);a.D=0}function Hb(a,b){a.fa=b;D(a,b)}m.Wa=function(){var a=this.b+this.g+this.v+this.i+this.w+this.j+this.l|0;return a=a+this.A+this.m+Ib(this)|0};
m.save=function(){var a=new E(this);G(a,0,[this.b,this.g,this.v,this.i,this.w,this.j,this.l,this.A,this.m,Ib(this)]);G(a,1,[this.D,this.N,this.c.ma]);for(var b=this.o,c=0,d=[],e=0;e<b.l;e++){var f=b.b[e];if(f.S||f.Ta){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var A=f[g],q=g+1;q<f.length&&f[q]===A;)q++;k[l++]=q-g;k[l++]=A;g=q}if(k.length<f.length){f=k;break a}}d[h]=f}}G(a,2,d);return a.data()};
m.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.v=b[2];this.i=b[3];this.w=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);Gb(this,b[9]);b=a[1];this.D=b[0];this.N=b[1];xb(this,b[3]);a:{b=this.o;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,h=Array(b.A),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.O=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.B[b]=c;this.ga++;d=!0;break;default:d=this.parent.O.call(this,a,b,c)}return d};function Jb(a){return a.g<<8|a.v}function Kb(a,b){a.g=b>>8&255;a.v=b&255}function H(a){return a.i<<8|a.w}function Lb(a,b){a.i=b>>8&255;a.w=b&255}function I(a){return a.j<<8|a.l}
function J(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.m=b&65535}function K(a){return a.f&256?1:0}function Mb(a){return Pa[a.s&255]?4:0}function Ib(a){return a.G&-214|(a.s&128?128:0)|(a.f&255?0:64)|((a.s^a.C)&16?16:0)|Mb(a)|K(a)}function Gb(a,b){a.f=a.s=a.C=0;b&1&&(a.f|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.f|=255);b&128&&(a.s^=192);a.G=a.G&-513|b&512|2}function M(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b)&255}function N(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?1:0))&255}
function O(a,b){a.f=a.s=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.f}function Nb(a,b){a.C=b^255;b=a.s=b+255&255;a.f=a.f&-256|b;return b}function Ob(a,b){a.C=b;b=a.s=b+1&255;a.f=a.f&-256|b;return b}function P(a,b){return a.s=a.f=a.C=a.b|b}function Q(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+1^256)&255}function R(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?0:1)^256)&255}function S(a,b){return a.s=a.f=a.C=a.b^b}m.F=function(a){return this.o.F(a)};m.M=function(a,b){this.o.M(a,b)};
function T(a){var b=a.F(a.m);D(a,a.m+1);return b}function U(a){var b=Ya(a.o,a.m);D(a,a.m+2);return b}function V(a){var b=Ya(a.o,a.A);a.A=a.A+2&65535;return b}function W(a,b){a.A=a.A-2&65535;$a(a.o,a.A,b)}function X(a,b,c,d){d=d||2;a.B[b]&&(void 0===c&&(a.h.aa=!0,a.H("Value for "+b+" is invalid"),vb(a)),c=!a.h.T||a.h.Ua?n(c,d):"--------".substr(0,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
m.ea=function(a){this.ga&&(a||!this.h.T||this.h.Ua)&&(X(this,"A",this.b),X(this,"B",this.g),X(this,"C",this.v),X(this,"BC",Jb(this),4),X(this,"D",this.i),X(this,"E",this.w),X(this,"DE",H(this),4),X(this,"H",this.j),X(this,"L",this.l),X(this,"HL",I(this),4),X(this,"SP",this.A,4),X(this,"PC",this.m,4),a=Ib(this),X(this,"PS",a,4),X(this,"IF",a&512?1:0,1),X(this,"SF",a&128?1:0,1),X(this,"ZF",a&64?1:0,1),X(this,"AF",a&16?1:0,1),X(this,"PF",a&4?1:0,1),X(this,"CF",a&1?1:0,1));if(a=this.B.speed)a.textContent=
this.h.T&&this.c.ca?this.c.ca.toFixed(2)+"Mhz":"Stopped"};m.bb=function(a){this.h.Ca=!0;this.h.fb=!1;this.h.Va=!1;this.L=this.a=a;do{if(a=this.D)this.D&8&&this.G&512?(a=199|(this.D&7)<<3,this.D&=-16,this.G&=-513,this.$[a].call(this),a=!0):a=!1,a=!a;if(a&&this.D&16){this.a=0;break}this.$[T(this)].call(this)}while(0<this.a);return this.h.Ca?this.L-this.a:void 0===this.h.Ca?0:-1};xa(function(){for(var a=y(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Cb(d);La(d,c)}});
function Pb(){this.a-=4}function Qb(){D(this,U(this));this.a-=10}function Rb(){D(this,V(this));this.a-=10}function Sb(){var a=U(this);W(this,this.m);D(this,a);this.a-=17}
var Db=[Pb,function(){Kb(this,U(this));this.a-=10},function(){this.M(Jb(this),this.b);this.a-=7},function(){Kb(this,Jb(this)+1);this.a-=5},function(){this.g=Ob(this,this.g);this.a-=5},function(){this.g=Nb(this,this.g);this.a-=5},function(){this.g=T(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Pb,function(){var a;J(this,a=I(this)+Jb(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(Jb(this));this.a-=7},function(){Kb(this,Jb(this)-
1);this.a-=5},function(){this.v=Ob(this,this.v);this.a-=5},function(){this.v=Nb(this,this.v);this.a-=5},function(){this.v=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;this.f=this.f&255|a;this.a-=4},Pb,function(){Lb(this,U(this));this.a-=10},function(){this.M(H(this),this.b);this.a-=7},function(){Lb(this,H(this)+1);this.a-=5},function(){this.i=Ob(this,this.i);this.a-=5},function(){this.i=Nb(this,this.i);this.a-=5},function(){this.i=T(this);this.a-=7},function(){var a=this.b<<
1;this.b=a&255|this.f>>8;this.f=this.f&255|a&256;this.a-=4},Pb,function(){var a;J(this,a=I(this)+H(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(H(this));this.a-=7},function(){Lb(this,H(this)-1);this.a-=5},function(){this.w=Ob(this,this.w);this.a-=5},function(){this.w=Nb(this,this.w);this.a-=5},function(){this.w=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(this.f&256|this.b)>>1;this.f=this.f&255|a;this.a-=4},Pb,function(){J(this,U(this));this.a-=10},function(){var a=
U(this);$a(this.o,a,I(this));this.a-=16},function(){J(this,I(this)+1);this.a-=5},function(){this.j=Ob(this,this.j);this.a-=5},function(){this.j=Nb(this,this.j);this.a-=5},function(){this.j=T(this);this.a-=7},function(){var a=0,b=K(this);if((this.s^this.C)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=M(this,a);this.f=b?this.f|256:this.f&-257;this.a-=4},Pb,function(){var a;J(this,a=I(this)+I(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){var a;a=U(this);a=Ya(this.o,a);J(this,
a);this.a-=16},function(){J(this,I(this)-1);this.a-=5},function(){this.l=Ob(this,this.l);this.a-=5},function(){this.l=Nb(this,this.l);this.a-=5},function(){this.l=T(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Pb,function(){this.A=U(this)&65535;this.a-=10},function(){this.M(U(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=I(this);this.M(a,Ob(this,this.F(a)));this.a-=10},function(){var a=I(this);this.M(a,Nb(this,this.F(a)));this.a-=10},function(){this.M(I(this),
T(this));this.a-=10},function(){this.f|=256;this.a-=4},Pb,function(){var a;J(this,a=I(this)+this.A);this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(U(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=Ob(this,this.b);this.a-=5},function(){this.b=Nb(this,this.b);this.a-=5},function(){this.b=T(this);this.a-=7},function(){this.f=K(this)?this.f&-257:this.f|256;this.a-=4},function(){this.a-=5},function(){this.g=this.v;this.a-=5},function(){this.g=this.i;this.a-=
5},function(){this.g=this.w;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=this.l;this.a-=5},function(){this.g=this.F(I(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.v=this.g;this.a-=5},function(){this.a-=5},function(){this.v=this.i;this.a-=5},function(){this.v=this.w;this.a-=5},function(){this.v=this.j;this.a-=5},function(){this.v=this.l;this.a-=5},function(){this.v=this.F(I(this));this.a-=7},function(){this.v=this.b;this.a-=5},function(){this.i=this.g;this.a-=
5},function(){this.i=this.v;this.a-=5},function(){this.a-=5},function(){this.i=this.w;this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.F(I(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.w=this.g;this.a-=5},function(){this.w=this.v;this.a-=5},function(){this.w=this.i;this.a-=5},function(){this.a-=5},function(){this.w=this.j;this.a-=5},function(){this.w=this.l;this.a-=5},function(){this.w=this.F(I(this));this.a-=7},function(){this.w=
this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=this.v;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.j=this.w;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=this.F(I(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.v;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.l=this.w;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},
function(){this.l=this.F(I(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.M(I(this),this.g);this.a-=7},function(){this.M(I(this),this.v);this.a-=7},function(){this.M(I(this),this.i);this.a-=7},function(){this.M(I(this),this.w);this.a-=7},function(){this.M(I(this),this.j);this.a-=7},function(){this.M(I(this),this.l);this.a-=7},function(){var a=this.m-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;this.D|=16;this.a-=7;this.G&512||ub(this)},function(){this.M(I(this),
function(){this.l=this.F(I(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.M(I(this),this.g);this.a-=7},function(){this.M(I(this),this.v);this.a-=7},function(){this.M(I(this),this.i);this.a-=7},function(){this.M(I(this),this.w);this.a-=7},function(){this.M(I(this),this.j);this.a-=7},function(){this.M(I(this),this.l);this.a-=7},function(){var a=this.m-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;this.D|=16;this.a-=7;this.G&512||vb(this)},function(){this.M(I(this),
this.b);this.a-=7},function(){this.b=this.g;this.a-=5},function(){this.b=this.v;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.w;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=this.F(I(this));this.a-=7},function(){this.a-=5},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.v);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.w);this.a-=4},function(){this.b=M(this,
this.j);this.a-=4},function(){this.b=M(this,this.l);this.a-=4},function(){this.b=M(this,this.F(I(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=N(this,this.g);this.a-=4},function(){this.b=N(this,this.v);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.w);this.a-=4},function(){this.b=N(this,this.j);this.a-=4},function(){this.b=N(this,this.l);this.a-=4},function(){this.b=N(this,this.F(I(this)));this.a-=7},function(){this.b=N(this,
this.b);this.a-=4},function(){this.b=Q(this,this.g);this.a-=4},function(){this.b=Q(this,this.v);this.a-=4},function(){this.b=Q(this,this.i);this.a-=4},function(){this.b=Q(this,this.w);this.a-=4},function(){this.b=Q(this,this.j);this.a-=4},function(){this.b=Q(this,this.l);this.a-=4},function(){this.b=Q(this,this.F(I(this)));this.a-=7},function(){this.b=Q(this,this.b);this.a-=4},function(){this.b=R(this,this.g);this.a-=4},function(){this.b=R(this,this.v);this.a-=4},function(){this.b=R(this,this.i);
this.a-=4},function(){this.b=R(this,this.w);this.a-=4},function(){this.b=R(this,this.j);this.a-=4},function(){this.b=R(this,this.l);this.a-=4},function(){this.b=R(this,this.F(I(this)));this.a-=7},function(){this.b=R(this,this.b);this.a-=4},function(){this.b=O(this,this.g);this.a-=4},function(){this.b=O(this,this.v);this.a-=4},function(){this.b=O(this,this.i);this.a-=4},function(){this.b=O(this,this.w);this.a-=4},function(){this.b=O(this,this.j);this.a-=4},function(){this.b=O(this,this.l);this.a-=
4},function(){this.b=O(this,this.F(I(this)));this.a-=7},function(){this.b=O(this,this.b);this.a-=4},function(){this.b=S(this,this.g);this.a-=4},function(){this.b=S(this,this.v);this.a-=4},function(){this.b=S(this,this.i);this.a-=4},function(){this.b=S(this,this.w);this.a-=4},function(){this.b=S(this,this.j);this.a-=4},function(){this.b=S(this,this.l);this.a-=4},function(){this.b=S(this,this.F(I(this)));this.a-=7},function(){this.b=S(this,this.b);this.a-=4},function(){this.b=P(this,this.g);this.a-=
4},function(){this.b=P(this,this.v);this.a-=4},function(){this.b=P(this,this.i);this.a-=4},function(){this.b=P(this,this.w);this.a-=4},function(){this.b=P(this,this.j);this.a-=4},function(){this.b=P(this,this.l);this.a-=4},function(){this.b=P(this,this.F(I(this)));this.a-=7},function(){this.b=P(this,this.b);this.a-=4},function(){Q(this,this.g);this.a-=4},function(){Q(this,this.v);this.a-=4},function(){Q(this,this.i);this.a-=4},function(){Q(this,this.w);this.a-=4},function(){Q(this,this.j);this.a-=
4},function(){Q(this,this.l);this.a-=4},function(){Q(this,this.F(I(this)));this.a-=7},function(){Q(this,this.b);this.a-=4},function(){this.f&255&&(D(this,V(this)),this.a-=6);this.a-=5},function(){Jb(this,V(this));this.a-=10},function(){var a=U(this);this.f&255&&D(this,a);this.a-=10},Pb,function(){var a=U(this);this.f&255&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,Ib(this));this.a-=11},function(){this.b=M(this,T(this));this.a-=7},function(){W(this,this.m);D(this,0);this.a-=
11},function(){this.f&255||(D(this,V(this)),this.a-=6);this.a-=5},Qb,function(){var a=U(this);this.f&255||D(this,a);this.a-=10},Pb,function(){var a=U(this);this.f&255||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=N(this,T(this));this.a-=7},function(){W(this,this.m);D(this,8);this.a-=11},function(){K(this)||(D(this,V(this)),this.a-=6);this.a-=5},function(){Kb(this,V(this));this.a-=10},function(){var a=U(this);K(this)||D(this,a);this.a-=10},function(){for(var a=T(this),b=this.o,
c=this.b,d=this.m+-2&65535,e=1,f=0;0<e;){var h=b.m[a],g=b.D[a]||1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=U(this);K(this)||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,H(this));this.a-=11},function(){this.b=Q(this,T(this));this.a-=7},function(){W(this,this.m);D(this,16);this.a-=11},function(){K(this)&&(D(this,V(this)),this.a-=6);this.a-=5},Qb,function(){var a=U(this);K(this)&&D(this,a);this.a-=10},function(){for(var a=
T(this),b=this.o,c=this.m+-2&65535,d=1,e=0,f=0;0<d;){var h=b.o[a],g=b.C[a]||1,l=1==g?255:2==g?65535:-1,k=l;void 0!==h&&h[0]&&(k=h[0](a,c),void 0===k?k=l:k&=l);e|=k<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=U(this);K(this)&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=R(this,T(this));this.a-=7},function(){W(this,this.m);D(this,24);this.a-=11},function(){Lb(this)||(D(this,V(this)),this.a-=6);this.a-=5},function(){J(this,V(this));this.a-=10},function(){var a=
U(this);Lb(this)||D(this,a);this.a-=10},function(){var a=V(this);W(this,I(this));J(this,a);this.a-=18},function(){var a=U(this);Lb(this)||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,I(this));this.a-=11},function(){this.b=O(this,T(this));this.a-=7},function(){W(this,this.m);D(this,32);this.a-=11},function(){Lb(this)&&(D(this,V(this)),this.a-=6);this.a-=5},function(){D(this,I(this));this.a-=5},function(){var a=U(this);Lb(this)&&D(this,a);this.a-=10},function(){var a=I(this);J(this,
H(this));Kb(this,a);this.a-=5},function(){var a=U(this);Lb(this)&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=S(this,T(this));this.a-=7},function(){W(this,this.m);D(this,40);this.a-=11},function(){this.s&128||(D(this,V(this)),this.a-=6);this.a-=5},function(){var a=V(this);Fb(this,a);this.b=a>>8;this.a-=10},function(){var a=U(this);this.s&128||D(this,a);this.a-=10},function(){this.G&=-513;this.a-=4},function(){var a=U(this);this.s&128||(W(this,this.m),D(this,a),this.a-=6);
this.a-=11},function(){W(this,Hb(this)&255|this.b<<8);this.a-=11},function(){this.b=P(this,T(this));this.a-=7},function(){W(this,this.m);D(this,48);this.a-=11},function(){this.s&128&&(D(this,V(this)),this.a-=6);this.a-=5},function(){this.A=I(this)&65535;this.a-=5},function(){var a=U(this);this.s&128&&D(this,a);this.a-=10},function(){this.G|=512;this.a-=4},function(){var a=U(this);this.s&128&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Rb,function(){Q(this,T(this));this.a-=7},function(){W(this,
this.m);D(this,56);this.a-=11}];function Y(a){t.call(this,"ChipSet",a,Y);var b=a.model;b&&!Sb[b]&&r("Unrecognized ChipSet model: "+b);this.P=Sb[b]||Tb;a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}v(Y);var Tb=1978.1,Sb={SI1978:Tb};m=Y.prototype;m.O=function(){return!1};
m.ca=function(a,b,c,d){this.o=b;this.a=c;this.H=d;this.u=a;if(this.P==Tb){var e;a=Ub;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.o[g]?r("Input port 0x"+n(g,4)+" already registered"):c.o[g]=[h,!1]}var l;e=Vb;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.m[d]?r("Output port 0x"+n(d,4)+" already registered"):f.m[d]=[c,!1]}};
m.X=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.W=function(a){return a?this.save():!0};m.reset=function(){this.f=this.g=this.c=this.b=this.l=this.j=this.i=0};m.save=function(){var a=new E(this);this.P==Tb&&G(a,0,[this.i,this.j,this.l,this.b,this.c,this.f,this.g]);return a.data()};m.restore=function(a){a=a[0];this.P==Tb&&(this.i=a[0],this.j=a[1],this.l=a[2],this.b=a[3],this.c=a[4],this.f=a[5],this.g=a[6]);return!0};m.start=function(){};m.stop=function(){};
m.hb=function(){return this.i};m.ib=function(){return this.j};m.jb=function(){return this.l};m.gb=function(){return this.b>>8-this.c&255};m.lb=function(a,b){this.c=b};m.nb=function(a,b){this.f=b};m.mb=function(a,b){this.b=b<<8|this.b>>8};m.ob=function(a,b){this.g=b};m.pb=function(){};var Ub={0:Y.prototype.hb,1:Y.prototype.ib,2:Y.prototype.jb,3:Y.prototype.gb},Vb={2:Y.prototype.lb,3:Y.prototype.nb,4:Y.prototype.mb,5:Y.prototype.ob,6:Y.prototype.pb};
xa(function(){for(var a=y(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Y(d);La(d,c)}});function Wb(a){t.call(this,"ROM",a,Wb);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ca(this.g);if(this.g){a=this.g;var b=da(this.m);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Xb(c,a,b,f)})}}v(Wb);var Yb=[0,5];
Wb.prototype.ca=function(a,b,c,d){this.o=b;this.a=c;this.H=d;Zb(this)};Wb.prototype.X=function(){this.i&&(this.H&&this.H.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Wb.prototype.W=function(){return!0};
function Xb(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ja(a.Qa,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(g){a.L("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ba(b[e]);Zb(a)}}
function Zb(a){if(!Na(a))if(!a.g)B(a);else if(a.b&&a.o){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.ba=!0;a.L(b)}else if($b(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.o,h=d.c,g=[],l=d.j>>>f.c;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.f;f=d.o;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.f}}delete a.b}B(a)}}
function $b(a,b){if(Va(a.o,b,a.c,a.l?1:eb)){var c;for(c=0;c<a.b.length;c++)Ya(a.o,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Yb.length;c++)Ya(a.o,Yb[c],118);Eb(a.a,function(a){return function(b){if(0<=Yb.indexOf(b)){var c=!1,h=a.a,g=a.H;if(5==b)switch(c=!0,h.v){case 2:ac(a,String.fromCharCode(h.w));break;case 9:for(var l=H(h),k="",A=255;A--;){var q=a.a.F(l++);if(36==q)break;k+=String.fromCharCode(q)}ac(a,k);break;default:c=!1}c?Qb.call(h):g&&(a.R("\nCP/M vector 0x"+n(b,4)),D(h,b),ub(g));b=!0}else b=!1;
return b}}(a));Gb(a.a,b)}return!0}return!1}function ac(a,b){b=b.replace(/\r/g,"");a.Z&&(a.Z.value+=b,a.Z.scrollTop=a.Z.scrollHeight)}xa(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Wb(d);La(d,c)}});function bc(a){t.call(this,"RAM",a,bc);this.f=a.addr;this.c=a.size;this.b=!1}v(bc);m=bc.prototype;m.ca=function(a,b,c,d){this.o=b;this.a=c;this.H=d;B(this)};m.X=function(a,b){b||this.reset();return!0};m.W=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.c&&Va(this.o,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||r("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};xa(function(){for(var a=y(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new bc(d);La(d,c)}});function ec(a){t.call(this,"Keyboard",a,ec);B(this)}v(ec);
xa(function(){for(var a=y(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ec(d);La(d,c)}});
function fc(a,b,c,d,e){var f=this;this.P=ra("Gecko/");var h=["","moz","webkit","ms"];t.call(this,"Video",a,fc);this.s=a.screenWidth;this.l=a.screenHeight;this.C=a.bufferAddr;this.i=a.bufferCols;this.j=a.bufferRows;this.I=a.bufferBits||1;this.Ja=a.bufferLeft||0;this.J=a.bufferRotate;this.eb=a.interruptRate;this.Y=a.refreshRate||60;this.f=b;this.g=c;this.U=d||b||null;b=a.smoothing;(c=Ca.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<h.length;c++)d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",
this.g[d]=b;this.aa=a.screenRotate;90==this.aa&&(this.g.translate(0,this.l),this.g.rotate(-this.aa*Math.PI/180),this.g.scale(this.l/this.s,this.s/this.l));this.ga=[[0,0,0,255],[255,255,255,255]];a=this.i;b=this.j;this.J&&(a=this.j,b=this.i);this.G=this.g.createImageData(a,b);this.c=document.createElement("canvas");this.c.width=a;this.c.height=b;this.N=this.c.getContext("2d");if(this.b=e)if(this.b.ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.ha){for(c=
0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){gc(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){gc(f,null)},!1);break}}}v(fc);
fc.prototype.ca=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.A=(this.i*this.I>>3)*this.j;Va(this.o,this.C,this.A,3)&&(this.V=this.A>>1,this.$=16/this.I|0,this.D=!1,void 0===this.m||this.m.length!=this.V)&&(this.m=Array(this.V));B(this)};fc.prototype.O=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.B[b]=c,this.b&&this.b.ha?c.onclick=function(){d.ha()}:c.parentNode.removeChild(c),!0}return!1};
fc.prototype.ha=function(){var a=!1;if(this.b){if(this.b.ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.s/this.l;b>c&&(a=Math.round(c/b*100)+"%")}this.P?(this.f.style.width=a,this.f.style.width=a,this.f.style.display="block",this.f.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.ha();a=!0}this.U&&this.U.focus()}return a};
function gc(a,b){!b&&a.b&&(a.P?a.f.style.width=a.f.style.height="":a.b.style.width=a.b.style.height="")}
4},function(){Q(this,this.l);this.a-=4},function(){Q(this,this.F(I(this)));this.a-=7},function(){Q(this,this.b);this.a-=4},function(){this.f&255&&(D(this,V(this)),this.a-=6);this.a-=5},function(){Kb(this,V(this));this.a-=10},function(){var a=U(this);this.f&255&&D(this,a);this.a-=10},Qb,function(){var a=U(this);this.f&255&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,Jb(this));this.a-=11},function(){this.b=M(this,T(this));this.a-=7},function(){W(this,this.m);D(this,0);this.a-=
11},function(){this.f&255||(D(this,V(this)),this.a-=6);this.a-=5},Rb,function(){var a=U(this);this.f&255||D(this,a);this.a-=10},Qb,function(){var a=U(this);this.f&255||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){this.b=N(this,T(this));this.a-=7},function(){W(this,this.m);D(this,8);this.a-=11},function(){K(this)||(D(this,V(this)),this.a-=6);this.a-=5},function(){Lb(this,V(this));this.a-=10},function(){var a=U(this);K(this)||D(this,a);this.a-=10},function(){for(var a=T(this),b=this.o,
c=this.b,d=this.m+-2&65535,e=1,f=0;0<e;){var h=b.m[a],g=b.D[a]||1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=U(this);K(this)||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,H(this));this.a-=11},function(){this.b=Q(this,T(this));this.a-=7},function(){W(this,this.m);D(this,16);this.a-=11},function(){K(this)&&(D(this,V(this)),this.a-=6);this.a-=5},Rb,function(){var a=U(this);K(this)&&D(this,a);this.a-=10},function(){for(var a=
T(this),b=this.o,c=this.m+-2&65535,d=1,e=0,f=0;0<d;){var h=b.o[a],g=b.C[a]||1,l=1==g?255:2==g?65535:-1,k=l;void 0!==h&&h[0]&&(k=h[0](a,c),void 0===k?k=l:k&=l);e|=k<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=U(this);K(this)&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){this.b=R(this,T(this));this.a-=7},function(){W(this,this.m);D(this,24);this.a-=11},function(){Mb(this)||(D(this,V(this)),this.a-=6);this.a-=5},function(){J(this,V(this));this.a-=10},function(){var a=
U(this);Mb(this)||D(this,a);this.a-=10},function(){var a=V(this);W(this,I(this));J(this,a);this.a-=18},function(){var a=U(this);Mb(this)||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,I(this));this.a-=11},function(){this.b=O(this,T(this));this.a-=7},function(){W(this,this.m);D(this,32);this.a-=11},function(){Mb(this)&&(D(this,V(this)),this.a-=6);this.a-=5},function(){D(this,I(this));this.a-=5},function(){var a=U(this);Mb(this)&&D(this,a);this.a-=10},function(){var a=I(this);J(this,
H(this));Lb(this,a);this.a-=5},function(){var a=U(this);Mb(this)&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){this.b=S(this,T(this));this.a-=7},function(){W(this,this.m);D(this,40);this.a-=11},function(){this.s&128||(D(this,V(this)),this.a-=6);this.a-=5},function(){var a=V(this);Gb(this,a);this.b=a>>8;this.a-=10},function(){var a=U(this);this.s&128||D(this,a);this.a-=10},function(){this.G&=-513;this.a-=4},function(){var a=U(this);this.s&128||(W(this,this.m),D(this,a),this.a-=6);
this.a-=11},function(){W(this,Ib(this)&255|this.b<<8);this.a-=11},function(){this.b=P(this,T(this));this.a-=7},function(){W(this,this.m);D(this,48);this.a-=11},function(){this.s&128&&(D(this,V(this)),this.a-=6);this.a-=5},function(){this.A=I(this)&65535;this.a-=5},function(){var a=U(this);this.s&128&&D(this,a);this.a-=10},function(){this.G|=512;this.a-=4},function(){var a=U(this);this.s&128&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){Q(this,T(this));this.a-=7},function(){W(this,
this.m);D(this,56);this.a-=11}];function Y(a){t.call(this,"ChipSet",a,Y);var b=a.model;b&&!Tb[b]&&r("Unrecognized ChipSet model: "+b);this.P=Tb[b]||Ub;a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}v(Y);var Ub=1978.1,Tb={SI1978:Ub};m=Y.prototype;m.O=function(){return!1};
m.ba=function(a,b,c,d){this.o=b;this.a=c;this.I=d;this.u=a;if(this.P==Ub){var e;a=Vb;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.o[g]?r("Input port 0x"+n(g,4)+" already registered"):c.o[g]=[h,!1]}var l;e=Wb;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.m[d]?r("Output port 0x"+n(d,4)+" already registered"):f.m[d]=[c,!1]}};
m.X=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.W=function(a){return a?this.save():!0};m.reset=function(){this.f=this.g=this.c=this.b=this.l=this.j=this.i=0};m.save=function(){var a=new E(this);this.P==Ub&&G(a,0,[this.i,this.j,this.l,this.b,this.c,this.f,this.g]);return a.data()};m.restore=function(a){a=a[0];this.P==Ub&&(this.i=a[0],this.j=a[1],this.l=a[2],this.b=a[3],this.c=a[4],this.f=a[5],this.g=a[6]);return!0};m.start=function(){};m.stop=function(){};
m.hb=function(){return this.i};m.ib=function(){return this.j};m.jb=function(){return this.l};m.gb=function(){return this.b>>8-this.c&255};m.lb=function(a,b){this.c=b};m.nb=function(a,b){this.f=b};m.mb=function(a,b){this.b=b<<8|this.b>>8};m.ob=function(a,b){this.g=b};m.pb=function(){};var Vb={0:Y.prototype.hb,1:Y.prototype.ib,2:Y.prototype.jb,3:Y.prototype.gb},Wb={2:Y.prototype.lb,3:Y.prototype.nb,4:Y.prototype.mb,5:Y.prototype.ob,6:Y.prototype.pb};
xa(function(){for(var a=y(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Y(d);La(d,c)}});function Xb(a){t.call(this,"ROM",a,Xb);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ca(this.g);if(this.g){a=this.g;var b=da(this.m);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Yb(c,a,b,f)})}}v(Xb);var Zb=[0,5];
Xb.prototype.ba=function(a,b,c,d){this.o=b;this.a=c;this.I=d;$b(this)};Xb.prototype.X=function(){this.i&&(this.I&&this.I.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Xb.prototype.W=function(){return!0};
function Yb(a,b,c,d){if(d)a.H("Unable to load system ROM (error "+d+": "+b+")");else{Ia(a.Qa,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(g){a.H("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ba(b[e]);$b(a)}}
function $b(a){if(!Na(a))if(!a.g)B(a);else if(a.b&&a.o){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.aa=!0;a.H(b)}else if(ac(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.o,h=d.c,g=[],l=d.j>>>f.c;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.f;f=d.o;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.f}}delete a.b}B(a)}}
function ac(a,b){if(Va(a.o,b,a.c,a.l?1:fb)){var c;for(c=0;c<a.b.length;c++)Za(a.o,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Zb.length;c++)Za(a.o,Zb[c],118);Fb(a.a,function(a){return function(b){if(0<=Zb.indexOf(b)){var c=!1,h=a.a,g=a.I;if(5==b)switch(c=!0,h.v){case 2:bc(a,String.fromCharCode(h.w));break;case 9:for(var l=H(h),k="",A=255;A--;){var q=a.a.F(l++);if(36==q)break;k+=String.fromCharCode(q)}bc(a,k);break;default:c=!1}c?Rb.call(h):g&&(a.R("\nCP/M vector 0x"+n(b,4)),D(h,b),vb(g));b=!0}else b=!1;
return b}}(a));Hb(a.a,b)}return!0}return!1}function bc(a,b){b=b.replace(/\r/g,"");a.Z&&(a.Z.value+=b,a.Z.scrollTop=a.Z.scrollHeight)}xa(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Xb(d);La(d,c)}});function cc(a){t.call(this,"RAM",a,cc);this.f=a.addr;this.c=a.size;this.b=!1}v(cc);m=cc.prototype;m.ba=function(a,b,c,d){this.o=b;this.a=c;this.I=d;B(this)};m.X=function(a,b){b||this.reset();return!0};m.W=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.c&&Va(this.o,this.f,this.c,1)&&(this.b=!0);this.b||r("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};xa(function(){for(var a=y(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new cc(d);La(d,c)}});function fc(a){t.call(this,"Keyboard",a,fc);B(this)}v(fc);xa(function(){for(var a=y(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new fc(d);La(d,c)}});
function gc(a,b,c,d,e){var f=this;this.N=ra("Gecko/");var h=["","moz","webkit","ms"];t.call(this,"Video",a,gc);this.C=a.screenWidth;this.s=a.screenHeight;this.G=a.bufferAddr;this.g=a.bufferCols;this.m=a.bufferRows;this.L=a.bufferBits||1;this.Ja=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.H("unsupported buffer rotation: "+this.c),this.c=0);this.eb=a.interruptRate;this.Y=a.refreshRate||60;this.j=b;this.l=c;this.U=d||b||null;b=a.smoothing;(c=
Ca.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<h.length;c++)d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",this.l[d]=b;if(this.f=a.screenRotate)this.f=this.f%360,0<this.f&&(this.f-=360),-90!=this.f?(this.H("unsupported screen rotation: "+this.f),this.f=0):(this.l.translate(0,this.s),this.l.rotate(this.f*Math.PI/180),this.l.scale(this.s/this.C,this.C/this.s));this.fa=[[0,0,0,255],[255,255,255,255]];a=this.g;b=this.m;this.c&&(a=this.m,b=this.g);this.P=this.l.createImageData(a,
b);this.i=document.createElement("canvas");this.i.width=a;this.i.height=b;this.ga=this.i.getContext("2d");if(this.b=e)if(this.b.ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.ha){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){hc(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<
h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){hc(f,null)},!1);break}}}v(gc);gc.prototype.ba=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.I=d;this.D=(this.g*this.L>>3)*this.m;Va(this.o,this.G,this.D,3)&&(this.V=this.D>>1,this.$=16/this.L|0,this.J=!1,void 0===this.A||this.A.length!=this.V)&&(this.A=Array(this.V));B(this)};
gc.prototype.O=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.B[b]=c,this.b&&this.b.ha?c.onclick=function(){d.ha()}:c.parentNode.removeChild(c),!0}return!1};
gc.prototype.ha=function(){var a=!1;if(this.b){if(this.b.ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.s;b>c&&(a=Math.round(c/b*100)+"%")}this.N?(this.j.style.width=a,this.j.style.width=a,this.j.style.display="block",this.j.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.ha();a=!0}this.U&&this.U.focus()}return a};
function hc(a,b){!b&&a.b&&(a.N?a.j.style.width=a.j.style.height="":a.b.style.width=a.b.style.height="")}
xa(function(){for(var a=y(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=x(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());var f=+(d.aspect||Ca.aspect);f&&.3<=f&&3.33>=f&&(wa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new fc(d,e,h,f,c);La(d,c)}});
function E(a,b,c){this.id=a.id;this.key=hc(a,b,c);this.H=a.H;ic(this,a.$a)}function hc(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}
E.prototype={constructor:E,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ic(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 ic(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function jc(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function kc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function lc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}function mc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
function nc(a,b,c){t.call(this,"Computer",a,nc);this.h.K=!1;oc(this,b);this.C=pb(this,"autoPower",a);this.f=0;this.N=a.busWidth||a.buswidth;this.b=pc;this.u=null;this.j=this.J=!1;this.P=pb(this,"url")||"";(Math.random()+.1).toString(36);this.c=qc(this);if(this.a=Ka("CPU",this.id)){this.H=Ka("Debugger",this.id);this.A=[];for(b=null;b=Ra(this,"Video",b);)this.A.push(b);this.o=new Ta({id:this.Qa+".bus",busWidth:this.N},this.a,this.H);var d,e=w(this.id);if((this.g=Ka("Panel",this.id))&&this.g.Z)for(b=
0;b<e.length;b++)d=e[b],d.L=this.g.L,d.R=this.g.R,d.Z=this.g.Z;for(b=0;b<e.length;b++)d=e[b],d.ca&&d.ca(this,this.o,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=pb(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.j=!0,this.b=pc),this.b&&(this.s=new E(this,Z),lc(this.s)?b=null:delete this.s);!b&&this.b&&(b=rc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.L("Unable to load machine state from server (error "+
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.J=!0);B(h)})}else B(this);this.B.power||(this.C=!0);!c&&this.C&&sc(this,this.wa)}else r("Unable to find CPU component")}v(nc);var Z="1.22.0",pc=0;function oc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.l=b}
function pb(a,b,c){var d=b.toLowerCase(),d=Ca[b]||Ca[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function sc(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Na(f)){Na(f,function(){sc(a,b,c)});return}}b.call(a,c)}
function tc(a,b){var c=new E(a,Z,"validate");if(lc(c)&&kc(c)){var d=mc(c,"timestamp"),e=b?mc(b,"timestamp"):"unknown";d!=e&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=nc.prototype;
m.wa=function(a){void 0===a&&(a=this.b||(this.u?1:pc));if(!this.f){this.f++;var b=!1,c=!1;this.I=!1;var d=this.s||new E(this,Z);if(-1==a)b=!0;else if(a>pc){if(lc(d,this.u)){this.i=new E(this,Z,"failsafe");lc(this.i)&&(uc(this,d),a=2,ic(this.i));G(this.i,"timestamp",ia());jc(this.i);var e=this.b&&!this.j;if(1==a||ka("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=kc(d)){var f=mc(d,"code"),h=mc(d,"data");f&&("ok"==f?lc(d,h):("error"==f&&"no machine state"!=
h?(this.L("Error: "+h),"unable to verify user"==h&&(qa("user",""),this.c=null)):this.R(f+": "+h),ic(d),lc(d)?(c=kc(d),e=!0):c=!1))}e&&tc(this,c?d:null)}else 2==a&&d.clear()}else tc(this);delete this.u;delete this.s}e=w(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=vc(this,h,d,b,c));b=[d,a,c];-1!=a?sc(this,this.Ra,b):this.Ra(b)}};
function vc(a,b,c,d,e){if(!b.h.K){b.h.K=!0;if(b.X){var f=null;e&&((f=mc(c,b.id))||(f=mc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.X(f,d)&&f&&(r("Unable to restore state for "+b.type),a.D&&!a.J?(c.clear(),a.b=pc,window&&window.location.reload()):a.I=!0,b.X(null),e=!1)}if(!d&&b.za)for(a=b.za.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Ra=function(a){var b=a[0],c=0>a[1];a=a[2];this.h.K=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.G||(this.R("PC8080 v"+Z+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.G=!0);this.a&&(vc(this,this.a,b,c,a),tb(this.a));this.I&&(uc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
function uc(a,b){if(ka("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.P,d=a.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Z;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
function wc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new E(a,Z),h=new E(a,Z,"validate"),g=ia();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.22.0");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.W&&(c&&ub(a.a),d=a.a.W(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.h.K=!1,!1===d&&(e=null)));for(var g=w(a.id),l=0;l<g.length;l++){var k=g[l];k.h.K&&(k.W&&(d=k.W(b,c),"object"===typeof d&&G(f,k.id,d)),c&&(k.h.K=!1,!1===d&&(e=
null)))}e&&(c?(g=d=!1,b?(a.c&&xc(a,a.c,f.toString()),jc(h)&&jc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.K=!1,b=a.B.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.o&&this.o.reset&&this.o.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ca.aspect);f&&.3<=f&&3.33>=f&&(wa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new gc(d,e,h,f,c);La(d,c)}});
function E(a,b,c){this.id=a.id;this.key=ic(a,b,c);this.I=a.I;jc(this,a.$a)}function ic(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}
E.prototype={constructor:E,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){jc(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 jc(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function kc(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function lc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function mc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}function nc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
function oc(a,b,c){t.call(this,"Computer",a,oc);this.h.K=!1;pc(this,b);this.C=qb(this,"autoPower",a);this.f=0;this.L=a.busWidth||a.buswidth;this.b=qc;this.u=null;this.j=this.J=!1;this.N=qb(this,"url")||"";(Math.random()+.1).toString(36);this.c=rc(this);if(this.a=Ka("CPU",this.id)){this.I=Ka("Debugger",this.id);this.A=[];for(b=null;b=Ra(this,"Video",b);)this.A.push(b);this.o=new Ta({id:this.Qa+".bus",busWidth:this.L},this.a,this.I);var d,e=w(this.id);if((this.g=Ka("Panel",this.id))&&this.g.Z)for(b=
0;b<e.length;b++)d=e[b],d.H=this.g.H,d.R=this.g.R,d.Z=this.g.Z;this.R(sc+" v"+Z+"\n"+tc+"\n"+uc);for(b=0;b<e.length;b++)d=e[b],d.ba&&d.ba(this,this.o,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=qb(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.j=!0,this.b=qc),this.b&&(this.s=new E(this,Z),mc(this.s)?b=null:delete this.s);!b&&this.b&&(b=vc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.H("Unable to load machine state from server (error "+
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.J=!0);B(h)})}else B(this);this.B.power||(this.C=!0);!c&&this.C&&wc(this,this.wa)}else r("Unable to find CPU component")}v(oc);var sc="PC8080",Z="1.22.0",tc="Copyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>",uc="License: GPL version 3 or later <http://gnu.org/licenses/gpl.html>",qc=0;
function pc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.l=b}function qb(a,b,c){var d=b.toLowerCase(),d=Ca[b]||Ca[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function wc(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Na(f)){Na(f,function(){wc(a,b,c)});return}}b.call(a,c)}
function xc(a,b){var c=new E(a,Z,"validate");if(mc(c)&&lc(c)){var d=nc(c,"timestamp"),e=b?nc(b,"timestamp"):"unknown";d!=e&&(a.H("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=oc.prototype;
m.wa=function(a){void 0===a&&(a=this.b||(this.u?1:qc));if(!this.f){this.f++;var b=!1,c=!1;this.G=!1;var d=this.s||new E(this,Z);if(-1==a)b=!0;else if(a>qc){if(mc(d,this.u)){this.i=new E(this,Z,"failsafe");mc(this.i)&&(yc(this,d),a=2,jc(this.i));G(this.i,"timestamp",ia());kc(this.i);var e=this.b&&!this.j;if(1==a||ka("Click OK to restore the previous "+sc+" machine state, or CANCEL to reset the machine.")){if(c=lc(d)){var f=nc(d,"code"),h=nc(d,"data");f&&("ok"==f?mc(d,h):("error"==f&&"no machine state"!=
h?(this.H("Error: "+h),"unable to verify user"==h&&(qa("user",""),this.c=null)):this.R(f+": "+h),jc(d),mc(d)?(c=lc(d),e=!0):c=!1))}e&&xc(this,c?d:null)}else 2==a&&d.clear()}else xc(this);delete this.u;delete this.s}e=w(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=zc(this,h,d,b,c));b=[d,a,c];-1!=a?wc(this,this.Ra,b):this.Ra(b)}};
function zc(a,b,c,d,e){if(!b.h.K){b.h.K=!0;if(b.X){var f=null;e&&((f=nc(c,b.id))||(f=nc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.X(f,d)&&f&&(r("Unable to restore state for "+b.type),a.D&&!a.J?(c.clear(),a.b=qc,window&&window.location.reload()):a.G=!0,b.X(null),e=!1)}if(!d&&b.za)for(a=b.za.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Ra=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.h.K=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.a&&(zc(this,this.a,b,c,a),ub(this.a));this.G&&(yc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
function yc(a,b){if(ka("There may be a problem with your "+sc+" machine.\n\nTo help us diagnose it, click OK to send this "+sc+" machine state to http://www.pcjs.org.")){var c=a.N,d=a.c||"",e=b.toString(),f=Z,h={};h.app=sc;h.ver=f;h.url=c;h.user=d;h.type="bug";h.data=e;p("http://www.pcjs.org/api/v1/report",h,!0)}}
function Ac(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new E(a,Z),h=new E(a,Z,"validate"),g=ia();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.22.0");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.W&&(c&&vb(a.a),d=a.a.W(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.h.K=!1,!1===d&&(e=null)));for(var g=w(a.id),l=0;l<g.length;l++){var k=g[l];k.h.K&&(k.W&&(d=k.W(b,c),"object"===typeof d&&G(f,k.id,d)),c&&(k.h.K=!1,!1===d&&(e=
null)))}e&&(c?(g=d=!1,b?(a.c&&Bc(a,a.c,f.toString()),kc(h)&&kc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.K=!1,b=a.B.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.o&&this.o.reset&&this.o.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
m.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.O=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.f||(d.h.K?wc(d,!1,!0):sc(d,d.wa))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.K&&!d.f)if(d.b&&!d.m){var a=ka("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");wc(d,a,!0);!a&&d.D?window&&window.location.reload():d.wa(pc)}else d.reset(),d.a&&tb(d.a)},!0;case "save":if(ea(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.B[b]=
c;c.onclick=function(){var a=qc(d,!0);if(a){var b=!!(d.b&&!d.m||d.D),c=wc(d,b);b?xc(d,a,c):d.L("Resume disabled, machine state not saved")}};return!0}return!1};
function qc(a,b){var c=a.c;c||(c=pa("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=yc(a,c))||a.L("The user ID is invalid."))):b&&a.L("Browser local storage is not available"));return c}
function yc(a,b){a.c=null;var c=p(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(qa("user",c.data),a.c=c.data)}catch(e){r(e.message+" ("+d+")")}return a.c}function rc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+hc(a,Z));return b}
function xc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hc(a,Z);d.data=c;b=p(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.L("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.L(c),qa("user",""),a.c=null)}}
function Ra(a,b,c){a=w(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}m.fa=function(a){this.a&&this.a.fa(a);this.g&&this.g.fa(a)};
function Ab(a,b){for(var c=0;c<a.A.length;c++)a:{var d=a.A[c];if(0<=b){if(b&1){d=d.a;d.D=d.D&-8|10;break a}var e=d.a;e.D=e.D&-8|9;if(e=d.D){for(var e=d.o,f=d.A,h=!0,g=d.C>>>e.c;0<f&&g<e.b.length;)e.b[g].S&&(e.b[g].S=h=!1,e.b[g].Ta=!0),f-=e.f,g++;e=h}if(e)break a}var g=d.C,l=g+d.A,k=0,A=d.ga,q=0,F=0,e=d.i,vb=0,f=d.j,cc=h=0,Ia=d.I,Ec=(1<<Ia)-1;d.Ja&&(Ia=-Ia,cc=16+Ia);for(;g<l;){var z;z=d.o;var aa=g,ta=aa&z.g,L=(aa&z.i)>>>z.c;z=ta!=z.g?z.b[L].ab(ta,aa):z.b[L++].Oa(ta,aa)|z.b[L&z.u].Oa(0,aa+1)<<8;if(d.D&&
z===d.m[k])q+=d.$;else{d.m[k]=z;(aa=cc)&&(z=z>>8|(z&255)<<8);q<e&&(e=q);for(ta=0;ta<d.$;ta++){var ma=z>>aa&Ec,L=d.G,dc=q++,ma=A[ma],na=void 0,na=d.J?(L.height-dc-1)*L.width+F:dc+F*L.width,na=na*ma.length;L.data[na]=ma[0];L.data[na+1]=ma[1];L.data[na+2]=ma[2];L.data[na+3]=ma[3];aa+=Ia}q>vb&&(vb=q);F<f&&(f=F);F>=h&&(h=F+1)}g+=2;k++;if(q>=d.i&&(q=0,F++,F>d.j))break}d.D=!0;e<d.i&&(g=vb-e,h-=f,d.J?d.N.putImageData(d.G,0,0):d.N.putImageData(d.G,0,0,e,f,g,h),d.g.drawImage(d.c,0,0,d.c.width,d.c.height,0,
0,d.s,d.l))}}xa(function(){for(var a=y(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=y(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=x(f),h=new nc(h,d,!0);La(h,f);h.C&&sc(h,h.wa)}});sa.show.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.G&&!c.h.K&&c.wa(-1)}});
sa.exit.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.h.K&&wc(c,!(!c.b||c.m),!0)}});var zc=0;function Ac(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Bc(g,a,b,c,d,e,f)})}
function Bc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ja(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Cc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Cc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,A=/( [a-z]+=)(['"])(.*?)\2/g;k=A.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Cc(a,b,c)}})}else c(a,null)}
function Dc(a,b,c,d){function e(a){if(void 0===g){var b=h&&y(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--zc||za(!0));l=!1}var h,g,l=!0;zc++;Ha[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=k:q.appendChild(document.createTextNode(k));A.appendChild(q)}c||
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?Ac(c,null,null,!1,e,function(d,k){if(k)if(Ja(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--zc||za(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--zc||za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Ac(b,a,d,!0,e,k):Bc(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(F){f(F.message)}return l}window.embedPC8080=function(a,b,c,d){za(!1);return Dc(a,b,c,d)};window.enableEvents=za;window.sendEvent=Aa;
function Fc(a,b,c,d){if(!c&&b){d.push(b);a=Ha[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){Gc(b,d)}):Gc(null,d)}else r("Error ("+c+") requesting "+a)}
function Gc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ha[f],l={},k;for(k in g){var A=g[k],q=da(k);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[k]);){var F=d[2];F&&(g[F]||(A=A.replace(d[0],"")))}d=k=ca(k)}else"xsl"==q&&(e=k=ca(k));l[k]=A}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
m.O=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.f||(d.h.K?Ac(d,!1,!0):wc(d,d.wa))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.K&&!d.f)if(d.b&&!d.m){var a=ka("Click OK to save changes to this "+sc+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ac(d,a,!0);!a&&d.D?window&&window.location.reload():d.wa(qc)}else d.reset(),d.a&&ub(d.a)},!0;case "save":if(ea(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.B[b]=
c;c.onclick=function(){var a=rc(d,!0);if(a){var b=!!(d.b&&!d.m||d.D),c=Ac(d,b);b?Bc(d,a,c):d.H("Resume disabled, machine state not saved")}};return!0}return!1};
function rc(a,b){var c=a.c;c||(c=pa("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=Cc(a,c))||a.H("The user ID is invalid."))):b&&a.H("Browser local storage is not available"));return c}
function Cc(a,b){a.c=null;var c=p(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(qa("user",c.data),a.c=c.data)}catch(e){r(e.message+" ("+d+")")}return a.c}function vc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+ic(a,Z));return b}
function Bc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ic(a,Z);d.data=c;b=p(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.H("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.H(c),qa("user",""),a.c=null)}}
function Ra(a,b,c){a=w(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}m.ea=function(a){this.a&&this.a.ea(a);this.g&&this.g.ea(a)};
function Bb(a,b){for(var c=0;c<a.A.length;c++)a:{var d=a.A[c];if(0<=b){if(b&1){d=d.a;d.D=d.D&-8|10;break a}var e=d.a;e.D=e.D&-8|9;if(e=d.J){for(var e=d.o,f=d.D,h=!0,g=d.G>>>e.c;0<f&&g<e.b.length;)e.b[g].S&&(e.b[g].S=h=!1,e.b[g].Ta=!0),f-=e.f,g++;e=h}if(e)break a}var g=d.G,l=g+d.D,k=0,A=d.fa,q=0,F=0,e=d.g,wb=0,f=d.m,dc=h=0,Ja=d.L,Ic=(1<<Ja)-1;d.Ja&&(Ja=-Ja,dc=16+Ja);for(;g<l;){var z;z=d.o;var aa=g,ua=aa&z.g,L=(aa&z.i)>>>z.c;z=ua!=z.g?z.b[L].ab(ua,aa):z.b[L++].Oa(ua,aa)|z.b[L&z.u].Oa(0,aa+1)<<8;if(d.J&&
z===d.A[k])q+=d.$;else{d.A[k]=z;(aa=dc)&&(z=z>>8|(z&255)<<8);q<e&&(e=q);for(ua=0;ua<d.$;ua++){var ma=z>>aa&Ic,L=d.P,ec=q++,ma=A[ma],na=void 0,na=d.c?(L.height-ec-1)*L.width+F:ec+F*L.width,na=na*ma.length;L.data[na]=ma[0];L.data[na+1]=ma[1];L.data[na+2]=ma[2];L.data[na+3]=ma[3];aa+=Ja}q>wb&&(wb=q);F<f&&(f=F);F>=h&&(h=F+1)}g+=2;k++;if(q>=d.g&&(q=0,F++,F>d.m))break}d.J=!0;e<d.g&&(g=wb-e,h-=f,d.c&&(l=e,k=g,e=f,g=h,f=d.g-(l+k),h=k),d.ga.putImageData(d.P,0,0,e,f,g,h),d.l.drawImage(d.i,0,0,d.i.width,d.i.height,
0,0,d.C,d.s))}}xa(function(){for(var a=y(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=y(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=x(f),h=new oc(h,d,!0);La(h,f);h.C&&wc(h,h.wa)}});sa.show.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.P&&!c.h.K&&c.wa(-1)}});
sa.exit.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.h.K&&Ac(c,!(!c.b||c.m),!0)}});var Dc=0;function Ec(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Fc(g,a,b,c,d,e,f)})}
function Fc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ia(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Gc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Gc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,A=/( [a-z]+=)(['"])(.*?)\2/g;k=A.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Gc(a,b,c)}})}else c(a,null)}
function Hc(a,b,c,d){function e(a){if(void 0===g){var b=h&&y(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--Dc||za(!0));l=!1}var h,g,l=!0;Dc++;Ha[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=k:q.appendChild(document.createTextNode(k));A.appendChild(q)}c||
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?Ec(c,null,null,!1,e,function(d,k){if(k)if(Ia(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Dc||za(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Dc||za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Ec(b,a,d,!0,e,k):Fc(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(F){f(F.message)}return l}window.embedPC8080=function(a,b,c,d){za(!1);return Hc(a,b,c,d)};window.enableEvents=za;window.sendEvent=Aa;
function Jc(a,b,c,d){if(!c&&b){d.push(b);a=Ha[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){Kc(b,d)}):Kc(null,d)}else r("Error ("+c+") requesting "+a)}
function Kc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ha[f],l={},k;for(k in g){var A=g[k],q=da(k);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[k]);){var F=d[2];F&&(g[F]||(A=A.replace(d[0],"")))}d=k=ca(k)}else"xsl"==q&&(e=k=ca(k));l[k]=A}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),k=h,g=null,l="data:application/javascript,",l=ra("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",r(c)):r("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=Ka("Computer",a),e=Ka("Debugger",a);if(d){var f=wc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,$a:h}))return!0;p(b,null,!0,function(c,d,e){Fc(c,d,e,[a,ca(b,!0),h,f])});return!0}r("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b,c){var d=Ka("Computer",a),e=Ka("Debugger",a);if(d){var f=Ac(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,$a:h}))return!0;p(b,null,!0,function(c,d,e){Jc(c,d,e,[a,ca(b,!0),h,f])});return!0}r("Unable to identify machine '"+a+"'");return!1};})();