Added lots of MACRO-10 parsing improvements
This commit is contained in:
parent
8b1625a174
commit
d591b08aea
3 changed files with 527 additions and 323 deletions
|
|
@ -1547,11 +1547,15 @@ class DebuggerPDP10 extends Debugger {
|
|||
} else {
|
||||
n = (opCode >> PDP10.OPCODE.A_SHIFT) & PDP10.OPCODE.A_MASK;
|
||||
sOperand = this.toStrBase(n, -1);
|
||||
if (opNum == DebuggerPDP10.OPS.JFCL) {
|
||||
var opAlt = DebuggerPDP10.JFCL[n];
|
||||
if (opAlt) {
|
||||
sOperation = DebuggerPDP10.OPNAMES[opAlt];
|
||||
sOperand = "";
|
||||
if (n) {
|
||||
for (var m = 0; m < DebuggerPDP10.ALTOPS.length; m++) {
|
||||
if (opNum == DebuggerPDP10.ALTOPS[m][0]) {
|
||||
var opAlt = DebuggerPDP10.ALTOPS[m][n];
|
||||
if (opAlt) {
|
||||
sOperation = DebuggerPDP10.OPNAMES[opAlt];
|
||||
sOperand = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1582,17 +1586,17 @@ class DebuggerPDP10 extends Debugger {
|
|||
var opCode = this.getWord(dbgAddr, 1);
|
||||
var sOperation = this.findInstruction(opCode);
|
||||
|
||||
var sOpCodes = "";
|
||||
var sOpcodes = "";
|
||||
var sLine = this.toStrAddr(dbgAddrOp) + ":";
|
||||
if (dbgAddrOp.addr !== PDP10.ADDR_INVALID && dbgAddr.addr !== PDP10.ADDR_INVALID) {
|
||||
do {
|
||||
var w = this.getWord(dbgAddrOp, 1);
|
||||
sOpCodes += ' ' + this.toStrWord(w);
|
||||
sOpcodes += ' ' + this.toStrWord(w);
|
||||
if (dbgAddrOp.addr == null) break;
|
||||
} while (dbgAddrOp.addr != dbgAddr.addr);
|
||||
}
|
||||
|
||||
sLine += Str.pad(sOpCodes, 16) + sOperation;
|
||||
sLine += Str.pad(sOpcodes, 16) + sOperation;
|
||||
|
||||
if (sComment) {
|
||||
sLine = Str.pad(sLine, 48) + ';' + (sComment || "");
|
||||
|
|
@ -1607,28 +1611,31 @@ class DebuggerPDP10 extends Debugger {
|
|||
}
|
||||
|
||||
/**
|
||||
* parseInstruction(sOpCode, sOperands, dbgAddr)
|
||||
* parseInstruction(sOpcode, sOperands, addr)
|
||||
*
|
||||
* @this {DebuggerPDP10}
|
||||
* @param {string} sOpCode
|
||||
* @param {string|undefined} sOperands
|
||||
* @param {DbgAddrPDP10} dbgAddr of memory where this instruction is being assembled
|
||||
* @param {string} sOpcode
|
||||
* @param {string} [sOperands]
|
||||
* @param {number} [addr] of memory where this instruction is being assembled
|
||||
* @return {number} (opcode, or -1 if unrecognized instruction)
|
||||
*/
|
||||
parseInstruction(sOpCode, sOperands, dbgAddr)
|
||||
parseInstruction(sOpcode, sOperands, addr)
|
||||
{
|
||||
var opCode = -1, opMask, opNum;
|
||||
var sMnemonic = sOpCode.toUpperCase();
|
||||
var sMnemonic = sOpcode.toUpperCase();
|
||||
|
||||
/*
|
||||
* Perform any alternate mnemonic substitutions first
|
||||
*/
|
||||
for (var n in DebuggerPDP10.JFCL) {
|
||||
opNum = DebuggerPDP10.JFCL[n];
|
||||
if (sMnemonic == DebuggerPDP10.OPNAMES[opNum]) {
|
||||
sMnemonic = DebuggerPDP10.OPNAMES[DebuggerPDP10.OPS.JFCL];
|
||||
sOperands = this.toStrBase(+n) + ',' + sOperands;
|
||||
break;
|
||||
for (var m = 0; m < DebuggerPDP10.ALTOPS.length; m++) {
|
||||
for (var n in DebuggerPDP10.ALTOPS[m]) {
|
||||
if (!+n) continue;
|
||||
opNum = DebuggerPDP10.ALTOPS[m][n];
|
||||
if (sMnemonic == DebuggerPDP10.OPNAMES[opNum]) {
|
||||
sMnemonic = DebuggerPDP10.OPNAMES[DebuggerPDP10.ALTOPS[m][0]];
|
||||
if (sOperands) sOperands = this.toStrBase(+n) + ',' + sOperands;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1679,11 +1686,7 @@ class DebuggerPDP10 extends Debugger {
|
|||
}
|
||||
|
||||
if (opCode >= 0) {
|
||||
if (!sOperands) {
|
||||
this.println("missing operand(s)");
|
||||
opCode = -1;
|
||||
}
|
||||
else {
|
||||
if (sOperands) {
|
||||
var aOperands = sOperands.split(',');
|
||||
for (var i = 0; i < aOperands.length; i++) {
|
||||
var sOperand = aOperands[i].trim();
|
||||
|
|
@ -1705,7 +1708,7 @@ class DebuggerPDP10 extends Debugger {
|
|||
* If this is NOT the first operand, then replace all periods NOT preceded
|
||||
* by a digit with the current address.
|
||||
*/
|
||||
sOperand = sOperand.replace(/(^|[^0-9])\./g, "$1" + this.toStrAddr(dbgAddr));
|
||||
sOperand = sOperand.replace(/(^|[^0-9])\./g, "$1" + this.toStrOffset(addr));
|
||||
}
|
||||
var operand = this.parseExpression(sOperand);
|
||||
if (operand == undefined) {
|
||||
|
|
@ -1756,9 +1759,16 @@ class DebuggerPDP10 extends Debugger {
|
|||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// TODO: Complain about missing operands only if we know the instruction requires them.
|
||||
//
|
||||
// else {
|
||||
// this.println("missing operand(s)");
|
||||
// opCode = -1;
|
||||
// }
|
||||
}
|
||||
else {
|
||||
this.println("unknown instruction: " + sOpCode);
|
||||
else if (sOperands != null) {
|
||||
this.println("unknown instruction: " + sOpcode + ' ' + sOperands);
|
||||
}
|
||||
return opCode;
|
||||
}
|
||||
|
|
@ -2533,23 +2543,23 @@ class DebuggerPDP10 extends Debugger {
|
|||
var dbgAddr = this.parseAddr(asArgs[1], this.dbgAddrAssemble);
|
||||
if (!dbgAddr) return;
|
||||
|
||||
var sOpCode = asArgs[2];
|
||||
var sOpcode = asArgs[2];
|
||||
|
||||
if (sOpCode == undefined) {
|
||||
if (sOpcode == undefined) {
|
||||
this.println("begin assemble at " + this.toStrAddr(dbgAddr));
|
||||
this.fAssemble = true;
|
||||
this.cmp.updateDisplays();
|
||||
return;
|
||||
}
|
||||
|
||||
if (sOpCode.indexOf(':') >= 0) {
|
||||
if (sOpcode.indexOf(':') >= 0) {
|
||||
var dbg = this;
|
||||
if (this.macro10) {
|
||||
dbg.println("assembly already in progress");
|
||||
}
|
||||
else {
|
||||
var addrLoad = dbgAddr.addr;
|
||||
this.macro10 = new Macro10(sOpCode, addrLoad, dbg, function(macro10, sURL, nErrorCode) {
|
||||
this.macro10 = new Macro10(sOpcode, addrLoad, dbg, function(macro10, sURL, nErrorCode) {
|
||||
if (!nErrorCode) {
|
||||
dbg.loadAssembly(macro10, addrLoad);
|
||||
} else {
|
||||
|
|
@ -2565,7 +2575,7 @@ class DebuggerPDP10 extends Debugger {
|
|||
asArgs.shift();
|
||||
asArgs.shift();
|
||||
var sOperands = asArgs.join("");
|
||||
var opCode = this.parseInstruction(sOpCode, sOperands, dbgAddr);
|
||||
var opCode = this.parseInstruction(sOpcode, sOperands, dbgAddr.addr || 0);
|
||||
|
||||
if (opCode >= 0) {
|
||||
this.setWord(dbgAddr, opCode);
|
||||
|
|
@ -3921,7 +3931,8 @@ if (DEBUGGER) {
|
|||
BLKI: 93, DATAI: 94, BLKO: 95, DATAO: 96,
|
||||
CONO: 97, CONI: 98, CONSZ: 99, CONSO: 100,
|
||||
UUO: 101, JOV: 102, JCRY0: 103, JCRY1: 104,
|
||||
JCRY: 105, JFOV: 106
|
||||
JCRY: 105, JFOV: 106, HALT: 107, JRSTF: 108,
|
||||
JEN: 109
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -3955,7 +3966,8 @@ if (DEBUGGER) {
|
|||
"BLKI", "DATAI", "BLKO", "DATAO",
|
||||
"CONO", "CONI", "CONSZ", "CONSO",
|
||||
"UUO", "JOV", "JCRY0", "JCRY1",
|
||||
"JCRY", "JFOV"
|
||||
"JCRY", "JFOV", "HALT", 'JRSTF',
|
||||
"JEN"
|
||||
];
|
||||
|
||||
DebuggerPDP10.REGS = {
|
||||
|
|
@ -4101,11 +4113,10 @@ if (DEBUGGER) {
|
|||
|
||||
/*
|
||||
* Apparently, DEC's MACRO program permits "JFCL xxx" (with a single argument) as an alternate for "JFCL 0,xxx"
|
||||
* (which in turn is long-hand for "No-op", since JFCL with 0 does nothing). If we allowed JFCL to be both a
|
||||
* primary and a alternate mnemonic, that would complicate our simplistic parseInstruction() logic, so we don't.
|
||||
* (which in turn is long-hand for "No-op", since JFCL with 0 does nothing).
|
||||
*/
|
||||
DebuggerPDP10.JFCL = {
|
||||
// 0o00: DebuggerPDP10.OPS.JFCL,
|
||||
0o00: DebuggerPDP10.OPS.JFCL,
|
||||
0o10: DebuggerPDP10.OPS.JOV,
|
||||
0o04: DebuggerPDP10.OPS.JCRY0,
|
||||
0o02: DebuggerPDP10.OPS.JCRY1,
|
||||
|
|
@ -4113,6 +4124,17 @@ if (DEBUGGER) {
|
|||
0o01: DebuggerPDP10.OPS.JFOV
|
||||
};
|
||||
|
||||
DebuggerPDP10.JRST = {
|
||||
0o00: DebuggerPDP10.OPS.JRST,
|
||||
0o04: DebuggerPDP10.OPS.HALT,
|
||||
0o02: DebuggerPDP10.OPS.JRSTF,
|
||||
0o12: DebuggerPDP10.OPS.JEN
|
||||
};
|
||||
|
||||
DebuggerPDP10.ALTOPS = [
|
||||
DebuggerPDP10.JFCL, DebuggerPDP10.JRST
|
||||
];
|
||||
|
||||
DebuggerPDP10.HISTORY_LIMIT = DEBUG? 100000 : 1000;
|
||||
|
||||
DebuggerPDP10.PROMPT = ">> ";
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ if (NODE) {
|
|||
* @typedef {{
|
||||
* name:(string),
|
||||
* nOperand:(number),
|
||||
* aParms:(string),
|
||||
* aParms:(Array.<string>),
|
||||
* aDefaults:(Array.<string>),
|
||||
* sText:(string)
|
||||
* }}
|
||||
*/
|
||||
|
|
@ -57,6 +58,15 @@ var Mac;
|
|||
*/
|
||||
var Sym;
|
||||
|
||||
/**
|
||||
* @typedef {{
|
||||
* nLocation:(number),
|
||||
* aValues:(Array.<string>),
|
||||
* nBits:(number)
|
||||
* }}
|
||||
*/
|
||||
var Fixup;
|
||||
|
||||
/**
|
||||
* @class Macro10
|
||||
* @property {string} sURL
|
||||
|
|
@ -114,13 +124,37 @@ class Macro10 {
|
|||
* instead, after we've finished processing all the lines in the original input file, we run through
|
||||
* all the LITERAL entries in the Macros table and process the associated statement(s).
|
||||
*/
|
||||
|
||||
/**
|
||||
* @type {Object.<Mac>}
|
||||
*/
|
||||
this.tblMacros = {};
|
||||
|
||||
/**
|
||||
* @type {Object.<Sym>}
|
||||
*/
|
||||
this.tblSymbols = {};
|
||||
|
||||
this.nLine = 0;
|
||||
this.nError = 0;
|
||||
|
||||
/**
|
||||
* @type {Array.<number>}
|
||||
*/
|
||||
this.aWords = []; // filled in by the various genXXX() functions
|
||||
|
||||
/**
|
||||
* @type {Array.<string>}
|
||||
*/
|
||||
this.aLiterals = [];
|
||||
|
||||
/**
|
||||
* @type {Array.<Fixup>}
|
||||
*/
|
||||
this.aFixups = [];
|
||||
|
||||
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
|
||||
|
|
@ -179,12 +213,57 @@ class Macro10 {
|
|||
match = sText.match(/&[a-z]+;/i);
|
||||
if (match) this.warning("unrecognized HTML entity: " + match[0]);
|
||||
}
|
||||
|
||||
var i;
|
||||
var asLines = sText.split(/\r?\n/);
|
||||
for (i = 0; i < asLines.length; i++) {
|
||||
this.nLine++;
|
||||
if (!this.parseLine(asLines[i] + '\r\n')) break;
|
||||
}
|
||||
|
||||
for (i = 0; i < this.aLiterals.length; i++) {
|
||||
var macro = this.tblMacros[this.aLiterals[i]];
|
||||
if (!macro) {
|
||||
this.error("missing definition for literal: " + this.aLiterals[i]);
|
||||
continue;
|
||||
}
|
||||
this.parseText(macro.sText);
|
||||
}
|
||||
|
||||
for (var f in this.aFixups) {
|
||||
var w = 0, nBits = 0;
|
||||
var fixup = this.aFixups[+f];
|
||||
var nLocation = fixup.nLocation;
|
||||
if (fixup.nBits < 0) {
|
||||
w = this.dbg.parseInstruction(fixup.aValues[0], fixup.aValues[1], nLocation);
|
||||
if (w < 0) {
|
||||
this.error("unable to parse instruction: " + fixup.aValues[0] + ' ' + fixup.aValues[1]);
|
||||
break;
|
||||
}
|
||||
this.aWords[nLocation++] += w;
|
||||
continue;
|
||||
}
|
||||
for (i = 0; i < fixup.aValues.length; i++) {
|
||||
var sValue = fixup.aValues[i];
|
||||
var value = this.parseExpression(sValue);
|
||||
if (value === undefined) {
|
||||
this.error("unable to parse expression: " + sValue);
|
||||
break;
|
||||
}
|
||||
w += value;
|
||||
nBits += fixup.nBits;
|
||||
if (nBits < 36) {
|
||||
w *= Math.pow(2, 36 - nBits);
|
||||
} else {
|
||||
if (this.aWords[nLocation] === undefined) {
|
||||
this.error("undefined fixup location: " + Str.toOct(nLocation, 0, true));
|
||||
break;
|
||||
}
|
||||
this.aWords[nLocation++] += w;
|
||||
w = nBits = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch(err) {
|
||||
this.println(err.message);
|
||||
this.nError = -1;
|
||||
|
|
@ -247,6 +326,16 @@ class Macro10 {
|
|||
this.sOperator = sOperator;
|
||||
sOperands = sOperands.trim();
|
||||
|
||||
/*
|
||||
* My initial read of the MACRO-10 specification suggested that lines may begin with EITHER
|
||||
* "symbol:" (for a label) or "symbol=" (for an assignment), but apparently they can have BOTH.
|
||||
*/
|
||||
if (sOperands[0] == '=') {
|
||||
sLabel = sOperator;
|
||||
sOperands = sOperands.substr(1);
|
||||
sOperator = '=';
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the operands for a literal.
|
||||
*/
|
||||
|
|
@ -255,6 +344,14 @@ class Macro10 {
|
|||
sOperands = sOperands.replace(sLiteral, this.addMacro(Macro10.PSEUDO_OP.LITERAL, sLiteral));
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the operands for a reserved symbol.
|
||||
*/
|
||||
var sReserved = this.getReserved(sOperands);
|
||||
if (sReserved) {
|
||||
sOperands = sOperands.replace(sReserved, sReserved.slice(0, -1));
|
||||
}
|
||||
|
||||
if (!this.parseMacro(sOperator, sOperands)) {
|
||||
|
||||
switch (sOperator) {
|
||||
|
|
@ -271,6 +368,10 @@ class Macro10 {
|
|||
this.addASCII(sOperands);
|
||||
break;
|
||||
|
||||
case Macro10.PSEUDO_OP.XWD:
|
||||
this.addXWD(sOperands);
|
||||
break;
|
||||
|
||||
case Macro10.PSEUDO_OP.DEFINE:
|
||||
case Macro10.PSEUDO_OP.IFE:
|
||||
case Macro10.PSEUDO_OP.REPEAT:
|
||||
|
|
@ -282,16 +383,13 @@ class Macro10 {
|
|||
break;
|
||||
|
||||
default:
|
||||
if (DEBUG) this.println(Str.toDec(this.nLine, 5) + ": label(" + sLabel + ") operator(" + sOperator + ") operands(" + sOperands + ") comment(" + sComment + ")");
|
||||
if (!this.parseOpcode(sOperator, sOperands)) {
|
||||
this.genWord(0, [sOperator + sOperands]);
|
||||
// if (DEBUG) this.println(Str.toDec(this.nLine, 5) + ": label(" + sLabel + ") operator(" + sOperator + ") operands(" + sOperands + ") comment(" + sComment + ")");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.nLine >= 820) {
|
||||
this.dbg.printVariable();
|
||||
this.error("temporary line limit reached");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -312,19 +410,12 @@ class Macro10 {
|
|||
/*
|
||||
* Process this macro call; start by extracting macro argument values from sOperands.
|
||||
*/
|
||||
var aValues = [];
|
||||
var sDelims = ',';
|
||||
var sDelim = ',';
|
||||
if (sOperands[0] == '(') {
|
||||
sDelims += ')';
|
||||
sDelim += ')';
|
||||
sOperands = sOperands.substr(1);
|
||||
}
|
||||
while (sOperands) {
|
||||
sOperands = sOperands.trim();
|
||||
var sExp = this.getExpression(sOperands, sDelims);
|
||||
if (!sExp) break;
|
||||
aValues.push(sExp);
|
||||
sOperands = sOperands.substr(sExp.length + 1);
|
||||
}
|
||||
var aValues = this.getValues(sOperands, sDelim);
|
||||
this.parseText(macro.sText, macro.aParms, aValues);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -350,6 +441,24 @@ class Macro10 {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* parseOpcode(sOpcode, sOperands)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOpcode
|
||||
* @param {string} sOperands
|
||||
* @return {boolean}
|
||||
*/
|
||||
parseOpcode(sOpcode, sOperands)
|
||||
{
|
||||
var opCode = this.dbg.parseInstruction(sOpcode);
|
||||
if (opCode >= 0) {
|
||||
this.genWord(opCode, [sOpcode, sOperands], -1);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* isSymbolChar(ch)
|
||||
*
|
||||
|
|
@ -419,21 +528,21 @@ class Macro10 {
|
|||
}
|
||||
|
||||
/**
|
||||
* getExpression(sOperands, sDelims)
|
||||
* getExpression(sOperands, sDelim)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOperands
|
||||
* @param {string} [sDelims] (eg, comma, closing parenthesis)
|
||||
* @param {string} [sDelim] (eg, comma, closing parenthesis)
|
||||
* @return {string|null} (if the operands begin with an expression, return it)
|
||||
*/
|
||||
getExpression(sOperands, sDelims = ",")
|
||||
getExpression(sOperands, sDelim = ",")
|
||||
{
|
||||
var i = 0;
|
||||
var sExp = null;
|
||||
var sOperand = null;
|
||||
var cNesting = 0;
|
||||
while (i < sOperands.length) {
|
||||
var ch = sOperands[i];
|
||||
if (sDelims.indexOf(ch) >= 0) {
|
||||
if (sDelim.indexOf(ch) >= 0) {
|
||||
break;
|
||||
}
|
||||
if (ch == '<') {
|
||||
|
|
@ -447,12 +556,35 @@ class Macro10 {
|
|||
i++;
|
||||
}
|
||||
if (!cNesting) {
|
||||
sExp = sOperands.substr(0, i);
|
||||
sOperand = sOperands.substr(0, i);
|
||||
}
|
||||
else if (cNesting > 0) {
|
||||
this.error("extra bracket(s): " + sOperands);
|
||||
}
|
||||
return sExp;
|
||||
return sOperand;
|
||||
}
|
||||
|
||||
/**
|
||||
* parseExpression(sOperand)
|
||||
*
|
||||
* This is a wrapper around the Debugger's parseExpression() function to take care of some
|
||||
* additional requirements we have, such as interpreting '.' as the current location counter.
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOperand
|
||||
* @return {number|undefined}
|
||||
*/
|
||||
parseExpression(sOperand)
|
||||
{
|
||||
/*
|
||||
* The Debugger's parseInstruction() replaces any period not PRECEDED by a decimal digit with
|
||||
* the current address, because our Debuggers' only other interpretation of a period is as the
|
||||
* suffix of a decimal integer, whereas MACRO-10's only other interpretation of a period is as
|
||||
* the decimal point within a floating-point number, so here we only replace periods that are
|
||||
* not FOLLOWED by a decimal digit.
|
||||
*/
|
||||
sOperand = sOperand.replace(/\.([^0-9]|$)/g, "$1" + this.dbg.toStrBase(this.nLocation));
|
||||
return this.dbg.parseExpression(sOperand);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -464,8 +596,8 @@ class Macro10 {
|
|||
*/
|
||||
getLiteral(sOperands)
|
||||
{
|
||||
var sLit = null;
|
||||
var cNesting = 0;
|
||||
var sLiteral = null;
|
||||
var i = 0, iLiteral = -1;
|
||||
while (i < sOperands.length) {
|
||||
var ch = sOperands[i];
|
||||
|
|
@ -479,9 +611,50 @@ class Macro10 {
|
|||
this.error("missing bracket(s): " + sOperands);
|
||||
}
|
||||
if (iLiteral >= 0) {
|
||||
sLit = sOperands.substr(iLiteral, i - iLiteral);
|
||||
sLiteral = sOperands.substr(iLiteral, i - iLiteral);
|
||||
}
|
||||
return sLit;
|
||||
return sLiteral;
|
||||
}
|
||||
|
||||
/**
|
||||
* getReserved(sOperands)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOperands
|
||||
* @return {string|null} (if the operands contain a reserved symbol, return it)
|
||||
*/
|
||||
getReserved(sOperands)
|
||||
{
|
||||
var match, sReserved = null;
|
||||
if (match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)) {
|
||||
var sLabel = match[1];
|
||||
var name = '@' + sLabel;
|
||||
this.tblMacros[name] = {name: name, nOperand: 0, aParms: [], aDefaults: [], sText: sLabel + ": 0"};
|
||||
this.aLiterals.push(name);
|
||||
sReserved = match[0];
|
||||
}
|
||||
return sReserved;
|
||||
}
|
||||
|
||||
/**
|
||||
* getValues(sOperands, sDelim)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOperands
|
||||
* @param {string} [sDelim]
|
||||
* @return {Array.<string>}
|
||||
*/
|
||||
getValues(sOperands, sDelim)
|
||||
{
|
||||
var aValues = [];
|
||||
while (sOperands) {
|
||||
sOperands = sOperands.trim();
|
||||
var sOperand = this.getExpression(sOperands, sDelim);
|
||||
if (!sOperand) break;
|
||||
aValues.push(sOperand);
|
||||
sOperands = sOperands.substr(sOperand.length + 1);
|
||||
}
|
||||
return aValues;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -519,17 +692,17 @@ class Macro10 {
|
|||
}
|
||||
|
||||
/**
|
||||
* addAssign(sName, sExp)
|
||||
* addAssign(sName, sOperand)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sName
|
||||
* @param {string} sExp
|
||||
* @param {string} sOperand
|
||||
*/
|
||||
addAssign(sName, sExp)
|
||||
addAssign(sName, sOperand)
|
||||
{
|
||||
var value = this.dbg.parseExpression(sExp);
|
||||
var value = this.parseExpression(sOperand);
|
||||
if (value === undefined) {
|
||||
this.error("parseExpression(" + sExp + ")");
|
||||
this.error("parseExpression(" + sOperand + ")");
|
||||
return;
|
||||
}
|
||||
this.addSymbol(sName, value);
|
||||
|
|
@ -543,7 +716,7 @@ class Macro10 {
|
|||
*/
|
||||
addLabel(sLabel)
|
||||
{
|
||||
this.addSymbol(sLabel, this.nAddr, true);
|
||||
this.addSymbol(sLabel, this.nLocation, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -568,7 +741,7 @@ class Macro10 {
|
|||
*/
|
||||
addMacro(sOperator, sOperands)
|
||||
{
|
||||
var match, name, aParms, nOperand, iBracket;
|
||||
var match, name, nOperand, aParms, aDefaults = [], iBracket;
|
||||
|
||||
this.chMacroOpen = '<';
|
||||
this.chMacroClose = '>';
|
||||
|
|
@ -592,24 +765,25 @@ class Macro10 {
|
|||
else if (sOperator == Macro10.PSEUDO_OP.LITERAL) {
|
||||
this.chMacroOpen = '[';
|
||||
this.chMacroClose = ']';
|
||||
name = '@' + Str.toDec(this.nLine, 5);
|
||||
name = '@' + Str.toDec(this.nLocation, 5);
|
||||
this.aLiterals.push(name);
|
||||
match = [sOperands[0], sOperands.substr(1)];
|
||||
aParms = [];
|
||||
nOperand = this.nLine;
|
||||
iBracket = 0;
|
||||
}
|
||||
else {
|
||||
var sExp = this.getExpression(sOperands);
|
||||
if (!sExp) {
|
||||
var sOperand = this.getExpression(sOperands);
|
||||
if (!sOperand) {
|
||||
this.error("missing " + sOperator + " expression: " + sOperands);
|
||||
return "";
|
||||
}
|
||||
sOperands = sOperands.substr(sExp.length + 1);
|
||||
sExp = sExp.trim();
|
||||
sOperands = sOperands.substr(sOperand.length + 1);
|
||||
sOperand = sOperand.trim();
|
||||
match = sOperands.match(/\s*(<|)(.*)/i);
|
||||
name = '@' + sOperator;
|
||||
aParms = [];
|
||||
nOperand = this.dbg.parseExpression(sExp);
|
||||
nOperand = this.parseExpression(sOperand) || 0;
|
||||
iBracket = 1;
|
||||
}
|
||||
|
||||
|
|
@ -631,12 +805,7 @@ class Macro10 {
|
|||
}
|
||||
}
|
||||
|
||||
this.tblMacros[name] = {
|
||||
name: name,
|
||||
aParms: aParms,
|
||||
nOperand: nOperand,
|
||||
sText: sText
|
||||
};
|
||||
this.tblMacros[name] = {name, nOperand, aParms, aDefaults, sText};
|
||||
|
||||
if (!this.nMacroDef) {
|
||||
this.parseMacro(name);
|
||||
|
|
@ -695,16 +864,21 @@ class Macro10 {
|
|||
this.error("label " + name + " redefined");
|
||||
return;
|
||||
}
|
||||
this.tblSymbols[name] = {
|
||||
name: name,
|
||||
value: value,
|
||||
fLabel: fLabel,
|
||||
fGlobal: fGlobal,
|
||||
fPrivate: fPrivate
|
||||
};
|
||||
this.tblSymbols[name] = {name, value, fLabel, fGlobal, fPrivate};
|
||||
this.dbg.setVariable(name, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* addXWD()
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOperands
|
||||
*/
|
||||
addXWD(sOperands)
|
||||
{
|
||||
this.genWord(0, this.getValues(sOperands), 18);
|
||||
}
|
||||
|
||||
/**
|
||||
* genASCII()
|
||||
*
|
||||
|
|
@ -751,25 +925,30 @@ class Macro10 {
|
|||
}
|
||||
|
||||
/**
|
||||
* genWord(w)
|
||||
* genWord(w, aValues, nBits)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {number} w
|
||||
* @param {Array.<string>} [aValues]
|
||||
* @param {number} [nBits] (-1 for opcode, otherwise the size of the data; default is 36)
|
||||
*/
|
||||
genWord(w)
|
||||
genWord(w, aValues, nBits = 36)
|
||||
{
|
||||
this.aWords[this.nAddr++] = w;
|
||||
this.aWords[this.nLocation] = w;
|
||||
if (aValues) this.aFixups.push({nLocation: this.nLocation, aValues, nBits});
|
||||
this.nLocation++;
|
||||
}
|
||||
}
|
||||
|
||||
Macro10.PSEUDO_OP = {
|
||||
ASCII: "ASCII",
|
||||
ASCIZ: "ASCIZ",
|
||||
SIXBIT: "SIXBIT",
|
||||
DEFINE: "DEFINE",
|
||||
LITERAL:"LITERAL",
|
||||
IFE: "IFE",
|
||||
REPEAT: "REPEAT",
|
||||
LITERAL:"LITERAL",
|
||||
PAGE: "PAGE",
|
||||
REPEAT: "REPEAT",
|
||||
SIXBIT: "SIXBIT",
|
||||
SUBTTL: "SUBTTL",
|
||||
XWD: "XWD"
|
||||
};
|
||||
|
|
|
|||
|
|
@ -27,246 +27,249 @@
|
|||
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,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 fa=0;function da(a){return"jscomp_symbol_"+(a||"")+fa++}
|
||||
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 ja(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ja(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function ka(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 qa(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})}}
|
||||
qa("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}});qa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var ra={hc:0,zb:1,jc:2,kc:3,lc:4,mc:5,nc:6,oc:7,mb:8,pc:9,Ab:10,qc:11,rc:12,Bb:13,sc:14,tc:15,uc:16,vc:17,wc:18,xc:19,yc:20,zc:21,Ac:22,Bc:23,Cc:24,Dc:25,Ec: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,lb:65,gc:66,ic:67,Fc:68,E:69,Gc:70,Hc:71,Ic:72,Jc:73,Kc:74,Lc:75,Mc:76,Nc:77,Oc:78,Pc:79,Qc:80,Q:81,Rc:82,Sc:83,Tc:84,Uc:85,Vc:86,Wc:87,
|
||||
Xc:88,Yc:89,Db:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Zc:97,$c:98,ad:99,d:100,e:101,bd:102,fd:103,gd:104,hd:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,nd:115,t:116,pd:117,qd:118,rd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127};
|
||||
function sa(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=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}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,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 m(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 Ba(a){return a.replace(/[&<>"']/g,function(a){return Ca[a]})}function Da(a,b){return(a+" ").slice(0,b)}function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ca={"&":"&","<":"<",">":">",'"':""","'":"'"};function 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,
|
||||
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=fa)}var ga=0;function fa(a){return"jscomp_symbol_"+(a||"")+ga++}
|
||||
function ha(){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 ia(this)}});ha=function(){}}function ia(a){var b=0;return la(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function la(a){ha();a={next:a};a[ba.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=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})}}
|
||||
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={lc:0,Db:1,nc:2,oc:3,pc:4,qc:5,rc:6,sc:7,qb:8,tc:9,Eb:10,uc:11,vc:12,Fb:13,wc:14,xc:15,yc:16,zc:17,Ac:18,Bc:19,Cc:20,Dc:21,Ec:22,Fc:23,Gc:24,Hc:25,Ic: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,kc:66,mc:67,Jc:68,E:69,Kc:70,Lc:71,Mc:72,Nc:73,Oc:74,Pc:75,Qc:76,Rc:77,Sc:78,Tc:79,Uc:80,Q:81,Vc:82,Wc:83,Xc:84,Yc:85,Zc:86,$c:87,
|
||||
ad:88,bd:89,Hb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,cd:97,dd:98,ed:99,d:100,e:101,fd: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,Gb: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 f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return 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,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 m(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 Da(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={"&":"&","<":"<",">":">",'"':""","'":"'"};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,
|
||||
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 Ma(a,b){var c,d={Y:null,U:null,sa:null,ra: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.sa=g.load;d.ra=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
|
||||
e[c]&255,d.Y[f++]=e[c]>>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ga=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=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.Y=e)}return d}
|
||||
function Na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Oa(){if(null==Pa){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}Pa=a}return Pa}function Qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function Ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Sa(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 Ta(a){if(!Ua){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," "))}Ua=c}return Ua[a]}function Va(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Wa(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 Xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ya(a){Za.init.push(a)}
|
||||
function eb(a){if(fb)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 gb(a){!fb&&a?(fb=!0,hb&&ib("init"),jb&&ib("show")):fb=a}function ib(a){Za[a]&&eb(Za[a])}var Ua=null,Za={init:[],show:[],exit:[]},hb=!1,jb=!1,fb=!0,Pa=null;Xa("onload",function(){hb=!0;eb(Za.init)});Xa("onpageshow",function(){jb=!0;eb(Za.show)});Xa(Sa("Opera")||Sa("iOS")?"onunload":"onbeforeunload",function(){eb(Za.exit)});
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.kb=b.comment;this.Gb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Qa=this.id:(this.Ra=this.id.substr(0,a),this.Qa=this.id.substr(a+1));this.A={ready:!1,Ja:!1,eb:!1,V:!1,error:!1};this.Ua=null;this.A.error=!1;this.X=c||0;this.C=this.v=this.H=this.G=this.ta=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
|
||||
function Ka(a,b){var c,d={Y:null,U:null,sa:null,ra: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.sa=g.load;d.ra=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
|
||||
e[c]&255,d.Y[f++]=e[c]>>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ha=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=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.Y=e)}return d}
|
||||
function Pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Qa(){if(null==Ra){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}Ra=a}return Ra}function Sa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function Ta(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ua(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 Va(a){if(!Wa){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," "))}Wa=c}return Wa[a]}function Xa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Ya(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 Za(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function $a(a){ab.init.push(a)}
|
||||
function bb(a){if(fb)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 gb(a){!fb&&a?(fb=!0,hb&&ib("init"),jb&&ib("show")):fb=a}function ib(a){ab[a]&&bb(ab[a])}var Wa=null,ab={init:[],show:[],exit:[]},hb=!1,jb=!1,fb=!0,Ra=null;Za("onload",function(){hb=!0;bb(ab.init)});Za("onpageshow",function(){jb=!0;bb(ab.show)});Za(Ua("Opera")||Ua("iOS")?"onunload":"onbeforeunload",function(){bb(ab.exit)});
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ob=b.comment;this.Kb=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,Ma:!1,hb:!1,V:!1,error:!1};this.Xa=null;this.A.error=!1;this.X=c||0;this.D=this.v=this.H=this.G=this.ta=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
|
||||
function r(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<kb.length;b++){var d=kb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function qb(a){if(void 0!==a){var b;for(b=0;b<kb.length;b++)if(kb[b].id===a)return kb[b]}return null}
|
||||
function rb(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<kb.length;d++)if(c)c==kb[d]&&(c=null);else if(!(a!=kb[d].type||b&&kb[d].id.indexOf(b)))return kb[d]}return null}function u(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function sb(a,b){var c=v;b=w(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=u(g))&&h.binding&&a.ka(h.type,h.binding,g,h.value),n=k.length}}}}
|
||||
function sb(a,b){var c=v;b=w(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=u(g))&&h.binding&&a.ja(h.type,h.binding,g,h.value),n=k.length}}}}
|
||||
function w(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 tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=Fb[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=rb(d[1],a);if(h)if(g=Gb[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 ub[a];return b}l=t.prototype;
|
||||
function tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(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=rb(d[1],a);if(h)if(g=Hb[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 ub[a];return b}l=t.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.ka=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.ta=this.J[b]=c,c.value="",this.j=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.j(a,this.Qa)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
|
||||
l.status=function(a){this.j(this.Qa+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Hb(a,b){a.A.error=!0;a.da(b)}function Ib(a){return a.A.error?(a.j(a.toString()+" error"),!0):!1}function Jb(a,b){b&&(a.A.ready?b():a.Ua=b);return a.A.ready}function Kb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Ua;a.Ua=null;b&&b()}}function Lb(a,b){a.A.Ja&&(b?a.A.eb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.A.Ja}
|
||||
function Mb(a,b){if(a.A.eb)return a.A.Ja=!1,a.A.eb=!1;if(a.A.error)return a.j(a.toString()+" error"),!1;a.A.Ja=b;return a.A.Ja}l.ua=function(){return this.A.V=!0};l.ja=function(a,b){b&&(this.A.V=!1);return!0};function Nb(a,b){if(a.C){a===a.C?b|=0:b=b||a.X;var c=a.C.X&b;return!!b&&c===b||!!(c&a.C.tb)}return!1}function Ob(a,b,c,d){a.C&&(!0===c||Nb(a,c|0))&&a.C.message(b,d)}
|
||||
l.ja=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.ta=this.J[b]=c,c.value="",this.j=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.j(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
|
||||
l.status=function(a){this.j(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Ib(a,b){a.A.error=!0;a.da(b)}function Jb(a){return a.A.error?(a.j(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Lb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Mb(a,b){a.A.Ma&&(b?a.A.hb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.A.Ma}
|
||||
function Nb(a,b){if(a.A.hb)return a.A.Ma=!1,a.A.hb=!1;if(a.A.error)return a.j(a.toString()+" error"),!1;a.A.Ma=b;return a.A.Ma}l.ua=function(){return this.A.V=!0};l.ia=function(a,b){b&&(this.A.V=!1);return!0};function Ob(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.yb)}return!1}function Pb(a,b,c,d){a.D&&(!0===c||Ob(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 mb=window?window.PCjs.Machines:{},kb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],Fb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Gb={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 mb=window?window.PCjs.Machines:{},kb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],xb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Hb={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 v="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,17)-1,x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),C=Math.pow(2,36)-1,D=Math.pow(2,36),E=Math.pow(2,32),Tb=Math.pow(2,34),Ub=Math.pow(2,36),Vb=Math.pow(2,21),Wb=Math.pow(2,26),Xb=Math.pow(2,23),Yb=Math.pow(2,30),v="pdp10",Pb="PDPjs",Zb={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 v="pdp10",Qb="PDPjs",Rb=Math.pow(2,18)-1,Sb=Math.pow(2,18),Tb=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,B=Math.pow(2,35),C=Math.pow(2,36)-1,D=Math.pow(2,36),E=Math.pow(2,32),Ub=Math.pow(2,34),Vb=Math.pow(2,36),Wb=Math.pow(2,21),Xb=Math.pow(2,26),Yb=Math.pow(2,23),Zb=Math.pow(2,30),v="pdp10",Qb="PDPjs",$b={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 $b(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.u=this.w=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.B={};this.b={START:[1,1,!0,!1,this.Sb],STEP:[1,1,!1,!1,this.Tb],ENABLE:[1,1,!1,!1,this.Nb],CONT:[1,1,!0,!1,this.Lb],DEP:[0,0,!0,!1,this.Mb],EXAM:[1,1,!0,!1,this.Ob],LOAD:[1,1,!0,!1,this.Qb],TEST:[0,0,!0,!1,this.Pb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Rb,a];this.C=this.v=this.H=this.G=null;this.exports={hold:this.Jb,toggle:this.bc,reset:this.Yb,
|
||||
set:this.ac};Kb(this)}ka($b,t);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)};
|
||||
l.ka=function(a,b,c,d){if(this.G&&this.G.ka(a,b,c,d)||this.v&&this.v.ka(a,b,c,d)||this.C&&this.C.ka(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.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):t.prototype.ka.call(this,a,b,c,d)}};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.C=d;ec(this);fc(this)};l.ua=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.Yb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.B)jc(a,c,null!=b?b:a.B[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
|
||||
l.Jb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.ac=function(a,b){if("SR"==a)return ic(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.bc=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1}
|
||||
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Sb=function(a){a||this.v.A.M||(G(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Tb=function(){};l.Nb=function(a){a||this.v.W()};
|
||||
l.Lb=function(a){if(!a&&!this.v.A.M)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.C)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Oa(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&Hb(this.v,c.stack||c.message)}this.stop();this.G&&H(this.G)}};l.Mb=function(a){a&&!this.v.A.M&&(this.P&&uc(this),a=bc(this,this.w=this.u),this.S==ac?vc(this.H,this.i,a):this.v.g(this.i,a))};
|
||||
l.Ob=function(a){if(!a&&!this.v.A.M){var b;this.R&&uc(this);this.S==ac?b=wc(this.H,this.i):b=this.v.f(this.i);bc(this,this.w=b)}};l.Qb=function(a){a||this.v.A.M||hc(this,this.u)};l.Pb=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Rb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.H.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.i&~c|a.i+b&c)}
|
||||
function hc(a,b){a.i=b&a.H.u;if(a.N!==a.i){a.N=a.i;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.B[e]=f;d.F||jc(d,e,f)}}}function bc(a,b){a.I=b%D;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.B[e]=f;d.F||jc(d,e,f)}}return a.I}function ic(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.v.i)};
|
||||
function gc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=qb(d.id);e||(e=new $b(d,!0));sb(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";Ya(gc);function Bc(a,b,c){t.call(this,"Bus",a,16);this.v=b;this.C=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.u=this.I-1;this.i=Math.log2(16384);this.B=this.I/16384|0;this.w=0;this.b=[];a=new Cc(this);Dc(a,this.C);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;Kb(this)}ka(Bc,t);l=Bc.prototype;l.reset=function(){};
|
||||
l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,Ec(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 Fc(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.D)return h.Ma+=h.D-e,h.D=e,!0;if(e>=h.D+h.Ma){n=h.size-(e-k);n>f&&(n=f);h.Ma=e-h.D+n;e=k+16384;f-=n;g++;continue}}return Gc(Hc,e,f)}e=new Cc(a,e,n,16384,d);Dc(e,a.C,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+ua(b)),!0):Gc(Jc,b,c)}
|
||||
function wc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.C(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.gb||e.Hb){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.Ib=function(a){this.w||(this.C&&Nb(this.C,4)&&Ob(this.C,"memory fault on "+I(this.C,a),!0,!0),this.v.W())};function Gc(a,b,c){r("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){t.call(this,"Device",a,256)}ka(Kc,t);l=Kc.prototype;l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.C=d;Kb(this)};l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new F(this)).data()};
|
||||
l.restore=function(){return!0};Ya(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=u(d);switch(c.type){case "default":c=new Kc(c),sb(c,d)}}});function Cc(a,b,c,d,e){this.H=a;this.id=Lc+=2;this.D=b;this.Ma=c;this.size=d||0;this.type=e||Mc;this.G=e==Nc;this.b=null;this.f=this.C=this.jb;this.g=this.w=this.Na;this.i=this.v=0;Dc(this);this.gb=this.Hb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=Cc.prototype;l.save=function(){return this.u};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.gb=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.i||(a.f=b[0]||a.jb);if(c||void 0===c)a.C=b[0]||a.jb}function Sc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Na);if(c||void 0===c)a.w=b[1]||a.Na}l.Ha=function(a,b){b?this.v++||Sc(this,Tc,!1):this.i++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.v||(a.g=a.G?a.Na:a.w):--a.i||(a.f=a.C)}
|
||||
function Dc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Rc(a,Tc,!1),(a.v=c.v)&&Sc(a,Tc,!1))}l.jb=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+I(this.b,b),!0);this.H.Ib(b);return-1};l.Na=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+I(this.b,a)+" to invalid addresses "+I(this.b,c),!0)};l.Wb=function(a){return this.u[a]};l.ec=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.gb=!0)};
|
||||
l.Ub=function(a,b){if(this.b&&null!=this.D){var c=this.b;Vc(c,this.D+a,2,c.N)&&c.W(!1)}return this.C(a,b)};l.dc=function(a,b,c){if(this.b&&null!=this.D){var d=this.b;Vc(d,this.D+b,2,d.I)&&d.W(!1)}this.G?this.Na(a,0,c):this.w(a,b,c)};var Mc=0,Nc=2,Ic=["NONE","RAM","ROM"],Lc=0,Qc=[],Pc=[Cc.prototype.Wb,Cc.prototype.ec],Tc=[Cc.prototype.Ub,Cc.prototype.dc];
|
||||
function Wc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ya=0;this.ab=b;this.ea=c;this.Za=Math.round(this.ab/1E4)/100;this.ba=this.Za*this.ea;this.$a=this.Ba=this.fa=this.Sa=0;this.A.M=this.A.Xa=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.Ia=!1;this.za=this.ha=0;this.Aa=+a.csStart;this.la=+a.csInterval;this.ma=+a.csStop;this.O=[];this.sb=this.Zb.bind(this);this.T=this.N=this.R=this.S=this.L=this.ya=this.P=this.na=this.bb=this.aa=
|
||||
0;this.Fa=null;Kb(this)}ka(Wc,t);l=Wc.prototype;l.Da=function(a,b,c,d){this.G=a;this.H=b;this.C=d;this.Fa=a.u;for(a=0;a<Xc.length;a++)(b=this.J[Xc[a]])&&this.G.ka(null,Xc[a],b);Kb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.ua=function(a,b){var c=Yc(this.G,"autoStart");null!=c?this.A.Z="true"==c?!0:"false"==c?!1:!!c:null==this.A.Z&&(this.A.Z=!this.C&&void 0===this.J.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.C?(a=this.C,b=this.A.Z,a.Aa=!0,a.j("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.xa&&(b=a.xa,a.xa=null,cd(a,b))):this.status("No debugger detected");this.A.Z||this.j("CPU will not be auto-started "+(this.Fa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ja=function(a){return a?this.save():!0};l.Z=function(){return this.A.M?!0:this.A.Z?(pc(this),!0):!1};l.wb=function(){return 0};function $c(a){void 0===a.Aa&&(a.Aa=0);void 0===a.la&&(a.la=-1);void 0===a.ma&&(a.ma=-1);a.A.Ia=0<=a.Aa&&0<a.la;a.A.Ia&&(a.za=0,a.ha=a.Aa-a.T)}function tc(a,b){if(a.A.Ia){var c=!1;a.za=a.za+a.wb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.la,c=!0);0<=a.ma&&a.ma<=dd(a)&&(a.la=a.ma=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+m(a.za))}}
|
||||
l.ka=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.G)if(a=d.G,a.A.V)a=!0;else{var b=null,c,h=pb(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.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Ua?" (waiting for notification)":""))+".");a=!1}a&&(d.A.M?d.W():pc(d))},!0;case "speed":return this.J[b]=
|
||||
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){ed(d,d.ea<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function fd(a,b){var c=1;b&&1<a.ea&&a.aa&&(c=a.aa/a.Za);a.$a=Math.round(1E3/gd);a.Ba=Math.floor(a.ab/gd*c);b||(a.fa=a.Ba);a.Sa=0}function dd(a){return a.T+a.N+a.R-a.S}function Zc(a){a.aa=0;a.bb=0;a.T=a.N=a.R=a.S=0;$c(a);ed(a,1)}
|
||||
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Za*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&hd(a.G)}sc(a,a.N);a.N=0;a.L=nb();a.P=0;fd(a);return d}function id(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 jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
|
||||
function rc(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 kd(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
|
||||
l.Zb=function(){if(this.A.M){this.Sa>=this.ab&&fd(this,!0);this.na=0;this.ya=nb();if(this.P){var a=this.ya-this.P;a>this.$a&&(this.L+=a,this.L>this.ya&&(this.L=this.ya))}try{do{var b=id(this,this.A.Ia?1:this.Ba);try{this.Oa(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.na+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ba;++this.bb>=ld&&(this.G&&H(this.G,void 0),this.bb=0);break}}while(this.A.M)}catch(e){this.W();this.G&&this.G.stop(nb(),dd(this));Hb(this,
|
||||
e.stack||e.message);return}if(this.A.M){a=setTimeout;b=this.sb;this.P=nb();var c=this.$a;this.na&&(c=Math.round(c*this.na/this.Ba));var c=c-(this.P-this.ya),d=this.P-this.L;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.L-=c),c=0;this.Sa+=this.na;this.P+=c;a(b,c)}}};
|
||||
function pc(a,b){if(!Ib(a))if(a.A.M)a.j(a.toString()+" busy");else{ed(a);a.A.M=!0;a.A.Xa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&hd(a.G,!0),a.G.start(a.L,dd(a)));a.C||a.status("Started");setTimeout(a.sb,0)}}l.Oa=function(){return 0};l.W=function(a){var b=!1;if(this.A.M){kd(this);sc(this,this.N);this.N=0;this.A.M=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(nb(),dd(this));b=!0;this.C||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
|
||||
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.rb=b;this.Pa=+a.addrReset||0;this.Fb=nd.bind(this);this.w=J.bind(this);this.wa=null;this.ob=[];this.A.complete=!1}ka(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.rb);this.A.M&&this.W();this.b=this.K=this.Ca=0;this.i=this.xa=this.Pa;this.I=this.qa=-1;this.F=this.u=0;this.cb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.i;this.B=0;this.f=this.Vb;this.g=this.fc;this.wa=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};
|
||||
l.wb=function(){return 0};l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ca,this.i,this.qa,this.I,this.u,this.B,this.xa,this.va,this.Pa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,od(this));a.set(4,jd(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.Ca=b.next().value;this.i=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.B=b.next().value;this.xa=b.next().value;this.va=b.next().value;this.Pa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=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.cc===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.wa,this.wa=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Rb;return c}function G(a,b){a.i=b%Rb}function od(a){var b=[];for(a=a.wa;a;)b.push(a.cc),a=a.next;return b}l.Vb=function(a){var b=this.H;a=this.va=a;return b.b[(a&b.u)>>>b.i].f(a&16383,a)};l.fc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b};
|
||||
l.Oa=function(a){this.A.complete=!0;var b=this.C?qd(this.C)?1:this.A.Xa?-1:0:0,c=a?this.A.Xa?0:1:-1;this.A.Xa=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(rd(this.C,this.i,c)){this.W();break}++b||(this.B&=-5);c||c++}if(a=this.B&11)this.B&2?this.wa||(this.B&=-3):this.B&1&&this.B++,a=!1;if(a){if(this.B&4&&rd(this.C,this.i,c)){this.W();break}if(0>c)break}}this.B&=15;this.K&4194304?this.K=this.f(this.b):0<=this.qa?(this.K=this.Ca=this.f(this.qa),this.qa=-1):(this.K=this.Ca=
|
||||
this.f(this.xa=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Qb;a=this.K&4194304?-1:this.Ca/Xb|0;0<=a&&this.Fb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Ya(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new md(d);sb(d,c)}});function nd(a){sd[a>>4].call(this,a,a&15)}function L(a){this.w(a)}
|
||||
function td(){var a=0,b=this.f(this.b),c=b/Yb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Yb+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function ud(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&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 vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function wd(a,b){this.g(b,this.f(this.b))}function xd(a,b){this.g(b,this.b)}function yd(a,b){this.g(this.b,this.f(b))}function zd(a,b){this.g(b,0)}function Qd(a,b){this.g(b,C-this.f(b))}function Rd(a,b){this.g(b,C)}
|
||||
function Sd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Td(a,d,c)+(c-(c&x)))}function Ud(a,b){var c=this.f(b);this.g(b,Td(a,c,0))}function Vd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Td(a,c,b)+(b-(b&x)))}function Wd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Xd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Td(a,d,c)+c)}
|
||||
function Yd(a,b){var c=this.b*y,d=this.f(b);this.g(b,Td(a,d,c)+c)}function Zd(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Td(a,c,b)+b)}function $d(a,b){var c=this.f(this.b),d=(c&x)*y,c=Td(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ae(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,be(a,d,c)+c)}function ce(a,b){var c=this.f(b);this.g(b,be(a,c,this.b)+this.b)}function de(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,be(a,c,b)+b)}
|
||||
function ee(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Sb?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function fe(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,be(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,be(a,c,0))}function he(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,be(a,c,b)+b)}function ie(a,b){var c=this.f(this.b),d=c/y|0,c=be(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function M(a){je[a&7].call(this,a,a>>3&127)}
|
||||
function ke(){}function le(){}function J(a){this.j("undefined opcode: "+ua(a));pd(this,-1);this.W()}function me(a){a>z&&(a!=A?a=Ub-a:this.u|=163840);return a}function N(a,b){var c=(a+b)%D;ne.call(this,a,b,c);return c}
|
||||
function oe(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.cb;f[0]=0;f[1]=0;f=this.oa;f[0]=1;f[1]=0;f=this.ga;f[0]=c;f[1]=0;c=this.pa;c[0]=a;for(c[1]=b;0<pe(this.pa,this.ga);)qe(this.ga,this.ga),qe(this.oa,this.oa);do{if(0<=pe(this.pa,this.ga)&&(b=this.pa,a=this.ga,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=D,b[1]--),qe(this.cb,this.oa),re(this.pa)))break;se(this.ga);se(this.oa)}while(!re(this.oa));
|
||||
a=this.cb[0];this.F=this.pa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}
|
||||
function te(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(d=D-d,b=!b);e>z&&(e=D-e,b=!b);if(d<y&&e<y)a=d*e,f=0;else{a=d&x;d=Math.trunc(d/y);f=e&x;var e=Math.trunc(e/y),g=a*f,h=d*f+Math.trunc(g/y);f=Math.trunc(h/y);h=(h&x)+a*e;a=h*y+(g&x);f+=Math.trunc(h/y)+d*e}b&&(a?(f=C-f,a=D-a):f&&(f=D-f));if(c)return(f||a>z)&&(f!=C||a<=z)&&(this.u|=131072),a;c=a;b=f;a=b-b%A;b=2*b%D+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b}
|
||||
function ue(a){a?a==A?this.u|=163840:a=Ub-a:this.u|=98304;return a}function O(a,b){var c=a-b;0>c&&(c+=D);ne.call(this,c,b,a);return c}function ne(a,b,c){a=Math.trunc(a/Tb);b=Math.trunc(b/Tb);c=Math.trunc(c/Tb);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function P(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function Q(a,b){return P(a,(~(b/E|0)&15)*E+(~b>>>0))}function R(a,b){return(a<A?a:a-D)-(b<A?b:b-A)}
|
||||
function ve(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function T(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function U(a){return a<A?a:a-D}function V(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function W(a){return(a/y|0)+(a&x)*y}function be(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Sb?x*y:0}return b}function Td(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
|
||||
function ac(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.u=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=bc;this.C={};this.b={START:[1,1,!0,!1,this.Wb],STEP:[1,1,!1,!1,this.Xb],ENABLE:[1,1,!1,!1,this.Rb],CONT:[1,1,!0,!1,this.Pb],DEP:[0,0,!0,!1,this.Qb],EXAM:[1,1,!0,!1,this.Sb],LOAD:[1,1,!0,!1,this.Ub],TEST:[0,0,!0,!1,this.Tb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Vb,a];this.D=this.v=this.H=this.G=null;this.exports={hold:this.Nb,toggle:this.fc,reset:this.bc,
|
||||
set:this.ec};Lb(this)}ma(ac,t);l=ac.prototype;l.reset=function(a){this.stop();a&&cc(this,this.w=0)};
|
||||
l.ja=function(a,b,c,d){if(this.G&&this.G.ja(a,b,c,d)||this.v&&this.v.ja(a,b,c,d)||this.D&&this.D.ja(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(){dc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ec(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){dc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ec(a,b)}}(this,b),!0):t.prototype.ja.call(this,a,b,c,d)}};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;fc(this);gc(this)};l.ua=function(a,b){if(!b)if(this.T&&hc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ia=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])ic(this,this.i=a[0]),cc(this,this.w=a[1]),jc(this,a[2]);return!0};l.bc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}gc(this);return!0};function kc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function fc(a,b){for(var c in a.C)kc(a,c,null!=b?b:a.C[c])}function lc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function gc(a){for(var b in a.b)lc(a,b,a.b[b][1])}
|
||||
l.Nb=function(a,b,c){if(dc(this,b)){if(c){var d=this;setTimeout(function(){ec(d,b);a&&a()},+c);return!1}ec(this,b)}return!0};l.ec=function(a,b){if("SR"==a)return jc(this,ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.fc=function(a){return dc(this,a)?(ec(this,a),!0):!1};function dc(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1}
|
||||
function ec(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Wb=function(a){a||this.v.A.N||(G(this.v,this.i),this.b[pc]&&this.b[pc][1]&&qc(this.v))};l.Xb=function(){};l.Rb=function(a){a||this.v.W()};
|
||||
l.Pb=function(a){if(!a&&!this.v.A.N)if(this.b[pc]&&this.b[pc][1])qc(this.v);else{if((a=this.D)&&!Mb(a,!0))Nb(a,!0),rc(a,0,null),Nb(a,!1);else try{var b=this.v.Qa(1);0<b&&(sc(this.v,b),tc(this.v,b,!0),uc(this.v,b))}catch(c){"number"!=typeof c&&Ib(this.v,c.stack||c.message)}this.stop();this.G&&H(this.G)}};l.Qb=function(a){a&&!this.v.A.N&&(this.P&&vc(this),a=cc(this,this.w=this.u),this.S==bc?wc(this.H,this.i,a):this.v.g(this.i,a))};
|
||||
l.Sb=function(a){if(!a&&!this.v.A.N){var b;this.R&&vc(this);this.S==bc?b=xc(this.H,this.i):b=this.v.f(this.i);cc(this,this.w=b)}};l.Ub=function(a){a||this.v.A.N||ic(this,this.u)};l.Tb=function(a){a?(this.F=!0,fc(this,!0)):(this.F=!1,fc(this),jc(this,0))};l.Vb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function vc(a){var b=1,c=a.H.u;a.b[mc]&&a.b[mc][1]||(b=-b);ic(a,a.i&~c|a.i+b&c)}
|
||||
function ic(a,b){a.i=b&a.H.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||kc(d,e,f)}}}function cc(a,b){a.I=b%D;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||kc(d,e,f)}}return a.I}function jc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;gc(a);return!0}l.stop=function(){ic(this,this.v.i)};
|
||||
function hc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=qb(d.id);e||(e=new ac(d,!0));sb(e,c)}}var bc=7,nc="DEP",pc="ENABLE",oc="EXAM",mc="STEP";$a(hc);function yc(a,b,c){t.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.u=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new zc(this);Ec(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Lb(this)}ma(yc,t);l=yc.prototype;l.reset=function(){};
|
||||
l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ia=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,Fc(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 Gc(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.Oa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Oa){n=h.size-(e-k);n>f&&(n=f);h.Oa=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Hc(Ic,e,f)}e=new zc(a,e,n,16384,d);Ec(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Jc[d]+" at "+wa(b)),!0):Hc(Kc,b,c)}
|
||||
function xc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function wc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Fc(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&&Ob(this.D,4)&&Pb(this.D,"memory fault on "+I(this.D,a),!0,!0),this.v.W())};function Hc(a,b,c){r("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}var Ic=1,Kc=2;function Lc(a){t.call(this,"Device",a,256)}ma(Lc,t);l=Lc.prototype;l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.D=d;Lb(this)};l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ia=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new F(this)).data()};
|
||||
l.restore=function(){return!0};$a(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=u(d);switch(c.type){case "default":c=new Lc(c),sb(c,d)}}});function zc(a,b,c,d,e){this.H=a;this.id=Mc+=2;this.B=b;this.Oa=c;this.size=d||0;this.type=e||Nc;this.G=e==Oc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Pa;this.i=this.v=0;Ec(this);this.jb=this.Lb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pc(this,Qc)}else Pc(this)}l=zc.prototype;l.save=function(){return this.u};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.jb=!0):!1};function Pc(a,b){b||(b=Rc);Sc(a,b,void 0);Tc(a,b,void 0)}function Sc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Tc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Pa);if(c||void 0===c)a.w=b[1]||a.Pa}l.Ia=function(a,b){b?this.v++||Tc(this,Uc,!1):this.i++||Sc(this,Uc,!1)};function Vc(a,b){b?--a.v||(a.g=a.G?a.Pa:a.w):--a.i||(a.f=a.D)}
|
||||
function Ec(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Sc(a,Uc,!1),(a.v=c.v)&&Tc(a,Uc,!1))}l.nb=function(a,b){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to read invalid address "+I(this.b,b),!0);this.H.Mb(b);return-1};l.Pa=function(a,b,c){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to write "+I(this.b,a)+" to invalid addresses "+I(this.b,c),!0)};l.$b=function(a){return this.u[a]};l.ic=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.jb=!0)};
|
||||
l.Yb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Wc(c,this.B+a,2,c.M)&&c.W(!1)}return this.D(a,b)};l.hc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Wc(d,this.B+b,2,d.I)&&d.W(!1)}this.G?this.Pa(a,0,c):this.w(a,b,c)};var Nc=0,Oc=2,Jc=["NONE","RAM","ROM"],Mc=0,Rc=[],Qc=[zc.prototype.$b,zc.prototype.ic],Uc=[zc.prototype.Yb,zc.prototype.hc];
|
||||
function Xc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.ea=c;this.bb=Math.round(this.eb/1E4)/100;this.ba=this.bb*this.ea;this.cb=this.Ba=this.fa=this.Va=0;this.A.N=this.A.$a=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.La=!1;this.za=this.la=0;this.Aa=+a.csStart;this.ka=+a.csInterval;this.ma=+a.csStop;this.O=[];this.xb=this.cc.bind(this);this.T=this.M=this.R=this.S=this.L=this.ya=this.P=this.na=this.fb=this.aa=
|
||||
0;this.Ra=null;Lb(this)}ma(Xc,t);l=Xc.prototype;l.Da=function(a,b,c,d){this.G=a;this.H=b;this.D=d;this.Ra=a.u;for(a=0;a<Yc.length;a++)(b=this.J[Yc[a]])&&this.G.ja(null,Yc[a],b);Lb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.ua=function(a,b){var c=Zc(this.G,"autoStart");null!=c?this.A.Z="true"==c?!0:"false"==c?!1:!!c:null==this.A.Z&&(this.A.Z=!this.D&&void 0===this.J.run);if(!b){if(a){$c(this);if(!this.restore(a))return!1;ad(this)}else this.reset();this.D?(a=this.D,b=this.A.Z,a.za=!0,a.j("Type ? for help with PDPjs Debugger commands"),bd(a),b||cd(a),a.wa&&(b=a.wa,a.wa=null,dd(a,b))):this.status("No debugger detected");this.A.Z||this.j("CPU will not be auto-started "+(this.Ra?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ia=function(a){return a?this.save():!0};l.Z=function(){return this.A.N?!0:this.A.Z?(qc(this),!0):!1};l.Bb=function(){return 0};function ad(a){void 0===a.Aa&&(a.Aa=0);void 0===a.ka&&(a.ka=-1);void 0===a.ma&&(a.ma=-1);a.A.La=0<=a.Aa&&0<a.ka;a.A.La&&(a.za=0,a.la=a.Aa-a.T)}function uc(a,b){if(a.A.La){var c=!1;a.za=a.za+a.Bb()|0;a.la-=b;0>=a.la&&(a.la+=a.ka,c=!0);0<=a.ma&&a.ma<=ed(a)&&(a.ka=a.ma=-1,ad(a),a.W(),c=!0);c&&a.j(ed(a)+" cycles: checksum="+m(a.za))}}
|
||||
l.ja=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.G)if(a=d.G,a.A.V)a=!0;else{var b=null,c,h=pb(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.V);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.W():qc(d))},!0;case "speed":return this.J[b]=
|
||||
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){fd(d,d.ea<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function tc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function gd(a,b){var c=1;b&&1<a.ea&&a.aa&&(c=a.aa/a.bb);a.cb=Math.round(1E3/hd);a.Ba=Math.floor(a.eb/hd*c);b||(a.fa=a.Ba);a.Va=0}function ed(a){return a.T+a.M+a.R-a.S}function $c(a){a.aa=0;a.fb=0;a.T=a.M=a.R=a.S=0;ad(a);fd(a,1)}
|
||||
function fd(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.bb*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&id(a.G)}tc(a,a.M);a.M=0;a.L=nb();a.P=0;gd(a);return d}function jd(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 kd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
|
||||
function sc(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 ld(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
|
||||
l.cc=function(){if(this.A.N){this.Va>=this.eb&&gd(this,!0);this.na=0;this.ya=nb();if(this.P){var a=this.ya-this.P;a>this.cb&&(this.L+=a,this.L>this.ya&&(this.L=this.ya))}try{do{var b=jd(this,this.A.La?1:this.Ba);try{this.Qa(b)}catch(e){if("number"!=typeof e)throw e;}b=ld(this,!0);this.na+=b;this.M+=b;uc(this,b);sc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ba;++this.fb>=md&&(this.G&&H(this.G,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.W();this.G&&this.G.stop(nb(),ed(this));Ib(this,
|
||||
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.xb;this.P=nb();var c=this.cb;this.na&&(c=Math.round(c*this.na/this.Ba));var c=c-(this.P-this.ya),d=this.P-this.L;d&&(this.aa=Math.round(this.M/(10*d))/100,864E5<=d&&(this.T=0,fd(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.L-=c),c=0;this.Va+=this.na;this.P+=c;a(b,c)}}};
|
||||
function qc(a,b){if(!Jb(a))if(a.A.N)a.j(a.toString()+" busy");else{fd(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&id(a.G,!0),a.G.start(a.L,ed(a)));a.D||a.status("Started");setTimeout(a.xb,0)}}l.Qa=function(){return 0};l.W=function(a){var b=!1;if(this.A.N){ld(this);tc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(nb(),ed(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var hd=30,md=15,Yc=["power","reset"];
|
||||
function nd(a){var b=+a.model||1001;Xc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Jb=od.bind(this);this.w=J.bind(this);this.wa=null;this.sb=[];this.A.complete=!1}ma(nd,Xc);l=nd.prototype;l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.W();this.b=this.K=this.Ca=0;this.i=this.xa=this.Sa;this.I=this.qa=-1;this.F=this.u=0;this.gb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.i;this.C=0;this.f=this.Zb;this.g=this.jc;this.wa=null;$c(this);this.A.error=!1;Xc.prototype.reset.call(this)};
|
||||
l.Bb=function(){return 0};l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ca,this.i,this.qa,this.I,this.u,this.C,this.xa,this.va,this.Sa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,pd(this));a.set(4,kd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.b=b.next().value;this.K=b.next().value;this.Ca=b.next().value;this.i=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.C=b.next().value;this.xa=b.next().value;this.va=b.next().value;this.Sa=b.next().value;b=a[2];this.T=b[0];fd(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.sb.length;d++){var e=this.sb[d];if(e.gc===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.wa,this.wa=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function qd(a,b){var c=a.i;a.i=(c+b)%Sb;return c}function G(a,b){a.i=b%Sb}function pd(a){var b=[];for(a=a.wa;a;)b.push(a.gc),a=a.next;return b}l.Zb=function(a){var b=this.H;a=this.va=a;return b.b[(a&b.u)>>>b.i].f(a&16383,a)};l.jc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b};
|
||||
l.Qa=function(a){this.A.complete=!0;var b=this.D?rd(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(sd(this.D,this.i,c)){this.W();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.wa||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&sd(this.D,this.i,c)){this.W();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.f(this.b):0<=this.qa?(this.K=this.Ca=this.f(this.qa),this.qa=-1):(this.K=this.Ca=
|
||||
this.f(this.xa=this.i),this.i=(this.i+1)%Sb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Rb;a=this.K&4194304?-1:this.Ca/Yb|0;0<=a&&this.Jb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};$a(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new nd(d);sb(d,c)}});function od(a){td[a>>4].call(this,a,a&15)}function K(a){this.w(a)}
|
||||
function ud(){var a=0,b=this.f(this.b),c=b/Zb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Zb+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Zb&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 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/Zb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function xd(a,b){this.g(b,this.f(this.b))}function yd(a,b){this.g(b,this.b)}function zd(a,b){this.g(this.b,this.f(b))}function Ad(a,b){this.g(b,0)}function Bd(a,b){this.g(b,C-this.f(b))}function Rd(a,b){this.g(b,C)}
|
||||
function Sd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Td(a,d,c)+(c-(c&y)))}function Ud(a,b){var c=this.f(b);this.g(b,Td(a,c,0))}function Vd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Td(a,c,b)+(b-(b&y)))}function Wd(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 Xd(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Td(a,d,c)+c)}
|
||||
function Yd(a,b){var c=this.b*z,d=this.f(b);this.g(b,Td(a,d,c)+c)}function Zd(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Td(a,c,b)+b)}function $d(a,b){var c=this.f(this.b),d=(c&y)*z,c=Td(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ae(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,be(a,d,c)+c)}function ce(a,b){var c=this.f(b);this.g(b,be(a,c,this.b)+this.b)}function de(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,be(a,c,b)+b)}
|
||||
function ee(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>Tb?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function fe(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,be(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,be(a,c,0))}function he(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,be(a,c,b)+b)}function ie(a,b){var c=this.f(this.b),d=c/z|0,c=be(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){je[a&7].call(this,a,a>>3&127)}
|
||||
function ke(){}function le(){}function J(a){this.j("undefined opcode: "+wa(a));qd(this,-1);this.W()}function me(a){a>A&&(a!=B?a=Vb-a:this.u|=163840);return a}function O(a,b){var c=(a+b)%D;ne.call(this,a,b,c);return c}
|
||||
function oe(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%D;b=this.F=f+Math.trunc(b/2);c>A&&(c=D-c,d=!d);b>A&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.oa;f[0]=1;f[1]=0;f=this.ga;f[0]=c;f[1]=0;c=this.pa;c[0]=a;for(c[1]=b;0<pe(this.pa,this.ga);)qe(this.ga,this.ga),qe(this.oa,this.oa);do{if(0<=pe(this.pa,this.ga)&&(b=this.pa,a=this.ga,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=D,b[1]--),qe(this.gb,this.oa),re(this.pa)))break;se(this.ga);se(this.oa)}while(!re(this.oa));
|
||||
a=this.gb[0];this.F=this.pa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}
|
||||
function te(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=D-d,b=!b);e>A&&(e=D-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=C-f,a=D-a):f&&(f=D-f));if(c)return(f||a>A)&&(f!=C||a<=A)&&(this.u|=131072),a;c=a;b=f;a=b-b%B;b=2*b%D+Math.trunc(c/B);c=a+c%B;d=b-b%B;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b}
|
||||
function ue(a){a?a==B?this.u|=163840:a=Vb-a:this.u|=98304;return a}function P(a,b){var c=a-b;0>c&&(c+=D);ne.call(this,c,b,a);return c}function ne(a,b,c){a=Math.trunc(a/Ub);b=Math.trunc(b/Ub);c=Math.trunc(c/Ub);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Q(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function R(a,b){return Q(a,(~(b/E|0)&15)*E+(~b>>>0))}function S(a,b){return(a<B?a:a-D)-(b<B?b:b-B)}
|
||||
function ve(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function V(a){return a<B?a:a-D}function W(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function X(a){return(a/z|0)+(a&y)*z}function be(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>Tb?y*z:0}return b}function Td(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 qe(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function pe(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function se(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function re(a){return!a[0]&&!a[1]}
|
||||
var sd=[L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},td,function(a,b){0>this.I&&td.call(this);ud.call(this,0,b)},ud,function(a,b){0>this.I&&td.call(this);vd.call(this,0,b)},vd,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)},
|
||||
var td=[K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},ud,function(a,b){0>this.I&&ud.call(this);vd.call(this,0,b)},vd,function(a,b){0>this.I&&ud.call(this);wd.call(this,0,b)},wd,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)},wd,xd,yd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ue.call(this,this.f(this.b)))},function(a,b){this.g(b,ue.call(this,this.b))},function(a,b){this.g(this.b,
|
||||
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},xd,yd,zd,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,ue.call(this,this.f(this.b)))},function(a,b){this.g(b,ue.call(this,this.b))},function(a,b){this.g(this.b,
|
||||
ue.call(this,this.f(b)))},function(a,b){a=ue.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,me.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,me.call(this,this.f(b)))},function(a,b){a=me.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,te.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,te.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,te.call(this,this.f(b),this.f(this.b),
|
||||
!0))},function(a,b){this.g(this.b,this.g(b,te.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,te.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,te.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,te.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,te.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=oe.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=oe.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=oe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=oe.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=oe.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=oe.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=oe.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=oe.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>z?-(D-a):a;0<c?(35<=c?(d=0>d?A:0,c=z):(d=d*Math.pow(2,c)%A,c=A-Math.pow(2,35-c)),a<=z?a+c>z&&(this.u|=131072):a-c<=z&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+D: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)%D+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)%D:-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<A;)a++,c*=2;G(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<A||d>z&&
|
||||
d<C)this.u|=131072;if(71<=a){if(0<e&&e<A||e>z&&e<C)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%A,c=A-Math.pow(2,70-a),f<=z?e+c>z&&(this.u|=131072):e-c<=z&&(this.u|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.u|=131072):(f-c<=z&&(this.u|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>z?C:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=C,e+=A)):(c=d>z?D-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+
|
||||
d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<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)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<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)%D,d=0):(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D):-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)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},J,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.M||(this.g(b,d*
|
||||
y+c),a||pd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<A&&G(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=A&&G(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,G(this,this.b))},function(){this.qa=this.b},J,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&x,this.f(this.b));a>=D&&(a-=D);a/y|0||(this.u|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&x);this.g(this.b,c);this.b==b&&(a=c);a-=262145;
|
||||
0>a&&(a+=D);(a/y|0)==x&&(this.u|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.u&x)*y+this.i);G(this,this.b+1)},function(a,b){this.g(b,(this.u&x)*y+this.i);G(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,N.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,N.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,N.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,N.call(this,this.f(b),this.f(this.b))))},
|
||||
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))))},ke,function(a,b){0>R(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){R(this.f(b),this.b)||G(this,this.i+1)},function(a,b){0>=R(this.f(b),this.b)&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){0<=R(this.f(b),this.b)&&G(this,
|
||||
this.i+1)},function(a,b){R(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){0<R(this.f(b),this.b)&&G(this,this.i+1)},le,function(a,b){0>R(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))||G(this,this.i+1)},function(a,b){0>=R(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){0<=R(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){0<R(this.f(b),this.f(this.b))&&
|
||||
G(this,this.i+1)},ke,function(a,b){0>U(this.f(b))&&G(this,this.b)},function(a,b){U(this.f(b))||G(this,this.b)},function(a,b){0>=U(this.f(b))&&G(this,this.b)},function(){G(this,this.b)},function(a,b){0<=U(this.f(b))&&G(this,this.b)},function(a,b){U(this.f(b))&&G(this,this.b)},function(a,b){0<U(this.f(b))&&G(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)||G(this,this.i+1);b&&this.g(b,
|
||||
a)},function(a,b){a=this.f(this.b);0>=U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){G(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,N.call(this,this.f(b),1))},function(a,b){a=this.g(b,N.call(this,this.f(b),1));0>U(a)&&G(this,this.b)},function(a,b){a=this.g(b,
|
||||
N.call(this,this.f(b),1));U(a)||G(this,this.b)},function(a,b){a=this.g(b,N.call(this,this.f(b),1));0>=U(a)&&G(this,this.b)},function(a,b){this.g(b,N.call(this,this.f(b),1));G(this,this.b)},function(a,b){a=this.g(b,N.call(this,this.f(b),1));0<=U(a)&&G(this,this.b)},function(a,b){a=this.g(b,N.call(this,this.f(b),1));U(a)&&G(this,this.b)},function(a,b){a=this.g(b,N.call(this,this.f(b),1));0<U(a)&&G(this,this.b)},function(a,b){a=this.g(this.b,N.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,
|
||||
b){a=this.g(this.b,N.call(this,this.f(this.b),1));0>U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,N.call(this,this.f(this.b),1));U(a)||G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,N.call(this,this.f(this.b),1));0>=U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,N.call(this,this.f(this.b),1));G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,N.call(this,this.f(this.b),1));0<=U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,
|
||||
b){a=this.g(this.b,N.call(this,this.f(this.b),1));U(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,N.call(this,this.f(this.b),1));0<U(a)&&G(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>U(a)&&G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));U(a)||G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=U(a)&&G(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),
|
||||
1));G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=U(a)&&G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));U(a)&&G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<U(a)&&G(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>U(a)&&G(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));U(a)||G(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>=U(a)&&G(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));G(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<=U(a)&&G(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));U(a)&&G(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<U(a)&&G(this,this.i+
|
||||
1);b&&this.g(b,a)},zd,zd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,P(this.f(b),this.f(this.b)))},function(a,b){this.g(b,P(this.f(b),this.b))},function(a,b){this.g(this.b,P(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P(this.f(b),this.f(this.b))))},function(a,b){this.g(b,P(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,P(C-this.f(b),this.b))},function(a,b){this.g(this.b,P(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,
|
||||
this.g(b,P(C-this.f(b),this.f(this.b))))},wd,xd,le,wd,function(a,b){this.g(b,P(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,P(this.f(b),C-this.b))},function(a,b){this.g(this.b,P(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P(this.f(b),C-this.f(this.b))))},ke,ke,yd,yd,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(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,P(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,P(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,P(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P(C-this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,
|
||||
ve(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ve(this.f(b),this.b))},function(a,b){this.g(this.b,ve(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ve(this.f(b),this.f(this.b))))},Qd,Qd,function(a,b){this.g(this.b,C-this.f(b))},function(a,b){this.g(this.b,this.g(b,C-this.f(b)))},function(a,b){this.g(b,T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(C-this.f(b),this.b))},function(a,b){this.g(this.b,T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,
|
||||
T(C-this.f(b),this.f(this.b))))},function(a,b){this.g(b,C-this.f(this.b))},function(a,b){this.g(b,C-this.b)},function(){this.g(this.b,C-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.b))},function(a,b){this.g(this.b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,T(C-this.f(b),C-this.f(this.b)))},function(a,
|
||||
b){this.g(b,T(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,T(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(C-this.f(b),C-this.f(this.b))))},Rd,Rd,function(){this.g(this.b,C)},function(a,b){this.g(this.b,this.g(b,C))},Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ke,ke,function(a,b){P(this.f(b),this.b)||G(this,this.i+1)},function(a,
|
||||
b){P(this.f(b),this.b*y)||G(this,this.i+1)},function(){G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){P(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){P(this.f(b),this.b*y)&&G(this,this.i+1)},le,le,function(a,b){P(this.f(b),this.f(this.b))||G(this,this.i+1)},function(a,b){P(this.f(b),W(this.f(this.b)))||G(this,this.i+1)},function(){G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){P(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){P(this.f(b),W(this.f(this.b)))&&
|
||||
G(this,this.i+1)},function(a,b){this.g(b,Q(this.f(b),this.b))},function(a,b){this.g(b,Q(this.f(b),this.b*y))},function(a,b){a=this.f(b);P(a,this.b)||G(this,this.i+1);this.g(b,Q(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;P(a,c)||G(this,this.i+1);this.g(b,Q(a,c))},function(a,b){G(this,this.i+1);this.g(b,Q(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,Q(this.f(b),this.b*y))},function(a,b){a=this.f(b);P(a,this.b)&&G(this,this.i+1);this.g(b,Q(a,this.b))},function(a,b){a=this.f(b);
|
||||
var c=this.b*y;P(a,c)&&G(this,this.i+1);this.g(b,Q(a,c))},function(a,b){this.g(b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);P(a,c)||G(this,this.i+1);this.g(b,Q(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)||G(this,this.i+1);this.g(b,Q(a,c))},function(a,b){G(this,this.i+1);this.g(b,Q(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,Q(this.f(b),W(this.f(this.b))))},function(a,
|
||||
b){a=this.f(b);var c=this.f(this.b);P(a,c)&&G(this,this.i+1);this.g(b,Q(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)&&G(this,this.i+1);this.g(b,Q(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*y))},function(a,b){a=this.f(b);P(a,this.b)||G(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;P(a,c)||G(this,this.i+1);this.g(b,V(a,c))},function(a,b){G(this,this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){G(this,
|
||||
this.i+1);this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);P(a,this.b)&&G(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;P(a,c)&&G(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),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);P(a,c)||G(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)||G(this,this.i+1);this.g(b,V(a,c))},function(a,
|
||||
b){G(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);P(a,c)&&G(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)&&G(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);P(a,this.b)||G(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=
|
||||
this.f(b);P(a,this.b*y)||G(this,this.i+1);this.g(b,T(a,this.b*y))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);P(a,this.b)&&G(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;P(a,c)&&G(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);
|
||||
P(a,c)||G(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)||G(this,this.i+1);this.g(b,T(a,c))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);P(a,c)&&G(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)&&G(this,this.i+1);this.g(b,T(a,c))},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],je=[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.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
|
||||
function we(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.Ra,a,b),(a=Ma(a,b))?(c.b=a.Y,c.U=a.U):c.w=null);xe(c)})}}ka(we,t);
|
||||
we.prototype.Da=function(a,b,c,d){this.H=b;this.v=c;this.C=d;xe(this)};we.prototype.ua=function(){this.U&&(this.C&&ye(this.C,this.id,this.B,this.u,this.U),delete this.U);return!0};we.prototype.ja=function(){return!0};
|
||||
function xe(a){if(!Jb(a)){if(a.w){if(!a.b||!a.H)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Hb(a,"ROM size ("+m(a.b.length,8,!0)+") does not match specified size ("+m(a.u,8,!0)+")");else{var b;b=a.B;if(Fc(a.H,b,a.u,Nc)){var c;for(c=0;c<a.b.length;c++)vc(a.H,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.H,g=d.u,h=[],k=d.B>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.u;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}}}Kb(a)}}Ya(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new we(d);sb(d,c)}});
|
||||
function ze(a){t.call(this,"RAM",a);this.U=this.Ga=null;this.i=+a.addr;this.u=+a.size;this.sa=a.load;this.ra=a.exec;null!=this.sa&&(this.sa=+this.sa);null!=this.ra&&(this.ra=+this.ra);this.w=this.F=!1;this.b=a.file;this.B=wa(this.b);if(this.b){a=this.b;var b=xa(this.B);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.Ra,a,b),(a=Ma(a,b))?(c.Ga=a.Ga,
|
||||
c.U=a.U,null==c.sa&&(c.sa=a.sa),null==c.ra&&(c.ra=a.ra)):c.b=null);Ae(c)})}}ka(ze,t);ze.prototype.Da=function(a,b,c,d){this.H=b;this.v=c;this.C=d;Ae(this)};ze.prototype.ua=function(a,b){this.U&&(this.C&&ye(this.C,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};ze.prototype.ja=function(){return!0};
|
||||
function Ae(a){if(a.H&&(!a.w&&a.u&&(Fc(a.H,a.i,a.u,1)?a.w=!0:a.u=0),!Jb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ga)return;Be(a,a.Ga,a.sa,a.ra,a.i)?a.status('Loaded image "'+a.B+'"'):a.da('Error loading image "'+a.B+'"')}a.F=!0;Kb(a)}}
|
||||
ze.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.H,b=this.i,c=this.u,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>=-A&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.w(g,d,e.D+d);c-=16384;b++;d=0}this.Ga&&Be(this,this.Ga,this.sa,this.ra,this.i,!this.C)}this.F=!1};
|
||||
function Be(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Pa=d,G(a,d),f?a.A.V?a.A.M||pc(a):a.A.Z=!0:a.C&&a.A.V?a.W()||a.G.A.reset||(ad(a.C),H(a.G,-1)):!1===f&&a.W(),!a.A.M&&a.Fa&&a.Fa.stop()));return g}Ya(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new ze(d);sb(d,c)}});
|
||||
function Ce(a){t.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=De;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ka(null,a,b))}this.b=this.B=null;this.exports={connect:this.xb,receiveData:this.Va,receiveStatus:this.Xb,setConnection:this.$b}}ka(Ce,t);l=Ce.prototype;
|
||||
l.ka=function(a,b,c){var d=this;switch(b){case De:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ra.mb:ra.Cb:46==c?b=ra.mb:a.ctrlKey&&c>=ra.lb&&c<=ra.Db&&(b=c-(ra.lb-ra.zb));b&&(a.preventDefault&&a.preventDefault(),d.Va(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Bb&&(b=ra.Ab);d.Va(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.Va(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.C=d;Kb(this)};
|
||||
l.xb=function(a){if(!this.b){var b=Yc(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Qa)return;c=Ea(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Ra+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ua=function(a,b){if(!b)if(this.xb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ja=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new F(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Va=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.Xb=function(){};l.$b=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var De="buffer";
|
||||
Ya(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ce(d);sb(d,c)}});function Ee(a){t.call(this,"Debugger",a);this.ca=+a.base||16;this.la=32;this.na=["{","}"];this.ma=["[","]"];this.B=0;this.R=!1;this.w=-1;this.u=[];this.K={}}ka(Ee,t);Ee.prototype.hb=function(){return-1};Ee.prototype.ib=function(){};
|
||||
function Fe(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.u[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 Ge(a,b){if(32>=a.la)b|=0;else if(a=Math.pow(2,a.la-1),b<-a||b>=a)b%=a;return b}
|
||||
function(a,b){a=this.f(b);b=this.f(b+1&15);b=oe.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=oe.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?-(D-a):a;0<c?(35<=c?(d=0>d?B:0,c=A):(d=d*Math.pow(2,c)%B,c=B-Math.pow(2,35-c)),a<=A?a+c>A&&(this.u|=131072):a-c<=A&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+D: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)%D+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)%D:-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<B;)a++,c*=2;G(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<B||d>A&&
|
||||
d<C)this.u|=131072;if(71<=a){if(0<e&&e<B||e>A&&e<C)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%B,c=B-Math.pow(2,70-a),f<=A?e+c>A&&(this.u|=131072):e-c<=A&&(this.u|=131072);e=0;f>A&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=A?f+c>A&&(this.u|=131072):(f-c<=A&&(this.u|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d>A?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=A?d=0:(d=C,e+=B)):(c=d>A?D-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+
|
||||
d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=B));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)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<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)%D,d=0):(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D):-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)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},J,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||qd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<B&&G(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=B&&G(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,G(this,this.b))},function(){this.qa=this.b},J,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=D&&(a-=D);a/z|0||(this.u|=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+=D);(a/z|0)==y&&(this.u|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.u&y)*z+this.i);G(this,this.b+1)},function(a,b){this.g(b,(this.u&y)*z+this.i);G(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,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,P.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P.call(this,this.f(b),this.f(this.b))))},ke,function(a,b){0>S(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){S(this.f(b),this.b)||G(this,this.i+1)},function(a,b){0>=S(this.f(b),this.b)&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){0<=S(this.f(b),this.b)&&G(this,
|
||||
this.i+1)},function(a,b){S(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){0<S(this.f(b),this.b)&&G(this,this.i+1)},le,function(a,b){0>S(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))||G(this,this.i+1)},function(a,b){0>=S(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){0<=S(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){0<S(this.f(b),this.f(this.b))&&
|
||||
G(this,this.i+1)},ke,function(a,b){0>V(this.f(b))&&G(this,this.b)},function(a,b){V(this.f(b))||G(this,this.b)},function(a,b){0>=V(this.f(b))&&G(this,this.b)},function(){G(this,this.b)},function(a,b){0<=V(this.f(b))&&G(this,this.b)},function(a,b){V(this.f(b))&&G(this,this.b)},function(a,b){0<V(this.f(b))&&G(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)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)||G(this,this.i+1);b&&this.g(b,
|
||||
a)},function(a,b){a=this.f(this.b);0>=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){G(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<V(a)&&G(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)&&G(this,this.b)},function(a,b){a=this.g(b,
|
||||
O.call(this,this.f(b),1));V(a)||G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=V(a)&&G(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=V(a)&&G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));V(a)&&G(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<V(a)&&G(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)&&G(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)||G(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)&&G(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));G(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)&&G(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)&&G(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)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,P.call(this,this.f(b),1))},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>V(a)&&G(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));V(a)||G(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>=V(a)&&G(this,this.b)},function(a,b){this.g(b,P.call(this,this.f(b),
|
||||
1));G(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<=V(a)&&G(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));V(a)&&G(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<V(a)&&G(this,this.b)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));V(a)||G(this,this.i+
|
||||
1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<V(a)&&G(this,this.i+
|
||||
1);b&&this.g(b,a)},Ad,Ad,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),this.b))},function(a,b){this.g(this.b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(C-this.f(b),this.b))},function(a,b){this.g(this.b,Q(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,
|
||||
this.g(b,Q(C-this.f(b),this.f(this.b))))},xd,yd,le,xd,function(a,b){this.g(b,Q(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),C-this.b))},function(a,b){this.g(this.b,Q(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(this.f(b),C-this.f(this.b))))},ke,ke,zd,zd,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,Q(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,Q(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,Q(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(C-this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,
|
||||
ve(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ve(this.f(b),this.b))},function(a,b){this.g(this.b,ve(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ve(this.f(b),this.f(this.b))))},Bd,Bd,function(a,b){this.g(this.b,C-this.f(b))},function(a,b){this.g(this.b,this.g(b,C-this.f(b)))},function(a,b){this.g(b,U(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(C-this.f(b),this.b))},function(a,b){this.g(this.b,U(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,
|
||||
U(C-this.f(b),this.f(this.b))))},function(a,b){this.g(b,C-this.f(this.b))},function(a,b){this.g(b,C-this.b)},function(){this.g(this.b,C-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,C-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),C-this.b))},function(a,b){this.g(this.b,U(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,U(C-this.f(b),C-this.f(this.b)))},function(a,
|
||||
b){this.g(b,U(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,U(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(C-this.f(b),C-this.f(this.b))))},Rd,Rd,function(){this.g(this.b,C)},function(a,b){this.g(this.b,this.g(b,C))},Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,Sd,Ud,Vd,Wd,Xd,Yd,Zd,$d,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ke,ke,function(a,b){Q(this.f(b),this.b)||G(this,this.i+1)},function(a,
|
||||
b){Q(this.f(b),this.b*z)||G(this,this.i+1)},function(){G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){Q(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){Q(this.f(b),this.b*z)&&G(this,this.i+1)},le,le,function(a,b){Q(this.f(b),this.f(this.b))||G(this,this.i+1)},function(a,b){Q(this.f(b),X(this.f(this.b)))||G(this,this.i+1)},function(){G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){Q(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){Q(this.f(b),X(this.f(this.b)))&&
|
||||
G(this,this.i+1)},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(b,R(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||G(this,this.i+1);this.g(b,R(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)||G(this,this.i+1);this.g(b,R(a,c))},function(a,b){G(this,this.i+1);this.g(b,R(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,R(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&G(this,this.i+1);this.g(b,R(a,this.b))},function(a,b){a=this.f(b);
|
||||
var c=this.b*z;Q(a,c)&&G(this,this.i+1);this.g(b,R(a,c))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)||G(this,this.i+1);this.g(b,R(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));Q(a,c)||G(this,this.i+1);this.g(b,R(a,c))},function(a,b){G(this,this.i+1);this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,R(this.f(b),X(this.f(this.b))))},function(a,
|
||||
b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&G(this,this.i+1);this.g(b,R(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));Q(a,c)&&G(this,this.i+1);this.g(b,R(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);Q(a,this.b)||G(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)||G(this,this.i+1);this.g(b,W(a,c))},function(a,b){G(this,this.i+1);this.g(b,W(this.f(b),this.b))},function(a,b){G(this,
|
||||
this.i+1);this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&G(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)&&G(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);Q(a,c)||G(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));Q(a,c)||G(this,this.i+1);this.g(b,W(a,c))},function(a,
|
||||
b){G(this,this.i+1);this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){G(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);Q(a,c)&&G(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));Q(a,c)&&G(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);Q(a,this.b)||G(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=
|
||||
this.f(b);Q(a,this.b*z)||G(this,this.i+1);this.g(b,U(a,this.b*z))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&G(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)&&G(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);
|
||||
Q(a,c)||G(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));Q(a,c)||G(this,this.i+1);this.g(b,U(a,c))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){G(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);Q(a,c)&&G(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));Q(a,c)&&G(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],je=[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.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
|
||||
function we(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.C=+a.addr;this.u=+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=Pa()+"/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):(lb(c.Ua,a,b),(a=Ka(a,b))?(c.b=a.Y,c.U=a.U):c.w=null);xe(c)})}}ma(we,t);
|
||||
we.prototype.Da=function(a,b,c,d){this.H=b;this.v=c;this.D=d;xe(this)};we.prototype.ua=function(){this.U&&(this.D&&ye(this.D,this.id,this.C,this.u,this.U),delete this.U);return!0};we.prototype.ia=function(){return!0};
|
||||
function xe(a){if(!Kb(a)){if(a.w){if(!a.b||!a.H)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ib(a,"ROM size ("+m(a.b.length,8,!0)+") does not match specified size ("+m(a.u,8,!0)+")");else{var b;b=a.C;if(Gc(a.H,b,a.u,Oc)){var c;for(c=0;c<a.b.length;c++)wc(a.H,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.H,g=d.u,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.u;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}}}Lb(a)}}$a(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new we(d);sb(d,c)}});
|
||||
function ze(a){t.call(this,"RAM",a);this.U=this.Ha=null;this.i=+a.addr;this.u=+a.size;this.sa=a.load;this.ra=a.exec;null!=this.sa&&(this.sa=+this.sa);null!=this.ra&&(this.ra=+this.ra);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=Pa()+"/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):(lb(c.Ua,a,b),(a=Ka(a,b))?(c.Ha=a.Ha,
|
||||
c.U=a.U,null==c.sa&&(c.sa=a.sa),null==c.ra&&(c.ra=a.ra)):c.b=null);Ae(c)})}}ma(ze,t);ze.prototype.Da=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Ae(this)};ze.prototype.ua=function(a,b){this.U&&(this.D&&ye(this.D,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};ze.prototype.ia=function(){return!0};
|
||||
function Ae(a){if(a.H&&(!a.w&&a.u&&(Gc(a.H,a.i,a.u,1)?a.w=!0:a.u=0),!Kb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ha)return;Be(a,a.Ha,a.sa,a.ra,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Lb(a)}}
|
||||
ze.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.H,b=this.i,c=this.u,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>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ha&&Be(this,this.Ha,this.sa,this.ra,this.i,!this.D)}this.F=!1};
|
||||
function Be(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)wc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Sa=d,G(a,d),f?a.A.V?a.A.N||qc(a):a.A.Z=!0:a.D&&a.A.V?a.W()||a.G.A.reset||(bd(a.D),H(a.G,-1)):!1===f&&a.W(),!a.A.N&&a.Ra&&a.Ra.stop()));return g}$a(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new ze(d);sb(d,c)}});
|
||||
function Ce(a){t.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=De;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ja(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.ac,setConnection:this.dc}}ma(Ce,t);l=Ce.prototype;
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case De: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.Gb:46==c?b=ta.qb:a.ctrlKey&&c>=ta.pb&&c<=ta.Hb&&(b=c-(ta.pb-ta.Db));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.Fb&&(b=ta.Eb);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.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;Lb(this)};
|
||||
l.Cb=function(a){if(!this.b){var b=Zc(this.G,"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=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.C=e.receiveData){this.u=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ua=function(a,b){if(!b)if(this.Cb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ia=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new F(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.ac=function(){};l.dc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var De="buffer";
|
||||
$a(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ce(d);sb(d,c)}});function Ee(a){t.call(this,"Debugger",a);this.ca=+a.base||16;this.Ea=32;this.ma=["{","}"];this.la=["[","]"];this.C=0;this.R=!1;this.w=-1;this.u=[];this.K={}}ma(Ee,t);Ee.prototype.kb=function(){return-1};Ee.prototype.lb=function(){};
|
||||
function Fe(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.u[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 Ge(a,b){if(32>=a.Ea)b|=0;else if(a=Math.pow(2,a.Ea-1),b<-a||b>=a)b%=a;return b}
|
||||
function He(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=b.pop(),g=b.pop();switch(e){case "*":e=g*f;break;case "/":if(!f)return!1;e=g/f;break;case "%":if(!f)return!1;e=g%f;break;case "+":e=g+f;break;case "-":e=g-f;break;case "<<":e=g<<f;break;case ">>":e=g>>f;break;case ">>>":e=g>>>f;break;case "<":e=g<f?1:0;break;case "<=":e=g<=f?1:0;break;case ">":e=g>f?1:0;break;case ">=":e=g>=f?1:0;break;case "==":e=g==f?1:0;break;case "!=":e=g!=f?1:0;break;case "&":e=
|
||||
32>=a.la?g&f:((g/Ie|0)&(f/Ie|0))*Ie+((g&f)>>>0);break;case "!":case "|":e=32>=a.la?g|f:(g/Ie|0|f/Ie|0)*Ie+((g|f)>>>0);break;case "^^":e=g^f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;default:return!1}b.push(Ge(a,e))}return!0}
|
||||
function Je(a,b,c){var d;b&&(b=Ke(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var p=n[e++],q=p.length,p=Ea(p);if(!p){f=!0;break}p=Le(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==n.length)break;var p=n[e++],B=p.length;k.length&&Me[p]<Me[k[k.length-1]]&&He(a,h,k,1);k.push(p);b=b.substr(q+B)}He(a,h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),
|
||||
32>=a.Ea?g&f:((g/Ie|0)&(f/Ie|0))*Ie+((g&f)>>>0);break;case "!":case "|":e=32>=a.Ea?g|f:(g/Ie|0|f/Ie|0)*Ie+((g|f)>>>0);break;case "^^":e=g^f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;default:return!1}b.push(Ge(a,e))}return!0}
|
||||
function Je(a,b,c){var d;b&&(b=Ke(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var p=n[e++],q=p.length,p=Ga(p);if(!p){f=!0;break}p=Le(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==n.length)break;var p=n[e++],x=p.length;k.length&&Me[p]<Me[k[k.length-1]]&&He(a,h,k,1);k.push(p);b=b.substr(q+x)}He(a,h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),
|
||||
c&&Ne(a,null,d))}return d}
|
||||
function Ke(a,b){var c,d=a.na[0],e=a.na[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=Je(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?I(a,g):"undefined")}if(a.ma.length)for(d=a.ma[0],e=a.ma[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=0}if(null==
|
||||
d)break;a=a.replace(b[0],d.toString())}return a}function Le(a,b,c,d){var e;null!=b?(e=a.hb(b),0<=e?e=a.ib(e):(e=a.K[b],null==e&&(e=sa(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
|
||||
function Ne(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=void 0,p=8,q="";p?32<p&&(p=32):p=32;for(var B=null==k||isNaN(k),S=n=n||p;0<p--;)S||(q=","+q,S=n),q=(B?"?":k&1?"1":"0")+q,k>>=1,S--;g=q+g;d>>=8}d=m(c,0,!0)+" "+c+". "+ua(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
|
||||
function Oe(a,b){if(b)return Ne(a,b,a.K[b]);var c=0;for(b in a.K)Ne(a,b,a.K[b]),c++;return 0<c}function I(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=ua(b,0<c?(c+2)/3|0:0);break;case 10:a=va(b,0<c?Math.ceil(.3*c):0);break;default:a=m(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Me={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ie=Math.pow(2,32);
|
||||
function Pe(a){Ee.call(this,a);this.Aa=!1;this.ya=18;this.la=36;this.na=["<",">"];this.ma=[];this.za=X();this.L=X(0);this.ga=X(0);this.ba=X(0);this.F=[];this.b=this.N=this.I=[];Qe(this);this.S=this.ha=0;this.i=[];this.va=void 0;Re(this);this.C=this;this.oa={};this.X=this.tb=0;this.T=null;this.P=[];Se(this,a.messages);this.xa=a.commands;this.O=0;this.Fa=this.wa=null;this.B=this.Ca=this.Ba=this.fa=this.qa=0;this.pa=this.ea=this.aa=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return cd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return cd(b,a)})}ka(Pe,Ee);function Te(a){a=a&&a.D;null==a&&(a=-1);return a}function X(a,b,c){return{D:void 0===a?null:a,Ta:void 0===b?!1:b,ia:!1,ca:c}}function Ue(a,b,c,d){a.D=b;a.Ta=c||!1;a.ia=!1;a.ca=d}function Ve(a){return[a.D,a.Ta,a.ia,a.ca,a.Wa]}function We(a,b){var c=X(b[0],b[1],b[2]);c.ia=b[3];b[4]&&(c.pb=Fe(a,c.Wa=b[4]));return c}l=Pe.prototype;
|
||||
l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;this.ya=b.F;(a=Yc(a,"messages"))&&Se(this,a);Xe(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Te(Ye(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Ic[c],p&&d.j(m(p.id,8)+" %"+m(e<<d.H.i,8)+" %"+m(p.D,8)+
|
||||
" "+m(p.Ma,4,!0)+" "+m(p.size,4,!0)+" "+n),c!=Mc&&(c=-1),n=0);a+=16384;e++}}});Kb(this)};
|
||||
l.ka=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--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,Wa(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.Ea=function(a,b){var c=-1,d=Te(a);-1!==d&&(c=wc(this.H,d),b&&null!=a.D&&(a.D+=b||1));return c};l.nb=function(a,b,c){var d=Te(a);-1!==d&&(vc(this.H,d,b),c&&null!=a.D&&(a.D+=c||1),H(this.G,-1))};
|
||||
function Ye(a,b,c){var d,e;c||(c=X());var f=c.D;if(void 0!==b){b=Ke(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var n=a.F[k].U[f];if(null!=n){h=n.o;break}}null!=h&&(g=X(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Je(a,b,void 0)}null!=f&&(f=Ze(f,a.ya),Ue(c,f,d,e));return c}function $e(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.pb=Fe(a,b.Wa=c[2]))}
|
||||
function Ze(a,b){0>a&&a>=-A&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function Y(a,b){return I(a,b.D)}function af(a){return ua(a/Rb,6)+" "+ua(a%Rb,6)}
|
||||
function Se(a,b){a.C=a;a.X=a.tb=536870916;a.T=null;a.P=[];b=Fe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=Zb[c],a.j(c+" messages enabled"))}}function Xe(a,b){for(var c in Zb)if(16==Zb[c]){a.oa[c]=b;break}}l.hb=function(a){return bf.indexOf(a.toUpperCase())};
|
||||
l.ib=function(a){var b,c=this.v;switch(a){case cf:b=c.i;break;case df:b=c.K;break;case ef:b=c.b;break;case ff:b=c.u&65536?1:0;break;case gf:b=c.u&32768?1:0;break;case hf:b=c.u&131072?1:0;break;case jf:b=c.u&32?1:0;break;case kf:b=c.u&262144?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+Y(this,X(this.v.xa)));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.M)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,kd(a),a.fa=0,a.G&&H(a.G,void 0))}};
|
||||
function Re(a){var b;if(!qd(a))a.i&&a.i.length&&a.j("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lf);for(b=0;b<a.i.length;b++)a.i[b]=X();a.S=0;a.j("instruction history buffer allocated")}}function mf(a,b,c){if(!nf(a,c))return!1;pc(a.v,b);return!0}
|
||||
function qc(a,b,c,d){if(!nf(a))return!1;var e="";null===c&&(e=(c=!a.wa||"tr"==a.wa)?"tr":"t");a.B=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Oa(b);0<f&&(rc(a.v,f),a.B+=f,sc(a.v,f,!0),tc(a.v,f),a.fa++)}catch(g){"number"!=typeof g&&(a.B=0,Hb(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),H(a.G,-1));ad(a,c||!1,e);return 0<a.B}l.W=function(a){this.v&&this.v.W(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Aa&&(c&&a.j(of+c),Ue(a.L,a.v.i),b&&1!=a.O?pf(a):qf(a))}
|
||||
function nf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.M?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Ib(a.v)}l.ua=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ja=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Re(this);this.fa=0;this.T=null;this.B=0;Ue(this.L,this.v.i);this.A.M=!1;rf(this);a||ad(this)};
|
||||
l.save=function(){var a=new F(this);a.set(0,Ve(this.L));a.set(1,Ve(this.ga));a.set(2,Ve(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=We(this,a[b++]),this.ga=We(this,a[b++]),this.ba=We(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.M=!0;this.Ba=a;this.Ca=b};
|
||||
l.stop=function(a,b){if(this.A.M){this.A.M=!1;this.B=b-this.Ca;if(!this.O){b="stopped";if(this.B){a-=this.Ba;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";qd(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ad(this,!0);bd(this);rf(this,this.v.i);this.T=null}};function qd(a){return 1<a.b.length||!!a.ha}
|
||||
function rd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.xa==b&&(b=pd(a.v,1)));if(0<c&&(a.ha&&!--a.ha||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.fa++,0>d&&(d=a.v.f(b)),0<=d&&(Ue(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function sf(a,b,c,d){var e=X(b.D),f=a.Ea(b,1),g,h,k,n=0,p=f/Vb|0,q;for(q in tf)if(g=tf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=uf;n=p&3;break;case 32256:k=vf;n=p&7;break;case 29248:k=wf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>xf&&(k="B");k=ag[g||0]+k;if(g){if(28700==h)n=f/Wb&127,h=I(a,n,-1);else if(n=f>>23&15,h=I(a,n,-1),g==cg&&(g=dg[n]))k=ag[g],h="";k=Da(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=I(a,f&262143,-1);(f=f>>18&15)&&(k+="("+I(a,f,-1)+")")}else k=Da(k,8)+af(f);f=k;g="";h=Y(a,
|
||||
e)+":";if(-1!==e.D&&-1!==b.D){do if(k=a.Ea(e,1),g+=" "+af(k),null==e.D)break;while(e.D!=b.D)}h+=Da(g,16)+f;c&&(h=Da(h,48)+";"+(c||""),h=a.v.A.Ia?h+("cycles="+dd(a.v).toString()+" cs="+m(a.v.za)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function eg(a,b,c,d){var e=-1,f,g,h=b.toUpperCase(),k;for(k in dg)if(g=dg[k],h==ag[g]){h=ag[cg];c=I(a,+k)+","+c;break}for(var n in tf){f=+n;var p=tf[n];switch(f){case 32512:k=uf;break;case 32256:k=vf;break;case 29248:k=wf;break;default:k=[""]}for(var q in p){g=p[q];for(var B=0;B<k.length;B++){var S=k[B];"S"==S&&g>xf&&(S="B");if(h==ag[g]+S){e=29248!=f?B:(B&3)<<1|(B&12)<<2;e=(q|e<<6)*Vb;break}}if(0<=e)break}if(0<=e)break}if(0<=e)if(c)for(b=c.split(","),c=0;c<b.length;c++){if(h=b[c].trim()){if(1<c){a.j("too many operands: "+
|
||||
h);e=-1;break}n=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!n){a.j("unknown operand: "+h);e=-1;break}h=n[2];c&&(h=h.replace(/(^|[^0-9])\./g,"$1"+Y(a,d)));q=Je(a,h);if(void 0==q){e=-1;break}if(!c&&1<b.length)if(28700==f){if(0>q||127<q){a.j("device code out of range: "+h);e=-1;break}e+=q*Wb}else{if(0>q||15<q){a.j("accumulator address out of range: "+h);e=-1;break}e+=q<<23}else{if(0>q||262143<q){a.j("memory address out of range: "+h);e=-1;break}e+=q;if(h=n[3]){q=Je(a,h);if(void 0==q){e=-1;break}if(0>q||
|
||||
15<q){a.j("memory index out of range: "+h);e=-1;break}e+=q<<18}n[1]&&(e+=4194304)}}}else a.j("missing operand(s)"),e=-1;else a.j("unknown instruction: "+b);return e}function Qe(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=Te(c);var d=a.H;Uc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Te(c),d=a.H,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ha=0}
|
||||
l.Ha=function(a,b,c){var d=!0;c||fg(this,a,b,!1,!0);if(a!=this.b){var e=Te(b);if(-1===e)this.j("invalid address: "+Y(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ha(e&16383,a==this.I)}}d&&(a.push(b),c?b.ia=!0:(gg(this,a,a.length-1,"set"),Re(this)));return d};function fg(a,b,c,d,e){var f=!1;c=Te(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Te(h)&&(!d||h.ia)){f=!0;h.ia||e||gg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,Uc(d.b[c>>>d.i],b==a.I));h.ia||Re(a);break}}return f}
|
||||
function hg(a,b){for(var c=1;c<b.length;c++)gg(a,b,c);return b.length-1}function gg(a,b,c,d){c=b[c];a.j(b[0]+" "+Y(a,c)+(d?" "+d:c.Wa?' "'+c.Wa+'"':""))}function rf(a,b){if(void 0!==b)Vc(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.ia){if(!fg(a,a.b,c,!0))break;b=0}}}
|
||||
function Vc(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ia)for(var k=Te(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.ia&&(fg(a,d,h,!0),e=!0);if(p=h.pb){for(var f=!1,q=0;q<p.length;q++)if(!ig(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var B=q+1;B<p.length&&p[B].indexOf("else");B++)q++;if(B==p.length){f=!0;break}}a.v.A.M||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.qa--;return f}
|
||||
function jg(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=ua(d,2);Ue(e.za,d);f+="="+I(e,e.Ea(e.za),36)+" ";c+=f}if(b){b="";for(d=0;d<bf.length;d++)(e=bf[d]||"")&&(e+="="+I(a,a.ib(d),d>=ff?1:d==df?23:18)+" "),b+=e;c+="\n"+b}return c}l.ub=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function ye(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],q=Fa(p,k,a.ub);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({od:b,D:c,Kb:d,U:e,qb:f})}function kg(a,b,c){var d=[],e=Te(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.D>>>0,h=f.Kb;if(e>=g&&e<g+h){e=Fa(f.qb,[e-g],a.ub);0<=e?lg(a,b,e,d):c&&(e=~e,lg(a,b,e-1,d),lg(a,b,e,d));break}}return d}
|
||||
function lg(a,b,c,d){var e={},f=a.F[b].qb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function mg(a,b){var c=Ye(a,b[1],a.ba);if(c){var d=b[2];void 0==d?(a.j("begin assemble at "+Y(a,c)),a.R=!0,H(a.G)):0<=d.indexOf(":")?a.pa?a.j("assembly already in progress"):a.pa=new ng(d,c.D,a,function(b,c,d){d?a.j("error assembling "+c+": ("+d+")"):a.j("loadAssembly()");a.pa=null}):(b.shift(),b.shift(),b.shift(),b=eg(a,d,b.join(""),c),0<=b&&(a.nb(c,b),a.j(sf(a,c))))}}
|
||||
function og(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Oe(a)||a.j("no variables"),!0;if(!c[2])return Oe(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Je(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function pg(a,b,c){var d=null;if(b=Ye(a,b)){var e=kg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.D-e[1])&&(g=" + "+m(f,4,!0)),f=e[0]+" ("+I(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.D)&&(g=" - "+m(f,4,!0)),f=e[4]+" ("+I(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function pf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\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.j("missing value for "+b[1]);return}g=Je(a,b);if(void 0===g)return;b=a.hb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case cf:G(h,
|
||||
g);Ue(a.L,h.i);break;case ff:f=65536;break;case gf:f=32768;break;case hf:f=131072;break;case jf:f=32;break;case kf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);H(a.G);a.j("updated registers:")}}a.j(jg(a,e));c&&(Ue(a.L,d.i),qf(a,Y(a,a.L)))}}function qg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ne(a,null,c[2].charCodeAt(0)):Je(a,b,!0)}
|
||||
function rg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Le(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.wa=b;Va(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ea&&a.ea.stop();H(a.G,-1);Mb(a,!1)})}}
|
||||
function qf(a,b,c,d){if(b=Ye(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Le(a,c.substr(1)),null!=c&&(d=c);else{d=Ye(a,c);if(!d||d.D<b.D)return;e=d.D-b.D;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.B:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.D;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.D=n.D;h.Ta=n.Ta;h.ia=n.ia;h.ca=n.ca;a.j(sf(a,b,g,f));e-=b.D-k;c++}}}
|
||||
function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(of+b):(a.R&&(a.j("ended assemble at "+Y(a,a.ba)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Jb(a)&&0<b.length){a.R&&(b="a "+Y(a,a.ba)+" "+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":mg(a,g);break;
|
||||
case "b":a:{var q=g[0],B=g[1],S=b;if("?"==B)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var la=q.charAt(1);if("l"==la){var Ad;Ad=0+hg(a,a.b);Ad+=hg(a,a.N);(Ad+=hg(a,a.I))||a.j("no breakpoints")}else if("n"==la){var yf=+B||0;B&&(a.ha=yf);a.j("break after "+yf+" instruction(s)")}else if(void 0===
|
||||
B)a.j("missing breakpoint address");else{var Z=X();if("*"!=B&&(Z=Ye(a,B,a.L),!Z))break a;"c"==la?null==Z.D?(Qe(a),a.j("all breakpoints cleared")):fg(a,a.b,Z)||fg(a,a.N,Z)||fg(a,a.I,Z)||a.j("breakpoint missing: "+Y(a,Z)):null!=Z.D&&($e(a,Z,S),"p"==la?a.Ha(a.b,Z):"r"==la?a.Ha(a.N,Z):"w"==la?a.Ha(a.I,Z):a.j("unknown breakpoint command: "+la))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var $a,ab=g[0],ma=g[1],za=g[2],fh=g[3];if("?"==ma){var bb="";for($a in Zb)a.oa[$a]&&(bb&&(bb+=","),bb+=
|
||||
$a);bb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");bb.length&&a.j("dump extension commands:\n\t"+bb)}else if("state"==ma){var Bd=sg(a.G,!0);"console"==za?console.log(Bd):(a.ta&&(a.ta.value=""),Bd&&a.j(Bd))}else if("symbols"==ma)for(var Cd=0;Cd<a.F.length;Cd++){var Dd=a.F[Cd],cb;for(cb in Dd.U)if("."!=cb.charAt(0)){var zf=Dd.U[cb].o;
|
||||
if(void 0!==zf){var Af=Dd.U[cb].l;Af&&(cb=Af);a.j(I(a,zf)+" "+cb)}}}else{if("d"==ab){for($a in Zb)if(g[1]==$a){var Bf=a.oa[$a];Bf?(g.shift(),g.shift(),Bf(g)):a.j("no dump registered for "+ma);break a}ma||(ab=a.Fa||"dw")}else a.Fa=ab;if("dh"==ab){var Cf=ma,Df=za,Ef="",Ff=0,ia=a.S,na=a.i;if(na.length){var ea=+Cf||a.va,wb=+Df||10;isNaN(ea)?ea=wb:Ef="more ";ea>na.length&&(a.j("note: only "+na.length+" available"),ea=na.length);ia-=ea;0>ia&&(null==na[na.length-1].D?(ea=ia+ea,ia=0):ia+=na.length);var Ed=
|
||||
[];"call"==Df&&(wb=1E5,Ed=["CALL"]);for(void 0!==Cf&&a.j(ea+" instructions earlier:");0<wb&&ia!=a.S;){var Gf=na[ia++];if(null==Gf.D)break;var xb=X(Gf.D),gh=ea--,Hf=sf(a,xb,"history",gh);(!Ed.length||0<=Hf.indexOf(Ed[0]))&&a.j(Hf);xb.fb&&(ia+=xb.fb,wb-=xb.fb,ea-=xb.fb);ia>=na.length&&(ia=0);a.va=ea;Ff++;wb--}}Ff||(a.j("no "+Ef+"history available"),a.va=void 0)}else{var db=Ye(a,ma,a.ga);if(db){var Ia=0,If="ds"==ab;if(za){if("l"==za.charAt(0))za=za.substr(1)||fh,Ia=Le(a,za);else{var Jf=Ye(a,za);Jf&&
|
||||
(Ia=Jf.D-db.D)}0>Ia&&(Ia=0);65536<Ia&&(Ia=65536)}var hh=a.ca;db.ca&&(a.ca=db.ca);for(var Kf="db"==ab?1:2,Fd=Ia||32,Gd=1==Kf?2:4,ih=(Fd+Gd-1)/Gd|0||1,Ja="";ih--&&0<Fd;){for(var Ka="",Lf="",ma=Y(a,db),Mf=Gd;0<Mf--&&0<Fd--;){var xc=a.Ea(db,1);If?(Ka&&(Ka+=","),Ka+=xc):(Ka+=af(xc),Ka+=" ");for(var Nf=0;1==Kf&&6>Nf;Nf++)Lf+=String.fromCharCode((xc%64|0)+32),xc/=64}Ja&&(Ja+="\n");Ja=If?Ja+(Ka+","):Ja+(ma+": "+Ka+(0>Mf?" "+Lf:""))}Ja&&a.j(Ja);a.ca=hh}}}}break;case "e":if("else"==g[0])break;var Of,Pf,Qf=
|
||||
g[0],Hd=g[1];"e"==Qf||"ew"==Qf?(Of=a.Ea,Pf=a.nb):Hd=null;if(null==Hd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var yc=Ye(a,Hd,a.ga);if(yc)for(var Id=2;Id<g.length;Id++){var yb=Je(a,g[Id]);if(void 0===yb)break;yb=Ze(yb);a.j("changing "+Y(a,yc)+" from "+af(Of.call(a,yc))+" to "+af(yb));Pf.call(a,yc,yb,1)}}break;case "g":a:{var Rf=g[1],jh=b;if(void 0!==Rf){var Jd=Ye(a,Rf);if(!Jd)break a;$e(a,Jd,jh);a.Ha(a.b,Jd,!0)}mf(a,!0,c)}break;case "h":a.A.M?(c||a.j("halting"),
|
||||
a.W()):Lb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Kd;var zb=b.substr(2),zb=Ea(zb);Je(a,zb)?(c||a.j("true: "+zb),Kd=!0):(c||a.j("false: "+zb),Kd=!1);Kd||(d=!1);break}f=!0;break;case "k":var kh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Ld=0,Md=X(),Ab=X();for(a.j("stack trace for "+Y(a,Ab));10>Ld;){for(var La=null,lh=256;65536>Ab.D>>>0;){Md.D=a.Ea(Ab,2);if(null==Ab.D||!lh--)break;if(!(Md.D&1)){for(var mh=
|
||||
a,zc=Md,Sf=null,Bb=zc.D,Tf=Bb,Nd=1;6>=Nd&&Bb;Nd++){if(2<Nd){zc.D=Bb;var Ac=sf(mh,zc);if(0<=Ac.indexOf("JSR")){var Uf=Ac.indexOf(" ");if(Bb+(Ac.indexOf(" ",Uf+1)-Uf-1)/2==Tf){Sf=Ac;break}}}Bb-=2}zc.D=Tf;if(La=Sf)break}}if(!La||null==La)break;var Vf=null;if("ks"==kh){var Wf=La.match(/[0-9A-F]+$/);Wf&&(Vf=pg(a,Wf[0]))}La=Da(La,50)+" ;"+(Vf||"stack="+Y(a,Ab));a.j(La);Ld++}Ld||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){pg(a,g[1],!0);break}f=!0;break;case "m":a:{var oa,pa=null,K=g[1];
|
||||
"?"==K&&(K=void 0);if(void 0!==K){var Aa=0;if("all"==K)Aa=1879046143,K=null;else if("on"==K)pa=!0,K=null;else if("off"==K)pa=!1,K=null;else{"keys"==K&&(K="key");"kbd"==K&&(K="keyboard");for(oa in Zb)if(K==oa){Aa=Zb[oa];pa=!!(a.X&Aa);break}if(!Aa){a.j("unknown message category: "+K);break a}}if(Aa)if("on"==g[2])a.X|=Aa,pa=!0;else if("off"==g[2]&&(a.X&=~Aa,pa=!1,1073741824==Aa)){for(var Xf=1E3<=a.P.length?a.P.length-1E3:0;Xf<a.P.length;)a.j(a.P[Xf++]);a.P=[]}}var nh=0,Cb="";for(oa in Zb)if(!K||K==oa){var oh=
|
||||
!!(a.X&Zb[oa]);if(null===pa||pa==oh)Cb&&(Cb+=","),++nh%10||(Cb+="\n\t"),"key"==oa&&(oa="keys"),Cb+=oa}void 0===K&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==pa?pa?"messages on: ":"messages off: ":"message categories:\n\t")+(Cb||"none"));Re(a)}break;case "p":if("print"==g[0]){qg(a,b.substr(5));break}var Yf=g[0],Zf="p"==Yf?0:"pr"==Yf?1:-1;if("?"==g[1]||0>Zf)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");
|
||||
else if(a.O)a.j("step in progress");else{var $f=X(a.v.i);a.Ea($f);a.O?(a.Ha(a.b,$f,!0),mf(a)||(a.G&&hd(a.G),a.O=0)):rg(a,Zf?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}pf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Db=+g[2];if(8==Db||10==Db||16==Db)a.ca=Db;else{a.j("invalid base: "+Db);break}}a.j("default base: "+a.ca);break;case "cs":var Eb;void 0!==g[3]&&(Eb=+g[3]);switch(g[2]){case "int":a.v.la=Eb;break;case "start":a.v.Aa=Eb;break;case "stop":a.v.ma=Eb;break;
|
||||
default:a.j("unknown cs option");break a}void 0!==Eb&&$c(a.v);a.j("checksums "+(a.v.A.Ia?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":rg(a,g[0],g[1]);break;case "u":qf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){og(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.rb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){qg(a,b.substr(1));break}var Od="commands:",Pd;for(Pd in tg)Od+="\n"+Da(Pd,9)+tg[Pd];qd(a)||(Od+="\nnote: history disabled if no exec breakpoints");
|
||||
a.j(Od);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(bg){a.j("Debugger "+(bg.stack||bg.message)),d=!1}return d}function cd(a,b,c){b=Fe(a,b,c);for(var d in b)if(!ig(a,b[+d]))return!1;return!0}
|
||||
var tg={"?":"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"},xf=20,cg=85,ag=".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".split(" "),
|
||||
cf=0,df=1,ef=2,ff=3,gf=4,hf=5,jf=6,kf=7,bf="PC RA EA C0 C1 OV ND PD".split(" "),ug={},tf=(ug[28672]={0:101},ug[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:cg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},ug[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:xf,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},ug[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},ug[29248]={24576:79,24640:80,25088:81,25152:82},ug[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},ug),uf=["","I","M","S"],vf=" L E LE A GE N G".split(" "),wf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),dg={8:102,4:103,2:104,6:105,1:106},lf=1E3,of=">> ";Ya(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Pe(d);sb(d,c)}});
|
||||
function ng(a,b,c,d){this.B=b||0;this.u=c;this.done=d;this.j=c.j;this.J={};this.L={};this.K=this.v=0;this.I=[];this.H=null;this.b=0;this.F=null;this.G=this.C="";this.i=null;this.w="";var e=this;Ha(a,null,!0,function(a,b,c){if(!c){var d=e.u;c=d.K;d.K={};try{d=b;if(ya(a,".html")){for(var d="",f,g=/<pre>([\s\S]*?)<\/pre>/gi;f=g.exec(b);){var h=f[1];0<=h.indexOf("&")&&(h=h.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&"));d+=h}(f=d.match(/&[a-z]+;/i))&&e.j("warning"+(e.v?" at line "+
|
||||
va(e.v):"")+": "+("unrecognized HTML entity: "+f[0]))}var B,S=d.split(/\r?\n/);for(B=0;B<S.length&&(e.v++,vg(e,S[B]+"\r\n"));B++);}catch(la){e.j(la.message),e.K=-1}e.u.K=c;c=e.K}e.done(e,a,c)})}
|
||||
function vg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.G);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.H+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.G)a.b++;else if(b[d]==a.C&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.F||"";a.J[d].La+=b;a.b||(a.F=null,wg(a,d));b=c}if(a.b)return!0}null!=a.i&&(b=xg(a,b));d=b.match(/\s*([A-Z$%.][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!d||d[4]&&";"!=d[4].slice(0,1))return a.error("failed to parse line: "+
|
||||
b),!1;b=d[1];c=d[2].toUpperCase();d=d[3].trim();if(b){var e=b.slice(-1);b=b.slice(0,-1);":"==e?yg(a,b,a.B,!0):(d=c+d,c=e)}a.H=c;for(var e=d=d.trim(),f=null,g=0,h=0,k=-1;h<e.length;){var n=e[h];"["==n&&(g++||(k=h));h++;if("]"==n&&0>=--g)break}0>g&&a.error("missing bracket(s): "+e);0<=k&&(f=e.substr(k,h-k));(e=f)&&(d=d.replace(e,zg(a,Ag,e)));if(!wg(a,c,d))switch(c){case "=":c=d;d=Je(a.u,c);void 0===d?a.error("parseExpression("+c+")"):yg(a,b,d);break;case Bg:case Cg:case Dg:xg(a,d);break;case Eg:case Fg:case Gg:zg(a,
|
||||
c,d)}return 820<=a.v?(Oe(a.u),a.error("temporary line limit reached"),!1):!0}function wg(a,b,c){var d=a.J[b];if(!d)return!1;if(null!=c){b=[];var e=",";"("==c[0]&&(e+=")",c=c.substr(1));for(;c;){c=c.trim();var f=Hg(a,c,e);if(!f)break;b.push(f);c=c.substr(f.length+1)}Ig(a,d.La,d.Eb,b);return!0}if("@"!=b[0])return!1;switch(b.substr(1)){case Fg:d.yb||Ig(a,d.La);break;case Gg:for(;0<d.yb--;)Ig(a,d.La);break;default:return!1}return!0}
|
||||
function Ig(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,q=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(q>=f.length)&&f[q].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(q),n=p+k.length)}if(!vg(a,f))break}}ng.prototype.error=function(a){throw Error("error"+(this.v?" at line "+va(this.v):"")+": "+a);};
|
||||
function Hg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
|
||||
function xg(a,b){var c=b;null==a.i&&(a.i=a.w="",b&&(a.i=b[0],c=b=b.substr(1)));if(a.i){var d=b.indexOf(a.i);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.i=null);a.w+=b}if(null==a.i){var e=0;b=0;var f,g,d=a.w.length;a.H==Cg&&d++;for(var h=0;h<d;h++){e||(b=0,g=29,f=7,a.H==Dg&&(f--,g++));var k=a.w.charCodeAt(h)&127;6==f&&(97<=k&&122>=k&&(k-=32),k=k+32&63);b+=k*Math.pow(2,g);g-=f;e++;0>g&&(e=b,a.I[a.B++]=e,e=0)}e&&(a.I[a.B++]=b)}return c}
|
||||
function zg(a,b,c){var d,e,f;a.G="<";a.C=">";if(b==Eg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];c=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);e=-1;f=3}else if(b==Ag)a.G="[",a.C="]",b="@"+va(a.v,5),d=[c[0],c.substr(1)],c=[],e=a.v,f=0;else{e=Hg(a,c);if(!e)return a.error("missing "+b+" expression: "+c),"";c=c.substr(e.length+1);e=e.trim();d=c.match(/\s*(<|)(.*)/i);b="@"+b;c=[];e=Je(a.u,e);f=1}b=b.toUpperCase();a.b=1;var g=
|
||||
"";d[f]&&(a.b=2,g=d[f+1],g.slice(-1)==a.C&&(a.b=0,g=g.slice(0,-1)));a.J[b]={name:b,Eb:c,yb:e,La:g};a.b?a.F=b:wg(a,b);return b}function yg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&void 0!==a.L[b]?a.error("label "+b+" redefined"):(a.L[b]={name:b,value:c,dd:d,cd:e,ed:f},a.u.K[b]=c)}var Bg="ASCII",Cg="ASCIZ",Dg="SIXBIT",Eg="DEFINE",Ag="LITERAL",Fg="IFE",Gg="REPEAT";
|
||||
function Jg(a,b,c){t.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Kg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Lg(this);if(this.v=rb("CPU",this.id)){this.C=rb("Debugger",this.id);this.H=new Bc({id:this.Ra+".bus",busWidth:this.aa},this.v,this.C);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ta)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.ta=this.u.ta;this.j(Pb+" 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.Da&&d.Da(this,this.H,this.v,this.C);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.K=!0,this.b=Mg),this.b&&(this.I=new F(this,"1.34.2"),Ng(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Og(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.da("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.T=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&Pg(this,this.Ka)}else r("Unable to find CPU component")}ka(Jg,t);function Kg(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 Yc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(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 Pg(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){Pg(a,b,c)});return}}b.call(a,c)}
|
||||
function Qg(a,b){var c=new F(a,"1.34.2",Rg);if(Ng(c)&&Sg(c)){var d=c.get(Tg),e=b?b.get(Tg):"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=Jg.prototype;
|
||||
l.Ka=function(a){void 0===a&&(a=this.b||(this.L?Ug:Mg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.2");if(a==Vg)b=!0;else if(a>Mg){if(Ng(d,this.L)){this.B=new F(this,"1.34.2",Wg);Ng(this.B)&&(Xg(this,d),a=Yg,Zg(this.B));this.B.set(Tg,Ga());$g(this.B);var e=this.b&&!this.K;if(a==Ug||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Sg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ng(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(ah,""),this.i=null)):this.j(f+": "+g),Zg(d),Ng(d)?(c=Sg(d),e=!0):c=!1))}e&&Qg(this,c?d:null)}else a==Yg&&d.clear()}else Qg(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=bh(this,g,d,b,c));b=[d,a,c];a!=Vg?Pg(this,this.vb,b):this.vb(b)}};
|
||||
function bh(a,b,c,d,e){if(!b.A.V){b.A.V=!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.ua(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.T?(c.clear(),a.b=Mg,window&&window.location.reload()):a.P=!0,b.ua(null),e=!1),!d&&b.kb){var g=b.kb.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.vb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(bh(this,this.v,b,c,a),H(this,-2),this.v.Z());this.P&&(Xg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0};
|
||||
function Xg(a,b){if(ob("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Pb;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 sg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Rg),h=Ga();g.set(Tg,h);f.set(Tg,h);f.set(ch,"1.34.2");f.set(dh,window?window.location.href:null);f.set(eh,window?window.navigator.userAgent:"");a.v&&a.v.ja&&(c&&(b&&(a.v.A.Z=a.v.A.M),a.v.W()),d=a.v.ja(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.V&&(n.ja&&(d=n.ja(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&ph(a,a.i,f.toString()),$g(g)&&$g(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==qh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
l.reset=function(){this.A.reset=!0;this.H&&this.H.reset&&(Ob(this,"Resetting "+this.H.type),this.H.reset());this.v&&this.v.reset&&(Ob(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.v&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};l.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
|
||||
function Ke(a,b){var c,d=a.ma[0],e=a.ma[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=Je(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?I(a,g):"undefined")}if(a.la.length)for(d=a.la[0],e=a.la[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=0}if(null==
|
||||
d)break;a=a.replace(b[0],d.toString())}return a}function Le(a,b,c,d){var e;null!=b?(e=a.kb(b),0<=e?e=a.lb(e):(e=a.K[b],null==e&&(e=ua(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
|
||||
function Ne(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=void 0,p=8,q="";p?32<p&&(p=32):p=32;for(var x=null==k||isNaN(k),T=n=n||p;0<p--;)T||(q=","+q,T=n),q=(x?"?":k&1?"1":"0")+q,k>>=1,T--;g=q+g;d>>=8}d=m(c,0,!0)+" "+c+". "+wa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
|
||||
function Oe(a,b){if(b)return Ne(a,b,a.K[b]);var c=0;for(b in a.K)Ne(a,b,a.K[b]),c++;return 0<c}function I(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=wa(b,0<c?(c+2)/3|0:0);break;case 10:a=xa(b,0<c?Math.ceil(.3*c):0);break;default:a=m(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Me={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ie=Math.pow(2,32);
|
||||
function Pe(a){Ee.call(this,a);this.za=!1;this.xa=18;this.Ea=36;this.ma=["<",">"];this.la=[];this.ya=Y();this.L=Y(0);this.ga=Y(0);this.ba=Y(0);this.F=[];this.b=this.M=this.I=[];Qe(this);this.S=this.ka=0;this.i=[];this.qa=void 0;Re(this);this.D=this;this.na={};this.X=this.yb=0;this.T=null;this.P=[];Se(this,a.messages);this.wa=a.commands;this.O=0;this.Ca=this.va=null;this.C=this.Ba=this.Aa=this.fa=this.pa=0;this.oa=this.ea=this.aa=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return dd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return dd(b,a)})}ma(Pe,Ee);function Te(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,ha:!1,ca:c}}function Ue(a,b,c,d){a.B=b;a.Wa=c||!1;a.ha=!1;a.ca=d}function Ve(a){return[a.B,a.Wa,a.ha,a.ca,a.Za]}function We(a,b){var c=Y(b[0],b[1],b[2]);c.ha=b[3];b[4]&&(c.tb=Fe(a,c.Za=b[4]));return c}l=Pe.prototype;
|
||||
l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;this.xa=b.F;(a=Zc(a,"messages"))&&Se(this,a);Xe(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Te(Ye(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Jc[c],p&&d.j(m(p.id,8)+" %"+m(e<<d.H.i,8)+" %"+m(p.B,8)+
|
||||
" "+m(p.Oa,4,!0)+" "+m(p.size,4,!0)+" "+n),c!=Nc&&(c=-1),n=0);a+=16384;e++}}});Lb(this)};
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",dd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--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,Ya(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";dd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Ya(c,function(a){var b=!1;Mb(d,!0)||(Nb(d,!0),b=rc(d,a?1:0,null),Nb(d,!1));return b}),!0}return!1};function cd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.Ga=function(a,b){var c=-1,d=Te(a);-1!==d&&(c=xc(this.H,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Te(a);-1!==d&&(wc(this.H,d,b),c&&null!=a.B&&(a.B+=c||1),H(this.G,-1))};
|
||||
function Ye(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){b=Ke(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var n=a.F[k].U[f];if(null!=n){h=n.o;break}}null!=h&&(g=Y(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Je(a,b,void 0)}null!=f&&(f=Ze(f,a.xa),Ue(c,f,d,e));return c}function $e(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.tb=Fe(a,b.Za=c[2]))}
|
||||
function Ze(a,b){0>a&&a>=-B&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function af(a){return wa(a/Sb,6)+" "+wa(a%Sb,6)}
|
||||
function Se(a,b){a.D=a;a.X=a.yb=536870916;a.T=null;a.P=[];b=Fe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in $b){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=$b[c],a.j(c+" messages enabled"))}}function Xe(a,b){for(var c in $b)if(16==$b[c]){a.na[c]=b;break}}l.kb=function(a){return bf.indexOf(a.toUpperCase())};
|
||||
l.lb=function(a){var b,c=this.v;switch(a){case cf:b=c.i;break;case df:b=c.K;break;case ef:b=c.b;break;case ff:b=c.u&65536?1:0;break;case gf:b=c.u&32768?1:0;break;case hf:b=c.u&131072?1:0;break;case jf:b=c.u&32?1:0;break;case kf:b=c.u&262144?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+I(this,Y(this.v.xa).B));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.N)||Mb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,ld(a),a.fa=0,a.G&&H(a.G,void 0))}};
|
||||
function Re(a){var b;if(!rd(a))a.i&&a.i.length&&a.j("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lf);for(b=0;b<a.i.length;b++)a.i[b]=Y();a.S=0;a.j("instruction history buffer allocated")}}function mf(a,b,c){if(!nf(a,c))return!1;qc(a.v,b);return!0}
|
||||
function rc(a,b,c,d){if(!nf(a))return!1;var e="";null===c&&(e=(c=!a.va||"tr"==a.va)?"tr":"t");a.C=0;b||rd(a)&&sd(a,a.v.i,0);try{b=jd(a.v,b);var f=a.v.Qa(b);0<f&&(sc(a.v,f),a.C+=f,tc(a.v,f,!0),uc(a.v,f),a.fa++)}catch(g){"number"!=typeof g&&(a.C=0,Ib(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),H(a.G,-1));bd(a,c||!1,e);return 0<a.C}l.W=function(a){this.v&&this.v.W(a)};function bd(a,b,c){b=void 0===b?!0:b;a.za&&(c&&a.j(of+c),Ue(a.L,a.v.i),b&&1!=a.O?pf(a):qf(a))}
|
||||
function nf(a,b){var c;(c=!a.v||!Kb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Jb(a.v)}l.ua=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ia=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Re(this);this.fa=0;this.T=null;this.C=0;Ue(this.L,this.v.i);this.A.N=!1;rf(this);a||bd(this)};
|
||||
l.save=function(){var a=new F(this);a.set(0,Ve(this.L));a.set(1,Ve(this.ga));a.set(2,Ve(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=We(this,a[b++]),this.ga=We(this,a[b++]),this.ba=We(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.N=!0;this.Aa=a;this.Ba=b};
|
||||
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Ba;if(!this.O){b="stopped";if(this.C){a-=this.Aa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";rd(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Ob(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}bd(this,!0);cd(this);rf(this,this.v.i);this.T=null}};function rd(a){return 1<a.b.length||!!a.ka}
|
||||
function sd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.xa==b&&(b=qd(a.v,1)));if(0<c&&(a.ka&&!--a.ka||Wc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.fa++,0>d&&(d=a.v.f(b)),0<=d&&(Ue(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function sf(a,b,c,d){var e=Y(b.B),f=a.Ga(b,1),g,h,k,n=0,p=f/Wb|0,q;for(q in tf)if(g=tf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=uf;n=p&3;break;case 32256:k=vf;n=p&7;break;case 29248:k=wf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>xf&&(k="B");k=yf[g||0]+k;if(g){if(28700==h)h=f/Xb&127,n=I(a,h,-1);else if(h=f>>23&15,n=I(a,h,-1),h)for(p=0;p<zf.length;p++)g==zf[p][0]&&(q=zf[p][h])&&(k=yf[q],n="");k=Fa(k,8)+(n?n+",":"");f&4194304&&(k+="@");k+=I(a,f&262143,-1);(f=f>>18&15)&&(k+="("+I(a,f,-1)+")")}else k=
|
||||
Fa(k,8)+af(f);f=k;g="";h=I(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ga(e,1),g+=" "+af(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.La?h+("cycles="+ed(a.v).toString()+" cs="+m(a.v.za)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function bg(a,b,c,d){for(var e=-1,f,g,h=b.toUpperCase(),k=0;k<zf.length;k++)for(var n in zf[k])if(+n&&(g=zf[k][n],h==yf[g])){h=yf[zf[k][0]];c&&(c=I(a,+n)+","+c);break}for(var p in tf){f=+p;n=tf[p];switch(f){case 32512:k=uf;break;case 32256:k=vf;break;case 29248:k=wf;break;default:k=[""]}for(var q in n){g=n[q];for(var x=0;x<k.length;x++){var T=k[x];"S"==T&&g>xf&&(T="B");if(h==yf[g]+T){e=29248!=f?x:(x&3)<<1|(x&12)<<2;e=(q|e<<6)*Wb;break}}if(0<=e)break}if(0<=e)break}if(0<=e){if(c)for(b=c.split(","),
|
||||
c=0;c<b.length;c++)if(h=b[c].trim()){if(1<c){a.j("too many operands: "+h);e=-1;break}p=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!p){a.j("unknown operand: "+h);e=-1;break}h=p[2];c&&(h=h.replace(/(^|[^0-9])\./g,"$1"+I(a,d)));q=Je(a,h);if(void 0==q){e=-1;break}if(!c&&1<b.length)if(28700==f){if(0>q||127<q){a.j("device code out of range: "+h);e=-1;break}e+=q*Xb}else{if(0>q||15<q){a.j("accumulator address out of range: "+h);e=-1;break}e+=q<<23}else{if(0>q||262143<q){a.j("memory address out of range: "+h);
|
||||
e=-1;break}e+=q;if(h=p[3]){q=Je(a,h);if(void 0==q){e=-1;break}if(0>q||15<q){a.j("memory index out of range: "+h);e=-1;break}e+=q<<18}p[1]&&(e+=4194304)}}}else null!=c&&a.j("unknown instruction: "+b+" "+c);return e}function Qe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Te(c);var d=a.H;Vc(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=Te(c),d=a.H,Vc(d.b[c>>>d.i],!0);a.I=["bw"];a.pa=0;a.ka=0}
|
||||
l.Ia=function(a,b,c){var d=!0;c||dg(this,a,b,!1,!0);if(a!=this.b){var e=Te(b);if(-1===e)this.j("invalid address: "+I(this,b.B)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ia(e&16383,a==this.I)}}d&&(a.push(b),c?b.ha=!0:(eg(this,a,a.length-1,"set"),Re(this)));return d};function dg(a,b,c,d,e){var f=!1;c=Te(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Te(h)&&(!d||h.ha)){f=!0;h.ha||e||eg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,Vc(d.b[c>>>d.i],b==a.I));h.ha||Re(a);break}}return f}
|
||||
function fg(a,b){for(var c=1;c<b.length;c++)eg(a,b,c);return b.length-1}function eg(a,b,c,d){c=b[c];a.j(b[0]+" "+I(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function rf(a,b){if(void 0!==b)Wc(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.ha){if(!dg(a,a.b,c,!0))break;b=0}}}
|
||||
function Wc(a,b,c,d,e){var f=!1;if(!a.pa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ha)for(var k=Te(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.ha&&(dg(a,d,h,!0),e=!0);if(p=h.tb){for(var f=!1,q=0;q<p.length;q++)if(!gg(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||eg(a,d,g,"hit");break}}}a.pa--;return f}
|
||||
function hg(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=wa(d,2);Ue(e.ya,d);f+="="+I(e,e.Ga(e.ya),36)+" ";c+=f}if(b){b="";for(d=0;d<bf.length;d++)(e=bf[d]||"")&&(e+="="+I(a,a.lb(d),d>=ff?1:d==df?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 ye(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],q=Ha(p,k,a.zb);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Ob:d,U:e,ub:f})}function ig(a,b,c){var d=[],e=Te(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ob;if(e>=g&&e<g+h){e=Ha(f.ub,[e-g],a.zb);0<=e?jg(a,b,e,d):c&&(e=~e,jg(a,b,e-1,d),jg(a,b,e,d));break}}return d}
|
||||
function jg(a,b,c,d){var e={},f=a.F[b].ub,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function kg(a,b){var c=Ye(a,b[1],a.ba);if(c){var d=b[2];void 0==d?(a.j("begin assemble at "+I(a,c.B)),a.R=!0,H(a.G)):0<=d.indexOf(":")?a.oa?a.j("assembly already in progress"):a.oa=new lg(d,c.B,a,function(b,c,d){d?a.j("error assembling "+c+": ("+d+")"):a.j("loadAssembly()");a.oa=null}):(b.shift(),b.shift(),b.shift(),b=bg(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.j(sf(a,c))))}}
|
||||
function mg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Oe(a)||a.j("no variables"),!0;if(!c[2])return Oe(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Je(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function ng(a,b,c){var d=null;if(b=Ye(a,b)){var e=ig(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+m(f,4,!0)),f=e[0]+" ("+I(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+m(f,4,!0)),f=e[4]+" ("+I(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function pf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\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.j("missing value for "+b[1]);return}g=Je(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case cf:G(h,
|
||||
g);Ue(a.L,h.i);break;case ff:f=65536;break;case gf:f=32768;break;case hf:f=131072;break;case jf:f=32;break;case kf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);H(a.G);a.j("updated registers:")}}a.j(hg(a,e));c&&(Ue(a.L,d.i),qf(a,I(a,a.L.B)))}}function og(a,b){b=Ga(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ne(a,null,c[2].charCodeAt(0)):Je(a,b,!0)}
|
||||
function pg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Le(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.va=b;Xa(c,function(){return Nb(a,!0)&&rc(a,e,d,!1)},function(){a.ea&&a.ea.stop();H(a.G,-1);Nb(a,!1)})}}
|
||||
function qf(a,b,c,d){if(b=Ye(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Le(a,c.substr(1)),null!=c&&(d=c);else{d=Ye(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Mb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=ig(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.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.B=n.B;h.Wa=n.Wa;h.ha=n.ha;h.ca=n.ca;a.j(sf(a,b,g,f));e-=b.B-k;c++}}}
|
||||
function gg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(of+b):(a.R&&(a.j("ended assemble at "+I(a,a.ba.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Kb(a)&&0<b.length){a.R&&(b="a "+I(a,a.ba.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":kg(a,g);
|
||||
break;case "b":a:{var q=g[0],x=g[1],T=b;if("?"==x)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var ja=q.charAt(1);if("l"==ja){var wb;wb=0+fg(a,a.b);wb+=fg(a,a.M);(wb+=fg(a,a.I))||a.j("no breakpoints")}else if("n"==ja){var Z=+x||0;x&&(a.ka=Z);a.j("break after "+Z+" instruction(s)")}else if(void 0===
|
||||
x)a.j("missing breakpoint address");else{var L=Y();if("*"!=x&&(L=Ye(a,x,a.L),!L))break a;"c"==ja?null==L.B?(Qe(a),a.j("all breakpoints cleared")):dg(a,a.b,L)||dg(a,a.M,L)||dg(a,a.I,L)||a.j("breakpoint missing: "+I(a,L.B)):null!=L.B&&($e(a,L,T),"p"==ja?a.Ia(a.b,L):"r"==ja?a.Ia(a.M,L):"w"==ja?a.Ia(a.I,L):a.j("unknown breakpoint command: "+ja))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var oa,pa=g[0],da=g[1],Ba=g[2],gh=g[3];if("?"==da){var cb="";for(oa in $b)a.na[oa]&&(cb&&(cb+=","),cb+=
|
||||
oa);cb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");cb.length&&a.j("dump extension commands:\n\t"+cb)}else if("state"==da){var Cd=qg(a.G,!0);"console"==Ba?console.log(Cd):(a.ta&&(a.ta.value=""),Cd&&a.j(Cd))}else if("symbols"==da)for(var Dd=0;Dd<a.F.length;Dd++){var Ed=a.F[Dd],db;for(db in Ed.U)if("."!=db.charAt(0)){var Af=Ed.U[db].o;
|
||||
if(void 0!==Af){var Bf=Ed.U[db].l;Bf&&(db=Bf);a.j(I(a,Af)+" "+db)}}}else{if("d"==pa){for(oa in $b)if(g[1]==oa){var Cf=a.na[oa];Cf?(g.shift(),g.shift(),Cf(g)):a.j("no dump registered for "+da);break a}da||(pa=a.Ca||"dw")}else a.Ca=pa;if("dh"==pa){var Df=da,Ef=Ba,Ff="",Gf=0,ka=a.S,qa=a.i;if(qa.length){var ea=+Df||a.qa,yb=+Ef||10;isNaN(ea)?ea=yb:Ff="more ";ea>qa.length&&(a.j("note: only "+qa.length+" available"),ea=qa.length);ka-=ea;0>ka&&(null==qa[qa.length-1].B?(ea=ka+ea,ka=0):ka+=qa.length);var Fd=
|
||||
[];"call"==Ef&&(yb=1E5,Fd=["CALL"]);for(void 0!==Df&&a.j(ea+" instructions earlier:");0<yb&&ka!=a.S;){var Hf=qa[ka++];if(null==Hf.B)break;var zb=Y(Hf.B),hh=ea--,If=sf(a,zb,"history",hh);(!Fd.length||0<=If.indexOf(Fd[0]))&&a.j(If);zb.ib&&(ka+=zb.ib,yb-=zb.ib,ea-=zb.ib);ka>=qa.length&&(ka=0);a.qa=ea;Gf++;yb--}}Gf||(a.j("no "+Ff+"history available"),a.qa=void 0)}else{var eb=Ye(a,da,a.ga);if(eb){var La=0,Jf="ds"==pa;if(Ba){if("l"==Ba.charAt(0))Ba=Ba.substr(1)||gh,La=Le(a,Ba);else{var Kf=Ye(a,Ba);Kf&&
|
||||
(La=Kf.B-eb.B)}0>La&&(La=0);65536<La&&(La=65536)}var ih=a.ca;eb.ca&&(a.ca=eb.ca);for(var Lf="db"==pa?1:2,Gd=La||32,Hd=1==Lf?2:4,jh=(Gd+Hd-1)/Hd|0||1,Ma="";jh--&&0<Gd;){for(var Na="",Mf="",da=I(a,eb.B),Nf=Hd;0<Nf--&&0<Gd--;){var Ac=a.Ga(eb,1);Jf?(Na&&(Na+=","),Na+=Ac):(Na+=af(Ac),Na+=" ");for(var Of=0;1==Lf&&6>Of;Of++)Mf+=String.fromCharCode((Ac%64|0)+32),Ac/=64}Ma&&(Ma+="\n");Ma=Jf?Ma+(Na+","):Ma+(da+": "+Na+(0>Nf?" "+Mf:""))}Ma&&a.j(Ma);a.ca=ih}}}}break;case "e":if("else"==g[0])break;var Pf,Qf,
|
||||
Rf=g[0],Id=g[1];"e"==Rf||"ew"==Rf?(Pf=a.Ga,Qf=a.rb):Id=null;if(null==Id)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Bc=Ye(a,Id,a.ga);if(Bc)for(var Jd=2;Jd<g.length;Jd++){var Ab=Je(a,g[Jd]);if(void 0===Ab)break;Ab=Ze(Ab);a.j("changing "+I(a,Bc.B)+" from "+af(Pf.call(a,Bc))+" to "+af(Ab));Qf.call(a,Bc,Ab,1)}}break;case "g":a:{var Sf=g[1],kh=b;if(void 0!==Sf){var Kd=Ye(a,Sf);if(!Kd)break a;$e(a,Kd,kh);a.Ia(a.b,Kd,!0)}mf(a,!0,c)}break;case "h":a.A.N?(c||a.j("halting"),
|
||||
a.W()):Mb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Ld;var Bb=b.substr(2),Bb=Ga(Bb);Je(a,Bb)?(c||a.j("true: "+Bb),Ld=!0):(c||a.j("false: "+Bb),Ld=!1);Ld||(d=!1);break}f=!0;break;case "k":var lh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Md=0,Nd=Y(),Cb=Y();for(a.j("stack trace for "+I(a,Cb.B));10>Md;){for(var Oa=null,mh=256;65536>Cb.B>>>0;){Nd.B=a.Ga(Cb,2);if(null==Cb.B||!mh--)break;if(!(Nd.B&
|
||||
1)){for(var nh=a,Cc=Nd,Tf=null,Db=Cc.B,Uf=Db,Od=1;6>=Od&&Db;Od++){if(2<Od){Cc.B=Db;var Dc=sf(nh,Cc);if(0<=Dc.indexOf("JSR")){var Vf=Dc.indexOf(" ");if(Db+(Dc.indexOf(" ",Vf+1)-Vf-1)/2==Uf){Tf=Dc;break}}}Db-=2}Cc.B=Uf;if(Oa=Tf)break}}if(!Oa||null==Oa)break;var Wf=null;if("ks"==lh){var Xf=Oa.match(/[0-9A-F]+$/);Xf&&(Wf=ng(a,Xf[0]))}Oa=Fa(Oa,50)+" ;"+(Wf||"stack="+I(a,Cb.B));a.j(Oa);Md++}Md||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){ng(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,
|
||||
sa=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ca=0;if("all"==M)Ca=1879046143,M=null;else if("on"==M)sa=!0,M=null;else if("off"==M)sa=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(ra in $b)if(M==ra){Ca=$b[ra];sa=!!(a.X&Ca);break}if(!Ca){a.j("unknown message category: "+M);break a}}if(Ca)if("on"==g[2])a.X|=Ca,sa=!0;else if("off"==g[2]&&(a.X&=~Ca,sa=!1,1073741824==Ca)){for(var Yf=1E3<=a.P.length?a.P.length-1E3:0;Yf<a.P.length;)a.j(a.P[Yf++]);a.P=[]}}var oh=0,Eb="";for(ra in $b)if(!M||
|
||||
M==ra){var ph=!!(a.X&$b[ra]);if(null===sa||sa==ph)Eb&&(Eb+=","),++oh%10||(Eb+="\n\t"),"key"==ra&&(ra="keys"),Eb+=ra}void 0===M&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Eb||"none"));Re(a)}break;case "p":if("print"==g[0]){og(a,b.substr(5));break}var Zf=g[0],$f="p"==Zf?0:"pr"==Zf?1:-1;if("?"==g[1]||0>$f)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");
|
||||
else if(a.O)a.j("step in progress");else{var ag=Y(a.v.i);a.Ga(ag);a.O?(a.Ia(a.b,ag,!0),mf(a)||(a.G&&id(a.G),a.O=0)):pg(a,$f?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}pf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Fb=+g[2];if(8==Fb||10==Fb||16==Fb)a.ca=Fb;else{a.j("invalid base: "+Fb);break}}a.j("default base: "+a.ca);break;case "cs":var Gb;void 0!==g[3]&&(Gb=+g[3]);switch(g[2]){case "int":a.v.ka=Gb;break;case "start":a.v.Aa=Gb;break;case "stop":a.v.ma=Gb;break;
|
||||
default:a.j("unknown cs option");break a}void 0!==Gb&&ad(a.v);a.j("checksums "+(a.v.A.La?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(fd(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":pg(a,g[0],g[1]);break;case "u":qf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){mg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Qb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){og(a,b.substr(1));break}var Pd="commands:",Qd;for(Qd in rg)Pd+="\n"+Fa(Qd,9)+rg[Qd];rd(a)||(Pd+="\nnote: history disabled if no exec breakpoints");
|
||||
a.j(Pd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(cg){a.j("Debugger "+(cg.stack||cg.message)),d=!1}return d}function dd(a,b,c){b=Fe(a,b,c);for(var d in b)if(!gg(a,b[+d]))return!1;return!0}
|
||||
var rg={"?":"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"},xf=20,yf=".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(" "),
|
||||
cf=0,df=1,ef=2,ff=3,gf=4,hf=5,jf=6,kf=7,bf="PC RA EA C0 C1 OV ND PD".split(" "),sg={},tf=(sg[28672]={0:101},sg[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},sg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:xf,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},sg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},sg[29248]={24576:79,24640:80,25088:81,25152:82},sg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},sg),uf=["","I","M","S"],vf=" L E LE A GE N G".split(" "),wf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),zf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],lf=1E3,of=">> ";$a(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Pe(d);sb(d,c)}});
|
||||
function lg(a,b,c,d){this.O=b||0;this.v=c;this.done=d;this.j=c.j;this.w={};this.M={};this.L=this.u=0;this.H=[];this.D=[];this.I=[];this.Fa=this.O;this.F=null;this.b=0;this.K=null;this.C=this.J="";this.i=null;this.G="";var e=this;Ja(a,null,!0,function(a,b,c){if(!c){var d=e.v;c=d.K;d.K={};try{d=b;if(Aa(a,".html")){for(var d="",f,g=/<pre>([\s\S]*?)<\/pre>/gi;f=g.exec(b);){var h=f[1];0<=h.indexOf("&")&&(h=h.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&"));d+=h}(f=d.match(/&[a-z]+;/i))&&
|
||||
e.j("warning"+(e.u?" at line "+xa(e.u):"")+": "+("unrecognized HTML entity: "+f[0]))}var x,T=d.split(/\r?\n/);for(x=0;x<T.length&&(e.u++,tg(e,T[x]+"\r\n"));x++);for(x=0;x<e.D.length;x++){var ja=e.w[e.D[x]];ja?ug(e,ja.Ja):e.error("missing definition for literal: "+e.D[x])}for(var wb in e.I){f=b=0;var Z=e.I[+wb],L=Z.Fa;if(0>Z.Ea){b=bg(e.v,Z.Ka[0],Z.Ka[1],L);if(0>b){e.error("unable to parse instruction: "+Z.Ka[0]+" "+Z.Ka[1]);break}e.H[L++]+=b}else for(x=0;x<Z.Ka.length;x++){var oa=Z.Ka[x],pa=vg(e,oa);
|
||||
if(void 0===pa){e.error("unable to parse expression: "+oa);break}b+=pa;f+=Z.Ea;if(36>f)b*=Math.pow(2,36-f);else{if(void 0===e.H[L]){e.error("undefined fixup location: "+wa(L,0,!0));break}e.H[L++]+=b;b=f=0}}}}catch(da){e.j(da.message),e.L=-1}e.v.K=c;c=e.L}e.done(e,a,c)})}
|
||||
function tg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.C);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.F+" definition: "+b)}if(1<a.b){for(var c="",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.K||"";a.w[d].Ja+=b;a.b||(a.K=null,wg(a,d));b=c}if(a.b)return!0}null!=a.i&&(b=xg(a,b));c=b.match(/\s*([A-Z$%.][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+
|
||||
b),!1;d=c[1];b=c[2].toUpperCase();c=c[3].trim();if(d){var e=d.slice(-1),d=d.slice(0,-1);":"==e?yg(a,d,a.Fa,!0):(c=b+c,b=e)}a.F=b;c=c.trim();"="==c[0]&&(d=b,c=c.substr(1),b="=");for(var e=c,f=0,g=null,h=0,k=-1;h<e.length;){var n=e[h];"["==n&&(f++||(k=h));h++;if("]"==n&&0>=--f)break}0>f&&a.error("missing bracket(s): "+e);0<=k&&(g=e.substr(k,h-k));(e=g)&&(c=c.replace(e,zg(a,Ag,e)));f=null;if(e=c.match(/([A-Z$%.][0-9A-Z$%.]*)#/i))f=e[1],g="@"+f,a.w[g]={name:g,mb:0,vb:[],Ib:[],Ja:f+": 0"},a.D.push(g),
|
||||
f=e[0];(e=f)&&(c=c.replace(e,e.slice(0,-1)));if(!wg(a,b,c))switch(b){case "":break;case "=":b=d;d=vg(a,c);void 0===d?a.error("parseExpression("+c+")"):yg(a,b,d);break;case Bg:case Cg:case Dg:xg(a,c);break;case Eg:Fg(a,0,Gg(a,c),18);break;case Hg:case Ig:case Jg:zg(a,b,c);break;case Kg:case Lg:break;default:d=b,e=c,f=bg(a.v,d),0<=f?(Fg(a,f,[d,e],-1),d=!0):d=!1,d||Fg(a,0,[b+c])}return!0}
|
||||
function wg(a,b,c){var d=a.w[b];if(!d)return!1;if(null!=c)return b=",","("==c[0]&&(b+=")",c=c.substr(1)),c=Gg(a,c,b),ug(a,d.Ja,d.vb,c),!0;if("@"!=b[0])return!1;switch(b.substr(1)){case Ig:d.mb||ug(a,d.Ja);break;case Jg:for(;0<d.mb--;)ug(a,d.Ja);break;default:return!1}return!0}
|
||||
function ug(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,q=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(q>=f.length)&&f[q].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(q),n=p+k.length)}if(!tg(a,f))break}}lg.prototype.error=function(a){throw Error("error"+(this.u?" at line "+xa(this.u):"")+": "+a);};
|
||||
function Mg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}function vg(a,b){b=b.replace(/\.([^0-9]|$)/g,"$1"+I(a.v,a.Fa));return Je(a.v,b)}function Gg(a,b,c){for(var d=[];b;){b=b.trim();var e=Mg(a,b,c);if(!e)break;d.push(e);b=b.substr(e.length+1)}return d}
|
||||
function xg(a,b){var c=b;null==a.i&&(a.i=a.G="",b&&(a.i=b[0],c=b=b.substr(1)));if(a.i){var d=b.indexOf(a.i);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.i=null);a.G+=b}if(null==a.i){var d=b=0,e,f,g=a.G.length;a.F==Cg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.F==Dg&&(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&&(Fg(a,d),b=0)}b&&Fg(a,d)}return c}
|
||||
function zg(a,b,c){var d,e,f;a.C="<";a.J=">";if(b==Hg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];c=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);e=-1;f=3}else if(b==Ag)a.C="[",a.J="]",b="@"+xa(a.Fa,5),a.D.push(b),d=[c[0],c.substr(1)],c=[],e=a.u,f=0;else{e=Mg(a,c);if(!e)return a.error("missing "+b+" expression: "+c),"";c=c.substr(e.length+1);e=e.trim();d=c.match(/\s*(<|)(.*)/i);b="@"+b;c=[];e=vg(a,e)||0;f=1}b=b.toUpperCase();
|
||||
a.b=1;var g="";d[f]&&(a.b=2,g=d[f+1],g.slice(-1)==a.J&&(a.b=0,g=g.slice(0,-1)));a.w[b]={name:b,mb:e,vb:c,Ib:[],Ja:g};a.b?a.K=b:wg(a,b);return b}function yg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&a.M[b]?a.error("label "+b+" redefined"):(a.M[b]={name:b,value:c,hd:d,gd:e,jd:f},a.v.K[b]=c)}function Fg(a,b,c,d){a.H[a.Fa]=b;c&&a.I.push({Fa:a.Fa,Ka:c,Ea:void 0===d?36:d});a.Fa++}
|
||||
var Bg="ASCII",Cg="ASCIZ",Hg="DEFINE",Ig="IFE",Ag="LITERAL",Kg="PAGE",Jg="REPEAT",Dg="SIXBIT",Lg="SUBTTL",Eg="XWD";
|
||||
function Ng(a,b,c){t.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Og(this,b);this.O=Zc(this,"autoPower",a,6);this.w=0;this.aa=+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.ba=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Pg(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.H=new yc({id:this.Ua+".bus",busWidth:this.aa},this.v,this.D);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ta)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.ta=this.u.ta;this.j(Qb+" 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.Da&&d.Da(this,this.H,this.v,this.D);b=null;d=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Zc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Qg),this.b&&(this.I=new F(this,"1.34.2"),Rg(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Sg(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.T=!0);Lb(g)})}else Lb(this);this.J.power||(this.O=!0);!c&&this.O&&Tg(this,this.Na)}else r("Unable to find CPU component")}ma(Ng,t);function Og(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 Zc(a,b,c,d){var e=b.toLowerCase(),e=Va(b)||Va(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 Tg(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Kb(f)){Kb(f,function(){Tg(a,b,c)});return}}b.call(a,c)}
|
||||
function Ug(a,b){var c=new F(a,"1.34.2",Vg);if(Rg(c)&&Wg(c)){var d=c.get(Xg),e=b?b.get(Xg):"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=Ng.prototype;
|
||||
l.Na=function(a){void 0===a&&(a=this.b||(this.L?Yg:Qg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.2");if(a==Zg)b=!0;else if(a>Qg){if(Rg(d,this.L)){this.C=new F(this,"1.34.2",$g);Rg(this.C)&&(ah(this,d),a=bh,ch(this.C));this.C.set(Xg,Ia());dh(this.C);var e=this.b&&!this.K;if(a==Yg||ob("Click OK to restore the previous "+Qb+" machine state, or CANCEL to reset the machine.")){if(c=Wg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Rg(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ta(eh,""),this.i=null)):this.j(f+": "+g),ch(d),Rg(d)?(c=Wg(d),e=!0):c=!1))}e&&Ug(this,c?d:null)}else a==bh&&d.clear()}else Ug(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=fh(this,g,d,b,c));b=[d,a,c];a!=Zg?Tg(this,this.Ab,b):this.Ab(b)}};
|
||||
function fh(a,b,c,d,e){if(!b.A.V){b.A.V=!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.ua(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Qg,window&&window.location.reload()):a.P=!0,b.ua(null),e=!1),!d&&b.ob){var g=b.ob.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.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(fh(this,this.v,b,c,a),H(this,-2),this.v.Z());this.P&&(ah(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function ah(a,b){if(ob("There may be a problem with your "+Qb+" machine.\n\nTo help us diagnose it, click OK to send this "+Qb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Qb;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 qg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Vg),h=Ia();g.set(Xg,h);f.set(Xg,h);f.set(qh,"1.34.2");f.set(rh,window?window.location.href:null);f.set(sh,window?window.navigator.userAgent:"");a.v&&a.v.ia&&(c&&(b&&(a.v.A.Z=a.v.A.N),a.v.W()),d=a.v.ia(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.V&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&th(a,a.i,f.toString()),dh(g)&&dh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==uh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
l.reset=function(){this.A.reset=!0;this.H&&this.H.reset&&(Pb(this,"Resetting "+this.H.type),this.H.reset());this.v&&this.v.reset&&(Pb(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.v&&c.reset&&(Pb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};l.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
|
||||
l.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}H(this,-1)};
|
||||
function H(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.Ya+=d))&&(e.textContent=c.A.M?c.aa.toFixed(2)+"Mhz":"Stopped",c.Ya=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.v.A.M;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.C&&a.C.ca||8,e=e||0,e=8==f?ua(e,void 0):m(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.va);hc(a,a.i);bc(a,a.w)}}
|
||||
l.ka=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?sg(d,!1,!0):Pg(d,d.Ka))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ka(Mg)}else d.reset(),d.v&&!d.C&&d.v.Z()},!0;case "save":if(ya(Na(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=Lg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=sg(d,b);b?ph(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Lg(a,b){var c=a.i;c||((c=Qa(ah),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=rh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
||||
function rh(a,b){a.i=null;b=Ha(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(ah,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function Og(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+sh(a,"1.34.2"));return b}
|
||||
function ph(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=sh(a,"1.34.2");d.data=c;b=Ha(Na()+"/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),Ra(ah,""),a.i=null)}}
|
||||
function hd(a,b){if(a.ta){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ta.focus();!b&&window&&window.scrollTo(c,d)}}var Wg="failsafe",Rg="validate",Tg="timestamp",ch="version",dh="url",eh="browser",ah="user",Vg=-1,Mg=0,Ug=1,Yg=2,qh=3;Ya(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new Jg(g,d,!0);sb(g,f);g.O&&Pg(g,g.Ka)}});
|
||||
Za.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Ka(Vg)}});Za.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.A.V&&sg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=sh(a,b,c);Zg(this,a.Gb)}l=F.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 Ng(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function Sg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function $g(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(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 Zg(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){Zg(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 sh(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 th=0;
|
||||
function uh(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)):vh(k,a,b,c,d,e,f,g)})}
|
||||
function vh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(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(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?wh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function wh(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);wh(a,b,c)}})}else c(a,null)}
|
||||
function xh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--th||gb(!0));n=!1}var h,k,n=!0;th++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=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));q.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?uh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--th||gb(!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),--th||
|
||||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?uh(c,b,a,e,!0,f,p):vh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(S){g(S.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return xh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return xh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
|
||||
function H(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.aa.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.u&&(a=a.u,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.ca||8,e=e||0,e=8==f?wa(e,void 0):m(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.va);ic(a,a.i);cc(a,a.w)}}
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?qg(d,!1,!0):Tg(d,d.Na))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Qb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");qg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Na(Qg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(Aa(Pa(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=Pg(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=qg(d,b);b?th(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Pg(a,b){var c=a.i;c||((c=Sa(eh),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=vh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
||||
function vh(a,b){a.i=null;b=Ja(Pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(eh,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function Sg(a){var b=null;a.i&&(b=Pa()+"/api/v1/user?req=load&user="+a.i+"&state="+wh(a,"1.34.2"));return b}
|
||||
function th(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=wh(a,"1.34.2");d.data=c;b=Ja(Pa()+"/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),Ta(eh,""),a.i=null)}}
|
||||
function id(a,b){if(a.ta){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ta.focus();!b&&window&&window.scrollTo(c,d)}}var $g="failsafe",Vg="validate",Xg="timestamp",qh="version",rh="url",sh="browser",eh="user",Zg=-1,Qg=0,Yg=1,bh=2,uh=3;$a(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new Ng(g,d,!0);sb(g,f);g.O&&Tg(g,g.Na)}});
|
||||
ab.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Na(Zg)}});ab.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=rb("Computer",c.id))&&c.A.V&&qg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=wh(a,b,c);ch(this,a.Kb)}l=F.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 Rg(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Qa()&&(b=Sa(a.key))?(a.i=b,a.v=!0):!1}function Wg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function dh(a){var b=!0;if(Qa()){var c=JSON.stringify(a.b);Ta(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 ch(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){ch(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 wh(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 xh=0;
|
||||
function yh(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)):zh(k,a,b,c,d,e,f,g)})}
|
||||
function zh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(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(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ah(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ah(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);Ah(a,b,c)}})}else c(a,null)}
|
||||
function Bh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Da(a))}function g(a){f("Error: "+a);n&&(--xh||gb(!0));n=!1}var h,k,n=!0;xh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=p:x.appendChild(document.createTextNode(p));q.appendChild(x)}d||
|
||||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?yh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--xh||gb(!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),--xh||
|
||||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?yh(c,b,a,e,!0,f,p):zh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(T){g(T.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return Bh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return Bh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var q=b[p];if('"'==q||"'"==q)n&&q!=n?k+=q:(n?n=null:n=q,k&&(h.push(k),k=""));else{if(!n){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){k&&(h.push(k),k="");";"==q&&h.length&&(g.push(h),h=[]);continue}}k+=q}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=gb;window.sendEvent=ib;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue