Added PDP-10 JSP and JFCL operations (which seem to be the simplest means of getting and setting the processor flags)

This commit is contained in:
Jeff 2017-03-07 13:44:43 -08:00 committed by Jeff Parsons
commit 7e207db2a1
8 changed files with 456 additions and 350 deletions

View file

@ -43,5 +43,9 @@
//
0o515040170600, // 000117: HRLZI 1,170600
0o135100000001, // 000120: LDB 2,1
0o270000000000, // 000121: ADD 0,0
0o265040000123, // 000122: JSP 1,.+1
0o270000000000, // 000123: ADD 0,0
0o265040000125, // 000124: JSP 1,.+1
]
}

View file

@ -13,6 +13,12 @@ dep 113 251000000017
dep 114 577040000002
dep 115 261240000011
dep 116 262240000005
dep 117 515040170600
dep 120 135100000001
dep 121 270000000000
dep 122 265040000123
dep 123 270000000000
dep 124 265040000125
ex -m 100-116
dep pc 100
step 11

View file

@ -972,7 +972,7 @@ PDP10.opMOVSS = function(op, acc)
*/
PDP10.opMOVN = function(op, acc)
{
this.writeWord(acc, this.negate(this.readWord(this.regEA)));
this.writeWord(acc, PDP10.doNEG.call(this, this.readWord(this.regEA)));
};
/**
@ -1000,7 +1000,7 @@ PDP10.opMOVN = function(op, acc)
PDP10.opMOVNI = function(op, acc)
{
/*
* We perform an in-line twos complement of regEA, since negate() updates the flags, and the documentation
* We perform an in-line twos complement of regEA, since doNEG() updates the flags, and the documentation
* above claims that this operation must "set no flags." It's certainly true that regEA, being an 18-bit value,
* could never be -2^35, but it COULD be zero -- and apparently this instruction treats zero differently from MOVN.
*
@ -1031,7 +1031,7 @@ PDP10.opMOVNI = function(op, acc)
*/
PDP10.opMOVNM = function(op, acc)
{
this.writeWord(this.regEA, this.negate(this.readWord(acc)));
this.writeWord(this.regEA, PDP10.doNEG.call(this, this.readWord(acc)));
};
/**
@ -1056,7 +1056,7 @@ PDP10.opMOVNM = function(op, acc)
*/
PDP10.opMOVNS = function(op, acc)
{
var dst = this.negate(this.readWord(this.regEA));
var dst = PDP10.doNEG.call(this, this.readWord(this.regEA));
this.writeWord(this.regEA, dst);
if (acc) this.writeWord(acc, dst);
};
@ -1083,7 +1083,7 @@ PDP10.opMOVNS = function(op, acc)
*/
PDP10.opMOVM = function(op, acc)
{
this.writeWord(acc, this.abs(this.readWord(this.regEA)));
this.writeWord(acc, PDP10.doABS.call(this, this.readWord(this.regEA)));
};
/**
@ -1110,6 +1110,9 @@ PDP10.opMOVM = function(op, acc)
*/
PDP10.opMOVMI = function(op, acc)
{
/*
* Since the src is an 18-bit immediate value, there's no need to call doABS().
*/
this.writeWord(acc, this.regEA);
};
@ -1135,7 +1138,7 @@ PDP10.opMOVMI = function(op, acc)
*/
PDP10.opMOVMM = function(op, acc)
{
this.writeWord(this.regEA, this.abs(this.readWord(acc)));
this.writeWord(this.regEA, PDP10.doABS.call(this, this.readWord(acc)));
};
/**
@ -1160,7 +1163,7 @@ PDP10.opMOVMM = function(op, acc)
*/
PDP10.opMOVMS = function(op, acc)
{
var dst = this.abs(this.readWord(this.regEA));
var dst = PDP10.doABS.call(this, this.readWord(this.regEA));
this.writeWord(this.regEA, dst);
if (acc) this.writeWord(acc, dst);
};
@ -1936,7 +1939,31 @@ PDP10.opJRST = function(op, acc)
};
/**
* opJFCL(0o255000)
* opJFCL(0o255000): Jump on Flag and Clear
*
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-57:
*
* If any flag specified by F [acc] is set, clear it and take the next instruction from location E,
* continuing sequential operation from there.
*
* To select one or a combination of these flags (which are among those described above) the programmer can specify
* the equivalent of an AC address that places 1s in the appropriate bits, but MACRO recognizes mnemonics for some of
* the 13-bit instruction codes (bits 0-12).
*
* JFCL JFCL 0, No-op 25500
* JOV JFCL 10, Jump on Overflow 25540
* JCRY0 JFCL 4, Jump on Carry 0 25520
* JCRY1 JFCL 2, Jump on Carry 1 25510
* JCRY JFCL 6, Jump on Carry 0 or 1 25530
* JFOV JFCL 1, Jump on Floating Overflow 25504
*
* SIDEBAR: This instruction can be used simply to clear the selected flags by having the jump address point to the
* next consecutive location, as in:
*
* JFCL 17,.+1
*
* which clears all four flags without disrupting the normal program sequence. A JFCL that selects no flag is the fastest
* no-op as it neither fetches nor stores an operand, and bits 18-35 of the instruction word can be used to store information.
*
* @this {CPUStatePDP10}
* @param {number} op
@ -1944,7 +1971,14 @@ PDP10.opJRST = function(op, acc)
*/
PDP10.opJFCL = function(op, acc)
{
this.opUndefined(op);
/*
* The acc (F) bits from the opcode align perfectly with the top 4 bits of regPS; all we have to do is shift acc left 14.
*/
var bitsPS = acc << 14;
if (this.regPS & bitsPS) {
this.regPS &= ~bitsPS;
this.setPC(this.regEA);
}
};
/**
@ -2078,7 +2112,15 @@ PDP10.opJSR = function(op, acc)
};
/**
* opJSP(0o265000)
* opJSP(0o265000): Jump and Save PC
*
* Place the current contents of the flags (as described above) in AC left and the contents of PC in AC right
* (at this time PC contains an address one greater than the location of the JSP instruction). Take the next
* instruction from location E and continue sequential operation from there. The flags are unaffected except
* Byte Interrupt, which is cleared.
*
* If this instruction is executed as a result of a priority interrupt or in un-relocated 41 or 61 while the
* processor is in user mode, bit 5 of the PC word stored is 1 and the processor leaves user mode.
*
* @this {CPUStatePDP10}
* @param {number} op
@ -2086,7 +2128,8 @@ PDP10.opJSR = function(op, acc)
*/
PDP10.opJSP = function(op, acc)
{
this.opUndefined(op);
this.writeWord(acc, this.getPS() + this.getPC());
this.setPC(this.regEA);
};
/**
@ -5234,6 +5277,27 @@ PDP10.opUndefined = function(op, acc)
this.stopCPU();
};
/**
* doABS(src)
*
* Used by the MOVM* (Move Magnitude) instructions.
*
* @this {CPUStatePDP10}
* @param {number} src (36-bit)
* @return {number} (absolute value of src)
*/
PDP10.doABS = function(src)
{
if (src > PDP10.MAX_POS36) {
if (src != PDP10.MIN_NEG36) {
src = PDP10.TWO_POW36 - src;
} else {
this.regPS |= (PDP10.PSFLAG.OVFL | PDP10.PSFLAG.CARRY1);
}
}
return src;
};
/**
* doADD(dst, src)
*
@ -5431,6 +5495,34 @@ PDP10.doMUL = function(dst, src)
return res;
};
/**
* doNEG(src)
*
* Used by the MOVN* (Move Negative) instructions.
*
* @this {CPUStatePDP10}
* @param {number} src (36-bit)
* @return {number} (src negated, but as an unsigned 36-bit result)
*/
PDP10.doNEG = function(src)
{
if (!src) {
this.regPS |= (PDP10.PSFLAG.CARRY0 | PDP10.PSFLAG.CARRY1);
}
else {
/*
* In the non-zero case, it's always safe to subtract src from TWO_POW36, but since we have to check for
* the MIN_NEG36 case anyway, and since subtraction in that case doesn't alter src, we skip the subtraction.
*/
if (src == PDP10.MIN_NEG36) {
this.regPS |= (PDP10.PSFLAG.OVFL | PDP10.PSFLAG.CARRY1);
} else {
src = PDP10.TWO_POW36 - src;
}
}
return src;
};
/**
* doSUB(dst, src)
*

View file

@ -336,14 +336,15 @@ class CPUStatePDP10 extends CPUPDP10 {
/**
* getPS()
*
* Gets the processor state flags in the format required by various program control operations.
* Gets the processor state flags in the format required by various program control operations (eg, JSP),
* pre-masked and pre-shifted for convenient loading into the left half of an accumulator.
*
* @this {CPUStatePDP10}
* @return {number}
*/
getPS()
{
return this.regPS & PDP10.HALF_MASK;
return (this.regPS & PDP10.HALF_MASK) * PDP10.HALF_SHIFT;
}
/**
@ -489,55 +490,6 @@ class CPUStatePDP10 extends CPUPDP10 {
this.regPC = addr % PDP10.ADDR_LIMIT;
}
/**
* abs(src)
*
* Used by the MOVM* (Move Magnitude) instructions.
*
* @this {CPUStatePDP10}
* @param {number} src (36-bit)
* @return {number} (absolute value of src)
*/
abs(src)
{
if (src > PDP10.MAX_POS36) {
if (src != PDP10.MIN_NEG36) {
src = PDP10.TWO_POW36 - src;
} else {
this.regPS |= (PDP10.PSFLAG.OVFL | PDP10.PSFLAG.CARRY1);
}
}
return src;
}
/**
* negate(src)
*
* Used by the MOVN* (Move Negative) instructions.
*
* @this {CPUStatePDP10}
* @param {number} src (36-bit)
* @return {number} (src negated, but as an unsigned 36-bit result)
*/
negate(src)
{
if (!src) {
this.regPS |= (PDP10.PSFLAG.CARRY0 | PDP10.PSFLAG.CARRY1);
}
else {
/*
* In the non-zero case, it's always safe to subtract src from TWO_POW36, but since we have to check for
* the MIN_NEG36 case anyway, and since subtraction in that case doesn't alter src, we skip the subtraction.
*/
if (src == PDP10.MIN_NEG36) {
this.regPS |= (PDP10.PSFLAG.OVFL | PDP10.PSFLAG.CARRY1);
} else {
src = PDP10.TWO_POW36 - src;
}
}
return src;
}
/**
* addIRQ(vector, priority, message)
*

View file

@ -1497,16 +1497,25 @@ class DebuggerPDP10 extends Debugger {
if (!fOperands) {
if (!opNum) sOperation = "";
} else {
sOperation = Str.pad(sOperation, 8);
if (!opNum) {
sOperation += this.toStrWord(opCode);
sOperation = Str.pad(sOperation, 8) + this.toStrWord(opCode);
} else {
var n, sOperand;
if (opMask == PDP10.OPCODE.OPIO) {
sOperation += this.toStrBase((opCode / PDP10.OPCODE.IO_SCALE) & PDP10.OPCODE.IO_MASK, -1);
n = (opCode / PDP10.OPCODE.IO_SCALE) & PDP10.OPCODE.IO_MASK;
sOperand = this.toStrBase(n, -1);
} else {
sOperation += this.toStrBase((opCode >> PDP10.OPCODE.A_SHIFT) & PDP10.OPCODE.A_MASK, -1);
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 = "";
}
}
}
sOperation += ',';
sOperation = Str.pad(sOperation, 8) + (sOperand? sOperand + ',' : "");
if (opCode & PDP10.OPCODE.I_BIT) sOperation += '@';
sOperation += this.toStrBase(opCode & PDP10.OPCODE.Y_MASK, -1);
var i = (opCode >> PDP10.OPCODE.X_SHIFT) & PDP10.OPCODE.X_MASK;
@ -1558,7 +1567,7 @@ class DebuggerPDP10 extends Debugger {
}
/**
* parseInstruction(sOpCode, sOperands, addr)
* parseInstruction(sOpCode, sOperands, dbgAddr)
*
* @this {DebuggerPDP10}
* @param {string} sOpCode
@ -1568,9 +1577,21 @@ class DebuggerPDP10 extends Debugger {
*/
parseInstruction(sOpCode, sOperands, dbgAddr)
{
var opCode = -1, opMask;
var opCode = -1, opMask, opNum;
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 mask in DebuggerPDP10.OPTABLE) {
var aModes;
@ -1595,7 +1616,7 @@ class DebuggerPDP10 extends Debugger {
var opMode = 0;
for (var op in opMasks) {
var opNum = opMasks[op];
opNum = opMasks[op];
for (var iMode = 0; iMode < aModes.length; iMode++) {
var sMode = aModes[iMode];
@ -1638,7 +1659,15 @@ class DebuggerPDP10 extends Debugger {
opCode = -1;
break;
}
var operand = this.parseExpression(match[2]);
sOperand = match[2];
if (i) {
/*
* 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));
}
var operand = this.parseExpression(sOperand);
if (operand == undefined) {
opCode = -1;
break;
@ -1646,7 +1675,7 @@ class DebuggerPDP10 extends Debugger {
if (!i && aOperands.length > 1) {
if (opMask == PDP10.OPCODE.OPIO) {
if (operand < 0 || operand > PDP10.OPCODE.IO_MASK) {
this.println("device code out of range: " + match[2]);
this.println("device code out of range: " + sOperand);
opCode = -1;
break;
}
@ -1654,7 +1683,7 @@ class DebuggerPDP10 extends Debugger {
}
else {
if (operand < 0 || operand > PDP10.OPCODE.A_MASK) {
this.println("accumulator address out of range: " + match[2]);
this.println("accumulator address out of range: " + sOperand);
opCode = -1;
break;
}
@ -1663,19 +1692,20 @@ class DebuggerPDP10 extends Debugger {
continue;
}
if (operand < 0 || operand > PDP10.OPCODE.Y_MASK) {
this.println("memory address out of range: " + match[2]);
this.println("memory address out of range: " + sOperand);
opCode = -1;
break;
}
opCode += operand;
if (match[3]) {
operand = this.parseExpression(match[3]);
sOperand = match[3];
if (sOperand) {
operand = this.parseExpression(sOperand);
if (operand == undefined) {
opCode = -1;
break;
}
if (operand < 0 || operand > PDP10.OPCODE.X_MASK) {
this.println("memory index out of range: " + match[3]);
this.println("memory index out of range: " + sOperand);
opCode = -1;
break;
}
@ -2141,7 +2171,7 @@ class DebuggerPDP10 extends Debugger {
* For now, fMisc defaults to true, providing a full register dump by default.
*
* @this {DebuggerPDP10}
* @param {boolean} [fMisc] (true to include misc registers)
* @param {boolean|undefined} [fMisc] (true to include misc registers)
* @return {string}
*/
getRegDump(fMisc = true)
@ -3821,7 +3851,8 @@ if (DEBUGGER) {
JSA: 89, JRA: 90, PUSHJ: 91, POPJ: 92,
BLKI: 93, DATAI: 94, BLKO: 95, DATAO: 96,
CONO: 97, CONI: 98, CONSZ: 99, CONSO: 100,
UUO: 101
UUO: 101, JOV: 102, JCRY0: 103, JCRY1: 104,
JCRY: 105, JFOV: 106
};
/*
@ -3854,7 +3885,8 @@ if (DEBUGGER) {
"JSA", "JRA", "PUSHJ", "POPJ",
"BLKI", "DATAI", "BLKO", "DATAO",
"CONO", "CONI", "CONSZ", "CONSO",
"UUO"
"UUO", "JOV", "JCRY0", "JCRY1",
"JCRY", "JFOV"
];
DebuggerPDP10.REGS = {
@ -3998,6 +4030,20 @@ if (DEBUGGER) {
DebuggerPDP10.OPCOMPS = ["", "L", "E", "LE", "A", "GE", "N", "G"];
DebuggerPDP10.OPTESTS = ["N", "NE", "NA", "NN", "Z", "ZE", "ZA", "ZN", "C", "CE", "CA", "CN", "O", "OE", "OA", "ON"];
/*
* 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.
*/
DebuggerPDP10.JFCL = {
// 0o00: DebuggerPDP10.OPS.JFCL,
0o10: DebuggerPDP10.OPS.JOV,
0o04: DebuggerPDP10.OPS.JCRY0,
0o02: DebuggerPDP10.OPS.JCRY1,
0o06: DebuggerPDP10.OPS.JCRY,
0o01: DebuggerPDP10.OPS.JFOV
};
DebuggerPDP10.HISTORY_LIMIT = DEBUG? 100000 : 1000;
DebuggerPDP10.PROMPT = ">> ";

View file

@ -198,6 +198,11 @@ var PDP10 = {
/*
* Flags returned by getPS() for various program control operations.
*
* NOTE: I see SIMH setting PS bits like 0o000200 and 0o000400, which are not documented for the KA10.
* The SIMH docs only refer to the KS10 ("KS10 CPU with 1MW of memory"), so I'm guessing it doesn't have
* a KA10 emulation option. The `pdp10` SIMH binary does have some SET CPU options, but unlike the `pdp11`
* binary, the only options you can set relate to the operating system to be run -- which seems very hacky.
*/
PSFLAG: {
OVFL: 0o400000, // Overflow

View file

@ -27,215 +27,215 @@
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/debugger.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 ia(){ia=function(){};ba.Symbol||(ba.Symbol=ja)}var ka=0;function ja(a){return"jscomp_symbol_"+(a||"")+ka++}
function la(){ia();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 ma(this)}});la=function(){}}function ma(a){var b=0;return na(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function na(a){la();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function p(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 oa(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})}}
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)},ca="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function da(){da=function(){};ca.Symbol||(ca.Symbol=ea)}var ka=0;function ea(a){return"jscomp_symbol_"+(a||"")+ka++}
function la(){da();var a=ca.Symbol.iterator;a||(a=ca.Symbol.iterator=ca.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ma(this)}});la=function(){}}function ma(a){var b=0;return na(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function na(a){la();a={next:a};a[ca.Symbol.iterator]=function(){return this};return a}
function p(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 oa(a,b){if(b){var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
oa("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}});oa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var pa=Math.pow(2,36),qa=Math.pow(2,35),ta={$b:0,sb:1,bc:2,cc:3,dc:4,ec:5,fc:6,gc:7,fb:8,hc:9,tb:10,ic:11,jc:12,ub:13,kc:14,lc:15,mc:16,nc:17,oc:18,pc:19,qc:20,rc:21,sc:22,tc:23,uc:24,vc:25,wc: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,eb:65,Zb:66,ac:67,xc:68,E:69,yc:70,zc:71,Ac:72,Bc:73,Cc:74,Dc:75,Ec:76,Fc:77,Gc:78,Hc:79,Ic:80,Q:81,
var pa=Math.pow(2,36),qa=Math.pow(2,35),ra={$b:0,sb:1,bc:2,cc:3,dc:4,ec:5,fc:6,gc:7,fb:8,hc:9,tb:10,ic:11,jc:12,ub:13,kc:14,lc:15,mc:16,nc:17,oc:18,pc:19,qc:20,rc:21,sc:22,tc:23,uc:24,vc:25,wc: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,eb:65,Zb:66,ac:67,xc:68,E:69,yc:70,zc:71,Ac:72,Bc:73,Cc:74,Dc:75,Ec:76,Fc:77,Gc:78,Hc:79,Ic:80,Q:81,
Jc:82,Kc:83,Lc:84,Mc:85,Nc:86,Oc:87,Pc:88,Qc:89,xb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Rc:97,Sc:98,Tc:99,d:100,e:101,Uc:102,Vc:103,Wc:104,Xc:105,Yc:106,k:107,Zc:108,$c:109,n:110,ad:111,p:112,q:113,r:114,bd:115,t:116,dd:117,ed:118,fd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,vb: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)),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&&
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)),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="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);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?11:a&-65536?8:6;return va(a,8,b,c?"0o":"")}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return va(a,16,b,c?"0x":"")}
function xa(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 ya(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(){var a=Aa();return-1!==a.indexOf("pcjs.org",a.length-8)}function Ga(a){return a.replace(/[&<>"']/g,function(a){return Ha[a]})}function Ia(a,b){return(a+" ").slice(0,b)}
function xa(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 ya(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(){var a=Aa();return-1!==a.indexOf("pcjs.org",a.length-8)}function Ba(a){return a.replace(/[&<>"']/g,function(a){return Ha[a]})}function Ia(a,b){return(a+" ").slice(0,b)}
function Ja(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ha={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ka(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 La(){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 Ma(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="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Na(a,b){var c,d={Y:null,T:null,na:null,ma: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.na=g.load;d.ma=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.Ca=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.T=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 Aa(){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 Za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function $a(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 ab(a){if(!bb){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," "))}bb=c}return bb[a]}function cb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function db(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 eb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function fb(a){gb.init.push(a)}
function hb(a){if(ib)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 jb(a){!ib&&a?(ib=!0,kb&&lb("init"),mb&&lb("show")):ib=a}function lb(a){gb[a]&&hb(gb[a])}var bb=null,gb={init:[],show:[],exit:[]},kb=!1,mb=!1,ib=!0,Pa=null;eb("onload",function(){kb=!0;hb(gb.init)});eb("onpageshow",function(){mb=!0;hb(gb.show)});eb($a("Opera")||$a("iOS")?"onunload":"onbeforeunload",function(){hb(gb.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ib=b.comment;this.yb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.w={ready:!1,Fa:!1,Ya:!1,U:!1,error:!1};this.Pa=null;this.w.error=!1;this.X=c||0;this.D=this.u=this.H=this.G=this.oa=null;v.push(this)}function nb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function qb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function zb(a){var b=!1;window&&(b=window.confirm(a));return b}function Ab(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Bb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function Cb(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<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function Db(a,b){var c=x;b=y(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(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(g))&&h.binding&&a.ha(h.type,h.binding,g,h.value),m=k.length}}}}
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 bb(a){if(!cb){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," "))}cb=c}return cb[a]}function db(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function eb(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 fb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function gb(a){hb.init.push(a)}
function ib(a){if(jb)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 kb(a){!jb&&a?(jb=!0,lb&&mb("init"),nb&&mb("show")):jb=a}function mb(a){hb[a]&&ib(hb[a])}var cb=null,hb={init:[],show:[],exit:[]},lb=!1,nb=!1,jb=!0,Pa=null;fb("onload",function(){lb=!0;ib(hb.init)});fb("onpageshow",function(){nb=!0;ib(hb.show)});fb(Sa("Opera")||Sa("iOS")?"onunload":"onbeforeunload",function(){ib(hb.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ib=b.comment;this.yb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.w={ready:!1,Fa:!1,Ya:!1,U:!1,error:!1};this.Pa=null;this.w.error=!1;this.X=c||0;this.D=this.v=this.H=this.G=this.oa=null;v.push(this)}function ob(a,b,c){pb[a]&&b&&(pb[a][b]=c)}function qb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function rb(a){var b=!1;window&&(b=window.confirm(a));return b}function tb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Cb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function Db(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<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function Eb(a,b){var c=x;b=y(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(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(g))&&h.binding&&a.ha(h.type,h.binding,g,h.value),m=k.length}}}}
function y(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 Eb(a){for(var b=!0,c=Fb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Gb.indexOf(e)&&(f=function(){return function(){Eb(a)}}());var g=Hb[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=Cb(d[1],a);if(h)if(g=Ib[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 Fb[a];return b}l=u.prototype;
function Fb(a){for(var b=!0,c=Gb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Hb.indexOf(e)&&(f=function(){return function(){Fb(a)}}());var g=Ib[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=Db(d[1],a);if(h)if(g=Jb[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 Gb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ha=function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.oa=this.I[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.Ka)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
l.status=function(a){this.j(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Jb(a,b){a.w.error=!0;a.da(b)}function Kb(a){return a.w.error?(a.j(a.toString()+" error"),!0):!1}function Lb(a,b){b&&(a.w.ready?b():a.Pa=b);return a.w.ready}function z(a){if(!a.w.error&&(a.w.ready=!0,a.w.ready)){var b=a.Pa;a.Pa=null;b&&b()}}function Mb(a,b){a.w.Fa&&(b?a.w.Ya=!0:void 0===b&&a.j(a.toString()+" busy"));return a.w.Fa}
function Nb(a,b){if(a.w.Ya)return a.w.Fa=!1,a.w.Ya=!1;if(a.w.error)return a.j(a.toString()+" error"),!1;a.w.Fa=b;return a.w.Fa}l.pa=function(){return this.w.U=!0};l.ga=function(a,b){b&&(this.w.U=!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.nb)}return!1}function Pb(a,b,c,d){a.D&&(!0===c||Ob(a,c|0))&&a.D.message(b,d)}
l.status=function(a){this.j(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Kb(a,b){a.w.error=!0;a.da(b)}function Lb(a){return a.w.error?(a.j(a.toString()+" error"),!0):!1}function Mb(a,b){b&&(a.w.ready?b():a.Pa=b);return a.w.ready}function z(a){if(!a.w.error&&(a.w.ready=!0,a.w.ready)){var b=a.Pa;a.Pa=null;b&&b()}}function Nb(a,b){a.w.Fa&&(b?a.w.Ya=!0:void 0===b&&a.j(a.toString()+" busy"));return a.w.Fa}
function Ob(a,b){if(a.w.Ya)return a.w.Fa=!1,a.w.Ya=!1;if(a.w.error)return a.j(a.toString()+" error"),!1;a.w.Fa=b;return a.w.Fa}l.pa=function(){return this.w.U=!0};l.ga=function(a,b){b&&(this.w.U=!1);return!0};function Pb(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.nb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ob=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Fb=window?window.PCjs.Commands:{},Gb=["hold","sleep","wait"],Hb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ib={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 pb=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Gb=window?window.PCjs.Commands:{},Hb=["hold","sleep","wait"],Ib={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Jb={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 x="pdp10",Qb="PDPjs",Rb=Math.pow(2,18)-1,Sb=Math.pow(2,18),A=Math.pow(2,18)-1,B=Math.pow(2,18),Tb=Math.pow(2,35)-1,F=Math.pow(2,35),G=Math.pow(2,36)-1,H=Math.pow(2,36),Ub=Math.pow(2,17)-1,I=Math.pow(2,35)-1,Vb=Math.pow(2,35),Wb=Math.pow(2,36),Xb=Math.pow(2,34),J=Math.pow(2,32),Yb=Math.pow(2,21),Zb=Math.pow(2,26),$b=Math.pow(2,23),ac=Math.pow(2,30),x="pdp10",Qb="PDPjs",K={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,
var x="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),A=Math.pow(2,18)-1,E=Math.pow(2,18),Ub=Math.pow(2,35)-1,F=Math.pow(2,35),G=Math.pow(2,36)-1,H=Math.pow(2,36),Vb=Math.pow(2,17)-1,I=Math.pow(2,35)-1,Wb=Math.pow(2,35),Xb=Math.pow(2,36),Yb=Math.pow(2,34),J=Math.pow(2,32),Zb=Math.pow(2,21),$b=Math.pow(2,26),ac=Math.pow(2,23),bc=Math.pow(2,30),x="pdp10",Rb="PDPjs",K={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,
write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function bc(a,b){u.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.v=this.A=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Kb],STEP:[1,1,!1,!1,this.Lb],ENABLE:[1,1,!1,!1,this.Fb],CONT:[1,1,!0,!1,this.Db],DEP:[0,0,!0,!1,this.Eb],EXAM:[1,1,!0,!1,this.Gb],LOAD:[1,1,!0,!1,this.Ib],TEST:[0,0,!0,!1,this.Hb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Jb,a];this.D=this.u=this.H=this.G=null;this.exports={hold:this.Bb,toggle:this.Ub,reset:this.Qb,
set:this.Tb};z(this)}p(bc,u);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.A=0)};
l.ha=function(a,b,c,d){if(this.G&&this.G.ha(a,b,c,d)||this.u&&this.u.ha(a,b,c,d)||this.D&&this.D.ha(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.C[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ec(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):u.prototype.ha.call(this,a,b,c,d)}};l.xa=function(a,b,c,d){this.G=a;this.H=b;this.u=c;this.D=d;gc(this);hc(this)};l.pa=function(a,b){if(!b)if(this.W&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new M(this);a.set(0,[this.f,this.A,this.v]);return a.data()};
l.restore=function(a){if(a=a[0])jc(this,this.f=a[0]),dc(this,this.A=a[1]),kc(this,a[2]);return!0};l.Qb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
l.Bb=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.Tb=function(a,b){if("SR"==a)return kc(this,ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.Ub=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1}
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Kb=function(a){a||this.u.w.K||(this.u.A=this.f%Sb,this.b[qc]&&this.b[qc][1]&&rc(this.u))};l.Lb=function(){};l.Fb=function(a){a||this.u.V()};
l.Db=function(a){if(!a&&!this.u.w.K)if(this.b[qc]&&this.b[qc][1])rc(this.u);else{if((a=this.D)&&!Mb(a,!0))Nb(a,!0),zc(a,0,null),Nb(a,!1);else try{var b=this.u.Ja(1);0<b&&(Ac(this.u,b),Bc(this.u,b,!0),Cc(this.u,b))}catch(c){"number"!=typeof c&&Jb(this.u,c.stack||c.message)}this.stop();this.G&&N(this.G)}};l.Eb=function(a){a&&!this.u.w.K&&(this.P&&Dc(this),a=dc(this,this.A=this.v),this.S==cc?Ec(this.H,this.f,a):this.u.i(this.f,a))};
l.Gb=function(a){if(!a&&!this.u.w.K){var b;this.R&&Dc(this);this.S==cc?b=Fc(this.H,this.f):b=this.u.g(this.f);dc(this,this.A=b)}};l.Ib=function(a){a||this.u.w.K||jc(this,this.v)};l.Hb=function(a){a?(this.F=!0,gc(this,!0)):(this.F=!1,gc(this),kc(this,0))};l.Jb=function(a,b){this.v=a?this.v|1<<b:this.v&~(1<<b)};function Dc(a){var b=1,c=a.H.v;a.b[nc]&&a.b[nc][1]||(b=-b);jc(a,a.f&~c|a.f+b&c)}
function jc(a,b){a.f=b&a.H.v;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}}function dc(a,b){a.J=b%H;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}return a.J}function kc(a,b){a.v=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.v&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.u.A)};
function ic(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=Bb(d.id);e||(e=new bc(d,!0));Db(e,c)}}var cc=7,oc="DEP",qc="ENABLE",pc="EXAM",nc="STEP";fb(ic);function Gc(a,b,c){u.call(this,"Bus",a,16);this.u=b;this.D=c;this.J=+a.busWidth||18;this.F=1<<this.J;this.v=this.F-1;this.f=Math.log2(16384);this.C=this.F/16384|0;this.A=0;this.b=[];a=new Hc(this);Ic(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;z(this)}p(Gc,u);l=Gc.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new M(this);a.set(0,Jc(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 Kc(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Ha+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ha){m=h.size-(e-k);m>f&&(m=f);h.Ha=e-h.B+m;e=k+16384;f-=m;g++;continue}}return Lc(Mc,e,f)}e=new Hc(a,e,m,16384,d);Ic(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Nc[d]+" at "+wa(b)),!0):Lc(Oc,b,c)}
function Fc(a,b){var c=a.b[(b&a.v)>>>a.f];a.A++;b=c.G(b&16383,b);a.A--;return b}function Ec(a,b,c){var d=a.b[(b&a.v)>>>a.f];a.A++;d.v(c,b&16383,b);a.A--}function Jc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.$a||e.zb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Ab=function(a){this.A||(this.D&&Ob(this.D,4)&&Pb(this.D,"memory fault on "+O(this.D,a),!0,!0),this.u.V())};function Lc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Mc=1,Oc=2;function Pc(a){u.call(this,"Device",a,256)}p(Pc,u);l=Pc.prototype;l.xa=function(a,b,c,d){this.H=b;this.G=a;this.u=c;this.D=d;z(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new M(this)).data()};
l.restore=function(){return!0};fb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Pc(c),Db(c,d)}}});function Hc(a,b,c,d,e){this.I=a;this.id=Qc+=2;this.B=b;this.Ha=c;this.size=d||0;this.type=e||Rc;this.H=e==Sc;this.b=null;this.g=this.G=this.cb;this.i=this.v=this.Ia;this.f=this.u=0;Ic(this);this.$a=this.zb=!1;if(this.size){a=this.D=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Tc(this,Uc)}else Tc(this)}l=Hc.prototype;l.save=function(){return this.D};
l.restore=function(a){return a&&this.size==a.length?(this.D=a,this.$a=!0):!1};function Tc(a,b){b||(b=Vc);Wc(a,b,void 0);Xc(a,b,void 0)}function Wc(a,b,c){c&&a.f||(a.g=b[0]||a.cb);if(c||void 0===c)a.G=b[0]||a.cb}function Xc(a,b,c){c&&a.u||(a.i=!a.H&&b[1]||a.Ia);if(c||void 0===c)a.v=b[1]||a.Ia}l.Da=function(a,b){b?this.u++||Xc(this,Yc,!1):this.f++||Wc(this,Yc,!1)};function Zc(a,b){b?--a.u||(a.i=a.H?a.Ia:a.v):--a.f||(a.g=a.G)}
function Ic(a,b,c){a.b=b;a.f=a.u=0;c&&((a.f=c.f)&&Wc(a,Yc,!1),(a.u=c.u)&&Xc(a,Yc,!1))}l.cb=function(a,b){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to read invalid address "+O(this.b,b),!0);this.I.Ab(b);return-1};l.Ia=function(a,b,c){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to write "+O(this.b,a)+" to invalid addresses "+O(this.b,c),!0)};l.Ob=function(a){return this.D[a]};l.Xb=function(a,b){this.D[b]!=a&&(this.D[b]=a,this.$a=!0)};
l.Mb=function(a,b){if(this.b&&null!=this.B){var c=this.b;$c(c,this.B+a,2,c.M)&&c.V(!1)}return this.G(a,b)};l.Wb=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;$c(d,this.B+b,2,d.J)&&d.V(!1)}this.H?this.Ia(a,0,c):this.v(a,b,c)};var Rc=0,Sc=2,Nc=["NONE","RAM","ROM"],Qc=0,Vc=[],Uc=[Hc.prototype.Ob,Hc.prototype.Xb],Yc=[Hc.prototype.Mb,Hc.prototype.Wb];
function ad(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ta=0;this.Wa=b;this.ba=c;this.Ua=Math.round(this.Wa/1E4)/100;this.aa=this.Ua*this.ba;this.Va=this.wa=this.ea=this.Ba=0;this.w.K=this.w.Sa=!1;this.w.Z=a.autoStart;"string"==typeof this.w.Z&&(this.w.Z="true"==this.w.Z);this.w.Ea=!1;this.ua=this.ja=0;this.va=+a.csStart;this.ia=+a.csInterval;this.ka=+a.csStop;this.N=[];this.kb=this.Rb.bind(this);this.S=this.M=this.P=this.R=this.L=this.ta=this.O=this.la=this.Xa=this.W=0;
this.za=null;z(this)}p(ad,u);l=ad.prototype;l.xa=function(a,b,c,d){this.G=a;this.H=b;this.D=d;this.za=a.v;for(a=0;a<bd.length;a++)(b=this.I[bd[a]])&&this.G.ha(null,bd[a],b);z(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=cd(this.G,"autoStart");null!=c?this.w.Z="true"==c?!0:"false"==c?!1:!!c:null==this.w.Z&&(this.w.Z=!this.D&&void 0===this.I.run);if(!b){if(a){dd(this);if(!this.restore(a))return!1;ed(this)}else this.reset();this.D?(a=this.D,b=this.w.Z,a.wa=!0,a.j("Type ? for help with PDPjs Debugger commands"),fd(a),b||gd(a),a.ua&&(b=a.ua,a.ua=null,hd(a,b))):this.status("No debugger detected");this.w.Z||this.j("CPU will not be auto-started "+(this.za?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ga=function(a){return a?this.save():!0};l.Z=function(){return this.w.K?!0:this.w.Z?(rc(this),!0):!1};l.qb=function(){return 0};function ed(a){void 0===a.va&&(a.va=0);void 0===a.ia&&(a.ia=-1);void 0===a.ka&&(a.ka=-1);a.w.Ea=0<=a.va&&0<a.ia;a.w.Ea&&(a.ua=0,a.ja=a.va-a.S)}function Cc(a,b){if(a.w.Ea){var c=!1;a.ua=a.ua+a.qb()|0;a.ja-=b;0>=a.ja&&(a.ja+=a.ia,c=!0);0<=a.ka&&a.ka<=id(a)&&(a.ia=a.ka=-1,ed(a),a.V(),c=!0);c&&a.j(id(a)+" cycles: checksum="+q(a.ua))}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.w.U)a=!0;else{var b=null,c,h=Ab(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.w.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.w.U);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.w.ready?"powered yet":"ready yet"+(b.Pa?" (waiting for notification)":""))+".");a=!1}a&&(d.w.K?d.V():rc(d))},!0;case "speed":return this.I[b]=
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){jd(d,d.ba<<1,!0)},c.textContent=this.aa.toFixed(2)+"Mhz",!0}return!1};function Bc(a,b,c){a.S+=b;c&&(a.P=a.R=0)}function kd(a,b){var c=1;b&&1<a.ba&&a.W&&(c=a.W/a.Ua);a.Va=Math.round(1E3/ld);a.wa=Math.floor(a.Wa/ld*c);b||(a.ea=a.wa);a.Ba=0}function id(a){return a.S+a.M+a.P-a.R}function dd(a){a.W=0;a.Xa=0;a.S=a.M=a.P=a.R=0;ed(a);jd(a,1)}
function jd(a,b,c){var d=!1;if(void 0!==b){.8>a.W/a.aa?b=1:d=!0;a.ba=b;b=a.Ua*a.ba;if(a.aa!=b){a.aa=b;b=a.aa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&md(a.G)}Bc(a,a.M);a.M=0;a.L=qb();a.O=0;kd(a);return d}function nd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function od(a){for(var b=[],c=0;c<a.N.length;c++)b.push(a.N[c][0]);return b}
function Ac(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function pd(a,b){var c=a.P-=a.R;a.R=0;b&&(a.P=0);return c}
l.Rb=function(){if(this.w.K){this.Ba>=this.Wa&&kd(this,!0);this.la=0;this.ta=qb();if(this.O){var a=this.ta-this.O;a>this.Va&&(this.L+=a,this.L>this.ta&&(this.L=this.ta))}try{do{var b=nd(this,this.w.Ea?1:this.wa);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=pd(this,!0);this.la+=b;this.M+=b;Cc(this,b);Ac(this,b);this.ea-=b;if(0>=this.ea){this.ea+=this.wa;++this.Xa>=qd&&(this.G&&N(this.G,void 0),this.Xa=0);break}}while(this.w.K)}catch(e){this.V();this.G&&this.G.stop(qb(),id(this));Jb(this,
e.stack||e.message);return}if(this.w.K){a=setTimeout;b=this.kb;this.O=qb();var c=this.Va;this.la&&(c=Math.round(c*this.la/this.wa));var c=c-(this.O-this.ta),d=this.O-this.L;d&&(this.W=Math.round(this.M/(10*d))/100,864E5<=d&&(this.S=0,jd(this)));if(0>c||this.W<this.aa)-1E3>c&&(this.L-=c),c=0;this.Ba+=this.la;this.O+=c;a(b,c)}}};
function rc(a,b){if(!Kb(a))if(a.w.K)a.j(a.toString()+" busy");else{jd(a);a.w.K=!0;a.w.Sa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.G&&(b&&md(a.G,!0),a.G.start(a.L,id(a)));a.D||a.status("Started");setTimeout(a.kb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.w.K){pd(this);Bc(this,this.M);this.M=0;this.w.K=!1;if(b=this.I.run)b.textContent="Run";this.G&&this.G.stop(qb(),id(this));b=!0;this.D||this.status("Stopped")}this.w.complete=a;return b};var ld=30,qd=15,bd=["power","reset"];
function rd(a){var b=+a.model||1001;ad.call(this,a,1E6);this.jb=b;this.Aa=+a.addrReset||0;this.wb=sd.bind(this);this.b=P.bind(this);this.ra=null;this.hb=[];this.w.complete=!1}p(rd,ad);l=rd.prototype;l.reset=function(){this.status("Model "+this.jb);this.w.K&&this.V();this.f=this.J=this.Na=0;this.A=this.sa=this.Aa;this.F=-1;this.Ma=this.v=0;this.qa=this.A;this.C=0;this.g=this.Nb;this.i=this.Yb;this.ra=null;dd(this);this.w.error=!1;ad.prototype.reset.call(this)};l.qb=function(){return 0};
l.save=function(){var a=new M(this);a.set(0,[this.f,this.J,this.Na,this.A,this.F,this.v,this.C,this.sa,this.qa,this.Aa]);a.set(1,[]);a.set(2,[this.S,this.ba,this.w.Z]);a.set(3,td(this));a.set(4,od(this));return a.data()};
l.restore=function(a){var b;b=a[0];la();ia();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.J=b.next().value;this.Na=b.next().value;this.A=b.next().value;this.F=b.next().value;this.v=b.next().value;this.C=b.next().value;this.sa=b.next().value;this.qa=b.next().value;this.Aa=b.next().value;b=a[2];this.S=b[0];jd(this,b[1]);this.w.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.hb.length;d++){var e=this.hb[d];if(e.Vb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.ra,this.ra=d)}a=a[4];for(b=0;b<this.N.length&&b<a.length;b++)this.N[b][0]=a[b];return!0};function ud(a,b){var c=a.A;a.A=(c+b)%Sb;return c}l.abs=function(a){a>I&&(a!=Vb?a=Wb-a:this.v|=163840);return a};function Pd(a,b){b?b==Vb?a.v|=163840:b=Wb-b:a.v|=98304;return b}function td(a){var b=[];for(a=a.ra;a;)b.push(a.Vb),a=a.next;return b}l.Nb=function(a){var b=this.H;a=this.qa=a;return b.b[(a&b.v)>>>b.f].g(a&16383,a)};l.Yb=function(a,b){var c=this.H;a=this.qa=a;c.b[(a&c.v)>>>c.f].i(b,a&16383,a);return b};
l.Ja=function(a){this.w.complete=!0;var b=this.D?Qd(this.D)?1:this.w.Sa?-1:0:0,c=a?this.w.Sa?0:1:-1;this.w.Sa=!1;this.P=this.R=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(Rd(this.D,this.A,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ra||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&Rd(this.D,this.A,c)){this.V();break}if(0>c)break}}this.C&=15;this.J=this.J&4194304?this.g(this.f):this.Na=this.g(this.sa=this.A);this.J&=8388607;this.f=this.J&262143;if(a=
this.J>>18&15)this.f=this.f+this.g(a)&Rb;this.J&4194304?a=-1:(this.A=(this.A+1)%Sb,a=this.Na/$b|0);0<=a&&this.wb(a)}while(0<this.R);return this.w.complete?this.P-this.R:!1===this.w.complete?-1:0};fb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new rd(d);Db(d,c)}});function sd(a){Sd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Td(){var a=0,b=this.g(this.f),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%H);this.i(this.f,b)}function Ud(a,b){a=this.g(this.f);if(0>this.F)this.F=a,this.J=this.f|4194304,ud(this,-1);else{var c=this.F/ac&63,d=this.F>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.i(b,a);this.F=-1}}
function Vd(a,b){a=this.g(this.f);if(0>this.F)this.F=a,this.J=this.f|4194304,ud(this,-1);else{var c=this.F/ac&63,d=this.F>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%H;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.i(this.f,a);this.F=-1}}function Wd(a,b){this.i(b,this.g(this.f))}function Xd(a,b){this.i(b,this.f)}function Yd(a,b){this.i(this.f,this.g(b))}function Zd(a,b){this.i(b,0)}function $d(a,b){this.i(b,G-this.g(b))}function ae(a,b){this.i(b,G)}
function be(a,b){var c=this.g(this.f),d=this.g(b);this.i(b,ce(a,d,c)+(c-(c&A)))}function de(a,b){var c=this.g(b);this.i(b,ce(a,c,0))}function ee(a,b){b=this.g(b);var c=this.g(this.f);this.i(this.f,ce(a,c,b)+(b-(b&A)))}function fe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&A,a){case 256:d+=A;break;case 384:d+=c>I?A:0}c=d;this.i(this.f,c);b&&this.i(b,c)}function ge(a,b){var c=(this.g(this.f)&A)*B,d=this.g(b);this.i(b,ce(a,d,c)+c)}
function he(a,b){var c=this.f*B,d=this.g(b);this.i(b,ce(a,d,c)+c)}function ie(a,b){b=(this.g(b)&A)*B;var c=this.g(this.f);this.i(this.f,ce(a,c,b)+b)}function je(a,b){var c=this.g(this.f),d=(c&A)*B,c=ce(a,c,d)+d;this.i(this.f,c);b&&this.i(b,c)}function ke(a,b){var c=this.g(this.f)&A,d=this.g(b);this.i(b,le(a,d,c)+c)}function me(a,b){var c=this.g(b);this.i(b,le(a,c,this.f)+this.f)}function ne(a,b){b=this.g(b)&A;var c=this.g(this.f);this.i(this.f,le(a,c,b)+b)}
function oe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=A,a){case 256:d+=A*B;break;case 384:d+=c>Ub?A*B:0}c=d;this.i(this.f,c);b&&this.i(b,c)}function pe(a,b){var c=this.g(this.f)/B|0,d=this.g(b);this.i(b,le(a,d,c)+c)}function qe(a,b){var c=this.g(b);this.i(b,le(a,c,0))}function re(a,b){b=this.g(b)/B|0;var c=this.g(this.f);this.i(this.f,le(a,c,b)+b)}function se(a,b){var c=this.g(this.f),d=c/B|0,c=le(a,c,d)+d;this.i(this.f,c);b&&this.i(b,c)}function S(a){te[a&7].call(this,a,a>>3&127)}
function ue(){}function P(a){this.j("undefined opcode: "+wa(a));ud(this,-1);this.V()}function ve(a,b){var c=(a+b)%H;we.call(this,a,b,c);return c}function T(a,b){return((a/J|0)&(b/J|0))*J+((a&b)>>>0)}function xe(a,b){return((a/J|0)^(b/J|0))*J+((a^b)>>>0)}function ye(a,b){return(~((a/J|0)^(b/J|0))&15)*J+(~(a^b)>>>0)}function U(a,b){return(a/J|0|b/J|0)*J+((a|b)>>>0)}
function ze(a,b){var c=b;b=!1;var d;a>I&&(a=H-a,b=!b);c>I&&(c=H-c,b=!b);if(a<B&&c<B)d=a*c,a=0;else{d=a%B;var e=Math.trunc(a/B);a=c%B;var c=Math.trunc(c/B),f=d*a,g=e*a+Math.trunc(f/B);a=Math.trunc(g/B);g=g%B+d*c;d=g*B+f%B;a+=Math.trunc(g/B)+e*c}b&&(d?(a=G-a,d=H-d):a&&(a=H-a));b=a-a%F;a=2*a%H+Math.trunc(d/F);d=b+d%F;e=a-a%F;b!=e&&(a=b+(a-e),this.v|=131072);this.Ma=a;return d}function Ae(a,b){var c=a-b;0>c&&(c+=H);we.call(this,c,b,a);return c}
function we(a,b,c){a=Math.trunc(a/Xb);b=Math.trunc(b/Xb);c=Math.trunc(c/Xb);var d=a^(a^b)&(b^c);this.v=this.v|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function le(a,b,c){switch(a&384){case 0:b-=b&A;break;case 128:b=0;break;case 256:b=A*B;break;case 384:b=c>Ub?A*B:0}return b}function ce(a,b,c){switch(a&384){case 0:b&=A;break;case 128:b=0;break;case 256:b=A;break;case 384:b=c>I?A:0}return b}
var Sd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Td,function(a,b){0>this.F&&Td.call(this);Ud.call(this,0,b)},Ud,function(a,b){0>this.F&&Td.call(this);Vd.call(this,0,b)},Vd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function cc(a,b){u.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.u=this.A=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=dc;this.B={};this.b={START:[1,1,!0,!1,this.Kb],STEP:[1,1,!1,!1,this.Lb],ENABLE:[1,1,!1,!1,this.Fb],CONT:[1,1,!0,!1,this.Db],DEP:[0,0,!0,!1,this.Eb],EXAM:[1,1,!0,!1,this.Gb],LOAD:[1,1,!0,!1,this.Ib],TEST:[0,0,!0,!1,this.Hb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Jb,a];this.D=this.v=this.H=this.G=null;this.exports={hold:this.Bb,toggle:this.Ub,reset:this.Qb,
set:this.Tb};z(this)}p(cc,u);l=cc.prototype;l.reset=function(a){this.stop();a&&ec(this,this.A=0)};
l.ha=function(a,b,c,d){if(this.G&&this.G.ha(a,b,c,d)||this.v&&this.v.ha(a,b,c,d)||this.D&&this.D.ha(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){fc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){gc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):u.prototype.ha.call(this,a,b,c,d)}};l.xa=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;hc(this);ic(this)};l.pa=function(a,b){if(!b)if(this.W&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new M(this);a.set(0,[this.f,this.A,this.u]);return a.data()};
l.restore=function(a){if(a=a[0])kc(this,this.f=a[0]),ec(this,this.A=a[1]),lc(this,a[2]);return!0};l.Qb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.B)mc(a,c,null!=b?b:a.B[c])}function nc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])}
l.Bb=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};l.Tb=function(a,b){if("SR"==a)return lc(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};l.Ub=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.P=b==pc,a.R=b==qc),!0):!1}
function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Kb=function(a){a||this.v.w.K||(this.v.A=this.f%Tb,this.b[rc]&&this.b[rc][1]&&sc(this.v))};l.Lb=function(){};l.Fb=function(a){a||this.v.V()};
l.Db=function(a){if(!a&&!this.v.w.K)if(this.b[rc]&&this.b[rc][1])sc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),tc(a,0,null),Ob(a,!1);else try{var b=this.v.Ja(1);0<b&&(uc(this.v,b),Dc(this.v,b,!0),Ec(this.v,b))}catch(c){"number"!=typeof c&&Kb(this.v,c.stack||c.message)}this.stop();this.G&&O(this.G)}};l.Eb=function(a){a&&!this.v.w.K&&(this.P&&Fc(this),a=ec(this,this.A=this.u),this.S==dc?Gc(this.H,this.f,a):this.v.i(this.f,a))};
l.Gb=function(a){if(!a&&!this.v.w.K){var b;this.R&&Fc(this);this.S==dc?b=Hc(this.H,this.f):b=this.v.g(this.f);ec(this,this.A=b)}};l.Ib=function(a){a||this.v.w.K||kc(this,this.u)};l.Hb=function(a){a?(this.F=!0,hc(this,!0)):(this.F=!1,hc(this),lc(this,0))};l.Jb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function Fc(a){var b=1,c=a.H.u;a.b[oc]&&a.b[oc][1]||(b=-b);kc(a,a.f&~c|a.f+b&c)}
function kc(a,b){a.f=b&a.H.u;if(a.N!==a.f){a.N=a.f;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||mc(d,e,f)}}}function ec(a,b){a.J=b%H;if(a.O!==a.J){a.O=a.J;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||mc(d,e,f)}}return a.J}function lc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;ic(a);return!0}l.stop=function(){kc(this,this.v.A)};
function jc(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=Cb(d.id);e||(e=new cc(d,!0));Eb(e,c)}}var dc=7,pc="DEP",rc="ENABLE",qc="EXAM",oc="STEP";gb(jc);function Ic(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.J=+a.busWidth||18;this.F=1<<this.J;this.u=this.F-1;this.f=Math.log2(16384);this.B=this.F/16384|0;this.A=0;this.b=[];a=new Jc(this);Kc(a,this.D);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;z(this)}p(Ic,u);l=Ic.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new M(this);a.set(0,Lc(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 Mc(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.C)return h.Ha+=h.C-e,h.C=e,!0;if(e>=h.C+h.Ha){m=h.size-(e-k);m>f&&(m=f);h.Ha=e-h.C+m;e=k+16384;f-=m;g++;continue}}return Nc(Oc,e,f)}e=new Jc(a,e,m,16384,d);Kc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Pc[d]+" at "+wa(b)),!0):Nc(Qc,b,c)}
function Hc(a,b){var c=a.b[(b&a.u)>>>a.f];a.A++;b=c.G(b&16383,b);a.A--;return b}function Gc(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.A++;d.D(c,b&16383,b);a.A--}function Lc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.$a||e.zb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Ab=function(a){this.A||(this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+P(this.D,a),!0,!0),this.v.V())};function Nc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Oc=1,Qc=2;function Rc(a){u.call(this,"Device",a,256)}p(Rc,u);l=Rc.prototype;l.xa=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.D=d;z(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new M(this)).data()};
l.restore=function(){return!0};gb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Rc(c),Eb(c,d)}}});function Jc(a,b,c,d,e){this.I=a;this.id=Sc+=2;this.C=b;this.Ha=c;this.size=d||0;this.type=e||Tc;this.H=e==Uc;this.b=null;this.g=this.G=this.cb;this.i=this.D=this.Ia;this.f=this.v=0;Kc(this);this.$a=this.zb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Vc(this,Wc)}else Vc(this)}l=Jc.prototype;l.save=function(){return this.u};
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.$a=!0):!1};function Vc(a,b){b||(b=Xc);Yc(a,b,void 0);Zc(a,b,void 0)}function Yc(a,b,c){c&&a.f||(a.g=b[0]||a.cb);if(c||void 0===c)a.G=b[0]||a.cb}function Zc(a,b,c){c&&a.v||(a.i=!a.H&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Da=function(a,b){b?this.v++||Zc(this,$c,!1):this.f++||Yc(this,$c,!1)};function ad(a,b){b?--a.v||(a.i=a.H?a.Ia:a.D):--a.f||(a.g=a.G)}
function Kc(a,b,c){a.b=b;a.f=a.v=0;c&&((a.f=c.f)&&Yc(a,$c,!1),(a.v=c.v)&&Zc(a,$c,!1))}l.cb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+P(this.b,b),!0);this.I.Ab(b);return-1};l.Ia=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+P(this.b,a)+" to invalid addresses "+P(this.b,c),!0)};l.Ob=function(a){return this.u[a]};l.Xb=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.$a=!0)};
l.Mb=function(a,b){if(this.b&&null!=this.C){var c=this.b;bd(c,this.C+a,2,c.M)&&c.V(!1)}return this.G(a,b)};l.Wb=function(a,b,c){if(this.b&&null!=this.C){var d=this.b;bd(d,this.C+b,2,d.J)&&d.V(!1)}this.H?this.Ia(a,0,c):this.D(a,b,c)};var Tc=0,Uc=2,Pc=["NONE","RAM","ROM"],Sc=0,Xc=[],Wc=[Jc.prototype.Ob,Jc.prototype.Xb],$c=[Jc.prototype.Mb,Jc.prototype.Wb];
function cd(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ta=0;this.Wa=b;this.ba=c;this.Ua=Math.round(this.Wa/1E4)/100;this.aa=this.Ua*this.ba;this.Va=this.wa=this.ea=this.Ba=0;this.w.K=this.w.Sa=!1;this.w.Z=a.autoStart;"string"==typeof this.w.Z&&(this.w.Z="true"==this.w.Z);this.w.Ea=!1;this.ua=this.ja=0;this.va=+a.csStart;this.ia=+a.csInterval;this.ka=+a.csStop;this.N=[];this.kb=this.Rb.bind(this);this.S=this.M=this.P=this.R=this.L=this.ta=this.O=this.la=this.Xa=this.W=0;
this.za=null;z(this)}p(cd,u);l=cd.prototype;l.xa=function(a,b,c,d){this.G=a;this.H=b;this.D=d;this.za=a.u;for(a=0;a<dd.length;a++)(b=this.I[dd[a]])&&this.G.ha(null,dd[a],b);z(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=ed(this.G,"autoStart");null!=c?this.w.Z="true"==c?!0:"false"==c?!1:!!c:null==this.w.Z&&(this.w.Z=!this.D&&void 0===this.I.run);if(!b){if(a){fd(this);if(!this.restore(a))return!1;gd(this)}else this.reset();this.D?(a=this.D,b=this.w.Z,a.wa=!0,a.j("Type ? for help with PDPjs Debugger commands"),hd(a),b||id(a),a.ua&&(b=a.ua,a.ua=null,jd(a,b))):this.status("No debugger detected");this.w.Z||this.j("CPU will not be auto-started "+(this.za?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ga=function(a){return a?this.save():!0};l.Z=function(){return this.w.K?!0:this.w.Z?(sc(this),!0):!1};l.qb=function(){return 0};function gd(a){void 0===a.va&&(a.va=0);void 0===a.ia&&(a.ia=-1);void 0===a.ka&&(a.ka=-1);a.w.Ea=0<=a.va&&0<a.ia;a.w.Ea&&(a.ua=0,a.ja=a.va-a.S)}function Ec(a,b){if(a.w.Ea){var c=!1;a.ua=a.ua+a.qb()|0;a.ja-=b;0>=a.ja&&(a.ja+=a.ia,c=!0);0<=a.ka&&a.ka<=kd(a)&&(a.ia=a.ka=-1,gd(a),a.V(),c=!0);c&&a.j(kd(a)+" cycles: checksum="+q(a.ua))}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.w.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.w.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.w.U);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.w.ready?"powered yet":"ready yet"+(b.Pa?" (waiting for notification)":""))+".");a=!1}a&&(d.w.K?d.V():sc(d))},!0;case "speed":return this.I[b]=
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){ld(d,d.ba<<1,!0)},c.textContent=this.aa.toFixed(2)+"Mhz",!0}return!1};function Dc(a,b,c){a.S+=b;c&&(a.P=a.R=0)}function md(a,b){var c=1;b&&1<a.ba&&a.W&&(c=a.W/a.Ua);a.Va=Math.round(1E3/nd);a.wa=Math.floor(a.Wa/nd*c);b||(a.ea=a.wa);a.Ba=0}function kd(a){return a.S+a.M+a.P-a.R}function fd(a){a.W=0;a.Xa=0;a.S=a.M=a.P=a.R=0;gd(a);ld(a,1)}
function ld(a,b,c){var d=!1;if(void 0!==b){.8>a.W/a.aa?b=1:d=!0;a.ba=b;b=a.Ua*a.ba;if(a.aa!=b){a.aa=b;b=a.aa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&od(a.G)}Dc(a,a.M);a.M=0;a.L=qb();a.O=0;md(a);return d}function pd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function qd(a){for(var b=[],c=0;c<a.N.length;c++)b.push(a.N[c][0]);return b}
function uc(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function rd(a,b){var c=a.P-=a.R;a.R=0;b&&(a.P=0);return c}
l.Rb=function(){if(this.w.K){this.Ba>=this.Wa&&md(this,!0);this.la=0;this.ta=qb();if(this.O){var a=this.ta-this.O;a>this.Va&&(this.L+=a,this.L>this.ta&&(this.L=this.ta))}try{do{var b=pd(this,this.w.Ea?1:this.wa);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=rd(this,!0);this.la+=b;this.M+=b;Ec(this,b);uc(this,b);this.ea-=b;if(0>=this.ea){this.ea+=this.wa;++this.Xa>=sd&&(this.G&&O(this.G,void 0),this.Xa=0);break}}while(this.w.K)}catch(e){this.V();this.G&&this.G.stop(qb(),kd(this));Kb(this,
e.stack||e.message);return}if(this.w.K){a=setTimeout;b=this.kb;this.O=qb();var c=this.Va;this.la&&(c=Math.round(c*this.la/this.wa));var c=c-(this.O-this.ta),d=this.O-this.L;d&&(this.W=Math.round(this.M/(10*d))/100,864E5<=d&&(this.S=0,ld(this)));if(0>c||this.W<this.aa)-1E3>c&&(this.L-=c),c=0;this.Ba+=this.la;this.O+=c;a(b,c)}}};
function sc(a,b){if(!Lb(a))if(a.w.K)a.j(a.toString()+" busy");else{ld(a);a.w.K=!0;a.w.Sa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.G&&(b&&od(a.G,!0),a.G.start(a.L,kd(a)));a.D||a.status("Started");setTimeout(a.kb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.w.K){rd(this);Dc(this,this.M);this.M=0;this.w.K=!1;if(b=this.I.run)b.textContent="Run";this.G&&this.G.stop(qb(),kd(this));b=!0;this.D||this.status("Stopped")}this.w.complete=a;return b};var nd=30,sd=15,dd=["power","reset"];
function td(a){var b=+a.model||1001;cd.call(this,a,1E6);this.jb=b;this.Aa=+a.addrReset||0;this.wb=ud.bind(this);this.b=Q.bind(this);this.ra=null;this.hb=[];this.w.complete=!1}p(td,cd);l=td.prototype;l.reset=function(){this.status("Model "+this.jb);this.w.K&&this.V();this.f=this.J=this.Na=0;this.A=this.sa=this.Aa;this.F=-1;this.Ma=this.u=0;this.qa=this.A;this.B=0;this.g=this.Nb;this.i=this.Yb;this.ra=null;fd(this);this.w.error=!1;cd.prototype.reset.call(this)};l.qb=function(){return 0};
l.save=function(){var a=new M(this);a.set(0,[this.f,this.J,this.Na,this.A,this.F,this.u,this.B,this.sa,this.qa,this.Aa]);a.set(1,[]);a.set(2,[this.S,this.ba,this.w.Z]);a.set(3,vd(this));a.set(4,qd(this));return a.data()};
l.restore=function(a){var b;b=a[0];la();da();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.J=b.next().value;this.Na=b.next().value;this.A=b.next().value;this.F=b.next().value;this.u=b.next().value;this.B=b.next().value;this.sa=b.next().value;this.qa=b.next().value;this.Aa=b.next().value;b=a[2];this.S=b[0];ld(this,b[1]);this.w.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.hb.length;d++){var e=this.hb[d];if(e.Vb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.ra,this.ra=d)}a=a[4];for(b=0;b<this.N.length&&b<a.length;b++)this.N[b][0]=a[b];return!0};function wd(a,b){var c=a.A;a.A=(c+b)%Tb;return c}function vd(a){var b=[];for(a=a.ra;a;)b.push(a.Vb),a=a.next;return b}l.Nb=function(a){var b=this.H;a=this.qa=a;return b.b[(a&b.u)>>>b.f].g(a&16383,a)};l.Yb=function(a,b){var c=this.H;a=this.qa=a;c.b[(a&c.u)>>>c.f].i(b,a&16383,a);return b};
l.Ja=function(a){this.w.complete=!0;var b=this.D?xd(this.D)?1:this.w.Sa?-1:0:0,c=a?this.w.Sa?0:1:-1;this.w.Sa=!1;this.P=this.R=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(yd(this.D,this.A,c)){this.V();break}++b||(this.B&=-5);c||c++}if(a=this.B&11)this.B&2?this.ra||(this.B&=-3):this.B&1&&this.B++,a=!1;if(a){if(this.B&4&&yd(this.D,this.A,c)){this.V();break}if(0>c)break}}this.B&=15;this.J=this.J&4194304?this.g(this.f):this.Na=this.g(this.sa=this.A);this.J&=8388607;this.f=this.J&262143;if(a=
this.J>>18&15)this.f=this.f+this.g(a)&Sb;this.J&4194304?a=-1:(this.A=(this.A+1)%Tb,a=this.Na/ac|0);0<=a&&this.wb(a)}while(0<this.R);return this.w.complete?this.P-this.R:!1===this.w.complete?-1:0};gb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new td(d);Eb(d,c)}});function ud(a){zd[a>>4].call(this,a,a&15)}function R(a){this.b(a)}
function Ad(){var a=0,b=this.g(this.f),c=b/bc&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*bc+(d<<24)+(b&16777215);a&&(b=(b+a)%H);this.i(this.f,b)}function Bd(a,b){a=this.g(this.f);if(0>this.F)this.F=a,this.J=this.f|4194304,wd(this,-1);else{var c=this.F/bc&63,d=this.F>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.i(b,a);this.F=-1}}
function Xd(a,b){a=this.g(this.f);if(0>this.F)this.F=a,this.J=this.f|4194304,wd(this,-1);else{var c=this.F/bc&63,d=this.F>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%H;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.i(this.f,a);this.F=-1}}function Yd(a,b){this.i(b,this.g(this.f))}function Zd(a,b){this.i(b,this.f)}function $d(a,b){this.i(this.f,this.g(b))}function ae(a,b){this.i(b,0)}function be(a,b){this.i(b,G-this.g(b))}function ce(a,b){this.i(b,G)}
function de(a,b){var c=this.g(this.f),d=this.g(b);this.i(b,ee(a,d,c)+(c-(c&A)))}function fe(a,b){var c=this.g(b);this.i(b,ee(a,c,0))}function ge(a,b){b=this.g(b);var c=this.g(this.f);this.i(this.f,ee(a,c,b)+(b-(b&A)))}function he(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&A,a){case 256:d+=A;break;case 384:d+=c>I?A:0}c=d;this.i(this.f,c);b&&this.i(b,c)}function ie(a,b){var c=(this.g(this.f)&A)*E,d=this.g(b);this.i(b,ee(a,d,c)+c)}
function je(a,b){var c=this.f*E,d=this.g(b);this.i(b,ee(a,d,c)+c)}function ke(a,b){b=(this.g(b)&A)*E;var c=this.g(this.f);this.i(this.f,ee(a,c,b)+b)}function le(a,b){var c=this.g(this.f),d=(c&A)*E,c=ee(a,c,d)+d;this.i(this.f,c);b&&this.i(b,c)}function me(a,b){var c=this.g(this.f)&A,d=this.g(b);this.i(b,ne(a,d,c)+c)}function oe(a,b){var c=this.g(b);this.i(b,ne(a,c,this.f)+this.f)}function pe(a,b){b=this.g(b)&A;var c=this.g(this.f);this.i(this.f,ne(a,c,b)+b)}
function qe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=A,a){case 256:d+=A*E;break;case 384:d+=c>Vb?A*E:0}c=d;this.i(this.f,c);b&&this.i(b,c)}function re(a,b){var c=this.g(this.f)/E|0,d=this.g(b);this.i(b,ne(a,d,c)+c)}function se(a,b){var c=this.g(b);this.i(b,ne(a,c,0))}function te(a,b){b=this.g(b)/E|0;var c=this.g(this.f);this.i(this.f,ne(a,c,b)+b)}function ue(a,b){var c=this.g(this.f),d=c/E|0,c=ne(a,c,d)+d;this.i(this.f,c);b&&this.i(b,c)}function S(a){ve[a&7].call(this,a,a>>3&127)}
function we(){}function Q(a){this.j("undefined opcode: "+wa(a));wd(this,-1);this.V()}function xe(a){a>I&&(a!=Wb?a=Xb-a:this.u|=163840);return a}function ye(a,b){var c=(a+b)%H;ze.call(this,a,b,c);return c}function U(a,b){return((a/J|0)&(b/J|0))*J+((a&b)>>>0)}function Ae(a,b){return((a/J|0)^(b/J|0))*J+((a^b)>>>0)}function Be(a,b){return(~((a/J|0)^(b/J|0))&15)*J+(~(a^b)>>>0)}function V(a,b){return(a/J|0|b/J|0)*J+((a|b)>>>0)}
function Ce(a,b){var c=b;b=!1;var d;a>I&&(a=H-a,b=!b);c>I&&(c=H-c,b=!b);if(a<E&&c<E)d=a*c,a=0;else{d=a%E;var e=Math.trunc(a/E);a=c%E;var c=Math.trunc(c/E),f=d*a,g=e*a+Math.trunc(f/E);a=Math.trunc(g/E);g=g%E+d*c;d=g*E+f%E;a+=Math.trunc(g/E)+e*c}b&&(d?(a=G-a,d=H-d):a&&(a=H-a));b=a-a%F;a=2*a%H+Math.trunc(d/F);d=b+d%F;e=a-a%F;b!=e&&(a=b+(a-e),this.u|=131072);this.Ma=a;return d}function De(a){a?a==Wb?this.u|=163840:a=Xb-a:this.u|=98304;return a}
function Ee(a,b){var c=a-b;0>c&&(c+=H);ze.call(this,c,b,a);return c}function ze(a,b,c){a=Math.trunc(a/Yb);b=Math.trunc(b/Yb);c=Math.trunc(c/Yb);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 ne(a,b,c){switch(a&384){case 0:b-=b&A;break;case 128:b=0;break;case 256:b=A*E;break;case 384:b=c>Vb?A*E:0}return b}function ee(a,b,c){switch(a&384){case 0:b&=A;break;case 128:b=0;break;case 256:b=A;break;case 384:b=c>I?A:0}return b}
var zd=[R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Ad,function(a,b){0>this.F&&Ad.call(this);Bd.call(this,0,b)},Bd,function(a,b){0>this.F&&Ad.call(this);Xd.call(this,0,b)},Xd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Wd,Xd,Yd,function(a,b){b&&this.i(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/B|0)+a%B*B;this.i(b,a)},function(a,b){this.i(b,this.f*B)},function(a,b){a=this.g(b);a=(a/B|0)+a%B*B;this.i(this.f,a)},function(a,b){a=this.g(this.f);a=(a/B|0)+a%B*B;this.i(this.f,a);b&&this.i(b,a)},function(a,b){this.i(b,Pd(this,this.g(this.f)))},function(a,b){this.i(b,this.f?Wb-this.f:0)},function(a,b){this.i(this.f,Pd(this,
this.g(b)))},function(a,b){a=Pd(this,this.g(this.f));this.i(this.f,a);b&&this.i(b,a)},function(a,b){this.i(b,this.abs(this.g(this.f)))},function(a,b){this.i(b,this.f)},function(a,b){this.i(this.f,this.abs(this.g(b)))},function(a,b){a=this.abs(this.g(this.f));this.i(this.f,a);b&&this.i(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,ze.call(this,this.g(b),this.g(this.f)));this.i(b+1&15,this.Ma)},function(a,b){this.i(b,ze.call(this,
this.g(b),this.f));this.i(b+1&15,this.Ma)},function(a,b){this.i(this.f,ze.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,ze.call(this,this.g(b),this.g(this.f))));this.i(b+1&15,this.Ma)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>I?-(H-a):a;0<c?(35<=c?(d=0>d?F:0,c=Tb):
(d=d*Math.pow(2,c)%F,c=F-Math.pow(2,35-c)),a<=I?a+c>I&&(this.v|=131072):a-c<=I&&(this.v|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+H:d;this.i(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%H+Math.trunc(c/Math.pow(2,36-a));this.i(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%H:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.i(b,c)}},function(a){this.b(a)},function(a,b){if(a=(this.f<<14>>
14)%256){var c,d=this.g(b),e=this.g(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<F||d>Tb&&d<G)this.v|=131072;if(71<=a){if(0<e&&e<F||e>Tb&&e<G)this.v|=131072;d=0}else d=e*Math.pow(2,a-35)%F,c=F-Math.pow(2,70-a),f<=I?e+c>I&&(this.v|=131072):e-c<=I&&(this.v|=131072);e=0;f>Tb&&(d+=F,e+=F)}else d=d*Math.pow(2,a)%F+Math.trunc(e%F/Math.pow(2,35-a)),e=e*Math.pow(2,a)%F,c=F-Math.pow(2,35-a),f<=I?f+c>I&&(this.v|=131072):(f-c<=I&&(this.v|=131072),d+=F,e+=F)}else-36>=a?(e=-72>=a?d>Tb?G:0:Math.trunc(d%F/Math.pow(2,
-a-35)),d<=Tb?d=0:(d=G,e+=F)):(c=d>Tb?H-Math.pow(2,36+a):0,e=Math.trunc(e%F/Math.pow(2,-a))+d%F*Math.pow(2,35+a)%F,d=Math.trunc(d/Math.pow(2,-a))+c,d>Tb&&(e+=F));this.i(b,d);this.i(b+1&15,e)}},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%H+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%H+Math.trunc(d/Math.pow(2,72-a)));
this.i(b,c);this.i(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%H,d=0):(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H):-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)%H,c=Math.trunc(c/Math.pow(2,-a)));this.i(b,c);this.i(b+1&15,d)}},P,function(a,b){a=this.g(b);this.i(b,this.g(this.f));this.i(this.f,a)},function(a,b){a=!1;for(var c=this.g(b),
d=c/B|0,c=c&A;!a;)this.i(c,this.g(d)),c==this.f&&(a=!0),d=d+1&A,c=c+1&A,this.w.K||(this.i(b,d*B+c),a||ud(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.i(a&A,this.g(this.f));a>=H&&(a-=H);a/B|0||(this.v|=262144);this.i(b,a)},function(a,b){a=this.g(b);var c=this.g(a&A);this.i(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=H);(a/B|0)==A&&(this.v|=262144);
this.i(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,ve.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,ve.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,ve.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,ve.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,Ae.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,Ae.call(this,this.g(b),
this.f))},function(a,b){this.i(this.f,Ae.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,Ae.call(this,this.g(b),this.g(this.f))))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Yd,Zd,$d,function(a,b){b&&this.i(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/E|0)+a%E*E;this.i(b,a)},function(a,b){this.i(b,this.f*E)},function(a,b){a=this.g(b);a=(a/E|0)+a%E*E;this.i(this.f,a)},function(a,b){a=this.g(this.f);a=(a/E|0)+a%E*E;this.i(this.f,a);b&&this.i(b,a)},function(a,b){this.i(b,De.call(this,this.g(this.f)))},function(a,b){this.i(b,this.f?Xb-this.f:0)},function(a,b){this.i(this.f,
De.call(this,this.g(b)))},function(a,b){a=De.call(this,this.g(this.f));this.i(this.f,a);b&&this.i(b,a)},function(a,b){this.i(b,xe.call(this,this.g(this.f)))},function(a,b){this.i(b,this.f)},function(a,b){this.i(this.f,xe.call(this,this.g(b)))},function(a,b){a=xe.call(this,this.g(this.f));this.i(this.f,a);b&&this.i(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,Ce.call(this,this.g(b),this.g(this.f)));this.i(b+1&15,this.Ma)},
function(a,b){this.i(b,Ce.call(this,this.g(b),this.f));this.i(b+1&15,this.Ma)},function(a,b){this.i(this.f,Ce.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,Ce.call(this,this.g(b),this.g(this.f))));this.i(b+1&15,this.Ma)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>
I?-(H-a):a;0<c?(35<=c?(d=0>d?F:0,c=Ub):(d=d*Math.pow(2,c)%F,c=F-Math.pow(2,35-c)),a<=I?a+c>I&&(this.u|=131072):a-c<=I&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+H:d;this.i(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%H+Math.trunc(c/Math.pow(2,36-a));this.i(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%H:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.i(b,c)}},function(a){this.b(a)},
function(a,b){if(a=(this.f<<14>>14)%256){var c,d=this.g(b),e=this.g(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<F||d>Ub&&d<G)this.u|=131072;if(71<=a){if(0<e&&e<F||e>Ub&&e<G)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%F,c=F-Math.pow(2,70-a),f<=I?e+c>I&&(this.u|=131072):e-c<=I&&(this.u|=131072);e=0;f>Ub&&(d+=F,e+=F)}else d=d*Math.pow(2,a)%F+Math.trunc(e%F/Math.pow(2,35-a)),e=e*Math.pow(2,a)%F,c=F-Math.pow(2,35-a),f<=I?f+c>I&&(this.u|=131072):(f-c<=I&&(this.u|=131072),d+=F,e+=F)}else-36>=a?(e=-72>=
a?d>Ub?G:0:Math.trunc(d%F/Math.pow(2,-a-35)),d<=Ub?d=0:(d=G,e+=F)):(c=d>Ub?H-Math.pow(2,36+a):0,e=Math.trunc(e%F/Math.pow(2,-a))+d%F*Math.pow(2,35+a)%F,d=Math.trunc(d/Math.pow(2,-a))+c,d>Ub&&(e+=F));this.i(b,d);this.i(b+1&15,e)}},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%H+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-
36)%H+Math.trunc(d/Math.pow(2,72-a)));this.i(b,c);this.i(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%H,d=0):(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H):-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)%H,c=Math.trunc(c/Math.pow(2,-a)));this.i(b,c);this.i(b+1&15,d)}},Q,function(a,b){a=this.g(b);this.i(b,this.g(this.f));this.i(this.f,
a)},function(a,b){a=!1;for(var c=this.g(b),d=c/E|0,c=c&A;!a;)this.i(c,this.g(d)),c==this.f&&(a=!0),d=d+1&A,c=c+1&A,this.w.K||(this.i(b,d*E+c),a||wd(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,this.A=this.f%Tb)},function(a){this.b(a)},Q,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.i(a&A,this.g(this.f));a>=H&&(a-=H);a/E|0||(this.u|=262144);this.i(b,a)},function(a,b){a=this.g(b);var c=this.g(a&A);
this.i(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=H);(a/E|0)==A&&(this.u|=262144);this.i(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,(this.u&A)*E+this.A);this.A=this.f%Tb},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,ye.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,ye.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,ye.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,ye.call(this,this.g(b),
this.g(this.f))))},function(a,b){this.i(b,Ee.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,Ee.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,Ee.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,Ee.call(this,this.g(b),this.g(this.f))))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Zd,Zd,function(){this.i(this.f,0)},function(a,b){this.i(this.f,this.i(b,0))},function(a,b){this.i(b,T.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,T.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,T.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,T.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,T.call(this,G-this.g(b),
this.g(this.f)))},function(a,b){this.i(b,T.call(this,G-this.g(b),this.f))},function(a,b){this.i(this.f,T.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,T.call(this,G-this.g(b),this.g(this.f))))},Wd,Xd,ue,Wd,function(a,b){this.i(b,T.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,T.call(this,this.g(b),G-this.f))},function(a,b){this.i(this.f,T.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,T.call(this,this.g(b),G-this.g(this.f))))},
ue,ue,Yd,Yd,function(a,b){this.i(b,xe.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,xe.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,xe.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,xe.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,U.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,U.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,U.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,
U.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,T.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,T.call(this,G-this.g(b),G-this.f))},function(a,b){this.i(this.f,T.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,T.call(this,G-this.g(b),G-this.g(this.f))))},function(a,b){this.i(b,ye.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,ye.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,ye.call(this,this.g(b),this.g(this.f)))},
function(a,b){this.i(this.f,this.i(b,ye.call(this,this.g(b),this.g(this.f))))},$d,$d,function(a,b){this.i(this.f,G-this.g(b))},function(a,b){this.i(this.f,this.i(b,G-this.g(b)))},function(a,b){this.i(b,U.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(b,U.call(this,G-this.g(b),this.f))},function(a,b){this.i(this.f,U.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,U.call(this,G-this.g(b),this.g(this.f))))},function(a,b){this.i(b,G-this.g(this.f))},function(a,
b){this.i(b,G-this.f)},function(){this.i(this.f,G-this.g(this.f))},function(a,b){this.i(this.f,this.i(b,G-this.g(this.f)))},function(a,b){this.i(b,U.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,U.call(this,this.g(b),G-this.f))},function(a,b){this.i(this.f,U.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,U.call(this,this.g(b),G-this.g(this.f))))},function(a,b){this.i(b,U.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,U.call(this,G-this.g(b),
G-this.f))},function(a,b){this.i(this.f,U.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,U.call(this,G-this.g(b),G-this.g(this.f))))},ae,ae,function(){this.i(this.f,G)},function(a,b){this.i(this.f,this.i(b,G))},be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},ae,ae,function(){this.i(this.f,0)},function(a,b){this.i(this.f,this.i(b,0))},function(a,b){this.i(b,U.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,U.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,U.call(this,this.g(b),this.g(this.f)))},function(a,
b){this.i(this.f,this.i(b,U.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,U.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(b,U.call(this,G-this.g(b),this.f))},function(a,b){this.i(this.f,U.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,U.call(this,G-this.g(b),this.g(this.f))))},Yd,Zd,we,Yd,function(a,b){this.i(b,U.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,U.call(this,this.g(b),G-this.f))},function(a,b){this.i(this.f,
U.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,U.call(this,this.g(b),G-this.g(this.f))))},we,we,$d,$d,function(a,b){this.i(b,Ae.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,Ae.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,Ae.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,Ae.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,V.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,V.call(this,this.g(b),
this.f))},function(a,b){this.i(this.f,V.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,U.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,U.call(this,G-this.g(b),G-this.f))},function(a,b){this.i(this.f,U.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,U.call(this,G-this.g(b),G-this.g(this.f))))},function(a,b){this.i(b,Be.call(this,this.g(b),this.g(this.f)))},function(a,
b){this.i(b,Be.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,Be.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,Be.call(this,this.g(b),this.g(this.f))))},be,be,function(a,b){this.i(this.f,G-this.g(b))},function(a,b){this.i(this.f,this.i(b,G-this.g(b)))},function(a,b){this.i(b,V.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(b,V.call(this,G-this.g(b),this.f))},function(a,b){this.i(this.f,V.call(this,G-this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,
this.i(b,V.call(this,G-this.g(b),this.g(this.f))))},function(a,b){this.i(b,G-this.g(this.f))},function(a,b){this.i(b,G-this.f)},function(){this.i(this.f,G-this.g(this.f))},function(a,b){this.i(this.f,this.i(b,G-this.g(this.f)))},function(a,b){this.i(b,V.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,V.call(this,this.g(b),G-this.f))},function(a,b){this.i(this.f,V.call(this,this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,this.g(b),G-this.g(this.f))))},
function(a,b){this.i(b,V.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(b,V.call(this,G-this.g(b),G-this.f))},function(a,b){this.i(this.f,V.call(this,G-this.g(b),G-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,G-this.g(b),G-this.g(this.f))))},ce,ce,function(){this.i(this.f,G)},function(a,b){this.i(this.f,this.i(b,G))},de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,me,oe,pe,qe,re,se,te,ue,me,oe,pe,qe,re,se,te,ue,
me,oe,pe,qe,re,se,te,ue,me,oe,pe,qe,re,se,te,ue,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,
S,S,S,S,S,S,S,S,S],te=[function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.g(this.f);a&8&&(this.v&=-131073);a&131072&&(this.v&=-262145);break;default:this.b(a)}},function(a,b){switch(b){case 0:a=0;this.v&131072&&(a|=8);this.v&262144&&(a|=65536);this.i(this.f,a);break;default:this.b(a)}},function(a){this.b(a)},function(a){this.b(a)}];
function Be(a){u.call(this,"ROM",a,128);this.T=this.b=null;this.C=+a.addr;this.v=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.F=xa(this.A);if(this.A){a=this.A;var b=ya(this.F);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ma(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(nb(c.La,a,b),(a=Na(a,b))?(c.b=a.Y,c.T=a.T):c.A=null);Ce(c)})}}p(Be,u);
Be.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;Ce(this)};Be.prototype.pa=function(){this.T&&(this.D&&De(this.D,this.id,this.C,this.v,this.T),delete this.T);return!0};Be.prototype.ga=function(){return!0};
function Ce(a){if(!Lb(a)){if(a.A){if(!a.b||!a.H)return;a.v||(a.v=a.b.length);if(a.b.length!=a.v)Jb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.v,8,!0)+")");else{var b;b=a.C;if(Kc(a.H,b,a.v,Sc)){var c;for(c=0;c<a.b.length;c++)Ec(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.v,h=[],k=d.C>>>f.f;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.v;g=0;for(e>>>=
f.f;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}z(a)}}fb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Be(d);Db(d,c)}});
function Ee(a){u.call(this,"RAM",a);this.T=this.Ca=null;this.f=+a.addr;this.v=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.A=this.F=!1;this.b=a.file;this.C=xa(this.b);if(this.b){a=this.b;var b=ya(this.C);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ma(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(nb(c.La,a,b),(a=Na(a,b))?(c.Ca=a.Ca,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);Fe(c)})}}p(Ee,u);Ee.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;Fe(this)};Ee.prototype.pa=function(a,b){this.T&&(this.D&&De(this.D,this.id,this.f,this.v,this.T),delete this.T);b||this.reset();return!0};Ee.prototype.ga=function(){return!0};
function Fe(a){if(a.H&&(!a.A&&a.v&&(Kc(a.H,a.f,a.v,1)?a.A=!0:a.v=0),!Lb(a))){if(!a.A)r("No RAM allocated");else if(a.b){if(!a.Ca)return;Ge(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;z(a)}}
Ee.prototype.reset=function(){if(this.A&&!this.F){for(var a=this.H,b=this.f,c=this.v,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-qa&&(g+=pa);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.v(g,d,e.B+d);c-=16384;b++;d=0}this.Ca&&Ge(this,this.Ca,this.na,this.ma,this.f,!this.D)}this.F=!1};
function Ge(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Ec(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.u.V(),f=!1),null!=d&&(a=a.u,a.Aa=d,a.A=d%Sb,f?a.w.U?a.w.K||rc(a):a.w.Z=!0:a.D&&a.w.U?a.V()||a.G.w.reset||(fd(a.D),N(a.G,-1)):!1===f&&a.V(),!a.w.K&&a.za&&a.za.stop()));return g}fb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ee(d);Db(d,c)}});
function He(a){u.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.v=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Ie;b&&(void 0===c&&(c="Panel"),(c=Cb(c,this.id))&&(b=c.I[b])&&this.ha(null,a,b))}this.b=this.C=null;this.exports={connect:this.rb,receiveData:this.Qa,receiveStatus:this.Pb,setConnection:this.Sb}}p(He,u);l=He.prototype;
l.ha=function(a,b,c){var d=this;switch(b){case Ie:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ta.fb:ta.vb:46==c?b=ta.fb:a.ctrlKey&&c>=ta.eb&&c<=ta.xb&&(b=c-(ta.eb-ta.sb));b&&(a.preventDefault&&a.preventDefault(),d.Qa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.ub&&(b=ta.tb);d.Qa(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.Qa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.xa=function(a,b,c,d){this.G=a;this.H=b;this.u=c;this.D=d;z(this)};
l.rb=function(a){if(!this.b){var b=cd(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ja(c[0]);if(d!=this.Ka)return;c=Ja(c[1]);if(this.b=Bb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.v);if(this.C=e.receiveData){this.v=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.rb(this.v),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new M(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Qa=function(a){if("number"==typeof a)this.f.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.f.push(b)}else this.f=this.f.concat(a);return!0};l.Pb=function(){};l.Sb=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ie="buffer";
fb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new He(d);Db(d,c)}});function Je(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.C=0;this.P=!1;this.A=-1;this.v=[];this.W={}}p(Je,u);Je.prototype.ab=function(){return-1};Je.prototype.bb=function(){};
function Ke(a,b,c,d){if(c)if(b){0>a.A&&a.v.length&&(a.A=0);if(0>a.A||b!=a.v[a.A])a.v.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.v[a.A+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(Ja(b.substring(c,f))),c=f+1}}return a}
function Le(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S],ve=[function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.g(this.f);a&8&&(this.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.b(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.i(this.f,a);break;default:this.b(a)}},function(a){this.b(a)},function(a){this.b(a)}];
function Fe(a){u.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.F=xa(this.A);if(this.A){a=this.A;var b=ya(this.F);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ma(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(ob(c.La,a,b),(a=Na(a,b))?(c.b=a.Y,c.T=a.T):c.A=null);Ge(c)})}}p(Fe,u);
Fe.prototype.xa=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Ge(this)};Fe.prototype.pa=function(){this.T&&(this.D&&He(this.D,this.id,this.B,this.u,this.T),delete this.T);return!0};Fe.prototype.ga=function(){return!0};
function Ge(a){if(!Mb(a)){if(a.A){if(!a.b||!a.H)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Kb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.u,8,!0)+")");else{var b;b=a.B;if(Mc(a.H,b,a.u,Uc)){var c;for(c=0;c<a.b.length;c++)Gc(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);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.f;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.u;g=0;for(e>>>=
f.f;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}z(a)}}gb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Fe(d);Eb(d,c)}});
function Ie(a){u.call(this,"RAM",a);this.T=this.Ca=null;this.f=+a.addr;this.u=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.A=this.F=!1;this.b=a.file;this.B=xa(this.b);if(this.b){a=this.b;var b=ya(this.B);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ma(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(ob(c.La,a,b),(a=Na(a,b))?(c.Ca=a.Ca,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);Je(c)})}}p(Ie,u);Ie.prototype.xa=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Je(this)};Ie.prototype.pa=function(a,b){this.T&&(this.D&&He(this.D,this.id,this.f,this.u,this.T),delete this.T);b||this.reset();return!0};Ie.prototype.ga=function(){return!0};
function Je(a){if(a.H&&(!a.A&&a.u&&(Mc(a.H,a.f,a.u,1)?a.A=!0:a.u=0),!Mb(a))){if(!a.A)r("No RAM allocated");else if(a.b){if(!a.Ca)return;Ke(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.B+'"'):a.da('Error loading image "'+a.B+'"')}a.F=!0;z(a)}}
Ie.prototype.reset=function(){if(this.A&&!this.F){for(var a=this.H,b=this.f,c=this.u,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-qa&&(g+=pa);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.D(g,d,e.C+d);c-=16384;b++;d=0}this.Ca&&Ke(this,this.Ca,this.na,this.ma,this.f,!this.D)}this.F=!1};
function Ke(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Gc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Aa=d,a.A=d%Tb,f?a.w.U?a.w.K||sc(a):a.w.Z=!0:a.D&&a.w.U?a.V()||a.G.w.reset||(hd(a.D),O(a.G,-1)):!1===f&&a.V(),!a.w.K&&a.za&&a.za.stop()));return g}gb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ie(d);Eb(d,c)}});
function Le(a){u.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.u=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Me;b&&(void 0===c&&(c="Panel"),(c=Db(c,this.id))&&(b=c.I[b])&&this.ha(null,a,b))}this.b=this.B=null;this.exports={connect:this.rb,receiveData:this.Qa,receiveStatus:this.Pb,setConnection:this.Sb}}p(Le,u);l=Le.prototype;
l.ha=function(a,b,c){var d=this;switch(b){case Me:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ra.fb:ra.vb:46==c?b=ra.fb:a.ctrlKey&&c>=ra.eb&&c<=ra.xb&&(b=c-(ra.eb-ra.sb));b&&(a.preventDefault&&a.preventDefault(),d.Qa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.ub&&(b=ra.tb);d.Qa(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.Qa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.xa=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;z(this)};
l.rb=function(a){if(!this.b){var b=ed(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ja(c[0]);if(d!=this.Ka)return;c=Ja(c[1]);if(this.b=Cb(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.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.rb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new M(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Qa=function(a){if("number"==typeof a)this.f.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.f.push(b)}else this.f=this.f.concat(a);return!0};l.Pb=function(){};l.Sb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Me="buffer";
gb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Le(d);Eb(d,c)}});function Ne(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.A=-1;this.u=[];this.W={}}p(Ne,u);Ne.prototype.ab=function(){return-1};Ne.prototype.bb=function(){};
function Oe(a,b,c,d){if(c)if(b){0>a.A&&a.u.length&&(a.A=0);if(0>a.A||b!=a.u[a.A])a.u.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.u[a.A+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(Ja(b.substring(c,f))),c=f+1}}return a}
function Pe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Me(a,b,c){var d;if(b){b=Ne(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=Ja(n);if(!n){f=!0;break}n=Oe(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],D=n.length;k.length&&Pe[n]<Pe[k[k.length-1]]&&Le(h,k,1);k.push(n);b=b.substr(t+D)}Le(h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Qe(a,null,
d))}return d}function Ne(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",f=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Me(a,c[1]);b=b.replace(d+c[1]+e,null!=g?O(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Oe(a,b,c,d){var e;null!=b?(e=a.ab(b),0<=e?e=a.bb(e):(e=a.W[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 Qe(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,m=void 0,n=8,t="";n?32<n&&(n=32):n=32;for(var D=null==k||isNaN(k),ca=m=m||n;0<n--;)ca||(t=","+t,ca=m),t=(D?"?":k&1?"1":"0")+t,k>>=1,ca--;g=t+g;d>>=8}d=q(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 Re(a,b){if(b)return Qe(a,b,a.W[b]);var c=0;for(b in a.W)Qe(a,b,a.W[b]),c++;return 0<c}function O(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=va(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Pe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Se(a){Je.call(this,a);this.wa=!1;this.la=!0;this.va=W();this.L=W(0);this.ja=W(0);this.ba=W(0);this.F=[];this.b=this.M=this.J=[];Te(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Ue(this);this.D=this;this.qa={};this.X=this.nb=0;this.S=null;this.O=[];Ve(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=this.ta=null;this.C=this.Aa=this.za=this.ia=this.ra=0;this.ea=this.aa=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return hd(b,a)}):void 0===global[x]&&(global[x]=function(a){return hd(b,
a)})}p(Se,Je);function X(a){a=a&&a.B;null==a&&(a=-1);return a}function W(a,b,c){return{B:void 0===a?null:a,Oa:void 0===b?!1:b,fa:!1,ca:c}}function We(a,b,c,d){a.B=b;a.Oa=c||!1;a.fa=!1;a.ca=d}function Xe(a){return[a.B,a.Oa,a.fa,a.ca,a.Ra]}function Ye(a,b){var c=W(b[0],b[1],b[2]);c.fa=b[3];b[4]&&(c.lb=Ke(a,c.Ra=b[4]));return c}l=Se.prototype;
l.xa=function(a,b,c,d){this.H=b;this.G=a;this.u=c;this.ea=a.v;(a=cd(a,"messages"))&&Ve(this,a);Ze(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=X(Y(d,c,d.ja));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.f;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=Nc[c],n&&d.j(q(n.id,8)+" %"+q(e<<d.H.f,8)+" %"+q(n.B,8)+" "+q(n.Ha,
4,!0)+" "+q(n.size,4,!0)+" "+m),c!=Rc&&(c=-1),m=0);a+=16384;e++}}});z(this)};
l.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",hd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.v.length-1&&(b=d.v[++d.A])):40==a.keyCode&&(0<d.A?b=d.v[--d.A]:(b="",d.A=-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.I[b]=c,db(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";hd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,db(c,function(a){var b=!1;Mb(d,!0)||(Nb(d,!0),b=zc(d,a?1:0,null),Nb(d,!1));return b}),!0}return!1};function gd(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.ya=function(a,b){var c=-1,d=X(a);-1!==d&&(c=Fc(this.H,d),b&&null!=a.B&&(a.B+=b||1));return c};l.gb=function(a,b,c){var d=X(a);-1!==d&&(Ec(this.H,d,b),c&&null!=a.B&&(a.B+=c||1),N(this.G,-1))};
function Y(a,b,c){var d,e;c||(c=W());var f=c.B;if(void 0!==b){b=Ne(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 m=a.F[k].T[f];if(null!=m){h=m.o;break}}null!=h&&(g=W(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Me(a,b,void 0)}null!=f&&We(c,f,d,e);return c}function $e(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lb=Ke(a,b.Ra=c[2]))}
function af(a){return wa(a/Sb,6)+" "+wa(a%Sb,6)}function Ve(a,b){a.D=a;a.X=a.nb=536870916;a.S=null;a.O=[];b=Ke(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){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|=K[c],a.j(c+" messages enabled"))}}function Ze(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.ab=function(a){return bf.indexOf(a.toUpperCase())};
l.bb=function(a){var b,c=this.u;switch(a){case cf:b=c.A;break;case df:b=c.J;break;case ef:b=c.f;break;case ff:b=c.v&65536?1:0;break;case gf:b=c.v&32768?1:0;break;case hf:b=c.v&131072?1:0;break;case jf:b=c.v&32?1:0;break;case kf:b=c.v&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+O(this,W(this.u.sa).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.u&&(c=this.u.w.K)||Mb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.j(a);this.u&&(a=this.u,pd(a),a.ea=0,a.G&&N(a.G,void 0))}};
function Ue(a){var b;if(!Qd(a))a.f&&a.f.length&&a.j("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(lf);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.j("instruction history buffer allocated")}}function mf(a,b,c){if(!nf(a,c))return!1;rc(a.u,b);return!0}
function zc(a,b,c,d){if(!nf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.C=0;b||Qd(a)&&Rd(a,a.u.A,0);try{b=nd(a.u,b);var f=a.u.Ja(b);0<f&&(Ac(a.u,f),a.C+=f,Bc(a.u,f,!0),Cc(a.u,f),a.ia++)}catch(g){"number"!=typeof g&&(a.C=0,Jb(a.u,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),N(a.G,-1));fd(a,c||!1,e);return 0<a.C}l.V=function(a){this.u&&this.u.V(a)};function fd(a,b,c){b=void 0===b?!0:b;a.wa&&(c&&a.j(of+c),We(a.L,a.u.A),b&&1!=a.N?pf(a):qf(a))}
function nf(a,b){var c;(c=!a.u||!Lb(a.u))||(c=a.u,c.w.U?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.u.w.K?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Kb(a.u)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ga=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ue(this);this.ia=0;this.S=null;this.C=0;We(this.L,this.u.A);this.w.K=!1;Yf(this);a||fd(this)};
l.save=function(){var a=new M(this);a.set(0,Xe(this.L));a.set(1,Xe(this.ja));a.set(2,Xe(this.ba));a.set(3,[this.v,this.P,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Ye(this,a[b++]),this.ja=Ye(this,a[b++]),this.ba=Ye(this,a[b++]),this.v=a[b][0],"string"==typeof this.v&&(this.v=[this.v]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.N||this.j("running");this.w.K=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.w.K){this.w.K=!1;this.C=b-this.Aa;if(!this.N){b="stopped";if(this.C){a-=this.za;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Qd(this)&&(b+=this.ia+" instructions, ",this.ia=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)}fd(this,!0);gd(this);Yf(this,this.u.A);this.S=null}};function Qd(a){return 1<a.b.length||!!a.ka}
function Rd(a,b,c){var d=-1;c||(d=a.u.g(b),2756==d>>23&&a.u.sa==b&&(b=ud(a.u,1)));if(0<c&&(a.ka&&!--a.ka||$c(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.u.g(b)),0<=d&&(We(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
function $f(a,b,c,d){var e=W(b.B),f=a.ya(b,1),g,h,k,m=0,n=f/Yb|0,t;for(t in ag)if(g=ag[t][n&t]){h=+t;n>>=6;switch(h){case 32512:k=bg;m=n&3;break;case 32256:k=cg;m=n&7;break;case 29248:k=dg,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>eg&&(k="B");k=fg[g||0]+k;k=Ia(k,8);g?(k=28700==h?k+O(a,f/Zb&127,-1):k+O(a,f>>23&15,-1),k+=",",f&4194304&&(k+="@"),k+=O(a,f&262143,-1),(f=f>>18&15)&&(k+="("+O(a,f,-1)+")")):k+=af(f);f=k;g="";h=O(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.ya(e,1),g+=" "+af(k),null==
e.B)break;while(e.B!=b.B)}h+=Ia(g,16)+f;c&&(h=Ia(h,48)+";"+(c||""),h=a.u.w.Ea?h+("cycles="+id(a.u).toString()+" cs="+q(a.u.ua)):h+(null!=d?"="+d.toString():""));return h}function Te(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=X(c);var d=a.H;Zc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=X(c),d=a.H,Zc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
l.Da=function(a,b,c){var d=!0;c||gg(this,a,b,!1,!0);if(a!=this.b){var e=X(b);if(-1===e)this.j("invalid address: "+O(this,b.B)),d=!1;else{var f=this.H;f.b[e>>>f.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.fa=!0:(hg(this,a,a.length-1,"set"),Ue(this)));return d};function gg(a,b,c,d,e){var f=!1;c=X(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==X(h)&&(!d||h.fa)){f=!0;h.fa||e||hg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,Zc(d.b[c>>>d.f],b==a.J));h.fa||Ue(a);break}}return f}
function ig(a,b){for(var c=1;c<b.length;c++)hg(a,b,c);return b.length-1}function hg(a,b,c,d){c=b[c];a.j(b[0]+" "+O(a,c.B)+(d?" "+d:c.Ra?' "'+c.Ra+'"':""))}function Yf(a,b){if(void 0!==b)$c(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.fa){if(!gg(a,a.b,c,!0))break;b=0}}}
function $c(a,b,c,d,e){var f=!1;if(!a.ra++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.fa)for(var k=X(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,f=!0;h.fa&&(gg(a,d,h,!0),e=!0);if(n=h.lb){for(var f=!1,t=0;t<n.length;t++)if(!jg(a,n[t],!0)){if(n[t].indexOf("if")){f=!0;break}for(var D=t+1;D<n.length&&n[D].indexOf("else");D++)t++;if(D==n.length){f=!0;break}}a.u.w.K||(f=!0)}if(f){e||hg(a,d,g,"hit");break}}}a.ra--;return f}
function kg(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);We(e.va,d);f+="="+O(e,e.ya(e.va),36)+" ";c+=f}if(b){b="";for(d=0;d<bf.length;d++)(e=bf[d]||"")&&(e+="="+O(a,a.bb(d),d>=ff?1:d==df?23:18)+" "),b+=e;c+="\n"+b}return c}l.ob=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function De(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,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],t=Ka(n,k,a.ob);0>t&&n.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({cd:b,B:c,Cb:d,T:e,mb:f})}function lg(a,b,c){var d=[],e=X(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Cb;if(e>=g&&e<g+h){e=Ka(f.mb,[e-g],a.ob);0<=e?mg(a,b,e,d):c&&(e=~e,mg(a,b,e-1,d),mg(a,b,e,d));break}}return d}
function mg(a,b,c,d){var e={},f=a.F[b].mb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function ng(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Re(a)||a.j("no variables"),!0;if(!c[2])return Re(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=Me(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function og(a,b,c){var d=null;if(b=Y(a,b)){var e=lg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+O(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+O(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.u,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=Me(a,b);if(void 0===g)return;b=a.ab(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.u;switch(b){case cf:h.A=
g%Sb;We(a.L,h.A);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.v=g?h.v|f:h.v&~f);N(a.G);a.j("updated registers:")}}a.j(kg(a,e));c&&(We(a.L,d.A),qf(a,O(a,a.L.B)))}}function pg(a,b){b=Ja(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Qe(a,null,c[2].charCodeAt(0)):Me(a,b,!0)}
function qg(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=Oe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;cb(c,function(){return Nb(a,!0)&&zc(a,e,d,!1)},function(){a.ea&&a.ea.stop();N(a.G,-1);Nb(a,!1)})}}
function qf(a,b,c,d){if(b=Y(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Oe(a,c.substr(1)),null!=c&&(d=c);else{d=Y(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.N?a.C:null,g=null!=f?"cycles":null,h=lg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);h=a.ba;m=b;h.B=m.B;h.Oa=m.Oa;h.fa=m.fa;h.ca=m.ca;a.j($f(a,b,g,f));e-=b.B-k;c++}}}
function jg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(of+b):(a.P&&(a.j("ended assemble at "+O(a,a.ba.B)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Lb(a)&&0<b.length){a.P&&(b="a "+O(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),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var t=Y(a,
g[1],a.ba);if(t){var D=g[2];if(void 0==D)a.j("begin assemble at "+O(a,t.B)),a.P=!0,N(a.G);else{g.shift();g.shift();g.shift();var ca,rf=g.join(""),C=-1,sc,Sg=D.toUpperCase(),vd;for(vd in ag){var Ra;sc=+vd;var sf=ag[vd];switch(sc){case 32512:Ra=bg;break;case 32256:Ra=cg;break;case 29248:Ra=dg;break;default:Ra=[""]}var tf,wd;for(wd in sf){for(var uf=sf[wd],Sa=0;Sa<Ra.length;Sa++){var xd=Ra[Sa];"S"==xd&&uf>eg&&(xd="B");if(Sg==fg[uf]+xd){tf=29248!=sc?Sa:(Sa&3)<<1|(Sa&12)<<2;C=(wd|tf<<6)*Yb;break}}if(0<=
C)break}if(0<=C)break}if(0<=C)if(rf)for(var yd=rf.split(","),pb=0;pb<yd.length;pb++){var tc=yd[pb].trim();if(tc){if(1<pb){a.j("too many operands: "+tc);C=-1;break}var da=tc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!da){a.j("unknown operand: "+tc);C=-1;break}var L=Me(a,da[2]);if(void 0==L){C=-1;break}if(!pb&&1<yd.length)if(28700==sc){if(0>L||127<L){a.j("device code out of range: "+da[2]);C=-1;break}C+=L*Zb}else{if(0>L||15<L){a.j("accumulator address out of range: "+da[2]);C=-1;break}C+=L<<23}else{if(0>
L||262143<L){a.j("memory address out of range: "+da[2]);C=-1;break}C+=L;if(da[3]){L=Me(a,da[3]);if(void 0==L){C=-1;break}if(0>L||15<L){a.j("memory index out of range: "+da[3]);C=-1;break}C+=L<<18}da[1]&&(C+=4194304)}}}else a.j("missing operand(s)"),C=-1;else a.j("unknown instruction: "+D);ca=C;0<=ca&&(a.gb(t,ca),a.j($f(a,t)))}}break;case "b":a:{var Tg=g[0],Ta=g[1],Ug=b;if("?"==Ta)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 Ba=Tg.charAt(1);if("l"==Ba){var zd;zd=0+ig(a,a.b);zd+=ig(a,a.M);(zd+=ig(a,a.J))||a.j("no breakpoints")}else if("n"==Ba){var vf=+Ta||0;Ta&&(a.ka=vf);a.j("break after "+vf+" instruction(s)")}else if(void 0===Ta)a.j("missing breakpoint address");else{var R=W();if("*"!=Ta&&(R=Y(a,Ta,a.L),!R))break a;"c"==Ba?null==R.B?(Te(a),a.j("all breakpoints cleared")):gg(a,a.b,
R)||gg(a,a.M,R)||gg(a,a.J,R)||a.j("breakpoint missing: "+O(a,R.B)):null!=R.B&&($e(a,R,Ug),"p"==Ba?a.Da(a.b,R):"r"==Ba?a.Da(a.M,R):"w"==Ba?a.Da(a.J,R):a.j("unknown breakpoint command: "+Ba))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Ua,Va=g[0],ea=g[1],ra=g[2],Vg=g[3];if("?"==ea){var Wa="";for(Ua in K)a.qa[Ua]&&(Wa&&(Wa+=","),Wa+=Ua);Wa+=",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");Wa.length&&a.j("dump extension commands:\n\t"+Wa)}else if("state"==ea){var Ad=rg(a.G,!0);"console"==ra?console.log(Ad):(a.oa&&(a.oa.value=""),Ad&&a.j(Ad))}else if("symbols"==ea)for(var Bd=0;Bd<a.F.length;Bd++){var Cd=a.F[Bd],Xa;for(Xa in Cd.T)if("."!=Xa.charAt(0)){var wf=Cd.T[Xa].o;if(void 0!==wf){var xf=Cd.T[Xa].l;xf&&(Xa=xf);a.j(O(a,wf)+" "+Xa)}}}else{if("d"==Va){for(Ua in K)if(g[1]==Ua){var yf=a.qa[Ua];yf?(g.shift(),g.shift(),yf(g)):
a.j("no dump registered for "+ea);break a}ea||(Va=a.Ba||"dw")}else a.Ba=Va;if("dh"==Va){var zf=ea,Af=ra,Bf="",Cf=0,Z=a.R,fa=a.f;if(fa.length){var V=+zf||a.sa,rb=+Af||10;isNaN(V)?V=rb:Bf="more ";V>fa.length&&(a.j("note: only "+fa.length+" available"),V=fa.length);Z-=V;0>Z&&(null==fa[fa.length-1].B?(V=Z+V,Z=0):Z+=fa.length);var Dd=[];"call"==Af&&(rb=1E5,Dd=["CALL"]);for(void 0!==zf&&a.j(V+" instructions earlier:");0<rb&&Z!=a.R;){var Df=fa[Z++];if(null==Df.B)break;var sb=W(Df.B),Wg=V--,Ef=$f(a,sb,"history",
Wg);(!Dd.length||0<=Ef.indexOf(Dd[0]))&&a.j(Ef);sb.Za&&(Z+=sb.Za,rb-=sb.Za,V-=sb.Za);Z>=fa.length&&(Z=0);a.sa=V;Cf++;rb--}}Cf||(a.j("no "+Bf+"history available"),a.sa=void 0)}else{var Ya=Y(a,ea,a.ja);if(Ya){var Ca=0,Ff="ds"==Va;if(ra){if("l"==ra.charAt(0))ra=ra.substr(1)||Vg,Ca=Oe(a,ra);else{var Gf=Y(a,ra);Gf&&(Ca=Gf.B-Ya.B)}0>Ca&&(Ca=0);65536<Ca&&(Ca=65536)}var Xg=a.ca;Ya.ca&&(a.ca=Ya.ca);for(var Hf="db"==Va?1:2,Ed=Ca||32,Fd=1==Hf?2:4,Yg=(Ed+Fd-1)/Fd|0||1,Da="";Yg--&&0<Ed;){for(var Ea="",If="",ea=
O(a,Ya.B),Jf=Fd;0<Jf--&&0<Ed--;){var uc=a.ya(Ya,1);Ff?(Ea&&(Ea+=","),Ea+=uc):(Ea+=af(uc),Ea+=" ");for(var Kf=0;1==Hf&&6>Kf;Kf++)If+=String.fromCharCode((uc%64|0)+32),uc/=64}Da&&(Da+="\n");Da=Ff?Da+(Ea+","):Da+(ea+": "+Ea+(0>Jf?" "+If:""))}Da&&a.j(Da);a.ca=Xg}}}}break;case "e":if("else"==g[0])break;var Lf,Mf,Nf=g[0],Gd=g[1];"e"==Nf||"ew"==Nf?(Lf=a.ya,Mf=a.gb):Gd=null;if(null==Gd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var vc=Y(a,Gd,a.ja);if(vc)for(var wc=2;wc<
g.length;wc++){var Hd=Me(a,g[wc]);if(void 0===Hd){a.j("unknown value: "+g[wc]);break}a.j("changing "+O(a,vc.B)+" from "+af(Lf.call(a,vc))+" to "+af(Hd));Mf.call(a,vc,Hd,1)}}break;case "g":a:{var Of=g[1],Zg=b;if(void 0!==Of){var Id=Y(a,Of);if(!Id)break a;$e(a,Id,Zg);a.Da(a.b,Id,!0)}mf(a,!0,c)}break;case "h":a.w.K?(c||a.j("halting"),a.V()):Mb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Jd;var tb=b.substr(2),tb=Ja(tb);Me(a,tb)?(c||a.j("true: "+tb),Jd=!0):(c||a.j("false: "+tb),Jd=
!1);Jd||(d=!1);break}f=!0;break;case "k":var $g=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Kd=0,Ld=W(),ub=W();for(a.j("stack trace for "+O(a,ub.B));10>Kd;){for(var Fa=null,ah=256;65536>ub.B>>>0;){Ld.B=a.ya(ub,2);if(null==ub.B||!ah--)break;if(!(Ld.B&1)){for(var bh=a,xc=Ld,Pf=null,vb=xc.B,Qf=vb,Md=1;6>=Md&&vb;Md++){if(2<Md){xc.B=vb;var yc=$f(bh,xc);if(0<=yc.indexOf("JSR")){var Rf=yc.indexOf(" ");if(vb+(yc.indexOf(" ",
Rf+1)-Rf-1)/2==Qf){Pf=yc;break}}}vb-=2}xc.B=Qf;if(Fa=Pf)break}}if(!Fa||null==Fa)break;var Sf=null;if("ks"==$g){var Tf=Fa.match(/[0-9A-F]+$/);Tf&&(Sf=og(a,Tf[0]))}Fa=Ia(Fa,50)+" ;"+(Sf||"stack="+O(a,ub.B));a.j(Fa);Kd++}Kd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){og(a,g[1],!0);break}f=!0;break;case "m":a:{var ga,ha=null,E=g[1];"?"==E&&(E=void 0);if(void 0!==E){var sa=0;if("all"==E)sa=1879046143,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==E&&
(E="key");"kbd"==E&&(E="keyboard");for(ga in K)if(E==ga){sa=K[ga];ha=!!(a.X&sa);break}if(!sa){a.j("unknown message category: "+E);break a}}if(sa)if("on"==g[2])a.X|=sa,ha=!0;else if("off"==g[2]&&(a.X&=~sa,ha=!1,1073741824==sa)){for(var Uf=1E3<=a.O.length?a.O.length-1E3:0;Uf<a.O.length;)a.j(a.O[Uf++]);a.O=[]}}var ch=0,wb="";for(ga in K)if(!E||E==ga){var dh=!!(a.X&K[ga]);if(null===ha||ha==dh)wb&&(wb+=","),++ch%10||(wb+="\n\t"),"key"==ga&&(ga="keys"),wb+=ga}void 0===E&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.j((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(wb||"none"));Ue(a)}break;case "p":if("print"==g[0]){pg(a,b.substr(5));break}var Vf=g[0],Wf="p"==Vf?0:"pr"==Vf?1:-1;if("?"==g[1]||0>Wf)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");else if(a.N)a.j("step in progress");else{var Xf=W(a.u.A);a.ya(Xf);a.N?(a.Da(a.b,Xf,!0),mf(a)||(a.G&&md(a.G),a.N=0)):qg(a,Wf?"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 xb=+g[2];if(8==xb||10==xb||16==xb)a.ca=xb;else{a.j("invalid base: "+xb);break}}a.j("default base: "+a.ca);break;case "cs":var yb;void 0!==g[3]&&(yb=+g[3]);switch(g[2]){case "int":a.u.ia=yb;break;case "start":a.u.va=yb;break;case "stop":a.u.ka=yb;break;default:a.j("unknown cs option");break a}void 0!==yb&&ed(a.u);a.j("checksums "+(a.u.w.Ea?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(jd(a.u,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));
a.j("target speed: "+(a.u.aa.toFixed(2)+"Mhz")+" ("+a.u.ba+"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":qg(a,g[0],g[1]);break;case "u":qf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ng(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Qb||"PDP10")+" version 1.34.2 ("+a.u.jb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){pg(a,b.substr(1));break}var Nd="commands:",Od;for(Od in sg)Nd+="\n"+Ia(Od,9)+sg[Od];Qd(a)||(Nd+="\nnote: history disabled if no exec breakpoints");a.j(Nd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(Zf){a.j("debugger error: "+(Zf.stack||Zf.message)),d=!1}return d}
function hd(a,b,c){b=Ke(a,b,c);for(var d in b)if(!jg(a,b[+d]))return!1;return!0}
var sg={"?":"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"},eg=20,fg=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
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(" "),tg={},ag=(tg[28672]={0:101},tg[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},tg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:eg,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},tg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},tg[29248]={24576:79,24640:80,25088:81,25152:82},tg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},tg),bg=["","I","M","S"],cg=" L E LE A GE N G".split(" "),dg="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),lf=1E3,of=">> ";fb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Se(d);Db(d,c)}});
function ug(a,b,c){u.call(this,"Computer",a,33554432);this.w.U=!1;this.R=null;vg(this,b);this.O=cd(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.L=this.W=!1;this.J=this.C=null;this.S=this.P=!1;this.ba=cd(this,"url")||"";(Math.random()+.1).toString(36);this.f=wg(this);if(this.u=Cb("CPU",this.id)){this.D=Cb("Debugger",this.id);this.H=new Gc({id:this.La+".bus",busWidth:this.aa},this.u,this.D);var d,e=Ab(this.id);if((this.v=Cb("Panel",this.id))&&this.v.oa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.v.da,d.j=this.v.j,d.oa=this.v.oa;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.xa&&d.xa(this,this.H,this.u,this.D);b=null;d=cd(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=cd(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.L=!0,this.b=xg),this.b&&(this.J=new M(this,"1.34.2"),yg(this.J)?b=null:
delete this.J);!b&&this.b&&(b=zg(this))&&(this.L=!0);if(b){var g=this;Ma(b,null,!0,function(a,b,c){c?(g.F=null,g.L=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ja(b):"")+")")):(g.M=b,g.W=!0);z(g)})}else z(this);this.I.power||(this.O=!0);!c&&this.O&&Ag(this,this.Ga)}else r("Unable to find CPU component")}p(ug,u);function vg(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 cd(a,b,c,d){var e=b.toLowerCase(),e=ab(b)||ab(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 Ag(a,b,c){for(var d=Ab(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){Ag(a,b,c)});return}}b.call(a,c)}
function Bg(a,b){var c=new M(a,"1.34.2",Cg);if(yg(c)&&Dg(c)){var d=c.get(Eg),e=b?b.get(Eg):"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=ug.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?Fg:xg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.J||new M(this,"1.34.2");if(a==Gg)b=!0;else if(a>xg){if(yg(d,this.M)){this.C=new M(this,"1.34.2",Hg);yg(this.C)&&(Ig(this,d),a=Jg,Kg(this.C));this.C.set(Eg,La());Lg(this.C);var e=this.b&&!this.L;if(a==Fg||zb("Click OK to restore the previous "+Qb+" machine state, or CANCEL to reset the machine.")){if(c=Dg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?yg(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Za(Mg,""),this.f=null)):this.j(f+": "+g),Kg(d),yg(d)?(c=Dg(d),e=!0):c=!1))}e&&Bg(this,c?d:null)}else a==Jg&&d.clear()}else Bg(this);delete this.M;delete this.J}e=Ab(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Ng(this,g,d,b,c));b=[d,a,c];a!=Gg?Ag(this,this.pb,b):this.pb(b)}};
function Ng(a,b,c,d,e){if(!b.w.U){b.w.U=!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.pa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=xg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.ib){var g=b.ib.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.pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.w.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.u&&(Ng(this,this.u,b,c,a),N(this,-2),this.u.Z());this.P&&(Ig(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.A=0};
function Ig(a,b){if(zb("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.f||"";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;Ma("http://www.pcjs.org/api/v1/report",d,!0)}}
function rg(a,b,c){var d,e="none";if(a.A)return null;a.A--;var f=new M(a,"1.34.2"),g=new M(a,"1.34.2",Cg),h=La();g.set(Eg,h);f.set(Eg,h);f.set(Og,"1.34.2");f.set(Pg,window?window.location.href:null);f.set(Qg,window?window.navigator.userAgent:"");a.u&&a.u.ga&&(c&&(b&&(a.u.w.Z=a.u.w.K),a.u.V()),d=a.u.ga(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.w.U=!1,!1===d&&(e=null)));for(var h=Ab(a.id),k=0;k<h.length;k++){var m=h[k];m.w.U&&(m.ga&&(d=m.ga(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.w.U=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Rg(a,a.f,f.toString()),Lg(g)&&Lg(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==eh),d&&f.clear(h)):e=f.toString());c&&(a.w.U=!1,b=a.I.power)&&(b.textContent="Power");a.A=0;return e}
l.reset=function(){this.w.reset=!0;this.H&&this.H.reset&&(Pb(this,"Resetting "+this.H.type),this.H.reset());this.u&&this.u.reset&&(Pb(this,"Resetting "+this.u.type),this.u.reset());for(var a=Ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.u&&c.reset&&(Pb(this,"Resetting "+c.type),c.reset())}this.w.reset=!1;N(this,-1)};l.start=function(a,b){for(var c=Ab(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}N(this,-1)};
l.stop=function(a,b){for(var c=Ab(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}N(this,-1)};
function N(a,b){if(a.u){var c=a.u,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Ta+=d))&&(e.textContent=c.w.K?c.W.toFixed(2)+"Mhz":"Stopped",c.Ta=0)}if(a.v&&(a=a.v,b=b||0,a.M)){c=a.u.w.K;d=!!(a.u.C&8);if(0>=b||60<=(a.L+=b)){e=a.u.A;if(a.I.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?wa(e,void 0):q(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.f=a.u.A:0<b&&c&&!d&&(a.f=a.u.qa);jc(a,a.f);dc(a,a.A)}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.A||(d.w.U?rg(d,!1,!0):Ag(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.w.U&&!d.A)if(d.b&&!d.F){var a=zb("Click OK to save changes to this "+Qb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");rg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(xg)}else d.reset(),d.u&&!d.D&&d.u.Z()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.I[b]=
c,c.onclick=function(){var a=wg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=rg(d,b);b?Rg(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function wg(a,b){var c=a.f;c||((c=Qa(Mg),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=fh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function fh(a,b){a.f=null;b=Ma(Aa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Za(Mg,b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function zg(a){var b=null;a.f&&(b=Aa()+"/api/v1/user?req=load&user="+a.f+"&state="+gh(a,"1.34.2"));return b}
function Rg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=gh(a,"1.34.2");d.data=c;b=Ma(Aa()+"/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),Za(Mg,""),a.f=null)}}
function md(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var Hg="failsafe",Cg="validate",Eg="timestamp",Og="version",Pg="url",Qg="browser",Mg="user",Gg=-1,xg=0,Fg=1,Jg=2,eh=3;fb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new ug(g,d,!0);Db(g,f);g.O&&Ag(g,g.Ga)}});
gb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Cb("Computer",c.id))&&c.S&&!c.w.U&&c.Ga(Gg)}});gb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Cb("Computer",c.id))&&c.w.U&&rg(c,!(!c.b||c.F),!0)}});function M(a,b,c){this.id=a.id;this.f="";this.b={};this.u=this.D=!1;this.key=gh(a,b,c);Kg(this,a.yb)}l=M.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 yg(a,b){return b?(a.f=b,a.u=!0,a.D=!1,!0):a.u?!0:Oa()&&(b=Qa(a.key))?(a.f=b,a.u=!0):!1}function Dg(a){var b=!0;if(!a.D)try{a.b=JSON.parse(a.f),a.D=!0}catch(c){r(c.message||c),b=!1}return b}function Lg(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Za(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.f};
function Kg(a,b){a.f="";a.b={};a.u=a.D=!1;b&&a.set("parms",b)}l.clear=function(a){Kg(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 gh(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 hh=0;
function ih(a,b,c,d,e,f,g){f("Loading "+a+"...");Ma(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):jh(k,a,b,c,d,e,f,g)})}
function jh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(nb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?kh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function kh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ma(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],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[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);kh(a,b,c)}})}else c(a,null)}
function lh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&y(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ga(a))}function g(a){f("Error: "+a);m&&(--hh||jb(!0));m=!1}var h,k,m=!0;hh++;ob[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=n:D.appendChild(document.createTextNode(n));t.appendChild(D)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?ih(d,null,a,null,!1,f,function(a,e){e?(nb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--hh||jb(!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),--hh||
jb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ih(c,b,a,e,!0,f,n):jh(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(ca){g(ca.message)}return m}window.embedPDP10=function(a,b,c,d){jb(!1);return lh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){jb(!1);return lh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return Cb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Fb[a]){for(var c=!0,d=Fb,e=a,f=b.length,g=[],h=[],k="",m=null,n=0;n<f;n++){var t=b[n];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;Eb(a)||(c=!1)}return c};window.enableEvents=jb;window.sendEvent=lb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
function Qe(a,b,c){var d;if(b){b=Re(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=Ja(n);if(!n){f=!0;break}n=Se(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],C=n.length;k.length&&Te[n]<Te[k[k.length-1]]&&Pe(h,k,1);k.push(n);b=b.substr(t+C)}Pe(h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ue(a,null,
d))}return d}function Re(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",f=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Qe(a,c[1]);b=b.replace(d+c[1]+e,null!=g?P(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Se(a,b,c,d){var e;null!=b?(e=a.ab(b),0<=e?e=a.bb(e):(e=a.W[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 Ue(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,m=void 0,n=8,t="";n?32<n&&(n=32):n=32;for(var C=null==k||isNaN(k),fa=m=m||n;0<n--;)fa||(t=","+t,fa=m),t=(C?"?":k&1?"1":"0")+t,k>>=1,fa--;g=t+g;d>>=8}d=q(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 Ve(a,b){if(b)return Ue(a,b,a.W[b]);var c=0;for(b in a.W)Ue(a,b,a.W[b]),c++;return 0<c}function P(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=va(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Te={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function We(a){Ne.call(this,a);this.wa=!1;this.la=!0;this.va=W();this.L=W(0);this.ja=W(0);this.ba=W(0);this.F=[];this.b=this.M=this.J=[];Xe(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Ye(this);this.D=this;this.qa={};this.X=this.nb=0;this.S=null;this.O=[];Ze(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=this.ta=null;this.B=this.Aa=this.za=this.ia=this.ra=0;this.ea=this.aa=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return jd(b,a)}):void 0===global[x]&&(global[x]=function(a){return jd(b,
a)})}p(We,Ne);function Y(a){a=a&&a.C;null==a&&(a=-1);return a}function W(a,b,c){return{C:void 0===a?null:a,Oa:void 0===b?!1:b,fa:!1,ca:c}}function $e(a,b,c,d){a.C=b;a.Oa=c||!1;a.fa=!1;a.ca=d}function af(a){return[a.C,a.Oa,a.fa,a.ca,a.Ra]}function bf(a,b){var c=W(b[0],b[1],b[2]);c.fa=b[3];b[4]&&(c.lb=Oe(a,c.Ra=b[4]));return c}l=We.prototype;
l.xa=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;(a=ed(a,"messages"))&&Ze(this,a);cf(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(df(d,c,d.ja));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.f;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=Pc[c],n&&d.j(q(n.id,8)+" %"+q(e<<d.H.f,8)+" %"+q(n.C,8)+" "+q(n.Ha,
4,!0)+" "+q(n.size,4,!0)+" "+m),c!=Tc&&(c=-1),m=0);a+=16384;e++}}});z(this)};
l.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",jd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.u.length-1&&(b=d.u[++d.A])):40==a.keyCode&&(0<d.A?b=d.u[--d.A]:(b="",d.A=-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.I[b]=c,eb(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";jd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,eb(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=tc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function id(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.ya=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=Hc(this.H,d),b&&null!=a.C&&(a.C+=b||1));return c};l.gb=function(a,b,c){var d=Y(a);-1!==d&&(Gc(this.H,d,b),c&&null!=a.C&&(a.C+=c||1),O(this.G,-1))};
function df(a,b,c){var d,e;c||(c=W());var f=c.C;if(void 0!==b){b=Re(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 m=a.F[k].T[f];if(null!=m){h=m.o;break}}null!=h&&(g=W(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Qe(a,b,void 0)}null!=f&&$e(c,f,d,e);return c}function ef(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lb=Oe(a,b.Ra=c[2]))}
function Z(a,b){return P(a,b.C)}function ff(a){return wa(a/Tb,6)+" "+wa(a%Tb,6)}function Ze(a,b){a.D=a;a.X=a.nb=536870916;a.S=null;a.O=[];b=Oe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){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|=K[c],a.j(c+" messages enabled"))}}
function cf(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.ab=function(a){return gf.indexOf(a.toUpperCase())};l.bb=function(a){var b,c=this.v;switch(a){case hf:b=c.A;break;case jf:b=c.J;break;case kf:b=c.f;break;case lf:b=c.u&65536?1:0;break;case mf:b=c.u&32768?1:0;break;case nf:b=c.u&131072?1:0;break;case of:b=c.u&32?1:0;break;case pf:b=c.u&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+Z(this,W(this.v.sa)));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.w.K)||Nb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,rd(a),a.ea=0,a.G&&O(a.G,void 0))}};
function Ye(a){var b;if(!xd(a))a.f&&a.f.length&&a.j("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(qf);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.j("instruction history buffer allocated")}}function rf(a,b,c){if(!sf(a,c))return!1;sc(a.v,b);return!0}
function tc(a,b,c,d){if(!sf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||xd(a)&&yd(a,a.v.A,0);try{b=pd(a.v,b);var f=a.v.Ja(b);0<f&&(uc(a.v,f),a.B+=f,Dc(a.v,f,!0),Ec(a.v,f),a.ia++)}catch(g){"number"!=typeof g&&(a.B=0,Kb(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),O(a.G,-1));hd(a,c||!1,e);return 0<a.B}l.V=function(a){this.v&&this.v.V(a)};function hd(a,b,c){b=void 0===b?!0:b;a.wa&&(c&&a.j(tf+c),$e(a.L,a.v.A),b&&1!=a.N?uf(a):vf(a))}
function sf(a,b){var c;(c=!a.v||!Mb(a.v))||(c=a.v,c.w.U?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.w.K?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Lb(a.v)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ga=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ye(this);this.ia=0;this.S=null;this.B=0;$e(this.L,this.v.A);this.w.K=!1;wf(this);a||hd(this)};
l.save=function(){var a=new M(this);a.set(0,af(this.L));a.set(1,af(this.ja));a.set(2,af(this.ba));a.set(3,[this.u,this.P,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=bf(this,a[b++]),this.ja=bf(this,a[b++]),this.ba=bf(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.N||this.j("running");this.w.K=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.w.K){this.w.K=!1;this.B=b-this.Aa;if(!this.N){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";xd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}hd(this,!0);id(this);wf(this,this.v.A);this.S=null}};function xd(a){return 1<a.b.length||!!a.ka}
function yd(a,b,c){var d=-1;c||(d=a.v.g(b),2756==d>>23&&a.v.sa==b&&(b=wd(a.v,1)));if(0<c&&(a.ka&&!--a.ka||bd(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.v.g(b)),0<=d&&($e(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
function xf(a,b,c,d){var e=W(b.C),f=a.ya(b,1),g,h,k,m=0,n=f/Zb|0,t;for(t in dg)if(g=dg[t][n&t]){h=+t;n>>=6;switch(h){case 32512:k=fg;m=n&3;break;case 32256:k=gg;m=n&7;break;case 29248:k=hg,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>ig&&(k="B");k=jg[g||0]+k;if(g){if(28700==h)m=f/$b&127,h=P(a,m,-1);else if(m=f>>23&15,h=P(a,m,-1),g==kg&&(g=lg[m]))k=jg[g],h="";k=Ia(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=P(a,f&262143,-1);(f=f>>18&15)&&(k+="("+P(a,f,-1)+")")}else k=Ia(k,8)+ff(f);f=k;g="";h=Z(a,
e)+":";if(-1!==e.C&&-1!==b.C){do if(k=a.ya(e,1),g+=" "+ff(k),null==e.C)break;while(e.C!=b.C)}h+=Ia(g,16)+f;c&&(h=Ia(h,48)+";"+(c||""),h=a.v.w.Ea?h+("cycles="+kd(a.v).toString()+" cs="+q(a.v.ua)):h+(null!=d?"="+d.toString():""));return h}function Xe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Y(c);var d=a.H;ad(d.b[c>>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=Y(c),d=a.H,ad(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
l.Da=function(a,b,c){var d=!0;c||mg(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.j("invalid address: "+Z(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.fa=!0:(ng(this,a,a.length-1,"set"),Ye(this)));return d};function mg(a,b,c,d,e){var f=!1;c=Y(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Y(h)&&(!d||h.fa)){f=!0;h.fa||e||ng(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,ad(d.b[c>>>d.f],b==a.J));h.fa||Ye(a);break}}return f}
function og(a,b){for(var c=1;c<b.length;c++)ng(a,b,c);return b.length-1}function ng(a,b,c,d){c=b[c];a.j(b[0]+" "+Z(a,c)+(d?" "+d:c.Ra?' "'+c.Ra+'"':""))}function wf(a,b){if(void 0!==b)bd(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.fa){if(!mg(a,a.b,c,!0))break;b=0}}}
function bd(a,b,c,d,e){var f=!1;if(!a.ra++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.fa)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,f=!0;h.fa&&(mg(a,d,h,!0),e=!0);if(n=h.lb){for(var f=!1,t=0;t<n.length;t++)if(!pg(a,n[t],!0)){if(n[t].indexOf("if")){f=!0;break}for(var C=t+1;C<n.length&&n[C].indexOf("else");C++)t++;if(C==n.length){f=!0;break}}a.v.w.K||(f=!0)}if(f){e||ng(a,d,g,"hit");break}}}a.ra--;return f}
function qg(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);$e(e.va,d);f+="="+P(e,e.ya(e.va),36)+" ";c+=f}if(b){b="";for(d=0;d<gf.length;d++)(e=gf[d]||"")&&(e+="="+P(a,a.bb(d),d>=lf?1:d==jf?23:18)+" "),b+=e;c+="\n"+b}return c}l.ob=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function He(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,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],t=Ka(n,k,a.ob);0>t&&n.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({cd:b,C:c,Cb:d,T:e,mb:f})}function rg(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.C>>>0,h=f.Cb;if(e>=g&&e<g+h){e=Ka(f.mb,[e-g],a.ob);0<=e?sg(a,b,e,d):c&&(e=~e,sg(a,b,e-1,d),sg(a,b,e,d));break}}return d}
function sg(a,b,c,d){var e={},f=a.F[b].mb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function tg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.j("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=Qe(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function ug(a,b,c){var d=null;if(b=df(a,b)){var e=rg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.C-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+P(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.C)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+P(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function uf(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=Qe(a,b);if(void 0===g)return;b=a.ab(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case hf:h.A=
g%Tb;$e(a.L,h.A);break;case lf:f=65536;break;case mf:f=32768;break;case nf:f=131072;break;case of:f=32;break;case pf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);O(a.G);a.j("updated registers:")}}a.j(qg(a,e));c&&($e(a.L,d.A),vf(a,Z(a,a.L)))}}function vg(a,b){b=Ja(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ue(a,null,c[2].charCodeAt(0)):Qe(a,b,!0)}
function wg(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=Se(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;db(c,function(){return Ob(a,!0)&&tc(a,e,d,!1)},function(){a.ea&&a.ea.stop();O(a.G,-1);Ob(a,!1)})}}
function vf(a,b,c,d){if(b=df(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Se(a,c.substr(1)),null!=c&&(d=c);else{d=df(a,c);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.N?a.B:null,g=null!=f?"cycles":null,h=rg(a,b),k=b.C;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);h=a.ba;m=b;h.C=m.C;h.Oa=m.Oa;h.fa=m.fa;h.ca=m.ca;a.j(xf(a,b,g,f));e-=b.C-k;c++}}}
function pg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(tf+b):(a.P&&(a.j("ended assemble at "+Z(a,a.ba)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Mb(a)&&0<b.length){a.P&&(b="a "+Z(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),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var t=df(a,
g[1],a.ba);if(t){var C=g[2];if(void 0==C)a.j("begin assemble at "+Z(a,t)),a.P=!0,O(a.G);else{g.shift();g.shift();g.shift();var fa,vc=g.join(""),B=-1,wc,sb,Cd=C.toUpperCase(),Dd;for(Dd in lg)if(sb=lg[Dd],Cd==jg[sb]){Cd=jg[kg];vc=P(a,+Dd)+","+vc;break}for(var yf in dg){var Ta;wc=+yf;var zf=dg[yf];switch(wc){case 32512:Ta=fg;break;case 32256:Ta=gg;break;case 29248:Ta=hg;break;default:Ta=[""]}var Af,Ed;for(Ed in zf){sb=zf[Ed];for(var Ua=0;Ua<Ta.length;Ua++){var Fd=Ta[Ua];"S"==Fd&&sb>ig&&(Fd="B");if(Cd==
jg[sb]+Fd){Af=29248!=wc?Ua:(Ua&3)<<1|(Ua&12)<<2;B=(Ed|Af<<6)*Zb;break}}if(0<=B)break}if(0<=B)break}if(0<=B)if(vc)for(var Gd=vc.split(","),Va=0;Va<Gd.length;Va++){var N=Gd[Va].trim();if(N){if(1<Va){a.j("too many operands: "+N);B=-1;break}var xc=N.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!xc){a.j("unknown operand: "+N);B=-1;break}N=xc[2];Va&&(N=N.replace(/(^|[^0-9])\./g,"$1"+Z(a,t)));var L=Qe(a,N);if(void 0==L){B=-1;break}if(!Va&&1<Gd.length)if(28700==wc){if(0>L||127<L){a.j("device code out of range: "+
N);B=-1;break}B+=L*$b}else{if(0>L||15<L){a.j("accumulator address out of range: "+N);B=-1;break}B+=L<<23}else{if(0>L||262143<L){a.j("memory address out of range: "+N);B=-1;break}B+=L;if(N=xc[3]){L=Qe(a,N);if(void 0==L){B=-1;break}if(0>L||15<L){a.j("memory index out of range: "+N);B=-1;break}B+=L<<18}xc[1]&&(B+=4194304)}}}else a.j("missing operand(s)"),B=-1;else a.j("unknown instruction: "+C);fa=B;0<=fa&&(a.gb(t,fa),a.j(xf(a,t)))}}break;case "b":a:{var Yg=g[0],Wa=g[1],Zg=b;if("?"==Wa)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 Ca=Yg.charAt(1);if("l"==Ca){var Hd;Hd=0+og(a,a.b);Hd+=og(a,a.M);(Hd+=og(a,a.J))||a.j("no breakpoints")}else if("n"==Ca){var Bf=+Wa||0;Wa&&(a.ka=Bf);a.j("break after "+Bf+" instruction(s)")}else if(void 0===Wa)a.j("missing breakpoint address");else{var T=W();
if("*"!=Wa&&(T=df(a,Wa,a.L),!T))break a;"c"==Ca?null==T.C?(Xe(a),a.j("all breakpoints cleared")):mg(a,a.b,T)||mg(a,a.M,T)||mg(a,a.J,T)||a.j("breakpoint missing: "+Z(a,T)):null!=T.C&&(ef(a,T,Zg),"p"==Ca?a.Da(a.b,T):"r"==Ca?a.Da(a.M,T):"w"==Ca?a.Da(a.J,T):a.j("unknown breakpoint command: "+Ca))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Xa,Ya=g[0],ga=g[1],ta=g[2],$g=g[3];if("?"==ga){var Za="";for(Xa in K)a.qa[Xa]&&(Za&&(Za+=","),Za+=Xa);Za+=",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");Za.length&&a.j("dump extension commands:\n\t"+Za)}else if("state"==ga){var Id=xg(a.G,!0);"console"==ta?console.log(Id):(a.oa&&(a.oa.value=""),Id&&a.j(Id))}else if("symbols"==ga)for(var Jd=0;Jd<a.F.length;Jd++){var Kd=a.F[Jd],$a;for($a in Kd.T)if("."!=$a.charAt(0)){var Cf=Kd.T[$a].o;if(void 0!==Cf){var Df=Kd.T[$a].l;Df&&($a=Df);
a.j(P(a,Cf)+" "+$a)}}}else{if("d"==Ya){for(Xa in K)if(g[1]==Xa){var Ef=a.qa[Xa];Ef?(g.shift(),g.shift(),Ef(g)):a.j("no dump registered for "+ga);break a}ga||(Ya=a.Ba||"dw")}else a.Ba=Ya;if("dh"==Ya){var Ff=ga,Gf=ta,Hf="",If=0,ba=a.R,ha=a.f;if(ha.length){var X=+Ff||a.sa,ub=+Gf||10;isNaN(X)?X=ub:Hf="more ";X>ha.length&&(a.j("note: only "+ha.length+" available"),X=ha.length);ba-=X;0>ba&&(null==ha[ha.length-1].C?(X=ba+X,ba=0):ba+=ha.length);var Ld=[];"call"==Gf&&(ub=1E5,Ld=["CALL"]);for(void 0!==Ff&&
a.j(X+" instructions earlier:");0<ub&&ba!=a.R;){var Jf=ha[ba++];if(null==Jf.C)break;var vb=W(Jf.C),ah=X--,Kf=xf(a,vb,"history",ah);(!Ld.length||0<=Kf.indexOf(Ld[0]))&&a.j(Kf);vb.Za&&(ba+=vb.Za,ub-=vb.Za,X-=vb.Za);ba>=ha.length&&(ba=0);a.sa=X;If++;ub--}}If||(a.j("no "+Hf+"history available"),a.sa=void 0)}else{var ab=df(a,ga,a.ja);if(ab){var Da=0,Lf="ds"==Ya;if(ta){if("l"==ta.charAt(0))ta=ta.substr(1)||$g,Da=Se(a,ta);else{var Mf=df(a,ta);Mf&&(Da=Mf.C-ab.C)}0>Da&&(Da=0);65536<Da&&(Da=65536)}var bh=a.ca;
ab.ca&&(a.ca=ab.ca);for(var Nf="db"==Ya?1:2,Md=Da||32,Nd=1==Nf?2:4,ch=(Md+Nd-1)/Nd|0||1,Ea="";ch--&&0<Md;){for(var Fa="",Of="",ga=Z(a,ab),Pf=Nd;0<Pf--&&0<Md--;){var yc=a.ya(ab,1);Lf?(Fa&&(Fa+=","),Fa+=yc):(Fa+=ff(yc),Fa+=" ");for(var Qf=0;1==Nf&&6>Qf;Qf++)Of+=String.fromCharCode((yc%64|0)+32),yc/=64}Ea&&(Ea+="\n");Ea=Lf?Ea+(Fa+","):Ea+(ga+": "+Fa+(0>Pf?" "+Of:""))}Ea&&a.j(Ea);a.ca=bh}}}}break;case "e":if("else"==g[0])break;var Rf,Sf,Tf=g[0],Od=g[1];"e"==Tf||"ew"==Tf?(Rf=a.ya,Sf=a.gb):Od=null;if(null==
Od)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var zc=df(a,Od,a.ja);if(zc)for(var Ac=2;Ac<g.length;Ac++){var Pd=Qe(a,g[Ac]);if(void 0===Pd){a.j("unknown value: "+g[Ac]);break}a.j("changing "+Z(a,zc)+" from "+ff(Rf.call(a,zc))+" to "+ff(Pd));Sf.call(a,zc,Pd,1)}}break;case "g":a:{var Uf=g[1],dh=b;if(void 0!==Uf){var Qd=df(a,Uf);if(!Qd)break a;ef(a,Qd,dh);a.Da(a.b,Qd,!0)}rf(a,!0,c)}break;case "h":a.w.K?(c||a.j("halting"),a.V()):Nb(a,!0)||c||a.j("already halted");
break;case "i":if("if"==g[0]){var Rd;var wb=b.substr(2),wb=Ja(wb);Qe(a,wb)?(c||a.j("true: "+wb),Rd=!0):(c||a.j("false: "+wb),Rd=!1);Rd||(d=!1);break}f=!0;break;case "k":var eh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Sd=0,Td=W(),xb=W();for(a.j("stack trace for "+Z(a,xb));10>Sd;){for(var Ga=null,fh=256;65536>xb.C>>>0;){Td.C=a.ya(xb,2);if(null==xb.C||!fh--)break;if(!(Td.C&1)){for(var gh=a,Bc=Td,Vf=null,yb=Bc.C,Wf=yb,
Ud=1;6>=Ud&&yb;Ud++){if(2<Ud){Bc.C=yb;var Cc=xf(gh,Bc);if(0<=Cc.indexOf("JSR")){var Xf=Cc.indexOf(" ");if(yb+(Cc.indexOf(" ",Xf+1)-Xf-1)/2==Wf){Vf=Cc;break}}}yb-=2}Bc.C=Wf;if(Ga=Vf)break}}if(!Ga||null==Ga)break;var Yf=null;if("ks"==eh){var Zf=Ga.match(/[0-9A-F]+$/);Zf&&(Yf=ug(a,Zf[0]))}Ga=Ia(Ga,50)+" ;"+(Yf||"stack="+Z(a,xb));a.j(Ga);Sd++}Sd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){ug(a,g[1],!0);break}f=!0;break;case "m":a:{var ia,ja=null,D=g[1];"?"==D&&(D=void 0);if(void 0!==
D){var ua=0;if("all"==D)ua=1879046143,D=null;else if("on"==D)ja=!0,D=null;else if("off"==D)ja=!1,D=null;else{"keys"==D&&(D="key");"kbd"==D&&(D="keyboard");for(ia in K)if(D==ia){ua=K[ia];ja=!!(a.X&ua);break}if(!ua){a.j("unknown message category: "+D);break a}}if(ua)if("on"==g[2])a.X|=ua,ja=!0;else if("off"==g[2]&&(a.X&=~ua,ja=!1,1073741824==ua)){for(var $f=1E3<=a.O.length?a.O.length-1E3:0;$f<a.O.length;)a.j(a.O[$f++]);a.O=[]}}var hh=0,zb="";for(ia in K)if(!D||D==ia){var ih=!!(a.X&K[ia]);if(null===
ja||ja==ih)zb&&(zb+=","),++hh%10||(zb+="\n\t"),"key"==ia&&(ia="keys"),zb+=ia}void 0===D&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==ja?ja?"messages on: ":"messages off: ":"message categories:\n\t")+(zb||"none"));Ye(a)}break;case "p":if("print"==g[0]){vg(a,b.substr(5));break}var ag=g[0],bg="p"==ag?0:"pr"==ag?1:-1;if("?"==g[1]||0>bg)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");else if(a.N)a.j("step in progress");
else{var cg=W(a.v.A);a.ya(cg);a.N?(a.Da(a.b,cg,!0),rf(a)||(a.G&&od(a.G),a.N=0)):wg(a,bg?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}uf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Ab=+g[2];if(8==Ab||10==Ab||16==Ab)a.ca=Ab;else{a.j("invalid base: "+Ab);break}}a.j("default base: "+a.ca);break;case "cs":var Bb;void 0!==g[3]&&(Bb=+g[3]);switch(g[2]){case "int":a.v.ia=Bb;break;case "start":a.v.va=Bb;break;case "stop":a.v.ka=Bb;break;default:a.j("unknown cs option");break a}void 0!==
Bb&&gd(a.v);a.j("checksums "+(a.v.w.Ea?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ld(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.aa.toFixed(2)+"Mhz")+" ("+a.v.ba+"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":wg(a,g[0],g[1]);break;case "u":vf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){tg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Rb||"PDP10")+" version 1.34.2 ("+a.v.jb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){vg(a,b.substr(1));break}var Vd="commands:",Wd;for(Wd in yg)Vd+="\n"+Ia(Wd,9)+yg[Wd];xd(a)||(Vd+="\nnote: history disabled if no exec breakpoints");a.j(Vd);break;default:f=!0}f&&(a.j("unknown command: "+
b),d=!1)}}catch(eg){a.j("debugger error: "+(eg.stack||eg.message)),d=!1}return d}function jd(a,b,c){b=Oe(a,b,c);for(var d in b)if(!pg(a,b[+d]))return!1;return!0}
var yg={"?":"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"},ig=20,kg=85,jg=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV".split(" "),
hf=0,jf=1,kf=2,lf=3,mf=4,nf=5,of=6,pf=7,gf="PC RA EA C0 C1 OV ND PD".split(" "),zg={},dg=(zg[28672]={0:101},zg[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:kg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},zg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:ig,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},zg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},zg[29248]={24576:79,24640:80,25088:81,25152:82},zg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},zg),fg=["","I","M","S"],gg=" L E LE A GE N G".split(" "),hg="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),lg={8:102,4:103,2:104,6:105,1:106},qf=1E3,tf=">> ";gb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new We(d);Eb(d,c)}});
function Ag(a,b,c){u.call(this,"Computer",a,33554432);this.w.U=!1;this.R=null;Bg(this,b);this.O=ed(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.L=this.W=!1;this.J=this.B=null;this.S=this.P=!1;this.ba=ed(this,"url")||"";(Math.random()+.1).toString(36);this.f=Cg(this);if(this.v=Db("CPU",this.id)){this.D=Db("Debugger",this.id);this.H=new Ic({id:this.La+".bus",busWidth:this.aa},this.v,this.D);var d,e=tb(this.id);if((this.u=Db("Panel",this.id))&&this.u.oa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.oa=this.u.oa;this.j(Rb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.xa&&d.xa(this,this.H,this.v,this.D);b=null;d=ed(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=ed(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.L=!0,this.b=Dg),this.b&&(this.J=new M(this,"1.34.2"),Eg(this.J)?b=null:
delete this.J);!b&&this.b&&(b=Fg(this))&&(this.L=!0);if(b){var g=this;Ma(b,null,!0,function(a,b,c){c?(g.F=null,g.L=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ja(b):"")+")")):(g.M=b,g.W=!0);z(g)})}else z(this);this.I.power||(this.O=!0);!c&&this.O&&Gg(this,this.Ga)}else r("Unable to find CPU component")}p(Ag,u);function Bg(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 ed(a,b,c,d){var e=b.toLowerCase(),e=bb(b)||bb(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 Gg(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Mb(f)){Mb(f,function(){Gg(a,b,c)});return}}b.call(a,c)}
function Hg(a,b){var c=new M(a,"1.34.2",Ig);if(Eg(c)&&Jg(c)){var d=c.get(Kg),e=b?b.get(Kg):"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=Ag.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?Lg:Dg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.J||new M(this,"1.34.2");if(a==Mg)b=!0;else if(a>Dg){if(Eg(d,this.M)){this.B=new M(this,"1.34.2",Ng);Eg(this.B)&&(Og(this,d),a=Pg,Qg(this.B));this.B.set(Kg,La());Rg(this.B);var e=this.b&&!this.L;if(a==Lg||rb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Jg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Eg(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(Sg,""),this.f=null)):this.j(f+": "+g),Qg(d),Eg(d)?(c=Jg(d),e=!0):c=!1))}e&&Hg(this,c?d:null)}else a==Pg&&d.clear()}else Hg(this);delete this.M;delete this.J}e=tb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Tg(this,g,d,b,c));b=[d,a,c];a!=Mg?Gg(this,this.pb,b):this.pb(b)}};
function Tg(a,b,c,d,e){if(!b.w.U){b.w.U=!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.pa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Dg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.ib){var g=b.ib.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.pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.w.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.v&&(Tg(this,this.v,b,c,a),O(this,-2),this.v.Z());this.P&&(Og(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.A=0};
function Og(a,b){if(rb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ma("http://www.pcjs.org/api/v1/report",d,!0)}}
function xg(a,b,c){var d,e="none";if(a.A)return null;a.A--;var f=new M(a,"1.34.2"),g=new M(a,"1.34.2",Ig),h=La();g.set(Kg,h);f.set(Kg,h);f.set(Ug,"1.34.2");f.set(Vg,window?window.location.href:null);f.set(Wg,window?window.navigator.userAgent:"");a.v&&a.v.ga&&(c&&(b&&(a.v.w.Z=a.v.w.K),a.v.V()),d=a.v.ga(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.w.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k<h.length;k++){var m=h[k];m.w.U&&(m.ga&&(d=m.ga(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.w.U=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Xg(a,a.f,f.toString()),Rg(g)&&Rg(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==jh),d&&f.clear(h)):e=f.toString());c&&(a.w.U=!1,b=a.I.power)&&(b.textContent="Power");a.A=0;return e}
l.reset=function(){this.w.reset=!0;this.H&&this.H.reset&&(Qb(this,"Resetting "+this.H.type),this.H.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.w.reset=!1;O(this,-1)};l.start=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}O(this,-1)};
l.stop=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}O(this,-1)};
function O(a,b){if(a.v){var c=a.v,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Ta+=d))&&(e.textContent=c.w.K?c.W.toFixed(2)+"Mhz":"Stopped",c.Ta=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.w.K;d=!!(a.v.B&8);if(0>=b||60<=(a.L+=b)){e=a.v.A;if(a.I.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?wa(e,void 0):q(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.f=a.v.A:0<b&&c&&!d&&(a.f=a.v.qa);kc(a,a.f);ec(a,a.A)}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.A||(d.w.U?xg(d,!1,!0):Gg(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.w.U&&!d.A)if(d.b&&!d.F){var a=rb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");xg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(Dg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.I[b]=
c,c.onclick=function(){var a=Cg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=xg(d,b);b?Xg(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function Cg(a,b){var c=a.f;c||((c=Qa(Sg),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=kh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function kh(a,b){a.f=null;b=Ma(Aa()+"/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(Sg,b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function Fg(a){var b=null;a.f&&(b=Aa()+"/api/v1/user?req=load&user="+a.f+"&state="+lh(a,"1.34.2"));return b}
function Xg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=lh(a,"1.34.2");d.data=c;b=Ma(Aa()+"/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(Sg,""),a.f=null)}}
function od(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var Ng="failsafe",Ig="validate",Kg="timestamp",Ug="version",Vg="url",Wg="browser",Sg="user",Mg=-1,Dg=0,Lg=1,Pg=2,jh=3;gb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new Ag(g,d,!0);Eb(g,f);g.O&&Gg(g,g.Ga)}});
hb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Db("Computer",c.id))&&c.S&&!c.w.U&&c.Ga(Mg)}});hb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Db("Computer",c.id))&&c.w.U&&xg(c,!(!c.b||c.F),!0)}});function M(a,b,c){this.id=a.id;this.f="";this.b={};this.v=this.u=!1;this.key=lh(a,b,c);Qg(this,a.yb)}l=M.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 Eg(a,b){return b?(a.f=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.f=b,a.v=!0):!1}function Jg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.f),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function Rg(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.f};
function Qg(a,b){a.f="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){Qg(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 lh(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 mh=0;
function nh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ma(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):oh(k,a,b,c,d,e,f,g)})}
function oh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(ob(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?ph(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function ph(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ma(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],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[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);ph(a,b,c)}})}else c(a,null)}
function qh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&y(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);m&&(--mh||kb(!0));m=!1}var h,k,m=!0;mh++;pb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=n:C.appendChild(document.createTextNode(n));t.appendChild(C)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?nh(d,null,a,null,!1,f,function(a,e){e?(ob(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--mh||kb(!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),--mh||
kb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?nh(c,b,a,e,!0,f,n):oh(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(fa){g(fa.message)}return m}window.embedPDP10=function(a,b,c,d){kb(!1);return qh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){kb(!1);return qh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return Db(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Gb[a]){for(var c=!0,d=Gb,e=a,f=b.length,g=[],h=[],k="",m=null,n=0;n<f;n++){var t=b[n];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;Fb(a)||(c=!1)}return c};window.enableEvents=kb;window.sendEvent=mb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map

View file

@ -34,7 +34,7 @@ ha("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infi
var ia=Math.pow(2,36),ja=Math.pow(2,35),q={Bb:0,Ua:1,Db:2,Eb:3,Fb:4,Gb:5,Hb:6,Ib:7,Na:8,Jb:9,Va:10,Kb:11,Lb:12,Wa:13,Mb:14,Nb:15,Ob:16,Pb:17,Qb:18,Rb:19,Sb:20,Tb:21,Ub:22,Vb:23,Wb:24,Xb:25,Yb:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ma:65,Ab:66,Cb:67,Zb:68,E:69,$b:70,ac:71,bc:72,cc:73,dc:74,ec:75,fc:76,gc:77,hc:78,ic:79,jc:80,Q:81,
kc:82,lc:83,mc:84,nc:85,oc:86,pc:87,qc:88,rc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,sc:97,tc:98,uc:99,d:100,e:101,vc:102,wc:103,xc:104,yc:105,zc:106,k:107,Ac:108,Bc:109,n:110,Cc:111,p:112,q:113,r:114,Dc:115,t:116,Ec:117,Fc:118,Gc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Xa:127};
function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);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 la(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ka(a,8,b,"")}function ma(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ka(a,16,b,c?"0x":"")}function na(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 oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(){var a=qa();return-1!==a.indexOf("pcjs.org",a.length-8)}function ra(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(){var a=qa();return-1!==a.indexOf("pcjs.org",a.length-8)}function ra(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ta(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function va(){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 r(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 l="",p;for(p in b)b.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(b[p]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}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}
@ -66,9 +66,9 @@ k.restore=function(a){if(a=a[0])mb(this,this.b=a[0]),gb(this,this.j=a[1]),nb(thi
k.cb=function(a,b,c){if(hb(this,b)){if(c){var d=this;setTimeout(function(){ib(d,b);a&&a()},+c);return!1}ib(this,b)}return!0};
k.ub=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.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)),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 nb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,pb(this,a,c[1]),!0):!1};k.vb=function(a){return hb(this,a)?(ib(this,a),!0):!1};function hb(a,b){var c=a.a[b];return c?(pb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=qb&&(a.K=b==rb,a.L=b==sb),!0):!1}function ib(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(pb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.lb=function(a){a||this.i.h.A||(this.i.o=this.b%Ya,this.a[tb]&&this.a[tb][1]&&ub(this.i))};k.mb=function(){};k.gb=function(a){a||R(this.i)};k.eb=function(a){if(!a&&!this.i.h.A)if(this.a[tb]&&this.a[tb][1])ub(this.i);else{a=this.v;var b;if(b=a)a.h.va&&(a.h.Ha=!0),b=!a.h.va;if(b)Wa(a,!0),a.b(0,null),Wa(a,!1);else try{var c=this.i.Aa(1);0<c&&(vb(this.i,c),wb(this.i,c,!0),xb(this.i,c))}catch(d){"number"!=typeof d&&(c=this.i,a=d.stack||d.message,c.h.error=!0,c.F(a))}this.stop();this.u&&S(this.u)}};
k.lb=function(a){a||this.i.h.A||(this.i.j=this.b%Ya,this.a[tb]&&this.a[tb][1]&&ub(this.i))};k.mb=function(){};k.gb=function(a){a||R(this.i)};k.eb=function(a){if(!a&&!this.i.h.A)if(this.a[tb]&&this.a[tb][1])ub(this.i);else{a=this.v;var b;if(b=a)a.h.va&&(a.h.Ha=!0),b=!a.h.va;if(b)Wa(a,!0),a.b(0,null),Wa(a,!1);else try{var c=this.i.Aa(1);0<c&&(vb(this.i,c),wb(this.i,c,!0),xb(this.i,c))}catch(d){"number"!=typeof d&&(c=this.i,a=d.stack||d.message,c.h.error=!0,c.F(a))}this.stop();this.u&&S(this.u)}};
k.fb=function(a){a&&!this.i.h.A&&(this.K&&yb(this),a=gb(this,this.j=this.g),this.N==fb?zb(this.s,this.b,a):this.i.f(this.b,a))};k.hb=function(a){if(!a&&!this.i.h.A){this.L&&yb(this);if(this.N==fb){a=this.s;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.j++;b=c.m(b&16383,b);a.j--;a=b}else a=this.i.c(this.b);gb(this,this.j=a)}};k.jb=function(a){a||this.i.h.A||mb(this,this.g)};k.ib=function(a){a?(this.o=!0,jb(this,!0)):(this.o=!1,jb(this),nb(this,0))};k.kb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
function yb(a){var b=1,c=a.s.g;a.a[qb]&&a.a[qb][1]||(b=-b);mb(a,a.b&~c|a.b+b&c)}function mb(a,b){a.b=b&a.s.g;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}}function gb(a,b){a.w=b%N;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}return a.w}function nb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;kb(a);return!0}k.stop=function(){mb(this,this.i.o)};
function yb(a){var b=1,c=a.s.g;a.a[qb]&&a.a[qb][1]||(b=-b);mb(a,a.b&~c|a.b+b&c)}function mb(a,b){a.b=b&a.s.g;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}}function gb(a,b){a.w=b%N;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}return a.w}function nb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;kb(a);return!0}k.stop=function(){mb(this,this.i.j)};
function lb(){for(var a=F(document,E,"panel"),b=0;b<a.length;b++){var c=a[b],d=C(c),e=Pa(d.id);e||(e=new eb(d,!0));D(e,c)}}var fb=7,rb="DEP",tb="ENABLE",sb="EXAM",qb="STEP";u(lb);function Ab(a,b,c){w.call(this,"Bus",a);this.i=b;this.v=c;this.w=+a.busWidth||18;this.o=1<<this.w;this.g=this.o-1;this.b=Math.log2(16384);this.l=this.o/16384|0;this.j=0;this.a=[];a=new T(this);Bb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;G(this)}n(Ab,w);k=Ab.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new Q(this);a.set(0,Cb(this));return a.data()};k.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++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){t("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Db(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.za+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.za){p=h.size-(e-l);p>f&&(p=f);h.za=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return Eb(Fb,e,f)}e=new T(a,e,p,16384,d);Bb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Gb[d]+" at "+la(b)),!0):Eb(Hb,b,c)}function zb(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.j++;d.g(c,b&16383,b);a.j--}
@ -88,87 +88,88 @@ function vb(a,b){for(var c=a.G.length-1;0<=c;c--){var d=a.G[c];0>d[0]||(d[0]-=b,
k.sb=function(){if(this.h.A){this.sa>=this.Fa&&Zb(this,!0);this.ea=0;this.ga=Na();if(this.I){var a=this.ga-this.I;a>this.Ea&&(this.B+=a,this.B>this.ga&&(this.B=this.ga))}try{do{for(var b,c=this.h.wa?1:this.ja,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Aa(b)}catch(f){if("number"!=typeof f)throw f;}b=bc(this,!0);this.ea+=b;this.C+=b;xb(this,b);vb(this,b);this.da-=b;if(0>=this.da){this.da+=this.ja;++this.Ga>=cc&&(this.u&&S(this.u,void 0),this.Ga=0);break}}while(this.h.A)}catch(f){R(this);
this.u&&this.u.stop(Na(),Xb(this));a=f.stack||f.message;this.h.error=!0;this.F(a);return}if(this.h.A){a=setTimeout;b=this.Qa;this.I=Na();c=this.Ea;this.ea&&(c=Math.round(c*this.ea/this.ja));c-=this.I-this.ga;if(d=this.I-this.B)this.P=Math.round(this.C/(10*d))/100,864E5<=d&&(this.N=0,Yb(this));if(0>c||this.P<this.W)-1E3>c&&(this.B-=c),c=0;this.sa+=this.ea;this.I+=c;a(b,c)}}};
function ub(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.A)a.M(a.toString()+" busy");else{Yb(a);a.h.A=!0;a.h.Ka=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.B,Xb(a));a.v||a.status("Started");setTimeout(a.Qa,0)}}k.Aa=function(){return 0};function R(a){var b=!1;if(a.h.A){bc(a);wb(a,a.C);a.C=0;a.h.A=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Na(),Xb(a));b=!0;a.v||a.status("Stopped")}a.h.complete=void 0;return b}var $b=30,cc=15,Tb=["power","reset"];
function dc(a){var b=+a.model||1001;Sb.call(this,a,1E6);this.Ya=b;this.na=+a.addrReset||0;this.Za=ec.bind(this);this.a=U.bind(this);this.fa=null;this.Oa=[];this.h.complete=!1}n(dc,Sb);k=dc.prototype;k.reset=function(){this.status("Model "+this.Ya);this.h.A&&R(this);this.b=this.w=this.ua=0;this.o=this.Ca=this.na;this.l=-1;this.ta=this.g=0;this.la=this.o;this.j=0;this.c=this.ob;this.f=this.zb;this.fa=null;Vb(this);this.h.error=!1;Sb.prototype.reset.call(this)};k.Sa=function(){return 0};
k.save=function(){var a=new Q(this);a.set(0,[this.b,this.w,this.ua,this.o,this.l,this.g,this.j,this.Ca,this.la,this.na]);a.set(1,[]);a.set(2,[this.N,this.ca,this.h.J]);a.set(3,fc(this));a.set(4,ac(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.w=b.next().value;this.ua=b.next().value;this.o=b.next().value;this.l=b.next().value;this.g=b.next().value;this.j=b.next().value;this.Ca=b.next().value;this.la=b.next().value;this.na=b.next().value;b=a[2];this.N=b[0];Yb(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Oa.length;d++){var e=this.Oa[d];if(e.wb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.fa,this.fa=d)}a=a[4];for(b=0;b<this.G.length&&b<a.length;b++)this.G[b][0]=a[b];return!0};function gc(a){a.o=(a.o+-1)%Ya}k.abs=function(a){a>O&&(a!=$a?a=ab-a:this.g|=163840);return a};function hc(a,b){b?b==$a?a.g|=163840:b=ab-b:a.g|=98304;return b}function fc(a){var b=[];for(a=a.fa;a;)b.push(a.wb),a=a.next;return b}k.ob=function(a){var b=this.s;a=this.la=a;return b.a[(a&b.g)>>>b.b].c(a&16383,a)};k.zb=function(a,b){var c=this.s;a=this.la=a;c.a[(a&c.g)>>>c.b].f(b,a&16383,a);return b};
k.Aa=function(a){this.h.complete=!0;var b=a?this.h.Ka?0:1:-1;this.h.Ka=!1;this.K=this.L=a;this.j=this.j&-5|0;do{if(a=this.j)if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&this.v.j(this.o,b)){R(this);break}if(0>b)break}this.j&=15;this.w=this.w&4194304?this.c(this.b):this.ua=this.c(this.Ca=this.o);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.c(a)&Xa;this.w&4194304?a=-1:(this.o=(this.o+1)%Ya,a=this.ua/cb|0);0<=a&&this.Za(a)}while(0<
this.L);return this.h.complete?this.K-this.L:!1===this.h.complete?-1:0};u(function(){for(var a=F(document,E,"cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new dc(d);D(d,c)}});function ec(a){ic[a>>4].call(this,a,a&15)}function V(a){this.a(a)}function jc(){var a=0,b=this.c(this.b),c=b/db&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*db+(d<<24)+(b&16777215);a&&(b=(b+a)%N);this.f(this.b,b)}
function kc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.l=-1}}function lc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%N;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.l=-1}}function mc(a,b){this.f(b,this.c(this.b))}
function nc(a,b){this.f(b,this.b)}function oc(a,b){this.f(this.b,this.c(b))}function pc(a,b){this.f(b,0)}function qc(a,b){this.f(b,M-this.c(b))}function rc(a,b){this.f(b,M)}function sc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,W(a,d,c)+(c-(c&I)))}function tc(a,b){var c=this.c(b);this.f(b,W(a,c,0))}function uc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,W(a,c,b)+(b-(b&I)))}
function vc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&I,a){case 256:d+=I;break;case 384:d+=c>O?I:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function wc(a,b){var c=(this.c(this.b)&I)*J,d=this.c(b);this.f(b,W(a,d,c)+c)}function xc(a,b){var c=this.b*J,d=this.c(b);this.f(b,W(a,d,c)+c)}function yc(a,b){b=(this.c(b)&I)*J;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function zc(a,b){var c=this.c(this.b),d=(c&I)*J,c=W(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
function Ac(a,b){var c=this.c(this.b)&I,d=this.c(b);this.f(b,Bc(a,d,c)+c)}function Cc(a,b){var c=this.c(b);this.f(b,Bc(a,c,this.b)+this.b)}function Dc(a,b){b=this.c(b)&I;var c=this.c(this.b);this.f(this.b,Bc(a,c,b)+b)}function Ec(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=I,a){case 256:d+=I*J;break;case 384:d+=c>Za?I*J:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Fc(a,b){var c=this.c(this.b)/J|0,d=this.c(b);this.f(b,Bc(a,d,c)+c)}function Gc(a,b){var c=this.c(b);this.f(b,Bc(a,c,0))}
function Hc(a,b){b=this.c(b)/J|0;var c=this.c(this.b);this.f(this.b,Bc(a,c,b)+b)}function Ic(a,b){var c=this.c(this.b),d=c/J|0,c=Bc(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Jc[a&7].call(this,a,a>>3&127)}function Kc(){}function U(a){this.M("undefined opcode: "+la(a));gc(this);R(this)}function Lc(a,b){var c=(a+b)%N;Mc.call(this,a,b,c);return c}function Y(a,b){return((a/P|0)&(b/P|0))*P+((a&b)>>>0)}function Nc(a,b){return((a/P|0)^(b/P|0))*P+((a^b)>>>0)}
function Oc(a,b){return(~((a/P|0)^(b/P|0))&15)*P+(~(a^b)>>>0)}function Z(a,b){return(a/P|0|b/P|0)*P+((a|b)>>>0)}function Pc(a,b){var c=b;b=!1;var d;a>O&&(a=N-a,b=!b);c>O&&(c=N-c,b=!b);if(a<J&&c<J)d=a*c,a=0;else{d=a%J;var e=Math.trunc(a/J);a=c%J;var c=Math.trunc(c/J),f=d*a,g=e*a+Math.trunc(f/J);a=Math.trunc(g/J);g=g%J+d*c;d=g*J+f%J;a+=Math.trunc(g/J)+e*c}b&&(d?(a=M-a,d=N-d):a&&(a=N-a));b=a-a%L;a=2*a%N+Math.trunc(d/L);d=b+d%L;e=a-a%L;b!=e&&(a=b+(a-e),this.g|=131072);this.ta=a;return d}
function Qc(a,b){var c=a-b;0>c&&(c+=N);Mc.call(this,c,b,a);return c}function Mc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Bc(a,b,c){switch(a&384){case 0:b-=b&I;break;case 128:b=0;break;case 256:b=I*J;break;case 384:b=c>Za?I*J:0}return b}function W(a,b,c){switch(a&384){case 0:b&=I;break;case 128:b=0;break;case 256:b=I;break;case 384:b=c>O?I:0}return b}
var ic=[V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},jc,function(a,b){0>this.l&&jc.call(this);kc.call(this,0,b)},kc,function(a,b){0>this.l&&jc.call(this);lc.call(this,0,b)},lc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function dc(a){var b=+a.model||1001;Sb.call(this,a,1E6);this.Ya=b;this.na=+a.addrReset||0;this.Za=ec.bind(this);this.a=U.bind(this);this.fa=null;this.Oa=[];this.h.complete=!1}n(dc,Sb);k=dc.prototype;k.reset=function(){this.status("Model "+this.Ya);this.h.A&&R(this);this.b=this.w=this.ua=0;this.j=this.Ca=this.na;this.o=-1;this.ta=this.g=0;this.la=this.j;this.l=0;this.c=this.ob;this.f=this.zb;this.fa=null;Vb(this);this.h.error=!1;Sb.prototype.reset.call(this)};k.Sa=function(){return 0};
k.save=function(){var a=new Q(this);a.set(0,[this.b,this.w,this.ua,this.j,this.o,this.g,this.l,this.Ca,this.la,this.na]);a.set(1,[]);a.set(2,[this.N,this.ca,this.h.J]);a.set(3,fc(this));a.set(4,ac(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.w=b.next().value;this.ua=b.next().value;this.j=b.next().value;this.o=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ca=b.next().value;this.la=b.next().value;this.na=b.next().value;b=a[2];this.N=b[0];Yb(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Oa.length;d++){var e=this.Oa[d];if(e.wb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.fa,this.fa=d)}a=a[4];for(b=0;b<this.G.length&&b<a.length;b++)this.G[b][0]=a[b];return!0};function gc(a){a.j=(a.j+-1)%Ya}function fc(a){var b=[];for(a=a.fa;a;)b.push(a.wb),a=a.next;return b}k.ob=function(a){var b=this.s;a=this.la=a;return b.a[(a&b.g)>>>b.b].c(a&16383,a)};k.zb=function(a,b){var c=this.s;a=this.la=a;c.a[(a&c.g)>>>c.b].f(b,a&16383,a);return b};
k.Aa=function(a){this.h.complete=!0;var b=a?this.h.Ka?0:1:-1;this.h.Ka=!1;this.K=this.L=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.fa||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.v.j(this.j,b)){R(this);break}if(0>b)break}this.l&=15;this.w=this.w&4194304?this.c(this.b):this.ua=this.c(this.Ca=this.j);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.c(a)&Xa;this.w&4194304?a=-1:(this.j=(this.j+1)%Ya,a=this.ua/cb|0);0<=a&&this.Za(a)}while(0<
this.L);return this.h.complete?this.K-this.L:!1===this.h.complete?-1:0};u(function(){for(var a=F(document,E,"cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new dc(d);D(d,c)}});function ec(a){hc[a>>4].call(this,a,a&15)}function V(a){this.a(a)}function ic(){var a=0,b=this.c(this.b),c=b/db&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*db+(d<<24)+(b&16777215);a&&(b=(b+a)%N);this.f(this.b,b)}
function jc(a,b){a=this.c(this.b);if(0>this.o)this.o=a,this.w=this.b|4194304,gc(this);else{var c=this.o/db&63,d=this.o>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.o=-1}}function kc(a,b){a=this.c(this.b);if(0>this.o)this.o=a,this.w=this.b|4194304,gc(this);else{var c=this.o/db&63,d=this.o>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%N;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.o=-1}}function lc(a,b){this.f(b,this.c(this.b))}
function mc(a,b){this.f(b,this.b)}function nc(a,b){this.f(this.b,this.c(b))}function oc(a,b){this.f(b,0)}function pc(a,b){this.f(b,M-this.c(b))}function qc(a,b){this.f(b,M)}function rc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,W(a,d,c)+(c-(c&I)))}function sc(a,b){var c=this.c(b);this.f(b,W(a,c,0))}function tc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,W(a,c,b)+(b-(b&I)))}
function uc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&I,a){case 256:d+=I;break;case 384:d+=c>O?I:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function vc(a,b){var c=(this.c(this.b)&I)*J,d=this.c(b);this.f(b,W(a,d,c)+c)}function wc(a,b){var c=this.b*J,d=this.c(b);this.f(b,W(a,d,c)+c)}function xc(a,b){b=(this.c(b)&I)*J;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function yc(a,b){var c=this.c(this.b),d=(c&I)*J,c=W(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
function zc(a,b){var c=this.c(this.b)&I,d=this.c(b);this.f(b,Ac(a,d,c)+c)}function Bc(a,b){var c=this.c(b);this.f(b,Ac(a,c,this.b)+this.b)}function Cc(a,b){b=this.c(b)&I;var c=this.c(this.b);this.f(this.b,Ac(a,c,b)+b)}function Dc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=I,a){case 256:d+=I*J;break;case 384:d+=c>Za?I*J:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Ec(a,b){var c=this.c(this.b)/J|0,d=this.c(b);this.f(b,Ac(a,d,c)+c)}function Fc(a,b){var c=this.c(b);this.f(b,Ac(a,c,0))}
function Gc(a,b){b=this.c(b)/J|0;var c=this.c(this.b);this.f(this.b,Ac(a,c,b)+b)}function Hc(a,b){var c=this.c(this.b),d=c/J|0,c=Ac(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Ic[a&7].call(this,a,a>>3&127)}function Jc(){}function U(a){this.M("undefined opcode: "+la(a));gc(this);R(this)}function Kc(a){a>O&&(a!=$a?a=ab-a:this.g|=163840);return a}function Lc(a,b){var c=(a+b)%N;Mc.call(this,a,b,c);return c}function Y(a,b){return((a/P|0)&(b/P|0))*P+((a&b)>>>0)}
function Nc(a,b){return((a/P|0)^(b/P|0))*P+((a^b)>>>0)}function Oc(a,b){return(~((a/P|0)^(b/P|0))&15)*P+(~(a^b)>>>0)}function Z(a,b){return(a/P|0|b/P|0)*P+((a|b)>>>0)}
function Pc(a,b){var c=b;b=!1;var d;a>O&&(a=N-a,b=!b);c>O&&(c=N-c,b=!b);if(a<J&&c<J)d=a*c,a=0;else{d=a%J;var e=Math.trunc(a/J);a=c%J;var c=Math.trunc(c/J),f=d*a,g=e*a+Math.trunc(f/J);a=Math.trunc(g/J);g=g%J+d*c;d=g*J+f%J;a+=Math.trunc(g/J)+e*c}b&&(d?(a=M-a,d=N-d):a&&(a=N-a));b=a-a%L;a=2*a%N+Math.trunc(d/L);d=b+d%L;e=a-a%L;b!=e&&(a=b+(a-e),this.g|=131072);this.ta=a;return d}function Qc(a){a?a==$a?this.g|=163840:a=ab-a:this.g|=98304;return a}
function Rc(a,b){var c=a-b;0>c&&(c+=N);Mc.call(this,c,b,a);return c}function Mc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Ac(a,b,c){switch(a&384){case 0:b-=b&I;break;case 128:b=0;break;case 256:b=I*J;break;case 384:b=c>Za?I*J:0}return b}function W(a,b,c){switch(a&384){case 0:b&=I;break;case 128:b=0;break;case 256:b=I;break;case 384:b=c>O?I:0}return b}
var hc=[V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},ic,function(a,b){0>this.o&&ic.call(this);jc.call(this,0,b)},jc,function(a,b){0>this.o&&ic.call(this);kc.call(this,0,b)},kc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},mc,nc,oc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/J|0)+a%J*J;this.f(b,a)},function(a,b){this.f(b,this.b*J)},function(a,b){a=this.c(b);a=(a/J|0)+a%J*J;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/J|0)+a%J*J;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,hc(this,this.c(this.b)))},function(a,b){this.f(b,this.b?ab-this.b:0)},function(a,b){this.f(this.b,hc(this,
this.c(b)))},function(a,b){a=hc(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,this.abs(this.c(this.b)))},function(a,b){this.f(b,this.b)},function(a,b){this.f(this.b,this.abs(this.c(b)))},function(a,b){a=this.abs(this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,Pc.call(this,this.c(b),this.c(this.b)));this.f(b+1&15,this.ta)},function(a,b){this.f(b,Pc.call(this,
this.c(b),this.b));this.f(b+1&15,this.ta)},function(a,b){this.f(this.b,Pc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Pc.call(this,this.c(b),this.c(this.b))));this.f(b+1&15,this.ta)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>O?-(N-a):a;0<c?(35<=c?(d=0>d?L:0,c=K):
(d=d*Math.pow(2,c)%L,c=L-Math.pow(2,35-c)),a<=O?a+c>O&&(this.g|=131072):a-c<=O&&(this.g|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+N:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%N+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%N:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a,b){if(a=(this.b<<14>>
14)%256){var c,d=this.c(b),e=this.c(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<L||d>K&&d<M)this.g|=131072;if(71<=a){if(0<e&&e<L||e>K&&e<M)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%L,c=L-Math.pow(2,70-a),f<=O?e+c>O&&(this.g|=131072):e-c<=O&&(this.g|=131072);e=0;f>K&&(d+=L,e+=L)}else d=d*Math.pow(2,a)%L+Math.trunc(e%L/Math.pow(2,35-a)),e=e*Math.pow(2,a)%L,c=L-Math.pow(2,35-a),f<=O?f+c>O&&(this.g|=131072):(f-c<=O&&(this.g|=131072),d+=L,e+=L)}else-36>=a?(e=-72>=a?d>K?M:0:Math.trunc(d%L/Math.pow(2,
-a-35)),d<=K?d=0:(d=M,e+=L)):(c=d>K?N-Math.pow(2,36+a):0,e=Math.trunc(e%L/Math.pow(2,-a))+d%L*Math.pow(2,35+a)%L,d=Math.trunc(d/Math.pow(2,-a))+c,d>K&&(e+=L));this.f(b,d);this.f(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%N+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%N+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%N+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%N+Math.trunc(d/Math.pow(2,72-a)));this.f(b,
c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%N,d=0):(c=c*Math.pow(2,a)%N+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%N):-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)%N,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},U,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,a)},function(a,b){a=!1;for(var c=this.c(b),d=c/
J|0,c=c&I;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&I,c=c+1&I,this.h.A||(this.f(b,d*J+c),a||gc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},U,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&I,this.c(this.b));a>=N&&(a-=N);a/J|0||(this.g|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&I);this.f(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=N);(a/J|0)==I&&(this.g|=262144);this.f(b,
a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,Lc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Lc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Lc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Qc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Qc.call(this,this.c(b),this.b))},
function(a,b){this.f(this.b,Qc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Qc.call(this,this.c(b),this.c(this.b))))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},lc,mc,nc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/J|0)+a%J*J;this.f(b,a)},function(a,b){this.f(b,this.b*J)},function(a,b){a=this.c(b);a=(a/J|0)+a%J*J;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/J|0)+a%J*J;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,Qc.call(this,this.c(this.b)))},function(a,b){this.f(b,this.b?ab-this.b:0)},function(a,b){this.f(this.b,
Qc.call(this,this.c(b)))},function(a,b){a=Qc.call(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,Kc.call(this,this.c(this.b)))},function(a,b){this.f(b,this.b)},function(a,b){this.f(this.b,Kc.call(this,this.c(b)))},function(a,b){a=Kc.call(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,Pc.call(this,this.c(b),this.c(this.b)));this.f(b+1&15,this.ta)},
function(a,b){this.f(b,Pc.call(this,this.c(b),this.b));this.f(b+1&15,this.ta)},function(a,b){this.f(this.b,Pc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Pc.call(this,this.c(b),this.c(this.b))));this.f(b+1&15,this.ta)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>
O?-(N-a):a;0<c?(35<=c?(d=0>d?L:0,c=K):(d=d*Math.pow(2,c)%L,c=L-Math.pow(2,35-c)),a<=O?a+c>O&&(this.g|=131072):a-c<=O&&(this.g|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+N:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%N+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%N:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},
function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.c(b),e=this.c(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<L||d>K&&d<M)this.g|=131072;if(71<=a){if(0<e&&e<L||e>K&&e<M)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%L,c=L-Math.pow(2,70-a),f<=O?e+c>O&&(this.g|=131072):e-c<=O&&(this.g|=131072);e=0;f>K&&(d+=L,e+=L)}else d=d*Math.pow(2,a)%L+Math.trunc(e%L/Math.pow(2,35-a)),e=e*Math.pow(2,a)%L,c=L-Math.pow(2,35-a),f<=O?f+c>O&&(this.g|=131072):(f-c<=O&&(this.g|=131072),d+=L,e+=L)}else-36>=a?(e=-72>=a?d>
K?M:0:Math.trunc(d%L/Math.pow(2,-a-35)),d<=K?d=0:(d=M,e+=L)):(c=d>K?N-Math.pow(2,36+a):0,e=Math.trunc(e%L/Math.pow(2,-a))+d%L*Math.pow(2,35+a)%L,d=Math.trunc(d/Math.pow(2,-a))+c,d>K&&(e+=L));this.f(b,d);this.f(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%N+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%N+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%N+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%N+Math.trunc(d/
Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%N,d=0):(c=c*Math.pow(2,a)%N+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%N):-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)%N,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},U,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,a)},function(a,b){a=
!1;for(var c=this.c(b),d=c/J|0,c=c&I;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&I,c=c+1&I,this.h.A||(this.f(b,d*J+c),a||gc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,this.j=this.b%Ya)},function(a){this.a(a)},U,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&I,this.c(this.b));a>=N&&(a-=N);a/J|0||(this.g|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&I);this.f(this.b,c);this.b==
b&&(a=c);a-=262145;0>a&&(a+=N);(a/J|0)==I&&(this.g|=262144);this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,(this.g&I)*J+this.j);this.j=this.b%Ya},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,Lc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Lc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Lc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc.call(this,this.c(b),this.c(this.b))))},function(a,
b){this.f(b,Rc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Rc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Rc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Rc.call(this,this.c(b),this.c(this.b))))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},pc,pc,function(){this.f(this.b,0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Y.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y.call(this,M-this.c(b),this.c(this.b)))},function(a,
b){this.f(b,Y.call(this,M-this.c(b),this.b))},function(a,b){this.f(this.b,Y.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,M-this.c(b),this.c(this.b))))},mc,nc,Kc,mc,function(a,b){this.f(b,Y.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Y.call(this,this.c(b),M-this.b))},function(a,b){this.f(this.b,Y.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,this.c(b),M-this.c(this.b))))},Kc,Kc,oc,oc,function(a,
b){this.f(b,Nc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Nc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Nc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Nc.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Z.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Z.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,this.c(b),
this.c(this.b))))},function(a,b){this.f(b,Y.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Y.call(this,M-this.c(b),M-this.b))},function(a,b){this.f(this.b,Y.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,M-this.c(b),M-this.c(this.b))))},function(a,b){this.f(b,Oc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Oc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Oc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,
this.f(b,Oc.call(this,this.c(b),this.c(this.b))))},qc,qc,function(a,b){this.f(this.b,M-this.c(b))},function(a,b){this.f(this.b,this.f(b,M-this.c(b)))},function(a,b){this.f(b,Z.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z.call(this,M-this.c(b),this.b))},function(a,b){this.f(this.b,Z.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,M-this.c(b),this.c(this.b))))},function(a,b){this.f(b,M-this.c(this.b))},function(a,b){this.f(b,M-this.b)},function(){this.f(this.b,
M-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,M-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),M-this.b))},function(a,b){this.f(this.b,Z.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,this.c(b),M-this.c(this.b))))},function(a,b){this.f(b,Z.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,M-this.c(b),M-this.b))},function(a,b){this.f(this.b,
Z.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,M-this.c(b),M-this.c(this.b))))},rc,rc,function(){this.f(this.b,M)},function(a,b){this.f(this.b,this.f(b,M))},sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Cc,Dc,Ec,Fc,Gc,Hc,Ic,Ac,Cc,Dc,Ec,Fc,Gc,Hc,Ic,Ac,Cc,Dc,Ec,Fc,Gc,Hc,Ic,Ac,Cc,Dc,Ec,Fc,Gc,Hc,Ic,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},oc,oc,function(){this.f(this.b,0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Y.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,
Y.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y.call(this,M-this.c(b),this.b))},function(a,b){this.f(this.b,Y.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,M-this.c(b),this.c(this.b))))},lc,mc,Jc,lc,function(a,b){this.f(b,Y.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Y.call(this,this.c(b),M-this.b))},function(a,b){this.f(this.b,Y.call(this,this.c(b),M-this.c(this.b)))},
function(a,b){this.f(this.b,this.f(b,Y.call(this,this.c(b),M-this.c(this.b))))},Jc,Jc,nc,nc,function(a,b){this.f(b,Nc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Nc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Nc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Nc.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Z.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,
Z.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Y.call(this,M-this.c(b),M-this.b))},function(a,b){this.f(this.b,Y.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,M-this.c(b),M-this.c(this.b))))},function(a,b){this.f(b,Oc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Oc.call(this,this.c(b),
this.b))},function(a,b){this.f(this.b,Oc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Oc.call(this,this.c(b),this.c(this.b))))},pc,pc,function(a,b){this.f(this.b,M-this.c(b))},function(a,b){this.f(this.b,this.f(b,M-this.c(b)))},function(a,b){this.f(b,Z.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z.call(this,M-this.c(b),this.b))},function(a,b){this.f(this.b,Z.call(this,M-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,M-
this.c(b),this.c(this.b))))},function(a,b){this.f(b,M-this.c(this.b))},function(a,b){this.f(b,M-this.b)},function(){this.f(this.b,M-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,M-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),M-this.b))},function(a,b){this.f(this.b,Z.call(this,this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,this.c(b),M-this.c(this.b))))},function(a,b){this.f(b,
Z.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,M-this.c(b),M-this.b))},function(a,b){this.f(this.b,Z.call(this,M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,M-this.c(b),M-this.c(this.b))))},qc,qc,function(){this.f(this.b,M)},function(a,b){this.f(this.b,this.f(b,M))},rc,sc,tc,uc,vc,wc,xc,yc,rc,sc,tc,uc,vc,wc,xc,yc,rc,sc,tc,uc,vc,wc,xc,yc,rc,sc,tc,uc,vc,wc,xc,yc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,
zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],Jc=[function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){switch(b){case 0:a=this.c(this.b);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.a(a)}},function(a,b){switch(b){case 0:a=0;this.g&131072&&(a|=8);this.g&262144&&(a|=65536);this.f(this.b,a);break;default:this.a(a)}},function(a){this.a(a)},function(a){this.a(a)}];
function Rc(a){w.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.o=na(this.j);if(this.j){a=this.j;var b=oa(this.o);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(La(c.pa,a,b),(a=wa(a,b))?(c.a=a.H,c.O=a.O):c.j=null);Sc(c)})}}n(Rc,w);
Rc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.v=d;Sc(this)};Rc.prototype.V=function(){this.O&&(this.v&&this.v.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Rc.prototype.R=function(){return!0};
function Sc(a){if(!Va(a)){if(a.j){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+ma(a.a.length,8,!0)+") does not match specified size ("+ma(a.g,8,!0)+")";a.h.error=!0;a.F(b)}else{b=a.l;if(Db(a.s,b,a.g,Lb)){var c;for(c=0;c<a.a.length;c++)zb(a.s,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.g,h=[],l=d.l>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.s;
d=d.g;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}G(a)}}u(function(){for(var a=F(document,E,"rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Rc(d);D(d,c)}});
function Tc(a){w.call(this,"RAM",a);this.O=this.Y=null;this.b=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.j=this.o=!1;this.a=a.file;this.l=na(this.a);if(this.a){a=this.a;var b=oa(this.l);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(La(c.pa,a,b),(a=wa(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Uc(c)})}}n(Tc,w);Tc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.v=d;Uc(this)};Tc.prototype.V=function(a,b){this.O&&(this.v&&this.v.a(this.id,this.b,this.g,this.O),delete this.O);b||this.reset();return!0};Tc.prototype.R=function(){return!0};
function Uc(a){if(a.s&&(!a.j&&a.g&&(Db(a.s,a.b,a.g,1)?a.j=!0:a.g=0),!Va(a))){if(!a.j)t("No RAM allocated");else if(a.a){if(!a.Y)return;Vc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.F('Error loading image "'+a.l+'"')}a.o=!0;G(a)}}
Tc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-ja&&(g+=ia);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.g(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&Vc(this,this.Y,this.T,this.S,this.b,!this.v)}this.o=!1};
function Vc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)zb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(R(a.i),f=!1),null!=d&&(a=a.i,a.na=d,a.o=d%Ya,f?a.h.D?a.h.A||ub(a):a.h.J=!0:a.v&&a.h.D?R(a)||a.u.h.reset||(a.v.g(),S(a.u,-1)):!1===f&&R(a),!a.h.A&&a.ma&&a.ma.stop()));return g}u(function(){for(var a=F(document,E,"ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Tc(d);D(d,c)}});
function Wc(a){w.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=Xc;b&&(void 0===c&&(c="Panel"),(c=B(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Ta,receiveData:this.ya,receiveStatus:this.qb,setConnection:this.tb}}n(Wc,w);k=Wc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case Xc:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Na:q.Xa:46==c?b=q.Na:a.ctrlKey&&c>=q.Ma&&c<=q.$a&&(b=c-(q.Ma-q.Ua));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==q.Wa&&(b=q.Va);d.ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],Ic=[function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){switch(b){case 0:a=this.c(this.b);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.a(a)}},function(a,b){switch(b){case 0:a=0;this.g&131072&&(a|=8);this.g&262144&&(a|=65536);this.f(this.b,a);break;default:this.a(a)}},function(a){this.a(a)},function(a){this.a(a)}];
function Sc(a){w.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.o=na(this.j);if(this.j){a=this.j;var b=oa(this.o);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(La(c.pa,a,b),(a=wa(a,b))?(c.a=a.H,c.O=a.O):c.j=null);Tc(c)})}}n(Sc,w);
Sc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.v=d;Tc(this)};Sc.prototype.V=function(){this.O&&(this.v&&this.v.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Sc.prototype.R=function(){return!0};
function Tc(a){if(!Va(a)){if(a.j){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+ma(a.a.length,8,!0)+") does not match specified size ("+ma(a.g,8,!0)+")";a.h.error=!0;a.F(b)}else{b=a.l;if(Db(a.s,b,a.g,Lb)){var c;for(c=0;c<a.a.length;c++)zb(a.s,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.g,h=[],l=d.l>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.s;
d=d.g;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}G(a)}}u(function(){for(var a=F(document,E,"rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Sc(d);D(d,c)}});
function Uc(a){w.call(this,"RAM",a);this.O=this.Y=null;this.b=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.j=this.o=!1;this.a=a.file;this.l=na(this.a);if(this.a){a=this.a;var b=oa(this.l);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(La(c.pa,a,b),(a=wa(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Vc(c)})}}n(Uc,w);Uc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.v=d;Vc(this)};Uc.prototype.V=function(a,b){this.O&&(this.v&&this.v.a(this.id,this.b,this.g,this.O),delete this.O);b||this.reset();return!0};Uc.prototype.R=function(){return!0};
function Vc(a){if(a.s&&(!a.j&&a.g&&(Db(a.s,a.b,a.g,1)?a.j=!0:a.g=0),!Va(a))){if(!a.j)t("No RAM allocated");else if(a.a){if(!a.Y)return;Wc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.F('Error loading image "'+a.l+'"')}a.o=!0;G(a)}}
Uc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-ja&&(g+=ia);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.g(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&Wc(this,this.Y,this.T,this.S,this.b,!this.v)}this.o=!1};
function Wc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)zb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(R(a.i),f=!1),null!=d&&(a=a.i,a.na=d,a.j=d%Ya,f?a.h.D?a.h.A||ub(a):a.h.J=!0:a.v&&a.h.D?R(a)||a.u.h.reset||(a.v.g(),S(a.u,-1)):!1===f&&R(a),!a.h.A&&a.ma&&a.ma.stop()));return g}u(function(){for(var a=F(document,E,"ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Uc(d);D(d,c)}});
function Xc(a){w.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=Yc;b&&(void 0===c&&(c="Panel"),(c=B(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Ta,receiveData:this.ya,receiveStatus:this.qb,setConnection:this.tb}}n(Xc,w);k=Xc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case Yc:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Na:q.Xa:46==c?b=q.Na:a.ctrlKey&&c>=q.Ma&&c<=q.$a&&(b=c-(q.Ma-q.Ua));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==q.Wa&&(b=q.Va);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};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.i=c;this.v=d;G(this)};
k.Ta=function(a){if(!this.a){var b=Ub(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.oa)return;c=ua(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.pa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Ta(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new Q(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ya=function(a){if("number"==typeof a)this.b.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.b.push(b)}else this.b=this.b.concat(a);return!0};k.qb=function(){};k.tb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var Xc="buffer";
u(function(){for(var a=F(document,E,"serial"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Wc(d);D(d,c)}});
function Yc(a,b,c){w.call(this,"Computer",a);this.h.D=!1;this.L=null;Zc(this,b);this.I=Ub(this,"autoPower",a,6);this.j=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.G=null;this.B=this.P=!1;this.w=this.l=null;this.N=this.K=!1;this.X=Ub(this,"url")||"";(Math.random()+.1).toString(36);this.b=$c(this);if(this.i=B("CPU",this.id)){this.v=B("Debugger",this.id);this.s=new Ab({id:this.pa+".bus",busWidth:this.W},this.i,this.v);var d,e=z(this.id);if((this.g=B("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.g.F,d.M=this.g.M,d.ba=this.g.ba;this.M(H+" 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.Z&&d.Z(this,this.s,this.i,this.v);b=null;d=Ub(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Ub(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.B=!0,this.a=ad),this.a&&(this.w=new Q(this,"1.34.2"),bd(this.w)?b=null:delete this.w);!b&&this.a&&
(b=cd(this))&&(this.B=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.o=null,g.B=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.C=b,g.P=!0);G(g)})}else G(this);this.m.power||(this.I=!0);!c&&this.I&&dd(this,this.ka)}else t("Unable to find CPU component")}n(Yc,w);function Zc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.L=b}
function Ub(a,b,c,d){var e=b.toLowerCase(),e=Ca(b)||Ca(e);void 0===e&&a.L&&(e=a.L[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 dd(a,b,c){for(var d=z(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Va(f)){Va(f,function(){dd(a,b,c)});return}}b.call(a,c)}
function ed(a,b){var c=new Q(a,"1.34.2",fd);if(bd(c)&&gd(c)){var d=c.get(hd),e=b?b.get(hd):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Yc.prototype;
k.ka=function(a){void 0===a&&(a=this.a||(this.C?id:ad));if(!this.j){this.j++;var b=!1,c=!1;this.K=!1;var d=this.w||new Q(this,"1.34.2");if(a==jd)b=!0;else if(a>ad){if(bd(d,this.C)){this.l=new Q(this,"1.34.2",kd);bd(this.l)&&(ld(this,d),a=md,nd(this.l));this.l.set(hd,va());od(this.l);var e=this.a&&!this.B;if(a==id||Oa("Click OK to restore the previous "+H+" machine state, or CANCEL to reset the machine.")){if(c=gd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?bd(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(Aa(pd,""),this.b=null)):this.M(f+": "+g),nd(d),bd(d)?(c=gd(d),e=!0):c=!1))}e&&ed(this,c?d:null)}else a==md&&d.clear()}else ed(this);delete this.C;delete this.w}e=z(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.i&&(c=qd(this,g,d,b,c));b=[d,a,c];a!=jd?dd(this,this.Ra,b):this.Ra(b)}};
function qd(a,b,c,d,e){if(!b.h.D){b.h.D=!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.V(f,d)&&f&&(t("Unable to restore state for "+b.type),a.G&&!a.P?(c.clear(),a.a=ad,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Pa){var g=b.Pa.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){t("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Ra=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.D=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.i&&(qd(this,this.i,b,c,a),S(this,-2),this.i.J());this.K&&(ld(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.j=0};
function ld(a,b){if(Oa("There may be a problem with your "+H+" machine.\n\nTo help us diagnose it, click OK to send this "+H+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=H;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function rd(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Q(a,"1.34.2"),g=new Q(a,"1.34.2",fd),h=va();g.set(hd,h);f.set(hd,h);f.set(sd,"1.34.2");f.set(td,window?window.location.href:null);f.set(ud,window?window.navigator.userAgent:"");a.i&&a.i.R&&(c&&(b&&(a.i.h.J=a.i.h.A),R(a.i)),d=a.i.R(b,c),"object"===typeof d&&f.set(a.i.id,d),c&&(a.i.h.D=!1,!1===d&&(e=null)));for(var h=z(a.id),l=0;l<h.length;l++){var p=h[l];p.h.D&&(p.R&&(d=p.R(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.h.D=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&vd(a,a.b,f.toString()),od(g)&&od(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==wd),d&&f.clear(h)):e=f.toString());c&&(a.h.D=!1,b=a.m.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.i&&this.i.reset&&this.i.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.i&&c.reset&&c.reset()}this.h.reset=!1;S(this,-1)};
k.Ta=function(a){if(!this.a){var b=Ub(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ta(c[0]);if(d!=this.oa)return;c=ta(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.pa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Ta(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new Q(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ya=function(a){if("number"==typeof a)this.b.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.b.push(b)}else this.b=this.b.concat(a);return!0};k.qb=function(){};k.tb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var Yc="buffer";
u(function(){for(var a=F(document,E,"serial"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Xc(d);D(d,c)}});
function Zc(a,b,c){w.call(this,"Computer",a);this.h.D=!1;this.L=null;$c(this,b);this.I=Ub(this,"autoPower",a,6);this.j=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.G=null;this.B=this.P=!1;this.w=this.l=null;this.N=this.K=!1;this.X=Ub(this,"url")||"";(Math.random()+.1).toString(36);this.b=ad(this);if(this.i=B("CPU",this.id)){this.v=B("Debugger",this.id);this.s=new Ab({id:this.pa+".bus",busWidth:this.W},this.i,this.v);var d,e=z(this.id);if((this.g=B("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.g.F,d.M=this.g.M,d.ba=this.g.ba;this.M(H+" 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.Z&&d.Z(this,this.s,this.i,this.v);b=null;d=Ub(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Ub(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.B=!0,this.a=bd),this.a&&(this.w=new Q(this,"1.34.2"),cd(this.w)?b=null:delete this.w);!b&&this.a&&
(b=dd(this))&&(this.B=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.o=null,g.B=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+ta(b):"")+")")):(g.C=b,g.P=!0);G(g)})}else G(this);this.m.power||(this.I=!0);!c&&this.I&&ed(this,this.ka)}else t("Unable to find CPU component")}n(Zc,w);function $c(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.L=b}
function Ub(a,b,c,d){var e=b.toLowerCase(),e=Ca(b)||Ca(e);void 0===e&&a.L&&(e=a.L[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 ed(a,b,c){for(var d=z(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Va(f)){Va(f,function(){ed(a,b,c)});return}}b.call(a,c)}
function fd(a,b){var c=new Q(a,"1.34.2",gd);if(cd(c)&&hd(c)){var d=c.get(id),e=b?b.get(id):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Zc.prototype;
k.ka=function(a){void 0===a&&(a=this.a||(this.C?jd:bd));if(!this.j){this.j++;var b=!1,c=!1;this.K=!1;var d=this.w||new Q(this,"1.34.2");if(a==kd)b=!0;else if(a>bd){if(cd(d,this.C)){this.l=new Q(this,"1.34.2",ld);cd(this.l)&&(md(this,d),a=nd,od(this.l));this.l.set(id,va());pd(this.l);var e=this.a&&!this.B;if(a==jd||Oa("Click OK to restore the previous "+H+" machine state, or CANCEL to reset the machine.")){if(c=hd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?cd(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(Aa(qd,""),this.b=null)):this.M(f+": "+g),od(d),cd(d)?(c=hd(d),e=!0):c=!1))}e&&fd(this,c?d:null)}else a==nd&&d.clear()}else fd(this);delete this.C;delete this.w}e=z(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.i&&(c=rd(this,g,d,b,c));b=[d,a,c];a!=kd?ed(this,this.Ra,b):this.Ra(b)}};
function rd(a,b,c,d,e){if(!b.h.D){b.h.D=!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.V(f,d)&&f&&(t("Unable to restore state for "+b.type),a.G&&!a.P?(c.clear(),a.a=bd,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Pa){var g=b.Pa.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){t("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Ra=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.D=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.i&&(rd(this,this.i,b,c,a),S(this,-2),this.i.J());this.K&&(md(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.j=0};
function md(a,b){if(Oa("There may be a problem with your "+H+" machine.\n\nTo help us diagnose it, click OK to send this "+H+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=H;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function sd(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Q(a,"1.34.2"),g=new Q(a,"1.34.2",gd),h=va();g.set(id,h);f.set(id,h);f.set(td,"1.34.2");f.set(ud,window?window.location.href:null);f.set(vd,window?window.navigator.userAgent:"");a.i&&a.i.R&&(c&&(b&&(a.i.h.J=a.i.h.A),R(a.i)),d=a.i.R(b,c),"object"===typeof d&&f.set(a.i.id,d),c&&(a.i.h.D=!1,!1===d&&(e=null)));for(var h=z(a.id),l=0;l<h.length;l++){var p=h[l];p.h.D&&(p.R&&(d=p.R(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.h.D=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&wd(a,a.b,f.toString()),pd(g)&&pd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==xd),d&&f.clear(h)):e=f.toString());c&&(a.h.D=!1,b=a.m.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.i&&this.i.reset&&this.i.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.i&&c.reset&&c.reset()}this.h.reset=!1;S(this,-1)};
k.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}S(this,-1)};k.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}S(this,-1)};
function S(a,b){if(a.i){var c=a.i,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ba+=d))&&(e.textContent=c.h.A?c.P.toFixed(2)+"Mhz":"Stopped",c.Ba=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.i.h.A;d=!!(a.i.j&8);if(0>=b||60<=(a.B+=b)){e=a.i.o;if(a.m.PC){var f=a.v&&a.v.l||8,e=e||0,e=8==f?la(e,void 0):ma(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.B=0}-1>b?a.b=a.i.o:0<b&&c&&!d&&(a.b=a.i.la);mb(a,a.b);gb(a,a.j)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.j||(d.h.D?rd(d,!1,!0):dd(d,d.ka))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.D&&!d.j)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+H+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");rd(d,a,!0);!a&&d.G?window&&window.location.reload():d.ka(ad)}else d.reset(),d.i&&!d.v&&d.i.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=$c(d,!0);if(a){var b=!!(d.a&&!d.o||d.G),c=rd(d,b);b?vd(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function $c(a,b){var c=a.b;c||((c=za(pd),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=xd(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function xd(a,b){a.b=null;b=r(qa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa(pd,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function cd(a){var b=null;a.b&&(b=qa()+"/api/v1/user?req=load&user="+a.b+"&state="+yd(a,"1.34.2"));return b}
function vd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=yd(a,"1.34.2");d.data=c;b=r(qa()+"/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.F("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.F(c),Aa(pd,""),a.b=null)}}
var kd="failsafe",fd="validate",hd="timestamp",sd="version",td="url",ud="browser",pd="user",jd=-1,ad=0,id=1,md=2,wd=3;u(function(){for(var a=F(document,E+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=F(c,E,"computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new Yc(g,d,!0);D(g,f);g.I&&dd(g,g.ka)}});v.show.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.N&&!c.h.D&&c.ka(jd)}});
v.exit.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.h.D&&rd(c,!(!c.a||c.o),!0)}});function Q(a,b,c){this.id=a.id;this.b="";this.a={};this.i=this.g=!1;this.key=yd(a,b,c);nd(this,a.ab)}k=Q.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function bd(a,b){return b?(a.b=b,a.i=!0,a.g=!1,!0):a.i?!0:xa()&&(b=za(a.key))?(a.b=b,a.i=!0):!1}
function gd(a){var b=!0;if(!a.g)try{a.a=JSON.parse(a.b),a.g=!0}catch(c){t(c.message||c),b=!1}return b}function od(a){var b=!0;if(xa()){var c=JSON.stringify(a.a);Aa(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function nd(a,b){a.b="";a.a={};a.i=a.g=!1;b&&a.set("parms",b)}
k.clear=function(a){nd(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 yd(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 zd=0;
function Ad(a,b,c,d,e,f,g){f("Loading "+a+"...");r(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Bd(l,a,b,c,d,e,f,g)})}
function Bd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(La(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(A){g=null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Cd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Cd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(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 l=h[0],p,x=/( [a-z]+=)(['"])(.*?)\2/g;p=x.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Cd(a,b,c)}})}else c(a,null)}
function Dd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&F(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ra(a))}function g(a){f("Error: "+a);p&&(--zd||Ha(!0));p=!1}var h,l,p=!0;zd++;Ma[b]={};try{if(h=document.getElementById(b)){var x;if("object"==typeof resources&&(x=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],ta=document.createElement("style");ta.type="text/css";ta.styleSheet?ta.styleSheet.cssText=x:ta.appendChild(document.createTextNode(x));A.appendChild(ta)}d||
(x=a,"pdp"==a.substr(0,3)&&(x="pdpjs"),d="/versions/"+x+"/1.34.2/components.xsl");x=function(e,l){l?Ad(d,null,a,null,!1,f,function(a,e){e?(La(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--zd||Ha(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--zd||
Ha(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ad(c,b,a,e,!0,f,x):Bd(c,null,b,a,e,!1,f,x)}else g("missing machine element: "+b)}catch(Ed){g(Ed.message)}return p}window.embedPDP10=function(a,b,c,d){Ha(!1);return Dd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Ha(!1);return Dd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return B(b,a+".machine")};
function S(a,b){if(a.i){var c=a.i,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ba+=d))&&(e.textContent=c.h.A?c.P.toFixed(2)+"Mhz":"Stopped",c.Ba=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.i.h.A;d=!!(a.i.l&8);if(0>=b||60<=(a.B+=b)){e=a.i.j;if(a.m.PC){var f=a.v&&a.v.l||8,e=e||0,e=8==f?la(e,void 0):ma(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.B=0}-1>b?a.b=a.i.j:0<b&&c&&!d&&(a.b=a.i.la);mb(a,a.b);gb(a,a.j)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.j||(d.h.D?sd(d,!1,!0):ed(d,d.ka))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.D&&!d.j)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+H+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sd(d,a,!0);!a&&d.G?window&&window.location.reload():d.ka(bd)}else d.reset(),d.i&&!d.v&&d.i.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=ad(d,!0);if(a){var b=!!(d.a&&!d.o||d.G),c=sd(d,b);b?wd(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function ad(a,b){var c=a.b;c||((c=za(qd),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=yd(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function yd(a,b){a.b=null;b=r(qa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa(qd,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function dd(a){var b=null;a.b&&(b=qa()+"/api/v1/user?req=load&user="+a.b+"&state="+zd(a,"1.34.2"));return b}
function wd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=zd(a,"1.34.2");d.data=c;b=r(qa()+"/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.F("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.F(c),Aa(qd,""),a.b=null)}}
var ld="failsafe",gd="validate",id="timestamp",td="version",ud="url",vd="browser",qd="user",kd=-1,bd=0,jd=1,nd=2,xd=3;u(function(){for(var a=F(document,E+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=F(c,E,"computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new Zc(g,d,!0);D(g,f);g.I&&ed(g,g.ka)}});v.show.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.N&&!c.h.D&&c.ka(kd)}});
v.exit.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.h.D&&sd(c,!(!c.a||c.o),!0)}});function Q(a,b,c){this.id=a.id;this.b="";this.a={};this.i=this.g=!1;this.key=zd(a,b,c);od(this,a.ab)}k=Q.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function cd(a,b){return b?(a.b=b,a.i=!0,a.g=!1,!0):a.i?!0:xa()&&(b=za(a.key))?(a.b=b,a.i=!0):!1}
function hd(a){var b=!0;if(!a.g)try{a.a=JSON.parse(a.b),a.g=!0}catch(c){t(c.message||c),b=!1}return b}function pd(a){var b=!0;if(xa()){var c=JSON.stringify(a.a);Aa(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function od(a,b){a.b="";a.a={};a.i=a.g=!1;b&&a.set("parms",b)}
k.clear=function(a){od(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 zd(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 Ad=0;
function Bd(a,b,c,d,e,f,g){f("Loading "+a+"...");r(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Cd(l,a,b,c,d,e,f,g)})}
function Cd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(La(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(A){g=null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Dd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Dd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(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 l=h[0],p,x=/( [a-z]+=)(['"])(.*?)\2/g;p=x.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Dd(a,b,c)}})}else c(a,null)}
function Ed(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&F(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ra(a))}function g(a){f("Error: "+a);p&&(--Ad||Ha(!0));p=!1}var h,l,p=!0;Ad++;Ma[b]={};try{if(h=document.getElementById(b)){var x;if("object"==typeof resources&&(x=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],ua=document.createElement("style");ua.type="text/css";ua.styleSheet?ua.styleSheet.cssText=x:ua.appendChild(document.createTextNode(x));A.appendChild(ua)}d||
(x=a,"pdp"==a.substr(0,3)&&(x="pdpjs"),d="/versions/"+x+"/1.34.2/components.xsl");x=function(e,l){l?Bd(d,null,a,null,!1,f,function(a,e){e?(La(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Ad||Ha(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Ad||
Ha(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Bd(c,b,a,e,!0,f,x):Cd(c,null,b,a,e,!1,f,x)}else g("missing machine element: "+b)}catch(Fd){g(Fd.message)}return p}window.embedPDP10=function(a,b,c,d){Ha(!1);return Ed("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Ha(!1);return Ed("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return B(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ra[a]){for(var c=!0,d=Ra,e=a,f=b.length,g=[],h=[],l="",p=null,x=0;x<f;x++){var A=b[x];if('"'==A||"'"==A)p&&A!=p?l+=A:(p?p=null:p=A,l&&(h.push(l),l=""));else{if(!p){if("\r"==A||"\n"==A)A=";";if(" "==A||"\t"==A||";"==A){l&&(h.push(l),l="");";"==A&&h.length&&(g.push(h),h=[]);continue}}l+=A}}l&&h.push(l);h.length&&g.push(h);d[e]=g;Qa(a)||(c=!1)}return c};window.enableEvents=Ha;window.sendEvent=Ja;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10.map