Cleaned up expression evaluation for improved compatibility with MACRO-10

This commit is contained in:
Jeff 2017-03-12 11:44:38 -07:00 committed by Jeff Parsons
commit 05e09699dd
13 changed files with 1187 additions and 1069 deletions

View file

@ -715,176 +715,176 @@ var Tw="Hard Drive",Ww=["XTC","ATC","COMPAQ"],Uw=[{0:[306,2],1:[375,8],2:[306,6]
112,tx=144,Ax=145,ux=240,Bx=2,ox=4,Hx=0,Ix=2,Lx=0,Mx=1,Dx=3,Nx=5,Ox=8,Qx=10,ax=12,Sx=15,Jx=224,Kx=228,Sw=0,Fx=4,Ux=20,Rw=0,bx=1,Yw=2,Zw=4,$w=8,Xw=32,Jw={800:Hw.prototype.Tm,801:Hw.prototype.Um,802:Hw.prototype.Sm},Iw={496:Hw.prototype.nl,497:Hw.prototype.$l,498:Hw.prototype.bm,499:Hw.prototype.cm,500:Hw.prototype.Yl,501:Hw.prototype.Xl,502:Hw.prototype.Zl,503:Hw.prototype.dm},Lw={800:Hw.prototype.ro,801:Hw.prototype.uo,802:Hw.prototype.to,803:Hw.prototype.so,807:Hw.prototype.hi,811:Hw.prototype.hi,
815:Hw.prototype.hi},Kw={496:Hw.prototype.An,497:Hw.prototype.Fn,498:Hw.prototype.Dn,499:Hw.prototype.En,500:Hw.prototype.zn,501:Hw.prototype.yn,502:Hw.prototype.Bn,503:Hw.prototype.xn,1014:Hw.prototype.Cn};ab(function(){for(var a=Ab(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new Hw(d);zb(d,c)}});function Wx(a){nb.call(this,"Debugger",a);this.ya=+a.base||16;this.Ga=["{","}"];this.za=["[","]"];this.W=this.ga=this.L=0;this.aa=!1;this.A=-1;this.C=[];this.da={}}ba(Wx,nb);
Wx.prototype.gh=function(){return-1};Wx.prototype.hh=function(){};Wx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Wx.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.aa?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(Ca(a.substring(d,f))),d=f+1}}return b};
function Xx(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Yx(a,b,c){var d;if(b){b=Zx(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],w=p.length,p=Ca(p);if(!p){f=!0;break}p=$x(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==m.length)break;var p=m[e++],u=p.length;k.length&&ay[p]<ay[k[k.length-1]]&&Xx(h,k,1);k.push(p);b=b.substr(w+u)}Xx(h,k)&&1==h.length||(f=!0);f?c&&a.P("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&by(a,null,
d))}return d}
function Zx(a,b){var c,d=a.Ga[0],e=a.Ga[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=Yx(a,c[1]);b=b.replace(d+c[1]+e,null!=g?cy(a,g):"undefined")}if(a.za.length)for(d=a.za[0],e=a.za[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.W-a.ga}if(null==e)break;b=b.replace(d[0],
e.toString())}return b}function $x(a,b,c,d){var e;null!=b?(e=a.gh(b),0<=e?e=a.hh(e):(e=a.da[b],null==e&&(e=oa(b,a.ya))),null!=e||d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return e}function by(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function dy(a,b){if(b)return by(a,b,a.da[b]);var c=0;for(b in a.da)by(a,b,a.da[b]),c++;return 0<c}
function cy(a,b){var c;c=void 0===c?0:c;switch(a.ya){case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ay={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function ey(a){Wx.call(this,a);this.oa=4;this.ha=5;this.wa=1048575;this.K=fy(this);this.Ma=fy(this);this.Z=fy(this);this.D=[];this.B=this.Y=this.M=[];gy(this);this.ta=0;hy(this);this.Aa={};iy(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return jy(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return jy(b,a)})}ba(ey,Wx);l=ey.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.eb=Xb(a,"FDC");this.Ta=Xb(a,"HDC");this.Tc=Xb(a,"FPU");this.G=Xb(a,"Mouse");(a=zd(a,"messages"))&&iy(this,a);this.ha=b.I>>2;this.wa=b.N;this.Ya=new Vd(this.H,7,"DBG");this.ma=ky;80186<=this.H.ca&&(this.ma=ky.slice(),this.ma[15]=ly,80286<=this.H.ca&&(this.ma[15]=my,80386<=this.H.ca&&(this.oa=8)));Al(this,64,function(a){ny(d,d.H.sc,a[0])});Al(this,4,function(a){if(a=a[0]){var b=$x(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=oy(d,
b,py),d.P("dumpSel("+ta(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ha)),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=qy[a.type];e&&(c=e[0],b=e[1])}!c||a.lb&32768||(c+=",not present");d.P((b?"seg="+ta(a.ua&65535)+" off="+ta(a.Ka):"base="+q(a.ua,d.ha)+" limit="+ry(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+ta(a.ext&-65296)+
" dpl="+r(a.qc))}}else d.P("no selector")});Al(this,134217728,function(a){var b;(a=a[0])&&(b=$x(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+ta(b)+")");b;){a=fy(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(sy(0,b)+": '"+String.fromCharCode(c)+"' PID="+ta(e)+" LEN="+ta(k)+' "'+ty(d,a,8)+'"');b+=1+k}});Al(this,128,function(a){ny(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});Al(this,8,function(a){a:{if(a=a[0]){var b=$x(d,a);if(void 0===b){d.P("invalid task selector: "+
a);break a}a=oy(d,b,py)}else a=d.H.la;d.P("dumpTSS("+ta(a?a.U:b)+"): %"+q(a?a.ua:null,d.ha));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?uy:vy,m,p,w,u;for(u in k)m=k[u],p=a.ua+m,w=yg(d.H,p,2),2304==c&&(w|=yg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=ta(m)+" "+Ba(u+":",11)+q(w,e);if(2304==c)for(u=0,m=w>>>16;m<a.Nb&&1023>u;)p=a.ua+m,w=yg(d.H,p,2),b+="\n"+ta(m)+" ports "+ta(u)+"-"+ta(u+15)+": "+ra(w,2),u+=16,m+=2;d.P(b)}}});this.F=null;this.Ha=0;this.Ba=!1;Sf(this.H,48,this.Ym.bind(this));Sf(this.H,65,
this.Zm.bind(this));this.O=null;Sf(this.H,104,this.$m.bind(this));Jb(this)};function wy(a,b,c,d,e,f){b=ty(a,b);var g=oy(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=xy(a,b,c);e[b+h]=0;aq(a,b,c,d,0,null,g,e)}
function yy(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=zy(a,b,4),h=zy(a,b,4),k=fy(a,zy(a,b,4),a.Yc(b,2));b=fy(a,zy(a,b,4),a.Yc(b,2));b=ty(a,b).toUpperCase();var k=ty(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=xy(a,k,e);c[k+m]=g;aq(a,k,e,f,g,null,h,c)}function Ay(a,b,c){c=ty(a,c).toUpperCase();By(a,c,b)}
l.Ym=function(){var a=this.H;if(null!=this.F&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=fy(this,z(a)+12,a.Y.U);switch(zy(this,d)){case 336:yy(this,fy(this,a.G,b),!c,!!this.F)}}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.F)return 79==c&&Tf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Mb(a,"INT 0x41 handling enabled",128),a.F=!0):(Mb(a,"INT 0x41 monitoring enabled",128),a.F=!1)}}(this)),!0;switch(c){case 79:this.F&&(b.D=b.D&-65536|62342,Mb(this,"INT 0x41 handling enabled",128));break;case 80:wy(this,fy(this,h,k),d+1,e,!(g&1),!!this.F);break;case 82:By(this,null,
d);break;case 127:this.F&&(b.D=b.D&-65536|(this.Ba?0:1));break;case 131:this.F&&(a=fy(this,b.L,e),this.Ha++?(this.P("TRAPFAULT failed"),Cy(this,this.B,a,!0,!0),this.Ha=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+ta(d)+" error="+q(b.K,8,!0)+" addr="+Dy(a)),this.Gd(this.B,a,!0),hy(this,!0)));break;case 141:this.F&&(b.D=b.D&-65536|1);break;case 336:yy(this,fy(this,b.G,f),!g,!!this.F);break;case 338:Ay(this,d,fy(this,b.J,f))}this.Ba=!1;return!this.F};
Wx.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.aa?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(Ca(a.substring(d,f))),d=f+1}}return b};function Xx(a){return a|0}
function Yx(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=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=
f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f^e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(Xx(d))}return!0}
function Zx(a,b,c){var d;b&&(b=$x(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],w=p.length,p=Ca(p);if(!p){f=!0;break}p=ay(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==m.length)break;var p=m[e++],u=p.length;k.length&&by[p]<by[k[k.length-1]]&&Yx(h,k,1);k.push(p);b=b.substr(w+u)}Yx(h,k)&&1==h.length||(f=!0);f?c&&a.P("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&
cy(a,null,d))}return d}
function $x(a,b){var c,d=a.Ga[0],e=a.Ga[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=Zx(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?dy(a,g):"undefined")}if(a.za.length)for(d=a.za[0],e=a.za[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.W-a.ga}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function ay(a,b,c,d){var e;null!=b?(e=a.gh(b),0<=e?e=a.hh(e):(e=a.da[b],null==e&&(e=oa(b,a.ya))),null!=e||d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return e}function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}
function ey(a,b){if(b)return cy(a,b,a.da[b]);var c=0;for(b in a.da)cy(a,b,a.da[b]),c++;return 0<c}function dy(a,b){var c;c=void 0===c?0:c;switch(a.ya){case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var by={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function fy(a){Wx.call(this,a);this.oa=4;this.ha=5;this.wa=1048575;this.K=gy(this);this.Ma=gy(this);this.Z=gy(this);this.D=[];this.B=this.Y=this.M=[];hy(this);this.ta=0;iy(this);this.Aa={};jy(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ky(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ky(b,a)})}ba(fy,Wx);l=fy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.eb=Xb(a,"FDC");this.Ta=Xb(a,"HDC");this.Tc=Xb(a,"FPU");this.G=Xb(a,"Mouse");(a=zd(a,"messages"))&&jy(this,a);this.ha=b.I>>2;this.wa=b.N;this.Ya=new Vd(this.H,7,"DBG");this.ma=ly;80186<=this.H.ca&&(this.ma=ly.slice(),this.ma[15]=my,80286<=this.H.ca&&(this.ma[15]=ny,80386<=this.H.ca&&(this.oa=8)));Al(this,64,function(a){oy(d,d.H.sc,a[0])});Al(this,4,function(a){if(a=a[0]){var b=ay(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=py(d,
b,qy),d.P("dumpSel("+ta(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ha)),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=ry[a.type];e&&(c=e[0],b=e[1])}!c||a.lb&32768||(c+=",not present");d.P((b?"seg="+ta(a.ua&65535)+" off="+ta(a.Ka):"base="+q(a.ua,d.ha)+" limit="+sy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+ta(a.ext&-65296)+
" dpl="+r(a.qc))}}else d.P("no selector")});Al(this,134217728,function(a){var b;(a=a[0])&&(b=ay(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+ta(b)+")");b;){a=gy(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(ty(0,b)+": '"+String.fromCharCode(c)+"' PID="+ta(e)+" LEN="+ta(k)+' "'+uy(d,a,8)+'"');b+=1+k}});Al(this,128,function(a){oy(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});Al(this,8,function(a){a:{if(a=a[0]){var b=ay(d,a);if(void 0===b){d.P("invalid task selector: "+
a);break a}a=py(d,b,qy)}else a=d.H.la;d.P("dumpTSS("+ta(a?a.U:b)+"): %"+q(a?a.ua:null,d.ha));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?vy:wy,m,p,w,u;for(u in k)m=k[u],p=a.ua+m,w=yg(d.H,p,2),2304==c&&(w|=yg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=ta(m)+" "+Ba(u+":",11)+q(w,e);if(2304==c)for(u=0,m=w>>>16;m<a.Nb&&1023>u;)p=a.ua+m,w=yg(d.H,p,2),b+="\n"+ta(m)+" ports "+ta(u)+"-"+ta(u+15)+": "+ra(w,2),u+=16,m+=2;d.P(b)}}});this.F=null;this.Ha=0;this.Ba=!1;Sf(this.H,48,this.Ym.bind(this));Sf(this.H,65,
this.Zm.bind(this));this.O=null;Sf(this.H,104,this.$m.bind(this));Jb(this)};function xy(a,b,c,d,e,f){b=uy(a,b);var g=py(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=yy(a,b,c);e[b+h]=0;aq(a,b,c,d,0,null,g,e)}
function zy(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=Ay(a,b,4),h=Ay(a,b,4),k=gy(a,Ay(a,b,4),a.Yc(b,2));b=gy(a,Ay(a,b,4),a.Yc(b,2));b=uy(a,b).toUpperCase();var k=uy(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=yy(a,k,e);c[k+m]=g;aq(a,k,e,f,g,null,h,c)}function By(a,b,c){c=uy(a,c).toUpperCase();Cy(a,c,b)}
l.Ym=function(){var a=this.H;if(null!=this.F&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=gy(this,z(a)+12,a.Y.U);switch(Ay(this,d)){case 336:zy(this,gy(this,a.G,b),!c,!!this.F)}}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.F)return 79==c&&Tf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Mb(a,"INT 0x41 handling enabled",128),a.F=!0):(Mb(a,"INT 0x41 monitoring enabled",128),a.F=!1)}}(this)),!0;switch(c){case 79:this.F&&(b.D=b.D&-65536|62342,Mb(this,"INT 0x41 handling enabled",128));break;case 80:xy(this,gy(this,h,k),d+1,e,!(g&1),!!this.F);break;case 82:Cy(this,null,
d);break;case 127:this.F&&(b.D=b.D&-65536|(this.Ba?0:1));break;case 131:this.F&&(a=gy(this,b.L,e),this.Ha++?(this.P("TRAPFAULT failed"),Dy(this,this.B,a,!0,!0),this.Ha=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+ta(d)+" error="+q(b.K,8,!0)+" addr="+Ey(a)),this.Gd(this.B,a,!0),iy(this,!0)));break;case 141:this.F&&(b.D=b.D&-65536|1);break;case 336:zy(this,gy(this,b.G,f),!g,!!this.F);break;case 338:By(this,d,gy(this,b.J,f))}this.Ba=!1;return!this.F};
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.O){if(67==d){if(609437257==b.ia((b.Z.U<<4)+10)||1111835735==b.ia((b.Z.U<<4)+95))return!0;Tf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Mb(a,"INT 0x68 handling enabled",128),a.F=a.O=!0):(Mb(a,"INT 0x68 monitoring enabled",128),a.O=!1)}}(this))}return!0}switch(d){case 67:this.O&&(b.D=b.D&-65536|62342);break;case 68:this.O&&(a=Xd(b.Z,this.yl.bind(this)))&&
(b.J=a[0],oe(b,a[1]));break;case 72:By(this,null,e);break;case 80:32==c?wy(this,fy(this,h,k),0,f,!0,!!this.O):128>c?wy(this,fy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.O):yy(this,fy(this,h,k),!(c&1),!!this.O),this.O&&(b.D=b.D&-256|1)}return!this.O};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.qa=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",jy(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,Za(c,function(){if(d.qa){var a=d.qa.value;
d.qa.value="";jy(d,a,!0);return!0}return!1}),!0;case "step":return this.na[b]=c,Za(c,function(a){var b=!1;Kb(d,!0)||(Lb(d,!0),b=Ey(d,a?1:0),Lb(d,!1));return b}),!0}return!1};l.ld=function(){this.qa&&this.qa.focus()};function Fy(a){return!(!(a.H&&a.H.qa&1)||a.H.O&131072)}
function oy(a,b,c){var d=Fy(a)?py:Gy;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.Ca&&c==py||!a.Ya)return null}a=a.Ya;if(c!=py)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=yg(c,d+0,2);var f=yg(c,d+4,2),g=f&7936,h=yg(c,d+2,2)|(f&255)<<16,k=yg(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.lb=f;a.type=g;a.ext=k;a.Lb=d;Wd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.xa;if(null==d&&(d=-1,a)){var e=oy(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.xa=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=yg(this.H,d,1,a.type==Hy)|0,b&&Iy(this,a,b));return c};
l.jb=function(a,b){return a.Hb?zy(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=yg(this.H,d,2,a.type==Hy)|0,b&&Iy(this,a,b));return c};function zy(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=yg(a.H,e,4,b.type==Hy)|0,c&&Iy(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!=Hy)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&&Iy(this,a,c);d||Cd(this.H,!0)}};
l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Hy?this.H.fb(d,b):Kc(this.ka,d,b),c&&Iy(this,a,c),Cd(this.H,!0))};function fy(a,b,c,d,e,f,g){return Jy(a,{},b,c,d,e,f,g)}function Jy(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.xa=e;b.type=f||(Fy(a)?py:Gy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.V);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Ky(a){return[a.Ja,a.U,a.xa,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Ly(a){return{Ja:a[0],U:a[1],xa:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}}
function My(a,b,c){if(null!=b.U&&(a=oy(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.V,b.dc=4==a.Jc)}return!0}
function Ny(a,b,c,d){var e,f=c?a.K:a.Ma;c=d?Oy:f.type;var g=f.Ja,h=f.U,f=f.xa;if(void 0!==b){b=Zx(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Gy;break;case "#":c=py;break;case "%":c=Py;e=b.charAt(1);"%"==e&&(c=Hy,e+=e);g=0;h=null;break;default:0<=f&&(c=Oy),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 w=e.Fd[m];if(void 0!==w){m=w.o;void 0!==m&&(k=w.s,void 0===k&&(k=e.U),k=fy(a,m,k,w.p));
break}}if(e=k)return e;0>f?null!=h?(g=Yx(a,b,void 0),f=null):(f=Yx(a,b,void 0),null==f&&(g=null)):(h=Yx(a,b.substring(0,f),void 0),g=Yx(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=fy(a,g,h,f,c),d||My(a,e,!0)||(a.P("invalid offset: "+Dy(e)),e=null));return e}function Qy(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Ny(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")};
function Iy(a,b,c){c=c||1;null!=b.xa&&(b.xa+=c);null!=b.U&&(b.Ja+=c,My(a,b)||(b.Ja=0,b.xa=null))}function sy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Dy(a){var b;switch(a.type){case Gy:case Ry:b="&";break;case py:b="#";break;case Py:b="%";break;case Hy:b="%%";break;default:b=a.U?"":"%"}return a.type>=Py||null==a.U?b+q(a.xa):b+sy(a.Ja,a.U,a.dc)}
function ty(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 ny(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Ny(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==cd&&(d=td(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=vc[c],c==ed&&(d=d.pd,h+=" -> "+vc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<<a.H.hb,8)+" %%"+q(d.xa,8)+" "+ta(d.ve)+" "+ta(d.size)+
" "+h),c!=bd&&c!=cd&&(c=-1),h=0),e+=a.H.Ng,f++}function Sy(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 xy(a,b,c){var d=[],e;for(e=null;e=Xb(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 iy(a,b){a.ba=a;a.ic=a.wl=1073741824;a.va=null;b=a.Cg(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Sb)0<=Ia(b,c)&&(a.ic|=Sb[c],a.P(c+" messages enabled"));hy(a)}function Al(a,b,c){for(var d in Sb)if(b==Sb[d]){a.Aa[d]=c;break}}l.gh=function(a,b){var c;a=a.toUpperCase();null==b?c=Ia(Ty,a):(c=Ia(Ty,a.substr(b,3)),0>c&&(c=Ia(Ty,a.substr(b,2))));return c};
function Uy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Vy:case Wy:case Xy:case Yy:case Zy:case $y:case az:case bz:c=2;break;case cz:case dz:case ez:case fz:case gz:case hz:case iz:case jz:case kz:case lz+mz:case lz+nz:case lz+oz:case lz+pz:case lz+qz:case lz+rz:c=4;break;case sz:case tz:case uz:case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:c=8;break;case Fz:c=a.oa}return c?q(d,c):"??"}
l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Vy:b=c.D&255;break;case Wy:b=c.I&255;break;case Xy:b=c.L&255;break;case Yy:b=c.G&255;break;case Zy:b=c.D>>8&255;break;case $y:b=c.I>>8&255;break;case az:b=c.L>>8&255;break;case bz:b=c.G>>8&255;break;case cz:b=c.D&65535;break;case dz:b=c.I&65535;break;case ez:b=c.L&65535;break;case fz:b=c.G&65535;break;case gz:b=z(c)&65535;break;case hz:b=c.M&65535;break;case iz:b=c.K&65535;break;case jz:b=c.J&65535;break;case kz:b=A(c)&65535;break;case Fz:b=
re(c);break;case lz+mz:b=c.oa.U;break;case lz+nz:b=c.Z.U;break;case lz+oz:b=c.Y.U;break;case lz+pz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Az&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case sz:b=c.D;break;case tz:b=c.I;break;case uz:b=c.L;break;case vz:b=c.G;break;case wz:b=z(c);break;case xz:b=c.M;break;case yz:b=c.K;break;case zz:b=c.J;break;case Az:b=c.qa;break;case Bz:b=c.Og;break;case Cz:b=c.Cd;break;case Dz:b=c.Wc;break;case lz+qz:b=c.Ga.U;break;case lz+rz:b=c.Ha.U;break;case Ez:b=A(c)}}}return b};
function Gz(a,b){b=Zx(a,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)+Uy(a,e)+b.substr(c+1+Ty[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=Ny(a,e))?(d=e+' "'+ty(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=Ny(a,e))?(Iy(a,d),d=
e+' "'+ty(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Dy(fy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.va&&a==this.va||(this.va=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,Cd(a)))};
function Wk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Hz.indexOf(b),!d)){var g=Iz[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=Rb[b])&&g[e]||"")&&(g=" "+Gz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+sy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d}
function Nb(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")+"("+ta(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+sy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Jz(this);if(this.Da){var a=this.Da;this.Da=null;jy(this,a)}};
function hy(a,b){var c;if(Jg(a)){if(!a.N||!a.N.length){a.N=Array(Kz);for(c=0;c<a.N.length;c++)a.N[c]=fy(a);a.la=0;b||a.P("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),c=0;c<a.J.length;c++)a.J[c]=[c,0]}else a.N&&a.N.length&&!b&&a.P("instruction history buffer freed"),a.la=0,a.N=[],a.J=[]}function Lz(a,b){if(!Mz(a))return!1;a.H.Uf(b);return!0}
function Ey(a,b,c,d){if(!Mz(a))return!1;a.L=0;do{b||Jg(a)&&Mg(a,a.H.da,0);try{var e=a.H.Lg(b);0<e&&(a.L+=e,Hd(a.H,e,!0),Dd(a.H,e),a.W++)}catch(g){if("number"!=typeof g){var f=g;a.L=0;Gb(a.H,f.stack||f.message)}}}while(a.H.N&3312);!1!==d&&Cd(a.H);Jz(a,c||!1);return 0<a.L}l.Jb=function(a){this.H&&this.H.Jb(a)};function Jz(a,b){void 0===b&&(b=!0);a.K=fy(a,A(a.H),a.H.Z.U);b&&1!=a.I?Nz(a):Oz(a)}
function Mz(a){var b;if(b=a.H&&Ib(a.H))b=a.H,b.ea.Yb?b=!0:(b.P(b.toString()+" not powered"),b=!1);b&&!Kb(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){hy(this);this.W=this.ga=0;this.va=null;this.L=0;this.K=fy(this,A(this.H),this.H.Z.U);this.ea.vb=!1;Pz(this);a||Jz(this)};
l.save=function(){var a=new Xf(this);a.set(0,Ky(this.K));a.set(1,Ky(this.Z));a.set(2,[this.C,this.aa,this.ic]);a.set(3,this.D);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.K=Ly(a[b++]),this.Z=Ly(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.aa=a[b][1],this.ic|=a[b][2]);a[3]&&(this.D=a[3]);return!0};l.start=function(a,b){this.I||this.P("running");this.ea.vb=!0;this.hb=a;this.jd=b};
l.stop=function(a,b){if(this.ea.vb){this.ea.vb=!1;this.L=b-this.jd;if(!this.I){b="stopped";if(this.L){a-=this.hb;var c=0<a?Math.round(1E3*this.L/a):0;b+=" (";Jg(this)&&(b+=this.W+" opcodes, ",this.ga-=this.W,this.W=0);b+=this.L+" cycles, "+a+" ms, "+c+" hz)"}else t(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.P(b)}Jz(this,!0);this.ld();Pz(this,this.H.da)}};function Jg(a){return 1<a.B.length||!!a.ta||t(a,16)}
function Mg(a,b,c){var d=a.H;if(0<c&&(a.ta&&!--a.ta||Qz(a,b,1,a.B)))return!0;0<=c&&a.J.length&&(a.W++,b=yg(d,b),null!=b&&(a.J[b][1]++,Jy(a,a.N[a.la],A(d),d.Z.U),++a.la==a.N.length&&(a.la=0)));return!1}function qd(a,b,c){return Qz(a,b,c||1,a.Y)?(a.Jb(!0),!0):!1}function sd(a,b,c){return Qz(a,b,c||1,a.M)?(a.Jb(!0),!0):!1}function Qc(a,b,c){a.P("break on input from port "+ta(b)+": "+q(c));a.Jb(!0)}function Uc(a,b,c){a.P("break on output to port "+ta(b)+": "+q(c));a.Jb(!0)}
function gy(a){var b,c;a.B=["bp"];if(a.Y)for(b=1;b<a.Y.length;b++)c=a.Y[b],lf(a.H,a.Sb(c),!1,c.type==Hy);a.Y=["br"];if(a.M)for(b=1;b<a.M.length;b++)c=a.M[b],lf(a.H,a.Sb(c),!0,c.type==Hy);a.M=["bw"];a.Ca=0}
l.Gd=function(a,b,c){var d=!0;c||Cy(this,a,b,!1,!0);if(a!=this.B){var e=this.Sb(b);if(-1===e)this.P("invalid address: "+Dy(b)),d=!1;else{var f=this.H,g=b.type==Hy;(g?f.sc:f.aa)[e>>>f.hb].Gd(e&f.Db,a==this.M);g&&tc(f)}}d&&(a.push(b),c?(null!=b.xa&&(b.U=null),b.Jd=!0):(Rz(this,a,a.length-1,"set"),hy(this)));return d};
function Cy(a,b,c,d,e){for(var f=!1,g=Sz(a,a.Sb(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==Sz(a,a.Sb(k))||-1===g&&c.U==k.U&&c.Ja==k.Ja)if(!d||k.Jd){f=!0;k.Jd||e||Rz(a,b,h,"cleared");b.splice(h,1);b!=a.B&&lf(a.H,g,b==a.M,k.type==Hy);k.Jd||hy(a);break}}return f}function Tz(a,b){for(var c=1;c<b.length;c++)Rz(a,b,c);return b.length-1}function Rz(a,b,c,d){c=b[c];a.P(b[0]+" "+Dy(c)+(d?" "+d:c.Yk?' "'+c.Yk+'"':""))}
function Pz(a,b){if(void 0!==b)Qz(a,b,1,a.B,!0),a.I=0;else for(b=1;b<a.B.length;b++){var c=a.B[b];if(c.Jd){if(!Cy(a,a.B,c,!0))break;b=0}}}function Sz(a,b){-1!==b&&(a=a.wa&-65536,(b&a)==a&&(b&=1048575));return b}
function Qz(a,b,c,d,e){var f=!1;if(!a.Ca++){b=Sz(a,b);t(a,-2147483632)&&204==yg(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.xa=null);for(var k=Sz(a,a.Sb(h)),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.Jd&&(Cy(a,d,h,!0),e=!0);if(p=h.sl){for(var f=!1,w=0;w<p.length;w++)if(!Uz(a,p[w],!0)){if(p[w].indexOf("if")){f=!0;break}for(var u=w+1;u<p.length&&p[u].indexOf("else");u++)w++;if(u==p.length){f=!0;break}}a.H.ea.vb||(f=!0)}if(f){e||Rz(a,d,g,"hit");break}}}}}a.Ca--;return f}
function Vz(a,b,c,d){for(var e=fy(a,b.Ja,b.U,b.xa,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=Wz,k=a.ma[f],m=k[0];m==Xz&&(m=a.Ia(b,1),k=Yz[m]||ly,f|=m<<8,m=k[0]);if(m==Zz){var g=a.Ia(b,1),w;w=null;var u=g>>3&7,F=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=F&&(F=u<<4|g&7);(u=$z[f])&&(w=u[F]);w&&(p=aA,k=w,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=bA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;w="";b.Hb&&(m==cA?
p="CWDE":m==dA?p="CDQ":m>=eA&&m<=fA&&(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,F=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>gA);m==hA&&(f==iA?w="[%800]":f==jA&&(w="ES:["+(b.dc?"E":"")+"DI]"));var T=I&kA;if(T!=lA)if(T==mA)F=!1;else{var L=I&nA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L<oA){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=pA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=pA[rc+8],db&&(ib+="*"+(1<<db)));cb||5!=rb||(ib&&(ib+="+"),ib+=q(zy(ca,Sa,4)));ca=ib}ca||(ca=pA[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=zy(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=kA;H==S&&(H=I.Hb?qA:U);switch(H){case rA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16";
break}L="WORD";break;case qA:L="DWORD";break;case sA:if(T){L="INT32";break}case tA:L="REAL32";break;case uA:if(T){L="INT64";break}case vA:L="REAL64";break;case wA:L="REAL80";break;case xA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=yA(L,za,H,I);H=ca}else H=L==oA?yA(a,g&7,I,b):yA(a,g>>3&7,I,b);else if(L==zA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&kA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case AA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(zy(H,L,4));break}case U:I=q(H.Yc(L,2),4);break;
case rA:L=fy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Dy(L);H=BA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+ta(T)+")"}H=I}else L==CA?(b.dc?(H=8,I=zy(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==DA?(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=BA(a,fy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==EA?"ST":T==FA?"ST("+(g&7)+")":yA(a,(I&GA)>>8,I,b):L==HA?H=yA(a,(I&GA)>>8,IA,b):L==JA?H="DS:[SI]":L==KA&&(H="ES:[DI]");if(!H||!H.length){w="INVALID";break}0<
w.length&&(w+=",");w+=H||"???"}}}g="";k=Dy(e)+" ";if(-1!==e.xa&&-1!==b.xa){do if(g+=q(a.Ia(e,1),2),null==e.xa)break;while(e.xa!=b.xa)}k+=Ba(g,e.dc?24:16);k+=Ba(p,8);w&&(k+=" "+w);a.H.ca<LA[f]&&(c=LA[f]+" CPU only");c&&F&&(k=Ba(k,e.dc?74:56)+";"+c,k=a.H.ea.He?k+("cycles="+Ed(a.H).toString()+" cs="+q(a.H.T.uf)):k+(null!=d?"="+d.toString():""));MA(b,F,h);return k}
function yA(a,b,c,d){var e=c&nA;if(e==IA){if(b>rz||b>=qz&&80386>a.H.ca)return"??";b+=lz}else if(e==NA)b+=Az;else if(e==OA)b+=PA;else if(e==QA)b+=RA;else if(a=c&kA,a>=U&&(b<cz&&(b+=cz-Vy),a==qA||a==S&&d.Hb))b+=sz-cz;return Ty[b]}
function SA(a,b){switch(b){case "V":a=ig(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=hg(a.H);break;case "Z":a=gg(a.H);break;case "A":a=fg(a.H);break;case "P":a=eg(a.H);break;case "C":a=dg(a.H);break;default:a=0}return b+(a?"1":"0")+" "}function ry(a){return q(a,a&-65536?8:4)}function TA(a,b){b>=cz&&b<=jz&&4<a.oa&&(b+=sz-cz);var c=Ty[b];b==Az&&80286==a.H.ca&&(c="MS");return c+"="+Uy(a,b)+" "}
function UA(a,b,c){return b.$b+"="+q(b.U,4)+(c?"["+q(b.ua,a.ha)+","+ry(b.Ka)+"]":"")}function VA(a,b,c,d,e){return b+"="+(null!=c?q(c,4):"")+"["+q(d,a.ha)+","+q(e-d,4)+"]"}
function WA(a,b){var c;void 0===b&&(b=Fy(a));c=TA(a,cz)+TA(a,fz)+TA(a,dz)+TA(a,ez)+(4<a.oa?"\n":"")+TA(a,gz)+TA(a,hz)+TA(a,iz)+TA(a,jz)+"\n"+UA(a,a.H.Y,b)+" "+UA(a,a.H.Ca,b)+" "+UA(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"+UA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=UA(a,a.H.Ga,b)+" "+UA(a,a.H.Ha,b)+"\n");c+=VA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+VA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+VA(a,"ID",
null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+TA(a,Az);80386<=a.H.ca&&(c+=TA(a,Cz)+TA(a,Dz))}else 80386<=a.H.ca&&(c+=UA(a,a.H.Ga,b)+" "+UA(a,a.H.Ha,b)+" ");return c+=TA(a,Fz)+SA(a,"V")+SA(a,"D")+SA(a,"I")+SA(a,"T")+SA(a,"S")+SA(a,"Z")+SA(a,"A")+SA(a,"P")+SA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
(b.J=a[0],oe(b,a[1]));break;case 72:Cy(this,null,e);break;case 80:32==c?xy(this,gy(this,h,k),0,f,!0,!!this.O):128>c?xy(this,gy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.O):zy(this,gy(this,h,k),!(c&1),!!this.O),this.O&&(b.D=b.D&-256|1)}return!this.O};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.qa=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ky(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,Za(c,function(){if(d.qa){var a=d.qa.value;
d.qa.value="";ky(d,a,!0);return!0}return!1}),!0;case "step":return this.na[b]=c,Za(c,function(a){var b=!1;Kb(d,!0)||(Lb(d,!0),b=Fy(d,a?1:0),Lb(d,!1));return b}),!0}return!1};l.ld=function(){this.qa&&this.qa.focus()};function Gy(a){return!(!(a.H&&a.H.qa&1)||a.H.O&131072)}
function py(a,b,c){var d=Gy(a)?qy:Hy;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.Ca&&c==qy||!a.Ya)return null}a=a.Ya;if(c!=qy)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=yg(c,d+0,2);var f=yg(c,d+4,2),g=f&7936,h=yg(c,d+2,2)|(f&255)<<16,k=yg(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.lb=f;a.type=g;a.ext=k;a.Lb=d;Wd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.xa;if(null==d&&(d=-1,a)){var e=py(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.xa=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=yg(this.H,d,1,a.type==Iy)|0,b&&Jy(this,a,b));return c};
l.jb=function(a,b){return a.Hb?Ay(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=yg(this.H,d,2,a.type==Iy)|0,b&&Jy(this,a,b));return c};function Ay(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=yg(a.H,e,4,b.type==Iy)|0,c&&Jy(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!=Iy)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&&Jy(this,a,c);d||Cd(this.H,!0)}};
l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Iy?this.H.fb(d,b):Kc(this.ka,d,b),c&&Jy(this,a,c),Cd(this.H,!0))};function gy(a,b,c,d,e,f,g){return Ky(a,{},b,c,d,e,f,g)}function Ky(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.xa=e;b.type=f||(Gy(a)?qy:Hy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.V);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Ly(a){return[a.Ja,a.U,a.xa,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function My(a){return{Ja:a[0],U:a[1],xa:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}}
function Ny(a,b,c){if(null!=b.U&&(a=py(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.V,b.dc=4==a.Jc)}return!0}
function Oy(a,b,c,d){var e,f=c?a.K:a.Ma;c=d?Py:f.type;var g=f.Ja,h=f.U,f=f.xa;if(void 0!==b){b=$x(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Hy;break;case "#":c=qy;break;case "%":c=Qy;e=b.charAt(1);"%"==e&&(c=Iy,e+=e);g=0;h=null;break;default:0<=f&&(c=Py),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 w=e.Fd[m];if(void 0!==w){m=w.o;void 0!==m&&(k=w.s,void 0===k&&(k=e.U),k=gy(a,m,k,w.p));
break}}if(e=k)return e;0>f?null!=h?(g=Zx(a,b,void 0),f=null):(f=Zx(a,b,void 0),null==f&&(g=null)):(h=Zx(a,b.substring(0,f),void 0),g=Zx(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=gy(a,g,h,f,c),d||Ny(a,e,!0)||(a.P("invalid offset: "+Ey(e)),e=null));return e}function Ry(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Oy(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")};
function Jy(a,b,c){c=c||1;null!=b.xa&&(b.xa+=c);null!=b.U&&(b.Ja+=c,Ny(a,b)||(b.Ja=0,b.xa=null))}function ty(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Ey(a){var b;switch(a.type){case Hy:case Sy:b="&";break;case qy:b="#";break;case Qy:b="%";break;case Iy:b="%%";break;default:b=a.U?"":"%"}return a.type>=Qy||null==a.U?b+q(a.xa):b+ty(a.Ja,a.U,a.dc)}
function uy(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 oy(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Oy(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==cd&&(d=td(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=vc[c],c==ed&&(d=d.pd,h+=" -> "+vc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<<a.H.hb,8)+" %%"+q(d.xa,8)+" "+ta(d.ve)+" "+ta(d.size)+
" "+h),c!=bd&&c!=cd&&(c=-1),h=0),e+=a.H.Ng,f++}function Ty(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 yy(a,b,c){var d=[],e;for(e=null;e=Xb(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 jy(a,b){a.ba=a;a.ic=a.wl=1073741824;a.va=null;b=a.Cg(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Sb)0<=Ia(b,c)&&(a.ic|=Sb[c],a.P(c+" messages enabled"));iy(a)}function Al(a,b,c){for(var d in Sb)if(b==Sb[d]){a.Aa[d]=c;break}}l.gh=function(a,b){var c;a=a.toUpperCase();null==b?c=Ia(Uy,a):(c=Ia(Uy,a.substr(b,3)),0>c&&(c=Ia(Uy,a.substr(b,2))));return c};
function Vy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Wy:case Xy:case Yy:case Zy:case $y:case az:case bz:case cz:c=2;break;case dz:case ez:case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz+nz:case mz+oz:case mz+pz:case mz+qz:case mz+rz:case mz+sz:c=4;break;case tz:case uz:case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:c=8;break;case Gz:c=a.oa}return c?q(d,c):"??"}
l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Wy:b=c.D&255;break;case Xy:b=c.I&255;break;case Yy:b=c.L&255;break;case Zy:b=c.G&255;break;case $y:b=c.D>>8&255;break;case az:b=c.I>>8&255;break;case bz:b=c.L>>8&255;break;case cz:b=c.G>>8&255;break;case dz:b=c.D&65535;break;case ez:b=c.I&65535;break;case fz:b=c.L&65535;break;case gz:b=c.G&65535;break;case hz:b=z(c)&65535;break;case iz:b=c.M&65535;break;case jz:b=c.K&65535;break;case kz:b=c.J&65535;break;case lz:b=A(c)&65535;break;case Gz:b=
re(c);break;case mz+nz:b=c.oa.U;break;case mz+oz:b=c.Z.U;break;case mz+pz:b=c.Y.U;break;case mz+qz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Bz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case tz:b=c.D;break;case uz:b=c.I;break;case vz:b=c.L;break;case wz:b=c.G;break;case xz:b=z(c);break;case yz:b=c.M;break;case zz:b=c.K;break;case Az:b=c.J;break;case Bz:b=c.qa;break;case Cz:b=c.Og;break;case Dz:b=c.Cd;break;case Ez:b=c.Wc;break;case mz+rz:b=c.Ga.U;break;case mz+sz:b=c.Ha.U;break;case Fz:b=A(c)}}}return b};
function Hz(a,b){b=$x(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)+Vy(a,e)+b.substr(c+1+Uy[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=Oy(a,e))?(d=e+' "'+uy(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=Oy(a,e))?(Jy(a,d),
d=e+' "'+uy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Ey(gy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.va&&a==this.va||(this.va=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,Cd(a)))};
function Wk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Iz.indexOf(b),!d)){var g=Jz[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=Rb[b])&&g[e]||"")&&(g=" "+Hz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+ty(c-2-a.H.Z.ua,a.H.Z.U)+g));return d}
function Nb(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")+"("+ta(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+ty(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Kz(this);if(this.Da){var a=this.Da;this.Da=null;ky(this,a)}};
function iy(a,b){var c;if(Jg(a)){if(!a.N||!a.N.length){a.N=Array(Lz);for(c=0;c<a.N.length;c++)a.N[c]=gy(a);a.la=0;b||a.P("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),c=0;c<a.J.length;c++)a.J[c]=[c,0]}else a.N&&a.N.length&&!b&&a.P("instruction history buffer freed"),a.la=0,a.N=[],a.J=[]}function Mz(a,b){if(!Nz(a))return!1;a.H.Uf(b);return!0}
function Fy(a,b,c,d){if(!Nz(a))return!1;a.L=0;do{b||Jg(a)&&Mg(a,a.H.da,0);try{var e=a.H.Lg(b);0<e&&(a.L+=e,Hd(a.H,e,!0),Dd(a.H,e),a.W++)}catch(g){if("number"!=typeof g){var f=g;a.L=0;Gb(a.H,f.stack||f.message)}}}while(a.H.N&3312);!1!==d&&Cd(a.H);Kz(a,c||!1);return 0<a.L}l.Jb=function(a){this.H&&this.H.Jb(a)};function Kz(a,b){void 0===b&&(b=!0);a.K=gy(a,A(a.H),a.H.Z.U);b&&1!=a.I?Oz(a):Pz(a)}
function Nz(a){var b;if(b=a.H&&Ib(a.H))b=a.H,b.ea.Yb?b=!0:(b.P(b.toString()+" not powered"),b=!1);b&&!Kb(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){iy(this);this.W=this.ga=0;this.va=null;this.L=0;this.K=gy(this,A(this.H),this.H.Z.U);this.ea.vb=!1;Qz(this);a||Kz(this)};
l.save=function(){var a=new Xf(this);a.set(0,Ly(this.K));a.set(1,Ly(this.Z));a.set(2,[this.C,this.aa,this.ic]);a.set(3,this.D);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.K=My(a[b++]),this.Z=My(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.aa=a[b][1],this.ic|=a[b][2]);a[3]&&(this.D=a[3]);return!0};l.start=function(a,b){this.I||this.P("running");this.ea.vb=!0;this.hb=a;this.jd=b};
l.stop=function(a,b){if(this.ea.vb){this.ea.vb=!1;this.L=b-this.jd;if(!this.I){b="stopped";if(this.L){a-=this.hb;var c=0<a?Math.round(1E3*this.L/a):0;b+=" (";Jg(this)&&(b+=this.W+" opcodes, ",this.ga-=this.W,this.W=0);b+=this.L+" cycles, "+a+" ms, "+c+" hz)"}else t(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.P(b)}Kz(this,!0);this.ld();Qz(this,this.H.da)}};function Jg(a){return 1<a.B.length||!!a.ta||t(a,16)}
function Mg(a,b,c){var d=a.H;if(0<c&&(a.ta&&!--a.ta||Rz(a,b,1,a.B)))return!0;0<=c&&a.J.length&&(a.W++,b=yg(d,b),null!=b&&(a.J[b][1]++,Ky(a,a.N[a.la],A(d),d.Z.U),++a.la==a.N.length&&(a.la=0)));return!1}function qd(a,b,c){return Rz(a,b,c||1,a.Y)?(a.Jb(!0),!0):!1}function sd(a,b,c){return Rz(a,b,c||1,a.M)?(a.Jb(!0),!0):!1}function Qc(a,b,c){a.P("break on input from port "+ta(b)+": "+q(c));a.Jb(!0)}function Uc(a,b,c){a.P("break on output to port "+ta(b)+": "+q(c));a.Jb(!0)}
function hy(a){var b,c;a.B=["bp"];if(a.Y)for(b=1;b<a.Y.length;b++)c=a.Y[b],lf(a.H,a.Sb(c),!1,c.type==Iy);a.Y=["br"];if(a.M)for(b=1;b<a.M.length;b++)c=a.M[b],lf(a.H,a.Sb(c),!0,c.type==Iy);a.M=["bw"];a.Ca=0}
l.Gd=function(a,b,c){var d=!0;c||Dy(this,a,b,!1,!0);if(a!=this.B){var e=this.Sb(b);if(-1===e)this.P("invalid address: "+Ey(b)),d=!1;else{var f=this.H,g=b.type==Iy;(g?f.sc:f.aa)[e>>>f.hb].Gd(e&f.Db,a==this.M);g&&tc(f)}}d&&(a.push(b),c?(null!=b.xa&&(b.U=null),b.Jd=!0):(Sz(this,a,a.length-1,"set"),iy(this)));return d};
function Dy(a,b,c,d,e){for(var f=!1,g=Tz(a,a.Sb(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==Tz(a,a.Sb(k))||-1===g&&c.U==k.U&&c.Ja==k.Ja)if(!d||k.Jd){f=!0;k.Jd||e||Sz(a,b,h,"cleared");b.splice(h,1);b!=a.B&&lf(a.H,g,b==a.M,k.type==Iy);k.Jd||iy(a);break}}return f}function Uz(a,b){for(var c=1;c<b.length;c++)Sz(a,b,c);return b.length-1}function Sz(a,b,c,d){c=b[c];a.P(b[0]+" "+Ey(c)+(d?" "+d:c.Yk?' "'+c.Yk+'"':""))}
function Qz(a,b){if(void 0!==b)Rz(a,b,1,a.B,!0),a.I=0;else for(b=1;b<a.B.length;b++){var c=a.B[b];if(c.Jd){if(!Dy(a,a.B,c,!0))break;b=0}}}function Tz(a,b){-1!==b&&(a=a.wa&-65536,(b&a)==a&&(b&=1048575));return b}
function Rz(a,b,c,d,e){var f=!1;if(!a.Ca++){b=Tz(a,b);t(a,-2147483632)&&204==yg(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.xa=null);for(var k=Tz(a,a.Sb(h)),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.Jd&&(Dy(a,d,h,!0),e=!0);if(p=h.sl){for(var f=!1,w=0;w<p.length;w++)if(!Vz(a,p[w],!0)){if(p[w].indexOf("if")){f=!0;break}for(var u=w+1;u<p.length&&p[u].indexOf("else");u++)w++;if(u==p.length){f=!0;break}}a.H.ea.vb||(f=!0)}if(f){e||Sz(a,d,g,"hit");break}}}}}a.Ca--;return f}
function Wz(a,b,c,d){for(var e=gy(a,b.Ja,b.U,b.xa,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=Xz,k=a.ma[f],m=k[0];m==Yz&&(m=a.Ia(b,1),k=Zz[m]||my,f|=m<<8,m=k[0]);if(m==$z){var g=a.Ia(b,1),w;w=null;var u=g>>3&7,F=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=F&&(F=u<<4|g&7);(u=aA[f])&&(w=u[F]);w&&(p=bA,k=w,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=cA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;w="";b.Hb&&(m==dA?
p="CWDE":m==eA?p="CDQ":m>=fA&&m<=gA&&(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,F=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>hA);m==iA&&(f==jA?w="[%800]":f==kA&&(w="ES:["+(b.dc?"E":"")+"DI]"));var T=I&lA;if(T!=mA)if(T==nA)F=!1;else{var L=I&oA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L<pA){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=qA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=qA[rc+8],db&&(ib+="*"+(1<<db)));cb||5!=rb||(ib&&(ib+="+"),ib+=q(Ay(ca,Sa,4)));ca=ib}ca||(ca=qA[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=Ay(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=lA;H==S&&(H=I.Hb?rA:U);switch(H){case sA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16";
break}L="WORD";break;case rA:L="DWORD";break;case tA:if(T){L="INT32";break}case uA:L="REAL32";break;case vA:if(T){L="INT64";break}case wA:L="REAL64";break;case xA:L="REAL80";break;case yA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=zA(L,za,H,I);H=ca}else H=L==pA?zA(a,g&7,I,b):zA(a,g>>3&7,I,b);else if(L==AA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&lA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case BA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(Ay(H,L,4));break}case U:I=q(H.Yc(L,2),4);break;
case sA:L=gy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Ey(L);H=CA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+ta(T)+")"}H=I}else L==DA?(b.dc?(H=8,I=Ay(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==EA?(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=CA(a,gy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==FA?"ST":T==GA?"ST("+(g&7)+")":zA(a,(I&HA)>>8,I,b):L==IA?H=zA(a,(I&HA)>>8,JA,b):L==KA?H="DS:[SI]":L==LA&&(H="ES:[DI]");if(!H||!H.length){w="INVALID";break}0<
w.length&&(w+=",");w+=H||"???"}}}g="";k=Ey(e)+" ";if(-1!==e.xa&&-1!==b.xa){do if(g+=q(a.Ia(e,1),2),null==e.xa)break;while(e.xa!=b.xa)}k+=Ba(g,e.dc?24:16);k+=Ba(p,8);w&&(k+=" "+w);a.H.ca<MA[f]&&(c=MA[f]+" CPU only");c&&F&&(k=Ba(k,e.dc?74:56)+";"+c,k=a.H.ea.He?k+("cycles="+Ed(a.H).toString()+" cs="+q(a.H.T.uf)):k+(null!=d?"="+d.toString():""));NA(b,F,h);return k}
function zA(a,b,c,d){var e=c&oA;if(e==JA){if(b>sz||b>=rz&&80386>a.H.ca)return"??";b+=mz}else if(e==OA)b+=Bz;else if(e==PA)b+=QA;else if(e==RA)b+=SA;else if(a=c&lA,a>=U&&(b<dz&&(b+=dz-Wy),a==rA||a==S&&d.Hb))b+=tz-dz;return Uy[b]}
function TA(a,b){switch(b){case "V":a=ig(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=hg(a.H);break;case "Z":a=gg(a.H);break;case "A":a=fg(a.H);break;case "P":a=eg(a.H);break;case "C":a=dg(a.H);break;default:a=0}return b+(a?"1":"0")+" "}function sy(a){return q(a,a&-65536?8:4)}function UA(a,b){b>=dz&&b<=kz&&4<a.oa&&(b+=tz-dz);var c=Uy[b];b==Bz&&80286==a.H.ca&&(c="MS");return c+"="+Vy(a,b)+" "}
function VA(a,b,c){return b.$b+"="+q(b.U,4)+(c?"["+q(b.ua,a.ha)+","+sy(b.Ka)+"]":"")}function WA(a,b,c,d,e){return b+"="+(null!=c?q(c,4):"")+"["+q(d,a.ha)+","+q(e-d,4)+"]"}
function XA(a,b){var c;void 0===b&&(b=Gy(a));c=UA(a,dz)+UA(a,gz)+UA(a,ez)+UA(a,fz)+(4<a.oa?"\n":"")+UA(a,hz)+UA(a,iz)+UA(a,jz)+UA(a,kz)+"\n"+VA(a,a.H.Y,b)+" "+VA(a,a.H.Ca,b)+" "+VA(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"+VA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=VA(a,a.H.Ga,b)+" "+VA(a,a.H.Ha,b)+"\n");c+=WA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+WA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+WA(a,"ID",
null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+UA(a,Bz);80386<=a.H.ca&&(c+=UA(a,Dz)+UA(a,Ez))}else 80386<=a.H.ca&&(c+=VA(a,a.H.Ga,b)+" "+VA(a,a.H.Ha,b)+" ");return c+=UA(a,Gz)+TA(a,"V")+TA(a,"D")+TA(a,"I")+TA(a,"T")+TA(a,"S")+TA(a,"Z")+TA(a,"A")+TA(a,"P")+TA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function aq(a,b,c,d,e,f,g,h){var k={},m=[],p;for(p in h){var w=h[p];"number"==typeof w&&(h[p]=w={o:w});var u=w.o,F=w.s,K=w.a;if(void 0!==u){void 0!==F&&(k.Ja=u,k.U=F,k.xa=null,a.Sb(k),(k.xa&-65536)==(a.ka.N&-65536)&&(k.xa&=1048575),w.p=k.xa);var F=m,u=[u>>>0,p],H=Ea(F,u,a.gj);0>H&&F.splice(-(H+1),0,u)}K&&(w.a=K.replace(/''/g,'"'))}a.D.push({Rf:b,pn:c,U:d,Ja:e,xa:f,en:g,Fd:h,Pi:m})}
function By(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 BA(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.xa;null!=p&&(p>>>=0);var w=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e<m+w||null!=p&&f>=p&&f<p+w){b=Ea(h.Pi,[e],a.gj);0<=b?XA(a,g,b,d):c&&(b=~b,XA(a,g,b-1,d),XA(a,g,b,d));break}}!d.length&&(a=a.ka.wj(f,!0))&&(d.push(a),d.push(f));return d}
function XA(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 YA(a){a.Ie&&(a.Ie.value="")}
function ZA(a,b){if("?"==b)a.P("frequency commands:"),a.P("\tclear\tclear all frequency counts");else{var c=0;if(a.J)if("clear"==b){for(b=0;b<a.J.length;b++)a.J[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.J.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((Wz[a.ma[e][0]]+" ").substr(0,5)+" ("+r(e)+"): "+f+" times"),c++)}}c||a.P("no frequency data available")}}
function $A(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return dy(a)||a.P("no variables"),!0;if(!c[2])return dy(a,c[1]);if(!c[3])return delete a.da[c[1]],!0;b=Yx(a,c[3]);return void 0!==b?(a.da[c[1]]=b,!0):!1}a.P("invalid assignment:"+b);return!1}
function aB(a,b,c){var d=null;if(b=Ny(a,b,!0)){a.Sb(b);var e=BA(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ja-e[1])&&(g=" + "+ta(f)),f=e[0]+" ("+sy(e[1],b.U)+")"+g,c&&a.P(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ja)&&(g=" - "+ta(f)),f=e[4]+" ("+sy(e[5],b.U)+")"+g,c&&a.P(f),d||(d=f))}else c&&a.P("no symbols")}return d}
function bB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Ny(a,b[1]);if(g&&(d=$x(a,b[2],"drive #"),void 0!==d)){if(!c){e=$x(a,b[3],"sector #");if(void 0===e)return;f=$x(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.eb;2<=d&&a.Ta&&(d-=2,h=a.Ta);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)YA(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Dy(g);!p&&0<k.ub--;)(function(a,b){h.se(k,function(c){0>c?(a.P("out of data at address "+Dy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Cd(a.H,
function Cy(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 CA(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.xa;null!=p&&(p>>>=0);var w=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e<m+w||null!=p&&f>=p&&f<p+w){b=Ea(h.Pi,[e],a.gj);0<=b?YA(a,g,b,d):c&&(b=~b,YA(a,g,b-1,d),YA(a,g,b,d));break}}!d.length&&(a=a.ka.wj(f,!0))&&(d.push(a),d.push(f));return d}
function YA(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 ZA(a){a.Ie&&(a.Ie.value="")}
function $A(a,b){if("?"==b)a.P("frequency commands:"),a.P("\tclear\tclear all frequency counts");else{var c=0;if(a.J)if("clear"==b){for(b=0;b<a.J.length;b++)a.J[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.J.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((Xz[a.ma[e][0]]+" ").substr(0,5)+" ("+r(e)+"): "+f+" times"),c++)}}c||a.P("no frequency data available")}}
function aB(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ey(a)||a.P("no variables"),!0;if(!c[2])return ey(a,c[1]);if(!c[3])return delete a.da[c[1]],!0;b=Zx(a,c[3]);return void 0!==b?(a.da[c[1]]=b,!0):!1}a.P("invalid assignment:"+b);return!1}
function bB(a,b,c){var d=null;if(b=Oy(a,b,!0)){a.Sb(b);var e=CA(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ja-e[1])&&(g=" + "+ta(f)),f=e[0]+" ("+ty(e[1],b.U)+")"+g,c&&a.P(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ja)&&(g=" - "+ta(f)),f=e[4]+" ("+ty(e[5],b.U)+")"+g,c&&a.P(f),d||(d=f))}else c&&a.P("no symbols")}return d}
function cB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Oy(a,b[1]);if(g&&(d=ay(a,b[2],"drive #"),void 0!==d)){if(!c){e=ay(a,b[3],"sector #");if(void 0===e)return;f=ay(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.eb;2<=d&&a.Ta&&(d-=2,h=a.Ta);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)ZA(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Ey(g);!p&&0<k.ub--;)(function(a,b){h.se(k,function(c){0>c?(a.P("out of data at address "+Ey(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Cd(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 Nz(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=ah(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]=rh(g,h);e[2]=g.F[h];h<<=1;e[3]=g.L[h];e[4]=g.L[h+1];g=vh(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
a.P("ST"+f+": "+Ba(e[2].toFixed(15),24,!0)+" "+q(e[4])+","+q(e[3])+" ["+e[0]+":"+cB[e[1]]+"]")}a.P(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.P("SW: "+qa(d,16)+" ("+ta(d)+") CW: "+qa(b,16)+" ("+ta(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=Yx(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.oa&&(h=null);switch(h){case "AL":a.H.D=
function Oz(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=ah(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]=rh(g,h);e[2]=g.F[h];h<<=1;e[3]=g.L[h];e[4]=g.L[h+1];g=vh(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
a.P("ST"+f+": "+Ba(e[2].toFixed(15),24,!0)+" "+q(e[4])+","+q(e[3])+" ["+e[0]+":"+dB[e[1]]+"]")}a.P(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.P("SW: "+qa(d,16)+" ("+ta(d)+") CW: "+qa(b,16)+" ("+ta(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=Zx(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.oa&&(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":he(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":ne(a.H,g);break;case "ES":oe(a.H,g);break;case "SS":ge(a.H,g);break;case "CS":Zf(a.H,g);a.K=fy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.K=fy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":se(a.H,g);break;case "C":g?kg(a.H):lg(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":ne(a.H,g);break;case "ES":oe(a.H,g);break;case "SS":ge(a.H,g);break;case "CS":Zf(a.H,g);a.K=gy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.K=gy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":se(a.H,g);break;case "C":g?kg(a.H):lg(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?
ug(a.H):qg(a.H);break;case "Z":g?vg(a.H):rg(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?mg(a.H):ng(a.H);break;default:var k=!0;if(80286<=a.H.ca)switch(k=!1,h){case "MS":wg(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":he(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;bk.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;ue.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Cd(a.H);a.P("updated registers:")}}a.P(WA(a,d));c&&(a.K=fy(a,A(a.H),a.H.Z.U),Oz(a,Dy(a.K)))}}
function dB(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Gz(a,c[2])):Yx(a,b,!0)}function eB(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.xa=null;var h=Vz(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 fB(a,b,c){var d="t"!=b;c=$x(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ya(c,function(){return Lb(a,!0)&&Ey(a,e,d,!1)},function(){Cd(a.H);Lb(a,!1)})}
function MA(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 Oz(a,b,c,d){if(b=Ny(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Ny(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(MA(b,!0);0<e&&d--;){f=Kb(a,!1)||a.I?a.L:null;var g=null!=f?"cycles":null,h=BA(a,b),k=b.xa;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=Vz(a,b,g,f);b.bh||d||d++;a.P(f);a.K=b;e-=b.xa-k;c++}}}
g;break;case "EDX":a.H.L=g;break;case "ESP":he(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;bk.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;ue.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Cd(a.H);a.P("updated registers:")}}a.P(XA(a,d));c&&(a.K=gy(a,A(a.H),a.H.Z.U),Pz(a,Ey(a.K)))}}
function eB(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Hz(a,c[2])):Zx(a,b,!0)}function fB(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.xa=null;var h=Wz(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 gB(a,b,c){var d="t"!=b;c=ay(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ya(c,function(){return Lb(a,!0)&&Fy(a,e,d,!1)},function(){Cd(a.H);Lb(a,!1)})}
function NA(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 Pz(a,b,c,d){if(b=Oy(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Oy(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(NA(b,!0);0<e&&d--;){f=Kb(a,!1)||a.I?a.L:null;var g=null!=f?"cycles":null,h=CA(a,b),k=b.xa;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=Wz(a,b,g,f);b.bh||d||d++;a.P(f);a.K=b;e-=b.xa-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(Ca(a.substring(d,f))),d=f+1}}return b};
function Uz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.aa&&(a.P("ended assemble at "+Dy(a.Z)),a.K=a.Z,a.aa=!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.va=null;if(Ib(a)&&0<b.length){a.aa&&(b="a "+Dy(a.Z)+" "+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 w=
Ny(a,g[1],!0);if(w)if(a.Z=w,void 0===g[2])a.P("begin assemble at "+Dy(w)),a.aa=!0,Cd(a.H);else{var u;a.P("not supported yet");u=[];if(u.length){for(var F=0;F<u.length;F++)a.fc(w,u[F],1);a.P(Vz(a,a.Z))}}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+Tz(a,a.B);L+=Tz(a,a.Y);(L+=Tz(a,a.M))||a.P("no breakpoints")}else if("n"==T)a.ta=$x(a,H),a.P("break after "+a.ta+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Ny(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:ta(ua.Ja);"c"==T?null==ua.Ja?(gy(a),a.P("all breakpoints cleared")):Cy(a,
a.B,ua)||Cy(a,a.Y,ua)||Cy(a,a.M,ua)||a.P("breakpoint missing: "+Dy(ua)):"i"==T?a.P("breakpoint "+(Nc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Rc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Qy(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Y,ua):"w"==T?a.Gd(a.M,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":YA(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 Sb)a.Aa[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=gB(a.pa,!0);rc?"console"==Sa?console.log(rc):
(YA(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],sg=df.o;if(void 0!==sg){var ef=df.s;void 0===ef&&(ef=cf.U);var tg=cf.Fd[Ld].l;tg&&(Ld=tg);a.P(sy(sg,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 Ng=a.Sb(Ny(a,qm));if(-1===Ng)a.P("invalid address: "+qm);else{var nf,
Qa=null;if(80386<=a.H.ca){var of=a.ka,Qa={};Qa.Jk=(Ng&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.nb=of.aa[(Qa.Ti&of.C)>>>of.A];Qa.Aj=Qa.nb.Nd(Qa.Jk);Qa.Kk=(Ng&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.ob=of.aa[(Qa.Ui&of.C)>>>of.A];Qa.Bj=Qa.ob.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Ng&4095)}if(nf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Ng),ve=ve+(" %%"+Sy(nf.Ti,nf.Aj)),ve=
ve+(" %%"+Sy(nf.Ui,nf.Bj,!0)),ve=ve+(" %%"+q(nf.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";bB(a,ca);break a}for(xb in Sb)if(ca[1]==xb){var tt=a.Aa[xb];tt?(ca.shift(),ca.shift(),tt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.ib||"db")}else a.ib=za;if("dh"==za){var ut=cb,vt=Sa,wt="",xt=0,Mc=a.la,jd=a.N;if(jd.length){var uc=+ut||a.Xa,Og=+vt||10;isNaN(uc)?uc=Og:wt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Mc-=uc;0>Mc&&(null==jd[jd.length-1].U?(uc=Mc+uc,Mc=0):Mc+=jd.length);var rm=[];"call"==vt&&(Og=1E5,rm=["CALL"]);for(void 0!==ut&&a.P(uc+" instructions earlier:");0<Og&&Mc!=a.la;){var we=jd[Mc++];if(null==we.U)break;var Pg=fy(a,we.Ja,we.U,we.xa,we.type,we.Hb,we.dc),XB=uc--,yt=Vz(a,Pg,"history",XB);(!rm.length||0<=yt.indexOf(rm[0]))&&a.P(yt);Pg.Fe&&(Mc+=Pg.Fe,Og-=Pg.Fe,uc-=Pg.Fe);Mc>=jd.length&&(Mc=0);a.Xa=uc;xt++;Og--}}xt||(a.P("no "+wt+"history available"),a.Xa=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Qg=$x(a,sm);if(void 0===Qg||0>Qg||255<Qg)a.P("invalid vector: "+sm);else{var zt="&",At=!!(a.H.qa&1),Bt=!1,Ti=a.H.Pb+(Qg<<(At?3:2)),Ct=a.H.ja(Ti+0),YB=a.H.ja(Ti+2);At&&(zt="#",a.H.ja(Ti+4)&2048&&(Bt=!0,Ct|=a.H.ja(Ti+6)<<16));a.P("dumpIDT("+ta(Qg)+"): "+zt+q(YB,4)+":"+q(Ct,Bt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Ny(a,cb);if(pf&&(null!=pf.U||null!=pf.xa)){var Ui=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Ui=$x(a,Sa)>>>0,65536<Ui&&(Ui=65536));for(var Rg="",qf="dd"==za?4:"dw"==za?2:1,Vi=qf*Ui||128,ZB=Vi+15>>4||1;ZB--&&0<Vi;){var Sg=0,tm=0,Tg,um="",Dt="",cb=Dy(pf);for(Tg=4==qf?16:a.ya;0<Tg&&0<Vi;Tg--){var Wi=a.Ia(pf,1),Sg=Sg|Wi<<(tm++<<3);tm==qf&&(um+=8==a.ya?sa(Sg,3*qf):q(Sg,2*qf),um+=1==qf?9==Tg?"-":" ":" ",Sg=tm=0);Dt+=32<=Wi&&128>Wi?String.fromCharCode(Wi):".";Vi--}Rg&&(Rg+="\n");Rg+=cb+" "+um+(Tg?"":" "+Dt)}Rg&&a.P(Rg);a.Ma=pf}}}}}break;case "e":if("else"==g[0])break;var Xi=
1,Et=255,Ft=a.Ia,Gt=a.fc;"ew"==g[0]&&(Xi=2,Et=65535,Ft=a.Yc,Gt=a.il);var Ht=Xi<<1,It=g[1];if(null==It)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 Yi=Ny(a,It);if(Yi)for(var Zi=2;Zi<g.length;Zi++){var Ug=Yx(a,g[Zi]);if(void 0===Ug){a.P("unrecognized value: "+g[Zi]);break}Ug&~Et&&a.P("warning: "+q(Ug)+" exceeds "+Xi+"-byte value");var $B=Ft.call(a,Yi);a.P("changing "+Dy(Yi)+" from "+q($B,Ht,!0)+" to "+q(Ug,Ht,!0));
Gt.call(a,Yi,Ug,Xi)}}break;case "f":ZA(a,g[1]);break;case "g":a:{var Jt=g[1],aC=b;"gt"==g[0]&&(a.Ba=!0);if(void 0!==Jt){var vm=Ny(a,Jt,!0);if(!vm)break a;Qy(a,vm,aC);a.Gd(a.B,vm,!0)}Lz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.vb)wm="halting",a.Jb();else{if(Kb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Vg=b.substr(2),Vg=Ca(Vg);Yx(a,Vg)?(c||a.P("true: "+Vg),xm=!0):(c||a.P("false: "+Vg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var $i;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ga=a.W;$i=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ga=a.W;$i=!0;break a;default:$i=!1}$i||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=$x(a,ym);if(void 0!==zm){var bC=Pc(a.ka,zm,1);a.P(ta(zm)+": "+r(bC))}}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 cC=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,Kt=a.H.Z.U,Wg=fy(a),Sd=fy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Dy(Sd));10>Am;){for(var kd=null,dC=256;Sd.Ja>>>0<a.H.cg>>>0;){Wg.Ja=a.jb(Sd,!0);if(null==Sd.xa||!dC--)break;Wg.U=Kt;if(kd=eB(a,Wg))break;Wg.U=a.jb(Sd);if(kd=eB(a,Wg,!0)){Kt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Lt=null;if("ks"==cC){var Mt=kd.match(/[0-9A-F]+$/);Mt&&(Lt=aB(a,Mt[0]))}kd=Ba(kd,50)+" ;"+(Lt||"stack="+Dy(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){aB(a,g[1],!0);break}bB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],aj=g[2];if(a.G){var Nt=1;"-"==aj.charAt(0)&&(Nt=-1,aj=aj.substr(1));var xe=$x(a,aj,Bm);if(void 0!==xe)switch(xe=xe*Nt|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 Sb)if(fb==ld){ye=Sb[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 eC=0,Xg="";for(ld in Sb)if(!fb||fb==ld){var fC=!!(a.ic&Sb[ld]);if(null===md||md==fC)Xg&&(Xg+=","),++eC%10||(Xg+="\n\t"),"key"==ld&&(ld="keys"),Xg+=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")+(Xg||"none"));hy(a)}break;case "o":var Cm=g[1],gC=g[2];if(Cm&&"?"!=Cm){var Dm=$x(a,Cm,"port #"),Em=$x(a,gC);void 0!==Dm&&void 0!==Em&&(Tc(a.ka,Dm,1,Em),a.P(ta(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]){dB(a,b.substr(5));break}var Ot="pr"==g[0]?1:0,rf=1+Ot;if(a.I)a.P("step in progress");
else{var bj,Pt=!1,Hb=fy(a,A(a.H),a.H.Z.U);do switch(bj=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Iy(a,Hb,1);bj=!0;break;case 204:case 206:a.I=rf;Iy(a,Hb,1);break;case 205:case 224:case 225:case 226:a.I=rf;Iy(a,Hb,Hb.Hb?4:2);break;case 232:a.I=rf;Iy(a,Hb,Hb.Hb?5:3);break;case 154:a.I=rf;Iy(a,Hb,Hb.Hb?7:5);break;case 255:var Qt=a.jb(Hb)&14591;if(4351==Qt||6399==Qt)a.I=rf,Vz(a,Hb);break;case 243:case 242:Iy(a,Hb,1);Pt=bj=!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:Pt&&
(a.I=rf,Iy(a,Hb,1))}while(bj);a.I?(a.Gd(a.B,Hb,!0),Lz(a)||(a.pa&&a.pa.ld(),a.I=0)):fB(a,Ot?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Nz(a,g);break;case "t":fB(a,g[0],g[1]);break;case "u":Oz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){$A(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.2 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Ob?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Na());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Yg;void 0!==g[3]&&(Yg=+g[3]);
function Vz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.aa&&(a.P("ended assemble at "+Ey(a.Z)),a.K=a.Z,a.aa=!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.va=null;if(Ib(a)&&0<b.length){a.aa&&(b="a "+Ey(a.Z)+" "+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 w=
Oy(a,g[1],!0);if(w)if(a.Z=w,void 0===g[2])a.P("begin assemble at "+Ey(w)),a.aa=!0,Cd(a.H);else{var u;a.P("not supported yet");u=[];if(u.length){for(var F=0;F<u.length;F++)a.fc(w,u[F],1);a.P(Wz(a,a.Z))}}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+Uz(a,a.B);L+=Uz(a,a.Y);(L+=Uz(a,a.M))||a.P("no breakpoints")}else if("n"==T)a.ta=ay(a,H),a.P("break after "+a.ta+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Oy(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:ta(ua.Ja);"c"==T?null==ua.Ja?(hy(a),a.P("all breakpoints cleared")):Dy(a,
a.B,ua)||Dy(a,a.Y,ua)||Dy(a,a.M,ua)||a.P("breakpoint missing: "+Ey(ua)):"i"==T?a.P("breakpoint "+(Nc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Rc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Ry(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Y,ua):"w"==T?a.Gd(a.M,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":ZA(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 Sb)a.Aa[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=hB(a.pa,!0);rc?"console"==Sa?console.log(rc):
(ZA(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],sg=df.o;if(void 0!==sg){var ef=df.s;void 0===ef&&(ef=cf.U);var tg=cf.Fd[Ld].l;tg&&(Ld=tg);a.P(ty(sg,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 Ng=a.Sb(Oy(a,qm));if(-1===Ng)a.P("invalid address: "+qm);else{var nf,
Qa=null;if(80386<=a.H.ca){var of=a.ka,Qa={};Qa.Jk=(Ng&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.nb=of.aa[(Qa.Ti&of.C)>>>of.A];Qa.Aj=Qa.nb.Nd(Qa.Jk);Qa.Kk=(Ng&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.ob=of.aa[(Qa.Ui&of.C)>>>of.A];Qa.Bj=Qa.ob.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Ng&4095)}if(nf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Ng),ve=ve+(" %%"+Ty(nf.Ti,nf.Aj)),ve=
ve+(" %%"+Ty(nf.Ui,nf.Bj,!0)),ve=ve+(" %%"+q(nf.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";cB(a,ca);break a}for(xb in Sb)if(ca[1]==xb){var tt=a.Aa[xb];tt?(ca.shift(),ca.shift(),tt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.ib||"db")}else a.ib=za;if("dh"==za){var ut=cb,vt=Sa,wt="",xt=0,Mc=a.la,jd=a.N;if(jd.length){var uc=+ut||a.Xa,Og=+vt||10;isNaN(uc)?uc=Og:wt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Mc-=uc;0>Mc&&(null==jd[jd.length-1].U?(uc=Mc+uc,Mc=0):Mc+=jd.length);var rm=[];"call"==vt&&(Og=1E5,rm=["CALL"]);for(void 0!==ut&&a.P(uc+" instructions earlier:");0<Og&&Mc!=a.la;){var we=jd[Mc++];if(null==we.U)break;var Pg=gy(a,we.Ja,we.U,we.xa,we.type,we.Hb,we.dc),YB=uc--,yt=Wz(a,Pg,"history",YB);(!rm.length||0<=yt.indexOf(rm[0]))&&a.P(yt);Pg.Fe&&(Mc+=Pg.Fe,Og-=Pg.Fe,uc-=Pg.Fe);Mc>=jd.length&&(Mc=0);a.Xa=uc;xt++;Og--}}xt||(a.P("no "+wt+"history available"),a.Xa=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Qg=ay(a,sm);if(void 0===Qg||0>Qg||255<Qg)a.P("invalid vector: "+sm);else{var zt="&",At=!!(a.H.qa&1),Bt=!1,Ti=a.H.Pb+(Qg<<(At?3:2)),Ct=a.H.ja(Ti+0),ZB=a.H.ja(Ti+2);At&&(zt="#",a.H.ja(Ti+4)&2048&&(Bt=!0,Ct|=a.H.ja(Ti+6)<<16));a.P("dumpIDT("+ta(Qg)+"): "+zt+q(ZB,4)+":"+q(Ct,Bt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Oy(a,cb);if(pf&&(null!=pf.U||null!=pf.xa)){var Ui=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Ui=ay(a,Sa)>>>0,65536<Ui&&(Ui=65536));for(var Rg="",qf="dd"==za?4:"dw"==za?2:1,Vi=qf*Ui||128,$B=Vi+15>>4||1;$B--&&0<Vi;){var Sg=0,tm=0,Tg,um="",Dt="",cb=Ey(pf);for(Tg=4==qf?16:a.ya;0<Tg&&0<Vi;Tg--){var Wi=a.Ia(pf,1),Sg=Sg|Wi<<(tm++<<3);tm==qf&&(um+=8==a.ya?sa(Sg,3*qf):q(Sg,2*qf),um+=1==qf?9==Tg?"-":" ":" ",Sg=tm=0);Dt+=32<=Wi&&128>Wi?String.fromCharCode(Wi):".";Vi--}Rg&&(Rg+="\n");Rg+=cb+" "+um+(Tg?"":" "+Dt)}Rg&&a.P(Rg);a.Ma=pf}}}}}break;case "e":if("else"==g[0])break;var Xi=
1,Et=255,Ft=a.Ia,Gt=a.fc;"ew"==g[0]&&(Xi=2,Et=65535,Ft=a.Yc,Gt=a.il);var Ht=Xi<<1,It=g[1];if(null==It)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 Yi=Oy(a,It);if(Yi)for(var Zi=2;Zi<g.length;Zi++){var Ug=Zx(a,g[Zi]);if(void 0===Ug){a.P("unrecognized value: "+g[Zi]);break}Ug&~Et&&a.P("warning: "+q(Ug)+" exceeds "+Xi+"-byte value");var aC=Ft.call(a,Yi);a.P("changing "+Ey(Yi)+" from "+q(aC,Ht,!0)+" to "+q(Ug,Ht,!0));
Gt.call(a,Yi,Ug,Xi)}}break;case "f":$A(a,g[1]);break;case "g":a:{var Jt=g[1],bC=b;"gt"==g[0]&&(a.Ba=!0);if(void 0!==Jt){var vm=Oy(a,Jt,!0);if(!vm)break a;Ry(a,vm,bC);a.Gd(a.B,vm,!0)}Mz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.vb)wm="halting",a.Jb();else{if(Kb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Vg=b.substr(2),Vg=Ca(Vg);Zx(a,Vg)?(c||a.P("true: "+Vg),xm=!0):(c||a.P("false: "+Vg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var $i;a:switch(ay(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ga=a.W;$i=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ga=a.W;$i=!0;break a;default:$i=!1}$i||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=ay(a,ym);if(void 0!==zm){var cC=Pc(a.ka,zm,1);a.P(ta(zm)+": "+r(cC))}}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 dC=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,Kt=a.H.Z.U,Wg=gy(a),Sd=gy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Ey(Sd));10>Am;){for(var kd=null,eC=256;Sd.Ja>>>0<a.H.cg>>>0;){Wg.Ja=a.jb(Sd,!0);if(null==Sd.xa||!eC--)break;Wg.U=Kt;if(kd=fB(a,Wg))break;Wg.U=a.jb(Sd);if(kd=fB(a,Wg,!0)){Kt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Lt=null;if("ks"==dC){var Mt=kd.match(/[0-9A-F]+$/);Mt&&(Lt=bB(a,Mt[0]))}kd=Ba(kd,50)+" ;"+(Lt||"stack="+Ey(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){bB(a,g[1],!0);break}cB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],aj=g[2];if(a.G){var Nt=1;"-"==aj.charAt(0)&&(Nt=-1,aj=aj.substr(1));var xe=ay(a,aj,Bm);if(void 0!==xe)switch(xe=xe*Nt|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 Sb)if(fb==ld){ye=Sb[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 fC=0,Xg="";for(ld in Sb)if(!fb||fb==ld){var gC=!!(a.ic&Sb[ld]);if(null===md||md==gC)Xg&&(Xg+=","),++fC%10||(Xg+="\n\t"),"key"==ld&&(ld="keys"),Xg+=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")+(Xg||"none"));iy(a)}break;case "o":var Cm=g[1],hC=g[2];if(Cm&&"?"!=Cm){var Dm=ay(a,Cm,"port #"),Em=ay(a,hC);void 0!==Dm&&void 0!==Em&&(Tc(a.ka,Dm,1,Em),a.P(ta(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]){eB(a,b.substr(5));break}var Ot="pr"==g[0]?1:0,rf=1+Ot;if(a.I)a.P("step in progress");
else{var bj,Pt=!1,Hb=gy(a,A(a.H),a.H.Z.U);do switch(bj=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Jy(a,Hb,1);bj=!0;break;case 204:case 206:a.I=rf;Jy(a,Hb,1);break;case 205:case 224:case 225:case 226:a.I=rf;Jy(a,Hb,Hb.Hb?4:2);break;case 232:a.I=rf;Jy(a,Hb,Hb.Hb?5:3);break;case 154:a.I=rf;Jy(a,Hb,Hb.Hb?7:5);break;case 255:var Qt=a.jb(Hb)&14591;if(4351==Qt||6399==Qt)a.I=rf,Wz(a,Hb);break;case 243:case 242:Jy(a,Hb,1);Pt=bj=!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:Pt&&
(a.I=rf,Jy(a,Hb,1))}while(bj);a.I?(a.Gd(a.B,Hb,!0),Mz(a)||(a.pa&&a.pa.ld(),a.I=0)):gB(a,Ot?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Oz(a,g);break;case "t":gB(a,g[0],g[1]);break;case "u":Pz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){aB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.2 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Ob?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Na());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Yg;void 0!==g[3]&&(Yg=+g[3]);
switch(g[2]){case "int":a.H.T.Se=Yg;break;case "start":a.H.T.wf=Yg;break;case "stop":a.H.T.Ue=Yg;break;default:a.P("unknown cs option");break a}void 0!==Yg&&Bd(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Fd(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]){dB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in hB)Fm+="\n"+Ba(Gm,7)+hB[Gm];Jg(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(St){a.P("debugger error: "+(St.stack||St.message)),d=!1}return d}
function jy(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Uz(a,b[+d]))return!1;return!0}
var Iz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Hz=[26,28,40,42,109],hB={"?":"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"},Oy=0,Gy=1,py=2,Ry=3,Py=4,Hy=5,cA=18,dA=28,Zz=36,hA=80,eA=104,fA=107,Xz=176,Wz="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(" "),
aA="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(" "),
cB=["VALID","ZERO ","SPEC ","EMPTY"],iA=2,jA=3,LA=[8086,80186,80286,80386],Vy=0,Wy=1,Xy=2,Yy=3,Zy=4,$y=5,az=6,bz=7,cz=8,dz=9,ez=10,fz=11,gz=12,hz=13,iz=14,jz=15,lz=16,kz=22,Fz=23,sz=24,tz=25,uz=26,vz=27,wz=28,xz=29,yz=30,zz=31,Az=32,Bz=33,Cz=34,Dz=35,PA=40,RA=48,Ez=56,Ty=["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"],mz=0,nz=1,oz=2,pz=3,qz=4,rz=5,pA="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),kA=15,nA=240,GA=3840,lA=0,V=1,AA=2,U=3,S=4,qA=5,rA=7,mA=8,EA=9,FA=10,sA=11,tA=11,uA=12,vA=12,wA=13,xA=14,W=0,zA=16,CA=32,DA=48,JA=64,KA=80,Y=96,HA=112,R=128,oA=160,IA=192,NA=208,OA=224,QA=240,iB=Vy<<8|Y|V,jB=Wy<<8|Y|V,kB=cz<<8|Y|S,lB=dz<<8|Y|S,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=mz<<8|HA|U,tB=nz<<8|HA|U,uB=oz<<8|HA|U,vB=pz<<8|HA|U,wB=qz<<8|HA|U,xB=rz<<8|HA|U,X=12288,yB=iA<<14,Z=jA<<14,gA=14,Kz=1E3,ly=[0,lA],my=[Xz,U|X],ky=[[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,iB|X,W|V|4096],[6,kB|X,W|S|4096],[108,sB|4096],[103,sB|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,iB|X,W|V|4096],[99,kB|X,W|S|4096],[108,tB|4096],[103,tB|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,iB|X,W|V|4096],[5,kB|X,W|S|4096],[108,uB|4096],[103,uB|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,iB|X,W|V|4096],[120,kB|X,W|S|4096],[108,vB|4096],[103,vB|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,iB|X,W|V|4096],[7,kB|X,W|S|4096],[35,mA],[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,iB|X,W|V|4096],[154,kB|X,W|S|4096],[27,mA],[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,iB|X,W|V|4096],[162,kB|X,W|S|4096],[147,mA],[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,iB|4096,W|V|4096],[24,kB|4096,W|S|4096],[33,mA],[4],[44,kB|X],[44,lB|X],[44,mB|X],[44,nB|X],[44,oB|X],[44,pB|X],[44,qB|X],[44,rB|X],[31,kB|X],[31,lB|X],[31,mB|X],[31,nB|X],[31,oB|X],[31,pB|X],[31,qB|X],[31,rB|X],[108,kB|4096],[108,lB|4096],[108,mB|4096],[108,nB|4096],[108,oB|4096],
[108,pB|4096],[108,qB|4096],[108,rB|4096],[103,kB|8192],[103,lB|8192],[103,mB|8192],[103,nB|8192],[103,oB|8192],[103,pB|8192],[103,qB|8192],[103,rB|8192],[fA,lA|yB],[eA,lA|yB],[10,S|4272|yB,R|S|4096],[8,R|U|8192,U|4272],[37,mA|Z],[38,mA|Z],[100,mA|Z],[9,mA|Z],[108,W|S|4096|yB],[42,176|U|X|yB,R|S|4096,W|S|4096],[108,W|AA|4096|yB],[42,U|8368|yB,R|S|4096,W|V|4096],[45,KA|V|8192|yB,mB|4096],[45,KA|S|8192|yB,mB|4096],[102,mB|4096|yB,JA|V|4096],[102,mB|4096|yB,JA|S|4096],[64,DA|V|4096],[60,DA|V|4096],[51,
DA|V|4096],[59,DA|V|4096],[67,DA|V|4096],[63,DA|V|4096],[50,DA|V|4096],[58,DA|V|4096],[66,DA|V|4096],[62,DA|V|4096],[65,DA|V|4096],[61,DA|V|4096],[55,DA|V|4096],[54,DA|V|4096],[56,DA|V|4096],[53,DA|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,IA|U|4096],[71,S|8368,144|S],[90,
IA|U|8192,R|S|4096],[103,R|S|8192],[97],[160,kB|X,lB|X],[160,kB|X,mB|X],[160,kB|X,nB|X],[160,kB|X,oB|X],[160,kB|X,pB|X],[160,kB|X,qB|X],[160,kB|X,rB|X],[cA],[dA],[17,W|rA|4096],[158],[106],[105],[117],[68],[90,iB|8192,CA|V|4096],[90,kB|8192,CA|S|4096],[90,CA|V|8192,iB|4096],[90,CA|S|8192,kB|4096],[91,KA|V|8192,JA|V|4096],[92,KA|S|8192,JA|S|4096],[25,KA|V|4096,JA|V|4096],[26,KA|S|4096,JA|S|4096],[155,iB|4096,W|V|4096],[155,kB|4096,W|S|4096],[151,KA|V|8192,iB|4096],[152,KA|S|8192,kB|4096],[82,iB|8192,
JA|V|4096],[83,kB|8192,JA|S|4096],[121,iB|4096,KA|V|4096],[122,kB|4096,KA|S|4096],[90,iB|8192,W|V|4096],[90,jB|8192,W|V|4096],[90,Xy<<8|Y|V|8192,W|V|4096],[90,Yy<<8|Y|V|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,kB|8192,W|S|4096],[90,lB|8192,W|S|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],[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|yB,W|V|4096],[72,lA|yB],[114,W|U|4096],[114],[47],[46,W|V|4096],[48],[49],[168,R|V|X,zA|V|4096],[169,R|S|X,zA|V|4096],[170,R|V|X,jB|4096],[171,R|S|X,jB|4096],[3,W|V],[2,W|V],[118],[161],[Zz,R|S|4096],[Zz,R|S|4096],[Zz,R|S|4096],[Zz,R|S|4096],[Zz,R|S|4096],[Zz,R|S|4096],[Zz,R|S|4096],[Zz,R|S|4096],[85,DA|V|4096],[86,DA|V|4096],[84,DA|V|4096],[52,DA|V|4096],[43,
iB|8192,W|V|4096],[43,kB|8192,W|V|4096],[101,W|V|4096,iB|4096],[101,W|V|4096,kB|4096],[17,DA|S|4096],[57,DA|S|4096],[57,W|rA|4096],[57,DA|V|4096],[43,iB|8192,mB|U|4096],[43,kB|8192,mB|U|4096],[101,mB|U|4096,iB|4096],[101,mB|U|4096,kB|4096],[81,mA],[0],[111,mA],[112,mA],[39],[23],[172,R|V|X],[173,R|S|X],[19],[148],[21],[150],[20],[149],[174,R|V|X],[175,R|S|X]],Yz={0:[177,R|U|X],1:[178,R|U|X],2:[69,U|8368|yB,U|4240],3:[87,U|8368|yB,U|4240],5:[hA,yB],6:[22,yB],7:[hA,Z],32:[90,oA|qA|8192|Z,NA|qA|4096],
33:[90,oA|qA|8192|Z,OA|qA|4096],34:[90,NA|qA|8192|Z,oA|qA|4096],35:[90,OA|qA|8192|Z,oA|qA|4096],36:[90,oA|qA|8192|Z,QA|qA|4096],38:[90,QA|qA|8192|Z,oA|qA|4096],128:[64,DA|S|4096|Z],129:[60,DA|S|4096|Z],130:[51,DA|S|4096|Z],131:[59,DA|S|4096|Z],132:[67,DA|S|4096|Z],133:[63,DA|S|4096|Z],134:[50,DA|S|4096|Z],135:[58,DA|S|4096|Z],136:[66,DA|S|4096|Z],137:[62,DA|S|4096|Z],138:[65,DA|S|4096|Z],139:[61,DA|S|4096|Z],140:[55,DA|S|4096|Z],141:[54,DA|S|4096|Z],142:[56,DA|S|4096|Z],143:[53,DA|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,wB|4096|Z],161:[103,wB|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,jB|4096],166:[159,S|8368|Z,R|S|4096,kB|4096,
jB|4096],167:[40,R|S|8192|Z,kB|4096,jB|4096,S|4272],168:[108,xB|4096|Z],169:[103,xB|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,jB|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,qA|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,
qA|8368|Z,R|U|4096]},$z={216:{0:[9,R|tA|4096],1:[18,R|tA|4096],2:[34,R|tA|4096],3:[35,R|tA|4096],4:[12,R|tA|4096],5:[15,R|tA|4096],6:[21,R|tA|4096],7:[24,R|tA|4096],48:[9,Y|EA|8192,Y|FA|4096],49:[18,Y|EA|8192,Y|FA|4096],50:[34,Y|EA|8192,Y|FA|4096],51:[35,Y|EA|8192,Y|FA|4096],52:[12,Y|EA|8192,Y|FA|4096],53:[15,Y|EA|8192,Y|FA|4096],54:[21,Y|EA|8192,Y|FA|4096],55:[24,Y|EA|8192,Y|FA|4096]},217:{0:[0,R|tA|4096],2:[1,R|tA|8192],3:[2,R|tA|8192],4:[68,R|4111],5:[59,R|U|4096],6:[66,R|8207],7:[60,R|U|8192],
48:[0,Y|FA|8192],49:[3,Y|FA|8192],50:[76],51:[2,Y|FA|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|sA|4096],1:[20,R|sA|4096],2:[37,R|sA|4096],3:[38,R|sA|4096],4:[14,R|sA|4096],5:[17,R|sA|4096],6:[23,R|sA|4096],7:[26,R|sA|4096]},219:{0:[4,R|sA|4096],2:[5,R|sA|8192],3:[6,R|sA|8192],5:[0,R|wA|4096],7:[2,R|wA|8192],64:[57],65:[55],66:[64],
67:[53],68:[78,yB],115:[79,Z]},220:{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|FA|8192,Y|EA|4096],49:[18,Y|FA|8192,Y|EA|4096],50:[34,Y|FA|4096],51:[35,Y|FA|4096],52:[15,Y|FA|8192,Y|EA|4096],53:[12,Y|FA|8192,Y|EA|4096],54:[24,Y|FA|8192,Y|EA|4096],55:[21,Y|FA|8192,Y|EA|4096]},221:{0:[0,R|vA|4096],2:[1,R|vA|8192],3:[2,R|vA|8192],4:[71,R|4111],6:[69,R|8207],7:[62,R|U|8192],48:[74,Y|FA|4096],49:[3,Y|FA|
8192],50:[1,Y|FA|4096],51:[2,Y|FA|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|FA|8192,Y|EA|4096],49:[19,Y|FA|8192,Y|EA|4096],50:[35,Y|FA|4096],51:[36,Y|FA|4096],52:[16,Y|FA|8192,Y|EA|4096],53:[13,Y|FA|8192,Y|EA|4096],54:[25,Y|FA|8192,Y|EA|4096],55:[22,Y|FA|8192,Y|EA|4096]},223:{0:[4,R|U|4096],2:[5,R|U|8192],3:[6,R|U|8192],4:[7,R|xA|4096],5:[4,R|uA|4096],6:[8,R|xA|8192],7:[6,R|uA|8192],48:[75,Y|
FA|4096],49:[3,Y|FA|8192],50:[2,Y|FA|4096],51:[2,Y|FA|4096],52:[80,yB]}},bA=[[[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|AA|4096],[99,R|S|X,W|AA|4096],[5,R|S|X,W|AA|4096],[120,R|S|X,W|AA|4096],[7,R|S|X,W|
AA|4096],[154,R|S|X,W|AA|4096],[162,R|S|X,W|AA|4096],[24,R|S|4096,W|AA|4096]],[[115,R|V|X|yB,W|V|4096],[116,R|V|X|yB,W|V|4096],[109,R|V|X|yB,W|V|4096],[110,R|V|X|yB,W|V|4096],[140,R|V|X|yB,W|V|4096],[142,R|V|X|yB,W|V|4096],ly,[119,R|V|X|yB,W|V|4096]],[[115,R|S|X|yB,W|V|4096],[116,R|S|X|yB,W|V|4096],[109,R|S|X|yB,W|V|4096],[110,R|S|X|yB,W|V|4096],[140,R|S|X|yB,W|V|4096],[142,R|S|X|yB,W|V|4096],ly,[119,R|S|X|yB,W|V|4096]],[[115,R|V|X,zA|V|4096],[116,R|V|X,zA|V|4096],[109,R|V|X,zA|V|4096],[110,R|V|X,
zA|V|4096],[140,R|V|X,zA|V|4096],[142,R|V|X,zA|V|4096],ly,[119,R|V|X,zA|V|4096]],[[115,R|S|X,zA|V|4096],[116,R|S|X,zA|V|4096],[109,R|S|X,zA|V|4096],[110,R|S|X,zA|V|4096],[140,R|S|X,zA|V|4096],[142,R|S|X,zA|V|4096],ly,[119,R|S|X,zA|V|4096]],[[115,R|V|X,jB|4096],[116,R|V|X,jB|4096],[109,R|V|X,jB|4096],[110,R|V|X,jB|4096],[140,R|V|X,jB|4096],[142,R|V|X,jB|4096],ly,[119,R|V|X,jB|4096]],[[115,R|S|X,jB|4096],[116,R|S|X,jB|4096],[109,R|S|X,jB|4096],[110,R|S|X,jB|4096],[140,R|S|X,jB|4096],[142,R|S|X,jB|4096],
ly,[119,R|S|X,jB|4096]],[[155,R|V|4096,W|V|4096],ly,[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],ly,[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],ly,ly,ly,ly,ly,ly],[[44,R|S|X],[31,R|S|X],[17,R|S|4096],[17,R|rA|4096],[57,R|S|4096],[57,R|rA|4096],[108,R|S|4096],ly],[],[[145,R|U|8192|yB],[153,R|U|8192|yB],[78,R|U|4096|yB],[89,R|U|4096|yB],[156,R|U|4096|yB],[157,R|U|4096|yB],ly,ly],[[139,R|U|8192|yB],
[144,R|U|8192|yB],[75,R|U|4096|yB],[77,R|U|4096|yB],[146,R|U|8192|yB],ly,[79,R|U|4096|yB],ly],[ly,ly,ly,ly,[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]]],qy={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]},uy={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},vy={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};ab(function(){for(var a=Ab(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new ey(d);zb(d,c)}});
function zB(a,b,c){nb.call(this,"Computer",a,67108864);this.ea.Yb=!1;AB(this,b);this.N=zd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=BB;this.L=null;this.I=this.Z=!1;this.da=zd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=CB(this);if(this.H=vb("CPU",this.id)){this.ba=vb("Debugger",this.id);this.G=[];for(b=null;b=Xb(this,"Video",b);)this.G.push(b);this.ka=new mc({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=tb(this.id);if((this.D=
vb("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.2\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=zd(this,"state")||(f=!0,a.state))b=this.W=a,f||(this.I=!0,this.A=BB),this.A&&(this.M=new Xf(this,
"1.34.2"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=DB(this))&&(this.I=!0);if(b){var g=this;La(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?": "+Ca(b):"")+")")):(g.L=b,g.Z=!0);Jb(g)})}else Jb(this);this.na.power||(this.N=!0);!c&&this.N&&EB(this,this.Lf)}else hb("Unable to find CPU component")}ba(zB,nb);
function AB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){hb(d.message+" ("+c+")")}}a.J=b}function zd(a,b,c){var d=b.toLowerCase(),d=Va(b)||Va(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 EB(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ib(f)){Ib(f,function(){EB(a,b,c)});return}}b.call(a,c)}
function FB(a,b){var c=new Xf(a,"1.34.2",GB);if(c.load()&&HB(c)){var d=c.get(IB),e=b?b.get(IB):"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=zB.prototype;
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?JB:BB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Xf(this,"1.34.2");if(a==KB)b=!0;else if(a>BB){if(d.load(this.L)){this.F=new Xf(this,"1.34.2",LB);this.F.load()&&(MB(this,d),a=NB,OB(this.F));this.F.set(IB,Fa());PB(this.F);var e=this.A&&!this.I;if(a==JB||sb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=HB(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&&(Ta(QB,""),this.B=null)):this.P(f+": "+g),OB(d),d.load()?(c=HB(d),e=!0):c=!1))}e&&FB(this,c?d:null)}else a==NB&&d.clear()}else FB(this);delete this.L;delete this.M}e=tb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=RB(this,g,d,b,c));b=[d,a,c];a!=KB?EB(this,this.mj,b):this.mj(b)}};
function RB(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&&(hb("Unable to restore state for "+b.type),a.W&&!a.Z?(c.clear(),a.A=BB,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&&(RB(this,this.H,b,c,a),this.H.lf());this.Y&&(MB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
function MB(a,b){if(sb("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.2"};d.url=a.da;d.user=c;d.type="bug";d.data=b;La("http://www.pcjs.org/api/v1/report",d,!0)}}
function gB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Xf(a,"1.34.2"),g=new Xf(a,"1.34.2",GB),h=Fa();g.set(IB,h);f.set(IB,h);f.set(SB,"1.34.2");f.set(TB,window?window.location.href:null);f.set(UB,Na());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=tb(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&&VB(a,
a.B,f.toString()),PB(g)&&PB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==WB),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&&(Mb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(Mb(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]){eB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in iB)Fm+="\n"+Ba(Gm,7)+iB[Gm];Jg(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(St){a.P("debugger error: "+(St.stack||St.message)),d=!1}return d}
function ky(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Vz(a,b[+d]))return!1;return!0}
var Jz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Iz=[26,28,40,42,109],iB={"?":"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"},Py=0,Hy=1,qy=2,Sy=3,Qy=4,Iy=5,dA=18,eA=28,$z=36,iA=80,fA=104,gA=107,Yz=176,Xz="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(" "),
bA="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(" "),
dB=["VALID","ZERO ","SPEC ","EMPTY"],jA=2,kA=3,MA=[8086,80186,80286,80386],Wy=0,Xy=1,Yy=2,Zy=3,$y=4,az=5,bz=6,cz=7,dz=8,ez=9,fz=10,gz=11,hz=12,iz=13,jz=14,kz=15,mz=16,lz=22,Gz=23,tz=24,uz=25,vz=26,wz=27,xz=28,yz=29,zz=30,Az=31,Bz=32,Cz=33,Dz=34,Ez=35,QA=40,SA=48,Fz=56,Uy=["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"],nz=0,oz=1,pz=2,qz=3,rz=4,sz=5,qA="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),lA=15,oA=240,HA=3840,mA=0,V=1,BA=2,U=3,S=4,rA=5,sA=7,nA=8,FA=9,GA=10,tA=11,uA=11,vA=12,wA=12,xA=13,yA=14,W=0,AA=16,DA=32,EA=48,KA=64,LA=80,Y=96,IA=112,R=128,pA=160,JA=192,OA=208,PA=224,RA=240,jB=Wy<<8|Y|V,kB=Xy<<8|Y|V,lB=dz<<8|Y|S,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=nz<<8|IA|U,uB=oz<<8|IA|U,vB=pz<<8|IA|U,wB=qz<<8|IA|U,xB=rz<<8|IA|U,yB=sz<<8|IA|U,X=12288,zB=jA<<14,Z=kA<<14,hA=14,Lz=1E3,my=[0,mA],ny=[Yz,U|X],ly=[[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,jB|X,W|V|4096],[6,lB|X,W|S|4096],[108,tB|4096],[103,tB|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,jB|X,W|V|4096],[99,lB|X,W|S|4096],[108,uB|4096],[103,uB|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,jB|X,W|V|4096],[5,lB|X,W|S|4096],[108,vB|4096],[103,vB|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,jB|X,W|V|4096],[120,lB|X,W|S|4096],[108,wB|4096],[103,wB|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,jB|X,W|V|4096],[7,lB|X,W|S|4096],[35,nA],[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,jB|X,W|V|4096],[154,lB|X,W|S|4096],[27,nA],[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,jB|X,W|V|4096],[162,lB|X,W|S|4096],[147,nA],[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,jB|4096,W|V|4096],[24,lB|4096,W|S|4096],[33,nA],[4],[44,lB|X],[44,mB|X],[44,nB|X],[44,oB|X],[44,pB|X],[44,qB|X],[44,rB|X],[44,sB|X],[31,lB|X],[31,mB|X],[31,nB|X],[31,oB|X],[31,pB|X],[31,qB|X],[31,rB|X],[31,sB|X],[108,lB|4096],[108,mB|4096],[108,nB|4096],[108,oB|4096],[108,pB|4096],
[108,qB|4096],[108,rB|4096],[108,sB|4096],[103,lB|8192],[103,mB|8192],[103,nB|8192],[103,oB|8192],[103,pB|8192],[103,qB|8192],[103,rB|8192],[103,sB|8192],[gA,mA|zB],[fA,mA|zB],[10,S|4272|zB,R|S|4096],[8,R|U|8192,U|4272],[37,nA|Z],[38,nA|Z],[100,nA|Z],[9,nA|Z],[108,W|S|4096|zB],[42,176|U|X|zB,R|S|4096,W|S|4096],[108,W|BA|4096|zB],[42,U|8368|zB,R|S|4096,W|V|4096],[45,LA|V|8192|zB,nB|4096],[45,LA|S|8192|zB,nB|4096],[102,nB|4096|zB,KA|V|4096],[102,nB|4096|zB,KA|S|4096],[64,EA|V|4096],[60,EA|V|4096],[51,
EA|V|4096],[59,EA|V|4096],[67,EA|V|4096],[63,EA|V|4096],[50,EA|V|4096],[58,EA|V|4096],[66,EA|V|4096],[62,EA|V|4096],[65,EA|V|4096],[61,EA|V|4096],[55,EA|V|4096],[54,EA|V|4096],[56,EA|V|4096],[53,EA|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,JA|U|4096],[71,S|8368,144|S],[90,
JA|U|8192,R|S|4096],[103,R|S|8192],[97],[160,lB|X,mB|X],[160,lB|X,nB|X],[160,lB|X,oB|X],[160,lB|X,pB|X],[160,lB|X,qB|X],[160,lB|X,rB|X],[160,lB|X,sB|X],[dA],[eA],[17,W|sA|4096],[158],[106],[105],[117],[68],[90,jB|8192,DA|V|4096],[90,lB|8192,DA|S|4096],[90,DA|V|8192,jB|4096],[90,DA|S|8192,lB|4096],[91,LA|V|8192,KA|V|4096],[92,LA|S|8192,KA|S|4096],[25,LA|V|4096,KA|V|4096],[26,LA|S|4096,KA|S|4096],[155,jB|4096,W|V|4096],[155,lB|4096,W|S|4096],[151,LA|V|8192,jB|4096],[152,LA|S|8192,lB|4096],[82,jB|8192,
KA|V|4096],[83,lB|8192,KA|S|4096],[121,jB|4096,LA|V|4096],[122,lB|4096,LA|S|4096],[90,jB|8192,W|V|4096],[90,kB|8192,W|V|4096],[90,Yy<<8|Y|V|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,lB|8192,W|S|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],[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|zB,W|V|4096],[72,mA|zB],[114,W|U|4096],[114],[47],[46,W|V|4096],[48],[49],[168,R|V|X,AA|V|4096],[169,R|S|X,AA|V|4096],[170,R|V|X,kB|4096],[171,R|S|X,kB|4096],[3,W|V],[2,W|V],[118],[161],[$z,R|S|4096],[$z,R|S|4096],[$z,R|S|4096],[$z,R|S|4096],[$z,R|S|4096],[$z,R|S|4096],[$z,R|S|4096],[$z,R|S|4096],[85,EA|V|4096],[86,EA|V|4096],[84,EA|V|4096],[52,EA|V|4096],[43,
jB|8192,W|V|4096],[43,lB|8192,W|V|4096],[101,W|V|4096,jB|4096],[101,W|V|4096,lB|4096],[17,EA|S|4096],[57,EA|S|4096],[57,W|sA|4096],[57,EA|V|4096],[43,jB|8192,nB|U|4096],[43,lB|8192,nB|U|4096],[101,nB|U|4096,jB|4096],[101,nB|U|4096,lB|4096],[81,nA],[0],[111,nA],[112,nA],[39],[23],[172,R|V|X],[173,R|S|X],[19],[148],[21],[150],[20],[149],[174,R|V|X],[175,R|S|X]],Zz={0:[177,R|U|X],1:[178,R|U|X],2:[69,U|8368|zB,U|4240],3:[87,U|8368|zB,U|4240],5:[iA,zB],6:[22,zB],7:[iA,Z],32:[90,pA|rA|8192|Z,OA|rA|4096],
33:[90,pA|rA|8192|Z,PA|rA|4096],34:[90,OA|rA|8192|Z,pA|rA|4096],35:[90,PA|rA|8192|Z,pA|rA|4096],36:[90,pA|rA|8192|Z,RA|rA|4096],38:[90,RA|rA|8192|Z,pA|rA|4096],128:[64,EA|S|4096|Z],129:[60,EA|S|4096|Z],130:[51,EA|S|4096|Z],131:[59,EA|S|4096|Z],132:[67,EA|S|4096|Z],133:[63,EA|S|4096|Z],134:[50,EA|S|4096|Z],135:[58,EA|S|4096|Z],136:[66,EA|S|4096|Z],137:[62,EA|S|4096|Z],138:[65,EA|S|4096|Z],139:[61,EA|S|4096|Z],140:[55,EA|S|4096|Z],141:[54,EA|S|4096|Z],142:[56,EA|S|4096|Z],143:[53,EA|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,xB|4096|Z],161:[103,xB|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,kB|4096],166:[159,S|8368|Z,R|S|4096,lB|4096,
kB|4096],167:[40,R|S|8192|Z,lB|4096,kB|4096,S|4272],168:[108,yB|4096|Z],169:[103,yB|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,kB|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,rA|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,
rA|8368|Z,R|U|4096]},aA={216:{0:[9,R|uA|4096],1:[18,R|uA|4096],2:[34,R|uA|4096],3:[35,R|uA|4096],4:[12,R|uA|4096],5:[15,R|uA|4096],6:[21,R|uA|4096],7:[24,R|uA|4096],48:[9,Y|FA|8192,Y|GA|4096],49:[18,Y|FA|8192,Y|GA|4096],50:[34,Y|FA|8192,Y|GA|4096],51:[35,Y|FA|8192,Y|GA|4096],52:[12,Y|FA|8192,Y|GA|4096],53:[15,Y|FA|8192,Y|GA|4096],54:[21,Y|FA|8192,Y|GA|4096],55:[24,Y|FA|8192,Y|GA|4096]},217:{0:[0,R|uA|4096],2:[1,R|uA|8192],3:[2,R|uA|8192],4:[68,R|4111],5:[59,R|U|4096],6:[66,R|8207],7:[60,R|U|8192],
48:[0,Y|GA|8192],49:[3,Y|GA|8192],50:[76],51:[2,Y|GA|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|tA|4096],1:[20,R|tA|4096],2:[37,R|tA|4096],3:[38,R|tA|4096],4:[14,R|tA|4096],5:[17,R|tA|4096],6:[23,R|tA|4096],7:[26,R|tA|4096]},219:{0:[4,R|tA|4096],2:[5,R|tA|8192],3:[6,R|tA|8192],5:[0,R|xA|4096],7:[2,R|xA|8192],64:[57],65:[55],66:[64],
67:[53],68:[78,zB],115:[79,Z]},220:{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|GA|8192,Y|FA|4096],49:[18,Y|GA|8192,Y|FA|4096],50:[34,Y|GA|4096],51:[35,Y|GA|4096],52:[15,Y|GA|8192,Y|FA|4096],53:[12,Y|GA|8192,Y|FA|4096],54:[24,Y|GA|8192,Y|FA|4096],55:[21,Y|GA|8192,Y|FA|4096]},221:{0:[0,R|wA|4096],2:[1,R|wA|8192],3:[2,R|wA|8192],4:[71,R|4111],6:[69,R|8207],7:[62,R|U|8192],48:[74,Y|GA|4096],49:[3,Y|GA|
8192],50:[1,Y|GA|4096],51:[2,Y|GA|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|GA|8192,Y|FA|4096],49:[19,Y|GA|8192,Y|FA|4096],50:[35,Y|GA|4096],51:[36,Y|GA|4096],52:[16,Y|GA|8192,Y|FA|4096],53:[13,Y|GA|8192,Y|FA|4096],54:[25,Y|GA|8192,Y|FA|4096],55:[22,Y|GA|8192,Y|FA|4096]},223:{0:[4,R|U|4096],2:[5,R|U|8192],3:[6,R|U|8192],4:[7,R|yA|4096],5:[4,R|vA|4096],6:[8,R|yA|8192],7:[6,R|vA|8192],48:[75,Y|
GA|4096],49:[3,Y|GA|8192],50:[2,Y|GA|4096],51:[2,Y|GA|4096],52:[80,zB]}},cA=[[[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|BA|4096],[99,R|S|X,W|BA|4096],[5,R|S|X,W|BA|4096],[120,R|S|X,W|BA|4096],[7,R|S|X,W|
BA|4096],[154,R|S|X,W|BA|4096],[162,R|S|X,W|BA|4096],[24,R|S|4096,W|BA|4096]],[[115,R|V|X|zB,W|V|4096],[116,R|V|X|zB,W|V|4096],[109,R|V|X|zB,W|V|4096],[110,R|V|X|zB,W|V|4096],[140,R|V|X|zB,W|V|4096],[142,R|V|X|zB,W|V|4096],my,[119,R|V|X|zB,W|V|4096]],[[115,R|S|X|zB,W|V|4096],[116,R|S|X|zB,W|V|4096],[109,R|S|X|zB,W|V|4096],[110,R|S|X|zB,W|V|4096],[140,R|S|X|zB,W|V|4096],[142,R|S|X|zB,W|V|4096],my,[119,R|S|X|zB,W|V|4096]],[[115,R|V|X,AA|V|4096],[116,R|V|X,AA|V|4096],[109,R|V|X,AA|V|4096],[110,R|V|X,
AA|V|4096],[140,R|V|X,AA|V|4096],[142,R|V|X,AA|V|4096],my,[119,R|V|X,AA|V|4096]],[[115,R|S|X,AA|V|4096],[116,R|S|X,AA|V|4096],[109,R|S|X,AA|V|4096],[110,R|S|X,AA|V|4096],[140,R|S|X,AA|V|4096],[142,R|S|X,AA|V|4096],my,[119,R|S|X,AA|V|4096]],[[115,R|V|X,kB|4096],[116,R|V|X,kB|4096],[109,R|V|X,kB|4096],[110,R|V|X,kB|4096],[140,R|V|X,kB|4096],[142,R|V|X,kB|4096],my,[119,R|V|X,kB|4096]],[[115,R|S|X,kB|4096],[116,R|S|X,kB|4096],[109,R|S|X,kB|4096],[110,R|S|X,kB|4096],[140,R|S|X,kB|4096],[142,R|S|X,kB|4096],
my,[119,R|S|X,kB|4096]],[[155,R|V|4096,W|V|4096],my,[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],my,[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],my,my,my,my,my,my],[[44,R|S|X],[31,R|S|X],[17,R|S|4096],[17,R|sA|4096],[57,R|S|4096],[57,R|sA|4096],[108,R|S|4096],my],[],[[145,R|U|8192|zB],[153,R|U|8192|zB],[78,R|U|4096|zB],[89,R|U|4096|zB],[156,R|U|4096|zB],[157,R|U|4096|zB],my,my],[[139,R|U|8192|zB],
[144,R|U|8192|zB],[75,R|U|4096|zB],[77,R|U|4096|zB],[146,R|U|8192|zB],my,[79,R|U|4096|zB],my],[my,my,my,my,[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]]],ry={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]},vy={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},wy={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};ab(function(){for(var a=Ab(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new fy(d);zb(d,c)}});
function AB(a,b,c){nb.call(this,"Computer",a,67108864);this.ea.Yb=!1;BB(this,b);this.N=zd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=CB;this.L=null;this.I=this.Z=!1;this.da=zd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=DB(this);if(this.H=vb("CPU",this.id)){this.ba=vb("Debugger",this.id);this.G=[];for(b=null;b=Xb(this,"Video",b);)this.G.push(b);this.ka=new mc({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=tb(this.id);if((this.D=
vb("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.2\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=zd(this,"state")||(f=!0,a.state))b=this.W=a,f||(this.I=!0,this.A=CB),this.A&&(this.M=new Xf(this,
"1.34.2"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=EB(this))&&(this.I=!0);if(b){var g=this;La(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?": "+Ca(b):"")+")")):(g.L=b,g.Z=!0);Jb(g)})}else Jb(this);this.na.power||(this.N=!0);!c&&this.N&&FB(this,this.Lf)}else hb("Unable to find CPU component")}ba(AB,nb);
function BB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){hb(d.message+" ("+c+")")}}a.J=b}function zd(a,b,c){var d=b.toLowerCase(),d=Va(b)||Va(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 FB(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ib(f)){Ib(f,function(){FB(a,b,c)});return}}b.call(a,c)}
function GB(a,b){var c=new Xf(a,"1.34.2",HB);if(c.load()&&IB(c)){var d=c.get(JB),e=b?b.get(JB):"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=AB.prototype;
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?KB:CB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Xf(this,"1.34.2");if(a==LB)b=!0;else if(a>CB){if(d.load(this.L)){this.F=new Xf(this,"1.34.2",MB);this.F.load()&&(NB(this,d),a=OB,PB(this.F));this.F.set(JB,Fa());QB(this.F);var e=this.A&&!this.I;if(a==KB||sb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=IB(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&&(Ta(RB,""),this.B=null)):this.P(f+": "+g),PB(d),d.load()?(c=IB(d),e=!0):c=!1))}e&&GB(this,c?d:null)}else a==OB&&d.clear()}else GB(this);delete this.L;delete this.M}e=tb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=SB(this,g,d,b,c));b=[d,a,c];a!=LB?FB(this,this.mj,b):this.mj(b)}};
function SB(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&&(hb("Unable to restore state for "+b.type),a.W&&!a.Z?(c.clear(),a.A=CB,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&&(SB(this,this.H,b,c,a),this.H.lf());this.Y&&(NB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
function NB(a,b){if(sb("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.2"};d.url=a.da;d.user=c;d.type="bug";d.data=b;La("http://www.pcjs.org/api/v1/report",d,!0)}}
function hB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Xf(a,"1.34.2"),g=new Xf(a,"1.34.2",HB),h=Fa();g.set(JB,h);f.set(JB,h);f.set(TB,"1.34.2");f.set(UB,window?window.location.href:null);f.set(VB,Na());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=tb(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&&WB(a,
a.B,f.toString()),QB(g)&&QB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==XB),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&&(Mb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(Mb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=tb(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=tb(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?gB(d,!1,!0):EB(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=sb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");gB(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.O=!0),d.Lf(BB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(xa(Ma(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.na[b]=c,c.onclick=function(){var a=CB(d,!0);if(a){var b=!!(d.A&&!d.K||d.W),c=gB(d,b);b?VB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
function CB(a,b){var c=a.B;c||((c=Ra(QB),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=hC(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
function hC(a,b){a.B=null;b=La(Ma()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(QB,b.data),a.B=b.data)}catch(d){hb(d.message+" ("+c+")")}return a.B}function DB(a){var b=null;a.B&&(b=Ma()+"/api/v1/user?req=load&user="+a.B+"&state="+iC(a,"1.34.2"));return b}
function VB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=iC(a,"1.34.2");d.data=c;b=La(Ma()+"/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),Ta(QB,""),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?hB(d,!1,!0):FB(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=sb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");hB(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.O=!0),d.Lf(CB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(xa(Ma(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.na[b]=c,c.onclick=function(){var a=DB(d,!0);if(a){var b=!!(d.A&&!d.K||d.W),c=hB(d,b);b?WB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
function DB(a,b){var c=a.B;c||((c=Ra(RB),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=iC(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
function iC(a,b){a.B=null;b=La(Ma()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(RB,b.data),a.B=b.data)}catch(d){hb(d.message+" ("+c+")")}return a.B}function EB(a){var b=null;a.B&&(b=Ma()+"/api/v1/user?req=load&user="+a.B+"&state="+jC(a,"1.34.2"));return b}
function WB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=jC(a,"1.34.2");d.data=c;b=La(Ma()+"/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),Ta(RB,""),a.B=null)}}
function Xb(a,b,c){a=tb(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 Nd(a,b){a.H&&(a=a.H,a.tj&&(b||!a.ea.vb||a.ea.kj)&&(Ig(a,"EAX",a.D),Ig(a,"EBX",a.G),Ig(a,"ECX",a.I),Ig(a,"EDX",a.L),Ig(a,"ESP",z(a)),Ig(a,"EBP",a.M),Ig(a,"ESI",a.K),Ig(a,"EDI",a.J),Ig(a,"CS",a.Z.U),Ig(a,"DS",a.Ca.U),Ig(a,"SS",a.Y.U),Ig(a,"ES",a.oa.U),Ig(a,"EIP",A(a)),b=re(a),Ig(a,"PS",b),Ig(a,"V",b&2048),Ig(a,"D",b&1024),Ig(a,"I",b&512),Ig(a,"T",b&256),Ig(a,"S",b&128),Ig(a,"Z",b&64),Ig(a,"A",b&16),Ig(a,"P",b&4),Ig(a,"C",b&1),80386==a.ca&&(Ig(a,"FS",a.Ga.U),Ig(a,"GS",a.Ha.U),Ig(a,"CR0",a.qa),
Ig(a,"CR2",a.Cd),Ig(a,"CR3",a.Wc))),b=a.na.speed)&&(b.textContent=a.ea.vb&&a.T.Wd?a.T.Wd.toFixed(2)+"Mhz":"Stopped")}
function Ud(a,b){for(var c=0;c<a.G.length;c++)zs(a.G[c],b);if(a.D&&(a=a.D,a.oa)){gc(a,hc,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(Ga(cc,f,0,0,e.type)),c.Hd++),f++;a.A=c;a.da=a.A.Hd*a.ka.B/(bc*lc);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=Ha(cc.type,h),h=Ha(cc.Hk,h);if(f!=e||h!=g+1)(g=c-b)&&(d+=jc(a,
b,g,e)),e=f,b=c;g=h}d+=jc(a,b,c-b,e);e=a.A.Bl!=d;a.A.Bl=d;if(e){e=new Ub(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(Vb(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=vd[e.type])||(g=new Tb),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 "+kc),f=g,b.C=c,b.I=f,b=a,e=vc[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,ic(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else ic(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.ya,a.Aa);a.oa=!1}}var LB="failsafe",GB="validate",IB="timestamp",SB="version",TB="url",UB="browser",QB="user",KB=-1,BB=0,JB=1,NB=2,WB=3;
ab(function(){for(var a=Ab(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=wb(c),c=Ab(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=wb(f),g=new zB(g,d,!0);zb(g,f);g.N&&EB(g,g.Lf)}});bb.show.push(function(){for(var a=Ab(document,"pcx86","computer"),b=0;b<a.length;b++){var c=wb(a[b]);(c=vb("Computer",c.id))&&c.ga&&!c.ea.Yb&&c.Lf(KB)}});
bb.exit.push(function(){for(var a=Ab(document,"pcx86","computer"),b=0;b<a.length;b++){var c=wb(a[b]);(c=vb("Computer",c.id))&&c.ea.Yb&&gB(c,!(!c.A||c.K),!0)}});function Xf(a,b,c){this.id=a.id;this.ba=a.ba;this.A="";this.state={};this.B=this.C=!1;this.key=iC(a,b,c);OB(this,a.Ok)}l=Xf.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:Oa()&&(a=Ra(this.key))?(this.A=a,this.B=!0):!1};function HB(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){hb(c.message||c),b=!1}return b}function PB(a){var b=!0;if(Oa()){var c=JSON.stringify(a.state);Ta(a.key,c)||(hb("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 OB(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){OB(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function iC(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var jC=0;
function kC(a,b,c,d,e,f){e("Loading "+a+"...");La(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):lC(h,a,b,c,d,e,f)})}
function lC(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(pb(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?mC(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function mC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");La(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);mC(a,b,c)}})}else c(a,null)}
function nC(a,b,c,d){function e(a){if(void 0===h){var b=g&&Ab(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ya(a))}function f(a){e("Error: "+a);k&&(--jC||jb(!0));k=!1}var g,h,k=!0;jC++;qb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));p.appendChild(w)}c||
(c="/versions/pcx86/1.34.2/components.xsl");m=function(d,h){h?kC(c,null,null,!1,e,function(d,k){k?(pb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--jC||jb(!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),--jC||jb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?kC(b,a,d,!0,e,m):lC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function oC(a,b,c,d){jb(!1);return nC(a,b,c,d)}window.embedPC=oC;window.embedPCx86=oC;window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
g),b.D.rotate(-Math.PI/2),c=g=0),h<b.J&&(b.J=h,b.M=b.J+"px "+kc),f=g,b.C=c,b.I=f,b=a,e=vc[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,ic(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else ic(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.ya,a.Aa);a.oa=!1}}var MB="failsafe",HB="validate",JB="timestamp",TB="version",UB="url",VB="browser",RB="user",LB=-1,CB=0,KB=1,OB=2,XB=3;
ab(function(){for(var a=Ab(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=wb(c),c=Ab(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=wb(f),g=new AB(g,d,!0);zb(g,f);g.N&&FB(g,g.Lf)}});bb.show.push(function(){for(var a=Ab(document,"pcx86","computer"),b=0;b<a.length;b++){var c=wb(a[b]);(c=vb("Computer",c.id))&&c.ga&&!c.ea.Yb&&c.Lf(LB)}});
bb.exit.push(function(){for(var a=Ab(document,"pcx86","computer"),b=0;b<a.length;b++){var c=wb(a[b]);(c=vb("Computer",c.id))&&c.ea.Yb&&hB(c,!(!c.A||c.K),!0)}});function Xf(a,b,c){this.id=a.id;this.ba=a.ba;this.A="";this.state={};this.B=this.C=!1;this.key=jC(a,b,c);PB(this,a.Ok)}l=Xf.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:Oa()&&(a=Ra(this.key))?(this.A=a,this.B=!0):!1};function IB(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){hb(c.message||c),b=!1}return b}function QB(a){var b=!0;if(Oa()){var c=JSON.stringify(a.state);Ta(a.key,c)||(hb("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 PB(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){PB(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function jC(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var kC=0;
function lC(a,b,c,d,e,f){e("Loading "+a+"...");La(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):mC(h,a,b,c,d,e,f)})}
function mC(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(pb(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?nC(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function nC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");La(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);nC(a,b,c)}})}else c(a,null)}
function oC(a,b,c,d){function e(a){if(void 0===h){var b=g&&Ab(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ya(a))}function f(a){e("Error: "+a);k&&(--kC||jb(!0));k=!1}var g,h,k=!0;kC++;qb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));p.appendChild(w)}c||
(c="/versions/pcx86/1.34.2/components.xsl");m=function(d,h){h?lC(c,null,null,!1,e,function(d,k){k?(pb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--kC||jb(!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),--kC||jb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?lC(b,a,d,!0,e,m):mC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function pC(a,b,c,d){jb(!1);return oC(a,b,c,d)}window.embedPC=pC;window.embedPCx86=pC;window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Cb[a]){for(var c=!0,d=Cb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var w=b[p];if('"'==w||"'"==w)m&&w!=m?k+=w:(m?m=null:m=w,k&&(h.push(k),k=""));else{if(!m){if("\r"==w||"\n"==w)w=";";if(" "==w||"\t"==w||";"==w){k&&(h.push(k),k="");";"==w&&h.length&&(g.push(h),h=[]);continue}}k+=w}}k&&h.push(k);h.length&&g.push(h);d[e]=g;Bb(a)||(c=!1)}return c};window.enableEvents=jb;window.sendEvent=lb;
function pC(a,b,c,d){if(!c&&b){d.push(b);a=qb[d[0]];b=null;for(var e in a)if(xa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?La(b,null,!0,function(a,b){qC(b,d)}):qC(null,d)}else hb("Error ("+c+") requesting "+a)}
function qC(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=qb[f],k={},m;for(m in h){var p=h[m],w=wa(m);if("xml"==w){for(w=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=w.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=va(m)}else"xsl"==w&&(e=m=va(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 qC(a,b,c,d){if(!c&&b){d.push(b);a=qb[d[0]];b=null;for(var e in a)if(xa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?La(b,null,!0,function(a,b){rC(b,d)}):rC(null,d)}else hb("Error ("+c+") requesting "+a)}
function rC(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=qb[f],k={},m;for(m in h){var p=h[m],w=wa(m);if("xml"==w){for(w=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=w.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=va(m)}else"xsl"==w&&(e=m=va(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=Xa(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.",hb(a)):hb("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=vb("Computer",a),e=vb("Debugger",a);if(d){var f=gB(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.34.2/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;La(b,null,!0,function(c,d,e){pC(c,d,e,[a,va(b,!0),g,f])});return!0}hb("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b,c){var d=vb("Computer",a),e=vb("Debugger",a);if(d){var f=hB(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.34.2/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;La(b,null,!0,function(c,d,e){qC(c,d,e,[a,va(b,!0),g,f])});return!0}hb("Unable to identify machine '"+a+"'");return!1};})();