Documented a (mildly) interesting MACRO-10 bug
This commit is contained in:
parent
1d1ac0cb7b
commit
c6de12287c
5 changed files with 526 additions and 490 deletions
|
|
@ -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 <canvas> 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;})();
|
||||
|
|
|
|||
|
|
@ -569,11 +569,11 @@ function Ns(a,b){var c,d=a.oa,e=a.C;if(e)if(e.La==os)d=Ds;else if(e.La>=aq){var
|
|||
350>f?d=m?nt:ot:480<=f&&(d=a.ga==Tl?pt:qt):d=m?7-d:rt:d-=m?2:0);c=et(a)}}else e.Xc&8&&(e.Xc&2?(d=e.Xc&16?rt:st,e.Xc&4||--d):(d=e.Xc&1?Bs:tt,e.Xc&4&&--d));else a.oa=null,null==d&&(d=a.da);if(!Gs(a,d,b))return!1;ft(a,c);return!0}
|
||||
function Gs(a,b,c){if(null!=b&&(b!=a.oa||c)){a.Ad=0;a.oa=b;a.Ga=!1;b=a.C||(b==Ds?a.Y:a.K);if(b!=a.C||b.cb!=a.cb||b.Ob!=a.Ob){bt(a);if(a.cb){if(!Bc(a.ka,a.cb,a.Ob))return!1;a.C&&(a.C.rc=!1)}a.C=b;b.rc=!0;a.cb=b.cb;a.Ob=b.Ob;if(!oc(a.ka,b.cb,b.Ob,3,b===a.A?b:null))return!1}a:{a.I=0;a.F=a.Fb;a.J=a.sc;a.Ma=a.F;a.Eb=hs[Ds][2];b=0;if(c=hs[a.oa])a.F=c[0],a.J=c[1],a.Eb=c[2],b=c[3],a.I=c[4],4!=a.ga&&7!=a.ga||a.C!==a.A||a.I!=Vs||(7==(a.A.Wa[es]&31)?a.J=350>Jr(a.A,Vr)?43:50:a.I=a.La);a.Wc=a.F*a.J|0;a.Vc=a.Wc/
|
||||
a.Eb|0;a.Xa=a.Vc;a.Pb=0;void 0!==b&&(a.Xa=(a.Xa<<1)+b|0,a.Pb=a.Xa+b>>1);if(a.va.length){a.qa=a.Z/a.F|0;a.ta=a.la/a.J|0;if(a.I){b=a.va[a.I];if(!b)break a;c=a.va[a.I<<1];a.Uc&&80==a.F?c&&a.qa>=3*c.Fc>>2&&(a.I<<=1,b=c):(c&&a.qa>=c.Fc&&(a.I<<=1,b=c),a.Uc||(a.qa=b.Fc,a.ta=b.Gc));a.Ya=a.ab=0;b&&(a.Ya=a.F*b.Fc,a.ab=a.J*b.Gc)}else a.qa=a.ta=1,a.Ya=a.F,a.ab=a.J;a.Ha=a.L.createImageData(a.Ya,a.ab);a.Ba=document.createElement("canvas");a.Ba.width=a.Ya;a.Ba.height=a.ab;a.Ca=a.Ba.getContext("2d");a.vc=a.zc=0;
|
||||
a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0<b&&(a.vc=b>>1,a.Qb-=b);0<c&&(a.zc=c>>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function vt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);vt(a)}
|
||||
function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Ut&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b,
|
||||
a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0<b&&(a.vc=b>>1,a.Qb-=b);0<c&&(a.zc=c>>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Tt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);Tt(a)}
|
||||
function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Vt&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b,
|
||||
c+f,h.Fc,g)):(a.za&&a.za!==a.ta&&(f=f*a.ta/a.za|0,g=g*a.ta/a.za|0),a.L.fillStyle=h.Be[d],a.L.fillRect(b,c+f,a.qa,g)))}
|
||||
function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)vt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.cb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye<d.fi){var m=(d.Wa[12]<<8)+d.Wa[13]|0;d.vd!==m&&(d.vd=m,ut(a));d.Ye=0}m=d.vd;a.I&&(m<<=1);c+=m;m=a.Xa;a.La>=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&&
|
||||
(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0<m&&v<b.aa.length;)b.aa[v].Oa&&(b.aa[v].Oa=p=!1,b.aa[v].qj=!0),m-=b.B,v++;b=p}if(b){if(!e)return;if(!a.xa){f=a.aa-d.vd;if(0>f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Ut<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c<k&&d<g;)p=Ic(a.ka,c),p|=h,p&e&&(a.xa++,p&=b),d==m&&(p|=a.Aa&1?ct<<8:0),a.ma&&p===a.M[d]||(dt(a,d%a.F,d/a.F|0,p,a.Ca),
|
||||
function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)Tt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.cb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye<d.fi){var m=(d.Wa[12]<<8)+d.Wa[13]|0;d.vd!==m&&(d.vd=m,ut(a));d.Ye=0}m=d.vd;a.I&&(m<<=1);c+=m;m=a.Xa;a.La>=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&&
|
||||
(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0<m&&v<b.aa.length;)b.aa[v].Oa&&(b.aa[v].Oa=p=!1,b.aa[v].qj=!0),m-=b.B,v++;b=p}if(b){if(!e)return;if(!a.xa){f=a.aa-d.vd;if(0>f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Vt<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c<k&&d<g;)p=Ic(a.ka,c),p|=h,p&e&&(a.xa++,p&=b),d==m&&(p|=a.Aa&1?ct<<8:0),a.ma&&p===a.M[d]||(dt(a,d%a.F,d/a.F|0,p,a.Ca),
|
||||
a.M[d]=p,f++),c+=2,d++;a.ma=!0;f&&a.Ca&&a.L.drawImage(a.Ba,0,0,a.Ya,a.ab,a.vc,a.zc,a.Qb,a.Rb);at(a)}}else if(a.Pb){var g=k,u,k=c,d=a.xa=0,f=a.Eb,e=16==f?65536:196608,h=16==f?1:2;b=Ps(a,h);for(var p=m=0,v=a.F,E=0,K=a.J,H=0;k<g;){u=Ic(a.ka,k);if(a.ma&&u===a.M[d])m+=f;else{a.M[d]=u;u=u>>8|(u&255)<<8;var I=e,T=16;m<v&&(v=m);for(var L=0;L<f;L++){var ua=(u&(I>>=h))>>(T-=h);$s(a.Ha,m++,p,b[ua])}m>E&&(E=m);p<K&&(K=p);p>=H&&(H=p+1)}k+=2;d++;if(m>=a.F){m=0;p+=2;if(p>a.J)break;p==a.J&&(p=1,k=c+a.Pb)}}a.ma=!0;
|
||||
v<a.F&&(a.Ca.putImageData(a.Ha,0,0,v,K,E-v,H-K),a.L.drawImage(a.Ba,0,0,a.F,a.J,0,0,a.Z,a.la))}else if(a.Pc){g=h;f=a.xa=0;e=Ps(a,8);h=a.C.fd;m=b=0;p=a.F;v=0;E=a.J;K=0;H=a.C.$d[4]&8?4:1;u=a.C.Cc[19]&15;for(I=a.Ma>a.F?a.Ma-a.F-u>>3:0;c<k;){d=h[c-g];L=4;u||(a.ma&&d===a.M[f]?(b+=L,L=0):a.M[f]=d,f++);if(L){b<p&&(p=b);for(T=0;T<L;T++)$s(a.Ha,b++,m,e[d&255]),d>>=8;b>v&&(v=b);m<E&&(E=m);m>=K&&(K=m+1)}c+=H;if(b>=a.F){b=0;if(++m>a.J)break;c+=I}}u||(a.ma=!0);p<a.F&&(a.Ca.putImageData(a.Ha,0,0,p,E,v-p,K-E),a.L.drawImage(a.Ba,
|
||||
0,0,a.F,a.J,0,0,a.Z,a.la))}else{g=h;d=a.xa=0;f=Ps(a);e=a.C.fd;b=h=0;m=a.F;p=0;v=a.J;E=0;K=a.C.Cc[19]&15;for(H=a.Ma>a.F?a.Ma-a.F-K>>3:0;c<k;){u=c++-g;u=e[u];T=8;K?h?(I=a.F-h,T>I&&(T=I)):(u<<=K,T-=K,a.ma=!1):(a.ma&&u===a.M[d]?(h+=T,T=0):a.M[d]=u,d++);if(T){h<m&&(m=h);for(I=0;I<T;I++)L=Xt[u&2155905152]||0,$s(a.Ha,h++,b,f[L]),u<<=1;h>p&&(p=h);b<v&&(v=b);b>=E&&(E=b+1)}if(h>=a.F){h=0;if(++b>a.J)break;c+=H}}K||(a.ma=!0);m<a.F&&(a.Ca.putImageData(a.Ha,0,0,m,v,p-m,E-v),a.L.drawImage(a.Ba,0,0,a.F,a.J,0,0,a.Z,
|
||||
|
|
@ -591,7 +591,7 @@ l.Gn=function(a,b,c){c&&!t(this)||w(this,a,b,c,this.K.type+".COLOR");this.K.Ze!=
|
|||
function $t(a,b,c,d,e){if(b.ec<b.oh){if(cu||b.Wa[b.ec]!==d)e&&!t(a)||w(a,c,d,e,"CRTC."+b.gg[b.ec]),b.Wa[b.ec]=d;if(12==b.ec||13==b.ec)Wt(a,b)&1?(c=(b.Wa[12]<<8)+b.Wa[13]|0,b.vd!==c&&(b.vd=c,ut(a))):b.Ye||(b.Ye=b.fi);(9==b.ec&&8!=b.Fg||b.ec==Vr&&223==d)&&Ns(a,!0);Os(a)}}function au(a,b,c){var d=b.Xc;w(a,b.port+4,null,c,"MODE",d);return d}function bu(a,b,c){var d=Wt(a,b);b===a.A?(d|=b.fa&48^48,b.Ke=!1):d=(b.fa^=9)|240;b.fa=d;w(a,b.port+6,null,c,b===a.A?"STATUS1":"STATUS",d);return d}
|
||||
var cu=!0,tt=1,jt=2,Bs=3,st=5,rt=6,Ds=7,nt=13,ot=14,ht=15,it=16,pt=17,qt=18,kt=19,lt=20,mt=21,gt=255,Ws=1,Vs=3,os=Ws,ls=Vs,aq=5,cq=7,gs={mda:[os,Ds],cga:[ls,Bs],ega:[aq,Bs],vga:[cq,Bs]},Gr={2:{xg:15700,wg:208,Dg:85,Eg:96}};Gr[Tl]={xg:18432,wg:364,Dg:85,Eg:96};Gr[4]={xg:21850,wg:364,Dg:85,Eg:96};Gr[7]={xg:16700,wg:480,Dg:85,Eg:83};var Cs={6:[1,Tl,!0],7:[2,Tl,!0],8:[6,Tl,!0],9:[4,Tl,!0],10:[Tl,1,!0],11:[Tl,2,!0],0:[1,Tl,!1],1:[2,Tl,!1],2:[6,Tl,!1],3:[4,Tl,!1],4:[Tl,1,!1],5:[Tl,2,!1]},hs=[];
|
||||
hs[tt]=[40,25,1,0,Vs];hs[Bs]=[80,25,1,0,Vs];hs[4]=[320,200,8,192];hs[rt]=[640,200,16,192];hs[Ds]=[80,25,1,0,Ws];hs[nt]=[320,200,8];hs[ot]=[640,200,8];hs[ht]=[640,350,8];hs[it]=[640,350,8];hs[pt]=[640,480,8];hs[qt]=[640,480,8];hs[kt]=[320,200,1];hs[lt]=[320,240,4];hs[mt]=[320,400,4];hs[0]=hs[tt];hs[jt]=hs[Bs];hs[st]=hs[4];
|
||||
var Ks=0,Is=7,Ms=8,Js=0,Ls=112,Hs=128,Ut=256,ct=512,Xs=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Ys=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Qs=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Ss=[2,4,6],Rs=[3,5,Is],Ts=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],
|
||||
var Ks=0,Is=7,Ms=8,Js=0,Ls=112,Hs=128,Vt=256,ct=512,Xs=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Ys=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Qs=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Ss=[2,4,6],Rs=[3,5,Is],Ts=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],
|
||||
fs=[0,255,65280,65535,16711680,16711935,16776960,16777215,-16777216,-16776961,-16711936,-16711681,-65536,-65281,-256,-1],Xt=[0];Xt[128]=1;Xt[32768]=2;Xt[32896]=3;Xt[8388608]=4;Xt[8388736]=5;Xt[8421376]=6;Xt[8421504]=7;Xt[-2147483648]=8;Xt[-2147483520]=9;Xt[-2147450880]=10;Xt[-2147450752]=11;Xt[-2139095040]=12;Xt[-2139094912]=13;Xt[-2139062272]=14;Xt[-2139062144]=15;var kr=[];kr[os]=["MDA",948,720896,4096,0,Tl];kr[ls]=["CGA",980,753664,16384,0,2];kr[aq]=["EGA",980,753664,16384,65536,4];
|
||||
kr[cq]=["VGA",980,753664,16384,262144,7];
|
||||
var is=0,xs=1,ws=2,ms={948:Q.prototype.Cm,949:Q.prototype.Bm,952:Q.prototype.Dm,954:Q.prototype.Em},ns={948:Q.prototype.fo,949:Q.prototype.eo,952:Q.prototype.ho},ps={980:Q.prototype.gm,981:Q.prototype.fm,984:Q.prototype.hm,985:Q.prototype.em,986:Q.prototype.im},qs={980:Q.prototype.In,981:Q.prototype.Hn,984:Q.prototype.Jn,985:Q.prototype.Gn},rs={960:Q.prototype.am,961:Q.prototype.rl,962:Q.prototype.Om,964:Q.prototype.Mm,965:Q.prototype.Lm,974:Q.prototype.vm,975:Q.prototype.um},ss={954:Q.prototype.Mk,
|
||||
|
|
@ -713,182 +713,183 @@ function kx(a,b){if(a.errorCode)return-1;do{if(a.eb&&a.sa.write(a.eb,a.Sa++,b))b
|
|||
var Sw="Hard Drive",Vw=["XTC","ATC","COMPAQ"],Tw=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,
|
||||
6],19:[1023,8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}],Lw=496,ox=1,rx=0,ix=16,qx=3,px=15,lx=16,hx=1,gx=8,fx=16,Pw=64,dx=128,ux=16,vx=32,wx=48,xx=64,yx=
|
||||
112,sx=144,zx=145,tx=240,Ax=2,nx=4,Gx=0,Hx=2,Kx=0,Lx=1,Cx=3,Mx=5,Nx=8,Px=10,$w=12,Rx=15,Ix=224,Jx=228,Rw=0,Ex=4,Tx=20,Qw=0,ax=1,Xw=2,Yw=4,Zw=8,Ww=32,Iw={800:Gw.prototype.Tm,801:Gw.prototype.Um,802:Gw.prototype.Sm},Hw={496:Gw.prototype.nl,497:Gw.prototype.$l,498:Gw.prototype.bm,499:Gw.prototype.cm,500:Gw.prototype.Yl,501:Gw.prototype.Xl,502:Gw.prototype.Zl,503:Gw.prototype.dm},Kw={800:Gw.prototype.ro,801:Gw.prototype.uo,802:Gw.prototype.to,803:Gw.prototype.so,807:Gw.prototype.hi,811:Gw.prototype.hi,
|
||||
815:Gw.prototype.hi},Jw={496:Gw.prototype.An,497:Gw.prototype.Fn,498:Gw.prototype.Dn,499:Gw.prototype.En,500:Gw.prototype.zn,501:Gw.prototype.yn,502:Gw.prototype.Bn,503:Gw.prototype.xn,1014:Gw.prototype.Cn};$a(function(){for(var a=zb(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new Gw(d);yb(d,c)}});function Vx(a){mb.call(this,"Debugger",a);this.F=+a.base||16;this.Ha=null;this.qa=["{","}"];this.Aa=["[","]"];this.Y=this.ha=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
|
||||
815:Gw.prototype.hi},Jw={496:Gw.prototype.An,497:Gw.prototype.Fn,498:Gw.prototype.Dn,499:Gw.prototype.En,500:Gw.prototype.zn,501:Gw.prototype.yn,502:Gw.prototype.Bn,503:Gw.prototype.xn,1014:Gw.prototype.Cn};$a(function(){for(var a=zb(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new Gw(d);yb(d,c)}});function Vx(a){mb.call(this,"Debugger",a);this.F=+a.base||16;this.Ha=null;this.ha=["{","}"];this.Aa=["[","]"];this.Y=this.la=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
|
||||
ba(Vx,mb);Vx.prototype.gh=function(){return-1};Vx.prototype.hh=function(){};Vx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
|
||||
Vx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b};
|
||||
function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
|
||||
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
|
||||
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Wx(e))}return!0}
|
||||
function Yx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.F;for(a.F=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Zx(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Yx(a,b,p,c-1,a.F,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.F=2;continue}if("^O"==k){a.F=8;continue}if("^D"==k){a.F=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
|
||||
k){p=p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;u.length&&$x[k]<=$x[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
|
||||
function ay(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+by(a,h,-1)+b.substr(k)}return b}
|
||||
function cy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}"));b=ay(a,b,'"',7,5,c);if(!b)return d;b=ay(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&dy(a,null,d)}return d}
|
||||
function ey(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=cy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?by(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null==
|
||||
k){p=p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;p="<"==a.ha[0]?$x:ay;if(!p[k]){m=!0;break}u.length&&p[k]<=p[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
|
||||
function by(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+cy(a,h,-1)+b.substr(k)}return b}
|
||||
function dy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=by(a,b,'"',7,5,c);if(!b)return d;b=by(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d}
|
||||
function fy(a,b){var c,d=a.ha[0],e=a.ha[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=dy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?cy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.la}if(null==
|
||||
e)break;b=b.replace(d[0],e.toString())}return b}function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(b,1<b.length?a.F:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Wx(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=Wx(f)}else d||a.P("invalid "+(c?c:"value")+": "+b);else d||a.P("missing "+(c||"value"));return f}
|
||||
function dy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?by(a,c,32,8,1)+" "+c+".":by(a,c,32,16,1)+" "+by(a,c,32,8,1)+" "+by(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return dy(a,b,a.ga[b]);var c=0;for(b in a.ga)dy(a,b,a.ga[b]),c++;return 0<c}
|
||||
function by(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.F){case 2:b=qa(b,0<c?c:0,e);break;case 8:b=ra(b,0<c?(c+2)/3|0:0,!!e);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=99999>=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var $x={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
|
||||
function gy(a){Vx.call(this,a);this.ta=4;this.la=5;this.wa=1048575;this.L=hy(this);this.Ta=hy(this);this.aa=hy(this);this.D=[];this.B=this.Z=this.N=[];iy(this);this.xa=0;jy(this);this.Ba={};ky(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ly(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ly(b,a)})}ba(gy,Vx);l=gy.prototype;
|
||||
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ky(this,a);this.la=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.oa=my;80186<=this.H.ca&&(this.oa=my.slice(),this.oa[15]=ny,80286<=this.H.ca&&(this.oa[15]=oy,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){py(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=qy(d,
|
||||
b,ry),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.la)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=sy[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.la)+" limit="+ty(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+
|
||||
" dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=hy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(uy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+vy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){py(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+
|
||||
a);break a}a=qy(d,b,ry)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.la));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?wy:xy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;m<a.Nb&&1023>u;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4<p)p=4;for(e=0;e<p;e++)c&&(c=","+c),c=qa(v&255,8)+c,v>>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I=
|
||||
null;this.Ma=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.V=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function yy(a,b,c,d,e,f){b=vy(a,b);var g=qy(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=zy(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)}
|
||||
function Ay(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=By(a,b,4),h=By(a,b,4),k=hy(a,By(a,b,4),a.Yc(b,2));b=hy(a,By(a,b,4),a.Yc(b,2));b=vy(a,b).toUpperCase();var k=vy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=zy(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Cy(a,b,c){c=vy(a,c).toUpperCase();Dy(a,c,b)}
|
||||
l.Ym=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=hy(this,z(a)+12,a.Y.U);switch(By(this,d)){case 336:Ay(this,hy(this,a.G,b),!c,!!this.I)}}return!0};
|
||||
l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:yy(this,hy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Dy(this,null,
|
||||
d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=hy(this,b.L,e),this.Ma++?(this.P("TRAPFAULT failed"),Ey(this,this.B,a,!0,!0),this.Ma=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Fy(a)),this.Gd(this.B,a,!0),jy(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:Ay(this,hy(this,b.G,f),!g,!!this.I);break;case 338:Cy(this,d,hy(this,b.J,f))}this.Ca=!1;return!this.I};
|
||||
function ey(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?cy(a,c,32,8,1)+" "+c+".":cy(a,c,32,16,1)+" "+cy(a,c,32,8,1)+" "+cy(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function gy(a,b){if(b)return ey(a,b,a.ga[b]);var c=0;for(b in a.ga)ey(a,b,a.ga[b]),c++;return 0<c}
|
||||
function cy(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.F){case 2:b=qa(b,0<c?c:0,e);break;case 8:b=ra(b,0<c?(c+2)/3|0:0,!!e);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=99999>=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
|
||||
var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
|
||||
function hy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.L=iy(this);this.Ta=iy(this);this.aa=iy(this);this.D=[];this.B=this.Z=this.N=[];jy(this);this.xa=0;ky(this);this.Ba={};ly(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return my(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return my(b,a)})}ba(hy,Vx);l=hy.prototype;
|
||||
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ly(this,a);this.ma=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.qa=ny;80186<=this.H.ca&&(this.qa=ny.slice(),this.qa[15]=oy,80286<=this.H.ca&&(this.qa[15]=py,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){qy(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=ry(d,
|
||||
b,sy),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ma)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=ty[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.ma)+" limit="+uy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+
|
||||
" dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=iy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(vy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+wy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){qy(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+
|
||||
a);break a}a=ry(d,b,sy)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.ma));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?xy:yy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;m<a.Nb&&1023>u;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4<p)p=4;for(e=0;e<p;e++)c&&(c=","+c),c=qa(v&255,8)+c,v>>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I=
|
||||
null;this.Ma=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.V=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function zy(a,b,c,d,e,f){b=wy(a,b);var g=ry(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=Ay(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)}
|
||||
function By(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=Cy(a,b,4),h=Cy(a,b,4),k=iy(a,Cy(a,b,4),a.Yc(b,2));b=iy(a,Cy(a,b,4),a.Yc(b,2));b=wy(a,b).toUpperCase();var k=wy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=Ay(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Dy(a,b,c){c=wy(a,c).toUpperCase();Ey(a,c,b)}
|
||||
l.Ym=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=iy(this,z(a)+12,a.Y.U);switch(Cy(this,d)){case 336:By(this,iy(this,a.G,b),!c,!!this.I)}}return!0};
|
||||
l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:zy(this,iy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Ey(this,null,
|
||||
d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=iy(this,b.L,e),this.Ma++?(this.P("TRAPFAULT failed"),Fy(this,this.B,a,!0,!0),this.Ma=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Gy(a)),this.Gd(this.B,a,!0),ky(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:By(this,iy(this,b.G,f),!g,!!this.I);break;case 338:Dy(this,d,iy(this,b.J,f))}this.Ca=!1;return!this.I};
|
||||
l.$m=function(a){var b=this.H,c=b.D&255,d=b.D>>8&255,e=b.G&65535,f=b.I&65535,g=b.L&65535,h=b.J&65535,k=b.oa.U;if(null==this.V){if(67==d){if(609437257==b.ia((b.Z.U<<4)+10)||1111835735==b.ia((b.Z.U<<4)+95))return!0;Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x68 handling enabled",128),a.I=a.V=!0):(Lb(a,"INT 0x68 monitoring enabled",128),a.V=!1)}}(this))}return!0}switch(d){case 67:this.V&&(b.D=b.D&-65536|62342);break;case 68:this.V&&(a=Wd(b.Z,this.yl.bind(this)))&&
|
||||
(b.J=a[0],ne(b,a[1]));break;case 72:Dy(this,null,e);break;case 80:32==c?yy(this,hy(this,h,k),0,f,!0,!!this.V):128>c?yy(this,hy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):Ay(this,hy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1};
|
||||
l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ly(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.C.length-1&&(b=d.C[++d.A])):40==a.keyCode&&(0<d.A?b=d.C[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.na[b]=c,Ya(c,function(){if(d.va){var a=d.va.value;
|
||||
d.va.value="";ly(d,a,!0);return!0}return!1}),!0;case "step":return this.na[b]=c,Ya(c,function(a){var b=!1;Jb(d,!0)||(Kb(d,!0),b=Gy(d,a?1:0),Kb(d,!1));return b}),!0}return!1};l.ld=function(){this.va&&this.va.focus()};function Hy(a){return!(!(a.H&&a.H.qa&1)||a.H.O&131072)}
|
||||
function qy(a,b,c){var d=Hy(a)?ry:Iy;c||(c=d);if(c==d){if(b===a.H.Z.U)return a.H.Z;if(b===a.H.Ca.U)return a.H.Ca;if(b===a.H.oa.U)return a.H.oa;if(b===a.H.Y.U)return a.H.Y;if(80386<=a.H.ca){if(b===a.H.Ga.U)return a.H.Ga;if(b===a.H.Ha.U)return a.H.Ha}if(a.Da&&c==ry||!a.ab)return null}a=a.ab;if(c!=ry)a.mh(b),a.Ka=65535,a.Nb=65536;else{var e;c=a.gc;b&=65535;b&4?(d=c.Eb.ua,e=d+c.Eb.Ka|0):(d=c.Kb,e=c.Pc);d=d+(b&65528)|0;if(e-d|0){e=xg(c,d+0,2);var f=xg(c,d+4,2),g=f&7936,h=xg(c,d+2,2)|(f&255)<<16,k=xg(c,
|
||||
d+6,2);80386<=c.ca&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.U=b;a.ua=h;a.Ka=e;a.Nb=(e>>>0)+1;a.mb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=qy(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Jy)|0,b&&Ky(this,a,b));return c};
|
||||
l.jb=function(a,b){return a.Hb?By(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Jy)|0,b&&Ky(this,a,b));return c};function By(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Jy)|0,c&&Ky(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Jy)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&Ky(this,a,c);d||Bd(this.H,!0)}};
|
||||
l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Jy?this.H.fb(d,b):Jc(this.ka,d,b),c&&Ky(this,a,c),Bd(this.H,!0))};function hy(a,b,c,d,e,f,g){return Ly(a,{},b,c,d,e,f,g)}function Ly(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Hy(a)?ry:Iy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function My(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Ny(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}}
|
||||
function Oy(a,b,c){if(null!=b.U&&(a=qy(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0<a.Nb)return!1;c&&(b.Ja=d,b.Hb=4==a.W,b.dc=4==a.Jc)}return!0}
|
||||
function Py(a,b,c,d){var e,f=c?a.L:a.Ta;c=d?Qy:f.type;var g=f.Ja,h=f.U,f=f.ya;if(void 0!==b){b=ey(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Iy;break;case "#":c=ry;break;case "%":c=Ry;e=b.charAt(1);"%"==e&&(c=Jy,e+=e);g=0;h=null;break;default:0<=f&&(c=Qy),e=""}e&&(b=b.substr(e.length),f-=e.length);e=b;var k;if(e.match(/^[a-z_][a-z0-9_]*$/i))for(var m=e.toUpperCase(),p=0;p<a.D.length;p++){e=a.D[p];var v=e.Fd[m];if(void 0!==v){m=v.o;void 0!==m&&(k=v.s,void 0===k&&(k=e.U),k=hy(a,m,k,v.p));
|
||||
break}}if(e=k)return e;0>f?null!=h?(g=cy(a,b,void 0),f=null):(f=cy(a,b,void 0),null==f&&(g=null)):(h=cy(a,b.substring(0,f),void 0),g=cy(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=hy(a,g,h,f,c),d||Oy(a,e,!0)||(a.P("invalid offset: "+Fy(e)),e=null));return e}function Sy(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Py(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")};
|
||||
function Ky(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Oy(a,b)||(b.Ja=0,b.ya=null))}function uy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Fy(a){var b;switch(a.type){case Iy:case Ty:b="&";break;case ry:b="#";break;case Ry:b="%";break;case Jy:b="%%";break;default:b=a.U?"":"%"}return a.type>=Ry||null==a.U?b+q(a.ya):b+uy(a.Ja,a.U,a.dc)}
|
||||
function vy(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
|
||||
function py(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Py(a,c));if(-1===e){a.P("invalid address: "+c);return}f=e>>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<<a.H.hb,8)+" %%"+q(d.ya,8)+" "+sa(d.ve)+" "+sa(d.size)+
|
||||
" "+h),c!=ad&&c!=bd&&(c=-1),h=0),e+=a.H.Ng,f++}function Uy(a,b,c){a=q(a)+" "+q(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-")+(b&4?"U":"S");a+=b&2?"W":"R";return a+=b&1?"P":"N"}function zy(a,b,c){var d=[],e;for(e=null;e=Wb(a.pa,"Disk",e);){var f=e,g=b,h=c,d={};if(f.C)for(var k=0;k<f.C.length;k++){var m=f.C[k];if(m.Rf==g&&(m=m.nd[h])){for(var p in m.ee)f=m.ee[p],d[f[1]]=f[0];break}}if(d.length)break}return d}
|
||||
function ky(a,b){a.ba=a;a.ic=a.wl=1073741824;a.za=null;b=a.Cg(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb)0<=Ha(b,c)&&(a.ic|=Rb[c],a.P(c+" messages enabled"));jy(a)}function zl(a,b,c){for(var d in Rb)if(b==Rb[d]){a.Ba[d]=c;break}}l.gh=function(a,b){var c;a=a.toUpperCase();null==b?c=Ha(Vy,a):(c=Ha(Vy,a.substr(b,3)),0>c&&(c=Ha(Vy,a.substr(b,2))));return c};
|
||||
function Wy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Xy:case Yy:case Zy:case $y:case az:case bz:case cz:case dz:c=2;break;case ez:case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz+oz:case nz+pz:case nz+qz:case nz+rz:case nz+sz:case nz+tz:c=4;break;case uz:case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:c=8;break;case Hz:c=a.ta}return c?q(d,c):"??"}
|
||||
l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Xy:b=c.D&255;break;case Yy:b=c.I&255;break;case Zy:b=c.L&255;break;case $y:b=c.G&255;break;case az:b=c.D>>8&255;break;case bz:b=c.I>>8&255;break;case cz:b=c.L>>8&255;break;case dz:b=c.G>>8&255;break;case ez:b=c.D&65535;break;case fz:b=c.I&65535;break;case gz:b=c.L&65535;break;case hz:b=c.G&65535;break;case iz:b=z(c)&65535;break;case jz:b=c.M&65535;break;case kz:b=c.K&65535;break;case lz:b=c.J&65535;break;case mz:b=A(c)&65535;break;case Hz:b=
|
||||
qe(c);break;case nz+oz:b=c.oa.U;break;case nz+pz:b=c.Z.U;break;case nz+qz:b=c.Y.U;break;case nz+rz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Cz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case uz:b=c.D;break;case vz:b=c.I;break;case wz:b=c.L;break;case xz:b=c.G;break;case yz:b=z(c);break;case zz:b=c.M;break;case Az:b=c.K;break;case Bz:b=c.J;break;case Cz:b=c.qa;break;case Dz:b=c.Og;break;case Ez:b=c.Cd;break;case Fz:b=c.Wc;break;case nz+sz:b=c.Ga.U;break;case nz+tz:b=c.Ha.U;break;case Gz:b=A(c)}}}return b};
|
||||
function Iz(a,b){b=ey(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Wy(a,e)+b.substr(c+1+Vy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Py(a,e))?(d=e+' "'+vy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Py(a,e))?(Ky(a,d),
|
||||
d=e+' "'+vy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Fy(hy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))};
|
||||
function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Jz.indexOf(b),!d)){var g=Kz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Iz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+uy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d}
|
||||
function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.be+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+uy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Lz(this);if(this.Ga){var a=this.Ga;this.Ga=null;ly(this,a)}};
|
||||
function jy(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Mz);for(c=0;c<a.O.length;c++)a.O[c]=hy(a);a.ma=0;b||a.P("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),c=0;c<a.K.length;c++)a.K[c]=[c,0]}else a.O&&a.O.length&&!b&&a.P("instruction history buffer freed"),a.ma=0,a.O=[],a.K=[]}function Nz(a,b){if(!Oz(a))return!1;a.H.Uf(b);return!0}
|
||||
function Gy(a,b,c,d){if(!Oz(a))return!1;a.M=0;do{b||Ig(a)&&Lg(a,a.H.da,0);try{var e=a.H.Lg(b);0<e&&(a.M+=e,Gd(a.H,e,!0),Cd(a.H,e),a.Y++)}catch(g){if("number"!=typeof g){var f=g;a.M=0;Fb(a.H,f.stack||f.message)}}}while(a.H.N&3312);!1!==d&&Bd(a.H);Lz(a,c||!1);return 0<a.M}l.Jb=function(a){this.H&&this.H.Jb(a)};function Lz(a,b){void 0===b&&(b=!0);a.L=hy(a,A(a.H),a.H.Z.U);b&&1!=a.J?Pz(a):Qz(a)}
|
||||
function Oz(a){var b;if(b=a.H&&Gb(a.H))b=a.H,b.ea.Yb?b=!0:(b.P(b.toString()+" not powered"),b=!1);b&&!Jb(a.H)?(a=a.H,a.ea.error?(a.P(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Xb=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Wb=function(a,b){b&&this.P(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){jy(this);this.Y=this.ha=0;this.za=null;this.M=0;this.L=hy(this,A(this.H),this.H.Z.U);this.ea.wb=!1;Rz(this);a||Lz(this)};
|
||||
l.save=function(){var a=new Wf(this);a.set(0,My(this.L));a.set(1,My(this.aa));a.set(2,[this.C,this.da,this.ic]);a.set(3,this.D);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Ny(a[b++]),this.aa=Ny(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.da=a[b][1],this.ic|=a[b][2]);a[3]&&(this.D=a[3]);return!0};l.start=function(a,b){this.J||this.P("running");this.ea.wb=!0;this.ib=a;this.jd=b};
|
||||
l.stop=function(a,b){if(this.ea.wb){this.ea.wb=!1;this.M=b-this.jd;if(!this.J){b="stopped";if(this.M){a-=this.ib;var c=0<a?Math.round(1E3*this.M/a):0;b+=" (";Ig(this)&&(b+=this.Y+" opcodes, ",this.ha-=this.Y,this.Y=0);b+=this.M+" cycles, "+a+" ms, "+c+" hz)"}else t(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.P(b)}Lz(this,!0);this.ld();Rz(this,this.H.da)}};function Ig(a){return 1<a.B.length||!!a.xa||t(a,16)}
|
||||
function Lg(a,b,c){var d=a.H;if(0<c&&(a.xa&&!--a.xa||Sz(a,b,1,a.B)))return!0;0<=c&&a.K.length&&(a.Y++,b=xg(d,b),null!=b&&(a.K[b][1]++,Ly(a,a.O[a.ma],A(d),d.Z.U),++a.ma==a.O.length&&(a.ma=0)));return!1}function pd(a,b,c){return Sz(a,b,c||1,a.Z)?(a.Jb(!0),!0):!1}function rd(a,b,c){return Sz(a,b,c||1,a.N)?(a.Jb(!0),!0):!1}function Pc(a,b,c){a.P("break on input from port "+sa(b)+": "+q(c));a.Jb(!0)}function Tc(a,b,c){a.P("break on output to port "+sa(b)+": "+q(c));a.Jb(!0)}
|
||||
function iy(a){var b,c;a.B=["bp"];if(a.Z)for(b=1;b<a.Z.length;b++)c=a.Z[b],kf(a.H,a.Sb(c),!1,c.type==Jy);a.Z=["br"];if(a.N)for(b=1;b<a.N.length;b++)c=a.N[b],kf(a.H,a.Sb(c),!0,c.type==Jy);a.N=["bw"];a.Da=0}
|
||||
l.Gd=function(a,b,c){var d=!0;c||Ey(this,a,b,!1,!0);if(a!=this.B){var e=this.Sb(b);if(-1===e)this.P("invalid address: "+Fy(b)),d=!1;else{var f=this.H,g=b.type==Jy;(g?f.sc:f.aa)[e>>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Tz(this,a,a.length-1,"set"),jy(this)));return d};
|
||||
function Ey(a,b,c,d,e){for(var f=!1,g=Uz(a,a.Sb(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==Uz(a,a.Sb(k))||-1===g&&c.U==k.U&&c.Ja==k.Ja)if(!d||k.Jd){f=!0;k.Jd||e||Tz(a,b,h,"cleared");b.splice(h,1);b!=a.B&&kf(a.H,g,b==a.N,k.type==Jy);k.Jd||jy(a);break}}return f}function Vz(a,b){for(var c=1;c<b.length;c++)Tz(a,b,c);return b.length-1}function Tz(a,b,c,d){c=b[c];a.P(b[0]+" "+Fy(c)+(d?" "+d:c.Yk?' "'+c.Yk+'"':""))}
|
||||
function Rz(a,b){if(void 0!==b)Sz(a,b,1,a.B,!0),a.J=0;else for(b=1;b<a.B.length;b++){var c=a.B[b];if(c.Jd){if(!Ey(a,a.B,c,!0))break;b=0}}}function Uz(a,b){-1!==b&&(a=a.wa&-65536,(b&a)==a&&(b&=1048575));return b}
|
||||
function Sz(a,b,c,d,e){var f=!1;if(!a.Da++){b=Uz(a,b);t(a,-2147483632)&&204==xg(a.H,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Jd){null!=h.U&&(h.ya=null);for(var k=Uz(a,a.Sb(h)),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.Jd&&(Ey(a,d,h,!0),e=!0);if(p=h.sl){for(var f=!1,v=0;v<p.length;v++)if(!Wz(a,p[v],!0)){if(p[v].indexOf("if")){f=!0;break}for(var u=v+1;u<p.length&&p[u].indexOf("else");u++)v++;if(u==p.length){f=!0;break}}a.H.ea.wb||(f=!0)}if(f){e||Tz(a,d,g,"hit");break}}}}}a.Da--;return f}
|
||||
function Xz(a,b,c,d){for(var e=hy(a,b.Ja,b.U,b.ya,b.type),f=a.Ia(b,1),g=4,h=0,k=!1,m=!1;(102==f||103==f)&&g--;)102==f?k||(b.Hb=!b.Hb,k=!0):m||(b.dc=!b.dc,m=!0),h++,f=a.Ia(b,1);var g=-1,p=Yz,k=a.oa[f],m=k[0];m==Zz&&(m=a.Ia(b,1),k=$z[m]||ny,f|=m<<8,m=k[0]);if(m==aA){var g=a.Ia(b,1),v;v=null;var u=g>>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=bA[f])&&(v=u[E]);v&&(p=cA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=dA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==eA?
|
||||
p="CWDE":m==fA?p="CDQ":m>=gA&&m<=hA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>iA);m==jA&&(f==kA?v="[%800]":f==lA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=I&mA;if(T!=nA)if(T==oA)E=!1;else{var L=I&pA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L<qA){L=a;H=I;var ua=u;I=b;var ca="",xb=g>>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!I.dc&&6==za||I.dc&&5==za))xb=2;else{if(I.dc)if(4!=za)za+=
|
||||
8;else{var ca=L,cb=xb,Sa=I,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=rA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=rA[rc+8],db&&(ib+="*"+(1<<db)));cb||5!=rb||(ib&&(ib+="+"),ib+=q(By(ca,Sa,4)));ca=ib}ca||(ca=rA[za])}1==xb?(L=L.Ia(I,1),ca=L&128?ca+("-"+q(-(L<<24>>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),I.dc?(L=By(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=mA;H==S&&(H=I.Hb?sA:U);switch(H){case tA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16";
|
||||
break}L="WORD";break;case sA:L="DWORD";break;case uA:if(T){L="INT32";break}case vA:L="REAL32";break;case wA:if(T){L="INT64";break}case xA:L="REAL64";break;case yA:L="REAL80";break;case zA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=AA(L,za,H,I);H=ca}else H=L==qA?AA(a,g&7,I,b):AA(a,g>>3&7,I,b);else if(L==BA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&mA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case CA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(By(H,L,4));break}case U:I=q(H.Yc(L,2),4);break;
|
||||
case tA:L=hy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Fy(L);H=DA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+sa(T)+")"}H=I}else L==EA?(b.dc?(H=8,I=By(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==FA?(H=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),I=b.Ja+H&(b.Hb?-1:65535),H=q(I,b.Hb?8:4),I=DA(a,hy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==GA?"ST":T==HA?"ST("+(g&7)+")":AA(a,(I&IA)>>8,I,b):L==JA?H=AA(a,(I&IA)>>8,KA,b):L==LA?H="DS:[SI]":L==MA&&(H="ES:[DI]");if(!H||!H.length){v="INVALID";break}0<
|
||||
v.length&&(v+=",");v+=H||"???"}}}g="";k=Fy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.ca<NA[f]&&(c=NA[f]+" CPU only");c&&E&&(k=Aa(k,e.dc?74:56)+";"+c,k=a.H.ea.He?k+("cycles="+Dd(a.H).toString()+" cs="+q(a.H.T.uf)):k+(null!=d?"="+d.toString():""));OA(b,E,h);return k}
|
||||
function AA(a,b,c,d){var e=c&pA;if(e==KA){if(b>tz||b>=sz&&80386>a.H.ca)return"??";b+=nz}else if(e==PA)b+=Cz;else if(e==QA)b+=RA;else if(e==SA)b+=TA;else if(a=c&mA,a>=U&&(b<ez&&(b+=ez-Xy),a==sA||a==S&&d.Hb))b+=uz-ez;return Vy[b]}
|
||||
function UA(a,b){switch(b){case "V":a=hg(a.H);break;case "D":a=a.H.O&1024;break;case "I":a=a.H.O&512;break;case "T":a=a.H.O&256;break;case "S":a=gg(a.H);break;case "Z":a=fg(a.H);break;case "A":a=eg(a.H);break;case "P":a=dg(a.H);break;case "C":a=cg(a.H);break;default:a=0}return b+(a?"1":"0")+" "}function ty(a){return q(a,a&-65536?8:4)}function VA(a,b){b>=ez&&b<=lz&&4<a.ta&&(b+=uz-ez);var c=Vy[b];b==Cz&&80286==a.H.ca&&(c="MS");return c+"="+Wy(a,b)+" "}
|
||||
function WA(a,b,c){return b.$b+"="+q(b.U,4)+(c?"["+q(b.ua,a.la)+","+ty(b.Ka)+"]":"")}function XA(a,b,c,d,e){return b+"="+(null!=c?q(c,4):"")+"["+q(d,a.la)+","+q(e-d,4)+"]"}
|
||||
function YA(a,b){var c;void 0===b&&(b=Hy(a));c=VA(a,ez)+VA(a,hz)+VA(a,fz)+VA(a,gz)+(4<a.ta?"\n":"")+VA(a,iz)+VA(a,jz)+VA(a,kz)+VA(a,lz)+"\n"+WA(a,a.H.Y,b)+" "+WA(a,a.H.Ca,b)+" "+WA(a,a.H.oa,b)+" ";if(b){var d="TR="+q(a.H.la.U,4),e=a.ka,e="A20="+(e.J||e.N!=e.C?"OFF ":"ON ");80386>a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+WA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=WA(a,a.H.Ga,b)+" "+WA(a,a.H.Ha,b)+"\n");c+=XA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+XA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+XA(a,"ID",
|
||||
null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+VA(a,Cz);80386<=a.H.ca&&(c+=VA(a,Ez)+VA(a,Fz))}else 80386<=a.H.ca&&(c+=WA(a,a.H.Ga,b)+" "+WA(a,a.H.Ha,b)+" ");return c+=VA(a,Hz)+UA(a,"V")+UA(a,"D")+UA(a,"I")+UA(a,"T")+UA(a,"S")+UA(a,"Z")+UA(a,"A")+UA(a,"P")+UA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
(b.J=a[0],ne(b,a[1]));break;case 72:Ey(this,null,e);break;case 80:32==c?zy(this,iy(this,h,k),0,f,!0,!!this.V):128>c?zy(this,iy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):By(this,iy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1};
|
||||
l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",my(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.C.length-1&&(b=d.C[++d.A])):40==a.keyCode&&(0<d.A?b=d.C[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.na[b]=c,Ya(c,function(){if(d.va){var a=d.va.value;
|
||||
d.va.value="";my(d,a,!0);return!0}return!1}),!0;case "step":return this.na[b]=c,Ya(c,function(a){var b=!1;Jb(d,!0)||(Kb(d,!0),b=Hy(d,a?1:0),Kb(d,!1));return b}),!0}return!1};l.ld=function(){this.va&&this.va.focus()};function Iy(a){return!(!(a.H&&a.H.qa&1)||a.H.O&131072)}
|
||||
function ry(a,b,c){var d=Iy(a)?sy:Jy;c||(c=d);if(c==d){if(b===a.H.Z.U)return a.H.Z;if(b===a.H.Ca.U)return a.H.Ca;if(b===a.H.oa.U)return a.H.oa;if(b===a.H.Y.U)return a.H.Y;if(80386<=a.H.ca){if(b===a.H.Ga.U)return a.H.Ga;if(b===a.H.Ha.U)return a.H.Ha}if(a.Da&&c==sy||!a.ab)return null}a=a.ab;if(c!=sy)a.mh(b),a.Ka=65535,a.Nb=65536;else{var e;c=a.gc;b&=65535;b&4?(d=c.Eb.ua,e=d+c.Eb.Ka|0):(d=c.Kb,e=c.Pc);d=d+(b&65528)|0;if(e-d|0){e=xg(c,d+0,2);var f=xg(c,d+4,2),g=f&7936,h=xg(c,d+2,2)|(f&255)<<16,k=xg(c,
|
||||
d+6,2);80386<=c.ca&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.U=b;a.ua=h;a.Ka=e;a.Nb=(e>>>0)+1;a.mb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=ry(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Ky)|0,b&&Ly(this,a,b));return c};
|
||||
l.jb=function(a,b){return a.Hb?Cy(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Ky)|0,b&&Ly(this,a,b));return c};function Cy(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Ky)|0,c&&Ly(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Ky)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&Ly(this,a,c);d||Bd(this.H,!0)}};
|
||||
l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Ky?this.H.fb(d,b):Jc(this.ka,d,b),c&&Ly(this,a,c),Bd(this.H,!0))};function iy(a,b,c,d,e,f,g){return My(a,{},b,c,d,e,f,g)}function My(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Iy(a)?sy:Jy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Ny(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Oy(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}}
|
||||
function Py(a,b,c){if(null!=b.U&&(a=ry(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0<a.Nb)return!1;c&&(b.Ja=d,b.Hb=4==a.W,b.dc=4==a.Jc)}return!0}
|
||||
function Qy(a,b,c,d){var e,f=c?a.L:a.Ta;c=d?Ry:f.type;var g=f.Ja,h=f.U,f=f.ya;if(void 0!==b){b=fy(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Jy;break;case "#":c=sy;break;case "%":c=Sy;e=b.charAt(1);"%"==e&&(c=Ky,e+=e);g=0;h=null;break;default:0<=f&&(c=Ry),e=""}e&&(b=b.substr(e.length),f-=e.length);e=b;var k;if(e.match(/^[a-z_][a-z0-9_]*$/i))for(var m=e.toUpperCase(),p=0;p<a.D.length;p++){e=a.D[p];var v=e.Fd[m];if(void 0!==v){m=v.o;void 0!==m&&(k=v.s,void 0===k&&(k=e.U),k=iy(a,m,k,v.p));
|
||||
break}}if(e=k)return e;0>f?null!=h?(g=dy(a,b,void 0),f=null):(f=dy(a,b,void 0),null==f&&(g=null)):(h=dy(a,b.substring(0,f),void 0),g=dy(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=iy(a,g,h,f,c),d||Py(a,e,!0)||(a.P("invalid offset: "+Gy(e)),e=null));return e}function Ty(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Qy(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")};
|
||||
function Ly(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Py(a,b)||(b.Ja=0,b.ya=null))}function vy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Gy(a){var b;switch(a.type){case Jy:case Uy:b="&";break;case sy:b="#";break;case Sy:b="%";break;case Ky:b="%%";break;default:b=a.U?"":"%"}return a.type>=Sy||null==a.U?b+q(a.ya):b+vy(a.Ja,a.U,a.dc)}
|
||||
function wy(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
|
||||
function qy(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Qy(a,c));if(-1===e){a.P("invalid address: "+c);return}f=e>>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<<a.H.hb,8)+" %%"+q(d.ya,8)+" "+sa(d.ve)+" "+sa(d.size)+
|
||||
" "+h),c!=ad&&c!=bd&&(c=-1),h=0),e+=a.H.Ng,f++}function Vy(a,b,c){a=q(a)+" "+q(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-")+(b&4?"U":"S");a+=b&2?"W":"R";return a+=b&1?"P":"N"}function Ay(a,b,c){var d=[],e;for(e=null;e=Wb(a.pa,"Disk",e);){var f=e,g=b,h=c,d={};if(f.C)for(var k=0;k<f.C.length;k++){var m=f.C[k];if(m.Rf==g&&(m=m.nd[h])){for(var p in m.ee)f=m.ee[p],d[f[1]]=f[0];break}}if(d.length)break}return d}
|
||||
function ly(a,b){a.ba=a;a.ic=a.wl=1073741824;a.za=null;b=a.Cg(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb)0<=Ha(b,c)&&(a.ic|=Rb[c],a.P(c+" messages enabled"));ky(a)}function zl(a,b,c){for(var d in Rb)if(b==Rb[d]){a.Ba[d]=c;break}}l.gh=function(a,b){var c;a=a.toUpperCase();null==b?c=Ha(Wy,a):(c=Ha(Wy,a.substr(b,3)),0>c&&(c=Ha(Wy,a.substr(b,2))));return c};
|
||||
function Xy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Yy:case Zy:case $y:case az:case bz:case cz:case dz:case ez:c=2;break;case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz:case oz+pz:case oz+qz:case oz+rz:case oz+sz:case oz+tz:case oz+uz:c=4;break;case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:case Hz:c=8;break;case Iz:c=a.ta}return c?q(d,c):"??"}
|
||||
l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Yy:b=c.D&255;break;case Zy:b=c.I&255;break;case $y:b=c.L&255;break;case az:b=c.G&255;break;case bz:b=c.D>>8&255;break;case cz:b=c.I>>8&255;break;case dz:b=c.L>>8&255;break;case ez:b=c.G>>8&255;break;case fz:b=c.D&65535;break;case gz:b=c.I&65535;break;case hz:b=c.L&65535;break;case iz:b=c.G&65535;break;case jz:b=z(c)&65535;break;case kz:b=c.M&65535;break;case lz:b=c.K&65535;break;case mz:b=c.J&65535;break;case nz:b=A(c)&65535;break;case Iz:b=
|
||||
qe(c);break;case oz+pz:b=c.oa.U;break;case oz+qz:b=c.Z.U;break;case oz+rz:b=c.Y.U;break;case oz+sz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Dz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case vz:b=c.D;break;case wz:b=c.I;break;case xz:b=c.L;break;case yz:b=c.G;break;case zz:b=z(c);break;case Az:b=c.M;break;case Bz:b=c.K;break;case Cz:b=c.J;break;case Dz:b=c.qa;break;case Ez:b=c.Og;break;case Fz:b=c.Cd;break;case Gz:b=c.Wc;break;case oz+tz:b=c.Ga.U;break;case oz+uz:b=c.Ha.U;break;case Hz:b=A(c)}}}return b};
|
||||
function Jz(a,b){b=fy(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Xy(a,e)+b.substr(c+1+Wy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Qy(a,e))?(d=e+' "'+wy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Qy(a,e))?(Ly(a,d),
|
||||
d=e+' "'+wy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Gy(iy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))};
|
||||
function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Kz.indexOf(b),!d)){var g=Lz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Jz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+vy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d}
|
||||
function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.be+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+vy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Mz(this);if(this.Ga){var a=this.Ga;this.Ga=null;my(this,a)}};
|
||||
function ky(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Nz);for(c=0;c<a.O.length;c++)a.O[c]=iy(a);a.oa=0;b||a.P("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),c=0;c<a.K.length;c++)a.K[c]=[c,0]}else a.O&&a.O.length&&!b&&a.P("instruction history buffer freed"),a.oa=0,a.O=[],a.K=[]}function Oz(a,b){if(!Pz(a))return!1;a.H.Uf(b);return!0}
|
||||
function Hy(a,b,c,d){if(!Pz(a))return!1;a.M=0;do{b||Ig(a)&&Lg(a,a.H.da,0);try{var e=a.H.Lg(b);0<e&&(a.M+=e,Gd(a.H,e,!0),Cd(a.H,e),a.Y++)}catch(g){if("number"!=typeof g){var f=g;a.M=0;Fb(a.H,f.stack||f.message)}}}while(a.H.N&3312);!1!==d&&Bd(a.H);Mz(a,c||!1);return 0<a.M}l.Jb=function(a){this.H&&this.H.Jb(a)};function Mz(a,b){void 0===b&&(b=!0);a.L=iy(a,A(a.H),a.H.Z.U);b&&1!=a.J?Qz(a):Rz(a)}
|
||||
function Pz(a){var b;if(b=a.H&&Gb(a.H))b=a.H,b.ea.Yb?b=!0:(b.P(b.toString()+" not powered"),b=!1);b&&!Jb(a.H)?(a=a.H,a.ea.error?(a.P(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Xb=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Wb=function(a,b){b&&this.P(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ky(this);this.Y=this.la=0;this.za=null;this.M=0;this.L=iy(this,A(this.H),this.H.Z.U);this.ea.wb=!1;Sz(this);a||Mz(this)};
|
||||
l.save=function(){var a=new Wf(this);a.set(0,Ny(this.L));a.set(1,Ny(this.aa));a.set(2,[this.C,this.da,this.ic]);a.set(3,this.D);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Oy(a[b++]),this.aa=Oy(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.da=a[b][1],this.ic|=a[b][2]);a[3]&&(this.D=a[3]);return!0};l.start=function(a,b){this.J||this.P("running");this.ea.wb=!0;this.ib=a;this.jd=b};
|
||||
l.stop=function(a,b){if(this.ea.wb){this.ea.wb=!1;this.M=b-this.jd;if(!this.J){b="stopped";if(this.M){a-=this.ib;var c=0<a?Math.round(1E3*this.M/a):0;b+=" (";Ig(this)&&(b+=this.Y+" opcodes, ",this.la-=this.Y,this.Y=0);b+=this.M+" cycles, "+a+" ms, "+c+" hz)"}else t(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.P(b)}Mz(this,!0);this.ld();Sz(this,this.H.da)}};function Ig(a){return 1<a.B.length||!!a.xa||t(a,16)}
|
||||
function Lg(a,b,c){var d=a.H;if(0<c&&(a.xa&&!--a.xa||Tz(a,b,1,a.B)))return!0;0<=c&&a.K.length&&(a.Y++,b=xg(d,b),null!=b&&(a.K[b][1]++,My(a,a.O[a.oa],A(d),d.Z.U),++a.oa==a.O.length&&(a.oa=0)));return!1}function pd(a,b,c){return Tz(a,b,c||1,a.Z)?(a.Jb(!0),!0):!1}function rd(a,b,c){return Tz(a,b,c||1,a.N)?(a.Jb(!0),!0):!1}function Pc(a,b,c){a.P("break on input from port "+sa(b)+": "+q(c));a.Jb(!0)}function Tc(a,b,c){a.P("break on output to port "+sa(b)+": "+q(c));a.Jb(!0)}
|
||||
function jy(a){var b,c;a.B=["bp"];if(a.Z)for(b=1;b<a.Z.length;b++)c=a.Z[b],kf(a.H,a.Sb(c),!1,c.type==Ky);a.Z=["br"];if(a.N)for(b=1;b<a.N.length;b++)c=a.N[b],kf(a.H,a.Sb(c),!0,c.type==Ky);a.N=["bw"];a.Da=0}
|
||||
l.Gd=function(a,b,c){var d=!0;c||Fy(this,a,b,!1,!0);if(a!=this.B){var e=this.Sb(b);if(-1===e)this.P("invalid address: "+Gy(b)),d=!1;else{var f=this.H,g=b.type==Ky;(g?f.sc:f.aa)[e>>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Uz(this,a,a.length-1,"set"),ky(this)));return d};
|
||||
function Fy(a,b,c,d,e){for(var f=!1,g=Vz(a,a.Sb(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==Vz(a,a.Sb(k))||-1===g&&c.U==k.U&&c.Ja==k.Ja)if(!d||k.Jd){f=!0;k.Jd||e||Uz(a,b,h,"cleared");b.splice(h,1);b!=a.B&&kf(a.H,g,b==a.N,k.type==Ky);k.Jd||ky(a);break}}return f}function Wz(a,b){for(var c=1;c<b.length;c++)Uz(a,b,c);return b.length-1}function Uz(a,b,c,d){c=b[c];a.P(b[0]+" "+Gy(c)+(d?" "+d:c.Yk?' "'+c.Yk+'"':""))}
|
||||
function Sz(a,b){if(void 0!==b)Tz(a,b,1,a.B,!0),a.J=0;else for(b=1;b<a.B.length;b++){var c=a.B[b];if(c.Jd){if(!Fy(a,a.B,c,!0))break;b=0}}}function Vz(a,b){-1!==b&&(a=a.wa&-65536,(b&a)==a&&(b&=1048575));return b}
|
||||
function Tz(a,b,c,d,e){var f=!1;if(!a.Da++){b=Vz(a,b);t(a,-2147483632)&&204==xg(a.H,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Jd){null!=h.U&&(h.ya=null);for(var k=Vz(a,a.Sb(h)),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.Jd&&(Fy(a,d,h,!0),e=!0);if(p=h.sl){for(var f=!1,v=0;v<p.length;v++)if(!Xz(a,p[v],!0)){if(p[v].indexOf("if")){f=!0;break}for(var u=v+1;u<p.length&&p[u].indexOf("else");u++)v++;if(u==p.length){f=!0;break}}a.H.ea.wb||(f=!0)}if(f){e||Uz(a,d,g,"hit");break}}}}}a.Da--;return f}
|
||||
function Yz(a,b,c,d){for(var e=iy(a,b.Ja,b.U,b.ya,b.type),f=a.Ia(b,1),g=4,h=0,k=!1,m=!1;(102==f||103==f)&&g--;)102==f?k||(b.Hb=!b.Hb,k=!0):m||(b.dc=!b.dc,m=!0),h++,f=a.Ia(b,1);var g=-1,p=Zz,k=a.qa[f],m=k[0];m==$z&&(m=a.Ia(b,1),k=aA[m]||oy,f|=m<<8,m=k[0]);if(m==bA){var g=a.Ia(b,1),v;v=null;var u=g>>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=cA[f])&&(v=u[E]);v&&(p=dA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=eA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==fA?
|
||||
p="CWDE":m==gA?p="CDQ":m>=hA&&m<=iA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>jA);m==kA&&(f==lA?v="[%800]":f==mA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=I&nA;if(T!=oA)if(T==pA)E=!1;else{var L=I&qA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L<rA){L=a;H=I;var ua=u;I=b;var ca="",xb=g>>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!I.dc&&6==za||I.dc&&5==za))xb=2;else{if(I.dc)if(4!=za)za+=
|
||||
8;else{var ca=L,cb=xb,Sa=I,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=sA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=sA[rc+8],db&&(ib+="*"+(1<<db)));cb||5!=rb||(ib&&(ib+="+"),ib+=q(Cy(ca,Sa,4)));ca=ib}ca||(ca=sA[za])}1==xb?(L=L.Ia(I,1),ca=L&128?ca+("-"+q(-(L<<24>>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),I.dc?(L=Cy(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=nA;H==S&&(H=I.Hb?tA:U);switch(H){case uA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16";
|
||||
break}L="WORD";break;case tA:L="DWORD";break;case vA:if(T){L="INT32";break}case wA:L="REAL32";break;case xA:if(T){L="INT64";break}case yA:L="REAL64";break;case zA:L="REAL80";break;case AA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=BA(L,za,H,I);H=ca}else H=L==rA?BA(a,g&7,I,b):BA(a,g>>3&7,I,b);else if(L==CA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&nA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case DA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(Cy(H,L,4));break}case U:I=q(H.Yc(L,2),4);break;
|
||||
case uA:L=iy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Gy(L);H=EA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+sa(T)+")"}H=I}else L==FA?(b.dc?(H=8,I=Cy(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==GA?(H=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),I=b.Ja+H&(b.Hb?-1:65535),H=q(I,b.Hb?8:4),I=EA(a,iy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==HA?"ST":T==IA?"ST("+(g&7)+")":BA(a,(I&JA)>>8,I,b):L==KA?H=BA(a,(I&JA)>>8,LA,b):L==MA?H="DS:[SI]":L==NA&&(H="ES:[DI]");if(!H||!H.length){v="INVALID";break}0<
|
||||
v.length&&(v+=",");v+=H||"???"}}}g="";k=Gy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.ca<OA[f]&&(c=OA[f]+" CPU only");c&&E&&(k=Aa(k,e.dc?74:56)+";"+c,k=a.H.ea.He?k+("cycles="+Dd(a.H).toString()+" cs="+q(a.H.T.uf)):k+(null!=d?"="+d.toString():""));PA(b,E,h);return k}
|
||||
function BA(a,b,c,d){var e=c&qA;if(e==LA){if(b>uz||b>=tz&&80386>a.H.ca)return"??";b+=oz}else if(e==QA)b+=Dz;else if(e==RA)b+=SA;else if(e==TA)b+=UA;else if(a=c&nA,a>=U&&(b<fz&&(b+=fz-Yy),a==tA||a==S&&d.Hb))b+=vz-fz;return Wy[b]}
|
||||
function VA(a,b){switch(b){case "V":a=hg(a.H);break;case "D":a=a.H.O&1024;break;case "I":a=a.H.O&512;break;case "T":a=a.H.O&256;break;case "S":a=gg(a.H);break;case "Z":a=fg(a.H);break;case "A":a=eg(a.H);break;case "P":a=dg(a.H);break;case "C":a=cg(a.H);break;default:a=0}return b+(a?"1":"0")+" "}function uy(a){return q(a,a&-65536?8:4)}function WA(a,b){b>=fz&&b<=mz&&4<a.ta&&(b+=vz-fz);var c=Wy[b];b==Dz&&80286==a.H.ca&&(c="MS");return c+"="+Xy(a,b)+" "}
|
||||
function XA(a,b,c){return b.$b+"="+q(b.U,4)+(c?"["+q(b.ua,a.ma)+","+uy(b.Ka)+"]":"")}function YA(a,b,c,d,e){return b+"="+(null!=c?q(c,4):"")+"["+q(d,a.ma)+","+q(e-d,4)+"]"}
|
||||
function ZA(a,b){var c;void 0===b&&(b=Iy(a));c=WA(a,fz)+WA(a,iz)+WA(a,gz)+WA(a,hz)+(4<a.ta?"\n":"")+WA(a,jz)+WA(a,kz)+WA(a,lz)+WA(a,mz)+"\n"+XA(a,a.H.Y,b)+" "+XA(a,a.H.Ca,b)+" "+XA(a,a.H.oa,b)+" ";if(b){var d="TR="+q(a.H.la.U,4),e=a.ka,e="A20="+(e.J||e.N!=e.C?"OFF ":"ON ");80386>a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+XA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=XA(a,a.H.Ga,b)+" "+XA(a,a.H.Ha,b)+"\n");c+=YA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+YA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+YA(a,"ID",
|
||||
null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+WA(a,Dz);80386<=a.H.ca&&(c+=WA(a,Fz)+WA(a,Gz))}else 80386<=a.H.ca&&(c+=XA(a,a.H.Ga,b)+" "+XA(a,a.H.Ha,b)+" ");return c+=WA(a,Iz)+VA(a,"V")+VA(a,"D")+VA(a,"I")+VA(a,"T")+VA(a,"S")+VA(a,"Z")+VA(a,"A")+VA(a,"P")+VA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function $p(a,b,c,d,e,f,g,h){var k={},m=[],p;for(p in h){var v=h[p];"number"==typeof v&&(h[p]=v={o:v});var u=v.o,E=v.s,K=v.a;if(void 0!==u){void 0!==E&&(k.Ja=u,k.U=E,k.ya=null,a.Sb(k),(k.ya&-65536)==(a.ka.N&-65536)&&(k.ya&=1048575),v.p=k.ya);var E=m,u=[u>>>0,p],H=Da(E,u,a.gj);0>H&&E.splice(-(H+1),0,u)}K&&(v.a=K.replace(/''/g,'"'))}a.D.push({Rf:b,pn:c,U:d,Ja:e,ya:f,en:g,Fd:h,Pi:m})}
|
||||
function Dy(a,b,c){for(var d=0;d<a.D.length;d++){var e=a.D[d];if(!b||e.Rf==b)if(b&&c==e.pn||!b&&c==e.U){a.D.splice(d,1);break}}}function DA(a,b,c){for(var d=[],e=b.Ja>>>0,f=a.Sb(b)>>>0,g=0;g<a.D.length;g++){var h=a.D[g],k=h.U,m=h.Ja>>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e<m+v||null!=p&&f>=p&&f<p+v){b=Da(h.Pi,[e],a.gj);0<=b?ZA(a,g,b,d):c&&(b=~b,ZA(a,g,b-1,d),ZA(a,g,b,d));break}}!d.length&&(a=a.ka.wj(f,!0))&&(d.push(a),d.push(f));return d}
|
||||
function ZA(a,b,c,d){var e={},f=a.D[b].Pi,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.D[b].Fd[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function $A(a){a.Ie&&(a.Ie.value="")}
|
||||
function aB(a,b){if("?"==b)a.P("frequency commands:"),a.P("\tclear\tclear all frequency counts");else{var c=0;if(a.K)if("clear"==b){for(b=0;b<a.K.length;b++)a.K[b]=[b,0];a.P("frequency data cleared");c++}else if(void 0!==b)a.P("unknown frequency command: "+b),c++;else{var d=a.K.slice();d.sort(function(a,b){return b[1]-a[1]});for(b=0;b<d.length;b++){var e=d[b][0],f=d[b][1];f&&(a.P((Yz[a.oa[e][0]]+" ").substr(0,5)+" ("+r(e)+"): "+f+" times"),c++)}}c||a.P("no frequency data available")}}
|
||||
function bB(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return fy(a)||a.P("no variables"),!0;if(!c[2])return fy(a,c[1]);if(!c[3])return delete a.ga[c[1]],!0;b=cy(a,c[3]);return void 0!==b?(a.ga[c[1]]=b,!0):!1}a.P("invalid assignment:"+b);return!1}
|
||||
function cB(a,b,c){var d=null;if(b=Py(a,b,!0)){a.Sb(b);var e=DA(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ja-e[1])&&(g=" + "+sa(f)),f=e[0]+" ("+uy(e[1],b.U)+")"+g,c&&a.P(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ja)&&(g=" - "+sa(f)),f=e[4]+" ("+uy(e[5],b.U)+")"+g,c&&a.P(f),d||(d=f))}else c&&a.P("no symbols")}return d}
|
||||
function dB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Py(a,b[1]);if(g&&(d=Zx(a,b[2],"drive #"),void 0!==d)){if(!c){e=Zx(a,b[3],"sector #");if(void 0===e)return;f=Zx(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.hb;2<=d&&a.Xa&&(d-=2,h=a.Xa);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)$A(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Fy(g);!p&&0<k.vb--;)(function(a,b){h.se(k,function(c){0>c?(a.P("out of data at address "+Fy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H,
|
||||
function Ey(a,b,c){for(var d=0;d<a.D.length;d++){var e=a.D[d];if(!b||e.Rf==b)if(b&&c==e.pn||!b&&c==e.U){a.D.splice(d,1);break}}}function EA(a,b,c){for(var d=[],e=b.Ja>>>0,f=a.Sb(b)>>>0,g=0;g<a.D.length;g++){var h=a.D[g],k=h.U,m=h.Ja>>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e<m+v||null!=p&&f>=p&&f<p+v){b=Da(h.Pi,[e],a.gj);0<=b?$A(a,g,b,d):c&&(b=~b,$A(a,g,b-1,d),$A(a,g,b,d));break}}!d.length&&(a=a.ka.wj(f,!0))&&(d.push(a),d.push(f));return d}
|
||||
function $A(a,b,c,d){var e={},f=a.D[b].Pi,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.D[b].Fd[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function aB(a){a.Ie&&(a.Ie.value="")}
|
||||
function bB(a,b){if("?"==b)a.P("frequency commands:"),a.P("\tclear\tclear all frequency counts");else{var c=0;if(a.K)if("clear"==b){for(b=0;b<a.K.length;b++)a.K[b]=[b,0];a.P("frequency data cleared");c++}else if(void 0!==b)a.P("unknown frequency command: "+b),c++;else{var d=a.K.slice();d.sort(function(a,b){return b[1]-a[1]});for(b=0;b<d.length;b++){var e=d[b][0],f=d[b][1];f&&(a.P((Zz[a.qa[e][0]]+" ").substr(0,5)+" ("+r(e)+"): "+f+" times"),c++)}}c||a.P("no frequency data available")}}
|
||||
function cB(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return gy(a)||a.P("no variables"),!0;if(!c[2])return gy(a,c[1]);if(!c[3])return delete a.ga[c[1]],!0;b=dy(a,c[3]);return void 0!==b?(a.ga[c[1]]=b,!0):!1}a.P("invalid assignment:"+b);return!1}
|
||||
function dB(a,b,c){var d=null;if(b=Qy(a,b,!0)){a.Sb(b);var e=EA(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.Ja-e[1])&&(g=" + "+sa(f)),f=e[0]+" ("+vy(e[1],b.U)+")"+g,c&&a.P(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.Ja)&&(g=" - "+sa(f)),f=e[4]+" ("+vy(e[5],b.U)+")"+g,c&&a.P(f),d||(d=f))}else c&&a.P("no symbols")}return d}
|
||||
function eB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Qy(a,b[1]);if(g&&(d=Zx(a,b[2],"drive #"),void 0!==d)){if(!c){e=Zx(a,b[3],"sector #");if(void 0===e)return;f=Zx(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.hb;2<=d&&a.Xa&&(d-=2,h=a.Xa);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)aB(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Gy(g);!p&&0<k.vb--;)(function(a,b){h.se(k,function(c){0>c?(a.P("out of data at address "+Gy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H,
|
||||
!0);a.P(m+" bytes read at "+b)}else a.P("sector "+e+" request out of range");else a.P("drive "+d+" not loaded");else a.P("invalid drive: "+d)}else a.P("disk controller not present")}}else a.P("load commands:"),a.P("\tl [address] [drive #] [sector #] [# sectors]")}
|
||||
function Pz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1<b.length){var e=b[1];if(a.Tc&&"fp"==e){c=a.Tc;d=Og(c);b=c.Zb;for(var f=0;8>f;f++){var g=c,e=null;if(f<g.F.length){var e=[],h=g.B+f&7;e[0]=h;e[1]=qh(g,h);e[2]=g.F[h];h<<=1;e[3]=g.L[h];e[4]=g.L[h+1];g=uh(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
|
||||
a.P("ST"+f+": "+Aa(e[2].toFixed(15),24,!0)+" "+q(e[4])+","+q(e[3])+" ["+e[0]+":"+eB[e[1]]+"]")}a.P(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.P("SW: "+qa(d,16)+" ("+sa(d)+") CW: "+qa(b,16)+" ("+sa(b)+")");return}if("p"==e)d=80286<=a.H.ca;else{f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.P("missing value for "+b[1]);return}g=cy(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.ta&&(h=null);switch(h){case "AL":a.H.D=
|
||||
function Qz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1<b.length){var e=b[1];if(a.Tc&&"fp"==e){c=a.Tc;d=Og(c);b=c.Zb;for(var f=0;8>f;f++){var g=c,e=null;if(f<g.F.length){var e=[],h=g.B+f&7;e[0]=h;e[1]=qh(g,h);e[2]=g.F[h];h<<=1;e[3]=g.L[h];e[4]=g.L[h+1];g=uh(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
|
||||
a.P("ST"+f+": "+Aa(e[2].toFixed(15),24,!0)+" "+q(e[4])+","+q(e[3])+" ["+e[0]+":"+fB[e[1]]+"]")}a.P(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.P("SW: "+qa(d,16)+" ("+sa(d)+") CW: "+qa(b,16)+" ("+sa(b)+")");return}if("p"==e)d=80286<=a.H.ca;else{f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.P("missing value for "+b[1]);return}g=dy(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.ta&&(h=null);switch(h){case "AL":a.H.D=
|
||||
a.H.D&-256|g&255;break;case "AH":a.H.D=a.H.D&-65281|g<<8&255;break;case "AX":a.H.D=a.H.D&-65536|g&65535;break;case "BL":a.H.G=a.H.G&-256|g&255;break;case "BH":a.H.G=a.H.G&-65281|g<<8&255;break;case "BX":a.H.G=a.H.G&-65536|g&65535;break;case "CL":a.H.I=a.H.I&-256|g&255;break;case "CH":a.H.I=a.H.I&-65281|g<<8&255;break;case "CX":a.H.I=a.H.I&-65536|g&65535;break;case "DL":a.H.L=a.H.L&-256|g&255;break;case "DH":a.H.L=a.H.L&-65281|g<<8&255;break;case "DX":a.H.L=a.H.L&-65536|g&65535;break;case "SP":ge(a.H,
|
||||
z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=hy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=hy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g?
|
||||
z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=iy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=iy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g?
|
||||
rg(a.H):pg(a.H);break;case "Z":g?sg(a.H):qg(a.H);break;case "S":g?(e=a.H,e.resultType&=-17,e.O|=128):(e=a.H,e.resultType&=-17,e.O&=-129);break;case "I":g?(e=a.H,e.O|=512):(e=a.H,e.O&=-513);break;case "D":g?(e=a.H,e.O|=1024):(e=a.H,e.O&=-1025);break;case "V":g?lg(a.H):mg(a.H);break;default:var k=!0;if(80286<=a.H.ca)switch(k=!1,h){case "MS":tg(a.H,g);break;case "TR":-1===a.H.la.load(g)&&(f=!1);break;default:if(k=!0,80386<=a.H.ca)switch(k=!1,h){case "EAX":a.H.D=g;break;case "EBX":a.H.G=g;break;case "ECX":a.H.I=
|
||||
g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P(YA(a,d));c&&(a.L=hy(a,A(a.H),a.H.Z.U),Qz(a,Fy(a.L)))}}
|
||||
function fB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Iz(a,c[2])):cy(a,b,!1)}function gB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2<g){b.Ja=e;b.ya=null;var h=Xz(a,b);if(0<=h.indexOf("CALL")||c&&0<=h.indexOf("INT")){var k=h.indexOf(" ");if(e+(h.indexOf(" ",k+1)-k-1)/2==f){d=h;break}}}e--}b.Ja=f;return d}function hB(a,b,c){var d="t"!=b;c=Zx(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Xa(c,function(){return Kb(a,!0)&&Gy(a,e,d,!1)},function(){Bd(a.H);Kb(a,!1)})}
|
||||
function OA(a,b,c){if(a.bh=b)null!=a.pj&&(a.Hb=a.pj),null!=a.oj&&(a.dc=a.oj),a.pj=a.Hb,a.oj=a.dc;a.Fe=c||0}
|
||||
function Qz(a,b,c,d){if(b=Py(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Py(a,c,!0);if(!d||d.Ja<b.Ja)return;e=d.Ja-b.Ja;if(256<e){a.P("range too large");return}d=-1}c=0;var f;for(OA(b,!0);0<e&&d--;){f=Jb(a,!1)||a.J?a.M:null;var g=null!=f?"cycles":null,h=DA(a,b),k=b.ya;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Xz(a,b,g,f);b.bh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}}
|
||||
g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P(ZA(a,d));c&&(a.L=iy(a,A(a.H),a.H.Z.U),Rz(a,Gy(a.L)))}}
|
||||
function gB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Jz(a,c[2])):dy(a,b,!1)}function hB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2<g){b.Ja=e;b.ya=null;var h=Yz(a,b);if(0<=h.indexOf("CALL")||c&&0<=h.indexOf("INT")){var k=h.indexOf(" ");if(e+(h.indexOf(" ",k+1)-k-1)/2==f){d=h;break}}}e--}b.Ja=f;return d}function iB(a,b,c){var d="t"!=b;c=Zx(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Xa(c,function(){return Kb(a,!0)&&Hy(a,e,d,!1)},function(){Bd(a.H);Kb(a,!1)})}
|
||||
function PA(a,b,c){if(a.bh=b)null!=a.pj&&(a.Hb=a.pj),null!=a.oj&&(a.dc=a.oj),a.pj=a.Hb,a.oj=a.dc;a.Fe=c||0}
|
||||
function Rz(a,b,c,d){if(b=Qy(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Qy(a,c,!0);if(!d||d.Ja<b.Ja)return;e=d.Ja-b.Ja;if(256<e){a.P("range too large");return}d=-1}c=0;var f;for(PA(b,!0);0<e&&d--;){f=Jb(a,!1)||a.J?a.M:null;var g=null!=f?"cycles":null,h=EA(a,b),k=b.ya;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Yz(a,b,g,f);b.bh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}}
|
||||
l.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else a=this.C[this.A+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b};
|
||||
function Wz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.da&&(a.P("ended assemble at "+Fy(a.aa)),a.L=a.aa,a.da=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0<b.length){a.da&&(b="a "+Fy(a.aa)+" "+b);var g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var v=
|
||||
Py(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Fy(v)),a.da=!0,Bd(a.H);else{var u;a.P("not supported yet");u=[];if(u.length){for(var E=0;E<u.length;E++)a.fc(v,u[E],1);a.P(Xz(a,a.aa))}}break;case "b":a:{var K=g[0],H=g[1],I=b;if("?"==H)a.P("breakpoint commands:"),a.P("\tbi [p]\ttoggle break on input port [p]"),a.P("\tbo [p]\ttoggle break on output port [p]"),a.P("\tbp [a]\tset exec breakpoint at addr [a]"),a.P("\tbr [a]\tset read breakpoint at addr [a]"),a.P("\tbw [a]\tset write breakpoint at addr [a]"),
|
||||
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Vz(a,a.B);L+=Vz(a,a.Z);(L+=Vz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=Zx(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Py(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:sa(ua.Ja);"c"==T?null==ua.Ja?(iy(a),a.P("all breakpoints cleared")):Ey(a,
|
||||
a.B,ua)||Ey(a,a.Z,ua)||Ey(a,a.N,ua)||a.P("breakpoint missing: "+Fy(ua)):"i"==T?a.P("breakpoint "+(Mc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Qc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Sy(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":$A(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Rb)a.Ba[xb]&&
|
||||
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=iB(a.pa,!0);rc?"console"==Sa?console.log(rc):
|
||||
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],vg=df.o;if(void 0!==vg){var ef=df.s;void 0===ef&&(ef=cf.U);var wg=cf.Fd[Ld].l;wg&&(Ld=wg);a.P(uy(vg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Qg=a.Sb(Py(a,qm));if(-1===Qg)a.P("invalid address: "+qm);else{var pf,
|
||||
Qa=null;if(80386<=a.H.ca){var qf=a.ka,Qa={};Qa.Jk=(Qg&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Uy(pf.Ti,pf.Aj)),ve=
|
||||
ve+(" %%"+Uy(pf.Ui,pf.Bj,!0)),ve=ve+(" %%"+q(pf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";dB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var wt=a.Ba[xb];wt?(ca.shift(),ca.shift(),wt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var xt=cb,yt=Sa,zt="",At=0,Lc=a.ma,jd=a.O;if(jd.length){var uc=+xt||a.Ya,Rg=+yt||10;isNaN(uc)?uc=Rg:zt="more ";uc>jd.length&&(a.P("note: only "+
|
||||
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==yt&&(Rg=1E5,rm=["CALL"]);for(void 0!==xt&&a.P(uc+" instructions earlier:");0<Rg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Sg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,Bt=Xz(a,Sg,"history",ZB);(!rm.length||0<=Bt.indexOf(rm[0]))&&a.P(Bt);Sg.Fe&&(Lc+=Sg.Fe,Rg-=Sg.Fe,uc-=Sg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;At++;Rg--}}At||(a.P("no "+zt+"history available"),a.Ya=
|
||||
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255<Tg)a.P("invalid vector: "+sm);else{var Ct="&",Dt=!!(a.H.qa&1),Et=!1,Wi=a.H.Pb+(Tg<<(Dt?3:2)),Ft=a.H.ja(Wi+0),$B=a.H.ja(Wi+2);Dt&&(Ct="#",a.H.ja(Wi+4)&2048&&(Et=!0,Ft|=a.H.ja(Wi+6)<<16));a.P("dumpIDT("+sa(Tg)+"): "+Ct+q($B,4)+":"+q(Ft,Et?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var rf=Py(a,cb);if(rf&&(null!=rf.U||null!=rf.ya)){var Xi=0;Sa&&("l"==Sa.charAt(0)&&
|
||||
(Sa=Sa.substr(1)||rb),Xi=Zx(a,Sa)>>>0,65536<Xi&&(Xi=65536));for(var Ug="",sf="dd"==za?4:"dw"==za?2:1,Yi=sf*Xi||128,aC=Yi+15>>4||1;aC--&&0<Yi;){var Vg=0,tm=0,Wg,um="",Gt="",cb=Fy(rf);for(Wg=4==sf?16:a.F;0<Wg&&0<Yi;Wg--){var Zi=a.Ia(rf,1),Vg=Vg|Zi<<(tm++<<3);tm==sf&&(um+=8==a.F?ra(Vg,3*sf):q(Vg,2*sf),um+=1==sf?9==Wg?"-":" ":" ",Vg=tm=0);Gt+=32<=Zi&&128>Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Gt)}Ug&&a.P(Ug);a.Ta=rf}}}}}break;case "e":if("else"==g[0])break;var $i=
|
||||
1,Ht=255,It=a.Ia,Jt=a.fc;"ew"==g[0]&&($i=2,Ht=65535,It=a.Yc,Jt=a.il);var Kt=$i<<1,Lt=g[1];if(null==Lt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Py(a,Lt);if(aj)for(var bj=2;bj<g.length;bj++){var Xg=cy(a,g[bj]);if(void 0===Xg){a.P("unrecognized value: "+g[bj]);break}Xg&~Ht&&a.P("warning: "+q(Xg)+" exceeds "+$i+"-byte value");var bC=It.call(a,aj);a.P("changing "+Fy(aj)+" from "+q(bC,Kt,!0)+" to "+q(Xg,Kt,!0));
|
||||
Jt.call(a,aj,Xg,$i)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Mt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Mt){var vm=Py(a,Mt,!0);if(!vm)break a;Sy(a,vm,cC);a.Gd(a.B,vm,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Jb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Yg=b.substr(2),Yg=Ba(Yg);cy(a,Yg)?(c||a.P("true: "+Yg),xm=!0):(c||a.P("false: "+Yg),xm=!1);xm||(d=!1);
|
||||
break}if("int"==g[0]){var cj;a:switch(Zx(a,g[1])){case 19:Vk(a,19,a.H.da,!0);a.ha=a.Y;cj=!0;break a;case 33:Vk(a,33,a.H.da,!0);a.ha=a.Y;cj=!0;break a;default:cj=!1}cj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=Zx(a,ym);if(void 0!==zm){var dC=Oc(a.ka,zm,1);a.P(sa(zm)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
|
||||
a.P("\tks\tshow symbol information");else{var Am=0,Nt=a.H.Z.U,Zg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>Am;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Zg.U=Nt;if(kd=gB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=gB(a,Zg,!0)){Nt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Ot=null;if("ks"==eC){var Pt=kd.match(/[0-9A-F]+$/);Pt&&(Ot=cB(a,Pt[0]))}kd=Aa(kd,50)+" ;"+(Ot||"stack="+Fy(Sd));a.P(kd);Am++}Am||
|
||||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],dj=g[2];if(a.G){var Qt=1;"-"==dj.charAt(0)&&(Qt=-1,dj=dj.substr(1));var xe=Zx(a,dj,Bm);if(void 0!==xe)switch(xe=xe*Qt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
|
||||
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Rb)if(fb==ld){ye=Rb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var gC=0,$g="";for(ld in Rb)if(!fb||fb==ld){var hC=!!(a.ic&Rb[ld]);if(null===md||md==hC)$g&&($g+=","),++gC%10||($g+="\n\t"),"key"==ld&&(ld="keys"),$g+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+($g||"none"));jy(a)}break;case "o":var Cm=g[1],iC=g[2];if(Cm&&"?"!=Cm){var Dm=Zx(a,Cm,"port #"),Em=Zx(a,iC);void 0!==Dm&&void 0!==Em&&(Sc(a.ka,Dm,1,Em),a.P(sa(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Rt="pr"==g[0]?1:0,tf=1+Rt;if(a.J)a.P("step in progress");
|
||||
else{var ej,St=!1,Hb=hy(a,A(a.H),a.H.Z.U);do switch(ej=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ky(a,Hb,1);ej=!0;break;case 204:case 206:a.J=tf;Ky(a,Hb,1);break;case 205:case 224:case 225:case 226:a.J=tf;Ky(a,Hb,Hb.Hb?4:2);break;case 232:a.J=tf;Ky(a,Hb,Hb.Hb?5:3);break;case 154:a.J=tf;Ky(a,Hb,Hb.Hb?7:5);break;case 255:var Tt=a.jb(Hb)&14591;if(4351==Tt||6399==Tt)a.J=tf,Xz(a,Hb);break;case 243:case 242:Ky(a,Hb,1);St=ej=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:St&&
|
||||
(a.J=tf,Ky(a,Hb,1))}while(ej);a.J?(a.Gd(a.B,Hb,!0),Nz(a)||(a.pa&&a.pa.ld(),a.J=0)):hB(a,Rt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Pz(a,g);break;case "t":hB(a,g[0],g[1]);break;case "u":Qz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){bB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.3 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Nb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Ma());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var ah;void 0!==g[3]&&(ah=+g[3]);
|
||||
function Xz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.da&&(a.P("ended assemble at "+Gy(a.aa)),a.L=a.aa,a.da=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0<b.length){a.da&&(b="a "+Gy(a.aa)+" "+b);var g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var v=
|
||||
Qy(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Gy(v)),a.da=!0,Bd(a.H);else{var u;a.P("not supported yet");u=[];if(u.length){for(var E=0;E<u.length;E++)a.fc(v,u[E],1);a.P(Yz(a,a.aa))}}break;case "b":a:{var K=g[0],H=g[1],I=b;if("?"==H)a.P("breakpoint commands:"),a.P("\tbi [p]\ttoggle break on input port [p]"),a.P("\tbo [p]\ttoggle break on output port [p]"),a.P("\tbp [a]\tset exec breakpoint at addr [a]"),a.P("\tbr [a]\tset read breakpoint at addr [a]"),a.P("\tbw [a]\tset write breakpoint at addr [a]"),
|
||||
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Wz(a,a.B);L+=Wz(a,a.Z);(L+=Wz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=Zx(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Qy(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:sa(ua.Ja);"c"==T?null==ua.Ja?(jy(a),a.P("all breakpoints cleared")):Fy(a,
|
||||
a.B,ua)||Fy(a,a.Z,ua)||Fy(a,a.N,ua)||a.P("breakpoint missing: "+Gy(ua)):"i"==T?a.P("breakpoint "+(Mc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Qc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Ty(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":aB(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Rb)a.Ba[xb]&&
|
||||
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=jB(a.pa,!0);rc?"console"==Sa?console.log(rc):
|
||||
(aB(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],vg=df.o;if(void 0!==vg){var ef=df.s;void 0===ef&&(ef=cf.U);var wg=cf.Fd[Ld].l;wg&&(Ld=wg);a.P(vy(vg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Qg=a.Sb(Qy(a,qm));if(-1===Qg)a.P("invalid address: "+qm);else{var pf,
|
||||
Qa=null;if(80386<=a.H.ca){var qf=a.ka,Qa={};Qa.Jk=(Qg&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Vy(pf.Ti,pf.Aj)),ve=
|
||||
ve+(" %%"+Vy(pf.Ui,pf.Bj,!0)),ve=ve+(" %%"+q(pf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";eB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var vt=a.Ba[xb];vt?(ca.shift(),ca.shift(),vt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var wt=cb,xt=Sa,yt="",zt=0,Lc=a.oa,jd=a.O;if(jd.length){var uc=+wt||a.Ya,Rg=+xt||10;isNaN(uc)?uc=Rg:yt="more ";uc>jd.length&&(a.P("note: only "+
|
||||
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==xt&&(Rg=1E5,rm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Rg&&Lc!=a.oa;){var we=jd[Lc++];if(null==we.U)break;var Sg=iy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),$B=uc--,At=Yz(a,Sg,"history",$B);(!rm.length||0<=At.indexOf(rm[0]))&&a.P(At);Sg.Fe&&(Lc+=Sg.Fe,Rg-=Sg.Fe,uc-=Sg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Rg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
|
||||
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255<Tg)a.P("invalid vector: "+sm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Wi=a.H.Pb+(Tg<<(Ct?3:2)),Et=a.H.ja(Wi+0),aC=a.H.ja(Wi+2);Ct&&(Bt="#",a.H.ja(Wi+4)&2048&&(Dt=!0,Et|=a.H.ja(Wi+6)<<16));a.P("dumpIDT("+sa(Tg)+"): "+Bt+q(aC,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var rf=Qy(a,cb);if(rf&&(null!=rf.U||null!=rf.ya)){var Xi=0;Sa&&("l"==Sa.charAt(0)&&
|
||||
(Sa=Sa.substr(1)||rb),Xi=Zx(a,Sa)>>>0,65536<Xi&&(Xi=65536));for(var Ug="",sf="dd"==za?4:"dw"==za?2:1,Yi=sf*Xi||128,bC=Yi+15>>4||1;bC--&&0<Yi;){var Vg=0,tm=0,Wg,um="",Ft="",cb=Gy(rf);for(Wg=4==sf?16:a.F;0<Wg&&0<Yi;Wg--){var Zi=a.Ia(rf,1),Vg=Vg|Zi<<(tm++<<3);tm==sf&&(um+=8==a.F?ra(Vg,3*sf):q(Vg,2*sf),um+=1==sf?9==Wg?"-":" ":" ",Vg=tm=0);Ft+=32<=Zi&&128>Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Ft)}Ug&&a.P(Ug);a.Ta=rf}}}}}break;case "e":if("else"==g[0])break;var $i=
|
||||
1,Gt=255,Ht=a.Ia,It=a.fc;"ew"==g[0]&&($i=2,Gt=65535,Ht=a.Yc,It=a.il);var Jt=$i<<1,Kt=g[1];if(null==Kt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Qy(a,Kt);if(aj)for(var bj=2;bj<g.length;bj++){var Xg=dy(a,g[bj]);if(void 0===Xg){a.P("unrecognized value: "+g[bj]);break}Xg&~Gt&&a.P("warning: "+q(Xg)+" exceeds "+$i+"-byte value");var cC=Ht.call(a,aj);a.P("changing "+Gy(aj)+" from "+q(cC,Jt,!0)+" to "+q(Xg,Jt,!0));
|
||||
It.call(a,aj,Xg,$i)}}break;case "f":bB(a,g[1]);break;case "g":a:{var Lt=g[1],dC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var vm=Qy(a,Lt,!0);if(!vm)break a;Ty(a,vm,dC);a.Gd(a.B,vm,!0)}Oz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Jb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Yg=b.substr(2),Yg=Ba(Yg);dy(a,Yg)?(c||a.P("true: "+Yg),xm=!0):(c||a.P("false: "+Yg),xm=!1);xm||(d=!1);
|
||||
break}if("int"==g[0]){var cj;a:switch(Zx(a,g[1])){case 19:Vk(a,19,a.H.da,!0);a.la=a.Y;cj=!0;break a;case 33:Vk(a,33,a.H.da,!0);a.la=a.Y;cj=!0;break a;default:cj=!1}cj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=Zx(a,ym);if(void 0!==zm){var eC=Oc(a.ka,zm,1);a.P(sa(zm)+": "+r(eC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var fC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
|
||||
a.P("\tks\tshow symbol information");else{var Am=0,Mt=a.H.Z.U,Zg=iy(a),Sd=iy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Gy(Sd));10>Am;){for(var kd=null,gC=256;Sd.Ja>>>0<a.H.cg>>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!gC--)break;Zg.U=Mt;if(kd=hB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=hB(a,Zg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==fC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=dB(a,Ot[0]))}kd=Aa(kd,50)+" ;"+(Nt||"stack="+Gy(Sd));a.P(kd);Am++}Am||
|
||||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){dB(a,g[1],!0);break}eB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],dj=g[2];if(a.G){var Pt=1;"-"==dj.charAt(0)&&(Pt=-1,dj=dj.substr(1));var xe=Zx(a,dj,Bm);if(void 0!==xe)switch(xe=xe*Pt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
|
||||
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Rb)if(fb==ld){ye=Rb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var hC=0,$g="";for(ld in Rb)if(!fb||fb==ld){var iC=!!(a.ic&Rb[ld]);if(null===md||md==iC)$g&&($g+=","),++hC%10||($g+="\n\t"),"key"==ld&&(ld="keys"),$g+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+($g||"none"));ky(a)}break;case "o":var Cm=g[1],jC=g[2];if(Cm&&"?"!=Cm){var Dm=Zx(a,Cm,"port #"),Em=Zx(a,jC);void 0!==Dm&&void 0!==Em&&(Sc(a.ka,Dm,1,Em),a.P(sa(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){gB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,tf=1+Qt;if(a.J)a.P("step in progress");
|
||||
else{var ej,Rt=!1,Hb=iy(a,A(a.H),a.H.Z.U);do switch(ej=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ly(a,Hb,1);ej=!0;break;case 204:case 206:a.J=tf;Ly(a,Hb,1);break;case 205:case 224:case 225:case 226:a.J=tf;Ly(a,Hb,Hb.Hb?4:2);break;case 232:a.J=tf;Ly(a,Hb,Hb.Hb?5:3);break;case 154:a.J=tf;Ly(a,Hb,Hb.Hb?7:5);break;case 255:var St=a.jb(Hb)&14591;if(4351==St||6399==St)a.J=tf,Yz(a,Hb);break;case 243:case 242:Ly(a,Hb,1);Rt=ej=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Rt&&
|
||||
(a.J=tf,Ly(a,Hb,1))}while(ej);a.J?(a.Gd(a.B,Hb,!0),Oz(a)||(a.pa&&a.pa.ld(),a.J=0)):iB(a,Qt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Qz(a,g);break;case "t":iB(a,g[0],g[1]);break;case "u":Rz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){cB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.3 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Nb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Ma());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var ah;void 0!==g[3]&&(ah=+g[3]);
|
||||
switch(g[2]){case "int":a.H.T.Se=ah;break;case "start":a.H.T.wf=ah;break;case "stop":a.H.T.Ue=ah;break;default:a.P("unknown cs option");break a}void 0!==ah&&Ad(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Ed(a.H,+g[2])||a.P("warning: using 1x multiplier, previous target not reached"));a.P("target speed: "+(a.H.T.oe.toFixed(2)+"Mhz")+" ("+a.H.T.Kd+"x)");break;default:a.P("unknown option: "+g[1])}else a.P("execution options:"),a.P("\tcs int #\tset checksum cycle interval to #"),
|
||||
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in jB)Fm+="\n"+Aa(Gm,7)+jB[Gm];Ig(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Vt){a.P("debugger error: "+(Vt.stack||Vt.message)),d=!1}return d}
|
||||
function ly(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Wz(a,b[+d]))return!1;return!0}
|
||||
var Kz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Jz=[26,28,40,42,109],jB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
|
||||
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Qy=0,Iy=1,ry=2,Ty=3,Ry=4,Jy=5,eA=18,fA=28,aA=36,jA=80,gA=104,hA=107,Zz=176,Yz="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
|
||||
cA="FLD FST FSTP FXCH FILD FIST FISTP FBLD FBSTP FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FSQRT FSCALE FPREM FRNDINT FXTRACT FABS FCHS FCOM FCOMP FCOMPP FICOM FICOMP FTST FXAM FPTAN FPATAN F2XM1 FYL2X FYL2XP1 FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 FINIT FNINIT FDISI FNDISI FENI FNENI FLDCW FSTCW FNSTCW FSTSW FNSTSW FCLEX FNCLEX FSTENV FNSTENV FLDENV FSAVE FNSAVE FRSTOR FINCSTP FDECSTP FFREE FFREEP FNOP FWAIT FSETPM FSINCOS FSTSWAX".split(" "),
|
||||
eB=["VALID","ZERO ","SPEC ","EMPTY"],kA=2,lA=3,NA=[8086,80186,80286,80386],Xy=0,Yy=1,Zy=2,$y=3,az=4,bz=5,cz=6,dz=7,ez=8,fz=9,gz=10,hz=11,iz=12,jz=13,kz=14,lz=15,nz=16,mz=22,Hz=23,uz=24,vz=25,wz=26,xz=27,yz=28,zz=29,Az=30,Bz=31,Cz=32,Dz=33,Ez=34,Fz=35,RA=40,TA=48,Gz=56,Vy=["AL","CL","DL","BL","AH","CH","DH","BH","AX","CX","DX","BX","SP","BP","SI","DI","ES","CS","SS","DS","FS","GS","IP","PS","EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI","CR0","CR1","CR2","CR3",null,null,null,null,"DR0","DR1","DR2",
|
||||
"DR3",null,null,"DR6","DR7",null,null,null,null,null,null,"TR6","TR7","EIP"],oz=0,pz=1,qz=2,rz=3,sz=4,tz=5,rA="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),mA=15,pA=240,IA=3840,nA=0,V=1,CA=2,U=3,S=4,sA=5,tA=7,oA=8,GA=9,HA=10,uA=11,vA=11,wA=12,xA=12,yA=13,zA=14,W=0,BA=16,EA=32,FA=48,LA=64,MA=80,Y=96,JA=112,R=128,qA=160,KA=192,PA=208,QA=224,SA=240,kB=Xy<<8|Y|V,lB=Yy<<8|Y|V,mB=ez<<8|Y|S,nB=fz<<8|Y|S,oB=gz<<8|Y|S,pB=hz<<8|Y|S,qB=iz<<8|Y|S,rB=jz<<8|Y|S,sB=kz<<8|Y|S,tB=
|
||||
lz<<8|Y|S,uB=oz<<8|JA|U,vB=pz<<8|JA|U,wB=qz<<8|JA|U,xB=rz<<8|JA|U,yB=sz<<8|JA|U,zB=tz<<8|JA|U,X=12288,AB=kA<<14,Z=lA<<14,iA=14,Mz=1E3,ny=[0,nA],oy=[Zz,U|X],my=[[6,R|V|X,V|4272],[6,R|S|X,S|4272],[6,176|V|X,R|V|4096],[6,176|S|X,R|S|4096],[6,kB|X,W|V|4096],[6,mB|X,W|S|4096],[108,uB|4096],[103,uB|8192],[99,R|V|X,V|4272],[99,R|S|X,S|4272],[99,176|V|X,R|V|4096],[99,176|S|X,R|S|4096],[99,kB|X,W|V|4096],[99,mB|X,W|S|4096],[108,vB|4096],[103,vB|8192],[5,R|V|X,V|4272],[5,R|S|X,S|4272],[5,176|V|X,R|V|4096],
|
||||
[5,176|S|X,R|S|4096],[5,kB|X,W|V|4096],[5,mB|X,W|S|4096],[108,wB|4096],[103,wB|8192],[120,R|V|X,V|4272],[120,R|S|X,S|4272],[120,176|V|X,R|V|4096],[120,176|S|X,R|S|4096],[120,kB|X,W|V|4096],[120,mB|X,W|S|4096],[108,xB|4096],[103,xB|8192],[7,R|V|X,V|4272],[7,R|S|X,S|4272],[7,176|V|X,R|V|4096],[7,176|S|X,R|S|4096],[7,kB|X,W|V|4096],[7,mB|X,W|S|4096],[35,oA],[29],[154,R|V|X,V|4272],[154,R|S|X,S|4272],[154,176|V|X,R|V|4096],[154,176|S|X,R|S|4096],[154,kB|X,W|V|4096],[154,mB|X,W|S|4096],[27,oA],[30],[162,
|
||||
R|V|X,V|4272],[162,R|S|X,S|4272],[162,176|V|X,R|V|4096],[162,176|S|X,R|S|4096],[162,kB|X,W|V|4096],[162,mB|X,W|S|4096],[147,oA],[1],[24,R|V|4096,V|4272],[24,R|S|4096,S|4272],[24,V|4272,R|V|4096],[24,S|4272,R|S|4096],[24,kB|4096,W|V|4096],[24,mB|4096,W|S|4096],[33,oA],[4],[44,mB|X],[44,nB|X],[44,oB|X],[44,pB|X],[44,qB|X],[44,rB|X],[44,sB|X],[44,tB|X],[31,mB|X],[31,nB|X],[31,oB|X],[31,pB|X],[31,qB|X],[31,rB|X],[31,sB|X],[31,tB|X],[108,mB|4096],[108,nB|4096],[108,oB|4096],[108,pB|4096],[108,qB|4096],
|
||||
[108,rB|4096],[108,sB|4096],[108,tB|4096],[103,mB|8192],[103,nB|8192],[103,oB|8192],[103,pB|8192],[103,qB|8192],[103,rB|8192],[103,sB|8192],[103,tB|8192],[hA,nA|AB],[gA,nA|AB],[10,S|4272|AB,R|S|4096],[8,R|U|8192,U|4272],[37,oA|Z],[38,oA|Z],[100,oA|Z],[9,oA|Z],[108,W|S|4096|AB],[42,176|U|X|AB,R|S|4096,W|S|4096],[108,W|CA|4096|AB],[42,U|8368|AB,R|S|4096,W|V|4096],[45,MA|V|8192|AB,oB|4096],[45,MA|S|8192|AB,oB|4096],[102,oB|4096|AB,LA|V|4096],[102,oB|4096|AB,LA|S|4096],[64,FA|V|4096],[60,FA|V|4096],[51,
|
||||
FA|V|4096],[59,FA|V|4096],[67,FA|V|4096],[63,FA|V|4096],[50,FA|V|4096],[58,FA|V|4096],[66,FA|V|4096],[62,FA|V|4096],[65,FA|V|4096],[61,FA|V|4096],[55,FA|V|4096],[54,FA|V|4096],[56,FA|V|4096],[53,FA|V|4096],[163,R|V|X,W|V|4096],[164,R|S|X,W|S|4096],[163,R|V|X,W|V|4096],[165,R|S|X,W|V|4096],[155,R|V|4096,V|4272],[155,R|S|4096,S|4272],[160,176|V|X,R|V|X],[160,176|S|X,R|S|X],[90,R|V|8192,V|4272],[90,R|S|8192,S|4272],[90,V|8368,R|V|4096],[90,S|8368,R|S|4096],[90,R|S|8192,KA|U|4096],[71,S|8368,144|S],[90,
|
||||
KA|U|8192,R|S|4096],[103,R|S|8192],[97],[160,mB|X,nB|X],[160,mB|X,oB|X],[160,mB|X,pB|X],[160,mB|X,qB|X],[160,mB|X,rB|X],[160,mB|X,sB|X],[160,mB|X,tB|X],[eA],[fA],[17,W|tA|4096],[158],[106],[105],[117],[68],[90,kB|8192,EA|V|4096],[90,mB|8192,EA|S|4096],[90,EA|V|8192,kB|4096],[90,EA|S|8192,mB|4096],[91,MA|V|8192,LA|V|4096],[92,MA|S|8192,LA|S|4096],[25,MA|V|4096,LA|V|4096],[26,MA|S|4096,LA|S|4096],[155,kB|4096,W|V|4096],[155,mB|4096,W|S|4096],[151,MA|V|8192,kB|4096],[152,MA|S|8192,mB|4096],[82,kB|8192,
|
||||
LA|V|4096],[83,mB|8192,LA|S|4096],[121,kB|4096,MA|V|4096],[122,mB|4096,MA|S|4096],[90,kB|8192,W|V|4096],[90,lB|8192,W|V|4096],[90,Zy<<8|Y|V|8192,W|V|4096],[90,$y<<8|Y|V|8192,W|V|4096],[90,az<<8|Y|V|8192,W|V|4096],[90,bz<<8|Y|V|8192,W|V|4096],[90,cz<<8|Y|V|8192,W|V|4096],[90,dz<<8|Y|V|8192,W|V|4096],[90,mB|8192,W|S|4096],[90,nB|8192,W|S|4096],[90,oB|8192,W|S|4096],[90,pB|8192,W|S|4096],[90,qB|8192,W|S|4096],[90,rB|8192,W|S|4096],[90,sB|8192,W|S|4096],[90,tB|8192,W|S|4096],[166,R|V|X|16384,W|V|4096],
|
||||
[167,R|S|X|16384,W|V|4096],[113,W|U|4096],[113],[73,S|8368,4246],[70,S|8368,4246],[90,R|V|8192,W|V|4096],[90,R|S|8192,W|S|4096],[34,W|U|4096|AB,W|V|4096],[72,nA|AB],[114,W|U|4096],[114],[47],[46,W|V|4096],[48],[49],[168,R|V|X,BA|V|4096],[169,R|S|X,BA|V|4096],[170,R|V|X,lB|4096],[171,R|S|X,lB|4096],[3,W|V],[2,W|V],[118],[161],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[aA,R|S|4096],[85,FA|V|4096],[86,FA|V|4096],[84,FA|V|4096],[52,FA|V|4096],[43,
|
||||
kB|8192,W|V|4096],[43,mB|8192,W|V|4096],[101,W|V|4096,kB|4096],[101,W|V|4096,mB|4096],[17,FA|S|4096],[57,FA|S|4096],[57,W|tA|4096],[57,FA|V|4096],[43,kB|8192,oB|U|4096],[43,mB|8192,oB|U|4096],[101,oB|U|4096,kB|4096],[101,oB|U|4096,mB|4096],[81,oA],[0],[111,oA],[112,oA],[39],[23],[172,R|V|X],[173,R|S|X],[19],[148],[21],[150],[20],[149],[174,R|V|X],[175,R|S|X]],$z={0:[177,R|U|X],1:[178,R|U|X],2:[69,U|8368|AB,U|4240],3:[87,U|8368|AB,U|4240],5:[jA,AB],6:[22,AB],7:[jA,Z],32:[90,qA|sA|8192|Z,PA|sA|4096],
|
||||
33:[90,qA|sA|8192|Z,QA|sA|4096],34:[90,PA|sA|8192|Z,qA|sA|4096],35:[90,QA|sA|8192|Z,qA|sA|4096],36:[90,qA|sA|8192|Z,SA|sA|4096],38:[90,SA|sA|8192|Z,qA|sA|4096],128:[64,FA|S|4096|Z],129:[60,FA|S|4096|Z],130:[51,FA|S|4096|Z],131:[59,FA|S|4096|Z],132:[67,FA|S|4096|Z],133:[63,FA|S|4096|Z],134:[50,FA|S|4096|Z],135:[58,FA|S|4096|Z],136:[66,FA|S|4096|Z],137:[62,FA|S|4096|Z],138:[65,FA|S|4096|Z],139:[61,FA|S|4096|Z],140:[55,FA|S|4096|Z],141:[54,FA|S|4096|Z],142:[56,FA|S|4096|Z],143:[53,FA|S|4096|Z],144:[135,
|
||||
R|V|8192|Z],145:[131,R|V|8192|Z],146:[124,R|V|8192|Z],147:[130,R|V|8192|Z],148:[138,R|V|8192|Z],149:[134,R|V|8192|Z],150:[123,R|V|8192|Z],151:[129,R|V|8192|Z],152:[137,R|V|8192|Z],153:[133,R|V|8192|Z],154:[136,R|V|8192|Z],155:[132,R|V|8192|Z],156:[127,R|V|8192|Z],157:[126,R|V|8192|Z],158:[128,R|V|8192|Z],159:[125,R|V|8192|Z],160:[108,yB|4096|Z],161:[103,yB|8192|Z],163:[13,R|S|4096|Z,S|4272],164:[141,R|S|8192|Z,S|4272,W|V|4096],165:[141,R|S|8192|Z,S|4272,lB|4096],166:[159,S|8368|Z,R|S|4096,mB|4096,
|
||||
lB|4096],167:[40,R|S|8192|Z,mB|4096,lB|4096,S|4272],168:[108,zB|4096|Z],169:[103,zB|8192|Z],171:[16,R|S|8192|Z,S|4272],172:[143,R|S|8192|Z,S|4272,W|V|4096],173:[143,R|S|8192|Z,S|4272,lB|4096],175:[42,R|S|X|Z,S|4272],178:[88,S|8368,4246],179:[15,R|S|8192|Z,S|4272],180:[74,S|8368,4246],181:[76,S|8368,4246],182:[94,S|8368|Z,R|V|4096],183:[94,sA|8368|Z,R|U|4096],186:[179,R|S|X|Z,W|V|4096],187:[14,R|S|8192|Z,S|4272],188:[11,S|8368|Z,R|S|4096],189:[12,S|8368|Z,R|S|4096],190:[93,S|8368|Z,R|V|4096],191:[93,
|
||||
sA|8368|Z,R|U|4096]},bA={216:{0:[9,R|vA|4096],1:[18,R|vA|4096],2:[34,R|vA|4096],3:[35,R|vA|4096],4:[12,R|vA|4096],5:[15,R|vA|4096],6:[21,R|vA|4096],7:[24,R|vA|4096],48:[9,Y|GA|8192,Y|HA|4096],49:[18,Y|GA|8192,Y|HA|4096],50:[34,Y|GA|8192,Y|HA|4096],51:[35,Y|GA|8192,Y|HA|4096],52:[12,Y|GA|8192,Y|HA|4096],53:[15,Y|GA|8192,Y|HA|4096],54:[21,Y|GA|8192,Y|HA|4096],55:[24,Y|GA|8192,Y|HA|4096]},217:{0:[0,R|vA|4096],2:[1,R|vA|8192],3:[2,R|vA|8192],4:[68,R|4111],5:[59,R|U|4096],6:[66,R|8207],7:[60,R|U|8192],
|
||||
48:[0,Y|HA|8192],49:[3,Y|HA|8192],50:[76],51:[2,Y|HA|8192],64:[33],65:[32],68:[39],69:[40],80:[47],81:[49],82:[50],83:[48],84:[51],85:[52],86:[46],96:[43],97:[44],98:[41],99:[42],100:[31],102:[73],103:[72],112:[29],113:[45],114:[27],116:[30],117:[28]},218:{0:[11,R|uA|4096],1:[20,R|uA|4096],2:[37,R|uA|4096],3:[38,R|uA|4096],4:[14,R|uA|4096],5:[17,R|uA|4096],6:[23,R|uA|4096],7:[26,R|uA|4096]},219:{0:[4,R|uA|4096],2:[5,R|uA|8192],3:[6,R|uA|8192],5:[0,R|yA|4096],7:[2,R|yA|8192],64:[57],65:[55],66:[64],
|
||||
67:[53],68:[78,AB],115:[79,Z]},220:{0:[9,R|xA|4096],1:[18,R|xA|4096],2:[34,R|xA|4096],3:[35,R|xA|4096],4:[12,R|xA|4096],5:[15,R|xA|4096],6:[21,R|xA|4096],7:[24,R|xA|4096],48:[9,Y|HA|8192,Y|GA|4096],49:[18,Y|HA|8192,Y|GA|4096],50:[34,Y|HA|4096],51:[35,Y|HA|4096],52:[15,Y|HA|8192,Y|GA|4096],53:[12,Y|HA|8192,Y|GA|4096],54:[24,Y|HA|8192,Y|GA|4096],55:[21,Y|HA|8192,Y|GA|4096]},221:{0:[0,R|xA|4096],2:[1,R|xA|8192],3:[2,R|xA|8192],4:[71,R|4111],6:[69,R|8207],7:[62,R|U|8192],48:[74,Y|HA|4096],49:[3,Y|HA|
|
||||
8192],50:[1,Y|HA|4096],51:[2,Y|HA|4096]},222:{0:[11,R|U|4096],1:[20,R|U|4096],2:[37,R|U|4096],3:[38,R|U|4096],4:[14,R|U|4096],5:[17,R|U|4096],6:[23,R|U|4096],7:[26,R|U|4096],48:[10,Y|HA|8192,Y|GA|4096],49:[19,Y|HA|8192,Y|GA|4096],50:[35,Y|HA|4096],51:[36,Y|HA|4096],52:[16,Y|HA|8192,Y|GA|4096],53:[13,Y|HA|8192,Y|GA|4096],54:[25,Y|HA|8192,Y|GA|4096],55:[22,Y|HA|8192,Y|GA|4096]},223:{0:[4,R|U|4096],2:[5,R|U|8192],3:[6,R|U|8192],4:[7,R|zA|4096],5:[4,R|wA|4096],6:[8,R|zA|8192],7:[6,R|wA|8192],48:[75,Y|
|
||||
HA|4096],49:[3,Y|HA|8192],50:[2,Y|HA|4096],51:[2,Y|HA|4096],52:[80,AB]}},dA=[[[6,R|V|X,W|V|4096],[99,R|V|X,W|V|4096],[5,R|V|X,W|V|4096],[120,R|V|X,W|V|4096],[7,R|V|X,W|V|4096],[154,R|V|X,W|V|4096],[162,R|V|X,W|V|4096],[24,R|V|4096,W|V|4096]],[[6,R|S|X,W|S|4096],[99,R|S|X,W|S|4096],[5,R|S|X,W|S|4096],[120,R|S|X,W|S|4096],[7,R|S|X,W|S|4096],[154,R|S|X,W|S|4096],[162,R|S|X,W|S|4096],[24,R|S|4096,W|S|4096]],[[6,R|S|X,W|CA|4096],[99,R|S|X,W|CA|4096],[5,R|S|X,W|CA|4096],[120,R|S|X,W|CA|4096],[7,R|S|X,W|
|
||||
CA|4096],[154,R|S|X,W|CA|4096],[162,R|S|X,W|CA|4096],[24,R|S|4096,W|CA|4096]],[[115,R|V|X|AB,W|V|4096],[116,R|V|X|AB,W|V|4096],[109,R|V|X|AB,W|V|4096],[110,R|V|X|AB,W|V|4096],[140,R|V|X|AB,W|V|4096],[142,R|V|X|AB,W|V|4096],ny,[119,R|V|X|AB,W|V|4096]],[[115,R|S|X|AB,W|V|4096],[116,R|S|X|AB,W|V|4096],[109,R|S|X|AB,W|V|4096],[110,R|S|X|AB,W|V|4096],[140,R|S|X|AB,W|V|4096],[142,R|S|X|AB,W|V|4096],ny,[119,R|S|X|AB,W|V|4096]],[[115,R|V|X,BA|V|4096],[116,R|V|X,BA|V|4096],[109,R|V|X,BA|V|4096],[110,R|V|X,
|
||||
BA|V|4096],[140,R|V|X,BA|V|4096],[142,R|V|X,BA|V|4096],ny,[119,R|V|X,BA|V|4096]],[[115,R|S|X,BA|V|4096],[116,R|S|X,BA|V|4096],[109,R|S|X,BA|V|4096],[110,R|S|X,BA|V|4096],[140,R|S|X,BA|V|4096],[142,R|S|X,BA|V|4096],ny,[119,R|S|X,BA|V|4096]],[[115,R|V|X,lB|4096],[116,R|V|X,lB|4096],[109,R|V|X,lB|4096],[110,R|V|X,lB|4096],[140,R|V|X,lB|4096],[142,R|V|X,lB|4096],ny,[119,R|V|X,lB|4096]],[[115,R|S|X,lB|4096],[116,R|S|X,lB|4096],[109,R|S|X,lB|4096],[110,R|S|X,lB|4096],[140,R|S|X,lB|4096],[142,R|S|X,lB|4096],
|
||||
ny,[119,R|S|X,lB|4096]],[[155,R|V|4096,W|V|4096],ny,[98,R|V|X],[96,R|V|X],[95,R|V|4096],[42,R|V|X],[32,R|V|4096],[41,R|V|X]],[[155,R|S|4096,W|S|4096],ny,[98,R|S|X],[96,R|S|X],[95,R|S|4096],[42,R|S|X],[32,R|S|4096],[41,R|S|X]],[[44,R|V|X],[31,R|V|X],ny,ny,ny,ny,ny,ny],[[44,R|S|X],[31,R|S|X],[17,R|S|4096],[17,R|tA|4096],[57,R|S|4096],[57,R|tA|4096],[108,R|S|4096],ny],[],[[145,R|U|8192|AB],[153,R|U|8192|AB],[78,R|U|4096|AB],[89,R|U|4096|AB],[156,R|U|4096|AB],[157,R|U|4096|AB],ny,ny],[[139,R|U|8192|AB],
|
||||
[144,R|U|8192|AB],[75,R|U|4096|AB],[77,R|U|4096|AB],[146,R|U|8192|AB],ny,[79,R|U|4096|AB],ny],[ny,ny,ny,ny,[13,R|S|4096|Z,W|V|4096],[16,R|S|8192|Z,W|V|4096],[15,R|S|8192|Z,W|V|4096],[14,R|S|8192|Z,W|V|4096]]],sy={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},wy={PREV_TSS:0,CPL0_SP:2,
|
||||
CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,TASK_LDT:42},xy={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,
|
||||
TASK_IOPM:100};$a(function(){for(var a=zb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new gy(d);yb(d,c)}});
|
||||
function BB(a,b,c){mb.call(this,"Computer",a,67108864);this.ea.Yb=!1;CB(this,b);this.N=yd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=DB;this.L=null;this.I=this.Z=!1;this.da=yd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=EB(this);if(this.H=ub("CPU",this.id)){this.ba=ub("Debugger",this.id);this.G=[];for(b=null;b=Wb(this,"Video",b);)this.G.push(b);this.ka=new lc({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=sb(this.id);if((this.D=
|
||||
ub("Panel",this.id))&&this.D.Ie)for(b=0;b<e.length;b++)d=e[b],d.Fa=this.D.Fa,d.P=this.D.P,d.Ie=this.D.Ie;this.P("PCx86 v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.uc&&d.uc(this,this.ka,this.H,this.ba);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.A=parseInt(d,10));var f;if(a=yd(this,"state")||(f=!0,a.state))b=this.V=a,f||(this.I=!0,this.A=DB),this.A&&(this.M=new Wf(this,
|
||||
"1.34.3"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=FB(this))&&(this.I=!0);if(b){var g=this;Ka(b,null,!0,function(a,b,c){c?(g.K=null,g.I=!1,g.Fa("Unable to load machine state from server (error "+c+(b?": "+Ba(b):"")+")")):(g.L=b,g.Z=!0);Ib(g)})}else Ib(this);this.na.power||(this.N=!0);!c&&this.N&&GB(this,this.Lf)}else gb("Unable to find CPU component")}ba(BB,mb);
|
||||
function CB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){gb(d.message+" ("+c+")")}}a.J=b}function yd(a,b,c){var d=b.toLowerCase(),d=Ua(b)||Ua(d);void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function GB(a,b,c){for(var d=sb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Gb(f)){Gb(f,function(){GB(a,b,c)});return}}b.call(a,c)}
|
||||
function HB(a,b){var c=new Wf(a,"1.34.3",IB);if(c.load()&&JB(c)){var d=c.get(KB),e=b?b.get(KB):"unknown";d!=e&&(a.Fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=BB.prototype;
|
||||
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?LB:DB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Wf(this,"1.34.3");if(a==MB)b=!0;else if(a>DB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",NB);this.F.load()&&(OB(this,d),a=PB,QB(this.F));this.F.set(KB,Ea());RB(this.F);var e=this.A&&!this.I;if(a==LB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=JB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
|
||||
g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(SB,""),this.B=null)):this.P(f+": "+g),QB(d),d.load()?(c=JB(d),e=!0):c=!1))}e&&HB(this,c?d:null)}else a==PB&&d.clear()}else HB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=TB(this,g,d,b,c));b=[d,a,c];a!=MB?GB(this,this.mj,b):this.mj(b)}};
|
||||
function TB(a,b,c,d,e){if(!b.ea.Yb){b.ea.Yb=!0;if(b.Xb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Xb(f,d)&&f&&(gb("Unable to restore state for "+b.type),a.V&&!a.Z?(c.clear(),a.A=DB,window&&window.location.reload()):a.Y=!0,b.Xb(null),e=!1)}if(!d&&b.xj)for(a=b.xj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
l.mj=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(TB(this,this.H,b,c,a),this.H.lf());this.Y&&(OB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
|
||||
function OB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function iB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",IB),h=Ea();g.set(KB,h);f.set(KB,h);f.set(UB,"1.34.3");f.set(VB,window?window.location.href:null);f.set(WB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Yb&&(m.Wb&&(d=m.Wb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.ea.Yb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&XB(a,
|
||||
a.B,f.toString()),RB(g)&&RB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==YB),d&&f.clear(h)):e=f.toString());c&&(a.ea.Yb=!1,b=a.na.power)&&(b.textContent="Power");a.C=0;return e}l.reset=function(){this.ka&&this.ka.reset&&(Lb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=sb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(Lb(this,"Resetting "+c.type),c.reset())}};
|
||||
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){gB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in kB)Fm+="\n"+Aa(Gm,7)+kB[Gm];Ig(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
|
||||
function my(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Xz(a,b[+d]))return!1;return!0}
|
||||
var Lz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Kz=[26,28,40,42,109],kB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
|
||||
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Ry=0,Jy=1,sy=2,Uy=3,Sy=4,Ky=5,fA=18,gA=28,bA=36,kA=80,hA=104,iA=107,$z=176,Zz="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
|
||||
dA="FLD FST FSTP FXCH FILD FIST FISTP FBLD FBSTP FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FSQRT FSCALE FPREM FRNDINT FXTRACT FABS FCHS FCOM FCOMP FCOMPP FICOM FICOMP FTST FXAM FPTAN FPATAN F2XM1 FYL2X FYL2XP1 FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 FINIT FNINIT FDISI FNDISI FENI FNENI FLDCW FSTCW FNSTCW FSTSW FNSTSW FCLEX FNCLEX FSTENV FNSTENV FLDENV FSAVE FNSAVE FRSTOR FINCSTP FDECSTP FFREE FFREEP FNOP FWAIT FSETPM FSINCOS FSTSWAX".split(" "),
|
||||
fB=["VALID","ZERO ","SPEC ","EMPTY"],lA=2,mA=3,OA=[8086,80186,80286,80386],Yy=0,Zy=1,$y=2,az=3,bz=4,cz=5,dz=6,ez=7,fz=8,gz=9,hz=10,iz=11,jz=12,kz=13,lz=14,mz=15,oz=16,nz=22,Iz=23,vz=24,wz=25,xz=26,yz=27,zz=28,Az=29,Bz=30,Cz=31,Dz=32,Ez=33,Fz=34,Gz=35,SA=40,UA=48,Hz=56,Wy=["AL","CL","DL","BL","AH","CH","DH","BH","AX","CX","DX","BX","SP","BP","SI","DI","ES","CS","SS","DS","FS","GS","IP","PS","EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI","CR0","CR1","CR2","CR3",null,null,null,null,"DR0","DR1","DR2",
|
||||
"DR3",null,null,"DR6","DR7",null,null,null,null,null,null,"TR6","TR7","EIP"],pz=0,qz=1,rz=2,sz=3,tz=4,uz=5,sA="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),nA=15,qA=240,JA=3840,oA=0,V=1,DA=2,U=3,S=4,tA=5,uA=7,pA=8,HA=9,IA=10,vA=11,wA=11,xA=12,yA=12,zA=13,AA=14,W=0,CA=16,FA=32,GA=48,MA=64,NA=80,Y=96,KA=112,R=128,rA=160,LA=192,QA=208,RA=224,TA=240,lB=Yy<<8|Y|V,mB=Zy<<8|Y|V,nB=fz<<8|Y|S,oB=gz<<8|Y|S,pB=hz<<8|Y|S,qB=iz<<8|Y|S,rB=jz<<8|Y|S,sB=kz<<8|Y|S,tB=lz<<8|Y|S,uB=
|
||||
mz<<8|Y|S,vB=pz<<8|KA|U,wB=qz<<8|KA|U,xB=rz<<8|KA|U,yB=sz<<8|KA|U,zB=tz<<8|KA|U,AB=uz<<8|KA|U,X=12288,BB=lA<<14,Z=mA<<14,jA=14,Nz=1E3,oy=[0,oA],py=[$z,U|X],ny=[[6,R|V|X,V|4272],[6,R|S|X,S|4272],[6,176|V|X,R|V|4096],[6,176|S|X,R|S|4096],[6,lB|X,W|V|4096],[6,nB|X,W|S|4096],[108,vB|4096],[103,vB|8192],[99,R|V|X,V|4272],[99,R|S|X,S|4272],[99,176|V|X,R|V|4096],[99,176|S|X,R|S|4096],[99,lB|X,W|V|4096],[99,nB|X,W|S|4096],[108,wB|4096],[103,wB|8192],[5,R|V|X,V|4272],[5,R|S|X,S|4272],[5,176|V|X,R|V|4096],
|
||||
[5,176|S|X,R|S|4096],[5,lB|X,W|V|4096],[5,nB|X,W|S|4096],[108,xB|4096],[103,xB|8192],[120,R|V|X,V|4272],[120,R|S|X,S|4272],[120,176|V|X,R|V|4096],[120,176|S|X,R|S|4096],[120,lB|X,W|V|4096],[120,nB|X,W|S|4096],[108,yB|4096],[103,yB|8192],[7,R|V|X,V|4272],[7,R|S|X,S|4272],[7,176|V|X,R|V|4096],[7,176|S|X,R|S|4096],[7,lB|X,W|V|4096],[7,nB|X,W|S|4096],[35,pA],[29],[154,R|V|X,V|4272],[154,R|S|X,S|4272],[154,176|V|X,R|V|4096],[154,176|S|X,R|S|4096],[154,lB|X,W|V|4096],[154,nB|X,W|S|4096],[27,pA],[30],[162,
|
||||
R|V|X,V|4272],[162,R|S|X,S|4272],[162,176|V|X,R|V|4096],[162,176|S|X,R|S|4096],[162,lB|X,W|V|4096],[162,nB|X,W|S|4096],[147,pA],[1],[24,R|V|4096,V|4272],[24,R|S|4096,S|4272],[24,V|4272,R|V|4096],[24,S|4272,R|S|4096],[24,lB|4096,W|V|4096],[24,nB|4096,W|S|4096],[33,pA],[4],[44,nB|X],[44,oB|X],[44,pB|X],[44,qB|X],[44,rB|X],[44,sB|X],[44,tB|X],[44,uB|X],[31,nB|X],[31,oB|X],[31,pB|X],[31,qB|X],[31,rB|X],[31,sB|X],[31,tB|X],[31,uB|X],[108,nB|4096],[108,oB|4096],[108,pB|4096],[108,qB|4096],[108,rB|4096],
|
||||
[108,sB|4096],[108,tB|4096],[108,uB|4096],[103,nB|8192],[103,oB|8192],[103,pB|8192],[103,qB|8192],[103,rB|8192],[103,sB|8192],[103,tB|8192],[103,uB|8192],[iA,oA|BB],[hA,oA|BB],[10,S|4272|BB,R|S|4096],[8,R|U|8192,U|4272],[37,pA|Z],[38,pA|Z],[100,pA|Z],[9,pA|Z],[108,W|S|4096|BB],[42,176|U|X|BB,R|S|4096,W|S|4096],[108,W|DA|4096|BB],[42,U|8368|BB,R|S|4096,W|V|4096],[45,NA|V|8192|BB,pB|4096],[45,NA|S|8192|BB,pB|4096],[102,pB|4096|BB,MA|V|4096],[102,pB|4096|BB,MA|S|4096],[64,GA|V|4096],[60,GA|V|4096],[51,
|
||||
GA|V|4096],[59,GA|V|4096],[67,GA|V|4096],[63,GA|V|4096],[50,GA|V|4096],[58,GA|V|4096],[66,GA|V|4096],[62,GA|V|4096],[65,GA|V|4096],[61,GA|V|4096],[55,GA|V|4096],[54,GA|V|4096],[56,GA|V|4096],[53,GA|V|4096],[163,R|V|X,W|V|4096],[164,R|S|X,W|S|4096],[163,R|V|X,W|V|4096],[165,R|S|X,W|V|4096],[155,R|V|4096,V|4272],[155,R|S|4096,S|4272],[160,176|V|X,R|V|X],[160,176|S|X,R|S|X],[90,R|V|8192,V|4272],[90,R|S|8192,S|4272],[90,V|8368,R|V|4096],[90,S|8368,R|S|4096],[90,R|S|8192,LA|U|4096],[71,S|8368,144|S],[90,
|
||||
LA|U|8192,R|S|4096],[103,R|S|8192],[97],[160,nB|X,oB|X],[160,nB|X,pB|X],[160,nB|X,qB|X],[160,nB|X,rB|X],[160,nB|X,sB|X],[160,nB|X,tB|X],[160,nB|X,uB|X],[fA],[gA],[17,W|uA|4096],[158],[106],[105],[117],[68],[90,lB|8192,FA|V|4096],[90,nB|8192,FA|S|4096],[90,FA|V|8192,lB|4096],[90,FA|S|8192,nB|4096],[91,NA|V|8192,MA|V|4096],[92,NA|S|8192,MA|S|4096],[25,NA|V|4096,MA|V|4096],[26,NA|S|4096,MA|S|4096],[155,lB|4096,W|V|4096],[155,nB|4096,W|S|4096],[151,NA|V|8192,lB|4096],[152,NA|S|8192,nB|4096],[82,lB|8192,
|
||||
MA|V|4096],[83,nB|8192,MA|S|4096],[121,lB|4096,NA|V|4096],[122,nB|4096,NA|S|4096],[90,lB|8192,W|V|4096],[90,mB|8192,W|V|4096],[90,$y<<8|Y|V|8192,W|V|4096],[90,az<<8|Y|V|8192,W|V|4096],[90,bz<<8|Y|V|8192,W|V|4096],[90,cz<<8|Y|V|8192,W|V|4096],[90,dz<<8|Y|V|8192,W|V|4096],[90,ez<<8|Y|V|8192,W|V|4096],[90,nB|8192,W|S|4096],[90,oB|8192,W|S|4096],[90,pB|8192,W|S|4096],[90,qB|8192,W|S|4096],[90,rB|8192,W|S|4096],[90,sB|8192,W|S|4096],[90,tB|8192,W|S|4096],[90,uB|8192,W|S|4096],[166,R|V|X|16384,W|V|4096],
|
||||
[167,R|S|X|16384,W|V|4096],[113,W|U|4096],[113],[73,S|8368,4246],[70,S|8368,4246],[90,R|V|8192,W|V|4096],[90,R|S|8192,W|S|4096],[34,W|U|4096|BB,W|V|4096],[72,oA|BB],[114,W|U|4096],[114],[47],[46,W|V|4096],[48],[49],[168,R|V|X,CA|V|4096],[169,R|S|X,CA|V|4096],[170,R|V|X,mB|4096],[171,R|S|X,mB|4096],[3,W|V],[2,W|V],[118],[161],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[bA,R|S|4096],[85,GA|V|4096],[86,GA|V|4096],[84,GA|V|4096],[52,GA|V|4096],[43,
|
||||
lB|8192,W|V|4096],[43,nB|8192,W|V|4096],[101,W|V|4096,lB|4096],[101,W|V|4096,nB|4096],[17,GA|S|4096],[57,GA|S|4096],[57,W|uA|4096],[57,GA|V|4096],[43,lB|8192,pB|U|4096],[43,nB|8192,pB|U|4096],[101,pB|U|4096,lB|4096],[101,pB|U|4096,nB|4096],[81,pA],[0],[111,pA],[112,pA],[39],[23],[172,R|V|X],[173,R|S|X],[19],[148],[21],[150],[20],[149],[174,R|V|X],[175,R|S|X]],aA={0:[177,R|U|X],1:[178,R|U|X],2:[69,U|8368|BB,U|4240],3:[87,U|8368|BB,U|4240],5:[kA,BB],6:[22,BB],7:[kA,Z],32:[90,rA|tA|8192|Z,QA|tA|4096],
|
||||
33:[90,rA|tA|8192|Z,RA|tA|4096],34:[90,QA|tA|8192|Z,rA|tA|4096],35:[90,RA|tA|8192|Z,rA|tA|4096],36:[90,rA|tA|8192|Z,TA|tA|4096],38:[90,TA|tA|8192|Z,rA|tA|4096],128:[64,GA|S|4096|Z],129:[60,GA|S|4096|Z],130:[51,GA|S|4096|Z],131:[59,GA|S|4096|Z],132:[67,GA|S|4096|Z],133:[63,GA|S|4096|Z],134:[50,GA|S|4096|Z],135:[58,GA|S|4096|Z],136:[66,GA|S|4096|Z],137:[62,GA|S|4096|Z],138:[65,GA|S|4096|Z],139:[61,GA|S|4096|Z],140:[55,GA|S|4096|Z],141:[54,GA|S|4096|Z],142:[56,GA|S|4096|Z],143:[53,GA|S|4096|Z],144:[135,
|
||||
R|V|8192|Z],145:[131,R|V|8192|Z],146:[124,R|V|8192|Z],147:[130,R|V|8192|Z],148:[138,R|V|8192|Z],149:[134,R|V|8192|Z],150:[123,R|V|8192|Z],151:[129,R|V|8192|Z],152:[137,R|V|8192|Z],153:[133,R|V|8192|Z],154:[136,R|V|8192|Z],155:[132,R|V|8192|Z],156:[127,R|V|8192|Z],157:[126,R|V|8192|Z],158:[128,R|V|8192|Z],159:[125,R|V|8192|Z],160:[108,zB|4096|Z],161:[103,zB|8192|Z],163:[13,R|S|4096|Z,S|4272],164:[141,R|S|8192|Z,S|4272,W|V|4096],165:[141,R|S|8192|Z,S|4272,mB|4096],166:[159,S|8368|Z,R|S|4096,nB|4096,
|
||||
mB|4096],167:[40,R|S|8192|Z,nB|4096,mB|4096,S|4272],168:[108,AB|4096|Z],169:[103,AB|8192|Z],171:[16,R|S|8192|Z,S|4272],172:[143,R|S|8192|Z,S|4272,W|V|4096],173:[143,R|S|8192|Z,S|4272,mB|4096],175:[42,R|S|X|Z,S|4272],178:[88,S|8368,4246],179:[15,R|S|8192|Z,S|4272],180:[74,S|8368,4246],181:[76,S|8368,4246],182:[94,S|8368|Z,R|V|4096],183:[94,tA|8368|Z,R|U|4096],186:[179,R|S|X|Z,W|V|4096],187:[14,R|S|8192|Z,S|4272],188:[11,S|8368|Z,R|S|4096],189:[12,S|8368|Z,R|S|4096],190:[93,S|8368|Z,R|V|4096],191:[93,
|
||||
tA|8368|Z,R|U|4096]},cA={216:{0:[9,R|wA|4096],1:[18,R|wA|4096],2:[34,R|wA|4096],3:[35,R|wA|4096],4:[12,R|wA|4096],5:[15,R|wA|4096],6:[21,R|wA|4096],7:[24,R|wA|4096],48:[9,Y|HA|8192,Y|IA|4096],49:[18,Y|HA|8192,Y|IA|4096],50:[34,Y|HA|8192,Y|IA|4096],51:[35,Y|HA|8192,Y|IA|4096],52:[12,Y|HA|8192,Y|IA|4096],53:[15,Y|HA|8192,Y|IA|4096],54:[21,Y|HA|8192,Y|IA|4096],55:[24,Y|HA|8192,Y|IA|4096]},217:{0:[0,R|wA|4096],2:[1,R|wA|8192],3:[2,R|wA|8192],4:[68,R|4111],5:[59,R|U|4096],6:[66,R|8207],7:[60,R|U|8192],
|
||||
48:[0,Y|IA|8192],49:[3,Y|IA|8192],50:[76],51:[2,Y|IA|8192],64:[33],65:[32],68:[39],69:[40],80:[47],81:[49],82:[50],83:[48],84:[51],85:[52],86:[46],96:[43],97:[44],98:[41],99:[42],100:[31],102:[73],103:[72],112:[29],113:[45],114:[27],116:[30],117:[28]},218:{0:[11,R|vA|4096],1:[20,R|vA|4096],2:[37,R|vA|4096],3:[38,R|vA|4096],4:[14,R|vA|4096],5:[17,R|vA|4096],6:[23,R|vA|4096],7:[26,R|vA|4096]},219:{0:[4,R|vA|4096],2:[5,R|vA|8192],3:[6,R|vA|8192],5:[0,R|zA|4096],7:[2,R|zA|8192],64:[57],65:[55],66:[64],
|
||||
67:[53],68:[78,BB],115:[79,Z]},220:{0:[9,R|yA|4096],1:[18,R|yA|4096],2:[34,R|yA|4096],3:[35,R|yA|4096],4:[12,R|yA|4096],5:[15,R|yA|4096],6:[21,R|yA|4096],7:[24,R|yA|4096],48:[9,Y|IA|8192,Y|HA|4096],49:[18,Y|IA|8192,Y|HA|4096],50:[34,Y|IA|4096],51:[35,Y|IA|4096],52:[15,Y|IA|8192,Y|HA|4096],53:[12,Y|IA|8192,Y|HA|4096],54:[24,Y|IA|8192,Y|HA|4096],55:[21,Y|IA|8192,Y|HA|4096]},221:{0:[0,R|yA|4096],2:[1,R|yA|8192],3:[2,R|yA|8192],4:[71,R|4111],6:[69,R|8207],7:[62,R|U|8192],48:[74,Y|IA|4096],49:[3,Y|IA|
|
||||
8192],50:[1,Y|IA|4096],51:[2,Y|IA|4096]},222:{0:[11,R|U|4096],1:[20,R|U|4096],2:[37,R|U|4096],3:[38,R|U|4096],4:[14,R|U|4096],5:[17,R|U|4096],6:[23,R|U|4096],7:[26,R|U|4096],48:[10,Y|IA|8192,Y|HA|4096],49:[19,Y|IA|8192,Y|HA|4096],50:[35,Y|IA|4096],51:[36,Y|IA|4096],52:[16,Y|IA|8192,Y|HA|4096],53:[13,Y|IA|8192,Y|HA|4096],54:[25,Y|IA|8192,Y|HA|4096],55:[22,Y|IA|8192,Y|HA|4096]},223:{0:[4,R|U|4096],2:[5,R|U|8192],3:[6,R|U|8192],4:[7,R|AA|4096],5:[4,R|xA|4096],6:[8,R|AA|8192],7:[6,R|xA|8192],48:[75,Y|
|
||||
IA|4096],49:[3,Y|IA|8192],50:[2,Y|IA|4096],51:[2,Y|IA|4096],52:[80,BB]}},eA=[[[6,R|V|X,W|V|4096],[99,R|V|X,W|V|4096],[5,R|V|X,W|V|4096],[120,R|V|X,W|V|4096],[7,R|V|X,W|V|4096],[154,R|V|X,W|V|4096],[162,R|V|X,W|V|4096],[24,R|V|4096,W|V|4096]],[[6,R|S|X,W|S|4096],[99,R|S|X,W|S|4096],[5,R|S|X,W|S|4096],[120,R|S|X,W|S|4096],[7,R|S|X,W|S|4096],[154,R|S|X,W|S|4096],[162,R|S|X,W|S|4096],[24,R|S|4096,W|S|4096]],[[6,R|S|X,W|DA|4096],[99,R|S|X,W|DA|4096],[5,R|S|X,W|DA|4096],[120,R|S|X,W|DA|4096],[7,R|S|X,W|
|
||||
DA|4096],[154,R|S|X,W|DA|4096],[162,R|S|X,W|DA|4096],[24,R|S|4096,W|DA|4096]],[[115,R|V|X|BB,W|V|4096],[116,R|V|X|BB,W|V|4096],[109,R|V|X|BB,W|V|4096],[110,R|V|X|BB,W|V|4096],[140,R|V|X|BB,W|V|4096],[142,R|V|X|BB,W|V|4096],oy,[119,R|V|X|BB,W|V|4096]],[[115,R|S|X|BB,W|V|4096],[116,R|S|X|BB,W|V|4096],[109,R|S|X|BB,W|V|4096],[110,R|S|X|BB,W|V|4096],[140,R|S|X|BB,W|V|4096],[142,R|S|X|BB,W|V|4096],oy,[119,R|S|X|BB,W|V|4096]],[[115,R|V|X,CA|V|4096],[116,R|V|X,CA|V|4096],[109,R|V|X,CA|V|4096],[110,R|V|X,
|
||||
CA|V|4096],[140,R|V|X,CA|V|4096],[142,R|V|X,CA|V|4096],oy,[119,R|V|X,CA|V|4096]],[[115,R|S|X,CA|V|4096],[116,R|S|X,CA|V|4096],[109,R|S|X,CA|V|4096],[110,R|S|X,CA|V|4096],[140,R|S|X,CA|V|4096],[142,R|S|X,CA|V|4096],oy,[119,R|S|X,CA|V|4096]],[[115,R|V|X,mB|4096],[116,R|V|X,mB|4096],[109,R|V|X,mB|4096],[110,R|V|X,mB|4096],[140,R|V|X,mB|4096],[142,R|V|X,mB|4096],oy,[119,R|V|X,mB|4096]],[[115,R|S|X,mB|4096],[116,R|S|X,mB|4096],[109,R|S|X,mB|4096],[110,R|S|X,mB|4096],[140,R|S|X,mB|4096],[142,R|S|X,mB|4096],
|
||||
oy,[119,R|S|X,mB|4096]],[[155,R|V|4096,W|V|4096],oy,[98,R|V|X],[96,R|V|X],[95,R|V|4096],[42,R|V|X],[32,R|V|4096],[41,R|V|X]],[[155,R|S|4096,W|S|4096],oy,[98,R|S|X],[96,R|S|X],[95,R|S|4096],[42,R|S|X],[32,R|S|4096],[41,R|S|X]],[[44,R|V|X],[31,R|V|X],oy,oy,oy,oy,oy,oy],[[44,R|S|X],[31,R|S|X],[17,R|S|4096],[17,R|uA|4096],[57,R|S|4096],[57,R|uA|4096],[108,R|S|4096],oy],[],[[145,R|U|8192|BB],[153,R|U|8192|BB],[78,R|U|4096|BB],[89,R|U|4096|BB],[156,R|U|4096|BB],[157,R|U|4096|BB],oy,oy],[[139,R|U|8192|BB],
|
||||
[144,R|U|8192|BB],[75,R|U|4096|BB],[77,R|U|4096|BB],[146,R|U|8192|BB],oy,[79,R|U|4096|BB],oy],[oy,oy,oy,oy,[13,R|S|4096|Z,W|V|4096],[16,R|S|8192|Z,W|V|4096],[15,R|S|8192|Z,W|V|4096],[14,R|S|8192|Z,W|V|4096]]],ty={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},xy={PREV_TSS:0,CPL0_SP:2,
|
||||
CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,TASK_LDT:42},yy={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,
|
||||
TASK_IOPM:100};$a(function(){for(var a=zb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new hy(d);yb(d,c)}});
|
||||
function CB(a,b,c){mb.call(this,"Computer",a,67108864);this.ea.Yb=!1;DB(this,b);this.N=yd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=EB;this.L=null;this.I=this.Z=!1;this.da=yd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=FB(this);if(this.H=ub("CPU",this.id)){this.ba=ub("Debugger",this.id);this.G=[];for(b=null;b=Wb(this,"Video",b);)this.G.push(b);this.ka=new lc({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=sb(this.id);if((this.D=
|
||||
ub("Panel",this.id))&&this.D.Ie)for(b=0;b<e.length;b++)d=e[b],d.Fa=this.D.Fa,d.P=this.D.P,d.Ie=this.D.Ie;this.P("PCx86 v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.uc&&d.uc(this,this.ka,this.H,this.ba);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.A=parseInt(d,10));var f;if(a=yd(this,"state")||(f=!0,a.state))b=this.V=a,f||(this.I=!0,this.A=EB),this.A&&(this.M=new Wf(this,
|
||||
"1.34.3"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=GB(this))&&(this.I=!0);if(b){var g=this;Ka(b,null,!0,function(a,b,c){c?(g.K=null,g.I=!1,g.Fa("Unable to load machine state from server (error "+c+(b?": "+Ba(b):"")+")")):(g.L=b,g.Z=!0);Ib(g)})}else Ib(this);this.na.power||(this.N=!0);!c&&this.N&&HB(this,this.Lf)}else gb("Unable to find CPU component")}ba(CB,mb);
|
||||
function DB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){gb(d.message+" ("+c+")")}}a.J=b}function yd(a,b,c){var d=b.toLowerCase(),d=Ua(b)||Ua(d);void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function HB(a,b,c){for(var d=sb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Gb(f)){Gb(f,function(){HB(a,b,c)});return}}b.call(a,c)}
|
||||
function IB(a,b){var c=new Wf(a,"1.34.3",JB);if(c.load()&&KB(c)){var d=c.get(LB),e=b?b.get(LB):"unknown";d!=e&&(a.Fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=CB.prototype;
|
||||
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?MB:EB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Wf(this,"1.34.3");if(a==NB)b=!0;else if(a>EB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",OB);this.F.load()&&(PB(this,d),a=QB,RB(this.F));this.F.set(LB,Ea());SB(this.F);var e=this.A&&!this.I;if(a==MB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=KB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
|
||||
g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(TB,""),this.B=null)):this.P(f+": "+g),RB(d),d.load()?(c=KB(d),e=!0):c=!1))}e&&IB(this,c?d:null)}else a==QB&&d.clear()}else IB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=UB(this,g,d,b,c));b=[d,a,c];a!=NB?HB(this,this.mj,b):this.mj(b)}};
|
||||
function UB(a,b,c,d,e){if(!b.ea.Yb){b.ea.Yb=!0;if(b.Xb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Xb(f,d)&&f&&(gb("Unable to restore state for "+b.type),a.V&&!a.Z?(c.clear(),a.A=EB,window&&window.location.reload()):a.Y=!0,b.Xb(null),e=!1)}if(!d&&b.xj)for(a=b.xj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
l.mj=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(UB(this,this.H,b,c,a),this.H.lf());this.Y&&(PB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
|
||||
function PB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function jB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",JB),h=Ea();g.set(LB,h);f.set(LB,h);f.set(VB,"1.34.3");f.set(WB,window?window.location.href:null);f.set(XB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Yb&&(m.Wb&&(d=m.Wb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.ea.Yb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&YB(a,
|
||||
a.B,f.toString()),SB(g)&&SB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==ZB),d&&f.clear(h)):e=f.toString());c&&(a.ea.Yb=!1,b=a.na.power)&&(b.textContent="Power");a.C=0;return e}l.reset=function(){this.ka&&this.ka.reset&&(Lb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=sb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(Lb(this,"Resetting "+c.type),c.reset())}};
|
||||
l.start=function(a,b){for(var c=sb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=sb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
l.Cb=function(a,b,c){var d=this;switch(b){case "power":return this.na[b]=c,c.onclick=function(){d.C||(d.ea.Yb?iB(d,!1,!0):GB(d,d.Lf))},!0;case "reset":return this.na[b]=c,c.onclick=function(){if(d.ea.Yb&&!d.C)if(d.A&&!d.K){var a=qb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");iB(d,a,!0);!a&&d.V?window&&window.location.reload():(a||(d.O=!0),d.Lf(DB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(wa(La(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.na[b]=c,c.onclick=function(){var a=EB(d,!0);if(a){var b=!!(d.A&&!d.K||d.V),c=iB(d,b);b?XB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function EB(a,b){var c=a.B;c||((c=Pa(SB),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=jC(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
|
||||
function jC(a,b){a.B=null;b=Ka(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(SB,b.data),a.B=b.data)}catch(d){gb(d.message+" ("+c+")")}return a.B}function FB(a){var b=null;a.B&&(b=La()+"/api/v1/user?req=load&user="+a.B+"&state="+kC(a,"1.34.3"));return b}
|
||||
function XB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kC(a,"1.34.3");d.data=c;b=Ka(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Fa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Fa(c),Ra(SB,""),a.B=null)}}
|
||||
l.Cb=function(a,b,c){var d=this;switch(b){case "power":return this.na[b]=c,c.onclick=function(){d.C||(d.ea.Yb?jB(d,!1,!0):HB(d,d.Lf))},!0;case "reset":return this.na[b]=c,c.onclick=function(){if(d.ea.Yb&&!d.C)if(d.A&&!d.K){var a=qb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");jB(d,a,!0);!a&&d.V?window&&window.location.reload():(a||(d.O=!0),d.Lf(EB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(wa(La(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.na[b]=c,c.onclick=function(){var a=FB(d,!0);if(a){var b=!!(d.A&&!d.K||d.V),c=jB(d,b);b?YB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function FB(a,b){var c=a.B;c||((c=Pa(TB),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=kC(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
|
||||
function kC(a,b){a.B=null;b=Ka(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(TB,b.data),a.B=b.data)}catch(d){gb(d.message+" ("+c+")")}return a.B}function GB(a){var b=null;a.B&&(b=La()+"/api/v1/user?req=load&user="+a.B+"&state="+lC(a,"1.34.3"));return b}
|
||||
function YB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=lC(a,"1.34.3");d.data=c;b=Ka(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Fa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Fa(c),Ra(TB,""),a.B=null)}}
|
||||
function Wb(a,b,c){a=sb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.ld=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.D&&d.D.focus();!a&&window&&window.scrollTo(b,c)}};
|
||||
function Md(a,b){a.H&&(a=a.H,a.tj&&(b||!a.ea.wb||a.ea.kj)&&(Hg(a,"EAX",a.D),Hg(a,"EBX",a.G),Hg(a,"ECX",a.I),Hg(a,"EDX",a.L),Hg(a,"ESP",z(a)),Hg(a,"EBP",a.M),Hg(a,"ESI",a.K),Hg(a,"EDI",a.J),Hg(a,"CS",a.Z.U),Hg(a,"DS",a.Ca.U),Hg(a,"SS",a.Y.U),Hg(a,"ES",a.oa.U),Hg(a,"EIP",A(a)),b=qe(a),Hg(a,"PS",b),Hg(a,"V",b&2048),Hg(a,"D",b&1024),Hg(a,"I",b&512),Hg(a,"T",b&256),Hg(a,"S",b&128),Hg(a,"Z",b&64),Hg(a,"A",b&16),Hg(a,"P",b&4),Hg(a,"C",b&1),80386==a.ca&&(Hg(a,"FS",a.Ga.U),Hg(a,"GS",a.Ha.U),Hg(a,"CR0",a.qa),
|
||||
Hg(a,"CR2",a.Cd),Hg(a,"CR3",a.Wc))),b=a.na.speed)&&(b.textContent=a.ea.wb&&a.T.Wd?a.T.Wd.toFixed(2)+"Mhz":"Stopped")}
|
||||
function Td(a,b){for(var c=0;c<a.G.length;c++)ys(a.G[c],b);if(a.D&&(a=a.D,a.oa)){fc(a,gc,a.K,a.ma);if(a.Ba){b=a.ka;var c=a.A,d,e;null==d&&(d=0);null==e&&(e=b.O-d|0);c||(c={ah:0,Hd:0,Rg:[]});var f=d>>>b.A;d=d+e-1>>>b.A;c.ah=0;for(c.Hd=0;f<=d;)e=b.aa[f],c.ah+=e.size,e.size&&(c.Rg.push(Fa(bc,f,0,0,e.type)),c.Hd++),f++;a.A=c;a.da=a.A.Hd*a.ka.B/(ac*kc);d=0;a.A.$i=0;a.A.kf||(a.A.kf=[]);e=-1;b=0;for(var g=-1,c=0;c<a.A.Hd;c++){var h=a.A.Rg[c],f=Ga(bc.type,h),h=Ga(bc.Hk,h);if(f!=e||h!=g+1)(g=c-b)&&(d+=ic(a,
|
||||
b,g,e)),e=f,b=c;g=h}d+=ic(a,b,c-b,e);e=a.A.Bl!=d;a.A.Bl=d;if(e){e=new Tb(0,0,a.K.width,a.K.height);a.A.Ce=[];b=a.A.Hd;for(d=0;d<a.A.$i;d++)c=a.A.kf[d].Hd,a.A.Ce.push(Ub(e,c,b,!d)),b-=c;for(d=0;d<a.A.Ce.length;d++)e=a.A.kf[d],b=c=a.A.Ce[d],f=a.ma,(g=ud[e.type])||(g=new Sb),f.strokeStyle="black",f.strokeRect(b.x,b.y,b.Nc,b.A),f.fillStyle="string"==typeof g?g:g.toString(),f.fillRect(b.x,b.y,b.Nc,b.A),b=a,f=c,b.M=b.Z,b.J=b.aa,c=f.x+(f.Nc>>1),g=f.y+(f.A>>1),h=f.A,f.Nc<f.A&&(h=f.Nc,b.Y=!0,b.D.save(),b.D.translate(c,
|
||||
g),b.D.rotate(-Math.PI/2),c=g=0),h<b.J&&(b.J=h,b.M=b.J+"px "+jc),f=g,b.C=c,b.I=f,b=a,e=tc[e.type]+" ("+(e.Hd*a.ka.B/1024|0)+"Kb)",b.D.font=b.M,b.C-=b.D.measureText(e).width>>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var NB="failsafe",IB="validate",KB="timestamp",UB="version",VB="url",WB="browser",SB="user",MB=-1,DB=0,LB=1,PB=2,YB=3;
|
||||
$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=vb(c),c=zb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=vb(f),g=new BB(g,d,!0);yb(g,f);g.N&&GB(g,g.Lf)}});ab.show.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ga&&!c.ea.Yb&&c.Lf(MB)}});
|
||||
ab.exit.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ea.Yb&&iB(c,!(!c.A||c.K),!0)}});function Wf(a,b,c){this.id=a.id;this.ba=a.ba;this.A="";this.state={};this.B=this.C=!1;this.key=kC(a,b,c);QB(this,a.Ok)}l=Wf.prototype;l.set=function(a,b){try{this.state[a]=b}catch(c){}};l.get=function(a){return this.state[a]||null};l.data=function(){return this.state};
|
||||
l.load=function(a){return a?(this.A=a,this.B=!0,this.C=!1,!0):this.B?!0:Na()&&(a=Pa(this.key))?(this.A=a,this.B=!0):!1};function JB(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){gb(c.message||c),b=!1}return b}function RB(a){var b=!0;if(Na()){var c=JSON.stringify(a.state);Ra(a.key,c)||(gb("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.state?JSON.stringify(this.state):this.A};
|
||||
function QB(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){QB(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function kC(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var lC=0;
|
||||
function mC(a,b,c,d,e,f){e("Loading "+a+"...");Ka(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):nC(h,a,b,c,d,e,f)})}
|
||||
function nC(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ob(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PCx86$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcx86$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?oC(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function oC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);oC(a,b,c)}})}else c(a,null)}
|
||||
function pC(a,b,c,d){function e(a){if(void 0===h){var b=g&&zb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=xa(a))}function f(a){e("Error: "+a);k&&(--lC||hb(!0));k=!1}var g,h,k=!0;lC++;pb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c||
|
||||
(c="/versions/pcx86/1.34.3/components.xsl");m=function(d,h){h?mC(c,null,null,!1,e,function(d,k){k?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--lC||hb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--lC||hb(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mC(b,a,d,!0,e,m):nC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function qC(a,b,c,d){hb(!1);return pC(a,b,c,d)}window.embedPC=qC;window.embedPCx86=qC;window.findMachineComponent=function(a,b){return ub(b,a+".machine")};
|
||||
g),b.D.rotate(-Math.PI/2),c=g=0),h<b.J&&(b.J=h,b.M=b.J+"px "+jc),f=g,b.C=c,b.I=f,b=a,e=tc[e.type]+" ("+(e.Hd*a.ka.B/1024|0)+"Kb)",b.D.font=b.M,b.C-=b.D.measureText(e).width>>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var OB="failsafe",JB="validate",LB="timestamp",VB="version",WB="url",XB="browser",TB="user",NB=-1,EB=0,MB=1,QB=2,ZB=3;
|
||||
$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=vb(c),c=zb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=vb(f),g=new CB(g,d,!0);yb(g,f);g.N&&HB(g,g.Lf)}});ab.show.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ga&&!c.ea.Yb&&c.Lf(NB)}});
|
||||
ab.exit.push(function(){for(var a=zb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=vb(a[b]);(c=ub("Computer",c.id))&&c.ea.Yb&&jB(c,!(!c.A||c.K),!0)}});function Wf(a,b,c){this.id=a.id;this.ba=a.ba;this.A="";this.state={};this.B=this.C=!1;this.key=lC(a,b,c);RB(this,a.Ok)}l=Wf.prototype;l.set=function(a,b){try{this.state[a]=b}catch(c){}};l.get=function(a){return this.state[a]||null};l.data=function(){return this.state};
|
||||
l.load=function(a){return a?(this.A=a,this.B=!0,this.C=!1,!0):this.B?!0:Na()&&(a=Pa(this.key))?(this.A=a,this.B=!0):!1};function KB(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){gb(c.message||c),b=!1}return b}function SB(a){var b=!0;if(Na()){var c=JSON.stringify(a.state);Ra(a.key,c)||(gb("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.state?JSON.stringify(this.state):this.A};
|
||||
function RB(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){RB(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function lC(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var mC=0;
|
||||
function nC(a,b,c,d,e,f){e("Loading "+a+"...");Ka(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):oC(h,a,b,c,d,e,f)})}
|
||||
function oC(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ob(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PCx86$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcx86$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?pC(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function pC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);pC(a,b,c)}})}else c(a,null)}
|
||||
function qC(a,b,c,d){function e(a){if(void 0===h){var b=g&&zb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=xa(a))}function f(a){e("Error: "+a);k&&(--mC||hb(!0));k=!1}var g,h,k=!0;mC++;pb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c||
|
||||
(c="/versions/pcx86/1.34.3/components.xsl");m=function(d,h){h?nC(c,null,null,!1,e,function(d,k){k?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--mC||hb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--mC||hb(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nC(b,a,d,!0,e,m):oC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function rC(a,b,c,d){hb(!1);return qC(a,b,c,d)}window.embedPC=rC;window.embedPCx86=rC;window.findMachineComponent=function(a,b){return ub(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Bb[a]){for(var c=!0,d=Bb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var v=b[p];if('"'==v||"'"==v)m&&v!=m?k+=v:(m?m=null:m=v,k&&(h.push(k),k=""));else{if(!m){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;Ab(a)||(c=!1)}return c};window.enableEvents=hb;window.sendEvent=kb;
|
||||
function rC(a,b,c,d){if(!c&&b){d.push(b);a=pb[d[0]];b=null;for(var e in a)if(wa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Ka(b,null,!0,function(a,b){sC(b,d)}):sC(null,d)}else gb("Error ("+c+") requesting "+a)}
|
||||
function sC(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=pb[f],k={},m;for(m in h){var p=h[m],v=va(m);if("xml"==v){for(v=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||
function sC(a,b,c,d){if(!c&&b){d.push(b);a=pb[d[0]];b=null;for(var e in a)if(wa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Ka(b,null,!0,function(a,b){tC(b,d)}):tC(null,d)}else gb("Error ("+c+") requesting "+a)}
|
||||
function tC(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=pb[f],k={},m;for(m in h){var p=h[m],v=va(m);if("xml"==v){for(v=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||
"©"),a=Wa(c,"javascript",!1,g),a=a+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n')+"...\n",a=a+('<script type="text/javascript" src="'+g+'">\x3c/script>\n')+('<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n')+"The machine should appear where the <div> is located.",gb(a)):gb("Missing XML/XSL resources")}
|
||||
window.savePC=function(a,b,c){var d=ub("Computer",a),e=ub("Debugger",a);if(d){var f=iB(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.34.3/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;Ka(b,null,!0,function(c,d,e){rC(c,d,e,[a,ta(b,!0),g,f])});return!0}gb("Unable to identify machine '"+a+"'");return!1};})();
|
||||
window.savePC=function(a,b,c){var d=ub("Computer",a),e=ub("Debugger",a);if(d){var f=jB(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.34.3/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;Ka(b,null,!0,function(c,d,e){sC(c,d,e,[a,ta(b,!0),g,f])});return!0}gb("Unable to identify machine '"+a+"'");return!1};})();
|
||||
|
|
|
|||
|
|
@ -167,128 +167,128 @@ m.ta=function(a,b,c){var d=this;switch(b){case He:return this.J[b]=c,c.onkeydown
|
|||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.La=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
|
||||
m.Kb=function(a){if(!this.b){var b=Zc(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ab)return;c=Ca(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Kb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
m.sa=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new F(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};m.hc=function(){};m.kc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var He="buffer";
|
||||
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ge(d);sb(d,c)}});function Ie(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.ka=null;this.ba=["{","}"];this.ua=["[","]"];this.C=0;this.U=!1;this.w=-1;this.j=[];this.I={}}ka(Ie,r);Ie.prototype.sb=function(){return-1};Ie.prototype.tb=function(){};
|
||||
function Je(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.U?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)&(c/Le|0))*Le+((b&c)>>>0)}
|
||||
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ge(d);sb(d,c)}});function Ie(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.ka=null;this.U=["{","}"];this.ua=["[","]"];this.C=0;this.V=!1;this.w=-1;this.j=[];this.I={}}ka(Ie,r);Ie.prototype.sb=function(){return-1};Ie.prototype.tb=function(){};
|
||||
function Je(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.V?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)&(c/Le|0))*Le+((b&c)>>>0)}
|
||||
function Me(a,b,c){if(32>=a.L)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)^(c/Le|0))*Le+((b^c)>>>0)}function Y(a,b,c,d){var e=b;c=c||a.L;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?(b<2*-a&&(e=b%(2*a)),e+=2*a):e>=a&&(b>=2*a&&(e=b%(2*a)),e-=2*a));b!=e&&(b=e);return b}
|
||||
function Ne(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
|
||||
case "&":f=Ke(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=(f/Le|0|g/Le|0)*Le+((f|g)>>>0));break;case "^!":f=Me(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Y(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(Y(a,f))}return!0}
|
||||
function Oe(a,b,c,d,e,f){var g,h,k,l=!1,p=0,u=[],D=[],H=a.T;for(a.T=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Pe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Oe(a,b,p,c-1,a.T,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.T=2;continue}if("^O"==k){a.T=8;continue}if("^D"==k){a.T=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
|
||||
k){p=p<<2|3;continue}}l=!0;break}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{l=!0;f=!f;break}u.push(Y(a,p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;D.length&&Qe[k]<=Qe[D[D.length-1]]&&Ne(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Ne(a,u,D)||1!=u.length)l=!0;l?!1===f&&a.u("parse error ("+(h||k)+")"):g=u.pop();a.T=H;return g}
|
||||
function Re(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,l=e;k<b.length;){var p=b[k++];if(p==c){l=-1;break}if(!l)break;l--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Y(a,h*Math.pow(2,d)+p,d*e,!0)}if(0<=l){!1===f&&a.u("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,h,-1)+b.substr(k)}return b}
|
||||
function Se(a,b,c){var d=void 0;a.ka=null;if(b){"{"!=a.ba[0]&&(b=b.split(a.ba[0]).join("{").split(a.ba[1]).join("}"));b=Re(a,b,'"',7,5,c);if(!b)return d;b=Re(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=Oe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Te(a,null,d)}return d}
|
||||
k){p=p<<2|3;continue}}l=!0;break}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{l=!0;f=!f;break}u.push(Y(a,p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.U[0]?Qe:Re;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Ne(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Ne(a,u,D)||1!=u.length)l=!0;l?!1===f&&a.u("parse error ("+(h||k)+")"):g=u.pop();a.T=H;return g}
|
||||
function Se(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,l=e;k<b.length;){var p=b[k++];if(p==c){l=-1;break}if(!l)break;l--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Y(a,h*Math.pow(2,d)+p,d*e,!0)}if(0<=l){!1===f&&a.u("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,h,-1)+b.substr(k)}return b}
|
||||
function Te(a,b,c){var d=void 0;a.ka=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=Se(a,b,'"',7,5,c);if(!b)return d;b=Se(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=Oe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Ue(a,null,d)}return d}
|
||||
function Pe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.sb(b),0<=f?f=a.tb(f):(f=a.I[b],null==f&&(f=sa(b,1<b.length?a.T:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Y(a,f);break;case 2:f=Me(a,f,-1);break;case 3:for(b=35;0<=b&&!Ke(a,f,Math.pow(2,b));)b--;f=35-b}e>>>=2}f=Y(a,f)}else d||a.u("invalid "+(c?c:"value")+": "+b);else d||a.u("missing "+(c||"value"));return f}
|
||||
function Te(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?K(a,c,a.L,8,1)+" "+c+".":K(a,c,a.L,16,1)+" "+K(a,c,a.L,8,1)+" "+K(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function Ue(a){var b=a.I;a.I={};return b}function Ve(a,b){if(b)return Te(a,b,a.I[b]);var c=0;for(b in a.I)Te(a,b,a.I[b]),c++;return 0<c}
|
||||
function Ue(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?K(a,c,a.L,8,1)+" "+c+".":K(a,c,a.L,16,1)+" "+K(a,c,a.L,8,1)+" "+K(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function Ve(a){var b=a.I;a.I={};return b}function We(a,b){if(b)return Ue(a,b,a.I[b]);var c=0;for(b in a.I)Ue(a,b,a.I[b]),c++;return 0<c}
|
||||
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.T){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=ta(b,2,a,"",e);break;case 8:b=ua(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=va(b,0<c?Math.ceil(.3*c):0);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 Qe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Le=Math.pow(2,32);
|
||||
function We(a){Ie.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.ba=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ja=Z(0);this.F=[];this.b=this.N=this.K=[];Xe(this);this.V=this.qa=0;this.i=[];this.Ea=void 0;Ye(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.X=null;this.S=[];Ze(this,a.messages);this.va=a.commands;this.Ha=[];this.P=0;this.Oa=this.Fa=null;this.C=this.Na=this.Ka=this.oa=this.Da=0;this.Ca=this.na=this.ia=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return dd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return dd(b,a)})}ka(We,Ie);function $e(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,ra:!1,T:c}}function af(a,b,c,d){a.B=b;a.eb=c||!1;a.ra=!1;a.T=d}function bf(a){return[a.B,a.eb,a.ra,a.T,a.hb]}function cf(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.zb=Je(a,c.hb=b[4]));return c}m=We.prototype;
|
||||
m.La=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=Zc(a,"messages"))&&Ze(this,b);if(a=Zc(a,"commands"))this.va=a;df(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=$e(ef(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Gc[c],p&&d.u(n(p.id,8)+" %"+
|
||||
var Re={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Qe={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Le=Math.pow(2,32);
|
||||
function Xe(a){Ie.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.U=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ja=Z(0);this.F=[];this.b=this.N=this.K=[];Ye(this);this.X=this.qa=0;this.i=[];this.Ea=void 0;Ze(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.ba=null;this.S=[];$e(this,a.messages);this.va=a.commands;this.Ha=[];this.P=0;this.Oa=this.Fa=null;this.C=this.Na=this.Ka=this.oa=this.Da=0;this.Ca=this.na=this.ia=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return dd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return dd(b,a)})}ka(Xe,Ie);function af(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,ra:!1,T:c}}function bf(a,b,c,d){a.B=b;a.eb=c||!1;a.ra=!1;a.T=d}function cf(a){return[a.B,a.eb,a.ra,a.T,a.hb]}function df(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.zb=Je(a,c.hb=b[4]));return c}m=Xe.prototype;
|
||||
m.La=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=Zc(a,"messages"))&&$e(this,b);if(a=Zc(a,"commands"))this.va=a;ef(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=af(ff(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Gc[c],p&&d.u(n(p.id,8)+" %"+
|
||||
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Ya,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Nc&&(c=-1),l=0);a+=16384;e++}}});Mb(this)};
|
||||
m.ta=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ia=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",dd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-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.J[b]=c,Va(c,function(){if(d.ia){var a=d.ia.value;
|
||||
d.ia.value="";dd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function cd(a){if(a.ia){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ia.focus();window&&window.scrollTo(b,c)}}m.Ma=function(a,b){var c=-1,d=$e(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=$e(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
|
||||
function ef(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.ba[0],h=a.ba[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=Se(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?K(a,l):"undefined")}if(a.ua.length)for(f=a.ua[0],h=a.ua[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
|
||||
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].Y[f],null!=g){u=g.o;break}null!=u&&(p=Z(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Se(a,b)}null!=f&&(f=ff(f,a.Ga),af(c,f,d,e));return c}function gf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Je(a,b.hb=c[2]))}
|
||||
function ff(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function hf(a,b){return K(a,b/Tb,18)+" "+K(a,b%Tb,18)}
|
||||
function Ze(a,b){a.D=a;a.ca=a.Eb=536870916;a.X=null;a.S=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ca|=ac[c],a.u(c+" messages enabled"))}}function df(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}m.sb=function(a){return jf.indexOf(a.toUpperCase())};
|
||||
m.tb=function(a){var b,c=this.v;switch(a){case kf:b=c.i;break;case lf:b=c.I;break;case mf:b=c.b;break;case nf:b=c.j&x;break;case of:b=c.j&131072?1:0;break;case pf:b=c.j&65536?1:0;break;case qf:b=c.j&32768?1:0;break;case rf:b=c.j&32?1:0;break;case sf:b=c.j&262144?1:0}return b};
|
||||
m.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ea).B,18));if(!this.X||a!=this.X)if(this.X=a,this.ca&1073741824)this.S.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.O)||Nb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,ld(a),a.ka=0,a.H&&J(a.H,void 0))}};
|
||||
function Ye(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.V=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(tf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.V=0;a.u("instruction history buffer allocated")}}function uf(a,b,c){if(!vf(a,c))return!1;rc(a.v,b);return!0}
|
||||
function sc(a,b,c,d){if(!vf(a))return!1;var e="";null===c&&(e=(c=!a.Fa||"tr"==a.Fa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=jd(a.v,b);var f=a.v.$a(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(a.v,f),a.oa++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.na&&a.na.stop(),J(a.H,-1));bd(a,c||!1,e);return 0<a.C}m.W=function(a){this.v&&this.v.W(a)};function bd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(wf+c),af(a.M,a.v.i),b&&1!=a.P?xf(a):yf(a))}
|
||||
function vf(a,b){var c;(c=!a.v||!Lb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.O?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ab(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Ye(this);this.oa=0;this.X=null;this.C=0;af(this.M,this.v.i);this.A.O=!1;zf(this);a||bd(this)};
|
||||
m.save=function(){var a=new F(this);a.set(0,bf(this.M));a.set(1,bf(this.pa));a.set(2,bf(this.ja));a.set(3,[this.j,this.U,this.ca]);a.set(4,this.F);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=cf(this,a[b++]),this.pa=cf(this,a[b++]),this.ja=cf(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.U=a[b][1],this.ca|=a[b][2]);a[4]&&(this.F=a[4]);return!0};m.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ka=a;this.Na=b};
|
||||
m.stop=function(a,b){if(this.A.O){this.A.O=!1;this.C=b-this.Na;if(!this.P){b="stopped";if(this.C){a-=this.Ka;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";sd(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}bd(this,!0);cd(this);zf(this,this.v.i);this.X=null}};function sd(a){return 1<a.b.length||!!a.qa}
|
||||
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=rd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Wc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(af(a.i[a.V],b),++a.V==a.i.length&&(a.V=0)));return!1}
|
||||
function Af(a,b,c,d){var e=Z(b.B),f=a.Ma(b,1),g,h,k,l=0,p=f/Xb|0,u;for(u in Bf)if(g=Bf[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Cf;l=p&3;break;case 32256:k=Df;l=p&7;break;case 29248:k=Ef,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Ff&&(k="B");k=Gf[g||0]+k;if(g){if(28700==h)h=f/Yb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<Hf.length;p++)if(g==Hf[p][0]&&(u=Hf[p][h])){k=Gf[u];l="";break}k=Ba(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=K(a,f&262143,-1);(f=f>>18&15)&&(k+="("+K(a,f,
|
||||
-1)+")")}else k=Ba(k,8)+hf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ma(e,1),g+=" "+hf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+ed(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function If(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),l=0;l<Hf.length;l++)for(var p in Hf[l])if(+p&&(h=Hf[l][p],k==Gf[h])){k=Gf[Hf[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Bf){g=+u;p=Bf[u];switch(g){case 32512:l=Cf;break;case 32256:l=Df;break;case 29248:l=Ef;break;default:l=[""]}for(var D in p){h=p[D];for(var H=0;H<l.length;H++){var P=l[H];"S"==P&&h>Ff&&(P="B");if(k==Gf[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}0>f&&c&&!c.match(/^[0-9A-Z$%.?]/i)&&
|
||||
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),u=0;u<k.length;u++)if(h=k[u].trim()){if(1<u){a.u("too many operands: "+c);f=-1;break}D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){a.u("unknown operand: "+h);f=-1;break}D[1]&&(f+=4194304);if(h=D[3]){h=Se(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}h=D[2];if(u||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+K(a,d,18)):"0";h=Se(a,h,e);if(void 0==h){f=-1;break}if(!u&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>
|
||||
h||15<h)h&=15;f+=h<<23}else{if(b||u)if(0>h||262143<h)h&=Sb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Xe(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=$e(c);var d=a.G;Vc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=$e(c),d=a.G,Vc(d.b[c>>>d.i],!0);a.K=["bw"];a.Da=0;a.qa=0}
|
||||
m.Ra=function(a,b,c){var d=!0;c||Jf(this,a,b,!1,!0);if(a!=this.b){var e=$e(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Kf(this,a,a.length-1,"set"),Ye(this)));return d};function Jf(a,b,c,d,e){var f=!1;c=$e(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==$e(h)&&(!d||h.ra)){f=!0;h.ra||e||Kf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Vc(d.b[c>>>d.i],b==a.K));h.ra||Ye(a);break}}return f}
|
||||
function Lf(a,b){for(var c=1;c<b.length;c++)Kf(a,b,c);return b.length-1}function Kf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function zf(a,b){if(void 0!==b)Wc(a,b,1,a.b,!0),a.P=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Jf(a,a.b,c,!0))break;b=0}}}
|
||||
function Wc(a,b,c,d,e){var f=!1;if(!a.Da++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=$e(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Jf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!Mf(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var D=u+1;D<p.length&&p[D].indexOf("else");D++)u++;if(D==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Kf(a,d,g,"hit");break}}}a.Da--;return f}
|
||||
function mg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);af(e.Ia,d);f+="="+K(e,e.Ma(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<jf.length;d++)(e=jf[d]||"")&&(e+="="+K(a,a.tb(d),d>=of?1:d==lf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ce(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.F.push({wd:b,B:c,Ub:d,Y:e,Bb:f})}function og(a,b,c){var d=[],e=$e(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ub;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?pg(a,b,e,d):c&&(e=~e,pg(a,b,e-1,d),pg(a,b,e,d));break}}return d}
|
||||
function qg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(a.u(e+" words loaded at "+K(a,f)+"-"+K(a,g)),null!=c&&G(a.v,c),bd(a)):a.u("no data")}function pg(a,b,c,d){var e={},f=a.F[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].Y[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function rg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=ef(a,d,a.ja);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.U=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=ef(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new sg(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);qg(a,l.R,d)}catch(H){"number"==typeof H?b=H||-1:(a.u(H.message),b=-1)}b&&a.u("error ("+b+") processing "+(c||h));
|
||||
a.Ca=null;b||dd(a)});return!1}b.shift();b.shift();b.shift();b=If(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Af(a,f)));return!0}function tg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.u("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.I[c[1]],!0;b=Se(a,c[3]);return void 0!==b?(a.I[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
|
||||
function ug(a,b,c){var d=null;b=ef(a,b);var e=og(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+K(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+K(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
|
||||
function xf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Se(a,b);if(void 0===g)return;b=a.sb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case kf:G(h,
|
||||
g);af(a.M,h.i);break;case nf:qd(h,g);break;case of:f=131072;break;case pf:f=65536;break;case qf:f=32768;break;case rf:f=32;break;case sf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(mg(a,e));c&&(af(a.M,0<=d.P?d.P:d.i),yf(a,K(a,a.M.B,18)))}}function vg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Te(a,null,c[2].charCodeAt(0)):Se(a,b,!1)}
|
||||
function wg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Fa=b;Ua(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
|
||||
function yf(a,b,c,d){b=ef(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Pe(a,c.substr(1)),null!=c&&(d=c);else{d=ef(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.P?a.C:null,g=null!=f?"cycles":null,h=og(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ja;l=b;h.B=l.B;h.eb=l.eb;h.ra=l.ra;h.T=l.T;a.u(Af(a,b,g,f));e-=b.B-k;c++}}
|
||||
function Mf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(wf+b):(a.U&&(a.u("ended assemble at "+K(a,a.ja.B,18)),a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.X=null;if(Lb(a)&&0<b.length){a.U&&(b="a "+K(a,a.ja.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
|
||||
rg(a,g);break;case "b":var u=g[0],D=g[1],H=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var P=u.charAt(1);if("l"==P){var eb;eb=0+Lf(a,a.b);eb+=Lf(a,a.N);(eb+=Lf(a,a.K))||a.u("no breakpoints")}else if("n"==P){var zb=+D||0;D&&(a.qa=zb);a.u("break after "+zb+" instruction(s)")}else if(void 0===
|
||||
D)a.u("missing breakpoint address");else{var I="*"==D?Z():ef(a,D,a.M);"c"==P?null==I.B?(Xe(a),a.u("all breakpoints cleared")):Jf(a,a.b,I)||Jf(a,a.N,I)||Jf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(gf(a,I,H),"p"==P?a.Ra(a.b,I):"r"==P?a.Ra(a.N,I):"w"==P?a.Ra(a.K,I):a.u("unknown breakpoint command: "+P))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var fb,gb=g[0],na=g[1],Da=g[2],Dh=g[3];if("?"==na){var hb="";for(fb in ac)a.xa[fb]&&(hb&&(hb+=","),hb+=fb);hb+=",state,symbols";
|
||||
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");hb.length&&a.u("dump extension commands:\n\t"+hb)}else if("state"==na){var Kd=xg(a.H,!0);"console"==Da?console.log(Kd):(a.za&&(a.za.value=""),Kd&&a.u(Kd))}else if("symbols"==na)for(var Ld=0;Ld<a.F.length;Ld++){var Md=a.F[Ld],ib;for(ib in Md.Y)if("."!=ib.charAt(0)){var Nf=Md.Y[ib].o;if(void 0!==Nf){var Of=
|
||||
Md.Y[ib].l;Of&&(ib=Of);a.u(K(a,Nf,18)+" "+ib)}}}else{if("d"==gb){for(fb in ac)if(g[1]==fb){var Pf=a.xa[fb];Pf?(g.shift(),g.shift(),Pf(g)):a.u("no dump registered for "+na);break a}na||(gb=a.Oa||"dw")}else a.Oa=gb;if("dh"==gb){var Qf=na,Rf=Da,Sf="",Tf=0,ja=a.V,oa=a.i;if(oa.length){var ea=+Qf||a.Ea,Bb=+Rf||10;isNaN(ea)?ea=Bb:Sf="more ";ea>oa.length&&(a.u("note: only "+oa.length+" available"),ea=oa.length);ja-=ea;0>ja&&(null==oa[oa.length-1].B?(ea=ja+ea,ja=0):ja+=oa.length);var Nd=[];"call"==Rf&&(Bb=
|
||||
1E5,Nd=["CALL"]);for(void 0!==Qf&&a.u(ea+" instructions earlier:");0<Bb&&ja!=a.V;){var Uf=oa[ja++];if(null==Uf.B)break;var Cb=Z(Uf.B),Eh=ea--,Vf=Af(a,Cb,"history",Eh);(!Nd.length||0<=Vf.indexOf(Nd[0]))&&a.u(Vf);Cb.qb&&(ja+=Cb.qb,Bb-=Cb.qb,ea-=Cb.qb);ja>=oa.length&&(ja=0);a.Ea=ea;Tf++;Bb--}}Tf||(a.u("no "+Sf+"history available"),a.Ea=void 0)}else{var Ma=0,Wf="ds"==gb,Db=ef(a,na,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Dh,Ma=Pe(a,Da)):Ma=ef(a,Da).B-Db.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Fh=
|
||||
a.T;Db.T&&(a.T=Db.T);for(var Xf="db"==gb?1:2,Od=Ma||32,Pd=1==Xf?1:4,Gh=(Od+Pd-1)/Pd|0||1,Na="";Gh--&&0<Od;){for(var pa="",Qd="",na=K(a,Db.B,18),Yf=Pd;0<Yf--&&0<Od--;){var Rd=a.Ma(Db,1);Wf?(pa&&(pa+=","),pa+=Rd):(pa+=hf(a,Rd),pa+=" ");for(var Hc=29,Hh=0;1==Xf&&0<=Hc;Hh++)var Eb=Rd/Math.pow(2,Hc)%Math.pow(2,7),pa=pa+(K(a,Eb,7)+" "),Eb=Eb+0,Qd=Qd+(32>Eb?".":String.fromCharCode(Eb)),Hc=Hc-7}Na&&(Na+="\n");Na=Wf?Na+(pa+","):Na+(na+": "+pa+(0>Yf?" "+Qd:""))}Na&&a.u(Na);a.T=Fh}}}break;case "e":if("else"==
|
||||
g[0])break;var Zf,$f,ag=g[0],Sd=g[1];"e"==ag||"ew"==ag?(Zf=a.Ma,$f=a.yb):Sd=null;if(null==Sd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Td=ef(a,Sd,a.pa),Ud=2;Ud<g.length;Ud++){var Fb=Se(a,g[Ud]);if(void 0===Fb)break;Fb=ff(Fb);a.u("changing "+K(a,Td.B,18)+" from "+hf(a,Zf.call(a,Td))+" to "+hf(a,Fb));$f.call(a,Td,Fb,1)}break;case "g":var bg=g[1],Ih=b;if(void 0!==bg){var cg=ef(a,bg);gf(a,cg,Ih);a.Ra(a.b,cg,!0)}uf(a,!0,c);break;case "h":a.A.O?(c||a.u("halting"),
|
||||
a.W()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Vd;var Gb=b.substr(2),Gb=Ca(Gb);Se(a,Gb)?(c||a.u("true: "+Gb),Vd=!0):(c||a.u("false: "+Gb),Vd=!1);Vd||(d=!1);break}f=!0;break;case "k":var Jh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Wd=0,Xd=Z(),Hb=Z();for(a.u("stack trace for "+K(a,Hb.B,18));10>Wd;){for(var Oa=null,Kh=256;65536>Hb.B>>>0;){Xd.B=a.Ma(Hb,2);if(null==Hb.B||!Kh--)break;if(!(Xd.B&
|
||||
1)){for(var Lh=a,Ic=Xd,dg=null,Ib=Ic.B,eg=Ib,Yd=1;6>=Yd&&Ib;Yd++){if(2<Yd){Ic.B=Ib;var Jc=Af(Lh,Ic);if(0<=Jc.indexOf("JSR")){var fg=Jc.indexOf(" ");if(Ib+(Jc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=Jc;break}}}Ib-=2}Ic.B=eg;if(Oa=dg)break}}if(!Oa||null==Oa)break;var gg=null;if("ks"==Jh){var hg=Oa.match(/[0-9A-F]+$/);hg&&(gg=ug(a,hg[0]))}Oa=Ba(Oa,50)+" ;"+(gg||"stack="+K(a,Hb.B,18));a.u(Oa);Wd++}Wd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){ug(a,g[1],!0);break}f=!0;break;case "m":a:{var qa,
|
||||
ra=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ea=0;if("all"==M)Ea=1879046143,M=null;else if("on"==M)ra=!0,M=null;else if("off"==M)ra=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(qa in ac)if(M==qa){Ea=ac[qa];ra=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,ra=!0;else if("off"==g[2]&&(a.ca&=~Ea,ra=!1,1073741824==Ea)){for(var ig=1E3<=a.S.length?a.S.length-1E3:0;ig<a.S.length;)a.u(a.S[ig++]);a.S=[]}}var Mh=0,Jb="";for(qa in ac)if(!M||
|
||||
M==qa){var Nh=!!(a.ca&ac[qa]);if(null===ra||ra==Nh)Jb&&(Jb+=","),++Mh%10||(Jb+="\n\t"),"key"==qa&&(qa="keys"),Jb+=qa}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ra?ra?"messages on: ":"messages off: ":"message categories:\n\t")+(Jb||"none"));Ye(a)}break;case "p":if("print"==g[0]){vg(a,b.substr(5));break}var jg=g[0],kg="p"==jg?0:"pr"==jg?1:-1;if("?"==g[1]||0>kg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
|
||||
else if(a.P)a.u("step in progress");else{var lg=Z(a.v.i);a.Ma(lg);a.P?(a.Ra(a.b,lg,!0),uf(a)||(a.H&&id(a.H),a.P=0)):wg(a,kg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}xf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var jb=+g[2];if(2==jb||8==jb||10==jb||16==jb)a.T=jb;else{a.u("invalid base: "+jb);break}}a.u("default base: "+a.T);break;case "cs":var Kb;void 0!==g[3]&&(Kb=+g[3]);switch(g[2]){case "int":a.v.oa=Kb;break;case "start":a.v.Ha=Kb;break;case "stop":a.v.qa=Kb;
|
||||
d.ia.value="";dd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function cd(a){if(a.ia){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ia.focus();window&&window.scrollTo(b,c)}}m.Ma=function(a,b){var c=-1,d=af(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=af(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
|
||||
function ff(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.U[0],h=a.U[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=Te(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?K(a,l):"undefined")}if(a.ua.length)for(f=a.ua[0],h=a.ua[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
|
||||
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].Y[f],null!=g){u=g.o;break}null!=u&&(p=Z(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Te(a,b)}null!=f&&(f=gf(f,a.Ga),bf(c,f,d,e));return c}function hf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Je(a,b.hb=c[2]))}
|
||||
function gf(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function jf(a,b){return K(a,b/Tb,18)+" "+K(a,b%Tb,18)}
|
||||
function $e(a,b){a.D=a;a.ca=a.Eb=536870916;a.ba=null;a.S=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ca|=ac[c],a.u(c+" messages enabled"))}}function ef(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}m.sb=function(a){return kf.indexOf(a.toUpperCase())};
|
||||
m.tb=function(a){var b,c=this.v;switch(a){case lf:b=c.i;break;case mf:b=c.I;break;case nf:b=c.b;break;case of:b=c.j&x;break;case pf:b=c.j&131072?1:0;break;case qf:b=c.j&65536?1:0;break;case rf:b=c.j&32768?1:0;break;case sf:b=c.j&32?1:0;break;case tf:b=c.j&262144?1:0}return b};
|
||||
m.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ea).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.S.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.O)||Nb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,ld(a),a.ka=0,a.H&&J(a.H,void 0))}};
|
||||
function Ze(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.X=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(uf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.X=0;a.u("instruction history buffer allocated")}}function vf(a,b,c){if(!wf(a,c))return!1;rc(a.v,b);return!0}
|
||||
function sc(a,b,c,d){if(!wf(a))return!1;var e="";null===c&&(e=(c=!a.Fa||"tr"==a.Fa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=jd(a.v,b);var f=a.v.$a(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(a.v,f),a.oa++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.na&&a.na.stop(),J(a.H,-1));bd(a,c||!1,e);return 0<a.C}m.W=function(a){this.v&&this.v.W(a)};function bd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(xf+c),bf(a.M,a.v.i),b&&1!=a.P?yf(a):zf(a))}
|
||||
function wf(a,b){var c;(c=!a.v||!Lb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.O?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ab(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Ze(this);this.oa=0;this.ba=null;this.C=0;bf(this.M,this.v.i);this.A.O=!1;Af(this);a||bd(this)};
|
||||
m.save=function(){var a=new F(this);a.set(0,cf(this.M));a.set(1,cf(this.pa));a.set(2,cf(this.ja));a.set(3,[this.j,this.V,this.ca]);a.set(4,this.F);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=df(this,a[b++]),this.pa=df(this,a[b++]),this.ja=df(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.F=a[4]);return!0};m.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ka=a;this.Na=b};
|
||||
m.stop=function(a,b){if(this.A.O){this.A.O=!1;this.C=b-this.Na;if(!this.P){b="stopped";if(this.C){a-=this.Ka;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";sd(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}bd(this,!0);cd(this);Af(this,this.v.i);this.ba=null}};function sd(a){return 1<a.b.length||!!a.qa}
|
||||
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=rd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Wc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(bf(a.i[a.X],b),++a.X==a.i.length&&(a.X=0)));return!1}
|
||||
function Bf(a,b,c,d){var e=Z(b.B),f=a.Ma(b,1),g,h,k,l=0,p=f/Xb|0,u;for(u in Cf)if(g=Cf[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Df;l=p&3;break;case 32256:k=Ef;l=p&7;break;case 29248:k=Ff,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Gf&&(k="B");k=Hf[g||0]+k;if(g){if(28700==h)h=f/Yb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<If.length;p++)if(g==If[p][0]&&(u=If[p][h])){k=Hf[u];l="";break}k=Ba(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=K(a,f&262143,-1);(f=f>>18&15)&&(k+="("+K(a,f,
|
||||
-1)+")")}else k=Ba(k,8)+jf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ma(e,1),g+=" "+jf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+ed(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Jf(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),l=0;l<If.length;l++)for(var p in If[l])if(+p&&(h=If[l][p],k==Hf[h])){k=Hf[If[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Cf){g=+u;p=Cf[u];switch(g){case 32512:l=Df;break;case 32256:l=Ef;break;case 29248:l=Ff;break;default:l=[""]}for(var D in p){h=p[D];for(var H=0;H<l.length;H++){var P=l[H];"S"==P&&h>Gf&&(P="B");if(k==Hf[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}0>f&&c&&!c.match(/^[0-9A-Z$%.?]/i)&&
|
||||
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),u=0;u<k.length;u++)if(h=k[u].trim()){if(1<u){a.u("too many operands: "+c);f=-1;break}D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){a.u("unknown operand: "+h);f=-1;break}D[1]&&(f+=4194304);if(h=D[3]){h=Te(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}h=D[2];if(u||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+K(a,d,18)):"0";h=Te(a,h,e);if(void 0==h){f=-1;break}if(!u&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>
|
||||
h||15<h)h&=15;f+=h<<23}else{if(b||u)if(0>h||262143<h)h&=Sb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ye(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=af(c);var d=a.G;Vc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=af(c),d=a.G,Vc(d.b[c>>>d.i],!0);a.K=["bw"];a.Da=0;a.qa=0}
|
||||
m.Ra=function(a,b,c){var d=!0;c||Kf(this,a,b,!1,!0);if(a!=this.b){var e=af(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Lf(this,a,a.length-1,"set"),Ze(this)));return d};function Kf(a,b,c,d,e){var f=!1;c=af(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==af(h)&&(!d||h.ra)){f=!0;h.ra||e||Lf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Vc(d.b[c>>>d.i],b==a.K));h.ra||Ze(a);break}}return f}
|
||||
function lg(a,b){for(var c=1;c<b.length;c++)Lf(a,b,c);return b.length-1}function Lf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Af(a,b){if(void 0!==b)Wc(a,b,1,a.b,!0),a.P=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Kf(a,a.b,c,!0))break;b=0}}}
|
||||
function Wc(a,b,c,d,e){var f=!1;if(!a.Da++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=af(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Kf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!ng(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var D=u+1;D<p.length&&p[D].indexOf("else");D++)u++;if(D==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Lf(a,d,g,"hit");break}}}a.Da--;return f}
|
||||
function og(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);bf(e.Ia,d);f+="="+K(e,e.Ma(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<kf.length;d++)(e=kf[d]||"")&&(e+="="+K(a,a.tb(d),d>=pf?1:d==mf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ce(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.F.push({wd:b,B:c,Ub:d,Y:e,Bb:f})}function pg(a,b,c){var d=[],e=af(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ub;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?qg(a,b,e,d):c&&(e=~e,qg(a,b,e-1,d),qg(a,b,e,d));break}}return d}
|
||||
function rg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(a.u(e+" words loaded at "+K(a,f)+"-"+K(a,g)),null!=c&&G(a.v,c),bd(a)):a.u("no data")}function qg(a,b,c,d){var e={},f=a.F[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].Y[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function sg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=ff(a,d,a.ja);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.V=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=ff(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new tg(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);rg(a,l.R,d)}catch(H){"number"==typeof H?b=H||-1:(a.u(H.message),b=-1)}b&&a.u("error ("+b+") processing "+(c||h));
|
||||
a.Ca=null;b||dd(a)});return!1}b.shift();b.shift();b.shift();b=Jf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Bf(a,f)));return!0}function ug(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return We(a)||a.u("no variables"),!0;if(!c[2])return We(a,c[1]);if(!c[3])return delete a.I[c[1]],!0;b=Te(a,c[3]);return void 0!==b?(a.I[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
|
||||
function vg(a,b,c){var d=null;b=ff(a,b);var e=pg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+K(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+K(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
|
||||
function yf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Te(a,b);if(void 0===g)return;b=a.sb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case lf:G(h,
|
||||
g);bf(a.M,h.i);break;case of:qd(h,g);break;case pf:f=131072;break;case qf:f=65536;break;case rf:f=32768;break;case sf:f=32;break;case tf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(og(a,e));c&&(bf(a.M,0<=d.P?d.P:d.i),zf(a,K(a,a.M.B,18)))}}function wg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Ue(a,null,c[2].charCodeAt(0)):Te(a,b,!1)}
|
||||
function xg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Fa=b;Ua(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
|
||||
function zf(a,b,c,d){b=ff(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Pe(a,c.substr(1)),null!=c&&(d=c);else{d=ff(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.P?a.C:null,g=null!=f?"cycles":null,h=pg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ja;l=b;h.B=l.B;h.eb=l.eb;h.ra=l.ra;h.T=l.T;a.u(Bf(a,b,g,f));e-=b.B-k;c++}}
|
||||
function ng(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(xf+b):(a.V&&(a.u("ended assemble at "+K(a,a.ja.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Lb(a)&&0<b.length){a.V&&(b="a "+K(a,a.ja.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
|
||||
sg(a,g);break;case "b":var u=g[0],D=g[1],H=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var P=u.charAt(1);if("l"==P){var eb;eb=0+lg(a,a.b);eb+=lg(a,a.N);(eb+=lg(a,a.K))||a.u("no breakpoints")}else if("n"==P){var zb=+D||0;D&&(a.qa=zb);a.u("break after "+zb+" instruction(s)")}else if(void 0===
|
||||
D)a.u("missing breakpoint address");else{var I="*"==D?Z():ff(a,D,a.M);"c"==P?null==I.B?(Ye(a),a.u("all breakpoints cleared")):Kf(a,a.b,I)||Kf(a,a.N,I)||Kf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(hf(a,I,H),"p"==P?a.Ra(a.b,I):"r"==P?a.Ra(a.N,I):"w"==P?a.Ra(a.K,I):a.u("unknown breakpoint command: "+P))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var fb,gb=g[0],na=g[1],Da=g[2],Eh=g[3];if("?"==na){var hb="";for(fb in ac)a.xa[fb]&&(hb&&(hb+=","),hb+=fb);hb+=",state,symbols";
|
||||
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");hb.length&&a.u("dump extension commands:\n\t"+hb)}else if("state"==na){var Kd=yg(a.H,!0);"console"==Da?console.log(Kd):(a.za&&(a.za.value=""),Kd&&a.u(Kd))}else if("symbols"==na)for(var Ld=0;Ld<a.F.length;Ld++){var Md=a.F[Ld],ib;for(ib in Md.Y)if("."!=ib.charAt(0)){var Mf=Md.Y[ib].o;if(void 0!==Mf){var Nf=
|
||||
Md.Y[ib].l;Nf&&(ib=Nf);a.u(K(a,Mf,18)+" "+ib)}}}else{if("d"==gb){for(fb in ac)if(g[1]==fb){var Of=a.xa[fb];Of?(g.shift(),g.shift(),Of(g)):a.u("no dump registered for "+na);break a}na||(gb=a.Oa||"dw")}else a.Oa=gb;if("dh"==gb){var Pf=na,Qf=Da,Rf="",Sf=0,ja=a.X,oa=a.i;if(oa.length){var ea=+Pf||a.Ea,Bb=+Qf||10;isNaN(ea)?ea=Bb:Rf="more ";ea>oa.length&&(a.u("note: only "+oa.length+" available"),ea=oa.length);ja-=ea;0>ja&&(null==oa[oa.length-1].B?(ea=ja+ea,ja=0):ja+=oa.length);var Nd=[];"call"==Qf&&(Bb=
|
||||
1E5,Nd=["CALL"]);for(void 0!==Pf&&a.u(ea+" instructions earlier:");0<Bb&&ja!=a.X;){var Tf=oa[ja++];if(null==Tf.B)break;var Cb=Z(Tf.B),Fh=ea--,Uf=Bf(a,Cb,"history",Fh);(!Nd.length||0<=Uf.indexOf(Nd[0]))&&a.u(Uf);Cb.qb&&(ja+=Cb.qb,Bb-=Cb.qb,ea-=Cb.qb);ja>=oa.length&&(ja=0);a.Ea=ea;Sf++;Bb--}}Sf||(a.u("no "+Rf+"history available"),a.Ea=void 0)}else{var Ma=0,Vf="ds"==gb,Db=ff(a,na,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Eh,Ma=Pe(a,Da)):Ma=ff(a,Da).B-Db.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Gh=
|
||||
a.T;Db.T&&(a.T=Db.T);for(var Wf="db"==gb?1:2,Od=Ma||32,Pd=1==Wf?1:4,Hh=(Od+Pd-1)/Pd|0||1,Na="";Hh--&&0<Od;){for(var pa="",Qd="",na=K(a,Db.B,18),Xf=Pd;0<Xf--&&0<Od--;){var Rd=a.Ma(Db,1);Vf?(pa&&(pa+=","),pa+=Rd):(pa+=jf(a,Rd),pa+=" ");for(var Hc=29,Ih=0;1==Wf&&0<=Hc;Ih++)var Eb=Rd/Math.pow(2,Hc)%Math.pow(2,7),pa=pa+(K(a,Eb,7)+" "),Eb=Eb+0,Qd=Qd+(32>Eb?".":String.fromCharCode(Eb)),Hc=Hc-7}Na&&(Na+="\n");Na=Vf?Na+(pa+","):Na+(na+": "+pa+(0>Xf?" "+Qd:""))}Na&&a.u(Na);a.T=Gh}}}break;case "e":if("else"==
|
||||
g[0])break;var Yf,Zf,$f=g[0],Sd=g[1];"e"==$f||"ew"==$f?(Yf=a.Ma,Zf=a.yb):Sd=null;if(null==Sd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Td=ff(a,Sd,a.pa),Ud=2;Ud<g.length;Ud++){var Fb=Te(a,g[Ud]);if(void 0===Fb)break;Fb=gf(Fb);a.u("changing "+K(a,Td.B,18)+" from "+jf(a,Yf.call(a,Td))+" to "+jf(a,Fb));Zf.call(a,Td,Fb,1)}break;case "g":var ag=g[1],Jh=b;if(void 0!==ag){var bg=ff(a,ag);hf(a,bg,Jh);a.Ra(a.b,bg,!0)}vf(a,!0,c);break;case "h":a.A.O?(c||a.u("halting"),
|
||||
a.W()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Vd;var Gb=b.substr(2),Gb=Ca(Gb);Te(a,Gb)?(c||a.u("true: "+Gb),Vd=!0):(c||a.u("false: "+Gb),Vd=!1);Vd||(d=!1);break}f=!0;break;case "k":var Kh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Wd=0,Xd=Z(),Hb=Z();for(a.u("stack trace for "+K(a,Hb.B,18));10>Wd;){for(var Oa=null,Lh=256;65536>Hb.B>>>0;){Xd.B=a.Ma(Hb,2);if(null==Hb.B||!Lh--)break;if(!(Xd.B&
|
||||
1)){for(var Mh=a,Ic=Xd,cg=null,Ib=Ic.B,dg=Ib,Yd=1;6>=Yd&&Ib;Yd++){if(2<Yd){Ic.B=Ib;var Jc=Bf(Mh,Ic);if(0<=Jc.indexOf("JSR")){var eg=Jc.indexOf(" ");if(Ib+(Jc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=Jc;break}}}Ib-=2}Ic.B=dg;if(Oa=cg)break}}if(!Oa||null==Oa)break;var fg=null;if("ks"==Kh){var gg=Oa.match(/[0-9A-F]+$/);gg&&(fg=vg(a,gg[0]))}Oa=Ba(Oa,50)+" ;"+(fg||"stack="+K(a,Hb.B,18));a.u(Oa);Wd++}Wd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){vg(a,g[1],!0);break}f=!0;break;case "m":a:{var qa,
|
||||
ra=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ea=0;if("all"==M)Ea=1879046143,M=null;else if("on"==M)ra=!0,M=null;else if("off"==M)ra=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(qa in ac)if(M==qa){Ea=ac[qa];ra=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,ra=!0;else if("off"==g[2]&&(a.ca&=~Ea,ra=!1,1073741824==Ea)){for(var hg=1E3<=a.S.length?a.S.length-1E3:0;hg<a.S.length;)a.u(a.S[hg++]);a.S=[]}}var Nh=0,Jb="";for(qa in ac)if(!M||
|
||||
M==qa){var Oh=!!(a.ca&ac[qa]);if(null===ra||ra==Oh)Jb&&(Jb+=","),++Nh%10||(Jb+="\n\t"),"key"==qa&&(qa="keys"),Jb+=qa}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ra?ra?"messages on: ":"messages off: ":"message categories:\n\t")+(Jb||"none"));Ze(a)}break;case "p":if("print"==g[0]){wg(a,b.substr(5));break}var ig=g[0],jg="p"==ig?0:"pr"==ig?1:-1;if("?"==g[1]||0>jg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
|
||||
else if(a.P)a.u("step in progress");else{var kg=Z(a.v.i);a.Ma(kg);a.P?(a.Ra(a.b,kg,!0),vf(a)||(a.H&&id(a.H),a.P=0)):xg(a,jg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}yf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var jb=+g[2];if(2==jb||8==jb||10==jb||16==jb)a.T=jb;else{a.u("invalid base: "+jb);break}}a.u("default base: "+a.T);break;case "cs":var Kb;void 0!==g[3]&&(Kb=+g[3]);switch(g[2]){case "int":a.v.oa=Kb;break;case "start":a.v.Ha=Kb;break;case "stop":a.v.qa=Kb;
|
||||
break;default:a.u("unknown cs option");break a}void 0!==Kb&&ad(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(fd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ia.toFixed(2)+"Mhz")+" ("+a.v.ja+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":wg(a,g[0],g[1]);break;case "u":yf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){tg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.Db+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){vg(a,b.substr(1));break}var Zd="commands:",$d;for($d in yg)Zd+="\n"+Ba($d,9)+yg[$d];sd(a)||(Zd+="\nnote: history disabled if no exec breakpoints");
|
||||
a.u(Zd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(ng){a.u("Debugger "+(ng.stack||ng.message)),d=!1}return d}function dd(a,b,c){null!=b&&(a.Ha=Je(a,b,c));for(;b=a.Ha.shift();)if(!Mf(a,b))return!1;return!0}
|
||||
var yg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ff=20,Gf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
|
||||
kf=0,lf=1,mf=2,nf=3,of=4,pf=5,qf=6,rf=7,sf=8,jf="PC RA EA PS OV C0 C1 ND PD".split(" "),zg={},Bf=(zg[28672]={0:101},zg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},zg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ff,9216:53,
|
||||
9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},zg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},zg[29248]={24576:79,24640:80,25088:81,25152:82},zg[28700]={28672:93,28676:94,28680:95,28684:96,
|
||||
28688:97,28692:98,28696:99,28700:100},zg),Cf=["","I","M","S"],Df=" L E LE A GE N G".split(" "),Ef="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Hf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],tf=1E3,wf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new We(d);sb(d,c)}});
|
||||
function sg(a,b,c,d,e){this.la=b;this.ba=c||"";this.b=d;this.done=e;this.G=null;this.j={};this.N={};this.M=[];this.L=[];this.R=[];this.fa=[];this.V=this.U=this.da=0;this.Z=this.la||0;this.wa=-1;this.w=[];this.K=null;this.i=0;this.I=null;this.J=this.F="";this.X=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.v=null;this.C="";this.H=[];this.S=0;this.P=a.split(";");Ag(this)}
|
||||
function Ag(a){if(a.S==a.P.length)a.done(Bg(a));else{var b=a.P[a.S++];a.u("loading "+wa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Cg(a,"unrecognized HTML entity: "+c[0])}a.H=a.H.concat(e.split(/(\r?\n)/));
|
||||
setTimeout(function(){Ag(a)},0)}})}}
|
||||
function Bg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=Ue(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Dg(a,a.H[c]+"\r\n"))break;if(null!==a.G)break}a.i&&a.error("open block from line "+a.j[a.I].da);a.w.length&&a.error("open scope from line "+a.w[0].da);for(var d=a.Z,c={},e=0;e<a.M.length;c={R:c.R,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.M[e];c.R=[];c.Ta=0;c.Aa.R.forEach(function(a){return function(b,c){c===a.R.length&&a.R.push(b);a.Ta++}}(c));if(c.Ta==c.R.length)for(var f=d;f+c.Ta<=a.Z;f++){for(var g=
|
||||
void 0,g=0;g<c.Ta&&c.R[g]===a.R[f+g]&&c.Aa.fa[g]==a.fa[f];g++);if(g==c.Ta){Eg(a,c.Aa.name,f,Fg);c.Aa=null;break}}c.Aa&&(Eg(a,c.Aa.name,a.Z,Fg),c.Aa.R.forEach(function(b){return function(c,d){Gg(a,c,b.Aa.fa[d])}}(c)))}for(d=0;d<a.L.length;d++){var h=a.L[d],k=a.j[h];k?Hg(a,k.ma):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Ig(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Jg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.I=b;return a.U}
|
||||
function Dg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.K+" definition: "+b)),1<a.i&&(b=Kg(a,b)),a.i))return!0;null!=a.D&&(b=Lg(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.X);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();if(f==Mg||f==Ng)c=null;if(c){for(var k=0;k<c.length;k++)for(var l=c[k],p=d[k]||e[k]||"",u=0,D=b.length-h[5].length;u<D;){var H=b.indexOf(l,u);if(0>H)break;var u=
|
||||
H+1,P=H+l.length,eb="",zb="";H&&(eb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(zb=b[P]).match(/[0-9A-Z$%.]/i)||("'"==eb&&H--,"'"==zb&&P++,b=b.substr(0,H)+p+b.substr(P),u=H+p.length,g=!0)}c=null}}d=h[1];c=h[3];b=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Eg(a,d,a.Z,Fg));var I;f&&(I=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=I[1],b=I[2],"=="==f?e|=Og:"=:"==f&&(e|=Pg),Eg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.K=f;for((I=Qg(a,b))&&(b=b.replace(I,Rg(a,Sg,Qg(a,h))));I=Tg(a,b);)b=b.replace(I,I.slice(0,-1));
|
||||
if(!Ug(a,f,b))switch(f){case Vg:case Wg:case Xg:Lg(a,h);break;case Yg:(f=b)?(a.G=Ig(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.la;break;case Zg:$g(a,b);break;case ah:a.Z=Ig(a,b)||0;break;case bh:$g(a,b.replace(",",",,"));break;case ch:case dh:case eh:case fh:case gh:case Mg:case Ng:case hh:case ih:Rg(a,f,h);break;case jh:case kh:case lh:case mh:case nh:case oh:case ph:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=If(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=Ig(a,h,
|
||||
!0)),void 0!==I?Gg(a,I,a.b.ka):a.error("unrecognized expression: "+h)}return!0}
|
||||
function Ug(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c){if(d.Sa==qh){var e=a.Z;Hg(a,d.ma);if(e<a.Z){rh(a);Hg(a,c);var d=a.R[0],f=a.fa[0];sh(a);if(void 0!==d)return a.R[e]+=d&130023423,a.R[e]|=d&4194304,f&&(a.fa[e]=a.fa[e]?a.fa[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' error: "+c);return!1}b=a.v;a.v=d;d.Qa=th(a,c,!0);Hg(a,d.ma,d.Ua,d.Qa,d.Ab);a.v=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case dh:d.Sa||Hg(a,d.ma);break;case eh:0<d.Sa&&Hg(a,d.ma);break;case fh:0>d.Sa&&Hg(a,d.ma);break;case gh:d.Sa&&
|
||||
Hg(a,d.ma);break;case Mg:case Ng:for(b=0;b<d.Qa.length;b++)Hg(a,d.ma,d.Ua,[d.Qa[b]],[]);break;case ih:for(;0<d.Sa--;)Hg(a,d.ma);break;default:c=d.ma,rh(a,b),Hg(a,c),sh(a)}return!0}function Hg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Dg(a,b[f]+"\r\n",c,d,e);f++);}function rh(a,b){a.w.push({name:b,R:a.R,fa:a.fa,Z:a.Z,wa:a.wa,da:a.da});a.R=[];a.fa=[];0>a.wa&&(a.wa=a.Z);a.Z=0}
|
||||
function sh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.M.push({name:b,R:a.R,fa:a.fa});b=a.w.pop();a.R=b.R;a.fa=b.fa;a.Z=b.Z;a.wa=b.wa;a.w.length||-1==a.wa||a.error("scope restore error")}else a.error("scope nesting error")}sg.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Cg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
|
||||
function uh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
|
||||
function Ig(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Ig(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Ig(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)))):(void 0===d&&(d=0<=a.wa?a.wa:a.Z),b=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"'),e=Se(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
|
||||
function Qg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s): "+b);0<=f&&(d=b.substr(f,g-f));return d}function Tg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.j[d]){var e,f,g;e=f=g=[];a.j[d]={name:d,Sa:vh,Ua:e,Ab:f,Qa:g,ma:b+": 0",da:a.da};a.L.push(d)}}return c}
|
||||
function th(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=uh(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
|
||||
function Lg(a,b){var c=b;null==a.D&&(a.D=a.C="",b&&(a.D=b[0],c=b=b.substr(1)));if(a.D){var d=b.indexOf(a.D);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.K==Wg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Xg&&(e--,f++));var k=a.C.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Gg(a,d),b=0)}b&&Gg(a,d)}return c}
|
||||
function Rg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==ch){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]&&","!=e[2]){h=g=th(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}b=wh;c=3}else if(b==hh){a.J="[";a.F="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
|
||||
b+": "+c),c;f=e[1];b=qh;c=2}else if(b==Sg)a.J="[",a.F="]",f="?"+va(++a.V,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],b=xh,c=0;else if(b==Mg||b==Ng){a.v||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.v.Ua.length&&e[1]!=a.v.Ua[d];d++);if(d==a.v.Ua.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Ng?k=a.v.Qa[d].split(""):k=th(a,a.v.Qa[d]);b=k.length;
|
||||
c=2}else{d=uh(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=Ig(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.I=f;a.j[f]={name:f,Sa:b,Ua:g,Ab:h,Qa:k,ma:"",da:a.da};e[c]&&(a.i=2,Kg(a,e[c+1]));return f}function Kg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.F&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.j[d].ma+=b;a.i||(a.I=null,Ug(a,d));return c}
|
||||
function Eg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Fg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Ig(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.N[b])?(e.value=c,e.Vb=d,e.da=a.da):a.N[b]={name:b,value:c,Vb:d,da:a.da};a.b.I[b]=c}}function $g(a,b){var c=Ig(a,b,!0);void 0!==c?Gg(a,c,a.b.ka):a.error("unrecognized expression: "+b)}function Gg(a,b,c){a.R[a.Z]=Jg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
|
||||
function Jg(a,b,c){c=void 0===c?a.Z:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Cg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}sg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
|
||||
var Fg=1,Og=2,Pg=4,Vg="ASCII",Wg="ASCIZ",ch="DEFINE",Yg="END",Zg="EXP",dh="IFE",eh="IFG",fh="IFL",gh="IFN",Mg="IRP",Ng="IRPC",jh="LALL",Sg="LITERAL",kh="LIST",ah="LOC",lh="NOSYM",hh="OPDEF",mh="PAGE",ih="REPEAT",Xg="SIXBIT",nh="SUBTTL",oh="TITLE",bh="XWD",ph="XLIST",wh=-1,qh=-2,xh=-3,vh=-4;
|
||||
function yh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;zh(this,b);this.N=Zc(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.P=!1;this.ba=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ah(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new zc({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" 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.La&&d.La(this,this.G,this.v,this.D);b=null;d=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Zc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Bh),this.b&&(this.I=new F(this,"1.34.3"),Ch(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Oh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Ph(this,this.Xa)}else q("Unable to find CPU component")}ka(yh,r);function zh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
|
||||
function Zc(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.S&&(e=a.S[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Ph(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){Ph(a,b,c)});return}}b.call(a,c)}
|
||||
function Qh(a,b){var c=new F(a,"1.34.3",Rh);if(Ch(c)&&Sh(c)){var d=c.get(Th),e=b?b.get(Th):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=yh.prototype;
|
||||
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Uh:Bh));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.3");if(a==Vh)b=!0;else if(a>Bh){if(Ch(d,this.L)){this.C=new F(this,"1.34.3",Wh);Ch(this.C)&&(Xh(this,d),a=Yh,Zh(this.C));this.C.set(Th,Ga());$h(this.C);var e=this.b&&!this.K;if(a==Uh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Sh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ch(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(ai,""),this.i=null)):this.u(f+": "+g),Zh(d),Ch(d)?(c=Sh(d),e=!0):c=!1))}e&&Qh(this,c?d:null)}else a==Yh&&d.clear()}else Qh(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=bi(this,g,d,b,c));b=[d,a,c];a!=Vh?Ph(this,this.Hb,b):this.Hb(b)}};
|
||||
function bi(a,b,c,d,e){if(!b.A.aa){b.A.aa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Bh,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Cb){var g=b.Cb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(bi(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&(Xh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function Xh(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function xg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",Rh),h=Ga();g.set(Th,h);f.set(Th,h);f.set(ci,"1.34.3");f.set(di,window?window.location.href:null);f.set(ei,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.ga=a.v.A.O),a.v.W()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&fi(a,a.i,f.toString()),$h(g)&&$h(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==gi),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":xg(a,g[0],g[1]);break;case "u":zf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ug(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.Db+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){wg(a,b.substr(1));break}var Zd="commands:",$d;for($d in zg)Zd+="\n"+Ba($d,9)+zg[$d];sd(a)||(Zd+="\nnote: history disabled if no exec breakpoints");
|
||||
a.u(Zd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(mg){a.u("Debugger "+(mg.stack||mg.message)),d=!1}return d}function dd(a,b,c){null!=b&&(a.Ha=Je(a,b,c));for(;b=a.Ha.shift();)if(!ng(a,b))return!1;return!0}
|
||||
var zg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Gf=20,Hf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
|
||||
lf=0,mf=1,nf=2,of=3,pf=4,qf=5,rf=6,sf=7,tf=8,kf="PC RA EA PS OV C0 C1 ND PD".split(" "),Ag={},Cf=(Ag[28672]={0:101},Ag[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Ag[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Gf,9216:53,
|
||||
9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Ag[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Ag[29248]={24576:79,24640:80,25088:81,25152:82},Ag[28700]={28672:93,28676:94,28680:95,28684:96,
|
||||
28688:97,28692:98,28696:99,28700:100},Ag),Df=["","I","M","S"],Ef=" L E LE A GE N G".split(" "),Ff="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),If=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],uf=1E3,xf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Xe(d);sb(d,c)}});
|
||||
function tg(a,b,c,d,e){this.la=b;this.ba=c||"";this.b=d;this.done=e;this.G=null;this.j={};this.N={};this.M=[];this.L=[];this.R=[];this.fa=[];this.V=this.U=this.da=0;this.Z=this.la||0;this.wa=-1;this.w=[];this.K=null;this.i=0;this.I=null;this.J=this.F="";this.X=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.v=null;this.C="";this.H=[];this.S=0;this.P=a.split(";");Bg(this)}
|
||||
function Bg(a){if(a.S==a.P.length)a.done(Cg(a));else{var b=a.P[a.S++];a.u("loading "+wa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Dg(a,"unrecognized HTML entity: "+c[0])}a.H=a.H.concat(e.split(/(\r?\n)/));
|
||||
setTimeout(function(){Bg(a)},0)}})}}
|
||||
function Cg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=Ve(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Eg(a,a.H[c]+"\r\n"))break;if(null!==a.G)break}a.i&&a.error("open block from line "+a.j[a.I].da);a.w.length&&a.error("open scope from line "+a.w[0].da);for(var d=a.Z,c={},e=0;e<a.M.length;c={R:c.R,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.M[e];c.R=[];c.Ta=0;c.Aa.R.forEach(function(a){return function(b,c){c===a.R.length&&a.R.push(b);a.Ta++}}(c));if(c.Ta==c.R.length)for(var f=d;f+c.Ta<=a.Z;f++){for(var g=
|
||||
void 0,g=0;g<c.Ta&&c.R[g]===a.R[f+g]&&c.Aa.fa[g]==a.fa[f];g++);if(g==c.Ta){Fg(a,c.Aa.name,f,Gg);c.Aa=null;break}}c.Aa&&(Fg(a,c.Aa.name,a.Z,Gg),c.Aa.R.forEach(function(b){return function(c,d){Hg(a,c,b.Aa.fa[d])}}(c)))}for(d=0;d<a.L.length;d++){var h=a.L[d],k=a.j[h];k?Ig(a,k.ma):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Jg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Kg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.I=b;return a.U}
|
||||
function Eg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.K+" definition: "+b)),1<a.i&&(b=Lg(a,b)),a.i))return!0;null!=a.D&&(b=Mg(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.X);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();if(f==Ng||f==Og)c=null;if(c){for(var k=0;k<c.length;k++)for(var l=c[k],p=d[k]||e[k]||"",u=0,D=b.length-h[5].length;u<D;){var H=b.indexOf(l,u);if(0>H)break;var u=
|
||||
H+1,P=H+l.length,eb="",zb="";H&&(eb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(zb=b[P]).match(/[0-9A-Z$%.]/i)||("'"==eb&&H--,"'"==zb&&P++,b=b.substr(0,H)+p+b.substr(P),u=H+p.length,g=!0)}c=null}}d=h[1];c=h[3];b=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Fg(a,d,a.Z,Gg));var I;f&&(I=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=I[1],b=I[2],"=="==f?e|=Pg:"=:"==f&&(e|=Qg),Fg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.K=f;for((I=Rg(a,b))&&(b=b.replace(I,Sg(a,Tg,Rg(a,h))));I=Ug(a,b);)b=b.replace(I,I.slice(0,-1));
|
||||
if(!Vg(a,f,b))switch(f){case Wg:case Xg:case Yg:Mg(a,h);break;case Zg:(f=b)?(a.G=Jg(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.la;break;case $g:ah(a,b);break;case bh:a.Z=Jg(a,b)||0;break;case ch:ah(a,b.replace(",",",,"));break;case dh:case eh:case fh:case gh:case hh:case Ng:case Og:case ih:case jh:Sg(a,f,h);break;case kh:case lh:case mh:case nh:case oh:case ph:case qh:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=Jf(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=Jg(a,h,
|
||||
!0)),void 0!==I?Hg(a,I,a.b.ka):a.error("unrecognized expression: "+h)}return!0}
|
||||
function Vg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c){if(d.Sa==rh){var e=a.Z;Ig(a,d.ma);if(e<a.Z){sh(a);Ig(a,c);var d=a.R[0],f=a.fa[0];th(a);if(void 0!==d)return a.R[e]+=d&130023423,a.R[e]|=d&4194304,f&&(a.fa[e]=a.fa[e]?a.fa[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' error: "+c);return!1}b=a.v;a.v=d;d.Qa=uh(a,c,!0);Ig(a,d.ma,d.Ua,d.Qa,d.Ab);a.v=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case eh:d.Sa||Ig(a,d.ma);break;case fh:0<d.Sa&&Ig(a,d.ma);break;case gh:0>d.Sa&&Ig(a,d.ma);break;case hh:d.Sa&&
|
||||
Ig(a,d.ma);break;case Ng:case Og:for(b=0;b<d.Qa.length;b++)Ig(a,d.ma,d.Ua,[d.Qa[b]],[]);break;case jh:for(;0<d.Sa--;)Ig(a,d.ma);break;default:c=d.ma,sh(a,b),Ig(a,c),th(a)}return!0}function Ig(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Eg(a,b[f]+"\r\n",c,d,e);f++);}function sh(a,b){a.w.push({name:b,R:a.R,fa:a.fa,Z:a.Z,wa:a.wa,da:a.da});a.R=[];a.fa=[];0>a.wa&&(a.wa=a.Z);a.Z=0}
|
||||
function th(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.M.push({name:b,R:a.R,fa:a.fa});b=a.w.pop();a.R=b.R;a.fa=b.fa;a.Z=b.Z;a.wa=b.wa;a.w.length||-1==a.wa||a.error("scope restore error")}else a.error("scope nesting error")}tg.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Dg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
|
||||
function vh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
|
||||
function Jg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Jg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Jg(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)))):(void 0===d&&(d=0<=a.wa?a.wa:a.Z),b=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"'),e=Te(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
|
||||
function Rg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s): "+b);0<=f&&(d=b.substr(f,g-f));return d}function Ug(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.j[d]){var e,f,g;e=f=g=[];a.j[d]={name:d,Sa:wh,Ua:e,Ab:f,Qa:g,ma:b+": 0",da:a.da};a.L.push(d)}}return c}
|
||||
function uh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=vh(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
|
||||
function Mg(a,b){var c=b;null==a.D&&(a.D=a.C="",b&&(a.D=b[0],c=b=b.substr(1)));if(a.D){var d=b.indexOf(a.D);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.K==Xg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Yg&&(e--,f++));var k=a.C.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Hg(a,d),b=0)}b&&Hg(a,d)}return c}
|
||||
function Sg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==dh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]&&","!=e[2]){h=g=uh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}b=xh;c=3}else if(b==ih){a.J="[";a.F="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
|
||||
b+": "+c),c;f=e[1];b=rh;c=2}else if(b==Tg)a.J="[",a.F="]",f="?"+va(++a.V,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],b=yh,c=0;else if(b==Ng||b==Og){a.v||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.v.Ua.length&&e[1]!=a.v.Ua[d];d++);if(d==a.v.Ua.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Og?k=a.v.Qa[d].split(""):k=uh(a,a.v.Qa[d]);b=k.length;
|
||||
c=2}else{d=vh(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=Jg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.I=f;a.j[f]={name:f,Sa:b,Ua:g,Ab:h,Qa:k,ma:"",da:a.da};e[c]&&(a.i=2,Lg(a,e[c+1]));return f}function Lg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.F&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.j[d].ma+=b;a.i||(a.I=null,Vg(a,d));return c}
|
||||
function Fg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Gg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Jg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.N[b])?(e.value=c,e.Vb=d,e.da=a.da):a.N[b]={name:b,value:c,Vb:d,da:a.da};a.b.I[b]=c}}function ah(a,b){var c=Jg(a,b,!0);void 0!==c?Hg(a,c,a.b.ka):a.error("unrecognized expression: "+b)}function Hg(a,b,c){a.R[a.Z]=Kg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
|
||||
function Kg(a,b,c){c=void 0===c?a.Z:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Dg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}tg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
|
||||
var Gg=1,Pg=2,Qg=4,Wg="ASCII",Xg="ASCIZ",dh="DEFINE",Zg="END",$g="EXP",eh="IFE",fh="IFG",gh="IFL",hh="IFN",Ng="IRP",Og="IRPC",kh="LALL",Tg="LITERAL",lh="LIST",bh="LOC",mh="NOSYM",ih="OPDEF",nh="PAGE",jh="REPEAT",Yg="SIXBIT",oh="SUBTTL",ph="TITLE",ch="XWD",qh="XLIST",xh=-1,rh=-2,yh=-3,wh=-4;
|
||||
function zh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;Ah(this,b);this.N=Zc(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.P=!1;this.ba=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Bh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new zc({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" 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.La&&d.La(this,this.G,this.v,this.D);b=null;d=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Zc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Ch),this.b&&(this.I=new F(this,"1.34.3"),Dh(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Ph(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Qh(this,this.Xa)}else q("Unable to find CPU component")}ka(zh,r);function Ah(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
|
||||
function Zc(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.S&&(e=a.S[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Qh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){Qh(a,b,c)});return}}b.call(a,c)}
|
||||
function Rh(a,b){var c=new F(a,"1.34.3",Sh);if(Dh(c)&&Th(c)){var d=c.get(Uh),e=b?b.get(Uh):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=zh.prototype;
|
||||
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Vh:Ch));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.3");if(a==Wh)b=!0;else if(a>Ch){if(Dh(d,this.L)){this.C=new F(this,"1.34.3",Xh);Dh(this.C)&&(Yh(this,d),a=Zh,$h(this.C));this.C.set(Uh,Ga());ai(this.C);var e=this.b&&!this.K;if(a==Vh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Th(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Dh(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(bi,""),this.i=null)):this.u(f+": "+g),$h(d),Dh(d)?(c=Th(d),e=!0):c=!1))}e&&Rh(this,c?d:null)}else a==Zh&&d.clear()}else Rh(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=ci(this,g,d,b,c));b=[d,a,c];a!=Wh?Qh(this,this.Hb,b):this.Hb(b)}};
|
||||
function ci(a,b,c,d,e){if(!b.A.aa){b.A.aa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Ch,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Cb){var g=b.Cb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ci(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&(Yh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function Yh(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function yg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",Sh),h=Ga();g.set(Uh,h);f.set(Uh,h);f.set(di,"1.34.3");f.set(ei,window?window.location.href:null);f.set(fi,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.ga=a.v.A.O),a.v.W()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&gi(a,a.i,f.toString()),ai(g)&&ai(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==hi),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
m.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;J(this,-1)};m.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};
|
||||
m.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
|
||||
function J(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.jb+=d))&&(e.textContent=c.A.O?c.ba.toFixed(2)+"Mhz":"Stopped",c.jb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.O;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?ua(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ca);jc(a,a.i);dc(a,a.w)}}
|
||||
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?xg(d,!1,!0):Ph(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");xg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Bh)}else d.reset(),d.v&&!d.D&&d.v.ga()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=Ah(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=xg(d,b);b?fi(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Ah(a,b){var c=a.i;c||((c=Pa(ai),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=hi(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
|
||||
function hi(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(ai,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Oh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+ii(a,"1.34.3"));return b}
|
||||
function fi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ii(a,"1.34.3");d.data=c;b=Ha(Ja()+"/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.ha("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.ha(c),Qa(ai,""),a.i=null)}}
|
||||
function id(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var Wh="failsafe",Rh="validate",Th="timestamp",ci="version",di="url",ei="browser",ai="user",Vh=-1,Bh=0,Uh=1,Yh=2,gi=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new yh(g,d,!0);sb(g,f);g.N&&Ph(g,g.Xa)}});
|
||||
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.U&&!c.A.aa&&c.Xa(Vh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&xg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=ii(a,b,c);Zh(this,a.Sb)}m=F.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
|
||||
m.data=function(){return this.b};function Ch(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function Sh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function $h(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function Zh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){Zh(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 ii(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 ji=0;
|
||||
function ki(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):li(k,a,b,c,d,e,f,g)})}
|
||||
function li(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?mi(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function mi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(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],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[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);mi(a,b,c)}})}else c(a,null)}
|
||||
function ni(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--ji||ab(!0));l=!1}var h,k,l=!0;ji++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));u.appendChild(D)}d||
|
||||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?ki(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--ji||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--ji||
|
||||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ki(c,b,a,e,!0,f,p):li(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return ni("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return ni("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
|
||||
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?yg(d,!1,!0):Qh(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");yg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Ch)}else d.reset(),d.v&&!d.D&&d.v.ga()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=Bh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=yg(d,b);b?gi(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Bh(a,b){var c=a.i;c||((c=Pa(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=ii(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
|
||||
function ii(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(bi,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Ph(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+ji(a,"1.34.3"));return b}
|
||||
function gi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ji(a,"1.34.3");d.data=c;b=Ha(Ja()+"/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.ha("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.ha(c),Qa(bi,""),a.i=null)}}
|
||||
function id(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var Xh="failsafe",Sh="validate",Uh="timestamp",di="version",ei="url",fi="browser",bi="user",Wh=-1,Ch=0,Vh=1,Zh=2,hi=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new zh(g,d,!0);sb(g,f);g.N&&Qh(g,g.Xa)}});
|
||||
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.U&&!c.A.aa&&c.Xa(Wh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&yg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=ji(a,b,c);$h(this,a.Sb)}m=F.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
|
||||
m.data=function(){return this.b};function Dh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function Th(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function ai(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function $h(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){$h(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 ji(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 ki=0;
|
||||
function li(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):mi(k,a,b,c,d,e,f,g)})}
|
||||
function mi(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?ni(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function ni(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(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],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[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);ni(a,b,c)}})}else c(a,null)}
|
||||
function oi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--ki||ab(!0));l=!1}var h,k,l=!0;ki++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));u.appendChild(D)}d||
|
||||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?li(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--ki||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--ki||
|
||||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?li(c,b,a,e,!0,f,p):mi(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return oi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return oi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",l=null,p=0;p<f;p++){var u=b[p];if('"'==u||"'"==u)l&&u!=l?k+=u:(l?l=null:l=u,k&&(h.push(k),k=""));else{if(!l){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){k&&(h.push(k),k="");";"==u&&h.length&&(g.push(h),h=[]);continue}}k+=u}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=cb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp10-dbg.map
|
||||
|
|
|
|||
|
|
@ -248,21 +248,21 @@ function si(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.typ
|
|||
h.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Cd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.le()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
|
||||
d.g[ma(a.value,10)||0])if(a=a.ea){var b;b="";for(var c=0,k;k=oi(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(pi(a,k,l));b=btoa(b);a=a.Gd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
|
||||
(a?" ("+a+")":"")+".");w(a)}else d.T("No disk loaded in drive.");else d.T("No disk drive selected.")};return!0;case "mountDisk":if(this.O)return this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Cd(ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Sa=pd(this.f,this.R.vd,this.R.rd,this.ja);Yb(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",wi,!0);this.O&&vi(this,"Local Disk",Qi);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
|
||||
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Sa=pd(this.f,this.R.vd,this.R.rd,this.ja);Yb(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
|
||||
h.Ea=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Rc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.Cb();Vi(this)};
|
||||
h.save=function(){var a=new G(this);a.set(0,this.Sc());a.set(1,Wi(this));a.set(2,Xi(this));return a.data()};h.restore=function(a){var b=!0;this.Cb(a[0])||(b=!1);var c=a[1];c&&(this.B=c);Vi(this,a[2])||(b=!1);return b};h.Cb=function(){return!0};h.Sc=function(){return[]};
|
||||
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Tb=d;f.name=e.Mb;f.Nc=f.Pb=!1;f.ic=null;f.Ad=!0;f.Rc=g[l++]+d;f.ba=g[l++];f.la=g[l++];f.fa=g[l++];f.va=g[l++];f.If=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Bf=g[l++];f.status=g[l++];f.tk=0;f.sk=0;f.je=1;f.Af=f.fa;f.ve=f.va;f.Bk=0;f.Ik=null;f.ea||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Pb=!0,d=new hi(e,g,"preload"),e.oe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.ea&&g&&Zi(e,
|
||||
l,g,f.ea):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Pb,d.Za,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.ea&&$i(a,c.Pa,c.ea)}return a.B}
|
||||
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&C(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
|
||||
h.Cd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Qi)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
|
||||
h.Cd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Ri)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
|
||||
a+'"')}Yi(this,d,a,b,!1,c);return!0};h.le=function(){var a,b=this.H.listDrives,b=b&&ma(b.value,10);if(null==b||0>b||b>=this.g.length||!(a=this.g[b]))return this.T("Unable to boot the selected drive"),!1;if(!a.ea)return this.T("Load a disk into the drive first"),!1;ze(this.f,0,!0,b);return(a=this.Ub(a,a.If,a.Jf,a.Kf,a.Bf,0,2))?(this.T("Unable to read the boot sector ("+a+")"),!1):!0};
|
||||
function Yi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Pa.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.Nc?a.T(a.type+" busy"):(k.Nc=!0,e&&(k.zd=!0,a.M++,E(a)&&F(a,"auto-loading disk: "+c)),k.Pb=!!f,li(new hi(a,k,"preload"),c,d,f,a.oe)&&g++));return g}
|
||||
h.oe=function(a,b,c,d,e){a.Nc=!1;b&&(b.ba>a.ba||b.la>a.la)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Tb].Rc||"---")),b=null);b?(a.ea=b,a.Za=c,a.Pa=d,this.we(a.Tb),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Tb].Rc||"---"),a.zd||e),this.J&&qe(this.J)):a.Pb=!1;a.zd&&(a.zd=!1,--this.M||C(this));ui(this,a.Tb);a.ic&&(a.ic(),a.ic=null)};
|
||||
function vi(a,b,c,d){if((a=a.H.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Tb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Pb?Qi:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
|
||||
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Tb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Pb?Ri:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
|
||||
h.ih=function(a){var b=this.H.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].textContent==a){var e=ma(b.options[d].value,10);if(0<=e)return ui(this,e,!0)}return!1};
|
||||
function ti(a){var b=a.H.listDisks,c=a.H.descDisk,d=b.options&&b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){w(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}h.mh=function(a){for(var b=0;b<this.g.length;b++){var c=this.g[b];if(c&&c.Nc)return c.ic||(c.ic=a),!1}return!0};
|
||||
function Ui(a,b,c){var d=a.g[b];if(d.ea||!1===c)$i(a,d.Pa,d.ea),d.Za="",d.Pa="",d.ea=null,d.Pb=!1,c||(a.T("Drive "+(a.g[b].Rc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.we=function(){};h.Ub=function(){return-1};h.Vc=function(){return-1};var wi="",Qi="?",Si="??";
|
||||
function Ui(a,b,c){var d=a.g[b];if(d.ea||!1===c)$i(a,d.Pa,d.ea),d.Za="",d.Pa="",d.ea=null,d.Pb=!1,c||(a.T("Drive "+(a.g[b].Rc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.we=function(){};h.Ub=function(){return-1};h.Vc=function(){return-1};var Pi="",Ri="?",Si="??";
|
||||
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Hc,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Cb=function(a){a||(a=[bj.Hc|bj.de|bj.$d,0,R.ab,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Sc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
|
||||
h.Ub=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Ud,e=0);for(;e;){if(!n){if(b>=a.ba){m=S.Fc;break}n=a.seek(b,c,d+1);if(!n){m=S.ce;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Gc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.ec;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Ud,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.ec;break}if(!n){if(b>=a.ba){m=S.Fc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.ce;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}if(k){var r,D;if(0>(r=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Gc;break}if(t!=(r|D<<8)){m=S.ge;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Gc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
|
|
@ -288,113 +288,114 @@ h.ai=function(a){this.b=this.b&~W.Ua|a&W.Ua;if(this.b&W.INIT)this.Cb();else if(t
|
|||
this.Sa):td(this.f,this.Sa)};h.Lg=function(a,b){if(!b)switch(this.j){case V.EMPTY:this.b&W.eb&&(this.b&=~W.eb,this.C=this.w[this.u]&255,E(this)&&F(this,this.type+".readByte("+this.u+"): "+v(this.C,2,!0),!0,!0),++this.u>=this.w.length&&qj(this))}return this.C};
|
||||
h.bi=function(a){switch(this.j){case V.bd:this.b&W.eb&&(this.b&=~W.eb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.tb:case V.hc:case V.Mc:if(this.b&W.eb)switch(this.b&=~W.eb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.tb)pj(this);else{var b=this.j==V.Mc,c=0,d=this.b&W.ud?1:0,e=this.g[d],e=e&&e.ea,f=this.I&sj.cb,g=this.G&tj.cb;this.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(e)if(this.i|=uj.Ga,E(this)&&
|
||||
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ef=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.pd;break}b++}else c=rj.qd;else c=d?rj.gd:rj.fd;qj(this,c)}}}this.C=a};var W=Pb.kf,sj=Pb.nf,tj=Pb.mf,uj=Pb.lf,V=Pb.xa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Kg,Fd.prototype.ai,"RXCS"],wj[65146]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXDB"],wj);
|
||||
function xj(a){x.call(this,"Debugger",a);this.W=+a.base||16;this.za=null;this.U=["{","}"];this.ka=["[","]"];this.w=0;this.O=!1;this.u=-1;this.j=[];this.S={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
|
||||
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}
|
||||
function xj(a){x.call(this,"Debugger",a);this.W=+a.base||16;this.za=null;this.N=["{","}"];this.ka=["[","]"];this.w=0;this.P=!1;this.u=-1;this.j=[];this.U={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
|
||||
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.P?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}
|
||||
function zj(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 Aj(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=zj(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(zj(e))}return!0}
|
||||
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.W;for(a.W=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.W,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if(" "==l)continue;if("^B"==l){a.W=2;continue}if("^O"==l){a.W=8;continue}if("^D"==l){a.W=10;continue}if(!(n&-1073741824)){if("+"==l)continue;if("-"==l){n=n<<2|1;continue}if("~"==l||"^-"==l){n=n<<2|2;continue}if("^L"==
|
||||
l){n=n<<2|3;continue}}m=!0;break}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;t.length&&Dj[l]<=Dj[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
|
||||
function Ej(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var k=0,l=g+1,m=e;l<b.length;){var n=b[l++];if(n==c){m=-1;break}if(!m)break;m--;n=n.charCodeAt(0);7==d?n&=127:n=n-32&63;k=zj(k*Math.pow(2,d)+n,d*e,!0)}if(0<=m){!1===f&&a.v("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,k,-1)+b.substr(l)}return b}
|
||||
function Fj(a,b,c){var d=void 0;a.za=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=Ej(a,b,'"',7,5,c);if(!b)return d;b=Ej(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=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Gj(a,null,d)}return d}
|
||||
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.re(b),0<=f?f=a.Bd(f):(f=a.S[b],null==f&&(f=ma(b,1<b.length?a.W:10))),null!=f){for(;e;){switch(e&3){case 1:f=-zj(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=zj(f)}else d||a.v("invalid "+(c?c:"value")+": "+b);else d||a.v("missing "+(c||"value"));return f}
|
||||
function Gj(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Hj(a,b){if(b)return Gj(a,b,a.S[b]);var c=0;for(b in a.S)Gj(a,b,a.S[b]),c++;return 0<c}
|
||||
function K(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=pa(b,0<c?c:0,e);break;case 8:a=u(b,0<c?(c+2)/3|0:0,!!e);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0,!!e)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Dj={"||":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 Ij(a){xj.call(this,a);this.Ia=!1;this.U=["(",")"];this.ka=[];this.G=X();this.Ha=X();this.N=X();this.B=[];this.b=this.L=this.C=[];Jj(this);this.P=this.ha=0;this.i=[];this.ta=void 0;Kj(this);this.D=this;this.ma={};this.ja=this.ke=0;this.R=null;this.M=[];Lj(this,a.messages);this.ya=a.commands;this.La=Mj;this.Y=[];this.I=0;this.Qa=this.ua=null;this.w=this.Ka=this.Ja=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
|
||||
(global[y]=function(a){return le(b,a)})}p(Ij,xj);function Nj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,W:c}}h=Ij.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.W=void 0;return a};function Oj(a){return[a.K,a.Na,a.W,a.Wa,a.Qc]}function Pj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
|
||||
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Lj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Qj));1145>this.f.ka&&(this.Y=this.Y.concat(Rj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Nj(Sj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
|
||||
l){n=n<<2|3;continue}}m=!0;break}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.N[0]?Dj:Ej;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
|
||||
function Fj(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var k=0,l=g+1,m=e;l<b.length;){var n=b[l++];if(n==c){m=-1;break}if(!m)break;m--;n=n.charCodeAt(0);7==d?n&=127:n=n-32&63;k=zj(k*Math.pow(2,d)+n,d*e,!0)}if(0<=m){!1===f&&a.v("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,k,-1)+b.substr(l)}return b}
|
||||
function Gj(a,b,c){var d=void 0;a.za=null;if(b){"{"!=a.N[0]&&(b=b.split(a.N[0]).join("{").split(a.N[1]).join("}"));b=Fj(a,b,'"',7,5,c);if(!b)return d;b=Fj(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=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Hj(a,null,d)}return d}
|
||||
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.re(b),0<=f?f=a.Bd(f):(f=a.U[b],null==f&&(f=ma(b,1<b.length?a.W:10))),null!=f){for(;e;){switch(e&3){case 1:f=-zj(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=zj(f)}else d||a.v("invalid "+(c?c:"value")+": "+b);else d||a.v("missing "+(c||"value"));return f}
|
||||
function Hj(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Ij(a,b){if(b)return Hj(a,b,a.U[b]);var c=0;for(b in a.U)Hj(a,b,a.U[b]),c++;return 0<c}
|
||||
function K(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=pa(b,0<c?c:0,e);break;case 8:a=u(b,0<c?(c+2)/3|0:0,!!e);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0,!!e)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
||||
var Ej={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Dj={"||":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 Jj(a){xj.call(this,a);this.Ia=!1;this.N=["(",")"];this.ka=[];this.G=X();this.Ha=X();this.O=X();this.B=[];this.b=this.L=this.C=[];Kj(this);this.R=this.ha=0;this.i=[];this.ta=void 0;Lj(this);this.D=this;this.ma={};this.ja=this.ke=0;this.S=null;this.M=[];Mj(this,a.messages);this.ya=a.commands;this.La=Nj;this.Y=[];this.I=0;this.Qa=this.ua=null;this.w=this.Ka=this.Ja=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
|
||||
(global[y]=function(a){return le(b,a)})}p(Jj,xj);function Oj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,W:c}}h=Jj.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.W=void 0;return a};function Pj(a){return[a.K,a.Na,a.W,a.Wa,a.Qc]}function Qj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
|
||||
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Mj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Rj));1145>this.f.ka&&(this.Y=this.Y.concat(Sj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Oj(Tj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
|
||||
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Xb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});C(this)};
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.X=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",le(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.u<d.j.length-1&&(b=d.j[++d.u])):40==a.keyCode&&(0<d.u?b=d.j[--d.u]:(b="",d.u=-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.H[b]=c,Qa(c,function(){if(d.X){var a=d.X.value;d.X.value=
|
||||
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.X){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.X.focus();window&&window.scrollTo(b,c)}}h.Pd=function(a,b){var c=255,d=Nj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Ld(Bc(c,d,3)),c.qa--),c=d,b&&Tj(a,b));return c};
|
||||
h.Ta=function(a,b){var c=65535,d=Nj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Tj(a,b));return c};h.Qd=function(a,b,c){var d=Nj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Md(Bc(e,d,5),b);e.qa--}c&&Tj(a,c);H(this.J,-1)}};h.Le=function(a,b,c){var d=Nj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.ac(Bc(e,d,4),b);e.qa--}c&&Tj(a,c);H(this.J,-1)}};
|
||||
function Sj(a,b,c){var d;c=(c?a.G:a.Ha).K;var e,f;if(void 0!==b){a:{var g;d=a.U[0];c=a.U[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Fj(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
|
||||
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Ra)if(k=+n,c.Ra[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Fj(a,b)}null!=c&&(d=X(c,e,f));return d}
|
||||
function Uj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.he=yj(a,b.Qc=c[2]))}function Tj(a,b){null!=a.K&&(a.K+=b||1)}function Vj(a,b){return(b.Na?"%":"")+K(a,b.K)}
|
||||
function Lj(a,b){a.D=a;a.ja=a.ke=536870912;a.R=null;a.M=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
|
||||
h.re=function(a){a=a.toUpperCase();var b=Wj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Xj(a,b){var c;if(b<Yj||a.g)c=Zj[b];return c||""}
|
||||
h.Bd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.Y[a-16];else{var c=this.f,d=this.g;switch(a){case ak:b=Ad(this.f);break;case bk:b=c.ob;break;case ck:b=c.P;break;case dk:b=c.za&65280;break;case ek:b=ud(c);break;case fk:b=wd(c);break;case gk:b=xd(c);break;case hk:b=c.X;break;case Yj:d&&(b=d.ga);break;case ik:d&&(b=d.Eb);break;case jk:d&&(b=d.Ya)}}return b};
|
||||
h.message=function(a,b){b&&(a+=" @"+Vj(this,X(this.f.O&65535)));if(!this.R||a!=this.R)if(this.R=a,this.ja&1073741824)this.M.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.da(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Ab=0,a.J&&H(a.J,void 0))}};
|
||||
function Kj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.P=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(kk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.P=0;a.v("instruction history buffer allocated")}}function lk(a,b,c){if(!mk(a,c))return!1;uc(a.f,b);return!0}
|
||||
function vc(a,b,c,d){if(!mk(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Cc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Z++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.da=function(a){this.f&&this.f.da(a)};
|
||||
function je(a,b,c){if(a.Ia){void 0===b&&(b=!0);c&&a.v(nk+c);c=a.f;if(c=c.i&128?c.Ec|c.Dc<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?ok(a):pk(a)}}function mk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ca?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Ea=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
|
||||
h.Da=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Kj(this);this.Z=0;this.R=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;qk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Oj(this.G));a.set(1,Oj(this.N));a.set(2,[this.j,this.O,this.ja]);a.set(3,this.B);return a.data()};
|
||||
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Pj(this,a[b++]),this.N=Pj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.O=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ja=a;this.Ka=b};
|
||||
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ka;if(!this.I){b="stopped";if(this.w){a-=this.Ja;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Z+" instructions, ",this.Z=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);qk(this,this.f.g[7]);this.R=null}};function bf(a){return 1<a.b.length||!!a.ha}
|
||||
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||rk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Z++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Hd(a.i[a.P],b),++a.P==a.i.length&&(a.P=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.da(),-1;return!1}function ae(a,b,c){rk(a,b,c||1,a.L)&&a.da(!1)}function be(a,b,c){rk(a,b,c||1,a.C)&&a.da(!1)}
|
||||
function Jj(a){var b,c,d;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=Nj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.L=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Nj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
|
||||
h.Bb=function(a,b,c){var d=!0;c||sk(this,a,b,!1,!0);if(a!=this.b){var e=Nj(b);if(-1===e)this.v("invalid address: "+Vj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Bb(e&g.i,f)}else e=this.f,(f?e.tc++:e.sc++)||ye(e)}}d&&(a.push(b),c?b.Wa=!0:(tk(this,a,a.length-1,"set"),Kj(this)));return d};
|
||||
function sk(a,b,c,d,e){var f=!1;c=Nj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Nj(k)&&(!d||k.Wa)){f=!0;k.Wa||e||tk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Wa||Kj(a);break}}return f}function uk(a,b){for(var c=1;c<b.length;c++)tk(a,b,c);return b.length-1}function tk(a,b,c,d){c=b[c];a.v(b[0]+" "+Vj(a,c)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
|
||||
function qk(a,b){if(void 0!==b)rk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Wa){if(!sk(a,a.b,c,!0))break;b=0}}}
|
||||
function rk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Wa)for(var l=Nj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Wa&&(sk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!vk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||tk(a,d,g,"hit");break}}}a.qa--;return f}
|
||||
function wk(a,b,c,d){var e=X(b.K),f=a.Ta(b,2),g,k;for(k in a.La)if(g=a.La[k][f&k])break;g||(g=xk);var l=g[0];0<=a.Y.indexOf(l)&&(g=xk,l=g[0]);var m=k="",n=yk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&zk;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==Ak)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Bk)A=K(r,f&7,3);else if(B==Ck)A=K(r,f&63,6);else if(B==Dk)A=K(r,f&255,8);else if(B=f&D,D&Ek&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
|
||||
Fk;switch(B&Gk){case 0:A=Xj(r,J);break;case 8:A="@"+Xj(r,J);D=Hk(r,r.f.g[J]);break;case 16:7>J?A="("+Xj(r,J)+")+":(B=r.Ta(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Xj(r,J)+")+":(B=r.Ta(t,2),A="@#"+K(r,B,-1),D=Hk(r,B));break;case 32:A="-("+Xj(r,J)+")";break;case 40:A="@-("+Xj(r,J)+")";break;case 48:B=r.Ta(t,2);A=K(r,B,-1)+"("+Xj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Hk(r,B));break;case 56:B=r.Ta(t,2),A="@"+K(r,B)+"("+Xj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Hk(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
|
||||
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Vj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ta(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function Hk(a,b){b=Pe(a.f,b)[0];b>=a.f.ub&&b<a.F.B&&(b=b-a.f.ub+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Ra[b&kd])&&(a=b[4]);return a}function Ik(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Jk(a,b){var c=Xj(a,b);c&&(c+="="+K(a,a.Bd(b))+" ");return c}
|
||||
function Kk(a,b){var c,d="";for(c=0;6>c;c++)d+=Jk(a,c);d=d+"\n"+(Jk(a,6)+Jk(a,7));d+=Jk(a,ak)+Jk(a,bk)+Jk(a,dk);d+=Ik(a,"T")+Ik(a,"N")+Ik(a,"Z")+Ik(a,"V")+Ik(a,"C");b&&(b=d,c=""+(Jk(a,ek)+Jk(a,fk)),c+=Jk(a,gk)+Jk(a,hk)+Jk(a,ck),c=c+"\n"+(Jk(a,jk)+Jk(a,Yj)+Jk(a,ik)),d=b+("\n"+c));return d}h.me=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Hk:b,K:c,Lf:d,ia:e,ie:f})}function Lk(a,b,c){var d=[],e=Nj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Lf;if(e>=g&&e<g+k){e=Ba(f.ie,[e-g],a.me);0<=e?Mk(a,b,e,d):c&&(e=~e,Mk(a,b,e-1,d),Mk(a,b,e,d));break}}return d}
|
||||
function Mk(a,b,c,d){var e={},f=a.B[b].ie,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Nk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Hj(a)||a.v("no variables"),!0;if(!c[2])return Hj(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Fj(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.v("invalid assignment:"+b);return!1}
|
||||
function Ok(a,b,c){var d=null;if(b=Sj(a,b,!0)){var e=Lk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+ra(f)),f=e[0]+" ("+K(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+ra(f)),f=e[4]+" ("+K(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
|
||||
function ok(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Fj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
|
||||
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.X){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.X.focus();window&&window.scrollTo(b,c)}}h.Pd=function(a,b){var c=255,d=Oj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Ld(Bc(c,d,3)),c.qa--),c=d,b&&Uj(a,b));return c};
|
||||
h.Ta=function(a,b){var c=65535,d=Oj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Uj(a,b));return c};h.Qd=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Md(Bc(e,d,5),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};h.Le=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.ac(Bc(e,d,4),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};
|
||||
function Tj(a,b,c){var d;c=(c?a.G:a.Ha).K;var e,f;if(void 0!==b){a:{var g;d=a.N[0];c=a.N[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Gj(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
|
||||
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Ra)if(k=+n,c.Ra[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Gj(a,b)}null!=c&&(d=X(c,e,f));return d}
|
||||
function Vj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.he=yj(a,b.Qc=c[2]))}function Uj(a,b){null!=a.K&&(a.K+=b||1)}function Wj(a,b){return(b.Na?"%":"")+K(a,b.K)}
|
||||
function Mj(a,b){a.D=a;a.ja=a.ke=536870912;a.S=null;a.M=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
|
||||
h.re=function(a){a=a.toUpperCase();var b=Xj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Yj(a,b){var c;if(b<Zj||a.g)c=ak[b];return c||""}
|
||||
h.Bd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.Y[a-16];else{var c=this.f,d=this.g;switch(a){case bk:b=Ad(this.f);break;case ck:b=c.ob;break;case dk:b=c.P;break;case ek:b=c.za&65280;break;case fk:b=ud(c);break;case gk:b=wd(c);break;case hk:b=xd(c);break;case ik:b=c.X;break;case Zj:d&&(b=d.ga);break;case jk:d&&(b=d.Eb);break;case kk:d&&(b=d.Ya)}}return b};
|
||||
h.message=function(a,b){b&&(a+=" @"+Wj(this,X(this.f.O&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ja&1073741824)this.M.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.da(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Ab=0,a.J&&H(a.J,void 0))}};
|
||||
function Lj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.R=0;a.v("instruction history buffer allocated")}}function mk(a,b,c){if(!nk(a,c))return!1;uc(a.f,b);return!0}
|
||||
function vc(a,b,c,d){if(!nk(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Cc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Z++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.da=function(a){this.f&&this.f.da(a)};
|
||||
function je(a,b,c){if(a.Ia){void 0===b&&(b=!0);c&&a.v(ok+c);c=a.f;if(c=c.i&128?c.Ec|c.Dc<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?pk(a):qk(a)}}function nk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ca?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Ea=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
|
||||
h.Da=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Lj(this);this.Z=0;this.S=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;rk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Pj(this.G));a.set(1,Pj(this.O));a.set(2,[this.j,this.P,this.ja]);a.set(3,this.B);return a.data()};
|
||||
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Qj(this,a[b++]),this.O=Qj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ja=a;this.Ka=b};
|
||||
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ka;if(!this.I){b="stopped";if(this.w){a-=this.Ja;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Z+" instructions, ",this.Z=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);rk(this,this.f.g[7]);this.S=null}};function bf(a){return 1<a.b.length||!!a.ha}
|
||||
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||sk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Z++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Hd(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.da(),-1;return!1}function ae(a,b,c){sk(a,b,c||1,a.L)&&a.da(!1)}function be(a,b,c){sk(a,b,c||1,a.C)&&a.da(!1)}
|
||||
function Kj(a){var b,c,d;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.L=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
|
||||
h.Bb=function(a,b,c){var d=!0;c||tk(this,a,b,!1,!0);if(a!=this.b){var e=Oj(b);if(-1===e)this.v("invalid address: "+Wj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Bb(e&g.i,f)}else e=this.f,(f?e.tc++:e.sc++)||ye(e)}}d&&(a.push(b),c?b.Wa=!0:(uk(this,a,a.length-1,"set"),Lj(this)));return d};
|
||||
function tk(a,b,c,d,e){var f=!1;c=Oj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Oj(k)&&(!d||k.Wa)){f=!0;k.Wa||e||uk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Wa||Lj(a);break}}return f}function vk(a,b){for(var c=1;c<b.length;c++)uk(a,b,c);return b.length-1}function uk(a,b,c,d){c=b[c];a.v(b[0]+" "+Wj(a,c)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
|
||||
function rk(a,b){if(void 0!==b)sk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Wa){if(!tk(a,a.b,c,!0))break;b=0}}}
|
||||
function sk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Wa)for(var l=Oj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Wa&&(tk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!wk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||uk(a,d,g,"hit");break}}}a.qa--;return f}
|
||||
function xk(a,b,c,d){var e=X(b.K),f=a.Ta(b,2),g,k;for(k in a.La)if(g=a.La[k][f&k])break;g||(g=yk);var l=g[0];0<=a.Y.indexOf(l)&&(g=yk,l=g[0]);var m=k="",n=zk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&Ak;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==Bk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Ck)A=K(r,f&7,3);else if(B==Dk)A=K(r,f&63,6);else if(B==Ek)A=K(r,f&255,8);else if(B=f&D,D&Fk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
|
||||
Gk;switch(B&Hk){case 0:A=Yj(r,J);break;case 8:A="@"+Yj(r,J);D=Ik(r,r.f.g[J]);break;case 16:7>J?A="("+Yj(r,J)+")+":(B=r.Ta(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Yj(r,J)+")+":(B=r.Ta(t,2),A="@#"+K(r,B,-1),D=Ik(r,B));break;case 32:A="-("+Yj(r,J)+")";break;case 40:A="@-("+Yj(r,J)+")";break;case 48:B=r.Ta(t,2);A=K(r,B,-1)+"("+Yj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Ik(r,B));break;case 56:B=r.Ta(t,2),A="@"+K(r,B)+"("+Yj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Ik(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
|
||||
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Wj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ta(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function Ik(a,b){b=Pe(a.f,b)[0];b>=a.f.ub&&b<a.F.B&&(b=b-a.f.ub+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Ra[b&kd])&&(a=b[4]);return a}function Jk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Kk(a,b){var c=Yj(a,b);c&&(c+="="+K(a,a.Bd(b))+" ");return c}
|
||||
function Lk(a,b){var c,d="";for(c=0;6>c;c++)d+=Kk(a,c);d=d+"\n"+(Kk(a,6)+Kk(a,7));d+=Kk(a,bk)+Kk(a,ck)+Kk(a,ek);d+=Jk(a,"T")+Jk(a,"N")+Jk(a,"Z")+Jk(a,"V")+Jk(a,"C");b&&(b=d,c=""+(Kk(a,fk)+Kk(a,gk)),c+=Kk(a,hk)+Kk(a,ik)+Kk(a,dk),c=c+"\n"+(Kk(a,kk)+Kk(a,Zj)+Kk(a,jk)),d=b+("\n"+c));return d}h.me=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Hk:b,K:c,Lf:d,ia:e,ie:f})}function Mk(a,b,c){var d=[],e=Oj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Lf;if(e>=g&&e<g+k){e=Ba(f.ie,[e-g],a.me);0<=e?Nk(a,b,e,d):c&&(e=~e,Nk(a,b,e-1,d),Nk(a,b,e,d));break}}return d}
|
||||
function Nk(a,b,c,d){var e={},f=a.B[b].ie,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Ok(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ij(a)||a.v("no variables"),!0;if(!c[2])return Ij(a,c[1]);if(!c[3])return delete a.U[c[1]],!0;b=Gj(a,c[3]);return void 0!==b?(a.U[c[1]]=b,!0):!1}a.v("invalid assignment:"+b);return!1}
|
||||
function Pk(a,b,c){var d=null;if(b=Tj(a,b,!0)){var e=Mk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+ra(f)),f=e[0]+" ("+K(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+ra(f)),f=e[4]+" ("+K(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
|
||||
function pk(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Gj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
|
||||
g);a.G=X(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.G=g?32768:0;break;case "C":e.C=g?65536:0;break;case "PS":Bd(e,g);break;case "PI":zd(e,g);break;case "ER":e.P=g;d=!0;break;case "SL":e.za=g|255;break;case "M0":vd(e,g);d=!0;break;case "M3":yd(e,g);d=!0;break;case "AR":a.g&&(d=a.g,jc(d,d.ga=g));d=!0;break;case "DR":a.g&&Ub(a.g,g);d=!0;break;case "SR":a.g&&kc(a.g,g);d=!0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=g&65535;break}a.v("unknown register: "+
|
||||
f);return}H(a.J);a.v("updated registers:")}}a.v(Kk(a,d));c&&(a.G=X(e.g[7]),pk(a,Vj(a,a.G)))}}function Pk(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Gj(a,null,c[2].charCodeAt(0)):Fj(a,b,!1)}
|
||||
function Qk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Cj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ua=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
|
||||
function pk(a,b,c,d){if(b=Sj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Cj(a,c.substr(1)),null!=c&&(d=c);else{d=Sj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Lk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=wk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
|
||||
function vk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(nk+b):(a.O&&(a.v("ended assemble at "+Vj(a,a.N)),a.G=a.N,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.R=null;if(Db(a)&&0<b.length){a.O&&(b="a "+Vj(a,a.N)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
|
||||
Sj(a,g[1],!0);if(q)if(a.N=q,void 0===g[2])a.v("begin assemble at "+Vj(a,q)),a.O=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Qd(q,t[r],1);a.v(wk(a,a.N))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+uk(a,a.b);ub+=uk(a,a.L);(ub+=uk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Ed=+A||0;A&&(a.ha=Ed);a.v("break after "+Ed+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Sj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Jj(a),a.v("all breakpoints cleared")):sk(a,a.b,sa)||sk(a,a.L,sa)||sk(a,a.C,sa)||a.v("breakpoint missing: "+Vj(a,sa)):null!=sa.K&&(Uj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
|
||||
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Va&&(a.Va.value="");break;case "d":a:{var Zb,jb=g[0],Ta=g[1],kb=g[2],pl=g[3];if("?"==Ta){var $b="";for(Zb in Rb)a.ma[Zb]&&($b&&($b+=","),$b+=Zb);$b+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
|
||||
a.v("\tdh [p] [n] dump n instructions from history position p");$b.length&&a.v("dump extension commands:\n\t"+$b)}else if("state"==Ta){var gf=Rk(a.J,!0);"console"==kb?console.log(gf):(a.Va&&(a.Va.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],ac;for(ac in jf.ia)if("."!=ac.charAt(0)){var xi=jf.ia[ac].o;if(void 0!==xi){var yi=jf.ia[ac].l;yi&&(ac=yi);a.v(K(a,xi)+" "+ac)}}}else{if("d"==jb){for(Zb in Rb)if(g[1]==Zb){var zi=a.ma[Zb];zi?(g.shift(),g.shift(),
|
||||
zi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var Ai=Ta,Bi=kb,Ci="",Di=0,Ia=a.P,Ua=a.i;if(Ua.length){var Ca=+Ai||a.ta,Mc=+Bi||10;isNaN(Ca)?Ca=Mc:Ci="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var kf=[];"call"==Bi&&(Mc=1E5,kf=["CALL"]);for(void 0!==Ai&&a.v(Ca+" instructions earlier:");0<Mc&&Ia!=a.P;){var Ei=Ua[Ia++];if(null==Ei.K)break;var Nc=X(Ei.K),
|
||||
ql=Ca--,Fi=wk(a,Nc,"history",ql);(!kf.length||0<=Fi.indexOf(kf[0]))&&a.v(Fi);Nc.yd&&(Ia+=Nc.yd,Mc-=Nc.yd,Ca-=Nc.yd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Di++;Mc--}}Di||(a.v("no "+Ci+"history available"),a.ta=void 0)}else{var oa=Sj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
|
||||
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Sk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,mf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||pl,wb=Cj(a,kb);else{var Gi=Sj(a,kb);Gi&&(wb=Gi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var sl=a.W;oa.W&&(a.W=oa.W);for(var xb="dd"==jb?4:"db"==jb?1:2,Nd=xb*wb||128,nf=mf?
|
||||
16:a.W,tl=(Nd+nf-1)/nf|0||1,yb="";tl--&&0<Nd;){for(var zb="",of="",Ta=Vj(a,oa),Od=nf,Oc=0,Pc=0;0<Od&&0<Nd;){var bc=1,Pd=1==xb?a.Pd(oa,bc):a.Ta(oa,bc=2),Oc=Oc|Pd<<(Pc<<3),Pc=Pc+bc;Pc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Oc,xb<<1)):(zb+=K(a,Oc,xb<<3),zb+=1==xb?9==Od?"-":" ":" "),Oc=Pc=0);Od-=bc;for(Nd-=bc;1==xb&&bc--;)var pf=Pd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Pd=Pd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Od?"":" "+of))}yb&&a.v(yb);a.Ha=oa;a.W=sl}}}}break;case "e":if("else"==
|
||||
g[0])break;var cc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(cc=1,qf=255,rf=a.Pd,sf=a.Qd):"e"==tf||"ew"==tf?(cc=2,qf=65535,rf=a.Ta,sf=a.Le):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Qd=Sj(a,uf);if(Qd)for(var Rd=2;Rd<g.length;Rd++){var Qc=Fj(a,g[Rd]);if(void 0===Qc){a.v("unrecognized value: "+g[Rd]);break}Qc&~qf&&a.v("warning: "+v(Qc)+" exceeds "+cc+"-byte value");a.v("changing "+Vj(a,Qd)+(E(a,16)?
|
||||
"":" from "+K(a,rf.call(a,Qd),cc<<3))+" to "+K(a,Qc,cc<<3));sf.call(a,Qd,Qc,cc)}}break;case "g":a:{var Hi=g[1],ul=b;if(void 0!==Hi){var vf=Sj(a,Hi,!0);if(!vf)break a;Uj(a,vf,ul);a.Bb(a.b,vf,!0)}lk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Rc=b.substr(2),Rc=za(Rc);Fj(a,Rc)?(c||a.v("true: "+Rc),wf=!0):(c||a.v("false: "+Rc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var vl=g[0];if("?"==g[1])a.v("stack trace commands:"),
|
||||
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Sc=X(a.f.g[6]);for(a.v("stack trace for "+Vj(a,Sc));10>xf;){for(var Ab=null,wl=256;65536>Sc.K>>>0;){yf.K=a.Ta(Sc,2);if(null==Sc.K||!wl--)break;if(!(yf.K&1)){for(var xl=a,Sd=yf,Ii=null,Tc=Sd.K,Ji=Tc,zf=1;6>=zf&&Tc;zf++){if(2<zf){Sd.K=Tc;var Td=wk(xl,Sd);if(0<=Td.indexOf("JSR")){var Ki=Td.indexOf(" ");if(Tc+(Td.indexOf(" ",Ki+1)-Ki-1)/2==Ji){Ii=Td;break}}}Tc-=2}Sd.K=Ji;if(Ab=Ii)break}}if(!Ab||null==Ab)break;var Li=
|
||||
null;if("ks"==vl){var Mi=Ab.match(/[0-9A-F]+$/);Mi&&(Li=Ok(a,Mi[0]))}Ab=ya(Ab,50)+" ;"+(Li||"stack="+Vj(a,Sc));a.v(Ab);xf++}xf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Ok(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
|
||||
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Ni=1E3<=a.M.length?a.M.length-1E3:0;Ni<a.M.length;)a.v(a.M[Ni++]);a.M=[]}}var yl=0,Uc="";for(Va in Rb)if(!T||T==Va){var zl=!!(a.ja&Rb[Va]);if(null===Wa||Wa==zl)Uc&&(Uc+=","),++yl%10||(Uc+="\n\t"),"key"==Va&&(Va="keys"),Uc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
|
||||
(Uc||"none"));Kj(a)}break;case "p":if("print"==g[0]){Pk(a,b.substr(5));break}var Al=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Oi="pr"==Al?1:0,Pi=1+Oi;if(a.I)a.v("step in progress");else{var Ud=X(a.f.g[7]),dc=a.Ta(Ud);3==dc||4==dc||34816==(dc&65280)||32256==(dc&65024)||35072==(dc&65280)?(a.I=Pi,Tj(Ud,2)):2048==(dc&65024)&&(wk(a,Ud),a.I=Pi);a.I?(a.Bb(a.b,Ud,!0),lk(a)||(a.J&&qe(a.J),a.I=0)):Qk(a,Oi?"tr":
|
||||
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}ok(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Vc=+g[2];if(8==Vc||10==Vc||16==Vc)a.W=Vc;else{a.v("invalid base: "+Vc);break}}a.v("default base: "+a.W);break;case "cs":var Wc;void 0!==g[3]&&(Wc=+g[3]);switch(g[2]){case "int":a.f.Ob=Wc;break;case "start":a.f.pc=Wc;break;case "stop":a.f.Rb=Wc;break;default:a.v("unknown cs option");break a}void 0!==Wc&&ie(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
|
||||
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.xb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Qk(a,
|
||||
g[0],g[1]);break;case "u":pk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Nk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.3 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Pk(a,b.substr(1));break}var Af="commands:",Bf;for(Bf in Tk)Af+="\n"+ya(Bf,9)+Tk[Bf];bf(a)||(Af+="\nnote: history disabled if no exec breakpoints");a.v(Af);break;default:f=!0}f&&(a.v("unknown command: "+
|
||||
b),d=!1)}}catch(Ri){a.v("debugger error: "+(Ri.stack||Ri.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!vk(a,b[+d]))return!1;return!0}
|
||||
var Tk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},yk=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
ak=20,bk=21,ck=22,dk=23,ek=24,fk=25,gk=26,hk=27,Yj=28,ik=29,jk=30,Wj={SP:6,PC:7,PS:ak,PI:bk,ER:ck,SL:dk,M0:ek,M1:fk,M2:gk,M3:hk,AR:Yj,DR:ik,SR:jk},Zj="R0 R1 R2 R3 R4 R5 SP PC A0 A1 A2 A3 A4 A5 A6 A7 S0 S1 S2 S3 PS PI ER SL M0 M1 M2 M3 AR DR SR".split(" "),Sk="KI KD SI SD ?? ?? UI UD".split(" "),Fk=7,Gk=56,Z=Gk|Fk,Ek=4032,Y=4096,Ak=8192,Bk=12288,Ck=24576,Dk=32768,zk=61440,Mj={61440:{4096:[62,Ek,Z],8192:[47,Ek,Z],12288:[18,Ek,Z],16384:[14,Ek,Z],20480:[16,Ek,Z],24576:[3,Ek,Z],36864:[63,Ek,Z],40960:[48,
|
||||
Ek,Z],45056:[19,Ek,Z],49152:[15,Ek,Z],53248:[17,Ek,Z],57344:[94,Ek,Z]},65024:{2048:[57,448,Z],28672:[100,Z,448],29184:[101,Z,448],29696:[102,Z,448],30208:[103,Z,448],30720:[104,448,Z],32256:[105,448,Ak]},65280:{256:[27,Y],512:[24,Y],768:[10,Y],1024:[11,Y],1280:[22,Y],1536:[12,Y],1792:[20,Y],32768:[25,Y],33024:[23,Y],33280:[13,Y],33536:[21,Y],33792:[28,Y],34048:[29,Y],34304:[8,Y],34560:[9,Y],34816:[106,Dk],35072:[107,Dk]},65472:{64:[56,Z],192:[95,Z],2560:[39,Z],2624:[49,Z],2688:[53,Z],2752:[51,Z],
|
||||
2816:[67,Z],2880:[1,Z],2944:[77,Z],3008:[97,Z],3072:[73,Z],3136:[71,Z],3200:[6,Z],3264:[4,Z],3328:[58,Ck],3392:[60,Z],3456:[65,Z],3520:[96,Z],35328:[40,Z],35392:[50,Z],35456:[54,Z],35520:[52,Z],35584:[68,Z],35648:[2,Z],35712:[78,Z],35776:[98,Z],35840:[74,Z],35904:[72,Z],35968:[7,Z],36032:[5,Z],36096:[66,Z],36160:[59,Z],36224:[64,Z],36288:[61,Z]},65528:{128:[76,Fk],152:[108,Bk]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],
|
||||
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},xk=[0],Qj=[58,60,65,96,110,100,101,102,103,104,105],Rj=[108,59,64],kk=1E3,nk=">> ";Sa(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Ij(d);pb(d,c)}});
|
||||
function Uk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ca=!1;this.O=null;Vk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Wk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.vb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Va)for(b=
|
||||
f);return}H(a.J);a.v("updated registers:")}}a.v(Lk(a,d));c&&(a.G=X(e.g[7]),qk(a,Wj(a,a.G)))}}function Qk(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Hj(a,null,c[2].charCodeAt(0)):Gj(a,b,!1)}
|
||||
function Rk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Cj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ua=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
|
||||
function qk(a,b,c,d){if(b=Tj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Cj(a,c.substr(1)),null!=c&&(d=c);else{d=Tj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Mk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=xk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
|
||||
function wk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(ok+b):(a.P&&(a.v("ended assemble at "+Wj(a,a.O)),a.G=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Db(a)&&0<b.length){a.P&&(b="a "+Wj(a,a.O)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
|
||||
Tj(a,g[1],!0);if(q)if(a.O=q,void 0===g[2])a.v("begin assemble at "+Wj(a,q)),a.P=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Qd(q,t[r],1);a.v(xk(a,a.O))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+vk(a,a.b);ub+=vk(a,a.L);(ub+=vk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Ed=+A||0;A&&(a.ha=Ed);a.v("break after "+Ed+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Tj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Kj(a),a.v("all breakpoints cleared")):tk(a,a.b,sa)||tk(a,a.L,sa)||tk(a,a.C,sa)||a.v("breakpoint missing: "+Wj(a,sa)):null!=sa.K&&(Vj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
|
||||
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Va&&(a.Va.value="");break;case "d":a:{var Zb,jb=g[0],Ta=g[1],kb=g[2],ql=g[3];if("?"==Ta){var $b="";for(Zb in Rb)a.ma[Zb]&&($b&&($b+=","),$b+=Zb);$b+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
|
||||
a.v("\tdh [p] [n] dump n instructions from history position p");$b.length&&a.v("dump extension commands:\n\t"+$b)}else if("state"==Ta){var gf=Sk(a.J,!0);"console"==kb?console.log(gf):(a.Va&&(a.Va.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],ac;for(ac in jf.ia)if("."!=ac.charAt(0)){var wi=jf.ia[ac].o;if(void 0!==wi){var xi=jf.ia[ac].l;xi&&(ac=xi);a.v(K(a,wi)+" "+ac)}}}else{if("d"==jb){for(Zb in Rb)if(g[1]==Zb){var yi=a.ma[Zb];yi?(g.shift(),g.shift(),
|
||||
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.R,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Mc=+Ai||10;isNaN(Ca)?Ca=Mc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var kf=[];"call"==Ai&&(Mc=1E5,kf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Mc&&Ia!=a.R;){var Di=Ua[Ia++];if(null==Di.K)break;var Nc=X(Di.K),
|
||||
rl=Ca--,Ei=xk(a,Nc,"history",rl);(!kf.length||0<=Ei.indexOf(kf[0]))&&a.v(Ei);Nc.yd&&(Ia+=Nc.yd,Mc-=Nc.yd,Ca-=Nc.yd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Ci++;Mc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Tj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
|
||||
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Tk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,mf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ql,wb=Cj(a,kb);else{var Fi=Tj(a,kb);Fi&&(wb=Fi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var tl=a.W;oa.W&&(a.W=oa.W);for(var xb="dd"==jb?4:"db"==jb?1:2,Nd=xb*wb||128,nf=mf?
|
||||
16:a.W,ul=(Nd+nf-1)/nf|0||1,yb="";ul--&&0<Nd;){for(var zb="",of="",Ta=Wj(a,oa),Od=nf,Oc=0,Pc=0;0<Od&&0<Nd;){var bc=1,Pd=1==xb?a.Pd(oa,bc):a.Ta(oa,bc=2),Oc=Oc|Pd<<(Pc<<3),Pc=Pc+bc;Pc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Oc,xb<<1)):(zb+=K(a,Oc,xb<<3),zb+=1==xb?9==Od?"-":" ":" "),Oc=Pc=0);Od-=bc;for(Nd-=bc;1==xb&&bc--;)var pf=Pd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Pd=Pd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Od?"":" "+of))}yb&&a.v(yb);a.Ha=oa;a.W=tl}}}}break;case "e":if("else"==
|
||||
g[0])break;var cc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(cc=1,qf=255,rf=a.Pd,sf=a.Qd):"e"==tf||"ew"==tf?(cc=2,qf=65535,rf=a.Ta,sf=a.Le):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Qd=Tj(a,uf);if(Qd)for(var Rd=2;Rd<g.length;Rd++){var Qc=Gj(a,g[Rd]);if(void 0===Qc){a.v("unrecognized value: "+g[Rd]);break}Qc&~qf&&a.v("warning: "+v(Qc)+" exceeds "+cc+"-byte value");a.v("changing "+Wj(a,Qd)+(E(a,16)?
|
||||
"":" from "+K(a,rf.call(a,Qd),cc<<3))+" to "+K(a,Qc,cc<<3));sf.call(a,Qd,Qc,cc)}}break;case "g":a:{var Gi=g[1],vl=b;if(void 0!==Gi){var vf=Tj(a,Gi,!0);if(!vf)break a;Vj(a,vf,vl);a.Bb(a.b,vf,!0)}mk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Rc=b.substr(2),Rc=za(Rc);Gj(a,Rc)?(c||a.v("true: "+Rc),wf=!0):(c||a.v("false: "+Rc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var wl=g[0];if("?"==g[1])a.v("stack trace commands:"),
|
||||
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Sc=X(a.f.g[6]);for(a.v("stack trace for "+Wj(a,Sc));10>xf;){for(var Ab=null,xl=256;65536>Sc.K>>>0;){yf.K=a.Ta(Sc,2);if(null==Sc.K||!xl--)break;if(!(yf.K&1)){for(var yl=a,Sd=yf,Hi=null,Tc=Sd.K,Ii=Tc,zf=1;6>=zf&&Tc;zf++){if(2<zf){Sd.K=Tc;var Td=xk(yl,Sd);if(0<=Td.indexOf("JSR")){var Ji=Td.indexOf(" ");if(Tc+(Td.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Td;break}}}Tc-=2}Sd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
|
||||
null;if("ks"==wl){var Li=Ab.match(/[0-9A-F]+$/);Li&&(Ki=Pk(a,Li[0]))}Ab=ya(Ab,50)+" ;"+(Ki||"stack="+Wj(a,Sc));a.v(Ab);xf++}xf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Pk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
|
||||
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.M.length?a.M.length-1E3:0;Mi<a.M.length;)a.v(a.M[Mi++]);a.M=[]}}var zl=0,Uc="";for(Va in Rb)if(!T||T==Va){var Al=!!(a.ja&Rb[Va]);if(null===Wa||Wa==Al)Uc&&(Uc+=","),++zl%10||(Uc+="\n\t"),"key"==Va&&(Va="keys"),Uc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
|
||||
(Uc||"none"));Lj(a)}break;case "p":if("print"==g[0]){Qk(a,b.substr(5));break}var Bl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==Bl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Ud=X(a.f.g[7]),dc=a.Ta(Ud);3==dc||4==dc||34816==(dc&65280)||32256==(dc&65024)||35072==(dc&65280)?(a.I=Oi,Uj(Ud,2)):2048==(dc&65024)&&(xk(a,Ud),a.I=Oi);a.I?(a.Bb(a.b,Ud,!0),mk(a)||(a.J&&qe(a.J),a.I=0)):Rk(a,Ni?"tr":
|
||||
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}pk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Vc=+g[2];if(8==Vc||10==Vc||16==Vc)a.W=Vc;else{a.v("invalid base: "+Vc);break}}a.v("default base: "+a.W);break;case "cs":var Wc;void 0!==g[3]&&(Wc=+g[3]);switch(g[2]){case "int":a.f.Ob=Wc;break;case "start":a.f.pc=Wc;break;case "stop":a.f.Rb=Wc;break;default:a.v("unknown cs option");break a}void 0!==Wc&&ie(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
|
||||
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.xb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Rk(a,
|
||||
g[0],g[1]);break;case "u":qk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Ok(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.3 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Qk(a,b.substr(1));break}var Af="commands:",Bf;for(Bf in Uk)Af+="\n"+ya(Bf,9)+Uk[Bf];bf(a)||(Af+="\nnote: history disabled if no exec breakpoints");a.v(Af);break;default:f=!0}f&&(a.v("unknown command: "+
|
||||
b),d=!1)}}catch(Qi){a.v("debugger error: "+(Qi.stack||Qi.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!wk(a,b[+d]))return!1;return!0}
|
||||
var Uk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},zk=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
bk=20,ck=21,dk=22,ek=23,fk=24,gk=25,hk=26,ik=27,Zj=28,jk=29,kk=30,Xj={SP:6,PC:7,PS:bk,PI:ck,ER:dk,SL:ek,M0:fk,M1:gk,M2:hk,M3:ik,AR:Zj,DR:jk,SR:kk},ak="R0 R1 R2 R3 R4 R5 SP PC A0 A1 A2 A3 A4 A5 A6 A7 S0 S1 S2 S3 PS PI ER SL M0 M1 M2 M3 AR DR SR".split(" "),Tk="KI KD SI SD ?? ?? UI UD".split(" "),Gk=7,Hk=56,Z=Hk|Gk,Fk=4032,Y=4096,Bk=8192,Ck=12288,Dk=24576,Ek=32768,Ak=61440,Nj={61440:{4096:[62,Fk,Z],8192:[47,Fk,Z],12288:[18,Fk,Z],16384:[14,Fk,Z],20480:[16,Fk,Z],24576:[3,Fk,Z],36864:[63,Fk,Z],40960:[48,
|
||||
Fk,Z],45056:[19,Fk,Z],49152:[15,Fk,Z],53248:[17,Fk,Z],57344:[94,Fk,Z]},65024:{2048:[57,448,Z],28672:[100,Z,448],29184:[101,Z,448],29696:[102,Z,448],30208:[103,Z,448],30720:[104,448,Z],32256:[105,448,Bk]},65280:{256:[27,Y],512:[24,Y],768:[10,Y],1024:[11,Y],1280:[22,Y],1536:[12,Y],1792:[20,Y],32768:[25,Y],33024:[23,Y],33280:[13,Y],33536:[21,Y],33792:[28,Y],34048:[29,Y],34304:[8,Y],34560:[9,Y],34816:[106,Ek],35072:[107,Ek]},65472:{64:[56,Z],192:[95,Z],2560:[39,Z],2624:[49,Z],2688:[53,Z],2752:[51,Z],
|
||||
2816:[67,Z],2880:[1,Z],2944:[77,Z],3008:[97,Z],3072:[73,Z],3136:[71,Z],3200:[6,Z],3264:[4,Z],3328:[58,Dk],3392:[60,Z],3456:[65,Z],3520:[96,Z],35328:[40,Z],35392:[50,Z],35456:[54,Z],35520:[52,Z],35584:[68,Z],35648:[2,Z],35712:[78,Z],35776:[98,Z],35840:[74,Z],35904:[72,Z],35968:[7,Z],36032:[5,Z],36096:[66,Z],36160:[59,Z],36224:[64,Z],36288:[61,Z]},65528:{128:[76,Gk],152:[108,Ck]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],
|
||||
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},yk=[0],Rj=[58,60,65,96,110,100,101,102,103,104,105],Sj=[108,59,64],lk=1E3,ok=">> ";Sa(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Jj(d);pb(d,c)}});
|
||||
function Vk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ca=!1;this.O=null;Wk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Xk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.vb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Va)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Va=this.i.Va;this.v(Hb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Ca&&d.Ca(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
|
||||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Xk),this.b&&(this.B=new G(this,"1.34.3"),Yk(this.B)?b=null:delete this.B);!b&&this.b&&(b=Zk(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.yc(this.rc)}else w("Unable to find CPU component")}p(Uk,x);
|
||||
function Vk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}h=Uk.prototype;
|
||||
h.yc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.yc(a,b)});return}}a.call(this,b)};function $k(a,b){var c=new G(a,"1.34.3",al);if(Yk(c)&&bl(c)){var d=c.get(cl),e=b?b.get(cl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
h.rc=function(a){void 0===a&&(a=this.b||(this.G?dl:Xk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.3");if(a==el)b=!0;else if(a>Xk){if(Yk(d,this.G)){this.u=new G(this,"1.34.3",fl);Yk(this.u)&&(gl(this,d),a=hl,il(this.u));this.u.set(cl,Da());jl(this.u);var e=this.b&&!this.C;if(a==dl||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=bl(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Yk(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(kl,""),this.g=null)):this.v(f+": "+g),il(d),Yk(d)?(c=bl(d),e=!0):c=!1))}e&&$k(this,c?d:null)}else a==hl&&d.clear()}else $k(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=ll(this,g,d,b,c));b=[d,a,c];a!=el?this.yc(this.ne,b):this.ne(b)}};
|
||||
function ll(a,b,c,d,e){if(!b.A.ca){b.A.ca=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Xk,window&&window.location.reload()):a.N=!0,b.Ea(null),e=!1),!d&&b.Vd){var g=b.Vd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
|
||||
h.ne=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ca=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(ll(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(gl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
|
||||
function gl(a,b){if(hb("There may be a problem with your "+Hb+" machine.\n\nTo help us diagnose it, click OK to send this "+Hb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Hb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Rk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",al),k=Da();g.set(cl,k);f.set(cl,k);f.set(ml,"1.34.3");f.set(nl,window?window.location.href:null);f.set(ol,window?window.navigator.userAgent:"");a.f&&a.f.Da&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.da()),d=a.f.Da(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ca=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ca&&(m.Da&&(d=m.Da(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ca=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&rl(a,a.g,f.toString()),jl(g)&&jl(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Bl),d&&f.clear(k)):e=f.toString());c&&(a.A.ca=!1,b=a.H.power)&&(b.textContent="Power");a.j=0;return e}
|
||||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Yk),this.b&&(this.B=new G(this,"1.34.3"),Zk(this.B)?b=null:delete this.B);!b&&this.b&&(b=$k(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.yc(this.rc)}else w("Unable to find CPU component")}p(Vk,x);
|
||||
function Wk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}h=Vk.prototype;
|
||||
h.yc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.yc(a,b)});return}}a.call(this,b)};function al(a,b){var c=new G(a,"1.34.3",bl);if(Zk(c)&&cl(c)){var d=c.get(dl),e=b?b.get(dl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
h.rc=function(a){void 0===a&&(a=this.b||(this.G?el:Yk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.3");if(a==fl)b=!0;else if(a>Yk){if(Zk(d,this.G)){this.u=new G(this,"1.34.3",gl);Zk(this.u)&&(hl(this,d),a=il,jl(this.u));this.u.set(dl,Da());kl(this.u);var e=this.b&&!this.C;if(a==el||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=cl(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zk(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(ll,""),this.g=null)):this.v(f+": "+g),jl(d),Zk(d)?(c=cl(d),e=!0):c=!1))}e&&al(this,c?d:null)}else a==il&&d.clear()}else al(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=ml(this,g,d,b,c));b=[d,a,c];a!=fl?this.yc(this.ne,b):this.ne(b)}};
|
||||
function ml(a,b,c,d,e){if(!b.A.ca){b.A.ca=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Yk,window&&window.location.reload()):a.N=!0,b.Ea(null),e=!1),!d&&b.Vd){var g=b.Vd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
|
||||
h.ne=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ca=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(ml(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(hl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
|
||||
function hl(a,b){if(hb("There may be a problem with your "+Hb+" machine.\n\nTo help us diagnose it, click OK to send this "+Hb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Hb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Sk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",bl),k=Da();g.set(dl,k);f.set(dl,k);f.set(nl,"1.34.3");f.set(ol,window?window.location.href:null);f.set(pl,window?window.navigator.userAgent:"");a.f&&a.f.Da&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.da()),d=a.f.Da(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ca=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ca&&(m.Da&&(d=m.Da(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ca=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&sl(a,a.g,f.toString()),kl(g)&&kl(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Cl),d&&f.clear(k)):e=f.toString());c&&(a.A.ca=!1,b=a.H.power)&&(b.textContent="Power");a.j=0;return e}
|
||||
h.reset=function(){this.A.reset=!0;this.F&&this.F.reset&&(F(this,"Resetting "+this.F.type),this.F.reset());this.f&&this.f.reset&&(F(this,"Resetting "+this.f.type),this.f.reset());for(var a=ib(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c!==this.f&&c.reset&&(F(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};h.start=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
|
||||
h.stop=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}H(this,-1)};
|
||||
function H(a,b){if(a.f){var c=a.f,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.ad+=d))&&(e.textContent=c.A.V?c.wb.toFixed(2)+"Mhz":"Stopped",c.ad=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.V;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)nc(a,"R"+e,a.f.g[e]);e=Ad(a.f);nc(a,"PS",e);nc(a,"NF",e&8?1:0,1);nc(a,"ZF",e&4?1:0,1);nc(a,"VF",e&2?1:0,1);nc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.ga=a.f.g[7]:0<b&&c&&!d&&(a.ga=a.f.Qa);jc(a,a.ga);Vb(a,a.Eb);b=a.f;b=b.yb?b.X&16?1:2:4;Ec(a,"B22",b&1);Ec(a,"B18",b&2);
|
||||
Ec(a,"B16",b&4)}}
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ca?Rk(d,!1,!0):d.yc(d.rc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ca&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.rc(Xk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.H[b]=c,c.onclick=function(){var a=Wk(d,!0);if(a){var b=!!(d.b&&!d.w||d.I),c=Rk(d,b);b?rl(d,a,c):d.T("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Wk(a,b){var c=a.g;c||((c=Ka(kl),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=Cl(a,c))||a.T("The user ID is invalid.")):b&&a.T("Browser local storage is not available"));return c}
|
||||
function Cl(a,b){a.g=null;b=Ea(Ga()+"/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(kl,b.data),a.g=b.data)}catch(d){w(d.message+" ("+c+")")}return a.g}function Zk(a){var b=null;a.g&&(b=Ga()+"/api/v1/user?req=load&user="+a.g+"&state="+Dl(a,"1.34.3"));return b}
|
||||
function rl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Dl(a,"1.34.3");d.data=c;b=Ea(Ga()+"/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.T("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.T(c),La(kl,""),a.g=null)}}
|
||||
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Va.focus();!b&&window&&window.scrollTo(c,d)}}var fl="failsafe",al="validate",cl="timestamp",ml="version",nl="url",ol="browser",kl="user",el=-1,Xk=0,dl=1,hl=2,Bl=3;
|
||||
Sa(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Uk(g,d,!0);pb(g,f);g.L&&g.yc(g.rc)}});Xa.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ca&&c.rc(el)}});Xa.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ca&&Rk(c,!(!c.b||c.w),!0)}});
|
||||
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=Dl(a,b,c);il(this,a.vf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Yk(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function bl(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
|
||||
function jl(a){var b=!0;if(Ha()){var c=JSON.stringify(a.f);La(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function il(a,b){a.b="";a.f={};a.g=a.D=!1;b&&a.set("parms",b)}
|
||||
h.clear=function(a){il(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 Dl(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 El=0;
|
||||
function Fl(a,b,c,d,e,f,g){f("Loading "+a+"...");Ea(a,null,!0,function(k,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),g(l,null)):Gl(l,a,b,c,d,e,f,g)})}
|
||||
function Gl(a,b,c,d,e,f,g,k){function l(a,g){if(g)k(g,null);else{c&&(eb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?f?Hl(a,g,l):l(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function Hl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Hl(a,b,c)}})}else c(a,null)}
|
||||
function Il(a,b,c,d,e){function f(a){if(void 0===l){var b=k&&z(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=wa(a))}function g(a){f("Error: "+a);m&&(--El||$a(!0));m=!1}var k,l,m=!0;El++;fb[b]={};try{if(k=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));q.appendChild(t)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.3/components.xsl");n=function(e,l){l?Fl(d,null,a,null,!1,f,function(a,e){e?(eb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(k.outerHTML=e,--El||$a(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(e,k),--El||
|
||||
$a(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Fl(c,b,a,e,!0,f,n):Gl(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(r){g(r.message)}return m}window.embedPDP10=function(a,b,c,d){$a(!1);return Il("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){$a(!1);return Il("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ca?Sk(d,!1,!0):d.yc(d.rc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ca&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.rc(Yk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.H[b]=c,c.onclick=function(){var a=Xk(d,!0);if(a){var b=!!(d.b&&!d.w||d.I),c=Sk(d,b);b?sl(d,a,c):d.T("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Xk(a,b){var c=a.g;c||((c=Ka(ll),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=Dl(a,c))||a.T("The user ID is invalid.")):b&&a.T("Browser local storage is not available"));return c}
|
||||
function Dl(a,b){a.g=null;b=Ea(Ga()+"/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(ll,b.data),a.g=b.data)}catch(d){w(d.message+" ("+c+")")}return a.g}function $k(a){var b=null;a.g&&(b=Ga()+"/api/v1/user?req=load&user="+a.g+"&state="+El(a,"1.34.3"));return b}
|
||||
function sl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=El(a,"1.34.3");d.data=c;b=Ea(Ga()+"/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.T("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.T(c),La(ll,""),a.g=null)}}
|
||||
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Va.focus();!b&&window&&window.scrollTo(c,d)}}var gl="failsafe",bl="validate",dl="timestamp",nl="version",ol="url",pl="browser",ll="user",fl=-1,Yk=0,el=1,il=2,Cl=3;
|
||||
Sa(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Vk(g,d,!0);pb(g,f);g.L&&g.yc(g.rc)}});Xa.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ca&&c.rc(fl)}});Xa.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ca&&Sk(c,!(!c.b||c.w),!0)}});
|
||||
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=El(a,b,c);jl(this,a.vf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Zk(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function cl(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
|
||||
function kl(a){var b=!0;if(Ha()){var c=JSON.stringify(a.f);La(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function jl(a,b){a.b="";a.f={};a.g=a.D=!1;b&&a.set("parms",b)}
|
||||
h.clear=function(a){jl(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 El(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 Fl=0;
|
||||
function Gl(a,b,c,d,e,f,g){f("Loading "+a+"...");Ea(a,null,!0,function(k,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),g(l,null)):Hl(l,a,b,c,d,e,f,g)})}
|
||||
function Hl(a,b,c,d,e,f,g,k){function l(a,g){if(g)k(g,null);else{c&&(eb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?f?Il(a,g,l):l(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function Il(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Il(a,b,c)}})}else c(a,null)}
|
||||
function Jl(a,b,c,d,e){function f(a){if(void 0===l){var b=k&&z(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=wa(a))}function g(a){f("Error: "+a);m&&(--Fl||$a(!0));m=!1}var k,l,m=!0;Fl++;fb[b]={};try{if(k=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));q.appendChild(t)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.3/components.xsl");n=function(e,l){l?Gl(d,null,a,null,!1,f,function(a,e){e?(eb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(k.outerHTML=e,--Fl||$a(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(e,k),--Fl||
|
||||
$a(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Gl(c,b,a,e,!0,f,n):Hl(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(r){g(r.message)}return m}window.embedPDP10=function(a,b,c,d){$a(!1);return Jl("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){$a(!1);return Jl("pdp11",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&&!rb[a]){for(var c=!0,d=rb,e=a,f=b.length,g=[],k=[],l="",m=null,n=0;n<f;n++){var q=b[n];if('"'==q||"'"==q)m&&q!=m?l+=q:(m?m=null:m=q,l&&(k.push(l),l=""));else{if(!m){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){l&&(k.push(l),l="");";"==q&&k.length&&(g.push(k),k=[]);continue}}l+=q}}l&&k.push(l);k.length&&g.push(k);d[e]=g;qb(a)||(c=!1)}return c};window.enableEvents=$a;window.sendEvent=bb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp11-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue