diff --git a/apps/pdp10/diags/klad/dakaa/TEST.MAC.txt b/apps/pdp10/diags/klad/dakaa/MYDAKAA.MAC.txt similarity index 100% rename from apps/pdp10/diags/klad/dakaa/TEST.MAC.txt rename to apps/pdp10/diags/klad/dakaa/MYDAKAA.MAC.txt diff --git a/apps/pdp10/diags/klad/dakaa/README.md b/apps/pdp10/diags/klad/dakaa/README.md index b41c73778..9e25df82b 100644 --- a/apps/pdp10/diags/klad/dakaa/README.md +++ b/apps/pdp10/diags/klad/dakaa/README.md @@ -7,7 +7,7 @@ machines: type: pdp10 config: /devices/pdp10/machine/ka10/test/debugger/machine.xml debugger: true - commands: a 30724 /apps/pdp10/diags/klad/dakaa/TEST.MAC + commands: a 30724 /apps/pdp10/diags/klad/dakaa/MYDAKAA.MAC --- PDP-10 KA10 Basic Instruction Diagnostic #1 @@ -34,7 +34,7 @@ This command: a 30724 /apps/pdp10/diags/klad/dakaa/TEST.MAC -will automatically read the [TEST.MAC](TEST.MAC.txt) source file (a slightly modified copy of [DAKAA.MAC](DAKAA.MAC.txt)), +will automatically read the [MYDAKAA.MAC](MYDAKAA.MAC.txt) source file (a slightly modified copy of [DAKAA.MAC](DAKAA.MAC.txt)), assemble it, and then load the binary output at the specified address. --- diff --git a/apps/pdp10/diags/klad/dakad/TEST.MAC.txt b/apps/pdp10/diags/klad/dakad/MYDAKAD.MAC.txt similarity index 100% rename from apps/pdp10/diags/klad/dakad/TEST.MAC.txt rename to apps/pdp10/diags/klad/dakad/MYDAKAD.MAC.txt diff --git a/apps/pdp10/diags/klad/dakad/README.md b/apps/pdp10/diags/klad/dakad/README.md index c6e73704b..7f4149935 100644 --- a/apps/pdp10/diags/klad/dakad/README.md +++ b/apps/pdp10/diags/klad/dakad/README.md @@ -7,7 +7,7 @@ machines: type: pdp10 config: /devices/pdp10/machine/ka10/test/debugger/machine.xml debugger: true - commands: a 30724 /apps/pdp10/diags/klad/dakad/TEST.MAC + commands: a 30724 /apps/pdp10/diags/klad/dakad/MYDAKAD.MAC --- PDP-10 KA10 Basic Instruction Diagnostic #4 @@ -34,7 +34,7 @@ This command: a 30724 /apps/pdp10/diags/klad/dakad/TEST.MAC -will automatically read the [TEST.MAC](TEST.MAC.txt) source file (a slightly modified copy of [DAKAD.MAC](DAKAD.MAC.txt)), +will automatically read the [MYDAKAD.MAC](MYDAKAD.MAC.txt) source file (a slightly modified copy of [DAKAD.MAC](DAKAD.MAC.txt)), assemble it, and then load the binary output at the specified address. Use the command `db 30724` to dump the first few words of binary data: diff --git a/apps/pdp10/tests/MACTEST.MAC.txt b/apps/pdp10/tests/MACTEST.MAC.txt index 8aa0d1455..ebf637531 100644 --- a/apps/pdp10/tests/MACTEST.MAC.txt +++ b/apps/pdp10/tests/MACTEST.MAC.txt @@ -14,11 +14,11 @@ EXP ZZ ;;WORD FULL ZZ==0> ;;START AGAIN WITH 0 ZZ=ZZ+9+"C"> ;;END OF IRPC - IFN ZZ, ;;IF NOT LEFT JUSTIFIED - ZZ=ZZ+9 ;;MOVE LEFT 9 BITS - SHIFT> ;;RECURSE - > ;;END OF DEFINE + IFN ZZ, ;;RECURSE + > ;;END OF DEFINE SHIFT ;;START MOVING LEFT EXP ZZ> ;;END OF IFN ZZ > ;END OF CODE MACRO diff --git a/apps/pdp10/tests/README.md b/apps/pdp10/tests/README.md index 9705ed697..846fd382d 100644 --- a/apps/pdp10/tests/README.md +++ b/apps/pdp10/tests/README.md @@ -5,8 +5,9 @@ permalink: /apps/pdp10/tests/ machines: - id: testka10 type: pdp10 - debugger: true config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a 100 /apps/pdp10/tests/MACTEST.MAC --- DEC PDP-10 Opcode Tests diff --git a/devices/pdp10/machine/ka10/test/debugger/README.md b/devices/pdp10/machine/ka10/test/debugger/README.md index 5e2794f05..4af850265 100644 --- a/devices/pdp10/machine/ka10/test/debugger/README.md +++ b/devices/pdp10/machine/ka10/test/debugger/README.md @@ -6,7 +6,6 @@ machines: - id: testka10 type: pdp10 debugger: true - commands: a 100 /apps/pdp10/tests/MACTEST.MAC --- PDP-10 Test Machine with Debugger diff --git a/modules/pdp10/lib/macro10.js b/modules/pdp10/lib/macro10.js index 83caa45a4..3fe8f11cb 100644 --- a/modules/pdp10/lib/macro10.js +++ b/modules/pdp10/lib/macro10.js @@ -39,11 +39,14 @@ if (NODE) { /** * Elements of tblMacros. * + * NOTE: The nLine property is not required; it's added for improved error reporting. + * * @typedef {{ * name:(string), * nOperand:(number), * aParms:(Array.), * aDefaults:(Array.), + * aValues:(Array.), * sText:(string), * nLine:(number) * }} @@ -53,11 +56,13 @@ var Mac; /** * Elements of tblSymbols. * + * NOTE: The nLine property is not required; it's added for improved error reporting. + * * @typedef {{ * name:(string), * value:(number), - * nLine:(number), - * nType:(number) + * nType:(number), + * nLine:(number) * }} */ var Sym; @@ -66,7 +71,7 @@ var Sym; * * Elements of aFixups. * - * NOTE: The nLine property is not required; it's added for DEBUG support. + * NOTE: The nLine property is not required; it's added for improved error reporting. * * @typedef {{ * nLocation:(number), @@ -181,9 +186,12 @@ class Macro10 { this.nLocation = this.nAddr; // advanced by the various genXXX() functions this.sOperator = null; // the active operator, if any - this.nMacroDef = 0; // the active MACRO definition state - this.sMacroDef = null; // the active MACRO definition name + this.nMacroDef = 0; // the active macro definition state + this.sMacroDef = null; // the active macro definition name this.chMacroOpen = this.chMacroClose = ''; + this.reLine = /\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i; + + this.macroCall = null; // the active macro being called, if any /** * If an ASCII/ASCIZ/SIXBIT pseudo-op is active, chASCII is set to the separator @@ -344,13 +352,16 @@ class Macro10 { } /** - * parseLine(sLine) + * parseLine(sLine, aParms, aValues, aDefaults) * * @this {Macro10} * @param {string} sLine (line contents) + * @param {Array.} [aParms] + * @param {Array.} [aValues] + * @param {Array.} [aDefaults] * @return {boolean} */ - parseLine(sLine) + parseLine(sLine, aParms, aValues, aDefaults) { var i; if (this.nMacroDef) { @@ -373,18 +384,51 @@ class Macro10 { sLine = this.addASCII(sLine); } - var reLine = /\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i; - var matchLine = sLine.match(reLine); - if (!matchLine || matchLine[4] && matchLine[4].slice(0, 1) != ';') { - this.error("failed to parse line: " + sLine); - return false; + var fParse = true; + var sLabel, sOperator = "", sOperands, sRemainder; + + while (fParse) { + var matchLine = sLine.match(this.reLine); + if (!matchLine || matchLine[4] && matchLine[4].slice(0, 1) != ';') { + this.error("failed to parse line: " + sLine); + return false; + } + fParse = false; + sOperator = matchLine[2].toUpperCase(); + if (sOperator == Macro10.PSEUDO_OP.IRP || sOperator == Macro10.PSEUDO_OP.IRPC) { + aParms = null; + } + if (aParms) { + for (var iParm = 0; iParm < aParms.length; iParm++) { + var sParm = aParms[iParm]; + var sReplace = aValues[iParm] || aDefaults[iParm] || ""; + var iSearch = 0; + var iLimit = sLine.length - matchLine[4].length; // set the limit at the start of the comment, if any + while (iSearch < iLimit) { + var iMatch = sLine.indexOf(sParm, iSearch); + if (iMatch < 0) break; + iSearch = iMatch + 1; + var iMatchEnd = iMatch + sParm.length; + var chPre = '', chPost = ''; + if ((!iMatch || !this.isSymbolChar(chPre = sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(chPost = sLine[iMatchEnd]))) { + /* + * If the "concatenation character" (') appears before (or after) the symbol being replaced, remove it. + */ + if (chPre == "'") iMatch--; + if (chPost == "'") iMatchEnd++; + sLine = sLine.substr(0, iMatch) + sReplace + sLine.substr(iMatchEnd); + iSearch = iMatch + sReplace.length; + fParse = true; + } + } + } + aParms = null; + } } - var sLabel = matchLine[1]; - var sOperator = matchLine[2].toUpperCase(); - var sOperands = matchLine[3].trim(); - var sComment = matchLine[4]; - var sRemainder = matchLine[3] + matchLine[4]; + sLabel = matchLine[1]; + sOperands = matchLine[3].trim(); + sRemainder = matchLine[3] + matchLine[4]; if (sLabel) { sLabel = sLabel.slice(0, -1); @@ -444,7 +488,9 @@ class Macro10 { case Macro10.PSEUDO_OP.DEFINE: case Macro10.PSEUDO_OP.IFE: + case Macro10.PSEUDO_OP.IFN: case Macro10.PSEUDO_OP.IRP: + case Macro10.PSEUDO_OP.IRPC: case Macro10.PSEUDO_OP.REPEAT: this.addMacro(sOperator, sOperands); break; @@ -471,12 +517,16 @@ class Macro10 { */ parseMacro(name, sOperands) { + var i; var macro = this.tblMacros[name]; if (!macro) return false; if (sOperands != null) { - var aValues = this.getValues(sOperands); - this.parseText(macro.sText, macro.aParms, aValues); + var macroPrev = this.macroCall; + this.macroCall = macro; + macro.aValues = this.getValues(sOperands, true); + this.parseText(macro.sText, macro.aParms, macro.aValues, macro.aDefaults); + this.macroCall = macroPrev; return true; } @@ -489,6 +539,19 @@ class Macro10 { } break; + case Macro10.PSEUDO_OP.IFN: + if (macro.nOperand) { + this.parseText(macro.sText); + } + break; + + case Macro10.PSEUDO_OP.IRP: + case Macro10.PSEUDO_OP.IRPC: + for (i = 0; i < macro.aValues.length; i++) { + this.parseText(macro.sText, macro.aParms, [macro.aValues[i]], []); + } + break; + case Macro10.PSEUDO_OP.REPEAT: while (macro.nOperand-- > 0) { this.parseText(macro.sText); @@ -514,42 +577,20 @@ class Macro10 { } /** - * parseText(sText, aParms, aValues) + * parseText(sText, aParms, aValues, aDefaults) * * @this {Macro10} * @param {string} sText * @param {Array.} [aParms] * @param {Array.} [aValues] + * @param {Array.} [aDefaults] */ - parseText(sText, aParms, aValues) + parseText(sText, aParms, aValues, aDefaults) { var asLines = sText.split(/\r?\n/); for (var iLine = 0; iLine < asLines.length; iLine++) { var sLine = asLines[iLine] + '\r\n'; - if (aParms) { - for (var iParm = 0; iParm < aParms.length; iParm++) { - var sParm = aParms[iParm]; - var sReplace = aValues[iParm] || ""; - var iSearch = 0; - while (true) { - var iMatch = sLine.indexOf(sParm, iSearch); - if (iMatch < 0) break; - iSearch = iMatch + 1; - var iMatchEnd = iMatch + sParm.length; - var chPre = '', chPost = ''; - if ((!iMatch || !this.isSymbolChar(chPre = sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(chPost = sLine[iMatchEnd]))) { - /* - * If the "concatenation character" (') appears before (or after) the symbol being replaced, remove it. - */ - if (chPre == "'") iMatch--; - if (chPost == "'") iMatchEnd++; - sLine = sLine.substr(0, iMatch) + sReplace + sLine.substr(iMatchEnd); - iSearch = iMatch + sReplace.length; - } - } - } - } - if (!this.parseLine(sLine)) break; + if (!this.parseLine(sLine, aParms, aValues, aDefaults)) break; } } @@ -746,11 +787,14 @@ class Macro10 { if (this.tblMacros[name] !== undefined) { this.error("reserved symbol redefined: " + sReserved); } + var aParms, aDefaults, aValues; + aParms = aDefaults = aValues = []; this.tblMacros[name] = { name: name, nOperand: Macro10.MACRO_OP.RESERVED, - aParms: [], - aDefaults: [], + aParms, + aDefaults, + aValues, sText: sLabel + ": 0", nLine: this.nLine }; @@ -759,20 +803,29 @@ class Macro10 { return sReserved; } + getSymbol(sOperands) + { + var match; + if (match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)/i)) { + return match[1]; + } + } + /** - * getValues(sOperands, sDelim) + * getValues(sOperands, fParens) * * @this {Macro10} * @param {string} sOperands - * @param {string} [sDelim] + * @param {boolean} [fParens] (true to strip any parens from around the entire operands) * @return {Array.} */ - getValues(sOperands, sDelim) + getValues(sOperands, fParens) { var aValues = []; + if (fParens) sOperands = sOperands.replace(/^\(?(.*?)\)?$/, "$1"); while (sOperands) { sOperands = sOperands.trim(); - var sOperand = this.getExpression(sOperands, sDelim); + var sOperand = this.getExpression(sOperands); if (!sOperand) break; aValues.push(sOperand); sOperands = sOperands.substr(sOperand.length + 1); @@ -836,27 +889,27 @@ class Macro10 { */ addMacro(sOperator, sOperands) { - var match, name, nOperand, aParms, aDefaults, iMatch; + var i, match, name, nOperand, aParms, aDefaults, aValues, iMatch; this.chMacroOpen = '<'; this.chMacroClose = '>'; - aParms = aDefaults = []; + aParms = aDefaults = aValues = []; if (sOperator == Macro10.PSEUDO_OP.DEFINE) { /* * This is a DEFINE (macro) block. */ - match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(?:\(([^)]*)\)|)\s*(<|)(.*)/i); + match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i); if (!match) { this.error("unrecognized " + sOperator + ": " + sOperands); - return ""; + return sOperands; } name = match[1]; /* * If this macro has defined parameters, parse them (and any defaults) now. */ if (match[2]) { - aParms = this.getValues(match[2]); + aParms = this.getValues(match[2], true); aDefaults = this.getDefaults(aParms); } nOperand = Macro10.MACRO_OP.DEFINE; @@ -877,6 +930,38 @@ class Macro10 { this.aLiterals.push(name); iMatch = 0; } + else if (sOperator == Macro10.PSEUDO_OP.IRP || sOperator == Macro10.PSEUDO_OP.IRPC) { + /* + * IRP (and IRPC) blocks are very similar to DEFINE blocks, but they define exactly ONE macro parameter + * with NO parentheses (whereas regular macros always define their parameters, if any, WITH parentheses), + * and then the IRP (or IRPC) block is immediately invoked with the corresponding value from the + * enclosing macro. + */ + if (!this.macroCall) { + this.error(sOperator + " outside of macro"); + } + match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)(.*)/i); + if (!match) { + this.error("unrecognized " + sOperator + ": " + sOperands); + return sOperands; + } + for (i = 0; i < this.macroCall.aParms.length; i++) { + if (match[1] == this.macroCall.aParms[i]) break; + } + if (i == this.macroCall.aParms.length) { + this.error("invalid " + sOperator + " parameter: " + match[1]); + return sOperands; + } + name = '?' + sOperator; + aParms = [match[1]]; + if (sOperator == Macro10.PSEUDO_OP.IRPC) { + aValues = this.macroCall.aValues[i].split(""); + } else { + aValues = this.getValues(this.macroCall.aValues[i]); + } + nOperand = aValues.length; + iMatch = 2; + } else { /* * This must be a REPEAT or CONDITIONAL block. @@ -884,7 +969,7 @@ class Macro10 { var sOperand = this.getExpression(sOperands); if (!sOperand) { this.error("missing " + sOperator + " expression: " + sOperands); - return ""; + return sOperands; } sOperands = sOperands.substr(sOperand.length + 1); sOperand = sOperand.trim(); @@ -916,7 +1001,7 @@ class Macro10 { } } - this.tblMacros[name] = {name, nOperand, aParms, aDefaults, sText, nLine: this.nLine}; + this.tblMacros[name] = {name, nOperand, aParms, aDefaults, aValues, sText, nLine: this.nLine}; if (!this.nMacroDef) { this.parseMacro(name); @@ -981,7 +1066,14 @@ class Macro10 { } value = v; } - this.tblSymbols[name] = {name, value, nLine: this.nLine, nType}; + var sym = this.tblSymbols[name]; + if (sym) { + sym.value = value; + sym.nType = nType; + sym.nLine = this.nLine; + } else { + this.tblSymbols[name] = {name, value, nType, nLine: this.nLine}; + } this.dbg.setVariable(name, value); } @@ -1132,7 +1224,9 @@ Macro10.PSEUDO_OP = { ASCIZ: "ASCIZ", DEFINE: "DEFINE", IFE: "IFE", + IFN: "IFN", IRP: "IRP", + IRPC: "IRPC", LITERAL: "LITERAL", PAGE: "PAGE", REPEAT: "REPEAT", diff --git a/versions/pdpjs/1.34.2/pdp10-dbg.js b/versions/pdpjs/1.34.2/pdp10-dbg.js index e8e16ae5c..92d286656 100644 --- a/versions/pdpjs/1.34.2/pdp10-dbg.js +++ b/versions/pdpjs/1.34.2/pdp10-dbg.js @@ -27,256 +27,257 @@ http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017 */ -var l,ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ca="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function da(){da=function(){};ca.Symbol||(ca.Symbol=ga)}var ha=0;function ga(a){return"jscomp_symbol_"+(a||"")+ha++} -function ia(){da();var a=ca.Symbol.iterator;a||(a=ca.Symbol.iterator=ca.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ba(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ja(this)}});ia=function(){}}function ja(a){var b=0;return la(function(){return ba?-b:b}});na("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); -var ta={mc:0,Eb:1,oc:2,pc:3,qc:4,rc:5,sc:6,tc:7,qb:8,uc:9,Fb:10,vc:11,wc:12,Gb:13,xc:14,yc:15,zc:16,Ac:17,Bc:18,Cc:19,Dc:20,Ec:21,Fc:22,Gc:23,Hc:24,Ic:25,Jc: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,pb:65,lc:66,nc:67,Kc:68,E:69,Lc:70,Mc:71,Nc:72,Oc:73,Pc:74,Qc:75,Rc:76,Sc:77,Tc:78,Uc:79,Vc:80,Q:81,Wc:82,Xc:83,Yc:84,Zc:85,$c:86,ad:87, -bd:88,cd:89,Ib:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,dd:97,ed:98,fd:99,d:100,e:101,gd:102,hd:103,jd:104,kd:105,ld:106,k:107,md:108,nd:109,n:110,pd:111,p:112,q:113,r:114,qd:115,t:116,sd:117,td:118,ud:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Hb:127}; -function ua(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); +var ma={oc:0,Gb:1,qc:2,rc:3,sc:4,tc:5,uc:6,vc:7,sb:8,wc:9,Hb:10,xc:11,yc:12,Ib:13,zc:14,Ac:15,Bc:16,Cc:17,Dc:18,Ec:19,Fc:20,Gc:21,Hc:22,Ic:23,Jc:24,Kc:25,Lc: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,rb:65,nc:66,pc:67,Mc:68,E:69,Nc:70,Oc:71,Pc:72,Qc:73,Rc:74,Sc:75,Tc:76,Uc:77,Vc:78,Wc:79,Xc:80,Q:81,Yc:82,Zc:83,$c:84,ad:85,bd:86,cd:87, +dd:88,ed:89,Kb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,fd:97,gd:98,hd:99,d:100,e:101,jd:102,kd:103,ld:104,md:105,nd:106,k:107,od:108,pd:109,n:110,qd:111,p:112,q:113,r:114,rd:115,t:116,td:117,ud:118,vd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Jb:127}; +function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0f&&(f+=Math.pow(2,36)),f=0a&&-1a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function wa(a,b){var c,d="";b?32>=1,f--;return d} -function m(a,b,c){b?12"']/g,function(a){return Ea[a]})}function Fa(a,b){return(a+" ").slice(0,b)}function Ga(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ea={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ha(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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())} -function Ja(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, +function ta(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ua(a,b){var c,d="";b?32>=1,f--;return d} +function m(a,b,c){b?12"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function Fa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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())} +function Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, f,e))});if(b&&"object"==typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));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||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function Na(a,b){var c,d={Z:null,W:null,ua:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=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.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.Ja=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(r(d.Z[0]),d=null):(r("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,X:!1,error:!1};this.Xa=null;this.A.error=!1;this.Y=c||0;this.D=this.v=this.G=this.H=this.va=null;mb.push(this)}function nb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function pb(){return Date.now()||+new Date} -function r(a){window&&window.alert(a)}function qb(a){var b=!1;window&&(b=window.confirm(a));return b}function rb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;bb.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.aa=Array(4*e.length),f=c=0;c>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else(e=g.data)?d.Ka=e:d.aa=g;d.aa&&(d.aa.length?1==d.aa.length&&(r(d.aa[0]),d=null):(r("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.Va=this.id:(this.Wa=this.id.substr(0,a),this.Va=this.id.substr(a+1));this.A={ready:!1,Pa:!1,kb:!1,X:!1,error:!1};this.Za=null;this.A.error=!1;this.Z=c||0;this.D=this.v=this.G=this.H=this.va=null;lb.push(this)}function mb(a,b,c){nb[a]&&b&&(nb[a][b]=c)}function ob(){return Date.now()||+new Date} +function r(a){window&&window.alert(a)}function pb(a){var b=!1;window&&(b=window.confirm(a));return b}function qb(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.Wb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Ob,toggle:this.gc,reset:this.cc, -set:this.fc};Mb(this)}ma(bc,u);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.w=0)}; +function bc(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.j=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Zb],STEP:[1,1,!1,!1,this.$b],ENABLE:[1,1,!1,!1,this.Ub],CONT:[1,1,!0,!1,this.Sb],DEP:[0,0,!0,!1,this.Tb],EXAM:[1,1,!0,!1,this.Vb],LOAD:[1,1,!0,!1,this.Xb],TEST:[0,0,!0,!1,this.Wb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Yb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Pb,toggle:this.ic,reset:this.ec, +set:this.hc};Mb(this)}ja(bc,u);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.w=0)}; l.na=function(a,b,c,d){if(this.H&&this.H.na(a,b,c,d)||this.v&&this.v.na(a,b,c,d)||this.D&&this.D.na(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[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(){ec(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fc(a,b)}}(this,b),a.ontouchstart= -function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):u.prototype.na.call(this,a,b,c,d)}};l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;gc(this);hc(this)};l.wa=function(a,b){if(!b)if(this.U&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()}; -l.restore=function(a){if(a=a[0])jc(this,this.i=a[0]),dc(this,this.w=a[1]),kc(this,a[2]);return!0};l.cc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])} -l.Ob=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.fc=function(a,b){if("SR"==a)return kc(this,ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.gc=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1} -function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Xb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[qc]&&this.b[qc][1]&&rc(this.v))};l.Yb=function(){};l.Sb=function(a){a||this.v.V()}; -l.Qb=function(a){if(!a&&!this.v.A.N)if(this.b[qc]&&this.b[qc][1])rc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),sc(a,0,null),Ob(a,!1);else try{var b=this.v.Ra(1);0c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.j&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){n=h.size-(e-k);n>f&&(n=f);h.Pa=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Ic(Jc,e,f)}e=new Ec(a,e,n,16384,d);Fc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+m(b)),!0):Ic(Lc,b,c)} -function yc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function xc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Gc(a){for(var b=0,c=[],d=0;d=a.ia&&(a.ia+=a.oa,c=!0);0<=a.ja&&a.ja<=fd(a)&&(a.oa=a.ja=-1,bd(a),a.V(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+q(a.Ba))}} -l.na=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.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=rb(a.id);for(c=0;ca.ba/a.ca?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ca!=b){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}uc(a,a.M);a.M=0;a.L=pb();a.P=0;hd(a);return d}function kd(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;cc;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.j&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Ra+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ra){n=h.size-(e-k);n>f&&(n=f);h.Ra=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Ic(Jc,e,f)}e=new Ac(a,e,n,16384,d);Bc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+m(b)),!0):Ic(Lc,b,c)} +function yc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function xc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Cc(a){for(var b=0,c=[],d=0;d=a.ia&&(a.ia+=a.oa,c=!0);0<=a.ja&&a.ja<=fd(a)&&(a.oa=a.ja=-1,bd(a),a.V(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+q(a.Ca))}} +l.na=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.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;ca.Y/a.da?b=1:d=!0;a.fa=b;b=a.fb*a.fa;if(a.da!=b){a.da=b;b=a.da.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}uc(a,a.M);a.M=0;a.L=ob();a.P=0;hd(a);return d}function kd(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c} -l.dc=function(){if(this.A.N){this.Va>=this.eb&&hd(this,!0);this.ka=0;this.Aa=pb();if(this.P){var a=this.Aa-this.P;a>this.cb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=kd(this,this.A.Ma?1:this.Da);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ka+=b;this.M+=b;vc(this,b);tc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Da;++this.fb>=nd&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(pb(),fd(this));Jb(this, -e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.yb;this.P=pb();var c=this.cb;this.ka&&(c=Math.round(c*this.ka/this.Da));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.U=0,gd(this)));if(0>c||this.bac&&(this.L-=c),c=0;this.Va+=this.ka;this.P+=c;a(b,c)}}}; -function rc(a,b){if(!Kb(a))if(a.A.N)a.u(a.toString()+" busy");else{gd(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.yb,0)}}l.Ra=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){md(this);uc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(pb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"]; -function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Kb=pd.bind(this);this.w=K.bind(this);this.ya=null;this.ob=[];this.A.complete=!1}ma(od,Yc);l=od.prototype; -l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.V();this.Ea=this.Fa=this.b=this.K=0;this.i=this.za=this.Sa;this.I=this.ra=-1;this.F=this.j=0;this.gb=[0,0];this.pa=[0,0];this.ha=[0,0];this.qa=[0,0];this.xa=this.i;this.C=0;this.f=this.$b;this.g=this.kc;this.ya=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};l.Bb=function(){return 0}; -l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Ea,this.Fa,this.i,this.ra,this.I,this.j,this.C,this.za,this.xa,this.Sa]);a.set(1,[]);a.set(2,[this.U,this.fa,this.A.aa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()}; -l.restore=function(a){var b;b=a[0];ia();da();ia();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.b=b.next().value;this.K=b.next().value;this.Ea=b.next().value;this.Fa=b.next().value;this.i=b.next().value;this.ra=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Sa=b.next().value;b=a[2];this.U=b[0];gd(this,b[1]);this.A.aa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)};l.kc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b}; -l.Ra=function(a){this.A.complete=!0;var b=this.D?sd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(td(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&td(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Ea=this.f(this.b):0<=this.ra?(this.K=this.Fa=this.f(this.ra),this.ra=-1):(this.K= -this.Fa=this.f(this.za=this.i),this.i=(this.i+1)%Tb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Ea=this.f(a))&Sb;a=this.K&4194304?-1:this.Fa/Zb|0;0<=a&&this.Kb(a)}while(0>4].call(this,a,a&15)}function M(a){this.w(a)} -function vd(){var a=0,b=this.f(this.b),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.g(this.b,b)}function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}} -function xd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function yd(a,b){this.g(b,this.f(this.b))}function zd(a,b){this.g(b,this.b)}function Ad(a,b){this.g(this.b,this.f(b))}function Bd(a,b){this.g(b,0)}function Cd(a,b){this.g(b,D-this.f(b))}function Dd(a,b){this.g(b,D)} -function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Xd(a,d,c)+(c-(c&y)))}function Yd(a,b){var c=this.f(b);this.g(b,Xd(a,c,0))}function Zd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Xd(a,c,b)+(b-(b&y)))}function $d(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ae(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Xd(a,d,c)+c)} -function be(a,b){var c=this.b*z,d=this.f(b);this.g(b,Xd(a,d,c)+c)}function ce(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Xd(a,c,b)+b)}function de(a,b){var c=this.f(this.b),d=(c&y)*z,c=Xd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)} -function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Ub?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/z|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){ne[a&7].call(this,a,a>>3&127)} -function oe(){}function pe(){}function K(a){this.u("undefined opcode: "+m(a));rd(this,-1);this.V()}function qe(a){a>A&&(a!=C?a=Wb-a:this.j|=163840);return a}function O(a,b){var c=(a+b)%E;re.call(this,a,b,c);return c} -function se(a,b,c){var d=!1,e=!1,f=b-b%C;a=a%C+b*C%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=D-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.pa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.qa;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=E,b[1]--),ue(this.gb,this.pa),ve(this.qa)))break;we(this.ha);we(this.pa)}while(!ve(this.pa)); -a=this.gb[0];this.F=this.qa[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a} -function xe(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(dA)&&(f!=D||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%C;b=2*b%E+Math.trunc(c/C);c=a+c%C;d=b-b%C;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b} -function ye(a){a?a==C?this.j|=163840:a=Wb-a:this.j|=98304;return a}function Q(a,b){var c=a-b;0>c&&(c+=E);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function S(a,b){return R(a,(~(b/F|0)&15)*F+(~b>>>0))}function T(a,b){return(a>>0)}function U(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function V(a){return a>>0)}function X(a){return(a/z|0)+(a&y)*z}function fe(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Ub?y*z:0}return b}function Xd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b} -function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=E&&(a[0]%=E,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=E);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]} -var ud=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, +l.fc=function(){if(this.A.N){this.Xa>=this.hb&&hd(this,!0);this.ka=0;this.Aa=ob();if(this.P){var a=this.Aa-this.P;a>this.gb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=kd(this,this.A.Oa?1:this.Ea);try{this.Ta(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ka+=b;this.M+=b;vc(this,b);tc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Ea;++this.ib>=nd&&(this.H&&K(this.H,void 0),this.ib=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(ob(),fd(this));zb(this, +e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.Ab;this.P=ob();var c=this.gb;this.ka&&(c=Math.round(c*this.ka/this.Ea));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.Y=Math.round(this.M/(10*d))/100,864E5<=d&&(this.T=0,gd(this)));if(0>c||this.Yc&&(this.L-=c),c=0;this.Xa+=this.ka;this.P+=c;a(b,c)}}}; +function rc(a,b){if(!Ab(a))if(a.A.N)a.u(a.toString()+" busy");else{gd(a);a.A.N=!0;a.A.cb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Ab,0)}}l.Ta=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){md(this);uc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(ob(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"]; +function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.yb=b;this.Ua=+a.addrReset||0;this.Lb=pd.bind(this);this.w=M.bind(this);this.ya=null;this.qb=[];this.A.complete=!1}ja(od,Yc);l=od.prototype; +l.reset=function(){this.status("Model "+this.yb);this.A.N&&this.V();this.Fa=this.Ga=this.b=this.K=0;this.i=this.za=this.Ua;this.I=this.ra=-1;this.F=this.j=0;this.jb=[0,0];this.pa=[0,0];this.ha=[0,0];this.qa=[0,0];this.xa=this.i;this.C=0;this.f=this.bc;this.g=this.mc;this.ya=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};l.Db=function(){return 0}; +l.save=function(){var a=new I(this);a.set(0,[this.b,this.K,this.Fa,this.Ga,this.i,this.ra,this.I,this.j,this.C,this.za,this.xa,this.Ua]);a.set(1,[]);a.set(2,[this.T,this.fa,this.A.ba]);a.set(3,qd(this));a.set(4,ld(this));return a.data()}; +l.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.K=b.next().value;this.Fa=b.next().value;this.Ga=b.next().value;this.i=b.next().value;this.ra=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Ua=b.next().value;b=a[2];this.T=b[0];gd(this,b[1]);this.A.ba=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)};l.mc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b}; +l.Ta=function(a){this.A.complete=!0;var b=this.D?sd(this.D)?1:this.A.cb?-1:0:0,c=a?this.A.cb?0:1:-1;this.A.cb=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(td(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&td(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Fa=this.f(this.b):0<=this.ra?(this.K=this.Ga=this.f(this.ra),this.ra=-1):(this.K= +this.Ga=this.f(this.za=this.i),this.i=(this.i+1)%Tb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Fa=this.f(a))&Sb;a=this.K&4194304?-1:this.Ga/Zb|0;0<=a&&this.Lb(a)}while(0>4].call(this,a,a&15)}function O(a){this.w(a)} +function vd(){var a=0,b=this.f(this.b),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%F);this.g(this.b,b)}function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}} +function xd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%F;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function yd(a,b){this.g(b,this.f(this.b))}function zd(a,b){this.g(b,this.b)}function Ad(a,b){this.g(this.b,this.f(b))}function Bd(a,b){this.g(b,0)}function Cd(a,b){this.g(b,E-this.f(b))}function Dd(a,b){this.g(b,E)} +function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Fd(a,d,c)+(c-(c&y)))}function Gd(a,b){var c=this.f(b);this.g(b,Fd(a,c,0))}function Hd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+(b-(b&y)))}function Id(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function $d(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Fd(a,d,c)+c)} +function ae(a,b){var c=this.b*z,d=this.f(b);this.g(b,Fd(a,d,c)+c)}function be(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+b)}function ce(a,b){var c=this.f(this.b),d=(c&y)*z,c=Fd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function de(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,ee(a,d,c)+c)}function fe(a,b){var c=this.f(b);this.g(b,ee(a,c,this.b)+this.b)}function ge(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)} +function he(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Ub?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,ee(a,d,c)+c)}function je(a,b){var c=this.f(b);this.g(b,ee(a,c,0))}function ke(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}function le(a,b){var c=this.f(this.b),d=c/z|0,c=ee(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){me[a&7].call(this,a,a>>3&127)} +function ne(){}function oe(){}function M(a){this.u("undefined opcode: "+m(a));rd(this,-1);this.V()}function pe(a){a>A&&(a!=D?a=Wb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%F;qe.call(this,a,b,c);return c} +function re(a,b,c){var d=!1,e=!1,f=b-b%D;a=a%D+b*D%F;b=this.F=f+Math.trunc(b/2);c>A&&(c=F-c,d=!d);b>A&&(a?(b=E-b,a=F-a):b&&(b=F-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.jb;f[0]=0;f[1]=0;f=this.pa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.qa;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=F,b[1]--),te(this.jb,this.pa),ue(this.qa)))break;ve(this.ha);ve(this.pa)}while(!ue(this.pa)); +a=this.jb[0];this.F=this.qa[0];d&&a&&(a=F-a);e&&this.F&&(this.F=F-this.F);return a} +function we(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=F-d,b=!b);e>A&&(e=F-e,b=!b);if(dA)&&(f!=E||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%D;b=2*b%F+Math.trunc(c/D);c=a+c%D;d=b-b%D;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b} +function xe(a){a?a==D?this.j|=163840:a=Wb-a:this.j|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=F);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/G|0)&(b/G|0))*G+((a&b)>>>0)}function U(a,b){return T(a,(~(b/G|0)&15)*G+(~b>>>0))}function ye(a,b){return(a>>0)}function V(a,b){return(a/G|0|b/G|0)*G+((a|b)>>>0)}function W(a){return a>>0)}function Y(a){return(a/z|0)+(a&y)*z}function ee(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Ub?y*z:0}return b}function Fd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b} +function te(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=F&&(a[0]%=F,a[1]++)}function se(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ve(a){a[1]%2&&(a[0]+=F);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ue(a){return!a[0]&&!a[1]} +var ud=[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,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, -function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},yd,zd,Ad,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+(a&y)*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ye.call(this,this.f(this.b)))},function(a,b){this.g(b,ye.call(this,this.b))},function(a,b){this.g(this.b, -ye.call(this,this.f(b)))},function(a,b){a=ye.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,qe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,qe.call(this,this.f(b)))},function(a,b){a=qe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,xe.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b), -!0))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,xe.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+ -1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))}, -function(a,b){a=this.f(b);b=this.f(b+1&15);b=se.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(E-a):a;0d?C:0,c=A):(d=d*Math.pow(2,c)%C,c=C-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d; -this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0A&& -dA&&eA&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=C,e+=C)}else d=d*Math.pow(2,a)%C+Math.trunc(e%C/Math.pow(2,35-a)),e=e*Math.pow(2,a)%C,c=C-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=C,e+=C)}else-36>=a?(e=-72>=a?d>A?D:0:Math.trunc(d%C/Math.pow(2,-a-35)),d<=A?d=0:(d=D,e+=C)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%C/Math.pow(2,-a))+ -d%C*Math.pow(2,35+a)%C,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=C));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+ -1&15);0=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},K,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d* -z+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a=C&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Ea,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.ra=this.b},K,function(a){this.w(a)},function(a,b){a= -this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=E);(a/z|0)==y&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&y)*z+this.i);H(this,this.b+1)},function(a,b){this.g(b,(this.j&y)*z+this.i);H(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a, -b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>T(this.f(b),this.b)&&H(this, -this.i+1)},function(a,b){T(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.f(this.b))&&H(this,this.i+1)}, -function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))||H(this,this.b)},function(a,b){0>=V(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))&&H(this,this.b)},function(a,b){0V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b); -0V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b), -1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b, -O.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0V(a)&&H(this,this.b)},function(a, -b){a=this.g(b,Q.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)}, -function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>>f.i;0>>= -f.i;0>>a.i;0g&&g>=-C&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h=ta.pb&&c<=ta.Ib&&(b=c-(ta.pb-ta.Eb));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.Gb&&(b=ta.Fb);d.Ya(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.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)}; -l.Cb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ga(c[0]);if(d!=this.Ta)return;c=Ga(c[1]);if(this.b=sb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Cb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0}; -l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ga(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.ia)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)^(c/Le|0))*Le+((b^c)>>>0)} -function Y(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b} -function Me(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break; -case "&":e=a;32>=e.ia?f&=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=((f/Le|0)&(g/Le|0))*Le+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=(f/Le|0|g/Le|0)*Le+((f|g)>>>0));break;case "^!":f=Ke(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Y(a,f,0,!0),f=0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Ne(a,b,0,b.length,a.T,c),void 0!==d&&!1===c&&Re(a,null,d));return d} -function Oe(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.kb(b),0<=f?f=a.lb(f):(f=a.K[b],null==f&&(0>e&&(b="-"+b,e=0),f=ua(b,a.T))),null!=f?0>e?f=-f:0>=8;d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Se(a){var b=a.K;a.K={};return b}function Te(a,b){if(b)return Re(a,b,a.K[b]);var c=0;for(b in a.K)Re(a,b,a.K[b]),c++;return 0>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Pe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Le=Math.pow(2,32); -function Ue(a){Ie.call(this,a);this.Da=!1;this.Ba=18;this.ia=36;this.ba=["<",">"];this.pa=[];this.Ca=Z();this.L=Z(0);this.oa=Z(0);this.fa=Z(0);this.F=[];this.b=this.M=this.I=[];Ve(this);this.S=this.ja=0;this.i=[];this.za=void 0;We(this);this.D=this;this.xa={};this.Y=this.xb=0;this.U=null;this.P=[];Xe(this,a.messages);this.ra=a.commands;this.O=0;this.Ia=this.Aa=null;this.C=this.Fa=this.Ea=this.ha=this.ya=0;this.qa=this.ga=this.ca=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return ed(b, -a)}):void 0===global[w]&&(global[w]=function(a){return ed(b,a)})}ma(Ue,Ie);function Ye(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,la:!1,T:c}}function Ze(a,b,c,d){a.B=b;a.Wa=c||!1;a.la=!1;a.T=d}function $e(a){return[a.B,a.Wa,a.la,a.T,a.Za]}function af(a,b){var c=Z(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.sb=Je(a,c.Za=b[4]));return c}l=Ue.prototype; -l.Ga=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ba=b.F;(b=$c(a,"messages"))&&Xe(this,b);if(a=$c(a,"commands"))this.ra=a;bf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ye(cf(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.u("..."):(c=p.type,n=Kc[c],p&&d.u(q(p.id,8)+" %"+ -q(e<a&&a>=-C&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function ff(a){return m(a/Tb,6)+" "+m(a%Tb,6)} -function Xe(a,b){a.D=a;a.Y=a.xb=536870916;a.U=null;a.P=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d>23&&a.v.za==b&&(b=rd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(Ze(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1} -function xf(a,b,c,d){var e=Z(b.B),f=a.Ha(b,1),g,h,k,n=0,p=f/Xb|0,t;for(t in yf)if(g=yf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=zf;n=p&3;break;case 32256:k=Af;n=p&7;break;case 29248:k=Bf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>Cf&&(k="B");k=Df[g||0]+k;if(g){if(28700==h)h=f/Yb&127,n=J(a,h,-1);else for(h=f>>23&15,n=J(a,h,-1),p=0;n&&p>18&15)&&(k+="("+J(a,f, --1)+")")}else k=Fa(k,8)+ff(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ha(e,1),g+=" "+ff(k),null==e.B)break;while(e.B!=b.B)}h+=Fa(g,16)+f;c&&(h=Fa(h,48)+";"+(c||""),h=a.v.A.Ma?h+("cycles="+fd(a.v).toString()+" cs="+q(a.v.Ba)):h+(null!=d?"="+d.toString():""));return h} -function Ff(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),n=0;nCf&&(ea="B");if(k==Df[h]+ea){f=29248!=g?P:(P&3)<<1|(P&12)<<2;f=(B|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}}else c&& -(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;th||127h||15h||262143h||15f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ve(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b>>d.i],!0);a.I=["bw"];a.ya=0;a.ja=0} -l.Ka=function(a,b,c){var d=!0;c||gg(this,a,b,!1,!0);if(a!=this.b){var e=Ye(b);if(-1===e)this.u("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ka(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(ig(this,a,a.length-1,"set"),We(this)));return d};function gg(a,b,c,d,e){var f=!1;c=Ye(c);for(var g=1;g>>d.i],b==a.I));h.la||We(a);break}}return f} -function jg(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);Ze(e.Ca,d);f+="="+J(e,e.Ha(e.Ca),36)+" ";c+=f}if(b){b="";for(d=0;d=lf?1:d==jf?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],t=Ha(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({rd:b,B:c,Pb:d,W:e,tb:f})}function mg(a,b,c){var d=[],e=Ye(b)>>>0;for(b=0;b>>0,h=f.Pb;if(e>=g&&eb){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case hf:H(h, -g);Ze(a.L,h.i);break;case lf:f=65536;break;case mf:f=32768;break;case nf:f=131072;break;case of:f=32;break;case pf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);I(a.H);a.u("updated registers:")}}a.u(lg(a,e));c&&(Ze(a.L,d.i),vf(a,J(a,a.L.B)))}}function tg(a,b){b=Ga(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.u(n)}h[3]&&(g=h[3],f=null);h=a.fa;n=b;h.B=n.B;h.Wa=n.Wa;h.la=n.la;h.T=n.T;a.u(xf(a,b,g,f));e-=b.B-k;c++}}} -function kg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(tf+b):(a.R&&(a.u("ended assemble at "+J(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Lb(a)&&0p||"z"pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length); -var Jd=[];"call"==Lf&&(Ab=1E5,Jd=["CALL"]);for(void 0!==Kf&&a.u(fa+" instructions earlier:");0=pa.length&&(ka=0);a.za=fa;Nf++;Ab--}}Nf||(a.u("no "+Mf+"history available"),a.za=void 0)}else{var fb=cf(a,oa,a.oa);if(fb){var Ka=0,Qf="ds"==cb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||ph,Ka=Oe(a,Ca);else{var Rf=cf(a,Ca); -Rf&&(Ka=Rf.B-fb.B)}0>Ka&&(Ka=0);65536Cb?".":String.fromCharCode(Cb)),Ac=Ac-7}La&&(La+="\n");La=Qf?La+(qa+","):La+(oa+": "+qa+(0>Tf?" "+Md: -""))}La&&a.u(La);a.T=rh}}}}break;case "e":if("else"==g[0])break;var Uf,Vf,Wf=g[0],Od=g[1];"e"==Wf||"ew"==Wf?(Uf=a.Ha,Vf=a.rb):Od=null;if(null==Od)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Bc=cf(a,Od,a.oa);if(Bc)for(var Pd=2;PdSd;){for(var Ma=null, -wh=256;65536>Fb.B>>>0;){Td.B=a.Ha(Fb,2);if(null==Fb.B||!wh--)break;if(!(Td.B&1)){for(var xh=a,Cc=Td,Yf=null,Gb=Cc.B,Zf=Gb,Ud=1;6>=Ud&&Gb;Ud++){if(2eg)a.u("step commands:"), -a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var fg=Z(a.v.i);a.Ha(fg);a.O?(a.Ka(a.b,fg,!0),rf(a)||(a.H&&jd(a.H),a.O=0)):ug(a,eg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}uf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var gb=+g[2];if(2==gb||8==gb||10==gb||16==gb)a.T=gb;else{a.u("invalid base: "+gb);break}}a.u("default base: "+a.T);break;case "cs":var Ib;void 0!==g[3]&&(Ib=+g[3]);switch(g[2]){case "int":a.v.oa= -Ib;break;case "start":a.v.Ca=Ib;break;case "stop":a.v.ja=Ib;break;default:a.u("unknown cs option");break a}void 0!==Ib&&bd(a.v);a.u("checksums "+(a.v.A.Ma?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ca.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"), -a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":ug(a,g[0],g[1]);break;case "u":vf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){rg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){tg(a,b.substr(1));break}var Vd="commands:",Wd;for(Wd in wg)Vd+="\n"+ -Fa(Wd,9)+wg[Wd];sd(a)||(Vd+="\nnote: history disabled if no exec breakpoints");a.u(Vd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(hg){a.u("Debugger "+(hg.stack||hg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!kg(a,b[+d]))return!1;return!0} -var wg={"?":"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"},Cf=20,Df=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "), -hf=0,jf=1,kf=2,lf=3,mf=4,nf=5,of=6,pf=7,gf="PC RA EA C0 C1 OV ND PD".split(" "),xg={},yf=(xg[28672]={0:101},xg[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},xg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Cf,9216:53,9472:52, +function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},yd,zd,Ad,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+(a&y)*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(this.b)))},function(a,b){this.g(b,xe.call(this,this.b))},function(a,b){this.g(this.b, +xe.call(this,this.f(b)))},function(a,b){a=xe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,pe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,pe.call(this,this.f(b)))},function(a,b){a=pe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,we.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,we.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,we.call(this,this.f(b),this.f(this.b), +!0))},function(a,b){this.g(this.b,this.g(b,we.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,we.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,we.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,we.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,we.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+ +1&15,this.F))},function(a,b){a=re.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))}, +function(a,b){a=this.f(b);b=this.f(b+1&15);b=re.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(F-a):a;0d?D:0,c=A):(d=d*Math.pow(2,c)%D,c=D-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+F:d; +this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%F+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0A&& +dA&&eA&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=D,e+=D)}else d=d*Math.pow(2,a)%D+Math.trunc(e%D/Math.pow(2,35-a)),e=e*Math.pow(2,a)%D,c=D-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=D,e+=D)}else-36>=a?(e=-72>=a?d>A?E:0:Math.trunc(d%D/Math.pow(2,-a-35)),d<=A?d=0:(d=E,e+=D)):(c=d>A?F-Math.pow(2,36+a):0,e=Math.trunc(e%D/Math.pow(2,-a))+ +d%D*Math.pow(2,35+a)%D,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=D));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%F+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%F+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+ +1&15);0=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%F,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},M,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d* +z+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%E;this.g(b,a);a=D&&J(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Fa,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);J(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,J(this,this.b))},function(){this.ra=this.b},M,function(a){this.w(a)},function(a,b){a= +this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=F&&(a-=F);a/z|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=F);(a/z|0)==y&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&y)*z+this.i);J(this,this.b+1)},function(a,b){this.g(b,(this.j&y)*z+this.i);J(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a, +b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,S.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,S.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,S.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,S.call(this,this.f(b),this.f(this.b))))},ne,function(a,b){0>ye(this.f(b),this.b)&&J(this, +this.i+1)},function(a,b){ye(this.f(b),this.b)||J(this,this.i+1)},function(a,b){0>=ye(this.f(b),this.b)&&J(this,this.i+1)},function(){J(this,this.i+1)},function(a,b){0<=ye(this.f(b),this.b)&&J(this,this.i+1)},function(a,b){ye(this.f(b),this.b)&&J(this,this.i+1)},function(a,b){0ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){ye(this.f(b),this.f(this.b))||J(this,this.i+1)},function(a,b){0>=ye(this.f(b),this.f(this.b))&&J(this, +this.i+1)},function(){J(this,this.i+1)},function(a,b){0<=ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){0W(this.f(b))&&J(this,this.b)},function(a,b){W(this.f(b))||J(this,this.b)},function(a,b){0>=W(this.f(b))&&J(this,this.b)},function(){J(this,this.b)},function(a,b){0<=W(this.f(b))&&J(this,this.b)},function(a,b){W(this.f(b))&&J(this,this.b)},function(a,b){0< +W(this.f(b))&&J(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);W(a)||J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){J(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a, +b){a=this.f(this.b);0W(a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));W(a)||J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=W(a)&&J(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=W(a)&&J(this,this.b)},function(a,b){a=this.g(b, +Q.call(this,this.f(b),1));W(a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));W(a)||J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=W(a)&&J(this,this.i+1);b&&this.g(b, +a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0W(a)&&J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));W(a)||J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));0>=W(a)&&J(this,this.b)},function(a,b){this.g(b,S.call(this,this.f(b),1));J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));0<=W(a)&&J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));W(a)&&J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));0W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));W(a)||J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0>=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0<=W(a)&& +J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0>>f.i;0>>= +f.i;0>>a.i;0g&&g>=-D&&(g+=F);for(var g=Math.trunc(Math.abs(g))%F,h=d;f--&&h=ma.rb&&c<=ma.Kb&&(b=c-(ma.rb-ma.Gb));b&&(a.preventDefault&&a.preventDefault(),d.ab(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Ib&&(b=ma.Hb);d.ab(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.ab(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)}; +l.Eb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Va)return;c=Ea(c[1]);if(this.b=rb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Eb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0}; +l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new I(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.ab=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ea(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.ia)return b|c;b=Le(a,b,0,!0);c=Le(a,c,0,!0);return((b/Me|0)^(c/Me|0))*Me+((b^c)>>>0)} +function Le(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b} +function Ne(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break; +case "&":e=a;32>=e.ia?f&=g:(f=Le(e,f,0,!0),g=Le(e,g,0,!0),f=((f/Me|0)&(g/Me|0))*Me+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Le(e,f,0,!0),g=Le(e,g,0,!0),f=(f/Me|0|g/Me|0)*Me+((f|g)>>>0));break;case "^!":f=Ke(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Le(a,f,0,!0),f=0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Oe(a,b,0,b.length,a.U,c),void 0!==d&&!1===c&&Se(a,null,d));return d} +function Pe(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.nb(b),0<=f?f=a.ob(f):(f=a.K[b],null==f&&(0>e&&(b="-"+b,e=0),f=na(b,a.U))),null!=f?0>e?f=-f:0>=8;d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Te(a){var b=a.K;a.K={};return b}function Ue(a,b){if(b)return Se(a,b,a.K[b]);var c=0;for(b in a.K)Se(a,b,a.K[b]),c++;return 0>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Qe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Me=Math.pow(2,32); +function Ve(a){Ie.call(this,a);this.Ea=!1;this.Ca=18;this.ia=36;this.Y=["<",">"];this.pa=[];this.Da=Z();this.L=Z(0);this.oa=Z(0);this.fa=Z(0);this.F=[];this.b=this.M=this.I=[];We(this);this.S=this.ja=0;this.i=[];this.za=void 0;Xe(this);this.D=this;this.xa={};this.Z=this.zb=0;this.T=null;this.P=[];Ye(this,a.messages);this.ra=a.commands;this.O=0;this.Ja=this.Aa=null;this.C=this.Ga=this.Fa=this.ha=this.ya=0;this.qa=this.ga=this.da=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return ed(b, +a)}):void 0===global[w]&&(global[w]=function(a){return ed(b,a)})}ja(Ve,Ie);function Ze(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,Ya:void 0===b?!1:b,la:!1,U:c}}function $e(a,b,c,d){a.B=b;a.Ya=c||!1;a.la=!1;a.U=d}function af(a){return[a.B,a.Ya,a.la,a.U,a.bb]}function bf(a,b){var c=Z(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.ub=Je(a,c.bb=b[4]));return c}l=Ve.prototype; +l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ca=b.F;(b=$c(a,"messages"))&&Ye(this,b);if(a=$c(a,"commands"))this.ra=a;cf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ze(df(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.u("..."):(c=p.type,n=Kc[c],p&&d.u(q(p.id,8)+" %"+ +q(e<a&&a>=-D&&(a+=F);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function gf(a){return m(a/Tb,6)+" "+m(a%Tb,6)} +function Ye(a,b){a.D=a;a.Z=a.zb=536870916;a.T=null;a.P=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d>23&&a.v.za==b&&(b=rd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&($e(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1} +function yf(a,b,c,d){var e=Z(b.B),f=a.Ia(b,1),g,h,k,n=0,p=f/Xb|0,t;for(t in zf)if(g=zf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=Af;n=p&3;break;case 32256:k=Bf;n=p&7;break;case 29248:k=Cf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>Df&&(k="B");k=Ef[g||0]+k;if(g){if(28700==h)h=f/Yb&127,n=L(a,h,-1);else for(h=f>>23&15,n=L(a,h,-1),p=0;n&&p>18&15)&&(k+="("+L(a,f, +-1)+")")}else k=Ba(k,8)+gf(f);f=k;g="";h=L(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ia(e,1),g+=" "+gf(k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Oa?h+("cycles="+fd(a.v).toString()+" cs="+q(a.v.Ca)):h+(null!=d?"="+d.toString():""));return h} +function Gf(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),n=0;nDf&&(R="B");if(k==Ef[h]+R){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(B|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}}else c&&(f= +g=0);if(0<=f&&c)for(k=c.split(","),t=0;th||127h||15h||262143h||15f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function We(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b>>d.i],!0);a.I=["bw"];a.ya=0;a.ja=0} +l.Ma=function(a,b,c){var d=!0;c||Hf(this,a,b,!1,!0);if(a!=this.b){var e=Ze(b);if(-1===e)this.u("invalid address: "+L(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ma(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(If(this,a,a.length-1,"set"),Xe(this)));return d};function Hf(a,b,c,d,e){var f=!1;c=Ze(c);for(var g=1;g>>d.i],b==a.I));h.la||Xe(a);break}}return f} +function Jf(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);$e(e.Da,d);f+="="+L(e,e.Ia(e.Da),36)+" ";c+=f}if(b){b="";for(d=0;d=mf?1:d==kf?23:18)+" "),b+=e;c+="\n"+b}return c}l.Bb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],t=Fa(p,k,a.Bb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Qb:d,W:e,wb:f})}function mg(a,b,c){var d=[],e=Ze(b)>>>0;for(b=0;b>>0,h=f.Qb;if(e>=g&&eb){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case jf:J(h, +g);$e(a.L,h.i);break;case mf:f=65536;break;case nf:f=32768;break;case of:f=131072;break;case pf:f=32;break;case qf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(lg(a,e));c&&($e(a.L,d.i),wf(a,L(a,a.L.B)))}}function tg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.u(n)}h[3]&&(g=h[3],f=null);h=a.fa;n=b;h.B=n.B;h.Ya=n.Ya;h.la=n.la;h.U=n.U;a.u(yf(a,b,g,f));e-=b.B-k;c++}}} +function jg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(uf+b):(a.R&&(a.u("ended assemble at "+L(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Cb(a)&&0p||"z"pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length);var Md= +[];"call"==Of&&(Db=1E5,Md=["CALL"]);for(void 0!==Nf&&a.u(fa+" instructions earlier:");0=pa.length&&(ka=0);a.za=fa;Qf++;Db--}}Qf||(a.u("no "+Pf+"history available"),a.za=void 0)}else{var gb=df(a,oa,a.oa);if(gb){var Ka=0,Tf="ds"==db;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||sh,Ka=Pe(a,Ca);else{var Uf=df(a,Ca);Uf&& +(Ka=Uf.B-gb.B)}0>Ka&&(Ka=0);65536Fb?".":String.fromCharCode(Fb)),Ec=Ec-7}La&&(La+="\n");La=Tf?La+(qa+","):La+(oa+": "+qa+(0>Wf?" "+Pd:""))}La&& +a.u(La);a.U=uh}}}}break;case "e":if("else"==g[0])break;var Xf,Yf,Zf=g[0],Rd=g[1];"e"==Zf||"ew"==Zf?(Xf=a.Ia,Yf=a.tb):Rd=null;if(null==Rd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Fc=df(a,Rd,a.oa);if(Fc)for(var Sd=2;SdVd;){for(var Ma=null,zh= +256;65536>Ib.B>>>0;){Wd.B=a.Ia(Ib,2);if(null==Ib.B||!zh--)break;if(!(Wd.B&1)){for(var Ah=a,Gc=Wd,ag=null,Jb=Gc.B,bg=Jb,Xd=1;6>=Xd&&Jb;Xd++){if(2hg)a.u("step commands:"), +a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var ig=Z(a.v.i);a.Ia(ig);a.O?(a.Ma(a.b,ig,!0),sf(a)||(a.H&&jd(a.H),a.O=0)):ug(a,hg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}vf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var hb=+g[2];if(2==hb||8==hb||10==hb||16==hb)a.U=hb;else{a.u("invalid base: "+hb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.oa= +Lb;break;case "start":a.v.Da=Lb;break;case "stop":a.v.ja=Lb;break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Oa?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.da.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"), +a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":ug(a,g[0],g[1]);break;case "u":wf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){rg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.2 ("+a.v.yb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){tg(a,b.substr(1));break}var Yd="commands:",Zd;for(Zd in wg)Yd+="\n"+ +Ba(Zd,9)+wg[Zd];sd(a)||(Yd+="\nnote: history disabled if no exec breakpoints");a.u(Yd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(kg){a.u("Debugger "+(kg.stack||kg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!jg(a,b[+d]))return!1;return!0} +var wg={"?":"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"},Df=20,Ef=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "), +jf=0,kf=1,lf=2,mf=3,nf=4,of=5,pf=6,qf=7,hf="PC RA EA C0 C1 OV ND PD".split(" "),xg={},zf=(xg[28672]={0:101},xg[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},xg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Df,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},xg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},xg[29248]={24576:79,24640:80,25088:81,25152:82},xg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97, -28692:98,28696:99,28700:100},xg),zf=["","I","M","S"],Af=" L E LE A GE N G".split(" "),Bf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Ef=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],qf=1E3,tf=">> ";Za(function(){for(var a=x(document,w,"debugger"),b=0;b([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Ag(a,"unrecognized HTML entity: "+c[0])}a.w=a.w.concat(e.split(/(\r?\n)/));setTimeout(function(){yg(a)},0)}})}} -function zg(a){if(0<=a.S.indexOf("p"))return a.u(a.w.join()),0;var b=Se(a.i);try{var c;for(c=0;c=--e)break}0>e&&a.error("missing bracket(s): "+f);0<=k&&(g=f.substr(k,h-k));for((f=g)&&(b=b.replace(f,Lg(a,Mg,f)));f=Ng(a,b);)b=b.replace(f,f.slice(0,-1));if(!Fg(a, -c,b))switch(c){case Og:case Pg:case Qg:Gg(a,d);break;case Rg:Sg(a,0,b.replace(",",",,"));break;case Tg:case Ug:case Vg:case Wg:Lg(a,c,b);break;case Xg:case Yg:break;default:d=b,b=c+d,0<=b.indexOf(",,")||!c&&0>b.indexOf("@")&&0>b.indexOf("(")?c=Dg(a,b,!0):(c=Ff(a.i,c,d,a.sa,!0),0>c&&(c=Ff(a.i,"",b,a.sa,!0),0>c&&(c=void 0))),void 0!==c?Sg(a,c,a.i.ka):a.error("unrecognized expression: "+b)}return!0} -function Fg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c)return b=Zg(a,c),Cg(a,d.La,d.ub,b),!0;if("?"!=b[0])return!1;switch(b.substr(1)){case Ug:d.mb||Cg(a,d.La);break;case Wg:for(;0p)break;var n=p+1,t=p+h.length,B="",P="";p&&(B=f[p-1]).match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&(P=f[t]).match(/[0-9A-Z$%.]/i)||("'"==B&&p--,"'"==P&&t++,f=f.substr(0,p)+k+f.substr(t),n=p+k.length)}if(!Bg(a,f))break}}qg.prototype.error=function(a){throw Error("error"+(this.ea?" at line "+xa(this.ea):"")+": "+a);}; -function Ag(a,b){a.u("warning"+(a.ea?" at line "+xa(a.ea):"")+": "+b)}function $g(a,b,c){c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.j=null);a.D+=b}if(null==a.j){var d=b=0,e,f,g=a.D.length;a.I==Pg&&g++;for(var h=0;h=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Sg(a,d),b=0)}b&&Sg(a,d)}return c} -function Lg(a,b,c){var d,e,f,g;a.C="<";a.J=">";e=f=[];if(b==Tg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(?:\(([^)]*)\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+": "+c),"";b=d[1];if(d[2]){f=e=Zg(a,d[2]);c=[];for(g=0;g");0>k&&(k=f[g].length);c[g]=f[g].substr(h,k-h);f[g]=f[g].substr(0,h)}}f=c}c=bh;g=3}else if(b==Mg)a.C="[",a.J="]",b="?"+xa(a.sa,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)], -c=ch,a.G.push(b),g=0;else{g=$g(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="?"+b;c=Dg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.J&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,ub:e,Jb:f,La:h,ea:a.ea};a.b?a.F=b:Fg(a,b);return b} -function Hg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Ig&&a.P[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Dg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}a.P[b]={name:b,value:c,ea:a.ea,od:d};a.i.K[b]=c}}function Sg(a,b,c){a.H[a.sa]=Eg(a,b);null!=c&&a.K.push({sa:a.sa,Db:c,ea:a.ea});a.sa++} -function Eg(a,b,c){c=void 0===c?a.sa:c;var d=Y(a.i,b||0,36,!0);(b<-C||b>=E)&&Ag(a,"truncated value "+m(b)+" at location "+m(c)+" to "+m(d));return d}qg.prototype.u=function(a){this.i?this.i.u(a):console.log(a)};var Ig=1,Jg=2,Kg=4,Og="ASCII",Pg="ASCIZ",Tg="DEFINE",Ug="IFE",Vg="IRP",Mg="LITERAL",Xg="PAGE",Wg="REPEAT",Qg="SIXBIT",Yg="SUBTTL",Rg="XWD",bh=-1,ch=-2,ah=-3; -function dh(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;eh(this,b);this.O=$c(this,"autoPower",a,6);this.w=0;this.ba=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.S=this.P=!1;this.ca=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=fh(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new zc({id:this.Ua+".bus",busWidth:this.ba},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.va)for(b= -0;b\nLicense: GPL version 3 or later ");for(b=0;bgh){if(hh(d,this.L)){this.C=new G(this,"1.34.2",Bh);hh(this.C)&&(Ch(this,d),a=Dh,Eh(this.C));this.C.set(nh,Ia());Fh(this.C);var e=this.b&&!this.K;if(a==oh||qb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=mh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?hh(d,g):("error"==f&&"no machine state"!= -g?(this.da("Error: "+g),"unable to verify user"==g&&(Sa(Gh,""),this.i=null)):this.u(f+": "+g),Eh(d),hh(d)?(c=mh(d),e=!0):c=!1))}e&&kh(this,c?d:null)}else a==Dh&&d.clear()}else kh(this);delete this.L;delete this.I}e=rb(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Hh(this,this.v,b,c,a),I(this,-2),this.v.aa());this.P&&(Ch(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0}; -function Ch(a,b){if(qb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}} -function vg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",lh),h=Ia();g.set(nh,h);f.set(nh,h);f.set(Ih,"1.34.2");f.set(Jh,window?window.location.href:null);f.set(Kh,window?window.navigator.userAgent:"");a.v&&a.v.ma&&(c&&(b&&(a.v.A.aa=a.v.A.N),a.v.V()),d=a.v.ma(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=rb(a.id),k=0;k=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.ba.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);Sh(a,b,c)}})}else c(a,null)} -function Th(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--Ph||ib(!0));n=!1}var h,k,n=!0;Ph++;ob[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));t.appendChild(B)}d|| -(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Qh(d,null,a,null,!1,f,function(a,e){e?(nb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ph||ib(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Ph|| -ib(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Qh(c,b,a,e,!0,f,p):Rh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(P){g(P.message)}return n}window.embedPDP10=function(a,b,c,d){ib(!1);return Th("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return Th("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return tb(b,a+".machine")}; -window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!wb[a]){for(var c=!0,d=wb,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p> ";Xa(function(){for(var a=x(document,w,"debugger"),b=0;b([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Ag(a,"unrecognized HTML entity: "+c[0])}a.D=a.D.concat(e.split(/(\r?\n)/));setTimeout(function(){yg(a)},0)}})}} +function zg(a){if(0<=a.Y.indexOf("p"))return a.u(a.D.join()),0;var b=Te(a.i);try{var c;for(c=0;cH)break;var t=H+1,R=H+n.length,bb="",Bb="";H&&(bb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(R>=b.length)&&(Bb=b[R]).match(/[0-9A-Z$%.]/i)||("'"==bb&&H--,"'"==Bb&&R++,b=b.substr(0,H)+p+b.substr(R),t=H+p.length,g=!0)}c=null}}d=h[1];c=h[3].trim();h=h[3]+h[4];d&&(d=d.slice(0,-1),Jg(a,d,a.sa,Kg));var C;f&&(C=c.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=C[1],c=C[2],"=="==f?e|= +Lg:"=:"==f&&(e|=Mg),Jg(a,d,c,e),f=c="");if(!f&&!c)return!0;a.K=f;C=c;d=0;e=null;b=0;for(g=-1;b=--d););0>d&&a.error("missing bracket(s): "+C);0<=g&&(e=C.substr(g,b-g));for((C=e)&&(c=c.replace(C,Ng(a,Og,C)));C=Pg(a,c);)c=c.replace(C,C.slice(0,-1));if(!Fg(a,f,c))switch(f){case Qg:case Rg:case Sg:Gg(a,h);break;case Tg:Ug(a,0,c.replace(",",",,"));break;case Vg:case Wg:case Xg:case Hg:case Ig:case Yg:Ng(a,f,c);break;case Zg:case $g:break;default:h= +c,C=f+h,0<=C.indexOf(",,")||!f&&0>C.indexOf("@")&&0>C.indexOf("(")?f=Dg(a,C,!0):(f=Gf(a.i,f,h,a.sa,!0),0>f&&(f=Gf(a.i,"",C,a.sa,!0),0>f&&(f=void 0))),void 0!==f?Ug(a,f,a.i.ka):a.error("unrecognized expression: "+C)}return!0} +function Fg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c)return b=a.v,a.v=d,d.La=ah(a,c,!0),Cg(a,d.Ba,d.Na,d.La,d.vb),a.v=b,!0;if("?"!=b[0])return!1;switch(b.substr(1)){case Wg:d.$a||Cg(a,d.Ba);break;case Xg:d.$a&&Cg(a,d.Ba);break;case Hg:case Ig:for(c=0;c"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.G+=b}if(null==a.w){var d=b=0,e,f,g=a.G.length;a.K==Rg&&g++;for(var h=0;h=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Ug(a,d),b=0)}b&&Ug(a,d)}return c} +function Ng(a,b,c){var d,e,f,g,h,k;a.F="<";a.C=">";g=h=k=[];if(b==Vg){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]){h=g=ah(a,e[2],!0);b=[];for(c=0;c");0>n&&(n=h[c].length);b[c]=h[c].substr(d,n-d);h[c]=h[c].substr(0,d)}h=b}b=dh;c=3}else if(b==Og)a.F="[",a.C="]",f="?"+va(a.sa,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],f+": "+c.substr(1)], +b=eh,a.H.push(f),c=0;else if(b==Hg||b==Ig){a.v||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)(.*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d=F)&&Ag(a,"truncated value "+m(b)+" at location "+m(c)+" to "+m(d));return d}qg.prototype.u=function(a){this.i?this.i.u(a):console.log(a)};var Kg=1,Lg=2,Mg=4,Qg="ASCII",Rg="ASCIZ",Vg="DEFINE",Wg="IFE",Xg="IFN",Hg="IRP",Ig="IRPC",Og="LITERAL",Zg="PAGE",Yg="REPEAT",Sg="SIXBIT",$g="SUBTTL",Tg="XWD",dh=-1,eh=-2,ch=-3; +function fh(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;gh(this,b);this.O=$c(this,"autoPower",a,6);this.w=0;this.Y=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.T=!1;this.I=this.C=null;this.S=this.P=!1;this.da=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=hh(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.G=new zc({id:this.Wa+".bus",busWidth:this.Y},this.v,this.D);var d,e=qb(this.id);if((this.j=sb("Panel",this.id))&&this.j.va)for(b= +0;b\nLicense: GPL version 3 or later ");for(b=0;bih){if(jh(d,this.L)){this.C=new I(this,"1.34.2",Dh);jh(this.C)&&(Eh(this,d),a=Fh,Gh(this.C));this.C.set(ph,Ga());Hh(this.C);var e=this.b&&!this.K;if(a==qh||pb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=oh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jh(d,g):("error"==f&&"no machine state"!= +g?(this.ea("Error: "+g),"unable to verify user"==g&&(Qa(Ih,""),this.i=null)):this.u(f+": "+g),Gh(d),jh(d)?(c=oh(d),e=!0):c=!1))}e&&mh(this,c?d:null)}else a==Fh&&d.clear()}else mh(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Jh(this,this.v,b,c,a),K(this,-2),this.v.ba());this.P&&(Eh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0}; +function Eh(a,b){if(pb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}} +function vg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new I(a,"1.34.2"),g=new I(a,"1.34.2",nh),h=Ga();g.set(ph,h);f.set(ph,h);f.set(Kh,"1.34.2");f.set(Lh,window?window.location.href:null);f.set(Mh,window?window.navigator.userAgent:"");a.v&&a.v.ma&&(c&&(b&&(a.v.A.ba=a.v.A.N),a.v.V()),d=a.v.ma(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k=d||30<=(c.eb+=d))&&(e.textContent=c.A.N?c.Y.toFixed(2)+"Mhz":"Stopped",c.eb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);Uh(a,b,c)}})}else c(a,null)} +function Vh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);n&&(--Rh||ab(!0));n=!1}var h,k,n=!0;Rh++;nb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));t.appendChild(B)}d|| +(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Sh(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Rh||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Rh|| +ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Sh(c,b,a,e,!0,f,p):Th(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return n}window.embedPDP10=function(a,b,c,d){ab(!1);return Vh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return Vh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return sb(b,a+".machine")}; +window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!vb[a]){for(var c=!0,d=vb,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p