Follow my own advice and write any 32-bit hex constant > 0x7fffffff as (constant|0)

The Closure Compiler does a fine job of replacing all such expressions with their decimal equivalent, relieving us from having to calculate them ourselves, and eliminating any runtime impact
This commit is contained in:
Jeff Parsons 2015-02-19 11:18:40 -08:00 • committed by jeffpar
commit c8aec14b0b
153 changed files with 6296 additions and 188 deletions

View file

@ -37,8 +37,8 @@ if(Ya){var Ob=new ArrayBuffer(2);(new DataView(Ob)).setUint16(0,256,!0);Nb=256==
function Bb(a,b,c,d){this.ia=null;this.offset=0;this.size=b||0;this.type=c||Qb;this.Fk=c==Rb;this.X=null;this.Ha=this.Ak=!1;if(b)if(d)this.X=d,a=[d.se,a-d.Sa],this.ia=a[0],this.offset=a[1],this.le(d.Kf);else if(Ya)this.buffer=new ArrayBuffer(b),this.mf=new DataView(this.buffer,0,b),this.Vb=new Uint8Array(this.buffer,0,b),this.kk=new Uint16Array(this.buffer,0,b>>1),this.ia=new Int32Array(this.buffer,0,b>>2),this.le(Pb?Sb:Ub);else{this.ia=Array(b>>2);for(d=0;d<this.ia.length;d++)this.ia[d]=0;this.le(Vb)}else this.le()}
var Qb=0,Rb=2,Wb=["NONE","RAM","ROM","VIDEO"],Xb=["black","blue","green","cyan"];function Yb(){return 0}function Zb(){}function $b(a){return this.Vb[a]}function ac(a){return this.Vb[a]}function bc(a){return this.mf.getUint16(a,!0)}function cc(a){return a&1?this.Vb[a]|this.Vb[a+1]<<8:this.kk[a>>1]}function dc(a){return this.mf.getInt32(a,!0)}function ec(a){return a&3?this.Vb[a]|this.Vb[a+1]<<8|this.Vb[a+2]<<16|this.Vb[a+3]<<24:this.ia[a>>2]}function fc(a,b){this.Vb[a]=b;this.Ha=!0}
function gc(a,b){this.Vb[a]=b;this.Ha=!0}function hc(a,b){this.mf.setUint16(a,b,!0);this.Ha=!0}function ic(a,b){a&1?(this.Vb[a]=b,this.Vb[a+1]=b>>8):this.kk[a>>1]=b;this.Ha=!0}function jc(a,b){this.mf.setInt32(a,b,!0);this.Ha=!0}function kc(a,b){a&3?(this.Vb[a]=b,this.Vb[a+1]=b>>8,this.Vb[a+2]=b>>16,this.Vb[a+3]=b>>24):this.ia[a>>2]=b;this.Ha=!0}
var Vb=[function(a){return this.ia[a>>2]>>>((a&3)<<3)&255},function(a){var b=a>>2;a=(a&3)<<3;var c=this.ia[b]>>a;return 24>a?c&65535:c&255|(this.ia[b+1]&255)<<8},function(a){var b=a>>2;a=(a&3)<<3;var c=this.ia[b];a&&(c=c>>>a|this.ia[b+1]<<32-a);return c},function(a,b){var c=a>>2,d=(a&3)<<3;this.ia[c]=this.ia[c]&~(255<<d)|b<<d;this.Ha=!0},function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.ia[c]=this.ia[c]&~(65535<<d)|b<<d:(this.ia[c]=this.ia[c]&16777215|b<<24,c++,this.ia[c]=this.ia[c]&4294967040|b>>8);
this.Ha=!0},function(a,b){var c=a>>2,d=(a&3)<<3;d?(this.ia[c]=this.ia[c]&~(4294967295<<d)|b<<d,c++,this.ia[c]=this.ia[c]&4294967295<<d|b>>>32-d):this.ia[c]=b;this.Ha=!0}];if(Ya)var Ub=[$b,bc,dc,fc,hc,jc],Sb=[ac,cc,ec,gc,ic,kc];
var Vb=[function(a){return this.ia[a>>2]>>>((a&3)<<3)&255},function(a){var b=a>>2;a=(a&3)<<3;var c=this.ia[b]>>a;return 24>a?c&65535:c&255|(this.ia[b+1]&255)<<8},function(a){var b=a>>2;a=(a&3)<<3;var c=this.ia[b];a&&(c=c>>>a|this.ia[b+1]<<32-a);return c},function(a,b){var c=a>>2,d=(a&3)<<3;this.ia[c]=this.ia[c]&~(255<<d)|b<<d;this.Ha=!0},function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.ia[c]=this.ia[c]&~(65535<<d)|b<<d:(this.ia[c]=this.ia[c]&16777215|b<<24,c++,this.ia[c]=this.ia[c]&-256|b>>8);this.Ha=
!0},function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.ia[c]=this.ia[c]&~e|b<<d;c++;this.ia[c]=this.ia[c]&e|b>>>32-d}else this.ia[c]=b;this.Ha=!0}];if(Ya)var Ub=[$b,bc,dc,fc,hc,jc],Sb=[ac,cc,ec,gc,ic,kc];
Bb.prototype={constructor:Bb,parent:null,save:function(){var a,b;if(this.X)a=null;else if(Ya)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.mf.getInt32(b<<2,!0);else a=this.ia;return a},restore:function(a){if(this.X)return null==a;if(a&&this.size==a.length<<2){var b;if(Ya)for(b=0;b<a.length;b++)this.mf.setInt32(b<<2,a[b],!0);else this.ia=a;return this.Ha=!0}return!1},le:function(a,b){a||(a=[]);void 0===b&&(b=!0);var c=a;this.Cb=c[0]||Yb;this.em=c[1]||Yb;b&&(this.Oj=c[0]||Yb,this.op=c[1]||
Yb);c=a;this.Fb=!this.Fk&&c[3]||Zb;this.um=!this.Fk&&c[4]||Zb;b&&(this.Xj=c[3]||Zb,this.wp=c[4]||Zb)}};
function lc(a,b){n.call(this,"CPU",a,lc);var c=a.cycles||b,d=a.multiplier||1;this.S={};this.S.jd=c;this.S.be=d;this.S.sh=Math.round(this.S.jd/1E4)/100;this.S.Ke=this.S.sh*this.S.be;this.ea.Hb=!1;this.ea.Ik=!1;this.ea.ti=a.autoStart;this.ea.Bk=!1;c=Ha.autostart;void 0!==c&&(this.ea.ti="true"==c?!0:"false"==c?!1:null);this.ea.gh=!1;this.S.wh=this.S.yf=0;this.S.xh=a.csStart;this.S.cg=a.csInterval;this.S.dg=a.csStop;var e=this;this.ro=function(){mc(e)};p(this)}Ma(n,lc);k=lc.prototype;
@ -65,7 +65,7 @@ function Lc(a,b,c,d){for(var e=a.U,f=e.ja(b+0),g=e.ja(b+4),h=g&7936,r=e.ja(b+2)|
r&65535;if(U<=ba){d=a.Va;if(a.load(b,!0)==q){r=q;break}e.Qj=f;if(a.Va<d){if(!0!==B){r=q;break}H=w(e);f=0;for(g&=31;g--;)a.lk[f++]=bd(e,e.sa,H),H+=2;g=e.gb.ua;d=(a.Va<<2)+2;B=d+2;b=e.sa.ta;I=w(e);$c(e,e.ja(g+B),!0);y(e,e.ja(g+d));z(e,b);for(z(e,I);f;)z(e,a.lk[--f]);a.mh=!0}e.za&=L;return a.ua}d||Mc.call(e,13,I,!0);r=q;break}else if(!1!==H){d||Mc.call(e,13,c,!0);r=q;break}}else if(2==a.id){if(B&&(4096>h||2048==(h&2560))){d||Mc.call(e,13,c,!!g);r=q;break}}else if(3==a.id){if(!B||4096>h||2048==(h&2560)){d||
Mc.call(e,13,c,!0);r=q;break}}else if(4==a.id){if(!B||256!=h&&768!=h){d||Mc.call(e,10,c,!0);r=q;break}}else if(6==a.id&&!(g&4096)&&768<h){r=q;break}a.ta=c;a.ua=r;a.$b=f;a.hb=g;a.type=h;a.si=t;a.Ld=b;Ic(a);break}return r}Gc.prototype.save=function(){return[this.ta,this.ua,this.$b,this.hb,this.id,this.Nh,this.Va,this.pc,this.Ld]};
Gc.prototype.restore=function(a){"number"==typeof a?this.load(a):(this.ta=a[0],this.ua=a[1],this.$b=a[2],this.hb=a[3],this.id=a[4],this.Nh=a[5],this.Va=a[6],this.pc=a[7],this.Ld=a[8])};
function Ic(a,b){void 0===b&&(b=!!(a.U.lc&1));a.zi=!1;if(b){a.load=Kc;a.Tk=Oc;a.Fc=Rc;a.hc=Uc;if(a.hb&4096){6144==(a.hb&6656)&&(a.hc=Sc);if(a.hb&2048||!(a.hb&512))a.hc=Vc;1024==(a.hb&3072)&&(a.Fc==Rc&&(a.Fc=Tc),a.hc==Uc&&(a.hc=Wc),a.zi=!0)}a.Va=a.ta&3;a.pc=(a.hb&24576)>>13;80386>a.U.Ba||!(a.si&64)?(a.yc=2,a.fa=65535):(a.yc=4,a.fa=4294967295)}else a.load=Jc,a.Tk=Nc,a.Fc=Pc,a.hc=Qc,a.$b=65535,a.Va=a.pc=0,a.Ld=q,a.yc=2,a.fa=65535;a.Mg=a.yc;a.ha=a.fa}
function Ic(a,b){void 0===b&&(b=!!(a.U.lc&1));a.zi=!1;if(b){a.load=Kc;a.Tk=Oc;a.Fc=Rc;a.hc=Uc;if(a.hb&4096){6144==(a.hb&6656)&&(a.hc=Sc);if(a.hb&2048||!(a.hb&512))a.hc=Vc;1024==(a.hb&3072)&&(a.Fc==Rc&&(a.Fc=Tc),a.hc==Uc&&(a.hc=Wc),a.zi=!0)}a.Va=a.ta&3;a.pc=(a.hb&24576)>>13;80386>a.U.Ba||!(a.si&64)?(a.yc=2,a.fa=65535):(a.yc=4,a.fa=-1)}else a.load=Jc,a.Tk=Nc,a.Fc=Pc,a.hc=Qc,a.$b=65535,a.Va=a.pc=0,a.Ld=q,a.yc=2,a.fa=65535;a.Mg=a.yc;a.ha=a.fa}
function cd(a){this.Ba=a.model||8088;var b=0;switch(this.Ba){default:case 8088:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}lc.call(this,a,b);this.ck=61442;this.Dg=Dc;this.Cg=4;this.Bf=255;this.B=80286<=this.Ba?dd:ed;this.Qa=hd.slice();this.Bm=id.slice();this.Cm=jd.slice();this.fk=kd;80186<=this.Ba&&(this.Bf=31,this.Qa[15]=ld,this.Qa[96]=md,this.Qa[97]=nd,this.Qa[98]=od,this.Qa[99]=ld,this.Qa[100]=ld,this.Qa[101]=ld,this.Qa[102]=ld,this.Qa[103]=ld,this.Qa[104]=pd,this.Qa[105]=qd,this.Qa[106]=
rd,this.Qa[107]=sd,this.Qa[108]=td,this.Qa[109]=ud,this.Qa[110]=vd,this.Qa[111]=wd,this.Qa[192]=xd,this.Qa[193]=yd,this.Qa[200]=zd,this.Qa[201]=Ad,this.Qa[241]=Bd,this.Bm[7]=Cd,this.Cm[7]=Cd,80286<=this.Ba&&(this.ck=2,this.Dg|=28672,this.Cg=0,this.Qa[15]=Dd,this.Qa[99]=Ed,this.Qa[84]=Fd));this.Fg=[];this.ek=[];this.hd=this.Xg=0;this.ea.Xf=this.ea.Um=!1;this.sk=0;this.ra=[];this.tb=this.jb=this.Oa=this.td=0;Gd(this)}Ma(lc,cd);
var ed={Jj:4,R:5,oa:6,Y:7,Z:8,M:9,N:11,O:12,Me:4,al:60,bl:83,Qb:3,qb:9,ic:16,Bh:1,fl:19,hl:28,jl:16,il:21,gl:37,dl:2,cj:9,el:5,cl:33,ej:10,dj:8,ng:3,mg:15,xl:51,yl:1,zl:2,Al:4,wl:32,fj:15,Cl:15,Rb:16,Sb:4,El:11,Dl:18,Bl:24,Ab:4,Fl:2,gj:16,Gl:17,lj:18,Hl:19,kj:5,mj:6,Ml:2,Ll:8,Jl:9,Kl:10,Il:10,nj:10,oj:10,ll:80,nl:144,kl:86,ml:154,pl:101,rl:165,ol:107,ql:171,Ol:70,Ql:113,Nl:76,Pl:124,tl:80,vl:128,sl:86,ul:134,pg:3,og:16,tj:10,sj:8,Rl:51,jc:8,Sl:17,Tl:36,rc:11,Ul:16,qg:10,ee:2,$i:18,aj:7,bj:15,hj:12,
@ -397,8 +397,8 @@ Df,Ef,Ff,Gf,Hf,function(){this.Qc[this.W()].call(this,Oe,this.K);this.A-=0>this.
Xe)},function(){this.sb[this.W()].call(this,Xe)},function(){var a=this.W();switch((a&56)>>3){case 0:this.Db=this.Na.ta;break;case 1:this.Db=this.na.ta;break;case 2:this.Db=this.sa.ta;break;case 3:this.Db=this.eb.ta;break;default:S.call(this);return}this.Q|=1;this.Bc[a].call(this,Ye)},function(){this.Q|=1;this.fb=this.Nc=this.pm;this.sb[this.W()].call(this,df)},function(){var a,b=this.W(),c=(b&56)>>3;switch(c){case 0:a=this.G;break;case 2:a=this.J;break;case 3:a=this.C;break;default:if(80286<=this.Ba){ld.call(this);
return}switch(c){case 1:a=this.I;break;case 4:a=w(this);break;case 5:a=this.H;break;case 6:a=this.F;break;case 7:a=this.D}}this.sb[b].call(this,Xe);switch(c){case 0:Td(this,this.G);this.G=a;break;case 1:Rd(this,this.I);this.I=a;break;case 2:$c(this,this.J);this.J=a;break;case 3:Sd(this,this.C);this.C=a;break;case 4:Td(this,w(this));y(this,a);break;case 5:Rd(this,this.H);this.H=a;break;case 6:$c(this,this.F);this.F=a;break;case 7:Sd(this,this.D),this.D=a}},function(){this.Q|=1;this.Qc[this.W()].call(this,
Pe,this.Ea)},function(){this.A-=3},function(){var a=this.G;this.G=this.I;this.I=a;this.A-=3},function(){var a=this.G;this.G=this.J;this.J=a;this.A-=3},function(){var a=this.G;this.G=this.C;this.C=a;this.A-=3},function(){var a=this.G;this.G=w(this);y(this,a);this.A-=3},function(){var a=this.G;this.G=this.H;this.H=a;this.A-=3},function(){var a=this.G;this.G=this.F;this.F=a;this.A-=3},function(){var a=this.G;this.G=this.D;this.D=a;this.A-=3},function(){this.G=2==this.yc?this.G&-65536|this.G<<24>>24&
65535:this.G<<16>>16;this.A-=2},function(){this.J=2==this.yc?this.J&-65536|(this.G&32768?65535:0):this.G&2147483648?4294967295:0;this.A-=this.B.el},function(){We.call(this,this.K(),this.K());this.A-=this.B.hl},function(){this.cc("WAIT not implemented",1);this.A--},function(){z(this,pb(this));this.A-=this.B.rc},function(){Yc(this,this.Ea());this.A-=this.B.jc},function(){var a=this.G>>8;a&yb?de(this):$d(this);a&xb?Vd(this)||(this.V^=1):Vd(this)&&(this.V^=1);a&wb?ee(this):ae(this);a&vb?fe(this):be(this);
a&ub?ge(this):Yd(this)&&(this.V^=this.T>>1|this.T>>2,this.da^=32896);this.A-=this.B.Ab},function(){this.G=this.G&255|(pb(this)&Fc)<<8;this.A-=this.B.Ab},function(){var a=this.G&-256,b;b=this.K();b=this.qc(this.fb.Fc(b,0));this.G=a|b;this.A-=this.B.nj},function(){this.G=this.G&~this.fa|bd(this,this.fb,this.K());this.A-=this.B.nj},function(){var a=this.K(),b=this.G;this.Se(this.fb.hc(a,0),b);this.A-=this.B.oj},function(){var a=this.K(),b=this.G;this.Ga(this.fb.hc(a,1),b);this.A-=this.B.oj},function(){var a=
65535:this.G<<16>>16;this.A-=2},function(){this.J=2==this.yc?this.J&-65536|(this.G&32768?65535:0):this.G&-2147483648?-1:0;this.A-=this.B.el},function(){We.call(this,this.K(),this.K());this.A-=this.B.hl},function(){this.cc("WAIT not implemented",1);this.A--},function(){z(this,pb(this));this.A-=this.B.rc},function(){Yc(this,this.Ea());this.A-=this.B.jc},function(){var a=this.G>>8;a&yb?de(this):$d(this);a&xb?Vd(this)||(this.V^=1):Vd(this)&&(this.V^=1);a&wb?ee(this):ae(this);a&vb?fe(this):be(this);a&
ub?ge(this):Yd(this)&&(this.V^=this.T>>1|this.T>>2,this.da^=32896);this.A-=this.B.Ab},function(){this.G=this.G&255|(pb(this)&Fc)<<8;this.A-=this.B.Ab},function(){var a=this.G&-256,b;b=this.K();b=this.qc(this.fb.Fc(b,0));this.G=a|b;this.A-=this.B.nj},function(){this.G=this.G&~this.fa|bd(this,this.fb,this.K());this.A-=this.B.nj},function(){var a=this.K(),b=this.G;this.Se(this.fb.hc(a,0),b);this.A-=this.B.oj},function(){var a=this.K(),b=this.G;this.Ga(this.fb.hc(a,1),b);this.A-=this.B.oj},function(){var a=
1,b=0,c=this.B.pj;this.xa&192&&(a=this.I,b=1,c=this.B.rj,this.xa&256||(this.A-=this.B.qj));if(a--){var d=this.za&rb?-1:1,e=this.qc(this.fb.Fc(this.F,0));this.Se(this.Na.hc(this.D&this.ha,0),e);this.F=this.F&~this.ha|this.F+d&this.ha;this.D=this.D&~this.ha|this.D+d&this.ha;this.A-=c;this.I-=b;a&&(this.la=this.Bb,this.Q|=256)}},function(){var a=1,b=0,c=this.B.pj;this.xa&192&&(a=this.I,b=1,c=this.B.rj,this.xa&256||(this.A-=this.B.qj));if(a--){var d=this.za&rb?-2:2,e=bd(this,this.fb,this.F);this.Ga(this.Na.hc(this.D&
this.ha,1),e);this.F=this.F&~this.ha|this.F+d&this.ha;this.D=this.D&~this.ha|this.D+d&this.ha;this.A-=c;this.I-=b;a&&(this.la=this.Bb,this.Q|=256)}},function(){var a=1,b=0,c=this.B.$i;this.xa&192&&(a=this.I,b=1,c=this.B.bj,this.xa&256||(this.A-=this.B.aj));if(a--){var d=this.za&rb?-1:1,e=ie(this,this.fb,this.F&this.ha),f=me(this,this.Na,this.D&this.ha);ye.call(this,e,f);this.F=this.F&~this.ha|this.F+d&this.ha;this.D=this.D&~this.ha|this.D+d&this.ha;this.A-=c-this.B.qb;this.I-=b;a&&Xd(this)==(this.xa&
64)&&(this.la=this.Bb,this.Q|=256)}},function(){var a=1,b=0,c=this.B.$i;this.xa&192&&(a=this.I,b=1,c=this.B.bj,this.xa&256||(this.A-=this.B.aj));if(a--){var d=this.za&rb?-2:2,e=je(this,this.fb,this.F&this.ha),f=ne(this,this.Na,this.D&this.ha);Ge.call(this,e,f);this.F=this.F&~this.ha|this.F+d&this.ha;this.D=this.D&~this.ha|this.D+d&this.ha;this.A-=c-this.B.qb;this.I-=b;a&&Xd(this)==(this.xa&64)&&(this.la=this.Bb,this.Q|=256)}},function(){this.P=this.V=this.da=this.G&this.W();this.T=256;this.A-=this.B.Me},
@ -509,7 +509,7 @@ this.lb=b[19];this.Dh=b[20];this.ge=b[21];this.Ne=b[22];this.Qi=b[23];this.Ri=b[
function Qh(a,b){this.Fb(a,b&255);this.Fb(a+1,b>>8&255);this.Fb(a+2,b>>16&255);this.Fb(a+3,b>>>24)}var Rh=[,,function(a){a+=this.offset;return(this.X.yb=this.ia[a])>>this.X.Ij&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.ia[b]>>8:this.ia[b])&255}];Rh[16]=function(a){a+=this.offset;a=this.ia[a];for(var b=this.X.Qi&this.X.Ri,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};
Rh[512]=function(a,b){var c=a+this.offset,d;d=this.ia[c]&~this.X.bb|(b|b<<8|b<<16|b<<24)&this.X.bb;d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};Rh[1024]=function(a,b){var c=a+this.offset;b=b>>this.X.kd|b<<8-this.X.kd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.X.ge|this.X.Ne;d=d&this.X.bb|this.ia[c]&~this.X.bb;d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};
Rh[1536]=function(a,b){var c=a+this.offset;b=b>>this.X.kd|b<<8-this.X.kd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.X.ge|this.X.Ne;d&=this.X.yb;d=d&this.X.bb|this.ia[c]&~this.X.bb;d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};Rh[2560]=function(a,b){var c=a+this.offset;b=b>>this.X.kd|b<<8-this.X.kd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.X.ge|this.X.Ne;d|=this.X.yb;d=d&this.X.bb|this.ia[c]&~this.X.bb;d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};
Rh[3584]=function(a,b){var c=a+this.offset;b=b>>this.X.kd|b<<8-this.X.kd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.X.ge|this.X.Ne;d^=this.X.yb;d=d&this.X.bb|this.ia[c]&~this.X.bb;d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};Rh[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.X.bb&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.ia[d]&~c;c=c&this.X.lb|this.X.yb&~this.X.lb;this.ia[d]!=c&&(this.ia[d]=c,this.Ha=!0)};
Rh[3584]=function(a,b){var c=a+this.offset;b=b>>this.X.kd|b<<8-this.X.kd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.X.ge|this.X.Ne;d^=this.X.yb;d=d&this.X.bb|this.ia[c]&~this.X.bb;d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};Rh[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.X.bb&(d==a?16711935:-16711936);c=(b|b<<8|b<<16|b<<24)&c|this.ia[d]&~c;c=c&this.X.lb|this.X.yb&~this.X.lb;this.ia[d]!=c&&(this.ia[d]=c,this.Ha=!0)};
Rh[4096]=function(a){a+=this.offset;var b=this.ia[a]&~this.X.bb|this.X.yb&this.X.bb;this.ia[a]!=b&&(this.ia[a]=b,this.Ha=!0)};Rh[8192]=function(a,b){var c=a+this.offset,d=Hh[b&15],d=d&this.X.bb|this.ia[c]&~this.X.bb,d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};Rh[24576]=function(a,b){var c=a+this.offset,d=Hh[b&15],d=d&this.X.yb,d=d&this.X.bb|this.ia[c]&~this.X.bb,d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};
Rh[40960]=function(a,b){var c=a+this.offset,d=Hh[b&15],d=d|this.X.yb,d=d&this.X.bb|this.ia[c]&~this.X.bb,d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};Rh[57344]=function(a,b){var c=a+this.offset,d=Hh[b&15],d=d^this.X.yb,d=d&this.X.bb|this.ia[c]&~this.X.bb,d=d&this.X.lb|this.X.yb&~this.X.lb;this.ia[c]!=d&&(this.ia[c]=d,this.Ha=!0)};
function Sh(a){var b=[];if(void 0!==a.qh){b[0]=a.Xc;b[1]=a.Ac;b[2]=a.Tf;b[3]=a.Bg;b[4]=a.Ic|a.ph<<8;b[5]=a.mc;if(5==a.qh){var c=[];c[0]=a.Wd;c[1]=a.Ie;c[2]=a.pe;c[3]=a.Wj;c[4]=a.th;c[5]=a.Fi;c[6]=a.wf;c[7]=a.Ig;c[8]=a.Hi;c[9]=a.Ii;c[10]=a.vf;c[11]=a.$e;c[12]=a.yb;c[13]=[a.Sa,a.Jb,a.Uc];var d;a:if(d=a.se){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var r=d[h],t=h+2;t<d.length&&d[t]===r;)t+=2;f[e++]=t-h>>1;f[e++]=r;h=t}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
@ -541,10 +541,10 @@ e.fillStyle=h.Ze[d],e.fillRect(b,c+f,h.nc,g)):(a.Ud&&a.Ud!==a.xd&&(f=Math.floor(
function tc(a,b){if(a.ea.Zb){var c=!1;a.Da&&(a.Da===a.ga?a.ga.Ie&32&&(c=!0):a.Da.Ac&8&&(c=!0));if(c||b){if(b)li(a,!0);else if(void 0===a.fc)return;var d=!1;!(b||++a.Fm&15)&&0<=a.ye&&(a.ye++,d=!0);var e=0,f=a.Xk,c=a.Da.Sa,g=c+a.Da.Jb,h=(a.Da.mc[12]<<8)+a.Da.mc[13];a.Pb&&(h<<=1);var c=c+h,r=a.ii;c+r>g&&(r=g-c,0>r&&(r=0));g=c+r;if(h=!b){for(var h=a.ka,t=!0,B=c>>h.jb;0<r&&B<h.ra.length;)h.ra[B].Ha&&(h.ra[B].Ha=t=!1,h.ra[B].Ak=!0),r-=h.Xb,B++;h=t}if(h){if(!d)return;if(!a.xe){if(0>a.Jc)return;e=a.Jc;f=
e+1}}if(a.Pb){if(a.Kd[a.Pb]){d=0;h=a.xe=0;r=1048575;a.Da.Ac&32&&(h=32768,r&=~h,a.ye&2||(r&=-65537));for(c+=e<<1;c<g&&e<f;)t=Gb(a.ka,c),t|=65536,t&h&&(a.xe++,t&=r),e==a.Jc&&(t|=a.ye&1?131072:0),B=a.fc[e],B!=t&&(ji(a,e%a.zb,Math.floor(e/a.zb),t,a.kf),a.fc[e]=t,d++),c+=2,e++;d&&a.kf&&a.Wc.drawImage(a.hf,0,0,a.Vf,a.Wf,a.Zj,a.$j,a.oi,a.pi);hi(a)}}else if(a.uk){for(var f=g,I,H,e=c,g=a.xe=0,d=a.Pi,h=16==d?65536:196608,r=16==d?1:2,t=di(a,r),L=B=0,U=a.zb,ba=0,fa=a.sc,Ca=0;e<f;){I=Gb(a.ka,e);H=a.fc[g];if(H===
I)B+=d;else{a.fc[g]=I;I=I>>8|(I&255)<<8;H=h;var Na=16;B<U&&(U=B);for(var lb=0;lb<d;lb++){var oc=(I&(H>>=r))>>(Na-=r);gi(a.rh,B++,L,t[oc])}B>ba&&(ba=B);L<fa&&(fa=L);L>=Ca&&(Ca=L+1)}e+=2;g++;if(B>=a.zb){B=0;L+=2;if(L>a.sc)break;L==a.sc&&(L=1,e=c+a.uk)}}U<a.zb&&(a.kf.putImageData(a.rh,0,0,U,fa,ba-U,Ca-fa),a.Wc.drawImage(a.hf,0,0,a.zb,a.sc,0,0,a.vd,a.Vd))}else{f=g;e=a.xe=0;g=di(a);d=a.Da.se;r=h=0;t=a.zb;B=0;L=a.sc;for(U=0;c<f;){ba=c++-a.Sa;ba=d[ba];fa=a.fc[e];if(fa===ba)h+=8;else{a.fc[e]=ba;h<t&&(t=h);
for(fa=0;8>fa;fa++)Ca=Ih[ba&2155905152]||0,gi(a.rh,h++,r,g[Ca]),ba<<=1;h>B&&(B=h);r<L&&(L=r);r>=U&&(U=r+1)}e++;if(h>=a.zb&&(h=0,++r>a.sc))break}t<a.zb&&(a.kf.putImageData(a.rh,0,0,t,L,B-t,U-L),a.Wc.drawImage(a.hf,0,0,a.zb,a.sc,0,0,a.vd,a.Vd))}}}}k.Kn=function(){return this.Tc.Ic};k.Xo=function(a,b){var c=this.Tc;c.ph=c.Ic;c.Ic=b&31};k.Jn=function(){return mi(this.Tc)};k.Wo=function(a,b){ni(this,this.Tc,b)};k.Ln=function(){return this.Tc.Ac};k.Yo=function(a,b){this.Tc.Ac=b;bi(this,!1)};
for(fa=0;8>fa;fa++)Ca=Ih[ba&-2139062144]||0,gi(a.rh,h++,r,g[Ca]),ba<<=1;h>B&&(B=h);r<L&&(L=r);r>=U&&(U=r+1)}e++;if(h>=a.zb&&(h=0,++r>a.sc))break}t<a.zb&&(a.kf.putImageData(a.rh,0,0,t,L,B-t,U-L),a.Wc.drawImage(a.hf,0,0,a.zb,a.sc,0,0,a.vd,a.Vd))}}}}k.Kn=function(){return this.Tc.Ic};k.Xo=function(a,b){var c=this.Tc;c.ph=c.Ic;c.Ic=b&31};k.Jn=function(){return mi(this.Tc)};k.Wo=function(a,b){ni(this,this.Tc,b)};k.Ln=function(){return this.Tc.Ac};k.Yo=function(a,b){this.Tc.Ac=b;bi(this,!1)};
k.Mn=function(){return oi(this,this.Tc)};k.cm=function(a,b){this.ga.Fi=this.ga.Fi&-4|b&3};k.Sk=function(){var a=this.ga.Wd?this.ga.pe[this.ga.Ie&31]:this.ga.Ie;this.ga.Wd=!this.ga.Wd;return a};k.bm=function(a,b){var c=this.ga.Ie&32;if(this.ga.Wd){var d=this.ga.Ie&31;if(16<=d||!c)this.ga.pe[d]=b;this.ga.Wd=!1}else this.ga.Ie=b,this.ga.Wd=!0,b&32&&!c&&$h(this)&&tc(this,!0)};k.Wn=function(){var a=3-((this.ga.th&12)>>2),a=this.ga.Wj&-17|(this.Og&1<<a)<<4-a;return this.ga.Wj=a};
k.$o=function(a,b){this.ga.th=b;Zh(this)};k.Vn=function(){return this.ga.wf};k.gp=function(a,b){this.ga.wf=b};k.Un=function(){return this.ga.Ig[this.ga.wf]};k.fp=function(a,b){this.ga.Ig[this.ga.wf]=b;2==this.ga.wf&&(this.ga.bb=Hh[b&15])};k.Cn=function(){return this.ga.Hi};k.Ro=function(a,b){this.ga.Hi=b};k.Dn=function(){return this.ga.Ii};k.So=function(a,b){this.ga.Ii=b};k.Bn=function(){return this.ga.vf};k.Qo=function(a,b){this.ga.vf=b};k.An=function(){return this.ga.$e[this.ga.vf]};
k.Po=function(a,b){this.ga.$e[this.ga.vf]=b;switch(this.ga.vf){case 0:this.ga.Dh=Hh[b&15];this.ga.Ne=this.ga.Dh&~this.ga.ge;break;case 1:this.ga.ge=~Hh[b&15];this.ga.Ne=this.ga.Dh&~this.ga.ge;break;case 2:this.ga.Qi=Hh[b&15]&2155905152;break;case 3:case 5:this.le(ki(this));break;case 4:this.ga.Ij=(b&3)<<3;break;case 6:bi(this,!1);break;case 7:this.ga.Ri=Hh[b&15^15]&2155905152;break;case 8:this.ga.lb=b|b<<8|b<<16|b<<24}};k.sn=function(){return this.gc.Ic};
k.Po=function(a,b){this.ga.$e[this.ga.vf]=b;switch(this.ga.vf){case 0:this.ga.Dh=Hh[b&15];this.ga.Ne=this.ga.Dh&~this.ga.ge;break;case 1:this.ga.ge=~Hh[b&15];this.ga.Ne=this.ga.Dh&~this.ga.ge;break;case 2:this.ga.Qi=Hh[b&15]&-2139062144;break;case 3:case 5:this.le(ki(this));break;case 4:this.ga.Ij=(b&3)<<3;break;case 6:bi(this,!1);break;case 7:this.ga.Ri=Hh[b&15^15]&-2139062144;break;case 8:this.ga.lb=b|b<<8|b<<16|b<<24}};k.sn=function(){return this.gc.Ic};
k.Go=function(a,b){var c=this.gc;c.ph=c.Ic;c.Ic=b&31};k.rn=function(){return mi(this.gc)};k.Fo=function(a,b){ni(this,this.gc,b)};k.tn=function(){return this.gc.Ac};k.Ho=function(a,b){this.gc.Ac=b;bi(this,!1)};k.qn=function(){return this.gc.Tf};k.Eo=function(a,b){this.gc.Tf!==b&&(this.gc.Tf=b,li(this,!1))};k.un=function(){return oi(this,this.gc)};function mi(a){var b;a.Ic<a.Oi&&(b=a.mc[a.Ic]);return b}function ni(a,b,c){b.Ic<b.Oi&&(b.mc[b.Ic]=c,9==b.Ic&&8!=b.ph&&bi(a,!0),ci(a))}
function oi(a,b){var c=0,d=zc(a.U),e=d-b.Zi;0>e&&(e=0);e%b.Si>b.jo&&(c|=1);e%=b.$k;e>b.lo&&(c|=8);b.Zi=d-e;b===a.ga?(c|=b.Bg&48^48,b.Wd=!1):c=(b.Bg^=9)|240;return b.Bg=c}
var Th={948:Y.prototype.Kn,949:Y.prototype.Jn,952:Y.prototype.Ln,954:Y.prototype.Mn,980:Y.prototype.sn,981:Y.prototype.rn,984:Y.prototype.tn,985:Y.prototype.qn,986:Y.prototype.un},Uh={948:Y.prototype.Xo,949:Y.prototype.Wo,952:Y.prototype.Yo,980:Y.prototype.Go,981:Y.prototype.Fo,984:Y.prototype.Ho,985:Y.prototype.Eo},Vh={960:Y.prototype.Sk,961:Y.prototype.Sk,962:Y.prototype.Wn,964:Y.prototype.Vn,965:Y.prototype.Un,970:Y.prototype.Dn,972:Y.prototype.Cn,974:Y.prototype.Bn,975:Y.prototype.An},Wh={954:Y.prototype.cm,
@ -568,11 +568,11 @@ function zi(a,b,c){n.call(this,"Disk",{id:a.Qk+".disk"+ ++Ai},zi);this.X=a;this.
k.ac=function(a,b){if(this.yd){var c,d=0;if(this.Ei&&!qa("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=Bi(this,!1);)if(d=c[0]){this.X.va('Unable to save "'+this.nd+'" (error '+d+")");break}b&&this.yd&&(c="action=close&volume="+this.Qe,c+="&machine="+this.X.sf(),c+="&user="+this.X.Yd(),oa(pa()+"/api/v1/disk?"+c,!0),this.yd=!1);!d&&a&&this.X.va(this.nd+" saved")}return!0};
k.create=function(a,b,c,d,e){this.mode=a;this.nb=b;this.ob=c;this.rb=d;this.ab=e;this.Ra=[];if("preload"!=this.mode){a=Array(this.nb);for(b=0;b<a.length;b++){c=Array(this.ob);for(d=0;d<c.length;d++){e=Array(this.rb);for(var f=1;f<=e.length;f++)e[f-1]=Ci(null,b,d,f,this.ab,"local"==this.mode?0:null);c[d]=e}a[b]=c}this.Ra=a}this.nf=null};
k.load=function(a,b,c,d,e){var f=b;if(!this.He)if(this.nd=a,this.Qe=b,this.He=d,this.Km=e||this.X,c){var g=this,h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ca[c];if(d){g.nb=d[0];g.ob=d[1];g.rb=d[2];g.ab=512;b=g.ab>>2;var e=d=0,a=new DataView(a,0,c);g.Ra=Array(g.nb);for(c=0;c<g.Ra.length;c++)for(var f=g.Ra[c]=Array(g.ob),U=0;U<f.length;U++)for(var ba=f[U]=Array(g.rb),fa=0;fa<ba.length;fa++){for(var Ca=Ci(null,c,U,fa+1,g.ab,0),Na=Ca.data,lb=0;lb<b;lb++,e+=4)var oc=Na[lb]=
a.getInt32(e,!0),d=d+oc&4294967295;Ca.vc=b;ba[fa]=Ca}g.nf=d;b=g}else g.va("Unrecognized diskette format ("+c+" bytes)");g.He&&(g.He.call(g.X,g.La,b,g.nd,g.Qe),g.He=null)};h.readAsArrayBuffer(c)}else 0>b.indexOf("/api/v1/dump")&&(a=ia(b),"json"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=Di(this,b),this.kh=!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"):-1!==b.indexOf("/",b.length-
1)&&(c="dir"),f=pa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.qf?"":d)+"&format=json")),oa(f,!0,null,this,this.Om,b)};
a.getInt32(e,!0),d=d+oc&-1;Ca.vc=b;ba[fa]=Ca}g.nf=d;b=g}else g.va("Unrecognized diskette format ("+c+" bytes)");g.He&&(g.He.call(g.X,g.La,b,g.nd,g.Qe),g.He=null)};h.readAsArrayBuffer(c)}else 0>b.indexOf("/api/v1/dump")&&(a=ia(b),"json"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=Di(this,b),this.kh=!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"):-1!==b.indexOf("/",b.length-1)&&(c=
"dir"),f=pa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.qf?"":d)+"&format=json")),oa(f,!0,null,this,this.Om,b)};
k.Om=function(a,b,c,d){var e=null;this.rf=!1;var f=0>c&&this.ya&&!this.ya.ea.Zb;if(this.kh)c?this.X.va('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.yd=!0,e=this);else if(c)this.X.va('Unable to load disk "'+this.nd+'" (error '+c+")",f);else try{if(0<ha(a,!0).toLowerCase().indexOf("-readonly"))this.rf=!0;else{var g=b.indexOf("\n");0<g&&1024>g&&0<b.substring(0,g).indexOf("write-protected")&&(this.rf=!0)}var h;h="<"==b.substr(0,1)?["Missing disk image: "+this.nd]:0>b.indexOf("0x")&&
'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(h.length)if(1==h.length)m(h[0]);else{this.nb=h.length;this.ob=h[0].length;this.rb=h[0][0].length;var r=h[0][0][0];this.ab=r&&r.length||512;for(b=a=0;b<this.nb;b++)for(c=0;c<this.ob;c++)for(d=0;d<this.rb;d++)if(r=h[b][c][d]){var t=r.length;void 0===t&&(t=r.length=512);var t=t>>2,B=r.pattern;void 0===B&&(B=r.pattern=0);var I=r.data;if(void 0===I){var H=r.bytes;if(void 0!==H&&H.length){for(var f=
t<<2,L=H.length;L<f;L++)H[L]=B;this.fill(r,H,0)}else I=[],B=r.pattern=B|B<<8|B<<16|B<<24,r.data=I;delete r.bytes}Ci(r,b,c);for(f=0;f<I.length;f++)a=a+I[f]&4294967295}this.Ra=h;this.nf=a;e=this}else m("Empty disk image: "+this.nd)}catch(U){m("Disk image error: "+U.message)}this.He&&(this.He.call(this.Km,this.La,e,this.nd,this.Qe),this.He=null)};function Ci(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.bn=b;a.dn=c;a.Yc=a.vc=0;a.Ha=!1;return a}
t<<2,L=H.length;L<f;L++)H[L]=B;this.fill(r,H,0)}else I=[],B=r.pattern=B|B<<8|B<<16|B<<24,r.data=I;delete r.bytes}Ci(r,b,c);for(f=0;f<I.length;f++)a=a+I[f]&-1}this.Ra=h;this.nf=a;e=this}else m("Empty disk image: "+this.nd)}catch(U){m("Disk image error: "+U.message)}this.He&&(this.He.call(this.Km,this.La,e,this.nd,this.Qe),this.He=null)};function Ci(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.bn=b;a.dn=c;a.Yc=a.vc=0;a.Ha=!1;return a}
function Di(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.nb+":"+a.ob+":"+a.rb+":"+a.ab;c+="&machine="+a.X.sf();c+="&user="+a.X.Yd();return pa()+"/api/v1/disk?"+c}function Ei(a,b,c,d,e,f,g){if(a.yd){var h;h="action=read&volume="+a.Qe;h+="&chs="+a.nb+":"+a.ob+":"+a.rb+":"+a.ab;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.X.sf());h+="&user="+a.X.Yd();oa(pa()+"/api/v1/disk?"+h,f,null,a,a.Rm,[b,c,d,e,f,g])}else g&&g(-1,!1)}
k.Rm=function(a,b,c,d){var e=!1;a=d[0];var f=d[1],g=d[2],h=d[3];if(!c){b=JSON.parse(b);for(e=0;h--;){var r=this.seek(a,f,g,!0);if(!r)break;this.fill(r,b,e);e+=r.length;g++}e=d[4]}(d=d[5])&&d(c,e)};k.Sm=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.Ei=!1;if(0<=a&&a<this.Ra.length&&0<=b&&b<this.Ra[a].length)for(--e;0<f--&&0<=e&&e<this.Ra[a][b].length;e++){var g=this.Ra[a][b][e];c?Fi(this,g,!1):g.Ha||(g.Yc=g.vc=0)}d&&Gi(this)};
function Fi(a,b,c){b.Ha=!0;var d=a.qe.indexOf(b);0<=d&&(a.qe.splice(d,1),a.Eg.splice(d,1));a.qe.push(b);a.Eg.push(la());c&&Gi(a)}function Gi(a){if(a.qe.length){var b=a.Eg[0]+2E3;a.Fd&&a.Wk<b&&(clearTimeout(a.Fd),a.Fd=null);if(!a.Fd){var c=la(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.Fd=setTimeout(function(){Bi(a,!0)},b);a.Wk=c+b}}else a.Fd&&(clearTimeout(a.Fd),a.Fd=null)}
@ -603,7 +603,7 @@ k.xk=function(a,b,c,d,e){var f;a.Hc=!1;b&&(f=b.info(),b&&f[0]>a.nb||f[1]>a.ob)&&
function Pi(a,b,c){if(a=a.ma.listDisks){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=window.document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}function Li(a,b){if(0<=b&&b<a.wa.length){var c=a.wa[b],d=a.ma.listDisks,e=a.ma.listDrives;if(d&&e&&(e=parseInt(e.value,10),c=c.of?"?":c.Re,!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 Qi(a,b,c,d){var e=a.wa[b];e.pa&&(Ri(a,e.Re,e.pa),e.mm="",e.Re="",e.pa=null,e.of=!1,a.ie|=128,d||a.va("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Li(a,b))}function Ti(a,b,c,d){var e;for(e=0;e<a.tc.length;e++)if(a.tc[e][1]==c){d.restore(a.tc[e][2]);return}a.tc[e]=[b,c,[]]}function Ri(a,b,c){var d;for(d=0;d<a.tc.length;d++)if(a.tc[d][1]==b){a.tc[d][2]=c.save();break}}k.Oo=function(a,b){b&4?this.Df&4||this.Df&8&&this.ca&&Pg(this.ca,6):this.zd();this.Df=b};k.zn=function(){return this.qa};
k.xn=function(){var a=0;this.ub<this.cb&&(a=this.ec[this.ub]);this.Df&8&&this.ca&&Qg(this.ca,6);++this.ub>=this.cb&&(this.qa&=-81,this.ub=this.cb=0);return a};
k.No=function(a,b){this.cb<this.ec.length&&(this.ec[this.cb++]=b);var c=this.ec[0]&31;if(void 0!==Ki[c]&&this.cb>=Ki[c].ud){var d=!1;this.ub=0;var c=this.Ia(),e,f,g,h,r,t=c&31;switch(t){case 3:this.Ia(l.dq);this.Ia(l.Kp);this.Nb();break;case 4:f=this.Ia(l.Ef);this.$a=f&3;e=this.wa[this.$a];this.Nb();this.dc((e.Wa&4278190080)>>>24,l.gq);break;case 5:case 6:f=this.Ia(l.Ef);d=f>>2&1;this.$a=f&3;e=this.wa[this.$a];e.Ka=d;f=e.pb=this.Ia(l.ak);g=this.Ia(l.bk);h=e.Ya=this.Ia(l.dk);r=this.Ia(l.Uh);e.mb=128<<
k.No=function(a,b){this.cb<this.ec.length&&(this.ec[this.cb++]=b);var c=this.ec[0]&31;if(void 0!==Ki[c]&&this.cb>=Ki[c].ud){var d=!1;this.ub=0;var c=this.Ia(),e,f,g,h,r,t=c&31;switch(t){case 3:this.Ia(l.dq);this.Ia(l.Kp);this.Nb();break;case 4:f=this.Ia(l.Ef);this.$a=f&3;e=this.wa[this.$a];this.Nb();this.dc((e.Wa&-16777216)>>>24,l.gq);break;case 5:case 6:f=this.Ia(l.Ef);d=f>>2&1;this.$a=f&3;e=this.wa[this.$a];e.Ka=d;f=e.pb=this.Ia(l.ak);g=this.Ia(l.bk);h=e.Ya=this.Ia(l.dk);r=this.Ia(l.Uh);e.mb=128<<
r;e.Od=this.Ia(l.Fp);this.Ia(l.ym);this.Ia(l.Ep);6==t?(t=e,t.Wa=72,t.pa&&(t.Ja=null,t.Wa=0,this.ca&&(Jg(this.ca,2,this,"dmaRead",t),Fg(this.ca,2)))):(t=e,t.Wa=72,t.pa&&(t.pa.rf?t.Wa=576:(t.Ja=null,t.Wa=0,this.ca&&(Jg(this.ca,2,this,"dmaWrite",t),Fg(this.ca,2)))));Ui(this,e,c,d,f,g,h,r);d=!0;break;case 7:f=this.Ia(l.Ef);this.$a=f&3;e=this.wa[this.$a];e.pb=e.Md=0;e.Wa=268435488;this.Nb();d=!0;break;case 8:e=this.wa[this.$a];e.Ka=0;this.Nb();this.dc(e.$a|e.Ka<<2|e.Wa&255,l.Am);this.dc(e.pb,l.Tp);this.$a=
this.$a+1&3;break;case 10:f=this.Ia(l.Ef);d=f>>2&1;this.$a=f&3;e=this.wa[this.$a];f=e.pb;g=e.Ka=d;h=e.Ya=1;r=0;e.Wa=0;e.pa&&(e.Ja=e.pa.seek(e.pb,e.Ka,e.Ya))?r=e.Ja.length:e.Wa=72;Ui(this,e,c,d,f,g,h,r);d=!0;break;case 13:f=this.Ia(l.Ef);d=f>>2&1;this.$a=f&3;e=this.wa[this.$a];f=e.pb;g=e.Ka=d;h=1;r=this.Ia(l.Uh);e.mb=128<<r;e.Od=this.Ia(l.Zp);this.Ia(l.ym);e.mk=this.Ia(l.xm);t=e;t.Wa=72;t.pa&&(t.Ja=null,t.Wa=0,this.ca&&(t.jf=0,t.Cc=Array(4),t.bi=!0,t.Yg=0,Jg(this.ca,2,this,"dmaFormat",t),Fg(this.ca,
2),t.bi=!1));Ui(this,e,c,d,f,g,h,r);d=!0;break;case 15:f=this.Ia(l.Ef),this.$a=f&3,e=this.wa[this.$a],e.Ka=f>>2&1,f=this.Ia(l.Qp),e.pb+=f-e.Md,0>e.pb&&(e.pb=0),e.pb>=e.nb&&(e.pb=e.nb-1),e.Md=f,e.Wa=32,e.pb||(e.Wa|=268435456),this.Nb(),d=!0}0<this.cb&&(this.qa|=80);this.Df&8&&(!e||e.Wa&8||!d||this.ca&&Pg(this.ca,6))}};k.yn=function(){var a=this.ie;this.ie&=-129;return a};k.Mo=function(a,b){this.fm=b};
@ -641,21 +641,21 @@ Pd.prototype={constructor:Pd,set:function(a,b){try{this[this.id][a]=b}catch(c){}
a:JSON.stringify(a)},clear:function(a){jj(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(f){}b.splice(c,1);c=0}},cc:function(){}};function jj(a,b){a[a.id]={};b&&a.set("parms",b);a.Ai=!1}
function kj(a){var b=!0;if(sa()){var c=JSON.stringify(a[a.id]);ua(a.key,c)||(m("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}
function lj(a,b,c){n.call(this,"Computer",a,lj);this.ea.Zb=!1;this.bg=a.buswidth;this.Lc=mj;this.zg=null;this.lh=!1;this.url=b?b.url:null;this.tp=(Math.random()+.1).toString(36).substr(2,12);this.Mc=nj(this);if(this.U=Ra("CPU",this.id)){this.Za=Ra("Debugger",this.id);this.ka=new Ab({id:this.Qk+".bus",buswidth:this.bg},this.U,this.Za);var d,e=Pa(this.id);if((this.Dd=Ra("Panel",this.id))&&this.Dd.mi)for(b=0;b<e.length;b++)d=e[b],d.va=this.Dd.va,d.kc=this.Dd.kc,d.mi=this.Dd.mi;for(b=0;b<e.length;b++)d=
e[b],d.zc&&d.zc(this,this.ka,this.U,this.Za);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Oh=d:this.Lc=parseInt(d,10));var f;if(a=Ha&&Ha.state||(f=!0,a.state))b=this.om=a,f||(this.lh=!0,this.Lc=mj),this.Lc&&(this.Sh=new Pd(this,"1.17.1"),this.Sh.load()?b=null:delete this.Sh);!b&&this.Lc&&(f=null,this.Mc&&(f=pa()+"/api/v1/user?req=load&user="+this.Mc+"&state="+ij(this,"1.17.1")),b=f)&&(this.lh=!0);b?oa(b,!0,null,this,this.qo):p(this);c||oj(this,this.Hh)}else m("Unable to find CPU component")}
e[b],d.zc&&d.zc(this,this.ka,this.U,this.Za);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Oh=d:this.Lc=parseInt(d,10));var f;if(a=Ha&&Ha.state||(f=!0,a.state))b=this.om=a,f||(this.lh=!0,this.Lc=mj),this.Lc&&(this.Sh=new Pd(this,"1.17.2"),this.Sh.load()?b=null:delete this.Sh);!b&&this.Lc&&(f=null,this.Mc&&(f=pa()+"/api/v1/user?req=load&user="+this.Mc+"&state="+ij(this,"1.17.2")),b=f)&&(this.lh=!0);b?oa(b,!0,null,this,this.qo):p(this);c||oj(this,this.Hh)}else m("Unable to find CPU component")}
Ma(n,lj);var mj=0;k=lj.prototype;k.sf=function(){return this.tp};k.Yd=function(){return this.Mc?this.Mc:""};k.qo=function(a,b,c){c?(this.Oh=null,this.lh=!1,this.va("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):this.zg=b;p(this)};function oj(a,b,c){for(var d=Pa(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Wa(f)){Wa(f,function(){oj(a,b,c)});return}}b.call(a,c)}
function pj(a,b){var c=new Pd(a,"1.17.1","validate");if(c.load()&&c.parse()){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.va("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
k.Hh=function(a){void 0===a&&(a=this.Lc||(this.zg?1:mj));var b=!1,c=!1;this.Gk=!1;var d=this.Sh||new Pd(this,"1.17.1");if(-1==a)b=!0;else if(a>mj){if(d.load(this.zg)){this.Te=new Pd(this,"1.17.1","failsafe");this.Te.load()&&(qj(this,d),a=2,jj(this.Te));this.Te.set("timestamp",ma());kj(this.Te);var e=this.Lc&&!this.lh;if(1==a||qa("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==
function pj(a,b){var c=new Pd(a,"1.17.2","validate");if(c.load()&&c.parse()){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.va("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
k.Hh=function(a){void 0===a&&(a=this.Lc||(this.zg?1:mj));var b=!1,c=!1;this.Gk=!1;var d=this.Sh||new Pd(this,"1.17.2");if(-1==a)b=!0;else if(a>mj){if(d.load(this.zg)){this.Te=new Pd(this,"1.17.2","failsafe");this.Te.load()&&(qj(this,d),a=2,jj(this.Te));this.Te.set("timestamp",ma());kj(this.Te);var e=this.Lc&&!this.lh;if(1==a||qa("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==
f&&"no machine state"!=g?(this.va("Error: "+g),"unable to verify user"==g&&(ua("user",""),this.Mc=null)):this.kc(f+": "+g),jj(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&pj(this,c?d:null)}else 2==a&&d.clear()}else pj(this);delete this.zg;delete this.Sh}e=Pa(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.U&&(c=rj(this,g,d,b,c));b=[d,a,c];-1!=a?oj(this,this.yk,b):this.yk(b)};
function rj(a,b,c,d,e){if(!b.ea.Zb){b.ea.Zb=!0;if(b.bc){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.bc(f,d)&&f&&(m("Unable to restore state for "+b.type),a.om&&!a.zg?(c.clear(),a.Lc=mj,window&&window.location.reload()):a.Gk=!0,b.bc(null),e=!1)}if(!d&&b.vk)for(a=b.vk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.yk=function(a){var b=a[0],c=0>a[1];a=a[2];this.ea.Zb=!0;this.Ck||(this.kc("PCjs v1.17.1\nCopyright \u00a9 2012-2015 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Ck=!0);this.U&&(rj(this,this.U,b,c,a),rc(this.U));this.Gk&&(qj(this,b),b.clear());!c&&this.Te&&(this.Te.clear(),delete this.Te)};
function qj(a,b){if(qa("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.Yd(),d=b.toString(),e={app:"PCjs",ver:"1.17.1"};e.url=a.url;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",!0,e)}}
function sj(a,b,c){var d,e="none",f=new Pd(a,"1.17.1"),g=new Pd(a,"1.17.1","validate"),h=ma();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.17.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.U&&a.U.ac&&(c&&sc(a.U),d=a.U.ac(b,c),"object"===typeof d&&f.set(a.U.id,d),c&&(a.U.ea.Zb=!1,!1===d&&(e=null)));for(var h=Pa(a.id),r=0;r<h.length;r++){var t=h[r];t.ea.Zb&&(t.ac&&(d=t.ac(b,c),"object"===typeof d&&f.set(t.id,d)),c&&(t.ea.Zb=
k.yk=function(a){var b=a[0],c=0>a[1];a=a[2];this.ea.Zb=!0;this.Ck||(this.kc("PCjs v1.17.2\nCopyright \u00a9 2012-2015 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Ck=!0);this.U&&(rj(this,this.U,b,c,a),rc(this.U));this.Gk&&(qj(this,b),b.clear());!c&&this.Te&&(this.Te.clear(),delete this.Te)};
function qj(a,b){if(qa("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.Yd(),d=b.toString(),e={app:"PCjs",ver:"1.17.2"};e.url=a.url;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",!0,e)}}
function sj(a,b,c){var d,e="none",f=new Pd(a,"1.17.2"),g=new Pd(a,"1.17.2","validate"),h=ma();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.17.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.U&&a.U.ac&&(c&&sc(a.U),d=a.U.ac(b,c),"object"===typeof d&&f.set(a.U.id,d),c&&(a.U.ea.Zb=!1,!1===d&&(e=null)));for(var h=Pa(a.id),r=0;r<h.length;r++){var t=h[r];t.ea.Zb&&(t.ac&&(d=t.ac(b,c),"object"===typeof d&&f.set(t.id,d)),c&&(t.ea.Zb=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.Mc&&tj(a,a.Mc,f.toString()),kj(g)&&kj(f)||(e=null,d=h=!0)):a.Lc&&(d=!0,h=3==a.Lc),d&&f.clear(h)):e=f.toString());c&&(a.ea.Zb=!1);return e}k.reset=function(){this.ka&&this.ka.reset&&(this.cc("Resetting "+this.ka.type),this.ka.reset());for(var a=Pa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(this.cc("Resetting "+c.type),c.reset())}};
k.start=function(a,b){for(var c=Pa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=Pa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.Eb=function(a,b,c){var d=this;switch(b){case "save":return this.ma[b]=c,c.onclick=function(){var a=nj(d,!0);if(a){var b=!(!d.Lc||d.Oh),c=sj(d,b);b?tj(d,a,c):d.va("Resume disabled, machine state not saved")}},!0;case "reset":return this.ma[b]=c,c.onclick=function(){uc(d)},!0}return!1};
function nj(a,b){var c=a.Mc;c||(c=ta("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("To save machine states on the pcjs.org server, you need a user ID (email support@pcjs.org).\n\nOnce you have an ID, enter it below.","")),c&&((c=uj(a,c))||a.va("Your user ID has not been approved."))):b&&a.va("Browser local storage is not available"));return c}
function uj(a,b){a.Mc=null;var c=oa(pa()+"/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.Mc=c.data)}catch(e){m(e.message+" ("+d+")")}return a.Mc}
function tj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ij(a,"1.17.1");d.data=c;b=oa(pa()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.va("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.va(c),ua("user",""),a.Mc=null)}}
function tj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ij(a,"1.17.2");d.data=c;b=oa(pa()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.va("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.va(c),ua("user",""),a.Mc=null)}}
function uc(a){if(a.Lc&&!a.Oh){var b=qa("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sj(a,b,!0);!b&&a.om?window&&window.location.reload():(b||(a.Bi=!0),a.Hh(mj),a.Bi=!1)}else a.reset(),a.U&&rc(a.U)}function cb(a,b,c){a=Pa(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}
Aa(function(){for(var a=Ua(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Sa(c),c=Ua(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Sa(f),g=new lj(g,d,!0);Ta(g,f);oj(g,g.Hh)}});wa.show.push(function(){for(var a=Ua(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=Sa(a[b]);(c=Ra("Computer",c.id))&&c.Ck&&!c.ea.Zb&&c.Hh(-1)}});
wa.exit.push(function(){for(var a=Ua(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=Sa(a[b]);(c=Ra("Computer",c.id))&&c.ea.Zb&&sj(c,!(!c.Lc||c.Oh),!0)}});var vj=0;function wj(a,b,c,d,e,f){e("Loading "+a+"...");oa(a,!0,null,null,function(g,h,r){r?(h||(h="unable to load "+a+" ("+r+")"),f(h,null)):xj(h,a,b,c,d,e,f)})}
@ -663,6 +663,6 @@ function xj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){var h=b;h&&
null,a=I.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?yj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function yj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");oa(e,!0,null,null,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 r=h[0],t,B=/( [a-z]+=)(['"])(.*?)\2/g;t=B.exec(f);)r=0>r.indexOf(t[1])?r.replace(">",t[0]+">"):r.replace(new RegExp(t[1]+"(['\"])(.*?)\\1"),t[0]);h[0]!=r&&(g=g.replace(h[0],r))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);yj(a,b,c)}})}else c(a,null)}
function zj(a,b,c,d){function e(a){if(void 0===h){var b=g&&Ua(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ka(a))}function f(a){e("Error: "+a);r&&(--vj||Da(!0));r=!1}var g,h,r=!0;vj++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.17.1/components.xsl");var t=function(d,h){if(h){var r=function(d,r){if(r)if(r)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var t=h.transformNode(r);t?(g.outerHTML=t,--vj||Da(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
function zj(a,b,c,d){function e(a){if(void 0===h){var b=g&&Ua(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ka(a))}function f(a){e("Error: "+a);r&&(--vj||Da(!0));r=!1}var g,h,r=!0;vj++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.17.2/components.xsl");var t=function(d,h){if(h){var r=function(d,r){if(r)if(r)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var t=h.transformNode(r);t?(g.outerHTML=t,--vj||Da(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(t=new XSLTProcessor,t.importStylesheet(r),(t=t.transformToFragment(h,window.document))?g.parentNode?(g.parentNode.replaceChild(t,g),--vj||Da(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(d)};h?wj(c,null,null,!1,e,r):f("failed to load XML file: "+b)}else f(d)};"<"!=b.charAt(0)?wj(b,a,d,!0,e,t):xj(b,null,a,d,!1,e,t)}else f("missing machine element: "+
a)}catch(B){f(B.message)}return r}window.embedPC=function(a,b,c,d){Da(!1);return zj(a,b,c,d)};window.enableEvents=Da;window.sendEvent=Ea;})();