All HLL and HRL permutations implemented now (up next: HRR and HLR)
This commit is contained in:
parent
a1dba6a679
commit
d7b8122a40
3 changed files with 264 additions and 359 deletions
|
|
@ -2668,8 +2668,7 @@ PDP10.opHLL = function(op)
|
|||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
var src = this.readWord(this.regEA);
|
||||
var dst = this.readWord(a);
|
||||
dst = PDP10.setHR(op, dst, src) + (src - (src & PDP10.WORD_MASK));
|
||||
this.writeWord(a, dst);
|
||||
this.writeWord(a, PDP10.getHR(op, dst, src) + (src - (src & PDP10.WORD_MASK)));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -2692,8 +2691,7 @@ PDP10.opHLLI = function(op)
|
|||
{
|
||||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
var dst = this.readWord(a);
|
||||
dst = PDP10.setHR(op, dst, 0);
|
||||
this.writeWord(a, dst);
|
||||
this.writeWord(a, PDP10.getHR(op, dst, 0));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -2714,8 +2712,7 @@ PDP10.opHLLM = function(op)
|
|||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
var src = this.readWord(a);
|
||||
var dst = this.readWord(this.regEA);
|
||||
dst = PDP10.setHR(op, dst, src) + (src - (src & PDP10.WORD_MASK));
|
||||
this.writeWord(this.regEA, dst);
|
||||
this.writeWord(this.regEA, PDP10.getHR(op, dst, src) + (src - (src & PDP10.WORD_MASK)));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -2761,10 +2758,9 @@ PDP10.opHLLS = function(op)
|
|||
PDP10.opHRL = function(op)
|
||||
{
|
||||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
var src = this.readWord(this.regEA) & PDP10.WORD_MASK;
|
||||
var src = (this.readWord(this.regEA) & PDP10.WORD_MASK) * PDP10.WORD_SHIFT;
|
||||
var dst = this.readWord(a);
|
||||
dst = (dst & PDP10.WORD_MASK) + src * PDP10.WORD_SHIFT;
|
||||
this.writeWord(a, dst);
|
||||
this.writeWord(a, PDP10.getHR(op, dst, src) + src);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -2784,9 +2780,9 @@ PDP10.opHRL = function(op)
|
|||
PDP10.opHRLI = function(op)
|
||||
{
|
||||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
var src = this.regEA * PDP10.WORD_SHIFT;
|
||||
var dst = this.readWord(a);
|
||||
dst = (dst & PDP10.WORD_MASK) + this.regEA * PDP10.WORD_SHIFT;
|
||||
this.writeWord(a, dst);
|
||||
this.writeWord(a, PDP10.getHR(op, dst, src) + src);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -2806,10 +2802,9 @@ PDP10.opHRLI = function(op)
|
|||
PDP10.opHRLM = function(op)
|
||||
{
|
||||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
var src = this.readWord(a) & PDP10.WORD_MASK;
|
||||
var src = (this.readWord(a) & PDP10.WORD_MASK) * PDP10.WORD_SHIFT;
|
||||
var dst = this.readWord(this.regEA);
|
||||
dst = (dst & PDP10.WORD_MASK) + src * PDP10.WORD_SHIFT;
|
||||
this.writeWord(this.regEA, dst);
|
||||
this.writeWord(this.regEA, PDP10.getHR(op, dst, src) + src);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -2828,147 +2823,17 @@ PDP10.opHRLM = function(op)
|
|||
*/
|
||||
PDP10.opHRLS = function(op)
|
||||
{
|
||||
var dst = this.readWord(this.regEA) & PDP10.WORD_MASK;
|
||||
this.writeWord(this.regEA, dst + dst * PDP10.WORD_SHIFT);
|
||||
var dst = this.readWord(this.regEA);
|
||||
var src = (dst & PDP10.WORD_MASK) * PDP10.WORD_SHIFT;
|
||||
this.writeWord(this.regEA, PDP10.getHR(op, dst, src) + src);
|
||||
var a = op & PDP10.OPCODE.A_MASK;
|
||||
if (a) {
|
||||
dst = this.readWord(a) & PDP10.WORD_MASK;
|
||||
this.writeWord(a, dst + dst * PDP10.WORD_SHIFT);
|
||||
dst = this.readWord(a);
|
||||
src = (dst & PDP10.WORD_MASK) * PDP10.WORD_SHIFT;
|
||||
this.writeWord(a, PDP10.getHR(op, dst, src) + src);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLZ(0o514000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLZ = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLZI(0o515000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLZI = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLZM(0o516000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLZM = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLZS(0o517000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLZS = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLO(0o524000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLO = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLOI(0o525000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLOI = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLOM(0o526000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLOM = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLOS(0o527000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLOS = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLE(0o534000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLE = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLEI(0o535000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLEI = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLEM(0o536000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLEM = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRLES(0o537000)
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
*/
|
||||
PDP10.opHRLES = function(op)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
};
|
||||
|
||||
/**
|
||||
* opHRR(0o540000): Half Word Right to Right
|
||||
*
|
||||
|
|
@ -4230,14 +4095,16 @@ PDP10.opUndefined = function(op)
|
|||
};
|
||||
|
||||
/**
|
||||
* setHR(op, dst, src)
|
||||
* getHR(op, dst, src)
|
||||
*
|
||||
* Used by callers to obtain HR (half-word right) with HL (half-word left) zeroed.
|
||||
*
|
||||
* @param {number} op
|
||||
* @param {number} dst (36-bit value whose 18-bit right half is either preserved or modified)
|
||||
* @param {number} src (36-bit value used to determine the sign extension, if any, for the right half of dst)
|
||||
* @return {number} (updated dst)
|
||||
*/
|
||||
PDP10.setHR = function(op, dst, src)
|
||||
PDP10.getHR = function(op, dst, src)
|
||||
{
|
||||
switch(op & 0o600) {
|
||||
case 0o000:
|
||||
|
|
@ -4256,6 +4123,32 @@ PDP10.setHR = function(op, dst, src)
|
|||
return dst;
|
||||
};
|
||||
|
||||
/**
|
||||
* setHR(op, dst, src)
|
||||
*
|
||||
* Used by callers to obtain HR (half-word right) with HL (half-word left) preserved.
|
||||
*
|
||||
* @param {number} op
|
||||
* @param {number} dst (36-bit value whose 18-bit right half is either preserved or modified)
|
||||
* @param {number} src (36-bit value used to determine the sign extension, if any, for the right half of dst)
|
||||
* @return {number} (updated dst)
|
||||
*/
|
||||
PDP10.setHR = function(op, dst, src)
|
||||
{
|
||||
if (op &= 0o600) {
|
||||
dst -= (dst & PDP10.WORD_MASK);
|
||||
switch(op) {
|
||||
case 0o400:
|
||||
dst += PDP10.WORD_MASK;
|
||||
break;
|
||||
case 0o600:
|
||||
dst += (src > PDP10.MAX_POS? PDP10.WORD_MASK : 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return dst;
|
||||
};
|
||||
|
||||
/*
|
||||
* If we want the basic half-word operations to handle all the sub-operations; ie:
|
||||
*
|
||||
|
|
@ -4278,6 +4171,18 @@ PDP10.opHLLE = PDP10.opHLL;
|
|||
PDP10.opHLLEI = PDP10.opHLLI;
|
||||
PDP10.opHLLEM = PDP10.opHLLM;
|
||||
PDP10.opHLLES = PDP10.opHLLS;
|
||||
PDP10.opHRLZ = PDP10.opHRL;
|
||||
PDP10.opHRLZI = PDP10.opHRLI;
|
||||
PDP10.opHRLZM = PDP10.opHRLM;
|
||||
PDP10.opHRLZS = PDP10.opHRLS;
|
||||
PDP10.opHRLO = PDP10.opHRL;
|
||||
PDP10.opHRLOI = PDP10.opHRLI;
|
||||
PDP10.opHRLOM = PDP10.opHRLM;
|
||||
PDP10.opHRLOS = PDP10.opHRLS;
|
||||
PDP10.opHRLE = PDP10.opHRL;
|
||||
PDP10.opHRLEI = PDP10.opHRLI;
|
||||
PDP10.opHRLEM = PDP10.opHRLM;
|
||||
PDP10.opHRLES = PDP10.opHRLS;
|
||||
|
||||
PDP10.aOpXXX_KA10 = [
|
||||
PDP10.opUUO, // 0o000xxx
|
||||
|
|
|
|||
|
|
@ -30,11 +30,11 @@
|
|||
*/
|
||||
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
|
||||
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ka(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ka("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ka("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ia(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ia("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ia("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
|
||||
Gc:82,Hc:83,Ic:84,Jc:85,Kc:86,Lc:87,Mc:88,Nc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Pc:98,Qc:99,d:100,e:101,Rc:102,Sc:103,Tc:104,Uc:105,Vc:106,k:107,Wc:108,Xc:109,n:110,Yc:111,p:112,q:113,r:114,Zc:115,t:116,ad:117,bd:118,cd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,rb:127};
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ta:!1,V:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.ma=null;u.push(this)}function na(a,b,c){oa[a]&&b&&(oa[a][b]=c)}function va(){return Date.now()||+new Date}
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ta:!1,V:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.ma=null;u.push(this)}function na(a,b,c){oa[a]&&b&&(oa[a][b]=c)}function pa(){return Date.now()||+new Date}
|
||||
function v(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}function xa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ya(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
||||
function za(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
||||
function Aa(a,b){var c=A;b=B(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(f))&&h.binding&&a.ga(h.type,h.binding,f,h.value),m=k.length}}}}
|
||||
|
|
@ -42,7 +42,7 @@ function B(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.g
|
|||
function Ba(a){for(var b=!0,c=Ca[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Da.indexOf(e)&&(g=function(){return function(){Ba(a)}}());var f=Ea[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=za(d[1],a);if(h)if(f=Fa[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){v("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Ca[a];return b}l=t.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.ga=function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.ma=this.G[b]=c,c.value="",this.f=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.ca=function(a){this.f(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
||||
l.status=function(a){this.f(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ga(a,b){a.j.error=!0;a.ca(b)}function Oa(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Pa(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Qa(a,b){a.j.Fa&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
|
||||
l.status=function(a){this.f(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ga(a,b){a.j.error=!0;a.ca(b)}function Ha(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Pa(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Qa(a,b){a.j.Fa&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
|
||||
function Ra(a,b){if(a.j.Ta)return a.j.Fa=!1,a.j.Ta=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}l.na=function(){return this.j.V=!0};l.fa=function(a,b){b&&(this.j.V=!1);return!0};function Sa(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.ib)}return!1}function Ta(a,b,c,d){a.A&&(!0===c||Sa(a,c|0))&&a.A.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var oa=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],Ca=window?window.PCjs.Commands:{},Da=["hold","sleep","wait"],Ea={alert:function(a){v(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Fa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
|
|
@ -61,45 +61,46 @@ function ub(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return
|
|||
function wb(a){if(!xb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}xb=c}return xb[a]}function yb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function zb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}function Ab(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Bb(a){Cb.init.push(a)}
|
||||
function Db(a){if(Eb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Fb(a){!Eb&&a?(Eb=!0,Gb&&Hb("init"),Ib&&Hb("show")):Eb=a}function Hb(a){Cb[a]&&Db(Cb[a])}var xb=null,Cb={init:[],show:[],exit:[]},Gb=!1,Ib=!1,Eb=!0,sb=null;Ab("onload",function(){Gb=!0;Db(Cb.init)});Ab("onpageshow",function(){Ib=!0;Db(Cb.show)});Ab(vb("Opera")||vb("iOS")?"onunload":"onbeforeunload",function(){Db(Cb.exit)});
|
||||
var A="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,35)-1,Ob=Math.pow(2,21),Pb=Math.pow(2,26),Xb=Math.pow(2,23),A="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Yb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Zb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
|
||||
set:this.Qb};C(this)}p(Yb,t);l=Yb.prototype;l.reset=function(a){this.stop();a&&$b(this,this.v=0)};
|
||||
var A="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,35)-1,Ob=Math.pow(2,21),Pb=Math.pow(2,26),Qb=Math.pow(2,23),A="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Rb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Sb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
|
||||
set:this.Qb};C(this)}p(Rb,t);l=Rb.prototype;l.reset=function(a){this.stop();a&&Tb(this,this.v=0)};
|
||||
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ac(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){ac(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bc(a,b)}}(this,b),!0):t.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;cc(this);dc(this)};l.na=function(a,b){if(!b)if(this.T&&ec(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])fc(this,this.i=a[0]),$b(this,this.v=a[1]),gc(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}dc(this);return!0};function hc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cc(a,b){for(var c in a.B)hc(a,c,null!=b?b:a.B[c])}function ic(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function dc(a){for(var b in a.b)ic(a,b,a.b[b][1])}
|
||||
l.restore=function(a){if(a=a[0])fc(this,this.i=a[0]),Tb(this,this.v=a[1]),gc(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}dc(this);return!0};function hc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cc(a,b){for(var c in a.B)hc(a,c,null!=b?b:a.B[c])}function ic(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function dc(a){for(var b in a.b)ic(a,b,a.b[b][1])}
|
||||
l.yb=function(a,b,c){if(ac(this,b)){if(c){var d=this;setTimeout(function(){bc(d,b);a&&a()},+c);return!1}bc(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return gc(this,Ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,ic(this,a,c[1]),!0):!1};l.Rb=function(a){return ac(this,a)?(bc(this,a),!0):!1};function ac(a,b){var c=a.b[b];return c?(ic(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=jc&&(a.O=b==kc,a.R=b==lc),!0):!1}
|
||||
function bc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(ic(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Kb,this.b[mc]&&this.b[mc][1]&&nc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
|
||||
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[mc]&&this.b[mc][1])nc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),oc(a,0,null),Ra(a,!1);else try{var b=this.g.Ja(1);0<b&&(pc(this.g,b),qc(this.g,b,!0),rc(this.g,b))}catch(c){"number"!=typeof c&&Ga(this.g,c.stack||c.message)}this.stop();this.C&&J(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&sc(this),a=$b(this,this.v=this.u),this.S==Zb?tc(this.D,this.i,a):this.g.P(this.i,a))};
|
||||
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&sc(this);this.S==Zb?b=uc(this.D,this.i):b=this.g.H(this.i);$b(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||fc(this,this.u)};l.Eb=function(a){a?(this.F=!0,cc(this,!0)):(this.F=!1,cc(this),gc(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function sc(a){var b=1,c=a.D.u;a.b[jc]&&a.b[jc][1]||(b=-b);fc(a,a.i&~c|a.i+b&c)}
|
||||
function fc(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}}function $b(a,b){a.I=b%Mb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}return a.I}function gc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;dc(a);return!0}l.stop=function(){fc(this,this.g.u)};
|
||||
function ec(){for(var a=B(document,A,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=ya(d.id);e||(e=new Yb(d,!0));Aa(e,c)}}var Zb=7,kc="DEP",mc="ENABLE",lc="EXAM",jc="STEP";Bb(ec);function vc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new wc(this);xc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;C(this)}p(vc,t);l=vc.prototype;l.reset=function(){};
|
||||
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[mc]&&this.b[mc][1])nc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),oc(a,0,null),Ra(a,!1);else try{var b=this.g.Ja(1);0<b&&(pc(this.g,b),qc(this.g,b,!0),rc(this.g,b))}catch(c){"number"!=typeof c&&Ga(this.g,c.stack||c.message)}this.stop();this.C&&J(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&sc(this),a=Tb(this,this.v=this.u),this.S==Sb?tc(this.D,this.i,a):this.g.P(this.i,a))};
|
||||
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&sc(this);this.S==Sb?b=uc(this.D,this.i):b=this.g.H(this.i);Tb(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||fc(this,this.u)};l.Eb=function(a){a?(this.F=!0,cc(this,!0)):(this.F=!1,cc(this),gc(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function sc(a){var b=1,c=a.D.u;a.b[jc]&&a.b[jc][1]||(b=-b);fc(a,a.i&~c|a.i+b&c)}
|
||||
function fc(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}}function Tb(a,b){a.I=b%Mb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}return a.I}function gc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;dc(a);return!0}l.stop=function(){fc(this,this.g.u)};
|
||||
function ec(){for(var a=B(document,A,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=ya(d.id);e||(e=new Rb(d,!0));Aa(e,c)}}var Sb=7,kc="DEP",mc="ENABLE",lc="EXAM",jc="STEP";Bb(ec);function vc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new wc(this);xc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;C(this)}p(vc,t);l=vc.prototype;l.reset=function(){};
|
||||
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,yc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function zc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Ac(Bc,e,g)}e=new wc(a,e,m,16384,d);xc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Cc[d]+" at "+Wa(b)),!0):Ac(Dc,b,c)}
|
||||
function uc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function tc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function yc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
||||
l.xb=function(a){this.v||(this.A&&Sa(this.A,4)&&Ta(this.A,"memory fault on "+K(this.A,a),!0,!0),this.g.W())};function Ac(a,b,c){v("Memory block error ("+a+": "+E(b)+","+E(c)+")");return!1}var Bc=1,Dc=2;function Ec(a){t.call(this,"Device",a,256)}p(Ec,t);l=Ec.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;C(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
|
||||
l.restore=function(){return!0};Bb(function(){for(var a=B(document,A,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Ec(c),Aa(c,d)}}});function wc(a,b,c,d,e){this.u=a;this.id=Fc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Gc;this.i=e==Hc;this.b=null;this.H=this.G=this.Xa;this.P=this.D=this.Ia;this.g=this.A=0;xc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Ic(this,Jc)}else Ic(this)}l=wc.prototype;l.save=function(){return this.C};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Ic(a,b){b||(b=Kc);ed(a,b,void 0);fd(a,b,void 0)}function ed(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function fd(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||fd(this,gd,!1):this.g++||ed(this,gd,!1)};function hd(a,b){b?--a.A||(a.P=a.i?a.Ia:a.D):--a.g||(a.H=a.G)}
|
||||
function xc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&ed(a,gd,!1),(a.A=c.A)&&fd(a,gd,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
|
||||
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;id(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;id(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Gc=0,Hc=2,Cc=["NONE","RAM","ROM"],Fc=0,Kc=[],Jc=[wc.prototype.Lb,wc.prototype.Ub],gd=[wc.prototype.Jb,wc.prototype.Tb];
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Ic(a,b){b||(b=Kc);Lc(a,b,void 0);Mc(a,b,void 0)}function Lc(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function Mc(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||Mc(this,Nc,!1):this.g++||Lc(this,Nc,!1)};function Oc(a,b){b?--a.A||(a.P=a.i?a.Ia:a.D):--a.g||(a.H=a.G)}
|
||||
function xc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&Lc(a,Nc,!1),(a.A=c.A)&&Mc(a,Nc,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
|
||||
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;id(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;id(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Gc=0,Hc=2,Cc=["NONE","RAM","ROM"],Fc=0,Kc=[],Jc=[wc.prototype.Lb,wc.prototype.Ub],Nc=[wc.prototype.Jb,wc.prototype.Tb];
|
||||
function jd(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.T=c;this.Da=Math.round(this.Ra/1E4)/100;this.S=this.Da*this.T;this.Qa=this.ua=this.aa=this.ya=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.N=this.F=this.L=this.M=this.B=this.ra=this.J=this.ja=this.Sa=this.R=0;this.xa=
|
||||
null;C(this)}p(jd,t);l=jd.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<kd.length;a++)(b=this.G[kd[a]])&&this.C.ga(null,kd[a],b);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.na=function(a,b){var c=ld(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){md(this);if(!this.restore(a))return!1;nd(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),od(a),b||pd(a),a.ta&&(b=a.ta,a.ta=null,qd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(nc(this),!0):!1};l.lb=function(){return 0};function nd(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.N)}function rc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.lb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=rd(a)&&(a.da=a.ia=-1,nd(a),a.W(),c=!0);c&&a.f(rd(a)+" cycles: checksum="+E(a.sa))}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=xa(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():nc(d))},!0;case "speed":return this.G[b]=
|
||||
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){sd(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function qc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function td(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/ud);a.ua=Math.floor(a.Ra/ud*c);b||(a.aa=a.ua);a.ya=0}function rd(a){return a.N+a.F+a.L-a.M}function md(a){a.R=0;a.Sa=0;a.N=a.F=a.L=a.M=0;nd(a);sd(a,1)}
|
||||
function sd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Da*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&vd(a.C)}qc(a,a.F);a.F=0;a.B=va();a.J=0;td(a);return d}function wd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function xd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function sd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Da*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&vd(a.C)}qc(a,a.F);a.F=0;a.B=pa();a.J=0;td(a);return d}function wd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function xd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function pc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function yd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
|
||||
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&td(this,!0);this.ja=0;this.ra=va();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=wd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=yd(this,!0);this.ja+=b;this.F+=b;rc(this,b);pc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=zd&&(this.C&&J(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(va(),rd(this));Ga(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=va();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,sd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.J+=c;a(b,c)}}};
|
||||
function nc(a,b){if(!Oa(a))if(a.j.K)a.f(a.toString()+" busy");else{sd(a);a.j.K=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&vd(a.C,!0),a.C.start(a.B,rd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){yd(this);qc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(va(),rd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var ud=30,zd=15,kd=["power","reset"];
|
||||
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&td(this,!0);this.ja=0;this.ra=pa();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=wd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=yd(this,!0);this.ja+=b;this.F+=b;rc(this,b);pc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=zd&&(this.C&&J(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(pa(),rd(this));Ga(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=pa();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,sd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.J+=c;a(b,c)}}};
|
||||
function nc(a,b){if(!Ha(a))if(a.j.K)a.f(a.toString()+" busy");else{sd(a);a.j.K=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&vd(a.C,!0),a.C.start(a.B,rd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){yd(this);qc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(pa(),rd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var ud=30,zd=15,kd=["power","reset"];
|
||||
function Ad(a){var b=+a.model||1001;jd.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=Bd.bind(this);this.b=L.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(Ad,jd);l=Ad.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.O=this.za=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.P=this.Vb;this.oa=null;md(this);this.j.error=!1;jd.prototype.reset.call(this)};l.lb=function(){return 0};
|
||||
l.save=function(){var a=new H(this);a.set(0,[this.i,this.O,this.za,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.T,this.j.Z]);a.set(3,Cd(this));a.set(4,xd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.i=b.next().value;this.O=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.N=b[0];sd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
|
||||
a[b];return!0};function Dd(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Cd(a){var b=[];for(a=a.oa;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].P(b,a&16383,a)};
|
||||
l.Ja=function(a){this.j.complete=!0;var b=this.A?Ed(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Fd(this.A,this.u,c)){this.W();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Fd(this.A,this.u,c)){this.W();break}if(0>c)break}}this.v&=15;this.O=this.O&4194304?this.H(this.i)&8388607:(this.za=this.H(this.qa=this.u))&8388607;this.i=this.O&262143;
|
||||
if(a=this.O>>18&15)this.i=this.i+this.H(a)&Lb;this.O&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Xb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Bb(function(){for(var a=B(document,A,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ad(d);Aa(d,c)}});function Bd(a){Gd[a>>4].call(this,a)}function N(a){this.b(a)}function Hd(a){this.b(a)}function Id(a){this.b(a)}
|
||||
function Jd(a){var b=a&15,c=this.H(this.i),d=this.H(b),d=Kd(a,d,c)+(c-(c&262143));this.P(b,d)}function Ld(a){var b=a&15,c=this.H(b),c=Kd(a,c,0);this.P(b,c)}function Md(a){var b=this.H(a&15),c=this.H(this.i),c=Kd(a,c,b)+(b-(b&262143));this.P(this.i,c)}function Nd(a){var b=this.H(this.i);this.P(this.i,Kd(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,Kd(a,b,b)))}function Od(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function O(a){this.b(a)}
|
||||
function L(a){this.f("undefined opcode: "+Wa(a));Dd(this,-1);this.W()}function Kd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Nb?262143:0}return b}
|
||||
if(a=this.O>>18&15)this.i=this.i+this.H(a)&Lb;this.O&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Qb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Bb(function(){for(var a=B(document,A,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ad(d);Aa(d,c)}});function Bd(a){Gd[a>>4].call(this,a)}function N(a){this.b(a)}function Hd(a){this.b(a)}function Id(a){this.b(a)}
|
||||
function Jd(a){var b=a&15,c=this.H(this.i),d=this.H(b);this.P(b,Kd(a,d,c)+(c-(c&262143)))}function Ld(a){var b=a&15,c=this.H(b);this.P(b,Kd(a,c,0))}function Md(a){var b=this.H(a&15),c=this.H(this.i);this.P(this.i,Kd(a,c,b)+(b-(b&262143)))}function Nd(a){var b=this.H(this.i);this.P(this.i,Od(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,Od(a,b,b)))}function Pd(a){var b=a&15,c=(this.H(this.i)&262143)*F,d=this.H(b);this.P(b,Kd(a,d,c)+c)}
|
||||
function Qd(a){var b=a&15,c=this.i*F,d=this.H(b);this.P(b,Kd(a,d,c)+c)}function Rd(a){var b=(this.H(a&15)&262143)*F,c=this.H(this.i);this.P(this.i,Kd(a,c,b)+b)}function Sd(a){var b=this.H(this.i),c=(b&262143)*F;this.P(this.i,Kd(a,b,c)+c);var d=a&15;d&&(b=this.H(d),c=(b&262143)*F,this.P(d,Kd(a,b,c)+c))}function Td(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function O(a){this.b(a)}function L(a){this.f("undefined opcode: "+Wa(a));Dd(this,-1);this.W()}
|
||||
function Kd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Nb?262143:0}return b}function Od(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Nb?262143:0}return b}
|
||||
var Gd=[N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,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.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Hd,Id,Id,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Hd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
|
|
@ -110,117 +111,116 @@ function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a)
|
|||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Jd,Ld,Md,Nd,function(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a),c=(c&262143)+b*F;this.P(a,c)},function(a){a&=15;var b=this.H(a),b=(b&262143)+this.i*F;this.P(a,b)},function(a){a=
|
||||
this.H(a&15)&262143;var b=this.H(this.i),b=(b&262143)+a*F;this.P(this.i,b)},function(a){var b=this.H(this.i)&262143;this.P(this.i,b+b*F);if(a&=15)b=this.H(a)&262143,this.P(a,b+b*F)},Jd,Ld,Md,Nd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Jd,Ld,Md,Nd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Jd,Ld,Md,Nd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Od,function(a){a&=
|
||||
15;var b=this.H(a),b=b-(b&262143)+this.i;this.P(a,b)},function(a){a=this.H(a&15)&262143;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){a&15&&Od.call(this,a)},function(a){a&=15;var b=this.H(this.i)/F|0,c=this.H(a);this.P(a,c-(c&262143)+b)},function(a){a&=15;var b=this.H(a);this.P(a,b-(b&262143))},function(a){a=this.H(a&15)/F|0;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){var b=this.H(this.i);this.P(this.i,(b&262143)+(b/F|0));if(a&=15)b=this.H(a),this.P(a,(b&262143)+
|
||||
(b/F|0))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Td,function(a){a&=15;var b=this.H(a),b=b-(b&262143)+this.i;this.P(a,b)},function(a){a=
|
||||
this.H(a&15)&262143;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){a&15&&Td.call(this,a)},function(a){a&=15;var b=this.H(this.i)/F|0,c=this.H(a);this.P(a,c-(c&262143)+b)},function(a){a&=15;var b=this.H(a);this.P(a,b-(b&262143))},function(a){a=this.H(a&15)/F|0;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){var b=this.H(this.i);this.P(this.i,(b&262143)+(b/F|0));if(a&=15)b=this.H(a),this.P(a,(b&262143)+(b/F|0))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,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 Pd(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Xa(this.v);if(this.v){a=this.v;var b=Ya(this.F);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(na(c.La,a,b),(a=qb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Qd(c)})}}p(Pd,t);
|
||||
Pd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Qd(this)};Pd.prototype.na=function(){this.U&&(this.A&&Rd(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};Pd.prototype.fa=function(){return!0};
|
||||
function Qd(a){if(!Pa(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ga(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(zc(a.D,b,a.u,Hc)){var c;for(c=0;c<a.b.length;c++)tc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
||||
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}C(a)}}Bb(function(){for(var a=B(document,A,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Pd(d);Aa(d,c)}});
|
||||
function Sd(a){t.call(this,"RAM",a);this.U=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Xa(this.b);if(this.b){a=this.b;var b=Ya(this.B);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(na(c.La,a,b),(a=qb(a,b))?(c.Aa=a.Aa,
|
||||
c.U=a.U,null==c.la&&(c.la=a.la),null==c.ka&&(c.ka=a.ka)):c.b=null);Td(c)})}}p(Sd,t);Sd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Td(this)};Sd.prototype.na=function(a,b){this.U&&(this.A&&Rd(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Sd.prototype.fa=function(){return!0};
|
||||
function Td(a){if(a.D&&(!a.v&&a.u&&(zc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Pa(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;Ud(a,a.Aa,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;C(a)}}
|
||||
Sd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&Ud(this,this.Aa,this.la,this.ka,this.i,!this.A)}this.F=!1};
|
||||
function Ud(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)tc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.V?a.j.K||nc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(od(a.A),J(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.xa&&a.xa.stop()));return f}Bb(function(){for(var a=B(document,A,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Sd(d);Aa(d,c)}});
|
||||
function Vd(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Wd;b&&(void 0===c&&(c="Panel"),(c=za(c,this.id))&&(b=c.G[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p(Vd,t);l=Vd.prototype;
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case Wd:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,
|
||||
O,O,O,O,O,O,O,O,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 Ud(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Xa(this.v);if(this.v){a=this.v;var b=Ya(this.F);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(na(c.La,a,b),(a=qb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Vd(c)})}}p(Ud,t);
|
||||
Ud.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Vd(this)};Ud.prototype.na=function(){this.U&&(this.A&&Wd(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};Ud.prototype.fa=function(){return!0};
|
||||
function Vd(a){if(!Pa(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ga(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(zc(a.D,b,a.u,Hc)){var c;for(c=0;c<a.b.length;c++)tc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
||||
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}C(a)}}Bb(function(){for(var a=B(document,A,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ud(d);Aa(d,c)}});
|
||||
function Xd(a){t.call(this,"RAM",a);this.U=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Xa(this.b);if(this.b){a=this.b;var b=Ya(this.B);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(na(c.La,a,b),(a=qb(a,b))?(c.Aa=a.Aa,
|
||||
c.U=a.U,null==c.la&&(c.la=a.la),null==c.ka&&(c.ka=a.ka)):c.b=null);Yd(c)})}}p(Xd,t);Xd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Yd(this)};Xd.prototype.na=function(a,b){this.U&&(this.A&&Wd(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Xd.prototype.fa=function(){return!0};
|
||||
function Yd(a){if(a.D&&(!a.v&&a.u&&(zc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Pa(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;Zd(a,a.Aa,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;C(a)}}
|
||||
Xd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&Zd(this,this.Aa,this.la,this.ka,this.i,!this.A)}this.F=!1};
|
||||
function Zd(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)tc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.V?a.j.K||nc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(od(a.A),J(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.xa&&a.xa.stop()));return f}Bb(function(){for(var a=B(document,A,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Xd(d);Aa(d,c)}});
|
||||
function $d(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=ae;b&&(void 0===c&&(c="Panel"),(c=za(c,this.id))&&(b=c.G[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p($d,t);l=$d.prototype;
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case ae:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;C(this)};
|
||||
l.nb=function(a){if(!this.b){var b=ld(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=db(c[0]);if(d!=this.Ka)return;c=db(c[1]);if(this.b=ya(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=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};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Wd="buffer";
|
||||
Bb(function(){for(var a=B(document,A,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Vd(d);Aa(d,c)}});function Xd(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(Xd,t);Xd.prototype.mb=function(){return-1};Xd.prototype.Wa=function(){};
|
||||
function Yd(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(db(b.substring(c,g))),c=g+1}}return a}
|
||||
function Zd(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
||||
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=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};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var ae="buffer";
|
||||
Bb(function(){for(var a=B(document,A,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new $d(d);Aa(d,c)}});function be(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(be,t);be.prototype.mb=function(){return-1};be.prototype.Wa=function(){};
|
||||
function ce(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(db(b.substring(c,g))),c=g+1}}return a}
|
||||
function de(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
||||
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function P(a,b,c){var d;if(b){b=$d(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=db(n);if(!n){g=!0;break}n=ae(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&be[n]<be[k[k.length-1]]&&Zd(h,k,1);k.push(n);b=b.substr(r+y)}Zd(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&ce(a,null,
|
||||
d))}return d}function $d(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function ae(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Ua(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function ce(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function de(a,b){if(b)return ce(a,b,a.aa[b]);var c=0;for(b in a.aa)ce(a,b,a.aa[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=Wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=Va(b,10,a);break;default:b=E(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var be={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function ee(a){Xd.call(this,a);this.ya=!1;this.oa=!0;this.ua=R();this.J=R();this.xa=R();this.O=R();this.F=[];this.b=this.L=this.I=[];fe(this);this.S=this.ja=0;this.i=[];this.ra=void 0;ge(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];he(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.Ca=this.za=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[A]&&(window[A]=function(a){return qd(b,a)}):void 0===global[A]&&(global[A]=function(a){return qd(b,
|
||||
a)})}p(ee,Xd);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function R(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function ie(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function je(a,b){a.w=b;a.ea=!1;a.ba=void 0}function ke(a){return[a.w,a.wb,a.ba,a.ea,a.Oa]}function le(a,b){var c=R(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=Yd(a,c.Oa=b[4]));return c}l=ee.prototype;
|
||||
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=ld(a,"messages"))&&he(this,a);me(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Cc[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ha,4,!0)+
|
||||
function P(a,b,c){var d;if(b){b=ee(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=db(n);if(!n){g=!0;break}n=fe(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&ge[n]<ge[k[k.length-1]]&&de(h,k,1);k.push(n);b=b.substr(r+y)}de(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&he(a,null,
|
||||
d))}return d}function ee(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function fe(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Ua(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function he(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function ie(a,b){if(b)return he(a,b,a.aa[b]);var c=0;for(b in a.aa)he(a,b,a.aa[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=Wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=Va(b,10,a);break;default:b=E(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ge={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function je(a){be.call(this,a);this.ya=!1;this.oa=!0;this.ua=R();this.J=R();this.xa=R();this.O=R();this.F=[];this.b=this.L=this.I=[];ke(this);this.S=this.ja=0;this.i=[];this.ra=void 0;le(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];me(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.Ca=this.za=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[A]&&(window[A]=function(a){return qd(b,a)}):void 0===global[A]&&(global[A]=function(a){return qd(b,
|
||||
a)})}p(je,be);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function R(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function ne(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function oe(a,b){a.w=b;a.ea=!1;a.ba=void 0}function pe(a){return[a.w,a.wb,a.ba,a.ea,a.Oa]}function qe(a,b){var c=R(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=ce(a,c.Oa=b[4]));return c}l=je.prototype;
|
||||
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=ld(a,"messages"))&&me(this,a);re(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Cc[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ha,4,!0)+
|
||||
" "+E(n.size,4,!0)+" "+m),c!=Gc&&(c=-1),m=0);a+=16384;e++}}});C(this)};
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.da=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-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.G[b]=c,zb(c,function(){if(d.da){var a=d.da.value;
|
||||
d.da.value="";qd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,zb(c,function(a){var b=!1;Qa(d,!0)||(Ra(d,!0),b=oc(d,a?1:0,null),Ra(d,!1));return b}),!0}return!1};function pd(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=S(a);-1!==d&&(c=uc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=S(a);-1!==d&&(tc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),J(this.C,-1))};
|
||||
function T(a,b,c){var d;c=(c?a.J:a.xa).w;var e,g;if(void 0!==b){b=$d(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=R(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=P(a,b,void 0)}null!=c&&(d=R(c,e,g));return d}function ne(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=Yd(a,b.Oa=c[2]))}
|
||||
function oe(a){return Wa(a/Kb,6)+" "+Wa(a%Kb,6)}function he(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.N=[];b=Yd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){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.X|=G[c],a.f(c+" messages enabled"))}}function me(a,b){for(var c in G)if(16==G[c]){a.pa[c]=b;break}}l.mb=function(a){return pe.indexOf(a.toUpperCase())};
|
||||
l.Wa=function(a){var b;switch(a){case qe:b=this.g.u;break;case re:b=this.g.O;break;case se:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,R(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,yd(a),a.aa=0,a.C&&J(a.C,void 0))}};
|
||||
function ge(a){var b;if(!Ed(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(te);for(b=0;b<a.i.length;b++)a.i[b]=R();a.S=0;a.f("instruction history buffer allocated")}}function ue(a,b,c){if(!ve(a,c))return!1;nc(a.g,b);return!0}
|
||||
function oc(a,b,c,d){if(!ve(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Ed(a)&&Fd(a,a.g.u,0);try{b=wd(a.g,b);var g=a.g.Ja(b);0<g&&(pc(a.g,g),a.B+=g,qc(a.g,g,!0),rc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Ga(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),J(a.C,-1));od(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function od(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(we+c),je(a.J,a.g.u),b&&1!=a.M?xe(a):ye(a))}
|
||||
function ve(a,b){var c;(c=!a.g||!Pa(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Oa(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ge(this);this.ia=0;this.T=null;this.B=0;je(this.J,this.g.u);this.j.K=!1;ze(this);a||od(this)};
|
||||
l.save=function(){var a=new H(this);a.set(0,ke(this.J));a.set(1,ke(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=le(this,a[b++]),this.O=le(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.M){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Ed(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Sa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}od(this,!0);pd(this);ze(this,this.g.u);this.T=null}};function Ed(a){return 1<a.b.length||!!a.ja}
|
||||
function Fd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=Dd(a.g,1)));if(0<c&&(a.ja&&!--a.ja||id(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.H(b)),0<=d&&(je(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function Ae(a,b,c,d){var e=R(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Ob|0,r;for(r in ff)if(f=ff[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=hf;m=n&3;break;case 32256:k=jf;m=n&7;break;case 29248:k=kf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>lf&&(k="B");k=mf[f||0]+k;k=cb(k,8);f?(k=28700==h?k+K(a,g/Pb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=oe(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+oe(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=cb(f,16)+g;c&&(h=cb(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+rd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function fe(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=S(c);var d=a.D;hd(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=S(c),d=a.D,hd(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
|
||||
l.Ba=function(a,b,c){var d=!0;c||nf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(of(this,a,a.length-1,"set"),ge(this)));return d};function nf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||of(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,hd(d.b[c>>>d.i],b==a.I));h.ea||ge(a);break}}return g}
|
||||
function pf(a,b){for(var c=1;c<b.length;c++)of(a,b,c);return b.length-1}function of(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function ze(a,b){if(void 0!==b)id(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!nf(a,a.b,c,!0))break;b=0}}}
|
||||
function id(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(nf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!qf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||of(a,d,f,"hit");break}}}a.qa--;return g}
|
||||
function rf(a,b){var c=pe[b]||"";c&&(c+="="+K(a,a.Wa(b),b==re?23:18)+" ");return c}function sf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=Wa(d,2);je(e.ua,d);g+="="+K(e,e.wa(e.ua),36)+" ";c+=g}b&&(c+="\n"+(rf(a,qe)+rf(a,re)+rf(a,se)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Rd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=fb(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}function tf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=fb(g.hb,[e-f],a.jb);0<=e?uf(a,b,e,d):c&&(e=~e,uf(a,b,e-1,d),uf(a,b,e,d));break}}return d}
|
||||
function uf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function vf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return de(a)||a.f("no variables"),!0;if(!c[2])return de(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function wf(a,b,c){var d=null;if(b=T(a,b,!0)){var e=tf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function xe(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;je(a.J,e.u);break;default:a.f("unknown register: "+
|
||||
g);return}J(a.C);a.f("updated registers:")}}a.f(sf(a,d));c&&(je(a.J,e.u),ye(a,K(a,a.J.w)))}}function xf(a,b){b=db(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):ce(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
|
||||
function yf(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=ae(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;yb(c,function(){return Ra(a,!0)&&oc(a,e,d,!1)},function(){a.ha&&a.ha.stop();J(a.C,-1);Ra(a,!1)})}}
|
||||
function ye(a,b,c,d){if(b=T(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=ae(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=tf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Ae(a,b,f,g);a.f(g);ie(a.J,b);e-=b.w-k;c++}}}
|
||||
function qf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(we+b):(a.R&&(a.f("ended assemble at "+K(a,a.O.w)),ie(a.J,a.O),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Pa(a)&&0<b.length){a.R&&(b="a "+K(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
||||
T(a,f[1],!0);if(r){var y=f[2];a.O=r;if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.R=!0,J(a.C);else{f.shift();f.shift();f.shift();var U,Be=f.join(""),x=-1,Qb,$f=y.toUpperCase(),Lc;for(Lc in ff){var Ha;Qb=+Lc;var Ce=ff[Lc];switch(Qb){case 32512:Ha=hf;break;case 32256:Ha=jf;break;case 29248:Ha=kf;break;default:Ha=[""]}var De,Mc;for(Mc in Ce){for(var Ee=Ce[Mc],Ia=0;Ia<Ha.length;Ia++){var Nc=Ha[Ia];"S"==Nc&&Ee>lf&&(Nc="B");if($f==mf[Ee]+Nc){De=29248!=Qb?Ia:(Ia&3)<<1|(Ia&12)<<2;x=(Mc|De<<6)*Ob;break}}if(0<=
|
||||
x)break}if(0<=x)break}if(0<=x)if(Be)for(var Oc=Be.split(","),eb=0;eb<Oc.length;eb++){var Rb=Oc[eb].trim();if(Rb){if(1<eb){a.f("too many operands: "+Rb);x=-1;break}var V=Rb.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+Rb);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!eb&&1<Oc.length)if(28700==Qb){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Pb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
|
||||
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Ae(a,a.O)))}}break;case "b":a:{var ag=f[0],Ja=f[1],bg=b;if("?"==Ja)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
|
||||
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var pa=ag.charAt(1);if("l"==pa){var Pc;Pc=0+pf(a,a.b);Pc+=pf(a,a.L);(Pc+=pf(a,a.I))||a.f("no breakpoints")}else if("n"==pa){var Fe=+Ja||0;Ja&&(a.ja=Fe);a.f("break after "+Fe+" instruction(s)")}else if(void 0===Ja)a.f("missing breakpoint address");else{var I=R();if("*"!=Ja&&(I=T(a,Ja,!0),!I))break a;"c"==pa?null==I.w?(fe(a),a.f("all breakpoints cleared")):nf(a,a.b,I)||nf(a,a.L,I)||nf(a,a.I,I)||a.f("breakpoint missing: "+
|
||||
K(a,I.w)):null!=I.w&&(ne(a,I,bg),"p"==pa?a.Ba(a.b,I):"r"==pa?a.Ba(a.L,I):"w"==pa?a.Ba(a.I,I):a.f("unknown breakpoint command: "+pa))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var Ka,La=f[0],W=f[1],ia=f[2],cg=f[3];if("?"==W){var Ma="";for(Ka in G)a.pa[Ka]&&(Ma&&(Ma+=","),Ma+=Ka);Ma+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
|
||||
Ma.length&&a.f("dump extension commands:\n\t"+Ma)}else if("state"==W){var Qc=zf(a.C,!0);"console"==ia?console.log(Qc):(a.ma&&(a.ma.value=""),Qc&&a.f(Qc))}else if("symbols"==W)for(var Rc=0;Rc<a.F.length;Rc++){var Sc=a.F[Rc],Na;for(Na in Sc.U)if("."!=Na.charAt(0)){var Ge=Sc.U[Na].o;if(void 0!==Ge){var He=Sc.U[Na].l;He&&(Na=He);a.f(K(a,Ge)+" "+Na)}}}else{if("d"==La){for(Ka in G)if(f[1]==Ka){var Ie=a.pa[Ka];Ie?(f.shift(),f.shift(),Ie(f)):a.f("no dump registered for "+W);break a}W||(La=a.Da||"dw")}else a.Da=
|
||||
La;if("dh"==La){var Je=W,Ke=ia,Le="",Me=0,Q=a.S,X=a.i;if(X.length){var M=+Je||a.ra,gb=+Ke||10;isNaN(M)?M=gb:Le="more ";M>X.length&&(a.f("note: only "+X.length+" available"),M=X.length);Q-=M;0>Q&&(null==X[X.length-1].w?(M=Q+M,Q=0):Q+=X.length);var Tc=[];"call"==Ke&&(gb=1E5,Tc=["CALL"]);for(void 0!==Je&&a.f(M+" instructions earlier:");0<gb&&Q!=a.S;){var Ne=X[Q++];if(null==Ne.w)break;var hb=R(Ne.w),dg=M--,Oe=Ae(a,hb,"history",dg);(!Tc.length||0<=Oe.indexOf(Tc[0]))&&a.f(Oe);hb.Ua&&(Q+=hb.Ua,gb-=hb.Ua,
|
||||
M-=hb.Ua);Q>=X.length&&(Q=0);a.ra=M;Me++;gb--}}Me||(a.f("no "+Le+"history available"),a.ra=void 0)}else{var qa=T(a,W);if(qa){var ra=0,Pe="ds"==La;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||cg,ra=ae(a,ia);else{var Qe=T(a,ia);Qe&&(ra=Qe.w-qa.w)}0>ra&&(ra=0);65536<ra&&(ra=65536)}var eg=a.ba;qa.ba&&(a.ba=qa.ba);for(var Re="db"==La?1:2,Uc=ra||32,Vc=1==Re?2:4,fg=(Uc+Vc-1)/Vc|0||1,sa="";fg--&&0<Uc;){for(var ta="",Se="",W=K(a,qa.w),Te=Vc;0<Te--&&0<Uc--;){var Sb=a.wa(qa,1);Pe?(ta&&(ta+=","),ta+=Sb):(ta+=
|
||||
oe(Sb),ta+=" ");for(var Ue=0;1==Re&&6>Ue;Ue++)Se+=String.fromCharCode((Sb%64|0)+32),Sb/=64}sa&&(sa+="\n");sa=Pe?sa+(ta+","):sa+(W+": "+ta+(0>Te?" "+Se:""))}sa&&a.f(sa);ie(a.xa,qa);a.ba=eg}}}}break;case "e":if("else"==f[0])break;var Ve,We,Xe=f[0],Wc=f[1];"e"==Xe||"ew"==Xe?(Ve=a.wa,We=a.$a):Wc=null;if(null==Wc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Tb=T(a,Wc);if(Tb)for(var Ub=2;Ub<f.length;Ub++){var Xc=P(a,f[Ub]);if(void 0===Xc){a.f("unknown value: "+f[Ub]);
|
||||
break}a.f("changing "+K(a,Tb.w)+" from "+oe(Ve.call(a,Tb))+" to "+oe(Xc));We.call(a,Tb,Xc,1)}}break;case "g":a:{var Ye=f[1],gg=b;if(void 0!==Ye){var Yc=T(a,Ye,!0);if(!Yc)break a;ne(a,Yc,gg);a.Ba(a.b,Yc,!0)}ue(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var Zc;var ib=b.substr(2),ib=db(ib);P(a,ib)?(c||a.f("true: "+ib),Zc=!0):(c||a.f("false: "+ib),Zc=!1);Zc||(d=!1);break}g=!0;break;case "k":var hg=f[0];if("?"==f[1])a.f("stack trace commands:"),
|
||||
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var $c=0,ad=R(),jb=R();for(a.f("stack trace for "+K(a,jb.w));10>$c;){for(var ua=null,ig=256;65536>jb.w>>>0;){ad.w=a.wa(jb,2);if(null==jb.w||!ig--)break;if(!(ad.w&1)){for(var jg=a,Vb=ad,Ze=null,kb=Vb.w,$e=kb,bd=1;6>=bd&&kb;bd++){if(2<bd){Vb.w=kb;var Wb=Ae(jg,Vb);if(0<=Wb.indexOf("JSR")){var af=Wb.indexOf(" ");if(kb+(Wb.indexOf(" ",af+1)-af-1)/2==$e){Ze=Wb;break}}}kb-=2}Vb.w=$e;if(ua=Ze)break}}if(!ua||null==ua)break;var bf=null;
|
||||
if("ks"==hg){var cf=ua.match(/[0-9A-F]+$/);cf&&(bf=wf(a,cf[0]))}ua=cb(ua,50)+" ;"+(bf||"stack="+K(a,jb.w));a.f(ua);$c++}$c||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){wf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var ja=0;if("all"==z)ja=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){ja=G[Y];Z=!!(a.X&ja);break}if(!ja){a.f("unknown message category: "+
|
||||
z);break a}}if(ja)if("on"==f[2])a.X|=ja,Z=!0;else if("off"==f[2]&&(a.X&=~ja,Z=!1,1073741824==ja)){for(var df=1E3<=a.N.length?a.N.length-1E3:0;df<a.N.length;)a.f(a.N[df++]);a.N=[]}}var kg=0,lb="";for(Y in G)if(!z||z==Y){var lg=!!(a.X&G[Y]);if(null===Z||Z==lg)lb&&(lb+=","),++kg%10||(lb+="\n\t"),"key"==Y&&(Y="keys"),lb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(lb||"none"));ge(a)}break;
|
||||
case "p":if("print"==f[0]){xf(a,b.substr(5));break}var mg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var ng="pr"==mg?1:0;if(a.M)a.f("step in progress");else{var ef=R(a.g.u);a.wa(ef);a.M?(a.Ba(a.b,ef,!0),ue(a)||(a.C&&vd(a.C),a.M=0)):yf(a,ng?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}xe(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var mb=+f[2];if(8==mb||10==mb||16==mb)a.ba=mb;
|
||||
function T(a,b,c){var d;c=(c?a.J:a.xa).w;var e,g;if(void 0!==b){b=ee(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=R(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=P(a,b,void 0)}null!=c&&(d=R(c,e,g));return d}function se(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=ce(a,b.Oa=c[2]))}
|
||||
function te(a){return Wa(a/Kb,6)+" "+Wa(a%Kb,6)}function me(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.N=[];b=ce(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){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.X|=G[c],a.f(c+" messages enabled"))}}function re(a,b){for(var c in G)if(16==G[c]){a.pa[c]=b;break}}l.mb=function(a){return ue.indexOf(a.toUpperCase())};
|
||||
l.Wa=function(a){var b;switch(a){case ve:b=this.g.u;break;case we:b=this.g.O;break;case xe:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,R(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,yd(a),a.aa=0,a.C&&J(a.C,void 0))}};
|
||||
function le(a){var b;if(!Ed(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(ye);for(b=0;b<a.i.length;b++)a.i[b]=R();a.S=0;a.f("instruction history buffer allocated")}}function ze(a,b,c){if(!Ae(a,c))return!1;nc(a.g,b);return!0}
|
||||
function oc(a,b,c,d){if(!Ae(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Ed(a)&&Fd(a,a.g.u,0);try{b=wd(a.g,b);var g=a.g.Ja(b);0<g&&(pc(a.g,g),a.B+=g,qc(a.g,g,!0),rc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Ga(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),J(a.C,-1));od(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function od(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(Be+c),oe(a.J,a.g.u),b&&1!=a.M?Ce(a):De(a))}
|
||||
function Ae(a,b){var c;(c=!a.g||!Pa(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ha(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){le(this);this.ia=0;this.T=null;this.B=0;oe(this.J,this.g.u);this.j.K=!1;Ee(this);a||od(this)};
|
||||
l.save=function(){var a=new H(this);a.set(0,pe(this.J));a.set(1,pe(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=qe(this,a[b++]),this.O=qe(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.M){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Ed(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Sa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}od(this,!0);pd(this);Ee(this,this.g.u);this.T=null}};function Ed(a){return 1<a.b.length||!!a.ja}
|
||||
function Fd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=Dd(a.g,1)));if(0<c&&(a.ja&&!--a.ja||id(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.H(b)),0<=d&&(oe(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function Fe(a,b,c,d){var e=R(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Ob|0,r;for(r in Ge)if(f=Ge[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=mf;m=n&3;break;case 32256:k=of;m=n&7;break;case 29248:k=pf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>qf&&(k="B");k=rf[f||0]+k;k=cb(k,8);f?(k=28700==h?k+K(a,g/Pb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=te(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+te(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=cb(f,16)+g;c&&(h=cb(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+rd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function ke(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=S(c);var d=a.D;Oc(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=S(c),d=a.D,Oc(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
|
||||
l.Ba=function(a,b,c){var d=!0;c||sf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(tf(this,a,a.length-1,"set"),le(this)));return d};function sf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||tf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Oc(d.b[c>>>d.i],b==a.I));h.ea||le(a);break}}return g}
|
||||
function uf(a,b){for(var c=1;c<b.length;c++)tf(a,b,c);return b.length-1}function tf(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Ee(a,b){if(void 0!==b)id(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!sf(a,a.b,c,!0))break;b=0}}}
|
||||
function id(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(sf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!vf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||tf(a,d,f,"hit");break}}}a.qa--;return g}
|
||||
function wf(a,b){var c=ue[b]||"";c&&(c+="="+K(a,a.Wa(b),b==we?23:18)+" ");return c}function xf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=Wa(d,2);oe(e.ua,d);g+="="+K(e,e.wa(e.ua),36)+" ";c+=g}b&&(c+="\n"+(wf(a,ve)+wf(a,we)+wf(a,xe)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Wd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=fb(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}function yf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=fb(g.hb,[e-f],a.jb);0<=e?zf(a,b,e,d):c&&(e=~e,zf(a,b,e-1,d),zf(a,b,e,d));break}}return d}
|
||||
function zf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Af(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ie(a)||a.f("no variables"),!0;if(!c[2])return ie(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function Bf(a,b,c){var d=null;if(b=T(a,b,!0)){var e=yf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function Ce(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;oe(a.J,e.u);break;default:a.f("unknown register: "+
|
||||
g);return}J(a.C);a.f("updated registers:")}}a.f(xf(a,d));c&&(oe(a.J,e.u),De(a,K(a,a.J.w)))}}function Cf(a,b){b=db(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):he(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
|
||||
function Df(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=fe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;yb(c,function(){return Ra(a,!0)&&oc(a,e,d,!1)},function(){a.ha&&a.ha.stop();J(a.C,-1);Ra(a,!1)})}}
|
||||
function De(a,b,c,d){if(b=T(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=fe(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=yf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Fe(a,b,f,g);a.f(g);ne(a.J,b);e-=b.w-k;c++}}}
|
||||
function vf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Be+b):(a.R&&(a.f("ended assemble at "+K(a,a.O.w)),ne(a.J,a.O),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Pa(a)&&0<b.length){a.R&&(b="a "+K(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
||||
T(a,f[1],!0);if(r){var y=f[2];a.O=r;if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.R=!0,J(a.C);else{f.shift();f.shift();f.shift();var U,He=f.join(""),x=-1,Ub,eg=y.toUpperCase(),Pc;for(Pc in Ge){var Ia;Ub=+Pc;var Ie=Ge[Pc];switch(Ub){case 32512:Ia=mf;break;case 32256:Ia=of;break;case 29248:Ia=pf;break;default:Ia=[""]}var Je,Qc;for(Qc in Ie){for(var Ke=Ie[Qc],Ja=0;Ja<Ia.length;Ja++){var Rc=Ia[Ja];"S"==Rc&&Ke>qf&&(Rc="B");if(eg==rf[Ke]+Rc){Je=29248!=Ub?Ja:(Ja&3)<<1|(Ja&12)<<2;x=(Qc|Je<<6)*Ob;break}}if(0<=
|
||||
x)break}if(0<=x)break}if(0<=x)if(He)for(var Sc=He.split(","),eb=0;eb<Sc.length;eb++){var Vb=Sc[eb].trim();if(Vb){if(1<eb){a.f("too many operands: "+Vb);x=-1;break}var V=Vb.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+Vb);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!eb&&1<Sc.length)if(28700==Ub){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Pb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
|
||||
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Fe(a,a.O)))}}break;case "b":a:{var fg=f[0],Ka=f[1],gg=b;if("?"==Ka)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
|
||||
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var qa=fg.charAt(1);if("l"==qa){var Tc;Tc=0+uf(a,a.b);Tc+=uf(a,a.L);(Tc+=uf(a,a.I))||a.f("no breakpoints")}else if("n"==qa){var Le=+Ka||0;Ka&&(a.ja=Le);a.f("break after "+Le+" instruction(s)")}else if(void 0===Ka)a.f("missing breakpoint address");else{var I=R();if("*"!=Ka&&(I=T(a,Ka,!0),!I))break a;"c"==qa?null==I.w?(ke(a),a.f("all breakpoints cleared")):sf(a,a.b,I)||sf(a,a.L,I)||sf(a,a.I,I)||a.f("breakpoint missing: "+
|
||||
K(a,I.w)):null!=I.w&&(se(a,I,gg),"p"==qa?a.Ba(a.b,I):"r"==qa?a.Ba(a.L,I):"w"==qa?a.Ba(a.I,I):a.f("unknown breakpoint command: "+qa))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var La,Ma=f[0],W=f[1],ja=f[2],hg=f[3];if("?"==W){var Na="";for(La in G)a.pa[La]&&(Na&&(Na+=","),Na+=La);Na+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
|
||||
Na.length&&a.f("dump extension commands:\n\t"+Na)}else if("state"==W){var Uc=Ef(a.C,!0);"console"==ja?console.log(Uc):(a.ma&&(a.ma.value=""),Uc&&a.f(Uc))}else if("symbols"==W)for(var Vc=0;Vc<a.F.length;Vc++){var Wc=a.F[Vc],Oa;for(Oa in Wc.U)if("."!=Oa.charAt(0)){var Me=Wc.U[Oa].o;if(void 0!==Me){var Ne=Wc.U[Oa].l;Ne&&(Oa=Ne);a.f(K(a,Me)+" "+Oa)}}}else{if("d"==Ma){for(La in G)if(f[1]==La){var Oe=a.pa[La];Oe?(f.shift(),f.shift(),Oe(f)):a.f("no dump registered for "+W);break a}W||(Ma=a.Da||"dw")}else a.Da=
|
||||
Ma;if("dh"==Ma){var Pe=W,Qe=ja,Re="",Se=0,Q=a.S,X=a.i;if(X.length){var M=+Pe||a.ra,gb=+Qe||10;isNaN(M)?M=gb:Re="more ";M>X.length&&(a.f("note: only "+X.length+" available"),M=X.length);Q-=M;0>Q&&(null==X[X.length-1].w?(M=Q+M,Q=0):Q+=X.length);var Xc=[];"call"==Qe&&(gb=1E5,Xc=["CALL"]);for(void 0!==Pe&&a.f(M+" instructions earlier:");0<gb&&Q!=a.S;){var Te=X[Q++];if(null==Te.w)break;var hb=R(Te.w),ig=M--,Ue=Fe(a,hb,"history",ig);(!Xc.length||0<=Ue.indexOf(Xc[0]))&&a.f(Ue);hb.Ua&&(Q+=hb.Ua,gb-=hb.Ua,
|
||||
M-=hb.Ua);Q>=X.length&&(Q=0);a.ra=M;Se++;gb--}}Se||(a.f("no "+Re+"history available"),a.ra=void 0)}else{var ra=T(a,W);if(ra){var sa=0,Ve="ds"==Ma;if(ja){if("l"==ja.charAt(0))ja=ja.substr(1)||hg,sa=fe(a,ja);else{var We=T(a,ja);We&&(sa=We.w-ra.w)}0>sa&&(sa=0);65536<sa&&(sa=65536)}var jg=a.ba;ra.ba&&(a.ba=ra.ba);for(var Xe="db"==Ma?1:2,Yc=sa||32,Zc=1==Xe?2:4,kg=(Yc+Zc-1)/Zc|0||1,ta="";kg--&&0<Yc;){for(var ua="",Ye="",W=K(a,ra.w),Ze=Zc;0<Ze--&&0<Yc--;){var Wb=a.wa(ra,1);Ve?(ua&&(ua+=","),ua+=Wb):(ua+=
|
||||
te(Wb),ua+=" ");for(var $e=0;1==Xe&&6>$e;$e++)Ye+=String.fromCharCode((Wb%64|0)+32),Wb/=64}ta&&(ta+="\n");ta=Ve?ta+(ua+","):ta+(W+": "+ua+(0>Ze?" "+Ye:""))}ta&&a.f(ta);ne(a.xa,ra);a.ba=jg}}}}break;case "e":if("else"==f[0])break;var af,bf,cf=f[0],$c=f[1];"e"==cf||"ew"==cf?(af=a.wa,bf=a.$a):$c=null;if(null==$c)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Xb=T(a,$c);if(Xb)for(var Yb=2;Yb<f.length;Yb++){var ad=P(a,f[Yb]);if(void 0===ad){a.f("unknown value: "+f[Yb]);
|
||||
break}a.f("changing "+K(a,Xb.w)+" from "+te(af.call(a,Xb))+" to "+te(ad));bf.call(a,Xb,ad,1)}}break;case "g":a:{var df=f[1],lg=b;if(void 0!==df){var bd=T(a,df,!0);if(!bd)break a;se(a,bd,lg);a.Ba(a.b,bd,!0)}ze(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var cd;var ib=b.substr(2),ib=db(ib);P(a,ib)?(c||a.f("true: "+ib),cd=!0):(c||a.f("false: "+ib),cd=!1);cd||(d=!1);break}g=!0;break;case "k":var mg=f[0];if("?"==f[1])a.f("stack trace commands:"),
|
||||
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var dd=0,ed=R(),jb=R();for(a.f("stack trace for "+K(a,jb.w));10>dd;){for(var va=null,ng=256;65536>jb.w>>>0;){ed.w=a.wa(jb,2);if(null==jb.w||!ng--)break;if(!(ed.w&1)){for(var og=a,Zb=ed,ef=null,kb=Zb.w,ff=kb,fd=1;6>=fd&&kb;fd++){if(2<fd){Zb.w=kb;var $b=Fe(og,Zb);if(0<=$b.indexOf("JSR")){var gf=$b.indexOf(" ");if(kb+($b.indexOf(" ",gf+1)-gf-1)/2==ff){ef=$b;break}}}kb-=2}Zb.w=ff;if(va=ef)break}}if(!va||null==va)break;var hf=null;
|
||||
if("ks"==mg){var jf=va.match(/[0-9A-F]+$/);jf&&(hf=Bf(a,jf[0]))}va=cb(va,50)+" ;"+(hf||"stack="+K(a,jb.w));a.f(va);dd++}dd||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Bf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var ka=0;if("all"==z)ka=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){ka=G[Y];Z=!!(a.X&ka);break}if(!ka){a.f("unknown message category: "+
|
||||
z);break a}}if(ka)if("on"==f[2])a.X|=ka,Z=!0;else if("off"==f[2]&&(a.X&=~ka,Z=!1,1073741824==ka)){for(var kf=1E3<=a.N.length?a.N.length-1E3:0;kf<a.N.length;)a.f(a.N[kf++]);a.N=[]}}var pg=0,lb="";for(Y in G)if(!z||z==Y){var qg=!!(a.X&G[Y]);if(null===Z||Z==qg)lb&&(lb+=","),++pg%10||(lb+="\n\t"),"key"==Y&&(Y="keys"),lb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(lb||"none"));le(a)}break;
|
||||
case "p":if("print"==f[0]){Cf(a,b.substr(5));break}var rg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var sg="pr"==rg?1:0;if(a.M)a.f("step in progress");else{var lf=R(a.g.u);a.wa(lf);a.M?(a.Ba(a.b,lf,!0),ze(a)||(a.C&&vd(a.C),a.M=0)):Df(a,sg?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}Ce(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var mb=+f[2];if(8==mb||10==mb||16==mb)a.ba=mb;
|
||||
else{a.f("invalid base: "+mb);break}}a.f("default base: "+a.ba);break;case "cs":var nb;void 0!==f[3]&&(nb=+f[3]);switch(f[2]){case "int":a.g.da=nb;break;case "start":a.g.ta=nb;break;case "stop":a.g.ia=nb;break;default:a.f("unknown cs option");break a}void 0!==nb&&nd(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(sd(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;
|
||||
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":yf(a,f[0],f[1]);break;case "u":ye(a,f[1],f[2],8);break;case "v":if("var"==f[0]){vf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.0 ("+
|
||||
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){xf(a,b.substr(1));break}var cd="commands:",dd;for(dd in Af)cd+="\n"+cb(dd,9)+Af[dd];Ed(a)||(cd+="\nnote: history disabled if no exec breakpoints");a.f(cd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(gf){a.f("debugger error: "+(gf.stack||gf.message)),d=!1}return d}function qd(a,b,c){b=Yd(a,b,c);for(var d in b)if(!qf(a,b[+d]))return!1;return!0}
|
||||
var Af={"?":"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"},lf=20,mf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV 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 CA 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".split(" "),
|
||||
qe=0,re=1,se=2,pe=["PC","RA","EA"],Bf={},ff=(Bf[28672]={0:101},Bf[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},Bf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:lf,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},Bf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Bf[29248]={24576:79,24640:80,25088:81,25152:82},Bf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Bf),hf=["","I",
|
||||
"M","S"],jf=" L E LE A GE N G".split(" "),kf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),te=1E3,we=">> ";Bb(function(){for(var a=B(document,A,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new ee(d);Aa(d,c)}});
|
||||
function Cf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;Df(this,b);this.N=ld(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.da=ld(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ef(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new vc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=xa(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Jb+" v1.34.0\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.va&&d.va(this,this.D,this.g,this.A);b=null;d=ld(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=ld(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Ff),this.b&&(this.I=new H(this,"1.34.0"),Gf(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Hf(this))&&(this.J=!0);if(b){var f=this;pb(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+db(b):"")+")")):(f.L=b,f.T=!0);C(f)})}else C(this);this.G.power||(this.N=!0);!c&&this.N&&If(this,this.Ga)}else v("Unable to find CPU component")}p(Cf,t);function Df(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
|
||||
function ld(a,b,c,d){var e=b.toLowerCase(),e=wb(b)||wb(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 If(a,b,c){for(var d=xa(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Pa(g)){Pa(g,function(){If(a,b,c)});return}}b.call(a,c)}
|
||||
function Jf(a,b){var c=new H(a,"1.34.0",Kf);if(Gf(c)&&Lf(c)){var d=c.get(Mf),e=b?b.get(Mf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Cf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?Nf:Ff));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new H(this,"1.34.0");if(a==Of)b=!0;else if(a>Ff){if(Gf(d,this.L)){this.B=new H(this,"1.34.0",Pf);Gf(this.B)&&(Qf(this,d),a=Rf,Sf(this.B));this.B.set(Mf,ob());Tf(this.B);var e=this.b&&!this.J;if(a==Nf||wa("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Lf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Gf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ca("Error: "+f),"unable to verify user"==f&&(ub(Uf,""),this.i=null)):this.f(g+": "+f),Sf(d),Gf(d)?(c=Lf(d),e=!0):c=!1))}e&&Jf(this,c?d:null)}else a==Rf&&d.clear()}else Jf(this);delete this.L;delete this.I}e=xa(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=Vf(this,f,d,b,c));b=[d,a,c];a!=Of?If(this,this.kb,b):this.kb(b)}};
|
||||
function Vf(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Ff,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(Vf(this,this.g,b,c,a),J(this,-2),this.g.Z());this.O&&(Qf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function Qf(a,b){if(wa("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;pb("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function zf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.0"),f=new H(a,"1.34.0",Kf),h=ob();f.set(Mf,h);g.set(Mf,h);g.set(Wf,"1.34.0");g.set(Xf,window?window.location.href:null);g.set(Yf,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=xa(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Zf(a,a.i,g.toString()),Tf(f)&&Tf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==og),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Df(a,f[0],f[1]);break;case "u":De(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Af(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.0 ("+
|
||||
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Cf(a,b.substr(1));break}var gd="commands:",hd;for(hd in Ff)gd+="\n"+cb(hd,9)+Ff[hd];Ed(a)||(gd+="\nnote: history disabled if no exec breakpoints");a.f(gd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(nf){a.f("debugger error: "+(nf.stack||nf.message)),d=!1}return d}function qd(a,b,c){b=ce(a,b,c);for(var d in b)if(!vf(a,b[+d]))return!1;return!0}
|
||||
var Ff={"?":"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"},qf=20,rf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV 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 CA 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".split(" "),
|
||||
ve=0,we=1,xe=2,ue=["PC","RA","EA"],Gf={},Ge=(Gf[28672]={0:101},Gf[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},Gf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:qf,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},Gf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Gf[29248]={24576:79,24640:80,25088:81,25152:82},Gf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Gf),mf=["","I",
|
||||
"M","S"],of=" L E LE A GE N G".split(" "),pf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),ye=1E3,Be=">> ";Bb(function(){for(var a=B(document,A,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new je(d);Aa(d,c)}});
|
||||
function Hf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;If(this,b);this.N=ld(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.da=ld(this,"url")||"";(Math.random()+.1).toString(36);this.i=Jf(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new vc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=xa(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Jb+" v1.34.0\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.va&&d.va(this,this.D,this.g,this.A);b=null;d=ld(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=ld(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Kf),this.b&&(this.I=new H(this,"1.34.0"),Lf(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Mf(this))&&(this.J=!0);if(b){var f=this;pb(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+db(b):"")+")")):(f.L=b,f.T=!0);C(f)})}else C(this);this.G.power||(this.N=!0);!c&&this.N&&Nf(this,this.Ga)}else v("Unable to find CPU component")}p(Hf,t);function If(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
|
||||
function ld(a,b,c,d){var e=b.toLowerCase(),e=wb(b)||wb(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 Nf(a,b,c){for(var d=xa(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Pa(g)){Pa(g,function(){Nf(a,b,c)});return}}b.call(a,c)}
|
||||
function Of(a,b){var c=new H(a,"1.34.0",Pf);if(Lf(c)&&Qf(c)){var d=c.get(Rf),e=b?b.get(Rf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Hf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?Sf:Kf));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new H(this,"1.34.0");if(a==Tf)b=!0;else if(a>Kf){if(Lf(d,this.L)){this.B=new H(this,"1.34.0",Uf);Lf(this.B)&&(Vf(this,d),a=Wf,Xf(this.B));this.B.set(Rf,ob());Yf(this.B);var e=this.b&&!this.J;if(a==Sf||wa("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Qf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Lf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ca("Error: "+f),"unable to verify user"==f&&(ub(Zf,""),this.i=null)):this.f(g+": "+f),Xf(d),Lf(d)?(c=Qf(d),e=!0):c=!1))}e&&Of(this,c?d:null)}else a==Wf&&d.clear()}else Of(this);delete this.L;delete this.I}e=xa(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=$f(this,f,d,b,c));b=[d,a,c];a!=Tf?Nf(this,this.kb,b):this.kb(b)}};
|
||||
function $f(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Kf,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&($f(this,this.g,b,c,a),J(this,-2),this.g.Z());this.O&&(Vf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function Vf(a,b){if(wa("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;pb("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Ef(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.0"),f=new H(a,"1.34.0",Pf),h=ob();f.set(Rf,h);g.set(Rf,h);g.set(ag,"1.34.0");g.set(bg,window?window.location.href:null);g.set(cg,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=xa(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&dg(a,a.i,g.toString()),Yf(f)&&Yf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==tg),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ta(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ta(this,"Resetting "+this.g.type),this.g.reset());for(var a=xa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ta(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;J(this,-1)};l.start=function(a,b){for(var c=xa(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=xa(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.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Wa(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);fc(a,a.i);$b(a,a.v)}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?zf(d,!1,!0):If(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zf(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(Ff)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Za())c.parentNode.removeChild(c);else return this.G[b]=
|
||||
c,c.onclick=function(){var a=Ef(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=zf(d,b);b?Zf(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Ef(a,b){var c=a.i;c||((c=tb(Uf),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=pg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
|
||||
function pg(a,b){a.i=null;b=pb($a()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ub(Uf,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Hf(a){var b=null;a.i&&(b=$a()+"/api/v1/user?req=load&user="+a.i+"&state="+qg(a,"1.34.0"));return b}
|
||||
function Zf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=qg(a,"1.34.0");d.data=c;b=pb($a()+"/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.ca("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.ca(c),ub(Uf,""),a.i=null)}}
|
||||
function vd(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var Pf="failsafe",Kf="validate",Mf="timestamp",Wf="version",Xf="url",Yf="browser",Uf="user",Of=-1,Ff=0,Nf=1,Rf=2,og=3;Bb(function(){for(var a=B(document,A+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=B(c,A,"computer"),e=0;e<c.length;e++){var g=c[e],f=w(g),f=new Cf(f,d,!0);Aa(f,g);f.N&&If(f,f.Ga)}});
|
||||
Cb.show.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Ga(Of)}});Cb.exit.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.j.V&&zf(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=qg(a,b,c);Sf(this,a.tb)}l=H.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 Gf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:rb()&&(b=tb(a.key))?(a.g=b,a.A=!0):!1}function Lf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function Tf(a){var b=!0;if(rb()){var c=JSON.stringify(a.b);ub(a.key,c)||(v("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 Sf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){Sf(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 qg(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 rg=0;
|
||||
function sg(a,b,c,d,e,g,f){g("Loading "+a+"...");pb(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):tg(k,a,b,c,d,e,g,f)})}
|
||||
function tg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(na(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(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(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?ug(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function ug(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pb(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],f);ug(a,b,c)}})}else c(a,null)}
|
||||
function vg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&B(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=ab(a))}function f(a){g("Error: "+a);m&&(--rg||Fb(!0));m=!1}var h,k,m=!0;rg++;oa[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?sg(d,null,a,null,!1,g,function(a,e){e?(na(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--rg||Fb(!0)):f("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),--rg||
|
||||
Fb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?sg(c,b,a,e,!0,g,n):tg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){Fb(!1);return vg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fb(!1);return vg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return za(b,a+".machine")};
|
||||
function J(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Wa(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);fc(a,a.i);Tb(a,a.v)}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?Ef(d,!1,!0):Nf(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ef(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(Kf)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Za())c.parentNode.removeChild(c);else return this.G[b]=
|
||||
c,c.onclick=function(){var a=Jf(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Ef(d,b);b?dg(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Jf(a,b){var c=a.i;c||((c=tb(Zf),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=ug(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
|
||||
function ug(a,b){a.i=null;b=pb($a()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ub(Zf,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Mf(a){var b=null;a.i&&(b=$a()+"/api/v1/user?req=load&user="+a.i+"&state="+vg(a,"1.34.0"));return b}
|
||||
function dg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=vg(a,"1.34.0");d.data=c;b=pb($a()+"/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.ca("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.ca(c),ub(Zf,""),a.i=null)}}
|
||||
function vd(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var Uf="failsafe",Pf="validate",Rf="timestamp",ag="version",bg="url",cg="browser",Zf="user",Tf=-1,Kf=0,Sf=1,Wf=2,tg=3;Bb(function(){for(var a=B(document,A+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=B(c,A,"computer"),e=0;e<c.length;e++){var g=c[e],f=w(g),f=new Hf(f,d,!0);Aa(f,g);f.N&&Nf(f,f.Ga)}});
|
||||
Cb.show.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Ga(Tf)}});Cb.exit.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.j.V&&Ef(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=vg(a,b,c);Xf(this,a.tb)}l=H.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 Lf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:rb()&&(b=tb(a.key))?(a.g=b,a.A=!0):!1}function Qf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function Yf(a){var b=!0;if(rb()){var c=JSON.stringify(a.b);ub(a.key,c)||(v("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 Xf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){Xf(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 vg(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 wg=0;
|
||||
function xg(a,b,c,d,e,g,f){g("Loading "+a+"...");pb(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):yg(k,a,b,c,d,e,g,f)})}
|
||||
function yg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(na(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(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(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?zg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function zg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pb(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],f);zg(a,b,c)}})}else c(a,null)}
|
||||
function Ag(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&B(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=ab(a))}function f(a){g("Error: "+a);m&&(--wg||Fb(!0));m=!1}var h,k,m=!0;wg++;oa[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?xg(d,null,a,null,!1,g,function(a,e){e?(na(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--wg||Fb(!0)):f("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),--wg||
|
||||
Fb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?xg(c,b,a,e,!0,g,n):yg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){Fb(!1);return Ag("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fb(!1);return Ag("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return za(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ca[a]){for(var c=!0,d=Ca,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Ba(a)||(c=!1)}return c};window.enableEvents=Fb;window.sendEvent=Hb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|
||||
|
|
|
|||
|
|
@ -63,101 +63,101 @@ function Ya(a,b){t.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.c=this.w=t
|
|||
set:this.rb};E(this)}n(Ya,t);k=Ya.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
|
||||
k.U=function(a,b,c,d){if(this.o&&this.o.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){$a(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){O(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){$a(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){O(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.u=d;ab(this);bb(this)};k.V=function(a,b){if(!b)if(this.R&&cb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.c,this.h,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])Q(this,this.c=a[0]),N(this,this.h=a[1]),db(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}bb(this);return!0};function eb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ab(a,b){for(var c in a.j)eb(a,c,null!=b?b:a.j[c])}function fb(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function bb(a){for(var b in a.a)fb(a,b,a.a[b][1])}
|
||||
k.restore=function(a){if(a=a[0])db(this,this.c=a[0]),N(this,this.h=a[1]),eb(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}bb(this);return!0};function fb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ab(a,b){for(var c in a.j)fb(a,c,null!=b?b:a.j[c])}function gb(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function bb(a){for(var b in a.a)gb(a,b,a.a[b][1])}
|
||||
k.$a=function(a,b,c){if($a(this,b)){if(c){var d=this;setTimeout(function(){O(d,b);a&&a()},+c);return!1}O(this,b)}return!0};
|
||||
k.rb=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):
|
||||
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return db(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,fb(this,a,c[1]),!0):!1};k.sb=function(a){return $a(this,a)?(O(this,a),!0):!1};function $a(a,b){var c=a.a[b];return c?(fb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=gb&&(a.L=b==hb,a.M=b==ib),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(fb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.ib=function(a){a||this.f.b.A||(this.f.h=this.c%Ta,this.a[jb]&&this.a[jb][1]&&kb(this.f))};k.jb=function(){};k.cb=function(a){a||R(this.f)};k.ab=function(a){if(!a&&!this.f.b.A)if(this.a[jb]&&this.a[jb][1])kb(this.f);else{a=this.u;var b;if(b=a)a.b.ra&&(a.b.Da=!0),b=!a.b.ra;if(b)va(a,!0),a.c(0,null),va(a,!1);else try{var c=this.f.wa(1);0<c&&(lb(this.f,c),mb(this.f,c,!0),nb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.b.error=!0,c.F(a))}this.stop();this.o&&S(this.o)}};
|
||||
k.bb=function(a){a&&!this.f.b.A&&(this.L&&ob(this),a=N(this,this.h=this.g),this.O==Za?pb(this.l,this.c,a):this.f.v(this.c,a))};k.eb=function(a){if(!a&&!this.f.b.A){this.M&&ob(this);if(this.O==Za){a=this.l;var b=this.c,c=a.a[(b&a.g)>>>a.c];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.m(this.c);N(this,this.h=a)}};k.gb=function(a){a||this.f.b.A||Q(this,this.g)};k.fb=function(a){a?(this.s=!0,ab(this,!0)):(this.s=!1,ab(this),db(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function ob(a){var b=1,c=a.l.g;a.a[gb]&&a.a[gb][1]||(b=-b);Q(a,a.c&~c|a.c+b&c)}function Q(a,b){a.c=b&a.l.g;if(a.G!==a.c){a.G=a.c;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||eb(d,e,f)}}}function N(a,b){a.w=b%Va;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||eb(d,e,f)}}return a.w}function db(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;bb(a);return!0}k.stop=function(){Q(this,this.f.h)};
|
||||
function cb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=oa(d.id);e||(e=new Ya(d,!0));B(e,c)}}var Za=7,hb="DEP",jb="ENABLE",ib="EXAM",gb="STEP";I(cb);function qb(a,b,c){t.call(this,"Bus",a);this.f=b;this.u=c;this.w=+a.busWidth||18;this.s=1<<this.w;this.g=this.s-1;this.c=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new T(this);rb(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}n(qb,t);k=qb.prototype;k.reset=function(){};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,sb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function tb(a,b,c,d){for(var e=b,f=c,g=e>>>a.c;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return ub(vb,e,f)}e=new T(a,e,p,16384,d);rb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+wb[d]+" at "+xa(b)),!0):ub(xb,b,c)}function pb(a,b,c){var d=a.a[(b&a.g)>>>a.c];a.h++;d.l(c,b&16383,b);a.h--}
|
||||
function sb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function ub(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var vb=1,xb=2;function yb(a){t.call(this,"Device",a)}n(yb,t);k=yb.prototype;k.Z=function(a,b,c,d){this.l=b;this.o=a;this.f=c;this.u=d;E(this)};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new yb(c),B(c,d)}}});
|
||||
function T(a,b,c,d,e){this.u=a;this.id=zb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Ab;this.c=e==Bb;this.m=this.o=this.Fa;this.v=this.l=this.Ha;this.f=this.i=0;rb(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Cb(this,Db)}else Cb(this)}k=T.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Cb(a,b){b||(b=Eb);Fb(a,b,void 0);Gb(a,b,void 0)}
|
||||
function Fb(a,b,c){c&&a.f||(a.m=b[0]||a.Fa);if(c||void 0===c)a.o=b[0]||a.Fa}function Gb(a,b,c){c&&a.i||(a.v=!a.c&&b[1]||a.Ha);if(c||void 0===c)a.l=b[1]||a.Ha}function rb(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Fb(a,Hb,!1),(a.i=b.i)&&Gb(a,Hb,!1))}k.Fa=function(){var a=this.u;a.h||R(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.o(a,b)};k.ub=function(a,b,c){this.c||this.l(a,b,c)};
|
||||
var Ab=0,Bb=2,wb=["NONE","RAM","ROM"],zb=0,Eb=[],Db=[T.prototype.mb,T.prototype.vb],Hb=[T.prototype.kb,T.prototype.ub];
|
||||
function Ib(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.b.A=this.b.Ga=!1;this.b.J=a.autoStart;"string"==typeof this.b.J&&(this.b.J="true"==this.b.J);this.b.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.s=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
|
||||
null;E(this)}n(Ib,t);k=Ib.prototype;k.Z=function(a,b,c,d){this.o=a;this.l=b;this.u=d;this.ka=a.g;for(a=0;a<Jb.length;a++)(b=this.i[Jb[a]])&&this.o.U(null,Jb[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=U(this.o,"autoStart");null!=c?this.b.J="true"==c?!0:"false"==c?!1:!!c:null==this.b.J&&(this.b.J=void 0===this.i.run);if(!b){if(a){Kb(this);if(!this.restore(a))return!1;Lb(this)}else this.reset();this.status("No debugger detected");this.b.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.b.A?!0:this.b.J?(kb(this),!0):!1};k.Pa=function(){return 0};
|
||||
function Lb(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.b.sa=0<=a.oa&&0<a.da;a.b.sa&&(a.na=0,a.R=a.oa-a.I)}function nb(a,b){if(a.b.sa){var c=!1;a.na=a.na+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Mb(a)&&(a.da=a.ea=-1,Lb(a),R(a),c=!0);c&&a.K(Mb(a)+" cycles: checksum="+F(a.na))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.b.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.b.A?R(d):kb(d))},!0;case "speed":return this.i[b]=
|
||||
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Nb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function mb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Ob(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Pb);a.fa=Math.floor(a.Ba/Pb*c);b||(a.X=a.fa);a.pa=0}function Mb(a){return a.I+a.s+a.D-a.G}function Kb(a){a.L=0;a.Ca=0;a.I=a.s=a.D=a.G=0;Lb(a);Nb(a,1)}
|
||||
function Nb(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}mb(a,a.s);a.s=0;a.j=w();a.C=0;Ob(a)}function Qb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
|
||||
function lb(a,b){for(var c=a.w.length-1;0<=c;c--){var d=a.w[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Rb(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
|
||||
k.pb=function(){if(this.b.A){this.pa>=this.Ba&&Ob(this,!0);this.ca=0;this.ja=w();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.b.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Rb(this,!0);this.ca+=b;this.s+=b;nb(this,b);lb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Sb&&(this.o&&S(this.o,void 0),this.Ca=0);break}}while(this.b.A)}catch(f){R(this);
|
||||
this.o&&this.o.stop(w(),Mb(this));a=f.stack||f.message;this.b.error=!0;this.F(a);return}if(this.b.A){a=setTimeout;b=this.Na;this.C=w();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.s/(10*d))/100,864E5<=d&&(this.I=0,Nb(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
|
||||
function kb(a){var b;a.b.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.A)a.K(a.toString()+" busy");else{Nb(a);a.b.A=!0;a.b.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Mb(a));a.u||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function R(a){var b=!1;if(a.b.A){Rb(a);mb(a,a.s);a.s=0;a.b.A=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(w(),Mb(a));b=!0;a.u||a.status("Stopped")}a.b.complete=void 0;return b}var Pb=30,Sb=15,Jb=["power","reset"];
|
||||
function Tb(a){var b=+a.model||1001;Ib.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Ub.bind(this);this.a=V.bind(this);this.ha=null;this.Ka=[];this.b.complete=!1}n(Tb,Ib);k=Tb.prototype;k.reset=function(){this.status("Model "+this.Va);this.b.A&&R(this);this.c=this.M=this.qa=0;this.ia=this.h=this.ya=this.La;this.g=0;this.m=this.lb;this.v=this.wb;this.ha=null;Kb(this);this.b.error=!1;Ib.prototype.reset.call(this)};k.Pa=function(){return 0};
|
||||
k.save=function(){var a=new P(this);a.set(0,[this.c,this.M,this.qa,this.h,this.ya,this.ia,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.b.J]);a.set(3,Vb(this));a.set(4,Qb(this));return a.data()};
|
||||
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.c=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.h=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Nb(this,b[1]);this.b.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
|
||||
a[b];return!0};function Vb(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.l;a=this.ia=a;return b.a[(a&b.g)>>>b.c].m(a&16383,a)};k.wb=function(a,b){var c=this.l;a=this.ia=a;c.a[(a&c.g)>>>c.c].v(b,a&16383,a)};
|
||||
k.wa=function(a){this.b.complete=!0;var b=a?this.b.Ga?0:1:-1;this.b.Ga=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ha||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.u.h(this.h,b)){R(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.m(this.c)&8388607:(this.qa=this.m(this.ya=this.h))&8388607;this.c=this.M&262143;if(a=this.M>>18&15)this.c=this.c+this.m(a)&Ua;this.M&4194304?a=-1:(this.h=(this.h+1)%Ta,a=this.qa/Xa|0);0<=a&&this.Wa(a)}while(0<
|
||||
this.G);return this.b.complete?this.D-this.G:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Tb(d);B(d,c)}});function Ub(a){Wb[a>>4].call(this,a)}function W(a){this.a(a)}function Xb(a){this.a(a)}function Yb(a){this.a(a)}function Zb(a){var b=a&15,c=this.m(this.c),d=this.m(b),d=$b(a,d,c)+(c-(c&262143));this.v(b,d)}function ac(a){var b=a&15,c=this.m(b),c=$b(a,c,0);this.v(b,c)}
|
||||
function bc(a){var b=this.m(a&15),c=this.m(this.c),c=$b(a,c,b)+(b-(b&262143));this.v(this.c,c)}function cc(a){var b=this.m(this.c);this.v(this.c,$b(a,b,b));var c=a&15;c&&(b=this.m(c),this.v(c,$b(a,b,b)))}function dc(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a);this.v(a,c-(c&262143)+b)}function X(a){this.a(a)}function V(a){this.K("undefined opcode: "+xa(a));this.h=(this.h+-1)%Ta;R(this)}
|
||||
function $b(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Wa?262143:0}return b}
|
||||
var Wb=[W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,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)},
|
||||
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return eb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,gb(this,a,c[1]),!0):!1};k.sb=function(a){return $a(this,a)?(O(this,a),!0):!1};function $a(a,b){var c=a.a[b];return c?(gb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=hb&&(a.L=b==ib,a.M=b==jb),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(gb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.ib=function(a){a||this.f.b.A||(this.f.h=this.c%Ta,this.a[kb]&&this.a[kb][1]&&lb(this.f))};k.jb=function(){};k.cb=function(a){a||Q(this.f)};k.ab=function(a){if(!a&&!this.f.b.A)if(this.a[kb]&&this.a[kb][1])lb(this.f);else{a=this.u;var b;if(b=a)a.b.ra&&(a.b.Da=!0),b=!a.b.ra;if(b)va(a,!0),a.c(0,null),va(a,!1);else try{var c=this.f.wa(1);0<c&&(mb(this.f,c),nb(this.f,c,!0),ob(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.b.error=!0,c.F(a))}this.stop();this.o&&R(this.o)}};
|
||||
k.bb=function(a){a&&!this.f.b.A&&(this.L&&pb(this),a=N(this,this.h=this.g),this.O==Za?qb(this.l,this.c,a):this.f.v(this.c,a))};k.eb=function(a){if(!a&&!this.f.b.A){this.M&&pb(this);if(this.O==Za){a=this.l;var b=this.c,c=a.a[(b&a.g)>>>a.c];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.m(this.c);N(this,this.h=a)}};k.gb=function(a){a||this.f.b.A||db(this,this.g)};k.fb=function(a){a?(this.s=!0,ab(this,!0)):(this.s=!1,ab(this),eb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function pb(a){var b=1,c=a.l.g;a.a[hb]&&a.a[hb][1]||(b=-b);db(a,a.c&~c|a.c+b&c)}function db(a,b){a.c=b&a.l.g;if(a.G!==a.c){a.G=a.c;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||fb(d,e,f)}}}function N(a,b){a.w=b%Va;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||fb(d,e,f)}}return a.w}function eb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;bb(a);return!0}k.stop=function(){db(this,this.f.h)};
|
||||
function cb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=oa(d.id);e||(e=new Ya(d,!0));B(e,c)}}var Za=7,ib="DEP",kb="ENABLE",jb="EXAM",hb="STEP";I(cb);function rb(a,b,c){t.call(this,"Bus",a);this.f=b;this.u=c;this.w=+a.busWidth||18;this.s=1<<this.w;this.g=this.s-1;this.c=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new S(this);sb(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}n(rb,t);k=rb.prototype;k.reset=function(){};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,tb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function ub(a,b,c,d){for(var e=b,f=c,g=e>>>a.c;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return vb(wb,e,f)}e=new S(a,e,p,16384,d);sb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+xb[d]+" at "+xa(b)),!0):vb(yb,b,c)}function qb(a,b,c){var d=a.a[(b&a.g)>>>a.c];a.h++;d.l(c,b&16383,b);a.h--}
|
||||
function tb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function vb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var wb=1,yb=2;function zb(a){t.call(this,"Device",a)}n(zb,t);k=zb.prototype;k.Z=function(a,b,c,d){this.l=b;this.o=a;this.f=c;this.u=d;E(this)};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new zb(c),B(c,d)}}});
|
||||
function S(a,b,c,d,e){this.u=a;this.id=Ab+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Bb;this.c=e==Cb;this.m=this.o=this.Fa;this.v=this.l=this.Ha;this.f=this.i=0;sb(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Db(this,Eb)}else Db(this)}k=S.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Db(a,b){b||(b=Fb);Gb(a,b,void 0);Hb(a,b,void 0)}
|
||||
function Gb(a,b,c){c&&a.f||(a.m=b[0]||a.Fa);if(c||void 0===c)a.o=b[0]||a.Fa}function Hb(a,b,c){c&&a.i||(a.v=!a.c&&b[1]||a.Ha);if(c||void 0===c)a.l=b[1]||a.Ha}function sb(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Gb(a,Ib,!1),(a.i=b.i)&&Hb(a,Ib,!1))}k.Fa=function(){var a=this.u;a.h||Q(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.o(a,b)};k.ub=function(a,b,c){this.c||this.l(a,b,c)};
|
||||
var Bb=0,Cb=2,xb=["NONE","RAM","ROM"],Ab=0,Fb=[],Eb=[S.prototype.mb,S.prototype.vb],Ib=[S.prototype.kb,S.prototype.ub];
|
||||
function Jb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.b.A=this.b.Ga=!1;this.b.J=a.autoStart;"string"==typeof this.b.J&&(this.b.J="true"==this.b.J);this.b.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.s=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
|
||||
null;E(this)}n(Jb,t);k=Jb.prototype;k.Z=function(a,b,c,d){this.o=a;this.l=b;this.u=d;this.ka=a.g;for(a=0;a<Kb.length;a++)(b=this.i[Kb[a]])&&this.o.U(null,Kb[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=T(this.o,"autoStart");null!=c?this.b.J="true"==c?!0:"false"==c?!1:!!c:null==this.b.J&&(this.b.J=void 0===this.i.run);if(!b){if(a){Lb(this);if(!this.restore(a))return!1;Mb(this)}else this.reset();this.status("No debugger detected");this.b.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.b.A?!0:this.b.J?(lb(this),!0):!1};k.Pa=function(){return 0};
|
||||
function Mb(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.b.sa=0<=a.oa&&0<a.da;a.b.sa&&(a.na=0,a.R=a.oa-a.I)}function ob(a,b){if(a.b.sa){var c=!1;a.na=a.na+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Nb(a)&&(a.da=a.ea=-1,Mb(a),Q(a),c=!0);c&&a.K(Nb(a)+" cycles: checksum="+F(a.na))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.b.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.b.A?Q(d):lb(d))},!0;case "speed":return this.i[b]=
|
||||
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Ob(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function nb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Pb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Qb);a.fa=Math.floor(a.Ba/Qb*c);b||(a.X=a.fa);a.pa=0}function Nb(a){return a.I+a.s+a.D-a.G}function Lb(a){a.L=0;a.Ca=0;a.I=a.s=a.D=a.G=0;Mb(a);Ob(a,1)}
|
||||
function Ob(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}nb(a,a.s);a.s=0;a.j=w();a.C=0;Pb(a)}function Rb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
|
||||
function mb(a,b){for(var c=a.w.length-1;0<=c;c--){var d=a.w[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Sb(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
|
||||
k.pb=function(){if(this.b.A){this.pa>=this.Ba&&Pb(this,!0);this.ca=0;this.ja=w();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.b.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Sb(this,!0);this.ca+=b;this.s+=b;ob(this,b);mb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Tb&&(this.o&&R(this.o,void 0),this.Ca=0);break}}while(this.b.A)}catch(f){Q(this);
|
||||
this.o&&this.o.stop(w(),Nb(this));a=f.stack||f.message;this.b.error=!0;this.F(a);return}if(this.b.A){a=setTimeout;b=this.Na;this.C=w();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.s/(10*d))/100,864E5<=d&&(this.I=0,Ob(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
|
||||
function lb(a){var b;a.b.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.A)a.K(a.toString()+" busy");else{Ob(a);a.b.A=!0;a.b.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Nb(a));a.u||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function Q(a){var b=!1;if(a.b.A){Sb(a);nb(a,a.s);a.s=0;a.b.A=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(w(),Nb(a));b=!0;a.u||a.status("Stopped")}a.b.complete=void 0;return b}var Qb=30,Tb=15,Kb=["power","reset"];
|
||||
function Ub(a){var b=+a.model||1001;Jb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Vb.bind(this);this.a=U.bind(this);this.ha=null;this.Ka=[];this.b.complete=!1}n(Ub,Jb);k=Ub.prototype;k.reset=function(){this.status("Model "+this.Va);this.b.A&&Q(this);this.c=this.M=this.qa=0;this.ia=this.h=this.ya=this.La;this.g=0;this.m=this.lb;this.v=this.wb;this.ha=null;Lb(this);this.b.error=!1;Jb.prototype.reset.call(this)};k.Pa=function(){return 0};
|
||||
k.save=function(){var a=new P(this);a.set(0,[this.c,this.M,this.qa,this.h,this.ya,this.ia,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.b.J]);a.set(3,Wb(this));a.set(4,Rb(this));return a.data()};
|
||||
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.c=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.h=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Ob(this,b[1]);this.b.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
|
||||
a[b];return!0};function Wb(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.l;a=this.ia=a;return b.a[(a&b.g)>>>b.c].m(a&16383,a)};k.wb=function(a,b){var c=this.l;a=this.ia=a;c.a[(a&c.g)>>>c.c].v(b,a&16383,a)};
|
||||
k.wa=function(a){this.b.complete=!0;var b=a?this.b.Ga?0:1:-1;this.b.Ga=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ha||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.u.h(this.h,b)){Q(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.m(this.c)&8388607:(this.qa=this.m(this.ya=this.h))&8388607;this.c=this.M&262143;if(a=this.M>>18&15)this.c=this.c+this.m(a)&Ua;this.M&4194304?a=-1:(this.h=(this.h+1)%Ta,a=this.qa/Xa|0);0<=a&&this.Wa(a)}while(0<
|
||||
this.G);return this.b.complete?this.D-this.G:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ub(d);B(d,c)}});function Vb(a){Xb[a>>4].call(this,a)}function V(a){this.a(a)}function Yb(a){this.a(a)}function Zb(a){this.a(a)}function $b(a){var b=a&15,c=this.m(this.c),d=this.m(b);this.v(b,W(a,d,c)+(c-(c&262143)))}function ac(a){var b=a&15,c=this.m(b);this.v(b,W(a,c,0))}
|
||||
function bc(a){var b=this.m(a&15),c=this.m(this.c);this.v(this.c,W(a,c,b)+(b-(b&262143)))}function cc(a){var b=this.m(this.c);this.v(this.c,dc(a,b,b));var c=a&15;c&&(b=this.m(c),this.v(c,dc(a,b,b)))}function ec(a){var b=a&15,c=(this.m(this.c)&262143)*M,d=this.m(b);this.v(b,W(a,d,c)+c)}function fc(a){var b=a&15,c=this.c*M,d=this.m(b);this.v(b,W(a,d,c)+c)}function gc(a){var b=(this.m(a&15)&262143)*M,c=this.m(this.c);this.v(this.c,W(a,c,b)+b)}
|
||||
function hc(a){var b=this.m(this.c),c=(b&262143)*M;this.v(this.c,W(a,b,c)+c);var d=a&15;d&&(b=this.m(d),c=(b&262143)*M,this.v(d,W(a,b,c)+c))}function ic(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a);this.v(a,c-(c&262143)+b)}function X(a){this.a(a)}function U(a){this.K("undefined opcode: "+xa(a));this.h=(this.h+-1)%Ta;Q(this)}function W(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Wa?262143:0}return b}
|
||||
function dc(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Wa?262143:0}return b}
|
||||
var Xb=[V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,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)},Xb,Yb,Yb,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)},Xb,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)},V,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)},V,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)},Yb,Zb,Zb,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)},Yb,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)},U,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)},U,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)},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)},Zb,ac,bc,cc,function(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a),c=(c&262143)+b*M;this.v(a,c)},function(a){a&=15;var b=this.m(a),b=(b&262143)+this.c*M;this.v(a,b)},function(a){a=
|
||||
this.m(a&15)&262143;var b=this.m(this.c),b=(b&262143)+a*M;this.v(this.c,b)},function(a){var b=this.m(this.c)&262143;this.v(this.c,b+b*M);if(a&=15)b=this.m(a)&262143,this.v(a,b+b*M)},Zb,ac,bc,cc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Zb,ac,bc,cc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Zb,ac,bc,cc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},dc,function(a){a&=
|
||||
15;var b=this.m(a),b=b-(b&262143)+this.c;this.v(a,b)},function(a){a=this.m(a&15)&262143;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){a&15&&dc.call(this,a)},function(a){a&=15;var b=this.m(this.c)/M|0,c=this.m(a);this.v(a,c-(c&262143)+b)},function(a){a&=15;var b=this.m(a);this.v(a,b-(b&262143))},function(a){a=this.m(a&15)/M|0;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){var b=this.m(this.c);this.v(this.c,(b&262143)+(b/M|0));if(a&=15)b=this.m(a),this.v(a,(b&262143)+
|
||||
(b/M|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)},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)},$b,ac,bc,cc,ec,fc,gc,hc,$b,ac,bc,cc,ec,fc,gc,hc,$b,ac,bc,cc,ec,fc,gc,hc,$b,ac,bc,cc,ec,fc,gc,hc,ic,function(a){a&=15;var b=this.m(a),b=b-(b&262143)+this.c;this.v(a,b)},function(a){a=
|
||||
this.m(a&15)&262143;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){a&15&&ic.call(this,a)},function(a){a&=15;var b=this.m(this.c)/M|0,c=this.m(a);this.v(a,c-(c&262143)+b)},function(a){a&=15;var b=this.m(a);this.v(a,b-(b&262143))},function(a){a=this.m(a&15)/M|0;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){var b=this.m(this.c);this.v(this.c,(b&262143)+(b/M|0));if(a&=15)b=this.m(a),this.v(a,(b&262143)+(b/M|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)},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)},
|
||||
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 ec(a){t.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.c=a.alias;"string"==typeof this.c&&(this.c=eval(this.c));this.h=a.file;this.s=ya(this.h);if(this.h){a=this.h;var b=za(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.a=a.H,c.N=a.N):c.h=null);fc(c)})}}n(ec,t);
|
||||
ec.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;fc(this)};ec.prototype.V=function(){this.N&&(this.u&&this.u.a(this.id,this.j,this.g,this.N),delete this.N);return!0};ec.prototype.P=function(){return!0};
|
||||
function fc(a){if(!ua(a)){if(a.h){if(!a.a||!a.l)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.F(b)}else{b=a.j;if(tb(a.l,b,a.g,Bb)){var c;for(c=0;c<a.a.length;c++)pb(a.l,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.c?b.push(a.c):null!=a.c&&a.c.length&&(b=a.c);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,g=d.g,h=[],l=d.j>>>f.c;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.l;
|
||||
d=d.g;g=0;for(e>>>=f.c;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ec(d);B(d,c)}});
|
||||
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 jc(a){t.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.c=a.alias;"string"==typeof this.c&&(this.c=eval(this.c));this.h=a.file;this.s=ya(this.h);if(this.h){a=this.h;var b=za(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.a=a.H,c.N=a.N):c.h=null);kc(c)})}}n(jc,t);
|
||||
jc.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;kc(this)};jc.prototype.V=function(){this.N&&(this.u&&this.u.a(this.id,this.j,this.g,this.N),delete this.N);return!0};jc.prototype.P=function(){return!0};
|
||||
function kc(a){if(!ua(a)){if(a.h){if(!a.a||!a.l)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.F(b)}else{b=a.j;if(ub(a.l,b,a.g,Cb)){var c;for(c=0;c<a.a.length;c++)qb(a.l,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.c?b.push(a.c):null!=a.c&&a.c.length&&(b=a.c);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,g=d.g,h=[],l=d.j>>>f.c;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.l;
|
||||
d=d.g;g=0;for(e>>>=f.c;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new jc(d);B(d,c)}});
|
||||
function Y(a){t.call(this,"RAM",a);this.N=this.Y=null;this.c=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.s=!1;this.a=a.file;this.j=ya(this.a);if(this.a){a=this.a;var b=za(this.j);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.Y=a.Y,c.N=a.N,null==
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);gc(c)})}}n(Y,t);Y.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;gc(this)};Y.prototype.V=function(a,b){this.N&&(this.u&&this.u.a(this.id,this.c,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
|
||||
function gc(a){if(a.l&&(!a.h&&a.g&&(tb(a.l,a.c,a.g,1)?a.h=!0:a.g=0),!ua(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;hc(a,a.Y,a.T,a.S,a.c)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.s=!0;E(a)}}
|
||||
Y.prototype.reset=function(){if(this.h&&!this.s){for(var a=this.l,b=this.c,c=this.g,d=b&16383,b=b>>>a.c;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ka&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.l(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&hc(this,this.Y,this.T,this.S,this.c,!this.u)}this.s=!1};
|
||||
function hc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)pb(a.l,c+g,b[g]);g=!0}g&&(null==d&&(R(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Ta,f?a.b.B?a.b.A||kb(a):a.b.J=!0:a.u&&a.b.B?R(a)||a.o.b.reset||(a.u.g(),S(a.o,-1)):!1===f&&R(a),!a.b.A&&a.ka&&a.ka.stop()));return g}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
|
||||
function ic(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.c=[];var b=a.binding;if("console"!=b){var c;a=jc;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(ic,t);k=ic.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case jc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);lc(c)})}}n(Y,t);Y.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;lc(this)};Y.prototype.V=function(a,b){this.N&&(this.u&&this.u.a(this.id,this.c,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
|
||||
function lc(a){if(a.l&&(!a.h&&a.g&&(ub(a.l,a.c,a.g,1)?a.h=!0:a.g=0),!ua(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;mc(a,a.Y,a.T,a.S,a.c)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.s=!0;E(a)}}
|
||||
Y.prototype.reset=function(){if(this.h&&!this.s){for(var a=this.l,b=this.c,c=this.g,d=b&16383,b=b>>>a.c;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ka&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.l(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&mc(this,this.Y,this.T,this.S,this.c,!this.u)}this.s=!1};
|
||||
function mc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)qb(a.l,c+g,b[g]);g=!0}g&&(null==d&&(Q(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Ta,f?a.b.B?a.b.A||lb(a):a.b.J=!0:a.u&&a.b.B?Q(a)||a.o.b.reset||(a.u.g(),R(a.o,-1)):!1===f&&Q(a),!a.b.A&&a.ka&&a.ka.stop()));return g}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
|
||||
function nc(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.c=[];var b=a.binding;if("console"!=b){var c;a=oc;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(nc,t);k=nc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case oc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.u=d;E(this)};
|
||||
k.Qa=function(a){if(!this.a){var b=U(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.la)return;c=Da(c[1]);if(this.a=oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.c.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.c.push(b)}else this.c=this.c.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var jc="buffer";
|
||||
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ic(d);B(d,c)}});
|
||||
function kc(a,b,c){t.call(this,"Computer",a);this.b.B=!1;this.M=null;lc(this,b);this.I=U(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.s=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=U(this,"url")||"";(Math.random()+.1).toString(36);this.c=mc(this);if(this.f=z("CPU",this.id)){this.u=z("Debugger",this.id);this.l=new qb({id:this.ma+".bus",busWidth:this.W},this.f,this.u);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" v1.34.0\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.Z&&d.Z(this,this.l,this.f,this.u);b=null;d=U(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=U(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=nc),this.a&&(this.w=new P(this,"1.34.0"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
|
||||
(b=oc(this))&&(this.C=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.s=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.D=b,g.R=!0);E(g)})}else E(this);this.i.power||(this.I=!0);!c&&this.I&&pc(this,this.ga)}else x("Unable to find CPU component")}n(kc,t);function lc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
|
||||
function U(a,b,c,d){var e=b.toLowerCase(),e=La(b)||La(e);void 0===e&&a.M&&(e=a.M[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 pc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){pc(a,b,c)});return}}b.call(a,c)}
|
||||
function qc(a,b){var c=new P(a,"1.34.0",rc);if(Z(c)&&sc(c)){var d=c.get(tc),e=b?b.get(tc):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=kc.prototype;
|
||||
k.ga=function(a){void 0===a&&(a=this.a||(this.D?uc:nc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new P(this,"1.34.0");if(a==vc)b=!0;else if(a>nc){if(Z(d,this.D)){this.j=new P(this,"1.34.0",wc);Z(this.j)&&(xc(this,d),a=yc,zc(this.j));this.j.set(tc,Ea());Ac(this.j);var e=this.a&&!this.C;if(a==uc||na("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=sc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.F("Error: "+g),"unable to verify user"==g&&(Ja(Bc,""),this.c=null)):this.K(f+": "+g),zc(d),Z(d)?(c=sc(d),e=!0):c=!1))}e&&qc(this,c?d:null)}else a==yc&&d.clear()}else qc(this);delete this.D;delete this.w}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Cc(this,g,d,b,c));b=[d,a,c];a!=vc?pc(this,this.Oa,b):this.Oa(b)}};
|
||||
function Cc(a,b,c,d,e){if(!b.b.B){b.b.B=!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.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=nc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.b.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Cc(this,this.f,b,c,a),S(this,-2),this.f.J());this.L&&(xc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function xc(a,b){if(na("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.c||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Dc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",rc),h=Ea();g.set(tc,h);f.set(tc,h);f.set(Ec,"1.34.0");f.set(Fc,window?window.location.href:null);f.set(Gc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.b.J=a.f.b.A),R(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.b.B=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var p=h[l];p.b.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.b.B=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&Hc(a,a.c,f.toString()),Ac(g)&&Ac(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Ic),d&&f.clear(h)):e=f.toString());c&&(a.b.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.l&&this.l.reset&&this.l.reset();this.f&&this.f.reset&&this.f.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c!==this.f&&c.reset&&c.reset()}this.b.reset=!1;S(this,-1)};
|
||||
k.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}S(this,-1)};k.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}S(this,-1)};
|
||||
function S(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.b.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.b.A;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.u&&a.u.j||8,e=e||0,e=8==f?xa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.c=a.f.h:0<b&&c&&!d&&(a.c=a.f.ia);Q(a,a.c);N(a,a.h)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.b.B?Dc(d,!1,!0):pc(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.b.B&&!d.h)if(d.a&&!d.s){var a=na("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Dc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(nc)}else d.reset(),d.f&&!d.u&&d.f.J()},!0;case "save":if(Aa())c.parentNode.removeChild(c);else return this.i[b]=
|
||||
c,c.onclick=function(){var a=mc(d,!0);if(a){var b=!!(d.a&&!d.s||d.G),c=Dc(d,b);b?Hc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function mc(a,b){var c=a.c;c||((c=Ia(Bc),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.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
|
||||
function Jc(a,b){a.c=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ja(Bc,b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function oc(a){var b=null;a.c&&(b=G()+"/api/v1/user?req=load&user="+a.c+"&state="+Kc(a,"1.34.0"));return b}
|
||||
function Hc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Kc(a,"1.34.0");d.data=c;b=H(G()+"/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.F("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.F(c),Ja(Bc,""),a.c=null)}}
|
||||
var wc="failsafe",rc="validate",tc="timestamp",Ec="version",Fc="url",Gc="browser",Bc="user",vc=-1,nc=0,uc=1,yc=2,Ic=3;I(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new kc(g,d,!0);B(g,f);g.I&&pc(g,g.ga)}});J.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.O&&!c.b.B&&c.ga(vc)}});
|
||||
J.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.b.B&&Dc(c,!(!c.a||c.s),!0)}});function P(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.l=!1;this.key=Kc(a,b,c);zc(this,a.Xa)}k=P.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.l=!1,!0):a.i?!0:Ga()&&(b=Ia(a.key))?(a.f=b,a.i=!0):!1}
|
||||
function sc(a){var b=!0;if(!a.l)try{a.a=JSON.parse(a.f),a.l=!0}catch(c){x(c.message||c),b=!1}return b}function Ac(a){var b=!0;if(Ga()){var c=JSON.stringify(a.a);Ja(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function zc(a,b){a.f="";a.a={};a.i=a.l=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){zc(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,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Nc(l,a,b,c,d,e,f,g)})}
|
||||
function Nc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(la(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(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Oc(a,g,l):l(a,null):h("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+"...");H(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,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.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);Oc(a,b,c)}})}else c(a,null)}
|
||||
function Pc(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&D(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=Ba(a))}function g(a){f("Error: "+a);p&&(--Lc||K(!0));p=!1}var h,l,p=!0;Lc++;ma[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ja=document.createElement("style");ja.type="text/css";ja.styleSheet?ja.styleSheet.cssText=r:ja.appendChild(document.createTextNode(r));v.appendChild(ja)}d||
|
||||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.0/components.xsl");r=function(e,l){l?Mc(d,null,a,null,!1,f,function(a,e){e?(la(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Lc||K(!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),--Lc||
|
||||
K(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Mc(c,b,a,e,!0,f,r):Nc(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(Qc){g(Qc.message)}return p}window.embedPDP10=function(a,b,c,d){K(!1);return Pc("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){K(!1);return Pc("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
|
||||
k.Qa=function(a){if(!this.a){var b=T(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.la)return;c=Da(c[1]);if(this.a=oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.c.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.c.push(b)}else this.c=this.c.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var oc="buffer";
|
||||
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new nc(d);B(d,c)}});
|
||||
function pc(a,b,c){t.call(this,"Computer",a);this.b.B=!1;this.M=null;qc(this,b);this.I=T(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.s=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=T(this,"url")||"";(Math.random()+.1).toString(36);this.c=rc(this);if(this.f=z("CPU",this.id)){this.u=z("Debugger",this.id);this.l=new rb({id:this.ma+".bus",busWidth:this.W},this.f,this.u);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" v1.34.0\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.Z&&d.Z(this,this.l,this.f,this.u);b=null;d=T(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=T(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=sc),this.a&&(this.w=new P(this,"1.34.0"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
|
||||
(b=tc(this))&&(this.C=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.s=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.D=b,g.R=!0);E(g)})}else E(this);this.i.power||(this.I=!0);!c&&this.I&&uc(this,this.ga)}else x("Unable to find CPU component")}n(pc,t);function qc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
|
||||
function T(a,b,c,d){var e=b.toLowerCase(),e=La(b)||La(e);void 0===e&&a.M&&(e=a.M[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 uc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){uc(a,b,c)});return}}b.call(a,c)}
|
||||
function vc(a,b){var c=new P(a,"1.34.0",wc);if(Z(c)&&xc(c)){var d=c.get(yc),e=b?b.get(yc):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=pc.prototype;
|
||||
k.ga=function(a){void 0===a&&(a=this.a||(this.D?zc:sc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new P(this,"1.34.0");if(a==Ac)b=!0;else if(a>sc){if(Z(d,this.D)){this.j=new P(this,"1.34.0",Bc);Z(this.j)&&(Cc(this,d),a=Dc,Ec(this.j));this.j.set(yc,Ea());Fc(this.j);var e=this.a&&!this.C;if(a==zc||na("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=xc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.F("Error: "+g),"unable to verify user"==g&&(Ja(Gc,""),this.c=null)):this.K(f+": "+g),Ec(d),Z(d)?(c=xc(d),e=!0):c=!1))}e&&vc(this,c?d:null)}else a==Dc&&d.clear()}else vc(this);delete this.D;delete this.w}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Hc(this,g,d,b,c));b=[d,a,c];a!=Ac?uc(this,this.Oa,b):this.Oa(b)}};
|
||||
function Hc(a,b,c,d,e){if(!b.b.B){b.b.B=!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.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=sc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.b.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Hc(this,this.f,b,c,a),R(this,-2),this.f.J());this.L&&(Cc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function Cc(a,b){if(na("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.c||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Ic(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",wc),h=Ea();g.set(yc,h);f.set(yc,h);f.set(Jc,"1.34.0");f.set(Kc,window?window.location.href:null);f.set(Lc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.b.J=a.f.b.A),Q(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.b.B=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var p=h[l];p.b.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.b.B=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&Mc(a,a.c,f.toString()),Fc(g)&&Fc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Nc),d&&f.clear(h)):e=f.toString());c&&(a.b.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.l&&this.l.reset&&this.l.reset();this.f&&this.f.reset&&this.f.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c!==this.f&&c.reset&&c.reset()}this.b.reset=!1;R(this,-1)};
|
||||
k.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}R(this,-1)};k.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}R(this,-1)};
|
||||
function R(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.b.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.b.A;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.u&&a.u.j||8,e=e||0,e=8==f?xa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.c=a.f.h:0<b&&c&&!d&&(a.c=a.f.ia);db(a,a.c);N(a,a.h)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.b.B?Ic(d,!1,!0):uc(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.b.B&&!d.h)if(d.a&&!d.s){var a=na("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ic(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(sc)}else d.reset(),d.f&&!d.u&&d.f.J()},!0;case "save":if(Aa())c.parentNode.removeChild(c);else return this.i[b]=
|
||||
c,c.onclick=function(){var a=rc(d,!0);if(a){var b=!!(d.a&&!d.s||d.G),c=Ic(d,b);b?Mc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function rc(a,b){var c=a.c;c||((c=Ia(Gc),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=Oc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
|
||||
function Oc(a,b){a.c=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ja(Gc,b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function tc(a){var b=null;a.c&&(b=G()+"/api/v1/user?req=load&user="+a.c+"&state="+Pc(a,"1.34.0"));return b}
|
||||
function Mc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Pc(a,"1.34.0");d.data=c;b=H(G()+"/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.F("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.F(c),Ja(Gc,""),a.c=null)}}
|
||||
var Bc="failsafe",wc="validate",yc="timestamp",Jc="version",Kc="url",Lc="browser",Gc="user",Ac=-1,sc=0,zc=1,Dc=2,Nc=3;I(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new pc(g,d,!0);B(g,f);g.I&&uc(g,g.ga)}});J.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.O&&!c.b.B&&c.ga(Ac)}});
|
||||
J.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.b.B&&Ic(c,!(!c.a||c.s),!0)}});function P(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.l=!1;this.key=Pc(a,b,c);Ec(this,a.Xa)}k=P.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.l=!1,!0):a.i?!0:Ga()&&(b=Ia(a.key))?(a.f=b,a.i=!0):!1}
|
||||
function xc(a){var b=!0;if(!a.l)try{a.a=JSON.parse(a.f),a.l=!0}catch(c){x(c.message||c),b=!1}return b}function Fc(a){var b=!0;if(Ga()){var c=JSON.stringify(a.a);Ja(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Ec(a,b){a.f="";a.a={};a.i=a.l=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){Ec(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 Pc(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 Qc=0;
|
||||
function Rc(a,b,c,d,e,f,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Sc(l,a,b,c,d,e,f,g)})}
|
||||
function Sc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(la(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(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Tc(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Tc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");H(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,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.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);Tc(a,b,c)}})}else c(a,null)}
|
||||
function Uc(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&D(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=Ba(a))}function g(a){f("Error: "+a);p&&(--Qc||K(!0));p=!1}var h,l,p=!0;Qc++;ma[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ja=document.createElement("style");ja.type="text/css";ja.styleSheet?ja.styleSheet.cssText=r:ja.appendChild(document.createTextNode(r));v.appendChild(ja)}d||
|
||||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.0/components.xsl");r=function(e,l){l?Rc(d,null,a,null,!1,f,function(a,e){e?(la(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Qc||K(!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),--Qc||
|
||||
K(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Rc(c,b,a,e,!0,f,r):Sc(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(Vc){g(Vc.message)}return p}window.embedPDP10=function(a,b,c,d){K(!1);return Uc("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){K(!1);return Uc("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!qa[a]){for(var c=!0,d=qa,e=a,f=b.length,g=[],h=[],l="",p=null,r=0;r<f;r++){var v=b[r];if('"'==v||"'"==v)p&&v!=p?l+=v:(p?p=null:p=v,l&&(h.push(l),l=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){l&&(h.push(l),l="");";"==v&&h.length&&(g.push(h),h=[]);continue}}l+=v}}l&&h.push(l);h.length&&g.push(h);d[e]=g;pa(a)||(c=!1)}return c};window.enableEvents=K;window.sendEvent=Ra;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue