From d28d1ee940a501d98b40088a08237e6a75340b45 Mon Sep 17 00:00:00 2001 From: Jeff Date: Tue, 4 Apr 2017 10:42:41 -0700 Subject: [PATCH] Added a few PDP-10 byte pointer fixes, along with the ability to pass MACRO-10 text directly into the MACRO-10 assembler (use the Debugger's "as" command) --- apps/pdp10/diags/ka10/dakam/README.md | 2 +- modules/pdp10/lib/cpuops.js | 20 +- modules/pdp10/lib/cpustate.js | 4 +- modules/pdp10/lib/debugger.js | 47 ++- modules/pdp10/lib/macro10.js | 149 ++++++-- versions/pc8080/1.34.3/pc8080.js | 4 +- versions/pcx86/1.34.3/pcx86.js | 4 +- versions/pdpjs/1.34.3/pdp10-dbg.js | 517 +++++++++++++------------- versions/pdpjs/1.34.3/pdp10.js | 105 +++--- versions/pdpjs/1.34.3/pdp11.js | 4 +- 10 files changed, 481 insertions(+), 375 deletions(-) diff --git a/apps/pdp10/diags/ka10/dakam/README.md b/apps/pdp10/diags/ka10/dakam/README.md index ca61257dc..763d95596 100644 --- a/apps/pdp10/diags/ka10/dakam/README.md +++ b/apps/pdp10/diags/ka10/dakam/README.md @@ -7,7 +7,7 @@ machines: type: pdp10 config: /devices/pdp10/machine/ka10/test/debugger/machine.xml debugger: true - commands: a dakam.mac + commands: a dakam.mac;g 033352 --- PDP-10 KA10 Basic Instruction Diagnostic #13 diff --git a/modules/pdp10/lib/cpuops.js b/modules/pdp10/lib/cpuops.js index 3ffdc4679..2e105b9bf 100644 --- a/modules/pdp10/lib/cpuops.js +++ b/modules/pdp10/lib/cpuops.js @@ -257,7 +257,16 @@ PDP10.opFSC = function(op, ac) * * From the DEC PDP-10 System Reference Manual (May 1968), p. 2-16: * - * Increment the byte pointer in location E as explained [below]. + * Increment the byte pointer in location E as explained [below]. The pointer has the format: + * + * 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 + * P P P P P P S S S S S S - I X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + * + * where S is the size of the byte as a number of bits, and P is its position as the number of bits + * remaining at the right of the byte in the word (eg if P is 3 the rightmost bit of the byte is bit 32 + * of the word). The rest of the pointer is interpreted in the same way as in an instruction: I, X and Y + * are used to calculate the address of the location that is the source or destination of the byte. * * To facilitate processing a series of bytes, several of the byte instructions increment the * pointer, ie, modify it so that it points to the next byte position in a set of memory locations. @@ -277,9 +286,6 @@ PDP10.opFSC = function(op, ac) * a byte of size 36 - P is loaded from position P, or the right 36 - P bits of the byte are deposited * in position P. * - * NOTE: Until I can conduct real-world testing, I'm assuming when they say "100 - S", DEC really meant "64 - S", - * which is 100 [base 8], which makes much more sense, since P is limited to a range of 00-77 [base 8]. - * * @this {CPUStatePDP10} * @param {number} op * @param {number} ac @@ -294,7 +300,7 @@ PDP10.opIBP = function(op, ac) if (p < 0) { inc++; p = 36 - s; - if (p < 0) p = 64 - s; // see SPECIAL CONSIDERATIONS and NOTE above + if (p < 0) p = 100 - s; // see SPECIAL CONSIDERATIONS and NOTE above } /* * Since the documentation above makes clear that the effect of the increment (of w) extends past the Y @@ -378,7 +384,7 @@ PDP10.opLDB = function(op, ac) } var p = (this.regBP / PDP10.OPCODE.P_SCALE) & PDP10.OPCODE.P_MASK; var s = (this.regBP >> PDP10.OPCODE.S_SHIFT) & PDP10.OPCODE.S_MASK; - if (p + s <= 32) { + if (p + s < 32) { /* * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is @@ -389,7 +395,7 @@ PDP10.opLDB = function(op, ac) /* * Regarding the SPECIAL CONSIDERATIONS above, even if the P ("shift") and/or S ("mask") values are * over-large, that should be fine, because nothing but additional zero bits will be included (provided - * our memory is working properly and didn't give us more than 36 bits). + * our memory is working properly and didn't give us more than 36 bits of unsigned data). */ w = Math.trunc(w / Math.pow(2, p)) % Math.pow(2, s); } diff --git a/modules/pdp10/lib/cpustate.js b/modules/pdp10/lib/cpustate.js index 11dcff1ec..b0a3fb971 100644 --- a/modules/pdp10/lib/cpustate.js +++ b/modules/pdp10/lib/cpustate.js @@ -910,7 +910,7 @@ class CPUStatePDP10 extends CPUPDP10 { * non-DEBUGGER builds. */ if (DEBUGGER && (this.opFlags & PDP10.OPFLAG.DEBUGGER)) { - if (this.dbg.checkInstruction(this.getPC(), nDebugState)) { + if (this.dbg.checkInstruction(this.getXC(), nDebugState)) { this.stopCPU(); break; } @@ -927,7 +927,7 @@ class CPUStatePDP10 extends CPUPDP10 { */ if ((this.opFlags & (PDP10.OPFLAG.IRQ_MASK | PDP10.OPFLAG.WAIT)) /* && nDebugState >= 0 */) { if (this.checkInterrupts()) { - if ((this.opFlags & PDP10.OPFLAG.DEBUGGER) && this.dbg.checkInstruction(this.getPC(), nDebugState)) { + if ((this.opFlags & PDP10.OPFLAG.DEBUGGER) && this.dbg.checkInstruction(this.getXC(), nDebugState)) { this.stopCPU(); break; } diff --git a/modules/pdp10/lib/debugger.js b/modules/pdp10/lib/debugger.js index 2a03c1e51..ad2af38f7 100644 --- a/modules/pdp10/lib/debugger.js +++ b/modules/pdp10/lib/debugger.js @@ -2669,8 +2669,8 @@ class DebuggerPDP10 extends Debugger { return true; } - var match = sOpcode.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i); - if (match) { + var match = sOpcode.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i); + if (match && (match[1] || match[3])) { var dbg = this; var cpu = this.cpu; dbgAddr = this.parseAddr(sAddr); @@ -2678,9 +2678,11 @@ class DebuggerPDP10 extends Debugger { dbg.println("assembly already in progress"); } else { - var sFile = match[2]; + var sFile = match[2] + match[3]; + if (!match[3]) sOptions += 's'; var addrLoad = dbgAddr.addr; - var macro10 = this.macro10 = new Macro10(sFile, addrLoad, sOptions, dbg, function doneMacro10(nErrorCode, sURL) { + var macro10 = this.macro10 = new Macro10(dbg); + macro10.assembleFiles(sFile, addrLoad, sOptions, function doneMacro10(nErrorCode, sURL) { if (!nErrorCode) { /* * NOTE: Most Debugger operations run in the context of doCommand(), which catches any exceptions; @@ -3706,21 +3708,48 @@ class DebuggerPDP10 extends Debugger { } /** - * splitArgs(sCmd) + * splitArgs(sCmd, sDelim) * * @this {DebuggerPDP10} * @param {string} sCmd + * @param {string} [sDelim] * @return {Array.} */ - splitArgs(sCmd) + splitArgs(sCmd, sDelim = " ") { - var asArgs = sCmd.replace(/ +/g, ' ').split(' '); + var asArgs = []; + var chQuote = ""; + var i = 0, iLast = 0; + + while (i < sCmd.length) { + var ch = sCmd[i++]; + if (chQuote) { + if (ch == chQuote) { + chQuote = ""; + asArgs.push(sCmd.substr(iLast, i - iLast)); + iLast = i; + } + continue; + } + if (ch == '"' || ch == "'") { + chQuote = ch; + continue; + } + if (sDelim.indexOf(ch) >= 0) { + asArgs.push(sCmd.substr(iLast, i - iLast - 1)); + iLast = i; + } + } + if (iLast < i) { + asArgs.push(sCmd.substr(iLast, i - iLast)); + } + asArgs[0] = asArgs[0].toLowerCase(); if (asArgs && asArgs.length) { var s0 = asArgs[0]; var ch0 = s0.charAt(0); - for (var i = 1; i < s0.length; i++) { - var ch = s0.charAt(i); + for (i = 1; i < s0.length; i++) { + ch = s0.charAt(i); if (ch0 == '?' || ch0 == 'r' || ch < 'a' || ch > 'z') { asArgs[0] = s0.substr(i); asArgs.unshift(s0.substr(0, i)); diff --git a/modules/pdp10/lib/macro10.js b/modules/pdp10/lib/macro10.js index 614b4aafc..2f5563ce8 100644 --- a/modules/pdp10/lib/macro10.js +++ b/modules/pdp10/lib/macro10.js @@ -91,66 +91,87 @@ var Scope; /** * @class Macro10 * @property {string} sURL - * @property {number} addrLoad + * @property {number|null} addrLoad * @property {string} sOptions * @property {DebuggerPDP10} dbg - * @property {function(...)} done + * @property {function(...)|undefined} done * @property {number} iURL - * @property {Array.} asURLs + * @property {Array.} aURLs + * @property {Array.} anLines * @property {Array.} asLines * @property {number|null|undefined} addrStart + * @unrestricted */ class Macro10 { /** - * Macro10(sURL, addrLoad, sOptions, dbg, done) + * Macro10(dbg) * * A "mini" version of DEC's MACRO-10 assembler, with just enough features to support the handful * of DEC diagnostic source code files that we choose to throw at it. * - * Requests the resource(s) specified by sURL; multiple resources can be requested by separating - * them with semicolons. - * - * The done() callback is called after the resource(s) have been loaded and parsed. The caller - * must use other methods to obtain further results (eg, getImage(), getStart()). - * - * The callback includes a non-zero error code if there was an error (and the URL): - * - * done(nErrorCode, sURL) - * * We rely on the calling component (dbg) to provide a variety of helper services (eg, println(), * parseExpression(), etc). This is NOT a subclass of Component, so Component services are not part * of this class. * + * @this {Macro10} + * @param {DebuggerPDP10} dbg (used to provide helper services to the Macro10 class) + */ + constructor(dbg) + { + this.dbg = dbg; + } + + /** + * init(addrLoad, sOptions, done) + * + * Initializes all instance properties. Called by assembleFiles() and assembleString(). + * * Supported options include: * * 'd': leave all symbols in the debugger's variable table * 'p': print the preprocessed resource(s) without assembling them * 'l': print lines as they are parsed + * 's': treat the URL as a string and assemble it (assembleFiles() only) + * + * The done() callback is called after the resource(s) have been loaded (if necessary), parsed, and + * assembled. The caller must use other methods to obtain further results (eg, getImage(), getStart()). + * + * The callback includes a non-zero error code if there was an error (and the URL): + * + * done(nErrorCode, sURL) * * @this {Macro10} - * @param {string} sURL (the URL(s) of the resource to be assembled) - * @param {number|null} addrLoad (the absolute address to assemble the code at, if any) - * @param {string|null} sOptions (zero or more letter codes to control the assembly process) - * @param {DebuggerPDP10} dbg (used to provide helper services to the Macro10 class) - * @param {function(...)} done + * @param {number|null} [addrLoad] (the absolute address to assemble the code at, if any) + * @param {string|undefined} [sOptions] (zero or more letter codes to control the assembly process) + * @param {function(...)|undefined} [done] */ - constructor(sURL, addrLoad, sOptions, dbg, done) + init(addrLoad, sOptions, done) { - this.sURL = sURL; this.addrLoad = addrLoad; - this.sOptions = sOptions || ""; - this.dbg = dbg; + this.sOptions = (sOptions || "").toLowerCase(); this.done = done; - /* - * The next set of properties may be updated by the assembly process and queried by the caller. + this.iURL = 0; + this.aURLs = []; + + /** + * Number of lines per file. + * + * @type {Array.} */ - this.addrStart = null; + this.anLines = []; + + /** + * Lines from all the resources. + * + * @type {Array.} + */ + this.asLines = []; if (MAXDEBUG) this.println("starting PCjs MACRO-10 Mini-Assembler..."); /* - * Initialize all the tables that MACRO-10 uses. + * Initialize all the tables and other data structures that MACRO-10 uses. * * The Macros (tblMacros) and Symbols (tblSymbols) tables are fairly straightforward: they are * indexed by a macro or symbol name, and each element is a Mac or Sym object, respectively. @@ -266,18 +287,65 @@ class Macro10 { */ this.sASCII = ""; - /** - * @type {Array.} - */ - this.asLines = []; + this.addrStart = null; + } - this.iURL = 0; - this.asURLs = sURL.split(';'); - this.anLines = []; // keeps track of the number of lines per file + /** + * assembleFiles(sURL, addrLoad, sOptions, done) + * + * Requests the resource(s) specified by sURL; multiple resources can be requested by separating + * them with semicolons. The resources are requested and combined in the same order they are listed, + * and after the last resource has been received, they are assembled as a single unit. + * + * As a courtesy to the Debugger's doAssemble() function, we allow it to select between assembleFiles() + * and assembleString() by specifying an 's' option here, rather than having two separate code paths. + * + * @this {Macro10} + * @param {string} sURL (the URL(s) of the resource to be assembled) + * @param {number|null} [addrLoad] (the absolute address to assemble the code at, if any) + * @param {string|undefined} [sOptions] (zero or more letter codes to control the assembly process) + * @param {function(...)|undefined} [done] + */ + assembleFiles(sURL, addrLoad, sOptions, done) + { + if (sOptions && sOptions.indexOf('s') >= 0) { + this.assembleString(sURL, addrLoad, sOptions, done); + return; + } + + this.init(addrLoad, sOptions, done); + + this.aURLs = sURL.split(';'); this.loadNextResource(); } + /** + * assembleString(sText, addrLoad, sOptions, done) + * + * Assembles the given text. + * + * @this {Macro10} + * @param {string} sText + * @param {number|null} [addrLoad] (the absolute address to assemble the code at, if any) + * @param {string|undefined} [sOptions] (zero or more letter codes to control the assembly process) + * @param {function(...)|undefined} [done] + * @return {number} + */ + assembleString(sText, addrLoad, sOptions, done) + { + this.init(addrLoad, sOptions, done); + + this.asLines = sText.split(/(\r?\n)/); + this.anLines.push(this.asLines.length); + + this.parseResources(); + + if (this.done) this.done(this.nError); + + return this.nError; + } + /** * loadNextResource() * @@ -285,13 +353,14 @@ class Macro10 { */ loadNextResource() { - if (this.iURL == this.asURLs.length) { - this.done(this.parseResources()); + if (this.iURL == this.aURLs.length) { + this.parseResources(); + if (this.done) this.done(this.nError); return; } var macro10 = this; - var sURL = this.asURLs[this.iURL]; + var sURL = this.aURLs[this.iURL]; this.println("loading " + Str.getBaseName(sURL)); @@ -305,7 +374,7 @@ class Macro10 { Web.getResource(sURL, null, true, function processMacro10(sFile, sResource, nErrorCode) { if (nErrorCode) { - macro10.done(nErrorCode, sFile); + if (macro10.done) macro10.done(nErrorCode, sFile); return; } var sText = sResource; @@ -1100,13 +1169,13 @@ class Macro10 { var iURL = 0; while (nLine > this.anLines[iURL]) { nLine -= this.anLines[iURL]; - if (iURL < this.asURLs.length - 1) { + if (iURL < this.aURLs.length - 1) { iURL++; } else { break; } } - return Str.getBaseName(this.asURLs[iURL] + " line " + nLine); + return Str.getBaseName(this.aURLs[iURL] + " line " + nLine); } /** diff --git a/versions/pc8080/1.34.3/pc8080.js b/versions/pc8080/1.34.3/pc8080.js index f0be52bcd..7686aae28 100644 --- a/versions/pc8080/1.34.3/pc8080.js +++ b/versions/pc8080/1.34.3/pc8080.js @@ -34,8 +34,8 @@ for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:func var ga=ca[ca.length-1],ha=ba[ga],ia=ha?ha:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};ia!=ha&&null!=ia&&aa(ba,ga,{configurable:!0,writable:!0,value:ia}); var n={Yd:0,ae:1,be:2,ce:3,de:4,ee:5,fe:6,ge:7,he:8,ie:9,je:10,ke:11,le:12,me:13,ne:14,oe:15,pe:16,qe:17,re:18,se:19,te:20,ue:21,ve:22,we:23,xe:24,ye:25,ze:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ia:65,sb:66,tb:67,kb:68,E:69,wb:70,xb:71,yb:72,zb:73,Ab:74,Bb:75,lb:76,Fb:77,Gb:78,Jb:79,Kb:80,Q:81,Lb:82,Nb:83,Ob:84,Pb:85,Rb:86,Sb:87, Ub:88,Vb:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wb:97,Rc:98,Tc:99,d:100,e:101,Xc:102,Yc:103,Zc:104,$c:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,Kd:115,t:116,Ld:117,Md:118,Nd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ae:127},ja={59:186,61:187,173:189,224:91}; -function ka(a){var b=16,c;if(a){b||(b=10);var d,e,f=0g&&(g+=Math.pow(2,36)),g=0=b&&(e= +a.match(/(-?[0-9]+)B([0-9]*)/))&&(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?0:d;var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var f=d||-1;0=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/16)}f--}return(void 0===c?"":c)+e} function la(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0"']/g,function(a){return qa[a]})}function ra(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} var qa={"&":"&","<":"<",">":">",'"':""","'":"'"},sa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; diff --git a/versions/pcx86/1.34.3/pcx86.js b/versions/pcx86/1.34.3/pcx86.js index 448f70234..abca4799c 100644 --- a/versions/pcx86/1.34.3/pcx86.js +++ b/versions/pcx86/1.34.3/pcx86.js @@ -50,8 +50,8 @@ var la={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[4 "(":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,Bd:65,wh:66,xh:67,zh:68,E:69,Ah:70,Bh:71,Ch:72,Dh:73,Eh:74,Fh:75,Gh:76,Hh:77,Ih:78,Jh:79,Kh:80,Q:81,Lh:82,Mh:83,Nh:84,Oh:85,Ph:86,Qh:87,Rh:88,Sh:89,sf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Cd:97,jk:98,kk:99,d:100,e:101,vk:102,wk:103,xk:104,yk:105,Jl:106,k:107,Ll:108,Pl:109,n:110,Vl:111,p:112,q:113,r:114,pn:115,t:116,sn:117,tn:118,un:119,x:120, y:121,z:122,"{":123,"|":124,"}":125,"~":126,po:127},ma={};ma[173]=n["-"];ma[186]=n[";"];ma[187]=n["="];ma[189]=n["-"];ma[188]=n[","];ma[190]=n["."];ma[191]=n["/"];ma[192]=n["`"];ma[219]=n["["];ma[220]=n["\\"];ma[221]=n["]"];ma[222]=n["'"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"]; p[192]=n["~"];p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"]; -function na(a,b){var c;if(a){b||(b=10);var d,e,f=0g&&(g+=Math.pow(2,36)),g=0=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&& +(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?0:d;var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var f=d||-1;0=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/16)}f--}return(void 0===c?"":c)+e} function pa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0"']/g,function(a){return ta[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} var ta={"&":"&","<":"<",">":">",'"':""","'":"'"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; diff --git a/versions/pdpjs/1.34.3/pdp10-dbg.js b/versions/pdpjs/1.34.3/pdp10-dbg.js index 58e29bc6b..4c9c046b2 100644 --- a/versions/pdpjs/1.34.3/pdp10-dbg.js +++ b/versions/pdpjs/1.34.3/pdp10-dbg.js @@ -29,273 +29,274 @@ */ var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++} function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ia(function(){return ba?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); -var ma={uc:0,Nb:1,wc:2,xc:3,yc:4,zc:5,Ac:6,Bc:7,xb:8,Cc:9,Ob:10,Dc:11,Ec:12,Pb:13,Fc:14,Gc:15,Hc:16,Ic:17,Jc:18,Kc:19,Lc:20,Mc:21,Nc:22,Oc:23,Pc:24,Qc:25,Rc: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,wb:65,tc:66,vc:67,Sc:68,E:69,Tc:70,Uc:71,Vc:72,Wc:73,Xc:74,Yc:75,Zc:76,$c:77,ad:78,bd:79,cd:80,Q:81,dd:82,ed:83,fd:84,gd:85,hd:86,jd:87, +function ja(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ma(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;da?-b:b}});ma("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); +var na={uc:0,Nb:1,wc:2,xc:3,yc:4,zc:5,Ac:6,Bc:7,xb:8,Cc:9,Ob:10,Dc:11,Ec:12,Pb:13,Fc:14,Gc:15,Hc:16,Ic:17,Jc:18,Kc:19,Lc:20,Mc:21,Nc:22,Oc:23,Pc:24,Qc:25,Rc: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,wb:65,tc:66,vc:67,Sc:68,E:69,Tc:70,Uc:71,Vc:72,Wc:73,Xc:74,Yc:75,Zc:76,$c:77,ad:78,bd:79,cd:80,Q:81,dd:82,ed:83,fd:84,gd:85,hd:86,jd:87, kd:88,ld:89,Rb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,md:97,nd:98,od:99,d:100,e:101,pd:102,qd:103,rd:104,sd:105,td:106,k:107,ud:108,vd:109,n:110,wd:111,p:112,q:113,r:114,xd:115,t:116,zd:117,Ad:118,Bd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Qb:127}; -function na(a,b){var c;if(a){b||(b=10);var d,e,f=0=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&& +function oa(a,b){var c;if(a){b||(b=10);var d,e,f=0=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&& (a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0a&&-1a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function ua(a,b,c){b?12=b?6:16777215>=b?8:12);return oa(a,8,b,c?"0o":"")} -function va(a,b){b?11=Math.abs(a)?5:11;return oa(a,10,b)}function n(a,b,c){b?9=b?4:4294967295>=b?8:9);return oa(a,16,b,c?"0x":"")}function wa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}function Ca(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, +function pa(a,b,c,d,e){e=void 0===e?0:e;var f="";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))));for(var g=e||-1;0=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function wa(a,b,c){b?12=b?6:16777215>=b?8:12);return pa(a,8,b,c?"0o":"")} +function xa(a,b){b?11=Math.abs(a)?5:11;return pa(a,10,b)}function n(a,b,c){b?9=b?4:4294967295>=b?8:9);return pa(a,16,b,c?"0x":"")}function ya(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0"']/g,function(a){return Ca[a]})}function Da(a,b){return(a+" ").slice(0,b)}function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ca={"&":"&","<":"<",">":">",'"':""","'":"'"};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, f,e))});if(b&&"object"==typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));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 Ia(a,b){var c,d={da:null,aa:null,la:null,ya: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.la=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(q(d.da[0]),d=null):(q("Empty resource: "+a),d=null));d.aa=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.ab=this.id:(this.bb=this.id.substr(0,a),this.ab=this.id.substr(a+1));this.A={ready:!1,Va:!1,qb:!1,ba:!1,error:!1};this.fb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;eb.push(this)}function fb(a,b,c){gb[a]&&b&&(gb[a][b]=c)}function nb(){return Date.now()||+new Date} -function q(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(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.la=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(r(d.da[0]),d=null):(r("Empty resource: "+a),d=null));d.aa=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.ab=this.id:(this.bb=this.id.substr(0,a),this.ab=this.id.substr(a+1));this.A={ready:!1,Va:!1,qb:!1,ba:!1,error:!1};this.fb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;hb.push(this)}function ib(a,b,c){jb[a]&&b&&(jb[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;ba;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc, -set:this.nc};Bb(this)}ja(cc,r);m=cc.prototype;m.reset=function(a){this.stop();a&&ec(this,this.w=0)}; -m.sa=function(a,b,c,d){if(this.H&&this.H.sa(a,b,c,d)||this.v&&this.v.sa(a,b,c,d)||this.D&&this.D.sa(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(){fc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){gc(a,b)}}(this,b),a.ontouchstart= -function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.sa.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ba=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()}; -m.restore=function(a){if(a=a[0])kc(this,this.i=a[0]),ec(this,this.w=a[1]),lc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.C)mc(a,c,null!=b?b:a.C[c])}function nc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])} -m.Vb=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return lc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};m.oc=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.O=b==pc,a.R=b==qc),!0):!1} -function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(H(this.v,this.i),this.b[rc]&&this.b[rc][1]&&sc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()}; -m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[rc]&&this.b[rc][1])sc(this.v);else{if((a=this.D)&&!Db(a,!0))Ob(a,!0),tc(a,0,null),Ob(a,!1);else try{var b=this.v.Za(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&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Xa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Xa){l=h.size-(e-k);l>f&&(l=f);h.Xa=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Fc(Gc,e,f)}e=new Bc(a,e,l,16384,d);Cc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Hc[d]+" at "+ua(b)),!0):Fc(Ic,b,c)} -function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function yc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Dc(a){for(var b=0,c=[],d=0;d=a.ta&&(a.ta+=a.pa,c=!0);0<=a.ua&&a.ua<=fd(a)&&(a.pa=a.ua=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}} -m.sa=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.ba)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;ca.Z/a.ga?b=1:d=!0;a.ha=b;b=a.lb*a.ha;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.U=0;hd(a);return d}function kd(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[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.V-=a.N;a.N=0;b&&(a.V=0);return c} -m.lc=function(){if(this.A.P){this.cb>=this.ob&&hd(this,!0);this.va=0;this.Ga=nb();if(this.U){var a=this.Ga-this.U;a>this.nb&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Ua?1:this.Ja);try{this.Za(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.va+=b;this.M+=b;wc(this,b);uc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ja;++this.pb>=nd&&(this.H&&K(this.H,void 0),this.pb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this, -e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.U=nb();var c=this.nb;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.U-this.Ga),d=this.U-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.X=0,gd(this)));if(0>c||this.Zc&&(this.L-=c),c=0;this.cb+=this.va;this.U+=c;a(b,c)}}}; -function sc(a,b){if(!zb(a))if(a.A.P)a.u(a.toString()+" busy");else{gd(a);a.A.P=!0;a.A.ib=!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.Fb,0)}}m.Za=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){md(this);vc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),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.mb=b;this.$a=+a.addrReset||0;this.Sb=pd.bind(this);this.w=M.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ja(od,Yc);m=od.prototype; -m.reset=function(){this.status("Model "+this.mb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.oa=this.$a;this.K=this.O=-1;this.F=this.j=0;this.jb=[0,0];this.wa=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Kb=function(){return 0}; -m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.oa,this.Ca,this.$a]);a.set(1,[]);a.set(2,[this.X,this.ha,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()}; -m.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.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.oa=b.next().value;this.Ca=b.next().value;this.$a=b.next().value;b=a[2];this.X=b[0];gd(this,b[1]);this.A.fa=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)}; -m.sc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b}; -m.Za=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.ib?-1:0:0,c=a?this.A.ib?0:1:-1;this.A.ib=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La= -this.f(this.oa=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Sb(a);this.N--}while(0>4].call(this,a,a&15)}function O(a){this.w(a)} -function wd(){var a=0,b=this.f(this.b),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function xd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>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.j&=-8193;this.K=-1}} -function yd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function zd(a,b){this.g(b,this.f(this.b))}function Ad(a,b){this.g(b,this.b)}function Bd(a,b){this.g(this.b,this.f(b))}function Cd(a,b){this.g(b,0)}function Dd(a,b){this.g(b,C-this.f(b))}function Ed(a,b){this.g(b,C)} -function Fd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Gd(a,d,c)+(c-(c&x)))}function Hd(a,b){var c=this.f(b);this.g(b,Gd(a,c,0))}function Id(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+(b-(b&x)))}function Jd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Kd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)} -function Ld(a,b){var c=this.b*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}function Md(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+b)}function Nd(a,b){var c=this.f(this.b),d=(c&x)*y,c=Gd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&x,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)&x;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&=x,a){case 256:d+=x*y;break;case 384:d+=c>Ub?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/y|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)/y|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/y|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){ne[a&7].call(this,a,a>>3&127)} -function oe(){}function pe(){}function M(a){this.u("undefined opcode: "+ua(a));sd(this,-1);this.Y()}function qe(a){a>z&&(a!=B?a=Xb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%D;re.call(this,a,b,c);return c} -function se(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.j|=131104,-1;c=b>z?C:0}else if((c=(az&&(a=D-a,d=!d);c>z&&(b?(c=C-c,b=D-b):c&&(c=D-c),e=!0,d=!d);f=this.jb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.na;f[0]=a;f[1]=0;a=this.xa;a[0]=b;for(a[1]=c;0c[0]&&(c[0]+=D,c[1]--),ue(this.jb,this.wa),ve(this.xa)))break;we(this.na);we(this.wa)}while(!ve(this.wa));b=this.jb[0];this.F=this.xa[0];d&&b&&(b=D-b);e&&this.F&&(this.F=D-this.F);return b} -function xe(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.mb||e!=B)&&(e=D-e,b=!b);f>z&&(f=D-f,b=!b);if(ez)&&(g!=C||a<=z)&&(this.j|=131072),g=a);return g} -function ye(a){a?a==B?this.j|=163840:a=Xb-a:this.j|=98304;return a}function ze(a,b){var c=a-b;0>c&&(c+=D);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Wb);b=Math.trunc(b/Wb);c=Math.trunc(c/Wb);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 Ae(a,b){return(a>>0)}function T(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function U(a){return a>>0)}function W(a){return(a/y|0)+(a&x)*y}function fe(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Ub?x*y:0}return b}function Gd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b} -function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,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]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]} -var vd=[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)},wd,function(a,b){this.j&8192||(wd.call(this),this.j|=8192);xd.call(this,0,b)},xd,function(a,b){this.j&8192||(wd.call(this),this.j|=8192);yd.call(this,0,b)},yd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, +function dc(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=ec;this.C={};this.b={START:[1,1,!0,!1,this.ec],STEP:[1,1,!1,!1,this.fc],ENABLE:[1,1,!1,!1,this.$b],CONT:[1,1,!0,!1,this.Yb],DEP:[0,0,!0,!1,this.Zb],EXAM:[1,1,!0,!1,this.ac],LOAD:[1,1,!0,!1,this.cc],TEST:[0,0,!0,!1,this.bc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc, +set:this.nc};Db(this)}ja(dc,t);m=dc.prototype;m.reset=function(a){this.stop();a&&fc(this,this.w=0)}; +m.sa=function(a,b,c,d){if(this.H&&this.H.sa(a,b,c,d)||this.v&&this.v.sa(a,b,c,d)||this.D&&this.D.sa(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(){gc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){hc(a,b)}}(this,b),a.ontouchstart= +function(a,b){return function(c){gc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){hc(a,b)}}(this,b),!0):t.prototype.sa.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ic(this);jc(this)};m.Ba=function(a,b){if(!b)if(this.V&&kc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new H(this);a.set(0,[this.i,this.w,this.j]);return a.data()}; +m.restore=function(a){if(a=a[0])lc(this,this.i=a[0]),fc(this,this.w=a[1]),mc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}jc(this);return!0};function nc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ic(a,b){for(var c in a.C)nc(a,c,null!=b?b:a.C[c])}function oc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jc(a){for(var b in a.b)oc(a,b,a.b[b][1])} +m.Vb=function(a,b,c){if(gc(this,b)){if(c){var d=this;setTimeout(function(){hc(d,b);a&&a()},+c);return!1}hc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return mc(this,oa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,oc(this,a,c[1]),!0):!1};m.oc=function(a){return gc(this,a)?(hc(this,a),!0):!1};function gc(a,b){var c=a.b[b];return c?(oc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=pc&&(a.O=b==qc,a.R=b==rc),!0):!1} +function hc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(oc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(I(this.v,this.i),this.b[sc]&&this.b[sc][1]&&tc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()}; +m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[sc]&&this.b[sc][1])tc(this.v);else{if((a=this.D)&&!Eb(a,!0))Pb(a,!0),uc(a,0,null),Pb(a,!1);else try{var b=this.v.Za(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&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Xa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Xa){l=h.size-(e-k);l>f&&(l=f);h.Xa=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Gc(Hc,e,f)}e=new Cc(a,e,l,16384,d);Dc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+wa(b)),!0):Gc(Jc,b,c)} +function Ac(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function zc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d=a.ta&&(a.ta+=a.pa,c=!0);0<=a.ua&&a.ua<=hd(a)&&(a.pa=a.ua=-1,dd(a),a.Y(),c=!0);c&&a.u(hd(a)+" cycles: checksum="+n(a.Ha))}} +m.sa=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.ba)a=!0;else{var b=null,c,h=rb(a.id);for(c=0;ca.Z/a.ga?b=1:d=!0;a.ha=b;b=a.lb*a.ha;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&ld(a.H)}wc(a,a.M);a.M=0;a.L=pb();a.S=0;jd(a);return d}function md(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function od(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c} +m.lc=function(){if(this.A.P){this.cb>=this.ob&&jd(this,!0);this.va=0;this.Ga=pb();if(this.S){var a=this.Ga-this.S;a>this.nb&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=md(this,this.A.Ua?1:this.Ja);try{this.Za(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.va+=b;this.M+=b;xc(this,b);vc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ja;++this.pb>=pd&&(this.H&&K(this.H,void 0),this.pb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(pb(),hd(this));Ab(this, +e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.S=pb();var c=this.nb;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.S-this.Ga),d=this.S-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,id(this)));if(0>c||this.Zc&&(this.L-=c),c=0;this.cb+=this.va;this.S+=c;a(b,c)}}}; +function tc(a,b){if(!Bb(a))if(a.A.P)a.u(a.toString()+" busy");else{id(a);a.A.P=!0;a.A.ib=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&ld(a.H,!0),a.H.start(a.L,hd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.Za=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){od(this);wc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(pb(),hd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var kd=30,pd=15,ad=["power","reset"]; +function qd(a){var b=+a.model||1001;$c.call(this,a,1E6);this.mb=b;this.$a=+a.addrReset||0;this.Sb=rd.bind(this);this.w=M.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ja(qd,$c);m=qd.prototype; +m.reset=function(){this.status("Model "+this.mb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.oa=this.$a;this.K=this.O=-1;this.F=this.j=0;this.jb=[0,0];this.wa=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;cd(this);this.A.error=!1;$c.prototype.reset.call(this)};m.Kb=function(){return 0}; +m.save=function(){var a=new H(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.oa,this.Ca,this.$a]);a.set(1,[]);a.set(2,[this.W,this.ha,this.A.fa]);a.set(3,sd(this));a.set(4,nd(this));return a.data()}; +m.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.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.oa=b.next().value;this.Ca=b.next().value;this.$a=b.next().value;b=a[2];this.W=b[0];id(this,b[1]);this.A.fa=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)};m.sc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b}; +m.Za=function(a){this.A.complete=!0;var b=this.D?wd(this.D)?1:this.A.ib?-1:0:0,c=a?this.A.ib?0:1:-1;this.A.ib=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(xd(this.D,vd(this),c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&xd(this.D,vd(this),c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I= +this.La=this.f(this.oa=this.i),this.i=(this.i+1)%Ub);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Tb;a=this.I&4194304?-1:this.La/ac|0;0<=a&&this.Sb(a);this.N--}while(0>4].call(this,a,a&15)}function O(a){this.w(a)} +function zd(){var a=0,b=this.f(this.b),c=b/bc&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=100-d));b=c*bc+(d<<24)+(b&16777215);a&&(b=(b+a)%C);this.g(this.b,b)}function Ad(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/bc&63,d=this.K>>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.j&=-8193;this.K=-1}} +function Bd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/bc&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%C;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function Cd(a,b){this.g(b,this.f(this.b))}function Dd(a,b){this.g(b,this.b)}function Ed(a,b){this.g(this.b,this.f(b))}function Fd(a,b){this.g(b,0)}function Gd(a,b){this.g(b,B-this.f(b))}function Hd(a,b){this.g(b,B)} +function Id(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Jd(a,d,c)+(c-(c&x)))}function Kd(a,b){var c=this.f(b);this.g(b,Jd(a,c,0))}function Ld(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Jd(a,c,b)+(b-(b&x)))}function Md(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Nd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Jd(a,d,c)+c)} +function Od(a,b){var c=this.b*y,d=this.f(b);this.g(b,Jd(a,d,c)+c)}function Pd(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Jd(a,c,b)+b)}function Qd(a,b){var c=this.f(this.b),d=(c&x)*y,c=Jd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,je(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,je(a,c,this.b)+this.b)}function le(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,je(a,c,b)+b)} +function me(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Vb?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ne(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,je(a,d,c)+c)}function oe(a,b){var c=this.f(b);this.g(b,je(a,c,0))}function pe(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,je(a,c,b)+b)}function qe(a,b){var c=this.f(this.b),d=c/y|0,c=je(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){re[a&7].call(this,a,a>>3&127)} +function se(){}function te(){}function M(a){this.u("undefined opcode: "+wa(a));ud(this,-1);this.Y()}function ue(a){a>z&&(a!=A?a=Yb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%C;ve.call(this,a,b,c);return c} +function we(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.j|=131104,-1;c=b>z?B:0}else if((c=(az&&(a=C-a,d=!d);c>z&&(b?(c=B-c,b=C-b):c&&(c=C-c),e=!0,d=!d);f=this.jb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.na;f[0]=a;f[1]=0;a=this.xa;a[0]=b;for(a[1]=c;0c[0]&&(c[0]+=C,c[1]--),ye(this.jb,this.wa),ze(this.xa)))break;Ae(this.na);Ae(this.wa)}while(!ze(this.wa));b=this.jb[0];this.F=this.xa[0];d&&b&&(b=C-b);e&&this.F&&(this.F=C-this.F);return b} +function Be(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.mb||e!=A)&&(e=C-e,b=!b);f>z&&(f=C-f,b=!b);if(ez)&&(g!=B||a<=z)&&(this.j|=131072),g=a);return g} +function Ce(a){a?a==A?this.j|=163840:a=Yb-a:this.j|=98304;return a}function De(a,b){var c=a-b;0>c&&(c+=C);ve.call(this,c,b,a);return c}function ve(a,b,c){a=Math.trunc(a/Xb);b=Math.trunc(b/Xb);c=Math.trunc(c/Xb);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/E|0)&(b/E|0))*E+((a&b)>>>0)}function S(a,b){return R(a,(~(b/E|0)&15)*E+(~b>>>0))}function Ee(a,b){return(a>>0)}function T(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function U(a){return a>>0)}function W(a){return(a/y|0)+(a&x)*y}function je(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Vb?x*y:0}return b}function Jd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b} +function ye(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=C&&(a[0]%=C,a[1]++)}function xe(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Ae(a){a[1]%2&&(a[0]+=C);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ze(a){return!a[0]&&!a[1]} +var yd=[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)},zd,function(a,b){this.j&8192||(zd.call(this),this.j|=8192);Ad.call(this,0,b)},Ad,function(a,b){this.j&8192||(zd.call(this),this.j|=8192);Bd.call(this,0,b)},Bd,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)},zd,Ad,Bd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;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(this.b),this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.b,this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(this.b),this.f(b));0>a||this.g(this.b,a)},function(a,b){a=se.call(this,this.f(this.b),this.f(b));0>a||(this.g(this.b,this.g(b,a)),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,this.f(this.b),c,a);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,this.b,c,a);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,this.f(this.b),b,a);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,this.f(this.b),c,a);0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c,d,e=this.f(b);0a&&(c+=e*Math.pow(2,a)%B,d=B-Math.pow(2,35-a)),ez&&(this.j|=131072):e-d=a?c=ez&&(d=D-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%D+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){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>23|this.b&255){var c,d=this.f(b),e=this.f(b+1&15);if(0z&&dz&&ez&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d> -z?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=z?d=0:(d=C,e+=B)):(c=d>z?D-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=B));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2, -a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){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)%D,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/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.P||(this.g(b,d*y+c),a||sd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a=B&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&rd(this,this.Ka/y|0);b&4&&this.Y();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.O=this.b},M,function(a, -b){a=(this.f(b)+262145)%D;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Sb,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Sb,this.f(this.b));a>=D&&(a-=D);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=D);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);a-=262145;0>a&&(a+=D);(a/y|0)==x&&(this.j|=262144);this.g(b,a);H(this,c&Sb)}, -function(){this.g(this.b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);H(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));H(this,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))))},function(a,b){this.g(b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>Ae(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=Ae(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this, -this.i+1)},function(a,b){0<=Ae(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.f(this.b))&& -H(this,this.i+1)},function(a,b){0U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))||H(this,this.b)},function(a,b){0>=U(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))&&H(this,this.b)},function(a,b){0U(a)&&H(this,this.i+1);b&&this.g(b,a)}, -function(a,b){a=this.f(this.b);U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(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<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=U(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<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0U(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));U(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>=U(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<=U(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));U(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));0U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));U(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0>=U(a)&& -H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),C));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0U(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),C));U(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),C));0>=U(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),C));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),C));0<=U(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),C));U(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),C));0a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=we.call(this,this.b,this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=we.call(this,this.f(this.b),this.f(b));0>a||this.g(this.b,a)},function(a,b){a=we.call(this,this.f(this.b),this.f(b));0>a||(this.g(this.b,this.g(b,a)),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=we.call(this,this.f(this.b),c,a);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=we.call(this,this.b,c,a);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=we.call(this,this.f(this.b),b,a);0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=we.call(this,this.f(this.b),c,a);0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){if(a=(this.b&Wb)<<14>>23|this.b&255){var c,d,e=this.f(b);0a&&(c+=e*Math.pow(2,a)%A,d=A-Math.pow(2,35-a)),ez&&(this.j|=131072):e-d=a?c=ez&&(d=C-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Wb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%C+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Wb)<<14>>23|this.b&255){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>23|this.b&255){var c,d=this.f(b),e=this.f(b+1&15);if(0z&&dz&&ez&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d> +z?B:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=B,e+=A)):(c=d>z?C-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=((this.b&Wb)<<14>>23|this.b&255)%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)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%C+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2, +a-36)%C+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&Wb)<<14>>23|this.b&255){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)%C,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/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.P||(this.g(b,d*y+c),a||ud(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a=A&&I(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&td(this,this.Ka/y|0);b&4&&this.Y();b&8&&this.w(a);I(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,I(this,this.b))},function(){this.O=this.b},M,function(a, +b){a=(this.f(b)+262145)%C;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Tb,(this.j&x)*y+this.i);this.j&=-8193;I(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Tb,this.f(this.b));a>=C&&(a-=C);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Tb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Tb);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a);I(this,c&Tb)}, +function(){this.g(this.b,(this.j&x)*y+this.i);this.j&=-8193;I(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;I(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);I(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));I(this,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))))},function(a,b){this.g(b,De.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,De.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,De.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,De.call(this,this.f(b),this.f(this.b))))},se,function(a,b){0>Ee(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.b)||I(this,this.i+1)},function(a,b){0>=Ee(this.f(b),this.b)&&I(this,this.i+1)},function(){I(this, +this.i+1)},function(a,b){0<=Ee(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){0Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.f(this.b))||I(this,this.i+1)},function(a,b){0>=Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){0<=Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.f(this.b))&& +I(this,this.i+1)},function(a,b){0U(this.f(b))&&I(this,this.b)},function(a,b){U(this.f(b))||I(this,this.b)},function(a,b){0>=U(this.f(b))&&I(this,this.b)},function(){I(this,this.b)},function(a,b){0<=U(this.f(b))&&I(this,this.b)},function(a,b){U(this.f(b))&&I(this,this.b)},function(a,b){0U(a)&&I(this,this.i+1);b&&this.g(b,a)}, +function(a,b){a=this.f(this.b);U(a)||I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){I(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)||I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=U(a)&&I(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0U(a)&&I(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));U(a)||I(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>=U(a)&&I(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));I(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<=U(a)&&I(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));U(a)&&I(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));0U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));U(a)||I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>=U(a)&& +I(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),B));I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<=U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b, +Q.call(this,this.f(this.b),B));U(a)||I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0<=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this, +this.f(this.b),B));0>>f.i;0>>= -f.i;0>>a.i;0g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h=ma.wb&&c<=ma.Rb&&(b=c-(ma.wb-ma.Nb));b&&(a.preventDefault&&a.preventDefault(),d.gb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Pb&&(b=ma.Ob);d.gb(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.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Bb(this)}; -m.Lb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ab)return;c=Ca(c[1]);if(this.b=qb(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.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0}; -m.ra=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new G(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+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(Ca(b.substring(c,f))),c=f+1}}return a}function Me(a,b,c){if(32>=a.L)return b&c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Ne|0)&(c/Ne|0))*Ne+((b&c)>>>0)} -function Oe(a,b,c){if(32>=a.L)return b|c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Ne|0)^(c/Ne|0))*Ne+((b^c)>>>0)}Ke.prototype.Ib=function(a,b){return a*b};function X(a,b,c,d){var e=b;c=c||a.L;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<<32-c>>32-c:(a=Math.pow(2,c-1),b>=a?(e=b%a,(b/a|0)&1&&(e-=a)):b<-a&&(e=b%a,((-b-1)/a|0)&1?e&&(e+=a):e||(e-=a)));b!=e&&(b=e);return b} -function Pe(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=a.Ib(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 "&":f=Me(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=X(e,f,0,!0),g=X(e,g,0,!0),f=(f/Ne|0|g/Ne|0)*Ne+((f|g)>>>0));break;case "^!":f=Oe(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case ",,":f=X(a,f,18,!0)*Math.pow(2,18)+X(a,g,18,!0);break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=X(a,f,0,!0),f=0=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Qe(a,b,0,b.length,a.T,c);void 0!==d&&e&&Xe(a,null,d)}return d} -function Se(a,b,c){for(;c;){switch(c&3){case 1:b=-X(a,b);break;case 2:b=Oe(a,b,-1);break;case 3:for(var d=35;0<=d&&!Me(a,b,Math.pow(2,d));)d--;b=35-d}c>>>=2}return b} -function Re(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.tb(b);if(0<=f)f=a.ub(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(a.u(b+" is undefined ("+h+")"),f=void 0))}else f=na(b,1=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function Ye(a){var b=a.b;a.b={};return b}function Ze(a,b){var c=0;if(a.b){if(b)return Xe(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d=a?8:262143>=a?18:36);b=oa(b,2,a,"",e);break;case 8:b=ua(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c} -var Ue={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Te={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Ne=Math.pow(2,32); -function $e(a){Ke.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.U=["<",">"];this.ta=[];this.Ia=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];af(this);this.X=this.pa=0;this.j=[];this.Ca=void 0;bf(this);this.D=this;this.va={};this.ca=this.Eb=0;this.Z=null;this.R=[];cf(this,a.messages);this.ua=a.commands;this.Ha=[];this.O=0;this.Oa=this.Da=null;this.F=this.La=this.Ka=this.na=this.xa=0;this.wa=this.ma=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b, -a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ja($e,Ke);function df(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,qa:!1,T:c}}function ef(a,b,c,d){a.B=b;a.eb=c||!1;a.qa=!1;a.T=d}function ff(a){return[a.B,a.eb,a.qa,a.T,a.hb]}function gf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Le(a,c.hb=b[4]));return c}m=$e.prototype; -m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ma=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&cf(this,b);if(a=$c(a,"commands"))this.ua=a;hf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=df(jf(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,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+ -n(e<a&&(a+=D);0>b&&(b+=D);a=xe.call(this.v,a,b,!1,!0);a>=B&&(a-=D);return a}; -function jf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.U[0],h=a.U[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=We(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h= -null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;ha&&a>=-B&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function mf(a,b){return L(a,b/Tb,18)+" "+L(a,b%Tb,18)} -function cf(a,b){a.D=a;a.ca=a.Eb=536870916;a.Z=null;a.R=[];b=Le(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){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.oa==b&&(b=sd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(ef(a.j[a.X],b),++a.X==a.j.length&&(a.X=0)));return!1} -function Ef(a,b,c,d){var e=Y(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Ff)if(g=Ff[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Gf;l=p&3;break;case 32256:k=Hf;l=p&7;break;case 29248:k=If,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Jf&&(k="B");k=Kf[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p>18&15)&&(k+="("+L(a,f, --1)+")")}else k=Ba(k,8)+mf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+mf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Ua?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h} -function Mf(a,b,c,d,e){var f=-1,g,h;if(b){for(var k=b.toUpperCase(),l=0;lJf&&(I="B");if(k==Kf[h]+I){f=29248!=g?J:(J&3)<<1|(J&12)<<2;f=(E|f<<6)*Yb;break}}if(0<=f)break}if(0<=f)break}!(0>f)||c&&c.match(/^[0-9A-Z$%.?]/i)|| -(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),2h||15h||127h||15h||262143f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function af(a){var b,c;a.i=["bp"];if(a.N)for(b=1;b>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b>>d.i],!0);a.K=["bw"];a.xa=0;a.pa=0} -m.Ra=function(a,b,c){var d=!0;c||Nf(this,a,b,!1,!0);if(a!=this.i){var e=df(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.qa=!0:(Of(this,a,a.length-1,"set"),bf(this)));return d};function Nf(a,b,c,d,e){var f=!1;c=df(c);for(var g=1;g>>d.i],b==a.K));h.qa||bf(a);break}}return f} -function Pf(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);ef(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d=sf?1:d==pf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,aa:e,Bb:f})}function Sf(a,b,c){var d=[],e=df(b)>>>0;for(b=0;b>>0,h=f.Wb;if(e>=g&&e>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(H(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),cd(a)):a.u("no data")}function Tf(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=jf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.H),!0;var g=e.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=jf(a,d);if(a.wa)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.wa=new vg(h,k,c,a,function(b,c){if(!b)try{var d=l.H;null==d&&(d=k);Uf(a,l.S,d)}catch(J){"number"==typeof J?b=J||-1:(a.u(J.message),b=-1)}b&&a.u("error ("+b+") processing "+ -(c||h));a.wa=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Mf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Ef(a,f)));return!0}function xg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ze(a)||a.u("no variables"),!0;if(!c[2])return Ze(a,c[1]);if(!c[3])return delete a.b[c[1]],!0;b=We(a,c[3]);return void 0!==b?(a.b[c[1]]={value:b,Mb:void 0},!0):!1}a.u("invalid assignment:"+b);return!1} -function yg(a,b,c){var d=null;b=jf(a,b);var e=Sf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case of:H(h, -g);ef(a.M,h.i);break;case rf:rd(h,g);break;case sf:f=131072;break;case tf:f=65536;break;case uf:f=32768;break;case vf:f=32;break;case wf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Rf(a,e));c&&(ef(a.M,0<=d.O?d.O:d.I&4194304?d.oa:d.i),Cf(a,L(a,a.M.B,18)))}}function zg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ha;l=b;h.B=l.B;h.eb=l.eb;h.qa=l.qa;h.T=l.T;a.u(Ef(a,b,g,f));e-=b.B-k;c++}} -function Qf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Af+b):(a.V&&(a.u("ended assemble at "+L(a,a.ha.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Z=null;if(Ab(a)&&0p||"z"qa.length&&(a.u("note: only "+qa.length+" available"),fa=qa.length);ka-=fa;0>ka&&(null==qa[qa.length-1].B?(fa=ka+fa,ka=0):ka+=qa.length);var Rd=[];"call"==$f&&(Eb= -1E5,Rd=["CALL"]);for(void 0!==Zf&&a.u(fa+" instructions earlier:");0=qa.length&&(ka=0);a.Ca=fa;bg++;Eb--}}bg||(a.u("no "+ag+"history available"),a.Ca=void 0)}else{var Na=0,eg="ds"==jb,Gb=jf(a,pa,a.oa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Qh,Na=Re(a,Da)):Na=jf(a,Da).B-Gb.B,0>Na&&(Na=0),65536Hb?".":String.fromCharCode(Hb)),Kc=Kc-7}Oa&&(Oa+="\n");Oa=eg?Oa+(ra+","):Oa+(pa+": "+ra+(0>gg?" "+Ud:""))}Oa&&a.u(Oa);a.T=Sh}}}break;case "e":if("else"== -g[0])break;var hg,ig,jg=g[0],Wd=g[1];"e"==jg||"ew"==jg?(hg=a.Na,ig=a.yb):Wd=null;if(null==Wd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Xd=jf(a,Wd,a.oa),Yd=2;Yd$d;){for(var Pa=null,Xh=256;65536>Kb.B>>>0;){ae.B=a.Na(Kb,2);if(null==Kb.B||!Xh--)break;if(!(ae.B& -1)){for(var Yh=a,Lc=ae,mg=null,Lb=Lc.B,ng=Lb,be=1;6>=be&&Lb;be++){if(2tg)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 ug=Y(a.v.i);a.Na(ug);a.O?(a.Ra(a.i,ug,!0),yf(a)||(a.H&&jd(a.H),a.O=0)):Ag(a,tg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Bf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var mb=+g[2];if(2==mb||8==mb||10==mb||16==mb)a.T=mb;else{a.u("invalid base: "+mb);break}}a.u("default base: "+a.T);break;case "cs":var Nb;void 0!==g[3]&&(Nb=+g[3]);switch(g[2]){case "int":a.v.pa=Nb;break;case "start":a.v.Ia=Nb;break;case "stop":a.v.ua=Nb; -break;default:a.u("unknown cs option");break a}void 0!==Nb&&bd(a.v);a.u("checksums "+(a.v.A.Ua?"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.ga.toFixed(2)+"Mhz")+" ("+a.v.ha+"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":Ag(a,g[0],g[1]);break;case "u":Cf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){xg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.mb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){zg(a,b.substr(1));break}var ce="commands:",de;for(de in Cg)ce+="\n"+Ba(de,9)+Cg[de];td(a)||(ce+="\nnote: history disabled if no exec breakpoints"); -a.u(ce);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(wg){a.u("Debugger "+(wg.stack||wg.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Le(a,b,c));for(;b=a.Ha.shift();)if(!Qf(a,b))return!1;return!0} -var Cg={"?":"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"},Jf=20,Kf=".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(" "), -of=0,pf=1,qf=2,rf=3,sf=4,tf=5,uf=6,vf=7,wf=8,nf="PC RA EA PS OV C0 C1 ND PD".split(" "),Dg={},Ff=(Dg[28672]={0:101},Dg[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},Dg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Jf,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},Dg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Dg[29248]={24576:79,24640:80,25088:81,25152:82},Dg[28700]={28672:93,28676:94,28680:95,28684:96, -28688:97,28692:98,28696:99,28700:100},Dg),Gf=["","I","M","S"],Hf=" L E LE A GE N G".split(" "),If="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Lf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],xf=1E3,Af=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;bb.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/
([\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))&&Gg(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);if(d.length&
-1){if(c=d.pop())Gg(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Gg(a,"unexpected number of lines ("+d.length+")");a.G=a.G.concat(d);a.U[a.N]=d.length>>1;a.N++;setTimeout(function(){Eg(a)},0)}})}}
-function Fg(a){if(0<=a.V.indexOf("p"))return a.u(a.G.join("")),0;var b=Ye(a.b);Hg(a,"APR",0);Hg(a,"PI",4);try{for(var c=0;ca.V.indexOf("d")&&(a.b.b=b);return a.Z}
-function Jg(a,b,c,d,e){var f,g;null!=a.D&&(b=Og(a,b));for(var h=!0,k="";h;){g=b.match(a.ha);if(!g||g[5]&&";"!=g[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;h=!1;k=g[2].toUpperCase();if(k==Pg||k==Qg)c=null;if(c){for(f=0;fJ)break;var u=J+1,I=J+l.length,hb="",Cb="";J&&(hb=b[J-1]).match(/[0-9A-Z$%.]/i)||!(I>=b.length)&&(Cb=b[I]).match(/[0-9A-Z$%.]/i)||("'"==hb&&J--,"'"==Cb&&I++,
-b=b.substr(0,J)+p+b.substr(I),u=J+p.length,h=!0)}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.R+" definition in '"+b+"'")),1=A?a.W+=A:a.error("unrecognized BLOCK expression '"+k+"'");break;case dh:k=c;b=g=0;for(c=36;A=eh(a,k);){k=k.substr(A.length).trim();d=A;if(e=A.match(/^\((.*)\)\s*(.*)$/))e[1]&&(g=Mg(a,"^D"+e[1])),d=e[2];if(g){d=d?Mg(a,d):0;if(void 0===d||0>g||36c&&
-fh(a,b);break;case gh:(k=c)?(a.H=Mg(a,k),void 0===a.H&&a.error("unrecognized END expression '"+k+"'")):a.H=a.la;break;case hh:ih(a,c);break;case jh:Kg(a);break;case kh:a.W=Mg(a,c)||0;break;case lh:Lg(a);break;case mh:ih(a,c.replace(",",",,"));break;case nh:case oh:case ph:case qh:case rh:case sh:case th:case uh:case vh:case wh:case xh:case yh:case Pg:case Qg:case zh:case Ah:Wg(a,k,g);break;case Bh:k=Ch(a,c);for(A=0;Ad.Fa&&Z(a,d.ka);break;case wh:0>=d.Fa&&Z(a,d.ka);break;case oh:case xh:case ph:case uh:d.Fa&&Z(a,d.ka);break;case Pg:case Qg:for(b=0;ba.Ea&&(a.Ea=a.W);a.W=0}function Mh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.K.push({name:b,S:a.S,ea:a.ea});b=a.w.pop();a.S=b.S;a.ea=b.ea;a.W=b.W;a.Ea=b.Ea;a.w.length||-1==a.Ea||a.error("scope restore error")}else a.error("scope nesting error")}
-function eh(a,b){var 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) in '"+b+"'");break}}}g?0f&&(g=g.replace(/\.([^0-9]|$)/g,L(a.b,d,-1)+"$1"),f=We(a.b,g,c),void 0===f&&a.error("unable to parse expression '"+b+"'",e));return f}
-function Vg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e=--c){g=e;break}}0>c&&a.error("missing bracket(s) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Ig(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.U[c];)if(b-=a.U[c],cd?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.R==ah&&g++;for(var h=0;h=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(fh(a,d),b=0)}b&&fh(a,d)}return c}
-function Wg(a,b,c){var d,e,f,g,h,k;a.J="<";a.M=">";g=h=k=[];if(b==nh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=Ch(a,e[2],!0);b=[];for(c=0;c");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}d=Oh;b=3}else if(b==zh){a.J="[";a.M="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
-b+" in '"+c+"'"),c;f=e[1];d=Kh;b=2}else if(b==Xg)a.J="[",a.M="]",f="?"+va(++a.ga,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],d=Ph,b=0;else if(b==Pg||b==Qg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d=D)&&Gg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}vg.prototype.error=function(a,b){throw Error("error in "+Ig(this,b)+": "+a);};
-function Gg(a,b){a.u("warning in "+Ig(a,void 0)+": "+b)}vg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
-var Sg=1,Tg=2,Ug=4,$g="ASCII",ah="ASCIZ",ch="BLOCK",dh="BYTE",nh="DEFINE",gh="END",hh="EXP",oh="IF1",ph="IFDEF",qh="IFDIF",rh="IFE",sh="IFG",th="IFGE",uh="IFIDN",vh="IFL",wh="IFLE",xh="IFN",yh="IFNDEF",Pg="IRP",Qg="IRPC",Dh="LALL",jh="LIT",Xg="LITERAL",Eh="LIST",kh="LOC",Fh="NOSYM",zh="OPDEF",Gh="PAGE",Bh="PURGE",Ah="REPEAT",bh="SIXBIT",Hh="SUBTTL",Ih="TITLE",lh="VAR",mh="XWD",Jh="XLIST",Oh=-1,Kh=-2,Ph=-3,Nh=-4;
-function ai(a,b,c){r.call(this,"Computer",a,33554432);this.A.ba=!1;this.R=null;bi(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.O=!1;this.Z=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=ci(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
-0;b\nLicense: GPL version 3 or later ");for(b=0;bdi){if(ei(d,this.L)){this.C=new G(this,"1.34.3",ni);ei(this.C)&&(oi(this,d),a=pi,qi(this.C));this.C.set(ki,Ga());ri(this.C);var e=this.b&&!this.K;if(a==li||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=ji(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ei(d,g):("error"==f&&"no machine state"!=
-g?(this.ja("Error: "+g),"unable to verify user"==g&&(Qa(si,""),this.i=null)):this.u(f+": "+g),qi(d),ei(d)?(c=ji(d),e=!0):c=!1))}e&&hi(this,c?d:null)}else a==pi&&d.clear()}else hi(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;fa[1];a=a[2];this.U=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ti(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(oi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
-function oi(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.Z;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
-function Bg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",ii),h=Ga();g.set(ki,h);f.set(ki,h);f.set(ui,"1.34.3");f.set(vi,window?window.location.href:null);f.set(wi,window?window.navigator.userAgent:"");a.v&&a.v.ra&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.ra(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.ba=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k=d||30<=(c.kb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;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?ua(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i: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(u){g=null,a=u.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],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[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);Ei(a,b,c)}})}else c(a,null)}
-function Fi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--Bi||ab(!0));l=!1}var h,k,l=!0;Bi++;gb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],E=document.createElement("style");E.type="text/css";E.styleSheet?E.styleSheet.cssText=p:E.appendChild(document.createTextNode(p));u.appendChild(E)}d||
-(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?Ci(d,null,a,null,!1,f,function(a,e){e?(fb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Bi||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),--Bi||
-ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ci(c,b,a,e,!0,f,p):Di(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(J){g(J.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return Fi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return Fi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
-window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",l=null,p=0;p>>f.i;0>>=
+f.i;0>>a.i;0g&&g>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h=na.wb&&c<=na.Rb&&(b=c-(na.wb-na.Nb));b&&(a.preventDefault&&a.preventDefault(),d.gb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==na.Pb&&(b=na.Ob);d.gb(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.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Db(this)};
+m.Lb=function(a){if(!this.b){var b=bd(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.ab)return;c=Ea(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.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
+m.ra=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new H(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+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 Qe(a,b,c){if(32>=a.L)return b&c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Re|0)&(c/Re|0))*Re+((b&c)>>>0)}
+function Se(a,b,c){if(32>=a.L)return b|c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Re|0)^(c/Re|0))*Re+((b^c)>>>0)}Oe.prototype.Ib=function(a,b){return a*b};function X(a,b,c,d){var e=b;c=c||a.L;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<<32-c>>32-c:(a=Math.pow(2,c-1),b>=a?(e=b%a,(b/a|0)&1&&(e-=a)):b<-a&&(e=b%a,((-b-1)/a|0)&1?e&&(e+=a):e||(e-=a)));b!=e&&(b=e);return b}
+function Te(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=a.Ib(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 "&":f=Qe(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=X(e,f,0,!0),g=X(e,g,0,!0),f=(f/Re|0|g/Re|0)*Re+((f|g)>>>0));break;case "^!":f=Se(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case ",,":f=X(a,f,18,!0)*Math.pow(2,18)+X(a,g,18,!0);break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=X(a,f,0,!0),f=0=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Ue(a,b,0,b.length,a.U,c);void 0!==d&&e&&af(a,null,d)}return d}
+function We(a,b,c){for(;c;){switch(c&3){case 1:b=-X(a,b);break;case 2:b=Se(a,b,-1);break;case 3:for(var d=35;0<=d&&!Qe(a,b,Math.pow(2,d));)d--;b=35-d}c>>>=2}return b}
+function Ve(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.tb(b);if(0<=f)f=a.ub(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(a.u(b+" is undefined ("+h+")"),f=void 0))}else f=oa(b,1=a.L?8:6)+"  "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function bf(a){var b=a.b;a.b={};return b}function cf(a,b){var c=0;if(a.b){if(b)return af(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=wa(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
+var Ye={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Xe={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Re=Math.pow(2,32);
+function df(a){Oe.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.S=["<",">"];this.ta=[];this.Ia=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];ef(this);this.W=this.pa=0;this.j=[];this.Ca=void 0;ff(this);this.D=this;this.va={};this.ca=this.Eb=0;this.Z=null;this.R=[];gf(this,a.messages);this.ua=a.commands;this.Ha=[];this.O=0;this.Oa=this.Da=null;this.F=this.La=this.Ka=this.na=this.xa=0;this.wa=this.ma=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return gd(b,
+a)}):void 0===global[v]&&(global[v]=function(a){return gd(b,a)})}ja(df,Oe);function hf(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,qa:!1,U:c}}function jf(a,b,c,d){a.B=b;a.eb=c||!1;a.qa=!1;a.U=d}function kf(a){return[a.B,a.eb,a.qa,a.U,a.hb]}function lf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Pe(a,c.hb=b[4]));return c}m=df.prototype;
+m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ma=a.j;this.Ga=b.F;(b=bd(a,"messages"))&&gf(this,b);if(a=bd(a,"commands"))this.ua=a;mf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=hf(nf(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,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Ic[c],p&&d.u(n(p.id,8)+"  %"+
+n(e<a&&(a+=C);0>b&&(b+=C);a=Be.call(this.v,a,b,!1,!0);a>=A&&(a-=C);return a};
+function nf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.S[0],h=a.S[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=$e(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
+null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,q;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;ha&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function qf(a,b){return L(a,b/Ub,18)+" "+L(a,b%Ub,18)}
+function gf(a,b){a.D=a;a.ca=a.Eb=536870916;a.Z=null;a.R=[];b=Pe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in cc){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.oa==b&&(b=ud(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(jf(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1}
+function If(a,b,c,d){var e=Y(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Zb|0,q;for(q in Jf)if(g=Jf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=Kf;l=p&3;break;case 32256:k=Lf;l=p&7;break;case 29248:k=Mf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Nf&&(k="B");k=Of[g||0]+k;if(g){if(28700==h)h=f/$b&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p>18&15)&&(k+="("+L(a,f,
+-1)+")")}else k=Da(k,8)+qf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+qf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Da(g,16)+f;c&&(h=Da(h,48)+";"+(c||""),h=a.v.A.Ua?h+("cycles="+hd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h}
+function Qf(a,b,c,d,e){var f=-1,g,h;if(b){for(var k=b.toUpperCase(),l=0;lNf&&(J="B");if(k==Of[h]+J){f=29248!=g?F:(F&3)<<1|(F&12)<<2;f=(D|f<<6)*Zb;break}}if(0<=f)break}if(0<=f)break}!(0>f)||c&&c.match(/^[0-9A-Z$%.?]/i)||
+(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),2h||15h||127h||15h||262143f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function ef(a){var b,c;a.i=["bp"];if(a.N)for(b=1;b>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b>>d.i],!0);a.K=["bw"];a.xa=0;a.pa=0}
+m.Ra=function(a,b,c){var d=!0;c||Rf(this,a,b,!1,!0);if(a!=this.i){var e=hf(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.qa=!0:(Sf(this,a,a.length-1,"set"),ff(this)));return d};function Rf(a,b,c,d,e){var f=!1;c=hf(c);for(var g=1;g>>d.i],b==a.K));h.qa||ff(a);break}}return f}
+function Tf(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=wa(d,2);jf(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d=wf?1:d==tf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],q=Ha(p,k,a.Gb);0>q&&p.splice(-(q+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,aa:e,Bb:f})}function Wf(a,b,c){var d=[],e=hf(b)>>>0;for(b=0;b>>0,h=f.Wb;if(e>=g&&e>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(I(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),ed(a)):a.u("no data")}function Xf(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=nf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.H),!0;var g=e.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i);if(g&&(g[1]||g[3])){f=nf(a,d);if(a.wa)a.u("assembly already in progress");else{var h=g[2]+g[3];g[3]||(c+="s");var k=f.B,l=a.wa=new Ag(a);Cg(l,h,k,c,function(b,c){if(!b)try{var d=l.J;null==d&&(d=k);Yf(a,l.T,d)}catch(F){"number"==typeof F?b=F||-1:(a.u(F.message),
+b=-1)}b&&a.u("error ("+b+") processing "+(c||h));a.wa=null;b||gd(a)})}return!1}b.shift();b.shift();b.shift();b=Qf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(If(a,f)));return!0}function Dg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return cf(a)||a.u("no variables"),!0;if(!c[2])return cf(a,c[1]);if(!c[3])return delete a.b[c[1]],!0;b=$e(a,c[3]);return void 0!==b?(a.b[c[1]]={value:b,Mb:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
+function Eg(a,b,c){var d=null;b=nf(a,b);var e=Wf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case sf:I(h,
+g);jf(a.M,h.i);break;case vf:td(h,g);break;case wf:f=131072;break;case xf:f=65536;break;case yf:f=32768;break;case zf:f=32;break;case Af:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Vf(a,e));c&&(jf(a.M,vd(d)),Gf(a,L(a,a.M.B,18)))}}function Fg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ha;l=b;h.B=l.B;h.eb=l.eb;h.qa=l.qa;h.U=l.U;a.u(If(a,b,g,f));e-=b.B-k;c++}}
+function Uf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Ef+b):(a.V&&(a.u("ended assemble at "+L(a,a.ha.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Z=null;if(Cb(a)&&0D||"z"sa.length&&(a.u("note: only "+sa.length+" available"),fa=sa.length);la-=fa;0>la&&(null==sa[sa.length-1].B?(fa=la+fa,la=0):la+=sa.length);var Vd=[];"call"==eg&&(Fb=1E5,Vd=["CALL"]);for(void 0!==dg&&a.u(fa+" instructions earlier:");0=sa.length&&(la=0);a.Ca=fa;gg++;Fb--}}gg||(a.u("no "+fg+"history available"),
+a.Ca=void 0)}else{var Qa=0,jg="ds"==lb,Hb=nf(a,ra,a.oa);Fa&&("l"==Fa.charAt(0)?(Fa=Fa.substr(1)||Yh,Qa=Ve(a,Fa)):Qa=nf(a,Fa).B-Hb.B,0>Qa&&(Qa=0),65536Ib?".":String.fromCharCode(Ib)),Mc=Mc-7}Ra&&(Ra+="\n");Ra=jg?Ra+(ta+","):Ra+(ra+": "+ta+(0>lg?" "+Yd:""))}Ra&&a.u(Ra);a.U=$h}}}break;case "e":if("else"==k[0])break;var mg,ng,og=k[0],$d=k[1];"e"==og||"ew"==og?(mg=a.Na,ng=a.yb):$d=null;if(null==$d)a.u("edit memory commands:"),a.u("\tew [a] [...]  edit words at address a");else for(var ae=nf(a,$d,a.oa),be=2;bede;){for(var Sa=null,ei=256;65536>Lb.B>>>0;){ee.B=a.Na(Lb,2);if(null==Lb.B||!ei--)break;if(!(ee.B&1)){for(var fi=a,Nc=ee,rg=null,Mb=Nc.B,sg=Mb,fe=1;6>=fe&&Mb;fe++){if(2yg)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 zg=Y(a.v.i);a.Na(zg);a.O?(a.Ra(a.i,zg,!0),Cf(a)||(a.H&&ld(a.H),a.O=0)):Gg(a,yg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Ff(a,k);break;case "s":a:switch(k[1]){case "base":if(k[2]){var ob=+k[2];if(2==ob||8==ob||10==ob||16==ob)a.U=ob;else{a.u("invalid base: "+
+ob);break}}a.u("default base: "+a.U);break;case "cs":var Ob;void 0!==k[3]&&(Ob=+k[3]);switch(k[2]){case "int":a.v.pa=Ob;break;case "start":a.v.Ia=Ob;break;case "stop":a.v.ua=Ob;break;default:a.u("unknown cs option");break a}void 0!==Ob&&dd(a.v);a.u("checksums "+(a.v.A.Ua?"enabled":"disabled"));break;case "sp":void 0!==k[2]&&(id(a.v,+k[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ha+"x)");break;default:if(k[1]){a.u("unknown option: "+
+k[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":Gg(a,k[0],k[1]);break;case "u":Gf(a,k[1],k[2],8);break;case "v":if("var"==k[0]){Dg(a,b.substr(3))||(d=!1);break}if("ver"==k[0]){a.u((Sb||"PDP10")+" version 1.34.3 ("+a.v.mb+",RELEASE)");a.u(window?
+window.navigator.userAgent:"");break}f=!0;break;case "?":if(k[1]){Fg(a,b.substr(1));break}var ge="commands:",he;for(he in Ig)ge+="\n"+Da(he,9)+Ig[he];wd(a)||(ge+="\nnote: history disabled if no exec breakpoints");a.u(ge);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Bg){a.u("Debugger "+(Bg.stack||Bg.message)),d=!1}return d}function gd(a,b,c){null!=b&&(a.Ha=Pe(a,b,c));for(;b=a.Ha.shift();)if(!Uf(a,b))return!1;return!0}
+var Ig={"?":"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"},Nf=20,Of=".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(" "),
+sf=0,tf=1,uf=2,vf=3,wf=4,xf=5,yf=6,zf=7,Af=8,rf="PC RA EA PS OV C0 C1 ND PD".split(" "),Jg={},Jf=(Jg[28672]={0:101},Jg[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},Jg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Nf,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},Jg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Jg[29248]={24576:79,24640:80,25088:81,25152:82},Jg[28700]={28672:93,28676:94,28680:95,28684:96,
+28688:97,28692:98,28696:99,28700:100},Jg),Kf=["","I","M","S"],Lf=" L E LE A GE N G".split(" "),Mf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Pf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],Bf=1E3,Ef=">> ";$a(function(){for(var a=w(document,v,"debugger"),b=0;bb.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ja(b,null,!0,function(b,d,e){if(e)a.done&&a.done(e,b);else{e=d;if(Aa(b,".html")){e="";var c;for(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))&&Ng(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);
+if(d.length&1){if(c=d.pop())Ng(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Ng(a,"unexpected number of lines ("+d.length+")");a.D=a.D.concat(d);a.M[a.O]=d.length>>1;a.O++;setTimeout(function(){Mg(a)},0)}})}}
+function Lg(a){if(0<=a.W.indexOf("p"))a.u(a.D.join(""));else{var b=bf(a.b);Og(a,"APR",0);Og(a,"PI",4);try{for(var c=0;ca.W.indexOf("d")&&(a.b.b=b)}}
+function Qg(a,b,c,d,e){var f,g;null!=a.w&&(b=Vg(a,b));for(var h=!0,k="";h;){g=b.match(a.ha);if(!g||g[5]&&";"!=g[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;h=!1;k=g[2].toUpperCase();if(k==Wg||k==Xg)c=null;if(c){for(f=0;fF)break;var q=F+1,J=F+l.length,Lc="",qa="";F&&(Lc=b[F-1]).match(/[0-9A-Z$%.]/i)||!(J>=b.length)&&(qa=b[J]).match(/[0-9A-Z$%.]/i)||("'"==Lc&&F--,"'"==qa&&J++,
+b=b.substr(0,F)+p+b.substr(J),q=F+p.length,h=!0)}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.C),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.S+" definition in '"+b+"'")),1=G?a.X+=G:a.error("unrecognized BLOCK expression '"+k+"'");break;case kh:k=c;b=g=0;for(c=36;G=lh(a,k);){k=k.substr(G.length).trim();d=G;if(e=G.match(/^\((.*)\)\s*(.*)$/))e[1]&&(g=Tg(a,"^D"+e[1])),d=e[2];if(g){d=d?Tg(a,d):0;if(void 0===d||0>g||36c&&
+mh(a,b);break;case nh:(k=c)?(a.J=Tg(a,k),void 0===a.J&&a.error("unrecognized END expression '"+k+"'")):a.J=a.la;break;case oh:ph(a,c);break;case qh:Rg(a);break;case rh:a.X=Tg(a,c)||0;break;case sh:Sg(a);break;case th:ph(a,c.replace(",",",,"));break;case uh:case vh:case wh:case xh:case yh:case zh:case Ah:case Bh:case Ch:case Dh:case Eh:case Fh:case Wg:case Xg:case Gh:case Hh:ch(a,k,g);break;case Ih:k=Jh(a,c);for(G=0;Gd.Fa&&Z(a,d.ka);break;case Dh:0>=d.Fa&&Z(a,d.ka);break;case vh:case Eh:case wh:case Bh:d.Fa&&Z(a,d.ka);break;case Wg:case Xg:for(b=0;ba.Ea&&(a.Ea=a.X);a.X=0}function Th(a){if(a.G.length){var b=a.G[a.G.length-1].name;b&&a.L.push({name:b,T:a.T,ea:a.ea});b=a.G.pop();a.T=b.T;a.ea=b.ea;a.X=b.X;a.Ea=b.Ea;a.G.length||-1==a.Ea||a.error("scope restore error")}else a.error("scope nesting error")}
+function lh(a,b){var 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) in '"+b+"'");break}}}g?0f&&(g=g.replace(/\.([^0-9]|$)/g,L(a.b,d,-1)+"$1"),f=$e(a.b,g,c),void 0===f&&a.error("unable to parse expression '"+b+"'",e));return f}
+function bh(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e=--c){g=e;break}}0>c&&a.error("missing bracket(s) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Pg(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.M[c];)if(b-=a.M[c],cd?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.F+=b}if(null==a.w){var d=b=0,e,f,g=a.F.length;a.S==hh&&g++;for(var h=0;h=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(mh(a,d),b=0)}b&&mh(a,d)}return c}
+function ch(a,b,c){var d,e,f,g,h,k;a.C="<";a.N=">";g=h=k=[];if(b==uh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=Jh(a,e[2],!0);b=[];for(c=0;c");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}d=Vh;b=3}else if(b==Gh){a.C="[";a.N="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
+b+" in '"+c+"'"),c;f=e[1];d=Rh;b=2}else if(b==dh)a.C="[",a.N="]",f="?"+xa(++a.ga,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],d=Wh,b=0;else if(b==Wg||b==Xg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d=C)&&Ng(a,"truncated value "+wa(b)+" at location "+wa(c)+" to "+wa(d));return d}Ag.prototype.error=function(a,b){throw Error("error in "+Pg(this,b)+": "+a);};
+function Ng(a,b){a.u("warning in "+Pg(a,void 0)+": "+b)}Ag.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
+var Zg=1,$g=2,ah=4,gh="ASCII",hh="ASCIZ",jh="BLOCK",kh="BYTE",uh="DEFINE",nh="END",oh="EXP",vh="IF1",wh="IFDEF",xh="IFDIF",yh="IFE",zh="IFG",Ah="IFGE",Bh="IFIDN",Ch="IFL",Dh="IFLE",Eh="IFN",Fh="IFNDEF",Wg="IRP",Xg="IRPC",Kh="LALL",qh="LIT",dh="LITERAL",Lh="LIST",rh="LOC",Mh="NOSYM",Gh="OPDEF",Nh="PAGE",Ih="PURGE",Hh="REPEAT",ih="SIXBIT",Oh="SUBTTL",Ph="TITLE",sh="VAR",th="XWD",Qh="XLIST",Vh=-1,Rh=-2,Wh=-3,Uh=-4;
+function Xh(a,b,c){t.call(this,"Computer",a,33554432);this.A.ba=!1;this.R=null;ii(this,b);this.N=bd(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.S=this.O=!1;this.Z=bd(this,"url")||"";(Math.random()+.1).toString(36);this.i=ji(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new Bc({id:this.bb+".bus",busWidth:this.W},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.za)for(b=
+0;b\nLicense: GPL version 3 or later ");for(b=0;bki){if(li(d,this.L)){this.C=new H(this,"1.34.3",ui);li(this.C)&&(vi(this,d),a=wi,xi(this.C));this.C.set(ri,Ia());yi(this.C);var e=this.b&&!this.K;if(a==si||qb("Click OK to restore the previous "+Sb+" machine state, or CANCEL to reset the machine.")){if(c=qi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?li(d,g):("error"==f&&"no machine state"!=
+g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ta(zi,""),this.i=null)):this.u(f+": "+g),xi(d),li(d)?(c=qi(d),e=!0):c=!1))}e&&oi(this,c?d:null)}else a==wi&&d.clear()}else oi(this);delete this.L;delete this.I}e=rb(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Ai(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(vi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
+function vi(a,b){if(qb("There may be a problem with your "+Sb+" machine.\n\nTo help us diagnose it, click OK to send this "+Sb+" machine state to http://www.pcjs.org.")){var c=a.Z;a=a.i||"";b=b.toString();var d={};d.app=Sb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
+function Hg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new H(a,"1.34.3"),g=new H(a,"1.34.3",pi),h=Ia();g.set(ri,h);f.set(ri,h);f.set(Bi,"1.34.3");f.set(Ci,window?window.location.href:null);f.set(Di,window?window.navigator.userAgent:"");a.v&&a.v.ra&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.ra(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.ba=!1,!1===d&&(e=null)));for(var h=rb(a.id),k=0;k=d||30<=(c.kb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;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?wa(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i: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(q){g=null,a=q.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],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[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);Li(a,b,c)}})}else c(a,null)}
+function Mi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);l&&(--Ii||db(!0));l=!1}var h,k,l=!0;Ii++;jb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));q.appendChild(D)}d||
+(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?Ji(d,null,a,null,!1,f,function(a,e){e?(ib(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ii||db(!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),--Ii||
+db(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ji(c,b,a,e,!0,f,p):Ki(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(F){g(F.message)}return l}window.embedPDP10=function(a,b,c,d){db(!1);return Mi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){db(!1);return Mi("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="",l=null,p=0;pa?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.v=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
+function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Ba:!1,Oa:!1,F:!1,error:!1};this.Da=null;this.h.error=!1;this.w=this.j=this.s=this.v=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
 function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
+function gb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.i=0;this.D=this.H=-1;this.J=this.L=this.o=!1;this.N=hb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
 set:this.Ab};B(this)}l(gb,t);k=gb.prototype;k.reset=function(a){this.stop();a&&ib(this,this.i=0)};
 k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,
-b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.V=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
+b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.W=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
 k.restore=function(a){if(a=a[0])ob(this,this.f=a[0]),ib(this,this.i=a[1]),pb(this,a[2]);return!0};k.xb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}mb(this);return!0};function qb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function lb(a,b){for(var c in a.l)qb(a,c,null!=b?b:a.l[c])}function rb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function mb(a){for(var b in a.a)rb(a,b,a.a[b][1])}
 k.jb=function(a,b,c){if(jb(this,b)){if(c){var d=this;setTimeout(function(){kb(d,b);a&&a()},+c);return!1}kb(this,b)}return!0};
 k.Ab=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d,e,f=0g&&(g+=Math.pow(2,36)),g=0=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0>>a.f];a.i++;b=c.i(b&16383,b);a.i--;a=b}else a=this.j.b(this.f);ib(this,this.i=a)}};k.pb=function(a){a||this.j.h.B||ob(this,this.g)};k.ob=function(a){a?(this.o=!0,lb(this,!0)):(this.o=!1,lb(this),pb(this,0))};k.qb=function(a,b){this.g=a?this.g|1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.a["S"+b][1]=a.g&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.f;0f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Ea+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Ea){u=h.size-(e-m);u>f&&(u=f);h.Ea=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Ib(Jb,e,f)}e=new Eb(a,e,u,16384,d);Fb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kb[d]+" at "+ka(b)),!0):Ib(Lb,b,c)}
+k.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,Gb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;bd.length){for(var e=0,f=Array(4096),g=0;g>>a.f;0f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Fa+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Fa){u=h.size-(e-m);u>f&&(u=f);h.Fa=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Ib(Jb,e,f)}e=new Eb(a,e,u,16384,d);Fb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kb[d]+" at "+ka(b)),!0):Ib(Lb,b,c)}
 function Cb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Gb(a){for(var b=0,c=[],d=0;d=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=ac(a)&&(a.na=a.oa=-1,$b(a),N(a),c=!0);c&&a.M(ac(a)+" cycles: checksum="+la(a.xa))}}
-k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;ca.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.L=0;cc(a)}function ec(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fc(a,b){var c=a.N-=a.H;a.H=0;b&&(a.N=0);return c}
-k.yb=function(){if(this.h.B){this.za>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.v&&Ab(this.v,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
-this.v&&this.v.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,bc(this));if(0>c||this.Wc&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
-function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
+k.W=function(a,b){var c=Yb(this.v,"autoStart");null!=c?this.h.K="true"==c?!0:"false"==c?!1:!!c:null==this.h.K&&(this.h.K=void 0===this.m.run);if(!b){if(a){Zb(this);if(!this.restore(a))return!1;$b(this)}else this.reset();this.status("No debugger detected");this.h.K||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.K=function(){return this.h.B?!0:this.h.K?(wb(this),!0):!1};k.Za=function(){return 0};
+function $b(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.h.Ca=0<=a.za&&0=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=ac(a)&&(a.na=a.oa=-1,$b(a),N(a),c=!0);c&&a.M(ac(a)+" cycles: checksum="+la(a.ya))}}
+k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;ca.X/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.N=0;cc(a)}function ec(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fc(a,b){var c=a.P-=a.H;a.H=0;b&&(a.P=0);return c}
+k.yb=function(){if(this.h.B){this.Aa>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.N){var a=this.ma-this.N;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ca?1:this.pa,d=this.L.length-1;0<=d;d--){var e=this.L[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ha(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.v&&Ab(this.v,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
+this.v&&this.v.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.N=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.N-this.ma;if(d=this.N-this.C)this.X=Math.round(this.D/(10*d))/100,864E5<=d&&(this.V=0,bc(this));if(0>c||this.Xc&&(this.C-=c),c=0;this.Aa+=this.ca;this.N+=c;a(b,c)}}};
+function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ha=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
 function hc(a){var b=+a.model||1001;Wb.call(this,a,1E6);this.Wa=b;this.ua=+a.addrReset||0;this.gb=ic.bind(this);this.i=O.bind(this);this.la=null;this.Sa=[];this.h.complete=!1}l(hc,Wb);k=hc.prototype;
-k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.u=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.l=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.o=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
-k.save=function(){var a=new L(this);a.set(0,[this.a,this.u,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.o,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
-k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.o=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];bc(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
-k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.o=this.o&-5|0;do{if(a=this.o)if(a=this.o&11)this.o&2?this.la||(this.o&=-3):this.o&1&&this.o++,a=!1;if(a){if(this.o&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.qa=this.b(this.a):0<=this.aa?(this.u=this.ra=this.b(this.aa),this.aa=-1):(this.u=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.u&=8388607;this.a=this.u&262143;if(a=this.u>>18&15)this.a=this.a+
-(this.qa=this.b(a))&Za;a=this.u&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0>4].call(this,a,a&15)}function P(a){this.i(a)}function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
-function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
-function oc(a,b){this.c(b,this.b(this.a))}function pc(a,b){this.c(b,this.a)}function qc(a,b){this.c(this.a,this.b(b))}function rc(a,b){this.c(b,0)}function sc(a,b){this.c(b,I-this.b(b))}function tc(a,b){this.c(b,I)}function uc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,vc(a,d,c)+(c-(c&C)))}function wc(a,b){var c=this.b(b);this.c(b,vc(a,c,0))}function xc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,vc(a,c,b)+(b-(b&C)))}
-function yc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function zc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Ac(a,b){var c=this.a*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Bc(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,vc(a,c,b)+b)}function Cc(a,b){var c=this.b(this.a),d=(c&C)*E,c=vc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}
-function Dc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Fc(a,b){var c=this.b(b);this.c(b,Ec(a,c,this.a)+this.a)}function Gc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Hc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Ic(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Jc(a,b){var c=this.b(b);this.c(b,Ec(a,c,0))}
-function Kc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Lc(a,b){var c=this.b(this.a),d=c/E|0,c=Ec(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Mc[a&7].call(this,a,a>>3&127)}function Nc(){}function Oc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Pc(a){a>F&&(a!=G?a=db-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Qc.call(this,a,b,c);return c}
-function S(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.g|=131104,-1;c=b>F?I:0}else if((c=(aF&&(a=J-a,d=!d);c>F&&(b?(c=I-c,b=J-b):c&&(c=J-c),e=!0,d=!d);f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=a;f[1]=0;a=this.ea;a[0]=b;for(a[1]=c;0c[0]&&(c[0]+=J,c[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.X);Uc(this.da)}while(!Tc(this.da));b=this.Na[0];this.l=this.ea[0];d&&b&&(b=J-b);e&&this.l&&(this.l=J-this.l);return b}
+k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.u=0;this.f=this.xa=this.ua;this.A=this.J=-1;this.l=this.g=0;this.Na=[0,0];this.da=[0,0];this.aa=[0,0];this.ea=[0,0];this.ka=this.f;this.o=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
+k.save=function(){var a=new L(this);a.set(0,[this.a,this.u,this.qa,this.ra,this.f,this.J,this.A,this.g,this.o,this.xa,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.V,this.ja,this.h.K]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
+k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.J=b.next().value;this.A=b.next().value;this.g=b.next().value;this.o=b.next().value;this.xa=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.V=b[0];bc(this,b[1]);this.h.K=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
+k.Ha=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.P=this.H=a;this.o=this.o&-5|0;do{if(a=this.o)if(a=this.o&11)this.o&2?this.la||(this.o&=-3):this.o&1&&this.o++,a=!1;if(a){if(this.o&4&&this.w.i(0<=this.J?this.J:this.u&4194304?this.xa:this.f,b)){N(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.qa=this.b(this.a):0<=this.J?(this.u=this.ra=this.b(this.J),this.J=-1):(this.u=this.ra=this.b(this.xa=this.f),this.f=(this.f+1)%$a);this.u&=8388607;this.a=this.u&262143;
+if(a=this.u>>18&15)this.a=this.a+(this.qa=this.b(a))&Za;a=this.u&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0>4].call(this,a,a&15)}function P(a){this.i(a)}
+function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=100-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}
+function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}function oc(a,b){this.c(b,this.b(this.a))}function pc(a,b){this.c(b,this.a)}function qc(a,b){this.c(this.a,this.b(b))}function rc(a,b){this.c(b,0)}function sc(a,b){this.c(b,I-this.b(b))}function tc(a,b){this.c(b,I)}
+function uc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,vc(a,d,c)+(c-(c&C)))}function wc(a,b){var c=this.b(b);this.c(b,vc(a,c,0))}function xc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,vc(a,c,b)+(b-(b&C)))}function yc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function zc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}
+function Ac(a,b){var c=this.a*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Bc(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,vc(a,c,b)+b)}function Cc(a,b){var c=this.b(this.a),d=(c&C)*E,c=vc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Dc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Fc(a,b){var c=this.b(b);this.c(b,Ec(a,c,this.a)+this.a)}function Gc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}
+function Hc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Ic(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Jc(a,b){var c=this.b(b);this.c(b,Ec(a,c,0))}function Kc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Lc(a,b){var c=this.b(this.a),d=c/E|0,c=Ec(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Mc[a&7].call(this,a,a>>3&127)}
+function Nc(){}function Oc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Pc(a){a>F&&(a!=G?a=db-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Qc.call(this,a,b,c);return c}
+function S(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.g|=131104,-1;c=b>F?I:0}else if((c=(aF&&(a=J-a,d=!d);c>F&&(b?(c=I-c,b=J-b):c&&(c=J-c),e=!0,d=!d);f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.aa;f[0]=a;f[1]=0;a=this.ea;a[0]=b;for(a[1]=c;0c[0]&&(c[0]+=J,c[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.aa);Uc(this.da)}while(!Tc(this.da));b=this.Na[0];this.l=this.ea[0];d&&b&&(b=J-b);e&&this.l&&(this.l=J-this.l);return b}
 function Vc(a,b,c,d){var e=a,f=b;b=!1;var g;e>F&&(d||1001!=this.Wa||e!=G)&&(e=J-e,b=!b);f>F&&(f=J-f,b=!b);if(eF)&&(g!=I||a<=F)&&(this.g|=131072),g=a);return g}
 function Wc(a){a?a==G?this.g|=163840:a=db-a:this.g|=98304;return a}function Xc(a,b){var c=a-b;0>c&&(c+=J);Qc.call(this,c,b,a);return c}function Qc(a,b,c){a=Math.trunc(a/cb);b=Math.trunc(b/cb);c=Math.trunc(c/cb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a>>0)}function Z(a){return(a/E|0)+(a&C)*E}function Ec(a,b,c){switch(a&384){case 0:b-=b&C;break;case 128:b=0;break;case 256:b=C*E;break;case 384:b=c>ab?C*E:0}return b}function vc(a,b,c){switch(a&384){case 0:b&=C;break;case 128:b=0;break;case 256:b=C;break;case 384:b=c>F?C:0}return b}
@@ -119,7 +120,7 @@ b){if(a=(this.a&bb)<<14>>23|this.a&255){var c,d=this.b(b),e=this.b(b+1&15);if(0<
 F?I:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=I,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=((this.a&bb)<<14>>23|this.a&255)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
 a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c=this.b(b),d=this.b(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)%J,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},O,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,
 a)},function(a,b){a=!1;for(var c=this.b(b),d=c/E|0,c=c&C;!a;)this.c(c,this.b(d)),c==this.a&&(a=!0),d=d+1&C,c=c+1&C,this.h.B||(this.c(b,d*E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a=G&&M(this,this.a)},function(a,b){b&1&&(this.g|=4096);if(b&2){var c=this.qa/E|0;this.g=this.g&-254049|c&254048;this.g|=c&4096;c&2048?this.g&4096||(this.g|=2048):this.g&=-2049}b&4&&N(this);b&8&&this.i(a);M(this,
-this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.aa=this.a},O,function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a/E|0||(this.g|=262144);this.c(a&Za,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a)},function(a,b){a=this.b(b);a+=262145;this.c(a&Za,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&Za);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==C&&(this.g|=262144);this.c(b,a)},function(a,
+this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.J=this.a},O,function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a/E|0||(this.g|=262144);this.c(a&Za,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a)},function(a,b){a=this.b(b);a+=262145;this.c(a&Za,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&Za);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==C&&(this.g|=262144);this.c(b,a)},function(a,
 b){a=this.b(b);var c=this.b(a&Za);a-=262145;0>a&&(a+=J);(a/E|0)==C&&(this.g|=262144);this.c(b,a);M(this,c&Za)},function(){this.c(this.a,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a+1)},function(a,b){this.c(b,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a)},function(a,b){this.c(this.a,this.b(b));this.c(b,this.a*E+this.f);M(this,this.a+1)},function(a,b){a=this.b(b);this.c(b,this.b(a/E|0));M(this,this.a)},function(a,b){this.c(b,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,R.call(this,
 this.b(b),this.a))},function(a,b){this.c(this.a,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R.call(this,this.b(b),this.b(this.a))))},function(a,b){this.c(b,Xc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,Xc.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,Xc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Xc.call(this,this.b(b),this.b(this.a))))},Nc,function(a,b){0>V(this.b(b),this.a)&&M(this,this.f+1)},function(a,
 b){V(this.b(b),this.a)||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.a)&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){0V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(){M(this,this.f+
@@ -147,35 +148,35 @@ b){this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),Z(t
 W(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],Mc=[function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a,b){switch(b){case 0:a=this.b(this.a);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.i(a)}},function(a,b){switch(b){case 0:a=0;this.g&131072&&
 (a|=8);this.g&262144&&(a|=65536);this.c(this.a,a);break;default:this.i(a)}},function(a){this.i(a)},function(a){this.i(a)}];
 function Zc(a){t.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.i=a.file;this.o=ma(this.i);if(this.i){a=this.i;var b=na(this.o);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.i=null):(La(c.wa,a,b),(a=ua(a,b))?(c.a=a.I,c.O=a.O):c.i=null);$c(c)})}}l(Zc,t);
-Zc.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;$c(this)};Zc.prototype.V=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Zc.prototype.R=function(){return!0};
+Zc.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;$c(this)};Zc.prototype.W=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Zc.prototype.R=function(){return!0};
 function $c(a){if(!Wa(a)){if(a.i){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+la(a.a.length,8,!0)+") does not match specified size ("+la(a.g,8,!0)+")";a.h.error=!0;a.G(b)}else{b=a.l;if(Hb(a.s,b,a.g,Pb)){var c;for(c=0;c>>f.f;0>>=f.f;0>>a.f;0g&&g>=-G&&(g+=J);for(var g=Math.trunc(Math.abs(g))%J,h=d;f--&&h=n.Ta&&c<=n.fb&&(b=c-(n.Ta-n.ab));b&&(a.preventDefault&&a.preventDefault(),d.Da(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.cb&&(b=n.bb);d.Da(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.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
-k.$a=function(a){if(!this.a){var b=Yb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
-k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Da=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d=n.Ta&&c<=n.fb&&(b=c-(n.Ta-n.ab));b&&(a.preventDefault&&a.preventDefault(),d.Ea(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.cb&&(b=n.bb);d.Ea(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.Ea(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
+k.$a=function(a){if(!this.a){var b=Yb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.W=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
+k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Ea=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d\nLicense: GPL version 3 or later ");for(b=0;bid){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
+k.sa=function(a){void 0===a&&(a=this.a||(this.C?qd:id));if(!this.i){this.i++;var b=!1,c=!1;this.J=!1;var d=this.u||new L(this,"1.34.3");if(a==rd)b=!0;else if(a>id){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
 g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(xd,""),this.f=null)):this.M(f+": "+g),vd(d),jd(d)?(c=od(d),e=!0):c=!1))}e&&md(this,c?d:null)}else a==ud&&d.clear()}else md(this);delete this.C;delete this.u}e=w(this.id);for(f=0;fa[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(yd(this,this.j,b,c,a),Ab(this,-2),this.j.J());this.K&&(td(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
+function yd(a,b,c,d,e){if(!b.h.F){b.h.F=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.W(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=id,window&&window.location.reload()):a.J=!0,b.W(null),e=!1),!d&&b.Va){var g=b.Va.split("|");for(a=0;aa[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(yd(this,this.j,b,c,a),Ab(this,-2),this.j.K());this.J&&(td(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
 function td(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo help us diagnose it, click OK to send this "+Ya+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Ya;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
-function zd(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new L(a,"1.34.3"),g=new L(a,"1.34.3",nd),h=ta();g.set(pd,h);f.set(pd,h);f.set(Ad,"1.34.3");f.set(Bd,window?window.location.href:null);f.set(Cd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.h.J=a.j.h.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.h.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.o&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0=d||30<=(c.Ia+=d))&&(e.textContent=c.h.B?c.X.toFixed(2)+"Mhz":"Stopped",c.Ia=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.o&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0":62,"?":63,"@":64,jd:65,Lh:66,Rh:67,si:68,E:69,yi:70,Bi:71,Ni:72,Pi:73,Qi:74,Ri:75,Si:76,Vi:77,Xi:78,cj:79,fj:80,Q:81,hj:82,kj:83,tj:84,vj:85,xj:86,yj:87,Cj:88,Dj:89,Ke:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ej:97,Gj:98,Jj:99,d:100,e:101,Kj:102,Lj:103,Mj:104,Nj:105,Rj:106,k:107,Sj:108,Tj:109,n:110,Uj:111,p:112,q:113,r:114,Vj:115,t:116,Xj:117,Yj:118,Zj:119,x:120,
 y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127};
-function na(a,b){var c;if(a){b||(b=10);var d,e,f=0g&&(g+=Math.pow(2,36)),g=0=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
+(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0a&&-1a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0=k?48:55),f=String.fromCharCode(k)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function pa(a,b){b?12=b?6:16777215>=b?8:12);return oa(a,8,b,"")}
 function qa(a,b,c){b?9=b?4:4294967295>=b?8:9);return oa(a,16,b,c?"0x":"")}function ra(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0"']/g,function(a){return va[a]})}
 function wa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var va={"&":"&","<":"<",">":">",'"':""","'":"'"},xa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};