diff --git a/apps/pdp10/tests/optest-v01.json b/apps/pdp10/tests/optest-v01.json index fff27ab40..84c4d16a6 100644 --- a/apps/pdp10/tests/optest-v01.json +++ b/apps/pdp10/tests/optest-v01.json @@ -27,5 +27,13 @@ // 10=000000000010 11=111111444444 12=444444111111 13=777777444444 // 14=444444777777 15=777777777777 16=777777777777 17=000000000000 // + 0o261240000011, // 000115: PUSH 5,11 +// +// 00=111111444444 01=777777444444 02=777777444444 03=777777444444 +// 04=444444777777 05=000001000000 06=777777777777 07=000000000000 +// 10=000000000010 11=111111444444 12=444444111111 13=777777444444 +// 14=444444777777 15=777777777777 16=777777777777 17=000000000000 +// + 0o262240000005, // 000116: POP 5,5 ] } diff --git a/apps/pdp10/tests/optest-v01.simh b/apps/pdp10/tests/optest-v01.simh index db52d4d4c..81205ed36 100644 --- a/apps/pdp10/tests/optest-v01.simh +++ b/apps/pdp10/tests/optest-v01.simh @@ -11,7 +11,9 @@ dep 111 533000000006 dep 112 541000000010 dep 113 251000000017 dep 114 577040000002 -ex -m 100-114 +dep 115 261240000011 +dep 116 262240000005 +ex -m 100-116 dep pc 100 step 11 ex 0-17 @@ -39,3 +41,14 @@ echo Execute HLRES 1,2 ; step 1 ex 0-17 +; +echo Execute PUSH 5,11 +; +step 1 +ex 0-17 +; +echo Execute POP 5,5 +; +dep 5 1000000 +step 1 +ex 0-17 diff --git a/modules/pdp10/lib/cpuops.js b/modules/pdp10/lib/cpuops.js index bf177bed1..3227a3830 100644 --- a/modules/pdp10/lib/cpuops.js +++ b/modules/pdp10/lib/cpuops.js @@ -841,6 +841,8 @@ PDP10.opMOVNI = function(op, acc) * We perform an in-line two's complement of regEA, since negate() updates the flags, and the documentation * above claims that this operation must "set no flags." It's certainly true that regEA, being an 18-bit value, * could never be -2^35, but it COULD be zero -- and apparently this instruction treats zero differently from MOVN. + * + * TODO: Verify the "set no flags" assertion. */ this.writeWord(acc, this.regEA? PDP10.TWO_POW36 - this.regEA : 0); }; @@ -898,7 +900,20 @@ PDP10.opMOVNS = function(op, acc) }; /** - * opMOVM(0o214000) + * opMOVM(0o214000): Move Magnitude + * + * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-12: + * + * Take the magnitude of the word contained in the source specified by M and move it to the + * specified destination. If the source word is fixed point -2^35 (400000 000000) set the + * Overflow and Carry 1 flags. + * + * (Negating the equivalent floating point -1 * 2^27 sets the flags, but this is not a normalized + * number). + * + * The source is unaffected, the original contents of the destination are lost. + * + * NOTE: This is a "Basic" mode instruction: the source is [E] and the destination is [A] (opposite of "Memory"). * * @this {CPUStatePDP10} * @param {number} op @@ -906,11 +921,26 @@ PDP10.opMOVNS = function(op, acc) */ PDP10.opMOVM = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, this.abs(this.readWord(this.regEA))); }; /** - * opMOVMI(0o215000) + * opMOVMI(0o215000): Move Magnitude Immediate + * + * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-12: + * + * Take the magnitude of the word contained in the source specified by M and move it to the + * specified destination. If the source word is fixed point -2^35 (400000 000000) set the + * Overflow and Carry 1 flags. + * + * (Negating the equivalent floating point -1 * 2^27 sets the flags, but this is not a normalized + * number). + * + * The source is unaffected, the original contents of the destination are lost. + * + * SIDEBAR: The word 0,E is equivalent to its magnitude, so MOVMI is equivalent to MOVEI. + * + * NOTE: This is an "Immediate" mode instruction: the source is the word 0,E and the destination is [A]. * * @this {CPUStatePDP10} * @param {number} op @@ -918,11 +948,24 @@ PDP10.opMOVM = function(op, acc) */ PDP10.opMOVMI = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, this.regEA); }; /** - * opMOVMM(0o216000) + * opMOVMM(0o216000): Move Magnitude to Memory + * + * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-12: + * + * Take the magnitude of the word contained in the source specified by M and move it to the + * specified destination. If the source word is fixed point -2^35 (400000 000000) set the + * Overflow and Carry 1 flags. + * + * (Negating the equivalent floating point -1 * 2^27 sets the flags, but this is not a normalized + * number). + * + * The source is unaffected, the original contents of the destination are lost. + * + * NOTE: This is a "Memory" mode instruction: the source is [A] and the destination is [E] (opposite of "Basic"). * * @this {CPUStatePDP10} * @param {number} op @@ -930,11 +973,24 @@ PDP10.opMOVMI = function(op, acc) */ PDP10.opMOVMM = function(op, acc) { - this.opUndefined(op); + this.writeWord(this.regEA, this.abs(this.readWord(acc))); }; /** - * opMOVMS(0o217000) + * opMOVMS(0o217000): Move Magnitude to Self + * + * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-12: + * + * Take the magnitude of the word contained in the source specified by M and move it to the + * specified destination. If the source word is fixed point -2^35 (400000 000000) set the + * Overflow and Carry 1 flags. + * + * (Negating the equivalent floating point -1 * 2^27 sets the flags, but this is not a normalized + * number). + * + * The source is unaffected, the original contents of the destination are lost. + * + * NOTE: This is a "Self" mode instruction: the source AND destination is [E] (and also [A] if A is non-zero). * * @this {CPUStatePDP10} * @param {number} op @@ -942,7 +998,9 @@ PDP10.opMOVMM = function(op, acc) */ PDP10.opMOVMS = function(op, acc) { - this.opUndefined(op); + var dst = this.abs(this.readWord(this.regEA)); + this.writeWord(this.regEA, dst); + if (acc) this.writeWord(acc, dst); }; /** @@ -1257,6 +1315,9 @@ PDP10.opEXCH = function(op, acc) * is the final location being loaded. Furthermore, the program cannot assume that AC is the same after the BLT * as it was before. * + * TODO: Determine the logic behind SIMH's bizarre treatment of the AC register when it's part of the memory + * being transferred. + * * @this {CPUStatePDP10} * @param {number} op * @param {number} acc @@ -1357,7 +1418,28 @@ PDP10.opPUSHJ = function(op, acc) }; /** - * opPUSH(0o261000) + * opPUSH(0o261000): Push Down + * + * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-13: + * + * Add 000001 000001 to AC to increment both halves by one, then move the contents of location E to the + * location now addressed by AC right. If the addition causes the count in AC left to reach zero, set the + * Pushdown Overflow flag. The contents of E are unaffected, the original contents of the location added + * to the list are lost. + * + * If we trusted SIMH, then we could not literally interpret this instruction as adding 000001 000001 to AC, + * because if AC contained 777777 777777, adding 000001 000001 would result in 000001 000000, not 000000 000000, + * and yet 000000 000000 is EXACTLY what we get in SIMH. + * + * And yet, DEC's documentation clearly contradicts what SIMH is doing: + * + * The incrementing and decrementing of both halves of AC simultaneously is effected by adding and subtracting + * 000001 000001. Hence a count of -2 in AC left is increased to zero if 2^18 - 1 is incremented in AC right, + * and conversely, 1 in AC left is decreased to -1 if zero is decremented in AC right. + * + * Perhaps SIMH is simply emulating the behavior of some later PDP-10 model, which performed independent increments? + * + * TODO: Investigate. * * @this {CPUStatePDP10} * @param {number} op @@ -1365,11 +1447,41 @@ PDP10.opPUSHJ = function(op, acc) */ PDP10.opPUSH = function(op, acc) { - this.opUndefined(op); + var p = this.readWord(acc); + if (!SIMH) { + /* + * This is the behavior that is clearly documented by DEC. + */ + p += 0o000001000001; + this.writeWord(p & PDP10.WORD_MASK, this.readWord(this.regEA)); + if (p >= PDP10.DATA_LIMIT) p -= PDP10.DATA_LIMIT; + if (!((p / PDP10.WORD_SHIFT) | 0)) this.fPDOverflow = true; + } else { + /* + * This is the SIMH behavior, which appears to increment each half of AC independently. + */ + var addr = (p + 1) & PDP10.WORD_MASK; + this.writeWord(addr, this.readWord(this.regEA)); + p = (p + 0o000001000000) - (p & PDP10.WORD_MASK) + addr; + if (p >= PDP10.DATA_LIMIT) { + p -= PDP10.DATA_LIMIT; + this.fPDOverflow = true; + } + } + this.writeWord(acc, p); }; /** - * opPOP(0o262000) + * opPOP(0o262000): Pop Up + * + * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-13: + * + * Move the contents of the location addressed by AC right to location E, then subtract 000001 000001 + * from AC to decrement both halves by one. If the subtraction causes the count in AC left to reach -1, + * set the Pushdown Overflow flag. The original contents of E are lost. + * + * NOTE: Because of the order in which the operands are stored, the instruction POP AC,AC would load the + * contents of the location addressed by AC right into AC on top of the pushdown count, destroying it. * * @this {CPUStatePDP10} * @param {number} op @@ -1377,7 +1489,14 @@ PDP10.opPUSH = function(op, acc) */ PDP10.opPOP = function(op, acc) { - this.opUndefined(op); + var p = this.readWord(acc); + var src = this.readWord(p & PDP10.WORD_MASK); + this.writeWord(this.regEA, src); + if (this.regEA == acc) p = src; // this avoids re-reading the accumulator if the write just overwrote it + p -= 0o000001000001; + if (p < 0) p += PDP10.DATA_LIMIT; + if (((p / PDP10.WORD_SHIFT) | 0) == PDP10.WORD_MASK) this.fPDOverflow = true; + this.writeWord(acc, p); }; /** diff --git a/modules/pdp10/lib/cpustate.js b/modules/pdp10/lib/cpustate.js index 487869c57..c444ddc93 100644 --- a/modules/pdp10/lib/cpustate.js +++ b/modules/pdp10/lib/cpustate.js @@ -176,7 +176,7 @@ class CPUStatePDP10 extends CPUPDP10 { { this.regEA = this.regRA = this.regOP = 0; this.regPC = this.lastPC = this.addrReset; - this.fOverflow = this.fCarry0 = this.fCarry1 = this.fNoDivide = false; + this.fOverflow = this.fCarry0 = this.fCarry1 = this.fNoDivide = this.fPDOverflow = false; /* * This is queried and displayed by the Panel when it's not displaying its own ADDRESS register @@ -439,11 +439,34 @@ class CPUStatePDP10 extends CPUPDP10 { } /** - * negate(src) + * abs(src) + * + * Used by the MOVM* (Move Magnitude) instructions. * * @this {CPUStatePDP10} * @param {number} src (36-bit) - * @return {number} (negated, but as an unsigned 36-bit result) + * @return {number} (absolute value of src) + */ + abs(src) + { + if (src > PDP10.MAX_POS36) { + if (src != PDP10.MIN_NEG36) { + src = PDP10.TWO_POW36 - src; + } else { + this.fOverflow = this.fCarry1 = true; + } + } + return src; + } + + /** + * negate(src) + * + * Used by the MOVN* (Move Negative) instructions. + * + * @this {CPUStatePDP10} + * @param {number} src (36-bit) + * @return {number} (src negated, but as an unsigned 36-bit result) */ negate(src) { diff --git a/modules/pdp10/lib/debugger.js b/modules/pdp10/lib/debugger.js index 7ab9ad331..8cd2d3184 100644 --- a/modules/pdp10/lib/debugger.js +++ b/modules/pdp10/lib/debugger.js @@ -885,6 +885,9 @@ class DebuggerPDP10 extends Debugger { case DebuggerPDP10.REGS.ND: value = this.cpu.fNoDivide? 1 : 0; break; + case DebuggerPDP10.REGS.PD: + value = this.cpu.fPDOverflow? 1 : 0; + break; } return value; } @@ -3145,15 +3148,16 @@ class DebuggerPDP10 extends Debugger { */ doStep(sCmd, sOption) { - if (sOption == '?') { + var fCallStep = true; + var nRegs = (sCmd == "p"? 0 : (sCmd == "pr"? 1 : -1)); + + if (sOption == '?' || nRegs < 0) { this.println("step commands:"); this.println("\tp\tstep over instruction"); this.println("\tpr\tstep over instruction with register update"); return; } - var fCallStep = true; - var nRegs = (sCmd == "pr"? 1 : 0); /* * Set up the value for this.nStep (ie, 1 or 2) depending on whether the user wants * a subsequent register dump ("pr") or not ("p"). @@ -3819,10 +3823,11 @@ if (DEBUGGER) { C1: 4, // single-bit "register" representing the Carry 1 flag OV: 5, // single-bit "register" representing the Overflow flag ND: 6, // single-bit "register" representing the No Divide flag + PD: 7, // single-bit "register" representing the Pushdown Overflow flag }; DebuggerPDP10.REGNAMES = [ - "PC", "RA", "EA", "C0", "C1", "OV", "ND" + "PC", "RA", "EA", "C0", "C1", "OV", "ND", "PD" ]; /* diff --git a/modules/pdp10/lib/defines.js b/modules/pdp10/lib/defines.js index 6f326afd6..cc500eb96 100644 --- a/modules/pdp10/lib/defines.js +++ b/modules/pdp10/lib/defines.js @@ -56,6 +56,11 @@ var APPNAME = "PDPjs"; // this @define is the default application name */ var DEBUGGER = true; // this @define is overridden by the Closure Compiler to remove Debugger-related support +/* + * Set this to true to enable behavior compatible with SIMH. + */ +var SIMH = false; + /* * Combine all the shared globals and machine-specific globals into one machine-specific global object, * which all machine components should start using; eg: "if (PDP10.DEBUG) ..." instead of "if (DEBUG) ...". diff --git a/versions/pdpjs/1.34.2/pdp10-dbg.js b/versions/pdpjs/1.34.2/pdp10-dbg.js index 3de480536..9ff071604 100644 --- a/versions/pdpjs/1.34.2/pdp10-dbg.js +++ b/versions/pdpjs/1.34.2/pdp10-dbg.js @@ -31,8 +31,8 @@ var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi 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 ba?-b:b}});ka("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={ac:0,tb:1,cc:2,dc:3,ec:4,fc:5,gc:6,hc:7,$a:8,ic:9,ub:10,jc:11,kc:12,vb:13,lc:14,mc:15,nc:16,oc:17,pc:18,qc:19,rc:20,sc:21,tc:22,uc:23,vc:24,wc:25,xc: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,Za:65,$b:66,bc:67,yc:68,E:69,zc:70,Ac:71,Bc:72,Cc:73,Dc:74,Ec:75,Fc:76,Gc:77,Hc:78,Ic:79,Jc:80,Q:81, -Kc:82,Lc:83,Mc:84,Nc:85,Oc:86,Pc:87,Qc:88,Rc:89,yb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Sc:97,Tc:98,Uc:99,d:100,e:101,Vc:102,Wc:103,Xc:104,Yc:105,Zc:106,k:107,$c:108,ad:109,n:110,bd:111,p:112,q:113,r:114,cd:115,t:116,ed:117,fd:118,gd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,wb:127}; +var la=Math.pow(2,36),ma=-Math.pow(2,35),q={bc:0,ub:1,dc:2,ec:3,fc:4,gc:5,hc:6,ic:7,bb:8,jc:9,vb:10,kc:11,lc:12,wb:13,mc:14,nc:15,oc:16,pc:17,qc:18,rc:19,sc:20,tc:21,uc:22,vc:23,wc:24,xc:25,yc: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,ab:65,ac:66,cc:67,zc:68,E:69,Ac:70,Bc:71,Cc:72,Dc:73,Ec:74,Fc:75,Gc:76,Hc:77,Ic:78,Jc:79,Kc:80,Q:81, +Lc:82,Mc:83,Nc:84,Oc:85,Pc:86,Qc:87,Rc:88,Sc:89,yb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Tc:97,Uc:98,Vc:99,d:100,e:101,Wc:102,Xc:103,Yc:104,Zc:105,$c:106,k:107,ad:108,bd:109,n:110,cd:111,p:112,q:113,r:114,dd:115,t:116,fd:117,gd:118,hd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,xb:127}; function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0a&&-1=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b,c){b?12"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)} @@ -40,188 +40,189 @@ function Ca(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function Fa(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, g,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,g,e),f=[g,e]);return f} function Ga(a,b){var c,d={Y:null,T:null,na:null,ma:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.na=f.load;d.ma=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Aa=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(u(d.Y[0]),d=null):(u("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Ba=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(u(d.Y[0]),d=null):(u("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ua:!1,U:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.i=this.F=this.D=this.oa=null;w.push(this)}function pb(a,b,c){qb[a]&&b&&(qb[a][b]=c)}function rb(){return Date.now()||+new Date} +function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.gb=b.comment;this.Ab=b;this.exports={};this.I=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,Wa:!1,U:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.i=this.G=this.F=this.oa=null;w.push(this)}function pb(a,b,c){qb[a]&&b&&(qb[a][b]=c)}function rb(){return Date.now()||+new Date} function u(a){window&&window.alert(a)}function sb(a){var b=!1;window&&(b=window.confirm(a));return b}function tb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.b["S"+a]=[0,0,!1,!1,this.Kb,a];this.A=this.i=this.F=this.D=null;this.exports={hold:this.Cb,toggle:this.Vb,reset:this.Rb, -set:this.Ub};D(this)}p(Ub,v);l=Ub.prototype;l.reset=function(a){this.stop();a&&Wb(this,this.v=0)}; -l.ga=function(a,b,c,d){if(this.D&&this.D.ga(a,b,c,d)||this.i&&this.i.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[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(){Xb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Yb(a,b)}}(this,b),a.ontouchstart= -function(a,b){return function(c){Xb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Yb(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.D=a;this.F=b;this.i=c;this.A=d;Zb(this);$b(this)};l.pa=function(a,b){if(!b)if(this.W&&ac(),!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.g,this.v,this.u]);return a.data()}; -l.restore=function(a){if(a=a[0])bc(this,this.g=a[0]),Wb(this,this.v=a[1]),jc(this,a[2]);return!0};l.Rb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}$b(this);return!0};function kc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Zb(a,b){for(var c in a.B)kc(a,c,null!=b?b:a.B[c])}function lc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function $b(a){for(var b in a.b)lc(a,b,a.b[b][1])} -l.Cb=function(a,b,c){if(Xb(this,b)){if(c){var d=this;setTimeout(function(){Yb(d,b);a&&a()},+c);return!1}Yb(this,b)}return!0};l.Ub=function(a,b){if("SR"==a)return jc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.Vb=function(a){return Xb(this,a)?(Yb(this,a),!0):!1};function Xb(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1} -function Yb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Lb=function(a){a||this.i.j.K||(this.i.u=this.g%Kb,this.b[pc]&&this.b[pc][1]&&qc(this.i))};l.Mb=function(){};l.Gb=function(a){a||this.i.V()}; -l.Eb=function(a){if(!a&&!this.i.j.K)if(this.b[pc]&&this.b[pc][1])qc(this.i);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),rc(a,0,null),Gb(a,!1);else try{var b=this.i.Ja(1);0c;c++){var d=a,e="A"+c,g=b&1<c;c++){var d=a,e="D"+c,g=b&1<b;b++)a.b["S"+b][1]=a.u&1<a;a++)this.b["S"+a]=[0,0,!1,!1,this.Lb,a];this.A=this.i=this.G=this.F=null;this.exports={hold:this.Db,toggle:this.Wb,reset:this.Sb, +set:this.Vb};D(this)}p(Ub,v);l=Ub.prototype;l.reset=function(a){this.stop();a&&Wb(this,this.v=0)}; +l.ga=function(a,b,c,d){if(this.F&&this.F.ga(a,b,c,d)||this.i&&this.i.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[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(){Xb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Yb(a,b)}}(this,b),a.ontouchstart= +function(a,b){return function(c){Xb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Yb(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.A=d;Zb(this);$b(this)};l.pa=function(a,b){if(!b)if(this.W&&ac(),!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.f,this.v,this.u]);return a.data()}; +l.restore=function(a){if(a=a[0])bc(this,this.f=a[0]),Wb(this,this.v=a[1]),cc(this,a[2]);return!0};l.Sb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}$b(this);return!0};function kc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Zb(a,b){for(var c in a.B)kc(a,c,null!=b?b:a.B[c])}function lc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function $b(a){for(var b in a.b)lc(a,b,a.b[b][1])} +l.Db=function(a,b,c){if(Xb(this,b)){if(c){var d=this;setTimeout(function(){Yb(d,b);a&&a()},+c);return!1}Yb(this,b)}return!0};l.Vb=function(a,b){if("SR"==a)return cc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.Wb=function(a){return Xb(this,a)?(Yb(this,a),!0):!1};function Xb(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1} +function Yb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Mb=function(a){a||this.i.j.K||(this.i.u=this.f%Kb,this.b[pc]&&this.b[pc][1]&&qc(this.i))};l.Nb=function(){};l.Hb=function(a){a||this.i.V()}; +l.Fb=function(a){if(!a&&!this.i.j.K)if(this.b[pc]&&this.b[pc][1])qc(this.i);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),rc(a,0,null),Gb(a,!1);else try{var b=this.i.Ja(1);0c;c++){var d=a,e="A"+c,g=b&1<c;c++){var d=a,e="D"+c,g=b&1<b;b++)a.b["S"+b][1]=a.u&1<d.length){for(var e=0,g=Array(4096),f=0;f>>a.g;0g&&(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 Dc(Ec,e,g)}e=new zc(a,e,m,16384,d);Ac(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Fc[d]+" at "+pa(b)),!0):Dc(Gc,b,c)} -function xc(a,b){var c=a.b[(b&a.u)>>>a.g];a.v++;b=c.F(b&16383,b);a.v--;return b}function wc(a,b,c){var d=a.b[(b&a.u)>>>a.g];a.v++;d.D(c,b&16383,b);a.v--}function Bc(a){for(var b=0,c=[],d=0;d=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=ud(a)&&(a.da=a.ia=-1,Xc(a),a.V(),c=!0);c&&a.f(ud(a)+" cycles: checksum="+t(a.sa))}} -l.ga=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.D)if(a=d.D,a.j.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;ca.R/a.S?b=1:d=!0;a.W=b;b=a.Qa*a.W;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.D&&yd(a.D)}tc(a,a.J);a.J=0;a.H=rb();a.M=0;wd(a);return d}function zd(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ad(a){for(var b=[],c=0;c>>a.f;0g&&(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 Dc(Ec,e,g)}e=new zc(a,e,m,16384,d);Ac(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Fc[d]+" at "+pa(b)),!0):Dc(Gc,b,c)} +function xc(a,b){var c=a.b[(b&a.u)>>>a.f];a.v++;b=c.G(b&16383,b);a.v--;return b}function wc(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.v++;d.F(c,b&16383,b);a.v--}function Bc(a){for(var b=0,c=[],d=0;d=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=ad(a)&&(a.da=a.ia=-1,Xc(a),a.V(),c=!0);c&&a.g(ad(a)+" cycles: checksum="+t(a.sa))}} +l.ga=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.F)if(a=d.F,a.j.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;ca.R/a.S?b=1:d=!0;a.W=b;b=a.Sa*a.W;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.F&&yd(a.F)}tc(a,a.J);a.J=0;a.H=rb();a.M=0;wd(a);return d}function zd(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ad(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Bd(a,b){var c=a.N-=a.O;a.O=0;b&&(a.N=0);return c} -l.Sb=function(){if(this.j.K){this.ya>=this.Sa&&wd(this,!0);this.ja=0;this.ra=rb();if(this.M){var a=this.ra-this.M;a>this.Ra&&(this.H+=a,this.H>this.ra&&(this.H=this.ra))}try{do{var b=zd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Bd(this,!0);this.ja+=b;this.J+=b;uc(this,b);sc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Ta>=Cd&&(this.D&&I(this.D,void 0),this.Ta=0);break}}while(this.j.K)}catch(e){this.V();this.D&&this.D.stop(rb(),ud(this));Cb(this, -e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.ib;this.M=rb();var c=this.Ra;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.M-this.ra),d=this.M-this.H;d&&(this.R=Math.round(this.J/(10*d))/100,864E5<=d&&(this.P=0,vd(this)));if(0>c||this.Rc&&(this.H-=c),c=0;this.ya+=this.ja;this.M+=c;a(b,c)}}}; -function qc(a,b){if(!Db(a))if(a.j.K)a.f(a.toString()+" busy");else{vd(a);a.j.K=!0;a.j.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.D&&(b&&yd(a.D,!0),a.D.start(a.H,ud(a)));a.A||a.status("Started");setTimeout(a.ib,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){Bd(this);tc(this,this.J);this.J=0;this.j.K=!1;if(b=this.I.run)b.textContent="Run";this.D&&this.D.stop(rb(),ud(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var xd=30,Cd=15,Uc=["power","reset"]; -function Dd(a){var b=+a.model||1001;Tc.call(this,a,1E6);this.hb=b;this.cb=+a.addrReset||0;this.zb=Ed.bind(this);this.b=L.bind(this);this.ka=null;this.bb=[];this.j.complete=!1}p(Dd,Tc);l=Dd.prototype;l.reset=function(){this.status("Model "+this.hb);this.j.K&&this.V();this.g=this.B=this.za=0;this.u=this.qa=this.cb;this.gb=this.fb=this.Da=this.xb=!1;this.la=this.u;this.v=0;this.C=this.Ob;this.G=this.Zb;this.ka=null;Wc(this);this.j.error=!1;Tc.prototype.reset.call(this)};l.pb=function(){return 0}; -l.save=function(){var a=new H(this);a.set(0,[this.g,this.B,this.za,this.u,this.qa,this.la,this.v]);a.set(1,[]);a.set(2,[this.P,this.W,this.j.Z]);a.set(3,Fd(this));a.set(4,Ad(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.g=b.next().value;this.B=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.la=b.next().value;this.v=b.next().value;b=a[2];this.P=b[0];vd(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>>b.g].C(a&16383,a)};l.Zb=function(a,b){var c=this.F;a=this.la=a;c.b[(a&c.u)>>>c.g].G(b,a&16383,a)}; -l.Ja=function(a){this.j.complete=!0;var b=this.A?Id(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.N=this.O=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Jd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.ka||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Jd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.B=this.B&4194304?this.C(this.g):this.za=this.C(this.qa=this.u);this.B&=8388607;this.g=this.B&262143;if(a= -this.B>>18&15)this.g=this.g+this.C(a)&Lb;this.B&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Tb|0);0<=a&&this.zb(a)}while(0>4].call(this,a,a&15)}function M(a){this.b(a)}function Ld(a,b){var c=this.C(this.g),d=this.C(b);this.G(b,Md(a,d,c)+(c-(c&262143)))} -function Nd(a,b){var c=this.C(b);this.G(b,Md(a,c,0))}function Od(a,b){b=this.C(b);var c=this.C(this.g);this.G(this.g,Md(a,c,b)+(b-(b&262143)))}function Pd(a,b){var c=this.C(this.g),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Ob?262143:0}c=d;this.G(this.g,c);b&&this.G(b,c)}function Qd(a,b){var c=(this.C(this.g)&262143)*F,d=this.C(b);this.G(b,Md(a,d,c)+c)}function Rd(a,b){var c=this.g*F,d=this.C(b);this.G(b,Md(a,d,c)+c)} -function Sd(a,b){b=(this.C(b)&262143)*F;var c=this.C(this.g);this.G(this.g,Md(a,c,b)+b)}function Td(a,b){var c=this.C(this.g),d=(c&262143)*F,c=Md(a,c,d)+d;this.G(this.g,c);b&&this.G(b,c)}function Ud(a,b){var c=this.C(this.g)&262143,d=this.C(b);this.G(b,Vd(a,d,c)+c)}function Wd(a,b){var c=this.C(b);this.G(b,Vd(a,c,this.g)+this.g)}function Xd(a,b){b=this.C(b)&262143;var c=this.C(this.g);this.G(this.g,Vd(a,c,b)+b)} -function Yd(a,b){var c=this.C(this.g),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*F;break;case 384:d+=c>Nb?262143*F:0}c=d;this.G(this.g,c);b&&this.G(b,c)}function Zd(a,b){var c=this.C(this.g)/F|0,d=this.C(b);this.G(b,Vd(a,d,c)+c)}function $d(a,b){var c=this.C(b);this.G(b,Vd(a,c,0))}function ae(a,b){b=this.C(b)/F|0;var c=this.C(this.g);this.G(this.g,Vd(a,c,b)+b)}function be(a,b){var c=this.C(this.g),d=c/F|0,c=Vd(a,c,d)+d;this.G(this.g,c);b&&this.G(b,c)}function O(a){this.b(a)} -function L(a){this.f("undefined opcode: "+pa(a));Gd(this,-1);this.V()}function Vd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Md(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>Ob?262143:0}return b} +l.Tb=function(){if(this.j.K){this.za>=this.Ua&&wd(this,!0);this.ja=0;this.ra=rb();if(this.M){var a=this.ra-this.M;a>this.Ta&&(this.H+=a,this.H>this.ra&&(this.H=this.ra))}try{do{var b=zd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Bd(this,!0);this.ja+=b;this.J+=b;uc(this,b);sc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Va>=Cd&&(this.F&&I(this.F,void 0),this.Va=0);break}}while(this.j.K)}catch(e){this.V();this.F&&this.F.stop(rb(),ad(this));Cb(this, +e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.jb;this.M=rb();var c=this.Ta;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.M-this.ra),d=this.M-this.H;d&&(this.R=Math.round(this.J/(10*d))/100,864E5<=d&&(this.P=0,bd(this)));if(0>c||this.Rc&&(this.H-=c),c=0;this.za+=this.ja;this.M+=c;a(b,c)}}}; +function qc(a,b){if(!Db(a))if(a.j.K)a.g(a.toString()+" busy");else{bd(a);a.j.K=!0;a.j.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&yd(a.F,!0),a.F.start(a.H,ad(a)));a.A||a.status("Started");setTimeout(a.jb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){Bd(this);tc(this,this.J);this.J=0;this.j.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(rb(),ad(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var xd=30,Cd=15,Uc=["power","reset"]; +function Dd(a){var b=+a.model||1001;Tc.call(this,a,1E6);this.ib=b;this.fb=+a.addrReset||0;this.tb=Ed.bind(this);this.b=L.bind(this);this.ka=null;this.eb=[];this.j.complete=!1}p(Dd,Tc);l=Dd.prototype;l.reset=function(){this.status("Model "+this.ib);this.j.K&&this.V();this.f=this.B=this.Aa=0;this.u=this.qa=this.fb;this.Qa=this.hb=this.ya=this.zb=this.Ra=!1;this.la=this.u;this.v=0;this.C=this.Pb;this.D=this.$b;this.ka=null;Wc(this);this.j.error=!1;Tc.prototype.reset.call(this)};l.qb=function(){return 0}; +l.save=function(){var a=new H(this);a.set(0,[this.f,this.B,this.Aa,this.u,this.qa,this.la,this.v]);a.set(1,[]);a.set(2,[this.P,this.W,this.j.Z]);a.set(3,Fd(this));a.set(4,Ad(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.f=b.next().value;this.B=b.next().value;this.Aa=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.la=b.next().value;this.v=b.next().value;b=a[2];this.P=b[0];bd(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;dOb&&(a!=Pb?a=Qb-a:this.Qa=this.ya=!0);return a};function Hd(a,b){b?b==Pb?a.Qa=a.ya=!0:b=Qb-b:a.hb=a.ya=!0;return b}function Fd(a){var b=[];for(a=a.ka;a;)b.push(a.Xb),a=a.next;return b}l.Pb=function(a){var b=this.G;a=this.la=a;return b.b[(a&b.u)>>>b.f].C(a&16383,a)};l.$b=function(a,b){var c=this.G;a=this.la=a;c.b[(a&c.u)>>>c.f].D(b,a&16383,a)}; +l.Ja=function(a){this.j.complete=!0;var b=this.A?Id(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.N=this.O=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Jd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.ka||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Jd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.B=this.B&4194304?this.C(this.f):this.Aa=this.C(this.qa=this.u);this.B&=8388607;this.f=this.B&262143;if(a= +this.B>>18&15)this.f=this.f+this.C(a)&Lb;this.B&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.Aa/Tb|0);0<=a&&this.tb(a)}while(0>4].call(this,a,a&15)}function M(a){this.b(a)}function Ld(a,b){var c=this.C(this.f),d=this.C(b);this.D(b,Md(a,d,c)+(c-(c&262143)))} +function Nd(a,b){var c=this.C(b);this.D(b,Md(a,c,0))}function Od(a,b){b=this.C(b);var c=this.C(this.f);this.D(this.f,Md(a,c,b)+(b-(b&262143)))}function Pd(a,b){var c=this.C(this.f),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Ob?262143:0}c=d;this.D(this.f,c);b&&this.D(b,c)}function Qd(a,b){var c=(this.C(this.f)&262143)*F,d=this.C(b);this.D(b,Md(a,d,c)+c)}function Rd(a,b){var c=this.f*F,d=this.C(b);this.D(b,Md(a,d,c)+c)} +function Sd(a,b){b=(this.C(b)&262143)*F;var c=this.C(this.f);this.D(this.f,Md(a,c,b)+b)}function Td(a,b){var c=this.C(this.f),d=(c&262143)*F,c=Md(a,c,d)+d;this.D(this.f,c);b&&this.D(b,c)}function Ud(a,b){var c=this.C(this.f)&262143,d=this.C(b);this.D(b,Vd(a,d,c)+c)}function Wd(a,b){var c=this.C(b);this.D(b,Vd(a,c,this.f)+this.f)}function Xd(a,b){b=this.C(b)&262143;var c=this.C(this.f);this.D(this.f,Vd(a,c,b)+b)} +function Yd(a,b){var c=this.C(this.f),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*F;break;case 384:d+=c>Nb?262143*F:0}c=d;this.D(this.f,c);b&&this.D(b,c)}function Zd(a,b){var c=this.C(this.f)/F|0,d=this.C(b);this.D(b,Vd(a,d,c)+c)}function $d(a,b){var c=this.C(b);this.D(b,Vd(a,c,0))}function ae(a,b){b=this.C(b)/F|0;var c=this.C(this.f);this.D(this.f,Vd(a,c,b)+b)}function be(a,b){var c=this.C(this.f),d=c/F|0,c=Vd(a,c,d)+d;this.D(this.f,c);b&&this.D(b,c)}function O(a){this.b(a)} +function L(a){this.g("undefined opcode: "+pa(a));Gd(this,-1);this.V()}function Vd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Md(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>Ob?262143:0}return b} var Kd=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.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,b){this.G(b,this.C(this.g))},function(a,b){this.G(b,this.g)},function(a,b){this.G(this.g,this.C(b))},function(a,b){b&&this.G(b,this.C(this.g))},function(a,b){a=this.C(this.g);a=a/F|(a&262143)*F;this.G(b,a)},function(a,b){this.G(b,this.g*F)},function(a,b){a=this.C(b);a=a/F|(a&262143)*F;this.G(this.g,a)},function(a,b){a=this.C(this.g);a=a/F|(a&262143)*F;this.G(this.g,a);b&&this.G(b,a)},function(a, -b){this.G(b,Hd(this,this.C(this.g)))},function(a,b){this.G(b,this.g?Qb-this.g:0)},function(a,b){this.G(this.g,Hd(this,this.C(b)))},function(a,b){a=Hd(this,this.C(this.g));this.G(this.g,a);b&&this.G(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)},L,function(a,b){a=this.C(b);this.G(b,this.C(this.g));this.G(this.g,a)},function(a,b){a=!1;for(var c=this.C(b),d=c/F|0,c=c&262143;!a;)this.G(c,this.C(d)),c==this.g&&(a=!0),d=d+1&262143, -c=c+1&262143,this.j.K||(this.G(b,d*F+c),a||Gd(this,-1),a=!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)},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,b){this.D(b,this.C(this.f))},function(a,b){this.D(b,this.f)},function(a,b){this.D(this.f,this.C(b))},function(a,b){b&&this.D(b,this.C(this.f))},function(a,b){a=this.C(this.f);a=a/F|(a&262143)*F;this.D(b,a)},function(a,b){this.D(b,this.f*F)},function(a,b){a=this.C(b);a=a/F|(a&262143)*F;this.D(this.f,a)},function(a,b){a=this.C(this.f);a=a/F|(a&262143)*F;this.D(this.f,a);b&&this.D(b,a)},function(a, +b){this.D(b,Hd(this,this.C(this.f)))},function(a,b){this.D(b,this.f?Qb-this.f:0)},function(a,b){this.D(this.f,Hd(this,this.C(b)))},function(a,b){a=Hd(this,this.C(this.f));this.D(this.f,a);b&&this.D(b,a)},function(a,b){this.D(b,this.abs(this.C(this.f)))},function(a,b){this.D(b,this.f)},function(a,b){this.D(this.f,this.abs(this.C(b)))},function(a,b){a=this.abs(this.C(this.f));this.D(this.f,a);b&&this.D(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)},L,function(a,b){a=this.C(b);this.D(b,this.C(this.f));this.D(this.f, +a)},function(a,b){a=!1;for(var c=this.C(b),d=c/F|0,c=c&262143;!a;)this.D(c,this.C(d)),c==this.f&&(a=!0),d=d+1&262143,c=c+1&262143,this.j.K||(this.D(b,d*F+c),a||Gd(this,-1),a=!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)},L,function(a){this.b(a)},function(a,b){a=this.C(b);a+=262145;this.D(a&262143,this.C(this.f));a>=Mb&&(a-=Mb);a/F|0||(this.Ra=!0);this.D(b,a)},function(a,b){a=this.C(b);var c=this.C(a&262143);this.D(this.f,c); +this.f==b&&(a=c);a-=262145;0>a&&(a+=Mb);262143==(a/F|0)&&(this.Ra=!0);this.D(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)},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)},Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd, -Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,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)},Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,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 ce(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.g=a.alias;"string"==typeof this.g&&(this.g=eval(this.g));this.v=a.file;this.H=qa(this.v);if(this.v){a=this.v;var b=ra(this.H);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.b=a.Y,c.T=a.T):c.v=null);de(c)})}}p(ce,v); -ce.prototype.va=function(a,b,c,d){this.F=b;this.i=c;this.A=d;de(this)};ce.prototype.pa=function(){this.T&&(this.A&&ee(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};ce.prototype.fa=function(){return!0}; -function de(a){if(!Eb(a)){if(a.v){if(!a.b||!a.F)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Cb(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.u,8,!0)+")");else{var b;b=a.B;if(Cc(a.F,b,a.u,Kc)){var c;for(c=0;c>>g.g;0>>= -g.g;0>>a.g;0f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h=q.Za&&c<=q.yb&&(b=c-(q.Za-q.tb));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.vb&&(b=q.ub);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.D=a;this.F=b;this.i=c;this.A=d;D(this)}; -l.rb=function(a){if(!this.b){var b=Vc(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.Ka)return;c=Ca(c[1]);if(this.b=ub(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.pa=function(a,b){if(!b)if(this.rb(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.g.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d>>g.f;0>>= +g.f;0>>a.f;0f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h=q.ab&&c<=q.yb&&(b=c-(q.ab-q.ub));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.wb&&(b=q.vb);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.F=a;this.G=b;this.i=c;this.A=d;D(this)}; +l.sb=function(a){if(!this.b){var b=Vc(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.Ka)return;c=Ca(c[1]);if(this.b=ub(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.pa=function(a,b){if(!b)if(this.sb(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.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.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.P?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(Ca(b.substring(c,g))),c=g+1}}return a} function me(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<>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g":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=ne(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1,U--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e} +function oe(a,b,c,d){var e;null!=b?(e=a.rb(b),0<=e?e=a.Za(e):(e=a.W[b],null==e&&(e=na(b,a.ba))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e} +function qe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4>=1,U--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e} function re(a,b){if(b)return qe(a,b,a.W[b]);var c=0;for(b in a.W)qe(a,b,a.W[b]),c++;return 0>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var pe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; -function se(a){ke.call(this,a);this.ya=!1;this.la=!0;this.xa=Q();this.L=Q(0);this.ja=Q(0);this.da=Q(0);this.H=[];this.b=this.M=this.J=[];te(this);this.R=this.ka=0;this.g=[];this.sa=void 0;ue(this);this.A=this;this.qa={};this.X=this.lb=0;this.S=null;this.O=[];ve(this,a.messages);this.ua=a.commands;this.N=0;this.Da=this.ta=null;this.B=this.Ca=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return td(b,a)}):void 0===global[B]&&(global[B]=function(a){return td(b, -a)})}p(se,ke);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function Q(a,b,c){return{w:void 0===a?null:a,ob:void 0===b?!1:b,ea:!1,ba:c}}function we(a,b,c,d){a.w=b;a.ob=c||!1;a.ea=!1;a.ba=d}function xe(a){return[a.w,a.ob,a.ba,a.ea,a.Oa]}function ye(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.jb=le(a,c.Oa=b[4]));return c}l=se.prototype; -l.va=function(a,b,c,d){this.F=b;this.D=a;this.i=c;this.ha=a.u;(a=Vc(a,"messages"))&&ve(this,a);ze(this,function(a){a:{var b=d.F.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c,d.ja));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.F.g;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=Fc[c],n&&d.f(t(n.id,8)+" %"+t(e<>>d.G.f;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.g("..."):(c=n.type,m=Fc[c],n&&d.g(t(n.id,8)+" %"+t(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d>23&&a.i.qa==b&&(b=Gd(a.i,1)));if(0d&&(d=a.i.C(b)),0<=d&&(we(a.g[a.R],b),++a.R==a.g.length&&(a.R=0)));return!1} -function xf(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Rb|0,r;for(r in yf)if(f=yf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=zf;m=n&3;break;case 32256:k=Af;m=n&7;break;case 29248:k=Bf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Cf&&(k="B");k=Df[f||0]+k;k=Ba(k,8);f?(k=28700==h?k+K(a,g/Sb&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+=Be(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+Be(k),null== -e.w)break;while(e.w!=b.w)}h+=Ba(f,16)+g;c&&(h=Ba(h,48)+";"+(c||""),h=a.i.j.Ea?h+("cycles="+ud(a.i).toString()+" cs="+t(a.i.sa)):h+(null!=d?"="+d.toString():""));return h}function te(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b>>d.g],!1)}a.M=["br"];if(a.J)for(b=1;b>>d.g],!0);a.J=["bw"];a.ra=0;a.ka=0} -l.Ba=function(a,b,c){var d=!0;c||Ef(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.F;g.b[e>>>g.g].Ba(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(Ff(this,a,a.length-1,"set"),ue(this)));return d};function Ef(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f>>d.g],b==a.J));h.ea||ue(a);break}}return g} -function Gf(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,g=pa(d,2);we(e.xa,d);g+="="+K(e,e.wa(e.xa),36)+" ";c+=g}if(b){b="";for(d=0;d=Ge?1:d==Ee?23:18)+" "),b+=e;c+="\n"+b}return c}l.mb=function(a,b){return a[0]>b[0]?1:a[0]>>0,f],r=Da(n,k,a.mb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({dd:b,w:c,Db:d,T:e,kb:g})}function Jf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b>>0,h=g.Db;if(e>=f&&eh[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);h=a.da;m=b;h.w=m.w;h.ea=m.ea;h.ba=m.ba;a.f(xf(a,b,f,g));e-=b.w-k;c++}}} -function Hf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(tf+b):(a.P&&(a.f("ended assemble at "+K(a,a.da.w)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Eb(a)&&0n||"z"Cf&&(bd="B");if(pg==Df[Pe]+bd){Oe=29248!=cc?Ja:(Ja&3)<<1|(Ja&12)<<2;y=(ad|Oe<<6)*Rb;break}}if(0<= -y)break}if(0<=y)break}if(0<=y)if(Me)for(var cd=Me.split(","),fb=0;fbE||127E||15E||262143< -E){a.f("memory address out of range: "+V[2]);y=-1;break}y+=E;if(V[3]){E=P(a,V[3]);if(void 0==E){y=-1;break}if(0>E||15X.length&&(a.f("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var hd=[];"call"==Ve&&(hb=1E5,hd=["CALL"]);for(void 0!==Ue&&a.f(N+" instructions earlier:");0=X.length&&(R=0);a.sa=N;Xe++;hb--}}Xe||(a.f("no "+We+"history available"),a.sa=void 0)}else{var Pa=T(a,W,a.ja);if(Pa){var ta=0,$e="ds"==Ma;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||sg,ta=oe(a,ia);else{var af=T(a,ia);af&&(ta=af.w-Pa.w)}0>ta&&(ta=0);65536ef;ef++)cf+=String.fromCharCode((ec%64|0)+32),ec/=64}ua&&(ua+="\n");ua=$e?ua+(va+","):ua+(W+": "+va+(0>df?" "+cf:""))}ua&&a.f(ua);a.ba=ug}}}}break;case "e":if("else"==f[0])break;var ff,gf,hf=f[0],kd=f[1];"e"==hf||"ew"==hf?(ff=a.wa,gf=a.ab):kd=null;if(null==kd)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var fc=T(a,kd,a.ja);if(fc)for(var gc=2;gcod;){for(var wa=null,yg=256;65536>kb.w>>>0;){pd.w=a.wa(kb,2);if(null==kb.w||!yg--)break;if(!(pd.w&1)){for(var zg=a,hc=pd,kf=null,lb=hc.w,lf=lb,qd=1;6>=qd&&lb;qd++){if(2> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bVf){if(Wf(d,this.M)){this.B=new H(this,"1.34.2",eg);Wf(this.B)&&(fg(this,d),a=gg,hg(this.B));this.B.set(bg,Ea());ig(this.B);var e=this.b&&!this.L;if(a==cg||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=ag(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Wf(d,f):("error"==g&&"no machine state"!= -f?(this.ca("Error: "+f),"unable to verify user"==f&&(Sa(jg,""),this.g=null)):this.f(g+": "+f),hg(d),Wf(d)?(c=ag(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else a==gg&&d.clear()}else Zf(this);delete this.M;delete this.J}e=tb(this.id);for(g=0;ga[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.i&&(kg(this,this.i,b,c,a),I(this,-2),this.i.Z());this.P&&(fg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0}; -function fg(a,b){if(sb("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.g||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}} -function Pf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.2"),f=new H(a,"1.34.2",$f),h=Ea();f.set(bg,h);g.set(bg,h);g.set(lg,"1.34.2");g.set(mg,window?window.location.href:null);g.set(ng,window?window.navigator.userAgent:"");a.i&&a.i.fa&&(c&&(b&&(a.i.j.Z=a.i.j.K),a.i.V()),d=a.i.fa(b,c),"object"===typeof d&&g.set(a.i.id,d),c&&(a.i.j.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;kd&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d>23&&a.i.qa==b&&(b=Gd(a.i,1)));if(0d&&(d=a.i.C(b)),0<=d&&(we(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1} +function Af(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Rb|0,r;for(r in Bf)if(f=Bf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Cf;m=n&3;break;case 32256:k=Df;m=n&7;break;case 29248:k=Ef,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Ff&&(k="B");k=Gf[f||0]+k;k=Ba(k,8);f?(k=28700==h?k+K(a,g/Sb&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+=Be(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+Be(k),null== +e.w)break;while(e.w!=b.w)}h+=Ba(f,16)+g;c&&(h=Ba(h,48)+";"+(c||""),h=a.i.j.Ea?h+("cycles="+ad(a.i).toString()+" cs="+t(a.i.sa)):h+(null!=d?"="+d.toString():""));return h}function te(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0} +l.Ca=function(a,b,c){var d=!0;c||Hf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.g("invalid address: "+K(this,b.w)),d=!1;else{var g=this.G;g.b[e>>>g.f].Ca(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(If(this,a,a.length-1,"set"),ue(this)));return d};function Hf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f>>d.f],b==a.J));h.ea||ue(a);break}}return g} +function Jf(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,g=pa(d,2);we(e.xa,d);g+="="+K(e,e.wa(e.xa),36)+" ";c+=g}if(b){b="";for(d=0;d=Ge?1:d==Ee?23:18)+" "),b+=e;c+="\n"+b}return c}l.nb=function(a,b){return a[0]>b[0]?1:a[0]>>0,f],r=Da(n,k,a.nb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({ed:b,w:c,Eb:d,T:e,lb:g})}function Mf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b>>0,h=g.Eb;if(e>=f&&eh[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(f=h[3],g=null);h=a.da;m=b;h.w=m.w;h.ea=m.ea;h.ba=m.ba;a.g(Af(a,b,f,g));e-=b.w-k;c++}}} +function Kf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(vf+b):(a.P&&(a.g("ended assemble at "+K(a,a.da.w)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Eb(a)&&0n||"z"Ff&&(ed="B");if(sg==Gf[Re]+ed){Qe=29248!=dc?Ja:(Ja&3)<<1|(Ja&12)<<2;y=(dd|Qe<<6)*Rb;break}}if(0<= +y)break}if(0<=y)break}if(0<=y)if(Oe)for(var fd=Oe.split(","),fb=0;fbE||127E||15E||262143< +E){a.g("memory address out of range: "+V[2]);y=-1;break}y+=E;if(V[3]){E=P(a,V[3]);if(void 0==E){y=-1;break}if(0>E||15X.length&&(a.g("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var kd=[];"call"==Xe&&(hb=1E5,kd=["CALL"]);for(void 0!==We&&a.g(N+" instructions earlier:");0=X.length&&(R=0);a.sa=N;Ze++;hb--}}Ze||(a.g("no "+Ye+"history available"),a.sa=void 0)}else{var Pa=T(a,W,a.ja);if(Pa){var ta=0,bf="ds"==Ma;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||vg,ta=oe(a,ia);else{var cf=T(a,ia);cf&&(ta=cf.w-Pa.w)}0>ta&&(ta=0);65536gf;gf++)ef+=String.fromCharCode((fc%64|0)+32),fc/=64}ua&&(ua+="\n");ua=bf?ua+(va+","):ua+(W+": "+va+(0>ff?" "+ef:""))}ua&&a.g(ua);a.ba=xg}}}}break;case "e":if("else"==f[0])break;var hf,jf,kf=f[0],nd=f[1];"e"==kf||"ew"==kf?(hf=a.wa,jf=a.cb):nd=null;if(null==nd)a.g("edit memory commands:"),a.g("\tew [a] [...] edit words at address a");else{var gc=T(a,nd,a.ja);if(gc)for(var hc=2;hcrd;){for(var wa=null,Bg=256;65536>kb.w>>>0;){sd.w=a.wa(kb,2);if(null==kb.w||!Bg--)break;if(!(sd.w&1)){for(var Cg=a,ic=sd,mf=null,lb=ic.w,nf=lb,td=1;6>=td&&lb;td++){if(2tf)a.g("step commands:"),a.g("\tp\tstep over instruction"),a.g("\tpr\tstep over instruction with register update");else if(a.N)a.g("step in progress");else{var uf=Q(a.i.u);a.wa(uf);a.N?(a.Ca(a.b,uf,!0),Me(a)||(a.F&&yd(a.F),a.N=0)):Rf(a,tf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();break}xf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16== +nb)a.ba=nb;else{a.g("invalid base: "+nb);break}}a.g("default base: "+a.ba);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.i.da=ob;break;case "start":a.i.ta=ob;break;case "stop":a.i.ia=ob;break;default:a.g("unknown cs option");break a}void 0!==ob&&Xc(a.i);a.g("checksums "+(a.i.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(bd(a.i,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.i.S.toFixed(2)+"Mhz")+" ("+a.i.W+ +"x)");break;default:if(f[1]){a.g("unknown option: "+f[1]);break}case "?":a.g("debugger options:"),a.g("\tbase #\t\tset default base to #"),a.g("\tcs int #\tset checksum cycle interval to #"),a.g("\tcs start #\tset checksum cycle start count to #"),a.g("\tcs stop #\tset checksum cycle stop count to #"),a.g("\tsp #\t\tset speed multiplier to #")}break;case "t":Rf(a,f[0],f[1]);break;case "u":yf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Of(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.g((Jb||"PDP10")+ +" version 1.34.2 ("+a.i.ib+",RELEASE)");a.g(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Qf(a,b.substr(1));break}var ud="commands:",vd;for(vd in Tf)ud+="\n"+Ba(vd,9)+Tf[vd];Id(a)||(ud+="\nnote: history disabled if no exec breakpoints");a.g(ud);break;default:g=!0}g&&(a.g("unknown command: "+b),d=!1)}}catch(wf){a.g("debugger error: "+(wf.stack||wf.message)),d=!1}return d}function $c(a,b,c){b=le(a,b,c);for(var d in b)if(!Kf(a,b[+d]))return!1;return!0} +var Tf={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ff=20,Gf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI 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(" "), +De=0,Ee=1,Fe=2,Ge=3,He=4,Ie=5,Je=6,Ke=7,Ce="PC RA EA C0 C1 OV ND PD".split(" "),Uf={},Bf=(Uf[28672]={0:101},Uf[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},Uf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ff,9216:53,9472:52, +9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Uf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Uf[29248]={24576:79,24640:80,25088:81,25152:82},Uf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97, +28692:98,28696:99,28700:100},Uf),Cf=["","I","M","S"],Df=" L E LE A GE N G".split(" "),Ef="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Le=1E3,vf=">> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bYf){if(Zf(d,this.M)){this.B=new H(this,"1.34.2",hg);Zf(this.B)&&(ig(this,d),a=jg,kg(this.B));this.B.set(eg,Ea());lg(this.B);var e=this.b&&!this.L;if(a==fg||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=dg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Zf(d,f):("error"==g&&"no machine state"!= +f?(this.ca("Error: "+f),"unable to verify user"==f&&(Sa(mg,""),this.f=null)):this.g(g+": "+f),kg(d),Zf(d)?(c=dg(d),e=!0):c=!1))}e&&bg(this,c?d:null)}else a==jg&&d.clear()}else bg(this);delete this.M;delete this.J}e=tb(this.id);for(g=0;ga[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.i&&(ng(this,this.i,b,c,a),I(this,-2),this.i.Z());this.P&&(ig(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0}; +function ig(a,b){if(sb("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.f||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}} +function Sf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.2"),f=new H(a,"1.34.2",cg),h=Ea();f.set(eg,h);g.set(eg,h);g.set(og,"1.34.2");g.set(pg,window?window.location.href:null);g.set(qg,window?window.navigator.userAgent:"");a.i&&a.i.fa&&(c&&(b&&(a.i.j.Z=a.i.j.K),a.i.V()),d=a.i.fa(b,c),"object"===typeof d&&g.set(a.i.id,d),c&&(a.i.j.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k=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.M)){c=a.i.j.K;d=!!(a.i.v&8);if(0>=b||60<=(a.L+=b)){e=a.i.u;if(a.I.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?pa(e,void 0):t(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.g=a.i.u:0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/\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/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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);Kg(a,b,c)}})}else c(a,null)} -function Lg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function f(a){g("Error: "+a);m&&(--Hg||cb(!0));m=!1}var h,k,m=!0;Hg++;qb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=n:z.appendChild(document.createTextNode(n));r.appendChild(z)}d|| -(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Ig(d,null,a,null,!1,g,function(a,e){e?(pb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Hg||cb(!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),--Hg|| -cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Ig(c,b,a,e,!0,g,n):Jg(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){cb(!1);return Lg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Lg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")}; +function I(a,b){if(a.i){var c=a.i,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Da+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Da=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.i.j.K;d=!!(a.i.v&8);if(0>=b||60<=(a.L+=b)){e=a.i.u;if(a.I.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?pa(e,void 0):t(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.f=a.i.u:0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/\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/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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);Lg(a,b,c)}})}else c(a,null)} +function Mg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function f(a){g("Error: "+a);m&&(--Ig||cb(!0));m=!1}var h,k,m=!0;Ig++;qb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=n:z.appendChild(document.createTextNode(n));r.appendChild(z)}d|| +(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Jg(d,null,a,null,!1,g,function(a,e){e?(pb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ig||cb(!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),--Ig|| +cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Jg(c,b,a,e,!0,g,n):Kg(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){cb(!1);return Mg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Mg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")}; window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!yb[a]){for(var c=!0,d=yb,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;na?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); -var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={Bb:0,Sa:1,Db:2,Eb:3,Fb:4,Gb:5,Hb:6,Ib:7,Ja:8,Jb:9,Ta:10,Kb:11,Lb:12,Ua:13,Mb:14,Nb:15,Ob:16,Pb:17,Qb:18,Rb:19,Sb:20,Tb:21,Ub:22,Vb:23,Wb:24,Xb:25,Yb: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,Ia:65,Ab:66,Cb:67,Zb:68,E:69,$b:70,ac:71,bc:72,cc:73,dc:74,ec:75,fc:76,gc:77,hc:78,ic:79,jc:80,Q:81, -kc:82,lc:83,mc:84,nc:85,oc:86,pc:87,qc:88,rc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,sc:97,tc:98,uc:99,d:100,e:101,vc:102,wc:103,xc:104,yc:105,zc:106,k:107,Ac:108,Bc:109,n:110,Cc:111,p:112,q:113,r:114,Dc:115,t:116,Ec:117,Fc:118,Gc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Va:127}; +var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={Bb:0,Ta:1,Db:2,Eb:3,Fb:4,Gb:5,Hb:6,Ib:7,Ka:8,Jb:9,Ua:10,Kb:11,Lb:12,Va:13,Mb:14,Nb:15,Ob:16,Pb:17,Qb:18,Rb:19,Sb:20,Tb:21,Ub:22,Vb:23,Wb:24,Xb:25,Yb: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,Ja:65,Ab:66,Cb:67,Zb:68,E:69,$b:70,ac:71,bc:72,cc:73,dc:74,ec:75,fc:76,gc:77,hc:78,ic:79,jc:80,Q:81, +kc:82,lc:83,mc:84,nc:85,oc:86,pc:87,qc:88,rc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,sc:97,tc:98,uc:99,d:100,e:101,vc:102,wc:103,xc:104,yc:105,zc:106,k:107,Ac:108,Bc:109,n:110,Cc:111,p:112,q:113,r:114,Dc:115,t:116,Ec:117,Fc:118,Gc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Wa:127}; function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0a&&-1=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ma(a,b){b?12"']/g,function(a){return ra[a]})}function sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={"&":"&","<":"<",">":">",'"':""","'":"'"}; function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} @@ -44,15 +44,15 @@ function u(){return"http://"+(window?window.location.host:"www.pcjs.org")}functi function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1} function Aa(a){if(!Ba){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function y(a){z.init.push(a)} function Da(a){if(Ea)try{for(var b=0;ba?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.v=this.f=this.o=this.s=this.ba=null;C.push(this)}function Ia(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function D(){return Date.now()||+new Date} +function B(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Na=b.comment;this.ab=b;this.exports={};this.l=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Ea:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.v=this.f=this.o=this.s=this.ba=null;C.push(this)}function Ia(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function D(){return Date.now()||+new Date} function x(a){window&&window.alert(a)}function Ka(a){var b=!1;window&&(b=window.confirm(a));return b}function E(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.a["S"+a]=[0,0,!1,!1,this.kb,a];this.v=this.f=this.o=this.s=null;this.exports={hold:this.cb,toggle:this.vb,reset:this.rb, set:this.ub};K(this)}n($a,B);k=$a.prototype;k.reset=function(a){this.stop();a&&bb(this,this.h=0)}; -k.U=function(a,b,c,d){if(this.s&&this.s.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.j[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.m[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){db(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){cb(a, +k.U=function(a,b,c,d){if(this.s&&this.s.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.l[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.l[b]=c,this.m[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.l[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){db(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){cb(a, b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){db(a,b)}}(this,b),!0):B.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.s=a;this.o=b;this.f=c;this.v=d;eb(this);fb(this)};k.V=function(a,b){if(!b)if(this.R&&gb(),!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 O(this);a.set(0,[this.b,this.h,this.g]);return a.data()}; -k.restore=function(a){if(a=a[0])hb(this,this.b=a[0]),bb(this,this.h=a[1]),ib(this,a[2]);return!0};k.rb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}fb(this);return!0};function jb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function eb(a,b){for(var c in a.m)jb(a,c,null!=b?b:a.m[c])}function kb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fb(a){for(var b in a.a)kb(a,b,a.a[b][1])} +k.restore=function(a){if(a=a[0])hb(this,this.b=a[0]),bb(this,this.h=a[1]),ib(this,a[2]);return!0};k.rb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}fb(this);return!0};function jb(a,b,c){if(a=a.l[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function eb(a,b){for(var c in a.m)jb(a,c,null!=b?b:a.m[c])}function kb(a,b,c){if(a=a.l[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fb(a){for(var b in a.a)kb(a,b,a.a[b][1])} k.cb=function(a,b,c){if(cb(this,b)){if(c){var d=this;setTimeout(function(){db(d,b);a&&a()},+c);return!1}db(this,b)}return!0}; k.ub=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.b];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.i(this.b);bb(this,this.h=a)}};k.jb=function(a){a||this.f.c.A||hb(this,this.g)};k.ib=function(a){a?(this.u=!0,eb(this,!0)):(this.u=!1,eb(this),ib(this,0))};k.kb=function(a,b){this.g=a?this.g|1<>>a.b];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.i(this.b);bb(this,this.h=a)}};k.jb=function(a){a||this.f.c.A||hb(this,this.g)};k.ib=function(a){a?(this.u=!0,eb(this,!0)):(this.u=!1,eb(this),ib(this,0))};k.kb=function(a,b){this.g=a?this.g|1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.a["S"+b][1]=a.g&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.b;0f&&(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 zb(Ab,e,f)}e=new R(a,e,p,16384,d);wb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Bb[d]+" at "+ma(b)),!0):zb(Cb,b,c)}function ub(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.j(c,b&16383,b);a.h--} -function xb(a){for(var b=0,c=[],d=0;d>>a.b;0f&&(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 zb(Ab,e,f)}e=new R(a,e,p,16384,d);wb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Bb[d]+" at "+ma(b)),!0):zb(Cb,b,c)}function ub(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.l(c,b&16383,b);a.h--} +function xb(a){for(var b=0,c=[],d=0;d=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Rb(a)&&(a.da=a.ea=-1,Qb(a),P(a),c=!0);c&&a.L(Rb(a)+" cycles: checksum="+t(a.na))}} -k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.c.B)a=!0;else{var b=null,c,h=E(a.id);for(c=0;ca.M/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.j.setSpeed;d&&(d.textContent=b);a.L("target speed: "+b)}c&&a.s&&(c=a.s,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}rb(a,a.u);a.u=0;a.m=D();a.D=0;Tb(a)}function Vb(a){for(var b=[],c=0;c=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Rb(a)&&(a.da=a.ea=-1,Qb(a),P(a),c=!0);c&&a.L(Rb(a)+" cycles: checksum="+t(a.na))}} +k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.l[b]=c,!0;case "run":return this.l[b]=c,c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.c.B)a=!0;else{var b=null,c,h=E(a.id);for(c=0;ca.M/a.O&&(b=1);a.W=b;b=a.Aa*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.l.setSpeed;d&&(d.textContent=b);a.L("target speed: "+b)}c&&a.s&&(c=a.s,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}rb(a,a.u);a.u=0;a.m=D();a.D=0;Tb(a)}function Vb(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Wb(a,b){var c=a.G-=a.I;a.I=0;b&&(a.G=0);return c} -k.sb=function(){if(this.c.A){this.pa>=this.Ba&&Tb(this,!0);this.ca=0;this.ja=D();if(this.D){var a=this.ja-this.D;a>this.Aa&&(this.m+=a,this.m>this.ja&&(this.m=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.C.length-1;0<=d;d--){var e=this.C[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=Wb(this,!0);this.ca+=b;this.u+=b;sb(this,b);qb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Xb&&(this.s&&Q(this.s,void 0),this.Ca=0);break}}while(this.c.A)}catch(f){P(this); -this.s&&this.s.stop(D(),Rb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Oa;this.D=D();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.D-this.ja;if(d=this.D-this.m)this.M=Math.round(this.u/(10*d))/100,864E5<=d&&(this.K=0,Sb(this));if(0>c||this.Mc&&(this.m-=c),c=0;this.pa+=this.ca;this.D+=c;a(b,c)}}}; -function pb(a){var b;a.c.error?(a.L(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.L(a.toString()+" busy");else{Sb(a);a.c.A=!0;a.c.Ga=!0;if(b=a.j.run)b.textContent="Halt";a.s&&a.s.start(a.m,Rb(a));a.v||a.status("Started");setTimeout(a.Oa,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Wb(a);rb(a,a.u);a.u=0;a.c.A=!1;if(b=a.j.run)b.textContent="Run";a.s&&a.s.stop(D(),Rb(a));b=!0;a.v||a.status("Stopped")}a.c.complete=void 0;return b}var Ub=30,Xb=15,Ob=["power","reset"]; -function Yb(a){var b=+a.model||1001;Nb.call(this,a,1E6);this.Ya=b;this.La=+a.addrReset||0;this.Za=Zb.bind(this);this.a=T.bind(this);this.ha=null;this.Ka=[];this.c.complete=!1}n(Yb,Nb);k=Yb.prototype;k.reset=function(){this.status("Model "+this.Ya);this.c.A&&P(this);this.b=this.w=this.qa=0;this.g=this.ya=this.La;this.Xa=this.Wa=this.Na=!1;this.ia=this.g;this.h=0;this.i=this.ob;this.l=this.zb;this.ha=null;Pb(this);this.c.error=!1;Nb.prototype.reset.call(this)};k.Qa=function(){return 0}; -k.save=function(){var a=new O(this);a.set(0,[this.b,this.w,this.qa,this.g,this.ya,this.ia,this.h]);a.set(1,[]);a.set(2,[this.K,this.W,this.c.J]);a.set(3,$b(this));a.set(4,Vb(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.b=b.next().value;this.w=b.next().value;this.qa=b.next().value;this.g=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.h=b.next().value;b=a[2];this.K=b[0];Sb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.b].i(a&16383,a)};k.zb=function(a,b){var c=this.o;a=this.ia=a;c.a[(a&c.g)>>>c.b].l(b,a&16383,a)}; -k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ga?0:1:-1;this.c.Ga=!1;this.G=this.I=a;this.h=this.h&-5|0;do{if(a=this.h)if(a=this.h&11)this.h&2?this.ha||(this.h&=-3):this.h&1&&this.h++,a=!1;if(a){if(this.h&4&&this.v.h(this.g,b)){P(this);break}if(0>b)break}this.h&=15;this.w=this.w&4194304?this.i(this.b):this.qa=this.i(this.ya=this.g);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.i(a)&Ta;this.w&4194304?a=-1:(this.g=(this.g+1)%M,a=this.qa/Za|0);0<=a&&this.Za(a)}while(0< -this.I);return this.c.complete?this.G-this.I:!1===this.c.complete?-1:0};y(function(){for(var a=J(document,I,"cpu"),b=0;b>4].call(this,a,a&15)}function U(a){this.a(a)}function cc(a,b){var c=this.i(this.b),d=this.i(b);this.l(b,V(a,d,c)+(c-(c&262143)))}function dc(a,b){var c=this.i(b);this.l(b,V(a,c,0))}function ec(a,b){b=this.i(b);var c=this.i(this.b);this.l(this.b,V(a,c,b)+(b-(b&262143)))} -function fc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Wa?262143:0}c=d;this.l(this.b,c);b&&this.l(b,c)}function gc(a,b){var c=(this.i(this.b)&262143)*N,d=this.i(b);this.l(b,V(a,d,c)+c)}function hc(a,b){var c=this.b*N,d=this.i(b);this.l(b,V(a,d,c)+c)}function ic(a,b){b=(this.i(b)&262143)*N;var c=this.i(this.b);this.l(this.b,V(a,c,b)+b)}function jc(a,b){var c=this.i(this.b),d=(c&262143)*N,c=V(a,c,d)+d;this.l(this.b,c);b&&this.l(b,c)} -function kc(a,b){var c=this.i(this.b)&262143,d=this.i(b);this.l(b,W(a,d,c)+c)}function lc(a,b){var c=this.i(b);this.l(b,W(a,c,this.b)+this.b)}function mc(a,b){b=this.i(b)&262143;var c=this.i(this.b);this.l(this.b,W(a,c,b)+b)}function nc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*N;break;case 384:d+=c>Va?262143*N:0}c=d;this.l(this.b,c);b&&this.l(b,c)}function oc(a,b){var c=this.i(this.b)/N|0,d=this.i(b);this.l(b,W(a,d,c)+c)} -function pc(a,b){var c=this.i(b);this.l(b,W(a,c,0))}function qc(a,b){b=this.i(b)/N|0;var c=this.i(this.b);this.l(this.b,W(a,c,b)+b)}function rc(a,b){var c=this.i(this.b),d=c/N|0,c=W(a,c,d)+d;this.l(this.b,c);b&&this.l(b,c)}function X(a){this.a(a)}function T(a){this.L("undefined opcode: "+ma(a));this.g=(this.g+-1)%M;P(this)}function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*N;break;case 384:b=c>Va?262143*N:0}return b} +k.sb=function(){if(this.c.A){this.pa>=this.Ca&&Tb(this,!0);this.ca=0;this.ja=D();if(this.D){var a=this.ja-this.D;a>this.Ba&&(this.m+=a,this.m>this.ja&&(this.m=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.C.length-1;0<=d;d--){var e=this.C[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=Wb(this,!0);this.ca+=b;this.u+=b;sb(this,b);qb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Da>=Xb&&(this.s&&Q(this.s,void 0),this.Da=0);break}}while(this.c.A)}catch(f){P(this); +this.s&&this.s.stop(D(),Rb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Pa;this.D=D();c=this.Ba;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.D-this.ja;if(d=this.D-this.m)this.M=Math.round(this.u/(10*d))/100,864E5<=d&&(this.K=0,Sb(this));if(0>c||this.Mc&&(this.m-=c),c=0;this.pa+=this.ca;this.D+=c;a(b,c)}}}; +function pb(a){var b;a.c.error?(a.L(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.L(a.toString()+" busy");else{Sb(a);a.c.A=!0;a.c.Ha=!0;if(b=a.l.run)b.textContent="Halt";a.s&&a.s.start(a.m,Rb(a));a.v||a.status("Started");setTimeout(a.Pa,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Wb(a);rb(a,a.u);a.u=0;a.c.A=!1;if(b=a.l.run)b.textContent="Run";a.s&&a.s.stop(D(),Rb(a));b=!0;a.v||a.status("Stopped")}a.c.complete=void 0;return b}var Ub=30,Xb=15,Ob=["power","reset"]; +function Yb(a){var b=+a.model||1001;Nb.call(this,a,1E6);this.Ya=b;this.Ma=+a.addrReset||0;this.Za=Zb.bind(this);this.a=T.bind(this);this.ha=null;this.La=[];this.c.complete=!1}n(Yb,Nb);k=Yb.prototype;k.reset=function(){this.status("Model "+this.Ya);this.c.A&&P(this);this.b=this.w=this.qa=0;this.g=this.za=this.Ma;this.Oa=this.Xa=this.ya=!1;this.ia=this.g;this.h=0;this.i=this.ob;this.j=this.zb;this.ha=null;Pb(this);this.c.error=!1;Nb.prototype.reset.call(this)};k.Ra=function(){return 0}; +k.save=function(){var a=new O(this);a.set(0,[this.b,this.w,this.qa,this.g,this.za,this.ia,this.h]);a.set(1,[]);a.set(2,[this.K,this.W,this.c.J]);a.set(3,$b(this));a.set(4,Vb(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.b=b.next().value;this.w=b.next().value;this.qa=b.next().value;this.g=b.next().value;this.za=b.next().value;this.ia=b.next().value;this.h=b.next().value;b=a[2];this.K=b[0];Sb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;dWa&&(a!=Xa?a=Ya-a:this.Oa=this.ya=!0);return a};function ac(a,b){b?b==Xa?a.Oa=a.ya=!0:b=Ya-b:a.Xa=a.ya=!0;return b}function $b(a){var b=[];for(a=a.ha;a;)b.push(a.wb),a=a.next;return b}k.ob=function(a){var b=this.o;a=this.ia=a;return b.a[(a&b.g)>>>b.b].i(a&16383,a)};k.zb=function(a,b){var c=this.o;a=this.ia=a;c.a[(a&c.g)>>>c.b].j(b,a&16383,a)}; +k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ha?0:1:-1;this.c.Ha=!1;this.G=this.I=a;this.h=this.h&-5|0;do{if(a=this.h)if(a=this.h&11)this.h&2?this.ha||(this.h&=-3):this.h&1&&this.h++,a=!1;if(a){if(this.h&4&&this.v.h(this.g,b)){P(this);break}if(0>b)break}this.h&=15;this.w=this.w&4194304?this.i(this.b):this.qa=this.i(this.za=this.g);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.i(a)&Ta;this.w&4194304?a=-1:(this.g=(this.g+1)%M,a=this.qa/Za|0);0<=a&&this.Za(a)}while(0< +this.I);return this.c.complete?this.G-this.I:!1===this.c.complete?-1:0};y(function(){for(var a=J(document,I,"cpu"),b=0;b>4].call(this,a,a&15)}function U(a){this.a(a)}function cc(a,b){var c=this.i(this.b),d=this.i(b);this.j(b,V(a,d,c)+(c-(c&262143)))}function dc(a,b){var c=this.i(b);this.j(b,V(a,c,0))}function ec(a,b){b=this.i(b);var c=this.i(this.b);this.j(this.b,V(a,c,b)+(b-(b&262143)))} +function fc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Wa?262143:0}c=d;this.j(this.b,c);b&&this.j(b,c)}function gc(a,b){var c=(this.i(this.b)&262143)*N,d=this.i(b);this.j(b,V(a,d,c)+c)}function hc(a,b){var c=this.b*N,d=this.i(b);this.j(b,V(a,d,c)+c)}function ic(a,b){b=(this.i(b)&262143)*N;var c=this.i(this.b);this.j(this.b,V(a,c,b)+b)}function jc(a,b){var c=this.i(this.b),d=(c&262143)*N,c=V(a,c,d)+d;this.j(this.b,c);b&&this.j(b,c)} +function kc(a,b){var c=this.i(this.b)&262143,d=this.i(b);this.j(b,W(a,d,c)+c)}function lc(a,b){var c=this.i(b);this.j(b,W(a,c,this.b)+this.b)}function mc(a,b){b=this.i(b)&262143;var c=this.i(this.b);this.j(this.b,W(a,c,b)+b)}function nc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*N;break;case 384:d+=c>Va?262143*N:0}c=d;this.j(this.b,c);b&&this.j(b,c)}function oc(a,b){var c=this.i(this.b)/N|0,d=this.i(b);this.j(b,W(a,d,c)+c)} +function pc(a,b){var c=this.i(b);this.j(b,W(a,c,0))}function qc(a,b){b=this.i(b)/N|0;var c=this.i(this.b);this.j(this.b,W(a,c,b)+b)}function rc(a,b){var c=this.i(this.b),d=c/N|0,c=W(a,c,d)+d;this.j(this.b,c);b&&this.j(b,c)}function X(a){this.a(a)}function T(a){this.L("undefined opcode: "+ma(a));this.g=(this.g+-1)%M;P(this)}function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*N;break;case 384:b=c>Va?262143*N:0}return b} function V(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 bc=[U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, -function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.l(b,this.i(this.b))},function(a,b){this.l(b,this.b)},function(a,b){this.l(this.b,this.i(b))},function(a,b){b&&this.l(b,this.i(this.b))},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.l(b,a)},function(a,b){this.l(b,this.b*N)},function(a,b){a=this.i(b);a=a/N|(a&262143)*N;this.l(this.b,a)},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.l(this.b,a);b&&this.l(b,a)},function(a, -b){this.l(b,ac(this,this.i(this.b)))},function(a,b){this.l(b,this.b?Ya-this.b:0)},function(a,b){this.l(this.b,ac(this,this.i(b)))},function(a,b){a=ac(this,this.i(this.b));this.l(this.b,a);b&&this.l(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, -function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a,b){a=this.i(b);this.l(b,this.i(this.b));this.l(this.b,a)},function(a,b){a=!1;for(var c=this.i(b),d=c/N|0,c=c&262143;!a;)this.l(c,this.i(d)),c==this.b&&(a=!0),d=d+1&262143, -c=c+1&262143,this.c.A||(this.l(b,d*N+c),a||(this.g=(this.g+-1)%M),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.j(b,this.i(this.b))},function(a,b){this.j(b,this.b)},function(a,b){this.j(this.b,this.i(b))},function(a,b){b&&this.j(b,this.i(this.b))},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.j(b,a)},function(a,b){this.j(b,this.b*N)},function(a,b){a=this.i(b);a=a/N|(a&262143)*N;this.j(this.b,a)},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.j(this.b,a);b&&this.j(b,a)},function(a, +b){this.j(b,ac(this,this.i(this.b)))},function(a,b){this.j(b,this.b?Ya-this.b:0)},function(a,b){this.j(this.b,ac(this,this.i(b)))},function(a,b){a=ac(this,this.i(this.b));this.j(this.b,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.i(this.b)))},function(a,b){this.j(b,this.b)},function(a,b){this.j(this.b,this.abs(this.i(b)))},function(a,b){a=this.abs(this.i(this.b));this.j(this.b,a);b&&this.j(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a,b){a=this.i(b);this.j(b,this.i(this.b));this.j(this.b, +a)},function(a,b){a=!1;for(var c=this.i(b),d=c/N|0,c=c&262143;!a;)this.j(c,this.i(d)),c==this.b&&(a=!0),d=d+1&262143,c=c+1&262143,this.c.A||(this.j(b,d*N+c),a||(this.g=(this.g+-1)%M),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a,b){a=this.i(b);a+=262145;this.j(a&262143,this.i(this.b));a>=Ua&&(a-=Ua);this.j(b,a)},function(a,b){a=this.i(b);var c=this.i(a&262143);this.j(this.b,c);this.b==b&& +(a=c);a-=262145;0>a&&(a+=Ua);this.j(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, -function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc, -ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)}, function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(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 sc(a){B.call(this,"ROM",a);this.N=this.a=null;this.m=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.u=na(this.h);if(this.h){a=this.h;var b=oa(this.u);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.h=null);tc(c)})}}n(sc,B); +function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(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 sc(a){B.call(this,"ROM",a);this.N=this.a=null;this.m=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.u=na(this.h);if(this.h){a=this.h;var b=oa(this.u);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.h=null);tc(c)})}}n(sc,B); sc.prototype.Z=function(a,b,c,d){this.o=b;this.f=c;this.v=d;tc(this)};sc.prototype.V=function(){this.N&&(this.v&&this.v.a(this.id,this.m,this.g,this.N),delete this.N);return!0};sc.prototype.P=function(){return!0}; function tc(a){if(!Ra(a)){if(a.h){if(!a.a||!a.o)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+t(a.a.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")";a.c.error=!0;a.F(b)}else{b=a.m;if(yb(a.o,b,a.g,Gb)){var c;for(c=0;c>>f.b;0>>=f.b;0>>a.b;0g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h=q.Ia&&c<=q.$a&&(b=c-(q.Ia-q.Sa));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.Ua&&(b=q.Ta);d.ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation(); +Y.prototype.reset=function(){if(this.h&&!this.u){for(var a=this.o,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h=q.Ja&&c<=q.$a&&(b=c-(q.Ja-q.Ta));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.Va&&(b=q.Ua);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.s=a;this.o=b;this.f=c;this.v=d;K(this)}; -k.Ra=function(a){if(!this.a){var b=S(this.s,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.la)return;c=sa(c[1]);if(this.a=La(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.m=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.Ra(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0}; +k.Sa=function(a){if(!this.a){var b=S(this.s,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.la)return;c=sa(c[1]);if(this.a=La(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.m=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.Sa(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 O(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.b.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d\nLicense: GPL version 3 or later ");for(b=0;bBc){if(Z(d,this.D)){this.m=new O(this,"1.34.2",Kc);Z(this.m)&&(Lc(this,d),a=Mc,Nc(this.m));this.m.set(Hc,ta());Oc(this.m);var e=this.a&&!this.C;if(a==Ic||Ka("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=Gc(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&&(ya(Pc,""),this.b=null)):this.L(f+": "+g),Nc(d),Z(d)?(c=Gc(d),e=!0):c=!1))}e&&Ec(this,c?d:null)}else a==Mc&&d.clear()}else Ec(this);delete this.D;delete this.w}e=E(this.id);for(f=0;fa[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.f&&(Qc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.K&&(Lc(this,b),b.clear());!c&&this.m&&(this.m.clear(),delete this.m);this.h=0}; +g?(this.F("Error: "+g),"unable to verify user"==g&&(ya(Pc,""),this.b=null)):this.L(f+": "+g),Nc(d),Z(d)?(c=Gc(d),e=!0):c=!1))}e&&Ec(this,c?d:null)}else a==Mc&&d.clear()}else Ec(this);delete this.D;delete this.w}e=E(this.id);for(f=0;fa[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.l.power;d&&(d.textContent="Shutdown");this.f&&(Qc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.K&&(Lc(this,b),b.clear());!c&&this.m&&(this.m.clear(),delete this.m);this.h=0}; function Lc(a,b){if(Ka("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.b||"";b=b.toString();var d={};d.app=L;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;v("http://www.pcjs.org/api/v1/report",d,!0)}} function Rc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new O(a,"1.34.2"),g=new O(a,"1.34.2",Fc),h=ta();g.set(Hc,h);f.set(Hc,h);f.set(Sc,"1.34.2");f.set(Tc,window?window.location.href:null);f.set(Uc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.c.J=a.f.c.A),P(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.c.B=!1,!1===d&&(e=null)));for(var h=E(a.id),l=0;l=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.M.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.h&8);if(0>=b||60<=(a.C+=b)){e=a.f.g;if(a.j.PC){var f=a.v&&a.v.m||8,e=e||0,e=8==f?ma(e,void 0):t(e,void 0);a.j.PC.textContent!=e&&(a.j.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.g:0=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.M.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.h&8);if(0>=b||60<=(a.C+=b)){e=a.f.g;if(a.l.PC){var f=a.v&&a.v.m||8,e=e||0,e=8==f?ma(e,void 0):t(e,void 0);a.l.PC.textContent!=e&&(a.l.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.g:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"),