Fixed a couple of PDP-10 opcode emulation bugs (AOBJN, AOBJP, and CMP), and rounded out the set of DEC's basic instruction diagnostics

This commit is contained in:
Jeff 2017-03-27 11:45:37 -07:00 committed by Jeff Parsons
commit 85fd72e6d4
3 changed files with 50 additions and 49 deletions

View file

@ -8,7 +8,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 /apps/pdp10/diags/klad/dakaa/MYDAKAA.MAC
commands: a 30724 /apps/pdp10/diags/klad/dakaa/DAKAA.MAC
---
A few weeks ago, I finished my first cut of the *core* PDP-10 instructions in PDPjs. Most of my remaining work
@ -51,7 +51,7 @@ Any machine that includes the PDPjs Debugger (like the machine below) now includ
The above machine uses the Debugger's assemble ('a') command to assemble DEC's "DAKAA" diagnostic
[KA10 Basic Instruction Diagnostic](/apps/pdp10/diags/klad/dakaa/) and load the resulting code at address 30724:
a 30724 /apps/pdp10/diags/klad/dakaa/MYDAKAA.MAC
a 30724 /apps/pdp10/diags/klad/dakaa/DAKAA.MAC
The Debugger invokes the MACRO-10 mini-assembler whenever the target address is followed by an argument ending with ".MAC".

View file

@ -110,7 +110,7 @@ function ne(){}function oe(){}function L(a){this.u("undefined opcode: "+ua(a));r
function re(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=B-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.nb;f[0]=0;f[1]=0;f=this.ra;f[0]=1;f[1]=0;f=this.ia;f[0]=c;f[1]=0;c=this.sa;c[0]=a;for(c[1]=b;0<se(this.sa,this.ia);)te(this.ia,this.ia),te(this.ra,this.ra);do{if(0<=se(this.sa,this.ia)&&(b=this.sa,a=this.ia,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=D,b[1]--),te(this.nb,this.ra),ue(this.sa)))break;ve(this.ia);ve(this.ra)}while(!ue(this.ra));
a=this.nb[0];this.F=this.sa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}
function we(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(d=D-d,b=!b);e>z&&(e=D-e,b=!b);if(d<y&&e<y)a=d*e,f=0;else{a=d&x;d=Math.trunc(d/y);f=e&x;var e=Math.trunc(e/y),g=a*f,h=d*f+Math.trunc(g/y);f=Math.trunc(h/y);h=(h&x)+a*e;a=h*y+(g&x);f+=Math.trunc(h/y)+d*e}b&&(a?(f=B-f,a=D-a):f&&(f=D-f));if(c)return(f||a>z)&&(f!=B||a<=z)&&(this.j|=131072),a;c=a;b=f;a=b-b%A;b=2*b%D+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function xe(a){a?a==A?this.j|=163840:a=Wb-a:this.j|=98304;return a}function R(a,b){var c=a-b;0>c&&(c+=D);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function S(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function T(a,b){return S(a,(~(b/E|0)&15)*E+(~b>>>0))}function ye(a,b){return(a<A?a:a-D)-(b<A?b:b-A)}
function xe(a){a?a==A?this.j|=163840:a=Wb-a:this.j|=98304;return a}function R(a,b){var c=a-b;0>c&&(c+=D);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function S(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function T(a,b){return S(a,(~(b/E|0)&15)*E+(~b>>>0))}function ye(a,b){return(a<A?a:a-D)-(b<A?b:b-D)}
function ze(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function V(a){return a<A?a:a-D}function W(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function X(a){return(a/y|0)+(a&x)*y}function ee(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Ub?x*y:0}return b}function Fd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
function te(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function se(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ve(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ue(a){return!a[0]&&!a[1]}
var ud=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
@ -124,7 +124,7 @@ this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36
d<B)this.j|=131072;if(71<=a){if(0<e&&e<A||e>z&&e<B)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%A,c=A-Math.pow(2,70-a),f<=z?e+c>z&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>z?B:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=B,e+=A)):(c=d>z?D-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+
d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%D,d=0):(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},L,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.O||(this.g(b,d*
y+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%B;this.g(b,a);a<A&&I(this,this.b)},function(a,b){a=(this.f(b)+262145)%B;this.g(b,a);a>=A&&I(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Ha,c=c/y|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);I(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,I(this,this.b))},function(){this.ta=this.b},L,function(a){this.w(a)},function(a,b){a=
y+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a<A&&I(this,this.b)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a>=A&&I(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Ha,c=c/y|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);I(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,I(this,this.b))},function(){this.ta=this.b},L,function(a){this.w(a)},function(a,b){a=
this.f(b);a+=262145;this.g(a&x,this.f(this.b));a>=D&&(a-=D);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&x);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=D);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&x)*y+this.i);I(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);I(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,P.call(this,this.f(b),this.f(this.b)))},function(a,
b){this.g(b,P.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,R.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,R.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,R.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R.call(this,this.f(b),this.f(this.b))))},ne,function(a,b){0>ye(this.f(b),this.b)&&I(this,
this.i+1)},function(a,b){ye(this.f(b),this.b)||I(this,this.i+1)},function(a,b){0>=ye(this.f(b),this.b)&&I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){0<=ye(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){ye(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){0<ye(this.f(b),this.b)&&I(this,this.i+1)},oe,function(a,b){0>ye(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(a,b){ye(this.f(b),this.f(this.b))||I(this,this.i+1)},function(a,b){0>=ye(this.f(b),this.f(this.b))&&I(this,
@ -199,15 +199,15 @@ function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ca==b&&(b=rd(a.v,1))
function zf(a,b,c,d){var e=Z(b.B),f=a.La(b,1),g,h,k,m=0,p=f/Xb|0,t;for(t in Af)if(g=Af[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=Bf;m=p&3;break;case 32256:k=Cf;m=p&7;break;case 29248:k=Df,m=(p&48)>>2|(p&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>Ef&&(k="B");k=Ff[g||0]+k;if(g){if(28700==h)h=f/Yb&127,m=K(a,h,-1);else for(h=f>>23&15,m=K(a,h,-1),p=0;m&&p<Gf.length;p++)if(g==Gf[p][0]&&(t=Gf[p][h])){k=Ff[t];m="";break}k=Ba(k,8)+(m?m+",":"");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.La(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.Ra?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ea)):h+(null!=d?"="+d.toString():""));return h}
function Hf(a,b,c,d,e){var f=-1,g,h;a.ia=null;if(b){for(var k=b.toUpperCase(),m=0;m<Gf.length;m++)for(var p in Gf[m])if(+p&&(h=Gf[m][p],k==Ff[h])){k=Ff[Gf[m][0]];c&&(c=K(a,+p)+","+c);break}for(var t in Af){g=+t;p=Af[t];switch(g){case 32512:m=Bf;break;case 32256:m=Cf;break;case 29248:m=Df;break;default:m=[""]}for(var C in p){h=p[C];for(var H=0;H<m.length;H++){var Q=m[H];"S"==Q&&h>Ef&&(Q="B");if(k==Ff[h]+Q){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(C|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}0>f&&(c=b+c,
f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}C=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!C){a.u("unknown operand: "+h);f=-1;break}h=C[2];if(t||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(!t&&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{b&&(0>h||262143<h)&&(h&=Sb);f+=h;if(h=C[3]){h=Se(a,h,e);if(void 0==h){f=
-1;break}if(0>h||15<h)h&=15;f+=h<<18}C[1]&&(f+=4194304)}}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;Wc(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,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Ba=0;a.la=0}
b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}C=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!C){a.u("unknown operand: "+h);f=-1;break}h=C[2];if(t||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(!t&&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{b&&(0>h||262143<h)&&(h&=Sb);f+=h;if(h=C[3]){h=Se(a,h,e);if(void 0==
h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}C[1]&&(f+=4194304)}}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;Wc(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,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Ba=0;a.la=0}
l.Pa=function(a,b,c){var d=!0;c||If(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].Pa(e&16383,a==this.K)}}d&&(a.push(b),c?b.na=!0:(Jf(this,a,a.length-1,"set"),Ye(this)));return d};function If(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.na)){f=!0;h.na||e||Jf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.na||Ye(a);break}}return f}
function Kf(a,b){for(var c=1;c<b.length;c++)Jf(a,b,c);return b.length-1}function Jf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.gb?' "'+c.gb+'"':""))}function yf(a,b){if(void 0!==b)Xc(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.na){if(!If(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.Ba++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.na)for(var k=$e(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.na&&(If(a,d,h,!0),e=!0);if(p=h.yb){for(var f=!1,t=0;t<p.length;t++)if(!Lf(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var C=t+1;C<p.length&&p[C].indexOf("else");C++)t++;if(C==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Jf(a,d,g,"hit");break}}}a.Ba--;return f}
function lg(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.Fa,d);f+="="+K(e,e.La(e.Fa),36)+" ";c+=f}if(b){b="";for(d=0;d<jf.length;d++)(e=jf[d]||"")&&(e+="="+K(a,a.sb(d),d>=nf?1:d==lf?23:18)+" "),b+=e;c+="\n"+b}return c}l.Fb=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,m=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Fa(p,k,a.Fb);0>t&&p.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({vd:b,B:c,Tb:d,W:e,Ab:f})}function ng(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.Tb;if(e>=g&&e<g+h){e=Fa(f.Ab,[e-g],a.Fb);0<=e?og(a,b,e,d):c&&(e=~e,og(a,b,e-1,d),og(a,b,e,d));break}}return d}
function pg(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){xc(e,b,a);null==c&&(c=b);d++});d?(a.u(d+" words loaded at "+K(a,c)+"-"+K(a,c+d-1)),I(a.v,c||0),cd(a)):a.u("no data")}function og(a,b,c,d){var e={},f=a.F[b].Ab,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].W[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function qg(a,b){var c=ef(a,b[1],a.ha);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+K(a,c.B,18)),a.T=!0,J(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.sa)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.sa=new rg(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{pg(a,a.sa.ma,h)}catch(p){a.u(p.message)}a.sa=null})}else b.shift(),b.shift(),b.shift(),b=Hf(a,d,b.join(""),c.B||0),0<=b&&(a.xb(c,b),a.u(zf(a,c)))}}}
function qg(a,b){var c=ef(a,b[1],a.ha);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+K(a,c.B,18)),a.T=!0,J(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)(.*\.mac|.*\.html)\1$/i);if(f)if(a.sa)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.sa=new rg(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{pg(a,a.sa.ma,h)}catch(p){a.u(p.message)}a.sa=null})}else b.shift(),b.shift(),b.shift(),b=Hf(a,d,b.join(""),c.B||0),0<=b&&(a.xb(c,b),a.u(zf(a,c)))}}}
function sg(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 tg(a,b,c){var d=null;if(b=ef(a,b)){var e=ng(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 wf(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.rb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case kf:I(h,
@ -234,55 +234,56 @@ var xg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output
kf=0,lf=1,mf=2,nf=3,of=4,pf=5,qf=6,rf=7,jf="PC RA EA C0 C1 OV ND PD".split(" "),yg={},Af=(yg[28672]={0:101},yg[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},yg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ef,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},yg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},yg[29248]={24576:79,24640:80,25088:81,25152:82},yg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},yg),Bf=["","I","M","S"],Cf=" L E LE A GE N G".split(" "),Df="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Gf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],sf=1E3,vf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new We(d);tb(d,c)}});
function rg(a,b,c,d,e){this.T=b||0;this.ea=c||"";this.b=d;this.done=e;this.C=null;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.j={};this.N={};this.L=[];this.K=[];this.ma=[];this.ua=[];this.Y=this.U=this.ba=0;this.ga=this.T;this.Ka=-1;this.D=[];this.I=null;this.i=0;this.F=null;this.J=this.M="";this.Z=/^\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)(\s*)([^;]+|)(;?[\s\S]*)/i;this.w=this.v=null;this.H="";this.G=[];this.R=0;this.P=a.split(";");zg(this)}
function zg(a){if(a.R==a.P.length)a.done(Ag(a));else{var b=a.P[a.R++];a.u("loading "+wa(b));"/"==b[0]&&".MAC"==b.slice(-4)&&(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(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Bg(a,"unrecognized HTML entity: "+c[0])}a.G=a.G.concat(e.split(/(\r?\n)/));setTimeout(function(){zg(a)},0)}})}}
function Ag(a){if(0<=a.ea.indexOf("p"))return a.u(a.G.join()),0;var b=Ue(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ba++;if(!Cg(a,a.G[c]+"\r\n"))break;if(null!==a.C)break}a.i&&a.error("open block from line "+a.j[a.F].ba);a.D.length&&a.error("open scope from line "+a.D[0].ba);for(var c={},d=0;d<a.L.length;c={Ta:c.Ta},d++)c.Ta=a.L[d],Dg(a,c.Ta.name,a.ga,Eg),c.Ta.ma.forEach(function(b){return function(c,d){Fg(a,c,b.Ta.ua[d])}}(c));for(c=0;c<a.K.length;c++){var e=a.K[c],f=a.j[e];f?Gg(a,f.za):a.error("missing definition for variable: "+
function rg(a,b,c,d,e){this.T=b||0;this.ea=c||"";this.b=d;this.done=e;this.C=null;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.j={};this.N={};this.L=[];this.K=[];this.ma=[];this.ua=[];this.Y=this.U=this.ba=0;this.ga=this.T;this.Ka=-1;this.D=[];this.I=null;this.i=0;this.F=null;this.J=this.M="";this.Z=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.w=this.v=null;this.H="";this.G=[];this.R=0;this.P=a.split(";");zg(this)}
function zg(a){if(a.R==a.P.length)a.done(Ag(a));else{var b=a.P[a.R++];a.u("loading "+wa(b));".MAC"==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(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Bg(a,"unrecognized HTML entity: "+c[0])}a.G=a.G.concat(e.split(/(\r?\n)/));setTimeout(function(){zg(a)},
0)}})}}
function Ag(a){if(0<=a.ea.indexOf("p"))return a.u(a.G.join("")),0;var b=Ue(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ba++;if(!Cg(a,a.G[c]+"\r\n"))break;if(null!==a.C)break}a.i&&a.error("open block from line "+a.j[a.F].ba);a.D.length&&a.error("open scope from line "+a.D[0].ba);for(var c={},d=0;d<a.L.length;c={Ta:c.Ta},d++)c.Ta=a.L[d],Dg(a,c.Ta.name,a.ga,Eg),c.Ta.ma.forEach(function(b){return function(c,d){Fg(a,c,b.Ta.ua[d])}}(c));for(c=0;c<a.K.length;c++){var e=a.K[c],f=a.j[e];f?Gg(a,f.za):a.error("missing definition for variable: "+
e)}a.ua.forEach(function(b,c){var d=Hg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.ma[c],a.ma[c]=Ig(a,d,c))})}catch(g){a.u(g.message),a.U=-1}a.b.I=b;return a.U}
function Cg(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.I+" definition: "+b)),1<a.i&&(b=Jg(a,b)),a.i))return!0;null!=a.w&&(b=Kg(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.Z);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==Lg||f==Mg)c=null;if(c){for(var k=0;k<c.length;k++)for(var m=c[k],p=d[k]||e[k]||"",t=0,C=b.length-h[5].length;t<C;){var H=b.indexOf(m,t);if(0>H)break;var t=
H+1,Q=H+m.length,db="",Bb="";H&&(db=b[H-1]).match(/[0-9A-Z$%.]/i)||!(Q>=b.length)&&(Bb=b[Q]).match(/[0-9A-Z$%.]/i)||("'"==db&&H--,"'"==Bb&&Q++,b=b.substr(0,H)+p+b.substr(Q),t=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),Dg(a,d,a.ga,Eg));var G;f&&(G=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=G[1],b=G[2],"=="==f?e|=Ng:"=:"==f&&(e|=Og),Dg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.I=f;for((G=Pg(a,b))&&(b=b.replace(G,Qg(a,Rg,Pg(a,h))));G=Sg(a,b);)b=b.replace(G,G.slice(0,-1));
if(!Tg(a,f,b))switch(f){case Ug:case Vg:case Wg:Kg(a,h);break;case Xg:(f=b)?(a.C=Hg(a,f,!0),void 0===a.C&&a.error("unrecognized expression: "+f)):a.C=a.T;break;case Yg:Zg(a,b);break;case $g:Zg(a,b.replace(",",",,"));break;case ah:case bh:case ch:case Lg:case Mg:case dh:Qg(a,f,h);break;case eh:case fh:case gh:break;default:G=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(G=Hf(a.b,f,b,a.ga,!0)),0>G&&(G=Hg(a,h,!0)),void 0!==G?Fg(a,G,a.b.ia):a.error("unrecognized expression: "+h)}return!0}
function Tg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c)return b=a.v,a.v=d,d.Oa=hh(a,c,!0),Gg(a,d.za,d.Qa,d.Oa,d.zb),a.v=b,!0;if("?"!=b[0])return!1;switch(b.substr(1)){case bh:d.eb||Gg(a,d.za);break;case ch:d.eb&&Gg(a,d.za);break;case Lg:case Mg:for(b=0;b<d.Oa.length;b++)Gg(a,d.za,d.Qa,[d.Oa[b]],[]);break;case dh:for(;0<d.eb--;)Gg(a,d.za);break;default:d=d.za,a.D.push({name:b,ma:a.ma,ua:a.ua,ga:a.ga,Ka:a.Ka,ba:a.ba}),a.ma=[],a.ua=[],a.Ka=a.ga,a.ga=0,Gg(a,d),a.D.length?(a.L.push({name:a.D[a.D.length-
if(!Tg(a,f,b))switch(f){case Ug:case Vg:case Wg:Kg(a,h);break;case Xg:(f=b)?(a.C=Hg(a,f,!0),void 0===a.C&&a.error("unrecognized expression: "+f)):a.C=a.T;break;case Yg:Zg(a,b);break;case $g:Zg(a,b.replace(",",",,"));break;case ah:case bh:case ch:case Lg:case Mg:case dh:Qg(a,f,h);break;case eh:case fh:case gh:case hh:break;default:G=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(G=Hf(a.b,f,b,a.ga,!0)),0>G&&(G=Hg(a,h,!0)),void 0!==G?Fg(a,G,a.b.ia):a.error("unrecognized expression: "+h)}return!0}
function Tg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c)return b=a.v,a.v=d,d.Oa=ih(a,c,!0),Gg(a,d.za,d.Qa,d.Oa,d.zb),a.v=b,!0;if("?"!=b[0])return!1;switch(b.substr(1)){case bh:d.eb||Gg(a,d.za);break;case ch:d.eb&&Gg(a,d.za);break;case Lg:case Mg:for(b=0;b<d.Oa.length;b++)Gg(a,d.za,d.Qa,[d.Oa[b]],[]);break;case dh:for(;0<d.eb--;)Gg(a,d.za);break;default:d=d.za,a.D.push({name:b,ma:a.ma,ua:a.ua,ga:a.ga,Ka:a.Ka,ba:a.ba}),a.ma=[],a.ua=[],a.Ka=a.ga,a.ga=0,Gg(a,d),a.D.length?(a.L.push({name:a.D[a.D.length-
1].name,ma:a.ma,ua:a.ua}),d=a.D.pop(),a.ma=d.ma,a.ua=d.ua,a.ga=d.ga,a.Ka=d.Ka,a.D.length||-1==a.Ka||a.error("scope restore error")):a.error("scope nesting error")}return!0}function Gg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Cg(a,b[f]+"\r\n",c,d,e);f++);}rg.prototype.error=function(a){throw Error("error"+(this.ba?" at line "+va(this.ba):"")+": "+a);};function Bg(a,b){a.u("warning"+(a.ba?" at line "+va(a.ba):"")+": "+b)}
function ih(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(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 jh(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(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 Hg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Hg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Hg(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.Ka?a.Ka:a.ga),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 Pg(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 Sg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;a.j[d]&&a.error("reserved symbol redefined: "+c);var e,f,g;e=f=g=[];a.j[d]={name:d,eb:jh,Qa:e,zb:f,Oa:g,za:b+": 0",ba:a.ba};a.K.push(d)}return c}
function hh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=ih(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
function Pg(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 Sg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;a.j[d]&&a.error("reserved symbol redefined: "+c);var e,f,g;e=f=g=[];a.j[d]={name:d,eb:kh,Qa:e,zb:f,Oa:g,za:b+": 0",ba:a.ba};a.K.push(d)}return c}
function ih(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=jh(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
function Kg(a,b){var c=b;null==a.w&&(a.w=a.H="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.H+=b}if(null==a.w){var d=b=0,e,f,g=a.H.length;a.I==Vg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.I==Wg&&(e--,f++));var k=a.H.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&&(Fg(a,d),b=0)}b&&Fg(a,d)}return c}
function Qg(a,b,c){var d,e,f,g,h,k;a.J="<";a.M=">";g=h=k=[];if(b==ah){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]){h=g=hh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var m=h[c].lastIndexOf(">");0>m&&(m=h[c].length);b[c]=h[c].substr(d,m-d);h[c]=h[c].substr(0,d)}h=b}b=kh;c=3}else if(b==Rg)a.J="[",a.M="]",f="?"+va(++a.Y,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],
b=lh,c=0;else if(b==Lg||b==Mg){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.Qa.length&&e[1]!=a.v.Qa[d];d++);if(d==a.v.Qa.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Mg?k=a.v.Oa[d].split(""):k=hh(a,a.v.Oa[d]);b=k.length;c=2}else{d=ih(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);
function Qg(a,b,c){var d,e,f,g,h,k;a.J="<";a.M=">";g=h=k=[];if(b==ah){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]){h=g=ih(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var m=h[c].lastIndexOf(">");0>m&&(m=h[c].length);b[c]=h[c].substr(d,m-d);h[c]=h[c].substr(0,d)}h=b}b=lh;c=3}else if(b==Rg)a.J="[",a.M="]",f="?"+va(++a.Y,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],
b=mh,c=0;else if(b==Lg||b==Mg){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.Qa.length&&e[1]!=a.v.Qa[d];d++);if(d==a.v.Qa.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Mg?k=a.v.Oa[d].split(""):k=ih(a,a.v.Oa[d]);b=k.length;c=2}else{d=jh(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=Hg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.F=f;a.j[f]={name:f,eb:b,Qa:g,zb:h,Oa:k,za:"",ba:a.ba};e[c]&&(a.i=2,Jg(a,e[c+1]));return f}function Jg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.M&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.F||"";a.j[d].za+=b;a.i||(a.F=null,Tg(a,d));return c}function Zg(a,b){var c=Hg(a,b,!0);void 0!==c?Fg(a,c,a.b.ia):a.error("unrecognized expression: "+b)}
function Dg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Eg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Hg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.N[b])?(e.value=c,e.Ub=d,e.ba=a.ba):a.N[b]={name:b,value:c,Ub:d,ba:a.ba};a.b.I[b]=c}}function Fg(a,b,c){a.ma[a.ga]=Ig(a,b);null!=c&&(a.ua[a.ga]=c);a.ga++}
function Ig(a,b,c){c=void 0===c?a.ga:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=D)&&Bg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}rg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};var Eg=1,Ng=2,Og=4,Ug="ASCII",Vg="ASCIZ",ah="DEFINE",Xg="END",Yg="EXP",bh="IFE",ch="IFN",Lg="IRP",Mg="IRPC",Rg="LITERAL",eh="PAGE",dh="REPEAT",Wg="SIXBIT",fh="SUBTTL",gh="TITLE",$g="XWD",kh=-1,lh=-2,jh=-3;
function mh(a,b,c){r.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;nh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.Y=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.T=this.P=!1;this.Z=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=oh(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.G=new zc({id:this.$a+".bus",busWidth:this.Y},this.v,this.D);var d,e=qb(this.id);if((this.j=sb("Panel",this.id))&&this.j.xa)for(b=
0;b<e.length;b++)d=e[b],d.fa=this.j.fa,d.u=this.j.u,d.xa=this.j.xa;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.Ja&&d.Ja(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=ph),this.b&&(this.I=new F(this,"1.34.3"),qh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=rh(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.fa("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.U=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&sh(this,this.Ua)}else q("Unable to find CPU component")}ka(mh,r);function nh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[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 sh(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Cb(f)){Cb(f,function(){sh(a,b,c)});return}}b.call(a,c)}
function th(a,b){var c=new F(a,"1.34.3",uh);if(qh(c)&&vh(c)){var d=c.get(Hh),e=b?b.get(Hh):"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=mh.prototype;
l.Ua=function(a){void 0===a&&(a=this.b||(this.L?Ih:ph));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==Jh)b=!0;else if(a>ph){if(qh(d,this.L)){this.C=new F(this,"1.34.3",Kh);qh(this.C)&&(Lh(this,d),a=Mh,Nh(this.C));this.C.set(Hh,Ga());Oh(this.C);var e=this.b&&!this.K;if(a==Ih||pb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=vh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?qh(d,g):("error"==f&&"no machine state"!=
g?(this.fa("Error: "+g),"unable to verify user"==g&&(Qa(Ph,""),this.i=null)):this.u(f+": "+g),Nh(d),qh(d)?(c=vh(d),e=!0):c=!1))}e&&th(this,c?d:null)}else a==Mh&&d.clear()}else th(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Qh(this,g,d,b,c));b=[d,a,c];a!=Jh?sh(this,this.Gb,b):this.Gb(b)}};
function Qh(a,b,c,d,e){if(!b.A.X){b.A.X=!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.ya(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=ph,window&&window.location.reload()):a.P=!0,b.ya(null),e=!1),!d&&b.Bb){var g=b.Bb.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}
l.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Qh(this,this.v,b,c,a),J(this,-2),this.v.da());this.P&&(Lh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Lh(a,b){if(pb("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.Z;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 wg(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",uh),h=Ga();g.set(Hh,h);f.set(Hh,h);f.set(Rh,"1.34.3");f.set(Sh,window?window.location.href:null);f.set(Th,window?window.navigator.userAgent:"");a.v&&a.v.oa&&(c&&(b&&(a.v.A.da=a.v.A.O),a.v.V()),d=a.v.oa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.A.X&&(m.oa&&(d=m.oa(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Uh(a,a.i,f.toString()),Oh(g)&&Oh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Vh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
function Ig(a,b,c){c=void 0===c?a.ga:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=D)&&Bg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}rg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};var Eg=1,Ng=2,Og=4,Ug="ASCII",Vg="ASCIZ",ah="DEFINE",Xg="END",Yg="EXP",bh="IFE",ch="IFN",Lg="IRP",Mg="IRPC",eh="LALL",Rg="LITERAL",fh="PAGE",dh="REPEAT",Wg="SIXBIT",gh="SUBTTL",hh="TITLE",$g="XWD",lh=-1,mh=-2,kh=-3;
function nh(a,b,c){r.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;oh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.Y=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.T=this.P=!1;this.Z=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=ph(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.G=new zc({id:this.$a+".bus",busWidth:this.Y},this.v,this.D);var d,e=qb(this.id);if((this.j=sb("Panel",this.id))&&this.j.xa)for(b=
0;b<e.length;b++)d=e[b],d.fa=this.j.fa,d.u=this.j.u,d.xa=this.j.xa;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.Ja&&d.Ja(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=qh),this.b&&(this.I=new F(this,"1.34.3"),rh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=sh(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.fa("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.U=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&th(this,this.Ua)}else q("Unable to find CPU component")}ka(nh,r);function oh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[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 th(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Cb(f)){Cb(f,function(){th(a,b,c)});return}}b.call(a,c)}
function uh(a,b){var c=new F(a,"1.34.3",vh);if(rh(c)&&Hh(c)){var d=c.get(Ih),e=b?b.get(Ih):"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=nh.prototype;
l.Ua=function(a){void 0===a&&(a=this.b||(this.L?Jh:qh));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==Kh)b=!0;else if(a>qh){if(rh(d,this.L)){this.C=new F(this,"1.34.3",Lh);rh(this.C)&&(Mh(this,d),a=Nh,Oh(this.C));this.C.set(Ih,Ga());Ph(this.C);var e=this.b&&!this.K;if(a==Jh||pb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Hh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?rh(d,g):("error"==f&&"no machine state"!=
g?(this.fa("Error: "+g),"unable to verify user"==g&&(Qa(Qh,""),this.i=null)):this.u(f+": "+g),Oh(d),rh(d)?(c=Hh(d),e=!0):c=!1))}e&&uh(this,c?d:null)}else a==Nh&&d.clear()}else uh(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Rh(this,g,d,b,c));b=[d,a,c];a!=Kh?th(this,this.Gb,b):this.Gb(b)}};
function Rh(a,b,c,d,e){if(!b.A.X){b.A.X=!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.ya(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=qh,window&&window.location.reload()):a.P=!0,b.ya(null),e=!1),!d&&b.Bb){var g=b.Bb.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}
l.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Rh(this,this.v,b,c,a),J(this,-2),this.v.da());this.P&&(Mh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Mh(a,b){if(pb("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.Z;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 wg(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",vh),h=Ga();g.set(Ih,h);f.set(Ih,h);f.set(Sh,"1.34.3");f.set(Th,window?window.location.href:null);f.set(Uh,window?window.navigator.userAgent:"");a.v&&a.v.oa&&(c&&(b&&(a.v.A.da=a.v.A.O),a.v.V()),d=a.v.oa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.A.X&&(m.oa&&(d=m.oa(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Vh(a,a.i,f.toString()),Ph(g)&&Ph(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Wh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.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=qb(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)};l.start=function(a,b){for(var c=qb(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)};
l.stop=function(a,b){for(var c=qb(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.ib+=d))&&(e.textContent=c.A.O?c.Y.toFixed(2)+"Mhz":"Stopped",c.ib=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.S||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.Aa);jc(a,a.i);dc(a,a.w)}}
l.pa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?wg(d,!1,!0):sh(d,d.Ua))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");wg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ua(ph)}else d.reset(),d.v&&!d.D&&d.v.da()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=oh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=wg(d,b);b?Uh(d,a,c):d.fa("Resume disabled, machine state not saved")}},!0}return!1};
function oh(a,b){var c=a.i;c||((c=Pa(Ph),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=Wh(a,c))||a.fa("The user ID is invalid.")):b&&a.fa("Browser local storage is not available"));return c}
function Wh(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(Ph,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function rh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+Xh(a,"1.34.3"));return b}
function Uh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xh(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.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),Qa(Ph,""),a.i=null)}}
function jd(a,b){if(a.xa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.xa.focus();!b&&window&&window.scrollTo(c,d)}}var Kh="failsafe",uh="validate",Hh="timestamp",Rh="version",Sh="url",Th="browser",Ph="user",Jh=-1,ph=0,Ih=1,Mh=2,Vh=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new mh(g,d,!0);tb(g,f);g.N&&sh(g,g.Ua)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.T&&!c.A.X&&c.Ua(Jh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.A.X&&wg(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=Xh(a,b,c);Nh(this,a.Rb)}l=F.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 qh(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 vh(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 Oh(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}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Nh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){Nh(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 Xh(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 Yh=0;
function Zh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):$h(k,a,b,c,d,e,f,g)})}
function $h(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(mb(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(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?ai(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function ai(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],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);ai(a,b,c)}})}else c(a,null)}
function bi(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);m&&(--Yh||ab(!0));m=!1}var h,k,m=!0;Yh++;nb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=p:C.appendChild(document.createTextNode(p));t.appendChild(C)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?Zh(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Yh||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),--Yh||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Zh(c,b,a,e,!0,f,p):$h(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return m}window.embedPDP10=function(a,b,c,d){ab(!1);return bi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return bi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return sb(b,a+".machine")};
l.pa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?wg(d,!1,!0):th(d,d.Ua))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");wg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ua(qh)}else d.reset(),d.v&&!d.D&&d.v.da()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=ph(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=wg(d,b);b?Vh(d,a,c):d.fa("Resume disabled, machine state not saved")}},!0}return!1};
function ph(a,b){var c=a.i;c||((c=Pa(Qh),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=Xh(a,c))||a.fa("The user ID is invalid.")):b&&a.fa("Browser local storage is not available"));return c}
function Xh(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(Qh,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function sh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+Yh(a,"1.34.3"));return b}
function Vh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Yh(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.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),Qa(Qh,""),a.i=null)}}
function jd(a,b){if(a.xa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.xa.focus();!b&&window&&window.scrollTo(c,d)}}var Lh="failsafe",vh="validate",Ih="timestamp",Sh="version",Th="url",Uh="browser",Qh="user",Kh=-1,qh=0,Jh=1,Nh=2,Wh=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new nh(g,d,!0);tb(g,f);g.N&&th(g,g.Ua)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.T&&!c.A.X&&c.Ua(Kh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.A.X&&wg(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=Yh(a,b,c);Oh(this,a.Rb)}l=F.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 rh(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 Hh(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 Ph(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}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Oh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){Oh(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 Yh(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 Zh=0;
function $h(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):ai(k,a,b,c,d,e,f,g)})}
function ai(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(mb(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(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?bi(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function bi(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],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);bi(a,b,c)}})}else c(a,null)}
function ci(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);m&&(--Zh||ab(!0));m=!1}var h,k,m=!0;Zh++;nb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=p:C.appendChild(document.createTextNode(p));t.appendChild(C)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?$h(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Zh||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),--Zh||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?$h(c,b,a,e,!0,f,p):ai(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return m}window.embedPDP10=function(a,b,c,d){ab(!1);return ci("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return ci("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return sb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!vb[a]){for(var c=!0,d=vb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;ub(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=cb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp10-dbg.map

View file

@ -104,7 +104,7 @@ function Jc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)
function Qc(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=H-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Ma;f[0]=0;f[1]=0;f=this.ba;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ca;c[0]=a;for(c[1]=b;0<Rc(this.ca,this.X);)Sc(this.X,this.X),Sc(this.ba,this.ba);do{if(0<=Rc(this.ca,this.X)&&(b=this.ca,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Sc(this.Ma,this.ba),Tc(this.ca)))break;Uc(this.X);Uc(this.ba)}while(!Tc(this.ba));
a=this.Ma[0];this.o=this.ca[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
function Vc(a,b,c){var d=a,e=b;b=!1;var f;d>F&&(d=J-d,b=!b);e>F&&(e=J-e,b=!b);if(d<E&&e<E)a=d*e,f=0;else{a=d&D;d=Math.trunc(d/E);f=e&D;var e=Math.trunc(e/E),g=a*f,h=d*f+Math.trunc(g/E);f=Math.trunc(h/E);h=(h&D)+a*e;a=h*E+(g&D);f+=Math.trunc(h/E)+d*e}b&&(a?(f=H-f,a=J-a):f&&(f=J-f));if(c)return(f||a>F)&&(f!=H||a<=F)&&(this.g|=131072),a;c=a;b=f;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;d=b-b%G;a!=d&&(b=a+(b-d),this.g|=131072);this.o=c;return b}
function Wc(a){a?a==G?this.g|=163840:a=cb-a:this.g|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=J);Pc.call(this,c,b,a);return c}function Pc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-G)}
function Wc(a){a?a==G?this.g|=163840:a=cb-a:this.g|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=J);Pc.call(this,c,b,a);return c}function Pc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-J)}
function Xc(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a<G?a:a-J}function Y(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function Z(a){return(a/E|0)+(a&D)*E}function Dc(a,b,c){switch(a&384){case 0:b-=b&D;break;case 128:b=0;break;case 256:b=D*E;break;case 384:b=c>ab?D*E:0}return b}function uc(a,b,c){switch(a&384){case 0:b&=D;break;case 128:b=0;break;case 256:b=D;break;case 384:b=c>F?D:0}return b}
function Sc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=J&&(a[0]%=J,a[1]++)}function Rc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Uc(a){a[1]%2&&(a[0]+=J);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Tc(a){return!a[0]&&!a[1]}
var jc=[P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},kc,function(a,b){0>this.u&&kc.call(this);lc.call(this,0,b)},lc,function(a,b){0>this.u&&kc.call(this);mc.call(this,0,b)},mc,function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},
@ -118,7 +118,7 @@ this.c(b,a)}},function(a,b){if(a=(this.a<<14>>14)%36){var c=this.b(b);0>a&&(a=36
d<H)this.g|=131072;if(71<=a){if(0<e&&e<G||e>F&&e<H)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=F?e+c>F&&(this.g|=131072):e-c<=F&&(this.g|=131072);e=0;f>F&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=F?f+c>F&&(this.g|=131072):(f-c<=F&&(this.g|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?H:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=H,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+
d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=(this.a<<14>>14)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),d=this.b(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%J,d=0):(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%J,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},O,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,a)},function(a,b){a=!1;for(var c=this.b(b),d=c/E|0,c=c&D;!a;)this.c(c,this.b(d)),c==this.a&&(a=!0),d=d+1&D,c=c+1&D,this.i.B||(this.c(b,d*
E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a<G&&M(this,this.a)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a>=G&&M(this,this.a)},function(a,b){b&1&&(this.g|=4096);if(b&2){var c=this.qa,c=c/E|0;this.g=this.g&-254049|c&254048;this.g|=c&4096;c&2048?this.g&4096||(this.g|=2048):this.g&=-2049}b&4&&N(this);b&8&&this.h(a);M(this,this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.da=this.a},O,function(a){this.h(a)},function(a,
E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a<G&&M(this,this.a)},function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a>=G&&M(this,this.a)},function(a,b){b&1&&(this.g|=4096);if(b&2){var c=this.qa,c=c/E|0;this.g=this.g&-254049|c&254048;this.g|=c&4096;c&2048?this.g&4096||(this.g|=2048):this.g&=-2049}b&4&&N(this);b&8&&this.h(a);M(this,this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.da=this.a},O,function(a){this.h(a)},function(a,
b){a=this.b(b);a+=262145;this.c(a&D,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&D);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==D&&(this.g|=262144);this.c(b,a)},function(a){this.h(a)},function(){this.c(this.a,(this.g&D)*E+this.f);M(this,this.a+1)},function(a,b){this.c(b,(this.g&D)*E+this.f);M(this,this.a)},function(a){this.h(a)},function(a){this.h(a)},function(a,b){this.c(b,R.call(this,this.b(b),this.b(this.a)))},function(a,
b){this.c(b,R.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R.call(this,this.b(b),this.b(this.a))))},function(a,b){this.c(b,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,S.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,S.call(this,this.b(b),this.b(this.a))))},Mc,function(a,b){0>V(this.b(b),this.a)&&M(this,
this.f+1)},function(a,b){V(this.b(b),this.a)||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.a)&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){0<V(this.b(b),this.a)&&M(this,this.f+1)},Nc,function(a,b){0>V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},