Added support for IRP, IRPC and IFN MACRO-10 pseudo-ops

This commit is contained in:
Jeff 2017-03-19 00:16:00 -07:00 committed by Jeff Parsons
commit 3da33e3668
9 changed files with 406 additions and 311 deletions

View file

@ -7,7 +7,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 /apps/pdp10/diags/klad/dakaa/TEST.MAC
commands: a 30724 /apps/pdp10/diags/klad/dakaa/MYDAKAA.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #1
@ -34,7 +34,7 @@ This command:
a 30724 /apps/pdp10/diags/klad/dakaa/TEST.MAC
will automatically read the [TEST.MAC](TEST.MAC.txt) source file (a slightly modified copy of [DAKAA.MAC](DAKAA.MAC.txt)),
will automatically read the [MYDAKAA.MAC](MYDAKAA.MAC.txt) source file (a slightly modified copy of [DAKAA.MAC](DAKAA.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---

View file

@ -7,7 +7,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 /apps/pdp10/diags/klad/dakad/TEST.MAC
commands: a 30724 /apps/pdp10/diags/klad/dakad/MYDAKAD.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #4
@ -34,7 +34,7 @@ This command:
a 30724 /apps/pdp10/diags/klad/dakad/TEST.MAC
will automatically read the [TEST.MAC](TEST.MAC.txt) source file (a slightly modified copy of [DAKAD.MAC](DAKAD.MAC.txt)),
will automatically read the [MYDAKAD.MAC](MYDAKAD.MAC.txt) source file (a slightly modified copy of [DAKAD.MAC](DAKAD.MAC.txt)),
assemble it, and then load the binary output at the specified address. Use the command `db 30724` to dump the first few words
of binary data:

View file

@ -14,11 +14,11 @@
EXP ZZ ;;WORD FULL
ZZ==0> ;;START AGAIN WITH 0
ZZ=ZZ+9+"C"> ;;END OF IRPC
IFN ZZ,<DEFINE SHIFT ;;REMAINDER LEFT
IFE ZZ&777B8,> ;;IF NOT LEFT JUSTIFIED
ZZ=ZZ+9 ;;MOVE LEFT 9 BITS
SHIFT> ;;RECURSE
> ;;END OF DEFINE
IFN ZZ,<DEFINE SHIFT< ;;REMAINDER LEFT
IFE ZZ&777B8,< ;;IF NOT LEFT JUSTIFIED
ZZ=ZZ+9 ;;MOVE LEFT 9 BITS
SHIFT> ;;RECURSE
> ;;END OF DEFINE
SHIFT ;;START MOVING LEFT
EXP ZZ> ;;END OF IFN ZZ
> ;END OF CODE MACRO

View file

@ -5,8 +5,9 @@ permalink: /apps/pdp10/tests/
machines:
- id: testka10
type: pdp10
debugger: true
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 100 /apps/pdp10/tests/MACTEST.MAC
---
DEC PDP-10 Opcode Tests

View file

@ -6,7 +6,6 @@ machines:
- id: testka10
type: pdp10
debugger: true
commands: a 100 /apps/pdp10/tests/MACTEST.MAC
---
PDP-10 Test Machine with Debugger

View file

@ -39,11 +39,14 @@ if (NODE) {
/**
* Elements of tblMacros.
*
* NOTE: The nLine property is not required; it's added for improved error reporting.
*
* @typedef {{
* name:(string),
* nOperand:(number),
* aParms:(Array.<string>),
* aDefaults:(Array.<string>),
* aValues:(Array.<string>),
* sText:(string),
* nLine:(number)
* }}
@ -53,11 +56,13 @@ var Mac;
/**
* Elements of tblSymbols.
*
* NOTE: The nLine property is not required; it's added for improved error reporting.
*
* @typedef {{
* name:(string),
* value:(number),
* nLine:(number),
* nType:(number)
* nType:(number),
* nLine:(number)
* }}
*/
var Sym;
@ -66,7 +71,7 @@ var Sym;
*
* Elements of aFixups.
*
* NOTE: The nLine property is not required; it's added for DEBUG support.
* NOTE: The nLine property is not required; it's added for improved error reporting.
*
* @typedef {{
* nLocation:(number),
@ -181,9 +186,12 @@ class Macro10 {
this.nLocation = this.nAddr; // advanced by the various genXXX() functions
this.sOperator = null; // the active operator, if any
this.nMacroDef = 0; // the active MACRO definition state
this.sMacroDef = null; // the active MACRO definition name
this.nMacroDef = 0; // the active macro definition state
this.sMacroDef = null; // the active macro definition name
this.chMacroOpen = this.chMacroClose = '';
this.reLine = /\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;
this.macroCall = null; // the active macro being called, if any
/**
* If an ASCII/ASCIZ/SIXBIT pseudo-op is active, chASCII is set to the separator
@ -344,13 +352,16 @@ class Macro10 {
}
/**
* parseLine(sLine)
* parseLine(sLine, aParms, aValues, aDefaults)
*
* @this {Macro10}
* @param {string} sLine (line contents)
* @param {Array.<string>} [aParms]
* @param {Array.<string>} [aValues]
* @param {Array.<string>} [aDefaults]
* @return {boolean}
*/
parseLine(sLine)
parseLine(sLine, aParms, aValues, aDefaults)
{
var i;
if (this.nMacroDef) {
@ -373,18 +384,51 @@ class Macro10 {
sLine = this.addASCII(sLine);
}
var reLine = /\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;
var matchLine = sLine.match(reLine);
if (!matchLine || matchLine[4] && matchLine[4].slice(0, 1) != ';') {
this.error("failed to parse line: " + sLine);
return false;
var fParse = true;
var sLabel, sOperator = "", sOperands, sRemainder;
while (fParse) {
var matchLine = sLine.match(this.reLine);
if (!matchLine || matchLine[4] && matchLine[4].slice(0, 1) != ';') {
this.error("failed to parse line: " + sLine);
return false;
}
fParse = false;
sOperator = matchLine[2].toUpperCase();
if (sOperator == Macro10.PSEUDO_OP.IRP || sOperator == Macro10.PSEUDO_OP.IRPC) {
aParms = null;
}
if (aParms) {
for (var iParm = 0; iParm < aParms.length; iParm++) {
var sParm = aParms[iParm];
var sReplace = aValues[iParm] || aDefaults[iParm] || "";
var iSearch = 0;
var iLimit = sLine.length - matchLine[4].length; // set the limit at the start of the comment, if any
while (iSearch < iLimit) {
var iMatch = sLine.indexOf(sParm, iSearch);
if (iMatch < 0) break;
iSearch = iMatch + 1;
var iMatchEnd = iMatch + sParm.length;
var chPre = '', chPost = '';
if ((!iMatch || !this.isSymbolChar(chPre = sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(chPost = sLine[iMatchEnd]))) {
/*
* If the "concatenation character" (') appears before (or after) the symbol being replaced, remove it.
*/
if (chPre == "'") iMatch--;
if (chPost == "'") iMatchEnd++;
sLine = sLine.substr(0, iMatch) + sReplace + sLine.substr(iMatchEnd);
iSearch = iMatch + sReplace.length;
fParse = true;
}
}
}
aParms = null;
}
}
var sLabel = matchLine[1];
var sOperator = matchLine[2].toUpperCase();
var sOperands = matchLine[3].trim();
var sComment = matchLine[4];
var sRemainder = matchLine[3] + matchLine[4];
sLabel = matchLine[1];
sOperands = matchLine[3].trim();
sRemainder = matchLine[3] + matchLine[4];
if (sLabel) {
sLabel = sLabel.slice(0, -1);
@ -444,7 +488,9 @@ class Macro10 {
case Macro10.PSEUDO_OP.DEFINE:
case Macro10.PSEUDO_OP.IFE:
case Macro10.PSEUDO_OP.IFN:
case Macro10.PSEUDO_OP.IRP:
case Macro10.PSEUDO_OP.IRPC:
case Macro10.PSEUDO_OP.REPEAT:
this.addMacro(sOperator, sOperands);
break;
@ -471,12 +517,16 @@ class Macro10 {
*/
parseMacro(name, sOperands)
{
var i;
var macro = this.tblMacros[name];
if (!macro) return false;
if (sOperands != null) {
var aValues = this.getValues(sOperands);
this.parseText(macro.sText, macro.aParms, aValues);
var macroPrev = this.macroCall;
this.macroCall = macro;
macro.aValues = this.getValues(sOperands, true);
this.parseText(macro.sText, macro.aParms, macro.aValues, macro.aDefaults);
this.macroCall = macroPrev;
return true;
}
@ -489,6 +539,19 @@ class Macro10 {
}
break;
case Macro10.PSEUDO_OP.IFN:
if (macro.nOperand) {
this.parseText(macro.sText);
}
break;
case Macro10.PSEUDO_OP.IRP:
case Macro10.PSEUDO_OP.IRPC:
for (i = 0; i < macro.aValues.length; i++) {
this.parseText(macro.sText, macro.aParms, [macro.aValues[i]], []);
}
break;
case Macro10.PSEUDO_OP.REPEAT:
while (macro.nOperand-- > 0) {
this.parseText(macro.sText);
@ -514,42 +577,20 @@ class Macro10 {
}
/**
* parseText(sText, aParms, aValues)
* parseText(sText, aParms, aValues, aDefaults)
*
* @this {Macro10}
* @param {string} sText
* @param {Array.<string>} [aParms]
* @param {Array.<string>} [aValues]
* @param {Array.<string>} [aDefaults]
*/
parseText(sText, aParms, aValues)
parseText(sText, aParms, aValues, aDefaults)
{
var asLines = sText.split(/\r?\n/);
for (var iLine = 0; iLine < asLines.length; iLine++) {
var sLine = asLines[iLine] + '\r\n';
if (aParms) {
for (var iParm = 0; iParm < aParms.length; iParm++) {
var sParm = aParms[iParm];
var sReplace = aValues[iParm] || "";
var iSearch = 0;
while (true) {
var iMatch = sLine.indexOf(sParm, iSearch);
if (iMatch < 0) break;
iSearch = iMatch + 1;
var iMatchEnd = iMatch + sParm.length;
var chPre = '', chPost = '';
if ((!iMatch || !this.isSymbolChar(chPre = sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(chPost = sLine[iMatchEnd]))) {
/*
* If the "concatenation character" (') appears before (or after) the symbol being replaced, remove it.
*/
if (chPre == "'") iMatch--;
if (chPost == "'") iMatchEnd++;
sLine = sLine.substr(0, iMatch) + sReplace + sLine.substr(iMatchEnd);
iSearch = iMatch + sReplace.length;
}
}
}
}
if (!this.parseLine(sLine)) break;
if (!this.parseLine(sLine, aParms, aValues, aDefaults)) break;
}
}
@ -746,11 +787,14 @@ class Macro10 {
if (this.tblMacros[name] !== undefined) {
this.error("reserved symbol redefined: " + sReserved);
}
var aParms, aDefaults, aValues;
aParms = aDefaults = aValues = [];
this.tblMacros[name] = {
name: name,
nOperand: Macro10.MACRO_OP.RESERVED,
aParms: [],
aDefaults: [],
aParms,
aDefaults,
aValues,
sText: sLabel + ": 0",
nLine: this.nLine
};
@ -759,20 +803,29 @@ class Macro10 {
return sReserved;
}
getSymbol(sOperands)
{
var match;
if (match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)/i)) {
return match[1];
}
}
/**
* getValues(sOperands, sDelim)
* getValues(sOperands, fParens)
*
* @this {Macro10}
* @param {string} sOperands
* @param {string} [sDelim]
* @param {boolean} [fParens] (true to strip any parens from around the entire operands)
* @return {Array.<string>}
*/
getValues(sOperands, sDelim)
getValues(sOperands, fParens)
{
var aValues = [];
if (fParens) sOperands = sOperands.replace(/^\(?(.*?)\)?$/, "$1");
while (sOperands) {
sOperands = sOperands.trim();
var sOperand = this.getExpression(sOperands, sDelim);
var sOperand = this.getExpression(sOperands);
if (!sOperand) break;
aValues.push(sOperand);
sOperands = sOperands.substr(sOperand.length + 1);
@ -836,27 +889,27 @@ class Macro10 {
*/
addMacro(sOperator, sOperands)
{
var match, name, nOperand, aParms, aDefaults, iMatch;
var i, match, name, nOperand, aParms, aDefaults, aValues, iMatch;
this.chMacroOpen = '<';
this.chMacroClose = '>';
aParms = aDefaults = [];
aParms = aDefaults = aValues = [];
if (sOperator == Macro10.PSEUDO_OP.DEFINE) {
/*
* This is a DEFINE (macro) block.
*/
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(?:\(([^)]*)\)|)\s*(<|)(.*)/i);
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);
if (!match) {
this.error("unrecognized " + sOperator + ": " + sOperands);
return "";
return sOperands;
}
name = match[1];
/*
* If this macro has defined parameters, parse them (and any defaults) now.
*/
if (match[2]) {
aParms = this.getValues(match[2]);
aParms = this.getValues(match[2], true);
aDefaults = this.getDefaults(aParms);
}
nOperand = Macro10.MACRO_OP.DEFINE;
@ -877,6 +930,38 @@ class Macro10 {
this.aLiterals.push(name);
iMatch = 0;
}
else if (sOperator == Macro10.PSEUDO_OP.IRP || sOperator == Macro10.PSEUDO_OP.IRPC) {
/*
* IRP (and IRPC) blocks are very similar to DEFINE blocks, but they define exactly ONE macro parameter
* with NO parentheses (whereas regular macros always define their parameters, if any, WITH parentheses),
* and then the IRP (or IRPC) block is immediately invoked with the corresponding value from the
* enclosing macro.
*/
if (!this.macroCall) {
this.error(sOperator + " outside of macro");
}
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)(.*)/i);
if (!match) {
this.error("unrecognized " + sOperator + ": " + sOperands);
return sOperands;
}
for (i = 0; i < this.macroCall.aParms.length; i++) {
if (match[1] == this.macroCall.aParms[i]) break;
}
if (i == this.macroCall.aParms.length) {
this.error("invalid " + sOperator + " parameter: " + match[1]);
return sOperands;
}
name = '?' + sOperator;
aParms = [match[1]];
if (sOperator == Macro10.PSEUDO_OP.IRPC) {
aValues = this.macroCall.aValues[i].split("");
} else {
aValues = this.getValues(this.macroCall.aValues[i]);
}
nOperand = aValues.length;
iMatch = 2;
}
else {
/*
* This must be a REPEAT or CONDITIONAL block.
@ -884,7 +969,7 @@ class Macro10 {
var sOperand = this.getExpression(sOperands);
if (!sOperand) {
this.error("missing " + sOperator + " expression: " + sOperands);
return "";
return sOperands;
}
sOperands = sOperands.substr(sOperand.length + 1);
sOperand = sOperand.trim();
@ -916,7 +1001,7 @@ class Macro10 {
}
}
this.tblMacros[name] = {name, nOperand, aParms, aDefaults, sText, nLine: this.nLine};
this.tblMacros[name] = {name, nOperand, aParms, aDefaults, aValues, sText, nLine: this.nLine};
if (!this.nMacroDef) {
this.parseMacro(name);
@ -981,7 +1066,14 @@ class Macro10 {
}
value = v;
}
this.tblSymbols[name] = {name, value, nLine: this.nLine, nType};
var sym = this.tblSymbols[name];
if (sym) {
sym.value = value;
sym.nType = nType;
sym.nLine = this.nLine;
} else {
this.tblSymbols[name] = {name, value, nType, nLine: this.nLine};
}
this.dbg.setVariable(name, value);
}
@ -1132,7 +1224,9 @@ Macro10.PSEUDO_OP = {
ASCIZ: "ASCIZ",
DEFINE: "DEFINE",
IFE: "IFE",
IFN: "IFN",
IRP: "IRP",
IRPC: "IRPC",
LITERAL: "LITERAL",
PAGE: "PAGE",
REPEAT: "REPEAT",

View file

@ -27,256 +27,257 @@
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var l,ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ca="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function da(){da=function(){};ca.Symbol||(ca.Symbol=ga)}var ha=0;function ga(a){return"jscomp_symbol_"+(a||"")+ha++}
function ia(){da();var a=ca.Symbol.iterator;a||(a=ca.Symbol.iterator=ca.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ba(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ja(this)}});ia=function(){}}function ja(a){var b=0;return la(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function la(a){ia();a={next:a};a[ca.Symbol.iterator]=function(){return this};return a}
function ma(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 na(a,b){if(b){var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}
na("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});na("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ta={mc:0,Eb:1,oc:2,pc:3,qc:4,rc:5,sc:6,tc:7,qb:8,uc:9,Fb:10,vc:11,wc:12,Gb:13,xc:14,yc:15,zc:16,Ac:17,Bc:18,Cc:19,Dc:20,Ec:21,Fc:22,Gc:23,Hc:24,Ic:25,Jc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,pb:65,lc:66,nc:67,Kc:68,E:69,Lc:70,Mc:71,Nc:72,Oc:73,Pc:74,Qc:75,Rc:76,Sc:77,Tc:78,Uc:79,Vc:80,Q:81,Wc:82,Xc:83,Yc:84,Zc:85,$c:86,ad:87,
bd:88,cd:89,Ib:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,dd:97,ed:98,fd:99,d:100,e:101,gd:102,hd:103,jd:104,kd:105,ld:106,k:107,md:108,nd:109,n:110,pd:111,p:112,q:113,r:114,qd:115,t:116,sd:117,td:118,ud:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Hb:127};
function ua(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function 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 b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
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 la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
la("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ma={oc:0,Gb:1,qc:2,rc:3,sc:4,tc:5,uc:6,vc:7,sb:8,wc:9,Hb:10,xc:11,yc:12,Ib:13,zc:14,Ac:15,Bc:16,Cc:17,Dc:18,Ec:19,Fc:20,Gc:21,Hc:22,Ic:23,Jc:24,Kc:25,Lc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,rb:65,nc:66,pc:67,Mc:68,E:69,Nc:70,Oc:71,Pc:72,Qc:73,Rc:74,Sc:75,Tc:76,Uc:77,Vc:78,Wc:79,Xc:80,Q:81,Yc:82,Zc:83,$c:84,ad:85,bd:86,cd:87,
dd:88,ed:89,Kb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,fd:97,gd:98,hd:99,d:100,e:101,jd:102,kd:103,ld:104,md:105,nd:106,k:107,od:108,pd:109,n:110,qd:111,p:112,q:113,r:114,rd:115,t:116,td:117,ud:118,vd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Jb:127};
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function va(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function wa(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}
function m(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return va(a,8,b,c?"0o":"")}function xa(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return va(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return va(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<c&&(b=b.substr(0,c));return b}function za(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Aa(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function Ba(a){return a.replace(/[&<>"']/g,function(a){return Ea[a]})}function Fa(a,b){return(a+" ").slice(0,b)}function Ga(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ea={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ha(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ia(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ja(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
function ta(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ua(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}
function m(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ta(a,8,b,c?"0o":"")}function va(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return ta(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ta(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<c&&(b=b.substr(0,c));return b}function xa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ya(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Fa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ga(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Na(a,b){var c,d={Z:null,W:null,ua:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c<e.length;c++)d.Z[f++]=e[c]&255,d.Z[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c<e.length;c++)d.Z[f++]=
e[c]&255,d.Z[f++]=e[c]>>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.Ja=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(r(d.Z[0]),d=null):(r("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Z=e)}return d}
function Oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Pa(){if(null==Qa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Qa=a}return Qa}function Ra(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Sa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ta(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ua(a){if(!Va){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Va=c}return Va[a]}function Wa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Xa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Ya(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Za(a){$a.init.push(a)}
function ab(a){if(hb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ib(a){!hb&&a?(hb=!0,jb&&kb("init"),lb&&kb("show")):hb=a}function kb(a){$a[a]&&ab($a[a])}var Va=null,$a={init:[],show:[],exit:[]},jb=!1,lb=!1,hb=!0,Qa=null;Ya("onload",function(){jb=!0;ab($a.init)});Ya("onpageshow",function(){lb=!0;ab($a.show)});Ya(Ta("Opera")||Ta("iOS")?"onunload":"onbeforeunload",function(){ab($a.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vb=b.comment;this.Nb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,X:!1,error:!1};this.Xa=null;this.A.error=!1;this.Y=c||0;this.D=this.v=this.G=this.H=this.va=null;mb.push(this)}function nb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function pb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function qb(a){var b=!1;window&&(b=window.confirm(a));return b}function rb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<mb.length;b++){var d=mb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function sb(a){if(void 0!==a){var b;for(b=0;b<mb.length;b++)if(mb[b].id===a)return mb[b]}return null}
function tb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<mb.length;d++)if(c)c==mb[d]&&(c=null);else if(!(a!=mb[d].type||b&&mb[d].id.indexOf(b)))return mb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function ub(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),n=0;n<k.length;n++)switch(h=k[n],h){case c+"-binding":(h=v(g))&&h.binding&&a.na(h.type,h.binding,g,h.value),n=k.length}}}}
function Ia(a,b){var c,d={aa:null,W:null,ua:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.longs)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
e[c]&255,d.aa[f++]=e[c]>>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else(e=g.data)?d.Ka=e:d.aa=g;d.aa&&(d.aa.length?1==d.aa.length&&(r(d.aa[0]),d=null):(r("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.aa=e)}return d}
function Ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Na(){if(null==Oa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Oa=a}return Oa}function Pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Sa(a){if(!Ta){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ta=c}return Ta[a]}function Ua(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Va(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Ya.init.push(a)}
function Za(a){if($a)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ab(a){!$a&&a?($a=!0,ib&&jb("init"),kb&&jb("show")):$a=a}function jb(a){Ya[a]&&Za(Ya[a])}var Ta=null,Ya={init:[],show:[],exit:[]},ib=!1,kb=!1,$a=!0,Oa=null;Wa("onload",function(){ib=!0;Za(Ya.init)});Wa("onpageshow",function(){kb=!0;Za(Ya.show)});Wa(Ra("Opera")||Ra("iOS")?"onunload":"onbeforeunload",function(){Za(Ya.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.xb=b.comment;this.Ob=b;this.exports={};this.J=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.A={ready:!1,Pa:!1,kb:!1,X:!1,error:!1};this.Za=null;this.A.error=!1;this.Z=c||0;this.D=this.v=this.G=this.H=this.va=null;lb.push(this)}function mb(a,b,c){nb[a]&&b&&(nb[a][b]=c)}function ob(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function pb(a){var b=!1;window&&(b=window.confirm(a));return b}function qb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<lb.length;b++){var d=lb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function rb(a){if(void 0!==a){var b;for(b=0;b<lb.length;b++)if(lb[b].id===a)return lb[b]}return null}
function sb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<lb.length;d++)if(c)c==lb[d]&&(c=null);else if(!(a!=lb[d].type||b&&lb[d].id.indexOf(b)))return lb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function tb(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),n=0;n<k.length;n++)switch(h=k[n],h){case c+"-binding":(h=v(g))&&h.binding&&a.na(h.type,h.binding,g,h.value),n=k.length}}}}
function x(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function vb(a){for(var b=!0,c=wb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=xb.indexOf(e)&&(f=function(){return function(){vb(a)}}());var g=yb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=tb(d[1],a);if(h)if(g=zb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete wb[a];return b}l=u.prototype;
function ub(a){for(var b=!0,c=vb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=wb.indexOf(e)&&(f=function(){return function(){ub(a)}}());var g=xb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=sb(d[1],a);if(h)if(g=yb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete vb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.na=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.va=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.u(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
l.status=function(a){this.u(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Jb(a,b){a.A.error=!0;a.da(b)}function Kb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Lb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Nb(a,b){a.A.Na&&(b?a.A.hb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Na}
function Ob(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.wa=function(){return this.A.X=!0};l.ma=function(a,b){b&&(this.A.X=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.Y;var c=a.D.Y&b;return!!b&&c===b||!!(c&a.D.xb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
l.na=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.va=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.ea=function(a){this.u(a,this.Va)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
l.status=function(a){this.u(this.Va+": "+a)};l.ea=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function zb(a,b){a.A.error=!0;a.ea(b)}function Ab(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Cb(a,b){b&&(a.A.ready?b():a.Za=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Za;a.Za=null;b&&b()}}function Nb(a,b){a.A.Pa&&(b?a.A.kb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Pa}
function Ob(a,b){if(a.A.kb)return a.A.Pa=!1,a.A.kb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Pa=b;return a.A.Pa}l.wa=function(){return this.A.X=!0};l.ma=function(a,b){b&&(this.A.X=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.Z;var c=a.D.Z&b;return!!b&&c===b||!!(c&a.D.zb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ob=window?window.PCjs.Machines:{},mb=window?window.PCjs.Components:[],wb=window?window.PCjs.Commands:{},xb=["hold","sleep","wait"],yb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},zb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var nb=window?window.PCjs.Machines:{},lb=window?window.PCjs.Components:[],vb=window?window.PCjs.Commands:{},wb=["hold","sleep","wait"],xb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},yb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var w="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,C=Math.pow(2,35),D=Math.pow(2,36)-1,E=Math.pow(2,36),F=Math.pow(2,32),Vb=Math.pow(2,34),Wb=Math.pow(2,36),Xb=Math.pow(2,21),Yb=Math.pow(2,26),Zb=Math.pow(2,23),$b=Math.pow(2,30),w="pdp10",Rb="PDPjs",ac={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
var w="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,D=Math.pow(2,35),E=Math.pow(2,36)-1,F=Math.pow(2,36),G=Math.pow(2,32),Vb=Math.pow(2,34),Wb=Math.pow(2,36),Xb=Math.pow(2,21),Yb=Math.pow(2,26),Zb=Math.pow(2,23),$b=Math.pow(2,30),w="pdp10",Rb="PDPjs",ac={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function bc(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.U=b;this.i=this.I=this.j=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Xb],STEP:[1,1,!1,!1,this.Yb],ENABLE:[1,1,!1,!1,this.Sb],CONT:[1,1,!0,!1,this.Qb],DEP:[0,0,!0,!1,this.Rb],EXAM:[1,1,!0,!1,this.Tb],LOAD:[1,1,!0,!1,this.Vb],TEST:[0,0,!0,!1,this.Ub]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Wb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Ob,toggle:this.gc,reset:this.cc,
set:this.fc};Mb(this)}ma(bc,u);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.w=0)};
function bc(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.j=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Zb],STEP:[1,1,!1,!1,this.$b],ENABLE:[1,1,!1,!1,this.Ub],CONT:[1,1,!0,!1,this.Sb],DEP:[0,0,!0,!1,this.Tb],EXAM:[1,1,!0,!1,this.Vb],LOAD:[1,1,!0,!1,this.Xb],TEST:[0,0,!0,!1,this.Wb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Yb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Pb,toggle:this.ic,reset:this.ec,
set:this.hc};Mb(this)}ja(bc,u);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.w=0)};
l.na=function(a,b,c,d){if(this.H&&this.H.na(a,b,c,d)||this.v&&this.v.na(a,b,c,d)||this.D&&this.D.na(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ec(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):u.prototype.na.call(this,a,b,c,d)}};l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;gc(this);hc(this)};l.wa=function(a,b){if(!b)if(this.U&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
l.restore=function(a){if(a=a[0])jc(this,this.i=a[0]),dc(this,this.w=a[1]),kc(this,a[2]);return!0};l.cc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
l.Ob=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.fc=function(a,b){if("SR"==a)return kc(this,ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.gc=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1}
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Xb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[qc]&&this.b[qc][1]&&rc(this.v))};l.Yb=function(){};l.Sb=function(a){a||this.v.V()};
l.Qb=function(a){if(!a&&!this.v.A.N)if(this.b[qc]&&this.b[qc][1])rc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),sc(a,0,null),Ob(a,!1);else try{var b=this.v.Ra(1);0<b&&(tc(this.v,b),uc(this.v,b,!0),vc(this.v,b))}catch(c){"number"!=typeof c&&Jb(this.v,c.stack||c.message)}this.stop();this.H&&I(this.H)}};l.Rb=function(a){a&&!this.v.A.N&&(this.P&&wc(this),a=dc(this,this.w=this.j),this.S==cc?xc(this.G,this.i,a):this.v.g(this.i,a))};
l.Tb=function(a){if(!a&&!this.v.A.N){var b;this.R&&wc(this);this.S==cc?b=yc(this.G,this.i):b=this.v.f(this.i);dc(this,this.w=b)}};l.Vb=function(a){a||this.v.A.N||jc(this,this.j)};l.Ub=function(a){a?(this.F=!0,gc(this,!0)):(this.F=!1,gc(this),kc(this,0))};l.Wb=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function wc(a){var b=1,c=a.G.j;a.b[nc]&&a.b[nc][1]||(b=-b);jc(a,a.i&~c|a.i+b&c)}
function jc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}}function dc(a,b){a.I=b%E;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}return a.I}function kc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.v.i)};
function ic(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=sb(d.id);e||(e=new bc(d,!0));ub(e,c)}}var cc=7,oc="DEP",qc="ENABLE",pc="EXAM",nc="STEP";Za(ic);function zc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Ec(this);Fc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ma(zc,u);l=zc.prototype;l.reset=function(){};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Gc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Hc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,n=16384-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){n=h.size-(e-k);n>f&&(n=f);h.Pa=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Ic(Jc,e,f)}e=new Ec(a,e,n,16384,d);Fc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+m(b)),!0):Ic(Lc,b,c)}
function yc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function xc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Gc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Mb=function(a){this.w||(this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.V())};function Ic(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Jc=1,Lc=2;function Mc(a){u.call(this,"Device",a,256)}ma(Mc,u);l=Mc.prototype;l.Ga=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
l.restore=function(){return!0};Za(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Mc(c),ub(c,d)}}});function Ec(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Pa=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Qa;this.i=this.v=0;Fc(this);this.jb=this.Lb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}l=Ec.prototype;l.save=function(){return this.j};
l.restore=function(a){return a&&this.size==a.length?(this.j=a,this.jb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.Ka=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
function Fc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}l.nb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+J(this.b,b),!0);this.H.Mb(b);return-1};l.Qa=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+J(this.b,a)+" to invalid addresses "+J(this.b,c),!0)};l.ac=function(a){return this.j[a]};l.jc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.jb=!0)};
l.Zb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.M)&&c.V(!1)}return this.D(a,b)};l.ic=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.I)&&d.V(!1)}this.G?this.Qa(a,0,c):this.w(a,b,c)};var Oc=0,Pc=2,Kc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Ec.prototype.ac,Ec.prototype.jc],Vc=[Ec.prototype.Zb,Ec.prototype.ic];
function Yc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.fa=c;this.bb=Math.round(this.eb/1E4)/100;this.ca=this.bb*this.fa;this.cb=this.Da=this.ga=this.Va=0;this.A.N=this.A.$a=!1;this.A.aa=a.autoStart;"string"==typeof this.A.aa&&(this.A.aa="true"==this.A.aa);this.A.Ma=!1;this.Ba=this.ia=0;this.Ca=+a.csStart;this.oa=+a.csInterval;this.ja=+a.csStop;this.O=[];this.yb=this.dc.bind(this);this.U=this.M=this.R=this.S=this.L=this.Aa=this.P=this.ka=this.fb=this.ba=
0;this.Ia=null;Mb(this)}ma(Yc,u);l=Yc.prototype;l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ia=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.na(null,Zc[a],b);Mb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.aa="true"==c?!0:"false"==c?!1:!!c:null==this.A.aa&&(this.A.aa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.aa,a.Da=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.ra&&(b=a.ra,a.ra=null,ed(a,b,!0))):this.status("No debugger detected");this.A.aa||this.u("CPU will not be auto-started "+(this.Ia?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ma=function(a){return a?this.save():!0};l.aa=function(){return this.A.N?!0:this.A.aa?(rc(this),!0):!1};l.Bb=function(){return 0};function bd(a){void 0===a.Ca&&(a.Ca=0);void 0===a.oa&&(a.oa=-1);void 0===a.ja&&(a.ja=-1);a.A.Ma=0<=a.Ca&&0<a.oa;a.A.Ma&&(a.Ba=0,a.ia=a.Ca-a.U)}function vc(a,b){if(a.A.Ma){var c=!1;a.Ba=a.Ba+a.Bb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.oa,c=!0);0<=a.ja&&a.ja<=fd(a)&&(a.oa=a.ja=-1,bd(a),a.V(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+q(a.Ba))}}
l.na=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=rb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.X);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.V():rc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.fa<<1,!0)},c.textContent=this.ca.toFixed(2)+"Mhz",!0}return!1};function uc(a,b,c){a.U+=b;c&&(a.R=a.S=0)}function hd(a,b){var c=1;b&&1<a.fa&&a.ba&&(c=a.ba/a.bb);a.cb=Math.round(1E3/id);a.Da=Math.floor(a.eb/id*c);b||(a.ga=a.Da);a.Va=0}function fd(a){return a.U+a.M+a.R-a.S}function ad(a){a.ba=0;a.fb=0;a.U=a.M=a.R=a.S=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ca?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ca!=b){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}uc(a,a.M);a.M=0;a.L=pb();a.P=0;hd(a);return d}function kd(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):u.prototype.na.call(this,a,b,c,d)}};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;gc(this);hc(this)};l.wa=function(a,b){if(!b)if(this.T&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new I(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
l.restore=function(a){if(a=a[0])jc(this,this.i=a[0]),dc(this,this.w=a[1]),kc(this,a[2]);return!0};l.ec=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
l.Pb=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.hc=function(a,b){if("SR"==a)return kc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.ic=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1}
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Zb=function(a){a||this.v.A.N||(J(this.v,this.i),this.b[qc]&&this.b[qc][1]&&rc(this.v))};l.$b=function(){};l.Ub=function(a){a||this.v.V()};
l.Sb=function(a){if(!a&&!this.v.A.N)if(this.b[qc]&&this.b[qc][1])rc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),sc(a,0,null),Ob(a,!1);else try{var b=this.v.Ta(1);0<b&&(tc(this.v,b),uc(this.v,b,!0),vc(this.v,b))}catch(c){"number"!=typeof c&&zb(this.v,c.stack||c.message)}this.stop();this.H&&K(this.H)}};l.Tb=function(a){a&&!this.v.A.N&&(this.P&&wc(this),a=dc(this,this.w=this.j),this.S==cc?xc(this.G,this.i,a):this.v.g(this.i,a))};
l.Vb=function(a){if(!a&&!this.v.A.N){var b;this.R&&wc(this);this.S==cc?b=yc(this.G,this.i):b=this.v.f(this.i);dc(this,this.w=b)}};l.Xb=function(a){a||this.v.A.N||jc(this,this.j)};l.Wb=function(a){a?(this.F=!0,gc(this,!0)):(this.F=!1,gc(this),kc(this,0))};l.Yb=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function wc(a){var b=1,c=a.G.j;a.b[nc]&&a.b[nc][1]||(b=-b);jc(a,a.i&~c|a.i+b&c)}
function jc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}}function dc(a,b){a.I=b%F;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}return a.I}function kc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.v.i)};
function ic(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=rb(d.id);e||(e=new bc(d,!0));tb(e,c)}}var cc=7,oc="DEP",qc="ENABLE",pc="EXAM",nc="STEP";Xa(ic);function zc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Ac(this);Bc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ja(zc,u);l=zc.prototype;l.reset=function(){};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new I(this);a.set(0,Cc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Dc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,n=16384-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Ra+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ra){n=h.size-(e-k);n>f&&(n=f);h.Ra=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Ic(Jc,e,f)}e=new Ac(a,e,n,16384,d);Bc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+m(b)),!0):Ic(Lc,b,c)}
function yc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function xc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Cc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.mb||e.Mb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Nb=function(a){this.w||(this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+L(this.D,a),!0,!0),this.v.V())};function Ic(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Jc=1,Lc=2;function Mc(a){u.call(this,"Device",a,256)}ja(Mc,u);l=Mc.prototype;l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new I(this)).data()};
l.restore=function(){return!0};Xa(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Mc(c),tb(c,d)}}});function Ac(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Ra=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.D=this.pb;this.g=this.w=this.Sa;this.i=this.v=0;Bc(this);this.mb=this.Mb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}l=Ac.prototype;l.save=function(){return this.j};
l.restore=function(a){return a&&this.size==a.length?(this.j=a,this.mb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.pb);if(c||void 0===c)a.D=b[0]||a.pb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Sa);if(c||void 0===c)a.w=b[1]||a.Sa}l.Ma=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Sa:a.w):--a.i||(a.f=a.D)}
function Bc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}l.pb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.H.Nb(b);return-1};l.Sa=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0)};l.cc=function(a){return this.j[a]};l.lc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.mb=!0)};
l.ac=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.M)&&c.V(!1)}return this.D(a,b)};l.kc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.I)&&d.V(!1)}this.G?this.Sa(a,0,c):this.w(a,b,c)};var Oc=0,Pc=2,Kc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Ac.prototype.cc,Ac.prototype.lc],Vc=[Ac.prototype.ac,Ac.prototype.kc];
function Yc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.eb=0;this.hb=b;this.fa=c;this.fb=Math.round(this.hb/1E4)/100;this.da=this.fb*this.fa;this.gb=this.Ea=this.ga=this.Xa=0;this.A.N=this.A.cb=!1;this.A.ba=a.autoStart;"string"==typeof this.A.ba&&(this.A.ba="true"==this.A.ba);this.A.Oa=!1;this.Ca=this.ia=0;this.Da=+a.csStart;this.oa=+a.csInterval;this.ja=+a.csStop;this.O=[];this.Ab=this.fc.bind(this);this.T=this.M=this.R=this.S=this.L=this.Aa=this.P=this.ka=this.ib=this.Y=
0;this.Ja=null;Mb(this)}ja(Yc,u);l=Yc.prototype;l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ja=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.na(null,Zc[a],b);Mb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.ba="true"==c?!0:"false"==c?!1:!!c:null==this.A.ba&&(this.A.ba=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.ba,a.Ea=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.ra&&(b=a.ra,a.ra=null,ed(a,b,!0))):this.status("No debugger detected");this.A.ba||this.u("CPU will not be auto-started "+(this.Ja?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ma=function(a){return a?this.save():!0};l.ba=function(){return this.A.N?!0:this.A.ba?(rc(this),!0):!1};l.Db=function(){return 0};function bd(a){void 0===a.Da&&(a.Da=0);void 0===a.oa&&(a.oa=-1);void 0===a.ja&&(a.ja=-1);a.A.Oa=0<=a.Da&&0<a.oa;a.A.Oa&&(a.Ca=0,a.ia=a.Da-a.T)}function vc(a,b){if(a.A.Oa){var c=!1;a.Ca=a.Ca+a.Db()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.oa,c=!0);0<=a.ja&&a.ja<=fd(a)&&(a.oa=a.ja=-1,bd(a),a.V(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+q(a.Ca))}}
l.na=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.X);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Za?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.V():rc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.fa<<1,!0)},c.textContent=this.da.toFixed(2)+"Mhz",!0}return!1};function uc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function hd(a,b){var c=1;b&&1<a.fa&&a.Y&&(c=a.Y/a.fb);a.gb=Math.round(1E3/id);a.Ea=Math.floor(a.hb/id*c);b||(a.ga=a.Ea);a.Xa=0}function fd(a){return a.T+a.M+a.R-a.S}function ad(a){a.Y=0;a.ib=0;a.T=a.M=a.R=a.S=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.da?b=1:d=!0;a.fa=b;b=a.fb*a.fa;if(a.da!=b){a.da=b;b=a.da.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}uc(a,a.M);a.M=0;a.L=ob();a.P=0;hd(a);return d}function kd(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function tc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
l.dc=function(){if(this.A.N){this.Va>=this.eb&&hd(this,!0);this.ka=0;this.Aa=pb();if(this.P){var a=this.Aa-this.P;a>this.cb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=kd(this,this.A.Ma?1:this.Da);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ka+=b;this.M+=b;vc(this,b);tc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Da;++this.fb>=nd&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(pb(),fd(this));Jb(this,
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.yb;this.P=pb();var c=this.cb;this.ka&&(c=Math.round(c*this.ka/this.Da));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.U=0,gd(this)));if(0>c||this.ba<this.ca)-1E3>c&&(this.L-=c),c=0;this.Va+=this.ka;this.P+=c;a(b,c)}}};
function rc(a,b){if(!Kb(a))if(a.A.N)a.u(a.toString()+" busy");else{gd(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.yb,0)}}l.Ra=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){md(this);uc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(pb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Kb=pd.bind(this);this.w=K.bind(this);this.ya=null;this.ob=[];this.A.complete=!1}ma(od,Yc);l=od.prototype;
l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.V();this.Ea=this.Fa=this.b=this.K=0;this.i=this.za=this.Sa;this.I=this.ra=-1;this.F=this.j=0;this.gb=[0,0];this.pa=[0,0];this.ha=[0,0];this.qa=[0,0];this.xa=this.i;this.C=0;this.f=this.$b;this.g=this.kc;this.ya=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};l.Bb=function(){return 0};
l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Ea,this.Fa,this.i,this.ra,this.I,this.j,this.C,this.za,this.xa,this.Sa]);a.set(1,[]);a.set(2,[this.U,this.fa,this.A.aa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
l.restore=function(a){var b;b=a[0];ia();da();ia();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.b=b.next().value;this.K=b.next().value;this.Ea=b.next().value;this.Fa=b.next().value;this.i=b.next().value;this.ra=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Sa=b.next().value;b=a[2];this.U=b[0];gd(this,b[1]);this.A.aa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];
if(e.hc===b[c]){d=e;break a}}d=null}d&&(d.next=this.ya,this.ya=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function rd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function H(a,b){a.i=b%Tb}function qd(a){var b=[];for(a=a.ya;a;)b.push(a.hc),a=a.next;return b}l.$b=function(a){var b=this.G;a=this.xa=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};l.kc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
l.Ra=function(a){this.A.complete=!0;var b=this.D?sd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(td(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&td(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Ea=this.f(this.b):0<=this.ra?(this.K=this.Fa=this.f(this.ra),this.ra=-1):(this.K=
this.Fa=this.f(this.za=this.i),this.i=(this.i+1)%Tb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Ea=this.f(a))&Sb;a=this.K&4194304?-1:this.Fa/Zb|0;0<=a&&this.Kb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Za(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new od(d);ub(d,c)}});function pd(a){ud[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
function vd(){var a=0,b=this.f(this.b),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.g(this.b,b)}function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
function xd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function yd(a,b){this.g(b,this.f(this.b))}function zd(a,b){this.g(b,this.b)}function Ad(a,b){this.g(this.b,this.f(b))}function Bd(a,b){this.g(b,0)}function Cd(a,b){this.g(b,D-this.f(b))}function Dd(a,b){this.g(b,D)}
function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Xd(a,d,c)+(c-(c&y)))}function Yd(a,b){var c=this.f(b);this.g(b,Xd(a,c,0))}function Zd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Xd(a,c,b)+(b-(b&y)))}function $d(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ae(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Xd(a,d,c)+c)}
function be(a,b){var c=this.b*z,d=this.f(b);this.g(b,Xd(a,d,c)+c)}function ce(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Xd(a,c,b)+b)}function de(a,b){var c=this.f(this.b),d=(c&y)*z,c=Xd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}
function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Ub?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/z|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){ne[a&7].call(this,a,a>>3&127)}
function oe(){}function pe(){}function K(a){this.u("undefined opcode: "+m(a));rd(this,-1);this.V()}function qe(a){a>A&&(a!=C?a=Wb-a:this.j|=163840);return a}function O(a,b){var c=(a+b)%E;re.call(this,a,b,c);return c}
function se(a,b,c){var d=!1,e=!1,f=b-b%C;a=a%C+b*C%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=D-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.pa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.qa;c[0]=a;for(c[1]=b;0<te(this.qa,this.ha);)ue(this.ha,this.ha),ue(this.pa,this.pa);do{if(0<=te(this.qa,this.ha)&&(b=this.qa,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),ue(this.gb,this.pa),ve(this.qa)))break;we(this.ha);we(this.pa)}while(!ve(this.pa));
a=this.gb[0];this.F=this.qa[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a}
function xe(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=D-f,a=E-a):f&&(f=E-f));if(c)return(f||a>A)&&(f!=D||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%C;b=2*b%E+Math.trunc(c/C);c=a+c%C;d=b-b%C;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function ye(a){a?a==C?this.j|=163840:a=Wb-a:this.j|=98304;return a}function Q(a,b){var c=a-b;0>c&&(c+=E);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function S(a,b){return R(a,(~(b/F|0)&15)*F+(~b>>>0))}function T(a,b){return(a<C?a:a-E)-(b<C?b:b-C)}
function ze(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function U(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function V(a){return a<C?a:a-E}function W(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function X(a){return(a/z|0)+(a&y)*z}function fe(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Ub?y*z:0}return b}function Xd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=E&&(a[0]%=E,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=E);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]}
var ud=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
l.fc=function(){if(this.A.N){this.Xa>=this.hb&&hd(this,!0);this.ka=0;this.Aa=ob();if(this.P){var a=this.Aa-this.P;a>this.gb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=kd(this,this.A.Oa?1:this.Ea);try{this.Ta(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ka+=b;this.M+=b;vc(this,b);tc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Ea;++this.ib>=nd&&(this.H&&K(this.H,void 0),this.ib=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(ob(),fd(this));zb(this,
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.Ab;this.P=ob();var c=this.gb;this.ka&&(c=Math.round(c*this.ka/this.Ea));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.Y=Math.round(this.M/(10*d))/100,864E5<=d&&(this.T=0,gd(this)));if(0>c||this.Y<this.da)-1E3>c&&(this.L-=c),c=0;this.Xa+=this.ka;this.P+=c;a(b,c)}}};
function rc(a,b){if(!Ab(a))if(a.A.N)a.u(a.toString()+" busy");else{gd(a);a.A.N=!0;a.A.cb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Ab,0)}}l.Ta=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){md(this);uc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(ob(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.yb=b;this.Ua=+a.addrReset||0;this.Lb=pd.bind(this);this.w=M.bind(this);this.ya=null;this.qb=[];this.A.complete=!1}ja(od,Yc);l=od.prototype;
l.reset=function(){this.status("Model "+this.yb);this.A.N&&this.V();this.Fa=this.Ga=this.b=this.K=0;this.i=this.za=this.Ua;this.I=this.ra=-1;this.F=this.j=0;this.jb=[0,0];this.pa=[0,0];this.ha=[0,0];this.qa=[0,0];this.xa=this.i;this.C=0;this.f=this.bc;this.g=this.mc;this.ya=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};l.Db=function(){return 0};
l.save=function(){var a=new I(this);a.set(0,[this.b,this.K,this.Fa,this.Ga,this.i,this.ra,this.I,this.j,this.C,this.za,this.xa,this.Ua]);a.set(1,[]);a.set(2,[this.T,this.fa,this.A.ba]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
l.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.K=b.next().value;this.Fa=b.next().value;this.Ga=b.next().value;this.i=b.next().value;this.ra=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Ua=b.next().value;b=a[2];this.T=b[0];gd(this,b[1]);this.A.ba=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.qb.length;d++){var e=this.qb[d];
if(e.jc===b[c]){d=e;break a}}d=null}d&&(d.next=this.ya,this.ya=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function rd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function J(a,b){a.i=b%Tb}function qd(a){var b=[];for(a=a.ya;a;)b.push(a.jc),a=a.next;return b}l.bc=function(a){var b=this.G;a=this.xa=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};l.mc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
l.Ta=function(a){this.A.complete=!0;var b=this.D?sd(this.D)?1:this.A.cb?-1:0:0,c=a?this.A.cb?0:1:-1;this.A.cb=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(td(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&td(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Fa=this.f(this.b):0<=this.ra?(this.K=this.Ga=this.f(this.ra),this.ra=-1):(this.K=
this.Ga=this.f(this.za=this.i),this.i=(this.i+1)%Tb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Fa=this.f(a))&Sb;a=this.K&4194304?-1:this.Ga/Zb|0;0<=a&&this.Lb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Xa(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new od(d);tb(d,c)}});function pd(a){ud[a>>4].call(this,a,a&15)}function O(a){this.w(a)}
function vd(){var a=0,b=this.f(this.b),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%F);this.g(this.b,b)}function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
function xd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%F;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function yd(a,b){this.g(b,this.f(this.b))}function zd(a,b){this.g(b,this.b)}function Ad(a,b){this.g(this.b,this.f(b))}function Bd(a,b){this.g(b,0)}function Cd(a,b){this.g(b,E-this.f(b))}function Dd(a,b){this.g(b,E)}
function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Fd(a,d,c)+(c-(c&y)))}function Gd(a,b){var c=this.f(b);this.g(b,Fd(a,c,0))}function Hd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+(b-(b&y)))}function Id(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function $d(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Fd(a,d,c)+c)}
function ae(a,b){var c=this.b*z,d=this.f(b);this.g(b,Fd(a,d,c)+c)}function be(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+b)}function ce(a,b){var c=this.f(this.b),d=(c&y)*z,c=Fd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function de(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,ee(a,d,c)+c)}function fe(a,b){var c=this.f(b);this.g(b,ee(a,c,this.b)+this.b)}function ge(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}
function he(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Ub?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,ee(a,d,c)+c)}function je(a,b){var c=this.f(b);this.g(b,ee(a,c,0))}function ke(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}function le(a,b){var c=this.f(this.b),d=c/z|0,c=ee(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){me[a&7].call(this,a,a>>3&127)}
function ne(){}function oe(){}function M(a){this.u("undefined opcode: "+m(a));rd(this,-1);this.V()}function pe(a){a>A&&(a!=D?a=Wb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%F;qe.call(this,a,b,c);return c}
function re(a,b,c){var d=!1,e=!1,f=b-b%D;a=a%D+b*D%F;b=this.F=f+Math.trunc(b/2);c>A&&(c=F-c,d=!d);b>A&&(a?(b=E-b,a=F-a):b&&(b=F-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.jb;f[0]=0;f[1]=0;f=this.pa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.qa;c[0]=a;for(c[1]=b;0<se(this.qa,this.ha);)te(this.ha,this.ha),te(this.pa,this.pa);do{if(0<=se(this.qa,this.ha)&&(b=this.qa,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=F,b[1]--),te(this.jb,this.pa),ue(this.qa)))break;ve(this.ha);ve(this.pa)}while(!ue(this.pa));
a=this.jb[0];this.F=this.qa[0];d&&a&&(a=F-a);e&&this.F&&(this.F=F-this.F);return a}
function we(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=F-d,b=!b);e>A&&(e=F-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=E-f,a=F-a):f&&(f=F-f));if(c)return(f||a>A)&&(f!=E||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%D;b=2*b%F+Math.trunc(c/D);c=a+c%D;d=b-b%D;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function xe(a){a?a==D?this.j|=163840:a=Wb-a:this.j|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=F);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/G|0)&(b/G|0))*G+((a&b)>>>0)}function U(a,b){return T(a,(~(b/G|0)&15)*G+(~b>>>0))}function ye(a,b){return(a<D?a:a-F)-(b<D?b:b-D)}
function ze(a,b){return(~((a/G|0)^(b/G|0))&15)*G+(~(a^b)>>>0)}function V(a,b){return(a/G|0|b/G|0)*G+((a|b)>>>0)}function W(a){return a<D?a:a-F}function X(a,b){return((a/G|0)^(b/G|0))*G+((a^b)>>>0)}function Y(a){return(a/z|0)+(a&y)*z}function ee(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Ub?y*z:0}return b}function Fd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
function te(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=F&&(a[0]%=F,a[1]++)}function se(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ve(a){a[1]%2&&(a[0]+=F);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ue(a){return!a[0]&&!a[1]}
var ud=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},yd,zd,Ad,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+(a&y)*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ye.call(this,this.f(this.b)))},function(a,b){this.g(b,ye.call(this,this.b))},function(a,b){this.g(this.b,
ye.call(this,this.f(b)))},function(a,b){a=ye.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,qe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,qe.call(this,this.f(b)))},function(a,b){a=qe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,xe.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b),
!0))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,xe.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+
1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))},
function(a,b){a=this.f(b);b=this.f(b+1&15);b=se.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(E-a):a;0<c?(35<=c?(d=0>d?C:0,c=A):(d=d*Math.pow(2,c)%C,c=C-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d;
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=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<C;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<C||d>A&&
d<D)this.j|=131072;if(71<=a){if(0<e&&e<C||e>A&&e<D)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%C,c=C-Math.pow(2,70-a),f<=A?e+c>A&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=C,e+=C)}else d=d*Math.pow(2,a)%C+Math.trunc(e%C/Math.pow(2,35-a)),e=e*Math.pow(2,a)%C,c=C-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=C,e+=C)}else-36>=a?(e=-72>=a?d>A?D:0:Math.trunc(d%C/Math.pow(2,-a-35)),d<=A?d=0:(d=D,e+=C)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%C/Math.pow(2,-a))+
d%C*Math.pow(2,35+a)%C,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=C));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%E,d=0):(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},K,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d*
z+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a<C&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a>=C&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Ea,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.ra=this.b},K,function(a){this.w(a)},function(a,b){a=
this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=E);(a/z|0)==y&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&y)*z+this.i);H(this,this.b+1)},function(a,b){this.g(b,(this.j&y)*z+this.i);H(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,
b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>T(this.f(b),this.b)&&H(this,
this.i+1)},function(a,b){T(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.b)&&H(this,this.i+1)},pe,function(a,b){0>T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},
function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.f(this.b))&&H(this,this.i+1)},oe,function(a,b){0>V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))||H(this,this.b)},function(a,b){0>=V(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))&&H(this,this.b)},function(a,b){0<V(this.f(b))&&
H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);
0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,O.call(this,this.f(b),1))},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),
1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,
O.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>V(a)&&H(this,this.b)},function(a,
b){a=this.g(b,Q.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));b&&this.g(b,a)},
function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},
function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},Bd,Bd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},
function(a,b){this.g(b,R(D-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(D-this.f(b),this.b))},function(a,b){this.g(this.b,R(D-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(D-this.f(b),this.f(this.b))))},yd,zd,pe,yd,function(a,b){this.g(b,R(this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),D-this.b))},function(a,b){this.g(this.b,R(this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),D-this.f(this.b))))},oe,oe,Ad,Ad,function(a,b){this.g(b,
W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(this.b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,W(this.f(b),this.f(this.b))))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(this.b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,
R(D-this.f(b),D-this.b))},function(a,b){this.g(this.b,R(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(D-this.f(b),D-this.f(this.b))))},function(a,b){this.g(b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze(this.f(b),this.b))},function(a,b){this.g(this.b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze(this.f(b),this.f(this.b))))},Cd,Cd,function(a,b){this.g(this.b,D-this.f(b))},function(a,b){this.g(this.b,this.g(b,D-this.f(b)))},function(a,b){this.g(b,
U(D-this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(D-this.f(b),this.b))},function(a,b){this.g(this.b,U(D-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(D-this.f(b),this.f(this.b))))},function(a,b){this.g(b,D-this.f(this.b))},function(a,b){this.g(b,D-this.b)},function(){this.g(this.b,D-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,D-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),D-this.b))},function(a,b){this.g(this.b,
U(this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),D-this.f(this.b))))},function(a,b){this.g(b,U(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,U(D-this.f(b),D-this.b))},function(a,b){this.g(this.b,U(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(D-this.f(b),D-this.f(this.b))))},Dd,Dd,function(){this.g(this.b,D)},function(a,b){this.g(this.b,this.g(b,D))},Ed,Yd,Zd,$d,ae,be,ce,de,Ed,Yd,Zd,$d,ae,be,ce,de,Ed,Yd,Zd,$d,ae,be,ce,de,Ed,Yd,Zd,$d,
ae,be,ce,de,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,oe,oe,function(a,b){R(this.f(b),this.b)||H(this,this.i+1)},function(a,b){R(this.f(b),this.b*z)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){R(this.f(b),this.b*z)&&H(this,this.i+1)},pe,pe,function(a,b){R(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))||
H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),
this.b))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,
this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);
this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),X(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,W(a,
c))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*z)||H(this,this.i+1);this.g(b,U(a,this.b*z))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*
z;R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);
var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],ne=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},
function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
function Ae(a){u.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=ya(this.w);if(this.w){a=this.w;var b=za(this.F);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(nb(c.Ua,a,b),(a=Na(a,b))?(c.b=a.Z,c.W=a.W):c.w=null);Be(c)})}}ma(Ae,u);
Ae.prototype.Ga=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Be(this)};Ae.prototype.wa=function(){this.W&&(this.D&&Ce(this.D,this.id,this.C,this.j,this.W),delete this.W);return!0};Ae.prototype.ma=function(){return!0};
function Be(a){if(!Lb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)Jb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.j,8,!0)+")");else{var b;b=a.C;if(Hc(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)xc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Mb(a)}}Za(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ae(d);ub(d,c)}});
function De(a){u.call(this,"RAM",a);this.W=this.Ja=null;this.i=+a.addr;this.j=+a.size;this.ua=a.load;this.ta=a.exec;null!=this.ua&&(this.ua=+this.ua);null!=this.ta&&(this.ta=+this.ta);this.w=this.F=!1;this.b=a.file;this.C=ya(this.b);if(this.b){a=this.b;var b=za(this.C);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(nb(c.Ua,a,b),(a=Na(a,b))?(c.Ja=a.Ja,
c.W=a.W,null==c.ua&&(c.ua=a.ua),null==c.ta&&(c.ta=a.ta)):c.b=null);Ee(c)})}}ma(De,u);De.prototype.Ga=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ee(this)};De.prototype.wa=function(a,b){this.W&&(this.D&&Ce(this.D,this.id,this.i,this.j,this.W),delete this.W);b||this.reset();return!0};De.prototype.ma=function(){return!0};
function Ee(a){if(a.G&&(!a.w&&a.j&&(Hc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Lb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ja)return;Fe(a,a.Ja,a.ua,a.ta,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
De.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-C&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ja&&Fe(this,this.Ja,this.ua,this.ta,this.i,!this.D)}this.F=!1};
function Fe(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)xc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.X?a.A.N||rc(a):a.A.aa=!0:a.D&&a.A.X?a.V()||a.H.A.reset||(cd(a.D),I(a.H,-1)):!1===f&&a.V(),!a.A.N&&a.Ia&&a.Ia.stop()));return g}Za(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new De(d);ub(d,c)}});
function Ge(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=He;b&&(void 0===c&&(c="Panel"),(c=tb(c,this.id))&&(b=c.J[b])&&this.na(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.bc,setConnection:this.ec}}ma(Ge,u);l=Ge.prototype;
l.na=function(a,b,c){var d=this;switch(b){case He:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ta.qb:ta.Hb:46==c?b=ta.qb:a.ctrlKey&&c>=ta.pb&&c<=ta.Ib&&(b=c-(ta.pb-ta.Eb));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.Gb&&(b=ta.Fb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
l.Cb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ga(c[0]);if(d!=this.Ta)return;c=Ga(c[1]);if(this.b=sb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Cb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.bc=function(){};l.ec=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var He="buffer";
Za(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ge(d);ub(d,c)}});function Ie(a){u.call(this,"Debugger",a);this.T=+a.base||16;this.ia=32;this.ka=null;this.ba=["{","}"];this.pa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.j=[];this.K={}}ma(Ie,u);Ie.prototype.kb=function(){return-1};Ie.prototype.lb=function(){};
function Je(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ga(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.ia)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)^(c/Le|0))*Le+((b^c)>>>0)}
function Y(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b}
function Me(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<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=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":e=a;32>=e.ia?f&=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=((f/Le|0)&(g/Le|0))*Le+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=(f/Le|0|g/Le|0)*Le+((f|g)>>>0));break;case "^!":f=Ke(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Y(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(Y(a,f))}return!0}
function Ne(a,b,c,d,e,f){var g,h,k,n=!1,p=0,t=[],B=[],P=a.T;for(a.T=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Oe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Ne(a,b,p,c-1,a.T,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){p=1;continue}if("-"==k){p=-1;continue}n=!0;break}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{n=!0;f=!f;break}t.push(Y(a,p));if(!k)break;B.length&&Pe[k]<Pe[B[B.length-1]]&&Me(a,t,B,
1);B.push(k);a.T="^_"==k?10:e;p=0}Me(a,t,B)&&1==t.length||(n=!0);n?!1===f&&a.u("parse error ("+(h||k)+")"):g=t.pop();a.T=P;return g}function Qe(a,b,c){var d;a.ka=null;b&&("{"!=a.ba[0]&&(b=b.split(a.ba[0]).join("{").split(a.ba[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Ne(a,b,0,b.length,a.T,c),void 0!==d&&!1===c&&Re(a,null,d));return d}
function Oe(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.kb(b),0<=f?f=a.lb(f):(f=a.K[b],null==f&&(0>e&&(b="-"+b,e=0),f=ua(b,a.T))),null!=f?0>e?f=-f:0<e&&(f=Ke(a,f,-1)):d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return f}
function Re(a,b,c){var d,e=!1;if(void 0!==c){e=!0;if(8==a.T)d=c+". "+m(c,0,!0);else{d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=wa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Se(a){var b=a.K;a.K={};return b}function Te(a,b){if(b)return Re(a,b,a.K[b]);var c=0;for(b in a.K)Re(a,b,a.K[b]),c++;return 0<c}
function J(a,b,c){c=void 0===c?0:c;switch(a.T){case 2:a=wa(b,0<c?c:0);break;case 8:a=m(b,0<c?(c+2)/3|0:0);break;case 10:a=xa(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Pe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Le=Math.pow(2,32);
function Ue(a){Ie.call(this,a);this.Da=!1;this.Ba=18;this.ia=36;this.ba=["<",">"];this.pa=[];this.Ca=Z();this.L=Z(0);this.oa=Z(0);this.fa=Z(0);this.F=[];this.b=this.M=this.I=[];Ve(this);this.S=this.ja=0;this.i=[];this.za=void 0;We(this);this.D=this;this.xa={};this.Y=this.xb=0;this.U=null;this.P=[];Xe(this,a.messages);this.ra=a.commands;this.O=0;this.Ia=this.Aa=null;this.C=this.Fa=this.Ea=this.ha=this.ya=0;this.qa=this.ga=this.ca=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return ed(b,
a)}):void 0===global[w]&&(global[w]=function(a){return ed(b,a)})}ma(Ue,Ie);function Ye(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,la:!1,T:c}}function Ze(a,b,c,d){a.B=b;a.Wa=c||!1;a.la=!1;a.T=d}function $e(a){return[a.B,a.Wa,a.la,a.T,a.Za]}function af(a,b){var c=Z(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.sb=Je(a,c.Za=b[4]));return c}l=Ue.prototype;
l.Ga=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ba=b.F;(b=$c(a,"messages"))&&Xe(this,b);if(a=$c(a,"commands"))this.ra=a;bf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ye(cf(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.u("..."):(c=p.type,n=Kc[c],p&&d.u(q(p.id,8)+" %"+
q(e<<d.G.i,8)+" %"+q(p.B,8)+" "+q(p.Pa,4,!0)+" "+q(p.size,4,!0)+" "+n),c!=Oc&&(c=-1),n=0);a+=16384;e++}}});Mb(this)};
l.na=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Xa(c,function(){if(d.ca){var a=d.ca.value;
d.ca.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Xa(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}l.Ha=function(a,b){var c=-1,d=Ye(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Ye(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
function cf(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.ba[0],h=a.ba[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 n=Qe(a,g[1]);if(void 0===n){b=void 0;break a}b=b.replace(f+g[1]+h,null!=n?J(a,n):"undefined")}if(a.pa.length)for(f=a.pa[0],h=a.pa[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,t;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].W[f],null!=g){t=g.o;break}null!=t&&(p=Z(t));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Qe(a,b)}null!=f&&(f=df(f,a.Ba),Ze(c,f,d,e));return c}function ef(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sb=Je(a,b.Za=c[2]))}
function df(a,b){0>a&&a>=-C&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function ff(a){return m(a/Tb,6)+" "+m(a%Tb,6)}
function Xe(a,b){a.D=a;a.Y=a.xb=536870916;a.U=null;a.P=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.Y|=ac[c],a.u(c+" messages enabled"))}}function bf(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}l.kb=function(a){return gf.indexOf(a.toUpperCase())};
l.lb=function(a){var b,c=this.v;switch(a){case hf:b=c.i;break;case jf:b=c.K;break;case kf:b=c.b;break;case lf:b=c.j&65536?1:0;break;case mf:b=c.j&32768?1:0;break;case nf:b=c.j&131072?1:0;break;case of:b=c.j&32?1:0;break;case pf:b=c.j&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+J(this,Z(this.v.za).B));if(!this.U||a!=this.U)if(this.U=a,this.Y&1073741824)this.P.push(a);else{var c;if(this.Y&-2147483648&&this.v&&(c=this.v.A.N)||Nb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.ga=0,a.H&&I(a.H,void 0))}};
function We(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(qf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.S=0;a.u("instruction history buffer allocated")}}function rf(a,b,c){if(!sf(a,c))return!1;rc(a.v,b);return!0}
function sc(a,b,c,d){if(!sf(a))return!1;var e="";null===c&&(e=(c=!a.Aa||"tr"==a.Aa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.Ra(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,Jb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),I(a.H,-1));cd(a,c||!1,e);return 0<a.C}l.V=function(a){this.v&&this.v.V(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Da&&(c&&a.u(tf+c),Ze(a.L,a.v.i),b&&1!=a.O?uf(a):vf(a))}
function sf(a,b){var c;(c=!a.v||!Lb(a.v))||(c=a.v,c.A.X?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Kb(a.v)}l.wa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ma=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){We(this);this.ha=0;this.U=null;this.C=0;Ze(this.L,this.v.i);this.A.N=!1;wf(this);a||cd(this)};
l.save=function(){var a=new G(this);a.set(0,$e(this.L));a.set(1,$e(this.oa));a.set(2,$e(this.fa));a.set(3,[this.j,this.R,this.Y]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=af(this,a[b++]),this.oa=af(this,a[b++]),this.fa=af(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.Y|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.u("running");this.A.N=!0;this.Ea=a;this.Fa=b};
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Fa;if(!this.O){b="stopped";if(this.C){a-=this.Ea;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";sd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);wf(this,this.v.i);this.U=null}};function sd(a){return 1<a.b.length||!!a.ja}
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.za==b&&(b=rd(a.v,1)));if(0<c&&(a.ja&&!--a.ja||Xc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&(Ze(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function xf(a,b,c,d){var e=Z(b.B),f=a.Ha(b,1),g,h,k,n=0,p=f/Xb|0,t;for(t in yf)if(g=yf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=zf;n=p&3;break;case 32256:k=Af;n=p&7;break;case 29248:k=Bf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>Cf&&(k="B");k=Df[g||0]+k;if(g){if(28700==h)h=f/Yb&127,n=J(a,h,-1);else for(h=f>>23&15,n=J(a,h,-1),p=0;n&&p<Ef.length;p++)if(g==Ef[p][0]&&(t=Ef[p][h])){k=Df[t];n="";break}k=Fa(k,8)+(n?n+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,
-1)+")")}else k=Fa(k,8)+ff(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ha(e,1),g+=" "+ff(k),null==e.B)break;while(e.B!=b.B)}h+=Fa(g,16)+f;c&&(h=Fa(h,48)+";"+(c||""),h=a.v.A.Ma?h+("cycles="+fd(a.v).toString()+" cs="+q(a.v.Ba)):h+(null!=d?"="+d.toString():""));return h}
function Ff(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),n=0;n<Ef.length;n++)for(var p in Ef[n])if(+p&&(h=Ef[n][p],k==Df[h])){k=Df[Ef[n][0]];c&&(c=J(a,+p)+","+c);break}for(var t in yf){g=+t;p=yf[t];switch(g){case 32512:n=zf;break;case 32256:n=Af;break;case 29248:n=Bf;break;default:n=[""]}for(var B in p){h=p[B];for(var P=0;P<n.length;P++){var ea=n[P];"S"==ea&&h>Cf&&(ea="B");if(k==Df[h]+ea){f=29248!=g?P:(P&3)<<1|(P&12)<<2;f=(B|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}}else c&&
(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}B=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!B){a.u("unknown operand: "+h);f=-1;break}h=B[2];if(t||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+J(a,d)):"0";h=Qe(a,h,e);if(void 0==h){f=-1;break}if(!t&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(0>h||262143<h)h&=Sb;f+=h;if(h=B[3]){h=Qe(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=
15;f+=h<<18}B[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ve(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Ye(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Ye(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.I=["bw"];a.ya=0;a.ja=0}
l.Ka=function(a,b,c){var d=!0;c||gg(this,a,b,!1,!0);if(a!=this.b){var e=Ye(b);if(-1===e)this.u("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ka(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(ig(this,a,a.length-1,"set"),We(this)));return d};function gg(a,b,c,d,e){var f=!1;c=Ye(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Ye(h)&&(!d||h.la)){f=!0;h.la||e||ig(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.I));h.la||We(a);break}}return f}
function jg(a,b){for(var c=1;c<b.length;c++)ig(a,b,c);return b.length-1}function ig(a,b,c,d){c=b[c];a.u(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function wf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.la){if(!gg(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.la)for(var k=Ye(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.la&&(gg(a,d,h,!0),e=!0);if(p=h.sb){for(var f=!1,t=0;t<p.length;t++)if(!kg(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var B=t+1;B<p.length&&p[B].indexOf("else");B++)t++;if(B==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||ig(a,d,g,"hit");break}}}a.ya--;return f}
function lg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);Ze(e.Ca,d);f+="="+J(e,e.Ha(e.Ca),36)+" ";c+=f}if(b){b="";for(d=0;d<gf.length;d++)(e=gf[d]||"")&&(e+="="+J(a,a.lb(d),d>=lf?1:d==jf?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ce(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Ha(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({rd:b,B:c,Pb:d,W:e,tb:f})}function mg(a,b,c){var d=[],e=Ye(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Pb;if(e>=g&&e<g+h){e=Ha(f.tb,[e-g],a.zb);0<=e?ng(a,b,e,d):c&&(e=~e,ng(a,b,e-1,d),ng(a,b,e,d));break}}return d}
function og(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){xc(e,b,a);null==c&&(c=b);d++});d?(a.u(d+" words loaded at "+J(a,c)+"-"+J(a,c+d-1)),H(a.v,c||0),cd(a)):a.u("no data")}function ng(a,b,c,d){var e={},f=a.F[b].tb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].W[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function pg(a,b){var c=cf(a,b[1],a.fa);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.qa)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.qa=new qg(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{og(a,a.qa.H,h)}catch(p){a.u(p.message)}a.qa=null})}else b.shift(),b.shift(),b.shift(),b=Ff(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.u(xf(a,c)))}}}
function rg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Te(a)||a.u("no variables"),!0;if(!c[2])return Te(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Qe(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function sg(a,b,c){var d=null;if(b=cf(a,b)){var e=mg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function uf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Qe(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case hf:H(h,
g);Ze(a.L,h.i);break;case lf:f=65536;break;case mf:f=32768;break;case nf:f=131072;break;case of:f=32;break;case pf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);I(a.H);a.u("updated registers:")}}a.u(lg(a,e));c&&(Ze(a.L,d.i),vf(a,J(a,a.L.B)))}}function tg(a,b){b=Ga(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Re(a,null,c[2].charCodeAt(0)):Qe(a,b,!1)}
function ug(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Oe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Aa=b;Wa(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.ga&&a.ga.stop();I(a.H,-1);Ob(a,!1)})}}
function vf(a,b,c,d){if(b=cf(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Oe(a,c.substr(1)),null!=c&&(d=c);else{d=cf(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=mg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.u(n)}h[3]&&(g=h[3],f=null);h=a.fa;n=b;h.B=n.B;h.Wa=n.Wa;h.la=n.la;h.T=n.T;a.u(xf(a,b,g,f));e-=b.B-k;c++}}}
function kg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(tf+b):(a.R&&(a.u("ended assemble at "+J(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Lb(a)&&0<b.length){a.R&&(b="a "+J(a,a.fa.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),n=1;n<h.length;n++){var p=h.charAt(n);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(n);g.unshift(h.substr(0,n));break}}switch(g[0].charAt(0)){case "a":pg(a,g);
break;case "b":a:{var t=g[0],B=g[1],P=b;if("?"==B)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var ea=t.charAt(1);if("l"==ea){var Fd;Fd=0+jg(a,a.b);Fd+=jg(a,a.M);(Fd+=jg(a,a.I))||a.u("no breakpoints")}else if("n"==ea){var Gf=+B||0;B&&(a.ja=Gf);a.u("break after "+Gf+" instruction(s)")}else if(void 0===
B)a.u("missing breakpoint address");else{var aa=Z();if("*"!=B&&(aa=cf(a,B,a.L),!aa))break a;"c"==ea?null==aa.B?(Ve(a),a.u("all breakpoints cleared")):gg(a,a.b,aa)||gg(a,a.M,aa)||gg(a,a.I,aa)||a.u("breakpoint missing: "+J(a,aa.B)):null!=aa.B&&(ef(a,aa,P),"p"==ea?a.Ka(a.b,aa):"r"==ea?a.Ka(a.M,aa):"w"==ea?a.Ka(a.I,aa):a.u("unknown breakpoint command: "+ea))}}}break;case "c":a.va&&(a.va.value="");break;case "d":a:{var bb,cb=g[0],oa=g[1],Ca=g[2],ph=g[3];if("?"==oa){var db="";for(bb in ac)a.xa[bb]&&(db&&
(db+=","),db+=bb);db+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");db.length&&a.u("dump extension commands:\n\t"+db)}else if("state"==oa){var Gd=vg(a.H,!0);"console"==Ca?console.log(Gd):(a.va&&(a.va.value=""),Gd&&a.u(Gd))}else if("symbols"==oa)for(var Hd=0;Hd<a.F.length;Hd++){var Id=a.F[Hd],eb;for(eb in Id.W)if("."!=eb.charAt(0)){var Hf=
Id.W[eb].o;if(void 0!==Hf){var If=Id.W[eb].l;If&&(eb=If);a.u(J(a,Hf)+" "+eb)}}}else{if("d"==cb){for(bb in ac)if(g[1]==bb){var Jf=a.xa[bb];Jf?(g.shift(),g.shift(),Jf(g)):a.u("no dump registered for "+oa);break a}oa||(cb=a.Ia||"dw")}else a.Ia=cb;if("dh"==cb){var Kf=oa,Lf=Ca,Mf="",Nf=0,ka=a.S,pa=a.i;if(pa.length){var fa=+Kf||a.za,Ab=+Lf||10;isNaN(fa)?fa=Ab:Mf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length);
var Jd=[];"call"==Lf&&(Ab=1E5,Jd=["CALL"]);for(void 0!==Kf&&a.u(fa+" instructions earlier:");0<Ab&&ka!=a.S;){var Of=pa[ka++];if(null==Of.B)break;var Bb=Z(Of.B),qh=fa--,Pf=xf(a,Bb,"history",qh);(!Jd.length||0<=Pf.indexOf(Jd[0]))&&a.u(Pf);Bb.ib&&(ka+=Bb.ib,Ab-=Bb.ib,fa-=Bb.ib);ka>=pa.length&&(ka=0);a.za=fa;Nf++;Ab--}}Nf||(a.u("no "+Mf+"history available"),a.za=void 0)}else{var fb=cf(a,oa,a.oa);if(fb){var Ka=0,Qf="ds"==cb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||ph,Ka=Oe(a,Ca);else{var Rf=cf(a,Ca);
Rf&&(Ka=Rf.B-fb.B)}0>Ka&&(Ka=0);65536<Ka&&(Ka=65536)}var rh=a.T;fb.T&&(a.T=fb.T);for(var Sf="db"==cb?1:2,Kd=Ka||32,Ld=1==Sf?1:4,sh=(Kd+Ld-1)/Ld|0||1,La="";sh--&&0<Kd;){for(var qa="",Md="",oa=J(a,fb.B),Tf=Ld;0<Tf--&&0<Kd--;){var Nd=a.Ha(fb,1);Qf?(qa&&(qa+=","),qa+=Nd):(qa+=ff(Nd),qa+=" ");for(var Ac=29,th=0;1==Sf&&0<=Ac;th++)var Cb=Nd/Math.pow(2,Ac)%Math.pow(2,7),qa=qa+J(a,Cb,7),Cb=Cb+0,Md=Md+(32>Cb?".":String.fromCharCode(Cb)),Ac=Ac-7}La&&(La+="\n");La=Qf?La+(qa+","):La+(oa+": "+qa+(0>Tf?" "+Md:
""))}La&&a.u(La);a.T=rh}}}}break;case "e":if("else"==g[0])break;var Uf,Vf,Wf=g[0],Od=g[1];"e"==Wf||"ew"==Wf?(Uf=a.Ha,Vf=a.rb):Od=null;if(null==Od)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Bc=cf(a,Od,a.oa);if(Bc)for(var Pd=2;Pd<g.length;Pd++){var Db=Qe(a,g[Pd]);if(void 0===Db)break;Db=df(Db);a.u("changing "+J(a,Bc.B)+" from "+ff(Uf.call(a,Bc))+" to "+ff(Db));Vf.call(a,Bc,Db,1)}}break;case "g":a:{var Xf=g[1],uh=b;if(void 0!==Xf){var Qd=cf(a,Xf);if(!Qd)break a;
ef(a,Qd,uh);a.Ka(a.b,Qd,!0)}rf(a,!0,c)}break;case "h":a.A.N?(c||a.u("halting"),a.V()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Rd;var Eb=b.substr(2),Eb=Ga(Eb);Qe(a,Eb)?(c||a.u("true: "+Eb),Rd=!0):(c||a.u("false: "+Eb),Rd=!1);Rd||(d=!1);break}f=!0;break;case "k":var vh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Sd=0,Td=Z(),Fb=Z();for(a.u("stack trace for "+J(a,Fb.B));10>Sd;){for(var Ma=null,
wh=256;65536>Fb.B>>>0;){Td.B=a.Ha(Fb,2);if(null==Fb.B||!wh--)break;if(!(Td.B&1)){for(var xh=a,Cc=Td,Yf=null,Gb=Cc.B,Zf=Gb,Ud=1;6>=Ud&&Gb;Ud++){if(2<Ud){Cc.B=Gb;var Dc=xf(xh,Cc);if(0<=Dc.indexOf("JSR")){var $f=Dc.indexOf(" ");if(Gb+(Dc.indexOf(" ",$f+1)-$f-1)/2==Zf){Yf=Dc;break}}}Gb-=2}Cc.B=Zf;if(Ma=Yf)break}}if(!Ma||null==Ma)break;var ag=null;if("ks"==vh){var bg=Ma.match(/[0-9A-F]+$/);bg&&(ag=sg(a,bg[0]))}Ma=Fa(Ma,50)+" ;"+(ag||"stack="+J(a,Fb.B));a.u(Ma);Sd++}Sd||a.u("no return addresses found")}break;
case "l":if("ln"==g[0]){sg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,sa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var Da=0;if("all"==L)Da=1879046143,L=null;else if("on"==L)sa=!0,L=null;else if("off"==L)sa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(ra in ac)if(L==ra){Da=ac[ra];sa=!!(a.Y&Da);break}if(!Da){a.u("unknown message category: "+L);break a}}if(Da)if("on"==g[2])a.Y|=Da,sa=!0;else if("off"==g[2]&&(a.Y&=~Da,sa=!1,1073741824==Da)){for(var cg=1E3<=a.P.length?a.P.length-
1E3:0;cg<a.P.length;)a.u(a.P[cg++]);a.P=[]}}var yh=0,Hb="";for(ra in ac)if(!L||L==ra){var zh=!!(a.Y&ac[ra]);if(null===sa||sa==zh)Hb&&(Hb+=","),++yh%10||(Hb+="\n\t"),"key"==ra&&(ra="keys"),Hb+=ra}void 0===L&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Hb||"none"));We(a)}break;case "p":if("print"==g[0]){tg(a,b.substr(5));break}var dg=g[0],eg="p"==dg?0:"pr"==dg?1:-1;if("?"==g[1]||0>eg)a.u("step commands:"),
a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var fg=Z(a.v.i);a.Ha(fg);a.O?(a.Ka(a.b,fg,!0),rf(a)||(a.H&&jd(a.H),a.O=0)):ug(a,eg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}uf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var gb=+g[2];if(2==gb||8==gb||10==gb||16==gb)a.T=gb;else{a.u("invalid base: "+gb);break}}a.u("default base: "+a.T);break;case "cs":var Ib;void 0!==g[3]&&(Ib=+g[3]);switch(g[2]){case "int":a.v.oa=
Ib;break;case "start":a.v.Ca=Ib;break;case "stop":a.v.ja=Ib;break;default:a.u("unknown cs option");break a}void 0!==Ib&&bd(a.v);a.u("checksums "+(a.v.A.Ma?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ca.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":ug(a,g[0],g[1]);break;case "u":vf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){rg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){tg(a,b.substr(1));break}var Vd="commands:",Wd;for(Wd in wg)Vd+="\n"+
Fa(Wd,9)+wg[Wd];sd(a)||(Vd+="\nnote: history disabled if no exec breakpoints");a.u(Vd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(hg){a.u("Debugger "+(hg.stack||hg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!kg(a,b[+d]))return!1;return!0}
var wg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Cf=20,Df=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
hf=0,jf=1,kf=2,lf=3,mf=4,nf=5,of=6,pf=7,gf="PC RA EA C0 C1 OV ND PD".split(" "),xg={},yf=(xg[28672]={0:101},xg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},xg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Cf,9216:53,9472:52,
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},yd,zd,Ad,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+(a&y)*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(this.b)))},function(a,b){this.g(b,xe.call(this,this.b))},function(a,b){this.g(this.b,
xe.call(this,this.f(b)))},function(a,b){a=xe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,pe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,pe.call(this,this.f(b)))},function(a,b){a=pe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,we.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,we.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,we.call(this,this.f(b),this.f(this.b),
!0))},function(a,b){this.g(this.b,this.g(b,we.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,we.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,we.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,we.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,we.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+
1&15,this.F))},function(a,b){a=re.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))},
function(a,b){a=this.f(b);b=this.f(b+1&15);b=re.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(F-a):a;0<c?(35<=c?(d=0>d?D:0,c=A):(d=d*Math.pow(2,c)%D,c=D-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+F:d;
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%F+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%F:-36>=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<D;)a++,c*=2;J(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<D||d>A&&
d<E)this.j|=131072;if(71<=a){if(0<e&&e<D||e>A&&e<E)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%D,c=D-Math.pow(2,70-a),f<=A?e+c>A&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=D,e+=D)}else d=d*Math.pow(2,a)%D+Math.trunc(e%D/Math.pow(2,35-a)),e=e*Math.pow(2,a)%D,c=D-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=D,e+=D)}else-36>=a?(e=-72>=a?d>A?E:0:Math.trunc(d%D/Math.pow(2,-a-35)),d<=A?d=0:(d=E,e+=D)):(c=d>A?F-Math.pow(2,36+a):0,e=Math.trunc(e%D/Math.pow(2,-a))+
d%D*Math.pow(2,35+a)%D,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=D));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%F+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%F+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%F,d=0):(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%F,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},M,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d*
z+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%E;this.g(b,a);a<D&&J(this,this.b)},function(a,b){a=(this.f(b)+262145)%E;this.g(b,a);a>=D&&J(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Fa,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);J(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,J(this,this.b))},function(){this.ra=this.b},M,function(a){this.w(a)},function(a,b){a=
this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=F&&(a-=F);a/z|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=F);(a/z|0)==y&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&y)*z+this.i);J(this,this.b+1)},function(a,b){this.g(b,(this.j&y)*z+this.i);J(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,
b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,S.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,S.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,S.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,S.call(this,this.f(b),this.f(this.b))))},ne,function(a,b){0>ye(this.f(b),this.b)&&J(this,
this.i+1)},function(a,b){ye(this.f(b),this.b)||J(this,this.i+1)},function(a,b){0>=ye(this.f(b),this.b)&&J(this,this.i+1)},function(){J(this,this.i+1)},function(a,b){0<=ye(this.f(b),this.b)&&J(this,this.i+1)},function(a,b){ye(this.f(b),this.b)&&J(this,this.i+1)},function(a,b){0<ye(this.f(b),this.b)&&J(this,this.i+1)},oe,function(a,b){0>ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){ye(this.f(b),this.f(this.b))||J(this,this.i+1)},function(a,b){0>=ye(this.f(b),this.f(this.b))&&J(this,
this.i+1)},function(){J(this,this.i+1)},function(a,b){0<=ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){0<ye(this.f(b),this.f(this.b))&&J(this,this.i+1)},ne,function(a,b){0>W(this.f(b))&&J(this,this.b)},function(a,b){W(this.f(b))||J(this,this.b)},function(a,b){0>=W(this.f(b))&&J(this,this.b)},function(){J(this,this.b)},function(a,b){0<=W(this.f(b))&&J(this,this.b)},function(a,b){W(this.f(b))&&J(this,this.b)},function(a,b){0<
W(this.f(b))&&J(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);W(a)||J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){J(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,
b){a=this.f(this.b);0<W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>W(a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));W(a)||J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=W(a)&&J(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=W(a)&&J(this,this.b)},function(a,b){a=this.g(b,
Q.call(this,this.f(b),1));W(a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<W(a)&&J(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));W(a)||J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=W(a)&&J(this,this.i+1);b&&this.g(b,
a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,S.call(this,this.f(b),1))},function(a,b){a=this.g(b,S.call(this,this.f(b),1));
0>W(a)&&J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));W(a)||J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));0>=W(a)&&J(this,this.b)},function(a,b){this.g(b,S.call(this,this.f(b),1));J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));0<=W(a)&&J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));W(a)&&J(this,this.b)},function(a,b){a=this.g(b,S.call(this,this.f(b),1));0<W(a)&&J(this,this.b)},function(a,b){a=this.g(this.b,S.call(this,
this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0>W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));W(a)||J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0>=W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0<=W(a)&&
J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));W(a)&&J(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,S.call(this,this.f(this.b),1));0<W(a)&&J(this,this.i+1);b&&this.g(b,a)},Bd,Bd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(this.b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,
T(this.f(b),this.f(this.b))))},function(a,b){this.g(b,T(E-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(E-this.f(b),this.b))},function(a,b){this.g(this.b,T(E-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(E-this.f(b),this.f(this.b))))},yd,zd,oe,yd,function(a,b){this.g(b,T(this.f(b),E-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),E-this.b))},function(a,b){this.g(this.b,T(this.f(b),E-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),E-this.f(this.b))))},
ne,ne,Ad,Ad,function(a,b){this.g(b,X(this.f(b),this.f(this.b)))},function(a,b){this.g(b,X(this.f(b),this.b))},function(a,b){this.g(this.b,X(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,X(this.f(b),this.f(this.b))))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(this.b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(this.f(b),this.f(this.b))))},function(a,b){this.g(b,T(E-this.f(b),E-this.f(this.b)))},
function(a,b){this.g(b,T(E-this.f(b),E-this.b))},function(a,b){this.g(this.b,T(E-this.f(b),E-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(E-this.f(b),E-this.f(this.b))))},function(a,b){this.g(b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze(this.f(b),this.b))},function(a,b){this.g(this.b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze(this.f(b),this.f(this.b))))},Cd,Cd,function(a,b){this.g(this.b,E-this.f(b))},function(a,b){this.g(this.b,this.g(b,E-this.f(b)))},
function(a,b){this.g(b,V(E-this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(E-this.f(b),this.b))},function(a,b){this.g(this.b,V(E-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(E-this.f(b),this.f(this.b))))},function(a,b){this.g(b,E-this.f(this.b))},function(a,b){this.g(b,E-this.b)},function(){this.g(this.b,E-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,E-this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),E-this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),E-
this.b))},function(a,b){this.g(this.b,V(this.f(b),E-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(this.f(b),E-this.f(this.b))))},function(a,b){this.g(b,V(E-this.f(b),E-this.f(this.b)))},function(a,b){this.g(b,V(E-this.f(b),E-this.b))},function(a,b){this.g(this.b,V(E-this.f(b),E-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(E-this.f(b),E-this.f(this.b))))},Dd,Dd,function(){this.g(this.b,E)},function(a,b){this.g(this.b,this.g(b,E))},Ed,Gd,Hd,Id,$d,ae,be,ce,Ed,Gd,Hd,Id,$d,ae,be,
ce,Ed,Gd,Hd,Id,$d,ae,be,ce,Ed,Gd,Hd,Id,$d,ae,be,ce,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,ne,ne,function(a,b){T(this.f(b),this.b)||J(this,this.i+1)},function(a,b){T(this.f(b),this.b*z)||J(this,this.i+1)},function(){J(this,this.i+1)},function(){J(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&J(this,this.i+1)},function(a,b){T(this.f(b),this.b*z)&&J(this,this.i+1)},oe,oe,function(a,b){T(this.f(b),this.f(this.b))||J(this,this.i+1)},function(a,
b){T(this.f(b),Y(this.f(this.b)))||J(this,this.i+1)},function(){J(this,this.i+1)},function(){J(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&J(this,this.i+1)},function(a,b){T(this.f(b),Y(this.f(this.b)))&&J(this,this.i+1)},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);T(a,this.b)||J(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;T(a,c)||J(this,this.i+1);this.g(b,U(a,c))},function(a,
b){J(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){J(this,this.i+1);this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);T(a,this.b)&&J(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;T(a,c)&&J(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),Y(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);T(a,c)||J(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);
var c=Y(this.f(this.b));T(a,c)||J(this,this.i+1);this.g(b,U(a,c))},function(a,b){J(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){J(this,this.i+1);this.g(b,U(this.f(b),Y(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);T(a,c)&&J(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=Y(this.f(this.b));T(a,c)&&J(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,X(this.f(b),this.b))},function(a,b){this.g(b,X(this.f(b),this.b*z))},function(a,b){a=
this.f(b);T(a,this.b)||J(this,this.i+1);this.g(b,X(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;T(a,c)||J(this,this.i+1);this.g(b,X(a,c))},function(a,b){J(this,this.i+1);this.g(b,X(this.f(b),this.b))},function(a,b){J(this,this.i+1);this.g(b,X(this.f(b),this.b*z))},function(a,b){a=this.f(b);T(a,this.b)&&J(this,this.i+1);this.g(b,X(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;T(a,c)&&J(this,this.i+1);this.g(b,X(a,c))},function(a,b){this.g(b,X(this.f(b),this.f(this.b)))},function(a,b){this.g(b,
X(this.f(b),Y(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);T(a,c)||J(this,this.i+1);this.g(b,X(a,c))},function(a,b){a=this.f(b);var c=Y(this.f(this.b));T(a,c)||J(this,this.i+1);this.g(b,X(a,c))},function(a,b){J(this,this.i+1);this.g(b,X(this.f(b),this.f(this.b)))},function(a,b){J(this,this.i+1);this.g(b,X(this.f(b),Y(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);T(a,c)&&J(this,this.i+1);this.g(b,X(a,c))},function(a,b){a=this.f(b);var c=Y(this.f(this.b));T(a,
c)&&J(this,this.i+1);this.g(b,X(a,c))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(b,V(this.f(b),this.b*z))},function(a,b){a=this.f(b);T(a,this.b)||J(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);T(a,this.b*z)||J(this,this.i+1);this.g(b,V(a,this.b*z))},function(a,b){J(this,this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){J(this,this.i+1);this.g(b,V(this.f(b),this.b*z))},function(a,b){a=this.f(b);T(a,this.b)&&J(this,this.i+1);this.g(b,V(a,this.b))},function(a,
b){a=this.f(b);var c=this.b*z;T(a,c)&&J(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),Y(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);T(a,c)||J(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=Y(this.f(this.b));T(a,c)||J(this,this.i+1);this.g(b,V(a,c))},function(a,b){J(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){J(this,this.i+1);this.g(b,V(this.f(b),Y(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);T(a,c)&&J(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=Y(this.f(this.b));T(a,c)&&J(this,this.i+1);this.g(b,V(a,c))},P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P],me=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);
break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
function Ae(a){u.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ea("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(mb(c.Wa,a,b),(a=Ia(a,b))?(c.b=a.aa,c.W=a.W):c.w=null);Be(c)})}}ja(Ae,u);
Ae.prototype.Ha=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Be(this)};Ae.prototype.wa=function(){this.W&&(this.D&&Ce(this.D,this.id,this.C,this.j,this.W),delete this.W);return!0};Ae.prototype.ma=function(){return!0};
function Be(a){if(!Cb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)zb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.j,8,!0)+")");else{var b;b=a.C;if(Dc(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)xc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Mb(a)}}Xa(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ae(d);tb(d,c)}});
function De(a){u.call(this,"RAM",a);this.W=this.Ka=null;this.i=+a.addr;this.j=+a.size;this.ua=a.load;this.ta=a.exec;null!=this.ua&&(this.ua=+this.ua);null!=this.ta&&(this.ta=+this.ta);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ea("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(mb(c.Wa,a,b),(a=Ia(a,b))?(c.Ka=a.Ka,
c.W=a.W,null==c.ua&&(c.ua=a.ua),null==c.ta&&(c.ta=a.ta)):c.b=null);Ee(c)})}}ja(De,u);De.prototype.Ha=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ee(this)};De.prototype.wa=function(a,b){this.W&&(this.D&&Ce(this.D,this.id,this.i,this.j,this.W),delete this.W);b||this.reset();return!0};De.prototype.ma=function(){return!0};
function Ee(a){if(a.G&&(!a.w&&a.j&&(Dc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Cb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ka)return;Fe(a,a.Ka,a.ua,a.ta,a.i)?a.status('Loaded image "'+a.C+'"'):a.ea('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
De.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-D&&(g+=F);for(var g=Math.trunc(Math.abs(g))%F,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ka&&Fe(this,this.Ka,this.ua,this.ta,this.i,!this.D)}this.F=!1};
function Fe(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)xc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Ua=d,J(a,d),f?a.A.X?a.A.N||rc(a):a.A.ba=!0:a.D&&a.A.X?a.V()||a.H.A.reset||(cd(a.D),K(a.H,-1)):!1===f&&a.V(),!a.A.N&&a.Ja&&a.Ja.stop()));return g}Xa(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new De(d);tb(d,c)}});
function Ge(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=He;b&&(void 0===c&&(c="Panel"),(c=sb(c,this.id))&&(b=c.J[b])&&this.na(null,a,b))}this.b=this.C=null;this.exports={connect:this.Eb,receiveData:this.ab,receiveStatus:this.dc,setConnection:this.gc}}ja(Ge,u);l=Ge.prototype;
l.na=function(a,b,c){var d=this;switch(b){case He:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.sb:ma.Jb:46==c?b=ma.sb:a.ctrlKey&&c>=ma.rb&&c<=ma.Kb&&(b=c-(ma.rb-ma.Gb));b&&(a.preventDefault&&a.preventDefault(),d.ab(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Ib&&(b=ma.Hb);d.ab(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ab(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
l.Eb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Va)return;c=Ea(c[1]);if(this.b=rb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Eb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new I(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.ab=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.dc=function(){};l.gc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var He="buffer";
Xa(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ge(d);tb(d,c)}});function Ie(a){u.call(this,"Debugger",a);this.U=+a.base||16;this.ia=32;this.ka=null;this.Y=["{","}"];this.pa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.j=[];this.K={}}ja(Ie,u);Ie.prototype.nb=function(){return-1};Ie.prototype.ob=function(){};
function Je(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ea(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.ia)return b|c;b=Le(a,b,0,!0);c=Le(a,c,0,!0);return((b/Me|0)^(c/Me|0))*Me+((b^c)>>>0)}
function Le(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b}
function Ne(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<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=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":e=a;32>=e.ia?f&=g:(f=Le(e,f,0,!0),g=Le(e,g,0,!0),f=((f/Me|0)&(g/Me|0))*Me+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Le(e,f,0,!0),g=Le(e,g,0,!0),f=(f/Me|0|g/Me|0)*Me+((f|g)>>>0));break;case "^!":f=Ke(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Le(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(Le(a,f))}return!0}
function Oe(a,b,c,d,e,f){var g,h,k,n=!1,p=0,t=[],B=[],H=a.U;for(a.U=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Pe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Oe(a,b,p,c-1,a.U,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){p=1;continue}if("-"==k){p=-1;continue}n=!0;break}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{n=!0;f=!f;break}t.push(Le(a,p));if(!k)break;B.length&&Qe[k]<Qe[B[B.length-1]]&&Ne(a,t,
B,1);B.push(k);a.U="^_"==k?10:e;p=0}Ne(a,t,B)&&1==t.length||(n=!0);n?!1===f&&a.u("parse error ("+(h||k)+")"):g=t.pop();a.U=H;return g}function Re(a,b,c){var d;a.ka=null;b&&("{"!=a.Y[0]&&(b=b.split(a.Y[0]).join("{").split(a.Y[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Oe(a,b,0,b.length,a.U,c),void 0!==d&&!1===c&&Se(a,null,d));return d}
function Pe(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.nb(b),0<=f?f=a.ob(f):(f=a.K[b],null==f&&(0>e&&(b="-"+b,e=0),f=na(b,a.U))),null!=f?0>e?f=-f:0<e&&(f=Ke(a,f,-1)):d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return f}
function Se(a,b,c){var d,e=!1;if(void 0!==c){e=!0;if(8==a.U)d=c+". "+m(c,0,!0);else{d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=ua(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Te(a){var b=a.K;a.K={};return b}function Ue(a,b){if(b)return Se(a,b,a.K[b]);var c=0;for(b in a.K)Se(a,b,a.K[b]),c++;return 0<c}
function L(a,b,c){c=void 0===c?0:c;switch(a.U){case 2:a=ua(b,0<c?c:0);break;case 8:a=m(b,0<c?(c+2)/3|0:0);break;case 10:a=va(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Qe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Me=Math.pow(2,32);
function Ve(a){Ie.call(this,a);this.Ea=!1;this.Ca=18;this.ia=36;this.Y=["<",">"];this.pa=[];this.Da=Z();this.L=Z(0);this.oa=Z(0);this.fa=Z(0);this.F=[];this.b=this.M=this.I=[];We(this);this.S=this.ja=0;this.i=[];this.za=void 0;Xe(this);this.D=this;this.xa={};this.Z=this.zb=0;this.T=null;this.P=[];Ye(this,a.messages);this.ra=a.commands;this.O=0;this.Ja=this.Aa=null;this.C=this.Ga=this.Fa=this.ha=this.ya=0;this.qa=this.ga=this.da=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return ed(b,
a)}):void 0===global[w]&&(global[w]=function(a){return ed(b,a)})}ja(Ve,Ie);function Ze(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,Ya:void 0===b?!1:b,la:!1,U:c}}function $e(a,b,c,d){a.B=b;a.Ya=c||!1;a.la=!1;a.U=d}function af(a){return[a.B,a.Ya,a.la,a.U,a.bb]}function bf(a,b){var c=Z(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.ub=Je(a,c.bb=b[4]));return c}l=Ve.prototype;
l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ca=b.F;(b=$c(a,"messages"))&&Ye(this,b);if(a=$c(a,"commands"))this.ra=a;cf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ze(df(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.u("..."):(c=p.type,n=Kc[c],p&&d.u(q(p.id,8)+" %"+
q(e<<d.G.i,8)+" %"+q(p.B,8)+" "+q(p.Ra,4,!0)+" "+q(p.size,4,!0)+" "+n),c!=Oc&&(c=-1),n=0);a+=16384;e++}}});Mb(this)};
l.na=function(a,b,c){var d=this;switch(b){case "debugInput":return this.da=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Va(c,function(){if(d.da){var a=d.da.value;
d.da.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.Ia=function(a,b){var c=-1,d=Ze(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.tb=function(a,b,c){var d=Ze(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),K(this.H,-1))};
function df(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.Y[0],h=a.Y[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 n=Re(a,g[1]);if(void 0===n){b=void 0;break a}b=b.replace(f+g[1]+h,null!=n?L(a,n):"undefined")}if(a.pa.length)for(f=a.pa[0],h=a.pa[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,t;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].W[f],null!=g){t=g.o;break}null!=t&&(p=Z(t));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Re(a,b)}null!=f&&(f=ef(f,a.Ca),$e(c,f,d,e));return c}function ff(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ub=Je(a,b.bb=c[2]))}
function ef(a,b){0>a&&a>=-D&&(a+=F);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function gf(a){return m(a/Tb,6)+" "+m(a%Tb,6)}
function Ye(a,b){a.D=a;a.Z=a.zb=536870916;a.T=null;a.P=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.Z|=ac[c],a.u(c+" messages enabled"))}}function cf(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}l.nb=function(a){return hf.indexOf(a.toUpperCase())};
l.ob=function(a){var b,c=this.v;switch(a){case jf:b=c.i;break;case kf:b=c.K;break;case lf:b=c.b;break;case mf:b=c.j&65536?1:0;break;case nf:b=c.j&32768?1:0;break;case of:b=c.j&131072?1:0;break;case pf:b=c.j&32?1:0;break;case qf:b=c.j&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+L(this,Z(this.v.za).B));if(!this.T||a!=this.T)if(this.T=a,this.Z&1073741824)this.P.push(a);else{var c;if(this.Z&-2147483648&&this.v&&(c=this.v.A.N)||Nb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.ga=0,a.H&&K(a.H,void 0))}};
function Xe(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(rf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.S=0;a.u("instruction history buffer allocated")}}function sf(a,b,c){if(!tf(a,c))return!1;rc(a.v,b);return!0}
function sc(a,b,c,d){if(!tf(a))return!1;var e="";null===c&&(e=(c=!a.Aa||"tr"==a.Aa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.Ta(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,zb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),K(a.H,-1));cd(a,c||!1,e);return 0<a.C}l.V=function(a){this.v&&this.v.V(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ea&&(c&&a.u(uf+c),$e(a.L,a.v.i),b&&1!=a.O?vf(a):wf(a))}
function tf(a,b){var c;(c=!a.v||!Cb(a.v))||(c=a.v,c.A.X?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ab(a.v)}l.wa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ma=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Xe(this);this.ha=0;this.T=null;this.C=0;$e(this.L,this.v.i);this.A.N=!1;xf(this);a||cd(this)};
l.save=function(){var a=new I(this);a.set(0,af(this.L));a.set(1,af(this.oa));a.set(2,af(this.fa));a.set(3,[this.j,this.R,this.Z]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=bf(this,a[b++]),this.oa=bf(this,a[b++]),this.fa=bf(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.Z|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.u("running");this.A.N=!0;this.Fa=a;this.Ga=b};
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Ga;if(!this.O){b="stopped";if(this.C){a-=this.Fa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";sd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);xf(this,this.v.i);this.T=null}};function sd(a){return 1<a.b.length||!!a.ja}
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.za==b&&(b=rd(a.v,1)));if(0<c&&(a.ja&&!--a.ja||Xc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&($e(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function yf(a,b,c,d){var e=Z(b.B),f=a.Ia(b,1),g,h,k,n=0,p=f/Xb|0,t;for(t in zf)if(g=zf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=Af;n=p&3;break;case 32256:k=Bf;n=p&7;break;case 29248:k=Cf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>Df&&(k="B");k=Ef[g||0]+k;if(g){if(28700==h)h=f/Yb&127,n=L(a,h,-1);else for(h=f>>23&15,n=L(a,h,-1),p=0;n&&p<Ff.length;p++)if(g==Ff[p][0]&&(t=Ff[p][h])){k=Ef[t];n="";break}k=Ba(k,8)+(n?n+",":"");f&4194304&&(k+="@");k+=L(a,f&262143,-1);(f=f>>18&15)&&(k+="("+L(a,f,
-1)+")")}else k=Ba(k,8)+gf(f);f=k;g="";h=L(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ia(e,1),g+=" "+gf(k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Oa?h+("cycles="+fd(a.v).toString()+" cs="+q(a.v.Ca)):h+(null!=d?"="+d.toString():""));return h}
function Gf(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),n=0;n<Ff.length;n++)for(var p in Ff[n])if(+p&&(h=Ff[n][p],k==Ef[h])){k=Ef[Ff[n][0]];c&&(c=L(a,+p)+","+c);break}for(var t in zf){g=+t;p=zf[t];switch(g){case 32512:n=Af;break;case 32256:n=Bf;break;case 29248:n=Cf;break;default:n=[""]}for(var B in p){h=p[B];for(var H=0;H<n.length;H++){var R=n[H];"S"==R&&h>Df&&(R="B");if(k==Ef[h]+R){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(B|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}}else c&&(f=
g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}B=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!B){a.u("unknown operand: "+h);f=-1;break}h=B[2];if(t||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+L(a,d)):"0";h=Re(a,h,e);if(void 0==h){f=-1;break}if(!t&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(0>h||262143<h)h&=Sb;f+=h;if(h=B[3]){h=Re(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=
15;f+=h<<18}B[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function We(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Ze(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Ze(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.I=["bw"];a.ya=0;a.ja=0}
l.Ma=function(a,b,c){var d=!0;c||Hf(this,a,b,!1,!0);if(a!=this.b){var e=Ze(b);if(-1===e)this.u("invalid address: "+L(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ma(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(If(this,a,a.length-1,"set"),Xe(this)));return d};function Hf(a,b,c,d,e){var f=!1;c=Ze(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Ze(h)&&(!d||h.la)){f=!0;h.la||e||If(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.I));h.la||Xe(a);break}}return f}
function Jf(a,b){for(var c=1;c<b.length;c++)If(a,b,c);return b.length-1}function If(a,b,c,d){c=b[c];a.u(b[0]+" "+L(a,c.B)+(d?" "+d:c.bb?' "'+c.bb+'"':""))}function xf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.la){if(!Hf(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.la)for(var k=Ze(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.la&&(Hf(a,d,h,!0),e=!0);if(p=h.ub){for(var f=!1,t=0;t<p.length;t++)if(!jg(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var B=t+1;B<p.length&&p[B].indexOf("else");B++)t++;if(B==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||If(a,d,g,"hit");break}}}a.ya--;return f}
function lg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);$e(e.Da,d);f+="="+L(e,e.Ia(e.Da),36)+" ";c+=f}if(b){b="";for(d=0;d<hf.length;d++)(e=hf[d]||"")&&(e+="="+L(a,a.ob(d),d>=mf?1:d==kf?23:18)+" "),b+=e;c+="\n"+b}return c}l.Bb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ce(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Fa(p,k,a.Bb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Qb:d,W:e,wb:f})}function mg(a,b,c){var d=[],e=Ze(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Qb;if(e>=g&&e<g+h){e=Fa(f.wb,[e-g],a.Bb);0<=e?ng(a,b,e,d):c&&(e=~e,ng(a,b,e-1,d),ng(a,b,e,d));break}}return d}
function og(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){xc(e,b,a);null==c&&(c=b);d++});d?(a.u(d+" words loaded at "+L(a,c)+"-"+L(a,c+d-1)),J(a.v,c||0),cd(a)):a.u("no data")}function ng(a,b,c,d){var e={},f=a.F[b].wb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].W[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function pg(a,b){var c=df(a,b[1],a.fa);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+L(a,c.B)),a.R=!0,K(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.qa)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.qa=new qg(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{og(a,a.qa.J,h)}catch(p){a.u(p.message)}a.qa=null})}else b.shift(),b.shift(),b.shift(),b=Gf(a,d,b.join(""),c.B||0),0<=b&&(a.tb(c,b),a.u(yf(a,c)))}}}
function rg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ue(a)||a.u("no variables"),!0;if(!c[2])return Ue(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Re(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function sg(a,b,c){var d=null;if(b=df(a,b)){var e=mg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+L(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+L(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function vf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Re(a,b);if(void 0===g)return;b=a.nb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case jf:J(h,
g);$e(a.L,h.i);break;case mf:f=65536;break;case nf:f=32768;break;case of:f=131072;break;case pf:f=32;break;case qf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(lg(a,e));c&&($e(a.L,d.i),wf(a,L(a,a.L.B)))}}function tg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Se(a,null,c[2].charCodeAt(0)):Re(a,b,!1)}
function ug(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Aa=b;Ua(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.ga&&a.ga.stop();K(a.H,-1);Ob(a,!1)})}}
function wf(a,b,c,d){if(b=df(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Pe(a,c.substr(1)),null!=c&&(d=c);else{d=df(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=mg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.u(n)}h[3]&&(g=h[3],f=null);h=a.fa;n=b;h.B=n.B;h.Ya=n.Ya;h.la=n.la;h.U=n.U;a.u(yf(a,b,g,f));e-=b.B-k;c++}}}
function jg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(uf+b):(a.R&&(a.u("ended assemble at "+L(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Cb(a)&&0<b.length){a.R&&(b="a "+L(a,a.fa.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),n=1;n<h.length;n++){var p=h.charAt(n);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(n);g.unshift(h.substr(0,n));break}}switch(g[0].charAt(0)){case "a":pg(a,g);
break;case "b":a:{var t=g[0],B=g[1],H=b;if("?"==B)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var R=t.charAt(1);if("l"==R){var bb;bb=0+Jf(a,a.b);bb+=Jf(a,a.M);(bb+=Jf(a,a.I))||a.u("no breakpoints")}else if("n"==R){var Bb=+B||0;B&&(a.ja=Bb);a.u("break after "+Bb+" instruction(s)")}else if(void 0===
B)a.u("missing breakpoint address");else{var C=Z();if("*"!=B&&(C=df(a,B,a.L),!C))break a;"c"==R?null==C.B?(We(a),a.u("all breakpoints cleared")):Hf(a,a.b,C)||Hf(a,a.M,C)||Hf(a,a.I,C)||a.u("breakpoint missing: "+L(a,C.B)):null!=C.B&&(ff(a,C,H),"p"==R?a.Ma(a.b,C):"r"==R?a.Ma(a.M,C):"w"==R?a.Ma(a.I,C):a.u("unknown breakpoint command: "+R))}}}break;case "c":a.va&&(a.va.value="");break;case "d":a:{var cb,db=g[0],oa=g[1],Ca=g[2],sh=g[3];if("?"==oa){var eb="";for(cb in ac)a.xa[cb]&&(eb&&(eb+=","),eb+=cb);
eb+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");eb.length&&a.u("dump extension commands:\n\t"+eb)}else if("state"==oa){var Jd=vg(a.H,!0);"console"==Ca?console.log(Jd):(a.va&&(a.va.value=""),Jd&&a.u(Jd))}else if("symbols"==oa)for(var Kd=0;Kd<a.F.length;Kd++){var Ld=a.F[Kd],fb;for(fb in Ld.W)if("."!=fb.charAt(0)){var Kf=Ld.W[fb].o;
if(void 0!==Kf){var Lf=Ld.W[fb].l;Lf&&(fb=Lf);a.u(L(a,Kf)+" "+fb)}}}else{if("d"==db){for(cb in ac)if(g[1]==cb){var Mf=a.xa[cb];Mf?(g.shift(),g.shift(),Mf(g)):a.u("no dump registered for "+oa);break a}oa||(db=a.Ja||"dw")}else a.Ja=db;if("dh"==db){var Nf=oa,Of=Ca,Pf="",Qf=0,ka=a.S,pa=a.i;if(pa.length){var fa=+Nf||a.za,Db=+Of||10;isNaN(fa)?fa=Db:Pf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length);var Md=
[];"call"==Of&&(Db=1E5,Md=["CALL"]);for(void 0!==Nf&&a.u(fa+" instructions earlier:");0<Db&&ka!=a.S;){var Rf=pa[ka++];if(null==Rf.B)break;var Eb=Z(Rf.B),th=fa--,Sf=yf(a,Eb,"history",th);(!Md.length||0<=Sf.indexOf(Md[0]))&&a.u(Sf);Eb.lb&&(ka+=Eb.lb,Db-=Eb.lb,fa-=Eb.lb);ka>=pa.length&&(ka=0);a.za=fa;Qf++;Db--}}Qf||(a.u("no "+Pf+"history available"),a.za=void 0)}else{var gb=df(a,oa,a.oa);if(gb){var Ka=0,Tf="ds"==db;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||sh,Ka=Pe(a,Ca);else{var Uf=df(a,Ca);Uf&&
(Ka=Uf.B-gb.B)}0>Ka&&(Ka=0);65536<Ka&&(Ka=65536)}var uh=a.U;gb.U&&(a.U=gb.U);for(var Vf="db"==db?1:2,Nd=Ka||32,Od=1==Vf?1:4,vh=(Nd+Od-1)/Od|0||1,La="";vh--&&0<Nd;){for(var qa="",Pd="",oa=L(a,gb.B),Wf=Od;0<Wf--&&0<Nd--;){var Qd=a.Ia(gb,1);Tf?(qa&&(qa+=","),qa+=Qd):(qa+=gf(Qd),qa+=" ");for(var Ec=29,wh=0;1==Vf&&0<=Ec;wh++)var Fb=Qd/Math.pow(2,Ec)%Math.pow(2,7),qa=qa+L(a,Fb,7),Fb=Fb+0,Pd=Pd+(32>Fb?".":String.fromCharCode(Fb)),Ec=Ec-7}La&&(La+="\n");La=Tf?La+(qa+","):La+(oa+": "+qa+(0>Wf?" "+Pd:""))}La&&
a.u(La);a.U=uh}}}}break;case "e":if("else"==g[0])break;var Xf,Yf,Zf=g[0],Rd=g[1];"e"==Zf||"ew"==Zf?(Xf=a.Ia,Yf=a.tb):Rd=null;if(null==Rd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Fc=df(a,Rd,a.oa);if(Fc)for(var Sd=2;Sd<g.length;Sd++){var Gb=Re(a,g[Sd]);if(void 0===Gb)break;Gb=ef(Gb);a.u("changing "+L(a,Fc.B)+" from "+gf(Xf.call(a,Fc))+" to "+gf(Gb));Yf.call(a,Fc,Gb,1)}}break;case "g":a:{var $f=g[1],xh=b;if(void 0!==$f){var Td=df(a,$f);if(!Td)break a;ff(a,
Td,xh);a.Ma(a.b,Td,!0)}sf(a,!0,c)}break;case "h":a.A.N?(c||a.u("halting"),a.V()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Ud;var Hb=b.substr(2),Hb=Ea(Hb);Re(a,Hb)?(c||a.u("true: "+Hb),Ud=!0):(c||a.u("false: "+Hb),Ud=!1);Ud||(d=!1);break}f=!0;break;case "k":var yh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Vd=0,Wd=Z(),Ib=Z();for(a.u("stack trace for "+L(a,Ib.B));10>Vd;){for(var Ma=null,zh=
256;65536>Ib.B>>>0;){Wd.B=a.Ia(Ib,2);if(null==Ib.B||!zh--)break;if(!(Wd.B&1)){for(var Ah=a,Gc=Wd,ag=null,Jb=Gc.B,bg=Jb,Xd=1;6>=Xd&&Jb;Xd++){if(2<Xd){Gc.B=Jb;var Hc=yf(Ah,Gc);if(0<=Hc.indexOf("JSR")){var cg=Hc.indexOf(" ");if(Jb+(Hc.indexOf(" ",cg+1)-cg-1)/2==bg){ag=Hc;break}}}Jb-=2}Gc.B=bg;if(Ma=ag)break}}if(!Ma||null==Ma)break;var dg=null;if("ks"==yh){var eg=Ma.match(/[0-9A-F]+$/);eg&&(dg=sg(a,eg[0]))}Ma=Ba(Ma,50)+" ;"+(dg||"stack="+L(a,Ib.B));a.u(Ma);Vd++}Vd||a.u("no return addresses found")}break;
case "l":if("ln"==g[0]){sg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,sa=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Da=0;if("all"==N)Da=1879046143,N=null;else if("on"==N)sa=!0,N=null;else if("off"==N)sa=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(ra in ac)if(N==ra){Da=ac[ra];sa=!!(a.Z&Da);break}if(!Da){a.u("unknown message category: "+N);break a}}if(Da)if("on"==g[2])a.Z|=Da,sa=!0;else if("off"==g[2]&&(a.Z&=~Da,sa=!1,1073741824==Da)){for(var fg=1E3<=a.P.length?a.P.length-
1E3:0;fg<a.P.length;)a.u(a.P[fg++]);a.P=[]}}var Bh=0,Kb="";for(ra in ac)if(!N||N==ra){var Ch=!!(a.Z&ac[ra]);if(null===sa||sa==Ch)Kb&&(Kb+=","),++Bh%10||(Kb+="\n\t"),"key"==ra&&(ra="keys"),Kb+=ra}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));Xe(a)}break;case "p":if("print"==g[0]){tg(a,b.substr(5));break}var gg=g[0],hg="p"==gg?0:"pr"==gg?1:-1;if("?"==g[1]||0>hg)a.u("step commands:"),
a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var ig=Z(a.v.i);a.Ia(ig);a.O?(a.Ma(a.b,ig,!0),sf(a)||(a.H&&jd(a.H),a.O=0)):ug(a,hg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}vf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var hb=+g[2];if(2==hb||8==hb||10==hb||16==hb)a.U=hb;else{a.u("invalid base: "+hb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.oa=
Lb;break;case "start":a.v.Da=Lb;break;case "stop":a.v.ja=Lb;break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Oa?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.da.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":ug(a,g[0],g[1]);break;case "u":wf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){rg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.2 ("+a.v.yb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){tg(a,b.substr(1));break}var Yd="commands:",Zd;for(Zd in wg)Yd+="\n"+
Ba(Zd,9)+wg[Zd];sd(a)||(Yd+="\nnote: history disabled if no exec breakpoints");a.u(Yd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(kg){a.u("Debugger "+(kg.stack||kg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!jg(a,b[+d]))return!1;return!0}
var wg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Df=20,Ef=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
jf=0,kf=1,lf=2,mf=3,nf=4,of=5,pf=6,qf=7,hf="PC RA EA C0 C1 OV ND PD".split(" "),xg={},zf=(xg[28672]={0:101},xg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},xg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Df,9216:53,9472:52,
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},xg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},xg[29248]={24576:79,24640:80,25088:81,25152:82},xg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},xg),zf=["","I","M","S"],Af=" L E LE A GE N G".split(" "),Bf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Ef=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],qf=1E3,tf=">> ";Za(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ue(d);ub(d,c)}});
function qg(a,b,c,d,e){this.R=b||0;this.S=c||"";this.i=d;this.done=e;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.v={};this.P={};this.G=[];this.K=[];this.H=[];this.O=this.ea=0;this.sa=this.R;this.I=null;this.b=0;this.F=null;this.C=this.J="";this.j=null;this.D="";this.w=[];this.M=0;this.L=a.split(";");yg(this)}
function yg(a){if(a.M==a.L.length)a.done(zg(a));else{var b=a.L[a.M++];a.u("loading "+ya(b));"/"==b[0]&&".MAC"==b.slice(-4)&&(b+=".txt");Ja(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(Aa(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Ag(a,"unrecognized HTML entity: "+c[0])}a.w=a.w.concat(e.split(/(\r?\n)/));setTimeout(function(){yg(a)},0)}})}}
function zg(a){if(0<=a.S.indexOf("p"))return a.u(a.w.join()),0;var b=Se(a.i);try{var c;for(c=0;c<a.w.length&&(a.ea++,Bg(a,a.w[c]+"\r\n"));c+=2);a.b&&a.error("open block from line "+a.v[a.F].ea);for(c=0;c<a.G.length;c++){var d=a.G[c],e=a.v[d];e?Cg(a,e.La):a.error("missing definition for literal: "+d)}a.K.forEach(function(b){var c=b.sa,d=Dg(a,b.Db,void 0,c);void 0===d?a.error("unable to parse expression: "+b.Db):(d+=a.H[c],a.H[c]=Eg(a,d,c))})}catch(f){a.u(f.message),a.O=-1}a.i.K=b;return a.O}
function Bg(a,b){var c;if(a.b){1==a.b&&(c=b.indexOf(a.C),0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.I+" definition: "+b));if(1<a.b){c="";for(var d=0;d<b.length;d++)if(b[d]==a.C)a.b++;else if(b[d]==a.J&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.F||"";a.v[d].La+=b;a.b||(a.F=null,Fg(a,d));b=c}if(a.b)return!0}null!=a.j&&(b=Gg(a,b));d=b.match(/\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i);if(!d||d[4]&&";"!=d[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;var e=d[1];c=d[2].toUpperCase();b=d[3].trim();d=d[3]+d[4];e&&(e=e.slice(0,-1),Hg(a,e,a.sa,Ig));var f;if(c&&(f=b.match(/^([=:]+)(.*)/))){var g=0,e=c;c=f[1];b=f[2];"=="==c?g|=Jg:"=:"==c&&(g|=Kg);Hg(a,e,b,g);c=b=""}if(!c&&!b)return!0;a.I=c;f=b;for(var e=0,g=null,h=0,k=-1;h<f.length;){var n=f[h];"["==n&&(e++||(k=h));h++;if("]"==n&&0>=--e)break}0>e&&a.error("missing bracket(s): "+f);0<=k&&(g=f.substr(k,h-k));for((f=g)&&(b=b.replace(f,Lg(a,Mg,f)));f=Ng(a,b);)b=b.replace(f,f.slice(0,-1));if(!Fg(a,
c,b))switch(c){case Og:case Pg:case Qg:Gg(a,d);break;case Rg:Sg(a,0,b.replace(",",",,"));break;case Tg:case Ug:case Vg:case Wg:Lg(a,c,b);break;case Xg:case Yg:break;default:d=b,b=c+d,0<=b.indexOf(",,")||!c&&0>b.indexOf("@")&&0>b.indexOf("(")?c=Dg(a,b,!0):(c=Ff(a.i,c,d,a.sa,!0),0>c&&(c=Ff(a.i,"",b,a.sa,!0),0>c&&(c=void 0))),void 0!==c?Sg(a,c,a.i.ka):a.error("unrecognized expression: "+b)}return!0}
function Fg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c)return b=Zg(a,c),Cg(a,d.La,d.ub,b),!0;if("?"!=b[0])return!1;switch(b.substr(1)){case Ug:d.mb||Cg(a,d.La);break;case Wg:for(;0<d.mb--;)Cg(a,d.La);break;default:return!1}return!0}
function Cg(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",n=0;;){var p=f.indexOf(h,n);if(0>p)break;var n=p+1,t=p+h.length,B="",P="";p&&(B=f[p-1]).match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&(P=f[t]).match(/[0-9A-Z$%.]/i)||("'"==B&&p--,"'"==P&&t++,f=f.substr(0,p)+k+f.substr(t),n=p+k.length)}if(!Bg(a,f))break}}qg.prototype.error=function(a){throw Error("error"+(this.ea?" at line "+xa(this.ea):"")+": "+a);};
function Ag(a,b){a.u("warning"+(a.ea?" at line "+xa(a.ea):"")+": "+b)}function $g(a,b,c){c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
function Dg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Dg(a,f[1]):0,void 0!==b&&(f=f[2]?Dg(a,f[2]):0,void 0!==f&&(e=Y(a.i,b,18,!0)*Math.pow(2,18)+Y(a.i,f,18,!0)))):(void 0===d&&(d=a.sa),e=Qe(a.i,b.replace(/\.([^0-9]|$)/g,J(a.i,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Ng(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:ah,ub:[],Jb:[],La:b+": 0",ea:a.ea};a.G.push(d)}return c}function Zg(a,b){for(var c=[];b;){b=b.trim();var d=$g(a,b,void 0);if(!d)break;c.push(d);b=b.substr(d.length+1)}return c}
function Gg(a,b){var c=b;null==a.j&&(a.j=a.D="",b&&(a.j=b[0],c=b=b.substr(1)));if(a.j){var d=b.indexOf(a.j);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.j=null);a.D+=b}if(null==a.j){var d=b=0,e,f,g=a.D.length;a.I==Pg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.I==Qg&&(e--,f++));var k=a.D.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Sg(a,d),b=0)}b&&Sg(a,d)}return c}
function Lg(a,b,c){var d,e,f,g;a.C="<";a.J=">";e=f=[];if(b==Tg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(?:\(([^)]*)\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+": "+c),"";b=d[1];if(d[2]){f=e=Zg(a,d[2]);c=[];for(g=0;g<f.length;g++){var h=f[g].indexOf("<");if(0<=h){var k=f[g].lastIndexOf(">");0>k&&(k=f[g].length);c[g]=f[g].substr(h,k-h);f[g]=f[g].substr(0,h)}}f=c}c=bh;g=3}else if(b==Mg)a.C="[",a.J="]",b="?"+xa(a.sa,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],
c=ch,a.G.push(b),g=0;else{g=$g(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="?"+b;c=Dg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.J&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,ub:e,Jb:f,La:h,ea:a.ea};a.b?a.F=b:Fg(a,b);return b}
function Hg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Ig&&a.P[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Dg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}a.P[b]={name:b,value:c,ea:a.ea,od:d};a.i.K[b]=c}}function Sg(a,b,c){a.H[a.sa]=Eg(a,b);null!=c&&a.K.push({sa:a.sa,Db:c,ea:a.ea});a.sa++}
function Eg(a,b,c){c=void 0===c?a.sa:c;var d=Y(a.i,b||0,36,!0);(b<-C||b>=E)&&Ag(a,"truncated value "+m(b)+" at location "+m(c)+" to "+m(d));return d}qg.prototype.u=function(a){this.i?this.i.u(a):console.log(a)};var Ig=1,Jg=2,Kg=4,Og="ASCII",Pg="ASCIZ",Tg="DEFINE",Ug="IFE",Vg="IRP",Mg="LITERAL",Xg="PAGE",Wg="REPEAT",Qg="SIXBIT",Yg="SUBTTL",Rg="XWD",bh=-1,ch=-2,ah=-3;
function dh(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;eh(this,b);this.O=$c(this,"autoPower",a,6);this.w=0;this.ba=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.S=this.P=!1;this.ca=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=fh(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new zc({id:this.Ua+".bus",busWidth:this.ba},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.va)for(b=
0;b<e.length;b++)d=e[b],d.da=this.j.da,d.u=this.j.u,d.va=this.j.va;this.u(Rb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=gh),this.b&&(this.I=new G(this,"1.34.2"),hh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=ih(this))&&(this.K=!0);if(b){var g=this;Ja(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ga(b):"")+")")):(g.L=b,g.U=!0);Mb(g)})}else Mb(this);this.J.power||(this.O=!0);!c&&this.O&&jh(this,this.Oa)}else r("Unable to find CPU component")}ma(dh,u);function eh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Ua(b)||Ua(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function jh(a,b,c){for(var d=rb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){jh(a,b,c)});return}}b.call(a,c)}
function kh(a,b){var c=new G(a,"1.34.2",lh);if(hh(c)&&mh(c)){var d=c.get(nh),e=b?b.get(nh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=dh.prototype;
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?oh:gh));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==Ah)b=!0;else if(a>gh){if(hh(d,this.L)){this.C=new G(this,"1.34.2",Bh);hh(this.C)&&(Ch(this,d),a=Dh,Eh(this.C));this.C.set(nh,Ia());Fh(this.C);var e=this.b&&!this.K;if(a==oh||qb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=mh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?hh(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Sa(Gh,""),this.i=null)):this.u(f+": "+g),Eh(d),hh(d)?(c=mh(d),e=!0):c=!1))}e&&kh(this,c?d:null)}else a==Dh&&d.clear()}else kh(this);delete this.L;delete this.I}e=rb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Hh(this,g,d,b,c));b=[d,a,c];a!=Ah?jh(this,this.Ab,b):this.Ab(b)}};
function Hh(a,b,c,d,e){if(!b.A.X){b.A.X=!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.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=gh,window&&window.location.reload()):a.P=!0,b.wa(null),e=!1),!d&&b.vb){var g=b.vb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Hh(this,this.v,b,c,a),I(this,-2),this.v.aa());this.P&&(Ch(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Ch(a,b){if(qb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
function vg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",lh),h=Ia();g.set(nh,h);f.set(nh,h);f.set(Ih,"1.34.2");f.set(Jh,window?window.location.href:null);f.set(Kh,window?window.navigator.userAgent:"");a.v&&a.v.ma&&(c&&(b&&(a.v.A.aa=a.v.A.N),a.v.V()),d=a.v.ma(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=rb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.X&&(n.ma&&(d=n.ma(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Lh(a,a.i,f.toString()),Fh(g)&&Fh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Mh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=rb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.ba.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.xa);jc(a,a.i);dc(a,a.w)}}
l.na=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?vg(d,!1,!0):jh(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=qb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa(gh)}else d.reset(),d.v&&!d.D&&d.v.aa()},!0;case "save":if(Aa(Oa(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=fh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=vg(d,b);b?Lh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function fh(a,b){var c=a.i;c||((c=Ra(Gh),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Nh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function Nh(a,b){a.i=null;b=Ja(Oa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Sa(Gh,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function ih(a){var b=null;a.i&&(b=Oa()+"/api/v1/user?req=load&user="+a.i+"&state="+Oh(a,"1.34.2"));return b}
function Lh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Oh(a,"1.34.2");d.data=c;b=Ja(Oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Sa(Gh,""),a.i=null)}}
function jd(a,b){if(a.va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.va.focus();!b&&window&&window.scrollTo(c,d)}}var Bh="failsafe",lh="validate",nh="timestamp",Ih="version",Jh="url",Kh="browser",Gh="user",Ah=-1,gh=0,oh=1,Dh=2,Mh=3;Za(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new dh(g,d,!0);ub(g,f);g.O&&jh(g,g.Oa)}});
$a.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=tb("Computer",c.id))&&c.S&&!c.A.X&&c.Oa(Ah)}});$a.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=tb("Computer",c.id))&&c.A.X&&vg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Oh(a,b,c);Eh(this,a.Nb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function hh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Pa()&&(b=Ra(a.key))?(a.i=b,a.v=!0):!1}function mh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function Fh(a){var b=!0;if(Pa()){var c=JSON.stringify(a.b);Sa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Eh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){Eh(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Oh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Ph=0;
function Qh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ja(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):Rh(k,a,b,c,d,e,f,g)})}
function Rh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(nb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Sh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Sh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Sh(a,b,c)}})}else c(a,null)}
function Th(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--Ph||ib(!0));n=!1}var h,k,n=!0;Ph++;ob[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));t.appendChild(B)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Qh(d,null,a,null,!1,f,function(a,e){e?(nb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ph||ib(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Ph||
ib(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Qh(c,b,a,e,!0,f,p):Rh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(P){g(P.message)}return n}window.embedPDP10=function(a,b,c,d){ib(!1);return Th("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return Th("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return tb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!wb[a]){for(var c=!0,d=wb,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)n&&t!=n?k+=t:(n?n=null:n=t,k&&(h.push(k),k=""));else{if(!n){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;vb(a)||(c=!1)}return c};window.enableEvents=ib;window.sendEvent=kb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
28692:98,28696:99,28700:100},xg),Af=["","I","M","S"],Bf=" L E LE A GE N G".split(" "),Cf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Ff=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],rf=1E3,uf=">> ";Xa(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ve(d);tb(d,c)}});
function qg(a,b,c,d,e){this.S=b||0;this.Y=c||"";this.i=d;this.done=e;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.j={};this.L={};this.H=[];this.M=[];this.J=[];this.R=this.ca=0;this.sa=this.S;this.K=null;this.b=0;this.I=null;this.F=this.C="";this.T=/\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;this.w=this.v=null;this.G="";this.D=[];this.P=0;this.O=a.split(";");yg(this)}
function yg(a){if(a.P==a.O.length)a.done(zg(a));else{var b=a.O[a.P++];a.u("loading "+wa(b));"/"==b[0]&&".MAC"==b.slice(-4)&&(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=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Ag(a,"unrecognized HTML entity: "+c[0])}a.D=a.D.concat(e.split(/(\r?\n)/));setTimeout(function(){yg(a)},0)}})}}
function zg(a){if(0<=a.Y.indexOf("p"))return a.u(a.D.join()),0;var b=Te(a.i);try{var c;for(c=0;c<a.D.length&&(a.ca++,Bg(a,a.D[c]+"\r\n"));c+=2);a.b&&a.error("open block from line "+a.j[a.I].ca);for(c=0;c<a.H.length;c++){var d=a.H[c],e=a.j[d];e?Cg(a,e.Ba):a.error("missing definition for literal: "+d)}a.M.forEach(function(b){var c=b.sa,d=Dg(a,b.Fb,void 0,c);void 0===d?a.error("unable to parse expression: "+b.Fb):(d+=a.J[c],a.J[c]=Eg(a,d,c))})}catch(f){a.u(f.message),a.R=-1}a.i.K=b;return a.R}
function Bg(a,b,c,d,e){var f;if(a.b){1==a.b&&(f=b.indexOf(a.F),0<=f?(a.b++,b=b.substr(f+1)):a.error("expected "+a.K+" definition: "+b));if(1<a.b){f=b;b="";for(var g=0;g<f.length;g++)if(f[g]==a.F)a.b++;else if(f[g]==a.C&&(a.b--,1==a.b)){a.b=0;b=f.substr(g+1);f=f.substr(0,g);break}g=a.I||"";a.j[g].Ba+=f;a.b||(a.I=null,Fg(a,g))}if(a.b)return!0}null!=a.w&&(b=Gg(a,b));g=!0;f="";for(var h;g;){h=b.match(a.T);if(!h||h[4]&&";"!=h[4].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();
if(f==Hg||f==Ig)c=null;if(c){for(var k=0;k<c.length;k++)for(var n=c[k],p=d[k]||e[k]||"",t=0,B=b.length-h[4].length;t<B;){var H=b.indexOf(n,t);if(0>H)break;var t=H+1,R=H+n.length,bb="",Bb="";H&&(bb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(R>=b.length)&&(Bb=b[R]).match(/[0-9A-Z$%.]/i)||("'"==bb&&H--,"'"==Bb&&R++,b=b.substr(0,H)+p+b.substr(R),t=H+p.length,g=!0)}c=null}}d=h[1];c=h[3].trim();h=h[3]+h[4];d&&(d=d.slice(0,-1),Jg(a,d,a.sa,Kg));var C;f&&(C=c.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=C[1],c=C[2],"=="==f?e|=
Lg:"=:"==f&&(e|=Mg),Jg(a,d,c,e),f=c="");if(!f&&!c)return!0;a.K=f;C=c;d=0;e=null;b=0;for(g=-1;b<C.length&&!(k=C[b],"["==k&&(d++||(g=b)),b++,"]"==k&&0>=--d););0>d&&a.error("missing bracket(s): "+C);0<=g&&(e=C.substr(g,b-g));for((C=e)&&(c=c.replace(C,Ng(a,Og,C)));C=Pg(a,c);)c=c.replace(C,C.slice(0,-1));if(!Fg(a,f,c))switch(f){case Qg:case Rg:case Sg:Gg(a,h);break;case Tg:Ug(a,0,c.replace(",",",,"));break;case Vg:case Wg:case Xg:case Hg:case Ig:case Yg:Ng(a,f,c);break;case Zg:case $g:break;default:h=
c,C=f+h,0<=C.indexOf(",,")||!f&&0>C.indexOf("@")&&0>C.indexOf("(")?f=Dg(a,C,!0):(f=Gf(a.i,f,h,a.sa,!0),0>f&&(f=Gf(a.i,"",C,a.sa,!0),0>f&&(f=void 0))),void 0!==f?Ug(a,f,a.i.ka):a.error("unrecognized expression: "+C)}return!0}
function Fg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c)return b=a.v,a.v=d,d.La=ah(a,c,!0),Cg(a,d.Ba,d.Na,d.La,d.vb),a.v=b,!0;if("?"!=b[0])return!1;switch(b.substr(1)){case Wg:d.$a||Cg(a,d.Ba);break;case Xg:d.$a&&Cg(a,d.Ba);break;case Hg:case Ig:for(c=0;c<d.La.length;c++)Cg(a,d.Ba,d.Na,[d.La[c]],[]);break;case Yg:for(;0<d.$a--;)Cg(a,d.Ba);break;default:return!1}return!0}function Cg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Bg(a,b[f]+"\r\n",c,d,e);f++);}
qg.prototype.error=function(a){throw Error("error"+(this.ca?" at line "+va(this.ca):"")+": "+a);};function Ag(a,b){a.u("warning"+(a.ca?" at line "+va(a.ca):"")+": "+b)}function bh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
function Dg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Dg(a,f[1]):0,void 0!==b&&(f=f[2]?Dg(a,f[2]):0,void 0!==f&&(e=Le(a.i,b,18,!0)*Math.pow(2,18)+Le(a.i,f,18,!0)))):(void 0===d&&(d=a.sa),e=Re(a.i,b.replace(/\.([^0-9]|$)/g,L(a.i,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Pg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;a.j[d]&&a.error("reserved symbol redefined: "+c);var e,f,g;e=f=g=[];a.j[d]={name:d,$a:ch,Na:e,vb:f,La:g,Ba:b+": 0",ca:a.ca};a.H.push(d)}return c}function ah(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=bh(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
function Gg(a,b){var c=b;null==a.w&&(a.w=a.G="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.G+=b}if(null==a.w){var d=b=0,e,f,g=a.G.length;a.K==Rg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Sg&&(e--,f++));var k=a.G.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Ug(a,d),b=0)}b&&Ug(a,d)}return c}
function Ng(a,b,c){var d,e,f,g,h,k;a.F="<";a.C=">";g=h=k=[];if(b==Vg){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]){h=g=ah(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var n=h[c].lastIndexOf(">");0>n&&(n=h[c].length);b[c]=h[c].substr(d,n-d);h[c]=h[c].substr(0,d)}h=b}b=dh;c=3}else if(b==Og)a.F="[",a.C="]",f="?"+va(a.sa,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],f+": "+c.substr(1)],
b=eh,a.H.push(f),c=0;else if(b==Hg||b==Ig){a.v||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)(.*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.v.Na.length&&e[1]!=a.v.Na[d];d++);if(d==a.v.Na.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Ig?k=a.v.La[d].split(""):k=ah(a,a.v.La[d]);b=k.length;c=2}else{d=bh(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)(.*)/i);
f="?"+b;b=Dg(a,d)||0;c=1}f=f.toUpperCase();a.b=1;d="";e[c]&&(a.b=2,d=e[c+1],d.slice(-1)==a.C&&(a.b=0,d=d.slice(0,-1)));a.j[f]={name:f,$a:b,Na:g,vb:h,La:k,Ba:d,ca:a.ca};a.b?a.I=f:Fg(a,f);return f}
function Jg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Kg&&a.L[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Dg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.L[b])?(e.value=c,e.Rb=d,e.ca=a.ca):a.L[b]={name:b,value:c,Rb:d,ca:a.ca};a.i.K[b]=c}}function Ug(a,b,c){a.J[a.sa]=Eg(a,b);null!=c&&a.M.push({sa:a.sa,Fb:c,ca:a.ca});a.sa++}
function Eg(a,b,c){c=void 0===c?a.sa:c;var d=Le(a.i,b||0,36,!0);(b<-D||b>=F)&&Ag(a,"truncated value "+m(b)+" at location "+m(c)+" to "+m(d));return d}qg.prototype.u=function(a){this.i?this.i.u(a):console.log(a)};var Kg=1,Lg=2,Mg=4,Qg="ASCII",Rg="ASCIZ",Vg="DEFINE",Wg="IFE",Xg="IFN",Hg="IRP",Ig="IRPC",Og="LITERAL",Zg="PAGE",Yg="REPEAT",Sg="SIXBIT",$g="SUBTTL",Tg="XWD",dh=-1,eh=-2,ch=-3;
function fh(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;gh(this,b);this.O=$c(this,"autoPower",a,6);this.w=0;this.Y=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.T=!1;this.I=this.C=null;this.S=this.P=!1;this.da=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=hh(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.G=new zc({id:this.Wa+".bus",busWidth:this.Y},this.v,this.D);var d,e=qb(this.id);if((this.j=sb("Panel",this.id))&&this.j.va)for(b=
0;b<e.length;b++)d=e[b],d.ea=this.j.ea,d.u=this.j.u,d.va=this.j.va;this.u(Rb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ha&&d.Ha(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=ih),this.b&&(this.I=new I(this,"1.34.2"),jh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=kh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ea("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.T=!0);Mb(g)})}else Mb(this);this.J.power||(this.O=!0);!c&&this.O&&lh(this,this.Qa)}else r("Unable to find CPU component")}ja(fh,u);function gh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function lh(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Cb(f)){Cb(f,function(){lh(a,b,c)});return}}b.call(a,c)}
function mh(a,b){var c=new I(a,"1.34.2",nh);if(jh(c)&&oh(c)){var d=c.get(ph),e=b?b.get(ph):"unknown";d!=e&&(a.ea("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=fh.prototype;
l.Qa=function(a){void 0===a&&(a=this.b||(this.L?qh:ih));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new I(this,"1.34.2");if(a==rh)b=!0;else if(a>ih){if(jh(d,this.L)){this.C=new I(this,"1.34.2",Dh);jh(this.C)&&(Eh(this,d),a=Fh,Gh(this.C));this.C.set(ph,Ga());Hh(this.C);var e=this.b&&!this.K;if(a==qh||pb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=oh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jh(d,g):("error"==f&&"no machine state"!=
g?(this.ea("Error: "+g),"unable to verify user"==g&&(Qa(Ih,""),this.i=null)):this.u(f+": "+g),Gh(d),jh(d)?(c=oh(d),e=!0):c=!1))}e&&mh(this,c?d:null)}else a==Fh&&d.clear()}else mh(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Jh(this,g,d,b,c));b=[d,a,c];a!=rh?lh(this,this.Cb,b):this.Cb(b)}};
function Jh(a,b,c,d,e){if(!b.A.X){b.A.X=!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.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=ih,window&&window.location.reload()):a.P=!0,b.wa(null),e=!1),!d&&b.xb){var g=b.xb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.Cb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Jh(this,this.v,b,c,a),K(this,-2),this.v.ba());this.P&&(Eh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Eh(a,b){if(pb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function vg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new I(a,"1.34.2"),g=new I(a,"1.34.2",nh),h=Ga();g.set(ph,h);f.set(ph,h);f.set(Kh,"1.34.2");f.set(Lh,window?window.location.href:null);f.set(Mh,window?window.navigator.userAgent:"");a.v&&a.v.ma&&(c&&(b&&(a.v.A.ba=a.v.A.N),a.v.V()),d=a.v.ma(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.X&&(n.ma&&(d=n.ma(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Nh(a,a.i,f.toString()),Hh(g)&&Hh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Oh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=qb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;K(this,-1)};l.start=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
l.stop=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.eb+=d))&&(e.textContent=c.A.N?c.Y.toFixed(2)+"Mhz":"Stopped",c.eb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.xa);jc(a,a.i);dc(a,a.w)}}
l.na=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?vg(d,!1,!0):lh(d,d.Qa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Qa(ih)}else d.reset(),d.v&&!d.D&&d.v.ba()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=hh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=vg(d,b);b?Nh(d,a,c):d.ea("Resume disabled, machine state not saved")}},!0}return!1};
function hh(a,b){var c=a.i;c||((c=Pa(Ih),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ph(a,c))||a.ea("The user ID is invalid.")):b&&a.ea("Browser local storage is not available"));return c}
function Ph(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(Ih,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function kh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+Qh(a,"1.34.2"));return b}
function Nh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Qh(a,"1.34.2");d.data=c;b=Ha(Ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ea("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ea(c),Qa(Ih,""),a.i=null)}}
function jd(a,b){if(a.va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.va.focus();!b&&window&&window.scrollTo(c,d)}}var Dh="failsafe",nh="validate",ph="timestamp",Kh="version",Lh="url",Mh="browser",Ih="user",rh=-1,ih=0,qh=1,Fh=2,Oh=3;Xa(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new fh(g,d,!0);tb(g,f);g.O&&lh(g,g.Qa)}});
Ya.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=sb("Computer",c.id))&&c.S&&!c.A.X&&c.Qa(rh)}});Ya.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=sb("Computer",c.id))&&c.A.X&&vg(c,!(!c.b||c.F),!0)}});function I(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Qh(a,b,c);Gh(this,a.Ob)}l=I.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function jh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Na()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function oh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function Hh(a){var b=!0;if(Na()){var c=JSON.stringify(a.b);Qa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Gh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){Gh(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Qh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Rh=0;
function Sh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):Th(k,a,b,c,d,e,f,g)})}
function Th(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(mb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Uh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Uh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Uh(a,b,c)}})}else c(a,null)}
function Vh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);n&&(--Rh||ab(!0));n=!1}var h,k,n=!0;Rh++;nb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));t.appendChild(B)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Sh(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Rh||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Rh||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Sh(c,b,a,e,!0,f,p):Th(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return n}window.embedPDP10=function(a,b,c,d){ab(!1);return Vh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return Vh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return sb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!vb[a]){for(var c=!0,d=vb,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)n&&t!=n?k+=t:(n?n=null:n=t,k&&(h.push(k),k=""));else{if(!n){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;ub(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=jb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map