diff --git a/modules/pdp10/lib/cpuops.js b/modules/pdp10/lib/cpuops.js index 6e9dd7605..45d3b2cce 100644 --- a/modules/pdp10/lib/cpuops.js +++ b/modules/pdp10/lib/cpuops.js @@ -1382,16 +1382,16 @@ PDP10.opASH = function(op, acc) PDP10.opROT = function(op, acc) { /* - * Convert the unsigned 18-bit value in regEA to a signed 8-bit value, modulo +/-36. + * Convert the unsigned 18-bit value in regEA to a signed 8-bit value, modulo 36 (+/-35). */ var s = ((this.regEA << 14) >> 24) % 36; if (s) { var w = this.readWord(acc); - if (s > 0) { - w = ((w * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(w / Math.pow(2, 36 - s)); - } else { - w = Math.trunc(w / Math.pow(2, -s)) + ((w * Math.pow(2, 36 + s)) % PDP10.WORD_LIMIT); - } + /* + * Note that a right rotation (s < 0) of s bits is equivalent to a left rotation (s > 0) of 36 + s bits. + */ + if (s < 0) s = 36 + s; + w = ((w * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(w / Math.pow(2, 36 - s)); this.writeWord(acc, w); } }; @@ -1412,7 +1412,7 @@ PDP10.opROT = function(op, acc) PDP10.opLSH = function(op, acc) { /* - * Convert the unsigned 18-bit value in regEA to a signed 8-bit value. + * Convert the unsigned 18-bit value in regEA to a signed 8-bit value (+/-255). */ var s = (this.regEA << 14) >> 24; if (s) { @@ -1475,29 +1475,23 @@ PDP10.opASHC = function(op, acc) PDP10.opROTC = function(op, acc) { /* - * Convert the unsigned 18-bit value in regEA to a signed 8-bit value. + * Convert the unsigned 18-bit value in regEA to a signed 8-bit value, modulo 72 (+/-71). */ var s = ((this.regEA << 14) >> 24) % 72; if (s) { var wLeft = this.readWord(acc); var wRight = this.readWord((acc + 1) & 0o17); - var wExcess = wLeft; - if (s > 0) { - if (s < 36) { - wLeft = ((wLeft * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 36 - s)); - wRight = ((wRight * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(wExcess / Math.pow(2, 36 - s)); - } else { - wLeft = ((wRight * Math.pow(2, s - 36)) % PDP10.WORD_LIMIT) + Math.trunc(wLeft / Math.pow(2, 72 - s)); - wRight = ((wExcess * Math.pow(2, s - 36)) % PDP10.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 72 - s)); - } + var wLeftOrig = wLeft; + /* + * Note that a right rotation (s < 0) of s bits is equivalent to a left rotation (s > 0) of 72 + s bits. + */ + if (s < 0) s = 72 + s; + if (s < 36) { + wLeft = ((wLeft * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 36 - s)); + wRight = ((wRight * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(wLeftOrig / Math.pow(2, 36 - s)); } else { - if (s > -36) { - wLeft = Math.trunc(wLeft / Math.pow(2, -s)) + ((wRight * Math.pow(2, 36 + s)) % PDP10.WORD_LIMIT); - wRight = Math.trunc(wRight / Math.pow(2, -s)) + ((wExcess * Math.pow(2, 36 + s)) % PDP10.WORD_LIMIT); - } else { - wLeft = Math.trunc(wRight / Math.pow(2, -s - 36)) + ((wLeft * Math.pow(2, 72 + s)) % PDP10.WORD_LIMIT); - wRight = Math.trunc(wExcess / Math.pow(2, -s - 36)) + ((wRight * Math.pow(2, 72 + s)) % PDP10.WORD_LIMIT); - } + wLeft = ((wRight * Math.pow(2, s - 36)) % PDP10.WORD_LIMIT) + Math.trunc(wLeft / Math.pow(2, 72 - s)); + wRight = ((wLeftOrig * Math.pow(2, s - 36)) % PDP10.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 72 - s)); } this.writeWord(acc, wLeft); this.writeWord((acc + 1) & 0o17, wRight); @@ -1521,7 +1515,7 @@ PDP10.opROTC = function(op, acc) PDP10.opLSHC = function(op, acc) { /* - * Convert the unsigned 18-bit value in regEA to a signed 8-bit value. + * Convert the unsigned 18-bit value in regEA to a signed 8-bit value (+/-255). */ var s = (this.regEA << 14) >> 24; if (s) { diff --git a/versions/pdpjs/1.34.2/pdp10.js b/versions/pdpjs/1.34.2/pdp10.js index 7b7a52c45..b5952405e 100644 --- a/versions/pdpjs/1.34.2/pdp10.js +++ b/versions/pdpjs/1.34.2/pdp10.js @@ -42,8 +42,8 @@ function ua(a,b){var c,d={H:null,N:null,T:null,S:null};if("["==b.charAt(0)||"{"= e[c]&255,d.H[f++]=e[c]>>8&255,d.H[f++]=e[c]>>16&255,d.H[f++]=e[c]>>24&255;else(e=g.data)?d.Y=e:d.H=g;d.H&&(d.H.length?1==d.H.length&&(w(d.H[0]),d=null):(w("Empty resource: "+a),d=null));d.N=g.symbols}catch(h){w("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.ma=this.id:(this.na=this.id.substr(0,a),this.ma=this.id.substr(a+1));this.g={ready:!1,sa:!1,Fa:!1,C:!1,error:!1};this.ua=null;this.g.error=!1;this.v=this.h=this.o=this.u=this.ba=null;B.push(this)}function Ja(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function La(){return Date.now()||+new Date} function w(a){window&&window.alert(a)}function Ma(a){var b=!1;window&&(b=window.confirm(a));return b}function C(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>24)%36){var c=this.c(b),c=0>24){var c=this.c(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a){this.a(a)}, -function(a,b){if(a=(this.b<<14>>24)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0a?(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%K+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%K+Math.trunc(d/Math.pow(2,72-a))):-36>24){var c=this.c(b),d=this.c(b+1&15);0=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%K,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},T,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,a)},function(a,b){a=!1; -for(var c=this.c(b),d=c/M|0,c=c&N;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&N,c=c+1&N,this.g.A||(this.f(b,d*M+c),a||ec(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&N,this.c(this.b));a>=K&&(a-=K);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&N);this.f(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=K);this.f(b,a)},function(a){this.a(a)}, +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){if(a=(this.b<<14>>24)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%K+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=this.b<<14>>24){var c=this.c(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a){this.a(a)},function(a,b){if(a=(this.b<< +14>>24)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%K+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%K+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=this.b<<14>>24){var c=this.c(b),d=this.c(b+1&15);0=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%K,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},T,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,a)},function(a,b){a=!1;for(var c=this.c(b),d=c/M|0,c=c&N;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&N,c=c+1&N,this.g.A||(this.f(b,d*M+c),a||ec(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, +T,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&N,this.c(this.b));a>=K&&(a-=K);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&N);this.f(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=K);this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, -function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, -function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},nc,nc,function(){this.f(this.b,0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),this.b))},function(a,b){this.f(this.b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b), -this.c(this.b))))},function(a,b){this.f(b,Y(L-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(L-this.c(b),this.b))},function(a,b){this.f(this.b,Y(L-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(L-this.c(b),this.c(this.b))))},kc,lc,Gc,kc,function(a,b){this.f(b,Y(this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),L-this.b))},function(a,b){this.f(this.b,Y(this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),L-this.c(this.b))))},Gc,Gc, -mc,mc,function(a,b){this.f(b,Hc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Hc(this.c(b),this.b))},function(a,b){this.f(this.b,Hc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Hc(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),this.b))},function(a,b){this.f(this.b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(L-this.c(b),L-this.c(this.b)))}, -function(a,b){this.f(b,Y(L-this.c(b),L-this.b))},function(a,b){this.f(this.b,Y(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(L-this.c(b),L-this.c(this.b))))},function(a,b){this.f(b,Ic(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Ic(this.c(b),this.b))},function(a,b){this.f(this.b,Ic(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Ic(this.c(b),this.c(this.b))))},oc,oc,function(a,b){this.f(this.b,L-this.c(b))},function(a,b){this.f(this.b,this.f(b,L-this.c(b)))}, -function(a,b){this.f(b,Z(L-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(L-this.c(b),this.b))},function(a,b){this.f(this.b,Z(L-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(L-this.c(b),this.c(this.b))))},function(a,b){this.f(b,L-this.c(this.b))},function(a,b){this.f(b,L-this.b)},function(){this.f(this.b,L-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,L-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),L- -this.b))},function(a,b){this.f(this.b,Z(this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),L-this.c(this.b))))},function(a,b){this.f(b,Z(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Z(L-this.c(b),L-this.b))},function(a,b){this.f(this.b,Z(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(L-this.c(b),L-this.c(this.b))))},pc,pc,function(){this.f(this.b,L)},function(a,b){this.f(this.b,this.f(b,L))},qc,rc,sc,tc,uc,vc,wc,xc,qc,rc,sc,tc,uc,vc,wc, -xc,qc,rc,sc,tc,uc,vc,wc,xc,qc,rc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},nc,nc,function(){this.f(this.b, +0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),this.b))},function(a,b){this.f(this.b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(L-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(L-this.c(b),this.b))},function(a,b){this.f(this.b,Y(L-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(L-this.c(b),this.c(this.b))))}, +kc,lc,Gc,kc,function(a,b){this.f(b,Y(this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),L-this.b))},function(a,b){this.f(this.b,Y(this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),L-this.c(this.b))))},Gc,Gc,mc,mc,function(a,b){this.f(b,Hc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Hc(this.c(b),this.b))},function(a,b){this.f(this.b,Hc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Hc(this.c(b),this.c(this.b))))},function(a,b){this.f(b, +Z(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),this.b))},function(a,b){this.f(this.b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Y(L-this.c(b),L-this.b))},function(a,b){this.f(this.b,Y(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(L-this.c(b),L-this.c(this.b))))},function(a,b){this.f(b,Ic(this.c(b),this.c(this.b)))},function(a, +b){this.f(b,Ic(this.c(b),this.b))},function(a,b){this.f(this.b,Ic(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Ic(this.c(b),this.c(this.b))))},oc,oc,function(a,b){this.f(this.b,L-this.c(b))},function(a,b){this.f(this.b,this.f(b,L-this.c(b)))},function(a,b){this.f(b,Z(L-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(L-this.c(b),this.b))},function(a,b){this.f(this.b,Z(L-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(L-this.c(b),this.c(this.b))))},function(a, +b){this.f(b,L-this.c(this.b))},function(a,b){this.f(b,L-this.b)},function(){this.f(this.b,L-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,L-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),L-this.b))},function(a,b){this.f(this.b,Z(this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),L-this.c(this.b))))},function(a,b){this.f(b,Z(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(b,Z(L-this.c(b),L-this.b))}, +function(a,b){this.f(this.b,Z(L-this.c(b),L-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(L-this.c(b),L-this.c(this.b))))},pc,pc,function(){this.f(this.b,L)},function(a,b){this.f(this.b,this.f(b,L))},qc,rc,sc,tc,uc,vc,wc,xc,qc,rc,sc,tc,uc,vc,wc,xc,qc,rc,sc,tc,uc,vc,wc,xc,qc,rc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, -function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X]; +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X]; function Jc(a){A.call(this,"ROM",a);this.N=this.a=null;this.l=+a.addr;this.i=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.s=ma(this.j);if(this.j){a=this.j;var b=na(this.s);"json"!=b&&"hex"!=b&&(a=t()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;u(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(Ja(c.na,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.j=null);Kc(c)})}}n(Jc,A); Jc.prototype.Z=function(a,b,c,d){this.o=b;this.h=c;this.v=d;Kc(this)};Jc.prototype.V=function(){this.N&&(this.v&&this.v.a(this.id,this.l,this.i,this.N),delete this.N);return!0};Jc.prototype.P=function(){return!0}; function Kc(a){if(!Ta(a)){if(a.j){if(!a.a||!a.o)return;a.i||(a.i=a.a.length);if(a.a.length!=a.i){var b="ROM size ("+r(a.a.length,8,!0)+") does not match specified size ("+r(a.i,8,!0)+")";a.g.error=!0;a.F(b)}else{b=a.l;if(Bb(a.o,b,a.i,Jb)){var c;for(c=0;c>>f.b;0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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(z){g=null,a=z.message}else a="unrecognized XML: "+(255).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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(y){g=null,a=y.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");u(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 l=h[0],p,v=/( [a-z]+=)(['"])(.*?)\2/g;p=v.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, "");a=a.replace(d[0],g);ud(a,b,c)}})}else c(a,null)} -function vd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&H(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function g(a){f("Error: "+a);p&&(--rd||Fa(!0));p=!1}var h,l,p=!0;rd++;Ka[b]={};try{if(h=document.getElementById(b)){var v;if("object"==typeof resources&&(v=resources.css)){var z=document.head||document.getElementsByTagName("head")[0],qa=document.createElement("style");qa.type="text/css";qa.styleSheet?qa.styleSheet.cssText=v:qa.appendChild(document.createTextNode(v));z.appendChild(qa)}d|| +function vd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&H(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function g(a){f("Error: "+a);p&&(--rd||Fa(!0));p=!1}var h,l,p=!0;rd++;Ka[b]={};try{if(h=document.getElementById(b)){var v;if("object"==typeof resources&&(v=resources.css)){var y=document.head||document.getElementsByTagName("head")[0],qa=document.createElement("style");qa.type="text/css";qa.styleSheet?qa.styleSheet.cssText=v:qa.appendChild(document.createTextNode(v));y.appendChild(qa)}d|| (v=a,"pdp"==a.substr(0,3)&&(v="pdpjs"),d="/versions/"+v+"/1.34.2/components.xsl");v=function(e,l){l?sd(d,null,a,null,!1,f,function(a,e){e?(Ja(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--rd||Fa(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--rd|| Fa(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?sd(c,b,a,e,!0,f,v):td(c,null,b,a,e,!1,f,v)}else g("missing machine element: "+b)}catch(wd){g(wd.message)}return p}window.embedPDP10=function(a,b,c,d){Fa(!1);return vd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fa(!1);return vd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return D(b,a+".machine")}; -window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Pa[a]){for(var c=!0,d=Pa,e=a,f=b.length,g=[],h=[],l="",p=null,v=0;v