Disk updates (including COMPAQ MS-DOS 3.00)

This commit is contained in:
Jeff Parsons 2016-05-04 12:46:39 -07:00
commit 2b6dc0153f
14 changed files with 307 additions and 190 deletions

View file

@ -37,18 +37,18 @@ qj:25,nj:20,pj:28,Nj:13,Pj:21,Mj:16,Oj:24,sj:13,uj:21,rj:16,tj:24,Sf:2,Rf:7,Ph:5
Ab.prototype.toString=function(){this.B||(this.B="#"+r(this.A[0],2)+r(this.A[1],2)+r(this.A[2],2));return this.B};function Bb(a,b,c,d){this.x=a;this.y=b;this.ad=c;this.A=d}Bb.prototype.contains=function(a,b){return a>=this.x&&a<this.x+this.ad&&b>=this.y&&b<this.y+this.A};function Cb(a,b,c,d){void 0===d&&(d=b>=c>>2);d?(b=new Bb(a.x,a.y,a.ad,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new Bb(a.x,a.y,a.ad*b/c|0,a.A),a.x+=b.ad,a.ad-=b.ad);return b}m=zb.prototype;
m.Pb=function(a,b,c,d){return this.V&&this.V.Pb(a,b,c,d)||this.F&&this.F.Pb(a,b,c,d)||this.B&&this.B.Pb(a,b,c,d)||this.ha&&this.ha.Pb(a,b,c,d)?!0:this.parent.Pb.call(this,a,b,c,d)};m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;this.B=Eb(a,"Keyboard")};m.ic=function(a,b){b||Fb();return!0};m.hc=function(){return!0};m.je=function(a,b){a.button||(this.fa=b?0:-1,Gb(this,a,b))};m.Hf=function(a){Gb(this,a)};
function Gb(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.fa||(a.fa=Math.abs(a.L-d)>Math.abs(a.W-b)?1:2),1==a.fa?b=a.W:2==a.fa&&(d=a.L));a.L=d;a.W=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.A&&a.A.Pe)for(f=0;f<a.A.Pe.length;f++)if(e=a.A.Pe[f],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.A.Af[f],g=ta(Hb.$j,a.A.Rg[d.Qk]),f=g*a.ea.Sb,d=(g+d.Ud)*a.ea.Sb-1;0<b&&(f+=e.ad*(b-1)*a.ya);f+=c*a.ya;f|=0;
f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ca)){b=c;if(a.context&&a.ia&&a.ka){e=a.ia.width;a.ka.fillStyle="black";a.ka.fillRect(0,360,e,360);Ib(a,378,a.ia,a.ka);a.pa=a.Ea.width/24|0;if(null==b)Jb(a,"Mouse over memory to dump");else for(Jb(a,"0x"+r(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ea;var k=b++;h=h.sa[(k&h.Gb)>>>h.La].se(k&h.A,k);Jb(a,r(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}Jb(a,d,null,0,1)}a.context.drawImage(a.ia,0,360,e,360,a.rb,a.Db,a.Pa,a.cb)}a.Ca=
f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ca)){b=c;if(a.context&&a.ia&&a.ka){e=a.ia.width;a.ka.fillStyle="black";a.ka.fillRect(0,360,e,360);Ib(a,378,a.ia,a.ka);a.pa=a.Ea.width/24|0;if(null==b)Jb(a,"Mouse over memory to dump");else for(Jb(a,"0x"+r(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ea;var k=b++;h=h.sa[(k&h.Hb)>>>h.La].se(k&h.A,k);Jb(a,r(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}Jb(a,d,null,0,1)}a.context.drawImage(a.ia,0,360,e,360,a.rb,a.Db,a.Pa,a.cb)}a.Ca=
c}}}m.qd=function(){};function Kb(a,b,c,d){a.A.Af[a.A.Ai++]={Qk:b,Ud:c,type:d};return sa(Hb,b,c,0,d)}function Ib(a,b,c,d){var e,f=null.style.color,g=a.Oa=10;a.C=g;a.U=b;a.X=a.wa=18;e||(e=a.ua||a.wa+"px Monaco, Lucida Console, Courier New");a.ga=a.ua=e;c&&(a.Ea=c);d&&(a.N=d,a.Fa=f||"white")}
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,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 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.Hb=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.Hb=a.Db=this.Hb;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,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.F.la.Fb||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.Hb&-1048577|(b?1048576:0);if(c!=a.Hb&&(a.Hb=c,a.F)){var d=a.F;d.Hb=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 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.Hb)>>>this.La].jc(a&this.A,a)};
m.na=function(a){var b=a&this.A,c=(a&this.Hb)>>>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.Hb)>>>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.Hb)>>>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.Hb)>>>this.La].sc(a&this.A,b&255,a)};m.jb=function(a,b){var c=a&this.A,d=(a&this.Hb)>>>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.Hb)>>>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.Hb)>>>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;
@ -67,18 +67,18 @@ b,!0);this.Wa=!0},wa:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a
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 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;
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.Fb=!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)}
function Vc(a,b){if(a.la.Ye){var c=!1;a.Y.If=a.Y.If+a.Qi()|0;a.Y.kf-=b;0>=a.Y.kf&&(a.Y.kf+=a.Y.jf,c=!0);0<=a.Y.lf&&a.Y.lf<=Wc(a)&&(a.Y.jf=a.Y.lf=-1,Pc(a),a.Wb(),c=!0);c&&a.O(Wc(a)+" cycles: checksum="+r(a.Y.If))}}
m.Pb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.qa[b]=c;a=!0;break;case "run":this.qa[b]=c;c.onclick=function(){var a;if(a=d.V)if(a=d.V,a.la.cc)a=!0;else{var b=null,c,h=gb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.la.af);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.la.cc);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.la.af?"powered yet":"ready yet"+(b.sg?" (waiting for notification)":""))+".");a=!1}a&&(d.la.Ib?d.Wb(!0):d.Ke(!0))};
a=!0;break;case "speed":this.qa[b]=c;a=!0;break;case "setSpeed":this.qa[b]=c,c.onclick=function(){Xc(d,d.Y.Yd<<1,!0)},c.textContent=this.Y.Fe.toFixed(2)+"Mhz",a=!0}return a};function Yc(a,b){if(a.la.Ib){var c=a.A-b;a.A-=c;a.fb-=c}}function Zc(a,b,c){a.uc+=b;c&&(a.fb=a.A=0)}
m.Pb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.qa[b]=c;a=!0;break;case "run":this.qa[b]=c;c.onclick=function(){var a;if(a=d.V)if(a=d.V,a.la.cc)a=!0;else{var b=null,c,h=gb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.la.af);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.la.cc);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.la.af?"powered yet":"ready yet"+(b.sg?" (waiting for notification)":""))+".");a=!1}a&&(d.la.Fb?d.Wb(!0):d.Ke(!0))};
a=!0;break;case "speed":this.qa[b]=c;a=!0;break;case "setSpeed":this.qa[b]=c,c.onclick=function(){Xc(d,d.Y.Yd<<1,!0)},c.textContent=this.Y.Fe.toFixed(2)+"Mhz",a=!0}return a};function Yc(a,b){if(a.la.Fb){var c=a.A-b;a.A-=c;a.fb-=c}}function Zc(a,b,c){a.uc+=b;c&&(a.fb=a.A=0)}
function $c(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.Y.Yd&&a.Y.pe&&(d=a.Y.pe/a.Y.ug);a.Y.Xi=Math.round(1E3/30);a.Y.km=Math.floor(a.Y.Jd/c*d);a.Y.rh=Math.floor(a.Y.Jd/30*d);a.Y.Zi=Math.floor(a.Y.Jd/60*d);a.Y.Yi=Math.floor(a.Y.Jd/2*d);b||(a.Y.mf=a.Y.rh,a.Y.Lf=a.Y.Zi,a.Y.Kf=a.Y.Yi);a.Y.sh=0}function Wc(a,b){var c=a.uc+a.Ub+a.fb-a.A;b&&1<a.Y.Yd&&a.Y.pe>a.Y.ug&&(c=Math.round(c/a.Y.Yd));return c}function Oc(a){a.Y.pe=0;a.uc=a.Ub=a.fb=a.A=0;Pc(a);Xc(a,1)}
function Xc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y.pe/a.Y.Fe?b=1:d=!0;a.Y.Yd=b;b=a.Y.ug*a.Y.Yd;if(a.Y.Fe!=b){a.Y.Fe=b;b=a.Y.Fe.toFixed(2)+"Mhz";var e=a.qa.setSpeed;e&&(e.textContent=b);a.O("target speed: "+b)}c&&a.V&&a.V.yd()}Zc(a,a.Ub);a.Ub=0;a.Y.hf=pa();a.Y.Ge=0;$c(a);return d}
m.Ke=function(a){if(pb(this,!0)){if(!this.la.Ib){Xc(this);this.V&&this.V.start(this.Y.hf,Wc(this));this.la.Ib=!0;this.la.eh=!0;this.N&&this.N.start();var b=this.qa.run;b&&(b.textContent="Halt");this.V&&(this.V.qd(!0),a&&this.V.yd(!0))}this.Y.sh>=this.Y.Jd&&$c(this,!0);this.Y.Mf=0;this.Y.vg=pa();this.Y.Ge&&(a=this.Y.vg-this.Y.Ge,a>this.Y.Xi&&(this.Y.hf+=a,this.Y.hf>this.Y.vg&&(this.Y.hf=this.Y.vg)));try{do{var c=this.la.Ye?1:this.Y.km;if(this.N){ad(this.N);var d=this.N;a=c;var e=d.W[0];if(e.Be){var f=
m.Ke=function(a){if(pb(this,!0)){if(!this.la.Fb){Xc(this);this.V&&this.V.start(this.Y.hf,Wc(this));this.la.Fb=!0;this.la.eh=!0;this.N&&this.N.start();var b=this.qa.run;b&&(b.textContent="Halt");this.V&&(this.V.qd(!0),a&&this.V.yd(!0))}this.Y.sh>=this.Y.Jd&&$c(this,!0);this.Y.Mf=0;this.Y.vg=pa();this.Y.Ge&&(a=this.Y.vg-this.Y.Ge,a>this.Y.Xi&&(this.Y.hf+=a,this.Y.hf>this.Y.vg&&(this.Y.hf=this.Y.vg)));try{do{var c=this.la.Ye?1:this.Y.km;if(this.N){ad(this.N);var d=this.N;a=c;var e=d.W[0];if(e.Be){var f=
(Wc(d.F,d.ka)-e.xd)/d.gb|0,g=bd(d,0)-f;6==e.mode&&(g-=f);var h=g*d.gb|0;6==e.mode&&(h>>=1);a>h&&(a=h)}var c=a,k=this.N;a=c;if(k.A&&k.A[11]&64){var l=k.ua-Wc(k.F,k.ka);0<l&&a>l&&(a=l)}c=a}try{this.vf(c)}catch(q){if("number"!=typeof q)throw q;}var n=this.fb-this.A;this.Ub+=n;this.Y.Mf+=n;Zc(this,0,!0);Vc(this,n);this.Y.Lf-=n;0>=this.Y.Lf&&(this.Y.Lf+=this.Y.Zi,this.V&&cd(this.V));this.Y.Kf-=n;0>=this.Y.Kf&&(this.Y.Kf+=this.Y.Yi,this.V&&this.V.qd());this.Y.mf-=n;if(0>=this.Y.mf){this.Y.mf+=this.Y.rh;
break}}while(this.la.Ib)}catch(q){this.Wb();Qc(this);this.V&&this.V.stop(pa(),Wc(this));pb(this,!1);ub(this,q.stack||q.message);return}c=setTimeout;d=this.pi;this.Y.Ge=pa();e=this.Y.Xi;this.Y.Mf&&(e=Math.round(e*this.Y.Mf/this.Y.rh));e-=this.Y.Ge-this.Y.vg;if(f=this.Y.Ge-this.Y.hf)this.Y.pe=Math.round(this.Ub/(10*f))/100,864E5<=f&&(this.uc=0,this.N&&ad(this.N,!0),Xc(this));if(0>e||this.Y.pe<this.Y.Fe)e=0;this.Y.sh+=this.Y.Mf;this.Y.Ge+=e;c(d,e)}else Qc(this),this.V&&this.V.stop(pa(),Wc(this))};
m.vf=function(){return 0};m.Wb=function(a){qb(this,!0);this.fb-=this.A;this.A=0;Zc(this,this.Ub);this.Ub=0;if(this.la.Ib){this.la.Ib=!1;this.N&&this.N.stop();var b=this.qa.run;b&&(b.textContent="Run")}this.la.Wd=a};function Qc(a,b){a.V&&(cd(a.V,b),a.V.qd(b))}
break}}while(this.la.Fb)}catch(q){this.Wb();Qc(this);this.V&&this.V.stop(pa(),Wc(this));pb(this,!1);ub(this,q.stack||q.message);return}c=setTimeout;d=this.pi;this.Y.Ge=pa();e=this.Y.Xi;this.Y.Mf&&(e=Math.round(e*this.Y.Mf/this.Y.rh));e-=this.Y.Ge-this.Y.vg;if(f=this.Y.Ge-this.Y.hf)this.Y.pe=Math.round(this.Ub/(10*f))/100,864E5<=f&&(this.uc=0,this.N&&ad(this.N,!0),Xc(this));if(0>e||this.Y.pe<this.Y.Fe)e=0;this.Y.sh+=this.Y.Mf;this.Y.Ge+=e;c(d,e)}else Qc(this),this.V&&this.V.stop(pa(),Wc(this))};
m.vf=function(){return 0};m.Wb=function(a){qb(this,!0);this.fb-=this.A;this.A=0;Zc(this,this.Ub);this.Ub=0;if(this.la.Fb){this.la.Fb=!1;this.N&&this.N.stop();var b=this.qa.run;b&&(b.textContent="Run")}this.la.Wd=a};function Qc(a,b){a.V&&(cd(a.V,b),a.V.qd(b))}
function dd(a,b,c,d){this.F=a;this.ha=a.ha;this.id=b;this.lc=c||"";this.Z=0;this.Ta=65535;this.Zb=this.Ta+1;this.Lb=this.Gc=this.ext=this.wb=this.type=this.Aa=0;this.Xb=-1;this.ba=this.Oc=2;this.R=this.Ba=65535;this.V=this.lh;this.ea=this.Di;this.qa=this.Fi;this.A={Z:-1,Aa:0,Ta:0,wb:0,type:0,ext:0,Xb:-1};1==this.id&&(this.Xf=0,this.C=null,this.cf=!1,this.N=Array(32),this.B=[]);ed(this,!0,d)}function fd(a,b){a.B.push(b);return[a.B.length,1]}m=dd.prototype;
m.lh=function(a){this.Z=a&65535;return this.Aa=this.Z<<4};m.tg=function(a,b){var c,d,e=this.F;a&=65535;a&4?(c=e.Bc.Aa,d=c+e.Bc.Ta|0):(c=e.Ec,d=e.Ad);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,gd(this,c,a,b);6>this.id&&C.call(e,b&&3==this.id?10:13,a&65532)}return-1};m.gm=function(a){var b=this.F;a=b.Mc+(a<<2);var c=b.na(a);b.ca&=-769;return this.load(b.na(a+2))+c|0};
m.fm=function(a){var b=this.F;a<<=3;var c=b.Mc+a|0;if(7<=(b.Td-c|0))return this.C=!0,a=gd(this,c,a),-1!==a&&(a+=this.Xf),a;C.call(b,13,a|2);return-1};m.Di=function(a){return this.Aa+a|0};m.Fi=function(a){return this.Aa+a|0};m.Ci=function(a,b){return(a>>>0)+b<=this.Zb?this.Aa+a|0:this.og()};m.Ik=function(a,b){return(a>>>0)+b>this.Zb?this.Aa+a|0:this.og()};m.og=function(){C.call(this.F,13,0);return-1};m.Ei=function(a,b){return(a>>>0)+b<=this.Zb?this.Aa+a|0:this.pg()};
@ -96,10 +96,10 @@ function ed(a,b,c,d){void 0===c&&(c=!!(a.F.Za&1));a.cd=!1;if(c)if(a.load=a.tg,a.
(c=a.Xb+5,d=a.F.Qa(c),d&1||a.F.qc(c,d|1))}b&&(a.Lb=a.Z&3,a.Gc=(a.wb&24576)>>13,80386>a.F.ja||!(a.ext&64)?(a.ba=2,a.R=65535):(a.ba=4,a.R=-1),a.Oc=a.ba,a.Ba=a.R)}else a.load=a.lh,a.Wi=a.gm,a.nc=a.Di,a.oc=a.Fi,a.Lb=a.Gc=0,a.Xb=-1,a.cf=!1}
function Ad(a){this.ja=a.model||8088;var b=a.stepping;this.Uc=this.ja+(b?ca(b,16):0);b=0;switch(this.ja){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Lc.call(this,a,b);this.Yf=61442;this.Cc=1792;this.Wf=28672;this.Dd=4;this.ra=255;this.B=80286<=this.ja?xb:wb;this.X=Bd;this.bg=Cd;this.gg=Dd;this.hg=Ed;if(80186<=this.ja&&(this.X=Bd.slice(),this.bg=Cd.slice(),this.gg=Dd.slice(),this.ra=31,this.X[15]=Fd,this.X[96]=Gd,this.X[97]=Hd,this.X[98]=Id,this.X[99]=Fd,this.X[100]=Fd,this.X[101]=
Fd,this.X[102]=Fd,this.X[103]=Fd,this.X[104]=Jd,this.X[105]=Kd,this.X[106]=Ld,this.X[107]=Md,this.X[108]=Nd,this.X[109]=Od,this.X[110]=Pd,this.X[111]=Qd,this.X[192]=Rd,this.X[193]=Sd,this.X[200]=Td,this.X[201]=Ud,this.X[241]=Yd,this.bg[7]=Zd,this.gg[7]=Zd,80286<=this.ja)){this.Yf=2;this.Cc|=28672;this.Dd=0;this.X[15]=$d;this.tc=ae.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ge);this.X[84]=he;this.X[99]=ie;if(80386<=this.ja){var c;this.Wf=0;this.Cc|=196608;this.X[100]=je;this.X[101]=
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)}
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.Hb=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&&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 Fc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.ld[(a.Pd+e&a.Hb)>>>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.Hb)>>>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.Hb)>>>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&&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.Fb&&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)}
@ -108,7 +108,7 @@ 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.H
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!=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()};
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.Hb)||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)}
@ -127,9 +127,9 @@ function Jf(a,b,c){a.$b=b;a.Ca=c&a.Ba;a.D=b.nc(a.Ca,1);return a.S&1?0:a.Qa(a.D)}
function Nf(a,b){a.$b=a.Ka;a.Ca=b&a.Ba;a.D=a.$b.nc(a.Ca,4);return a.S&1?0:a.oa(a.D)}function Of(a,b){a.S&2||a.qc(a.$b.oc(a.Ca,1),b)}function Pf(a,b){a.S&2||a.jb(a.$b.oc(a.Ca,2),b)}function Qf(a,b){a.S&2||a.nb(a.$b.oc(a.Ca,4),b)}function nd(a,b,c){return a.tb(b.nc(c,a.ba))}m.xa=function(){var a=mf(this,1),b=this.Qa(this.Ga);this.Ga=a;return b};function Rf(a){var b=mf(a,2),c=a.na(a.Ga);a.Ga=b;return c}function T(a){var b=mf(a,a.Oc),c=a.dc(a.Ga);a.Ga=b;return c}
m.Ma=function(){var a=mf(this,this.ba),b=this.tb(this.Ga);this.Ga=a;return b};m.T=function(){var a=mf(this,1),b=this.Qa(this.Ga)<<24>>24;this.Ga=a;return b};function D(a){var b=a.tb(a.ga);a.ga=a.ga+a.ba|0;var c=a.Lg-a.ga|0;0>c&&0<=(a.Lg^a.ga)&&(8088>=a.ja||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?G(a,a.ga-a.ta.Aa&a.ta.Ba):-1>c&&C.call(a,12,0));return b}
function od(a,b,c,d){c=a.ga-c|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ja||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));switch(d){case 1:a.qc(c,b);break;case 2:a.jb(c,b);break;case 4:a.nb(c,b)}a.ga=c}function J(a,b){var c=a.ga-a.ba|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ja||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));a.rc(c,b);a.ga=c}
function Sf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ja)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.qa[b]&&(void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.Wb()),d=!a.la.Ib||a.la.Oi?r(c,d):"--------".substr(0,d),a.qa[b].textContent!=d&&(a.qa[b].textContent=d))}
m.qd=function(a){this.Pg&&(a||!this.la.Ib||this.la.Oi)&&(Sf(this,"EAX",this.G),Sf(this,"EBX",this.H),Sf(this,"ECX",this.I),Sf(this,"EDX",this.M),Sf(this,"ESP",I(this)),Sf(this,"EBP",this.P),Sf(this,"ESI",this.K),Sf(this,"EDI",this.J),Sf(this,"CS",this.va.Z),Sf(this,"DS",this.vb.Z),Sf(this,"SS",this.ta.Z),Sf(this,"ES",this.Xa.Z),Sf(this,"EIP",K(this)),a=wd(this),Sf(this,"PS",a),Sf(this,"V",a&2048),Sf(this,"D",a&1024),Sf(this,"I",a&512),Sf(this,"T",a&256),Sf(this,"S",a&128),Sf(this,"Z",a&64),Sf(this,
"A",a&16),Sf(this,"P",a&4),Sf(this,"C",a&1),80386==this.ja&&(Sf(this,"FS",this.Nb.Z),Sf(this,"GS",this.Ob.Z),Sf(this,"CR0",this.Za),Sf(this,"CR2",this.te),Sf(this,"CR3",this.Pd)));if(a=this.qa.speed)a.textContent=this.la.Ib&&this.Y.pe?this.Y.pe.toFixed(2)+"Mhz":"Stopped"};
function Sf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ja)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.qa[b]&&(void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.Wb()),d=!a.la.Fb||a.la.Oi?r(c,d):"--------".substr(0,d),a.qa[b].textContent!=d&&(a.qa[b].textContent=d))}
m.qd=function(a){this.Pg&&(a||!this.la.Fb||this.la.Oi)&&(Sf(this,"EAX",this.G),Sf(this,"EBX",this.H),Sf(this,"ECX",this.I),Sf(this,"EDX",this.M),Sf(this,"ESP",I(this)),Sf(this,"EBP",this.P),Sf(this,"ESI",this.K),Sf(this,"EDI",this.J),Sf(this,"CS",this.va.Z),Sf(this,"DS",this.vb.Z),Sf(this,"SS",this.ta.Z),Sf(this,"ES",this.Xa.Z),Sf(this,"EIP",K(this)),a=wd(this),Sf(this,"PS",a),Sf(this,"V",a&2048),Sf(this,"D",a&1024),Sf(this,"I",a&512),Sf(this,"T",a&256),Sf(this,"S",a&128),Sf(this,"Z",a&64),Sf(this,
"A",a&16),Sf(this,"P",a&4),Sf(this,"C",a&1),80386==this.ja&&(Sf(this,"FS",this.Nb.Z),Sf(this,"GS",this.Ob.Z),Sf(this,"CR0",this.Za),Sf(this,"CR2",this.te),Sf(this,"CR3",this.Pd)));if(a=this.qa.speed)a.textContent=this.la.Fb&&this.Y.pe?this.Y.pe.toFixed(2)+"Mhz":"Stopped"};
m.vf=function(a){this.la.Wd=!0;var b=this.la.Mi=this.ha&&Tf(this.ha),c=a?this.la.eh?0:1:-1;this.la.eh=!1;this.fb=this.A=a;this.N&&!a&&ad(this.N);a||A(this,1024)||(this.S|=4);do{var d=this.S&3312;if(d)this.Ha|=d;else if(this.re=this.Ga,this.ka=this.vb,this.Ka=this.ta,this.D=this.C=-1,this.Ha&3072&&Se(this),this.Ha=this.S&256,this.ua){a:{if(!(this.S&4))for(var d=80286>this.ja?0:1,e=0;2>e;e++){switch(d){case 0:if(this.ua&1&&this.ca&512){var f=Uf(this.N);if(-1<=f&&(this.ua&=-2,0<=f)){this.ua&=-5;Vf.call(this,
f);d=!0;break a}}break;case 1:if(this.ua&2){this.ua&=-3;80386<=this.ja&&(this.Ja[6]|=16384);Vf.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.O("interrupt dispatched");this.S=0;break}if(this.ua&4){this.S=this.A=0;break}}if(b){if(Wf(this.ha,this.Ga,c)){this.Wb();break}c=1}this.S=0;this.X[this.xa()].call(this)}while(0<this.A);return this.la.Wd?this.fb-this.A:void 0===this.la.Wd?0:-1};Qa(function(){for(var a=nb(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new Ad(d);mb(d,c)}});
function Xf(a){Ua.call(this,"FPU",a,Xf);this.ja=a.model||8087;(a=a.stepping)&&ca(a,16);this.V=new Float64Array(8);this.aa=new Int32Array(this.V.buffer);this.pa=new Float32Array(1);this.ua=new Int32Array(this.pa.buffer);this.X=new Float64Array(1);this.L=new Int32Array(this.X.buffer);this.ea=Array(3);this.fa=this.ga=-1;this.W=this.U=this.ia=this.A=0;this.ka=new Float64Array(1);this.ra=new Int32Array(this.ka.buffer);this.ra[0]=0;this.ra[1]=268402688;Yf(this)}db(Xf);m=Xf.prototype;
@ -188,7 +188,7 @@ 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
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&&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;}
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.Fb,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)}
function xe(a){var b,c;switch((this.L=this.xa())&199){case 0:c=Q(this,this.H+this.K);this.A-=this.B.ed;break;case 1:c=Q(this,this.H+this.J);this.A-=this.B.fd;break;case 2:c=Kf(this,this.P+this.K);this.A-=this.B.fd;break;case 3:c=Kf(this,this.P+this.J);this.A-=this.B.ed;break;case 4:c=Q(this,this.K);this.A-=this.B.Jc;break;case 5:c=Q(this,this.J);this.A-=this.B.Jc;break;case 6:c=Q(this,T(this));this.A-=this.B.Kd;break;case 7:c=Q(this,this.H);this.A-=this.B.Jc;break;case 64:c=Q(this,this.H+this.K+this.T());
this.A-=this.B.ec;break;case 65:c=Q(this,this.H+this.J+this.T());this.A-=this.B.fc;break;case 66:c=Kf(this,this.P+this.K+this.T());this.A-=this.B.fc;break;case 67:c=Kf(this,this.P+this.J+this.T());this.A-=this.B.ec;break;case 68:c=Q(this,this.K+this.T());this.A-=this.B.ib;break;case 69:c=Q(this,this.J+this.T());this.A-=this.B.ib;break;case 70:c=Kf(this,this.P+this.T());this.A-=this.B.ib;break;case 71:c=Q(this,this.H+this.T());this.A-=this.B.ib;break;case 128:c=Q(this,this.H+this.K+T(this));this.A-=
@ -413,7 +413,7 @@ m.qm=function(a,b,c){x(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.fa=b;this.N
m.Gm=function(a,b,c){x(this,a,b,c,"CMOS.ADDR",null,4096);this.pa=b;this.ya=b&128?0:128};m.ol=function(a,b){var c=this.pa&63,d=13>=c?Ok(this,c):this.A[c];A(this,4352)&&x(this,a,null,b,"CMOS.DATA["+t(c)+"]",d,!0);null!=b&&12==c&&(this.A[c]&=15,d&128&&dg(this,8),d&64&&this.A[11]&64&&Yk(this));return d};
m.Hm=function(a,b,c){var d=this.pa&63;A(this,4352)&&x(this,a,b,c,"CMOS.DATA["+t(d)+"]",null,!0);a=b^this.A[d];if(13>=d){if(c=b,10>d){var e=!1;this.A[11]&4||(c=10*(c>>4)+(c&15),e=!0);if(4==d||5==d)e&&23<c&&(c+=48),this.A[11]&2||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;11==d&&a&64&&b&64&&Yk(this)};m.fk=function(a,b,c){x(this,a,b,c,"NMI");this.ya=b};m.Rm=function(a,b,c){x(this,a,b,c,"FPU.CLEAR")};m.Sm=function(a,b,c){x(this,a,b,c,"FPU.RESET");this.Tb&&Yf(this.Tb)};
m.am=function(a){if(A(this,16)&&kk(this.ha,26,a)){var b=this.F.G>>8;Ue(this.F,a,function(a,d){return function(e){d=Wc(a.F)-d;var f,g=a.F.M&255,h=a.F.M>>8,k=a.F.M&255,l=a.F.M>>8;if(2==b||3==b)f=" CH(hour)="+u(h)+" CL(min)="+t(g)+" DH(sec)="+t(l);else if(4==b||5==b)f=" CX(year)="+u(a.F.I)+" DH(month)="+t(l)+" DL(day)="+t(k);g=a.ha;h=d;g.message("INT "+t(26)+": C="+(pf(g.F)?1:0)+(f||"")+" (cycles="+h+(e?",level="+(e+1):"")+")")}}(this,Wc(this.F)))}return!0};
function Zk(a,b){if(a.Fa)try{void 0!==b?a.Db=b:b=a.Db&&a.F&&a.F.la.Ib;var c=Math.round(1193181/Jl(a,2));if(20>c||2E4<c)b=!1;b?a.U?(a.U.frequency.value=c,A(a,33554432)&&y(a,"speaker set to "+c+"hz",!0)):(a.U=a.Fa.createOscillator(),a.U&&(a.U.type="number"==typeof a.U.type?1:"square",a.U.connect(a.Fa.destination),a.U.frequency.value=c,"start"in a.U?a.U.start(0):a.U.noteOn(0),A(a,33554432)&&y(a,"speaker on at "+c+"hz",!0))):a.U&&("stop"in a.U?a.U.stop(0):a.U.noteOff(0),a.U.disconnect(),delete a.U,A(a,
function Zk(a,b){if(a.Fa)try{void 0!==b?a.Db=b:b=a.Db&&a.F&&a.F.la.Fb;var c=Math.round(1193181/Jl(a,2));if(20>c||2E4<c)b=!1;b?a.U?(a.U.frequency.value=c,A(a,33554432)&&y(a,"speaker set to "+c+"hz",!0)):(a.U=a.Fa.createOscillator(),a.U&&(a.U.type="number"==typeof a.U.type?1:"square",a.U.connect(a.Fa.destination),a.U.frequency.value=c,"start"in a.U?a.U.start(0):a.U.noteOn(0),A(a,33554432)&&y(a,"speaker on at "+c+"hz",!0))):a.U&&("stop"in a.U?a.U.stop(0):a.U.noteOff(0),a.U.disconnect(),delete a.U,A(a,
33554432)&&y(a,"speaker off at "+c+"hz",!0))}catch(d){a.Na("AudioContext exception: "+d.message),a.Fa=null}else b&&y(a,"BEEP",33554432)}
var Ck={0:function(a,b){return jl(this,0,0,a,b)},1:function(a,b){return ll(this,0,0,a,b)},2:function(a,b){return jl(this,0,1,a,b)},3:function(a,b){return ll(this,0,1,a,b)},4:function(a,b){return jl(this,0,2,a,b)},5:function(a,b){return ll(this,0,2,a,b)},6:function(a,b){return jl(this,0,3,a,b)},7:function(a,b){return ll(this,0,3,a,b)},8:function(a,b){return nl(this,0,a,b)},13:function(a,b){return sl(this,0,a,b)},32:function(a,b){return Bl(this,0,b)},33:function(a,b){return El(this,0,b)},64:function(a,
b){return Gl(this,0,0,a,b)},65:function(a,b){return Gl(this,0,1,a,b)},66:function(a,b){return Gl(this,0,2,a,b)},67:function(a,b){return Kl(this,0,a,b)},129:function(a,b){return ul(this,0,2,a,b)},130:function(a,b){return ul(this,0,3,a,b)},131:function(a,b){return ul(this,0,1,a,b)},135:function(a,b){return ul(this,0,0,a,b)}},Ek={96:pk.prototype.Kl,97:pk.prototype.Ll,98:pk.prototype.Ml,99:pk.prototype.Nl},Ik={96:pk.prototype.Yk,97:pk.prototype.Zk,100:pk.prototype.$k,112:pk.prototype.nl,113:pk.prototype.ol,
@ -430,7 +430,7 @@ 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,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))?
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.Hb)>>>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&&($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")};
@ -454,8 +454,8 @@ function Nl(a){var b=0;a.A.length&&(b=a.A[0]);A(a)&&y(a,"scan code "+t(b)+" deli
m.reset=function(){if(!this.ja&&this.N)switch(this.N.ja){case 5150:case 5160:nm(this,om[0]);break;default:nm(this,om[1])}Bm(this);this.xc=this.C=0;this.A=[];this.U=!0;this.L=""};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.aa;c[b]=this.X;N(a,0,c);return a.data()};m.restore=function(a){return Bm(this,a[0])};function Bm(a,b){var c=0;void 0===b&&(b=[]);a.aa=a.U=b[c++];a.X=b[c];a.W=0;return!0}
function zm(a,b){if(0<a.L.length){var c=a.L.charCodeAt(0);10==c&&(c=13);a.L=a.L.substr(1);wm(a,c,!0)}0<a.L.length&&setTimeout(function(a){return function(){zm(a,b)}}(a),b)}
function xm(a,b,c,d){if(Y[b]){var e=Math.floor(b/1E3)&2;if(b=rm[b]||0){!e||b&85||(b>>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.xc)&b):d||b&255&&(b=255);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in um)d="led-"+g,e=um[g],c&&c!=e||!(f=a.qa[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.xc&=~b,d&&(a.xc|=b);return!0}}return!1}
function wm(a,b,c){if(Y[b]&&a.F&&a.F.la.Ib){rm[b]&&a.B.length&&0<a.B[0].Ld&&(a.B[0].Ld=0);for(var d,e=0;e<a.B.length;e++)if(d=a.B[e],d.Me==b){if(!c||0<=d.Ld){e=-1;break}0<e&&(0<a.B[0].Ld&&(a.B[0].Ld=0),a.B.splice(e,1));break}0>e||(e==a.B.length&&(d={},d.Me=b,d.xc=a.xc,Am(a,b,!0),e++),0<e&&a.B.splice(0,0,d),d.Ef=!0,d.Ld=c?-1:rm[b]?0:1,Cm(a,d))}}
function ym(a,b,c){if(!Y[b]||!(c||a.F&&a.F.la.Ib))return!1;for(var d=!1,e=0;e<a.B.length;e++){var f=a.B[e];if(f.Me==b||f.Me==qm[b]){a.B.splice(e,1);f.rk&&clearTimeout(f.rk);f.Ef&&!c&&Dm(a,f.Me,!1);Am(a,b,!1);d=!0;break}}!a.B.length&&a.ka&&(xm(a,1020),a.ka=!1);return d}function Cm(a,b){if(!a.F||!a.F.la.Ib)ym(a,b.Me,!0);else if(Dm(a,b.Me,b.Ef)&&b.Ld){var c;if(0>b.Ld){if(!b.Ef){ym(a,b.Me);return}b.Ef=!1;c=a.ua}else c=1==b.Ld++?500:100;b.rk=setTimeout(function(a){return function(){Cm(a,b)}}(a),c)}}
function wm(a,b,c){if(Y[b]&&a.F&&a.F.la.Fb){rm[b]&&a.B.length&&0<a.B[0].Ld&&(a.B[0].Ld=0);for(var d,e=0;e<a.B.length;e++)if(d=a.B[e],d.Me==b){if(!c||0<=d.Ld){e=-1;break}0<e&&(0<a.B[0].Ld&&(a.B[0].Ld=0),a.B.splice(e,1));break}0>e||(e==a.B.length&&(d={},d.Me=b,d.xc=a.xc,Am(a,b,!0),e++),0<e&&a.B.splice(0,0,d),d.Ef=!0,d.Ld=c?-1:rm[b]?0:1,Cm(a,d))}}
function ym(a,b,c){if(!Y[b]||!(c||a.F&&a.F.la.Fb))return!1;for(var d=!1,e=0;e<a.B.length;e++){var f=a.B[e];if(f.Me==b||f.Me==qm[b]){a.B.splice(e,1);f.rk&&clearTimeout(f.rk);f.Ef&&!c&&Dm(a,f.Me,!1);Am(a,b,!1);d=!0;break}}!a.B.length&&a.ka&&(xm(a,1020),a.ka=!1);return d}function Cm(a,b){if(!a.F||!a.F.la.Fb)ym(a,b.Me,!0);else if(Dm(a,b.Me,b.Ef)&&b.Ld){var c;if(0>b.Ld){if(!b.Ef){ym(a,b.Me);return}b.Ef=!1;c=a.ua}else c=1==b.Ld++?500:100;b.rk=setTimeout(function(a){return function(){Cm(a,b)}}(a),c)}}
function Em(a,b,c){var d=b;if(65<=b&&90>=b)!(a.xc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.xc&515)==c&&(d=b-32);else if(!!(a.xc&3)==c){if(a=qm[b])d=a}else if(a=pm[b])d=a;return d}m.Gg=function(a){a||(this.xc&=-256)};
function vm(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Em(a,g,!0);a.bh&&h==X["`"]&&(g=h=27);if(Y[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),xm(a,h,!1,c)){if(20==g||144==g||145==g)a.pa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.B.length;k++){var l=a.B[k];l.Ef=!1;0<l.Ld&&(l.Ld=0)}}else 8==g&&8==(a.xc&40)&&(h=4008),d=!1;else if(Y[h]&&a.xc&60&&(d=!1),d&&c||a.xc&192)f=!0;d||b.preventDefault();f||a.ia&&d||(c?wm(a,h,e):ym(a,h)||(b=Em(a,g,!1),b!=h&&ym(a,b)));return d}
function Dm(a,b,c){var d=!1;xm(a,b,!0,c);var e=Y[b]||Y[b+1E3];if(void 0!==e){14==e&&40==(a.xc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.ra)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.A&&(20>e.A.length?(A(e)&&y(e,"scan code "+t(f)+" buffered"),e.A.push(f),1==
@ -470,29 +470,29 @@ Gm[17]=[640,480,8];Gm[18]=[640,480,8];Gm[19]=[320,200,1];Gm[20]=[320,240,4];Gm[2
var Mm=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Nm=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Om=[[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]],Pm=[2,4,6],Qm=[3,5,7],Rm=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Sm=[0,255,65280,65535,16711680,16711935,16776960,
16777215,-16777216,-16776961,-16711936,-16711681,-65536,-65281,-256,-1],Tm=[0];Tm[128]=1;Tm[32768]=2;Tm[32896]=3;Tm[8388608]=4;Tm[8388736]=5;Tm[8421376]=6;Tm[8421504]=7;Tm[-2147483648]=8;Tm[-2147483520]=9;Tm[-2147450880]=10;Tm[-2147450752]=11;Tm[-2139095040]=12;Tm[-2139094912]=13;Tm[-2139062272]=14;Tm[-2139062144]=15;
function Um(a,b,c,d){if(void 0!==b&&(!c||c.length)){this.video=a;var e=Vm[b],f=a.ya||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(5>b?Wm:Xm)];this.ha=a.ha;this.type=e[0];this.port=e[1];this.Ua=b;this.ob=e[2];this.ac=e[3];this.Ed=d||e[4];65536<=this.Ed&&720896<=this.ob&&(this.ac=Math.min(this.Ed>>2,32768));this.Hc=c[0];this.gd=c[1];this.sf=c[2];this.ma=c[3];this.Ac=c[4]&255;this.Jg=c[4]>>8&255;this.mb=c[5];this.nh=Wm;this.kg=Ym;if(5<=b){this.nh=Xm;this.kg=Zm;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.ob,this.ac,this.Ed],Array(this.Ed>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Xe=b[0];this.Od=b[1];this.Tc=b[2];this.Tg=$m;this.Mg=b[3];this.uf=b[4];this.dg=b[5];this.ce=b[6];this.Je=b[7];this.Vg=an;this.hk=b[8];this.ik=b[9];this.be=b[10];this.ae=b[11];this.Ug=bn;this.Fb=b[12];d=b[13];"number"==typeof d&&(d=[this.ob,this.ac,d]);this.ob=d[0];this.ac=d[1];d=this.Ed>>2;if((this.sd=b[14])&&this.sd.length<d){for(var e=this.sd,g=0,
0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.ob,this.ac,this.Ed],Array(this.Ed>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Xe=b[0];this.Od=b[1];this.Tc=b[2];this.Tg=$m;this.Mg=b[3];this.uf=b[4];this.dg=b[5];this.ce=b[6];this.Je=b[7];this.Vg=an;this.hk=b[8];this.ik=b[9];this.be=b[10];this.ae=b[11];this.Ug=bn;this.Gb=b[12];d=b[13];"number"==typeof d&&(d=[this.ob,this.ac,d]);this.ob=d[0];this.ac=d[1];d=this.Ed>>2;if((this.sd=b[14])&&this.sd.length<d){for(var e=this.sd,g=0,
h=Array(d),k=0;k<e.length-1;){for(var l=e[k++],n=e[k++];l--;)h[g]=n,g+=2;g==d&&(g=1)}this.sd=h}(d=b[15])&&(d&-2147483648?d&=2147483647:d=cn[d&65280]|cn[d&255]);this.Og(d);this.di=b[16];this.qb=b[17];this.dd=b[18];this.Mb=b[19];this.Uf=b[20];this.$d=b[21];this.qe=b[22];this.oh=b[23];this.ph=b[24];this.Md=b[25];this.ei=this.pf=0;this.Ua==dm&&(this.li=b[26],this.ki=b[27],this.pd=b[28],this.Kc=b[29],this.Kg=b[30],this.tf=b[31])}f=Km[f]||Km[3];this.qh=a.F.Y.Jd/f.Cg|0;this.jm=this.qh*f.Hg/100|0;this.th=
this.qh*f.Bg|0;this.lm=this.th*f.Ig/100|0;this.vh=c[7]||0}}
var Wm=18,Xm=25,Ym="HTOTAL HDISP HSYNC_POS HSYNC_WIDTH VTOTAL VTOTAL_ADJ VDISP VSYNC_POS INTERLACE_POS MAX_SCAN CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO LIGHT_PEN_HI LIGHT_PEN_LO".split(" "),Zm="HTOTAL HDISP_END HBLANK_START HBLANK_END HRETRACE_START HRETRACE_END VTOTAL OVERFLOW PRESET_SCAN MAX_SCAN CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO VRETRACE_START VRETRACE_END VDISP_END OFFSET UNDERLINE VBLANK_START VBLANK_END MODE_CTRL LINE_COMPARE".split(" "),$m=
"PAL00 PAL01 PAL02 PAL03 PAL04 PAL05 PAL06 PAL07 PAL08 PAL09 PAL0A PAL0B PAL0C PAL0D PAL0E PAL0F MODE OVERSCAN PLANES HPAN".split(" "),an=["RESET","CLOCKING","MAPMASK","CHARMAP","MEMMODE"],bn="SRESET ESRESET COLORCMP DATAROT READMAP MODE MISC COLORDC BITMASK".split(" "),cn=[,,1024,5120];cn[16]=1280;cn[512]=0;cn[1024]=32;cn[1536]=96;cn[2560]=160;cn[3584]=224;cn[768]=16;cn[4096]=1;cn[8192]=2;cn[24576]=98;cn[40960]=162;cn[57344]=226;var dn=[];
dn[1024]=function(a){a+=this.C;return(this.controller.Fb=this.da[a])>>this.controller.di&255};dn[17408]=function(a){return(this.controller.Fb=this.da[(a&-4)+this.C])>>((a&3)<<3)&255};dn[5120]=function(a){a+=this.C;var b=this.controller.Fb=this.da[a&-2];return(a&1?b>>8:b)&255};dn[1280]=function(a){a+=this.C;a=this.controller.Fb=this.da[a];for(var b=this.controller.ph,c=this.controller.oh&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};
dn[0]=function(a,b){var c=a+this.C,d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[32]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[96]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d&=this.controller.Fb;d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[160]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d|=this.controller.Fb;d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[224]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d^=this.controller.Fb;d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};dn[4]=function(a,b){var c=(a&-4)+this.C,d=(a&3)<<3,d=b<<d&this.controller.qb|this.da[c]&~(255<<d&this.controller.qb);this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[16]=function(a,b){a+=this.C;var c,d=a&-2;c=(b|b<<8|b<<16|b<<24)&this.controller.Mb|this.controller.Fb&~this.controller.Mb;var e=this.controller.qb&(d==a?16711935:-16711936);c=c&e|this.da[d]&~e;this.da[d]!=c&&(this.da[d]=c,this.Wa=!0)};dn[1]=function(a){a=a+this.C;var b=this.da[a]&~this.controller.qb|this.controller.Fb&this.controller.qb;this.da[a]!=b&&(this.da[a]=b,this.Wa=!0)};
dn[17]=function(a){a+=this.C;var b=a&-2;a=this.controller.qb&(b==a?16711935:-16711936);a=this.da[b]&~a|this.controller.Fb&a;this.da[b]!=a&&(this.da[b]=a,this.Wa=!0)};dn[2]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[98]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d&this.controller.Fb,d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};dn[162]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d|this.controller.Fb,d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[226]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d^this.controller.Fb,d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};dn[3]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Mb;d=this.controller.Uf&d|this.controller.Fb&~d;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
function en(a){var b=[];if(void 0!==a.Ua){b[0]=a.Hc;b[1]=a.gd;b[2]=a.sf;b[3]=a.ma;b[4]=a.Ac|a.Jg<<8;b[5]=a.mb;if(5<=a.Ua){var c=[];c[0]=a.Xe;c[1]=a.Od;c[2]=a.Tc;c[3]=a.Mg;c[4]=a.uf;c[5]=a.dg;c[6]=a.ce;c[7]=a.Je;c[8]=a.hk;c[9]=a.ik;c[10]=a.be;c[11]=a.ae;c[12]=a.Fb;c[13]=[a.ob,a.ac,a.Ed];var d;a:if(d=a.sd){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 k=d[h],l=h+2;l<d.length&&d[l]===k;)l+=2;f[e++]=l-h>>1;f[e++]=k;h=l}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
dn[1024]=function(a){a+=this.C;return(this.controller.Gb=this.da[a])>>this.controller.di&255};dn[17408]=function(a){return(this.controller.Gb=this.da[(a&-4)+this.C])>>((a&3)<<3)&255};dn[5120]=function(a){a+=this.C;var b=this.controller.Gb=this.da[a&-2];return(a&1?b>>8:b)&255};dn[1280]=function(a){a+=this.C;a=this.controller.Gb=this.da[a];for(var b=this.controller.ph,c=this.controller.oh&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};
dn[0]=function(a,b){var c=a+this.C,d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[32]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[96]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d&=this.controller.Gb;d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[160]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d|=this.controller.Gb;d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[224]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.$d|this.controller.qe;d^=this.controller.Gb;d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};dn[4]=function(a,b){var c=(a&-4)+this.C,d=(a&3)<<3,d=b<<d&this.controller.qb|this.da[c]&~(255<<d&this.controller.qb);this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[16]=function(a,b){a+=this.C;var c,d=a&-2;c=(b|b<<8|b<<16|b<<24)&this.controller.Mb|this.controller.Gb&~this.controller.Mb;var e=this.controller.qb&(d==a?16711935:-16711936);c=c&e|this.da[d]&~e;this.da[d]!=c&&(this.da[d]=c,this.Wa=!0)};dn[1]=function(a){a=a+this.C;var b=this.da[a]&~this.controller.qb|this.controller.Gb&this.controller.qb;this.da[a]!=b&&(this.da[a]=b,this.Wa=!0)};
dn[17]=function(a){a+=this.C;var b=a&-2;a=this.controller.qb&(b==a?16711935:-16711936);a=this.da[b]&~a|this.controller.Gb&a;this.da[b]!=a&&(this.da[b]=a,this.Wa=!0)};dn[2]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[98]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d&this.controller.Gb,d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};dn[162]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d|this.controller.Gb,d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
dn[226]=function(a,b){var c=a+this.C,d=Sm[b&15],d=d^this.controller.Gb,d=d&this.controller.Mb|this.controller.Gb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};dn[3]=function(a,b){var c=a+this.C;b=b>>this.controller.dd|b<<8-this.controller.dd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Mb;d=this.controller.Uf&d|this.controller.Gb&~d;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
function en(a){var b=[];if(void 0!==a.Ua){b[0]=a.Hc;b[1]=a.gd;b[2]=a.sf;b[3]=a.ma;b[4]=a.Ac|a.Jg<<8;b[5]=a.mb;if(5<=a.Ua){var c=[];c[0]=a.Xe;c[1]=a.Od;c[2]=a.Tc;c[3]=a.Mg;c[4]=a.uf;c[5]=a.dg;c[6]=a.ce;c[7]=a.Je;c[8]=a.hk;c[9]=a.ik;c[10]=a.be;c[11]=a.ae;c[12]=a.Gb;c[13]=[a.ob,a.ac,a.Ed];var d;a:if(d=a.sd){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 k=d[h],l=h+2;l<d.length&&d[l]===k;)l+=2;f[e++]=l-h>>1;f[e++]=k;h=l}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
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.$d;c[22]=a.qe;c[23]=a.oh;c[24]=a.ph;c[25]=a.Md;a.Ua==dm&&(c[26]=a.li,c[27]=a.ki,c[28]=a.pd,c[29]=a.Kc,c[30]=a.Kg,c[31]=a.tf);b[6]=c}b[7]=a.vh}return b}function fn(a,b,c,d,e){if(d){var f,g="";for(f=0;f<e.length;f++){var h=d===a.mb?gn(a,f):d[f];g&&(g+="\n");g+=b+"["+r(f,2)+"]: "+ma(e[f],18)+(f===c?"*":" ")+r(h,255<h?4:2);null!=h&&(g+=" ("+h+".)")}a.ha.O(g)}else a.ha.O(b+": "+r(c,2))}
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&&(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",
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.Gb)),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)};
m.Pb=function(a,b,c){var d=this;if(!this.qa[b])switch(this.qa[b]=c,b){case "fullScreen":return this.ga&&this.ga.We?c.onclick=function(){d.We()}:c.parentNode.removeChild(c),!0;case "lockPointer":return this.uk=c.textContent,this.V&&this.V.De?c.onclick=function(){d.De(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){rn(d,!0)},!0}return!1};
m.We=function(){var a=!1;if(this.ga){if(this.ga.We){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.ra/this.Ea;b>c&&(a=Math.round(c/b*100)+"%")}this.qf?(this.ka.style.width=a,this.ka.style.width=a,this.ka.style.display="block",this.ka.style.margin="auto"):(this.ga.style.width=a,this.ga.style.height="auto");this.ga.style.backgroundColor="black";this.ga.We();a=!0}this.V&&this.V.focus()}return a};
@ -561,7 +561,7 @@ m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;for(b=null;b=Eb(a,"
m.hc=function(a){return a?this.save():!0};m.reset=function(){Do(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.Hc;c[b++]=this.L;c[b++]=this.W;c[b++]=this.U;c[b++]=this.X;c[b++]=this.aa;c[b++]=this.fa;c[b]=this.C;N(a,0,c);return a.data()};m.restore=function(a){return Do(this,a[0])};function Do(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.Hc=d;a.L=b[c++];a.W=b[c++];a.U=b[c++];a.X=b[c++];a.aa=b[c++];a.fa=b[c++];a.C=b[c];return!0}m.Vf=function(a){this.ga=a};
function Ao(a){if(!a.ia)for(var b=0;b<a.A.length;b++)Eo(a,a.A[b])&&(a.ia=!0)}function Bo(a){if(a.ia)for(var b=0;b<a.A.length;b++){var c=a.A[b];c&&(c.style.cursor="auto")}}function Eo(a,b){return b?(b.addEventListener("mousemove",function(b){Fo(a,b)},!1),b.addEventListener("mousedown",function(b){Fo(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Fo(a,b,!1)},!1),b.style.cursor="none",!0):!1}
function Fo(a,b,c){if(void 0!==c){var d;!(d=!1!==a.ga)&&(d=a.B.length)&&(d=a.B[0],d=d.pi?d.De(!0):!1);d||(a.ga=null);a.je(b.button,c)}else{if(0>a.L||0>a.W)a.L=b.clientX,a.W=b.clientY;a.ga?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.L,d=b.clientY-a.W);a.L=b.clientX;a.W=b.clientY;a.Hf(c,d,a.L,a.W)}}
m.je=function(a,b){if(this.Hc&&this.F&&this.F.la.Ib){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case tn:if(this.aa!=b){this.aa=b;Go(this,c);return}break;case 2:if(this.fa!=b){this.fa=b;Go(this,c);return}}y(this,c+": ignored")}};m.Hf=function(a,b,c,d){this.Hc&&this.F&&this.F.la.Ib&&(a||b)&&(this.U=a,this.X=b,Go(this,null,c,d))};
m.je=function(a,b){if(this.Hc&&this.F&&this.F.la.Fb){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case tn:if(this.aa!=b){this.aa=b;Go(this,c);return}break;case 2:if(this.fa!=b){this.fa=b;Go(this,c);return}}y(this,c+": ignored")}};m.Hf=function(a,b,c,d){this.Hc&&this.F&&this.F.la.Fb&&(a||b)&&(this.U=a,this.X=b,Go(this,null,c,d))};
function Go(a,b,c,d){var e=64|(a.aa?32:0)|(a.fa?16:0)|(a.X&192)>>4|(a.U&192)>>6,f=a.U&63,g=a.X&63;A(a,8388608)&&y(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+t(e)+","+t(f)+","+t(g)+"]",0,!0);vo(a.N,[e,f,g]);a.U=a.X=0}Qa(function(){for(var a=nb(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new Co(d);mb(d,c)}});
function Ho(a,b,c){Ua.call(this,"Disk",{id:a.ve+".disk"+r(++Io,4)},Ho,2097152);this.controller=a;this.V=a.V;this.ha=a.ha;this.B=b;this.ea=b.name;this.bf=b.bf;this.rg=this.N=!1;Jo(this,c,b.Bb,b.ub,b.lb,b.Va);this.U=[];this.fa=[];this.L=null;this.ia=0;this.ga=!1;rb(this)}var Io=0;db(Ho);function Ko(a,b,c,d,e,f){this.za=a;this.lc=c;this.Wg=d;this.Bi=e;this.xe=f}var Lo=[0,2],Mo=[24,2],No=[60,4],Oo=[0,2],Po=[4,2],Qo=[6,2],Ro=[28,2],So=[32,2],To=[34,2],Uo=[38,2],Vo=[44,4],Wo=[50,2];
function Xo(a,b,c){var d;c=c||2;var e=b&511,f=Yo(a.za,a.xe[b>>9]);if(f){if(e+c<=f.length)return Zo(a.za,f,e,c);for(e=d=0;c--;)d|=Xo(a,b++,1)<<e,e+=8}return d}function $o(a,b,c){return Xo(a,b[0]+(c||0),b[1])}function ap(a,b,c){for(var d=0;!c||b<c;){var e=Xo(a,b,1);if(!e)break;var f;f=a;var g=b+1,h=e,k="";for(h||(h=-1);h--;){var l=Xo(f,g++,1);if(!l)break;k+=String.fromCharCode(l)}f=k;if(!f)break;b+=1+e;if(d){if(e=Xo(a,b),g=a.A[e])g=g[0],a.zd[g]&&a.zd[g].we[e].push(f)}else c||(a.fg=f);b+=2;d++}}
@ -586,7 +586,7 @@ function kp(a,b,c,d,e,f,g){if(a.N){var h;h="action=read&volume="+a.W;h+="&chs="+
function lp(a,b,c,d,e,f,g){if(a.N){var h={};a.ga=!0;h.action="write";h.volume=a.W;h.chs=a.Bb+":"+a.ub+":"+a.lb+":"+a.Va;h.addr=b+":"+c+":"+d+":"+e;h.machine=a.controller.ff();h.user=a.controller.ke();h.data=JSON.stringify(f);va(xa()+"/api/v1/disk",h,g,function(f,h,n){var q=[b,c,d,e,g];f=q[0];h=q[1];var p=q[2],z=q[3],q=q[4];a.ga=!1;if(0<=f&&f<a.A.length&&0<=h&&h<a.A[f].length)for(p=p-1;0<z--&&0<=p&&p<a.A[f][h].length;p++){var F=a.A[f][h][p];n?mp(a,F,!1):F.Wa||(F.wd=F.Zc=0)}q&&np(a)})}return!1}
function mp(a,b,c){b.Wa=!0;var d=a.U.indexOf(b);0<=d&&(a.U.splice(d,1),a.fa.splice(d,1));a.U.push(b);a.fa.push(pa());c&&np(a)}function np(a){if(a.U.length){var b=a.fa[0]+2E3;a.L&&a.ia<b&&(clearTimeout(a.L),a.L=null);if(!a.L){var c=pa(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.L=setTimeout(function(){bp(a,!0)},b);a.ia=c+b}}else a.L&&(clearTimeout(a.L),a.L=null)}
function bp(a,b){b&&(a.L=null);var c=a.U[0];if(c){for(var d=c.Tk,e=c.Uk,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.Wa)break;var l=a.U.indexOf(k);a.U.splice(l,1);a.fa.splice(l,1);g=g.concat(op(k));k.Wa=!1;f++}d=lp(a,d,e,c,f,g,b);return b||d}return!1}m.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]};
m.seek=function(a,b,c,d,e){var f=null,g=this.B,h=this.A[a];if(h){var k=h[b];if(!k&&g.Yg&&b<g.ub)for(k=h[b]=Array(g.he),h=0;h<k.length;h++)k[h]=cp(null,a,b,h+1,g.Hb,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++;kp(this,a,b,c,d,null!=e,function(a,b){a&&(f=null);e&&e(f,b)});return e?null:f}break}!f&&g.Yg&&9==g.xb&&(f=k[h]=cp(null,a,b,g.xb,g.Hb,0))}}e&&e(f,!1);return f};
m.seek=function(a,b,c,d,e){var f=null,g=this.B,h=this.A[a];if(h){var k=h[b];if(!k&&g.Yg&&b<g.ub)for(k=h[b]=Array(g.he),h=0;h<k.length;h++)k[h]=cp(null,a,b,h+1,g.Ib,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++;kp(this,a,b,c,d,null!=e,function(a,b){a&&(f=null);e&&e(f,b)});return e?null:f}break}!f&&g.Yg&&9==g.xb&&(f=k[h]=cp(null,a,b,g.xb,g.Ib,0))}}e&&e(f,!1);return f};
function gp(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 op(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}m.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};
m.write=function(a,b,c){if(this.ef)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.Zc?f<a.wd?(a.Zc+=a.wd-f,a.wd=f):f>=a.wd+a.Zc&&(a.Zc+=f-(a.wd+a.Zc)+1):(a.wd=f,a.Zc=1);d[f]=d[f]&~(255<<b)|c<<b;this.N&&mp(this,a,!0)}return!0}return null};function pp(a){for(var b="",c=0,d;d=Yo(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Zo(a,d,e,1));return btoa(b)}
m.save=function(){var a=0,b=[];b[a++]=[this.W,this.aa,this.Bb,this.ub,this.lb,this.Va];if(!this.N&&!this.ef)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.Zc){for(var h=[],k=0,l=g.wd,n=g.wd+g.Zc;l<n;)h[k++]=g.data[l++];b[a++]=[d,e,f,g.wd,h]}}return b};
@ -600,12 +600,12 @@ g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b
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);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]=
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.Ib;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])};
function vp(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c++;a.ma=b[c++];a.W=b[c++];a.L=b[c++];a.C=b[c++];a.aa=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.B=d);void 0===a.A&&(a.ka=4,a.N&&(a.ka=+Uk(a.N,vk,void 0)),a.A=Array(4));for(d=0;d<a.A.length;d++){var g=a.A[d];if(void 0===g){var g=a.A[d]={},h;if(a.N)a:{h=a.N;if(d<+Uk(h,vk,void 0)){if(!h.ia){h=360;break a}if(d<h.ia.length){h=h.ia[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.ub=1;default:g.Bb=40;g.lb=9;break;
case 720:g.Bb=80;g.lb=9;break;case 1200:g.Bb=80;g.lb=15;break;case 1440:g.Bb=80,g.lb=18}}var k=a,l=d,n=f[d],q=0;h=!0;g.hb=l;g.bd=g.$e=!1;void 0===n&&(n=[192,!0,0,2,0]);"boolean"==typeof n[1]&&(n[1]=["Floppy Drive",g.Bb||40,g.ub||n[3],g.lb||9,g.Va||512,n[1],g.zg,g.Nf,g.Of]);g.Cb=n[q++];var p=n[q++];g.name=p[0];g.Bb=p[1];g.ub=p[2];g.lb=p[3];g.Va=p[4];g.bf=p[5];(g.zg=p[6])?(g.Nf=p[7],g.Of=p[8]):(g.zg=g.Bb,g.Nf=g.ub,g.Of=g.lb);g.kb=n[q++];g.ge=n[q++];g.Qb=n[q++];g.ge=100<=g.ge?g.ge-100:g.ge-g.Qb;g.xb=
n[q++];g.he=n[q++];g.Hb=n[q++];g.eb=n[q++];g.pb=null;g.za||(g.Le="");p=n[q++];102==p&&(p=!1);if("boolean"==typeof p){var z=p,p=n[q++],n=n[q];z?(q=p,p=k.A[l],Ap(k,l,!0,!0),p.$e=!0,l=new Ho(k,p,"preload"),k.Hi(p,l,q,n,!0)):Cp(k,l,p,n,!0)?g.za&&n&&Dp(k,p,n,g.za):rb(k,!1)}else void 0!==p&&g.za&&0>g.za.restore(p)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.X=b[c++]||0;a.kc=b[c]||0;return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Qb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Hb=c*d[3],a.Cb=0,!0}return!1};
n[q++];g.he=n[q++];g.Ib=n[q++];g.eb=n[q++];g.pb=null;g.za||(g.Le="");p=n[q++];102==p&&(p=!1);if("boolean"==typeof p){var z=p,p=n[q++],n=n[q];z?(q=p,p=k.A[l],Ap(k,l,!0,!0),p.$e=!0,l=new Ho(k,p,"preload"),k.Hi(p,l,q,n,!0)):Cp(k,l,p,n,!0)?g.za&&n&&Dp(k,p,n,g.za):rb(k,!1)}else void 0!==p&&g.za&&0>g.za.restore(p)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.X=b[c++]||0;a.kc=b[c]||0;return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Qb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Ib=c*d[3],a.Cb=0,!0}return!1};
function zp(a,b){b||(a.fa=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.qa.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.A.length)){!Cp(a,g,f,e,!0)&&b&&rb(a,!1);continue}a.Na("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.fa}
function up(a,b,c,d){var e,f=a.qa.listDrives;if(f&&!isNaN(e=ca(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Na('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>Cp(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.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Ap(a,
e,!1,!0)}}else Ap(a,e);else a.Na("Unable to load the selected drive")}function Cp(a,b,c,d,e,f){var g=a.A[b];if(d&&g.Le!=d){Ap(a,b,e,!0);if(g.bd)return a.Na("Drive "+b+" busy"),0;g.bd=!0;e&&(g.Ae=!0,a.fa++,A(a)&&y(a,"loading diskette '"+c+"'"));g.$e=!!f;return(new Ho(a,g,"preload")).load(c,d,f,a.Hi)?1:0}return-1}
@ -614,13 +614,13 @@ function yp(a,b,c,d){if((a=a.qa.listDisks)&&a.options){for(var e=0;e<a.options.l
function tp(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.qa.listDisks,e=a.qa.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.$e?"?":c.Le,!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 Ap(a,b,c,d){var e=a.A[b];e.za&&(Bp(a,e.Le,e.za),e.kk="",e.Le="",e.za=null,e.$e=!1,a.X|=128,d||a.Na("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||tp(a,b))}
function Dp(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function Bp(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}m.Qm=function(a,b,c){x(this,a,b,c,"OUTPUT");b&4?this.aa&4||this.aa&8&&this.N&&eg(this.N,6):vp(this);this.aa=b};m.vl=function(a,b){x(this,a,null,b,"DIAG",80);return 80};m.xl=function(a,b){x(this,a,null,b,"STATUS",this.ma);return this.ma};
m.ul=function(a,b){var c=0;this.L<this.C&&(c=this.W[this.L]);this.aa&8&&this.N&&dg(this.N,6);A(this)&&x(this,a,null,b,"DATA["+this.L+"]",c);++this.L>=this.C&&(this.ma&=-81,this.L=this.C=0);return c};
m.Pm=function(a,b,c){A(this)&&x(this,a,b,c,"DATA["+this.C+"]");this.C<this.W.length&&(this.W[this.C++]=b);a=this.W[0]&31;if(void 0!==sp[a]&&this.C>=sp[a].Vd){b=!1;this.L=0;a=Ep(this);var d,e,f,g,h=a&31;switch(h){case 3:Ep(this);Ep(this);Fp(this);break;case 4:c=Ep(this);this.hb=c&3;d=this.A[this.hb];Fp(this);Gp(this,(d.Cb&-16777216)>>>24);break;case 5:case 6:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];d.kb=b;c=d.Qb=Ep(this);e=Ep(this);f=d.xb=Ep(this);g=Ep(this);d.Hb=128<<g;d.he=Ep(this);Ep(this);
m.Pm=function(a,b,c){A(this)&&x(this,a,b,c,"DATA["+this.C+"]");this.C<this.W.length&&(this.W[this.C++]=b);a=this.W[0]&31;if(void 0!==sp[a]&&this.C>=sp[a].Vd){b=!1;this.L=0;a=Ep(this);var d,e,f,g,h=a&31;switch(h){case 3:Ep(this);Ep(this);Fp(this);break;case 4:c=Ep(this);this.hb=c&3;d=this.A[this.hb];Fp(this);Gp(this,(d.Cb&-16777216)>>>24);break;case 5:case 6:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];d.kb=b;c=d.Qb=Ep(this);e=Ep(this);f=d.xb=Ep(this);g=Ep(this);d.Ib=128<<g;d.he=Ep(this);Ep(this);
Ep(this);6==h?(h=d,h.Cb=72,h.za&&(h.pb=null,h.Cb=0,this.N&&(yl(this.N,2,this,"dmaRead",h),ql(this.N,2)))):(h=d,h.Cb=72,h.za&&(h.za.ef?h.Cb=576:(h.pb=null,h.Cb=0,this.N&&(yl(this.N,2,this,"dmaWrite",h),ql(this.N,2)))));Hp(this,d,a,b,c,e,f,g);b=!0;break;case 7:c=Ep(this);this.hb=c&3;d=this.A[this.hb];d.Qb=d.ge=0;d.Cb=268435488;Fp(this);b=!0;break;case 8:d=this.A[this.hb];d.kb=0;Fp(this);Gp(this,d.hb|d.kb<<2|d.Cb&255);Gp(this,d.Qb);this.hb=this.hb+1&3;break;case 10:c=Ep(this);b=c>>2&1;this.hb=c&3;d=
this.A[this.hb];c=d.Qb;e=d.kb=b;f=d.xb=1;g=0;d.Cb=0;d.za&&(d.pb=d.za.seek(d.Qb,d.kb,d.xb))?g=d.pb.length>>8:d.Cb=72;Hp(this,d,a,b,c,e,f,g);b=!0;break;case 13:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];c=d.Qb;e=d.kb=b;f=1;g=Ep(this);d.Hb=128<<g;d.he=Ep(this);Ep(this);d.xi=Ep(this);h=d;h.Cb=72;h.za&&(h.pb=null,h.Cb=0,this.N&&(h.Ve=0,h.md=Array(4),h.Yg=!0,h.ng=0,yl(this.N,2,this,"dmaFormat",h),ql(this.N,2),h.Yg=!1));Hp(this,d,a,b,c,e,f,g);b=!0;break;case 15:c=Ep(this),this.hb=c&3,d=this.A[this.hb],
this.A[this.hb];c=d.Qb;e=d.kb=b;f=d.xb=1;g=0;d.Cb=0;d.za&&(d.pb=d.za.seek(d.Qb,d.kb,d.xb))?g=d.pb.length>>8:d.Cb=72;Hp(this,d,a,b,c,e,f,g);b=!0;break;case 13:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];c=d.Qb;e=d.kb=b;f=1;g=Ep(this);d.Ib=128<<g;d.he=Ep(this);Ep(this);d.xi=Ep(this);h=d;h.Cb=72;h.za&&(h.pb=null,h.Cb=0,this.N&&(h.Ve=0,h.md=Array(4),h.Yg=!0,h.ng=0,yl(this.N,2,this,"dmaFormat",h),ql(this.N,2),h.Yg=!1));Hp(this,d,a,b,c,e,f,g);b=!0;break;case 15:c=Ep(this),this.hb=c&3,d=this.A[this.hb],
d.kb=c>>2&1,c=Ep(this),d.Qb+=c-d.ge,0>d.Qb&&(d.Qb=0),d.Qb>=d.Bb&&(d.Qb=d.Bb-1),d.ge=c,d.Cb=32,d.Qb||(d.Cb|=268435456),Fp(this),b=!0}0<this.C&&(this.ma|=80);this.aa&8&&(!d||d.Cb&8||!b||this.N&&eg(this.N,6))}};m.wl=function(a,b){var c=this.X;this.X&=-129;x(this,a,null,b,"INPUT",c);return c};m.Om=function(a,b,c){x(this,a,b,c,"CONTROL");this.kc=b};
function Hp(a,b,c,d,e,f,g,h){Fp(a);Gp(a,b.hb|b.kb<<2|b.Cb&255);Gp(a,(b.Cb&65280)>>>8);Gp(a,(b.Cb&16711680)>>>16);var k=0;if(e!=b.Qb||f!=b.kb)k=g=1;c&128&&(f^=k,d||(k=0));Gp(a,e+k);Gp(a,f);Gp(a,g);Gp(a,h)}function Ep(a){var b=a.W[a.L];a.L++;return b}function Fp(a){a.L=a.C=0}function Gp(a,b){a.W[a.C++]=b}
m.wk=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.Cb&&a.za){do{if(a.pb&&(e=a.eb,0<=(b=a.za.read(a.pb,a.eb++)))){d=a.pb;break}a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=1088;break}a.eb=0;Ip(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};m.xk=function(a,b){return void 0!==b&&0<=b?Jp(a,b):-1};
m.Lk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Cb)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.Qb=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Hb=128<<a.md[3];for(var d=a.Ve=0;d<a.Hb;d++)if(0>Jp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};function Jp(a,b){if(a.Cb||!a.za)return-1;do{if(a.pb&&a.za.write(a.pb,a.eb++,b))break;a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=8256;b=-1;break}a.eb=0;Ip(a)}while(1);return b}
m.Lk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Cb)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.Qb=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Ib=128<<a.md[3];for(var d=a.Ve=0;d<a.Ib;d++)if(0>Jp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};function Jp(a,b){if(a.Cb||!a.za)return-1;do{if(a.pb&&a.za.write(a.pb,a.eb++,b))break;a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=8256;b=-1;break}a.eb=0;Ip(a)}while(1);return b}
function Ip(a){a.xb++;a.xb>=a.Of+1&&(a.xb=1,a.kb++,a.kb>=a.Nf&&(a.kb=0,a.Qb++))}var wp={1009:rp.prototype.vl,1012:rp.prototype.xl,1013:rp.prototype.ul,1015:rp.prototype.wl},xp={1010:rp.prototype.Qm,1013:rp.prototype.Pm,1015:rp.prototype.Om};Qa(function(){for(var a=nb(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new rp(d);mb(d,c)}});
function Kp(a){Ua.call(this,"HDC",a,Kp,1048576);this.dmaRead=this.yk;this.dmaWrite=this.zk;this.dmaWriteBuffer=this.Mk;this.dmaWriteFormat=this.Nk;this.ua=[];this.Fa=a.drives;this.ia="at"==a.type}db(Kp);
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,
@ -629,28 +629,28 @@ m.Pb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return t
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])};
l[k++]=h.ub;l[k++]=h.de;l[k++]=h.xb;l[k++]=h.he;l[k++]=h.Ib;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])};
function Sp(a,b,c){var d=0,e=!0;a.hb=-1;if(a.ia){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.X=b[d++],a.Pa=b[d++],a.aa=b[d++],a.Ca=b[d++],a.ya=b[d++],a.wa=b[d++],a.ra=b[d++],a.ma=b[d++],a.Ea=b[d++],a.ga=b[d++],"object"==typeof a.ga){var f=a.ga;a.ga=f[0];a.hb=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.pa=b[d++],a.ma=b[d++],a.W=b[d++],a.L=b[d++],a.C=b[d++],a.Oa=b[d++],a.Ka=b[d++],a.Ja=b[d++],f=b[d++],void 0!==f?a.ka=f:void 0===a.ka&&(a.ka=-1);void 0===a.A&&(a.A=Array(a.ua.length));b=b[d];void 0===
b&&(b=[]);for(d=0;d<a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,l=a.ua[d],n=b[d],q=c,p=0,z=!0;void 0===n&&(n=[0,0,!1,Array(8)]);k.hb=h;k.errorCode=n[p++];k.mk=n[p++];k.bf=n[p++];k.Qe=n[p++];k.Re=n[p++];k.kb=n[p++];k.ub=n[p++];k.de=n[p++];k.xb=n[p++];k.he=n[p++];k.Hb=n[p++];k.mg=g.ia?0:1;k.name=l.name;void 0===k.name&&(k.name="Hard Drive");k.path=l.path;k.mode=l.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.ke()||(k.mode="local");k.type=l.type;
b&&(b=[]);for(d=0;d<a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,l=a.ua[d],n=b[d],q=c,p=0,z=!0;void 0===n&&(n=[0,0,!1,Array(8)]);k.hb=h;k.errorCode=n[p++];k.mk=n[p++];k.bf=n[p++];k.Qe=n[p++];k.Re=n[p++];k.kb=n[p++];k.ub=n[p++];k.de=n[p++];k.xb=n[p++];k.he=n[p++];k.Ib=n[p++];k.mg=g.ia?0:1;k.name=l.name;void 0===k.name&&(k.name="Hard Drive");k.path=l.path;k.mode=l.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.ke()||(k.mode="local");k.type=l.type;
if(void 0===k.type||void 0===Mp[g.U][k.type])k.type=g.Ia;l=Mp[g.U][k.type];k.lb=l[2]||17;k.Va=l[3]||512;if(q&&g.N){var F=g.N,v=k.type;if(F.A){var q=null,l=void 0,E=F.A[18];15<v&&(q=v,v=15);h?(E=E&240|v,l=26):(E=E&15|v<<4,l=25);v=F;v.A&&(v.A[18]=E,Xk(v));null!=q&&F.A&&(F.A[l]=q,Xk(F))}}void 0===k.za&&(k.za=null,g.Na("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Tp(g,k);k.eb=n[p++];k.pb=null;k.za&&(g=n[p],void 0!==g&&0>k.za.restore(g)&&(z=!1),z&&void 0!==k.eb&&(k.pb=k.za.seek(k.de,k.kb,k.xb+
k.mg)));z||(e=!1);null!=a.pa&&1>=d&&(a.pa|=(f.type&3)<<(1-d<<1))}0<=a.hb&&(a.B=a.A[a.hb]);return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
function Tp(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.Qe[2])?e=b.Qe[0]<<8|b.Qe[1]:c=b.type);null==c||d||(d=Mp[a.U][c][1],e=Mp[a.U][c][0]);d&&((c=Mp[a.U][b.type])&&e!=c[0]&&d!=c[1]&&a.Na("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.Bb=e,b.ub=d,null==b.za&&(b.za=new Ho(a,b,b.mode)))}}
m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[0];if(e){var f=d[2],g=d[1]*f;if(b+c<=e*g)return a.de=Math.floor(b/g),b%=g,a.kb=Math.floor(b/f),a.xb=b%f,a.Hb=c*d[3],a.errorCode=0,!0}}return!1};
m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[0];if(e){var f=d[2],g=d[1]*f;if(b+c<=e*g)return a.de=Math.floor(b/g),b%=g,a.kb=Math.floor(b/f),a.xb=b%f,a.Ib=c*d[3],a.errorCode=0,!0}}return!1};
function Rp(a,b){b||(a.fa=0);for(var c=0;c<a.A.length;c++){var d=a.A[c];if(d.name&&d.path){if(!(b&&d.za&&d.za.rg)){var e;e=a;var f=d.name,d=d.path,g=e.A[c];g.bd?(e.Na("Drive "+c+" busy"),e=!0):(g.bd=!0,g.Ae=!0,e.fa++,A(e)&&y(e,"loading "+f),(g.za||new Ho(e,g,g.mode)).load(f,d,null,e.Ok),e=!1);!e&&b&&rb(a,!1)}}else b&&void 0!==d.type&&(d.za=null,Tp(a,d,d.type))}return!!a.fa}
m.Ok=function(a,b,c){a.bd=!1;if(a.za=b)this.Na('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.hb),a.Ae),b=b.info(),b[0]==a.Bb&&b[1]==a.ub&&b[2]==a.lb&&b[3]==a.Va||this.Na("Warning: disk geometry ("+b[0]+":"+b[1]+":"+b[2]+") does not match "+Lp[this.U]+" drive type "+a.type+" ("+a.Bb+":"+a.ub+":"+a.lb+")");a.Ae&&(a.Ae=!1,--this.fa||rb(this))};
m.Xl=function(a,b){var c=0;this.L<this.C&&(c=this.W[this.L]);this.N&&dg(this.N,5);this.ma&=-33;x(this,a,null,b,"DATA["+this.L+"]",c);++this.L>=this.C&&(this.L=this.C=0,this.ma&=-15);return c};m.nn=function(a,b,c){x(this,a,b,c,"DATA["+this.C+"]");this.C<this.W.length&&(this.W[this.C++]=b);a=12!=this.W[0]?6:this.W.length;6==this.C&&(this.ma&=-2);this.C>=a&&(this.ma|=2,this.ma&=-2,Up(this))};m.Yl=function(a,b){var c=this.ma;x(this,a,null,b,"STATUS",c);this.L<this.C&&(this.ma|=1);return c};
m.qn=function(a,b,c){x(this,a,b,c,"RESET");this.Oa=b;this.N&&dg(this.N,5);Sp(this)};m.Wl=function(a,b){x(this,a,null,b,"CONFIG",this.pa);return this.pa};m.pn=function(a,b,c){x(this,a,b,c,"PULSE");this.Ka=b;this.ma=13};m.on=function(a,b,c){x(this,a,b,c,"PATTERN");this.Ja=b};m.gi=function(a,b,c){x(this,a,b,c,"NOISE")};
function Vp(a,b,c){var d=-1;a.B&&(d=Wp(a.B,function(){}),1==a.B.eb||a.B.eb==a.B.Va)&&(A(a,1048832)&&x(a,b,null,c,"DATA["+a.B.eb+"]",d),1<a.B.eb&&(a.B.Hb-=a.B.Va,a.aa=a.aa-1&255,a.B.Hb>=a.B.Va?(a.ma=128,Wp(a.B,function(b){0<=b?(Xp(a),a.N&&5180==a.N.ja&&(a.ma=0),a.ma|=88):(a.ma=1,a.X=16)},!1)):a.ma=80));return d}m.Ak=function(a,b){return Vp(this,a,b)|Vp(this,a,b)<<8};
function Yp(a,b,c,d){if(a.B&&a.B.Hb>=a.B.Va)if(0>Zp(a.B,c))a.ma=1,a.X=16;else if(1==a.B.eb||a.B.eb==a.B.Va)A(a,1048832)&&x(a,b,c,d,"DATA["+a.B.eb+"]"),1<a.B.eb&&(a.B.Hb-=a.B.Va,a.aa=a.aa-1&255,Xp(a),a.ma=80,a.B.Hb>=a.B.Va&&(a.ma|=8))}m.wm=function(a,b,c){Yp(this,a,b&255,c);Yp(this,a,b>>8&255,c)};m.dl=function(a,b){var c=this.X;x(this,a,null,b,"ERROR",c);return c};m.Bm=function(a,b,c){x(this,a,b,c,"WPREC");this.Pa=b};m.fl=function(a,b){var c=this.aa;x(this,a,null,b,"SECCNT",c);return c};
function Vp(a,b,c){var d=-1;a.B&&(d=Wp(a.B,function(){}),1==a.B.eb||a.B.eb==a.B.Va)&&(A(a,1048832)&&x(a,b,null,c,"DATA["+a.B.eb+"]",d),1<a.B.eb&&(a.B.Ib-=a.B.Va,a.aa=a.aa-1&255,a.B.Ib>=a.B.Va?(a.ma=128,Wp(a.B,function(b){0<=b?(Xp(a),a.N&&5180==a.N.ja&&(a.ma=0),a.ma|=88):(a.ma=1,a.X=16)},!1)):a.ma=80));return d}m.Ak=function(a,b){return Vp(this,a,b)|Vp(this,a,b)<<8};
function Yp(a,b,c,d){if(a.B&&a.B.Ib>=a.B.Va)if(0>Zp(a.B,c))a.ma=1,a.X=16;else if(1==a.B.eb||a.B.eb==a.B.Va)A(a,1048832)&&x(a,b,c,d,"DATA["+a.B.eb+"]"),1<a.B.eb&&(a.B.Ib-=a.B.Va,a.aa=a.aa-1&255,Xp(a),a.ma=80,a.B.Ib>=a.B.Va&&(a.ma|=8))}m.wm=function(a,b,c){Yp(this,a,b&255,c);Yp(this,a,b>>8&255,c)};m.dl=function(a,b){var c=this.X;x(this,a,null,b,"ERROR",c);return c};m.Bm=function(a,b,c){x(this,a,b,c,"WPREC");this.Pa=b};m.fl=function(a,b){var c=this.aa;x(this,a,null,b,"SECCNT",c);return c};
m.zm=function(a,b,c){x(this,a,b,c,"SECCNT");this.aa=b};m.gl=function(a,b){var c=this.Ca;x(this,a,null,b,"SECNUM",c);return c};m.Am=function(a,b,c){x(this,a,b,c,"SECNUM");this.Ca=b};m.bl=function(a,b){var c=this.ya;x(this,a,null,b,"CYLLO",c);return c};m.vm=function(a,b,c){x(this,a,b,c,"CYLLO");this.ya=b};m.al=function(a,b){var c=this.wa;x(this,a,null,b,"CYLHI",c);return c};m.um=function(a,b,c){x(this,a,b,c,"CYLHI");this.wa=b};m.cl=function(a,b){var c=this.ra;x(this,a,null,b,"DRVHD",c);return c};
m.xm=function(a,b,c){x(this,a,b,c,"DRVHD");this.ra=b;this.ma=this.A[this.ra&16?1:0]?this.ma|80:this.ma&-65};m.hl=function(a,b){var c=this.ma;x(this,a,null,b,"STATUS",c);this.ma&64&&(this.ma&=-129);return c};m.tm=function(a,b,c){x(this,a,b,c,"COMMAND");this.Ea=b;this.N&&dg(this.N,14);$p(this)};m.ym=function(a,b,c){x(this,a,b,c,"FDR");this.ga&4&&!(b&4)&&(this.X=1);this.ga=b};
function $p(a){var b=!1,c=a.Ea,d=a.ra&16?1:0,e=a.ra&15,f=a.ya|(a.wa&3)<<8,g=a.Ca,h=a.aa||256;a.hb=-1;a.B=null;a.X=0;a.ma=80;var k=a.A[d];k?(k.de=f,k.kb=e,k.xb=g,k.Hb=h*k.Va,c=144<=c?c:c&240,k.pb=null,k.eb=0,k.errorCode=0,a.hb=d,a.B=k):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.ma=128;Wp(k,function(b){0<=b&&a.N?(Xp(a),a.ma=88):(a.ma=1,a.X=16)},!1);break;case 48:a.ma=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.X=1;b=!0;break;case 145:k.ub=e+1,k.lb=h,b=!0}b&&Xp(a)}
function $p(a){var b=!1,c=a.Ea,d=a.ra&16?1:0,e=a.ra&15,f=a.ya|(a.wa&3)<<8,g=a.Ca,h=a.aa||256;a.hb=-1;a.B=null;a.X=0;a.ma=80;var k=a.A[d];k?(k.de=f,k.kb=e,k.xb=g,k.Ib=h*k.Va,c=144<=c?c:c&240,k.pb=null,k.eb=0,k.errorCode=0,a.hb=d,a.B=k):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.ma=128;Wp(k,function(b){0<=b&&a.N?(Xp(a),a.ma=88):(a.ma=1,a.X=16)},!1);break;case 48:a.ma=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.X=1;b=!0;break;case 145:k.ub=e+1,k.lb=h,b=!0}b&&Xp(a)}
function Xp(a){!a.N||a.ga&2||eg(a.N,14,120)}
function Up(a){a.L=0;var b=aq(a),c=aq(a),d=c&32,e=d>>5,f=c&31,g=aq(a),h=aq(a),k=g<<2&768|h,l=g&63,n=aq(a),q=aq(a),p=a.A[e];p&&(p.de=k,p.kb=f,p.xb=l,p.Hb=n*p.Va);switch(b){case 3:bq(a,p?p.errorCode:4);cq(a,c);cq(a,g);cq(a,h);cq(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=aq(a));)p&&c<p.Qe.length&&(p.Qe[c++]=b);p&&Tp(a,p);b=0;p||a.ka!=e||(a.ka=-1,b=2);bq(a,b|d);b=-1;break;case 224:case 228:bq(a,0|d),b=-1}if(0<=b)switch(void 0===p?b=-1:(p.errorCode=0,p.mk=0),b){case 0:bq(a,0|d);break;case 1:p.Bf=q;bq(a,
function Up(a){a.L=0;var b=aq(a),c=aq(a),d=c&32,e=d>>5,f=c&31,g=aq(a),h=aq(a),k=g<<2&768|h,l=g&63,n=aq(a),q=aq(a),p=a.A[e];p&&(p.de=k,p.kb=f,p.xb=l,p.Ib=n*p.Va);switch(b){case 3:bq(a,p?p.errorCode:4);cq(a,c);cq(a,g);cq(a,h);cq(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=aq(a));)p&&c<p.Qe.length&&(p.Qe[c++]=b);p&&Tp(a,p);b=0;p||a.ka!=e||(a.ka=-1,b=2);bq(a,b|d);b=-1;break;case 224:case 228:bq(a,0|d),b=-1}if(0<=b)switch(void 0===p?b=-1:(p.errorCode=0,p.mk=0),b){case 0:bq(a,0|d);break;case 1:p.Bf=q;bq(a,
0|d);break;case 5:bq(a,0|d);break;case 8:dq(a,p,function(b){bq(a,b|d)});break;case 10:eq(a,p,function(b){bq(a,b|d)});break;case 15:fq(a,p,function(b){bq(a,b|d)});break;default:bq(a,2|d)}}function aq(a){var b=-1;a.L<a.C&&(b=a.W[a.L++]);return b}function bq(a,b){a.L=a.C=0;void 0!==b&&cq(a,b);a.N&&eg(a.N,5);a.ma|=32}function cq(a,b){a.W[a.C++]=b}m.yk=function(a,b,c){void 0===b||0>b?Wp(a,c):c(-1,!1)};m.zk=function(a,b){return void 0!==b&&0<=b?Zp(a,b):-1};
m.Mk=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.eb<a.Re.length?a.Re[a.eb++]=c:(a.errorCode=20,c=-1)):c=-1;return c};m.Nk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.de=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Hb=128<<a.md[3];for(var d=a.Ve=0;d<a.Hb;d++)if(0>Zp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};
m.Mk=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.eb<a.Re.length?a.Re[a.eb++]=c:(a.errorCode=20,c=-1)):c=-1;return c};m.Nk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.de=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Ib=128<<a.md[3];for(var d=a.Ve=0;d<a.Ib;d++)if(0>Zp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};
function dq(a,b,c){b.errorCode=4;if(b.za&&(b.pb=null,a.N)){b.errorCode=0;yl(a.N,3,a,"dmaRead",b);ql(a.N,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function eq(a,b,c){b.errorCode=4;if(b.za&&(b.pb=null,a.N)){b.errorCode=0;yl(a.N,3,a,"dmaWrite",b);ql(a.N,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 fq(a,b,c){b.errorCode=4;b.Re&&b.Re.length==b.Hb||(b.Re=Array(b.Hb));b.eb=0;a.N?(b.errorCode=0,yl(a.N,3,a,"dmaWriteBuffer",b),ql(a.N,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
function fq(a,b,c){b.errorCode=4;b.Re&&b.Re.length==b.Ib||(b.Re=Array(b.Ib));b.eb=0;a.N?(b.errorCode=0,yl(a.N,3,a,"dmaWriteBuffer",b),ql(a.N,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
function Wp(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.pb&&(f=a.eb,d=a.za.read(a.pb,a.eb),a.eb+=g,0<=d))return e=a.pb,b&&b(d,!1,e,f),d;if(b){if(a.za)return a.za.seek(a.de,a.kb,a.xb+a.mg,!1,function(c,k){(a.pb=c)?(e=c,f=a.eb=0,gq(a),d=a.za.read(a.pb,a.eb),a.eb+=g):a.errorCode=20;b(d,k,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d}
function Zp(a,b){if(a.errorCode)return-1;do{if(a.pb&&a.za.write(a.pb,a.eb++,b))break;a.za&&a.za.seek(a.de,a.kb,a.xb+a.mg,!0,function(b){a.pb=b});if(!a.pb){a.errorCode=20;b=-1;break}a.eb=0;gq(a)}while(1);return b}function gq(a){a.xb++;var b=1-a.mg;a.xb>=a.lb+b&&(a.xb=b,a.kb++,a.kb>=a.ub&&(a.kb=0,a.de++))}m.Zl=function(){var a=this.F.M&255;!(this.F.G>>8)&&128<a&&(this.ka=a-128);return!0};m.$l=function(){var a;(a=this.F.G>>8||!this.N)||(a=!(this.N.vc[0].Bd&64));return a?!0:!1};
var Op={800:Kp.prototype.Xl,801:Kp.prototype.Yl,802:Kp.prototype.Wl},Np={496:Kp.prototype.Ak,497:Kp.prototype.dl,498:Kp.prototype.fl,499:Kp.prototype.gl,500:Kp.prototype.bl,501:Kp.prototype.al,502:Kp.prototype.cl,503:Kp.prototype.hl},Qp={800:Kp.prototype.nn,801:Kp.prototype.qn,802:Kp.prototype.pn,803:Kp.prototype.on,807:Kp.prototype.gi,811:Kp.prototype.gi,815:Kp.prototype.gi},Pp={496:Kp.prototype.wm,497:Kp.prototype.Bm,498:Kp.prototype.zm,499:Kp.prototype.Am,500:Kp.prototype.vm,501:Kp.prototype.um,
@ -692,7 +692,7 @@ m.Pb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ka=this.
"";mq(d,a,!0);return!0}return!1}),!0;case "step":return this.qa[b]=c,Ka(c,function(a){var b=!1;qb(d,!0)||(pb(d,!0),b=d.vf(a?1:0),pb(d,!1));return b}),!0}return!1};m.yd=function(){this.Ka&&this.Ka.focus()};function Tq(a){return a.F&&!!(a.F.Za&1)&&!(a.F.ca&131072)}
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.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.Hb)>>>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):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=
@ -713,15 +713,15 @@ function kk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>oq.indexOf(b),!d)){var g=nq[b];
function ob(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.ee+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.hh=function(){this.O("Type ? for help with PCjs Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;mq(this,a)}};
function kq(a,b){var c;if(Tf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=iq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.X||!a.X.length)for(a.X=Array(256),c=0;c<a.X.length;c++)a.X[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.X=[]}m.Ke=function(a){if(!ir(this))return!1;this.F.Ke(a);return!0};
m.vf=function(a,b,c){if(!ir(this))return!1;this.fa=0;do{a||Tf(this)&&Wf(this,this.F.Ga,0);try{var d=this.F.vf(a);0<d&&(this.fa+=d,Zc(this.F,d,!0),Vc(this.F,d),this.pa++)}catch(f){if("number"!=typeof f){var e=f;this.fa=0;ub(this.F,e.stack||e.message)}}}while(this.F.S&3312);!1!==c&&Qc(this.F);this.qd(b||!1);return 0<this.fa};m.Wb=function(a){this.F&&this.F.Wb(a)};m.qd=function(a){void 0===a&&(a=!0);this.aa=iq(this,K(this.F),this.F.va.Z);a&&1!=this.N?jr(this):kr(this)};
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 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.Fb=!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.Fb=!0;this.uc=a;this.xd=b};
m.stop=function(a,b){if(this.la.Fb){this.la.Fb=!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 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+'"':""))}
function lr(a,b){if(void 0!==b)mr(a,b,1,a.A,!0),a.N=0;else for(var c=1;c<a.A.length;c++){var d=a.A[c];if(d.Xd){if(!Rq(a,a.A,d,!0))break;c=0}}}function or(a,b){if(-1!==b){var c=a.Ba&-65536;(b&c)==c&&(b&=1048575)}return b}
function mr(a,b,c,d,e){var f=!1;if(!a.fb++){b=or(a,b);A(a,-2147483632)&&204==If(a.F,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Xd){null!=h.Z&&(h.Da=null);for(var k=or(a,a.dc(h)),l=0;l<c;l++)if(b+l==k){var n,f=!0;h.Xd&&(Rq(a,d,h,!0),e=!0);if(n=h.Dk){for(var f=!1,q=0;q<n.length;q++)if(!qr(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var p=q+1;p<n.length&&n[p].indexOf("else");p++)q++;if(p==n.length){f=!0;break}}a.F.la.Ib||(f=!0)}if(f){e||nr(a,d,g,"hit");break}}}}}a.fb--;return f}
function mr(a,b,c,d,e){var f=!1;if(!a.fb++){b=or(a,b);A(a,-2147483632)&&204==If(a.F,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Xd){null!=h.Z&&(h.Da=null);for(var k=or(a,a.dc(h)),l=0;l<c;l++)if(b+l==k){var n,f=!0;h.Xd&&(Rq(a,d,h,!0),e=!0);if(n=h.Dk){for(var f=!1,q=0;q<n.length;q++)if(!qr(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var p=q+1;p<n.length&&n[p].indexOf("else");p++)q++;if(p==n.length){f=!0;break}}a.F.la.Fb||(f=!0)}if(f){e||nr(a,d,g,"hit");break}}}}}a.fb--;return f}
function rr(a,b,c,d){for(var e=iq(a,b.Ra,b.Z,b.Da,b.type),f=a.Qa(b,1),g=4,h=0,k=!1,l=!1;(102==f||103==f)&&g--;)102==f?k||(b.Rb=!b.Rb,k=!0):l||(b.pc=!b.pc,l=!0),h++,f=a.Qa(b,1);var g=-1,n=qq,k=a.Ia[f],l=k[0];176==l&&(l=a.Qa(b,1),k=Aq[l]||xq,f|=l<<8,l=k[0]);if(36==l){var g=a.Qa(b,1),q;q=null;var p=g>>3&7,z=(3>(g>>6&3)?0:48)+p;(217==f||219==f)&&52<=z&&(z=p<<4|g&7);(p=Bq[f])&&(q=p[z]);q&&(n=rq,k=q,l=k[0])}l>=n.length&&(g=a.Qa(b,1),k=Cq[l-n.length][g>>3&7],l=k[0]);n=n[l];p=k.length-1;q="";b.Rb&&(18==l?
n="CWDE":28==l?n="CDQ":104<=l&&107>=l&&(n+="D"));if(164<=f&&167>=f||170<=f&&175>=f)p=0,b.Rb&&"W"==n.slice(-1)&&(n=n.slice(0,-1)+"D");for(var f=null,z=!0,F=1;F<=p;F++){var v,E;v="";E=k[F];if(void 0!==E){null==f&&(f=E>>14);80==l&&(2==f?q="[%800]":3==f&&(q="ES:["+(b.pc?"E":"")+"DI]"));var H=E&15;if(0!=H)if(8==H)z=!1;else{var L=E&240;if(128<=L)if(0>g&&(g=a.Qa(b,1)),160>L){v=a;var V=p,H=b,P="",bb=g>>6,ia=g&7;if(3>bb){var ja=void 0,L=0==n.indexOf("FI");if(!bb&&(!H.pc&&6==ia||H.pc&&5==ia))bb=2;else{if(H.pc)if(4!=
ia)ia+=8;else{var P=v,ja=bb,Ha=H,Xa=P.Qa(Ha,1),Ba=Xa>>6,Vb=Xa>>3&7,Xa=Xa&7,wa="";if(ja||5!=Xa)wa=vq[Xa+8];4!=Vb&&(wa&&(wa+="+"),wa+=vq[Vb+8],Ba&&(wa+="*"+(1<<Ba)));ja||5!=Xa||(wa&&(wa+="+"),wa+=r(P.oa(Ha,4)));P=wa}P||(P=vq[ia])}1==bb?(ja=v.Qa(H,1),ja&128?(ja=ja<<24>>24,P+="-"+r(-ja,2)):P+="+"+r(ja,2)):2==bb&&(P&&(P+="+"),H.pc?(ja=v.oa(H,4),P+=r(ja)):(ja=v.na(H,2),P+=r(ja,4)));P="["+P+"]";if(1==V){v="";E&=15;4==E&&(E=H.Rb?5:3);switch(E){case 7:v="FAR";break;case 1:v="BYTE";break;case 3:if(L){v="INT16";
@ -731,7 +731,7 @@ q.length&&(q+=",");q+=v||"???"}}}g="";k=Sq(e)+" ";if(-1!==e.Da&&-1!==b.Da){do if
function sr(a,b,c,d){var e=c&240;if(192==e){if(5<b||4<=b&&80386>a.F.ja)return"??";b+=16}else if(208==e)b+=32;else if(224==e)b+=40;else if(240==e)b+=48;else if(a=c&15,3<=a&&(8>b&&(b+=8),5==a||4==a&&d.Rb))b+=16;return uq[b]}
function vr(a,b){var c;switch(b){case "V":c=uf(a.F);break;case "D":c=a.F.ca&1024;break;case "I":c=a.F.ca&512;break;case "T":c=a.F.ca&256;break;case "S":c=tf(a.F);break;case "Z":c=sf(a.F);break;case "A":c=rf(a.F);break;case "P":c=qf(a.F);break;case "C":c=pf(a.F);break;default:c=0}return b+(c?"1":"0")+" "}function Hq(a){return r(a,a&-65536?8:4)}function wr(a,b){8<=b&&15>=b&&4<a.Ja&&(b+=16);var c=uq[b];32==b&&80286==a.F.ja&&(c="MS");return c+"="+fr(a,b)+" "}
function xr(a,b,c){return b.lc+"="+r(b.Z,4)+(c?"["+r(b.Aa,a.Ca)+","+Hq(b.Ta)+"]":"")}function yr(a,b,c,d,e){return b+"="+(null!=c?r(c,4):"")+"["+r(d,a.Ca)+","+r(e-d,4)+"]"}
function zr(a,b){var c;void 0===b&&(b=Tq(a));c=wr(a,8)+wr(a,11)+wr(a,9)+wr(a,10)+(4<a.Ja?"\n":"")+wr(a,12)+wr(a,13)+wr(a,14)+wr(a,15)+"\n"+xr(a,a.F.ta,b)+" "+xr(a,a.F.vb,b)+" "+xr(a,a.F.Xa,b)+" ";if(b){var d="TR="+r(a.F.Sa.Z,4),e=a.ea,e="A20="+(e.V||e.xg!=e.Gb?"OFF ":"ON ");80386>a.F.ja&&(d="\n"+d,c+=e,e="");c+="\n"+xr(a,a.F.va,b)+" ";80386<=a.F.ja&&(e+="\n",c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+"\n");c+=yr(a,"LD",a.F.Bc.Z,a.F.Bc.Aa,a.F.Bc.Aa+a.F.Bc.Ta)+" "+yr(a,"GD",null,a.F.Ec,a.F.Ad)+" "+yr(a,"ID",
function zr(a,b){var c;void 0===b&&(b=Tq(a));c=wr(a,8)+wr(a,11)+wr(a,9)+wr(a,10)+(4<a.Ja?"\n":"")+wr(a,12)+wr(a,13)+wr(a,14)+wr(a,15)+"\n"+xr(a,a.F.ta,b)+" "+xr(a,a.F.vb,b)+" "+xr(a,a.F.Xa,b)+" ";if(b){var d="TR="+r(a.F.Sa.Z,4),e=a.ea,e="A20="+(e.V||e.xg!=e.Hb?"OFF ":"ON ");80386>a.F.ja&&(d="\n"+d,c+=e,e="");c+="\n"+xr(a,a.F.va,b)+" ";80386<=a.F.ja&&(e+="\n",c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+"\n");c+=yr(a,"LD",a.F.Bc.Z,a.F.Bc.Aa,a.F.Bc.Aa+a.F.Bc.Ta)+" "+yr(a,"GD",null,a.F.Ec,a.F.Ad)+" "+yr(a,"ID",
null,a.F.Mc,a.F.Td)+" ";c=c+(d+" "+e)+wr(a,32);80386<=a.F.ja&&(c+=wr(a,34)+wr(a,35))}else 80386<=a.F.ja&&(c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+" ");return c+=wr(a,23)+vr(a,"V")+vr(a,"D")+vr(a,"I")+vr(a,"T")+vr(a,"S")+vr(a,"Z")+vr(a,"A")+vr(a,"P")+vr(a,"C")}var Ar={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Br(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}
@ -744,7 +744,7 @@ function Er(a,b,c,d){var e={},f=a.B[b].ri,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0
function Gr(a,b){if("?"==b)a.O("frequency commands:"),a.O("\tclear\tclear all frequency counts");else{var c,d=0;if(a.X)if("clear"==b){for(c=0;c<a.X.length;c++)a.X[c]=[c,0];a.O("frequency data cleared");d++}else if(void 0!==b)a.O("unknown frequency command: "+b),d++;else{var e=a.X.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],g=e[c][1];g&&(a.O((qq[a.Ia[f][0]]+" ").substr(0,5)+" ("+t(f)+"): "+g+" times"),d++)}}d||a.O("no frequency data available")}}
function Hr(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Dr(a)||a.O("no variables"),!0;if(!c[2])return Dr(a,c[1]);if(!c[3])return delete a.wa[c[1]],!0;var d=ar(a,c[3]);return void 0!==d?(a.wa[c[1]]=d,!0):!1}a.O("invalid assignment:"+b);return!1}
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 "+
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.Ib--;)(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=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),
@ -762,13 +762,13 @@ a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),
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],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)),
a.ea,Da={};Da.bk=(We&-4194304)>>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Hb)>>>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.Hb)>>>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,
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.Fb)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"==