The shared expression parser now adapts to the (critically) different precedence of MACRO-10 operators

This commit is contained in:
Jeff 2017-03-30 11:53:21 -07:00 committed by Jeff Parsons
commit 1d1ac0cb7b
3 changed files with 252 additions and 215 deletions

View file

@ -569,11 +569,11 @@ function Ns(a,b){var c,d=a.oa,e=a.C;if(e)if(e.La==os)d=Ds;else if(e.La>=aq){var
350>f?d=m?nt:ot:480<=f&&(d=a.ga==Tl?pt:qt):d=m?7-d:rt:d-=m?2:0);c=et(a)}}else e.Xc&8&&(e.Xc&2?(d=e.Xc&16?rt:st,e.Xc&4||--d):(d=e.Xc&1?Bs:tt,e.Xc&4&&--d));else a.oa=null,null==d&&(d=a.da);if(!Gs(a,d,b))return!1;ft(a,c);return!0}
function Gs(a,b,c){if(null!=b&&(b!=a.oa||c)){a.Ad=0;a.oa=b;a.Ga=!1;b=a.C||(b==Ds?a.Y:a.K);if(b!=a.C||b.cb!=a.cb||b.Ob!=a.Ob){bt(a);if(a.cb){if(!Bc(a.ka,a.cb,a.Ob))return!1;a.C&&(a.C.rc=!1)}a.C=b;b.rc=!0;a.cb=b.cb;a.Ob=b.Ob;if(!oc(a.ka,b.cb,b.Ob,3,b===a.A?b:null))return!1}a:{a.I=0;a.F=a.Fb;a.J=a.sc;a.Ma=a.F;a.Eb=hs[Ds][2];b=0;if(c=hs[a.oa])a.F=c[0],a.J=c[1],a.Eb=c[2],b=c[3],a.I=c[4],4!=a.ga&&7!=a.ga||a.C!==a.A||a.I!=Vs||(7==(a.A.Wa[es]&31)?a.J=350>Jr(a.A,Vr)?43:50:a.I=a.La);a.Wc=a.F*a.J|0;a.Vc=a.Wc/
a.Eb|0;a.Xa=a.Vc;a.Pb=0;void 0!==b&&(a.Xa=(a.Xa<<1)+b|0,a.Pb=a.Xa+b>>1);if(a.va.length){a.qa=a.Z/a.F|0;a.ta=a.la/a.J|0;if(a.I){b=a.va[a.I];if(!b)break a;c=a.va[a.I<<1];a.Uc&&80==a.F?c&&a.qa>=3*c.Fc>>2&&(a.I<<=1,b=c):(c&&a.qa>=c.Fc&&(a.I<<=1,b=c),a.Uc||(a.qa=b.Fc,a.ta=b.Gc));a.Ya=a.ab=0;b&&(a.Ya=a.F*b.Fc,a.ab=a.J*b.Gc)}else a.qa=a.ta=1,a.Ya=a.F,a.ab=a.J;a.Ha=a.L.createImageData(a.Ya,a.ab);a.Ba=document.createElement("canvas");a.Ba.width=a.Ya;a.Ba.height=a.ab;a.Ca=a.Ba.getContext("2d");a.vc=a.zc=0;
a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0<b&&(a.vc=b>>1,a.Qb-=b);0<c&&(a.zc=c>>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function vt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);vt(a)}
function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Ut&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b,
a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0<b&&(a.vc=b>>1,a.Qb-=b);0<c&&(a.zc=c>>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Tt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);Tt(a)}
function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Vt&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b,
c+f,h.Fc,g)):(a.za&&a.za!==a.ta&&(f=f*a.ta/a.za|0,g=g*a.ta/a.za|0),a.L.fillStyle=h.Be[d],a.L.fillRect(b,c+f,a.qa,g)))}
function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)vt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.cb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye<d.fi){var m=(d.Wa[12]<<8)+d.Wa[13]|0;d.vd!==m&&(d.vd=m,ut(a));d.Ye=0}m=d.vd;a.I&&(m<<=1);c+=m;m=a.Xa;a.La>=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&&
(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0<m&&v<b.aa.length;)b.aa[v].Oa&&(b.aa[v].Oa=p=!1,b.aa[v].qj=!0),m-=b.B,v++;b=p}if(b){if(!e)return;if(!a.xa){f=a.aa-d.vd;if(0>f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Ut<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c<k&&d<g;)p=Ic(a.ka,c),p|=h,p&e&&(a.xa++,p&=b),d==m&&(p|=a.Aa&1?ct<<8:0),a.ma&&p===a.M[d]||(dt(a,d%a.F,d/a.F|0,p,a.Ca),
function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)Tt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.cb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye<d.fi){var m=(d.Wa[12]<<8)+d.Wa[13]|0;d.vd!==m&&(d.vd=m,ut(a));d.Ye=0}m=d.vd;a.I&&(m<<=1);c+=m;m=a.Xa;a.La>=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&&
(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0<m&&v<b.aa.length;)b.aa[v].Oa&&(b.aa[v].Oa=p=!1,b.aa[v].qj=!0),m-=b.B,v++;b=p}if(b){if(!e)return;if(!a.xa){f=a.aa-d.vd;if(0>f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Vt<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c<k&&d<g;)p=Ic(a.ka,c),p|=h,p&e&&(a.xa++,p&=b),d==m&&(p|=a.Aa&1?ct<<8:0),a.ma&&p===a.M[d]||(dt(a,d%a.F,d/a.F|0,p,a.Ca),
a.M[d]=p,f++),c+=2,d++;a.ma=!0;f&&a.Ca&&a.L.drawImage(a.Ba,0,0,a.Ya,a.ab,a.vc,a.zc,a.Qb,a.Rb);at(a)}}else if(a.Pb){var g=k,u,k=c,d=a.xa=0,f=a.Eb,e=16==f?65536:196608,h=16==f?1:2;b=Ps(a,h);for(var p=m=0,v=a.F,E=0,K=a.J,H=0;k<g;){u=Ic(a.ka,k);if(a.ma&&u===a.M[d])m+=f;else{a.M[d]=u;u=u>>8|(u&255)<<8;var I=e,T=16;m<v&&(v=m);for(var L=0;L<f;L++){var ua=(u&(I>>=h))>>(T-=h);$s(a.Ha,m++,p,b[ua])}m>E&&(E=m);p<K&&(K=p);p>=H&&(H=p+1)}k+=2;d++;if(m>=a.F){m=0;p+=2;if(p>a.J)break;p==a.J&&(p=1,k=c+a.Pb)}}a.ma=!0;
v<a.F&&(a.Ca.putImageData(a.Ha,0,0,v,K,E-v,H-K),a.L.drawImage(a.Ba,0,0,a.F,a.J,0,0,a.Z,a.la))}else if(a.Pc){g=h;f=a.xa=0;e=Ps(a,8);h=a.C.fd;m=b=0;p=a.F;v=0;E=a.J;K=0;H=a.C.$d[4]&8?4:1;u=a.C.Cc[19]&15;for(I=a.Ma>a.F?a.Ma-a.F-u>>3:0;c<k;){d=h[c-g];L=4;u||(a.ma&&d===a.M[f]?(b+=L,L=0):a.M[f]=d,f++);if(L){b<p&&(p=b);for(T=0;T<L;T++)$s(a.Ha,b++,m,e[d&255]),d>>=8;b>v&&(v=b);m<E&&(E=m);m>=K&&(K=m+1)}c+=H;if(b>=a.F){b=0;if(++m>a.J)break;c+=I}}u||(a.ma=!0);p<a.F&&(a.Ca.putImageData(a.Ha,0,0,p,E,v-p,K-E),a.L.drawImage(a.Ba,
0,0,a.F,a.J,0,0,a.Z,a.la))}else{g=h;d=a.xa=0;f=Ps(a);e=a.C.fd;b=h=0;m=a.F;p=0;v=a.J;E=0;K=a.C.Cc[19]&15;for(H=a.Ma>a.F?a.Ma-a.F-K>>3:0;c<k;){u=c++-g;u=e[u];T=8;K?h?(I=a.F-h,T>I&&(T=I)):(u<<=K,T-=K,a.ma=!1):(a.ma&&u===a.M[d]?(h+=T,T=0):a.M[d]=u,d++);if(T){h<m&&(m=h);for(I=0;I<T;I++)L=Xt[u&2155905152]||0,$s(a.Ha,h++,b,f[L]),u<<=1;h>p&&(p=h);b<v&&(v=b);b>=E&&(E=b+1)}if(h>=a.F){h=0;if(++b>a.J)break;c+=H}}K||(a.ma=!0);m<a.F&&(a.Ca.putImageData(a.Ha,0,0,m,v,p-m,E-v),a.L.drawImage(a.Ba,0,0,a.F,a.J,0,0,a.Z,
@ -591,7 +591,7 @@ l.Gn=function(a,b,c){c&&!t(this)||w(this,a,b,c,this.K.type+".COLOR");this.K.Ze!=
function $t(a,b,c,d,e){if(b.ec<b.oh){if(cu||b.Wa[b.ec]!==d)e&&!t(a)||w(a,c,d,e,"CRTC."+b.gg[b.ec]),b.Wa[b.ec]=d;if(12==b.ec||13==b.ec)Wt(a,b)&1?(c=(b.Wa[12]<<8)+b.Wa[13]|0,b.vd!==c&&(b.vd=c,ut(a))):b.Ye||(b.Ye=b.fi);(9==b.ec&&8!=b.Fg||b.ec==Vr&&223==d)&&Ns(a,!0);Os(a)}}function au(a,b,c){var d=b.Xc;w(a,b.port+4,null,c,"MODE",d);return d}function bu(a,b,c){var d=Wt(a,b);b===a.A?(d|=b.fa&48^48,b.Ke=!1):d=(b.fa^=9)|240;b.fa=d;w(a,b.port+6,null,c,b===a.A?"STATUS1":"STATUS",d);return d}
var cu=!0,tt=1,jt=2,Bs=3,st=5,rt=6,Ds=7,nt=13,ot=14,ht=15,it=16,pt=17,qt=18,kt=19,lt=20,mt=21,gt=255,Ws=1,Vs=3,os=Ws,ls=Vs,aq=5,cq=7,gs={mda:[os,Ds],cga:[ls,Bs],ega:[aq,Bs],vga:[cq,Bs]},Gr={2:{xg:15700,wg:208,Dg:85,Eg:96}};Gr[Tl]={xg:18432,wg:364,Dg:85,Eg:96};Gr[4]={xg:21850,wg:364,Dg:85,Eg:96};Gr[7]={xg:16700,wg:480,Dg:85,Eg:83};var Cs={6:[1,Tl,!0],7:[2,Tl,!0],8:[6,Tl,!0],9:[4,Tl,!0],10:[Tl,1,!0],11:[Tl,2,!0],0:[1,Tl,!1],1:[2,Tl,!1],2:[6,Tl,!1],3:[4,Tl,!1],4:[Tl,1,!1],5:[Tl,2,!1]},hs=[];
hs[tt]=[40,25,1,0,Vs];hs[Bs]=[80,25,1,0,Vs];hs[4]=[320,200,8,192];hs[rt]=[640,200,16,192];hs[Ds]=[80,25,1,0,Ws];hs[nt]=[320,200,8];hs[ot]=[640,200,8];hs[ht]=[640,350,8];hs[it]=[640,350,8];hs[pt]=[640,480,8];hs[qt]=[640,480,8];hs[kt]=[320,200,1];hs[lt]=[320,240,4];hs[mt]=[320,400,4];hs[0]=hs[tt];hs[jt]=hs[Bs];hs[st]=hs[4];
var Ks=0,Is=7,Ms=8,Js=0,Ls=112,Hs=128,Ut=256,ct=512,Xs=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Ys=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Qs=[[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]],Ss=[2,4,6],Rs=[3,5,Is],Ts=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],
var Ks=0,Is=7,Ms=8,Js=0,Ls=112,Hs=128,Vt=256,ct=512,Xs=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Ys=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Qs=[[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]],Ss=[2,4,6],Rs=[3,5,Is],Ts=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],
fs=[0,255,65280,65535,16711680,16711935,16776960,16777215,-16777216,-16776961,-16711936,-16711681,-65536,-65281,-256,-1],Xt=[0];Xt[128]=1;Xt[32768]=2;Xt[32896]=3;Xt[8388608]=4;Xt[8388736]=5;Xt[8421376]=6;Xt[8421504]=7;Xt[-2147483648]=8;Xt[-2147483520]=9;Xt[-2147450880]=10;Xt[-2147450752]=11;Xt[-2139095040]=12;Xt[-2139094912]=13;Xt[-2139062272]=14;Xt[-2139062144]=15;var kr=[];kr[os]=["MDA",948,720896,4096,0,Tl];kr[ls]=["CGA",980,753664,16384,0,2];kr[aq]=["EGA",980,753664,16384,65536,4];
kr[cq]=["VGA",980,753664,16384,262144,7];
var is=0,xs=1,ws=2,ms={948:Q.prototype.Cm,949:Q.prototype.Bm,952:Q.prototype.Dm,954:Q.prototype.Em},ns={948:Q.prototype.fo,949:Q.prototype.eo,952:Q.prototype.ho},ps={980:Q.prototype.gm,981:Q.prototype.fm,984:Q.prototype.hm,985:Q.prototype.em,986:Q.prototype.im},qs={980:Q.prototype.In,981:Q.prototype.Hn,984:Q.prototype.Jn,985:Q.prototype.Gn},rs={960:Q.prototype.am,961:Q.prototype.rl,962:Q.prototype.Om,964:Q.prototype.Mm,965:Q.prototype.Lm,974:Q.prototype.vm,975:Q.prototype.um},ss={954:Q.prototype.Mk,
@ -713,182 +713,183 @@ function kx(a,b){if(a.errorCode)return-1;do{if(a.eb&&a.sa.write(a.eb,a.Sa++,b))b
var Sw="Hard Drive",Vw=["XTC","ATC","COMPAQ"],Tw=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,
6],19:[1023,8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}],Lw=496,ox=1,rx=0,ix=16,qx=3,px=15,lx=16,hx=1,gx=8,fx=16,Pw=64,dx=128,ux=16,vx=32,wx=48,xx=64,yx=
112,sx=144,zx=145,tx=240,Ax=2,nx=4,Gx=0,Hx=2,Kx=0,Lx=1,Cx=3,Mx=5,Nx=8,Px=10,$w=12,Rx=15,Ix=224,Jx=228,Rw=0,Ex=4,Tx=20,Qw=0,ax=1,Xw=2,Yw=4,Zw=8,Ww=32,Iw={800:Gw.prototype.Tm,801:Gw.prototype.Um,802:Gw.prototype.Sm},Hw={496:Gw.prototype.nl,497:Gw.prototype.$l,498:Gw.prototype.bm,499:Gw.prototype.cm,500:Gw.prototype.Yl,501:Gw.prototype.Xl,502:Gw.prototype.Zl,503:Gw.prototype.dm},Kw={800:Gw.prototype.ro,801:Gw.prototype.uo,802:Gw.prototype.to,803:Gw.prototype.so,807:Gw.prototype.hi,811:Gw.prototype.hi,
815:Gw.prototype.hi},Jw={496:Gw.prototype.An,497:Gw.prototype.Fn,498:Gw.prototype.Dn,499:Gw.prototype.En,500:Gw.prototype.zn,501:Gw.prototype.yn,502:Gw.prototype.Bn,503:Gw.prototype.xn,1014:Gw.prototype.Cn};$a(function(){for(var a=zb(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new Gw(d);yb(d,c)}});function Vx(a){mb.call(this,"Debugger",a);this.F=+a.base||16;this.Ha=null;this.qa=["{","}"];this.Aa=["[","]"];this.Y=this.ha=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
815:Gw.prototype.hi},Jw={496:Gw.prototype.An,497:Gw.prototype.Fn,498:Gw.prototype.Dn,499:Gw.prototype.En,500:Gw.prototype.zn,501:Gw.prototype.yn,502:Gw.prototype.Bn,503:Gw.prototype.xn,1014:Gw.prototype.Cn};$a(function(){for(var a=zb(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new Gw(d);yb(d,c)}});function Vx(a){mb.call(this,"Debugger",a);this.F=+a.base||16;this.Ha=null;this.ha=["{","}"];this.Aa=["[","]"];this.Y=this.la=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
ba(Vx,mb);Vx.prototype.gh=function(){return-1};Vx.prototype.hh=function(){};Vx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Vx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b};
function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Wx(e))}return!0}
function Yx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.F;for(a.F=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Zx(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Yx(a,b,p,c-1,a.F,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.F=2;continue}if("^O"==k){a.F=8;continue}if("^D"==k){a.F=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
k){p=p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;u.length&&$x[k]<=$x[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
function ay(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+by(a,h,-1)+b.substr(k)}return b}
function cy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}"));b=ay(a,b,'"',7,5,c);if(!b)return d;b=ay(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&dy(a,null,d)}return d}
function ey(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=cy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?by(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null==
k){p=p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;p="<"==a.ha[0]?$x:ay;if(!p[k]){m=!0;break}u.length&&p[k]<=p[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
function by(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+cy(a,h,-1)+b.substr(k)}return b}
function dy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=by(a,b,'"',7,5,c);if(!b)return d;b=by(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d}
function fy(a,b){var c,d=a.ha[0],e=a.ha[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=dy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?cy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.la}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(b,1<b.length?a.F:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Wx(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=Wx(f)}else d||a.P("invalid "+(c?c:"value")+": "+b);else d||a.P("missing "+(c||"value"));return f}
function dy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?by(a,c,32,8,1)+" "+c+".":by(a,c,32,16,1)+" "+by(a,c,32,8,1)+" "+by(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return dy(a,b,a.ga[b]);var c=0;for(b in a.ga)dy(a,b,a.ga[b]),c++;return 0<c}
function by(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.F){case 2:b=qa(b,0<c?c:0,e);break;case 8:b=ra(b,0<c?(c+2)/3|0:0,!!e);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=99999>=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var $x={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function gy(a){Vx.call(this,a);this.ta=4;this.la=5;this.wa=1048575;this.L=hy(this);this.Ta=hy(this);this.aa=hy(this);this.D=[];this.B=this.Z=this.N=[];iy(this);this.xa=0;jy(this);this.Ba={};ky(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ly(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ly(b,a)})}ba(gy,Vx);l=gy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ky(this,a);this.la=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.oa=my;80186<=this.H.ca&&(this.oa=my.slice(),this.oa[15]=ny,80286<=this.H.ca&&(this.oa[15]=oy,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){py(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=qy(d,
b,ry),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.la)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=sy[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.la)+" limit="+ty(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+
" dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=hy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(uy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+vy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){py(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+
a);break a}a=qy(d,b,ry)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.la));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?wy:xy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;m<a.Nb&&1023>u;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4<p)p=4;for(e=0;e<p;e++)c&&(c=","+c),c=qa(v&255,8)+c,v>>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I=
null;this.Ma=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.V=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function yy(a,b,c,d,e,f){b=vy(a,b);var g=qy(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=zy(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)}
function Ay(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=By(a,b,4),h=By(a,b,4),k=hy(a,By(a,b,4),a.Yc(b,2));b=hy(a,By(a,b,4),a.Yc(b,2));b=vy(a,b).toUpperCase();var k=vy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=zy(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Cy(a,b,c){c=vy(a,c).toUpperCase();Dy(a,c,b)}
l.Ym=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=hy(this,z(a)+12,a.Y.U);switch(By(this,d)){case 336:Ay(this,hy(this,a.G,b),!c,!!this.I)}}return!0};
l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:yy(this,hy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Dy(this,null,
d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=hy(this,b.L,e),this.Ma++?(this.P("TRAPFAULT failed"),Ey(this,this.B,a,!0,!0),this.Ma=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Fy(a)),this.Gd(this.B,a,!0),jy(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:Ay(this,hy(this,b.G,f),!g,!!this.I);break;case 338:Cy(this,d,hy(this,b.J,f))}this.Ca=!1;return!this.I};
function ey(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?cy(a,c,32,8,1)+" "+c+".":cy(a,c,32,16,1)+" "+cy(a,c,32,8,1)+" "+cy(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function gy(a,b){if(b)return ey(a,b,a.ga[b]);var c=0;for(b in a.ga)ey(a,b,a.ga[b]),c++;return 0<c}
function cy(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.F){case 2:b=qa(b,0<c?c:0,e);break;case 8:b=ra(b,0<c?(c+2)/3|0:0,!!e);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=99999>=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function hy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.L=iy(this);this.Ta=iy(this);this.aa=iy(this);this.D=[];this.B=this.Z=this.N=[];jy(this);this.xa=0;ky(this);this.Ba={};ly(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return my(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return my(b,a)})}ba(hy,Vx);l=hy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ly(this,a);this.ma=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.qa=ny;80186<=this.H.ca&&(this.qa=ny.slice(),this.qa[15]=oy,80286<=this.H.ca&&(this.qa[15]=py,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){qy(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=ry(d,
b,sy),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ma)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=ty[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.ma)+" limit="+uy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+
" dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=iy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(vy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+wy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){qy(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+
a);break a}a=ry(d,b,sy)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.ma));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?xy:yy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;m<a.Nb&&1023>u;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4<p)p=4;for(e=0;e<p;e++)c&&(c=","+c),c=qa(v&255,8)+c,v>>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I=
null;this.Ma=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.V=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function zy(a,b,c,d,e,f){b=wy(a,b);var g=ry(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=Ay(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)}
function By(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=Cy(a,b,4),h=Cy(a,b,4),k=iy(a,Cy(a,b,4),a.Yc(b,2));b=iy(a,Cy(a,b,4),a.Yc(b,2));b=wy(a,b).toUpperCase();var k=wy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=Ay(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Dy(a,b,c){c=wy(a,c).toUpperCase();Ey(a,c,b)}
l.Ym=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=iy(this,z(a)+12,a.Y.U);switch(Cy(this,d)){case 336:By(this,iy(this,a.G,b),!c,!!this.I)}}return!0};
l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:zy(this,iy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Ey(this,null,
d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=iy(this,b.L,e),this.Ma++?(this.P("TRAPFAULT failed"),Fy(this,this.B,a,!0,!0),this.Ma=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Gy(a)),this.Gd(this.B,a,!0),ky(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:By(this,iy(this,b.G,f),!g,!!this.I);break;case 338:Dy(this,d,iy(this,b.J,f))}this.Ca=!1;return!this.I};
l.$m=function(a){var b=this.H,c=b.D&255,d=b.D>>8&255,e=b.G&65535,f=b.I&65535,g=b.L&65535,h=b.J&65535,k=b.oa.U;if(null==this.V){if(67==d){if(609437257==b.ia((b.Z.U<<4)+10)||1111835735==b.ia((b.Z.U<<4)+95))return!0;Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x68 handling enabled",128),a.I=a.V=!0):(Lb(a,"INT 0x68 monitoring enabled",128),a.V=!1)}}(this))}return!0}switch(d){case 67:this.V&&(b.D=b.D&-65536|62342);break;case 68:this.V&&(a=Wd(b.Z,this.yl.bind(this)))&&
(b.J=a[0],ne(b,a[1]));break;case 72:Dy(this,null,e);break;case 80:32==c?yy(this,hy(this,h,k),0,f,!0,!!this.V):128>c?yy(this,hy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):Ay(this,hy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1};
l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ly(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.C.length-1&&(b=d.C[++d.A])):40==a.keyCode&&(0<d.A?b=d.C[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.na[b]=c,Ya(c,function(){if(d.va){var a=d.va.value;
d.va.value="";ly(d,a,!0);return!0}return!1}),!0;case "step":return this.na[b]=c,Ya(c,function(a){var b=!1;Jb(d,!0)||(Kb(d,!0),b=Gy(d,a?1:0),Kb(d,!1));return b}),!0}return!1};l.ld=function(){this.va&&this.va.focus()};function Hy(a){return!(!(a.H&&a.H.qa&1)||a.H.O&131072)}
function qy(a,b,c){var d=Hy(a)?ry:Iy;c||(c=d);if(c==d){if(b===a.H.Z.U)return a.H.Z;if(b===a.H.Ca.U)return a.H.Ca;if(b===a.H.oa.U)return a.H.oa;if(b===a.H.Y.U)return a.H.Y;if(80386<=a.H.ca){if(b===a.H.Ga.U)return a.H.Ga;if(b===a.H.Ha.U)return a.H.Ha}if(a.Da&&c==ry||!a.ab)return null}a=a.ab;if(c!=ry)a.mh(b),a.Ka=65535,a.Nb=65536;else{var e;c=a.gc;b&=65535;b&4?(d=c.Eb.ua,e=d+c.Eb.Ka|0):(d=c.Kb,e=c.Pc);d=d+(b&65528)|0;if(e-d|0){e=xg(c,d+0,2);var f=xg(c,d+4,2),g=f&7936,h=xg(c,d+2,2)|(f&255)<<16,k=xg(c,
d+6,2);80386<=c.ca&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.U=b;a.ua=h;a.Ka=e;a.Nb=(e>>>0)+1;a.mb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=qy(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Jy)|0,b&&Ky(this,a,b));return c};
l.jb=function(a,b){return a.Hb?By(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Jy)|0,b&&Ky(this,a,b));return c};function By(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Jy)|0,c&&Ky(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Jy)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&Ky(this,a,c);d||Bd(this.H,!0)}};
l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Jy?this.H.fb(d,b):Jc(this.ka,d,b),c&&Ky(this,a,c),Bd(this.H,!0))};function hy(a,b,c,d,e,f,g){return Ly(a,{},b,c,d,e,f,g)}function Ly(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Hy(a)?ry:Iy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function My(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Ny(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}}
function Oy(a,b,c){if(null!=b.U&&(a=qy(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0<a.Nb)return!1;c&&(b.Ja=d,b.Hb=4==a.W,b.dc=4==a.Jc)}return!0}
function Py(a,b,c,d){var e,f=c?a.L:a.Ta;c=d?Qy:f.type;var g=f.Ja,h=f.U,f=f.ya;if(void 0!==b){b=ey(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Iy;break;case "#":c=ry;break;case "%":c=Ry;e=b.charAt(1);"%"==e&&(c=Jy,e+=e);g=0;h=null;break;default:0<=f&&(c=Qy),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 m=e.toUpperCase(),p=0;p<a.D.length;p++){e=a.D[p];var v=e.Fd[m];if(void 0!==v){m=v.o;void 0!==m&&(k=v.s,void 0===k&&(k=e.U),k=hy(a,m,k,v.p));
break}}if(e=k)return e;0>f?null!=h?(g=cy(a,b,void 0),f=null):(f=cy(a,b,void 0),null==f&&(g=null)):(h=cy(a,b.substring(0,f),void 0),g=cy(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=hy(a,g,h,f,c),d||Oy(a,e,!0)||(a.P("invalid offset: "+Fy(e)),e=null));return e}function Sy(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Py(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")};
function Ky(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Oy(a,b)||(b.Ja=0,b.ya=null))}function uy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Fy(a){var b;switch(a.type){case Iy:case Ty:b="&";break;case ry:b="#";break;case Ry:b="%";break;case Jy:b="%%";break;default:b=a.U?"":"%"}return a.type>=Ry||null==a.U?b+q(a.ya):b+uy(a.Ja,a.U,a.dc)}
function vy(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
function py(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Py(a,c));if(-1===e){a.P("invalid address: "+c);return}f=e>>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<<a.H.hb,8)+" %%"+q(d.ya,8)+" "+sa(d.ve)+" "+sa(d.size)+
" "+h),c!=ad&&c!=bd&&(c=-1),h=0),e+=a.H.Ng,f++}function Uy(a,b,c){a=q(a)+" "+q(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-")+(b&4?"U":"S");a+=b&2?"W":"R";return a+=b&1?"P":"N"}function zy(a,b,c){var d=[],e;for(e=null;e=Wb(a.pa,"Disk",e);){var f=e,g=b,h=c,d={};if(f.C)for(var k=0;k<f.C.length;k++){var m=f.C[k];if(m.Rf==g&&(m=m.nd[h])){for(var p in m.ee)f=m.ee[p],d[f[1]]=f[0];break}}if(d.length)break}return d}
function ky(a,b){a.ba=a;a.ic=a.wl=1073741824;a.za=null;b=a.Cg(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb)0<=Ha(b,c)&&(a.ic|=Rb[c],a.P(c+" messages enabled"));jy(a)}function zl(a,b,c){for(var d in Rb)if(b==Rb[d]){a.Ba[d]=c;break}}l.gh=function(a,b){var c;a=a.toUpperCase();null==b?c=Ha(Vy,a):(c=Ha(Vy,a.substr(b,3)),0>c&&(c=Ha(Vy,a.substr(b,2))));return c};
function Wy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Xy:case Yy:case Zy:case $y:case az:case bz:case cz:case dz:c=2;break;case ez:case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz+oz:case nz+pz:case nz+qz:case nz+rz:case nz+sz:case nz+tz:c=4;break;case uz:case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:c=8;break;case Hz:c=a.ta}return c?q(d,c):"??"}
l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Xy:b=c.D&255;break;case Yy:b=c.I&255;break;case Zy:b=c.L&255;break;case $y:b=c.G&255;break;case az:b=c.D>>8&255;break;case bz:b=c.I>>8&255;break;case cz:b=c.L>>8&255;break;case dz:b=c.G>>8&255;break;case ez:b=c.D&65535;break;case fz:b=c.I&65535;break;case gz:b=c.L&65535;break;case hz:b=c.G&65535;break;case iz:b=z(c)&65535;break;case jz:b=c.M&65535;break;case kz:b=c.K&65535;break;case lz:b=c.J&65535;break;case mz:b=A(c)&65535;break;case Hz:b=
qe(c);break;case nz+oz:b=c.oa.U;break;case nz+pz:b=c.Z.U;break;case nz+qz:b=c.Y.U;break;case nz+rz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Cz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case uz:b=c.D;break;case vz:b=c.I;break;case wz:b=c.L;break;case xz:b=c.G;break;case yz:b=z(c);break;case zz:b=c.M;break;case Az:b=c.K;break;case Bz:b=c.J;break;case Cz:b=c.qa;break;case Dz:b=c.Og;break;case Ez:b=c.Cd;break;case Fz:b=c.Wc;break;case nz+sz:b=c.Ga.U;break;case nz+tz:b=c.Ha.U;break;case Gz:b=A(c)}}}return b};
function Iz(a,b){b=ey(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Wy(a,e)+b.substr(c+1+Vy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Py(a,e))?(d=e+' "'+vy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Py(a,e))?(Ky(a,d),
d=e+' "'+vy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Fy(hy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))};
function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Jz.indexOf(b),!d)){var g=Kz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Iz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+uy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d}
function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.be+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+uy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Lz(this);if(this.Ga){var a=this.Ga;this.Ga=null;ly(this,a)}};
function jy(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Mz);for(c=0;c<a.O.length;c++)a.O[c]=hy(a);a.ma=0;b||a.P("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),c=0;c<a.K.length;c++)a.K[c]=[c,0]}else a.O&&a.O.length&&!b&&a.P("instruction history buffer freed"),a.ma=0,a.O=[],a.K=[]}function Nz(a,b){if(!Oz(a))return!1;a.H.Uf(b);return!0}
function Gy(a,b,c,d){if(!Oz(a))return!1;a.M=0;do{b||Ig(a)&&Lg(a,a.H.da,0);try{var e=a.H.Lg(b);0<e&&(a.M+=e,Gd(a.H,e,!0),Cd(a.H,e),a.Y++)}catch(g){if("number"!=typeof g){var f=g;a.M=0;Fb(a.H,f.stack||f.message)}}}while(a.H.N&3312);!1!==d&&Bd(a.H);Lz(a,c||!1);return 0<a.M}l.Jb=function(a){this.H&&this.H.Jb(a)};function Lz(a,b){void 0===b&&(b=!0);a.L=hy(a,A(a.H),a.H.Z.U);b&&1!=a.J?Pz(a):Qz(a)}
function Oz(a){var b;if(b=a.H&&Gb(a.H))b=a.H,b.ea.Yb?b=!0:(b.P(b.toString()+" not powered"),b=!1);b&&!Jb(a.H)?(a=a.H,a.ea.error?(a.P(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Xb=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Wb=function(a,b){b&&this.P(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){jy(this);this.Y=this.ha=0;this.za=null;this.M=0;this.L=hy(this,A(this.H),this.H.Z.U);this.ea.wb=!1;Rz(this);a||Lz(this)};
l.save=function(){var a=new Wf(this);a.set(0,My(this.L));a.set(1,My(this.aa));a.set(2,[this.C,this.da,this.ic]);a.set(3,this.D);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Ny(a[b++]),this.aa=Ny(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.da=a[b][1],this.ic|=a[b][2]);a[3]&&(this.D=a[3]);return!0};l.start=function(a,b){this.J||this.P("running");this.ea.wb=!0;this.ib=a;this.jd=b};
l.stop=function(a,b){if(this.ea.wb){this.ea.wb=!1;this.M=b-this.jd;if(!this.J){b="stopped";if(this.M){a-=this.ib;var c=0<a?Math.round(1E3*this.M/a):0;b+=" (";Ig(this)&&(b+=this.Y+" opcodes, ",this.ha-=this.Y,this.Y=0);b+=this.M+" cycles, "+a+" ms, "+c+" hz)"}else t(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.P(b)}Lz(this,!0);this.ld();Rz(this,this.H.da)}};function Ig(a){return 1<a.B.length||!!a.xa||t(a,16)}
function Lg(a,b,c){var d=a.H;if(0<c&&(a.xa&&!--a.xa||Sz(a,b,1,a.B)))return!0;0<=c&&a.K.length&&(a.Y++,b=xg(d,b),null!=b&&(a.K[b][1]++,Ly(a,a.O[a.ma],A(d),d.Z.U),++a.ma==a.O.length&&(a.ma=0)));return!1}function pd(a,b,c){return Sz(a,b,c||1,a.Z)?(a.Jb(!0),!0):!1}function rd(a,b,c){return Sz(a,b,c||1,a.N)?(a.Jb(!0),!0):!1}function Pc(a,b,c){a.P("break on input from port "+sa(b)+": "+q(c));a.Jb(!0)}function Tc(a,b,c){a.P("break on output to port "+sa(b)+": "+q(c));a.Jb(!0)}
function iy(a){var b,c;a.B=["bp"];if(a.Z)for(b=1;b<a.Z.length;b++)c=a.Z[b],kf(a.H,a.Sb(c),!1,c.type==Jy);a.Z=["br"];if(a.N)for(b=1;b<a.N.length;b++)c=a.N[b],kf(a.H,a.Sb(c),!0,c.type==Jy);a.N=["bw"];a.Da=0}
l.Gd=function(a,b,c){var d=!0;c||Ey(this,a,b,!1,!0);if(a!=this.B){var e=this.Sb(b);if(-1===e)this.P("invalid address: "+Fy(b)),d=!1;else{var f=this.H,g=b.type==Jy;(g?f.sc:f.aa)[e>>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Tz(this,a,a.length-1,"set"),jy(this)));return d};
function Ey(a,b,c,d,e){for(var f=!1,g=Uz(a,a.Sb(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==Uz(a,a.Sb(k))||-1===g&&c.U==k.U&&c.Ja==k.Ja)if(!d||k.Jd){f=!0;k.Jd||e||Tz(a,b,h,"cleared");b.splice(h,1);b!=a.B&&kf(a.H,g,b==a.N,k.type==Jy);k.Jd||jy(a);break}}return f}function Vz(a,b){for(var c=1;c<b.length;c++)Tz(a,b,c);return b.length-1}function Tz(a,b,c,d){c=b[c];a.P(b[0]+" "+Fy(c)+(d?" "+d:c.Yk?' "'+c.Yk+'"':""))}
function Rz(a,b){if(void 0!==b)Sz(a,b,1,a.B,!0),a.J=0;else for(b=1;b<a.B.length;b++){var c=a.B[b];if(c.Jd){if(!Ey(a,a.B,c,!0))break;b=0}}}function Uz(a,b){-1!==b&&(a=a.wa&-65536,(b&a)==a&&(b&=1048575));return b}
function Sz(a,b,c,d,e){var f=!1;if(!a.Da++){b=Uz(a,b);t(a,-2147483632)&&204==xg(a.H,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Jd){null!=h.U&&(h.ya=null);for(var k=Uz(a,a.Sb(h)),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.Jd&&(Ey(a,d,h,!0),e=!0);if(p=h.sl){for(var f=!1,v=0;v<p.length;v++)if(!Wz(a,p[v],!0)){if(p[v].indexOf("if")){f=!0;break}for(var u=v+1;u<p.length&&p[u].indexOf("else");u++)v++;if(u==p.length){f=!0;break}}a.H.ea.wb||(f=!0)}if(f){e||Tz(a,d,g,"hit");break}}}}}a.Da--;return f}
function Xz(a,b,c,d){for(var e=hy(a,b.Ja,b.U,b.ya,b.type),f=a.Ia(b,1),g=4,h=0,k=!1,m=!1;(102==f||103==f)&&g--;)102==f?k||(b.Hb=!b.Hb,k=!0):m||(b.dc=!b.dc,m=!0),h++,f=a.Ia(b,1);var g=-1,p=Yz,k=a.oa[f],m=k[0];m==Zz&&(m=a.Ia(b,1),k=$z[m]||ny,f|=m<<8,m=k[0]);if(m==aA){var g=a.Ia(b,1),v;v=null;var u=g>>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=bA[f])&&(v=u[E]);v&&(p=cA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=dA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==eA?
p="CWDE":m==fA?p="CDQ":m>=gA&&m<=hA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>iA);m==jA&&(f==kA?v="[%800]":f==lA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=I&mA;if(T!=nA)if(T==oA)E=!1;else{var L=I&pA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L<qA){L=a;H=I;var ua=u;I=b;var ca="",xb=g>>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!I.dc&&6==za||I.dc&&5==za))xb=2;else{if(I.dc)if(4!=za)za+=
8;else{var ca=L,cb=xb,Sa=I,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=rA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=rA[rc+8],db&&(ib+="*"+(1<<db)));cb||5!=rb||(ib&&(ib+="+"),ib+=q(By(ca,Sa,4)));ca=ib}ca||(ca=rA[za])}1==xb?(L=L.Ia(I,1),ca=L&128?ca+("-"+q(-(L<<24>>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),I.dc?(L=By(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=mA;H==S&&(H=I.Hb?sA:U);switch(H){case tA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16";
break}L="WORD";break;case sA:L="DWORD";break;case uA:if(T){L="INT32";break}case vA:L="REAL32";break;case wA:if(T){L="INT64";break}case xA:L="REAL64";break;case yA:L="REAL80";break;case zA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=AA(L,za,H,I);H=ca}else H=L==qA?AA(a,g&7,I,b):AA(a,g>>3&7,I,b);else if(L==BA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&mA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case CA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(By(H,L,4));break}case U:I=q(H.Yc(L,2),4);break;
case tA:L=hy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Fy(L);H=DA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+sa(T)+")"}H=I}else L==EA?(b.dc?(H=8,I=By(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==FA?(H=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),I=b.Ja+H&(b.Hb?-1:65535),H=q(I,b.Hb?8:4),I=DA(a,hy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==GA?"ST":T==HA?"ST("+(g&7)+")":AA(a,(I&IA)>>8,I,b):L==JA?H=AA(a,(I&IA)>>8,KA,b):L==LA?H="DS:[SI]":L==MA&&(H="ES:[DI]");if(!H||!H.length){v="INVALID";break}0<
v.length&&(v+=",");v+=H||"???"}}}g="";k=Fy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.ca<NA[f]&&(c=NA[f]+" CPU only");c&&E&&(k=Aa(k,e.dc?74:56)+";"+c,k=a.H.ea.He?k+("cycles="+Dd(a.H).toString()+" cs="+q(a.H.T.uf)):k+(null!=d?"="+d.toString():""));OA(b,E,h);return k}
function AA(a,b,c,d){var e=c&pA;if(e==KA){if(b>tz||b>=sz&&80386>a.H.ca)return"??";b+=nz}else if(e==PA)b+=Cz;else if(e==QA)b+=RA;else if(e==SA)b+=TA;else if(a=c&mA,a>=U&&(b<ez&&(b+=ez-Xy),a==sA||a==S&&d.Hb))b+=uz-ez;return Vy[b]}
function UA(a,b){switch(b){case "V":a=hg(a.H);break;case "D":a=a.H.O&1024;break;case "I":a=a.H.O&512;break;case "T":a=a.H.O&256;break;case "S":a=gg(a.H);break;case "Z":a=fg(a.H);break;case "A":a=eg(a.H);break;case "P":a=dg(a.H);break;case "C":a=cg(a.H);break;default:a=0}return b+(a?"1":"0")+" "}function ty(a){return q(a,a&-65536?8:4)}function VA(a,b){b>=ez&&b<=lz&&4<a.ta&&(b+=uz-ez);var c=Vy[b];b==Cz&&80286==a.H.ca&&(c="MS");return c+"="+Wy(a,b)+" "}
function WA(a,b,c){return b.$b+"="+q(b.U,4)+(c?"["+q(b.ua,a.la)+","+ty(b.Ka)+"]":"")}function XA(a,b,c,d,e){return b+"="+(null!=c?q(c,4):"")+"["+q(d,a.la)+","+q(e-d,4)+"]"}
function YA(a,b){var c;void 0===b&&(b=Hy(a));c=VA(a,ez)+VA(a,hz)+VA(a,fz)+VA(a,gz)+(4<a.ta?"\n":"")+VA(a,iz)+VA(a,jz)+VA(a,kz)+VA(a,lz)+"\n"+WA(a,a.H.Y,b)+" "+WA(a,a.H.Ca,b)+" "+WA(a,a.H.oa,b)+" ";if(b){var d="TR="+q(a.H.la.U,4),e=a.ka,e="A20="+(e.J||e.N!=e.C?"OFF ":"ON ");80386>a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+WA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=WA(a,a.H.Ga,b)+" "+WA(a,a.H.Ha,b)+"\n");c+=XA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+XA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+XA(a,"ID",
null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+VA(a,Cz);80386<=a.H.ca&&(c+=VA(a,Ez)+VA(a,Fz))}else 80386<=a.H.ca&&(c+=WA(a,a.H.Ga,b)+" "+WA(a,a.H.Ha,b)+" ");return c+=VA(a,Hz)+UA(a,"V")+UA(a,"D")+UA(a,"I")+UA(a,"T")+UA(a,"S")+UA(a,"Z")+UA(a,"A")+UA(a,"P")+UA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
(b.J=a[0],ne(b,a[1]));break;case 72:Ey(this,null,e);break;case 80:32==c?zy(this,iy(this,h,k),0,f,!0,!!this.V):128>c?zy(this,iy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):By(this,iy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1};
l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",my(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.C.length-1&&(b=d.C[++d.A])):40==a.keyCode&&(0<d.A?b=d.C[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.na[b]=c,Ya(c,function(){if(d.va){var a=d.va.value;
d.va.value="";my(d,a,!0);return!0}return!1}),!0;case "step":return this.na[b]=c,Ya(c,function(a){var b=!1;Jb(d,!0)||(Kb(d,!0),b=Hy(d,a?1:0),Kb(d,!1));return b}),!0}return!1};l.ld=function(){this.va&&this.va.focus()};function Iy(a){return!(!(a.H&&a.H.qa&1)||a.H.O&131072)}
function ry(a,b,c){var d=Iy(a)?sy:Jy;c||(c=d);if(c==d){if(b===a.H.Z.U)return a.H.Z;if(b===a.H.Ca.U)return a.H.Ca;if(b===a.H.oa.U)return a.H.oa;if(b===a.H.Y.U)return a.H.Y;if(80386<=a.H.ca){if(b===a.H.Ga.U)return a.H.Ga;if(b===a.H.Ha.U)return a.H.Ha}if(a.Da&&c==sy||!a.ab)return null}a=a.ab;if(c!=sy)a.mh(b),a.Ka=65535,a.Nb=65536;else{var e;c=a.gc;b&=65535;b&4?(d=c.Eb.ua,e=d+c.Eb.Ka|0):(d=c.Kb,e=c.Pc);d=d+(b&65528)|0;if(e-d|0){e=xg(c,d+0,2);var f=xg(c,d+4,2),g=f&7936,h=xg(c,d+2,2)|(f&255)<<16,k=xg(c,
d+6,2);80386<=c.ca&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.U=b;a.ua=h;a.Ka=e;a.Nb=(e>>>0)+1;a.mb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=ry(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Ky)|0,b&&Ly(this,a,b));return c};
l.jb=function(a,b){return a.Hb?Cy(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Ky)|0,b&&Ly(this,a,b));return c};function Cy(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Ky)|0,c&&Ly(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Ky)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&Ly(this,a,c);d||Bd(this.H,!0)}};
l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Ky?this.H.fb(d,b):Jc(this.ka,d,b),c&&Ly(this,a,c),Bd(this.H,!0))};function iy(a,b,c,d,e,f,g){return My(a,{},b,c,d,e,f,g)}function My(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Iy(a)?sy:Jy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Ny(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Oy(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}}
function Py(a,b,c){if(null!=b.U&&(a=ry(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0<a.Nb)return!1;c&&(b.Ja=d,b.Hb=4==a.W,b.dc=4==a.Jc)}return!0}
function Qy(a,b,c,d){var e,f=c?a.L:a.Ta;c=d?Ry:f.type;var g=f.Ja,h=f.U,f=f.ya;if(void 0!==b){b=fy(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Jy;break;case "#":c=sy;break;case "%":c=Sy;e=b.charAt(1);"%"==e&&(c=Ky,e+=e);g=0;h=null;break;default:0<=f&&(c=Ry),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 m=e.toUpperCase(),p=0;p<a.D.length;p++){e=a.D[p];var v=e.Fd[m];if(void 0!==v){m=v.o;void 0!==m&&(k=v.s,void 0===k&&(k=e.U),k=iy(a,m,k,v.p));
break}}if(e=k)return e;0>f?null!=h?(g=dy(a,b,void 0),f=null):(f=dy(a,b,void 0),null==f&&(g=null)):(h=dy(a,b.substring(0,f),void 0),g=dy(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=iy(a,g,h,f,c),d||Py(a,e,!0)||(a.P("invalid offset: "+Gy(e)),e=null));return e}function Ty(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Qy(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")};
function Ly(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Py(a,b)||(b.Ja=0,b.ya=null))}function vy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Gy(a){var b;switch(a.type){case Jy:case Uy:b="&";break;case sy:b="#";break;case Sy:b="%";break;case Ky:b="%%";break;default:b=a.U?"":"%"}return a.type>=Sy||null==a.U?b+q(a.ya):b+vy(a.Ja,a.U,a.dc)}
function wy(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
function qy(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Qy(a,c));if(-1===e){a.P("invalid address: "+c);return}f=e>>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<<a.H.hb,8)+" %%"+q(d.ya,8)+" "+sa(d.ve)+" "+sa(d.size)+
" "+h),c!=ad&&c!=bd&&(c=-1),h=0),e+=a.H.Ng,f++}function Vy(a,b,c){a=q(a)+" "+q(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-")+(b&4?"U":"S");a+=b&2?"W":"R";return a+=b&1?"P":"N"}function Ay(a,b,c){var d=[],e;for(e=null;e=Wb(a.pa,"Disk",e);){var f=e,g=b,h=c,d={};if(f.C)for(var k=0;k<f.C.length;k++){var m=f.C[k];if(m.Rf==g&&(m=m.nd[h])){for(var p in m.ee)f=m.ee[p],d[f[1]]=f[0];break}}if(d.length)break}return d}
function ly(a,b){a.ba=a;a.ic=a.wl=1073741824;a.za=null;b=a.Cg(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb)0<=Ha(b,c)&&(a.ic|=Rb[c],a.P(c+" messages enabled"));ky(a)}function zl(a,b,c){for(var d in Rb)if(b==Rb[d]){a.Ba[d]=c;break}}l.gh=function(a,b){var c;a=a.toUpperCase();null==b?c=Ha(Wy,a):(c=Ha(Wy,a.substr(b,3)),0>c&&(c=Ha(Wy,a.substr(b,2))));return c};
function Xy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Yy:case Zy:case $y:case az:case bz:case cz:case dz:case ez:c=2;break;case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz:case oz+pz:case oz+qz:case oz+rz:case oz+sz:case oz+tz:case oz+uz:c=4;break;case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:case Hz:c=8;break;case Iz:c=a.ta}return c?q(d,c):"??"}
l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Yy:b=c.D&255;break;case Zy:b=c.I&255;break;case $y:b=c.L&255;break;case az:b=c.G&255;break;case bz:b=c.D>>8&255;break;case cz:b=c.I>>8&255;break;case dz:b=c.L>>8&255;break;case ez:b=c.G>>8&255;break;case fz:b=c.D&65535;break;case gz:b=c.I&65535;break;case hz:b=c.L&65535;break;case iz:b=c.G&65535;break;case jz:b=z(c)&65535;break;case kz:b=c.M&65535;break;case lz:b=c.K&65535;break;case mz:b=c.J&65535;break;case nz:b=A(c)&65535;break;case Iz:b=
qe(c);break;case oz+pz:b=c.oa.U;break;case oz+qz:b=c.Z.U;break;case oz+rz:b=c.Y.U;break;case oz+sz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Dz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case vz:b=c.D;break;case wz:b=c.I;break;case xz:b=c.L;break;case yz:b=c.G;break;case zz:b=z(c);break;case Az:b=c.M;break;case Bz:b=c.K;break;case Cz:b=c.J;break;case Dz:b=c.qa;break;case Ez:b=c.Og;break;case Fz:b=c.Cd;break;case Gz:b=c.Wc;break;case oz+tz:b=c.Ga.U;break;case oz+uz:b=c.Ha.U;break;case Hz:b=A(c)}}}return b};
function Jz(a,b){b=fy(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Xy(a,e)+b.substr(c+1+Wy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Qy(a,e))?(d=e+' "'+wy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Qy(a,e))?(Ly(a,d),
d=e+' "'+wy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Gy(iy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))};
function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Kz.indexOf(b),!d)){var g=Lz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Jz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+vy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d}
function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.be+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+vy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Mz(this);if(this.Ga){var a=this.Ga;this.Ga=null;my(this,a)}};
function ky(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Nz);for(c=0;c<a.O.length;c++)a.O[c]=iy(a);a.oa=0;b||a.P("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),c=0;c<a.K.length;c++)a.K[c]=[c,0]}else a.O&&a.O.length&&!b&&a.P("instruction history buffer freed"),a.oa=0,a.O=[],a.K=[]}function Oz(a,b){if(!Pz(a))return!1;a.H.Uf(b);return!0}
function Hy(a,b,c,d){if(!Pz(a))return!1;a.M=0;do{b||Ig(a)&&Lg(a,a.H.da,0);try{var e=a.H.Lg(b);0<e&&(a.M+=e,Gd(a.H,e,!0),Cd(a.H,e),a.Y++)}catch(g){if("number"!=typeof g){var f=g;a.M=0;Fb(a.H,f.stack||f.message)}}}while(a.H.N&3312);!1!==d&&Bd(a.H);Mz(a,c||!1);return 0<a.M}l.Jb=function(a){this.H&&this.H.Jb(a)};function Mz(a,b){void 0===b&&(b=!0);a.L=iy(a,A(a.H),a.H.Z.U);b&&1!=a.J?Qz(a):Rz(a)}
function Pz(a){var b;if(b=a.H&&Gb(a.H))b=a.H,b.ea.Yb?b=!0:(b.P(b.toString()+" not powered"),b=!1);b&&!Jb(a.H)?(a=a.H,a.ea.error?(a.P(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Xb=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Wb=function(a,b){b&&this.P(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ky(this);this.Y=this.la=0;this.za=null;this.M=0;this.L=iy(this,A(this.H),this.H.Z.U);this.ea.wb=!1;Sz(this);a||Mz(this)};
l.save=function(){var a=new Wf(this);a.set(0,Ny(this.L));a.set(1,Ny(this.aa));a.set(2,[this.C,this.da,this.ic]);a.set(3,this.D);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Oy(a[b++]),this.aa=Oy(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.da=a[b][1],this.ic|=a[b][2]);a[3]&&(this.D=a[3]);return!0};l.start=function(a,b){this.J||this.P("running");this.ea.wb=!0;this.ib=a;this.jd=b};
l.stop=function(a,b){if(this.ea.wb){this.ea.wb=!1;this.M=b-this.jd;if(!this.J){b="stopped";if(this.M){a-=this.ib;var c=0<a?Math.round(1E3*this.M/a):0;b+=" (";Ig(this)&&(b+=this.Y+" opcodes, ",this.la-=this.Y,this.Y=0);b+=this.M+" cycles, "+a+" ms, "+c+" hz)"}else t(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.P(b)}Mz(this,!0);this.ld();Sz(this,this.H.da)}};function Ig(a){return 1<a.B.length||!!a.xa||t(a,16)}
function Lg(a,b,c){var d=a.H;if(0<c&&(a.xa&&!--a.xa||Tz(a,b,1,a.B)))return!0;0<=c&&a.K.length&&(a.Y++,b=xg(d,b),null!=b&&(a.K[b][1]++,My(a,a.O[a.oa],A(d),d.Z.U),++a.oa==a.O.length&&(a.oa=0)));return!1}function pd(a,b,c){return Tz(a,b,c||1,a.Z)?(a.Jb(!0),!0):!1}function rd(a,b,c){return Tz(a,b,c||1,a.N)?(a.Jb(!0),!0):!1}function Pc(a,b,c){a.P("break on input from port "+sa(b)+": "+q(c));a.Jb(!0)}function Tc(a,b,c){a.P("break on output to port "+sa(b)+": "+q(c));a.Jb(!0)}
function jy(a){var b,c;a.B=["bp"];if(a.Z)for(b=1;b<a.Z.length;b++)c=a.Z[b],kf(a.H,a.Sb(c),!1,c.type==Ky);a.Z=["br"];if(a.N)for(b=1;b<a.N.length;b++)c=a.N[b],kf(a.H,a.Sb(c),!0,c.type==Ky);a.N=["bw"];a.Da=0}
l.Gd=function(a,b,c){var d=!0;c||Fy(this,a,b,!1,!0);if(a!=this.B){var e=this.Sb(b);if(-1===e)this.P("invalid address: "+Gy(b)),d=!1;else{var f=this.H,g=b.type==Ky;(g?f.sc:f.aa)[e>>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Uz(this,a,a.length-1,"set"),ky(this)));return d};
function Fy(a,b,c,d,e){for(var f=!1,g=Vz(a,a.Sb(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==Vz(a,a.Sb(k))||-1===g&&c.U==k.U&&c.Ja==k.Ja)if(!d||k.Jd){f=!0;k.Jd||e||Uz(a,b,h,"cleared");b.splice(h,1);b!=a.B&&kf(a.H,g,b==a.N,k.type==Ky);k.Jd||ky(a);break}}return f}function Wz(a,b){for(var c=1;c<b.length;c++)Uz(a,b,c);return b.length-1}function Uz(a,b,c,d){c=b[c];a.P(b[0]+" "+Gy(c)+(d?" "+d:c.Yk?' "'+c.Yk+'"':""))}
function Sz(a,b){if(void 0!==b)Tz(a,b,1,a.B,!0),a.J=0;else for(b=1;b<a.B.length;b++){var c=a.B[b];if(c.Jd){if(!Fy(a,a.B,c,!0))break;b=0}}}function Vz(a,b){-1!==b&&(a=a.wa&-65536,(b&a)==a&&(b&=1048575));return b}
function Tz(a,b,c,d,e){var f=!1;if(!a.Da++){b=Vz(a,b);t(a,-2147483632)&&204==xg(a.H,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Jd){null!=h.U&&(h.ya=null);for(var k=Vz(a,a.Sb(h)),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.Jd&&(Fy(a,d,h,!0),e=!0);if(p=h.sl){for(var f=!1,v=0;v<p.length;v++)if(!Xz(a,p[v],!0)){if(p[v].indexOf("if")){f=!0;break}for(var u=v+1;u<p.length&&p[u].indexOf("else");u++)v++;if(u==p.length){f=!0;break}}a.H.ea.wb||(f=!0)}if(f){e||Uz(a,d,g,"hit");break}}}}}a.Da--;return f}
function Yz(a,b,c,d){for(var e=iy(a,b.Ja,b.U,b.ya,b.type),f=a.Ia(b,1),g=4,h=0,k=!1,m=!1;(102==f||103==f)&&g--;)102==f?k||(b.Hb=!b.Hb,k=!0):m||(b.dc=!b.dc,m=!0),h++,f=a.Ia(b,1);var g=-1,p=Zz,k=a.qa[f],m=k[0];m==$z&&(m=a.Ia(b,1),k=aA[m]||oy,f|=m<<8,m=k[0]);if(m==bA){var g=a.Ia(b,1),v;v=null;var u=g>>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=cA[f])&&(v=u[E]);v&&(p=dA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=eA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==fA?
p="CWDE":m==gA?p="CDQ":m>=hA&&m<=iA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>jA);m==kA&&(f==lA?v="[%800]":f==mA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=I&nA;if(T!=oA)if(T==pA)E=!1;else{var L=I&qA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L<rA){L=a;H=I;var ua=u;I=b;var ca="",xb=g>>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!I.dc&&6==za||I.dc&&5==za))xb=2;else{if(I.dc)if(4!=za)za+=
8;else{var ca=L,cb=xb,Sa=I,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=sA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=sA[rc+8],db&&(ib+="*"+(1<<db)));cb||5!=rb||(ib&&(ib+="+"),ib+=q(Cy(ca,Sa,4)));ca=ib}ca||(ca=sA[za])}1==xb?(L=L.Ia(I,1),ca=L&128?ca+("-"+q(-(L<<24>>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),I.dc?(L=Cy(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=nA;H==S&&(H=I.Hb?tA:U);switch(H){case uA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16";
break}L="WORD";break;case tA:L="DWORD";break;case vA:if(T){L="INT32";break}case wA:L="REAL32";break;case xA:if(T){L="INT64";break}case yA:L="REAL64";break;case zA:L="REAL80";break;case AA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=BA(L,za,H,I);H=ca}else H=L==rA?BA(a,g&7,I,b):BA(a,g>>3&7,I,b);else if(L==CA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&nA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case DA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(Cy(H,L,4));break}case U:I=q(H.Yc(L,2),4);break;
case uA:L=iy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Gy(L);H=EA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+sa(T)+")"}H=I}else L==FA?(b.dc?(H=8,I=Cy(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==GA?(H=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),I=b.Ja+H&(b.Hb?-1:65535),H=q(I,b.Hb?8:4),I=EA(a,iy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==HA?"ST":T==IA?"ST("+(g&7)+")":BA(a,(I&JA)>>8,I,b):L==KA?H=BA(a,(I&JA)>>8,LA,b):L==MA?H="DS:[SI]":L==NA&&(H="ES:[DI]");if(!H||!H.length){v="INVALID";break}0<
v.length&&(v+=",");v+=H||"???"}}}g="";k=Gy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.ca<OA[f]&&(c=OA[f]+" CPU only");c&&E&&(k=Aa(k,e.dc?74:56)+";"+c,k=a.H.ea.He?k+("cycles="+Dd(a.H).toString()+" cs="+q(a.H.T.uf)):k+(null!=d?"="+d.toString():""));PA(b,E,h);return k}
function BA(a,b,c,d){var e=c&qA;if(e==LA){if(b>uz||b>=tz&&80386>a.H.ca)return"??";b+=oz}else if(e==QA)b+=Dz;else if(e==RA)b+=SA;else if(e==TA)b+=UA;else if(a=c&nA,a>=U&&(b<fz&&(b+=fz-Yy),a==tA||a==S&&d.Hb))b+=vz-fz;return Wy[b]}
function VA(a,b){switch(b){case "V":a=hg(a.H);break;case "D":a=a.H.O&1024;break;case "I":a=a.H.O&512;break;case "T":a=a.H.O&256;break;case "S":a=gg(a.H);break;case "Z":a=fg(a.H);break;case "A":a=eg(a.H);break;case "P":a=dg(a.H);break;case "C":a=cg(a.H);break;default:a=0}return b+(a?"1":"0")+" "}function uy(a){return q(a,a&-65536?8:4)}function WA(a,b){b>=fz&&b<=mz&&4<a.ta&&(b+=vz-fz);var c=Wy[b];b==Dz&&80286==a.H.ca&&(c="MS");return c+"="+Xy(a,b)+" "}
function XA(a,b,c){return b.$b+"="+q(b.U,4)+(c?"["+q(b.ua,a.ma)+","+uy(b.Ka)+"]":"")}function YA(a,b,c,d,e){return b+"="+(null!=c?q(c,4):"")+"["+q(d,a.ma)+","+q(e-d,4)+"]"}
function ZA(a,b){var c;void 0===b&&(b=Iy(a));c=WA(a,fz)+WA(a,iz)+WA(a,gz)+WA(a,hz)+(4<a.ta?"\n":"")+WA(a,jz)+WA(a,kz)+WA(a,lz)+WA(a,mz)+"\n"+XA(a,a.H.Y,b)+" "+XA(a,a.H.Ca,b)+" "+XA(a,a.H.oa,b)+" ";if(b){var d="TR="+q(a.H.la.U,4),e=a.ka,e="A20="+(e.J||e.N!=e.C?"OFF ":"ON ");80386>a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+XA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=XA(a,a.H.Ga,b)+" "+XA(a,a.H.Ha,b)+"\n");c+=YA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+YA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+YA(a,"ID",
null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+WA(a,Dz);80386<=a.H.ca&&(c+=WA(a,Fz)+WA(a,Gz))}else 80386<=a.H.ca&&(c+=XA(a,a.H.Ga,b)+" "+XA(a,a.H.Ha,b)+" ");return c+=WA(a,Iz)+VA(a,"V")+VA(a,"D")+VA(a,"I")+VA(a,"T")+VA(a,"S")+VA(a,"Z")+VA(a,"A")+VA(a,"P")+VA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function $p(a,b,c,d,e,f,g,h){var k={},m=[],p;for(p in h){var v=h[p];"number"==typeof v&&(h[p]=v={o:v});var u=v.o,E=v.s,K=v.a;if(void 0!==u){void 0!==E&&(k.Ja=u,k.U=E,k.ya=null,a.Sb(k),(k.ya&-65536)==(a.ka.N&-65536)&&(k.ya&=1048575),v.p=k.ya);var E=m,u=[u>>>0,p],H=Da(E,u,a.gj);0>H&&E.splice(-(H+1),0,u)}K&&(v.a=K.replace(/''/g,'"'))}a.D.push({Rf:b,pn:c,U:d,Ja:e,ya:f,en:g,Fd:h,Pi:m})}
function Dy(a,b,c){for(var d=0;d<a.D.length;d++){var e=a.D[d];if(!b||e.Rf==b)if(b&&c==e.pn||!b&&c==e.U){a.D.splice(d,1);break}}}function DA(a,b,c){for(var d=[],e=b.Ja>>>0,f=a.Sb(b)>>>0,g=0;g<a.D.length;g++){var h=a.D[g],k=h.U,m=h.Ja>>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e<m+v||null!=p&&f>=p&&f<p+v){b=Da(h.Pi,[e],a.gj);0<=b?ZA(a,g,b,d):c&&(b=~b,ZA(a,g,b-1,d),ZA(a,g,b,d));break}}!d.length&&(a=a.ka.wj(f,!0))&&(d.push(a),d.push(f));return d}
function ZA(a,b,c,d){var e={},f=a.D[b].Pi,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.D[b].Fd[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function $A(a){a.Ie&&(a.Ie.value="")}
function aB(a,b){if("?"==b)a.P("frequency commands:"),a.P("\tclear\tclear all frequency counts");else{var c=0;if(a.K)if("clear"==b){for(b=0;b<a.K.length;b++)a.K[b]=[b,0];a.P("frequency data cleared");c++}else if(void 0!==b)a.P("unknown frequency command: "+b),c++;else{var d=a.K.slice();d.sort(function(a,b){return b[1]-a[1]});for(b=0;b<d.length;b++){var e=d[b][0],f=d[b][1];f&&(a.P((Yz[a.oa[e][0]]+" ").substr(0,5)+" ("+r(e)+"): "+f+" times"),c++)}}c||a.P("no frequency data available")}}
function bB(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return fy(a)||a.P("no variables"),!0;if(!c[2])return fy(a,c[1]);if(!c[3])return delete a.ga[c[1]],!0;b=cy(a,c[3]);return void 0!==b?(a.ga[c[1]]=b,!0):!1}a.P("invalid assignment:"+b);return!1}
function cB(a,b,c){var d=null;if(b=Py(a,b,!0)){a.Sb(b);var e=DA(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ja-e[1])&&(g=" + "+sa(f)),f=e[0]+" ("+uy(e[1],b.U)+")"+g,c&&a.P(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ja)&&(g=" - "+sa(f)),f=e[4]+" ("+uy(e[5],b.U)+")"+g,c&&a.P(f),d||(d=f))}else c&&a.P("no symbols")}return d}
function dB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Py(a,b[1]);if(g&&(d=Zx(a,b[2],"drive #"),void 0!==d)){if(!c){e=Zx(a,b[3],"sector #");if(void 0===e)return;f=Zx(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.hb;2<=d&&a.Xa&&(d-=2,h=a.Xa);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)$A(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Fy(g);!p&&0<k.vb--;)(function(a,b){h.se(k,function(c){0>c?(a.P("out of data at address "+Fy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H,
function Ey(a,b,c){for(var d=0;d<a.D.length;d++){var e=a.D[d];if(!b||e.Rf==b)if(b&&c==e.pn||!b&&c==e.U){a.D.splice(d,1);break}}}function EA(a,b,c){for(var d=[],e=b.Ja>>>0,f=a.Sb(b)>>>0,g=0;g<a.D.length;g++){var h=a.D[g],k=h.U,m=h.Ja>>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e<m+v||null!=p&&f>=p&&f<p+v){b=Da(h.Pi,[e],a.gj);0<=b?$A(a,g,b,d):c&&(b=~b,$A(a,g,b-1,d),$A(a,g,b,d));break}}!d.length&&(a=a.ka.wj(f,!0))&&(d.push(a),d.push(f));return d}
function $A(a,b,c,d){var e={},f=a.D[b].Pi,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.D[b].Fd[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function aB(a){a.Ie&&(a.Ie.value="")}
function bB(a,b){if("?"==b)a.P("frequency commands:"),a.P("\tclear\tclear all frequency counts");else{var c=0;if(a.K)if("clear"==b){for(b=0;b<a.K.length;b++)a.K[b]=[b,0];a.P("frequency data cleared");c++}else if(void 0!==b)a.P("unknown frequency command: "+b),c++;else{var d=a.K.slice();d.sort(function(a,b){return b[1]-a[1]});for(b=0;b<d.length;b++){var e=d[b][0],f=d[b][1];f&&(a.P((Zz[a.qa[e][0]]+" ").substr(0,5)+" ("+r(e)+"): "+f+" times"),c++)}}c||a.P("no frequency data available")}}
function cB(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return gy(a)||a.P("no variables"),!0;if(!c[2])return gy(a,c[1]);if(!c[3])return delete a.ga[c[1]],!0;b=dy(a,c[3]);return void 0!==b?(a.ga[c[1]]=b,!0):!1}a.P("invalid assignment:"+b);return!1}
function dB(a,b,c){var d=null;if(b=Qy(a,b,!0)){a.Sb(b);var e=EA(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ja-e[1])&&(g=" + "+sa(f)),f=e[0]+" ("+vy(e[1],b.U)+")"+g,c&&a.P(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ja)&&(g=" - "+sa(f)),f=e[4]+" ("+vy(e[5],b.U)+")"+g,c&&a.P(f),d||(d=f))}else c&&a.P("no symbols")}return d}
function eB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Qy(a,b[1]);if(g&&(d=Zx(a,b[2],"drive #"),void 0!==d)){if(!c){e=Zx(a,b[3],"sector #");if(void 0===e)return;f=Zx(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.hb;2<=d&&a.Xa&&(d-=2,h=a.Xa);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)aB(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Gy(g);!p&&0<k.vb--;)(function(a,b){h.se(k,function(c){0>c?(a.P("out of data at address "+Gy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H,
!0);a.P(m+" bytes read at "+b)}else a.P("sector "+e+" request out of range");else a.P("drive "+d+" not loaded");else a.P("invalid drive: "+d)}else a.P("disk controller not present")}}else a.P("load commands:"),a.P("\tl [address] [drive #] [sector #] [# sectors]")}
function Pz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1<b.length){var e=b[1];if(a.Tc&&"fp"==e){c=a.Tc;d=Og(c);b=c.Zb;for(var f=0;8>f;f++){var g=c,e=null;if(f<g.F.length){var e=[],h=g.B+f&7;e[0]=h;e[1]=qh(g,h);e[2]=g.F[h];h<<=1;e[3]=g.L[h];e[4]=g.L[h+1];g=uh(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
a.P("ST"+f+": "+Aa(e[2].toFixed(15),24,!0)+" "+q(e[4])+","+q(e[3])+" ["+e[0]+":"+eB[e[1]]+"]")}a.P(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.P("SW: "+qa(d,16)+" ("+sa(d)+") CW: "+qa(b,16)+" ("+sa(b)+")");return}if("p"==e)d=80286<=a.H.ca;else{f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.P("missing value for "+b[1]);return}g=cy(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.ta&&(h=null);switch(h){case "AL":a.H.D=
function Qz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1<b.length){var e=b[1];if(a.Tc&&"fp"==e){c=a.Tc;d=Og(c);b=c.Zb;for(var f=0;8>f;f++){var g=c,e=null;if(f<g.F.length){var e=[],h=g.B+f&7;e[0]=h;e[1]=qh(g,h);e[2]=g.F[h];h<<=1;e[3]=g.L[h];e[4]=g.L[h+1];g=uh(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
a.P("ST"+f+": "+Aa(e[2].toFixed(15),24,!0)+" "+q(e[4])+","+q(e[3])+" ["+e[0]+":"+fB[e[1]]+"]")}a.P(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.P("SW: "+qa(d,16)+" ("+sa(d)+") CW: "+qa(b,16)+" ("+sa(b)+")");return}if("p"==e)d=80286<=a.H.ca;else{f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.P("missing value for "+b[1]);return}g=dy(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.ta&&(h=null);switch(h){case "AL":a.H.D=
a.H.D&-256|g&255;break;case "AH":a.H.D=a.H.D&-65281|g<<8&255;break;case "AX":a.H.D=a.H.D&-65536|g&65535;break;case "BL":a.H.G=a.H.G&-256|g&255;break;case "BH":a.H.G=a.H.G&-65281|g<<8&255;break;case "BX":a.H.G=a.H.G&-65536|g&65535;break;case "CL":a.H.I=a.H.I&-256|g&255;break;case "CH":a.H.I=a.H.I&-65281|g<<8&255;break;case "CX":a.H.I=a.H.I&-65536|g&65535;break;case "DL":a.H.L=a.H.L&-256|g&255;break;case "DH":a.H.L=a.H.L&-65281|g<<8&255;break;case "DX":a.H.L=a.H.L&-65536|g&65535;break;case "SP":ge(a.H,
z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=hy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=hy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g?
z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=iy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=iy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g?
rg(a.H):pg(a.H);break;case "Z":g?sg(a.H):qg(a.H);break;case "S":g?(e=a.H,e.resultType&=-17,e.O|=128):(e=a.H,e.resultType&=-17,e.O&=-129);break;case "I":g?(e=a.H,e.O|=512):(e=a.H,e.O&=-513);break;case "D":g?(e=a.H,e.O|=1024):(e=a.H,e.O&=-1025);break;case "V":g?lg(a.H):mg(a.H);break;default:var k=!0;if(80286<=a.H.ca)switch(k=!1,h){case "MS":tg(a.H,g);break;case "TR":-1===a.H.la.load(g)&&(f=!1);break;default:if(k=!0,80386<=a.H.ca)switch(k=!1,h){case "EAX":a.H.D=g;break;case "EBX":a.H.G=g;break;case "ECX":a.H.I=
g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P(YA(a,d));c&&(a.L=hy(a,A(a.H),a.H.Z.U),Qz(a,Fy(a.L)))}}
function fB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Iz(a,c[2])):cy(a,b,!1)}function gB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2<g){b.Ja=e;b.ya=null;var h=Xz(a,b);if(0<=h.indexOf("CALL")||c&&0<=h.indexOf("INT")){var k=h.indexOf(" ");if(e+(h.indexOf(" ",k+1)-k-1)/2==f){d=h;break}}}e--}b.Ja=f;return d}function hB(a,b,c){var d="t"!=b;c=Zx(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Xa(c,function(){return Kb(a,!0)&&Gy(a,e,d,!1)},function(){Bd(a.H);Kb(a,!1)})}
function OA(a,b,c){if(a.bh=b)null!=a.pj&&(a.Hb=a.pj),null!=a.oj&&(a.dc=a.oj),a.pj=a.Hb,a.oj=a.dc;a.Fe=c||0}
function Qz(a,b,c,d){if(b=Py(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Py(a,c,!0);if(!d||d.Ja<b.Ja)return;e=d.Ja-b.Ja;if(256<e){a.P("range too large");return}d=-1}c=0;var f;for(OA(b,!0);0<e&&d--;){f=Jb(a,!1)||a.J?a.M:null;var g=null!=f?"cycles":null,h=DA(a,b),k=b.ya;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Xz(a,b,g,f);b.bh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}}
g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P(ZA(a,d));c&&(a.L=iy(a,A(a.H),a.H.Z.U),Rz(a,Gy(a.L)))}}
function gB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Jz(a,c[2])):dy(a,b,!1)}function hB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2<g){b.Ja=e;b.ya=null;var h=Yz(a,b);if(0<=h.indexOf("CALL")||c&&0<=h.indexOf("INT")){var k=h.indexOf(" ");if(e+(h.indexOf(" ",k+1)-k-1)/2==f){d=h;break}}}e--}b.Ja=f;return d}function iB(a,b,c){var d="t"!=b;c=Zx(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Xa(c,function(){return Kb(a,!0)&&Hy(a,e,d,!1)},function(){Bd(a.H);Kb(a,!1)})}
function PA(a,b,c){if(a.bh=b)null!=a.pj&&(a.Hb=a.pj),null!=a.oj&&(a.dc=a.oj),a.pj=a.Hb,a.oj=a.dc;a.Fe=c||0}
function Rz(a,b,c,d){if(b=Qy(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Qy(a,c,!0);if(!d||d.Ja<b.Ja)return;e=d.Ja-b.Ja;if(256<e){a.P("range too large");return}d=-1}c=0;var f;for(PA(b,!0);0<e&&d--;){f=Jb(a,!1)||a.J?a.M:null;var g=null!=f?"cycles":null,h=EA(a,b),k=b.ya;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Yz(a,b,g,f);b.bh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}}
l.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else a=this.C[this.A+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b};
function Wz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.da&&(a.P("ended assemble at "+Fy(a.aa)),a.L=a.aa,a.da=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0<b.length){a.da&&(b="a "+Fy(a.aa)+" "+b);var g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var v=
Py(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Fy(v)),a.da=!0,Bd(a.H);else{var u;a.P("not supported yet");u=[];if(u.length){for(var E=0;E<u.length;E++)a.fc(v,u[E],1);a.P(Xz(a,a.aa))}}break;case "b":a:{var K=g[0],H=g[1],I=b;if("?"==H)a.P("breakpoint commands:"),a.P("\tbi [p]\ttoggle break on input port [p]"),a.P("\tbo [p]\ttoggle break on output port [p]"),a.P("\tbp [a]\tset exec breakpoint at addr [a]"),a.P("\tbr [a]\tset read breakpoint at addr [a]"),a.P("\tbw [a]\tset write breakpoint at addr [a]"),
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Vz(a,a.B);L+=Vz(a,a.Z);(L+=Vz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=Zx(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Py(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:sa(ua.Ja);"c"==T?null==ua.Ja?(iy(a),a.P("all breakpoints cleared")):Ey(a,
a.B,ua)||Ey(a,a.Z,ua)||Ey(a,a.N,ua)||a.P("breakpoint missing: "+Fy(ua)):"i"==T?a.P("breakpoint "+(Mc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Qc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Sy(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":$A(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Rb)a.Ba[xb]&&
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=iB(a.pa,!0);rc?"console"==Sa?console.log(rc):
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],vg=df.o;if(void 0!==vg){var ef=df.s;void 0===ef&&(ef=cf.U);var wg=cf.Fd[Ld].l;wg&&(Ld=wg);a.P(uy(vg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Qg=a.Sb(Py(a,qm));if(-1===Qg)a.P("invalid address: "+qm);else{var pf,
Qa=null;if(80386<=a.H.ca){var qf=a.ka,Qa={};Qa.Jk=(Qg&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Uy(pf.Ti,pf.Aj)),ve=
ve+(" %%"+Uy(pf.Ui,pf.Bj,!0)),ve=ve+(" %%"+q(pf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";dB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var wt=a.Ba[xb];wt?(ca.shift(),ca.shift(),wt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var xt=cb,yt=Sa,zt="",At=0,Lc=a.ma,jd=a.O;if(jd.length){var uc=+xt||a.Ya,Rg=+yt||10;isNaN(uc)?uc=Rg:zt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==yt&&(Rg=1E5,rm=["CALL"]);for(void 0!==xt&&a.P(uc+" instructions earlier:");0<Rg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Sg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,Bt=Xz(a,Sg,"history",ZB);(!rm.length||0<=Bt.indexOf(rm[0]))&&a.P(Bt);Sg.Fe&&(Lc+=Sg.Fe,Rg-=Sg.Fe,uc-=Sg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;At++;Rg--}}At||(a.P("no "+zt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255<Tg)a.P("invalid vector: "+sm);else{var Ct="&",Dt=!!(a.H.qa&1),Et=!1,Wi=a.H.Pb+(Tg<<(Dt?3:2)),Ft=a.H.ja(Wi+0),$B=a.H.ja(Wi+2);Dt&&(Ct="#",a.H.ja(Wi+4)&2048&&(Et=!0,Ft|=a.H.ja(Wi+6)<<16));a.P("dumpIDT("+sa(Tg)+"): "+Ct+q($B,4)+":"+q(Ft,Et?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var rf=Py(a,cb);if(rf&&(null!=rf.U||null!=rf.ya)){var Xi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Xi=Zx(a,Sa)>>>0,65536<Xi&&(Xi=65536));for(var Ug="",sf="dd"==za?4:"dw"==za?2:1,Yi=sf*Xi||128,aC=Yi+15>>4||1;aC--&&0<Yi;){var Vg=0,tm=0,Wg,um="",Gt="",cb=Fy(rf);for(Wg=4==sf?16:a.F;0<Wg&&0<Yi;Wg--){var Zi=a.Ia(rf,1),Vg=Vg|Zi<<(tm++<<3);tm==sf&&(um+=8==a.F?ra(Vg,3*sf):q(Vg,2*sf),um+=1==sf?9==Wg?"-":" ":" ",Vg=tm=0);Gt+=32<=Zi&&128>Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Gt)}Ug&&a.P(Ug);a.Ta=rf}}}}}break;case "e":if("else"==g[0])break;var $i=
1,Ht=255,It=a.Ia,Jt=a.fc;"ew"==g[0]&&($i=2,Ht=65535,It=a.Yc,Jt=a.il);var Kt=$i<<1,Lt=g[1];if(null==Lt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Py(a,Lt);if(aj)for(var bj=2;bj<g.length;bj++){var Xg=cy(a,g[bj]);if(void 0===Xg){a.P("unrecognized value: "+g[bj]);break}Xg&~Ht&&a.P("warning: "+q(Xg)+" exceeds "+$i+"-byte value");var bC=It.call(a,aj);a.P("changing "+Fy(aj)+" from "+q(bC,Kt,!0)+" to "+q(Xg,Kt,!0));
Jt.call(a,aj,Xg,$i)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Mt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Mt){var vm=Py(a,Mt,!0);if(!vm)break a;Sy(a,vm,cC);a.Gd(a.B,vm,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Jb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Yg=b.substr(2),Yg=Ba(Yg);cy(a,Yg)?(c||a.P("true: "+Yg),xm=!0):(c||a.P("false: "+Yg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var cj;a:switch(Zx(a,g[1])){case 19:Vk(a,19,a.H.da,!0);a.ha=a.Y;cj=!0;break a;case 33:Vk(a,33,a.H.da,!0);a.ha=a.Y;cj=!0;break a;default:cj=!1}cj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=Zx(a,ym);if(void 0!==zm){var dC=Oc(a.ka,zm,1);a.P(sa(zm)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var Am=0,Nt=a.H.Z.U,Zg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>Am;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Zg.U=Nt;if(kd=gB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=gB(a,Zg,!0)){Nt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Ot=null;if("ks"==eC){var Pt=kd.match(/[0-9A-F]+$/);Pt&&(Ot=cB(a,Pt[0]))}kd=Aa(kd,50)+" ;"+(Ot||"stack="+Fy(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],dj=g[2];if(a.G){var Qt=1;"-"==dj.charAt(0)&&(Qt=-1,dj=dj.substr(1));var xe=Zx(a,dj,Bm);if(void 0!==xe)switch(xe=xe*Qt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Rb)if(fb==ld){ye=Rb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var gC=0,$g="";for(ld in Rb)if(!fb||fb==ld){var hC=!!(a.ic&Rb[ld]);if(null===md||md==hC)$g&&($g+=","),++gC%10||($g+="\n\t"),"key"==ld&&(ld="keys"),$g+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+($g||"none"));jy(a)}break;case "o":var Cm=g[1],iC=g[2];if(Cm&&"?"!=Cm){var Dm=Zx(a,Cm,"port #"),Em=Zx(a,iC);void 0!==Dm&&void 0!==Em&&(Sc(a.ka,Dm,1,Em),a.P(sa(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Rt="pr"==g[0]?1:0,tf=1+Rt;if(a.J)a.P("step in progress");
else{var ej,St=!1,Hb=hy(a,A(a.H),a.H.Z.U);do switch(ej=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ky(a,Hb,1);ej=!0;break;case 204:case 206:a.J=tf;Ky(a,Hb,1);break;case 205:case 224:case 225:case 226:a.J=tf;Ky(a,Hb,Hb.Hb?4:2);break;case 232:a.J=tf;Ky(a,Hb,Hb.Hb?5:3);break;case 154:a.J=tf;Ky(a,Hb,Hb.Hb?7:5);break;case 255:var Tt=a.jb(Hb)&14591;if(4351==Tt||6399==Tt)a.J=tf,Xz(a,Hb);break;case 243:case 242:Ky(a,Hb,1);St=ej=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:St&&
(a.J=tf,Ky(a,Hb,1))}while(ej);a.J?(a.Gd(a.B,Hb,!0),Nz(a)||(a.pa&&a.pa.ld(),a.J=0)):hB(a,Rt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Pz(a,g);break;case "t":hB(a,g[0],g[1]);break;case "u":Qz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){bB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.3 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Nb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Ma());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var ah;void 0!==g[3]&&(ah=+g[3]);
function Xz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.da&&(a.P("ended assemble at "+Gy(a.aa)),a.L=a.aa,a.da=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0<b.length){a.da&&(b="a "+Gy(a.aa)+" "+b);var g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var v=
Qy(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Gy(v)),a.da=!0,Bd(a.H);else{var u;a.P("not supported yet");u=[];if(u.length){for(var E=0;E<u.length;E++)a.fc(v,u[E],1);a.P(Yz(a,a.aa))}}break;case "b":a:{var K=g[0],H=g[1],I=b;if("?"==H)a.P("breakpoint commands:"),a.P("\tbi [p]\ttoggle break on input port [p]"),a.P("\tbo [p]\ttoggle break on output port [p]"),a.P("\tbp [a]\tset exec breakpoint at addr [a]"),a.P("\tbr [a]\tset read breakpoint at addr [a]"),a.P("\tbw [a]\tset write breakpoint at addr [a]"),
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Wz(a,a.B);L+=Wz(a,a.Z);(L+=Wz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=Zx(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Qy(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:sa(ua.Ja);"c"==T?null==ua.Ja?(jy(a),a.P("all breakpoints cleared")):Fy(a,
a.B,ua)||Fy(a,a.Z,ua)||Fy(a,a.N,ua)||a.P("breakpoint missing: "+Gy(ua)):"i"==T?a.P("breakpoint "+(Mc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Qc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Ty(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":aB(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Rb)a.Ba[xb]&&
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=jB(a.pa,!0);rc?"console"==Sa?console.log(rc):
(aB(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],vg=df.o;if(void 0!==vg){var ef=df.s;void 0===ef&&(ef=cf.U);var wg=cf.Fd[Ld].l;wg&&(Ld=wg);a.P(vy(vg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Qg=a.Sb(Qy(a,qm));if(-1===Qg)a.P("invalid address: "+qm);else{var pf,
Qa=null;if(80386<=a.H.ca){var qf=a.ka,Qa={};Qa.Jk=(Qg&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Vy(pf.Ti,pf.Aj)),ve=
ve+(" %%"+Vy(pf.Ui,pf.Bj,!0)),ve=ve+(" %%"+q(pf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";eB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var vt=a.Ba[xb];vt?(ca.shift(),ca.shift(),vt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var wt=cb,xt=Sa,yt="",zt=0,Lc=a.oa,jd=a.O;if(jd.length){var uc=+wt||a.Ya,Rg=+xt||10;isNaN(uc)?uc=Rg:yt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==xt&&(Rg=1E5,rm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Rg&&Lc!=a.oa;){var we=jd[Lc++];if(null==we.U)break;var Sg=iy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),$B=uc--,At=Yz(a,Sg,"history",$B);(!rm.length||0<=At.indexOf(rm[0]))&&a.P(At);Sg.Fe&&(Lc+=Sg.Fe,Rg-=Sg.Fe,uc-=Sg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Rg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255<Tg)a.P("invalid vector: "+sm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Wi=a.H.Pb+(Tg<<(Ct?3:2)),Et=a.H.ja(Wi+0),aC=a.H.ja(Wi+2);Ct&&(Bt="#",a.H.ja(Wi+4)&2048&&(Dt=!0,Et|=a.H.ja(Wi+6)<<16));a.P("dumpIDT("+sa(Tg)+"): "+Bt+q(aC,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var rf=Qy(a,cb);if(rf&&(null!=rf.U||null!=rf.ya)){var Xi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Xi=Zx(a,Sa)>>>0,65536<Xi&&(Xi=65536));for(var Ug="",sf="dd"==za?4:"dw"==za?2:1,Yi=sf*Xi||128,bC=Yi+15>>4||1;bC--&&0<Yi;){var Vg=0,tm=0,Wg,um="",Ft="",cb=Gy(rf);for(Wg=4==sf?16:a.F;0<Wg&&0<Yi;Wg--){var Zi=a.Ia(rf,1),Vg=Vg|Zi<<(tm++<<3);tm==sf&&(um+=8==a.F?ra(Vg,3*sf):q(Vg,2*sf),um+=1==sf?9==Wg?"-":" ":" ",Vg=tm=0);Ft+=32<=Zi&&128>Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Ft)}Ug&&a.P(Ug);a.Ta=rf}}}}}break;case "e":if("else"==g[0])break;var $i=
1,Gt=255,Ht=a.Ia,It=a.fc;"ew"==g[0]&&($i=2,Gt=65535,Ht=a.Yc,It=a.il);var Jt=$i<<1,Kt=g[1];if(null==Kt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Qy(a,Kt);if(aj)for(var bj=2;bj<g.length;bj++){var Xg=dy(a,g[bj]);if(void 0===Xg){a.P("unrecognized value: "+g[bj]);break}Xg&~Gt&&a.P("warning: "+q(Xg)+" exceeds "+$i+"-byte value");var cC=Ht.call(a,aj);a.P("changing "+Gy(aj)+" from "+q(cC,Jt,!0)+" to "+q(Xg,Jt,!0));
It.call(a,aj,Xg,$i)}}break;case "f":bB(a,g[1]);break;case "g":a:{var Lt=g[1],dC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var vm=Qy(a,Lt,!0);if(!vm)break a;Ty(a,vm,dC);a.Gd(a.B,vm,!0)}Oz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Jb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Yg=b.substr(2),Yg=Ba(Yg);dy(a,Yg)?(c||a.P("true: "+Yg),xm=!0):(c||a.P("false: "+Yg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var cj;a:switch(Zx(a,g[1])){case 19:Vk(a,19,a.H.da,!0);a.la=a.Y;cj=!0;break a;case 33:Vk(a,33,a.H.da,!0);a.la=a.Y;cj=!0;break a;default:cj=!1}cj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=Zx(a,ym);if(void 0!==zm){var eC=Oc(a.ka,zm,1);a.P(sa(zm)+": "+r(eC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var fC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var Am=0,Mt=a.H.Z.U,Zg=iy(a),Sd=iy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Gy(Sd));10>Am;){for(var kd=null,gC=256;Sd.Ja>>>0<a.H.cg>>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!gC--)break;Zg.U=Mt;if(kd=hB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=hB(a,Zg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==fC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=dB(a,Ot[0]))}kd=Aa(kd,50)+" ;"+(Nt||"stack="+Gy(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){dB(a,g[1],!0);break}eB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],dj=g[2];if(a.G){var Pt=1;"-"==dj.charAt(0)&&(Pt=-1,dj=dj.substr(1));var xe=Zx(a,dj,Bm);if(void 0!==xe)switch(xe=xe*Pt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Rb)if(fb==ld){ye=Rb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var hC=0,$g="";for(ld in Rb)if(!fb||fb==ld){var iC=!!(a.ic&Rb[ld]);if(null===md||md==iC)$g&&($g+=","),++hC%10||($g+="\n\t"),"key"==ld&&(ld="keys"),$g+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+($g||"none"));ky(a)}break;case "o":var Cm=g[1],jC=g[2];if(Cm&&"?"!=Cm){var Dm=Zx(a,Cm,"port #"),Em=Zx(a,jC);void 0!==Dm&&void 0!==Em&&(Sc(a.ka,Dm,1,Em),a.P(sa(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){gB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,tf=1+Qt;if(a.J)a.P("step in progress");
else{var ej,Rt=!1,Hb=iy(a,A(a.H),a.H.Z.U);do switch(ej=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ly(a,Hb,1);ej=!0;break;case 204:case 206:a.J=tf;Ly(a,Hb,1);break;case 205:case 224:case 225:case 226:a.J=tf;Ly(a,Hb,Hb.Hb?4:2);break;case 232:a.J=tf;Ly(a,Hb,Hb.Hb?5:3);break;case 154:a.J=tf;Ly(a,Hb,Hb.Hb?7:5);break;case 255:var St=a.jb(Hb)&14591;if(4351==St||6399==St)a.J=tf,Yz(a,Hb);break;case 243:case 242:Ly(a,Hb,1);Rt=ej=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Rt&&
(a.J=tf,Ly(a,Hb,1))}while(ej);a.J?(a.Gd(a.B,Hb,!0),Oz(a)||(a.pa&&a.pa.ld(),a.J=0)):iB(a,Qt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Qz(a,g);break;case "t":iB(a,g[0],g[1]);break;case "u":Rz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){cB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.3 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Nb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Ma());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var ah;void 0!==g[3]&&(ah=+g[3]);
switch(g[2]){case "int":a.H.T.Se=ah;break;case "start":a.H.T.wf=ah;break;case "stop":a.H.T.Ue=ah;break;default:a.P("unknown cs option");break a}void 0!==ah&&Ad(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Ed(a.H,+g[2])||a.P("warning: using 1x multiplier, previous target not reached"));a.P("target speed: "+(a.H.T.oe.toFixed(2)+"Mhz")+" ("+a.H.T.Kd+"x)");break;default:a.P("unknown option: "+g[1])}else a.P("execution options:"),a.P("\tcs int #\tset checksum cycle interval to #"),
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in jB)Fm+="\n"+Aa(Gm,7)+jB[Gm];Ig(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Vt){a.P("debugger error: "+(Vt.stack||Vt.message)),d=!1}return d}
function ly(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Wz(a,b[+d]))return!1;return!0}
var Kz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Jz=[26,28,40,42,109],jB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Qy=0,Iy=1,ry=2,Ty=3,Ry=4,Jy=5,eA=18,fA=28,aA=36,jA=80,gA=104,hA=107,Zz=176,Yz="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
cA="FLD FST FSTP FXCH FILD FIST FISTP FBLD FBSTP FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FSQRT FSCALE FPREM FRNDINT FXTRACT FABS FCHS FCOM FCOMP FCOMPP FICOM FICOMP FTST FXAM FPTAN FPATAN F2XM1 FYL2X FYL2XP1 FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 FINIT FNINIT FDISI FNDISI FENI FNENI FLDCW FSTCW FNSTCW FSTSW FNSTSW FCLEX FNCLEX FSTENV FNSTENV FLDENV FSAVE FNSAVE FRSTOR FINCSTP FDECSTP FFREE FFREEP FNOP FWAIT FSETPM FSINCOS FSTSWAX".split(" "),
eB=["VALID","ZERO ","SPEC ","EMPTY"],kA=2,lA=3,NA=[8086,80186,80286,80386],Xy=0,Yy=1,Zy=2,$y=3,az=4,bz=5,cz=6,dz=7,ez=8,fz=9,gz=10,hz=11,iz=12,jz=13,kz=14,lz=15,nz=16,mz=22,Hz=23,uz=24,vz=25,wz=26,xz=27,yz=28,zz=29,Az=30,Bz=31,Cz=32,Dz=33,Ez=34,Fz=35,RA=40,TA=48,Gz=56,Vy=["AL","CL","DL","BL","AH","CH","DH","BH","AX","CX","DX","BX","SP","BP","SI","DI","ES","CS","SS","DS","FS","GS","IP","PS","EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI","CR0","CR1","CR2","CR3",null,null,null,null,"DR0","DR1","DR2",
"DR3",null,null,"DR6","DR7",null,null,null,null,null,null,"TR6","TR7","EIP"],oz=0,pz=1,qz=2,rz=3,sz=4,tz=5,rA="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),mA=15,pA=240,IA=3840,nA=0,V=1,CA=2,U=3,S=4,sA=5,tA=7,oA=8,GA=9,HA=10,uA=11,vA=11,wA=12,xA=12,yA=13,zA=14,W=0,BA=16,EA=32,FA=48,LA=64,MA=80,Y=96,JA=112,R=128,qA=160,KA=192,PA=208,QA=224,SA=240,kB=Xy<<8|Y|V,lB=Yy<<8|Y|V,mB=ez<<8|Y|S,nB=fz<<8|Y|S,oB=gz<<8|Y|S,pB=hz<<8|Y|S,qB=iz<<8|Y|S,rB=jz<<8|Y|S,sB=kz<<8|Y|S,tB=
lz<<8|Y|S,uB=oz<<8|JA|U,vB=pz<<8|JA|U,wB=qz<<8|JA|U,xB=rz<<8|JA|U,yB=sz<<8|JA|U,zB=tz<<8|JA|U,X=12288,AB=kA<<14,Z=lA<<14,iA=14,Mz=1E3,ny=[0,nA],oy=[Zz,U|X],my=[[6,R|V|X,V|4272],[6,R|S|X,S|4272],[6,176|V|X,R|V|4096],[6,176|S|X,R|S|4096],[6,kB|X,W|V|4096],[6,mB|X,W|S|4096],[108,uB|4096],[103,uB|8192],[99,R|V|X,V|4272],[99,R|S|X,S|4272],[99,176|V|X,R|V|4096],[99,176|S|X,R|S|4096],[99,kB|X,W|V|4096],[99,mB|X,W|S|4096],[108,vB|4096],[103,vB|8192],[5,R|V|X,V|4272],[5,R|S|X,S|4272],[5,176|V|X,R|V|4096],
[5,176|S|X,R|S|4096],[5,kB|X,W|V|4096],[5,mB|X,W|S|4096],[108,wB|4096],[103,wB|8192],[120,R|V|X,V|4272],[120,R|S|X,S|4272],[120,176|V|X,R|V|4096],[120,176|S|X,R|S|4096],[120,kB|X,W|V|4096],[120,mB|X,W|S|4096],[108,xB|4096],[103,xB|8192],[7,R|V|X,V|4272],[7,R|S|X,S|4272],[7,176|V|X,R|V|4096],[7,176|S|X,R|S|4096],[7,kB|X,W|V|4096],[7,mB|X,W|S|4096],[35,oA],[29],[154,R|V|X,V|4272],[154,R|S|X,S|4272],[154,176|V|X,R|V|4096],[154,176|S|X,R|S|4096],[154,kB|X,W|V|4096],[154,mB|X,W|S|4096],[27,oA],[30],[162,
R|V|X,V|4272],[162,R|S|X,S|4272],[162,176|V|X,R|V|4096],[162,176|S|X,R|S|4096],[162,kB|X,W|V|4096],[162,mB|X,W|S|4096],[147,oA],[1],[24,R|V|4096,V|4272],[24,R|S|4096,S|4272],[24,V|4272,R|V|4096],[24,S|4272,R|S|4096],[24,kB|4096,W|V|4096],[24,mB|4096,W|S|4096],[33,oA],[4],[44,mB|X],[44,nB|X],[44,oB|X],[44,pB|X],[44,qB|X],[44,rB|X],[44,sB|X],[44,tB|X],[31,mB|X],[31,nB|X],[31,oB|X],[31,pB|X],[31,qB|X],[31,rB|X],[31,sB|X],[31,tB|X],[108,mB|4096],[108,nB|4096],[108,oB|4096],[108,pB|4096],[108,qB|4096],
[108,rB|4096],[108,sB|4096],[108,tB|4096],[103,mB|8192],[103,nB|8192],[103,oB|8192],[103,pB|8192],[103,qB|8192],[103,rB|8192],[103,sB|8192],[103,tB|8192],[hA,nA|AB],[gA,nA|AB],[10,S|4272|AB,R|S|4096],[8,R|U|8192,U|4272],[37,oA|Z],[38,oA|Z],[100,oA|Z],[9,oA|Z],[108,W|S|4096|AB],[42,176|U|X|AB,R|S|4096,W|S|4096],[108,W|CA|4096|AB],[42,U|8368|AB,R|S|4096,W|V|4096],[45,MA|V|8192|AB,oB|4096],[45,MA|S|8192|AB,oB|4096],[102,oB|4096|AB,LA|V|4096],[102,oB|4096|AB,LA|S|4096],[64,FA|V|4096],[60,FA|V|4096],[51,
FA|V|4096],[59,FA|V|4096],[67,FA|V|4096],[63,FA|V|4096],[50,FA|V|4096],[58,FA|V|4096],[66,FA|V|4096],[62,FA|V|4096],[65,FA|V|4096],[61,FA|V|4096],[55,FA|V|4096],[54,FA|V|4096],[56,FA|V|4096],[53,FA|V|4096],[163,R|V|X,W|V|4096],[164,R|S|X,W|S|4096],[163,R|V|X,W|V|4096],[165,R|S|X,W|V|4096],[155,R|V|4096,V|4272],[155,R|S|4096,S|4272],[160,176|V|X,R|V|X],[160,176|S|X,R|S|X],[90,R|V|8192,V|4272],[90,R|S|8192,S|4272],[90,V|8368,R|V|4096],[90,S|8368,R|S|4096],[90,R|S|8192,KA|U|4096],[71,S|8368,144|S],[90,
KA|U|8192,R|S|4096],[103,R|S|8192],[97],[160,mB|X,nB|X],[160,mB|X,oB|X],[160,mB|X,pB|X],[160,mB|X,qB|X],[160,mB|X,rB|X],[160,mB|X,sB|X],[160,mB|X,tB|X],[eA],[fA],[17,W|tA|4096],[158],[106],[105],[117],[68],[90,kB|8192,EA|V|4096],[90,mB|8192,EA|S|4096],[90,EA|V|8192,kB|4096],[90,EA|S|8192,mB|4096],[91,MA|V|8192,LA|V|4096],[92,MA|S|8192,LA|S|4096],[25,MA|V|4096,LA|V|4096],[26,MA|S|4096,LA|S|4096],[155,kB|4096,W|V|4096],[155,mB|4096,W|S|4096],[151,MA|V|8192,kB|4096],[152,MA|S|8192,mB|4096],[82,kB|8192,
LA|V|4096],[83,mB|8192,LA|S|4096],[121,kB|4096,MA|V|4096],[122,mB|4096,MA|S|4096],[90,kB|8192,W|V|4096],[90,lB|8192,W|V|4096],[90,Zy<<8|Y|V|8192,W|V|4096],[90,$y<<8|Y|V|8192,W|V|4096],[90,az<<8|Y|V|8192,W|V|4096],[90,bz<<8|Y|V|8192,W|V|4096],[90,cz<<8|Y|V|8192,W|V|4096],[90,dz<<8|Y|V|8192,W|V|4096],[90,mB|8192,W|S|4096],[90,nB|8192,W|S|4096],[90,oB|8192,W|S|4096],[90,pB|8192,W|S|4096],[90,qB|8192,W|S|4096],[90,rB|8192,W|S|4096],[90,sB|8192,W|S|4096],[90,tB|8192,W|S|4096],[166,R|V|X|16384,W|V|4096],
[167,R|S|X|16384,W|V|4096],[113,W|U|4096],[113],[73,S|8368,4246],[70,S|8368,4246],[90,R|V|8192,W|V|4096],[90,R|S|8192,W|S|4096],[34,W|U|4096|AB,W|V|4096],[72,nA|AB],[114,W|U|4096],[114],[47],[46,W|V|4096],[48],[49],[168,R|V|X,BA|V|4096],[169,R|S|X,BA|V|4096],[170,R|V|X,lB|4096],[171,R|S|X,lB|4096],[3,W|V],[2,W|V],[118],[161],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[85,FA|V|4096],[86,FA|V|4096],[84,FA|V|4096],[52,FA|V|4096],[43,
kB|8192,W|V|4096],[43,mB|8192,W|V|4096],[101,W|V|4096,kB|4096],[101,W|V|4096,mB|4096],[17,FA|S|4096],[57,FA|S|4096],[57,W|tA|4096],[57,FA|V|4096],[43,kB|8192,oB|U|4096],[43,mB|8192,oB|U|4096],[101,oB|U|4096,kB|4096],[101,oB|U|4096,mB|4096],[81,oA],[0],[111,oA],[112,oA],[39],[23],[172,R|V|X],[173,R|S|X],[19],[148],[21],[150],[20],[149],[174,R|V|X],[175,R|S|X]],$z={0:[177,R|U|X],1:[178,R|U|X],2:[69,U|8368|AB,U|4240],3:[87,U|8368|AB,U|4240],5:[jA,AB],6:[22,AB],7:[jA,Z],32:[90,qA|sA|8192|Z,PA|sA|4096],
33:[90,qA|sA|8192|Z,QA|sA|4096],34:[90,PA|sA|8192|Z,qA|sA|4096],35:[90,QA|sA|8192|Z,qA|sA|4096],36:[90,qA|sA|8192|Z,SA|sA|4096],38:[90,SA|sA|8192|Z,qA|sA|4096],128:[64,FA|S|4096|Z],129:[60,FA|S|4096|Z],130:[51,FA|S|4096|Z],131:[59,FA|S|4096|Z],132:[67,FA|S|4096|Z],133:[63,FA|S|4096|Z],134:[50,FA|S|4096|Z],135:[58,FA|S|4096|Z],136:[66,FA|S|4096|Z],137:[62,FA|S|4096|Z],138:[65,FA|S|4096|Z],139:[61,FA|S|4096|Z],140:[55,FA|S|4096|Z],141:[54,FA|S|4096|Z],142:[56,FA|S|4096|Z],143:[53,FA|S|4096|Z],144:[135,
R|V|8192|Z],145:[131,R|V|8192|Z],146:[124,R|V|8192|Z],147:[130,R|V|8192|Z],148:[138,R|V|8192|Z],149:[134,R|V|8192|Z],150:[123,R|V|8192|Z],151:[129,R|V|8192|Z],152:[137,R|V|8192|Z],153:[133,R|V|8192|Z],154:[136,R|V|8192|Z],155:[132,R|V|8192|Z],156:[127,R|V|8192|Z],157:[126,R|V|8192|Z],158:[128,R|V|8192|Z],159:[125,R|V|8192|Z],160:[108,yB|4096|Z],161:[103,yB|8192|Z],163:[13,R|S|4096|Z,S|4272],164:[141,R|S|8192|Z,S|4272,W|V|4096],165:[141,R|S|8192|Z,S|4272,lB|4096],166:[159,S|8368|Z,R|S|4096,mB|4096,
lB|4096],167:[40,R|S|8192|Z,mB|4096,lB|4096,S|4272],168:[108,zB|4096|Z],169:[103,zB|8192|Z],171:[16,R|S|8192|Z,S|4272],172:[143,R|S|8192|Z,S|4272,W|V|4096],173:[143,R|S|8192|Z,S|4272,lB|4096],175:[42,R|S|X|Z,S|4272],178:[88,S|8368,4246],179:[15,R|S|8192|Z,S|4272],180:[74,S|8368,4246],181:[76,S|8368,4246],182:[94,S|8368|Z,R|V|4096],183:[94,sA|8368|Z,R|U|4096],186:[179,R|S|X|Z,W|V|4096],187:[14,R|S|8192|Z,S|4272],188:[11,S|8368|Z,R|S|4096],189:[12,S|8368|Z,R|S|4096],190:[93,S|8368|Z,R|V|4096],191:[93,
sA|8368|Z,R|U|4096]},bA={216:{0:[9,R|vA|4096],1:[18,R|vA|4096],2:[34,R|vA|4096],3:[35,R|vA|4096],4:[12,R|vA|4096],5:[15,R|vA|4096],6:[21,R|vA|4096],7:[24,R|vA|4096],48:[9,Y|GA|8192,Y|HA|4096],49:[18,Y|GA|8192,Y|HA|4096],50:[34,Y|GA|8192,Y|HA|4096],51:[35,Y|GA|8192,Y|HA|4096],52:[12,Y|GA|8192,Y|HA|4096],53:[15,Y|GA|8192,Y|HA|4096],54:[21,Y|GA|8192,Y|HA|4096],55:[24,Y|GA|8192,Y|HA|4096]},217:{0:[0,R|vA|4096],2:[1,R|vA|8192],3:[2,R|vA|8192],4:[68,R|4111],5:[59,R|U|4096],6:[66,R|8207],7:[60,R|U|8192],
48:[0,Y|HA|8192],49:[3,Y|HA|8192],50:[76],51:[2,Y|HA|8192],64:[33],65:[32],68:[39],69:[40],80:[47],81:[49],82:[50],83:[48],84:[51],85:[52],86:[46],96:[43],97:[44],98:[41],99:[42],100:[31],102:[73],103:[72],112:[29],113:[45],114:[27],116:[30],117:[28]},218:{0:[11,R|uA|4096],1:[20,R|uA|4096],2:[37,R|uA|4096],3:[38,R|uA|4096],4:[14,R|uA|4096],5:[17,R|uA|4096],6:[23,R|uA|4096],7:[26,R|uA|4096]},219:{0:[4,R|uA|4096],2:[5,R|uA|8192],3:[6,R|uA|8192],5:[0,R|yA|4096],7:[2,R|yA|8192],64:[57],65:[55],66:[64],
67:[53],68:[78,AB],115:[79,Z]},220:{0:[9,R|xA|4096],1:[18,R|xA|4096],2:[34,R|xA|4096],3:[35,R|xA|4096],4:[12,R|xA|4096],5:[15,R|xA|4096],6:[21,R|xA|4096],7:[24,R|xA|4096],48:[9,Y|HA|8192,Y|GA|4096],49:[18,Y|HA|8192,Y|GA|4096],50:[34,Y|HA|4096],51:[35,Y|HA|4096],52:[15,Y|HA|8192,Y|GA|4096],53:[12,Y|HA|8192,Y|GA|4096],54:[24,Y|HA|8192,Y|GA|4096],55:[21,Y|HA|8192,Y|GA|4096]},221:{0:[0,R|xA|4096],2:[1,R|xA|8192],3:[2,R|xA|8192],4:[71,R|4111],6:[69,R|8207],7:[62,R|U|8192],48:[74,Y|HA|4096],49:[3,Y|HA|
8192],50:[1,Y|HA|4096],51:[2,Y|HA|4096]},222:{0:[11,R|U|4096],1:[20,R|U|4096],2:[37,R|U|4096],3:[38,R|U|4096],4:[14,R|U|4096],5:[17,R|U|4096],6:[23,R|U|4096],7:[26,R|U|4096],48:[10,Y|HA|8192,Y|GA|4096],49:[19,Y|HA|8192,Y|GA|4096],50:[35,Y|HA|4096],51:[36,Y|HA|4096],52:[16,Y|HA|8192,Y|GA|4096],53:[13,Y|HA|8192,Y|GA|4096],54:[25,Y|HA|8192,Y|GA|4096],55:[22,Y|HA|8192,Y|GA|4096]},223:{0:[4,R|U|4096],2:[5,R|U|8192],3:[6,R|U|8192],4:[7,R|zA|4096],5:[4,R|wA|4096],6:[8,R|zA|8192],7:[6,R|wA|8192],48:[75,Y|
HA|4096],49:[3,Y|HA|8192],50:[2,Y|HA|4096],51:[2,Y|HA|4096],52:[80,AB]}},dA=[[[6,R|V|X,W|V|4096],[99,R|V|X,W|V|4096],[5,R|V|X,W|V|4096],[120,R|V|X,W|V|4096],[7,R|V|X,W|V|4096],[154,R|V|X,W|V|4096],[162,R|V|X,W|V|4096],[24,R|V|4096,W|V|4096]],[[6,R|S|X,W|S|4096],[99,R|S|X,W|S|4096],[5,R|S|X,W|S|4096],[120,R|S|X,W|S|4096],[7,R|S|X,W|S|4096],[154,R|S|X,W|S|4096],[162,R|S|X,W|S|4096],[24,R|S|4096,W|S|4096]],[[6,R|S|X,W|CA|4096],[99,R|S|X,W|CA|4096],[5,R|S|X,W|CA|4096],[120,R|S|X,W|CA|4096],[7,R|S|X,W|
CA|4096],[154,R|S|X,W|CA|4096],[162,R|S|X,W|CA|4096],[24,R|S|4096,W|CA|4096]],[[115,R|V|X|AB,W|V|4096],[116,R|V|X|AB,W|V|4096],[109,R|V|X|AB,W|V|4096],[110,R|V|X|AB,W|V|4096],[140,R|V|X|AB,W|V|4096],[142,R|V|X|AB,W|V|4096],ny,[119,R|V|X|AB,W|V|4096]],[[115,R|S|X|AB,W|V|4096],[116,R|S|X|AB,W|V|4096],[109,R|S|X|AB,W|V|4096],[110,R|S|X|AB,W|V|4096],[140,R|S|X|AB,W|V|4096],[142,R|S|X|AB,W|V|4096],ny,[119,R|S|X|AB,W|V|4096]],[[115,R|V|X,BA|V|4096],[116,R|V|X,BA|V|4096],[109,R|V|X,BA|V|4096],[110,R|V|X,
BA|V|4096],[140,R|V|X,BA|V|4096],[142,R|V|X,BA|V|4096],ny,[119,R|V|X,BA|V|4096]],[[115,R|S|X,BA|V|4096],[116,R|S|X,BA|V|4096],[109,R|S|X,BA|V|4096],[110,R|S|X,BA|V|4096],[140,R|S|X,BA|V|4096],[142,R|S|X,BA|V|4096],ny,[119,R|S|X,BA|V|4096]],[[115,R|V|X,lB|4096],[116,R|V|X,lB|4096],[109,R|V|X,lB|4096],[110,R|V|X,lB|4096],[140,R|V|X,lB|4096],[142,R|V|X,lB|4096],ny,[119,R|V|X,lB|4096]],[[115,R|S|X,lB|4096],[116,R|S|X,lB|4096],[109,R|S|X,lB|4096],[110,R|S|X,lB|4096],[140,R|S|X,lB|4096],[142,R|S|X,lB|4096],
ny,[119,R|S|X,lB|4096]],[[155,R|V|4096,W|V|4096],ny,[98,R|V|X],[96,R|V|X],[95,R|V|4096],[42,R|V|X],[32,R|V|4096],[41,R|V|X]],[[155,R|S|4096,W|S|4096],ny,[98,R|S|X],[96,R|S|X],[95,R|S|4096],[42,R|S|X],[32,R|S|4096],[41,R|S|X]],[[44,R|V|X],[31,R|V|X],ny,ny,ny,ny,ny,ny],[[44,R|S|X],[31,R|S|X],[17,R|S|4096],[17,R|tA|4096],[57,R|S|4096],[57,R|tA|4096],[108,R|S|4096],ny],[],[[145,R|U|8192|AB],[153,R|U|8192|AB],[78,R|U|4096|AB],[89,R|U|4096|AB],[156,R|U|4096|AB],[157,R|U|4096|AB],ny,ny],[[139,R|U|8192|AB],
[144,R|U|8192|AB],[75,R|U|4096|AB],[77,R|U|4096|AB],[146,R|U|8192|AB],ny,[79,R|U|4096|AB],ny],[ny,ny,ny,ny,[13,R|S|4096|Z,W|V|4096],[16,R|S|8192|Z,W|V|4096],[15,R|S|8192|Z,W|V|4096],[14,R|S|8192|Z,W|V|4096]]],sy={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},wy={PREV_TSS:0,CPL0_SP:2,
CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,TASK_LDT:42},xy={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,
TASK_IOPM:100};$a(function(){for(var a=zb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new gy(d);yb(d,c)}});
function BB(a,b,c){mb.call(this,"Computer",a,67108864);this.ea.Yb=!1;CB(this,b);this.N=yd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=DB;this.L=null;this.I=this.Z=!1;this.da=yd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=EB(this);if(this.H=ub("CPU",this.id)){this.ba=ub("Debugger",this.id);this.G=[];for(b=null;b=Wb(this,"Video",b);)this.G.push(b);this.ka=new lc({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=sb(this.id);if((this.D=
ub("Panel",this.id))&&this.D.Ie)for(b=0;b<e.length;b++)d=e[b],d.Fa=this.D.Fa,d.P=this.D.P,d.Ie=this.D.Ie;this.P("PCx86 v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.uc&&d.uc(this,this.ka,this.H,this.ba);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.A=parseInt(d,10));var f;if(a=yd(this,"state")||(f=!0,a.state))b=this.V=a,f||(this.I=!0,this.A=DB),this.A&&(this.M=new Wf(this,
"1.34.3"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=FB(this))&&(this.I=!0);if(b){var g=this;Ka(b,null,!0,function(a,b,c){c?(g.K=null,g.I=!1,g.Fa("Unable to load machine state from server (error "+c+(b?": "+Ba(b):"")+")")):(g.L=b,g.Z=!0);Ib(g)})}else Ib(this);this.na.power||(this.N=!0);!c&&this.N&&GB(this,this.Lf)}else gb("Unable to find CPU component")}ba(BB,mb);
function CB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){gb(d.message+" ("+c+")")}}a.J=b}function yd(a,b,c){var d=b.toLowerCase(),d=Ua(b)||Ua(d);void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function GB(a,b,c){for(var d=sb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Gb(f)){Gb(f,function(){GB(a,b,c)});return}}b.call(a,c)}
function HB(a,b){var c=new Wf(a,"1.34.3",IB);if(c.load()&&JB(c)){var d=c.get(KB),e=b?b.get(KB):"unknown";d!=e&&(a.Fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=BB.prototype;
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?LB:DB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Wf(this,"1.34.3");if(a==MB)b=!0;else if(a>DB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",NB);this.F.load()&&(OB(this,d),a=PB,QB(this.F));this.F.set(KB,Ea());RB(this.F);var e=this.A&&!this.I;if(a==LB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=JB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(SB,""),this.B=null)):this.P(f+": "+g),QB(d),d.load()?(c=JB(d),e=!0):c=!1))}e&&HB(this,c?d:null)}else a==PB&&d.clear()}else HB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=TB(this,g,d,b,c));b=[d,a,c];a!=MB?GB(this,this.mj,b):this.mj(b)}};
function TB(a,b,c,d,e){if(!b.ea.Yb){b.ea.Yb=!0;if(b.Xb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Xb(f,d)&&f&&(gb("Unable to restore state for "+b.type),a.V&&!a.Z?(c.clear(),a.A=DB,window&&window.location.reload()):a.Y=!0,b.Xb(null),e=!1)}if(!d&&b.xj)for(a=b.xj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.mj=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(TB(this,this.H,b,c,a),this.H.lf());this.Y&&(OB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
function OB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}}
function iB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",IB),h=Ea();g.set(KB,h);f.set(KB,h);f.set(UB,"1.34.3");f.set(VB,window?window.location.href:null);f.set(WB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Yb&&(m.Wb&&(d=m.Wb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.ea.Yb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&XB(a,
a.B,f.toString()),RB(g)&&RB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==YB),d&&f.clear(h)):e=f.toString());c&&(a.ea.Yb=!1,b=a.na.power)&&(b.textContent="Power");a.C=0;return e}l.reset=function(){this.ka&&this.ka.reset&&(Lb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=sb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(Lb(this,"Resetting "+c.type),c.reset())}};
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){gB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in kB)Fm+="\n"+Aa(Gm,7)+kB[Gm];Ig(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
function my(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Xz(a,b[+d]))return!1;return!0}
var Lz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Kz=[26,28,40,42,109],kB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Ry=0,Jy=1,sy=2,Uy=3,Sy=4,Ky=5,fA=18,gA=28,bA=36,kA=80,hA=104,iA=107,$z=176,Zz="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
dA="FLD FST FSTP FXCH FILD FIST FISTP FBLD FBSTP FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FSQRT FSCALE FPREM FRNDINT FXTRACT FABS FCHS FCOM FCOMP FCOMPP FICOM FICOMP FTST FXAM FPTAN FPATAN F2XM1 FYL2X FYL2XP1 FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 FINIT FNINIT FDISI FNDISI FENI FNENI FLDCW FSTCW FNSTCW FSTSW FNSTSW FCLEX FNCLEX FSTENV FNSTENV FLDENV FSAVE FNSAVE FRSTOR FINCSTP FDECSTP FFREE FFREEP FNOP FWAIT FSETPM FSINCOS FSTSWAX".split(" "),
fB=["VALID","ZERO ","SPEC ","EMPTY"],lA=2,mA=3,OA=[8086,80186,80286,80386],Yy=0,Zy=1,$y=2,az=3,bz=4,cz=5,dz=6,ez=7,fz=8,gz=9,hz=10,iz=11,jz=12,kz=13,lz=14,mz=15,oz=16,nz=22,Iz=23,vz=24,wz=25,xz=26,yz=27,zz=28,Az=29,Bz=30,Cz=31,Dz=32,Ez=33,Fz=34,Gz=35,SA=40,UA=48,Hz=56,Wy=["AL","CL","DL","BL","AH","CH","DH","BH","AX","CX","DX","BX","SP","BP","SI","DI","ES","CS","SS","DS","FS","GS","IP","PS","EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI","CR0","CR1","CR2","CR3",null,null,null,null,"DR0","DR1","DR2",
"DR3",null,null,"DR6","DR7",null,null,null,null,null,null,"TR6","TR7","EIP"],pz=0,qz=1,rz=2,sz=3,tz=4,uz=5,sA="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),nA=15,qA=240,JA=3840,oA=0,V=1,DA=2,U=3,S=4,tA=5,uA=7,pA=8,HA=9,IA=10,vA=11,wA=11,xA=12,yA=12,zA=13,AA=14,W=0,CA=16,FA=32,GA=48,MA=64,NA=80,Y=96,KA=112,R=128,rA=160,LA=192,QA=208,RA=224,TA=240,lB=Yy<<8|Y|V,mB=Zy<<8|Y|V,nB=fz<<8|Y|S,oB=gz<<8|Y|S,pB=hz<<8|Y|S,qB=iz<<8|Y|S,rB=jz<<8|Y|S,sB=kz<<8|Y|S,tB=lz<<8|Y|S,uB=
mz<<8|Y|S,vB=pz<<8|KA|U,wB=qz<<8|KA|U,xB=rz<<8|KA|U,yB=sz<<8|KA|U,zB=tz<<8|KA|U,AB=uz<<8|KA|U,X=12288,BB=lA<<14,Z=mA<<14,jA=14,Nz=1E3,oy=[0,oA],py=[$z,U|X],ny=[[6,R|V|X,V|4272],[6,R|S|X,S|4272],[6,176|V|X,R|V|4096],[6,176|S|X,R|S|4096],[6,lB|X,W|V|4096],[6,nB|X,W|S|4096],[108,vB|4096],[103,vB|8192],[99,R|V|X,V|4272],[99,R|S|X,S|4272],[99,176|V|X,R|V|4096],[99,176|S|X,R|S|4096],[99,lB|X,W|V|4096],[99,nB|X,W|S|4096],[108,wB|4096],[103,wB|8192],[5,R|V|X,V|4272],[5,R|S|X,S|4272],[5,176|V|X,R|V|4096],
[5,176|S|X,R|S|4096],[5,lB|X,W|V|4096],[5,nB|X,W|S|4096],[108,xB|4096],[103,xB|8192],[120,R|V|X,V|4272],[120,R|S|X,S|4272],[120,176|V|X,R|V|4096],[120,176|S|X,R|S|4096],[120,lB|X,W|V|4096],[120,nB|X,W|S|4096],[108,yB|4096],[103,yB|8192],[7,R|V|X,V|4272],[7,R|S|X,S|4272],[7,176|V|X,R|V|4096],[7,176|S|X,R|S|4096],[7,lB|X,W|V|4096],[7,nB|X,W|S|4096],[35,pA],[29],[154,R|V|X,V|4272],[154,R|S|X,S|4272],[154,176|V|X,R|V|4096],[154,176|S|X,R|S|4096],[154,lB|X,W|V|4096],[154,nB|X,W|S|4096],[27,pA],[30],[162,
R|V|X,V|4272],[162,R|S|X,S|4272],[162,176|V|X,R|V|4096],[162,176|S|X,R|S|4096],[162,lB|X,W|V|4096],[162,nB|X,W|S|4096],[147,pA],[1],[24,R|V|4096,V|4272],[24,R|S|4096,S|4272],[24,V|4272,R|V|4096],[24,S|4272,R|S|4096],[24,lB|4096,W|V|4096],[24,nB|4096,W|S|4096],[33,pA],[4],[44,nB|X],[44,oB|X],[44,pB|X],[44,qB|X],[44,rB|X],[44,sB|X],[44,tB|X],[44,uB|X],[31,nB|X],[31,oB|X],[31,pB|X],[31,qB|X],[31,rB|X],[31,sB|X],[31,tB|X],[31,uB|X],[108,nB|4096],[108,oB|4096],[108,pB|4096],[108,qB|4096],[108,rB|4096],
[108,sB|4096],[108,tB|4096],[108,uB|4096],[103,nB|8192],[103,oB|8192],[103,pB|8192],[103,qB|8192],[103,rB|8192],[103,sB|8192],[103,tB|8192],[103,uB|8192],[iA,oA|BB],[hA,oA|BB],[10,S|4272|BB,R|S|4096],[8,R|U|8192,U|4272],[37,pA|Z],[38,pA|Z],[100,pA|Z],[9,pA|Z],[108,W|S|4096|BB],[42,176|U|X|BB,R|S|4096,W|S|4096],[108,W|DA|4096|BB],[42,U|8368|BB,R|S|4096,W|V|4096],[45,NA|V|8192|BB,pB|4096],[45,NA|S|8192|BB,pB|4096],[102,pB|4096|BB,MA|V|4096],[102,pB|4096|BB,MA|S|4096],[64,GA|V|4096],[60,GA|V|4096],[51,
GA|V|4096],[59,GA|V|4096],[67,GA|V|4096],[63,GA|V|4096],[50,GA|V|4096],[58,GA|V|4096],[66,GA|V|4096],[62,GA|V|4096],[65,GA|V|4096],[61,GA|V|4096],[55,GA|V|4096],[54,GA|V|4096],[56,GA|V|4096],[53,GA|V|4096],[163,R|V|X,W|V|4096],[164,R|S|X,W|S|4096],[163,R|V|X,W|V|4096],[165,R|S|X,W|V|4096],[155,R|V|4096,V|4272],[155,R|S|4096,S|4272],[160,176|V|X,R|V|X],[160,176|S|X,R|S|X],[90,R|V|8192,V|4272],[90,R|S|8192,S|4272],[90,V|8368,R|V|4096],[90,S|8368,R|S|4096],[90,R|S|8192,LA|U|4096],[71,S|8368,144|S],[90,
LA|U|8192,R|S|4096],[103,R|S|8192],[97],[160,nB|X,oB|X],[160,nB|X,pB|X],[160,nB|X,qB|X],[160,nB|X,rB|X],[160,nB|X,sB|X],[160,nB|X,tB|X],[160,nB|X,uB|X],[fA],[gA],[17,W|uA|4096],[158],[106],[105],[117],[68],[90,lB|8192,FA|V|4096],[90,nB|8192,FA|S|4096],[90,FA|V|8192,lB|4096],[90,FA|S|8192,nB|4096],[91,NA|V|8192,MA|V|4096],[92,NA|S|8192,MA|S|4096],[25,NA|V|4096,MA|V|4096],[26,NA|S|4096,MA|S|4096],[155,lB|4096,W|V|4096],[155,nB|4096,W|S|4096],[151,NA|V|8192,lB|4096],[152,NA|S|8192,nB|4096],[82,lB|8192,
MA|V|4096],[83,nB|8192,MA|S|4096],[121,lB|4096,NA|V|4096],[122,nB|4096,NA|S|4096],[90,lB|8192,W|V|4096],[90,mB|8192,W|V|4096],[90,$y<<8|Y|V|8192,W|V|4096],[90,az<<8|Y|V|8192,W|V|4096],[90,bz<<8|Y|V|8192,W|V|4096],[90,cz<<8|Y|V|8192,W|V|4096],[90,dz<<8|Y|V|8192,W|V|4096],[90,ez<<8|Y|V|8192,W|V|4096],[90,nB|8192,W|S|4096],[90,oB|8192,W|S|4096],[90,pB|8192,W|S|4096],[90,qB|8192,W|S|4096],[90,rB|8192,W|S|4096],[90,sB|8192,W|S|4096],[90,tB|8192,W|S|4096],[90,uB|8192,W|S|4096],[166,R|V|X|16384,W|V|4096],
[167,R|S|X|16384,W|V|4096],[113,W|U|4096],[113],[73,S|8368,4246],[70,S|8368,4246],[90,R|V|8192,W|V|4096],[90,R|S|8192,W|S|4096],[34,W|U|4096|BB,W|V|4096],[72,oA|BB],[114,W|U|4096],[114],[47],[46,W|V|4096],[48],[49],[168,R|V|X,CA|V|4096],[169,R|S|X,CA|V|4096],[170,R|V|X,mB|4096],[171,R|S|X,mB|4096],[3,W|V],[2,W|V],[118],[161],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[85,GA|V|4096],[86,GA|V|4096],[84,GA|V|4096],[52,GA|V|4096],[43,
lB|8192,W|V|4096],[43,nB|8192,W|V|4096],[101,W|V|4096,lB|4096],[101,W|V|4096,nB|4096],[17,GA|S|4096],[57,GA|S|4096],[57,W|uA|4096],[57,GA|V|4096],[43,lB|8192,pB|U|4096],[43,nB|8192,pB|U|4096],[101,pB|U|4096,lB|4096],[101,pB|U|4096,nB|4096],[81,pA],[0],[111,pA],[112,pA],[39],[23],[172,R|V|X],[173,R|S|X],[19],[148],[21],[150],[20],[149],[174,R|V|X],[175,R|S|X]],aA={0:[177,R|U|X],1:[178,R|U|X],2:[69,U|8368|BB,U|4240],3:[87,U|8368|BB,U|4240],5:[kA,BB],6:[22,BB],7:[kA,Z],32:[90,rA|tA|8192|Z,QA|tA|4096],
33:[90,rA|tA|8192|Z,RA|tA|4096],34:[90,QA|tA|8192|Z,rA|tA|4096],35:[90,RA|tA|8192|Z,rA|tA|4096],36:[90,rA|tA|8192|Z,TA|tA|4096],38:[90,TA|tA|8192|Z,rA|tA|4096],128:[64,GA|S|4096|Z],129:[60,GA|S|4096|Z],130:[51,GA|S|4096|Z],131:[59,GA|S|4096|Z],132:[67,GA|S|4096|Z],133:[63,GA|S|4096|Z],134:[50,GA|S|4096|Z],135:[58,GA|S|4096|Z],136:[66,GA|S|4096|Z],137:[62,GA|S|4096|Z],138:[65,GA|S|4096|Z],139:[61,GA|S|4096|Z],140:[55,GA|S|4096|Z],141:[54,GA|S|4096|Z],142:[56,GA|S|4096|Z],143:[53,GA|S|4096|Z],144:[135,
R|V|8192|Z],145:[131,R|V|8192|Z],146:[124,R|V|8192|Z],147:[130,R|V|8192|Z],148:[138,R|V|8192|Z],149:[134,R|V|8192|Z],150:[123,R|V|8192|Z],151:[129,R|V|8192|Z],152:[137,R|V|8192|Z],153:[133,R|V|8192|Z],154:[136,R|V|8192|Z],155:[132,R|V|8192|Z],156:[127,R|V|8192|Z],157:[126,R|V|8192|Z],158:[128,R|V|8192|Z],159:[125,R|V|8192|Z],160:[108,zB|4096|Z],161:[103,zB|8192|Z],163:[13,R|S|4096|Z,S|4272],164:[141,R|S|8192|Z,S|4272,W|V|4096],165:[141,R|S|8192|Z,S|4272,mB|4096],166:[159,S|8368|Z,R|S|4096,nB|4096,
mB|4096],167:[40,R|S|8192|Z,nB|4096,mB|4096,S|4272],168:[108,AB|4096|Z],169:[103,AB|8192|Z],171:[16,R|S|8192|Z,S|4272],172:[143,R|S|8192|Z,S|4272,W|V|4096],173:[143,R|S|8192|Z,S|4272,mB|4096],175:[42,R|S|X|Z,S|4272],178:[88,S|8368,4246],179:[15,R|S|8192|Z,S|4272],180:[74,S|8368,4246],181:[76,S|8368,4246],182:[94,S|8368|Z,R|V|4096],183:[94,tA|8368|Z,R|U|4096],186:[179,R|S|X|Z,W|V|4096],187:[14,R|S|8192|Z,S|4272],188:[11,S|8368|Z,R|S|4096],189:[12,S|8368|Z,R|S|4096],190:[93,S|8368|Z,R|V|4096],191:[93,
tA|8368|Z,R|U|4096]},cA={216:{0:[9,R|wA|4096],1:[18,R|wA|4096],2:[34,R|wA|4096],3:[35,R|wA|4096],4:[12,R|wA|4096],5:[15,R|wA|4096],6:[21,R|wA|4096],7:[24,R|wA|4096],48:[9,Y|HA|8192,Y|IA|4096],49:[18,Y|HA|8192,Y|IA|4096],50:[34,Y|HA|8192,Y|IA|4096],51:[35,Y|HA|8192,Y|IA|4096],52:[12,Y|HA|8192,Y|IA|4096],53:[15,Y|HA|8192,Y|IA|4096],54:[21,Y|HA|8192,Y|IA|4096],55:[24,Y|HA|8192,Y|IA|4096]},217:{0:[0,R|wA|4096],2:[1,R|wA|8192],3:[2,R|wA|8192],4:[68,R|4111],5:[59,R|U|4096],6:[66,R|8207],7:[60,R|U|8192],
48:[0,Y|IA|8192],49:[3,Y|IA|8192],50:[76],51:[2,Y|IA|8192],64:[33],65:[32],68:[39],69:[40],80:[47],81:[49],82:[50],83:[48],84:[51],85:[52],86:[46],96:[43],97:[44],98:[41],99:[42],100:[31],102:[73],103:[72],112:[29],113:[45],114:[27],116:[30],117:[28]},218:{0:[11,R|vA|4096],1:[20,R|vA|4096],2:[37,R|vA|4096],3:[38,R|vA|4096],4:[14,R|vA|4096],5:[17,R|vA|4096],6:[23,R|vA|4096],7:[26,R|vA|4096]},219:{0:[4,R|vA|4096],2:[5,R|vA|8192],3:[6,R|vA|8192],5:[0,R|zA|4096],7:[2,R|zA|8192],64:[57],65:[55],66:[64],
67:[53],68:[78,BB],115:[79,Z]},220:{0:[9,R|yA|4096],1:[18,R|yA|4096],2:[34,R|yA|4096],3:[35,R|yA|4096],4:[12,R|yA|4096],5:[15,R|yA|4096],6:[21,R|yA|4096],7:[24,R|yA|4096],48:[9,Y|IA|8192,Y|HA|4096],49:[18,Y|IA|8192,Y|HA|4096],50:[34,Y|IA|4096],51:[35,Y|IA|4096],52:[15,Y|IA|8192,Y|HA|4096],53:[12,Y|IA|8192,Y|HA|4096],54:[24,Y|IA|8192,Y|HA|4096],55:[21,Y|IA|8192,Y|HA|4096]},221:{0:[0,R|yA|4096],2:[1,R|yA|8192],3:[2,R|yA|8192],4:[71,R|4111],6:[69,R|8207],7:[62,R|U|8192],48:[74,Y|IA|4096],49:[3,Y|IA|
8192],50:[1,Y|IA|4096],51:[2,Y|IA|4096]},222:{0:[11,R|U|4096],1:[20,R|U|4096],2:[37,R|U|4096],3:[38,R|U|4096],4:[14,R|U|4096],5:[17,R|U|4096],6:[23,R|U|4096],7:[26,R|U|4096],48:[10,Y|IA|8192,Y|HA|4096],49:[19,Y|IA|8192,Y|HA|4096],50:[35,Y|IA|4096],51:[36,Y|IA|4096],52:[16,Y|IA|8192,Y|HA|4096],53:[13,Y|IA|8192,Y|HA|4096],54:[25,Y|IA|8192,Y|HA|4096],55:[22,Y|IA|8192,Y|HA|4096]},223:{0:[4,R|U|4096],2:[5,R|U|8192],3:[6,R|U|8192],4:[7,R|AA|4096],5:[4,R|xA|4096],6:[8,R|AA|8192],7:[6,R|xA|8192],48:[75,Y|
IA|4096],49:[3,Y|IA|8192],50:[2,Y|IA|4096],51:[2,Y|IA|4096],52:[80,BB]}},eA=[[[6,R|V|X,W|V|4096],[99,R|V|X,W|V|4096],[5,R|V|X,W|V|4096],[120,R|V|X,W|V|4096],[7,R|V|X,W|V|4096],[154,R|V|X,W|V|4096],[162,R|V|X,W|V|4096],[24,R|V|4096,W|V|4096]],[[6,R|S|X,W|S|4096],[99,R|S|X,W|S|4096],[5,R|S|X,W|S|4096],[120,R|S|X,W|S|4096],[7,R|S|X,W|S|4096],[154,R|S|X,W|S|4096],[162,R|S|X,W|S|4096],[24,R|S|4096,W|S|4096]],[[6,R|S|X,W|DA|4096],[99,R|S|X,W|DA|4096],[5,R|S|X,W|DA|4096],[120,R|S|X,W|DA|4096],[7,R|S|X,W|
DA|4096],[154,R|S|X,W|DA|4096],[162,R|S|X,W|DA|4096],[24,R|S|4096,W|DA|4096]],[[115,R|V|X|BB,W|V|4096],[116,R|V|X|BB,W|V|4096],[109,R|V|X|BB,W|V|4096],[110,R|V|X|BB,W|V|4096],[140,R|V|X|BB,W|V|4096],[142,R|V|X|BB,W|V|4096],oy,[119,R|V|X|BB,W|V|4096]],[[115,R|S|X|BB,W|V|4096],[116,R|S|X|BB,W|V|4096],[109,R|S|X|BB,W|V|4096],[110,R|S|X|BB,W|V|4096],[140,R|S|X|BB,W|V|4096],[142,R|S|X|BB,W|V|4096],oy,[119,R|S|X|BB,W|V|4096]],[[115,R|V|X,CA|V|4096],[116,R|V|X,CA|V|4096],[109,R|V|X,CA|V|4096],[110,R|V|X,
CA|V|4096],[140,R|V|X,CA|V|4096],[142,R|V|X,CA|V|4096],oy,[119,R|V|X,CA|V|4096]],[[115,R|S|X,CA|V|4096],[116,R|S|X,CA|V|4096],[109,R|S|X,CA|V|4096],[110,R|S|X,CA|V|4096],[140,R|S|X,CA|V|4096],[142,R|S|X,CA|V|4096],oy,[119,R|S|X,CA|V|4096]],[[115,R|V|X,mB|4096],[116,R|V|X,mB|4096],[109,R|V|X,mB|4096],[110,R|V|X,mB|4096],[140,R|V|X,mB|4096],[142,R|V|X,mB|4096],oy,[119,R|V|X,mB|4096]],[[115,R|S|X,mB|4096],[116,R|S|X,mB|4096],[109,R|S|X,mB|4096],[110,R|S|X,mB|4096],[140,R|S|X,mB|4096],[142,R|S|X,mB|4096],
oy,[119,R|S|X,mB|4096]],[[155,R|V|4096,W|V|4096],oy,[98,R|V|X],[96,R|V|X],[95,R|V|4096],[42,R|V|X],[32,R|V|4096],[41,R|V|X]],[[155,R|S|4096,W|S|4096],oy,[98,R|S|X],[96,R|S|X],[95,R|S|4096],[42,R|S|X],[32,R|S|4096],[41,R|S|X]],[[44,R|V|X],[31,R|V|X],oy,oy,oy,oy,oy,oy],[[44,R|S|X],[31,R|S|X],[17,R|S|4096],[17,R|uA|4096],[57,R|S|4096],[57,R|uA|4096],[108,R|S|4096],oy],[],[[145,R|U|8192|BB],[153,R|U|8192|BB],[78,R|U|4096|BB],[89,R|U|4096|BB],[156,R|U|4096|BB],[157,R|U|4096|BB],oy,oy],[[139,R|U|8192|BB],
[144,R|U|8192|BB],[75,R|U|4096|BB],[77,R|U|4096|BB],[146,R|U|8192|BB],oy,[79,R|U|4096|BB],oy],[oy,oy,oy,oy,[13,R|S|4096|Z,W|V|4096],[16,R|S|8192|Z,W|V|4096],[15,R|S|8192|Z,W|V|4096],[14,R|S|8192|Z,W|V|4096]]],ty={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},xy={PREV_TSS:0,CPL0_SP:2,
CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,TASK_LDT:42},yy={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,
TASK_IOPM:100};$a(function(){for(var a=zb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new hy(d);yb(d,c)}});
function CB(a,b,c){mb.call(this,"Computer",a,67108864);this.ea.Yb=!1;DB(this,b);this.N=yd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=EB;this.L=null;this.I=this.Z=!1;this.da=yd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=FB(this);if(this.H=ub("CPU",this.id)){this.ba=ub("Debugger",this.id);this.G=[];for(b=null;b=Wb(this,"Video",b);)this.G.push(b);this.ka=new lc({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=sb(this.id);if((this.D=
ub("Panel",this.id))&&this.D.Ie)for(b=0;b<e.length;b++)d=e[b],d.Fa=this.D.Fa,d.P=this.D.P,d.Ie=this.D.Ie;this.P("PCx86 v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.uc&&d.uc(this,this.ka,this.H,this.ba);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.A=parseInt(d,10));var f;if(a=yd(this,"state")||(f=!0,a.state))b=this.V=a,f||(this.I=!0,this.A=EB),this.A&&(this.M=new Wf(this,
"1.34.3"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=GB(this))&&(this.I=!0);if(b){var g=this;Ka(b,null,!0,function(a,b,c){c?(g.K=null,g.I=!1,g.Fa("Unable to load machine state from server (error "+c+(b?": "+Ba(b):"")+")")):(g.L=b,g.Z=!0);Ib(g)})}else Ib(this);this.na.power||(this.N=!0);!c&&this.N&&HB(this,this.Lf)}else gb("Unable to find CPU component")}ba(CB,mb);
function DB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){gb(d.message+" ("+c+")")}}a.J=b}function yd(a,b,c){var d=b.toLowerCase(),d=Ua(b)||Ua(d);void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function HB(a,b,c){for(var d=sb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Gb(f)){Gb(f,function(){HB(a,b,c)});return}}b.call(a,c)}
function IB(a,b){var c=new Wf(a,"1.34.3",JB);if(c.load()&&KB(c)){var d=c.get(LB),e=b?b.get(LB):"unknown";d!=e&&(a.Fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=CB.prototype;
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?MB:EB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Wf(this,"1.34.3");if(a==NB)b=!0;else if(a>EB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",OB);this.F.load()&&(PB(this,d),a=QB,RB(this.F));this.F.set(LB,Ea());SB(this.F);var e=this.A&&!this.I;if(a==MB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=KB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(TB,""),this.B=null)):this.P(f+": "+g),RB(d),d.load()?(c=KB(d),e=!0):c=!1))}e&&IB(this,c?d:null)}else a==QB&&d.clear()}else IB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=UB(this,g,d,b,c));b=[d,a,c];a!=NB?HB(this,this.mj,b):this.mj(b)}};
function UB(a,b,c,d,e){if(!b.ea.Yb){b.ea.Yb=!0;if(b.Xb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Xb(f,d)&&f&&(gb("Unable to restore state for "+b.type),a.V&&!a.Z?(c.clear(),a.A=EB,window&&window.location.reload()):a.Y=!0,b.Xb(null),e=!1)}if(!d&&b.xj)for(a=b.xj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.mj=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(UB(this,this.H,b,c,a),this.H.lf());this.Y&&(PB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
function PB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}}
function jB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",JB),h=Ea();g.set(LB,h);f.set(LB,h);f.set(VB,"1.34.3");f.set(WB,window?window.location.href:null);f.set(XB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Yb&&(m.Wb&&(d=m.Wb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.ea.Yb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&YB(a,
a.B,f.toString()),SB(g)&&SB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==ZB),d&&f.clear(h)):e=f.toString());c&&(a.ea.Yb=!1,b=a.na.power)&&(b.textContent="Power");a.C=0;return e}l.reset=function(){this.ka&&this.ka.reset&&(Lb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=sb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(Lb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=sb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=sb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.Cb=function(a,b,c){var d=this;switch(b){case "power":return this.na[b]=c,c.onclick=function(){d.C||(d.ea.Yb?iB(d,!1,!0):GB(d,d.Lf))},!0;case "reset":return this.na[b]=c,c.onclick=function(){if(d.ea.Yb&&!d.C)if(d.A&&!d.K){var a=qb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");iB(d,a,!0);!a&&d.V?window&&window.location.reload():(a||(d.O=!0),d.Lf(DB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(wa(La(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.na[b]=c,c.onclick=function(){var a=EB(d,!0);if(a){var b=!!(d.A&&!d.K||d.V),c=iB(d,b);b?XB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
function EB(a,b){var c=a.B;c||((c=Pa(SB),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=jC(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
function jC(a,b){a.B=null;b=Ka(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(SB,b.data),a.B=b.data)}catch(d){gb(d.message+" ("+c+")")}return a.B}function FB(a){var b=null;a.B&&(b=La()+"/api/v1/user?req=load&user="+a.B+"&state="+kC(a,"1.34.3"));return b}
function XB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kC(a,"1.34.3");d.data=c;b=Ka(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Fa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Fa(c),Ra(SB,""),a.B=null)}}
l.Cb=function(a,b,c){var d=this;switch(b){case "power":return this.na[b]=c,c.onclick=function(){d.C||(d.ea.Yb?jB(d,!1,!0):HB(d,d.Lf))},!0;case "reset":return this.na[b]=c,c.onclick=function(){if(d.ea.Yb&&!d.C)if(d.A&&!d.K){var a=qb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");jB(d,a,!0);!a&&d.V?window&&window.location.reload():(a||(d.O=!0),d.Lf(EB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(wa(La(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.na[b]=c,c.onclick=function(){var a=FB(d,!0);if(a){var b=!!(d.A&&!d.K||d.V),c=jB(d,b);b?YB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
function FB(a,b){var c=a.B;c||((c=Pa(TB),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=kC(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
function kC(a,b){a.B=null;b=Ka(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(TB,b.data),a.B=b.data)}catch(d){gb(d.message+" ("+c+")")}return a.B}function GB(a){var b=null;a.B&&(b=La()+"/api/v1/user?req=load&user="+a.B+"&state="+lC(a,"1.34.3"));return b}
function YB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=lC(a,"1.34.3");d.data=c;b=Ka(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Fa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Fa(c),Ra(TB,""),a.B=null)}}
function Wb(a,b,c){a=sb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.ld=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.D&&d.D.focus();!a&&window&&window.scrollTo(b,c)}};
function Md(a,b){a.H&&(a=a.H,a.tj&&(b||!a.ea.wb||a.ea.kj)&&(Hg(a,"EAX",a.D),Hg(a,"EBX",a.G),Hg(a,"ECX",a.I),Hg(a,"EDX",a.L),Hg(a,"ESP",z(a)),Hg(a,"EBP",a.M),Hg(a,"ESI",a.K),Hg(a,"EDI",a.J),Hg(a,"CS",a.Z.U),Hg(a,"DS",a.Ca.U),Hg(a,"SS",a.Y.U),Hg(a,"ES",a.oa.U),Hg(a,"EIP",A(a)),b=qe(a),Hg(a,"PS",b),Hg(a,"V",b&2048),Hg(a,"D",b&1024),Hg(a,"I",b&512),Hg(a,"T",b&256),Hg(a,"S",b&128),Hg(a,"Z",b&64),Hg(a,"A",b&16),Hg(a,"P",b&4),Hg(a,"C",b&1),80386==a.ca&&(Hg(a,"FS",a.Ga.U),Hg(a,"GS",a.Ha.U),Hg(a,"CR0",a.qa),
Hg(a,"CR2",a.Cd),Hg(a,"CR3",a.Wc))),b=a.na.speed)&&(b.textContent=a.ea.wb&&a.T.Wd?a.T.Wd.toFixed(2)+"Mhz":"Stopped")}
function Td(a,b){for(var c=0;c<a.G.length;c++)ys(a.G[c],b);if(a.D&&(a=a.D,a.oa)){fc(a,gc,a.K,a.ma);if(a.Ba){b=a.ka;var c=a.A,d,e;null==d&&(d=0);null==e&&(e=b.O-d|0);c||(c={ah:0,Hd:0,Rg:[]});var f=d>>>b.A;d=d+e-1>>>b.A;c.ah=0;for(c.Hd=0;f<=d;)e=b.aa[f],c.ah+=e.size,e.size&&(c.Rg.push(Fa(bc,f,0,0,e.type)),c.Hd++),f++;a.A=c;a.da=a.A.Hd*a.ka.B/(ac*kc);d=0;a.A.$i=0;a.A.kf||(a.A.kf=[]);e=-1;b=0;for(var g=-1,c=0;c<a.A.Hd;c++){var h=a.A.Rg[c],f=Ga(bc.type,h),h=Ga(bc.Hk,h);if(f!=e||h!=g+1)(g=c-b)&&(d+=ic(a,
b,g,e)),e=f,b=c;g=h}d+=ic(a,b,c-b,e);e=a.A.Bl!=d;a.A.Bl=d;if(e){e=new Tb(0,0,a.K.width,a.K.height);a.A.Ce=[];b=a.A.Hd;for(d=0;d<a.A.$i;d++)c=a.A.kf[d].Hd,a.A.Ce.push(Ub(e,c,b,!d)),b-=c;for(d=0;d<a.A.Ce.length;d++)e=a.A.kf[d],b=c=a.A.Ce[d],f=a.ma,(g=ud[e.type])||(g=new Sb),f.strokeStyle="black",f.strokeRect(b.x,b.y,b.Nc,b.A),f.fillStyle="string"==typeof g?g:g.toString(),f.fillRect(b.x,b.y,b.Nc,b.A),b=a,f=c,b.M=b.Z,b.J=b.aa,c=f.x+(f.Nc>>1),g=f.y+(f.A>>1),h=f.A,f.Nc<f.A&&(h=f.Nc,b.Y=!0,b.D.save(),b.D.translate(c,
g),b.D.rotate(-Math.PI/2),c=g=0),h<b.J&&(b.J=h,b.M=b.J+"px "+jc),f=g,b.C=c,b.I=f,b=a,e=tc[e.type]+" ("+(e.Hd*a.ka.B/1024|0)+"Kb)",b.D.font=b.M,b.C-=b.D.measureText(e).width>>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var NB="failsafe",IB="validate",KB="timestamp",UB="version",VB="url",WB="browser",SB="user",MB=-1,DB=0,LB=1,PB=2,YB=3;
$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=vb(c),c=zb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=vb(f),g=new BB(g,d,!0);yb(g,f);g.N&&GB(g,g.Lf)}});ab.show.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ga&&!c.ea.Yb&&c.Lf(MB)}});
ab.exit.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ea.Yb&&iB(c,!(!c.A||c.K),!0)}});function Wf(a,b,c){this.id=a.id;this.ba=a.ba;this.A="";this.state={};this.B=this.C=!1;this.key=kC(a,b,c);QB(this,a.Ok)}l=Wf.prototype;l.set=function(a,b){try{this.state[a]=b}catch(c){}};l.get=function(a){return this.state[a]||null};l.data=function(){return this.state};
l.load=function(a){return a?(this.A=a,this.B=!0,this.C=!1,!0):this.B?!0:Na()&&(a=Pa(this.key))?(this.A=a,this.B=!0):!1};function JB(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){gb(c.message||c),b=!1}return b}function RB(a){var b=!0;if(Na()){var c=JSON.stringify(a.state);Ra(a.key,c)||(gb("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.state?JSON.stringify(this.state):this.A};
function QB(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){QB(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function kC(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var lC=0;
function mC(a,b,c,d,e,f){e("Loading "+a+"...");Ka(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):nC(h,a,b,c,d,e,f)})}
function nC(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ob(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PCx86$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcx86$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?oC(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function oC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);oC(a,b,c)}})}else c(a,null)}
function pC(a,b,c,d){function e(a){if(void 0===h){var b=g&&zb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=xa(a))}function f(a){e("Error: "+a);k&&(--lC||hb(!0));k=!1}var g,h,k=!0;lC++;pb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c||
(c="/versions/pcx86/1.34.3/components.xsl");m=function(d,h){h?mC(c,null,null,!1,e,function(d,k){k?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--lC||hb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--lC||hb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mC(b,a,d,!0,e,m):nC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function qC(a,b,c,d){hb(!1);return pC(a,b,c,d)}window.embedPC=qC;window.embedPCx86=qC;window.findMachineComponent=function(a,b){return ub(b,a+".machine")};
g),b.D.rotate(-Math.PI/2),c=g=0),h<b.J&&(b.J=h,b.M=b.J+"px "+jc),f=g,b.C=c,b.I=f,b=a,e=tc[e.type]+" ("+(e.Hd*a.ka.B/1024|0)+"Kb)",b.D.font=b.M,b.C-=b.D.measureText(e).width>>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var OB="failsafe",JB="validate",LB="timestamp",VB="version",WB="url",XB="browser",TB="user",NB=-1,EB=0,MB=1,QB=2,ZB=3;
$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=vb(c),c=zb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=vb(f),g=new CB(g,d,!0);yb(g,f);g.N&&HB(g,g.Lf)}});ab.show.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ga&&!c.ea.Yb&&c.Lf(NB)}});
ab.exit.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ea.Yb&&jB(c,!(!c.A||c.K),!0)}});function Wf(a,b,c){this.id=a.id;this.ba=a.ba;this.A="";this.state={};this.B=this.C=!1;this.key=lC(a,b,c);RB(this,a.Ok)}l=Wf.prototype;l.set=function(a,b){try{this.state[a]=b}catch(c){}};l.get=function(a){return this.state[a]||null};l.data=function(){return this.state};
l.load=function(a){return a?(this.A=a,this.B=!0,this.C=!1,!0):this.B?!0:Na()&&(a=Pa(this.key))?(this.A=a,this.B=!0):!1};function KB(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){gb(c.message||c),b=!1}return b}function SB(a){var b=!0;if(Na()){var c=JSON.stringify(a.state);Ra(a.key,c)||(gb("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.state?JSON.stringify(this.state):this.A};
function RB(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){RB(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function lC(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var mC=0;
function nC(a,b,c,d,e,f){e("Loading "+a+"...");Ka(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):oC(h,a,b,c,d,e,f)})}
function oC(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ob(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PCx86$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcx86$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?pC(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function pC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);pC(a,b,c)}})}else c(a,null)}
function qC(a,b,c,d){function e(a){if(void 0===h){var b=g&&zb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=xa(a))}function f(a){e("Error: "+a);k&&(--mC||hb(!0));k=!1}var g,h,k=!0;mC++;pb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c||
(c="/versions/pcx86/1.34.3/components.xsl");m=function(d,h){h?nC(c,null,null,!1,e,function(d,k){k?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--mC||hb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--mC||hb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nC(b,a,d,!0,e,m):oC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function rC(a,b,c,d){hb(!1);return qC(a,b,c,d)}window.embedPC=rC;window.embedPCx86=rC;window.findMachineComponent=function(a,b){return ub(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Bb[a]){for(var c=!0,d=Bb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var v=b[p];if('"'==v||"'"==v)m&&v!=m?k+=v:(m?m=null:m=v,k&&(h.push(k),k=""));else{if(!m){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;Ab(a)||(c=!1)}return c};window.enableEvents=hb;window.sendEvent=kb;
function rC(a,b,c,d){if(!c&&b){d.push(b);a=pb[d[0]];b=null;for(var e in a)if(wa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Ka(b,null,!0,function(a,b){sC(b,d)}):sC(null,d)}else gb("Error ("+c+") requesting "+a)}
function sC(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=pb[f],k={},m;for(m in h){var p=h[m],v=va(m);if("xml"==v){for(v=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
function sC(a,b,c,d){if(!c&&b){d.push(b);a=pb[d[0]];b=null;for(var e in a)if(wa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Ka(b,null,!0,function(a,b){tC(b,d)}):tC(null,d)}else gb("Error ("+c+") requesting "+a)}
function tC(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=pb[f],k={},m;for(m in h){var p=h[m],v=va(m);if("xml"==v){for(v=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),a=Wa(c,"javascript",!1,g),a=a+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n')+"...\n",a=a+('<script type="text/javascript" src="'+g+'">\x3c/script>\n')+('<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n')+"The machine should appear where the <div> is located.",gb(a)):gb("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=ub("Computer",a),e=ub("Debugger",a);if(d){var f=iB(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.34.3/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;Ka(b,null,!0,function(c,d,e){rC(c,d,e,[a,ta(b,!0),g,f])});return!0}gb("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b,c){var d=ub("Computer",a),e=ub("Debugger",a);if(d){var f=jB(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.34.3/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;Ka(b,null,!0,function(c,d,e){sC(c,d,e,[a,ta(b,!0),g,f])});return!0}gb("Unable to identify machine '"+a+"'");return!1};})();

View file

@ -722,7 +722,7 @@ class Debugger extends Component
* and although it allows single spaces to divide the elements of the expression, a space is neither
* a unary nor binary operator. It's essentially a no-op. If we encounter it here, then it followed
* a value, and since we don't want to misinterpret the next operator as a unary operator, we look
* ahead and grab the next operator as appropriate.
* ahead and grab the next operator if it's not preceded by a value.
*/
if (sOp == ' ') {
if (iValue < asValues.length - 1 && !asValues[iValue]) {
@ -733,13 +733,17 @@ class Debugger extends Component
break;
}
}
if (!sOp) break;
this.assert(Debugger.aBinOpPrecedence[sOp] != null);
if (aOps.length && Debugger.aBinOpPrecedence[sOp] <= Debugger.aBinOpPrecedence[aOps[aOps.length - 1]]) {
var aBinOp = (this.achGroup[0] == '<'? Debugger.aDECOpPrecedence : Debugger.aBinOpPrecedence);
if (!aBinOp[sOp]) {
fError = true;
break;
}
if (aOps.length && aBinOp[sOp] <= aBinOp[aOps[aOps.length - 1]]) {
this.evalOps(aVals, aOps, 1);
}
aOps.push(sOp);
/*
@ -827,7 +831,7 @@ class Debugger extends Component
*
* We pop 1 "binop" from aOps and 2 values from aVals whenever a "binop" of lower priority than its
* predecessor is encountered, evaluate, and push the result back onto aVals. Only selected unary
* operators are supported (eg, minus and "not"); ternary operators like '?:' are not supported at all.
* operators are supported (eg, negate and complement); no ternary operators like '?:' are supported.
*
* @this {Debugger}
* @param {string|undefined} sExp
@ -872,8 +876,8 @@ class Debugger extends Component
*
* Although I started listing the operators in the RegExp in "precedential" order, that's not important;
* what IS important is listing operators than contain shorter operators first. For example, bitwise
* shift operators must be listed BEFORE the logical less-than or greater-than operators. aBinOpPrecedence
* is what determines precedence.
* shift operators must be listed BEFORE the logical less-than or greater-than operators. The aBinOp tables
* (aBinOpPrecedence and aDECOpPrecedence) are what determine precedence, not the RegExp.
*
* Also, to better accommodate MACRO-10 syntax, I've replaced the single '^' for XOR with '^!', and I've
* added '!' as an alias for '|' (bitwise inclusive-or), '^-' as an alias for '~' (one's complement operator),
@ -897,7 +901,7 @@ class Debugger extends Component
* to remove spaces entirely, because if an operator-less expression like "A B" was passed in, we would want
* that to generate an error; if we converted it to "AB", evaluation might inadvertently succeed.
*/
var regExp = /(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/;
var regExp = /({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/;
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2^_").replace(/\s+/g, ' ');
var asValues = sExp.split(regExp);
value = this.parseArray(asValues, 0, asValues.length, this.nBase, fQuiet);
@ -1198,35 +1202,67 @@ class Debugger extends Component
if (DEBUGGER) {
/*
* Missing from this table are the (limited) set of unary operators we support (negate and complement),
* These are our operator precedence tables. Operators toward the bottom (with higher values) have
* higher precedence. aBinOpPrecedence was our original table; we had to add aDECOpPrecedence because
* the precedence of operators in DEC's MACRO-10 expressions differ. Having separate tables also allows
* us to remove operators that shouldn't be supported, but unless some operator creates a problem,
* I prefer to keep as much commonality between the tables as possible.
*
* Missing from these tables are the (limited) set of unary operators we support (negate and complement),
* since this is only a BINARY operator precedence, not a general-purpose precedence table. Assume that
* all unary operators take precedence over all binary operators.
*/
Debugger.aBinOpPrecedence = {
'||': 0, // logical OR
'&&': 1, // logical AND
'!': 2, // bitwise OR
'|': 2, // bitwise OR
'^!': 3, // bitwise XOR (added by MACRO-10 sometime between the 1972 and 1978 versions)
'&': 4, // bitwise AND
'!=': 5, // inequality
'==': 5, // equality
'>=': 6, // greater than or equal to
'>': 6, // greater than
'<=': 6, // less than or equal to
'<': 6, // less than
'>>>': 7, // unsigned bitwise right shift
'>>': 7, // bitwise right shift
'<<': 7, // bitwise left shift
'-': 8, // subtraction
'+': 8, // addition
'%': 9, // remainder
'/': 9, // division
'*': 9, // multiplication
'_': 10, // MACRO-10 shift operator
'^_': 10, // MACRO-10 internal shift operator (converted from 'B' suffix form that MACRO-10 uses)
'{': 11, // open grouped expression (achGroup[0] default)
'}': 11 // close grouped expression (achGroup[1] default)
'||': 5, // logical OR
'&&': 6, // logical AND
'!': 7, // bitwise OR (conflicts with logical NOT, but we never supported that)
'|': 7, // bitwise OR
'^!': 8, // bitwise XOR (added by MACRO-10 sometime between the 1972 and 1978 versions)
'&': 9, // bitwise AND
'!=': 10, // inequality
'==': 10, // equality
'>=': 11, // greater than or equal to
'>': 11, // greater than
'<=': 11, // less than or equal to
'<': 11, // less than
'>>>': 12, // unsigned bitwise right shift
'>>': 12, // bitwise right shift
'<<': 12, // bitwise left shift
'-': 13, // subtraction
'+': 13, // addition
'%': 14, // remainder
'/': 14, // division
'*': 14, // multiplication
'_': 19, // MACRO-10 shift operator
'^_': 19, // MACRO-10 internal shift operator (converted from 'B' suffix form that MACRO-10 uses)
'{': 20, // open grouped expression (converted from achGroup[0])
'}': 20 // close grouped expression (converted from achGroup[1])
};
Debugger.aDECOpPrecedence = {
'||': 5, // logical OR
'&&': 6, // logical AND
'!=': 10, // inequality
'==': 10, // equality
'>=': 11, // greater than or equal to
'>': 11, // greater than
'<=': 11, // less than or equal to
'<': 11, // less than
'>>>': 12, // unsigned bitwise right shift
'>>': 12, // bitwise right shift
'<<': 12, // bitwise left shift
'-': 13, // subtraction
'+': 13, // addition
'%': 14, // remainder
'/': 14, // division
'*': 14, // multiplication
'!': 15, // bitwise OR (conflicts with logical NOT, but we never supported that)
'|': 15, // bitwise OR
'^!': 15, // bitwise XOR (added by MACRO-10 sometime between the 1972 and 1978 versions)
'&': 15, // bitwise AND
'_': 19, // MACRO-10 shift operator
'^_': 19, // MACRO-10 internal shift operator (converted from 'B' suffix form that MACRO-10 uses)
'{': 20, // open grouped expression (converted from achGroup[0])
'}': 20 // close grouped expression (converted from achGroup[1])
};
/*

View file

@ -44,7 +44,7 @@ function pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}funct
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Aa(a){if(!Ba){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ea(a){r.init.push(a)}
function Fa(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ha(a){!Ga&&a?(Ga=!0,Ia&&Ja("init"),Ka&&Ja("show")):Ga=a}function Ja(a){r[a]&&Fa(r[a])}var Ba=null,r={init:[],show:[],exit:[]},Ia=!1,Ka=!1,Ga=!0,wa=null;Ca("onload",function(){Ia=!0;Fa(r.init)});Ca("onpageshow",function(){Ka=!0;Fa(r.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Fa(r.exit)});
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Na:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.u=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.u=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Pa(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function x(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function Qa(a,b){var c=z;b=A(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var m=h.split(" "),u=0;u<m.length;u++)switch(h=m[u],h){case c+"-binding":(h=y(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),u=m.length}}}}
@ -52,7 +52,7 @@ function A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.g
function Ra(a){for(var b=!0,c=Sa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ta.indexOf(e)&&(f=function(){return function(){Ra(a)}}());var g=Ua[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=x(d[1],a);if(h)if(g=Va[e])b=g(h,d[2],d[3]);else{var m=h.exports;if(m&&(g=m[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Sa[a];return b}k=t.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.ga=this.m[b]=c,c.value="",this.M=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.M(a,this.va)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
k.status=function(a){this.M(this.va+": "+a)};k.G=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function Wa(a,b){b&&(a.h.ready?b():a.Ca=b);return a.h.ready}function B(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.Ca;a.Ca=null;b&&b()}}function Xa(a,b){a.h.Na?(a.h.Aa=!1,a.h.Na=!1):a.h.error?a.M(a.toString()+" error"):a.h.Aa=b}k.V=function(){return this.h.F=!0};k.R=function(a,b){b&&(this.h.F=!1);return!0};
k.status=function(a){this.M(this.va+": "+a)};k.G=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function Wa(a,b){b&&(a.h.ready?b():a.Ca=b);return a.h.ready}function B(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.Ca;a.Ca=null;b&&b()}}function Xa(a,b){a.h.Oa?(a.h.Aa=!1,a.h.Oa=!1):a.h.error?a.M(a.toString()+" error"):a.h.Aa=b}k.V=function(){return this.h.F=!0};k.R=function(a,b){b&&(this.h.F=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var Ma=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Sa=window?window.PCjs.Commands:{},Ta=["hold","sleep","wait"],Ua={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Va={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
@ -67,42 +67,42 @@ k.jb=function(a,b,c){if(ib(this,b)){if(c){var d=this;setTimeout(function(){jb(d,
k.Ab=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;
d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return ob(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,qb(this,a,c[1]),!0):!1};k.Bb=function(a){return ib(this,a)?(jb(this,a),!0):!1};
function ib(a,b){var c=a.a[b];return c?(qb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=rb&&(a.K=b==sb,a.L=b==tb),!0):!1}function jb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(qb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}k.rb=function(a){a||this.j.h.B||(M(this.j,this.f),this.a[ub]&&this.a[ub][1]&&vb(this.j))};k.sb=function(){};k.mb=function(a){a||N(this.j)};
k.kb=function(a){if(!a&&!this.j.h.B)if(this.a[ub]&&this.a[ub][1])vb(this.j);else{a=this.w;var b;if(b=a)a.h.Aa&&(a.h.Na=!0),b=!a.h.Aa;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Fa(1);0<c&&(wb(this.j,c),xb(this.j,c,!0),yb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.u&&zb(this.u)}};k.lb=function(a){a&&!this.j.h.B&&(this.K&&Ab(this),a=hb(this,this.i=this.g),this.N==gb?Bb(this.s,this.f,a):this.j.c(this.f,a))};
k.kb=function(a){if(!a&&!this.j.h.B)if(this.a[ub]&&this.a[ub][1])vb(this.j);else{a=this.w;var b;if(b=a)a.h.Aa&&(a.h.Oa=!0),b=!a.h.Aa;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Ga(1);0<c&&(wb(this.j,c),xb(this.j,c,!0),yb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.u&&zb(this.u)}};k.lb=function(a){a&&!this.j.h.B&&(this.K&&Ab(this),a=hb(this,this.i=this.g),this.N==gb?Bb(this.s,this.f,a):this.j.c(this.f,a))};
k.nb=function(a){if(!a&&!this.j.h.B){this.L&&Ab(this);if(this.N==gb){a=this.s;var b=this.f,c=a.a[(b&a.g)>>>a.f];a.i++;b=c.i(b&16383,b);a.i--;a=b}else a=this.j.b(this.f);hb(this,this.i=a)}};k.pb=function(a){a||this.j.h.B||nb(this,this.g)};k.ob=function(a){a?(this.o=!0,kb(this,!0)):(this.o=!1,kb(this),ob(this,0))};k.qb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};function Ab(a){var b=1,c=a.s.g;a.a[rb]&&a.a[rb][1]||(b=-b);nb(a,a.f&~c|a.f+b&c)}
function nb(a,b){a.f=b&a.s.g;if(a.D!==a.f){a.D=a.f;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||pb(d,e,f)}}}function hb(a,b){a.v=b%J;if(a.H!==a.v){a.H=a.v;b=a.H;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||pb(d,e,f)}}return a.v}function ob(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;lb(a);return!0}k.stop=function(){nb(this,this.j.f)};
function mb(){for(var a=A(document,z,"panel"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=Pa(d.id);e||(e=new fb(d,!0));Qa(e,c)}}var gb=7,sb="DEP",ub="ENABLE",tb="EXAM",rb="STEP";Ea(mb);function Cb(a,b,c){t.call(this,"Bus",a);this.j=b;this.w=c;this.v=+a.busWidth||18;this.o=1<<this.v;this.g=this.o-1;this.f=Math.log2(16384);this.l=this.o/16384|0;this.i=0;this.a=[];a=new Db(this);Eb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;B(this)}l(Cb,t);k=Cb.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,Fb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],m=d[g++];h--;)f[e++]=m;d=f}e=this.a[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Gb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],m=16384*g,u=16384-(e-m);u>f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Ea+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Ea){u=h.size-(e-m);u>f&&(u=f);h.Ea=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Hb(Ib,e,f)}e=new Db(a,e,u,16384,d);Eb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Jb[d]+" at "+ka(b)),!0):Hb(Kb,b,c)}
function Bb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Fb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Oa||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var u=e[g],D=g+1;D<e.length&&e[D]===u;)D++;m[h++]=D-g;m[h++]=u;g=D}m.length<e.length&&(e=m)}c[f]=e}}return c}function Hb(a,b,c){q("Memory block error ("+a+": "+la(b)+","+la(c)+")");return!1}var Ib=1,Kb=2;function Lb(a){t.call(this,"Device",a)}l(Lb,t);k=Lb.prototype;
function Bb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Fb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Pa||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var u=e[g],D=g+1;D<e.length&&e[D]===u;)D++;m[h++]=D-g;m[h++]=u;g=D}m.length<e.length&&(e=m)}c[f]=e}}return c}function Hb(a,b,c){q("Memory block error ("+a+": "+la(b)+","+la(c)+")");return!1}var Ib=1,Kb=2;function Lb(a){t.call(this,"Device",a)}l(Lb,t);k=Lb.prototype;
k.Z=function(a,b,c,d){this.s=b;this.u=a;this.j=c;this.w=d;B(this)};k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new L(this)).data()};k.restore=function(){return!0};Ea(function(){for(var a=A(document,z,"device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new Lb(c),Qa(c,d)}}});
function Db(a,b,c,d,e){this.s=a;this.id=Mb+=2;this.fa=b;this.Ea=c;this.size=d||0;this.type=e||Nb;this.m=e==Ob;this.b=this.i=this.Pa;this.c=this.j=this.Ra;this.f=this.g=0;Eb(this);this.Oa=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pb(this,Qb)}else Pb(this)}k=Db.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Oa=!0):!1};function Pb(a,b){b||(b=Rb);Sb(a,b,void 0);Tb(a,b,void 0)}
function Sb(a,b,c){c&&a.f||(a.b=b[0]||a.Pa);if(c||void 0===c)a.i=b[0]||a.Pa}function Tb(a,b,c){c&&a.g||(a.c=!a.m&&b[1]||a.Ra);if(c||void 0===c)a.j=b[1]||a.Ra}function Eb(a,b){a.f=a.g=0;b&&((a.f=b.f)&&Sb(a,Ub,!1),(a.g=b.g)&&Tb(a,Ub,!1))}k.Pa=function(){var a=this.s;a.i||N(a.j);return-1};k.Ra=function(){};k.vb=function(a){return this.a[a]};k.Eb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Oa=!0)};k.tb=function(a,b){return this.i(a,b)};k.Db=function(a,b,c){this.m||this.j(a,b,c)};
var Nb=0,Ob=2,Jb=["NONE","RAM","ROM"],Mb=0,Rb=[],Qb=[Db.prototype.vb,Db.prototype.Eb],Ub=[Db.prototype.tb,Db.prototype.Db];
function Vb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ga=0;this.Ka=b;this.ja=c;this.Ia=Math.round(this.Ka/1E4)/100;this.ha=this.Ia*this.ja;this.Ja=this.pa=this.ba=this.za=0;this.h.B=this.h.Qa=!1;this.h.J=a.autoStart;"string"==typeof this.h.J&&(this.h.J="true"==this.h.J);this.h.Ba=!1;this.xa=this.ia=0;this.ya=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.K=[];this.Wa=this.yb.bind(this);this.P=this.D=this.N=this.H=this.C=this.ma=this.L=this.ca=this.La=this.W=0;this.ta=
function Db(a,b,c,d,e){this.m=a;this.id=Mb+=2;this.fa=b;this.Ea=c;this.size=d||0;this.type=e||Nb;this.s=e==Ob;this.b=this.i=this.Qa;this.c=this.j=this.Fa;this.f=this.g=0;Eb(this);this.Pa=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pb(this,Qb)}else Pb(this)}k=Db.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Pa=!0):!1};function Pb(a,b){b||(b=Rb);Sb(a,b,void 0);Tb(a,b,void 0)}
function Sb(a,b,c){c&&a.f||(a.b=b[0]||a.Qa);if(c||void 0===c)a.i=b[0]||a.Qa}function Tb(a,b,c){c&&a.g||(a.c=!a.s&&b[1]||a.Fa);if(c||void 0===c)a.j=b[1]||a.Fa}function Eb(a,b){a.f=a.g=0;b&&((a.f=b.f)&&Sb(a,Ub,!1),(a.g=b.g)&&Tb(a,Ub,!1))}k.Qa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;return-1};k.Fa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;};k.vb=function(a){return this.a[a]};k.Eb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Pa=!0)};k.tb=function(a,b){return this.i(a,b)};
k.Db=function(a,b,c){this.s?this.Fa():this.j(a,b,c)};var Nb=0,Ob=2,Jb=["NONE","RAM","ROM"],Mb=0,Rb=[],Qb=[Db.prototype.vb,Db.prototype.Eb],Ub=[Db.prototype.tb,Db.prototype.Db];
function Vb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ha=0;this.La=b;this.ja=c;this.Ja=Math.round(this.La/1E4)/100;this.ha=this.Ja*this.ja;this.Ka=this.pa=this.ba=this.za=0;this.h.B=this.h.Ra=!1;this.h.J=a.autoStart;"string"==typeof this.h.J&&(this.h.J="true"==this.h.J);this.h.Ba=!1;this.xa=this.ia=0;this.ya=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.K=[];this.Wa=this.yb.bind(this);this.P=this.D=this.N=this.H=this.C=this.ma=this.L=this.ca=this.Ma=this.W=0;this.ta=
null;B(this)}l(Vb,t);k=Vb.prototype;k.Z=function(a,b,c,d){this.u=a;this.s=b;this.w=d;this.ta=a.g;for(a=0;a<Wb.length;a++)(b=this.m[Wb[a]])&&this.u.U(null,Wb[a],b);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Xb(this.u,"autoStart");null!=c?this.h.J="true"==c?!0:"false"==c?!1:!!c:null==this.h.J&&(this.h.J=void 0===this.m.run);if(!b){if(a){Yb(this);if(!this.restore(a))return!1;Zb(this)}else this.reset();this.status("No debugger detected");this.h.J||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.h.B?!0:this.h.J?(vb(this),!0):!1};k.Ya=function(){return 0};
function Zb(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.h.Ba=0<=a.ya&&0<a.na;a.h.Ba&&(a.xa=0,a.ia=a.ya-a.P)}function yb(a,b){if(a.h.Ba){var c=!1;a.xa=a.xa+a.Ya()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=$b(a)&&(a.na=a.oa=-1,Zb(a),N(a),c=!0);c&&a.M($b(a)+" cycles: checksum="+la(a.xa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?N(d):vb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){ac(d,d.ja<<1,!0)},c.textContent=this.ha.toFixed(2)+"Mhz",!0}return!1};function xb(a,b,c){a.P+=b;c&&(a.N=a.H=0)}function bc(a,b){var c=1;b&&1<a.ja&&a.W&&(c=a.W/a.Ia);a.Ja=Math.round(1E3/cc);a.pa=Math.floor(a.Ka/cc*c);b||(a.ba=a.pa);a.za=0}function $b(a){return a.P+a.D+a.N-a.H}function Yb(a){a.W=0;a.La=0;a.P=a.D=a.N=a.H=0;Zb(a);ac(a,1)}
function ac(a,b,c){if(void 0!==b){.8>a.W/a.ha&&(b=1);a.ja=b;b=a.Ia*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}xb(a,a.D);a.D=0;a.C=Na();a.L=0;bc(a)}function dc(a){for(var b=[],c=0;c<a.K.length;c++)b.push(a.K[c][0]);return b}
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){ac(d,d.ja<<1,!0)},c.textContent=this.ha.toFixed(2)+"Mhz",!0}return!1};function xb(a,b,c){a.P+=b;c&&(a.N=a.H=0)}function bc(a,b){var c=1;b&&1<a.ja&&a.W&&(c=a.W/a.Ja);a.Ka=Math.round(1E3/cc);a.pa=Math.floor(a.La/cc*c);b||(a.ba=a.pa);a.za=0}function $b(a){return a.P+a.D+a.N-a.H}function Yb(a){a.W=0;a.Ma=0;a.P=a.D=a.N=a.H=0;Zb(a);ac(a,1)}
function ac(a,b,c){if(void 0!==b){.8>a.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}xb(a,a.D);a.D=0;a.C=Na();a.L=0;bc(a)}function dc(a){for(var b=[],c=0;c<a.K.length;c++)b.push(a.K[c][0]);return b}
function wb(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ec(a,b){var c=a.N-=a.H;a.H=0;b&&(a.N=0);return c}
k.yb=function(){if(this.h.B){this.za>=this.Ka&&bc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ja&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Fa(b)}catch(f){if("number"!=typeof f)throw f;}b=ec(this,!0);this.ca+=b;this.D+=b;yb(this,b);wb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.La>=fc&&(this.u&&zb(this.u,void 0),this.La=0);break}}while(this.h.B)}catch(f){N(this);
this.u&&this.u.stop(Na(),$b(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Wa;this.L=Na();c=this.Ja;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,ac(this));if(0>c||this.W<this.ha)-1E3>c&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
function vb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{ac(a);a.h.B=!0;a.h.Qa=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.C,$b(a));a.w||a.status("Started");setTimeout(a.Wa,0)}}k.Fa=function(){return 0};function N(a){var b=!1;if(a.h.B){ec(a);xb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Na(),$b(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var cc=30,fc=15,Wb=["power","reset"];
k.yb=function(){if(this.h.B){this.za>=this.La&&bc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=ec(this,!0);this.ca+=b;this.D+=b;yb(this,b);wb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=fc&&(this.u&&zb(this.u,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
this.u&&this.u.stop(Na(),$b(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Wa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,ac(this));if(0>c||this.W<this.ha)-1E3>c&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
function vb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{ac(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.C,$b(a));a.w||a.status("Started");setTimeout(a.Wa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){ec(a);xb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Na(),$b(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var cc=30,fc=15,Wb=["power","reset"];
function gc(a){var b=+a.model||1001;Vb.call(this,a,1E6);this.fb=b;this.ua=+a.addrReset||0;this.gb=hc.bind(this);this.i=O.bind(this);this.la=null;this.Sa=[];this.h.complete=!1}l(gc,Vb);k=gc.prototype;
k.reset=function(){this.status("Model "+this.fb);this.h.B&&N(this);this.qa=this.ra=this.a=this.v=0;this.f=this.Ha=this.ua;this.A=this.aa=-1;this.o=this.g=0;this.Ma=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.l=0;this.b=this.ub;this.c=this.Fb;this.la=null;Yb(this);this.h.error=!1;Vb.prototype.reset.call(this)};k.Ya=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.v,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.l,this.Ha,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,ic(this));a.set(4,dc(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.v=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ha=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];ac(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
k.reset=function(){this.status("Model "+this.fb);this.h.B&&N(this);this.qa=this.ra=this.a=this.v=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.o=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.l=0;this.b=this.ub;this.c=this.Fb;this.la=null;Yb(this);this.h.error=!1;Vb.prototype.reset.call(this)};k.Ya=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.v,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.l,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,ic(this));a.set(4,dc(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.v=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];ac(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
if(e.Cb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.K.length&&b<a.length;b++)this.K[b][0]=a[b];return!0};function M(a,b){a.f=b%$a;a.aa=-1}function ic(a){var b=[];for(a=a.la;a;)b.push(a.Cb),a=a.next;return b}k.ub=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Fa=function(a){this.h.complete=!0;var b=a?this.h.Qa?0:1:-1;this.h.Qa=!1;this.N=this.H=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.v&4194304?this.v=this.qa=this.b(this.a):0<=this.aa?(this.v=this.ra=this.b(this.aa),this.aa=-1):(this.v=this.ra=this.b(this.Ha=this.f),this.f=(this.f+1)%$a);this.v&=8388607;this.a=this.v&262143;if(a=this.v>>18&15)this.a=this.a+
k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.v&4194304?this.v=this.qa=this.b(this.a):0<=this.aa?(this.v=this.ra=this.b(this.aa),this.aa=-1):(this.v=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.v&=8388607;this.a=this.v&262143;if(a=this.v>>18&15)this.a=this.a+
(this.qa=this.b(a))&Za;a=this.v&4194304?-1:this.ra/db|0;0<=a&&this.gb(a);this.H--}while(0<this.H);return this.h.complete?this.N-this.H:!1===this.h.complete?-1:0};Ea(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new gc(d);Qa(d,c)}});function hc(a){jc[a>>4].call(this,a,a&15)}function P(a){this.i(a)}function kc(){var a=0,b=this.b(this.a),c=b/eb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*eb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
function lc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.v=this.a|4194304;else{var c=this.A/eb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.v=this.a|4194304;else{var c=this.A/eb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
function nc(a,b){this.c(b,this.b(this.a))}function oc(a,b){this.c(b,this.a)}function pc(a,b){this.c(this.a,this.b(b))}function qc(a,b){this.c(b,0)}function rc(a,b){this.c(b,I-this.b(b))}function sc(a,b){this.c(b,I)}function tc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,uc(a,d,c)+(c-(c&C)))}function vc(a,b){var c=this.b(b);this.c(b,uc(a,c,0))}function wc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,uc(a,c,b)+(b-(b&C)))}
function xc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function yc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,uc(a,d,c)+c)}function zc(a,b){var c=this.a*E,d=this.b(b);this.c(b,uc(a,d,c)+c)}function Ac(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,uc(a,c,b)+b)}function Bc(a,b){var c=this.b(this.a),d=(c&C)*E,c=uc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}
function Cc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Dc(a,d,c)+c)}function Ec(a,b){var c=this.b(b);this.c(b,Dc(a,c,this.a)+this.a)}function Fc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Gc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Hc(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Dc(a,d,c)+c)}function Ic(a,b){var c=this.b(b);this.c(b,Dc(a,c,0))}
function Jc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Kc(a,b){var c=this.b(this.a),d=c/E|0,c=Dc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Lc[a&7].call(this,a,a>>3&127)}function Mc(){}function Nc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Oc(a){a>F&&(a!=G?a=cb-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Pc.call(this,a,b,c);return c}
function S(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=I-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Ma;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ea;c[0]=a;for(c[1]=b;0<Qc(this.ea,this.X);)Rc(this.X,this.X),Rc(this.da,this.da);do{if(0<=Qc(this.ea,this.X)&&(b=this.ea,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Rc(this.Ma,this.da),Sc(this.ea)))break;Tc(this.X);Tc(this.da)}while(!Sc(this.da));
a=this.Ma[0];this.o=this.ea[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
function S(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=I-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ea;c[0]=a;for(c[1]=b;0<Qc(this.ea,this.X);)Rc(this.X,this.X),Rc(this.da,this.da);do{if(0<=Qc(this.ea,this.X)&&(b=this.ea,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Rc(this.Na,this.da),Sc(this.ea)))break;Tc(this.X);Tc(this.da)}while(!Sc(this.da));
a=this.Na[0];this.o=this.ea[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
function Uc(a,b,c){var d=a,e=b;b=!1;var f;d>F&&(d=J-d,b=!b);e>F&&(e=J-e,b=!b);if(d<E&&e<E)a=d*e,f=0;else{a=d&C;d=Math.trunc(d/E);f=e&C;var e=Math.trunc(e/E),g=a*f,h=d*f+Math.trunc(g/E);f=Math.trunc(h/E);h=(h&C)+a*e;a=h*E+(g&C);f+=Math.trunc(h/E)+d*e}b&&(a?(f=I-f,a=J-a):f&&(f=J-f));if(c)return(f||a>F)&&(f!=I||a<=F)&&(this.g|=131072),a;c=a;b=f;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;d=b-b%G;a!=d&&(b=a+(b-d),this.g|=131072);this.o=c;return b}
function Vc(a){a?a==G?this.g|=163840:a=cb-a:this.g|=98304;return a}function Wc(a,b){var c=a-b;0>c&&(c+=J);Pc.call(this,c,b,a);return c}function Pc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-J)}
function Xc(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a<G?a:a-J}function Y(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function Z(a){return(a/E|0)+(a&C)*E}function Dc(a,b,c){switch(a&384){case 0:b-=b&C;break;case 128:b=0;break;case 256:b=C*E;break;case 384:b=c>ab?C*E:0}return b}function uc(a,b,c){switch(a&384){case 0:b&=C;break;case 128:b=0;break;case 256:b=C;break;case 384:b=c>F?C:0}return b}
@ -174,7 +174,7 @@ function sd(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo h
function yd(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new L(a,"1.34.3"),g=new L(a,"1.34.3",md),h=ta();g.set(od,h);f.set(od,h);f.set(zd,"1.34.3");f.set(Ad,window?window.location.href:null);f.set(Bd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.h.J=a.j.h.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.h.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m<h.length;m++){var u=h[m];u.h.F&&(u.R&&(d=u.R(b,c),"object"===typeof d&&f.set(u.id,d)),c&&(u.h.F=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Cd(a,a.f,f.toString()),vd(g)&&vd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Dd),d&&f.clear(h)):e=f.toString());c&&(a.h.F=!1,b=a.m.power)&&(b.textContent="Power");a.i=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.j&&this.j.reset&&this.j.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.j&&c.reset&&c.reset()}this.h.reset=!1;zb(this,-1)};
k.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}zb(this,-1)};k.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}zb(this,-1)};
function zb(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ga+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ga=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);nb(a,a.f);hb(a,a.i)}}
function zb(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);nb(a,a.f);hb(a,a.i)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.h.F?yd(d,!1,!0):kd(d,d.sa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.i)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+Ya+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");yd(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(hd)}else d.reset(),d.j&&!d.w&&d.j.J()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=gd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=yd(d,b);b?Cd(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function gd(a,b){var c=a.f;c||((c=xa(wd),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ed(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Ed(a,b){a.f=null;b=p(pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(wd,b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function jd(a){var b=null;a.f&&(b=pa()+"/api/v1/user?req=load&user="+a.f+"&state="+Fd(a,"1.34.3"));return b}