Documented a (mildly) interesting MACRO-10 bug

This commit is contained in:
Jeff 2017-03-30 12:43:24 -07:00 committed by Jeff Parsons
commit c6de12287c
5 changed files with 526 additions and 490 deletions

View file

@ -82,15 +82,15 @@ l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,1,d.A)&&d.ea(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,2,d.A)&&d.ea(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ue=function(a,b){this.g[a]=b;this.Ea=!0};l.we=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ea=!0};var vc=0,wc=2,Sb=["NONE","RAM","ROM","VID","H/W"],lc=0,Bc=[],Ac=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],Ec=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(Fb)var zc=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],yc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function Hc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.ma=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);zb(this)}aa(Hc,u);l=Hc.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Ic.length;b++)(c=this.P[Ic[b]])&&this.R.da(null,Ic[b],c);this.W=Jb(a,"ChipSet");a=Jc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);zb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Ic.length;b++)(c=this.P[Ic[b]])&&this.R.da(null,Ic[b],c);this.V=Jb(a,"ChipSet");a=Jc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);zb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Kc(this);if(!this.restore(a))return!1;Lc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Mc(a),a.na&&(b=a.na,a.na=null,Nc(a,b))):this.i("No debugger detected")}Oc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Lc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.ya&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.ya-a.ka)}function Pc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Qc(a)&&(a.na=a.sa=-1,Lc(a),a.ea(),c=!0);c&&a.i(Qc(a)+" cycles: checksum="+n(a.xa))}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.ea():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Rc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Sc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Tc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Uc);a.Na=Math.floor(a.Aa/Uc*c);b||(a.ta=a.Na);a.Va=0}function Qc(a){return a.ka+a.X+a.fa-a.b}function Kc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Lc(a);Rc(a,1)}
function Rc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Sc(a,a.X);a.X=0;a.V=ib();a.ba=0;Tc(a);return d}function Vc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Wc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Xc(a))}function Xc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Bb(this,!0)){if(!this.G.ma){Rc(this);this.R&&this.R.start(this.V,Qc(this));this.G.ma=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Yc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Tc(this,!0);this.Da=0;this.Ma=ib();this.ba&&(a=this.Ma-this.ba,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Xc(this,!0);
this.Da+=c;this.X+=c;Pc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=Zc&&(this.R&&Yc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.ea();Oc(this);this.R&&this.R.stop(ib(),Qc(this));Bb(this,!1);xb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ba=ib();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ba-this.Ma;if(f=this.ba-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Rc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ba+=e;c(d,e)}else Oc(this),this.R&&this.R.stop(ib(),Qc(this))};l.Eb=function(){return 0};l.ea=function(a){Ab(this,!0);Xc(this);Sc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Oc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)$c(c.A[d],b);Yc(a.R,b)}}var Uc=30,Zc=15,Ic=["power","reset"];
function Rc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Sc(a,a.X);a.X=0;a.W=ib();a.ba=0;Tc(a);return d}function Vc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Wc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Xc(a))}function Xc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Bb(this,!0)){if(!this.G.ma){Rc(this);this.R&&this.R.start(this.W,Qc(this));this.G.ma=!0;this.G.Qb=!0;this.V&&this.V.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Yc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Tc(this,!0);this.Da=0;this.Ma=ib();this.ba&&(a=this.Ma-this.ba,a>this.jb&&(this.W+=a,this.W>this.Ma&&(this.W=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Xc(this,!0);
this.Da+=c;this.X+=c;Pc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=Zc&&(this.R&&Yc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.ea();Oc(this);this.R&&this.R.stop(ib(),Qc(this));Bb(this,!1);xb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ba=ib();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ba-this.Ma;if(f=this.ba-this.W)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Rc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.W-=e),e=0;this.Va+=this.Da;this.ba+=e;c(d,e)}else Oc(this),this.R&&this.R.stop(ib(),Qc(this))};l.Eb=function(){return 0};l.ea=function(a){Ab(this,!0);Xc(this);Sc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.V&&this.V.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Oc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)$c(c.A[d],b);Yc(a.R,b)}}var Uc=30,Zc=15,Ic=["power","reset"];
function ad(a){var b=+a.model||8080;Hc.call(this,a,1E6);this.xb=b;this.gb=bd;Kc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.Ha=[];this.hb=0;od(this)}aa(ad,Hc);function pd(a,b){a.Ha.push(b)}l=ad.prototype;l.reset=function(){this.G.ma&&this.ea();od(this);Kc(this);this.G.error=!1;Hc.prototype.reset.call(this)};function od(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);qd(a,0);a.S=0}function rd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+sd(this)|0};l.save=function(){var a=new td(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,sd(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,Zb(this.I));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);qd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Rc(this,b[3]);a:{b=this.I;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
@ -126,13 +126,13 @@ this.j);A(this,40);this.b-=11},function(){Ed(this)||(A(this,Pd(this)),this.b-=6)
(A(this,Pd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Ed(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Qd(this)},function(){var a=G(this);Ed(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Xd,function(){Ld(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Yd(a){u.call(this,"ChipSet",a,32768);var b=a.model;b&&!Zd[b]&&Ya("Unrecognized ChipSet model: "+b);this.g=Zd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);zb(this)}aa(Yd,u);l=Yd.prototype;l.da=function(){return!1};
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.K=d;this.R=a;this.B=Jb(a,"Keyboard");this.C=Jb(a,"SerialPort");this.video=Jb(a,"Video");ac(b,this,this.g.Bb);ec(b,this,this.g.Cb);if(d){var e=this;$d(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(e.j[b]);e.K.i(a)})}};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
l.save=function(){var a=new td(this);switch(this.g.pa){case ae.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.H]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case ae.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.H=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ba;x(this,a,null,b,"STATUS0",c,!0);return c};
l.save=function(){var a=new td(this);switch(this.g.pa){case ae.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.V,this.D]),a.set(1,[this.F,this.H]),a.set(2,[this.w,this.O,this.X,this.W]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case ae.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.V=b[0],this.D=b[1],b=a[1],this.F=b[0],this.H=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.W=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ba;x(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;x(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.fa;x(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;x(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){x(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){x(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){x(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){x(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){x(this,a,b,c,"WATCHDOG",null,!0)};function be(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Md=function(a,b){var c=this.D,c=c&~J.za.jc;if((Qc(this.u)&64)<<1&&(c|=J.za.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ka.nd:break;case J.Ba.Ka.Lc:this.M=this.M<<1|d;break;case J.Ba.Ka.Rc:d=be(this);this.j[d]=J.Ba.vb;Db(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ka.Mc:this.b=this.b<<1|d;break;case J.Ba.Ka.rd:d=be(this);e=this.b&J.Ba.vb;this.j[d]=e;Db(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ka.ld:d=be(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Db(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ka.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Db(this,"doNVRCommand(): unrecognized command "+pa(e))}}c&=~J.za.kc;this.S&&(c|=J.za.kc);c&=~J.za.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Qc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.za.dc);c&=~J.za.sc;this.C&&this.C.ia&ce&&(c|=J.za.sc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.W=b};l.de=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){x(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Db(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?$c(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
l.ae=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.V=b};l.de=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){x(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Db(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?$c(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.W=a}};
l.be=function(a,b,c){x(this,a,b,c,"DC011");b&J.La.kd?(b&=J.La.oc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.La.oc?50:60,Db(a,"updateRate("+b+")"),a.jb=b))):(b&=J.La.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.La.Wb?132:80,b=this.video,Db(b,"updateDimensions("+a+","+(80<a&&this.D&J.za.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,de(b)&&ee(b))))};
var ae={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,za:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},La:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ka:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},Zd={SI1978:ae,VT100:J};ae.INIT=[[ae.pd.bb,ae.Oa.bb,ae.qd.bb,0,0,0,0]];
@ -152,13 +152,13 @@ p+=String.fromCharCode(v)}oe(a,p);break;default:c=!1}c?Wd.call(d):e&&(a.i("\nCP/
function qe(a){u.call(this,"Keyboard",a,65536);(a=a.model)&&!Me[a]&&Ya("Unrecognized Keyboard8080 model: "+a);this.b=Me[a]||{};this.reset();zb(this)}aa(qe,u);l=qe.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Oa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Ne(d,16,!0,!0):Ne(d,16,!1),Ne(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Oe(d,a,!0)},c.onkeyup=function(a){return Oe(d,a,!1)}):(c.onkeydown=function(a){return Pe(d,a,!0)},
c.onkeyup=function(a){return Pe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Qe|Re)||(d.g|=Re,Ne(d,20,!0),Se(d)):a>=m.yc&&a<=m.z&&d.g&Re&&(d.g&=~Re,Ne(d,20,!1),Se(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Te(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ue:20==b&&(e=Re);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ve(a,b,d)}Ne(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Vc(this.u,function(){We(e)});this.W=Jb(a,"ChipSet");this.C=Jb(a,"SerialPort");ac(b,this,this.b.Bb);ec(b,this,this.b.Cb)};
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ue:20==b&&(e=Re);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ve(a,b,d)}Ne(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Vc(this.u,function(){We(e)});this.V=Jb(a,"ChipSet");this.C=Jb(a,"SerialPort");ac(b,this,this.b.Bb);ec(b,this,this.b.Cb)};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new td(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Xe.pa:return!0;case K.pa:return this.D=b[0],Se(this,this.D&K.Ca.ec),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1};function Se(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.fb)if(c="led-"+d,c=a.P[c]){var e=a.b.fb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Re?"#"+n(65280,6):"#000000"}
function Ve(a,b,c,d){var e=0;switch(b){case 16:e=d?Ye:Ze;break;case 17:e=d?$e:Ue;break;case 18:e=d?af:bf;break;case 91:e=d?cf:df;break;case 20:e=Re,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function Pe(a,b,c){var d=!0,e=b.keyCode,e=la[e]||e;c=Ve(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(ef|ff)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|ff:a.g&~ff)),d=Ne(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|gf)&&b.preventDefault&&b.preventDefault());return d}
function Oe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Sa[e],g;if(g=f){a:{for(var h in a.b.sb)if(a.b.sb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Ne(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Ne(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&We(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<hf)return a.j[e].yb=!0,We(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=ae.Oa.ed;break;case "2p":d=ae.Oa.jd;break;case "coin":d=ae.Oa.Pc;break;case "left":d=ae.Oa.gd;break;case "right":d=ae.Oa.hd;break;case "fire":d=ae.Oa.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
function Ne(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&We(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<hf)return a.j[e].yb=!0,We(a),!0;a.j.splice(e,1)}if(a.V){d=0;switch(b){case "1p":d=ae.Oa.ed;break;case "2p":d=ae.Oa.jd;break;case "coin":d=ae.Oa.Pc;break;case "left":d=ae.Oa.gd;break;case "right":d=ae.Oa.hd;break;case "fire":d=ae.Oa.fd}d&&(a=a.V,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function We(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=hf-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Ne(a,d,!1);b=0;continue}}b++}0<=c&&Wc(a.u,a.L,c)}l.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Rd(this.u,1));x(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ee=function(a,b,c){x(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Qc(this.u);Se(this,b&K.Ca.ec);b&K.Ca.od&&(this.w=0,Rd(this.u,1))};var Ye=1,Ze=2,Qe=3,$e=4,Ue=8,gf=12,af=16,bf=32,ef=48,cf=64,df=128,Re=512,ff=4096,hf=50,jf={};jf[m.ab]=37;jf[m.Fb]=39;jf[m.Hb]=32;
var Xe={pa:1978.1,Sa:{},sb:{},Tb:jf,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.mc]=5,M[m.lc]=6,M[m.xc]=7,M[m.qc]=8,M[m.uc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.ac]=22,M[m.rc]=23,M[m.nc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
@ -168,140 +168,140 @@ M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]
229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ca:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ca.bd,l3:K.Ca.ad,l2:K.Ca.$c,l1:K.Ca.Zc,locked:K.Ca.cd,local:K.Ca.fc,online:~K.Ca.fc,"caps-lock":Re};var Me={SI1978:Xe,VT100:K};
K.INIT=[[K.Ca.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:qe.prototype.Nd};K.Cb={130:qe.prototype.ee};Ua(function(){for(var a=qb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new qe(d);pb(d,c)}});
function kf(a,b,c,d,e){u.call(this,"Video",a,262144);var f=this;this.Ta=Oa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.H=a.screenHeight;this.ka=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&lf[h.toUpperCase()]||mf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.H;this.Ha=this.M/this.O|0;this.Ma=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Pa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.W=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.H;this.Ha=this.M/this.O|0;this.Ma=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Pa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.H),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.H/this.M,this.M/this.H));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){nf(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){nf(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=ra(this.S)&&(this.S=ta()+"/api/v1/dump?file="+this.S+"&format=bytes"),Fa(this.S,null,!0,function(a,b,c){of(f,a,b,c)});this.Aa={}}aa(kf,u);
function de(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Nb(a.I,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,pf(a,a.L>>1)):pf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+qf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==rf&&(a.U[a.X+sf]=[255,255,0,255],a.U[a.X+tf]=[0,255,0,255]);a.Y==uf&&(a.jb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=kf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;de(this);if(this.B=Jb(a,"Keyboard")){for(var e in this.Aa)this.B.da("led",e,this.Aa[e]);this.F&&this.B.da(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Vc(this.u,function(){$c(f)});Wc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||zb(this)};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;de(this);if(this.B=Jb(a,"Keyboard")){for(var e in this.Aa)this.B.da("led",e,this.Aa[e]);this.F&&this.B.da(this.Cd?"textarea":"canvas","screen",this.W)}var f=this;this.xb=Vc(this.u,function(){$c(f)});Wc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||zb(this)};
function of(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{gb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,ee(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&zb(a)}}
function ee(a){a.ba&&(a.Na=a.Y==uf,a.T[vf]=[wf(a,a.ga,a.ca),wf(a,a.ga,a.ca,a.ya)],a.T[xf]=[wf(a,2*a.ga,a.ca),wf(a,2*a.ga,a.ca,a.ya)],a.T[yf]=a.T[zf]=[wf(a,2*a.ga,2*a.ca),wf(a,2*a.ga,2*a.ca,a.ya)])}
function wf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),t=0;t<g;t++){for(var v=0,B=v;v<a.ca;v++)for(var y=t*e+(f+v&e-1),y=d&&8==v?255:a.ba[y],w=0;w<c/a.ca;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Af(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(t&15)*b,(t>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new td(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
function nf(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Db(a,"notifyFullScreen("+b+")")}function pf(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Af(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==rf&&(208<=c&&236>c?e=a.X+sf:28<=c&&72>c&&(e=a.X+tf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function $c(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Rd(a.u,2),c=!1):Rd(a.u,1):Rd(a.u,4));if(c&&a.W&&a.L){for(var d=a.I,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Wc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case uf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,t=c,v=d,B=a.O;for(v!=vf&&(B>>=1);;){var y=Ub(a.I,t++);if((y&Bf)==Bf){var w=Ub(a.I,t++),d=w&Cf,c=(w&Df)<<8|Ub(a.I,t),c=c+(w&Ef?
Ff:Gf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(t=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!t||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ca,L,ja,ua,na,Ma=y.ga,hc=y.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.Ha,ja=e*w.Ma,ua=w.Ha,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ca>w.ca&&(v==zf&&(T+=w.ca),hc=w.ca);C?C.drawImage(y.canvas,za,T,Ma,hc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,hc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;B=(1<<t)-1;a.yd&&(t=-t,v=16+t);for(;e<f;){w=Wb(a.I,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Af(a,a.Va,h++,k,za),C+=t;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.W&&this.W.focus()}return a};
function nf(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Db(a,"notifyFullScreen("+b+")")}function pf(a,b){a.gb=b;a.V=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Af(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==rf&&(208<=c&&236>c?e=a.X+sf:28<=c&&72>c&&(e=a.X+tf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function $c(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Rd(a.u,2),c=!1):Rd(a.u,1):Rd(a.u,4));if(c&&a.V&&a.L){for(var d=a.I,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Wc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case uf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,t=c,v=d,B=a.O;for(v!=vf&&(B>>=1);;){var y=Ub(a.I,t++);if((y&Bf)==Bf){var w=Ub(a.I,t++),d=w&Cf,c=(w&Df)<<8|Ub(a.I,t),c=c+(w&Ef?
Ff:Gf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(t=a.V&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!t||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ca,L,ja,ua,na,Ma=y.ga,hc=y.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.Ha,ja=e*w.Ma,ua=w.Ha,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ca>w.ca&&(v==zf&&(T+=w.ca),hc=w.ca);C?C.drawImage(y.canvas,za,T,Ma,hc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,hc,L,ja,ua,na))}h++}g++}e++}}a.V=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;B=(1<<t)-1;a.yd&&(t=-t,v=16+t);for(;e<f;){w=Wb(a.I,e);if(a.V&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Af(a,a.Va,h++,k,za),C+=t;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.V=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.H))}}var sf=0,tf=1,qf=2,mf=0,rf=1,uf=2,lf={SI1978:rf,VT100:uf},vf=96,xf=64,yf=32,zf=0,Bf=127,Df=15,Ef=16,Cf=96,Ff=8192,Gf=16384;
Ua(function(){for(var a=qb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ha().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Pa("aspect"));f&&.3<=f&&3.33>=f&&(Ta("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new kf(d,e,g,f,c);pb(d,c)}});
function Hf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=If;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Ra=this.H=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
function Hf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.W=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=If;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Ra=this.H=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(Hf,u);l=Hf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case If:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Jf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Jf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;var e=this;this.Y=Vc(this.u,function(){e.Ob()});this.Z=Vc(this.u,function(){Te(e)});this.W=Jb(a,"ChipSet");ac(b,this,Kf,this.U);ec(b,this,Lf,this.U);zb(this)};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;var e=this;this.Y=Vc(this.u,function(){e.Ob()});this.Z=Vc(this.u,function(){Te(e)});this.V=Jb(a,"ChipSet");ac(b,this,Kf,this.U);ec(b,this,Lf,this.U);zb(this)};
l.Fc=function(a){if(!this.b){var b=Jc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ya(c[0]);if(d!=this.cb)return;c=ya(c[1]);if(this.b=lb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.H=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.wa=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){Mf(this)};l.save=function(){var a=new td(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Mf(this,a[0])};
function Mf(a,b){var c=0;b||(b=Nf);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Of(a,b){var c=a.L&b;b&15||(c>>=4);b=Pf[c];c=((a.B&Qf)>>2)+6;a.B&Rf&&c++;c+=((a.B&Sf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Jf(a,b){Db(a,"receiveByte("+pa(b)+"), status="+pa(a.ia));return a.N||a.ia&Tf?!1:(a.M=b,a.ia|=Tf,Rd(a.u,a.X),!0)}
l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Jf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Wc(this.u,this.Y,Of(this,Uf)));return!0};l.ne=function(a){this.ia&=~Vf;a&64&&(this.ia|=Vf)};function Te(a,b){a.ia=a.ia|ce|Wf;b&&a.Ra&&a.Ra.call(a.b,b)}l.Hd=function(a,b){var c=this.M;x(this,a,null,b,"DATA",c);this.ia&=~Tf;return c};l.Gd=function(a,b){var c=this.ia;x(this,a,null,b,"STATUS",c);return c};
l.Vd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(ce|Wf);Db(this,"transmitByte("+pa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Aa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=xa("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
l.Vd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(ce|Wf);Db(this,"transmitByte("+pa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Aa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.W||8,c=b-this.w%b,this.W&&(a=xa("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Wc(this.u,this.Z,Of(this,Xf))};l.Ud=function(a,b,c){x(this,a,b,c,"CONTROL");this.F?(this.H&&(b^this.C)&(Yf|Zf)&&(a=0,this.D?(a|=b&Yf?32:0,a|=b&Zf?320:0):(a|=b&Yf?16:0,a|=b&Zf?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&$f&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){x(this,a,b,c,"BAUDRATES");this.L=b};
var Qf=12,Rf=16,Sf=192,Zf=2,Yf=32,$f=64,ce=1,Tf=2,Wf=4,Vf=128,Uf=15,Xf=240,Pf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Nf=[!1,0,0,133,142,39,238],If="buffer",Kf={0:Hf.prototype.Hd,1:Hf.prototype.Gd},Lf={0:Hf.prototype.Vd,1:Hf.prototype.Ud,2:Hf.prototype.Td};Ua(function(){for(var a=qb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hf(d);pb(d,c)}});
function ag(a){u.call(this,"Debugger",a);this.w=+a.base||16;this.oa=null;this.W=["{","}"];this.fa=["[","]"];this.O=this.ba=this.D=0;this.M=!1;this.b=-1;this.g=[];this.T={}}aa(ag,u);ag.prototype.Kb=function(){return-1};ag.prototype.Lb=function(){};
function ag(a){u.call(this,"Debugger",a);this.w=+a.base||16;this.oa=null;this.U=["{","}"];this.fa=["[","]"];this.O=this.ba=this.D=0;this.M=!1;this.b=-1;this.g=[];this.T={}}aa(ag,u);ag.prototype.Kb=function(){return-1};ag.prototype.Lb=function(){};
ag.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.M?a="end":a=this.g[this.b+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(ya(a.substring(d,f))),d=f+1}}return b};
function bg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function cg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=bg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(bg(e))}return!0}
function dg(a,b,c,d,e,f){var g,h,k,p=!1,t=0,v=[],B=[],y=a.w;for(a.w=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)t=eg(a,h,null,f,t);else if("{"==k){h=1;for(t=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;t=dg(a,b,t,c-1,a.w,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.w=2;continue}if("^O"==k){a.w=8;continue}if("^D"==k){a.w=10;continue}if(!(t&-1073741824)){if("+"==k)continue;if("-"==k){t=t<<2|1;continue}if("~"==k||"^-"==k){t=t<<2|2;continue}if("^L"==
k){t=t<<2|3;continue}}p=!0;break}if(void 0===t)if(null==a.oa&&f)a.oa=h,t=0;else{p=!0;f=!f;break}v.push(bg(t));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;B.length&&fg[k]<=fg[B[B.length-1]]&&cg(v,B,1);B.push(k);a.w="^_"==k?10:e;t=0}if(p||!cg(v,B)||1!=v.length)p=!0;p?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.w=y;return g}
function gg(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,p=e;k<b.length;){var t=b[k++];if(t==c){p=-1;break}if(!p)break;p--;t=t.charCodeAt(0);7==d?t&=127:t=t-32&63;h=bg(h*Math.pow(2,d)+t,d*e,!0)}if(0<=p){!1===f&&a.i("parse error ("+b+")");break}else b=b.substr(0,g)+hg(a,h,-1)+b.substr(k)}return b}
function ig(a,b,c){var d=void 0;a.oa=null;if(b){"{"!=a.W[0]&&(b=b.split(a.W[0]).join("{").split(a.W[1]).join("}"));b=gg(a,b,'"',7,5,c);if(!b)return d;b=gg(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=dg(a,b,0,b.length,a.w,c);void 0!==d&&!1===c&&jg(a,null,d)}return d}
function kg(a,b){var c,d=a.W[0],e=a.W[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=ig(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?hg(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
k){t=t<<2|3;continue}}p=!0;break}if(void 0===t)if(null==a.oa&&f)a.oa=h,t=0;else{p=!0;f=!f;break}v.push(bg(t));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;t="<"==a.U[0]?fg:gg;if(!t[k]){p=!0;break}B.length&&t[k]<=t[B[B.length-1]]&&cg(v,B,1);B.push(k);a.w="^_"==k?10:e;t=0}if(p||!cg(v,B)||1!=v.length)p=!0;p?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.w=y;return g}
function hg(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,p=e;k<b.length;){var t=b[k++];if(t==c){p=-1;break}if(!p)break;p--;t=t.charCodeAt(0);7==d?t&=127:t=t-32&63;h=bg(h*Math.pow(2,d)+t,d*e,!0)}if(0<=p){!1===f&&a.i("parse error ("+b+")");break}else b=b.substr(0,g)+ig(a,h,-1)+b.substr(k)}return b}
function jg(a,b,c){var d=void 0;a.oa=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=hg(a,b,'"',7,5,c);if(!b)return d;b=hg(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=dg(a,b,0,b.length,a.w,c);void 0!==d&&!1===c&&kg(a,null,d)}return d}
function lg(a,b){var c,d=a.U[0],e=a.U[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=jg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ig(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.O-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function eg(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.T[b],null==f&&(f=ma(b,1<b.length?a.w:10))),null!=f){for(;e;){switch(e&3){case 1:f=-bg(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=bg(f)}else d||a.i("invalid "+(c?c:"value")+": "+b);else d||a.i("missing "+(c||"value"));return f}
function jg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.w?hg(a,c,32,8,1)+" "+c+".":hg(a,c,32,16,1)+" "+hg(a,c,32,8,1)+" "+hg(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function lg(a,b){if(b)return jg(a,b,a.T[b]);var c=0;for(b in a.T)jg(a,b,a.T[b]),c++;return 0<c}
function hg(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.w){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=oa(b,2,a,"",e);break;case 8:(a=0<c?(c+2)/3|0:0)?12<a&&(a=12):(a=Math.abs(b),a=262143>=a?6:16777215>=a?8:12);b=oa(b,8,a,e?"0o":"");break;case 10:(e=0<c?Math.ceil(.3*c):0)?11<e&&(e=11):e=99999>=Math.abs(b)?5:11;b=oa(b,10,e);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var fg={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function mg(a){ag.call(this,a);this.style=ng;this.H=og();this.ta=og();this.S=og();this.B=[];this.j=this.L=this.A=[];pg(this);this.X=0;qg(this);this.ka={};rg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Nc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Nc(b,a)})}aa(mg,ag);l=mg.prototype;
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.R=a;(a=Jc(a,"messages"))&&rg(this,a);this.sa=sg;$d(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=tg(ug(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Sb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.pb)+" "+
function kg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.w?ig(a,c,32,8,1)+" "+c+".":ig(a,c,32,16,1)+" "+ig(a,c,32,8,1)+" "+ig(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function mg(a,b){if(b)return kg(a,b,a.T[b]);var c=0;for(b in a.T)kg(a,b,a.T[b]),c++;return 0<c}
function ig(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.w){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=oa(b,2,a,"",e);break;case 8:(a=0<c?(c+2)/3|0:0)?12<a&&(a=12):(a=Math.abs(b),a=262143>=a?6:16777215>=a?8:12);b=oa(b,8,a,e?"0o":"");break;case 10:(e=0<c?Math.ceil(.3*c):0)?11<e&&(e=11):e=99999>=Math.abs(b)?5:11;b=oa(b,10,e);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var gg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},fg={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function ng(a){ag.call(this,a);this.style=og;this.H=pg();this.ta=pg();this.S=pg();this.B=[];this.j=this.L=this.A=[];qg(this);this.X=0;rg(this);this.ka={};sg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Nc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Nc(b,a)})}aa(ng,ag);l=ng.prototype;
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.R=a;(a=Jc(a,"messages"))&&sg(this,a);this.sa=tg;$d(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=ug(vg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Sb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.pb)+" "+
q(t.size)+" "+p),c!=vc&&(c=-1),p=0);a+=d.I.w;e++}}});zb(this)};
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Nc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-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.P[b]=c,Sa(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";Nc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Sa(c,function(a){var b=!1;Ab(d,!0)||(Bb(d,!0),b=vg(d,a?1:0),Bb(d,!1));return b}),!0}return!1};l.Za=function(){this.V&&this.V.focus()};function tg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ia=function(a,b){var c=255,d=tg(a);-1!==d&&(c=Ub(this.I,d),b&&wg(a,b));return c};l.Gb=function(a,b){var c=65535,d=tg(a);-1!==d&&(c=Wb(this.I,d),b&&wg(a,b));return c};l.Xb=function(a,b,c){var d=tg(a);-1!==d&&(Xb(this.I,d,b),c&&wg(a,c),Oc(this.u,!0))};
l.Qc=function(a,b,c){var d=tg(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.H].qb(0,b>>8&255,d+1));c&&wg(a,c);Oc(this.u,!0)}};function og(a){return{J:a,Fa:!1}}function xg(a){return[a.J,a.Fa]}function yg(a){return{J:a[0],Fa:a[1]}}
function ug(a,b,c){var d;c=(c?a.H:a.ta).J;if(void 0!==b){d=b=kg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++){var f=a.B[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=og(d));break}}if(d=e)return d;c=ig(a,b)}null!=c&&(d=og(c));return d}function Wg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function wg(a,b){null!=a.J&&(a.J+=b||1)}function Yg(a){return n(a,4)}
function Zg(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 rg(a,b){a.K=a;a.ha=a.wd=536870912;a.Y=null;a.Z=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Hb)0<=Ea(b,c)&&(a.ha|=Hb[c],a.i(c+" messages enabled"))}function $d(a,b,c){for(var d in Hb)if(b==Hb[d]){a.ka[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ea($g,a):(c=Ea($g,a.substr(b,2)),0>c&&(c=Ea($g,a.substr(b,1))));return c};function ah(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case bh:case ch:case dh:case eh:case fh:case gh:case hh:case ih:c=2;break;case jh:case kh:case lh:case mh:case nh:case oh:case ph:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case bh:b=c.g;break;case ch:b=c.w;break;case dh:b=c.A;break;case jh:b=ud(c);break;case eh:b=c.B;break;case fh:b=c.C;break;case kh:b=wd(c);break;case gh:b=c.D;break;case hh:b=c.F;break;case lh:b=D(c);break;case ih:b=E(c,D(c));break;case mh:b=c.M;break;case nh:b=c.j;break;case oh:b=sd(c);break;case ph:b=sd(c)&255|c.g<<8}}return b};
function qh(a,b){b=kg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+ah(a,e)+b.substr(c+1+$g[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(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=ug(a,e))?(d=e+' "'+Zg(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=ug(a,e))?(wg(d),d=
e+' "'+Zg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Yg(og(this.u.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Xc(a),a.ta=0,Oc(a)))};
function Eb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+pa(d):"")+")"+(null!=g?": "+pa(g):"")+(null!=e?" at "+Yg(e):""))}
function qg(a){var b;if(Sd(a)){if(!a.F||!a.F.length){a.F=Array(rh);for(b=0;b<a.F.length;b++)a.F[b]=og();a.U=0;a.i("instruction history buffer allocated")}if(!a.C||!a.C.length)for(a.C=Array(256),b=0;b<a.C.length;b++)a.C[b]=[b,0]}else a.F&&a.F.length&&a.i("instruction history buffer freed"),a.U=0,a.F=[],a.C=[]}function sh(a,b){if(!th(a))return!1;a.u.tb(b);return!0}
function vg(a,b,c,d){if(!th(a))return!1;a.D=0;b||Sd(a)&&Td(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.D+=e,Sc(a.u,e,!0),Pc(a.u,e),a.O++)}catch(f){"number"!=typeof f&&(a.D=0,xb(a.u,f.stack||f.message))}!1!==d&&Oc(a.u);Mc(a,c||!1);return 0<a.D}l.ea=function(a){this.u&&this.u.ea(a)};function Mc(a,b){void 0===b&&(b=!0);a.H=og(a.u.j);b&&1!=a.N?uh(a):vh(a)}
function th(a){var b;if(b=a.u&&yb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Ab(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){qg(this);this.O=this.ba=0;this.Y=null;this.D=0;this.H=og(this.u.j);this.G.ma=!1;wh(this);a||Mc(this)};
l.save=function(){var a=new td(this);a.set(0,xg(this.H));a.set(1,xg(this.S));a.set(2,[this.g,this.M,this.ha]);a.set(3,this.B);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.H=yg(a[b++]),this.S=yg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.M=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};l.start=function(a,b){this.N||this.i("running");this.G.ma=!0;this.Aa=a;this.Da=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.D=b-this.Da;if(!this.N){b="stopped";if(this.D){a-=this.Aa;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Sd(this)&&(b+=this.O+" opcodes, ",this.ba-=this.O,this.O=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Mc(this,!0);this.Za();wh(this,this.u.j)}};function Sd(a){return 1<a.j.length||!!a.X}
function Td(a,b,c){var d=a.u;if(0<c&&(a.X&&!--a.X||Gc(a,b,1,a.j)))return!0;0<=c&&a.C.length&&(a.O++,b=Ub(a.I,b),null!=b&&(a.C[b][1]++,b=a.F[a.U],b.J=d.j,b.Fa=!1,++a.U==a.F.length&&(a.U=0)));return!1}function cc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function gc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function pg(a){var b,c;a.j=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];var d=a.I;Fc(d.b[tg(c)>>>d.g],!1)}a.L=["br"];if(a.A)for(b=1;b<a.A.length;b++)c=a.A[b],d=a.I,Fc(d.b[tg(c)>>>d.g],!0);a.A=["bw"];a.xa=0}l.Pa=function(a,b,c){var d=!0;c||xh(this,a,b,!1,!0);if(a!=this.j){var e=tg(b);if(-1===e)this.i("invalid address: "+Yg(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Pa(e&f.j,a==this.A)}}d&&(a.push(b),c?b.Fa=!0:(yh(this,a,a.length-1,"set"),qg(this)));return d};
function xh(a,b,c,d,e){var f=!1;c=tg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==tg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||yh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Fc(d.b[c>>>d.g],b==a.A));h.Fa||qg(a);break}}return f}function zh(a,b){for(var c=1;c<b.length;c++)yh(a,b,c);return b.length-1}function yh(a,b,c,d){c=b[c];a.i(b[0]+" "+Yg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function wh(a,b){if(void 0!==b)Gc(a,b,1,a.j,!0),a.N=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!xh(a,a.j,c,!0))break;b=0}}}
function Gc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=tg(h),p=0;p<c;p++)if(b+p==k){var t,f=!0;h.Fa&&(xh(a,d,h,!0),e=!0);if(t=h.sd){for(var f=!1,v=0;v<t.length;v++)if(!Ah(a,t[v],!0)){if(t[v].indexOf("if")){f=!0;break}for(var B=v+1;B<t.length&&t[B].indexOf("else");B++)v++;if(B==t.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||yh(a,d,g,"hit");break}}}a.xa--;return f}
function Bh(a,b,c,d){for(var e=og(b.J),f=a.Ia(b,1),g=a.sa[f],h="",k=(a.style!=Ch?Dh:Eh)[g[0]],p=g.length-1,t=Fh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==ng)){var w=v&Gh;if(w){var C=v&Hh;C?t=C:v|=t;v&Ih||(v|=1==B?Jh:Kh);if(w&P)a:{y=a;w=v;C=b;switch(w&Hh){case Q:C=n(y.Ia(C,1),2);break;case Lh:C=n(y.Ia(C,1)<<24>>24,4);break;case Mh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Ch&&w&Nh?C="["+C+"]":w&Oh||(C=(y.style==ng?"$":"0x")+C);y=C}else w&Oh?(y=(v&Ph)>>8,
w=$g[y],a.style==Ch&&v&Nh&&(y==ih&&(w="HL"),w="["+w+"]"),y=w):w&Qh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Yg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ia(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=xa(f,10);g+=v&Rh?"*":" ";g+=xa(k,7);h&&(g+=" "+h);c&&(g=xa(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Qc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Sh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Ed(a.u);break;case "ZF":a=Dd(a.u);break;case "AF":a=Cd(a.u);break;case "PF":a=Bd(a.u);break;case "CF":a=zd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Th(a,b){return $g[b]+"="+ah(a,b)+" "}function Uh(a){return Th(a,bh)+Th(a,jh)+Th(a,kh)+Th(a,lh)+Th(a,mh)+Sh(a,"IF")+Sh(a,"SF")+Sh(a,"ZF")+Sh(a,"AF")+Sh(a,"PF")+Sh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Vh(a,b,c){var d=[],e=tg(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Ca(f.zc,[e-g],a.Ac);0<=e?Wh(a,b,e,d):c&&(e=~e,Wh(a,b,e-1,d),Wh(a,b,e,d));break}}return d}function Wh(a,b,c,d){var e={},f=a.B[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.B[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Xh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.C)if("clear"==b){for(b=0;b<a.C.length;b++)a.C[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.C.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Ch?Dh:Eh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.sa[f][0]]+" ").substr(0,5)+" ("+pa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Yh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return lg(a)||a.i("no variables"),!0;if(!c[2])return lg(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=ig(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Zh(a,b,c){var d=null;if(b=ug(a,b,!0)){var e=Vh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Yg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+Yg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function $h(a,b){switch(b[1]){case "8080":a.style=ng;break;case "8086":a.style=Ch;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Lc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Rc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.W=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Nc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-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.P[b]=c,Sa(c,function(){if(d.W){var a=d.W.value;d.W.value=
"";Nc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Sa(c,function(a){var b=!1;Ab(d,!0)||(Bb(d,!0),b=wg(d,a?1:0),Bb(d,!1));return b}),!0}return!1};l.Za=function(){this.W&&this.W.focus()};function ug(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ia=function(a,b){var c=255,d=ug(a);-1!==d&&(c=Ub(this.I,d),b&&xg(a,b));return c};l.Gb=function(a,b){var c=65535,d=ug(a);-1!==d&&(c=Wb(this.I,d),b&&xg(a,b));return c};l.Xb=function(a,b,c){var d=ug(a);-1!==d&&(Xb(this.I,d,b),c&&xg(a,c),Oc(this.u,!0))};
l.Qc=function(a,b,c){var d=ug(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.H].qb(0,b>>8&255,d+1));c&&xg(a,c);Oc(this.u,!0)}};function pg(a){return{J:a,Fa:!1}}function Vg(a){return[a.J,a.Fa]}function Xg(a){return{J:a[0],Fa:a[1]}}
function vg(a,b,c){var d;c=(c?a.H:a.ta).J;if(void 0!==b){d=b=lg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++){var f=a.B[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=pg(d));break}}if(d=e)return d;c=jg(a,b)}null!=c&&(d=pg(c));return d}function Yg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function xg(a,b){null!=a.J&&(a.J+=b||1)}function Zg(a){return n(a,4)}
function $g(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 sg(a,b){a.K=a;a.ha=a.wd=536870912;a.Y=null;a.Z=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Hb)0<=Ea(b,c)&&(a.ha|=Hb[c],a.i(c+" messages enabled"))}function $d(a,b,c){for(var d in Hb)if(b==Hb[d]){a.ka[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ea(ah,a):(c=Ea(ah,a.substr(b,2)),0>c&&(c=Ea(ah,a.substr(b,1))));return c};function bh(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case ch:case dh:case eh:case fh:case gh:case hh:case ih:case jh:c=2;break;case kh:case lh:case mh:case nh:case oh:case ph:case qh:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case ch:b=c.g;break;case dh:b=c.w;break;case eh:b=c.A;break;case kh:b=ud(c);break;case fh:b=c.B;break;case gh:b=c.C;break;case lh:b=wd(c);break;case hh:b=c.D;break;case ih:b=c.F;break;case mh:b=D(c);break;case jh:b=E(c,D(c));break;case nh:b=c.M;break;case oh:b=c.j;break;case ph:b=sd(c);break;case qh:b=sd(c)&255|c.g<<8}}return b};
function rh(a,b){b=lg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+bh(a,e)+b.substr(c+1+ah[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(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=vg(a,e))?(d=e+' "'+$g(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=vg(a,e))?(xg(d),d=
e+' "'+$g(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Zg(pg(this.u.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Xc(a),a.ta=0,Oc(a)))};
function Eb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+pa(d):"")+")"+(null!=g?": "+pa(g):"")+(null!=e?" at "+Zg(e):""))}
function rg(a){var b;if(Sd(a)){if(!a.F||!a.F.length){a.F=Array(sh);for(b=0;b<a.F.length;b++)a.F[b]=pg();a.V=0;a.i("instruction history buffer allocated")}if(!a.C||!a.C.length)for(a.C=Array(256),b=0;b<a.C.length;b++)a.C[b]=[b,0]}else a.F&&a.F.length&&a.i("instruction history buffer freed"),a.V=0,a.F=[],a.C=[]}function th(a,b){if(!uh(a))return!1;a.u.tb(b);return!0}
function wg(a,b,c,d){if(!uh(a))return!1;a.D=0;b||Sd(a)&&Td(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.D+=e,Sc(a.u,e,!0),Pc(a.u,e),a.O++)}catch(f){"number"!=typeof f&&(a.D=0,xb(a.u,f.stack||f.message))}!1!==d&&Oc(a.u);Mc(a,c||!1);return 0<a.D}l.ea=function(a){this.u&&this.u.ea(a)};function Mc(a,b){void 0===b&&(b=!0);a.H=pg(a.u.j);b&&1!=a.N?vh(a):wh(a)}
function uh(a){var b;if(b=a.u&&yb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Ab(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){rg(this);this.O=this.ba=0;this.Y=null;this.D=0;this.H=pg(this.u.j);this.G.ma=!1;xh(this);a||Mc(this)};
l.save=function(){var a=new td(this);a.set(0,Vg(this.H));a.set(1,Vg(this.S));a.set(2,[this.g,this.M,this.ha]);a.set(3,this.B);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.H=Xg(a[b++]),this.S=Xg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.M=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};l.start=function(a,b){this.N||this.i("running");this.G.ma=!0;this.Aa=a;this.Da=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.D=b-this.Da;if(!this.N){b="stopped";if(this.D){a-=this.Aa;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Sd(this)&&(b+=this.O+" opcodes, ",this.ba-=this.O,this.O=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Mc(this,!0);this.Za();xh(this,this.u.j)}};function Sd(a){return 1<a.j.length||!!a.X}
function Td(a,b,c){var d=a.u;if(0<c&&(a.X&&!--a.X||Gc(a,b,1,a.j)))return!0;0<=c&&a.C.length&&(a.O++,b=Ub(a.I,b),null!=b&&(a.C[b][1]++,b=a.F[a.V],b.J=d.j,b.Fa=!1,++a.V==a.F.length&&(a.V=0)));return!1}function cc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function gc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function qg(a){var b,c;a.j=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];var d=a.I;Fc(d.b[ug(c)>>>d.g],!1)}a.L=["br"];if(a.A)for(b=1;b<a.A.length;b++)c=a.A[b],d=a.I,Fc(d.b[ug(c)>>>d.g],!0);a.A=["bw"];a.xa=0}l.Pa=function(a,b,c){var d=!0;c||yh(this,a,b,!1,!0);if(a!=this.j){var e=ug(b);if(-1===e)this.i("invalid address: "+Zg(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Pa(e&f.j,a==this.A)}}d&&(a.push(b),c?b.Fa=!0:(zh(this,a,a.length-1,"set"),rg(this)));return d};
function yh(a,b,c,d,e){var f=!1;c=ug(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==ug(h)&&(!d||h.Fa)){f=!0;h.Fa||e||zh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Fc(d.b[c>>>d.g],b==a.A));h.Fa||rg(a);break}}return f}function Ah(a,b){for(var c=1;c<b.length;c++)zh(a,b,c);return b.length-1}function zh(a,b,c,d){c=b[c];a.i(b[0]+" "+Zg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function xh(a,b){if(void 0!==b)Gc(a,b,1,a.j,!0),a.N=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!yh(a,a.j,c,!0))break;b=0}}}
function Gc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=ug(h),p=0;p<c;p++)if(b+p==k){var t,f=!0;h.Fa&&(yh(a,d,h,!0),e=!0);if(t=h.sd){for(var f=!1,v=0;v<t.length;v++)if(!Bh(a,t[v],!0)){if(t[v].indexOf("if")){f=!0;break}for(var B=v+1;B<t.length&&t[B].indexOf("else");B++)v++;if(B==t.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||zh(a,d,g,"hit");break}}}a.xa--;return f}
function Ch(a,b,c,d){for(var e=pg(b.J),f=a.Ia(b,1),g=a.sa[f],h="",k=(a.style!=Dh?Eh:Fh)[g[0]],p=g.length-1,t=Gh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==og)){var w=v&Hh;if(w){var C=v&Ih;C?t=C:v|=t;v&Jh||(v|=1==B?Kh:Lh);if(w&P)a:{y=a;w=v;C=b;switch(w&Ih){case Q:C=n(y.Ia(C,1),2);break;case Mh:C=n(y.Ia(C,1)<<24>>24,4);break;case Nh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Dh&&w&Oh?C="["+C+"]":w&Ph||(C=(y.style==og?"$":"0x")+C);y=C}else w&Ph?(y=(v&Qh)>>8,
w=ah[y],a.style==Dh&&v&Oh&&(y==jh&&(w="HL"),w="["+w+"]"),y=w):w&Rh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Zg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ia(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=xa(f,10);g+=v&Sh?"*":" ";g+=xa(k,7);h&&(g+=" "+h);c&&(g=xa(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Qc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Th(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Ed(a.u);break;case "ZF":a=Dd(a.u);break;case "AF":a=Cd(a.u);break;case "PF":a=Bd(a.u);break;case "CF":a=zd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Uh(a,b){return ah[b]+"="+bh(a,b)+" "}function Vh(a){return Uh(a,ch)+Uh(a,kh)+Uh(a,lh)+Uh(a,mh)+Uh(a,nh)+Th(a,"IF")+Th(a,"SF")+Th(a,"ZF")+Th(a,"AF")+Th(a,"PF")+Th(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Wh(a,b,c){var d=[],e=ug(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Ca(f.zc,[e-g],a.Ac);0<=e?Xh(a,b,e,d):c&&(e=~e,Xh(a,b,e-1,d),Xh(a,b,e,d));break}}return d}function Xh(a,b,c,d){var e={},f=a.B[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.B[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Yh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.C)if("clear"==b){for(b=0;b<a.C.length;b++)a.C[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.C.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Dh?Eh:Fh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.sa[f][0]]+" ").substr(0,5)+" ("+pa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Zh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return mg(a)||a.i("no variables"),!0;if(!c[2])return mg(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=jg(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function $h(a,b,c){var d=null;if(b=vg(a,b,!0)){var e=Wh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Zg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+Zg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function ai(a,b){switch(b[1]){case "8080":a.style=og;break;case "8086":a.style=Dh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Lc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Rc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function uh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],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.i("missing value for "+b[1]);return}f=ig(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.H=og(d.j);break;case "PS":qd(d,f);break;case "PSW":qd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Bd(d)||(d.L^=1):Bd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.H=f?d.H&-256:d.H|255;break;case "SF":f?Ed(d)||(d.L^=192):Ed(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Oc(d);a.i("updated registers:")}a.i(Uh(a));c&&(a.H=og(d.j),vh(a,Yg(a.H.J)))}}function ai(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(qh(a,c[2])):ig(a,b,!1)}function bi(a,b,c){var d="t"!=b;c=eg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ra(c,function(){return Bb(a,!0)&&vg(a,e,d,!1)},function(){Oc(a.u);Bb(a,!1)})}
function vh(a,b,c,d){if(b=ug(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ug(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ab(a,!1)||a.N?a.D:null;var g=null!=f?"cycles":null,h=Vh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Bh(a,b,g,f);a.i(f);a.H=b;e-=b.J-k;c++}}}
function vh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],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.i("missing value for "+b[1]);return}f=jg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.H=pg(d.j);break;case "PS":qd(d,f);break;case "PSW":qd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Bd(d)||(d.L^=1):Bd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.H=f?d.H&-256:d.H|255;break;case "SF":f?Ed(d)||(d.L^=192):Ed(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Oc(d);a.i("updated registers:")}a.i(Vh(a));c&&(a.H=pg(d.j),wh(a,Zg(a.H.J)))}}function bi(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(rh(a,c[2])):jg(a,b,!1)}function ci(a,b,c){var d="t"!=b;c=eg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ra(c,function(){return Bb(a,!0)&&wg(a,e,d,!1)},function(){Oc(a.u);Bb(a,!1)})}
function wh(a,b,c,d){if(b=vg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=vg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ab(a,!1)||a.N?a.D:null;var g=null!=f?"cycles":null,h=Wh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Ch(a,b,g,f);a.i(f);a.H=b;e-=b.J-k;c++}}}
l.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.M?a="end":a=this.g[this.b+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(ya(a.substring(d,f))),d=f+1}}return b};
function Ah(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.M&&(a.i("ended assemble at "+Yg(a.S.J)),a.H=a.S,a.M=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(yb(a)&&0<b.length){a.M&&(b="a "+Yg(a.S.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var t=ug(a,f[1],!0);if(t)if(a.S=
t,void 0===f[2])a.i("begin assemble at "+Yg(t.J)),a.M=!0,Oc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(t,v[B],1);a.i(Bh(a,a.S))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+zh(a,a.j);za+=zh(a,a.L);(za+=zh(a,a.A))||a.i("no breakpoints")}else if("n"==T)a.X=eg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=og();if("*"!=w&&(L=ug(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(pg(a),a.i("all breakpoints cleared")):xh(a,a.j,L)||xh(a,a.L,L)||xh(a,a.A,L)||a.i("breakpoint missing: "+Yg(L.J)):
"i"==T?a.i("breakpoint "+($b(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(dc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Wg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.L,L):"w"==T?a.Pa(a.A,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],hc=f[3];if("?"==na){var Pb="";for(ja in Hb)a.ka[ja]&&(Pb&&(Pb+=","),Pb+=ja);Pb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Pb.length&&a.i("dump extension commands:\n\t"+Pb)}else if("state"==na){var re=ci(a.R,!0);"console"==Ma?console.log(re):(a.ua&&(a.ua.value=""),re&&a.i(re))}else if("symbols"==na)for(var se=0;se<a.B.length;se++){var te=a.B[se],Qb;for(Qb in te.ra)if("."!=Qb.charAt(0)){var zg=te.ra[Qb].o;if(void 0!==zg){var Ag=te.ra[Qb].l;Ag&&(Qb=Ag);a.i(Yg(zg)+" "+
Qb)}}}else{if("d"==ua){for(ja in Hb)if(f[1]==ja){var Bg=a.ka[ja];Bg?(f.shift(),f.shift(),Bg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Cg=na,Dg=Ma,Eg="",Fg=0,Na=a.U,Za=a.F;if(Za.length){var Ba=+Cg||a.ya,mc=+Dg||10;isNaN(Ba)?Ba=mc:Eg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var ue=[];"call"==Dg&&(mc=1E5,ue=["CALL"]);for(void 0!==Cg&&a.i(Ba+
" instructions earlier:");0<mc&&Na!=a.U;){var Gg=Za[Na++];if(null==Gg.J)break;var nc=og(Gg.J),Gi=Ba--,Hg=Bh(a,nc,"history",Gi);(!ue.length||0<=Hg.indexOf(ue[0]))&&a.i(Hg);nc.Jb&&(Na+=nc.Jb,mc-=nc.Jb,Ba-=nc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Fg++;mc--}}Fg||(a.i("no "+Eg+"history available"),a.ya=void 0)}else{var cd=ug(a,na);if(cd){var dd=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||hc),dd=eg(a,Ma)>>>0,65536<dd&&(dd=65536));for(var oc="",ed="dd"==ua?4:"dw"==ua?2:1,fd=ed*dd||128,Hi=fd+15>>4||1;Hi--&&0<
fd;){var gd=0,ve=0,pc,we="",Ig="",na=Yg(cd.J);for(pc=16;0<pc&&0<fd;pc--){var hd=a.Ia(cd,1),gd=gd|hd<<(ve++<<3);ve==ed&&(we+=n(gd,2*ed),we+=1==ed?9==pc?"-":" ":" ",gd=ve=0);Ig+=32<=hd&&128>hd?String.fromCharCode(hd):".";fd--}oc&&(oc+="\n");oc+=na+" "+we+(pc?"":" "+Ig)}oc&&a.i(oc);a.ta=cd}}}}break;case "e":if("else"==f[0])break;var id=1,Jg=255,Kg=a.Ia,Lg=a.Xb;"ew"==f[0]&&(id=2,Jg=65535,Kg=a.Gb,Lg=a.Qc);var Mg=id<<1,Ng=f[1];if(null==Ng)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var jd=ug(a,Ng);if(jd)for(var kd=2;kd<f.length;kd++){var qc=ig(a,f[kd]);if(void 0===qc){a.i("unrecognized value: "+f[kd]);break}qc&~Jg&&a.i("warning: "+n(qc)+" exceeds "+id+"-byte value");var Ii=Kg.call(a,jd);a.i("changing "+Yg(jd.J)+" from "+n(Ii,Mg,!0)+" to "+n(qc,Mg,!0));Lg.call(a,jd,qc,id)}}break;case "f":Xh(a,f[1]);break;case "g":a:{var Og=f[1],Ji=b;if(void 0!==Og){var xe=ug(a,Og,!0);if(!xe)break a;Wg(a,xe,Ji);a.Pa(a.j,xe,!0)}sh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var ye;if(a.G.ma)ye="halting",a.ea();else{if(Ab(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var rc=b.substr(2),rc=ya(rc);ig(a,rc)?(c||a.i("true: "+rc),ze=!0):(c||a.i("false: "+rc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var ld;var Ki=f[1];if(a.u.N&512){var Ae=ig(a,Ki);null==Ae?ld=!1:(a.i("requesting interrupt level "+Ae),Rd(a.u,Ae),ld=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),ld=!1;ld||(d=!1);break}var Be=f[1];if(Be&&"?"!=Be){var Ce=
eg(a,Be);if(void 0!==Ce){var Li=bc(a.I,Ce);a.i(q(Ce)+": "+pa(Li))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Mi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Pg=og(),sc=og(a.u.M);for(a.i("stack trace for "+Yg(sc.J));10>De;){for(var ub=null,Ni=256;65536>sc.J>>>0;){Pg.J=a.Gb(sc,2);if(null==sc.J||!Ni--)break;for(var Oi=a,md=Pg,
Qg=null,tc=md.J,Rg=tc,Ee=1;6>=Ee&&tc;Ee++){if(2<Ee){md.J=tc;var nd=Bh(Oi,md);if(0<=nd.indexOf("CALL")){var Sg=nd.indexOf(" ");if(tc+(nd.indexOf(" ",Sg+1)-Sg-1)/2==Rg){Qg=nd;break}}}tc--}md.J=Rg;if(ub=Qg)break}if(!ub||null==ub)break;var Tg=null;if("ks"==Mi){var Ug=ub.match(/[0-9A-F]+$/);Ug&&(Tg=Zh(a,Ug[0]))}ub=xa(ub,50)+" ;"+(Tg||"stack="+Yg(sc.J));a.i(ub);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Zh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Hb)if(ba==$a){mb=Hb[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Pi=0,uc="";for($a in Hb)if(!ba||ba==$a){var Qi=!!(a.ha&Hb[$a]);if(null===
ab||ab==Qi)uc&&(uc+=","),++Pi%10||(uc+="\n\t"),"key"==$a&&($a="keys"),uc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(uc||"none"));qg(a)}break;case "o":var Ge=f[1],Ri=f[2];if(Ge&&"?"!=Ge){var He=eg(a,Ge,"port #"),Ie=eg(a,Ri);void 0!==He&&void 0!==Ie&&(fc(a.I,He,Ie),a.i(q(He)+": "+pa(Ie)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){ai(a,b.substr(5));break}var Vg="pr"==f[0]?1:0,Si=1+Vg;if(a.N)a.i("step in progress");else{var Je=og(a.u.j);switch(a.Ia(Je)){case 205:a.N=Si,wg(Je,3)}a.N?(a.Pa(a.j,Je,!0),sh(a)||(a.R&&a.R.Za(),a.N=0)):bi(a,Vg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}uh(a,f);break;case "s":$h(a,f);break;case "t":bi(a,f[0],f[1]);break;case "u":vh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Yh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.3 ("+a.u.xb+",RELEASE"+
(Fb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ha());break;case "?":if(f[1]){ai(a,b.substr(1));break}var Ke="commands:",Le;for(Le in di)Ke+="\n"+xa(Le,9)+di[Le];Sd(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Xg){a.i("debugger error: "+(Xg.stack||Xg.message)),d=!1}return d}function Nc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Ah(a,b[+d]))return!1;return!0}
var di={"?":"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","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
ng=8080,Ch=8086,Dh="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Eh="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
ch=0,dh=1,eh=2,fh=3,gh=4,hh=5,ih=6,bh=7,jh=8,kh=9,lh=10,mh=11,nh=12,oh=13,ph=14,$g="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Hh=15,Gh=240,Ph=3840,Ih=61440,Fh=0,Q=1,Lh=2,Mh=3,Oh=16,P=32,Nh=64,Qh=128,R=bh<<8|Oh|Q,S=ch<<8|Oh|Q,U=dh<<8|Oh|Q,V=eh<<8|Oh|Q,W=fh<<8|Oh|Q,X=gh<<8|Oh|Q,Y=hh<<8|Oh|Q,Z=ih<<8|Oh|Q|Nh,ei=jh<<8|Oh|Mh,fi=kh<<8|Oh|Mh,gi=lh<<8|Oh|Mh,hi=mh<<8|Oh|Mh,ii=ph<<8|Oh|Mh,Kh=4096,Jh=8192,O=16384,Rh=32768,sg=[[45],[42,ei,P],[71,ei|Nh,R|O],[29,ei],[28,S],[22,S],[44,S,P],[63],[45,Rh],[21,
gi|O,ei],[40,R|O,ei|Nh],[23,ei],[28,U],[22,U],[44,U,P],[64],[45,Rh],[42,fi,P],[71,fi|Nh,R|O],[29,fi],[28,V],[22,V],[44,V,P],[52],[45,Rh],[21,gi|O,fi],[40,R|O,fi|Nh],[23,fi],[28,W],[22,W],[44,W,P],[53],[45,Rh],[42,gi,P],[68,51|Nh,gi|O],[29,gi],[28,X],[22,X],[44,X,P],[20],[45,Rh],[21,gi|O,gi],[41,gi|O,51|Nh],[23,gi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Rh],[42,hi,P],[70,51|Nh,R|O],[29,hi],[28,Z],[22,Z],[44,Z,P],[72],[45,Rh],[21,gi|O,hi],[39,R|O,51|Nh],[23,hi],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
function Bh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.M&&(a.i("ended assemble at "+Zg(a.S.J)),a.H=a.S,a.M=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(yb(a)&&0<b.length){a.M&&(b="a "+Zg(a.S.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var t=vg(a,f[1],!0);if(t)if(a.S=
t,void 0===f[2])a.i("begin assemble at "+Zg(t.J)),a.M=!0,Oc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(t,v[B],1);a.i(Ch(a,a.S))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+Ah(a,a.j);za+=Ah(a,a.L);(za+=Ah(a,a.A))||a.i("no breakpoints")}else if("n"==T)a.X=eg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=pg();if("*"!=w&&(L=vg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(qg(a),a.i("all breakpoints cleared")):yh(a,a.j,L)||yh(a,a.L,L)||yh(a,a.A,L)||a.i("breakpoint missing: "+Zg(L.J)):
"i"==T?a.i("breakpoint "+($b(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(dc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Yg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.L,L):"w"==T?a.Pa(a.A,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],hc=f[3];if("?"==na){var Pb="";for(ja in Hb)a.ka[ja]&&(Pb&&(Pb+=","),Pb+=ja);Pb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Pb.length&&a.i("dump extension commands:\n\t"+Pb)}else if("state"==na){var re=di(a.R,!0);"console"==Ma?console.log(re):(a.ua&&(a.ua.value=""),re&&a.i(re))}else if("symbols"==na)for(var se=0;se<a.B.length;se++){var te=a.B[se],Qb;for(Qb in te.ra)if("."!=Qb.charAt(0)){var yg=te.ra[Qb].o;if(void 0!==yg){var zg=te.ra[Qb].l;zg&&(Qb=zg);a.i(Zg(yg)+" "+
Qb)}}}else{if("d"==ua){for(ja in Hb)if(f[1]==ja){var Ag=a.ka[ja];Ag?(f.shift(),f.shift(),Ag(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Bg=na,Cg=Ma,Dg="",Eg=0,Na=a.V,Za=a.F;if(Za.length){var Ba=+Bg||a.ya,mc=+Cg||10;isNaN(Ba)?Ba=mc:Dg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var ue=[];"call"==Cg&&(mc=1E5,ue=["CALL"]);for(void 0!==Bg&&a.i(Ba+
" instructions earlier:");0<mc&&Na!=a.V;){var Fg=Za[Na++];if(null==Fg.J)break;var nc=pg(Fg.J),Hi=Ba--,Gg=Ch(a,nc,"history",Hi);(!ue.length||0<=Gg.indexOf(ue[0]))&&a.i(Gg);nc.Jb&&(Na+=nc.Jb,mc-=nc.Jb,Ba-=nc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Eg++;mc--}}Eg||(a.i("no "+Dg+"history available"),a.ya=void 0)}else{var cd=vg(a,na);if(cd){var dd=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||hc),dd=eg(a,Ma)>>>0,65536<dd&&(dd=65536));for(var oc="",ed="dd"==ua?4:"dw"==ua?2:1,fd=ed*dd||128,Ii=fd+15>>4||1;Ii--&&0<
fd;){var gd=0,ve=0,pc,we="",Hg="",na=Zg(cd.J);for(pc=16;0<pc&&0<fd;pc--){var hd=a.Ia(cd,1),gd=gd|hd<<(ve++<<3);ve==ed&&(we+=n(gd,2*ed),we+=1==ed?9==pc?"-":" ":" ",gd=ve=0);Hg+=32<=hd&&128>hd?String.fromCharCode(hd):".";fd--}oc&&(oc+="\n");oc+=na+" "+we+(pc?"":" "+Hg)}oc&&a.i(oc);a.ta=cd}}}}break;case "e":if("else"==f[0])break;var id=1,Ig=255,Jg=a.Ia,Kg=a.Xb;"ew"==f[0]&&(id=2,Ig=65535,Jg=a.Gb,Kg=a.Qc);var Lg=id<<1,Mg=f[1];if(null==Mg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var jd=vg(a,Mg);if(jd)for(var kd=2;kd<f.length;kd++){var qc=jg(a,f[kd]);if(void 0===qc){a.i("unrecognized value: "+f[kd]);break}qc&~Ig&&a.i("warning: "+n(qc)+" exceeds "+id+"-byte value");var Ji=Jg.call(a,jd);a.i("changing "+Zg(jd.J)+" from "+n(Ji,Lg,!0)+" to "+n(qc,Lg,!0));Kg.call(a,jd,qc,id)}}break;case "f":Yh(a,f[1]);break;case "g":a:{var Ng=f[1],Ki=b;if(void 0!==Ng){var xe=vg(a,Ng,!0);if(!xe)break a;Yg(a,xe,Ki);a.Pa(a.j,xe,!0)}th(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var ye;if(a.G.ma)ye="halting",a.ea();else{if(Ab(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var rc=b.substr(2),rc=ya(rc);jg(a,rc)?(c||a.i("true: "+rc),ze=!0):(c||a.i("false: "+rc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var ld;var Li=f[1];if(a.u.N&512){var Ae=jg(a,Li);null==Ae?ld=!1:(a.i("requesting interrupt level "+Ae),Rd(a.u,Ae),ld=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),ld=!1;ld||(d=!1);break}var Be=f[1];if(Be&&"?"!=Be){var Ce=
eg(a,Be);if(void 0!==Ce){var Mi=bc(a.I,Ce);a.i(q(Ce)+": "+pa(Mi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Ni=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Og=pg(),sc=pg(a.u.M);for(a.i("stack trace for "+Zg(sc.J));10>De;){for(var ub=null,Oi=256;65536>sc.J>>>0;){Og.J=a.Gb(sc,2);if(null==sc.J||!Oi--)break;for(var Pi=a,md=Og,
Pg=null,tc=md.J,Qg=tc,Ee=1;6>=Ee&&tc;Ee++){if(2<Ee){md.J=tc;var nd=Ch(Pi,md);if(0<=nd.indexOf("CALL")){var Rg=nd.indexOf(" ");if(tc+(nd.indexOf(" ",Rg+1)-Rg-1)/2==Qg){Pg=nd;break}}}tc--}md.J=Qg;if(ub=Pg)break}if(!ub||null==ub)break;var Sg=null;if("ks"==Ni){var Tg=ub.match(/[0-9A-F]+$/);Tg&&(Sg=$h(a,Tg[0]))}ub=xa(ub,50)+" ;"+(Sg||"stack="+Zg(sc.J));a.i(ub);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&$h(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Hb)if(ba==$a){mb=Hb[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Qi=0,uc="";for($a in Hb)if(!ba||ba==$a){var Ri=!!(a.ha&Hb[$a]);if(null===
ab||ab==Ri)uc&&(uc+=","),++Qi%10||(uc+="\n\t"),"key"==$a&&($a="keys"),uc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(uc||"none"));rg(a)}break;case "o":var Ge=f[1],Si=f[2];if(Ge&&"?"!=Ge){var He=eg(a,Ge,"port #"),Ie=eg(a,Si);void 0!==He&&void 0!==Ie&&(fc(a.I,He,Ie),a.i(q(He)+": "+pa(Ie)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){bi(a,b.substr(5));break}var Ug="pr"==f[0]?1:0,Ti=1+Ug;if(a.N)a.i("step in progress");else{var Je=pg(a.u.j);switch(a.Ia(Je)){case 205:a.N=Ti,xg(Je,3)}a.N?(a.Pa(a.j,Je,!0),th(a)||(a.R&&a.R.Za(),a.N=0)):ci(a,Ug?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}vh(a,f);break;case "s":ai(a,f);break;case "t":ci(a,f[0],f[1]);break;case "u":wh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Zh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.3 ("+a.u.xb+",RELEASE"+
(Fb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ha());break;case "?":if(f[1]){bi(a,b.substr(1));break}var Ke="commands:",Le;for(Le in ei)Ke+="\n"+xa(Le,9)+ei[Le];Sd(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Wg){a.i("debugger error: "+(Wg.stack||Wg.message)),d=!1}return d}function Nc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Bh(a,b[+d]))return!1;return!0}
var ei={"?":"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","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
og=8080,Dh=8086,Eh="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Fh="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
dh=0,eh=1,fh=2,gh=3,hh=4,ih=5,jh=6,ch=7,kh=8,lh=9,mh=10,nh=11,oh=12,ph=13,qh=14,ah="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Ih=15,Hh=240,Qh=3840,Jh=61440,Gh=0,Q=1,Mh=2,Nh=3,Ph=16,P=32,Oh=64,Rh=128,R=ch<<8|Ph|Q,S=dh<<8|Ph|Q,U=eh<<8|Ph|Q,V=fh<<8|Ph|Q,W=gh<<8|Ph|Q,X=hh<<8|Ph|Q,Y=ih<<8|Ph|Q,Z=jh<<8|Ph|Q|Oh,fi=kh<<8|Ph|Nh,gi=lh<<8|Ph|Nh,hi=mh<<8|Ph|Nh,ii=nh<<8|Ph|Nh,ji=qh<<8|Ph|Nh,Lh=4096,Kh=8192,O=16384,Sh=32768,tg=[[45],[42,fi,P],[71,fi|Oh,R|O],[29,fi],[28,S],[22,S],[44,S,P],[63],[45,Sh],[21,
hi|O,fi],[40,R|O,fi|Oh],[23,fi],[28,U],[22,U],[44,U,P],[64],[45,Sh],[42,gi,P],[71,gi|Oh,R|O],[29,gi],[28,V],[22,V],[44,V,P],[52],[45,Sh],[21,hi|O,gi],[40,R|O,gi|Oh],[23,gi],[28,W],[22,W],[44,W,P],[53],[45,Sh],[42,hi,P],[68,51|Oh,hi|O],[29,hi],[28,X],[22,X],[44,X,P],[20],[45,Sh],[21,hi|O,hi],[41,hi|O,51|Oh],[23,hi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Sh],[42,ii,P],[70,51|Oh,R|O],[29,ii],[28,Z],[22,Z],[44,Z,P],[72],[45,Sh],[21,hi|O,ii],[39,R|O,51|Oh],[23,ii],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
S,U],[43,S,V],[43,S,W],[43,S,X],[43,S,Y],[43,S,Z],[43,S,R],[43,U,S],[43,U,U],[43,U,V],[43,U,W],[43,U,X],[43,U,Y],[43,U,Z],[43,U,R],[43,V,S],[43,V,U],[43,V,V],[43,V,W],[43,V,X],[43,V,Y],[43,V,Z],[43,V,R],[43,W,S],[43,W,U],[43,W,V],[43,W,W],[43,W,X],[43,W,Y],[43,W,Z],[43,W,R],[43,X,S],[43,X,U],[43,X,V],[43,X,W],[43,X,X],[43,X,Y],[43,X,Z],[43,X,R],[43,Y,S],[43,Y,U],[43,Y,V],[43,Y,W],[43,Y,X],[43,Y,Y],[43,Y,Z],[43,Y,R],[43,Z,S],[43,Z,U],[43,Z,V],[43,Z,W],[43,Z,X],[43,Z,Y],[26],[43,Z,R],[43,R,S],[43,R,
U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,S],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,S],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,S],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,S],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,S],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,S],[76,R|O,U],[76,R|
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,ei],[34,51],[30,51],[11,51],[51,ei],[4,R|O,P|Q],[65,Qh],[62],[54],[38,51],[30,51|Rh],[15,51],[7,51],[1,R|O,P|Q],[65,Qh],[57],[50,fi],[33,51],[48,P|Q,R|O],[10,51],[51,fi],[74,R|O,P|Q],[65,Qh],[55],[54,Rh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Rh],[67,R|O,P|Q],[65,
Qh],[61],[50,gi],[37,51],[78,hi|Nh|O,gi|O],[14,51],[51,gi],[6,R|O,P|Q],[65,Qh],[60],[49,gi],[36,51],[75,gi|O,fi|O],[13,51],[7,51|Rh],[77,R|O,P|Q],[65,Qh],[59],[50,ii],[35,51],[24],[12,51],[51,ii],[47,R|O,P|Q],[65,Qh],[56],[69,hi|O,gi|O],[32,51],[25],[9,51],[7,51|Rh],[19,R|O,P|Q],[65,Qh]],rh=1E3;Ua(function(){for(var a=qb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new mg(d);pb(d,c)}});
function ji(a,b,c){u.call(this,"Computer",a,67108864);this.G.ja=!1;ki(this,b);this.L=Jc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=li;this.F=null;this.C=this.O=!1;this.U=Jc(this,"url")||"";(Math.random()+.1).toString(36);this.g=mi(this);if(this.u=nb("CPU",this.id)){this.K=nb("Debugger",this.id);this.A=[];for(b=null;b=Jb(this,"Video",b);)this.A.push(b);this.I=new Lb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=kb(this.id);if((this.B=nb("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.I,this.u,this.K);b=null;d=Jc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Jc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=li),this.b&&(this.H=new td(this,"1.34.3"),ni(this.H)?
b=null:delete this.H);!b&&this.b&&(b=oi(this))&&(this.C=!0);if(b){var g=this;Fa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.F=b,g.O=!0);zb(g)})}else zb(this);this.P.power||(this.L=!0);!c&&this.L&&pi(this,this.nb)}else r("Unable to find CPU component")}aa(ji,u);function ki(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Jc(a,b,c){var d=b.toLowerCase(),d=Pa(b)||Pa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pi(a,b,c){for(var d=kb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){pi(a,b,c)});return}}b.call(a,c)}
function qi(a,b){var c=new td(a,"1.34.3",ri);if(ni(c)&&si(c)){var d=c.get(ti),e=b?b.get(ti):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=ji.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?ui:li));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.H||new td(this,"1.34.3");if(a==vi)b=!0;else if(a>li){if(ni(d,this.F)){this.w=new td(this,"1.34.3",wi);ni(this.w)&&(xi(this,d),a=yi,zi(this.w));this.w.set(ti,Da());Ai(this.w);var e=this.b&&!this.C;if(a==ui||jb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=si(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ni(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(La(Bi,""),this.g=null)):this.i(f+": "+g),zi(d),ni(d)?(c=si(d),e=!0):c=!1))}e&&qi(this,c?d:null)}else a==yi&&d.clear()}else qi(this);delete this.F;delete this.H}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Ci(this,g,d,b,c));b=[d,a,c];a!=vi?pi(this,this.Cc,b):this.Cc(b)}};
function Ci(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){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.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=li,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Ci(this,this.u,b,c,a),this.u.lb());this.N&&(xi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function xi(a,b){if(jb("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.3"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
function ci(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new td(a,"1.34.3"),g=new td(a,"1.34.3",ri),h=Da();g.set(ti,h);f.set(ti,h);f.set(Di,"1.34.3");f.set(Ei,window?window.location.href:null);f.set(Fi,Ha());a.u&&a.u.va&&(c&&a.u.ea(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=kb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ti(a,
a.g,f.toString()),Ai(g)&&Ai(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ui),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.I&&this.I.reset&&(Db(this,"Resetting "+this.I.type),this.I.reset());for(var a=kb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.I&&c.reset&&(Db(this,"Resetting "+c.type),c.reset())}};
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,fi],[34,51],[30,51],[11,51],[51,fi],[4,R|O,P|Q],[65,Rh],[62],[54],[38,51],[30,51|Sh],[15,51],[7,51],[1,R|O,P|Q],[65,Rh],[57],[50,gi],[33,51],[48,P|Q,R|O],[10,51],[51,gi],[74,R|O,P|Q],[65,Rh],[55],[54,Sh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Sh],[67,R|O,P|Q],[65,
Rh],[61],[50,hi],[37,51],[78,ii|Oh|O,hi|O],[14,51],[51,hi],[6,R|O,P|Q],[65,Rh],[60],[49,hi],[36,51],[75,hi|O,gi|O],[13,51],[7,51|Sh],[77,R|O,P|Q],[65,Rh],[59],[50,ji],[35,51],[24],[12,51],[51,ji],[47,R|O,P|Q],[65,Rh],[56],[69,ii|O,hi|O],[32,51],[25],[9,51],[7,51|Sh],[19,R|O,P|Q],[65,Rh]],sh=1E3;Ua(function(){for(var a=qb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ng(d);pb(d,c)}});
function ki(a,b,c){u.call(this,"Computer",a,67108864);this.G.ja=!1;li(this,b);this.L=Jc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=mi;this.F=null;this.C=this.O=!1;this.U=Jc(this,"url")||"";(Math.random()+.1).toString(36);this.g=ni(this);if(this.u=nb("CPU",this.id)){this.K=nb("Debugger",this.id);this.A=[];for(b=null;b=Jb(this,"Video",b);)this.A.push(b);this.I=new Lb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=kb(this.id);if((this.B=nb("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.I,this.u,this.K);b=null;d=Jc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Jc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=mi),this.b&&(this.H=new td(this,"1.34.3"),oi(this.H)?
b=null:delete this.H);!b&&this.b&&(b=pi(this))&&(this.C=!0);if(b){var g=this;Fa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.F=b,g.O=!0);zb(g)})}else zb(this);this.P.power||(this.L=!0);!c&&this.L&&qi(this,this.nb)}else r("Unable to find CPU component")}aa(ki,u);function li(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Jc(a,b,c){var d=b.toLowerCase(),d=Pa(b)||Pa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function qi(a,b,c){for(var d=kb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){qi(a,b,c)});return}}b.call(a,c)}
function ri(a,b){var c=new td(a,"1.34.3",si);if(oi(c)&&ti(c)){var d=c.get(ui),e=b?b.get(ui):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=ki.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?vi:mi));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.H||new td(this,"1.34.3");if(a==wi)b=!0;else if(a>mi){if(oi(d,this.F)){this.w=new td(this,"1.34.3",xi);oi(this.w)&&(yi(this,d),a=zi,Ai(this.w));this.w.set(ui,Da());Bi(this.w);var e=this.b&&!this.C;if(a==vi||jb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ti(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?oi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(La(Ci,""),this.g=null)):this.i(f+": "+g),Ai(d),oi(d)?(c=ti(d),e=!0):c=!1))}e&&ri(this,c?d:null)}else a==zi&&d.clear()}else ri(this);delete this.F;delete this.H}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Di(this,g,d,b,c));b=[d,a,c];a!=wi?qi(this,this.Cc,b):this.Cc(b)}};
function Di(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){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.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=mi,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.V=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Di(this,this.u,b,c,a),this.u.lb());this.N&&(yi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function yi(a,b){if(jb("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.3"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
function di(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new td(a,"1.34.3"),g=new td(a,"1.34.3",si),h=Da();g.set(ui,h);f.set(ui,h);f.set(Ei,"1.34.3");f.set(Fi,window?window.location.href:null);f.set(Gi,Ha());a.u&&a.u.va&&(c&&a.u.ea(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=kb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ui(a,
a.g,f.toString()),Bi(g)&&Bi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Vi),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.I&&this.I.reset&&(Db(this,"Resetting "+this.I.type),this.I.reset());for(var a=kb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.I&&c.reset&&(Db(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=kb(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=kb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?ci(d,!1,!0):pi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=jb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ci(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(li)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(sa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=mi(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=ci(d,b);b?Ti(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function mi(a,b){var c=a.g;c||((c=Ka(Bi),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=Vi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Vi(a,b){a.g=null;b=Fa(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(Bi,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function oi(a){var b=null;a.g&&(b=ta()+"/api/v1/user?req=load&user="+a.g+"&state="+Wi(a,"1.34.3"));return b}
function Ti(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wi(a,"1.34.3");d.data=c;b=Fa(ta()+"/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.aa("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.aa(c),La(Bi,""),a.g=null)}}
function Jb(a,b,c){a=kb(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.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?di(d,!1,!0):qi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=jb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");di(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(mi)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(sa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=ni(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=di(d,b);b?Ui(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function ni(a,b){var c=a.g;c||((c=Ka(Ci),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=Wi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Wi(a,b){a.g=null;b=Fa(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(Ci,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function pi(a){var b=null;a.g&&(b=ta()+"/api/v1/user?req=load&user="+a.g+"&state="+Xi(a,"1.34.3"));return b}
function Ui(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xi(a,"1.34.3");d.data=c;b=Fa(ta()+"/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.aa("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.aa(c),La(Ci,""),a.g=null)}}
function Jb(a,b,c){a=kb(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.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.W&&d.W.focus();!a&&window&&window.scrollTo(b,c)}};
function Yc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ma||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",ud(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",wd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=sd(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var wi="failsafe",ri="validate",ti="timestamp",Di="version",Ei="url",Fi="browser",Bi="user",vi=-1,li=0,ui=1,yi=2,Ui=3;Ua(function(){for(var a=qb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=qb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new ji(g,d,!0);pb(g,f);g.L&&pi(g,g.nb)}});Va.show.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(vi)}});
Va.exit.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.G.ja&&ci(c,!(!c.b||c.D),!0)}});function td(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.I=!1;this.key=Wi(a,b,c);zi(this,a.Ad)}l=td.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function ni(a,b){return b?(a.g=b,a.u=!0,a.I=!1,!0):a.u?!0:Ia()&&(b=Ka(a.key))?(a.g=b,a.u=!0):!1}function si(a){var b=!0;if(!a.I)try{a.b=JSON.parse(a.g),a.I=!0}catch(c){r(c.message||c),b=!1}return b}function Ai(a){var b=!0;if(Ia()){var c=JSON.stringify(a.b);La(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function zi(a,b){a.g="";a.b={};a.u=a.I=!1;b&&a.set("parms",b)}
l.clear=function(a){zi(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 Wi(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 Xi=0;
function Yi(a,b,c,d,e,f){e("Loading "+a+"...");Fa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Zi(h,a,b,c,d,e,f)})}
function Zi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(gb(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>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$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(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?$i(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
var xi="failsafe",si="validate",ui="timestamp",Ei="version",Fi="url",Gi="browser",Ci="user",wi=-1,mi=0,vi=1,zi=2,Vi=3;Ua(function(){for(var a=qb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=qb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new ki(g,d,!0);pb(g,f);g.L&&qi(g,g.nb)}});Va.show.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.V&&!c.G.ja&&c.nb(wi)}});
Va.exit.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.G.ja&&di(c,!(!c.b||c.D),!0)}});function td(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.I=!1;this.key=Xi(a,b,c);Ai(this,a.Ad)}l=td.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function oi(a,b){return b?(a.g=b,a.u=!0,a.I=!1,!0):a.u?!0:Ia()&&(b=Ka(a.key))?(a.g=b,a.u=!0):!1}function ti(a){var b=!0;if(!a.I)try{a.b=JSON.parse(a.g),a.I=!0}catch(c){r(c.message||c),b=!1}return b}function Bi(a){var b=!0;if(Ia()){var c=JSON.stringify(a.b);La(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function Ai(a,b){a.g="";a.b={};a.u=a.I=!1;b&&a.set("parms",b)}
l.clear=function(a){Ai(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 Xi(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 Yi=0;
function Zi(a,b,c,d,e,f){e("Loading "+a+"...");Fa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):$i(h,a,b,c,d,e,f)})}
function $i(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(gb(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>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$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(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?aj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function $i(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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],p,t=/( [a-z]+=)(['"])(.*?)\2/g;p=t.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);$i(a,b,c)}})}else c(a,null)}
function aj(a,b,c,d){function e(a){if(void 0===h){var b=g&&qb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=va(a))}function f(a){e("Error: "+a);k&&(--Xi||bb(!0));k=!1}var g,h,k=!0;Xi++;hb[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));t.appendChild(v)}c||
(c="/versions/pc8080/1.34.3/components.xsl");p=function(d,h){h?Yi(c,null,null,!1,e,function(d,k){k?(gb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Xi||bb(!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),--Xi||bb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Yi(b,a,d,!0,e,p):Zi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){bb(!1);return aj(a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
function aj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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],p,t=/( [a-z]+=)(['"])(.*?)\2/g;p=t.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);aj(a,b,c)}})}else c(a,null)}
function bj(a,b,c,d){function e(a){if(void 0===h){var b=g&&qb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=va(a))}function f(a){e("Error: "+a);k&&(--Yi||bb(!0));k=!1}var g,h,k=!0;Yi++;hb[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));t.appendChild(v)}c||
(c="/versions/pc8080/1.34.3/components.xsl");p=function(d,h){h?Zi(c,null,null,!1,e,function(d,k){k?(gb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Yi||bb(!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),--Yi||bb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Zi(b,a,d,!0,e,p):$i(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){bb(!1);return bj(a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!sb[a]){for(var c=!0,d=sb,e=a,f=b.length,g=[],h=[],k="",p=null,t=0;t<f;t++){var v=b[t];if('"'==v||"'"==v)p&&v!=p?k+=v:(p?p=null:p=v,k&&(h.push(k),k=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;rb(a)||(c=!1)}return c};window.enableEvents=bb;window.sendEvent=db;})();