First stab at PDP-11 cycle times (11/70 to be precise) is more or less complete now

This commit is contained in:
Jeff 2016-10-03 14:27:14 -07:00 committed by Jeff Parsons
commit 2a065f4efc
6 changed files with 491 additions and 445 deletions

View file

@ -50,8 +50,8 @@ if (NODE) {
* fnXXX() helper function.
*
* For example, opADD() passes the helper function fnADD() to the appropriate update method. This
* allows the update method to perform the entire read/modify/write operation, because the modification
* is performed internally via the helper function.
* allows the update method to perform the entire read/modify/write operation, because the modify
* step is performed internally via the fnXXX() helper function.
*/
/**
@ -503,13 +503,13 @@ PDP11.opASH = function(opCode)
if (result & 0x8000) result |= 0xffff0000;
this.flagC = this.flagV = 0;
src &= 0x3F;
if (src & 0x20) { // shift right
src = 64 - src;
if (src & 0x20) {
src = 64 - src; // shift right
if (src > 16) src = 16;
this.flagC = result << (17 - src);
result = result >> src;
} else if (src) {
if (src > 16) {
if (src > 16) { // shift left
this.flagV = result;
result = 0;
} else {
@ -521,7 +521,7 @@ PDP11.opASH = function(opCode)
}
this.regsGen[reg] = result & 0xffff;
this.flagN = this.flagZ = result;
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (5 + 1) : (6 + 1)) + src;
};
/**
@ -538,14 +538,14 @@ PDP11.opASHC = function(opCode)
this.flagC = this.flagV = 0;
src &= 0x3F;
if (src & 0x20) {
src = 64 - src;
src = 64 - src; // shift right
if (src > 32) src = 32;
var result = dst >> (src - 1);
this.flagC = result << 16;
result >>= 1;
if (dst & 0x80000000) result |= 0xffffffff << (32 - src);
} else {
if (src) { // shift left
if (src) { // shift left
result = dst << (src - 1);
this.flagC = result >> 15;
result <<= 1;
@ -563,7 +563,7 @@ PDP11.opASHC = function(opCode)
this.regsGen[reg | 1] = result & 0xffff;
this.flagN = result >> 16;
this.flagZ = result >> 16 | result;
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (5 + 1) : (6 + 1)) + src;
};
/**
@ -599,7 +599,7 @@ PDP11.opASLB = function(opCode)
PDP11.opASR = function(opCode)
{
this.updateWordByMode(opCode, 0, PDP11.fnASR);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (8 + 1) : (2 + 1) + (this.dstReg == 7? 2 : 0));
};
/**
@ -611,7 +611,7 @@ PDP11.opASR = function(opCode)
PDP11.opASRB = function(opCode)
{
this.updateByteByMode(opCode, 0, PDP11.fnASRB);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (8 + 1) + (this.dstAddr & 1) : (2 + 1) + (this.dstReg == 7? 2 : 0));
};
/**
@ -622,8 +622,7 @@ PDP11.opASRB = function(opCode)
*/
PDP11.opBCC = function(opCode)
{
if (!this.getCF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getCF());
};
/**
@ -634,8 +633,7 @@ PDP11.opBCC = function(opCode)
*/
PDP11.opBCS = function(opCode)
{
if (this.getCF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, this.getCF());
};
/**
@ -718,8 +716,7 @@ PDP11.opBITB = function(opCode)
*/
PDP11.opBEQ = function(opCode)
{
if (this.getZF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, this.getZF());
};
/**
@ -730,8 +727,7 @@ PDP11.opBEQ = function(opCode)
*/
PDP11.opBGE = function(opCode)
{
if (!this.getNF() == !this.getVF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getNF() == !this.getVF());
};
/**
@ -742,8 +738,7 @@ PDP11.opBGE = function(opCode)
*/
PDP11.opBGT = function(opCode)
{
if (!this.getZF() && (!this.getNF() == !this.getVF())) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getZF() && (!this.getNF() == !this.getVF()));
};
/**
@ -754,8 +749,7 @@ PDP11.opBGT = function(opCode)
*/
PDP11.opBHI = function(opCode)
{
if (!this.getCF() && !this.getZF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getCF() && !this.getZF());
};
/**
@ -766,8 +760,7 @@ PDP11.opBHI = function(opCode)
*/
PDP11.opBLE = function(opCode)
{
if (this.getZF() || (!this.getNF() != !this.getVF())) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, this.getZF() || (!this.getNF() != !this.getVF()));
};
/**
@ -778,8 +771,7 @@ PDP11.opBLE = function(opCode)
*/
PDP11.opBLOS = function(opCode)
{
if (this.getCF() || this.getZF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, this.getCF() || this.getZF());
};
/**
@ -790,8 +782,7 @@ PDP11.opBLOS = function(opCode)
*/
PDP11.opBLT = function(opCode)
{
if (!this.getNF() != !this.getVF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getNF() != !this.getVF());
};
/**
@ -802,8 +793,7 @@ PDP11.opBLT = function(opCode)
*/
PDP11.opBMI = function(opCode)
{
if (this.getNF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, this.getNF());
};
/**
@ -814,8 +804,7 @@ PDP11.opBMI = function(opCode)
*/
PDP11.opBNE = function(opCode)
{
if (!this.getZF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getZF());
};
/**
@ -826,8 +815,7 @@ PDP11.opBNE = function(opCode)
*/
PDP11.opBPL = function(opCode)
{
if (!this.getNF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getNF());
};
/**
@ -839,7 +827,7 @@ PDP11.opBPL = function(opCode)
PDP11.opBPT = function(opCode)
{
this.trap(PDP11.TRAP.BREAKPOINT, PDP11.REASON.BPT);
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -850,8 +838,7 @@ PDP11.opBPT = function(opCode)
*/
PDP11.opBR = function(opCode)
{
this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, true);
};
/**
@ -862,8 +849,7 @@ PDP11.opBR = function(opCode)
*/
PDP11.opBVC = function(opCode)
{
if (!this.getVF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, !this.getVF());
};
/**
@ -874,8 +860,7 @@ PDP11.opBVC = function(opCode)
*/
PDP11.opBVS = function(opCode)
{
if (this.getVF()) this.branch(opCode);
this.nStepCycles -= 1;
this.branch(opCode, this.getVF());
};
/**
@ -911,7 +896,7 @@ PDP11.opCLRB = function(opCode)
PDP11.opCLC = function(opCode)
{
this.clearCF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -923,7 +908,7 @@ PDP11.opCLC = function(opCode)
PDP11.opCLN = function(opCode)
{
this.clearNF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -935,7 +920,7 @@ PDP11.opCLN = function(opCode)
PDP11.opCLV = function(opCode)
{
this.clearVF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -947,7 +932,7 @@ PDP11.opCLV = function(opCode)
PDP11.opCLZ = function(opCode)
{
this.clearZF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -962,7 +947,10 @@ PDP11.opCLx = function(opCode)
if (opCode & 0x2) this.clearVF();
if (opCode & 0x4) this.clearZF();
if (opCode & 0x8) this.clearNF();
this.nStepCycles -= 1;
/*
* TODO: Review whether this class of undocumented instructions really has a constant cycle time.
*/
this.nStepCycles -= (4 + 1);
};
/**
@ -1068,6 +1056,7 @@ PDP11.opDIV = function(opCode)
this.flagZ = 0;
this.flagV = 0x8000;
this.flagC = 0x10000; // divide by zero
this.nStepCycles -= (6 + 1);
} else {
var reg = (opCode >> 6) & 7;
var dst = (this.regsGen[reg] << 16) | this.regsGen[reg | 1];
@ -1087,8 +1076,8 @@ PDP11.opDIV = function(opCode)
this.regsGen[reg] = this.regsGen[reg | 1] = 1; // etc
}
}
this.nStepCycles -= (52 + 1); // 52 is the mean of the shortest and longest times
}
this.nStepCycles -= 1;
};
/**
@ -1100,7 +1089,7 @@ PDP11.opDIV = function(opCode)
PDP11.opEMT = function(opCode)
{
this.trap(PDP11.TRAP.EMULATOR, PDP11.REASON.EMT);
this.nStepCycles -= 1;
this.nStepCycles -= (22 + 3);
};
/**
@ -1117,7 +1106,7 @@ PDP11.opHALT = function(opCode)
} else {
this.endBurst();
}
this.nStepCycles -= 1;
this.nStepCycles -= 7;
};
/**
@ -1153,9 +1142,13 @@ PDP11.opINCB = function(opCode)
PDP11.opIOT = function(opCode)
{
this.trap(PDP11.TRAP.IOT, PDP11.REASON.IOT);
this.nStepCycles -= 1;
this.nStepCycles -= (22 + 3);
};
PDP11.JMP_CYCLES = [
0, 6 + 1, 6 + 1, 8 + 2, 6 + 1, 9 + 2, 7 + 2, 10 + 3
];
/**
* opJMP(opCode)
*
@ -1164,10 +1157,19 @@ PDP11.opIOT = function(opCode)
*/
PDP11.opJMP = function(opCode)
{
/*
* Since JMP and JSR opcodes have their own unique timings for the various src and dst modes, we must snapshot
* nStepCycles before decoding the modes, and then use that to update nStepCycles.
*/
var nSnapCycles = this.nStepCycles;
this.setPC(this.getVirtualByMode(opCode, PDP11.ACCESS.VIRT));
this.nStepCycles -= 1;
this.nStepCycles = nSnapCycles - PDP11.JMP_CYCLES[this.dstMode];
};
PDP11.JSR_CYCLES = [
0, 13 + 1, 13 + 1, 15 + 2, 13 + 1, 16 + 2, 14 + 2, 17 + 3
];
/**
* opJSR(opCode)
*
@ -1176,12 +1178,17 @@ PDP11.opJMP = function(opCode)
*/
PDP11.opJSR = function(opCode)
{
/*
* Since JMP and JSR opcodes have their own unique timings for the various src and dst modes, we must snapshot
* nStepCycles before decoding the modes, and then use that to update nStepCycles.
*/
var nSnapCycles = this.nStepCycles;
var addr = this.getVirtualByMode(opCode, PDP11.ACCESS.VIRT);
var reg = (opCode >> PDP11.SRCMODE.SHIFT) & PDP11.OPREG.MASK;
this.pushWord(this.regsGen[reg]);
this.regsGen[reg] = this.getPC();
this.setPC(addr);
this.nStepCycles -= 1;
this.nStepCycles = nSnapCycles - PDP11.JSR_CYCLES[this.dstMode];
};
/**
@ -1197,7 +1204,7 @@ PDP11.opMARK = function(opCode)
this.setPC(this.regsGen[5]);
this.setSP(addr + 2);
this.regsGen[5] = src;
this.nStepCycles -= 1;
this.nStepCycles -= (6 + 2);
};
/**
@ -1211,7 +1218,7 @@ PDP11.opMFPD = function(opCode)
var data = this.readWordFromPrevSpace(opCode, PDP11.ACCESS.DSPACE);
this.pushWord(data);
this.updateNZVFlags(data);
this.nStepCycles -= 1;
this.nStepCycles -= (10 + 1);
};
/**
@ -1225,12 +1232,12 @@ PDP11.opMFPI = function(opCode)
var data = this.readWordFromPrevSpace(opCode, PDP11.ACCESS.ISPACE);
this.pushWord(data);
this.updateNZVFlags(data);
this.nStepCycles -= 1;
this.nStepCycles -= (10 + 1);
};
PDP11.MOV_CYCLES = [
2 + 1, 8 + 1, 8 + 1, 11 + 2, 9 + 1, 12 + 2, 10 + 2, 13 + 3,
3 + 1, 8 + 1, 8 + 1, 11 + 2, 9 + 1, 12 + 2, 11 + 2, 14 + 3
2 + 1, 8 + 1, 8 + 1, 11 + 2, 9 + 1, 12 + 2, 10 + 2, 13 + 3,
3 + 1, 8 + 1, 8 + 1, 11 + 2, 9 + 1, 12 + 2, 11 + 2, 14 + 3
];
/**
@ -1241,8 +1248,13 @@ PDP11.MOV_CYCLES = [
*/
PDP11.opMOV = function(opCode)
{
/*
* Since MOV opcodes have their own unique timings for the various src and dst modes, we must snapshot
* nStepCycles before decoding the modes, and then use that to update nStepCycles.
*/
var nSnapCycles = this.nStepCycles;
this.updateNZVFlags(this.writeWordByMode(opCode, this.readWordByMode(opCode >> PDP11.SRCMODE.SHIFT)));
this.nStepCycles -= PDP11.MOV_CYCLES[(this.srcMode? 8 : 0) + this.dstMode] + (this.dstReg == 7 && !this.dstMode? 2 : 0);
this.nStepCycles = nSnapCycles - PDP11.MOV_CYCLES[(this.srcMode? 8 : 0) + this.dstMode] + (this.dstReg == 7 && !this.dstMode? 2 : 0);
};
/**
@ -1258,6 +1270,10 @@ PDP11.opMOVB = function(opCode)
this.nStepCycles -= (this.dstMode? (8 + 1) + (this.srcReg && this.dstReg >= 6? 1 : 0) : (this.srcMode? (3 + 2) : (2 + 1)) + (this.dstReg == 7? 2 : 0));
};
PDP11.MTP_CYCLES = [
6 + 1, 11 + 2, 11 + 2, 14 + 3, 12 + 2, 15 + 3, 14 + 3, 17 + 4
];
/**
* opMTPD(opCode)
*
@ -1266,10 +1282,15 @@ PDP11.opMOVB = function(opCode)
*/
PDP11.opMTPD = function(opCode)
{
/*
* Since MTPD and MTPI opcodes have their own unique timings for the various src and dst modes, we must snapshot
* nStepCycles before decoding the modes, and then use that to update nStepCycles.
*/
var data = this.popWord();
var nSnapCycles = this.nStepCycles;
this.writeWordToPrevSpace(opCode, PDP11.ACCESS.DSPACE, data);
this.updateNZVFlags(data);
this.nStepCycles -= 1;
this.nStepCycles = nSnapCycles - PDP11.MTP_CYCLES[this.dstMode];
};
/**
@ -1280,10 +1301,15 @@ PDP11.opMTPD = function(opCode)
*/
PDP11.opMTPI = function(opCode)
{
/*
* Since MTPD and MTPI opcodes have their own unique timings for the various src and dst modes, we must snapshot
* nStepCycles before decoding the modes, and then use that to update nStepCycles.
*/
var data = this.popWord();
var nSnapCycles = this.nStepCycles;
this.writeWordToPrevSpace(opCode, PDP11.ACCESS.ISPACE, data);
this.updateNZVFlags(data);
this.nStepCycles -= 1;
this.nStepCycles = nSnapCycles - PDP11.MTP_CYCLES[this.dstMode];
};
/**
@ -1303,7 +1329,7 @@ PDP11.opMUL = function(opCode)
this.regsGen[reg] = (result >> 16) & 0xffff;
this.regsGen[reg | 1] = result & 0xffff;
this.updateMulFlags(result);
this.nStepCycles -= 1;
this.nStepCycles -= (22 + 1);
};
/**
@ -1315,7 +1341,7 @@ PDP11.opMUL = function(opCode)
PDP11.opNEG = function(opCode)
{
this.updateWordByMode(opCode, 0, PDP11.fnNEG);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (10 + 1) : (5 + 1));
};
/**
@ -1327,7 +1353,7 @@ PDP11.opNEG = function(opCode)
PDP11.opNEGB = function(opCode)
{
this.updateByteByMode(opCode, 0, PDP11.fnNEGB);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (10 + 1) : (5 + 1));
};
/**
@ -1338,7 +1364,7 @@ PDP11.opNEGB = function(opCode)
*/
PDP11.opNOP = function(opCode)
{
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1); // TODO: Review (this is just a guess based on CLC)
};
/**
@ -1354,7 +1380,7 @@ PDP11.opRESET = function(opCode)
this.bus.reset();
// display.data = this.regsGen[0]; // TODO: Review
}
this.nStepCycles -= 1;
this.nStepCycles -= 667; // TODO: Review (but it's definitely a big number)
};
/**
@ -1390,7 +1416,7 @@ PDP11.opROLB = function(opCode)
PDP11.opROR = function(opCode)
{
this.updateWordByMode(opCode, 0, PDP11.fnROR);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (8 + 1) : (2 + 1) + (this.dstReg == 7? 2 : 0));
};
/**
@ -1402,7 +1428,7 @@ PDP11.opROR = function(opCode)
PDP11.opRORB = function(opCode)
{
this.updateByteByMode(opCode, 0, PDP11.fnRORB);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (8 + 1) + (this.dstAddr & 1) : (2 + 1) + (this.dstReg == 7? 2 : 0));
};
/**
@ -1418,7 +1444,7 @@ PDP11.opRTI = function(opCode)
* Unlike RTT, RTI enables immediate trace
*/
this.opFlags |= (this.regPSW & PDP11.PSW.TF);
this.nStepCycles -= 1;
this.nStepCycles -= (10 + 3);
};
/**
@ -1429,12 +1455,15 @@ PDP11.opRTI = function(opCode)
*/
PDP11.opRTS = function(opCode)
{
this.assert(!(opCode & 0x08));
if (opCode & 0x08) {
PDP11.opUndefined.call(this, opCode);
return;
}
var src = this.popWord();
var reg = opCode & PDP11.OPREG.MASK;
this.setPC(this.regsGen[reg]);
this.regsGen[reg] = src;
this.nStepCycles -= 1;
this.nStepCycles -= (7 + 2);
};
/**
@ -1446,7 +1475,7 @@ PDP11.opRTS = function(opCode)
PDP11.opRTT = function(opCode)
{
this.trapReturn();
this.nStepCycles -= 1;
this.nStepCycles -= (10 + 3);
};
/**
@ -1482,7 +1511,7 @@ PDP11.opSBCB = function(opCode)
PDP11.opSEC = function(opCode)
{
this.setCF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -1494,7 +1523,7 @@ PDP11.opSEC = function(opCode)
PDP11.opSEN = function(opCode)
{
this.setNF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -1506,7 +1535,7 @@ PDP11.opSEN = function(opCode)
PDP11.opSEV = function(opCode)
{
this.setVF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -1518,7 +1547,7 @@ PDP11.opSEV = function(opCode)
PDP11.opSEZ = function(opCode)
{
this.setZF();
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -1533,7 +1562,10 @@ PDP11.opSEx = function(opCode)
if (opCode & 0x2) this.setVF();
if (opCode & 0x4) this.setZF();
if (opCode & 0x8) this.setNF();
this.nStepCycles -= 1;
/*
* TODO: Review whether this class of undocumented instructions really has a constant cycle time.
*/
this.nStepCycles -= (4 + 1);
};
/**
@ -1546,9 +1578,10 @@ PDP11.opSOB = function(opCode)
{
var reg = (opCode & PDP11.SRCMODE.REG) >> PDP11.SRCMODE.SHIFT;
if ((this.regsGen[reg] = ((this.regsGen[reg] - 1) & 0xffff))) {
this.setPC(this.getPC() - ((opCode & 0x3F) << 1));
this.setPC(this.getPC() - ((opCode & PDP11.DSTMODE.MASK) << 1));
this.nStepCycles += 1; // unlike normal branches, taking this branch is actually 1 cycle faster
}
this.nStepCycles -= 1;
this.nStepCycles -= (5 + 1);
};
/**
@ -1559,12 +1592,15 @@ PDP11.opSOB = function(opCode)
*/
PDP11.opSPL = function(opCode)
{
this.assert(opCode & 0x08);
if (!(opCode & 0x08)) {
PDP11.opUndefined.call(this, opCode);
return;
}
if (!(this.regPSW & PDP11.PSW.CMODE)) {
this.regPSW = (this.regPSW & ~(PDP11.PSW.UNUSED | PDP11.PSW.PRI)) | ((opCode & 0x7) << PDP11.PSW.SHIFT.PRI);
this.opFlags |= PDP11.OPFLAG.INTQ_SPL;
}
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -1612,7 +1648,7 @@ PDP11.opSXT = function(opCode)
PDP11.opTRAP = function(opCode)
{
this.trap(PDP11.TRAP.TRAP, PDP11.REASON.TRAP);
this.nStepCycles -= 1;
this.nStepCycles -= (4 + 1);
};
/**
@ -1626,7 +1662,7 @@ PDP11.opTST = function(opCode)
var result = this.readWordByMode(opCode);
this.assert(!(result & ~0xffff)); // assert that C flag will be clear
this.updateAllFlags(result);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (3 + 1) : (2 + 1) + (this.dstReg == 7? 2 : 0));
};
/**
@ -1640,7 +1676,7 @@ PDP11.opTSTB = function(opCode)
var result = this.readByteByMode(opCode);
this.assert(!(result & ~0xff)); // assert that C flag will be clear
this.updateAllFlags(result << 8);
this.nStepCycles -= 1;
this.nStepCycles -= (this.dstMode? (3 + 1) : (2 + 1) + (this.dstReg == 7? 2 : 0));
};
/**
@ -1680,7 +1716,7 @@ PDP11.opWAIT = function(opCode)
*/
this.opFlags |= PDP11.OPFLAG.WAIT;
this.advancePC(-2);
this.nStepCycles -= 1;
this.nStepCycles -= 3;
};
/**
@ -1964,18 +2000,37 @@ PDP11.aOps00Xn_1170 = [
PDP11.opUndefined, // 0x001n 000020-000037
PDP11.opUndefined, // 0x002n 000040-000057
PDP11.opUndefined, // 0x003n 000060-000077
PDP11.opJMP, // 0x004n 000100-000117
PDP11.opJMP, // 0x005n 000120-000137
PDP11.opJMP, // 0x006n 000140-000157
PDP11.opJMP, // 0x007n 000160-000177
PDP11.opRTS, // 0x008n 00020R (technically, bit 3 should also be CLR for the RTS opCode)
PDP11.opSPL, // 0x009n 00023N (technically, bit 3 should also be SET for the SPL opCode)
PDP11.opJMP, // 0x004n 0001DD
PDP11.opJMP, // 0x005n 0001DD
PDP11.opJMP, // 0x006n 0001DD
PDP11.opJMP, // 0x007n 0001DD
PDP11.opRTS, // 0x008n 00020R (opRTS() will also confirm that bit 3 is clear)
PDP11.opSPL, // 0x009n 00023N (opSPL() will also confirm that bit 3 is set)
PDP11.op00AX_1170, // 0x00An 000240-000257
PDP11.op00BX_1170, // 0x00Bn 000260-000277
PDP11.opSWAB, // 0x00Cn 000300-000317
PDP11.opSWAB, // 0x00Dn 000320-000337
PDP11.opSWAB, // 0x00En 000340-000357
PDP11.opSWAB // 0x00Fn 000360-000377
PDP11.opSWAB, // 0x00Cn 0003DD
PDP11.opSWAB, // 0x00Dn 0003DD
PDP11.opSWAB, // 0x00En 0003DD
PDP11.opSWAB // 0x00Fn 0003DD
];
PDP11.aOps000X_1170 = [
PDP11.opHALT, // 0x0000 000000
PDP11.opWAIT, // 0x0001 000001
PDP11.opRTI, // 0x0002 000002
PDP11.opBPT, // 0x0003 000003
PDP11.opIOT, // 0x0004 000004
PDP11.opRESET, // 0x0005 000005
PDP11.opRTT, // 0x0006 000006
PDP11.opUndefined, // 0x0007
PDP11.opUndefined, // 0x0008
PDP11.opUndefined, // 0x0009
PDP11.opUndefined, // 0x000A
PDP11.opUndefined, // 0x000B
PDP11.opUndefined, // 0x000C
PDP11.opUndefined, // 0x000D
PDP11.opUndefined, // 0x000E
PDP11.opUndefined // 0x000F
];
PDP11.aOps00AX_1170 = [
@ -2016,25 +2071,6 @@ PDP11.aOps00BX_1170 = [
PDP11.opSEx // 0x00BF 000277
];
PDP11.aOps000X_1170 = [
PDP11.opHALT, // 0x0000 000000
PDP11.opWAIT, // 0x0001 000001
PDP11.opRTI, // 0x0002 000002
PDP11.opBPT, // 0x0003 000003
PDP11.opIOT, // 0x0004 000004
PDP11.opRESET, // 0x0005 000005
PDP11.opRTT, // 0x0006 000006
PDP11.opUndefined, // 0x0007
PDP11.opUndefined, // 0x0008
PDP11.opUndefined, // 0x0009
PDP11.opUndefined, // 0x000A
PDP11.opUndefined, // 0x000B
PDP11.opUndefined, // 0x000C
PDP11.opUndefined, // 0x000D
PDP11.opUndefined, // 0x000E
PDP11.opUndefined // 0x000F
];
PDP11.aOps7Xnn_1170 = [
PDP11.opMUL, // 0x70nn
PDP11.opMUL, // 0x71nn

View file

@ -172,10 +172,12 @@ CPUStatePDP11.prototype.initRegs = function()
this.opFlags = 0;
/*
* srcMode and dstMode are set by getVirtualByMode(), indicating to the opcode handlers the mode(s) used
* as part of the current opcode. Ditto for srcReg and dstReg.
* srcMode and srcReg are set by getVirtualByMode() for reads, and dstMode and dstReg are set for writes/updates.
* indicating to the opcode handlers the mode(s) and register(s) used as part of the current opcode, so that they
* can calculate the correct number of cycles. dstAddr is set for byte operations that also need to know the
* effective address for their cycle calculation.
*/
this.srcMode = this.dstMode = 0;
this.srcMode = this.dstMode = this.dstAddr = 0;
this.srcReg = this.dstReg = 0;
this.cpuType = 70;
@ -1335,16 +1337,18 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
}
/*
* Modes that need to auto-increment or auto-decrement will break,
* n order to perform the update; others will return an address immediately.
* Modes that need to auto-increment or auto-decrement will break, in order to perform the
* update; others will return an address immediately.
*/
switch (mode) {
/*
* Mode 0: Registers don't have a virtual address, so trap.
* TODO: Review whether we should ever actually hit this code path (hence the assert).
*
* NOTE: Most instruction code paths never call getVirtualByMode() when the mode is zero;
* JMP and JSR instructions are exceptions, but that's OK, because those are documented to
* "cause an 'illegal' instruction" condition", which we interpret to mean a BUS_ERROR trap.
*/
case 0:
this.assert(false);
this.trap(PDP11.TRAP.BUS_ERROR, PDP11.REASON.NOREGADDR);
return 0;
@ -1363,7 +1367,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
this.opFlags |= PDP11.OPFLAG.TRAP_SP;
}
}
this.nStepCycles -= 2 + 1;
this.nStepCycles -= (2 + 1);
return (reg === 7? this.regsGen[reg] : (this.regsGen[reg] | addrDSpace));
/*
@ -1378,7 +1382,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
stepSize = 1;
}
}
this.nStepCycles -= 2 + 1;
this.nStepCycles -= (2 + 1);
break;
/*
@ -1391,7 +1395,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
virtualAddress = this.readWordFromVirtual(virtualAddress);
// if (reg === 7) LOG_ADDRESS(virtualAddress); // @#n not operational
virtualAddress |= addrDSpace;
this.nStepCycles -= 5 + 2;
this.nStepCycles -= (5 + 2);
break;
/*
@ -1402,7 +1406,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
if (reg < 6 && (accessFlags & PDP11.ACCESS.BYTE)) stepSize = -1;
virtualAddress = (this.regsGen[reg] + stepSize) & 0xffff;
if (reg !== 7) virtualAddress |= addrDSpace;
this.nStepCycles -= 3 + 1;
this.nStepCycles -= (3 + 1);
break;
/*
@ -1413,7 +1417,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
virtualAddress = (this.regsGen[reg] - 2) & 0xffff;
if (reg !== 7) virtualAddress |= addrDSpace;
virtualAddress = this.readWordFromVirtual(virtualAddress) | addrDSpace;
this.nStepCycles -= 6 + 2;
this.nStepCycles -= (6 + 2);
break;
/*
@ -1422,7 +1426,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
case 6:
virtualAddress = this.getPCWord();
virtualAddress = ((virtualAddress + this.regsGen[reg]) & 0xffff) | addrDSpace;
this.nStepCycles -= 4 + 2;
this.nStepCycles -= (4 + 2);
return virtualAddress;
/*
@ -1432,7 +1436,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags)
virtualAddress = this.getPCWord();
virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff;
virtualAddress = this.readWordFromVirtual(virtualAddress | PDP11.ACCESS.DSPACE) | addrDSpace;
this.nStepCycles -= 7 + 3;
this.nStepCycles -= (7 + 3);
return virtualAddress;
}
@ -1496,7 +1500,7 @@ CPUStatePDP11.prototype.readWordFromPrevSpace = function(opCode, accessFlags)
var src;
if (!(opCode & PDP11.OPMODE.MASK)) {
this.srcMode = 0;
var reg = opCode & PDP11.OPREG.MASK;
var reg = this.srcReg = opCode & PDP11.OPREG.MASK;
if (reg != 6 || ((this.regPSW >> 2) & PDP11.PSW.PMODE) === (this.regPSW & PDP11.PSW.PMODE)) {
src = this.regsGen[reg];
} else {
@ -1529,7 +1533,7 @@ CPUStatePDP11.prototype.writeWordToPrevSpace = function(opCode, accessFlags, dat
}
if (!(opCode & PDP11.OPMODE.MASK)) {
this.dstMode = 0;
var reg = opCode & PDP11.OPREG.MASK;
var reg = this.dstReg = opCode & PDP11.OPREG.MASK;
if (reg != 6 || ((this.regPSW >> 2) & PDP11.PSW.PMODE) === (this.regPSW & PDP11.PSW.PMODE)) {
this.regsGen[reg] = data;
} else {
@ -1557,7 +1561,7 @@ CPUStatePDP11.prototype.readWordByMode = function(addressMode)
var result;
if (!(addressMode & PDP11.OPMODE.MASK)) {
this.srcMode = 0;
result = this.regsGen[addressMode & PDP11.OPREG.MASK];
result = this.regsGen[this.srcReg = addressMode & PDP11.OPREG.MASK];
} else {
/*
* NOTE: This used to call readWordFromPhysical(), after calling getAddrVirtual(), but the latter is
@ -1581,7 +1585,7 @@ CPUStatePDP11.prototype.readByteByMode = function(addressMode)
var result;
if (!(addressMode & PDP11.OPMODE.MASK)) {
this.srcMode = 0;
result = this.regsGen[addressMode & PDP11.OPREG.MASK] & 0xff;
result = this.regsGen[this.srcReg = addressMode & PDP11.OPREG.MASK] & 0xff;
} else {
result = this.readByteFromPhysical(this.getAddr(addressMode, PDP11.ACCESS.READ_BYTE));
}
@ -1602,7 +1606,7 @@ CPUStatePDP11.prototype.updateWordByMode = function(addressMode, src, fnOp)
{
if (!(addressMode & PDP11.OPMODE.MASK)) {
this.dstMode = 0;
var reg = addressMode & PDP11.OPREG.MASK;
var reg = this.dstReg = addressMode & PDP11.OPREG.MASK;
this.regsGen[reg] = fnOp.call(this, src, this.regsGen[reg]);
} else {
var addr = this.getAddr(addressMode, PDP11.ACCESS.UPDATE_WORD);
@ -1624,10 +1628,10 @@ CPUStatePDP11.prototype.updateByteByMode = function(addressMode, src, fnOp)
{
if (!(addressMode & PDP11.OPMODE.MASK)) {
this.dstMode = 0;
var reg = addressMode & PDP11.OPREG.MASK;
var reg = this.dstReg = addressMode & PDP11.OPREG.MASK;
this.regsGen[reg] = (this.regsGen[reg] & 0xff00) | fnOp.call(this, src, this.regsGen[reg]);
} else {
var addr = this.getAddr(addressMode, PDP11.ACCESS.UPDATE_BYTE);
var addr = this.dstAddr = this.getAddr(addressMode, PDP11.ACCESS.UPDATE_BYTE);
this.writeByteToPhysical(addr, fnOp.call(this, src, this.readByteFromPhysical(addr)));
}
};
@ -1646,7 +1650,7 @@ CPUStatePDP11.prototype.writeWordByMode = function(addressMode, data)
{
if (!(addressMode & PDP11.OPMODE.MASK)) {
this.dstMode = 0;
this.regsGen[addressMode & PDP11.OPREG.MASK] = data & 0xffff;
this.regsGen[this.dstReg = addressMode & PDP11.OPREG.MASK] = data & 0xffff;
} else {
this.writeWordToPhysical(this.getAddr(addressMode, PDP11.ACCESS.WRITE_WORD), data);
}
@ -1668,7 +1672,7 @@ CPUStatePDP11.prototype.writeByteByMode = function(addressMode, data, writeFlags
{
if (!(addressMode & PDP11.OPMODE.MASK)) {
this.dstMode = 0;
var reg = addressMode & PDP11.OPREG.MASK;
var reg = this.dstReg = addressMode & PDP11.OPREG.MASK;
if (!data) {
this.regsGen[reg] &= ~0xff; // TODO: Profile to determine if this is a win
} else if (writeFlags & PDP11.WRITE.SIGNEXT) {
@ -1687,10 +1691,15 @@ CPUStatePDP11.prototype.writeByteByMode = function(addressMode, data, writeFlags
*
* @this {CPUStatePDP11}
* @param {number} opCode
* @param {boolean|number} condition
*/
CPUStatePDP11.prototype.branch = function(opCode)
CPUStatePDP11.prototype.branch = function(opCode, condition)
{
this.setPC(this.regsGen[PDP11.REG.PC] + ((opCode << 24) >> 23));
if (condition) {
this.setPC(this.getPC() + ((opCode << 24) >> 23));
this.nStepCycles -= 2;
}
this.nStepCycles -= (2 + 1);
};
/**

View file

@ -321,7 +321,7 @@ var PDP11 = {
* ES6 ALERT: By using octal constants, this is the first place I'm dipping my toe into ECMAScript 6 waters.
* If you're loading this raw source code into your browser, then by now (2016) you're almost certainly using
* an ES6-aware browser. Everyone else should be using code compiled by Google's Closure Compiler, which
* automatically produces code that's backward-compatible with ES5.1 (for example, octal constants are
* we configure to produce code that's backward-compatible with ES5 (for example, octal constants are
* converted to decimal values).
*
* For more details: https://github.com/google/closure-compiler/wiki/ECMAScript6

View file

@ -1058,14 +1058,14 @@ Component.prototype = {
};
/*
* The following polyfills provide ES5.1 functionality that's missing in older browsers (eg, IE8),
* The following polyfills provide ES5 functionality that's missing in older browsers (eg, IE8),
* allowing PCjs apps to run without slamming into exceptions; however, due to the lack of HTML5 canvas
* support in those browsers, all you're likely to see are "soft" errors (eg, "Missing <canvas> support").
*
* Perhaps we can implement a text-only faux video display for a fun retro-browser experience someday.
*
* TODO: Come up with a better place to put these polyfills. We will likely have more if we decide to
* make the leap from ES5.1 to ES6 features.
* make the leap from ES5 to ES6 features.
*/
/*

View file

@ -9,213 +9,213 @@ function v(a){window&&window.alert(a)}function ta(a){var b=!1;window&&(b=window.
function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(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)?!0:!1}return!1}function Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Da(a,b){function c(){b(100===d)&&(f=setTimeout(c,d),d=100)}var d=0,f=null,e=!1;a.onmousedown=function(){e||f||(d=500,c())};a.ontouchstart=function(){f||(d=500,c())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ea={init:[],show:[],exit:[]},Fa=!1,Ga=!1,Ha=!0;function Ia(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Pa(a){Ea.init.push(a)}
function Qa(a){if(Ha)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ra(a){!Ha&&a?(Ha=!0,Fa&&Sa("init"),Ga&&Sa("show")):Ha=a}function Sa(a){Ea[a]&&Qa(Ea[a])}Ia("onload",function(){Fa=!0;Qa(Ea.init)});Ia("onpageshow",function(){Ga=!0;Qa(Ea.show)});Ia(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Qa(Ea.exit)});
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Sc=b;b=this.id.indexOf(".");0>b?this.Fb=this.id:(this.wc=this.id.substr(0,b),this.Fb=this.id.substr(b+1));this[a]=c;this.u={ready:!1,Kb:!1,ic:!1,ja:!1,error:!1};this.ac=null;this.u.error=!1;this.K={};this.G=null;this.ka=d||0;x.push(this)}var Ta=void 0,Ua={};
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Uc=b;b=this.id.indexOf(".");0>b?this.ic=this.id:(this.yc=this.id.substr(0,b),this.ic=this.id.substr(b+1));this[a]=c;this.u={ready:!1,Kb:!1,jc:!1,ja:!1,error:!1};this.$b=null;this.u.error=!1;this.M={};this.G=null;this.ka=d||0;x.push(this)}var Ta=void 0,Ua={};
if(window){Ta||(Ta=window.location.search.substr(1));for(var Va,Wa=/\+/g,Xa=/([^&=]+)=?([^&]*)/g;Va=Xa.exec(Ta);)Ua[decodeURIComponent(Va[1].replace(Wa," "))]=decodeURIComponent(Va[2].replace(Wa," "))}function Ya(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function B(a,b){b||(b=w);a.prototype=Ya(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Za=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Za={},x=[];function $a(a,b,c){Za[a]&&b&&(Za[a][b]=c)}function ab(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function bb(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<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function cb(a,b){b=D(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=C(e))&&g.binding&&a.xa(g.type,g.binding,e,g.value),k=h.length}}}}
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},xa:function(a,b,c){switch(b){case "clear":return this.K[b]||(this.K[b]=c,c.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.kb=this.K[b]=c,c.value="",this.g=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.ra=function(a){this.g(a,this.Fb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Fb+": "+a)},ra:function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)},Qa:function(){return this.u.ja=!0},Pa:function(a,b){b&&(this.u.ja=!1);return!0}};function db(a,b,c,d){a.G&&(!0===c||E(a,c|0))&&a.G.message(b,d)}function E(a,b){if(a.G){a===a.G?b|=0:b=b||a.ka;var c=a.G.ka&b;return!!b&&c===b||!!(c&a.G.Oc)}return!1}
function eb(a,b){if(a.u.ic)return a.u.Kb=!1,a.u.ic=!1;if(a.u.error)return a.g(a.toString()+" error"),!1;a.u.Kb=b;return a.u.Kb}function fb(a,b){a.u.Kb&&(b?a.u.ic=!0:void 0===b&&a.g(a.toString()+" busy"));return a.u.Kb}function F(a){if(!a.u.error&&(a.u.ready=!0,a.u.ready)){var b=a.ac;a.ac=null;b&&b()}}function gb(a,b){b&&(a.u.ready?b():a.ac=b);return a.u.ready}function tb(a){return a.u.error?(a.g(a.toString()+" error"),!0):!1}function ub(a,b){a.u.error=!0;a.ra(b)}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},xa:function(a,b,c){switch(b){case "clear":return this.M[b]||(this.M[b]=c,c.onclick=function(a){return function(){a.M.print&&(a.M.print.value="")}}(this)),!0;case "print":return this.M[b]||(this.kb=this.M[b]=c,c.value="",this.g=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.ra=function(a){this.g(a,this.ic)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.ic+": "+a)},ra:function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)},Ra:function(){return this.u.ja=!0},Qa:function(a,b){b&&(this.u.ja=!1);return!0}};function db(a,b,c,d){a.G&&(!0===c||E(a,c|0))&&a.G.message(b,d)}function E(a,b){if(a.G){a===a.G?b|=0:b=b||a.ka;var c=a.G.ka&b;return!!b&&c===b||!!(c&a.G.Oc)}return!1}
function eb(a,b){if(a.u.jc)return a.u.Kb=!1,a.u.jc=!1;if(a.u.error)return a.g(a.toString()+" error"),!1;a.u.Kb=b;return a.u.Kb}function fb(a,b){a.u.Kb&&(b?a.u.jc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.u.Kb}function F(a){if(!a.u.error&&(a.u.ready=!0,a.u.ready)){var b=a.$b;a.$b=null;b&&b()}}function gb(a,b){b&&(a.u.ready?b():a.$b=b);return a.u.ready}function tb(a){return a.u.error?(a.g(a.toString()+" error"),!0):!1}function ub(a,b){a.u.error=!0;a.ra(b)}
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});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return f.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),f=this;c.prototype=this.prototype;b.prototype=new c;return b});
var vb="undefined"!==typeof ArrayBuffer,G={cpu:1,trap:16,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function wb(a){w.call(this,"Panel",a,wb)}B(wb);l=wb.prototype;l.xa=function(a,b,c,d){return this.B&&this.B.xa(a,b,c,d)||this.b&&this.b.xa(a,b,c,d)||this.G&&this.G.xa(a,b,c,d)?!0:this.parent.xa.call(this,a,b,c,d)};l.Ya=function(a,b,c,d){this.B=a;this.H=b;this.b=c;this.G=d};
l.Qa=function(a,b){b||xb();return!0};l.Pa=function(){return!0};l.Ha=function(){};function xb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=C(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new wb(f));cb(e,d);a&&F(e)}}Pa(xb);
function yb(a,b,c){w.call(this,"Bus",a,yb,64);this.b=b;this.G=c;this.I=a.busWidth||16;this.D=Math.pow(2,this.I);this.j=this.D-1|0;this.Z=(this.I>>1)+2;10>this.Z&&(this.Z=10);15<this.Z&&(this.Z=15);this.Ea=1<<this.Z;this.L=this.Ea>>2;this.f=this.Ea-1;this.A=this.D/this.Ea|0;this.B=this.A-1;this.Ta=[];this.F=null;this.Mb=this.Kc;a=new H;zb(a,this.G);this.O=Array(this.A);for(b=0;b<this.A;b++)this.O[b]=a;this.Hb=Array(4);this.Hb[0]=Ab;this.Hb[1]=Bb;this.Hb[2]=Cb;this.Hb[3]=Db;Eb(this,this.D-8192,8192,
Fb,this);Eb(this,57344,8192,Fb,this);F(this)}B(yb);function Ab(a,b){var c=this.controller,d=c.Ta[a];if(d){E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0);if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.Ta[a&-2])&&(E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0),d[2]))return d[2](b&-2)>>8;c.g("warning: unconverted read access to byte @"+r(b));return c.Mb(b,-1,1)}
function Bb(a,b,c){var d=this.controller,f=d.Ta[a];if(f){E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0);if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.Ta[a&-2])&&(E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0),f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.g("warning: unconverted write access to byte @"+r(c));d.Mb(c,b,1)}
function Cb(a,b){var c=this.controller;if(a=c.Ta[a]){E(c)&&db(c,a[5]+".readWord("+r(b)+")",0,!0);if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.g("warning: unconverted read access to word @"+r(b));return c.Mb(b,-1,0)}function Db(a,b,c){var d=this.controller;if(a=d.Ta[a]){E(d)&&db(d,a[5]+".writeWord("+r(c)+","+r(b)+")",0,!0);if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.g("warning: unconverted write access to word @"+r(c));d.Mb(c,b,0)}l=yb.prototype;
l.reset=function(){this.F&&this.F()};l.Kc=function(){return 0};l.Qa=function(a,b){b||this.reset();return!0};
function Eb(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.Z;0<g&&h<a.O.length;){var k=a.O[h],m=h*a.Ea,n=a.Ea-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.w)return k.Yb+=k.w-e,k.w=e,!0;if(e>=k.w+k.Yb){n=k.size-(e-m);n>g&&(n=g);k.Yb=e-k.w+n;e=m+a.Ea;g-=n;h++;continue}}return Gb(1,e,g)}e=new H(e,n,a.Ea,d,f);zb(e,a.G,k);a.O[h++]=e;e=m+a.Ea;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+t(b,8,!0)),!0):Gb(2,b,c)}
l.sb=function(a){return this.O[(a&this.j)>>>this.Z].wb(a&this.f,a)};l.Ka=function(a){var b=a&this.f,c=(a&this.j)>>>this.Z;return b!=this.f?this.O[c].Rb(b,a):this.O[c++].wb(b,a)|this.O[c&this.B].wb(0,a+1)<<8};function Ib(a,b){var c=b&a.f,d=(b&a.j)>>>a.Z;return c!=a.f?a.O[d].oc(c,b):a.O[d++].Qb(c,b)|a.O[d&a.B].Qb(0,b+1)<<8}l.Vb=function(a,b){this.O[(a&this.j)>>>this.Z].Cb(a&this.f,b&255,a)};
l.pb=function(a,b){var c=a&this.f,d=(a&this.j)>>>this.Z;c!=this.f?this.O[d].Jc(c,b&65535,a):(this.O[d++].Cb(c,b&255,a),this.O[d&this.B].Cb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,c=[],d=0;d<a.A;d++){var f=a.O[d];if(f.Xa||f.Rc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Kb(a,b){var c=Lb,d;for(d in c)for(var f=c[d],e=f[0]?f[0].bind(b):null,g=f[1]?f[1].bind(b):null,h=f[2]?f[2].bind(b):null,k=f[3]?f[3].bind(b):null,m=a,n=+d,f=f[4],p=+d;p<=n;p+=2){var q=p&8191;void 0!==m.Ta[q]?v("I/O address already registered: "+t(p,8,!0)):m.Ta[q]=[e,g,h,k,!1,f||"unknown"]}}function Mb(a,b,c){a.F=b;a.Mb=c}function Gb(a,b,c){v("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}
function I(a){w.call(this,"Device",a,I);this.f={nc:[],va:0,ya:128,G:127,Qc:0};this.B={data:0,wd:0,tb:20,pd:0};this.j={M:0,sc:-1};this.A={Tb:2496,oa:0,R:128,Ub:0,Sb:0,wa:0,Ec:0,qa:[],hb:[406,406,406,406],aa:[12,12,12,12]};this.D={M:129,Jb:0,ga:0,$a:0,Ua:0,fb:0,qa:[],aa:[40,40,40,40],hb:[1024,1024,512,512],Mc:[157,157,29,29]};this.F={b:[8210,8208,8210,8226],aa:[22,22,22,50],gb:[19,19,19,32],hc:[815,411,815,630],qa:[],T:2176,zb:0,xb:0,Ga:[0,0,0,0,0,0,0,0],Fa:0,sa:[4544,4544,4544,4544,4544,4544,4544,
4544],yb:[0,0,0,0,0,0,0,0],ob:0,md:[0,0,0,0,0,0,0,0],Fc:0,Gc:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],nd:[1,2,3,4,5,6,7,8],Hc:[0,0,0,0,0,0,0,0],Sa:[0,0,0,0,0,0,0,0],gc:[0,0,0,0,0,0,0,0],kd:[0,0,0,0,0,0,0,0],ld:[0,0,0,0,0,0,0,0],hd:[0,0,0,0,0,0,0,0],jd:[0,0,0,0,0,0,0,0],eb:0,qc:0}}B(I);
var vb="undefined"!==typeof ArrayBuffer,G={cpu:1,trap:16,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function wb(a){w.call(this,"Panel",a,wb)}B(wb);l=wb.prototype;l.xa=function(a,b,c,d){return this.B&&this.B.xa(a,b,c,d)||this.b&&this.b.xa(a,b,c,d)||this.G&&this.G.xa(a,b,c,d)?!0:this.parent.xa.call(this,a,b,c,d)};l.Za=function(a,b,c,d){this.B=a;this.H=b;this.b=c;this.G=d};
l.Ra=function(a,b){b||xb();return!0};l.Qa=function(){return!0};l.Ha=function(){};function xb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=C(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new wb(f));cb(e,d);a&&F(e)}}Pa(xb);
function yb(a,b,c){w.call(this,"Bus",a,yb,64);this.b=b;this.G=c;this.I=a.busWidth||16;this.D=Math.pow(2,this.I);this.i=this.D-1|0;this.Z=(this.I>>1)+2;10>this.Z&&(this.Z=10);15<this.Z&&(this.Z=15);this.Ea=1<<this.Z;this.K=this.Ea>>2;this.f=this.Ea-1;this.A=this.D/this.Ea|0;this.B=this.A-1;this.Ua=[];this.F=null;this.Lb=this.Kc;a=new H;zb(a,this.G);this.O=Array(this.A);for(b=0;b<this.A;b++)this.O[b]=a;this.Gb=Array(4);this.Gb[0]=Ab;this.Gb[1]=Bb;this.Gb[2]=Cb;this.Gb[3]=Db;Eb(this,this.D-8192,8192,
Fb,this);Eb(this,57344,8192,Fb,this);F(this)}B(yb);function Ab(a,b){var c=this.controller,d=c.Ua[a];if(d){E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0);if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.Ua[a&-2])&&(E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0),d[2]))return d[2](b&-2)>>8;c.g("warning: unconverted read access to byte @"+r(b));return c.Lb(b,-1,1)}
function Bb(a,b,c){var d=this.controller,f=d.Ua[a];if(f){E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0);if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.Ua[a&-2])&&(E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0),f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.g("warning: unconverted write access to byte @"+r(c));d.Lb(c,b,1)}
function Cb(a,b){var c=this.controller;if(a=c.Ua[a]){E(c)&&db(c,a[5]+".readWord("+r(b)+")",0,!0);if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.g("warning: unconverted read access to word @"+r(b));return c.Lb(b,-1,0)}function Db(a,b,c){var d=this.controller;if(a=d.Ua[a]){E(d)&&db(d,a[5]+".writeWord("+r(c)+","+r(b)+")",0,!0);if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.g("warning: unconverted write access to word @"+r(c));d.Lb(c,b,0)}l=yb.prototype;
l.reset=function(){this.F&&this.F()};l.Kc=function(){return 0};l.Ra=function(a,b){b||this.reset();return!0};
function Eb(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.Z;0<g&&h<a.O.length;){var k=a.O[h],m=h*a.Ea,n=a.Ea-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.w)return k.Xb+=k.w-e,k.w=e,!0;if(e>=k.w+k.Xb){n=k.size-(e-m);n>g&&(n=g);k.Xb=e-k.w+n;e=m+a.Ea;g-=n;h++;continue}}return Gb(1,e,g)}e=new H(e,n,a.Ea,d,f);zb(e,a.G,k);a.O[h++]=e;e=m+a.Ea;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+t(b,8,!0)),!0):Gb(2,b,c)}
l.tb=function(a){return this.O[(a&this.i)>>>this.Z].xb(a&this.f,a)};l.Ka=function(a){var b=a&this.f,c=(a&this.i)>>>this.Z;return b!=this.f?this.O[c].Qb(b,a):this.O[c++].xb(b,a)|this.O[c&this.B].xb(0,a+1)<<8};function Ib(a,b){var c=b&a.f,d=(b&a.i)>>>a.Z;return c!=a.f?a.O[d].oc(c,b):a.O[d++].Pb(c,b)|a.O[d&a.B].Pb(0,b+1)<<8}l.Ub=function(a,b){this.O[(a&this.i)>>>this.Z].Db(a&this.f,b&255,a)};
l.pb=function(a,b){var c=a&this.f,d=(a&this.i)>>>this.Z;c!=this.f?this.O[d].Jc(c,b&65535,a):(this.O[d++].Db(c,b&255,a),this.O[d&this.B].Db(0,b>>8&255,a+1))};function Jb(a){for(var b=0,c=[],d=0;d<a.A;d++){var f=a.O[d];if(f.Ya||f.Rc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Kb(a,b){var c=Lb,d;for(d in c)for(var f=c[d],e=f[0]?f[0].bind(b):null,g=f[1]?f[1].bind(b):null,h=f[2]?f[2].bind(b):null,k=f[3]?f[3].bind(b):null,m=a,n=+d,f=f[4],p=+d;p<=n;p+=2){var q=p&8191;void 0!==m.Ua[q]?v("I/O address already registered: "+t(p,8,!0)):m.Ua[q]=[e,g,h,k,!1,f||"unknown"]}}function Mb(a,b,c){a.F=b;a.Lb=c}function Gb(a,b,c){v("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}
function I(a){w.call(this,"Device",a,I);this.f={nc:[],va:0,ya:128,f:127,Qc:0};this.B={data:0,xd:0,ub:20,qd:0};this.i={N:0,sc:-1};this.A={Sb:2496,oa:0,R:128,Tb:0,Rb:0,wa:0,Ec:0,qa:[],ib:[406,406,406,406],aa:[12,12,12,12]};this.D={N:129,Jb:0,ga:0,ab:0,Va:0,gb:0,qa:[],aa:[40,40,40,40],ib:[1024,1024,512,512],Mc:[157,157,29,29]};this.F={b:[8210,8208,8210,8226],aa:[22,22,22,50],hb:[19,19,19,32],hc:[815,411,815,630],qa:[],T:2176,Ab:0,yb:0,Ga:[0,0,0,0,0,0,0,0],Fa:0,sa:[4544,4544,4544,4544,4544,4544,4544,
4544],zb:[0,0,0,0,0,0,0,0],ob:0,nd:[0,0,0,0,0,0,0,0],Fc:0,Gc:[0,0,0,0,0,0,0,0],i:[0,0,0,0,0,0,0,0],od:[1,2,3,4,5,6,7,8],Hc:[0,0,0,0,0,0,0,0],Ta:[0,0,0,0,0,0,0,0],gc:[0,0,0,0,0,0,0,0],ld:[0,0,0,0,0,0,0,0],md:[0,0,0,0,0,0,0,0],jd:[0,0,0,0,0,0,0,0],kd:[0,0,0,0,0,0,0,0],fb:0,qc:0}}B(I);
var Nb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=I.prototype;l.Ya=function(a,b,c,d){this.H=b;this.b=c;this.G=d;var f=this;this.j.sc=Ob(this.b,function(){f.j.Za|=128;f.j.Za&64&&(J(f.b,0,6,64),Pb(f.b,f.j.sc))});Kb(b,this);Mb(b,this.reset.bind(this),this.Lc.bind(this));F(this)};l.$c=function(){var a=this.j.Za;this.j.Za&=-129;return a};
l.rd=function(a){this.j.Za=a;a&64&&Pb(this.b,this.j.sc);this.j.Za=a&-129};l.ad=function(){var a=this.b;return a.I&62337|a.za<<5|a.Ba<<1};l.sd=function(a){var b=4,c=this.b;c.I=a&=62337;c.za=a>>5&3;c.Ba=a>>1&15;c.bc=a&257?a&1?6:4:0;Qb(c);a=c.I;a&1|256&&(b=this.b.nb&16?1:2);this.B.tb=this.B.tb&-8|b};l.cd=function(){return this.f.va};l.ud=function(a){this.f.va=this.f.va&128|a&-129};l.dd=function(){return this.f.ya};
l.vd=function(a){if(128==(this.f.ya&192)&&a&64){var b=this;J(this.b,8,4,52,function(){b.f.ya|=128;return!!(b.f.ya&64)})}this.f.ya=this.f.ya&128|a&-129};l.bd=function(){return Zb(this.b)};l.td=function(a){$b(this.b,a&-1809|Zb(this.b)&1808);this.b.C|=128};
function ac(a){var b=a.A,c,d,f,e=b.wa>>13&7;"undefined"===typeof b.qa[e]&&(b.qa[e]={cache:[],postProcess:a.ed,drive:e,blocksize:256,mapped:0,maxblock:b.hb[e]*b.aa[e],url:"rk"+e+".dsk"});b.R&=-129;switch(b.R>>1&7){case 0:b.Tb=2496;b.oa=0;b.R=128;b.wa=0;break;case 1:if((b.wa>>4&511)>=b.hb[e]){b.oa|=32832;b.R|=49152;break}if((b.wa&15)>=b.aa[e]){b.oa|=32800;b.R|=49152;break}c=(b.wa>>4&511)*b.aa[e]+(b.wa&15);d=(b.R&48)<<12|b.Sb;f=65536-b.Ub&65535;bc(a,b.qa[e],c,d,f);return;case 2:if((b.wa>>4&511)>=b.hb[e])b.oa|=
32832,b.R|=49152;else if((b.wa&15)>=b.aa[e])b.oa|=32800,b.R|=49152;else{c=(b.wa>>4&511)*b.aa[e]+(b.wa&15);d=(b.R&48)<<12|b.Sb;f=65536-b.Ub&65535;a.dc(b.qa[e],c,d,f);return}}b.Tb=e<<13|b.Tb&8176|b.wa%9&15;J(a.b,20,5,144,function(){b.R=b.R&65534|128;return!!(b.R&64)})}l.ed=function(a,b,c,d,f){var e=this.A;e.Sb=d&65535;e.R=e.R&-49|d>>12&48;e.Ub=65536-f&65535;switch(a){case 1:e.oa|=33024;e.R|=49152;break;case 2:e.oa|=33792,e.R|=49152}J(this.b,20,5,144,function(){e.R=e.R&65534|128;return!!(e.R&64)})};
function cc(a){var b=a.D,c,d,f,e=b.M>>8&3;b.M&=-2;"undefined"===typeof b.qa[e]&&(b.qa[e]={cache:[],postProcess:a.fd,drive:e,blocksize:128,mapped:1,maxblock:b.hb[e]*b.aa[e],url:"rl"+e+".dsk"});switch(b.M>>1&7){case 2:b.$a&8&&(b.M&=63);b.$a=b.Mc[e]|b.fb&64;break;case 3:1==(b.ga&3)&&(b.fb=b.ga&4?b.fb+(b.ga&65408)&65408|b.ga<<2&64:b.fb-(b.ga&65408)&65408|b.ga<<2&64,b.ga=b.fb);break;case 4:b.$a=b.fb;break;case 5:if(b.ga>>6>=b.hb[e]){b.M|=37888;break}if((b.ga&63)>=b.aa[e]){b.M|=37888;break}c=(b.ga>>6)*
b.aa[e]+(b.ga&63);d=(b.Ua&63)<<16|b.Jb;f=65536-b.$a&65535;bc(a,b.qa[e],c,d,f);return;case 6:if(b.ga>>6>=b.hb[e])b.M|=37888;else if((b.ga&63)>=b.aa[e])b.M|=37888;else{c=(b.ga>>6)*b.aa[e]+(b.ga&63);d=(b.Ua&63)<<16|b.Jb;f=65536-b.$a&65535;a.dc(b.qa[e],c,d,f);return}}J(a.b,20,5,112,function(){b.M|=129;return!!(b.M&64)})}
l.fd=function(a,b,c,d,f){var e=this.D;e.Jb=d&65535;e.M=e.M&-49|d>>12&48;e.Ua=d>>16&63;e.ga=~~(c/e.aa[b.Na])<<6|c%e.aa[b.Na];e.fb=e.ga;e.$a=65536-f&65535;switch(a){case 1:e.M|=33792;break;case 2:e.M|=40960}J(this.b,20,5,112,function(){e.M|=129;return!!(e.M&64)})};function dc(a){a=a.F;a.T=2176;a.Fa=0;a.sa=[4544,4544,4544,4544,4544,4544,4544,4544];a.yb=[0,0,0,0,0,0,0,0];a.ob=a.zb=a.xb=a.eb=a.qc=0}
function ec(a,b){var c=a.F,d,f,e;c.T&=-16513;c.Fa&=-2049;c.sa[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof c.qa[b]&&(c.qa[b]={cache:[],postProcess:a.gd,drive:b,blocksize:256,mapped:0,maxblock:c.hc[0]*c.gb[0]*c.aa[0],url:"rp"+b+".dsk"});switch(c.T&63){case 5:c.gc[b]=c.Sa[b];c.T|=32896;c.sa[b]|=32896;c.ob|=1<<b;break;case 9:dc(a);break;case 19:c.sa[b]|=64;break;case 49:if(c.Sa[b]>=c.hc[0]||c.Ga[b]>>8>=c.gb[0]||(c.Ga[b]&255)>=c.aa[0]){c.yb[b]|=1024;c.T|=49152;break}d=(c.Sa[b]*c.gb[0]+(c.Ga[b]>>8))*
c.aa[0]+(c.Ga[b]&255);f=(c.eb&63)<<16|c.xb;e=65536-c.zb&65535;bc(a,c.qa[b],d,f,e);return;case 57:if(c.Sa[b]>=c.hc[0]||c.Ga[b]>>8>=c.gb[0]||(c.Ga[b]&255)>=c.aa[0])c.yb[b]|=1024,c.T|=49152;else{d=(c.Sa[b]*c.gb[0]+(c.Ga[b]>>8))*c.aa[0]+(c.Ga[b]&255);f=(c.eb&63)<<16|c.xb;e=65536-c.zb&65535;a.dc(c.qa[b],d,f,e);return}}J(a.b,3,5,172,function(){c.T=c.T&65534|128;c.sa[b]|=128;return!!(c.T&64)})}
l.gd=function(a,b,c,d,f){var e=this.F;e.zb=65536-f&65535;e.xb=d&65535;e.T=e.T&-769|d>>8&768;e.eb=d>>16&63;f=~~(c/e.aa[0]);d=~~(f/e.gb[0]);e.Ga[b.Na]=f%e.gb[0]<<8|c%e.aa[0];e.gc[b.Na]=e.Sa[b.Na]=d;e.ob|=1<<b.Na;c>=b.Xc-1&&(e.sa[b.Na]|=1024);switch(a){case 1:e.Fa|=512;e.T|=49152;break;case 2:e.Fa|=2048,e.T|=49152}J(this.b,20,5,172,function(){e.sa[b.Na]|=128;e.T=e.T&65534|128;return!!(e.T&64)})};
function fc(a,b,c,d,f,e){var g=~~((e+c.Va-1)/c.Va),h=new XMLHttpRequest;2048>g&&d+2048<c.Xc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Va<<1)+"-"+(((d+g)*c.Va<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,p,q;m=h.response;if(h.status&&206!=h.status||!m)c.mc(1,c,d,f,e);else{m=new Uint8Array(m);n=d;for(q=0;q<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],p=0;p<c.Va;p++)c.cache[n][p]=q<m.length?
m[q]&255|m[q+1]<<8&65280:0,q+=2;else q+=c.Va<<1;n++}g(c,d,f,e)}}};h.send(null)}function K(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:a.b.N(4,122):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.dc=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){fc(this,this.dc,a,b,c,d);return}for(f=0;f<a.Va&&0<d;f++){var e=a.Wc?gc(this.b,c):c;this.b.H.pb(e,a.cache[b][f]&65535);c+=2;--d}b++}a.mc(0,a,b,c,d)};
function bc(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.Va;e++)b.cache[c][e]=0;for(e=0;e<b.Va&&0<f;e++){g=a.b.ec(b.Wc?gc(a.b,d):d);if(0>g){b.mc(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.mc(0,b,c,d,f)}l.reset=function(){this.B.tb=this.B.tb&-120|20;this.f.va=0;this.f.ya=128;this.j.Za=0;this.A.R=128;this.D.M=128;dc(this)};
l.Lc=function(a,b,c){var d,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.cb&65280:(a&1&&(b<<=8),e.cb=b|255,d=0);break;case 4194298:if(0>b)d=e.pc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.pc=d;e.C|=2}break;case 4194294:if(70!==e.lb)return e.N(4,222);0>b?d=e.J:d=e.J=0;break;case 4194292:if(70!==e.lb)return e.N(4,224);d=1;break;case 4194290:if(70!==e.lb)return e.N(4,226);d=0;break;case 4194288:if(70!==e.lb)return e.N(4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.lb)return e.N(4,232);f=a-4194272>>1;0>b?d=e.kc[f]:(d=K(this,e.kc[f],a,b,c),0<=d&&(e.kc[f]=d));break;case 4194254:return a&1?e.P>>14&1?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Aa[3]=b),d=e.Aa[3]):e.P>>14&0?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Aa[1]=b),d=e.Aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.P&2048?(0<=b&&(e.i[f]=b),d=e.i[f]):(0<=b&&(e.Ra[f]=
b),d=e.Ra[f]),d;case 4194246:return a&1?(0<=b&&(e.i[7]=b),d=e.i[7]):e.P>>14&0?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Aa[0]=b),d=e.Aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.P&2048?(0<=b&&(e.Ra[f]=b),d=e.Ra[f]):(0<=b&&(e.i[f]=b),d=e.i[f]),d;default:return e.J|=16,e.N(4,124)}break;case 4194176:f=a>>1&31;d=K(this,e.na[3][f],a,b,c);0<=d&&(e.na[3][f]=d,e.na[3][f&15]&=65295);break;case 4194112:var g=this.f;switch(a&-2){case 4194174:d=K(this,e.fc,a,b,c);0<=d&&(e.fc=d);break;case 4194172:d=
e.bb;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.B.pd&65535:(d=K(this,this.B.data,a,b,c),0<=d&&(this.B.data=d));break;case 4194166:0<=b&&(b&127&&(g.Qc=0),g.ya&=-129,J(e,100,4,52,function(){g.ya|=128;return!!(g.ya&64)}));d=0;break;case 4194162:d=0;0>b&&(g.va&=-129,0<g.nc.length&&(d=g.nc.shift(),0<g.nc.length&&setTimeout(function(){g.va|=128;g.va&64&&J(e,40,4,48)},50)));break;case 4194160:0>b?d=g.va:(d=K(this,g.va,a,b,c),0<=d&&(g.va=g.va&128|d&-129));break;default:return e.J|=16,e.N(4,
126)}break;case 4194048:f=this.A;switch(a&-2){case 4194048:d=K(this,f.Tb,a,b,c);0<=d&&(f.Tb=d);break;case 4194050:d=K(this,f.oa,a,b,c);0<=d&&(f.oa=d);break;case 4194052:d=K(this,f.R,a,b,c);0<=b&&0<=d&&(f.R=d&-36993|f.R&36992,f.R&1&&ac(this));break;case 4194054:d=K(this,f.Ub,a,b,c);0<=d&&(f.Ub=d);break;case 4194056:d=K(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;case 4194058:d=K(this,f.wa,a,b,c);0<=d&&(f.wa=d);break;case 4194060:break;case 4194062:d=K(this,f.Ec,a,b,c);0<=d&&(f.Ec=d);break;default:return e.J|=
16,e.N(4,128)}break;case 4193728:var h=this.F;f=h.Fa&7;switch(a&-2){case 4193728:d=K(this,h.T,a,b,c);0<=b&&0<=d&&(h.eb=h.eb&60|d>>8&3,h.T=d&17279|h.T&34944|2048,d&1&&h.T&128?ec(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.zb,a,b,c);0<=d&&(h.zb=d);break;case 4193732:d=K(this,h.xb,a,b,c);0<=d&&(h.xb=d&65534);break;case 4193734:d=K(this,h.Ga[f],a,b,c);0<=d&&(h.Ga[f]=d&7967);break;case 4193736:d=K(this,h.Fa,a,b,c);0<=d&&(h.Fa=d&63|h.Fa&65472,d&128&&dc(this));break;case 4193738:d=
h.sa[f];break;case 4193740:d=h.yb[f];break;case 4193742:d=K(this,h.ob,a,b,c);0<=d&&(h.ob=d&255);break;case 4193744:d=h.md[f];break;case 4193746:d=K(this,h.Fc,a,b,c);0<=d&&(h.Fc=d);break;case 4193748:d=K(this,h.Gc[f],a,b,c);0<=d&&(h.Gc[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.nd[f];break;case 4193754:d=K(this,h.Hc[f],a,b,c);0<=d&&(h.Hc[f]=d);break;case 4193756:d=K(this,h.Sa[f],a,b,c);0<=d&&(h.Sa[f]=d&511);break;case 4193758:h.gc[f]=h.Sa[f];d=h.gc[f];break;case 4193760:d=h.kd[f];
break;case 4193762:d=h.ld[f];break;case 4193764:d=h.hd[f];break;case 4193766:d=h.jd[f];break;case 4193768:d=K(this,h.eb,a,b,c);0<=d&&(h.eb=d&63,h.T=h.T&-769|(d&3)<<8);break;case 4193770:d=K(this,h.qc,a,b,c);0<=d&&(h.qc=d);break;default:return e.J|=16,e.N(4,132)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=K(this,f.M,a,b,c);0<=b&&0<=d&&(f.Ua=f.Ua&60|d>>4&3,f.M=f.M&-1023|d&1022,f.M&128||cc(this));break;case 4192514:d=K(this,f.Jb,a,b,c);0<=d&&(f.Jb=d&65534);break;case 4192516:d=K(this,f.ga,
a,b,c);0<=d&&(f.ga=d);break;case 4192518:d=K(this,f.$a,a,b,c);0<=d&&(f.$a=d);break;case 4192520:d=K(this,f.Ua,a,b,c);0<=d&&(f.Ua=d&63,f.M=f.M&-49|(f.Ua&3)<<4);break;default:return e.J|=16,e.N(4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.nb:(d=K(this,e.nb,a,b,c),0<=d&&(70!==e.lb&&(d&=-49),e.nb=d,e.cc[0]=d&4?15:7,e.cc[1]=d&2?15:7,e.cc[3]=d&1?15:7,e.bc&&(f=2,e.nb&16&&(f=1),this.B.tb=this.B.tb&-8|f)));break;default:return e.J|=16,e.N(4,136)}break;case 4191424:f=a>>1&31;d=K(this,e.na[0][f],
a,b,c);0<=d&&(e.na[0][f]=d,e.na[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.na[1][f],a,b,c);0<=d&&(e.na[1][f]=d,e.na[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.lb)return e.N(4,234);f=a>>2&31;d=e.Wb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=K(this,d,a,b,c),0<=d&&(e.Wb[f]=a&2?d<<16|e.Wb[f]&65535:e.Wb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Nb[a>>1&255];else return e.J|=16,e.N(4,
138);break;default:return e.J|=16,e.N(4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var hc={},Lb=(hc[65382]=[null,null,I.prototype.$c,I.prototype.rd,"LKS"],hc[65392]=[null,null,I.prototype.cd,I.prototype.ud,"RCSR"],hc[65396]=[null,null,I.prototype.dd,I.prototype.vd,"XCSR"],hc[65402]=[null,null,I.prototype.ad,I.prototype.sd,"MMR0"],hc[65534]=[null,null,I.prototype.bd,I.prototype.td,"PSW"],hc);
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=I.prototype;l.Za=function(a,b,c,d){this.H=b;this.b=c;this.G=d;var f=this;this.i.sc=Ob(this.b,function(){f.i.$a|=128;f.i.$a&64&&(J(f.b,0,6,64),Pb(f.b,f.i.sc))});Kb(b,this);Mb(b,this.reset.bind(this),this.Lc.bind(this));F(this)};l.ad=function(){var a=this.i.$a;this.i.$a&=-129;return a};
l.sd=function(a){this.i.$a=a;a&64&&Pb(this.b,this.i.sc);this.i.$a=a&-129};l.bd=function(){var a=this.b;return a.I&62337|a.za<<5|a.Ba<<1};l.td=function(a){var b=4,c=this.b;c.I=a&=62337;c.za=a>>5&3;c.Ba=a>>1&15;c.bc=a&257?a&1?6:4:0;Qb(c);a=c.I;a&1|256&&(b=this.b.nb&16?1:2);this.B.ub=this.B.ub&-8|b};l.dd=function(){return this.f.va};l.vd=function(a){this.f.va=this.f.va&128|a&-129};l.ed=function(){return this.f.ya};
l.wd=function(a){if(128==(this.f.ya&192)&&a&64){var b=this;J(this.b,8,4,52,function(){b.f.ya|=128;return!!(b.f.ya&64)})}this.f.ya=this.f.ya&128|a&-129};l.cd=function(){return Zb(this.b)};l.ud=function(a){$b(this.b,a&-1809|Zb(this.b)&1808);this.b.C|=128};
function ac(a){var b=a.A,c,d,f,e=b.wa>>13&7;"undefined"===typeof b.qa[e]&&(b.qa[e]={cache:[],postProcess:a.fd,drive:e,blocksize:256,mapped:0,maxblock:b.ib[e]*b.aa[e],url:"rk"+e+".dsk"});b.R&=-129;switch(b.R>>1&7){case 0:b.Sb=2496;b.oa=0;b.R=128;b.wa=0;break;case 1:if((b.wa>>4&511)>=b.ib[e]){b.oa|=32832;b.R|=49152;break}if((b.wa&15)>=b.aa[e]){b.oa|=32800;b.R|=49152;break}c=(b.wa>>4&511)*b.aa[e]+(b.wa&15);d=(b.R&48)<<12|b.Rb;f=65536-b.Tb&65535;bc(a,b.qa[e],c,d,f);return;case 2:if((b.wa>>4&511)>=b.ib[e])b.oa|=
32832,b.R|=49152;else if((b.wa&15)>=b.aa[e])b.oa|=32800,b.R|=49152;else{c=(b.wa>>4&511)*b.aa[e]+(b.wa&15);d=(b.R&48)<<12|b.Rb;f=65536-b.Tb&65535;a.dc(b.qa[e],c,d,f);return}}b.Sb=e<<13|b.Sb&8176|b.wa%9&15;J(a.b,20,5,144,function(){b.R=b.R&65534|128;return!!(b.R&64)})}l.fd=function(a,b,c,d,f){var e=this.A;e.Rb=d&65535;e.R=e.R&-49|d>>12&48;e.Tb=65536-f&65535;switch(a){case 1:e.oa|=33024;e.R|=49152;break;case 2:e.oa|=33792,e.R|=49152}J(this.b,20,5,144,function(){e.R=e.R&65534|128;return!!(e.R&64)})};
function cc(a){var b=a.D,c,d,f,e=b.N>>8&3;b.N&=-2;"undefined"===typeof b.qa[e]&&(b.qa[e]={cache:[],postProcess:a.gd,drive:e,blocksize:128,mapped:1,maxblock:b.ib[e]*b.aa[e],url:"rl"+e+".dsk"});switch(b.N>>1&7){case 2:b.ab&8&&(b.N&=63);b.ab=b.Mc[e]|b.gb&64;break;case 3:1==(b.ga&3)&&(b.gb=b.ga&4?b.gb+(b.ga&65408)&65408|b.ga<<2&64:b.gb-(b.ga&65408)&65408|b.ga<<2&64,b.ga=b.gb);break;case 4:b.ab=b.gb;break;case 5:if(b.ga>>6>=b.ib[e]){b.N|=37888;break}if((b.ga&63)>=b.aa[e]){b.N|=37888;break}c=(b.ga>>6)*
b.aa[e]+(b.ga&63);d=(b.Va&63)<<16|b.Jb;f=65536-b.ab&65535;bc(a,b.qa[e],c,d,f);return;case 6:if(b.ga>>6>=b.ib[e])b.N|=37888;else if((b.ga&63)>=b.aa[e])b.N|=37888;else{c=(b.ga>>6)*b.aa[e]+(b.ga&63);d=(b.Va&63)<<16|b.Jb;f=65536-b.ab&65535;a.dc(b.qa[e],c,d,f);return}}J(a.b,20,5,112,function(){b.N|=129;return!!(b.N&64)})}
l.gd=function(a,b,c,d,f){var e=this.D;e.Jb=d&65535;e.N=e.N&-49|d>>12&48;e.Va=d>>16&63;e.ga=~~(c/e.aa[b.Oa])<<6|c%e.aa[b.Oa];e.gb=e.ga;e.ab=65536-f&65535;switch(a){case 1:e.N|=33792;break;case 2:e.N|=40960}J(this.b,20,5,112,function(){e.N|=129;return!!(e.N&64)})};function dc(a){a=a.F;a.T=2176;a.Fa=0;a.sa=[4544,4544,4544,4544,4544,4544,4544,4544];a.zb=[0,0,0,0,0,0,0,0];a.ob=a.Ab=a.yb=a.fb=a.qc=0}
function ec(a,b){var c=a.F,d,f,e;c.T&=-16513;c.Fa&=-2049;c.sa[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof c.qa[b]&&(c.qa[b]={cache:[],postProcess:a.hd,drive:b,blocksize:256,mapped:0,maxblock:c.hc[0]*c.hb[0]*c.aa[0],url:"rp"+b+".dsk"});switch(c.T&63){case 5:c.gc[b]=c.Ta[b];c.T|=32896;c.sa[b]|=32896;c.ob|=1<<b;break;case 9:dc(a);break;case 19:c.sa[b]|=64;break;case 49:if(c.Ta[b]>=c.hc[0]||c.Ga[b]>>8>=c.hb[0]||(c.Ga[b]&255)>=c.aa[0]){c.zb[b]|=1024;c.T|=49152;break}d=(c.Ta[b]*c.hb[0]+(c.Ga[b]>>8))*
c.aa[0]+(c.Ga[b]&255);f=(c.fb&63)<<16|c.yb;e=65536-c.Ab&65535;bc(a,c.qa[b],d,f,e);return;case 57:if(c.Ta[b]>=c.hc[0]||c.Ga[b]>>8>=c.hb[0]||(c.Ga[b]&255)>=c.aa[0])c.zb[b]|=1024,c.T|=49152;else{d=(c.Ta[b]*c.hb[0]+(c.Ga[b]>>8))*c.aa[0]+(c.Ga[b]&255);f=(c.fb&63)<<16|c.yb;e=65536-c.Ab&65535;a.dc(c.qa[b],d,f,e);return}}J(a.b,3,5,172,function(){c.T=c.T&65534|128;c.sa[b]|=128;return!!(c.T&64)})}
l.hd=function(a,b,c,d,f){var e=this.F;e.Ab=65536-f&65535;e.yb=d&65535;e.T=e.T&-769|d>>8&768;e.fb=d>>16&63;f=~~(c/e.aa[0]);d=~~(f/e.hb[0]);e.Ga[b.Oa]=f%e.hb[0]<<8|c%e.aa[0];e.gc[b.Oa]=e.Ta[b.Oa]=d;e.ob|=1<<b.Oa;c>=b.Yc-1&&(e.sa[b.Oa]|=1024);switch(a){case 1:e.Fa|=512;e.T|=49152;break;case 2:e.Fa|=2048,e.T|=49152}J(this.b,20,5,172,function(){e.sa[b.Oa]|=128;e.T=e.T&65534|128;return!!(e.T&64)})};
function fc(a,b,c,d,f,e){var g=~~((e+c.Wa-1)/c.Wa),h=new XMLHttpRequest;2048>g&&d+2048<c.Yc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Wa<<1)+"-"+(((d+g)*c.Wa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,p,q;m=h.response;if(h.status&&206!=h.status||!m)c.mc(1,c,d,f,e);else{m=new Uint8Array(m);n=d;for(q=0;q<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],p=0;p<c.Wa;p++)c.cache[n][p]=q<m.length?
m[q]&255|m[q+1]<<8&65280:0,q+=2;else q+=c.Wa<<1;n++}g(c,d,f,e)}}};h.send(null)}function K(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:a.b.L(4,122):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.dc=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){fc(this,this.dc,a,b,c,d);return}for(f=0;f<a.Wa&&0<d;f++){var e=a.Xc?gc(this.b,c):c;this.b.H.pb(e,a.cache[b][f]&65535);c+=2;--d}b++}a.mc(0,a,b,c,d)};
function bc(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.Wa;e++)b.cache[c][e]=0;for(e=0;e<b.Wa&&0<f;e++){g=a.b.ec(b.Xc?gc(a.b,d):d);if(0>g){b.mc(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.mc(0,b,c,d,f)}l.reset=function(){this.B.ub=this.B.ub&-120|20;this.f.va=0;this.f.ya=128;this.i.$a=0;this.A.R=128;this.D.N=128;dc(this)};
l.Lc=function(a,b,c){var d,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.eb&65280:(a&1&&(b<<=8),e.eb=b|255,d=0);break;case 4194298:if(0>b)d=e.pc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.pc=d;e.C|=2}break;case 4194294:if(70!==e.lb)return e.L(4,222);0>b?d=e.J:d=e.J=0;break;case 4194292:if(70!==e.lb)return e.L(4,224);d=1;break;case 4194290:if(70!==e.lb)return e.L(4,226);d=0;break;case 4194288:if(70!==e.lb)return e.L(4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.lb)return e.L(4,232);f=a-4194272>>1;0>b?d=e.lc[f]:(d=K(this,e.lc[f],a,b,c),0<=d&&(e.lc[f]=d));break;case 4194254:return a&1?e.P>>14&1?(0<=b&&(e.j[6]=b),d=e.j[6]):(0<=b&&(e.Aa[3]=b),d=e.Aa[3]):e.P>>14&0?(0<=b&&(e.j[6]=b),d=e.j[6]):(0<=b&&(e.Aa[1]=b),d=e.Aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.P&2048?(0<=b&&(e.j[f]=b),d=e.j[f]):(0<=b&&(e.Sa[f]=
b),d=e.Sa[f]),d;case 4194246:return a&1?(0<=b&&(e.j[7]=b),d=e.j[7]):e.P>>14&0?(0<=b&&(e.j[6]=b),d=e.j[6]):(0<=b&&(e.Aa[0]=b),d=e.Aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.P&2048?(0<=b&&(e.Sa[f]=b),d=e.Sa[f]):(0<=b&&(e.j[f]=b),d=e.j[f]),d;default:return e.J|=16,e.L(4,124)}break;case 4194176:f=a>>1&31;d=K(this,e.na[3][f],a,b,c);0<=d&&(e.na[3][f]=d,e.na[3][f&15]&=65295);break;case 4194112:var g=this.f;switch(a&-2){case 4194174:d=K(this,e.fc,a,b,c);0<=d&&(e.fc=d);break;case 4194172:d=
e.cb;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.B.qd&65535:(d=K(this,this.B.data,a,b,c),0<=d&&(this.B.data=d));break;case 4194166:0<=b&&(b&127&&(g.Qc=0),g.ya&=-129,J(e,100,4,52,function(){g.ya|=128;return!!(g.ya&64)}));d=0;break;case 4194162:d=0;0>b&&(g.va&=-129,0<g.nc.length&&(d=g.nc.shift(),0<g.nc.length&&setTimeout(function(){g.va|=128;g.va&64&&J(e,40,4,48)},50)));break;case 4194160:0>b?d=g.va:(d=K(this,g.va,a,b,c),0<=d&&(g.va=g.va&128|d&-129));break;default:return e.J|=16,e.L(4,
126)}break;case 4194048:f=this.A;switch(a&-2){case 4194048:d=K(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;case 4194050:d=K(this,f.oa,a,b,c);0<=d&&(f.oa=d);break;case 4194052:d=K(this,f.R,a,b,c);0<=b&&0<=d&&(f.R=d&-36993|f.R&36992,f.R&1&&ac(this));break;case 4194054:d=K(this,f.Tb,a,b,c);0<=d&&(f.Tb=d);break;case 4194056:d=K(this,f.Rb,a,b,c);0<=d&&(f.Rb=d);break;case 4194058:d=K(this,f.wa,a,b,c);0<=d&&(f.wa=d);break;case 4194060:break;case 4194062:d=K(this,f.Ec,a,b,c);0<=d&&(f.Ec=d);break;default:return e.J|=
16,e.L(4,128)}break;case 4193728:var h=this.F;f=h.Fa&7;switch(a&-2){case 4193728:d=K(this,h.T,a,b,c);0<=b&&0<=d&&(h.fb=h.fb&60|d>>8&3,h.T=d&17279|h.T&34944|2048,d&1&&h.T&128?ec(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.Ab,a,b,c);0<=d&&(h.Ab=d);break;case 4193732:d=K(this,h.yb,a,b,c);0<=d&&(h.yb=d&65534);break;case 4193734:d=K(this,h.Ga[f],a,b,c);0<=d&&(h.Ga[f]=d&7967);break;case 4193736:d=K(this,h.Fa,a,b,c);0<=d&&(h.Fa=d&63|h.Fa&65472,d&128&&dc(this));break;case 4193738:d=
h.sa[f];break;case 4193740:d=h.zb[f];break;case 4193742:d=K(this,h.ob,a,b,c);0<=d&&(h.ob=d&255);break;case 4193744:d=h.nd[f];break;case 4193746:d=K(this,h.Fc,a,b,c);0<=d&&(h.Fc=d);break;case 4193748:d=K(this,h.Gc[f],a,b,c);0<=d&&(h.Gc[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.od[f];break;case 4193754:d=K(this,h.Hc[f],a,b,c);0<=d&&(h.Hc[f]=d);break;case 4193756:d=K(this,h.Ta[f],a,b,c);0<=d&&(h.Ta[f]=d&511);break;case 4193758:h.gc[f]=h.Ta[f];d=h.gc[f];break;case 4193760:d=h.ld[f];
break;case 4193762:d=h.md[f];break;case 4193764:d=h.jd[f];break;case 4193766:d=h.kd[f];break;case 4193768:d=K(this,h.fb,a,b,c);0<=d&&(h.fb=d&63,h.T=h.T&-769|(d&3)<<8);break;case 4193770:d=K(this,h.qc,a,b,c);0<=d&&(h.qc=d);break;default:return e.J|=16,e.L(4,132)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=K(this,f.N,a,b,c);0<=b&&0<=d&&(f.Va=f.Va&60|d>>4&3,f.N=f.N&-1023|d&1022,f.N&128||cc(this));break;case 4192514:d=K(this,f.Jb,a,b,c);0<=d&&(f.Jb=d&65534);break;case 4192516:d=K(this,f.ga,
a,b,c);0<=d&&(f.ga=d);break;case 4192518:d=K(this,f.ab,a,b,c);0<=d&&(f.ab=d);break;case 4192520:d=K(this,f.Va,a,b,c);0<=d&&(f.Va=d&63,f.N=f.N&-49|(f.Va&3)<<4);break;default:return e.J|=16,e.L(4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.nb:(d=K(this,e.nb,a,b,c),0<=d&&(70!==e.lb&&(d&=-49),e.nb=d,e.cc[0]=d&4?15:7,e.cc[1]=d&2?15:7,e.cc[3]=d&1?15:7,e.bc&&(f=2,e.nb&16&&(f=1),this.B.ub=this.B.ub&-8|f)));break;default:return e.J|=16,e.L(4,136)}break;case 4191424:f=a>>1&31;d=K(this,e.na[0][f],
a,b,c);0<=d&&(e.na[0][f]=d,e.na[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.na[1][f],a,b,c);0<=d&&(e.na[1][f]=d,e.na[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.lb)return e.L(4,234);f=a>>2&31;d=e.Vb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=K(this,d,a,b,c),0<=d&&(e.Vb[f]=a&2?d<<16|e.Vb[f]&65535:e.Vb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Nb[a>>1&255];else return e.J|=16,e.L(4,
138);break;default:return e.J|=16,e.L(4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var hc={},Lb=(hc[65382]=[null,null,I.prototype.ad,I.prototype.sd,"LKS"],hc[65392]=[null,null,I.prototype.dd,I.prototype.vd,"RCSR"],hc[65396]=[null,null,I.prototype.ed,I.prototype.wd,"XCSR"],hc[65402]=[null,null,I.prototype.bd,I.prototype.td,"MMR0"],hc[65534]=[null,null,I.prototype.cd,I.prototype.ud,"PSW"],hc);
Pa(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new I(d);cb(d,c)}});var ic;if(vb){var jc=new ArrayBuffer(2);(new DataView(jc)).setUint16(0,256,!0);ic=256===(new Uint16Array(jc))[0]}else ic=!1;var kc=ic;
function H(a,b,c,d,f){this.id=lc+=2;this.b=null;this.w=a;this.Yb=b;this.size=c||0;this.type=d||mc;this.j=d==nc;this.controller=null;zb(this);this.Xa=this.Rc=!1;if(c)if(f)this.controller=f,this.b=null,oc(this,f.Hb);else if(vb)this.D=new ArrayBuffer(c),this.F=new DataView(this.D,0,c),this.f=new Uint8Array(this.D,0,c),this.L=new Uint16Array(this.D,0,c>>1),this.b=new Int32Array(this.D,0,c>>2),oc(this,kc?pc:qc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;oc(this,rc)}else oc(this)}
function H(a,b,c,d,f){this.id=lc+=2;this.b=null;this.w=a;this.Xb=b;this.size=c||0;this.type=d||mc;this.i=d==nc;this.controller=null;zb(this);this.Ya=this.Rc=!1;if(c)if(f)this.controller=f,this.b=null,oc(this,f.Gb);else if(vb)this.D=new ArrayBuffer(c),this.F=new DataView(this.D,0,c),this.f=new Uint8Array(this.D,0,c),this.K=new Uint16Array(this.D,0,c>>1),this.b=new Int32Array(this.D,0,c>>2),oc(this,kc?pc:qc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;oc(this,rc)}else oc(this)}
var mc=0,nc=2,Fb=4,Hb=["NONE","RAM","ROM","VID","H/W"],lc=0;
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(vb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(vb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.Xa=!0}return!1},jb:function(a,b){b?this.B++||sc(this,tc,!1):this.K++||uc(this,tc,!1)},S:function(){this.G&&E(this.G,129)&&this.G.message("attempt to read invalid block %"+
t(this.w),!0);return 255},A:function(a,b){this.G&&E(this.G,129)&&this.G.message("attempt to write "+t(b,4,!0)+" to invalid block %"+t(this.w),!0)},W:function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8},I:function(a,b,c){this.Cb(a++,b&255,c++);this.Cb(a,b>>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Ba:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Xa=
!0},Fb:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Xa=!0},ba:function(a,b){if(this.G&&null!=this.w){var c=this.G;vc(c,this.w+a,1,c.W)&&c.pa(!0)}return this.Qb(a,b)},ia:function(a,b){if(this.G&&null!=this.w){var c=this.G;vc(c,this.w+a,2,c.W)&&c.pa(!0)}return this.oc(a,b)},ua:function(a,b,c){if(this.G&&null!=this.w){var d=this.G;vc(d,this.w+a,1,d.D)&&d.pa(!0)}this.j?this.A(a,b,c):this.Db(a,
b,c)},Da:function(a,b,c){if(this.G&&null!=this.w){var d=this.G;vc(d,this.w+a,2,d.D)&&d.pa(!0)}this.j?this.A(a,b,c):this.tc(a,b,c)},$:function(a){return this.f[a]},ca:function(a){return this.f[a]},fa:function(a){return this.F.getUint16(a,!0)},la:function(a){return a&1?this.f[a]|this.f[a+1]<<8:this.L[a>>1]},ta:function(a,b){this.f[a]=b;this.Xa=!0},za:function(a,b){this.f[a]=b;this.Xa=!0},Ca:function(a,b){this.F.setUint16(a,b,!0);this.Xa=!0},Ia:function(a,b){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.L[a>>
1]=b;this.Xa=!0}};function zb(a,b,c){a.G=b;a.K=a.B=0;c&&((a.K=c.K)&&uc(a,tc,!1),(a.B=c.B)&&sc(a,tc,!1))}function wc(a,b){b?--a.B||(a.Cb=a.j?a.A:a.Db,a.Jc=a.j?a.I:a.tc):--a.K||(a.wb=a.Qb,a.Rb=a.oc)}function sc(a,b,c){c&&a.B||(a.Cb=!a.j&&b[1]||a.A,a.Jc=!a.j&&b[3]||a.I);if(c||void 0===c)a.Db=b[1]||a.A,a.tc=b[3]||a.I}function uc(a,b,c){c&&a.K||(a.wb=b[0]||a.S,a.Rb=b[2]||a.W);if(c||void 0===c)a.Qb=b[0]||a.S,a.oc=b[2]||a.W}function oc(a,b){b||(b=xc);uc(a,b,void 0);sc(a,b,void 0)}
var xc=[],rc=[H.prototype.da,H.prototype.Ba,H.prototype.ma,H.prototype.Fb],tc=[H.prototype.ba,H.prototype.ua,H.prototype.ia,H.prototype.Da];if(vb)var qc=[H.prototype.$,H.prototype.ta,H.prototype.fa,H.prototype.Ca],pc=[H.prototype.ca,H.prototype.za,H.prototype.la,H.prototype.Ia];
function yc(a,b){w.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.Da=a.cycles||b;this.ab=c;this.ib=Math.round(this.Da/1E4)/100;this.mb=this.ib*this.ab;this.u.ha=!1;this.u.rc=!1;this.u.Ib=a.autoStart;this.u.zc=!1;this.u.rb=!1;this.Nb=this.ia=0;this.Ob=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.S=[];this.$b=this.od.bind(this);F(this)}B(yc);var zc=["power","reset"];l=yc.prototype;
l.Ya=function(a,b,c,d){this.B=a;this.H=b;this.G=d;for(b=0;b<zc.length;b++)(c=this.K[zc[b]])&&this.B.xa(null,zc[b],c);this.ta=null;a=Ac(a,"autoStart");null!=a&&(this.u.Ib="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Qa=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.G?(a=this.G,a.g("Type ? for help with PDP11 Debugger commands"),a.Ha(),a.ib&&(b=a.ib,a.ib=null,Dc(a,b))):this.g("No debugger detected")}L(this);return!0};l.Pa=function(a){return a?this.save():!0};l.Ib=function(){return this.u.Ib||!this.G&&void 0===this.K.run?(this.Ab(!0),!0):!1};l.Bc=function(){return 0};
function Cc(a){void 0===a.Ob&&(a.Ob=0);void 0===a.ub&&(a.ub=-1);void 0===a.vb&&(a.vb=-1);a.u.rb=0<=a.Ob&&0<a.ub;a.u.rb&&(a.Nb=0,a.ia=a.Ob-a.fa)}function Ec(a,b){if(a.u.rb){var c=!1;a.Nb=a.Nb+a.Bc()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.ub,c=!0);0<=a.vb&&a.vb<=Yc(a)&&(a.ub=a.vb=-1,Cc(a),a.pa(),c=!0);c&&a.g(Yc(a)+" cycles: checksum="+t(a.Nb))}}
function Zc(a,b,c,d){if(a.K[b]){void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.pa());var f=a.G&&a.G.da||8;c=!a.u.ha||a.u.zc?8==f?r(c,d):t(c,d):"--------".substr(0,d||4);a.K[b].textContent!=c&&(a.K[b].textContent=c)}}
l.xa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.K[b]=c;a=!0;break;case "run":this.K[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.u.ja)a=!0;else{var b=null,c,h=ab(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.u.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.u.ja);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.u.ready?"powered yet":"ready yet"+(b.ac?" (waiting for notification)":""))+".");a=!1}a&&(d.u.ha?d.pa():d.Ab())};
a=!0;break;case "speed":this.K[b]=c;a=!0;break;case "setSpeed":this.K[b]=c,c.onclick=function(){$c(d,d.ab<<1,!0)},c.textContent=this.mb.toFixed(2)+"Mhz",a=!0}return a};function ad(a,b,c){a.fa+=b;c&&(a.da=a.b=0)}function bd(a,b){var c=1;b&&1<a.ab&&a.ba&&(c=a.ba/a.ib);a.Lb=Math.round(1E3/30);a.Ia=Math.floor(a.Da/30*c);b||(a.la=a.Ia);a.qb=0}function Yc(a){return a.fa+a.$+a.da-a.b}function Bc(a){a.ba=0;a.Zb=0;a.fa=a.$=a.da=a.b=0;Cc(a);$c(a,1)}
function $c(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.mb?b=1:d=!0;a.ab=b;b=a.ib*a.ab;if(a.mb!=b){a.mb=b;b=a.mb.toFixed(2)+"Mhz";var f=a.K.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.Xb()}ad(a,a.$);a.$=0;a.W=pa();a.ca=0;bd(a);return d}function Ob(a,b){var c=a.S.length;a.S.push([-1,b]);return c}function Pb(a,b){var c;0<=b&&b<a.S.length&&0>a.S[b][0]&&(c=a.Da*a.ab/1E3*(1E3/60),a.S[b][0]=c)}
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(vb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(vb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ya=!0}return!1},jb:function(a,b){b?this.B++||sc(this,tc,!1):this.M++||uc(this,tc,!1)},S:function(){this.G&&E(this.G,129)&&this.G.message("attempt to read invalid block %"+
t(this.w),!0);return 255},A:function(a,b){this.G&&E(this.G,129)&&this.G.message("attempt to write "+t(b,4,!0)+" to invalid block %"+t(this.w),!0)},W:function(a,b){return this.xb(a++,b++)|this.xb(a,b)<<8},I:function(a,b,c){this.Db(a++,b&255,c++);this.Db(a,b>>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Ba:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ya=
!0},Ma:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ya=!0},ba:function(a,b){if(this.G&&null!=this.w){var c=this.G;vc(c,this.w+a,1,c.W)&&c.pa(!0)}return this.Pb(a,b)},ia:function(a,b){if(this.G&&null!=this.w){var c=this.G;vc(c,this.w+a,2,c.W)&&c.pa(!0)}return this.oc(a,b)},ua:function(a,b,c){if(this.G&&null!=this.w){var d=this.G;vc(d,this.w+a,1,d.D)&&d.pa(!0)}this.i?this.A(a,b,c):this.Eb(a,
b,c)},Da:function(a,b,c){if(this.G&&null!=this.w){var d=this.G;vc(d,this.w+a,2,d.D)&&d.pa(!0)}this.i?this.A(a,b,c):this.tc(a,b,c)},$:function(a){return this.f[a]},ca:function(a){return this.f[a]},fa:function(a){return this.F.getUint16(a,!0)},la:function(a){return a&1?this.f[a]|this.f[a+1]<<8:this.K[a>>1]},ta:function(a,b){this.f[a]=b;this.Ya=!0},za:function(a,b){this.f[a]=b;this.Ya=!0},Ca:function(a,b){this.F.setUint16(a,b,!0);this.Ya=!0},Ia:function(a,b){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.K[a>>
1]=b;this.Ya=!0}};function zb(a,b,c){a.G=b;a.M=a.B=0;c&&((a.M=c.M)&&uc(a,tc,!1),(a.B=c.B)&&sc(a,tc,!1))}function wc(a,b){b?--a.B||(a.Db=a.i?a.A:a.Eb,a.Jc=a.i?a.I:a.tc):--a.M||(a.xb=a.Pb,a.Qb=a.oc)}function sc(a,b,c){c&&a.B||(a.Db=!a.i&&b[1]||a.A,a.Jc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Eb=b[1]||a.A,a.tc=b[3]||a.I}function uc(a,b,c){c&&a.M||(a.xb=b[0]||a.S,a.Qb=b[2]||a.W);if(c||void 0===c)a.Pb=b[0]||a.S,a.oc=b[2]||a.W}function oc(a,b){b||(b=xc);uc(a,b,void 0);sc(a,b,void 0)}
var xc=[],rc=[H.prototype.da,H.prototype.Ba,H.prototype.ma,H.prototype.Ma],tc=[H.prototype.ba,H.prototype.ua,H.prototype.ia,H.prototype.Da];if(vb)var qc=[H.prototype.$,H.prototype.ta,H.prototype.fa,H.prototype.Ca],pc=[H.prototype.ca,H.prototype.za,H.prototype.la,H.prototype.Ia];
function yc(a,b){w.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.Da=a.cycles||b;this.bb=c;this.rb=Math.round(this.Da/1E4)/100;this.mb=this.rb*this.bb;this.u.ha=!1;this.u.rc=!1;this.u.Hb=a.autoStart;this.u.zc=!1;this.u.sb=!1;this.Mb=this.ia=0;this.Nb=a.csStart;this.vb=a.csInterval;this.wb=a.csStop;this.S=[];this.ac=this.pd.bind(this);F(this)}B(yc);var zc=["power","reset"];l=yc.prototype;
l.Za=function(a,b,c,d){this.B=a;this.H=b;this.G=d;for(b=0;b<zc.length;b++)(c=this.M[zc[b]])&&this.B.xa(null,zc[b],c);this.ta=null;a=Ac(a,"autoStart");null!=a&&(this.u.Hb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ra=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.G?(a=this.G,a.g("Type ? for help with PDP11 Debugger commands"),a.Ha(),a.Ma&&(b=a.Ma,a.Ma=null,Dc(a,b))):this.g("No debugger detected")}L(this);return!0};l.Qa=function(a){return a?this.save():!0};l.Hb=function(){return this.u.Hb||!this.G&&void 0===this.M.run?(this.Bb(!0),!0):!1};l.Bc=function(){return 0};
function Cc(a){void 0===a.Nb&&(a.Nb=0);void 0===a.vb&&(a.vb=-1);void 0===a.wb&&(a.wb=-1);a.u.sb=0<=a.Nb&&0<a.vb;a.u.sb&&(a.Mb=0,a.ia=a.Nb-a.fa)}function Ec(a,b){if(a.u.sb){var c=!1;a.Mb=a.Mb+a.Bc()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.vb,c=!0);0<=a.wb&&a.wb<=Yc(a)&&(a.vb=a.wb=-1,Cc(a),a.pa(),c=!0);c&&a.g(Yc(a)+" cycles: checksum="+t(a.Mb))}}
function Zc(a,b,c,d){if(a.M[b]){void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.pa());var f=a.G&&a.G.da||8;c=!a.u.ha||a.u.zc?8==f?r(c,d):t(c,d):"--------".substr(0,d||4);a.M[b].textContent!=c&&(a.M[b].textContent=c)}}
l.xa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.M[b]=c;a=!0;break;case "run":this.M[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.u.ja)a=!0;else{var b=null,c,h=ab(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.u.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.u.ja);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.u.ready?"powered yet":"ready yet"+(b.$b?" (waiting for notification)":""))+".");a=!1}a&&(d.u.ha?d.pa():d.Bb())};
a=!0;break;case "speed":this.M[b]=c;a=!0;break;case "setSpeed":this.M[b]=c,c.onclick=function(){$c(d,d.bb<<1,!0)},c.textContent=this.mb.toFixed(2)+"Mhz",a=!0}return a};function ad(a,b,c){a.fa+=b;c&&(a.da=a.b=0)}function bd(a,b){var c=1;b&&1<a.bb&&a.ba&&(c=a.ba/a.rb);a.Yb=Math.round(1E3/30);a.Ia=Math.floor(a.Da/30*c);b||(a.la=a.Ia);a.qb=0}function Yc(a){return a.fa+a.$+a.da-a.b}function Bc(a){a.ba=0;a.Zb=0;a.fa=a.$=a.da=a.b=0;Cc(a);$c(a,1)}
function $c(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.mb?b=1:d=!0;a.bb=b;b=a.rb*a.bb;if(a.mb!=b){a.mb=b;b=a.mb.toFixed(2)+"Mhz";var f=a.M.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.Wb()}ad(a,a.$);a.$=0;a.W=pa();a.ca=0;bd(a);return d}function Ob(a,b){var c=a.S.length;a.S.push([-1,b]);return c}function Pb(a,b){var c;0<=b&&b<a.S.length&&0>a.S[b][0]&&(c=a.Da*a.bb/1E3*(1E3/60),a.S[b][0]=c)}
function cd(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function dd(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ed(a){a.da-=a.b;a.b=0}
l.od=function(){if(this.u.ha){this.qb>=this.Da&&bd(this,!0);this.ua=0;this.Ca=pa();if(this.ca){var a=this.Ca-this.ca;a>this.Lb&&(this.W+=a,this.W>this.Ca&&(this.W=this.Ca))}try{do{var b=cd(this,this.u.rb?1:this.Ia);try{this.Bb(b)}catch(f){if("number"!=typeof f)throw f;}var c=this.da-this.b;dd(this,c);this.ua+=c;this.$+=c;ad(this,0,!0);Ec(this,c);this.la-=c;if(0>=this.la){this.la+=this.Ia;15<=++this.Zb&&(this.B&&this.B.Ha(),this.Zb=0);break}}while(this.u.ha)}catch(f){this.pa();L(this);this.B&&this.B.stop(pa(),
Yc(this));ub(this,f.stack||f.message);return}if(this.u.ha){a=setTimeout;b=this.$b;this.ca=pa();c=this.Lb;this.ua&&(c=Math.round(c*this.ua/this.Ia));var c=c-(this.ca-this.Ca),d=this.ca-this.W;d&&(this.ba=Math.round(this.$/(10*d))/100,864E5<=d&&(this.fa=0,$c(this)));if(0>c||this.ba<this.mb)-1E3>c&&(this.W-=c),c=0;this.qb+=this.ua;this.ca+=c;a(b,c)}}};
l.Ab=function(a){if(tb(this))return!1;if(this.u.ha)return this.g(this.toString()+" busy"),!1;$c(this);this.u.ha=!0;this.u.rc=!0;this.ta&&this.ta.start();var b=this.K.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.Xb(!0),this.B.start(this.W,Yc(this)));L(this,!0);setTimeout(this.$b,0);return!0};l.Bb=function(){return 0};
l.pa=function(a){if(this.u.ha){ed(this);ad(this,this.$);this.$=0;this.u.ha=!1;this.ta&&this.ta.stop();var b=this.K.run;b&&(b.textContent="Run");this.B&&this.B.stop(pa(),Yc(this));L(this)}this.u.complete=a};function L(a,b){a.B&&a.B.Ha(b)}
function fd(a){this.Yc=+a.model||1170;this.lc=a.resetAddr||0;yc.call(this,a,6666667);this.Gb=0;this.decode=gd.bind(this);this.U=65536;this.V=32768;this.Y=65535;this.X=32768;this.P=15;this.i=[0,0,0,0,0,0,0,this.lc];this.Ra=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.Ba=this.D=0;this.na=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.kc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.L=this.f=this.F=this.j=this.C=0;this.lb=70;this.ma=-1;hd(this);this.u.complete=this.u.Pc=!1}B(fd,yc);l=fd.prototype;l.reset=function(){this.u.ha&&this.pa();hd(this);Bc(this);this.u.error=!1;this.parent.reset.call(this)};
function hd(a){a.cb=255;a.J=0;a.pc=0;a.I=0;a.bb=0;a.fc=0;a.nb=0;a.bc=0;a.za=0;a.cc=[7,7,7,7];a.A=[];a.C|=2;Qb(a)}function Qb(a){a.bc?(a.Eb=65536,a.ea=a.Uc,a.Rb=a.La):(a.Eb=0,a.ea=a.Tc,a.Rb=a.ec)}l.Bc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.fa,this.ab]);a.set(2,Jb(this.H));return a.data()};
l.restore=function(a){var b=a[1];this.fa=b[1];$c(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.L){for(var e=0,g=Array(b.L),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.O[d];if(!e||!e.restore(f)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.xa=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.K[b]=c;this.Gb++;a=!0;break;default:a=this.parent.xa.call(this,a,b,c)}return a};
l.Ha=function(a){if(this.Gb&&(a||!this.u.ha||this.u.zc)){for(a=0;a<this.i.length;a++)Zc(this,"R"+a,this.i[a]);a=Zb(this);Zc(this,"PS",a);Zc(this,"NF",a&8?1:0,1);Zc(this,"ZF",a&4?1:0,1);Zc(this,"VF",a&2?1:0,1);Zc(this,"CF",a&1?1:0,1)}if(a=this.K.speed)a.textContent=this.u.ha&&this.ba?this.ba.toFixed(2)+"Mhz":"Stopped"};function N(a){return a.U&65536?1:0}function id(a){return a.V&32768?2:0}function jd(a){return a.Y&65535?0:4}l.Oa=function(){return this.X&32768?8:0};
function kd(a){var b=a.La(a.i[7]);a.i[7]=a.i[7]+2&65535;return b}function ld(a,b){a.i[7]=b&65535}function J(a,b,c,d,f){for(var e=a.A.length;0<e--;)if(a.A[e].qd===d){0<e&&(a.A[e-1].Wa+=a.A[e].Wa);a.A.splice(e,1);break}if(0<=b){for(e=a.A.length;0<e--;){if(a.A[e].Wa>b){a.A[e].Wa-=b;break}b-=a.A[e].Wa}a.A.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.C|=2}function Zb(a){return a.P=a.P&63728|a.Oa()|jd(a)|id(a)|N(a)}
function $b(a,b){a.X=b<<12;a.Y=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.P)&2048)for(var c=a.Ra.length;0<=--c;){var d=a.i[c];a.i[c]=a.Ra[c];a.Ra[c]=d}a.D=b>>14&3;c=a.P>>14&3;a.D!=c&&(a.Aa[c]=a.i[6],a.i[6]=a.Aa[a.D]);a.C|=2;a.P=b}function O(a,b){a.C&128||(a.X=a.Y=b,a.V=0)}function md(a,b,c){a.C&128||(a.X=a.Y=a.U=b,a.V=c||0)}function nd(a,b,c,d){a.C&128||(a.X=a.Y=a.U=b,a.V=(c^b)&(d^b))}function od(a,b){a.C&128||(a.X=a.Y=a.U=b,a.V=a.X^a.U>>1)}function pd(a,b,c,d){a.C&128||(a.X=a.Y=a.U=b,a.V=(c^d)&(d^b))}
l.N=function(a){var b=!1;0>this.ma?this.ma=Zb(this):this.D||(a=4,b=!0);this.I&57344||(this.bb=63222,this.fc=a);this.D=0;var c=this.La(a|65536),d=this.La(a+2&65535|65536);$b(this,d&-12289|this.ma>>2&12288);b&&(this.J|=4,this.i[6]=4);qd(this,this.ma);qd(this,this.i[7]);ld(this,c);this.C&=-113;this.ma=-1;throw a;};function rd(a){var b=sd(a),c=sd(a)&-1793;a.P&49152&&(c=c&-225|a.P&63712);ld(a,b);$b(a,c);a.C&=-17}
function gc(a,b){var c=b>>13&31;31>c?a.nb&32&&(b=a.Wb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function td(a,b,c){var d,f,e,g=0;if(c&a.bc){d=b>>13&a.cc[a.D];f=a.na[a.D][d];e=(a.na[a.D][d+16]<<6)+(b&8191)&4194303;a.nb&16?3932160<=e&&4186112>e&&(e=gc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.J|=32,a.N(4,12)),e&1&&!(c&1)&&(a.J|=64,a.N(4,14)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&
8128)&&(g|=16384));a.na[a.D][d]=f;if(4194170!==e||a.D)a.za=a.D,a.Ba=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.I&57344||(a.I=a.I|g|a.za<<5|a.Ba<<1),a.N(168,16)),a.I&61440||!(4191360>e||4194239<e)||(a.I|=4096,a.I&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.J|=64,a.N(4,10));return e}l.ec=function(a){return 4194304<=a?this.i[a-4194304]:0<=a?this.H.Ka(a):a};l.La=function(a){return this.ec(td(this,a,2))};function sd(a){var b=a.La(a.i[6]|65536);a.i[6]=a.i[6]+2&65535;return b}
function qd(a,b){var c=a.i[6]-2&65535;a.i[6]=c;a.I&57344||(a.bb=a.bb<<8|246);!a.D&&c<=a.cb&&4<c&&(c<=a.cb-32?(a.J|=4,a.i[6]=4,a.N(4,18)):(a.J|=8,a.C|=4));c=td(a,c|65536,4);a.H.pb(c,b&65535)}
function ud(a,b,c){var d,f,e=c&8?0:a.Eb,g=b>>3&7;b&=7;c&4?(a.j=g,a.f=b):(a.F=g,a.L=b);switch(g){case 0:return a.N(4,20),0;case 1:return 6===b&&!a.D&&c&4&&(a.i[6]<=a.cb||65534<=a.i[6])&&(a.i[6]<=a.cb-32||65534<=a.i[6]?(a.J|=4,a.i[6]=4,a.N(4,22)):(a.J|=8,a.C|=64)),a.b-=3,7===b?a.i[b]:a.i[b]|e;case 2:f=2;d=a.i[b];7!==b&&(d|=e,6>b&&c&1&&(f=1));a.b-=3;break;case 3:f=2;d=a.i[b];7!==b&&(d|=e);d=a.La(d);d|=e;a.b-=7;break;case 4:f=-2;6>b&&c&1&&(f=-1);d=a.i[b]+f&65535;7!==b&&(d|=e);a.b-=4;break;case 5:f=-2;
d=a.i[b]-2&65535;7!==b&&(d|=e);d=a.La(d)|e;a.b-=8;break;case 6:return d=kd(a),d=d+a.i[b]&65535|e,a.b-=6,d;case 7:return d=kd(a),d=d+a.i[b]&65535,d=a.La(d|65536)|e,a.b-=10,d}a.i[b]=a.i[b]+f&65535;!e||a.I&57344||(a.bb=a.bb<<8|f<<3&248|b);6==b&&!a.D&&c&4&&0>=f&&(a.i[6]<=a.cb||65534<=a.i[6])&&(a.i[6]<=a.cb-32?(a.J|=4,a.i[6]=4,a.N(4,24)):(a.J|=8,a.C|=64));return d}l.Tc=function(a,b){return ud(this,a,b)};l.Uc=function(a,b){return td(this,ud(this,a,b),b)};
function vd(a,b,c){b&56?(b=ud(a,b,2),c&65536||61440!==(a.P&61440)&&(b&=65535),a.D=a.P>>12&3,c=a.La(b|c&65536),a.D=a.P>>14&3):(a.F=0,c=b&7,c=6!=c||(a.P>>2&12288)===(a.P&12288)?a.i[c]:a.Aa[a.P>>12&3]);return c}function wd(a,b,c,d){a.I&57344||(a.bb=22);b&56?(b=ud(a,b,4),c&65536||(b&=65535),a.D=a.P>>12&3,b=td(a,b|c&65536,4),a.D=a.P>>14&3,a.H.pb(b,d&65535)):(a.j=0,c=b&7,6!=c||(a.P>>2&12288)===(a.P&12288)?a.i[c]=d:a.Aa[a.P>>12&3]=d)}function P(a,b){b&56?a=a.Rb(ud(a,b,2)):(a.F=0,a=a.i[b&7]);return a}
function xd(a,b){b&56?(b=a.ea(b,3),a=a.H.sb(b)):(a.F=0,a=a.i[b&7]&255);return a}function R(a,b,c,d){b&56?(b=a.ea(b,6),c=d.call(a,c,a.ec(b)),a.H.pb(b,c&65535)):(a.j=0,b&=7,a.i[b]=d.call(a,c,a.i[b]))}function S(a,b,c,d){b&56?(b=a.ea(b,7),c=d.call(a,c,a.H.sb(b)),b&1&&a.b--,a.H.Vb(b,c&255)):(a.j=0,b&=7,a.i[b]=a.i[b]&65280|d.call(a,c,a.i[b]))}function yd(a,b,c){b&56?(b=a.ea(b,4),a.H.pb(b,c&65535)):(a.j=0,a.i[b&7]=c&65535);return c}
function zd(a,b,c,d){b&56?(d=a.ea(b,5),d&1&&a.b--,a.H.Vb(d,c&255)):(a.j=0,b&=7,a.i[b]=c?d&1?c<<24>>24&65535:a.i[b]&-256|c&255:a.i[b]&-256);return c}function T(a,b){ld(a,a.i[7]+(b<<24>>23))}
l.Bb=function(a){this.u.complete=!0;var b=this.u.Pc=this.G&&Ad(this.G),c=a?this.u.rc?0:1:-1;this.u.rc=!1;this.da=this.b=a;do{if(b){if(Bd(this.G,this.i[7],c)){this.pa();break}c=1}if(this.C&&(this.C&112&&(this.C&32?this.N(168,28):this.C&64?this.N(4,30):this.C&16&&this.N(12,32),this.C&=-113),this.C&7))if(this.C&2){this.C&=-3;a=null;for(var d=this.pc&224,f=this.A.length;0<=--f;){if(0<this.A[f].Wa){this.A[f].Wa--;this.C|=2;break}if(this.A[f].xc){if(!this.A[f].xc()){this.A.splice(f,1);continue}this.A[f].xc=
null}this.A[f].Zc>d&&(d=this.A[f].Zc,a=this.A[f],this.A.splice(f,1))}d>(this.P&224)&&(this.C&4&&(this.i[7]=this.i[7]+2&65535,this.C&=-5),a?this.N(a.qd,26):this.N(160,26))}else this.C&1&&this.C++;this.I&57344||(this.bb=0,this.fc=this.i[7]);this.C=this.C&7|this.P&16;this.decode(kd(this))}while(0<this.b);return this.u.complete?this.da-this.b:void 0===this.u.complete?0:-1};Pa(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new fd(d);cb(d,c)}});
l.pd=function(){if(this.u.ha){this.qb>=this.Da&&bd(this,!0);this.ua=0;this.Ca=pa();if(this.ca){var a=this.Ca-this.ca;a>this.Yb&&(this.W+=a,this.W>this.Ca&&(this.W=this.Ca))}try{do{var b=cd(this,this.u.sb?1:this.Ia);try{this.Cb(b)}catch(f){if("number"!=typeof f)throw f;}var c=this.da-this.b;dd(this,c);this.ua+=c;this.$+=c;ad(this,0,!0);Ec(this,c);this.la-=c;if(0>=this.la){this.la+=this.Ia;15<=++this.Zb&&(this.B&&this.B.Ha(),this.Zb=0);break}}while(this.u.ha)}catch(f){this.pa();L(this);this.B&&this.B.stop(pa(),
Yc(this));ub(this,f.stack||f.message);return}if(this.u.ha){a=setTimeout;b=this.ac;this.ca=pa();c=this.Yb;this.ua&&(c=Math.round(c*this.ua/this.Ia));var c=c-(this.ca-this.Ca),d=this.ca-this.W;d&&(this.ba=Math.round(this.$/(10*d))/100,864E5<=d&&(this.fa=0,$c(this)));if(0>c||this.ba<this.mb)-1E3>c&&(this.W-=c),c=0;this.qb+=this.ua;this.ca+=c;a(b,c)}}};
l.Bb=function(a){if(tb(this))return!1;if(this.u.ha)return this.g(this.toString()+" busy"),!1;$c(this);this.u.ha=!0;this.u.rc=!0;this.ta&&this.ta.start();var b=this.M.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.Wb(!0),this.B.start(this.W,Yc(this)));L(this,!0);setTimeout(this.ac,0);return!0};l.Cb=function(){return 0};
l.pa=function(a){if(this.u.ha){ed(this);ad(this,this.$);this.$=0;this.u.ha=!1;this.ta&&this.ta.stop();var b=this.M.run;b&&(b.textContent="Run");this.B&&this.B.stop(pa(),Yc(this));L(this)}this.u.complete=a};function L(a,b){a.B&&a.B.Ha(b)}
function fd(a){this.Zc=+a.model||1170;this.Vc=a.resetAddr||0;yc.call(this,a,6666667);this.Ib=0;this.decode=gd.bind(this);this.U=65536;this.V=32768;this.Y=65535;this.X=32768;this.P=15;this.j=[0,0,0,0,0,0,0,this.Vc];this.Sa=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.Ba=this.D=0;this.na=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Vb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.lc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.K=this.f=this.F=this.i=this.Ma=this.C=0;this.lb=70;this.ma=-1;hd(this);this.u.complete=this.u.Pc=!1}B(fd,yc);l=fd.prototype;l.reset=function(){this.u.ha&&this.pa();hd(this);Bc(this);this.u.error=!1;this.parent.reset.call(this)};
function hd(a){a.eb=255;a.J=0;a.pc=0;a.I=0;a.cb=0;a.fc=0;a.nb=0;a.bc=0;a.za=0;a.cc=[7,7,7,7];a.A=[];a.C|=2;Qb(a)}function Qb(a){a.bc?(a.Fb=65536,a.ea=a.Tc,a.Qb=a.La):(a.Fb=0,a.ea=a.Sc,a.Qb=a.ec)}l.Bc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.fa,this.bb]);a.set(2,Jb(this.H));return a.data()};
l.restore=function(a){var b=a[1];this.fa=b[1];$c(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.K){for(var e=0,g=Array(b.K),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.O[d];if(!e||!e.restore(f)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.xa=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.M[b]=c;this.Ib++;a=!0;break;default:a=this.parent.xa.call(this,a,b,c)}return a};
l.Ha=function(a){if(this.Ib&&(a||!this.u.ha||this.u.zc)){for(a=0;a<this.j.length;a++)Zc(this,"R"+a,this.j[a]);a=Zb(this);Zc(this,"PS",a);Zc(this,"NF",a&8?1:0,1);Zc(this,"ZF",a&4?1:0,1);Zc(this,"VF",a&2?1:0,1);Zc(this,"CF",a&1?1:0,1)}if(a=this.M.speed)a.textContent=this.u.ha&&this.ba?this.ba.toFixed(2)+"Mhz":"Stopped"};function N(a){return a.U&65536?1:0}function id(a){return a.V&32768?2:0}function jd(a){return a.Y&65535?0:4}l.Pa=function(){return this.X&32768?8:0};
function kd(a){var b=a.La(a.j[7]);a.j[7]=a.j[7]+2&65535;return b}function ld(a,b){a.j[7]=b&65535}function J(a,b,c,d,f){for(var e=a.A.length;0<e--;)if(a.A[e].rd===d){0<e&&(a.A[e-1].Xa+=a.A[e].Xa);a.A.splice(e,1);break}if(0<=b){for(e=a.A.length;0<e--;){if(a.A[e].Xa>b){a.A[e].Xa-=b;break}b-=a.A[e].Xa}a.A.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.C|=2}function Zb(a){return a.P=a.P&63728|a.Pa()|jd(a)|id(a)|N(a)}
function $b(a,b){a.X=b<<12;a.Y=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.P)&2048)for(var c=a.Sa.length;0<=--c;){var d=a.j[c];a.j[c]=a.Sa[c];a.Sa[c]=d}a.D=b>>14&3;c=a.P>>14&3;a.D!=c&&(a.Aa[c]=a.j[6],a.j[6]=a.Aa[a.D]);a.C|=2;a.P=b}function O(a,b){a.C&128||(a.X=a.Y=b,a.V=0)}function md(a,b,c){a.C&128||(a.X=a.Y=a.U=b,a.V=c||0)}function nd(a,b,c,d){a.C&128||(a.X=a.Y=a.U=b,a.V=(c^b)&(d^b))}function od(a,b){a.C&128||(a.X=a.Y=a.U=b,a.V=a.X^a.U>>1)}function pd(a,b,c,d){a.C&128||(a.X=a.Y=a.U=b,a.V=(c^d)&(d^b))}
l.L=function(a){var b=!1;0>this.ma?this.ma=Zb(this):this.D||(a=4,b=!0);this.I&57344||(this.cb=63222,this.fc=a);this.D=0;var c=this.La(a|65536),d=this.La(a+2&65535|65536);$b(this,d&-12289|this.ma>>2&12288);b&&(this.J|=4,this.j[6]=4);qd(this,this.ma);qd(this,this.j[7]);ld(this,c);this.C&=-113;this.ma=-1;throw a;};function rd(a){var b=sd(a),c=sd(a)&-1793;a.P&49152&&(c=c&-225|a.P&63712);ld(a,b);$b(a,c);a.C&=-17}
function gc(a,b){var c=b>>13&31;31>c?a.nb&32&&(b=a.Vb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function td(a,b,c){var d,f,e,g=0;if(c&a.bc){d=b>>13&a.cc[a.D];f=a.na[a.D][d];e=(a.na[a.D][d+16]<<6)+(b&8191)&4194303;a.nb&16?3932160<=e&&4186112>e&&(e=gc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.J|=32,a.L(4,12)),e&1&&!(c&1)&&(a.J|=64,a.L(4,14)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&
8128)&&(g|=16384));a.na[a.D][d]=f;if(4194170!==e||a.D)a.za=a.D,a.Ba=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.I&57344||(a.I=a.I|g|a.za<<5|a.Ba<<1),a.L(168,16)),a.I&61440||!(4191360>e||4194239<e)||(a.I|=4096,a.I&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.J|=64,a.L(4,10));return e}l.ec=function(a){return 4194304<=a?this.j[a-4194304]:0<=a?this.H.Ka(a):a};l.La=function(a){return this.ec(td(this,a,2))};function sd(a){var b=a.La(a.j[6]|65536);a.j[6]=a.j[6]+2&65535;return b}
function qd(a,b){var c=a.j[6]-2&65535;a.j[6]=c;a.I&57344||(a.cb=a.cb<<8|246);!a.D&&c<=a.eb&&4<c&&(c<=a.eb-32?(a.J|=4,a.j[6]=4,a.L(4,18)):(a.J|=8,a.C|=4));c=td(a,c|65536,4);a.H.pb(c,b&65535)}
function ud(a,b,c){var d,f,e=c&8?0:a.Fb,g=b>>3&7;b&=7;c&4?(a.i=g,a.f=b):(a.F=g,a.K=b);switch(g){case 0:return a.L(4,20),0;case 1:return 6===b&&!a.D&&c&4&&(a.j[6]<=a.eb||65534<=a.j[6])&&(a.j[6]<=a.eb-32||65534<=a.j[6]?(a.J|=4,a.j[6]=4,a.L(4,22)):(a.J|=8,a.C|=64)),a.b-=3,7===b?a.j[b]:a.j[b]|e;case 2:f=2;d=a.j[b];7!==b&&(d|=e,6>b&&c&1&&(f=1));a.b-=3;break;case 3:f=2;d=a.j[b];7!==b&&(d|=e);d=a.La(d);d|=e;a.b-=7;break;case 4:f=-2;6>b&&c&1&&(f=-1);d=a.j[b]+f&65535;7!==b&&(d|=e);a.b-=4;break;case 5:f=-2;
d=a.j[b]-2&65535;7!==b&&(d|=e);d=a.La(d)|e;a.b-=8;break;case 6:return d=kd(a),d=d+a.j[b]&65535|e,a.b-=6,d;case 7:return d=kd(a),d=d+a.j[b]&65535,d=a.La(d|65536)|e,a.b-=10,d}a.j[b]=a.j[b]+f&65535;!e||a.I&57344||(a.cb=a.cb<<8|f<<3&248|b);6==b&&!a.D&&c&4&&0>=f&&(a.j[6]<=a.eb||65534<=a.j[6])&&(a.j[6]<=a.eb-32?(a.J|=4,a.j[6]=4,a.L(4,24)):(a.J|=8,a.C|=64));return d}l.Sc=function(a,b){return ud(this,a,b)};l.Tc=function(a,b){return td(this,ud(this,a,b),b)};
function vd(a,b,c){b&56?(b=ud(a,b,2),c&65536||61440!==(a.P&61440)&&(b&=65535),a.D=a.P>>12&3,c=a.La(b|c&65536),a.D=a.P>>14&3):(a.F=0,c=a.K=b&7,c=6!=c||(a.P>>2&12288)===(a.P&12288)?a.j[c]:a.Aa[a.P>>12&3]);return c}function wd(a,b,c,d){a.I&57344||(a.cb=22);b&56?(b=ud(a,b,4),c&65536||(b&=65535),a.D=a.P>>12&3,b=td(a,b|c&65536,4),a.D=a.P>>14&3,a.H.pb(b,d&65535)):(a.i=0,c=a.f=b&7,6!=c||(a.P>>2&12288)===(a.P&12288)?a.j[c]=d:a.Aa[a.P>>12&3]=d)}
function P(a,b){b&56?a=a.Qb(ud(a,b,2)):(a.F=0,a=a.j[a.K=b&7]);return a}function xd(a,b){b&56?(b=a.ea(b,3),a=a.H.tb(b)):(a.F=0,a=a.j[a.K=b&7]&255);return a}function R(a,b,c,d){b&56?(b=a.ea(b,6),c=d.call(a,c,a.ec(b)),a.H.pb(b,c&65535)):(a.i=0,b=a.f=b&7,a.j[b]=d.call(a,c,a.j[b]))}function S(a,b,c,d){b&56?(b=a.Ma=a.ea(b,7),c=d.call(a,c,a.H.tb(b)),b&1&&a.b--,a.H.Ub(b,c&255)):(a.i=0,b=a.f=b&7,a.j[b]=a.j[b]&65280|d.call(a,c,a.j[b]))}
function yd(a,b,c){b&56?(b=a.ea(b,4),a.H.pb(b,c&65535)):(a.i=0,a.j[a.f=b&7]=c&65535);return c}function zd(a,b,c,d){b&56?(d=a.ea(b,5),d&1&&a.b--,a.H.Ub(d,c&255)):(a.i=0,b=a.f=b&7,a.j[b]=c?d&1?c<<24>>24&65535:a.j[b]&-256|c&255:a.j[b]&-256);return c}function T(a,b,c){c&&(ld(a,a.j[7]+(b<<24>>23)),a.b-=2);a.b-=3}
l.Cb=function(a){this.u.complete=!0;var b=this.u.Pc=this.G&&Ad(this.G),c=a?this.u.rc?0:1:-1;this.u.rc=!1;this.da=this.b=a;do{if(b){if(Bd(this.G,this.j[7],c)){this.pa();break}c=1}if(this.C&&(this.C&112&&(this.C&32?this.L(168,28):this.C&64?this.L(4,30):this.C&16&&this.L(12,32),this.C&=-113),this.C&7))if(this.C&2){this.C&=-3;a=null;for(var d=this.pc&224,f=this.A.length;0<=--f;){if(0<this.A[f].Xa){this.A[f].Xa--;this.C|=2;break}if(this.A[f].wc){if(!this.A[f].wc()){this.A.splice(f,1);continue}this.A[f].wc=
null}this.A[f].$c>d&&(d=this.A[f].$c,a=this.A[f],this.A.splice(f,1))}d>(this.P&224)&&(this.C&4&&(this.j[7]=this.j[7]+2&65535,this.C&=-5),a?this.L(a.rd,26):this.L(160,26))}else this.C&1&&this.C++;this.I&57344||(this.cb=0,this.fc=this.j[7]);this.C=this.C&7|this.P&16;this.decode(kd(this))}while(0<this.b);return this.u.complete?this.da-this.b:void 0===this.u.complete?0:-1};Pa(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new fd(d);cb(d,c)}});
function Cd(a,b){var c=b+a;nd(this,c,a,b);return c&65535}function Dd(a,b){var c=b+a;nd(this,c<<8,a<<8,b<<8);return c&255}function Ed(a,b){a=b<<1;od(this,a);return a&65535}function Fd(a,b){a=b<<1;od(this,a<<8);return a&255}function Gd(a,b){a=b&32768|b>>1|b<<16;od(this,a);return a&65535}function Hd(a,b){a=b&2048|b>>1|b<<8;od(this,a<<8);return a&255}function Id(a,b){a=b&~a;O(this,a);return a}function Jd(a,b){a=b&~a;O(this,a<<8);return a}function Kd(a,b){a|=b;O(this,a);return a}
function Ld(a,b){a|=b;O(this,a<<8);return a}function Md(a,b){a=~b|65536;md(this,a);return a&65535}function Nd(a,b){a=~b|256;md(this,a<<8);return a&255}function Od(a,b){a=b-a;this.C&128||(this.X=this.Y=a,this.V=b&(b^a));return a&65535}function Pd(a,b){a=b-a;var c=a<<8;b<<=8;this.C&128||(this.X=this.Y=c,this.V=b&(b^c));return a&255}function Qd(a,b){a=b+a;this.C&128||(this.X=this.Y=a,this.V=a&(b^a));return a&65535}
function Rd(a,b){a=b+a;var c=a<<8;this.C&128||(this.X=this.Y=c,this.V=c&(b<<8^c));return a&255}function Sd(a,b){a=-b;md(this,a,a&b&32768);return a&65535}function Td(a,b){a=-b;md(this,a<<8,(a&b&128)<<8);return a&255}function Ud(a,b){a=b<<1|this.U>>16&1;od(this,a);return a&65535}function Vd(a,b){a=b<<1|this.U>>16&1;od(this,a<<8);return a&255}function Wd(a,b){a=(this.U&65536|b)>>1|b<<16;od(this,a);return a&65535}function Xd(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;od(this,a<<8);return a&255}
function Yd(a,b){var c=b-a;pd(this,c,a,b);return c&65535}function Zd(a,b){var c=b-a;pd(this,c<<8,a<<8,b<<8);return c&255}function $d(a,b){this.C&128||(this.X=this.Y=b&65280,this.V=this.U=0);return(b<<8|b>>8)&65535}function ae(a,b){a^=b;O(this,a);return a&65535}
function be(a){var b=P(this,a);a=a>>6&7;var c=this.i[a];c&32768&&(c|=4294901760);this.U=this.V=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.U=c<<17-b,c>>=b):b&&(16<b?(this.V=c,c=0):(this.U=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.V=32768)));this.i[a]=c&65535;this.X=this.Y=c;--this.b}
function ce(a){var b=P(this,a);a=a>>6&7;var c=this.i[a]<<16|this.i[a|1];this.U=this.V=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.U=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.V=32768)):d=c;this.i[a]=d>>16&65535;this.i[a|1]=d&65535;this.X=d>>16;this.Y=d>>16|d;--this.b}function U(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Y=1);a&8&&(this.X=0);--this.b}
function de(a){var b=P(this,a);if(b){a=a>>6&7;var c=this.i[a]<<16|this.i[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.i[a]=d&65535,this.i[a|1]=c-d*b&65535,this.Y=d>>16|d,this.X=d>>16):(this.V=32768,this.Y=d>>15|d,this.X=c>>16,-1===b&&65534===this.i[a]&&(this.i[a]=this.i[a|1]=1))}else this.Y=this.X=0,this.V=32768,this.U=65536;--this.b}function ee(a){ld(this,ud(this,a,8));--this.b}
function fe(a){var b=ud(this,a,8);a=a>>6&7;qd(this,this.i[a]);this.i[a]=this.i[7];ld(this,b);--this.b}var ge=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function he(a){var b=P(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.i[a];c&32768&&(c|=-65536);b=~~(b*c);this.i[a]=b>>16&65535;this.i[a|1]=b&65535;this.C&128||(this.X=b>>16,this.Y=this.X|b,this.V=0,this.U=-32768>b||32767<b?65536:0);--this.b}function Ce(){--this.b}
function W(a){a&1&&(this.U=65536);a&2&&(this.V=32768);a&4&&(this.Y=0);a&8&&(this.X=32768);--this.b}function De(a){var b=(a&448)>>6;(this.i[b]=this.i[b]-1&65535)&&ld(this,this.i[7]-((a&63)<<1));--this.b}function Ee(a){R(this,a,0,$d);this.b-=this.j?9:3+(7==this.f?2:0)}function Fe(a){R(this,a,P(this,(a&448)>>6),ae);this.b-=this.j?9:3+(7==this.f?2:0)}function X(){this.N(8,6)}function gd(a){Ge[a>>12].call(this,a)}
var Ge=[function(a){He[a>>8&15].call(this,a)},function(a){O(this,yd(this,a,P(this,a>>6)));this.b-=ge[(this.F?8:0)+this.j]+(7!=this.f||this.j?0:2)},function(a){var b=P(this,a>>6);a=P(this,a);pd(this,b-a,a,b);this.b-=this.j?4+(this.L&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){O(this,P(this,a>>6)&P(this,a));this.b-=this.j?4+(this.L&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){R(this,a,P(this,a>>6),Id);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},
function(a){R(this,a,P(this,a>>6),Kd);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){R(this,a,P(this,a>>6),Cd);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){Ie[a>>8&15].call(this,a)},function(a){Je[a>>8&15].call(this,a)},function(a){var b=xd(this,a>>6);O(this,zd(this,a,b,1)<<8);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){var b=xd(this,a>>6)<<8;a=xd(this,a)<<8;pd(this,b-a,a,b);this.b-=this.j?
4+(this.L&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){O(this,(xd(this,a>>6)&xd(this,a))<<8);this.b-=this.j?4+(this.L&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){S(this,a,xd(this,a>>6),Jd);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){S(this,a,xd(this,a>>6),Ld);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){R(this,a,P(this,a>>6),Yd);this.b-=this.j?9+(this.L&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:
0)},X],He=[function(a){Ke[a>>4&15].call(this,a)},function(a){T(this,a);--this.b},function(a){jd(this)||T(this,a);--this.b},function(a){jd(this)&&T(this,a);--this.b},function(a){!this.Oa()==!id(this)&&T(this,a);--this.b},function(a){!this.Oa()!=!id(this)&&T(this,a);--this.b},function(a){jd(this)||!this.Oa()!=!id(this)||T(this,a);--this.b},function(a){(jd(this)||!this.Oa()!=!id(this))&&T(this,a);--this.b},fe,fe,function(a){Le[a>>6&3].call(this,a)},function(a){Me[a>>6&3].call(this,a)},function(a){Ne[a>>
6&3].call(this,a)},function(a){Oe[a>>6&3].call(this,a)},X,X],Le=[function(a){md(this,yd(this,a,0));this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Md);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,1,Qd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,1,Od);this.b-=this.j?9:3+(7==this.f?2:0)}],Me=[function(a){R(this,a,0,Sd);--this.b},function(a){R(this,a,N(this)?1:0,Cd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,N(this)?1:0,Yd);this.b-=this.j?9:3+(7==this.f?
2:0)},function(a){a=P(this,a);md(this,a);--this.b}],Ne=[function(a){R(this,a,0,Wd);--this.b},function(a){R(this,a,0,Ud);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Gd);--this.b},function(a){R(this,a,0,Ed);this.b-=this.j?9:3+(7==this.f?2:0)}],Oe=[function(a){a=this.i[7]+((a&63)<<1)&65535;var b=this.La(a|65536);ld(this,this.i[5]);this.i[6]=a+2&65535;this.i[5]=b;--this.b},function(a){a=vd(this,a,0);qd(this,a);O(this,a);--this.b},function(a){var b=sd(this);wd(this,a,0,b);O(this,b);--this.b},
function(a){O(this,yd(this,a,this.Oa?65535:0));this.b-=this.j?9:3+(7==this.f?2:0)}],Ke=[function(a){Pe[a&15].call(this,a)},X,X,X,ee,ee,ee,ee,function(a){var b=sd(this);a&=7;ld(this,this.i[a]);this.i[a]=b;--this.b},function(a){this.P&49152||(this.P=this.P&-2017|(a&7)<<5,this.C|=1);--this.b},function(a){Qe[a&15].call(this,a)},function(a){Re[a&15].call(this,a)},Ee,Ee,Ee,Ee],Qe=[Ce,function(){this.U=0;--this.b},function(){this.V=0;--this.b},U,function(){this.Y=1;--this.b},U,U,U,function(){this.X=0;--this.b},
U,U,U,U,U,U,U],Re=[Ce,function(){this.U=65536;--this.b},function(){this.V=32768;--this.b},W,function(){this.Y=0;--this.b},W,W,W,function(){this.X=32768;--this.b},W,W,W,W,W,W,W],Pe=[function(){this.P&49152?(this.J|=128,this.N(4,3)):ed(this);--this.b},function(){this.C|=4;this.i[7]=this.i[7]+-2&65535;--this.b},function(){rd(this);this.C|=this.P&16;--this.b},function(){this.N(12,1);--this.b},function(){this.N(16,4);--this.b},function(){this.P&49152||(hd(this),this.H.reset());--this.b},function(){rd(this);
--this.b},X,X,X,X,X,X,X,X,X],Ie=[he,he,de,de,be,be,ce,ce,Fe,Fe,X,X,X,X,De,De],Je=[function(a){this.Oa()||T(this,a);--this.b},function(a){this.Oa()&&T(this,a);--this.b},function(a){N(this)||jd(this)||T(this,a);--this.b},function(a){(N(this)||jd(this))&&T(this,a);--this.b},function(a){id(this)||T(this,a);--this.b},function(a){id(this)&&T(this,a);--this.b},function(a){N(this)||T(this,a);--this.b},function(a){N(this)&&T(this,a);--this.b},function(){this.N(24,2);--this.b},function(){this.N(28,5);--this.b},
function(a){Se[a>>6&3].call(this,a)},function(a){Te[a>>6&3].call(this,a)},function(a){Ue[a>>6&3].call(this,a)},function(a){Ve[a>>6&3].call(this,a)},X,X],Se=[function(a){md(this,zd(this,a,0));this.b-=this.j?9:3+(7==this.f?2:0)},function(a){S(this,a,0,Nd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){S(this,a,1,Rd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){S(this,a,1,Pd);this.b-=this.j?9:3+(7==this.f?2:0)}],Te=[function(a){S(this,a,0,Td);--this.b},function(a){S(this,a,N(this)?1:0,Dd);this.b-=
this.j?9:3+(7==this.f?2:0)},function(a){S(this,a,N(this)?1:0,Zd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){a=xd(this,a);md(this,a<<8);--this.b}],Ue=[function(a){S(this,a,0,Xd);--this.b},function(a){S(this,a,0,Vd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){S(this,a,0,Hd);--this.b},function(a){S(this,a,0,Fd);this.b-=this.j?9:3+(7==this.f?2:0)}],Ve=[X,function(a){a=vd(this,a,65536);qd(this,a);O(this,a);--this.b},function(a){var b=sd(this);wd(this,a,65536,b);O(this,b);--this.b},X];
function We(a){w.call(this,"ROM",a,We);this.f=null;this.D=a.addr;this.j=a.size;this.F=a.writable;this.B=a.alias;this.A=a.file;this.I=ca(this.A);if(this.A){a=this.A;var b=da(this.I);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;ra(a,null,!0,function(a,b,e){Xe(c,a,b,e)})}}B(We);We.prototype.Ya=function(a,b,c,d){this.H=b;this.b=c;this.G=d;Ye(this)};
We.prototype.Qa=function(){if(this.Ma){if(this.G){var a=this.G,b=this.id,c=this.D,d=this.j,f=this.Ma,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],p=oa(n,k,a.yc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({xd:b,w:c,Vc:d,Ma:f,uc:e})}delete this.Ma}return!0};We.prototype.Pa=function(){return!0};
function Xe(a,b,c,d){if(d)a.ra("Unable to load system ROM (error "+d+": "+b+")");else{$a(a.wc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.f=e;else if(e=h.words)for(a.f=Array(2*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255,a.f[g++]=e[f]>>16&255,a.f[g++]=e[f]>>24&255;else a.f=h;a.Ma=h.symbols;if(!a.f.length){v("Empty ROM: "+
b);return}if(1==a.f.length){v(a.f[0]);return}}catch(k){a.ra("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),f=0;f<b.length;f++)a.f[f]=ba(b[f],16);Ye(a)}}
function Ye(a){if(!gb(a))if(!a.A)F(a);else if(a.f&&a.H){a.j||(a.j=a.f.length);if(a.f.length!=a.j)ub(a,"ROM size ("+t(a.f.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.D;if(Eb(a.H,b,a.j,a.F?1:nc)){var c;for(c=0;c<a.f.length;c++){var d=a.H,f=b+c;d.O[(f&d.j)>>>d.Z].Db(f&d.f,a.f[c]&255,f)}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 e=a,d=b[c],f=e.H,g=e.j,h=[],k=e.D>>>f.Z;0<g&&k<f.O.length;)h.push(f.O[k++]),
g-=f.Ea;f=e.H;e=e.j;g=0;for(d>>>=f.Z;0<e&&d<f.O.length;){k=h[g++];if(!k)break;f.O[d++]=k;e-=f.Ea}}delete a.f}}F(a)}}Pa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new We(d);cb(d,c)}});function Ze(a){w.call(this,"RAM",a,Ze);this.B=a.addr;this.j=a.size;this.f=!1}B(Ze);l=Ze.prototype;l.Ya=function(a,b,c,d){this.H=b;this.b=c;this.G=d;F(this)};l.Qa=function(a,b){b||this.reset();return!0};l.Pa=function(a){return a?this.save():!0};
l.reset=function(){!this.f&&this.j&&Eb(this.H,this.B,this.j,1)&&(this.f=!0);this.f||v("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Pa(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Ze(d);cb(d,c)}});function $e(a){w.call(this,"Keyboard",a,$e,65536);F(this)}B($e);$e.prototype.xa=function(){return!1};$e.prototype.Ya=function(a,b,c,d){this.B=a;this.b=c;this.G=d;this.ta=null};
Pa(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new $e(d);cb(d,c)}});function af(a){w.call(this,"Debugger",a,af);this.da=a.base||16;this.Da=!1;this.$=this.Ca=this.I=0;this.ca=!1;this.A=-1;this.j=[];this.ia={}}B(af);var bf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};af.prototype.Cc=function(){return-1};af.prototype.Dc=function(){};
function cf(a,b,c,d){if(c)if(b){0>a.A&&a.j.length&&(a.A=0);if(0>a.A||b!=a.j[a.A])a.j.splice(0,0,b),a.A=0;a.A--}else a.ca?b="end":b=a.j[a.A+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(na(b.substring(c,e))),c=e+1}}return a}
function df(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
function be(a){var b=P(this,a);a=a>>6&7;var c=this.j[a];c&32768&&(c|=4294901760);this.U=this.V=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.U=c<<17-b,c>>=b;else if(b)if(16<b)this.V=c,c=0;else{this.U=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.V=32768)}this.j[a]=c&65535;this.X=this.Y=c;this.b-=(this.i?6:7)+b}
function ce(a){var b=P(this,a);a=a>>6&7;var c=this.j[a]<<16|this.j[a|1];this.U=this.V=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.U=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.V=32768)):d=c;this.j[a]=d>>16&65535;this.j[a|1]=d&65535;this.X=d>>16;this.Y=d>>16|d;this.b-=(this.i?6:7)+b}function U(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Y=1);a&8&&(this.X=0);this.b-=5}
function de(a){var b=P(this,a);if(b){a=a>>6&7;var c=this.j[a]<<16|this.j[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.j[a]=d&65535,this.j[a|1]=c-d*b&65535,this.Y=d>>16|d,this.X=d>>16):(this.V=32768,this.Y=d>>15|d,this.X=c>>16,-1===b&&65534===this.j[a]&&(this.j[a]=this.j[a|1]=1));this.b-=53}else this.Y=this.X=0,this.V=32768,this.U=65536,this.b-=7}var ee=[0,7,7,10,7,11,9,13];function fe(a){var b=this.b;ld(this,ud(this,a,8));this.b=b-ee[this.i]}
var ge=[0,14,14,17,14,18,16,20];function he(a){var b=this.b,c=ud(this,a,8);a=a>>6&7;qd(this,this.j[a]);this.j[a]=this.j[7];ld(this,c);this.b=b-ge[this.i]}var ie=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17],De=[7,13,13,17,14,18,17,21];function Ee(a){var b=P(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.j[a];c&32768&&(c|=-65536);b=~~(b*c);this.j[a]=b>>16&65535;this.j[a|1]=b&65535;this.C&128||(this.X=b>>16,this.Y=this.X|b,this.V=0,this.U=-32768>b||32767<b?65536:0);this.b-=23}
function Fe(){this.b-=5}function W(a){a&1&&(this.U=65536);a&2&&(this.V=32768);a&4&&(this.Y=0);a&8&&(this.X=32768);this.b-=5}function Ge(a){var b=(a&448)>>6;if(this.j[b]=this.j[b]-1&65535)ld(this,this.j[7]-((a&63)<<1)),this.b+=1;this.b-=6}function He(a){R(this,a,0,$d);this.b-=this.i?9:3+(7==this.f?2:0)}function Ie(a){R(this,a,P(this,(a&448)>>6),ae);this.b-=this.i?9:3+(7==this.f?2:0)}function X(){this.L(8,6)}function gd(a){Je[a>>12].call(this,a)}
var Je=[function(a){Ke[a>>8&15].call(this,a)},function(a){var b=this.b;O(this,yd(this,a,P(this,a>>6)));this.b=b-ie[(this.F?8:0)+this.i]+(7!=this.f||this.i?0:2)},function(a){var b=P(this,a>>6);a=P(this,a);pd(this,b-a,a,b);this.b-=this.i?4+(this.K&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){O(this,P(this,a>>6)&P(this,a));this.b-=this.i?4+(this.K&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){R(this,a,P(this,a>>6),Id);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?5:3)+(7==
this.f?2:0)},function(a){R(this,a,P(this,a>>6),Kd);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){R(this,a,P(this,a>>6),Cd);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){Le[a>>8&15].call(this,a)},function(a){Me[a>>8&15].call(this,a)},function(a){var b=xd(this,a>>6);O(this,zd(this,a,b,1)<<8);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){var b=xd(this,a>>6)<<8;a=xd(this,a)<<8;pd(this,b-a,a,
b);this.b-=this.i?4+(this.K&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){O(this,(xd(this,a>>6)&xd(this,a))<<8);this.b-=this.i?4+(this.K&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)},function(a){S(this,a,xd(this,a>>6),Jd);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){S(this,a,xd(this,a>>6),Ld);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)},function(a){R(this,a,P(this,a>>6),Yd);this.b-=this.i?9+(this.K&&6<=this.f?1:0):(this.F?
5:3)+(7==this.f?2:0)},X],Ke=[function(a){Ne[a>>4&15].call(this,a)},function(a){T(this,a,!0)},function(a){T(this,a,!jd(this))},function(a){T(this,a,jd(this))},function(a){T(this,a,!this.Pa()==!id(this))},function(a){T(this,a,!this.Pa()!=!id(this))},function(a){T(this,a,!jd(this)&&!this.Pa()==!id(this))},function(a){T(this,a,jd(this)||!this.Pa()!=!id(this))},he,he,function(a){Oe[a>>6&3].call(this,a)},function(a){Pe[a>>6&3].call(this,a)},function(a){Qe[a>>6&3].call(this,a)},function(a){Re[a>>6&3].call(this,
a)},X,X],Oe=[function(a){md(this,yd(this,a,0));this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Md);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,1,Qd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,1,Od);this.b-=this.i?9:3+(7==this.f?2:0)}],Pe=[function(a){R(this,a,0,Sd);this.b-=this.i?11:6},function(a){R(this,a,N(this)?1:0,Cd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,N(this)?1:0,Yd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){a=P(this,a);md(this,
a);this.b-=this.i?4:3+(7==this.f?2:0)}],Qe=[function(a){R(this,a,0,Wd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Ud);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Gd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Ed);this.b-=this.i?9:3+(7==this.f?2:0)}],Re=[function(a){a=this.j[7]+((a&63)<<1)&65535;var b=this.La(a|65536);ld(this,this.j[5]);this.j[6]=a+2&65535;this.j[5]=b;this.b-=8},function(a){a=vd(this,a,0);qd(this,a);O(this,a);this.b-=11},function(a){var b=
sd(this),c=this.b;wd(this,a,0,b);O(this,b);this.b=c-De[this.i]},function(a){O(this,yd(this,a,this.Pa?65535:0));this.b-=this.i?9:3+(7==this.f?2:0)}],Ne=[function(a){Se[a&15].call(this,a)},X,X,X,fe,fe,fe,fe,function(a){if(a&8)this.L(8,6);else{var b=sd(this);a&=7;ld(this,this.j[a]);this.j[a]=b;this.b-=9}},function(a){a&8?(this.P&49152||(this.P=this.P&-2017|(a&7)<<5,this.C|=1),this.b-=5):this.L(8,6)},function(a){Te[a&15].call(this,a)},function(a){Ue[a&15].call(this,a)},He,He,He,He],Se=[function(){this.P&
49152?(this.J|=128,this.L(4,3)):ed(this);this.b-=7},function(){this.C|=4;this.j[7]=this.j[7]+-2&65535;this.b-=3},function(){rd(this);this.C|=this.P&16;this.b-=13},function(){this.L(12,1);this.b-=5},function(){this.L(16,4);this.b-=25},function(){this.P&49152||(hd(this),this.H.reset());this.b-=667},function(){rd(this);this.b-=13},X,X,X,X,X,X,X,X,X],Te=[Fe,function(){this.U=0;this.b-=5},function(){this.V=0;this.b-=5},U,function(){this.Y=1;this.b-=5},U,U,U,function(){this.X=0;this.b-=5},U,U,U,U,U,U,U],
Ue=[Fe,function(){this.U=65536;this.b-=5},function(){this.V=32768;this.b-=5},W,function(){this.Y=0;this.b-=5},W,W,W,function(){this.X=32768;this.b-=5},W,W,W,W,W,W,W],Le=[Ee,Ee,de,de,be,be,ce,ce,Ie,Ie,X,X,X,X,Ge,Ge],Me=[function(a){T(this,a,!this.Pa())},function(a){T(this,a,this.Pa())},function(a){T(this,a,!N(this)&&!jd(this))},function(a){T(this,a,N(this)||jd(this))},function(a){T(this,a,!id(this))},function(a){T(this,a,id(this))},function(a){T(this,a,!N(this))},function(a){T(this,a,N(this))},function(){this.L(24,
2);this.b-=25},function(){this.L(28,5);this.b-=5},function(a){Ve[a>>6&3].call(this,a)},function(a){We[a>>6&3].call(this,a)},function(a){Xe[a>>6&3].call(this,a)},function(a){Ye[a>>6&3].call(this,a)},X,X],Ve=[function(a){md(this,zd(this,a,0));this.b-=this.i?9:3+(7==this.f?2:0)},function(a){S(this,a,0,Nd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){S(this,a,1,Rd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){S(this,a,1,Pd);this.b-=this.i?9:3+(7==this.f?2:0)}],We=[function(a){S(this,a,0,Td);this.b-=
this.i?11:6},function(a){S(this,a,N(this)?1:0,Dd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){S(this,a,N(this)?1:0,Zd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){a=xd(this,a);md(this,a<<8);this.b-=this.i?4:3+(7==this.f?2:0)}],Xe=[function(a){S(this,a,0,Xd);this.b-=this.i?9+(this.Ma&1):3+(7==this.f?2:0)},function(a){S(this,a,0,Vd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){S(this,a,0,Hd);this.b-=this.i?9+(this.Ma&1):3+(7==this.f?2:0)},function(a){S(this,a,0,Fd);this.b-=this.i?9:3+(7==
this.f?2:0)}],Ye=[X,function(a){a=vd(this,a,65536);qd(this,a);O(this,a);this.b-=11},function(a){var b=sd(this),c=this.b;wd(this,a,65536,b);O(this,b);this.b=c-De[this.i]},X];function Ze(a){w.call(this,"ROM",a,Ze);this.f=null;this.D=a.addr;this.i=a.size;this.F=a.writable;this.B=a.alias;this.A=a.file;this.I=ca(this.A);if(this.A){a=this.A;var b=da(this.I);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;ra(a,null,!0,function(a,b,e){$e(c,a,b,e)})}}B(Ze);
Ze.prototype.Za=function(a,b,c,d){this.H=b;this.b=c;this.G=d;af(this)};Ze.prototype.Ra=function(){if(this.Na){if(this.G){var a=this.G,b=this.id,c=this.D,d=this.i,f=this.Na,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],p=oa(n,k,a.xc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({yd:b,w:c,Wc:d,Na:f,uc:e})}delete this.Na}return!0};Ze.prototype.Qa=function(){return!0};
function $e(a,b,c,d){if(d)a.ra("Unable to load system ROM (error "+d+": "+b+")");else{$a(a.yc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.f=e;else if(e=h.words)for(a.f=Array(2*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255,a.f[g++]=e[f]>>16&255,a.f[g++]=e[f]>>24&255;else a.f=h;a.Na=h.symbols;if(!a.f.length){v("Empty ROM: "+
b);return}if(1==a.f.length){v(a.f[0]);return}}catch(k){a.ra("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),f=0;f<b.length;f++)a.f[f]=ba(b[f],16);af(a)}}
function af(a){if(!gb(a))if(!a.A)F(a);else if(a.f&&a.H){a.i||(a.i=a.f.length);if(a.f.length!=a.i)ub(a,"ROM size ("+t(a.f.length,8,!0)+") does not match specified size ("+t(a.i,8,!0)+")");else{var b;b=a.D;if(Eb(a.H,b,a.i,a.F?1:nc)){var c;for(c=0;c<a.f.length;c++){var d=a.H,f=b+c;d.O[(f&d.i)>>>d.Z].Eb(f&d.f,a.f[c]&255,f)}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 e=a,d=b[c],f=e.H,g=e.i,h=[],k=e.D>>>f.Z;0<g&&k<f.O.length;)h.push(f.O[k++]),
g-=f.Ea;f=e.H;e=e.i;g=0;for(d>>>=f.Z;0<e&&d<f.O.length;){k=h[g++];if(!k)break;f.O[d++]=k;e-=f.Ea}}delete a.f}}F(a)}}Pa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Ze(d);cb(d,c)}});function bf(a){w.call(this,"RAM",a,bf);this.B=a.addr;this.i=a.size;this.f=!1}B(bf);l=bf.prototype;l.Za=function(a,b,c,d){this.H=b;this.b=c;this.G=d;F(this)};l.Ra=function(a,b){b||this.reset();return!0};l.Qa=function(a){return a?this.save():!0};
l.reset=function(){!this.f&&this.i&&Eb(this.H,this.B,this.i,1)&&(this.f=!0);this.f||v("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Pa(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new bf(d);cb(d,c)}});function cf(a){w.call(this,"Keyboard",a,cf,65536);F(this)}B(cf);cf.prototype.xa=function(){return!1};cf.prototype.Za=function(a,b,c,d){this.B=a;this.b=c;this.G=d;this.ta=null};
Pa(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new cf(d);cb(d,c)}});function df(a){w.call(this,"Debugger",a,df);this.da=a.base||16;this.Da=!1;this.$=this.Ca=this.I=0;this.ca=!1;this.A=-1;this.i=[];this.ia={}}B(df);var ef={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};df.prototype.Cc=function(){return-1};df.prototype.Dc=function(){};
function ff(a,b,c,d){if(c)if(b){0>a.A&&a.i.length&&(a.A=0);if(0>a.A||b!=a.i[a.A])a.i.splice(0,0,b),a.A=0;a.A--}else a.ca?b="end":b=a.i[a.A+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(na(b.substring(c,e))),c=e+1}}return a}
function gf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
case "^":d=e^f;break;case "|":d=e|f;break;case "&&":d=e&&f?1:0;break;case "||":d=e||f?1:0;break;default:return!1}a.push(d|0)}return!0}
function ef(a,b,c){var d;if(b){b=ff(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],p=n.length,n=na(n);if(!n){e=!0;break}n=gf(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],q=n.length;k.length&&bf[n]<bf[k[k.length-1]]&&df(h,k,1);k.push(n);b=b.substr(p+q)}df(h,k)&&1==h.length||(e=!0);e?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&hf(a,null,
d))}return d}function ff(a,b){for(var c,d=a.Da?"(":"{",f=a.Da?")":"}",e=new RegExp(a.Da?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(e))&&!(0<=c[1].indexOf(d));){var g=ef(a,c[1]);b=b.replace(d+c[1]+f,null!=g?Y(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.$-a.Ca}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function gf(a,b,c,d){var f;null!=b?(f=a.Cc(b),0<=f?f=a.Dc(f):(f=a.ia[b],null==f&&(f=ba(b,a.da))),null!=f||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return f}
function hf(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;d>>=8}d=t(c,0,!0)+" "+c+". "+r(c,0,!0)+" "+("0b"+g)}a.g((null!=b?b+": ":"")+d);return f}function jf(a,b){if(b)return hf(a,b,a.ia[b]);var c=0;for(b in a.ia)hf(a,b,a.ia[b]),c++;return 0<c}
function hf(a,b,c){var d;if(b){b=jf(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],p=n.length,n=na(n);if(!n){e=!0;break}n=kf(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],q=n.length;k.length&&ef[n]<ef[k[k.length-1]]&&gf(h,k,1);k.push(n);b=b.substr(p+q)}gf(h,k)&&1==h.length||(e=!0);e?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&lf(a,null,
d))}return d}function jf(a,b){for(var c,d=a.Da?"(":"{",f=a.Da?")":"}",e=new RegExp(a.Da?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(e))&&!(0<=c[1].indexOf(d));){var g=hf(a,c[1]);b=b.replace(d+c[1]+f,null!=g?Y(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.$-a.Ca}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function kf(a,b,c,d){var f;null!=b?(f=a.Cc(b),0<=f?f=a.Dc(f):(f=a.ia[b],null==f&&(f=ba(b,a.da))),null!=f||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return f}
function lf(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;d>>=8}d=t(c,0,!0)+" "+c+". "+r(c,0,!0)+" "+("0b"+g)}a.g((null!=b?b+": ":"")+d);return f}function mf(a,b){if(b)return lf(a,b,a.ia[b]);var c=0;for(b in a.ia)lf(a,b,a.ia[b]),c++;return 0<c}
function Y(a,b,c,d){switch(a.da){case 8:a=r(b,3*c);break;case 10:a=b.toString();break;default:a=t(b,2*c)}d&&"0"==a.charAt(0)&&(a=a.replace(/^0+([0-9A-F]+)$/i,"$1"));return a}
function kf(a){af.call(this,a);this.Da=!0;this.S=Z();this.qb=Z();this.ba=Z();this.F=[];this.f=this.W=this.D=[];lf(this);this.ua=0;mf(this);this.Ia={};nf(this,a.messages);this.ib=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Dc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Dc(b,a)})}B(kf,af);
var of={"?":"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",v:"print version","var":"assign variable"},pf="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
qf={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
function nf(a){df.call(this,a);this.Da=!0;this.S=Z();this.rb=Z();this.ba=Z();this.F=[];this.f=this.W=this.D=[];of(this);this.ua=0;pf(this);this.Ia={};qf(this,a.messages);this.Ma=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Dc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Dc(b,a)})}B(nf,df);
var rf={"?":"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",v:"print version","var":"assign variable"},sf="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
tf={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};l=kf.prototype;
l.Ya=function(a,b,c,d){this.H=b;this.b=c;this.B=a;(a=Ac(a,"messages"))&&nf(this,a);this.Lb=qf;rf(this,function(a){a:{var b=d.H.O,c=a[0],f=a=0,k=b.length;if(c){a=d.ea(sf(d,c));if(-1===a){d.g("invalid address: "+c);break a}f=a>>>d.H.Z;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.g("..."):(c=n.type,m=Hb[c],n&&d.g(t(n.id,8)+" %"+t(f<<d.H.Z,8)+" %%"+t(n.w,8)+" "+t(n.Yb,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};l=nf.prototype;
l.Za=function(a,b,c,d){this.H=b;this.b=c;this.B=a;(a=Ac(a,"messages"))&&qf(this,a);this.Ib=tf;uf(this,function(a){a:{var b=d.H.O,c=a[0],f=a=0,k=b.length;if(c){a=d.ea(vf(d,c));if(-1===a){d.g("invalid address: "+c);break a}f=a>>>d.H.Z;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.g("..."):(c=n.type,m=Hb[c],n&&d.g(t(n.id,8)+" %"+t(f<<d.H.Z,8)+" %%"+t(n.w,8)+" "+t(n.Xb,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=mc&&(c=-1),m=0);a+=d.H.Ea;f++}}});F(this)};
l.xa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ta=this.K[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Dc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.j.length-1&&(b=d.j[++d.A])):40==a.keyCode&&(0<d.A?b=d.j[--d.A]:(b="",d.A=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.K[b]=c,Da(c,function(){if(d.ta){var a=d.ta.value;
d.ta.value="";Dc(d,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=c,Da(c,function(a){var b=!1;fb(d,!0)||(eb(d,!0),b=d.Bb(a?1:0),eb(d,!1));return b}),!0}return!1};l.Xb=function(){this.ta&&this.ta.focus()};l.ea=function(a){a=a&&a.w;null==a&&(a=-1);return a};l.sb=function(a,b){var c=255,d=this.ea(a,!1,1);-1!==d&&(c=this.H,c=c.O[(d&c.j)>>>c.Z].Qb(d&c.f,d),b&&tf(a,b));return c};l.Ka=function(a,b){var c=65535,d=this.ea(a,!1,2);-1!==d&&(c=Ib(this.H,d),b&&tf(a,b));return c};
l.Vb=function(a,b,c){var d=this.ea(a,!0,1);if(-1!==d){var f=this.H;f.O[(d&f.j)>>>f.Z].Db(d&f.f,b&255,d);c&&tf(a,c);L(this.b,!0)}};l.pb=function(a,b,c){var d=this.ea(a,!0,2);if(-1!==d){var f=this.H,e=d&f.f,g=(d&f.j)>>>f.Z;e!=f.f?f.O[g].tc(e,b&65535,d):(f.O[g++].Db(e,b&255,d),f.O[g&f.B].Db(0,b>>8&255,d+1));c&&tf(a,c);L(this.b,!0)}};function Z(a){return{w:a,Ja:!1}}function uf(a){return[a.w,a.Ja]}function vf(a){return{w:a[0],Ja:a[1]}}
function sf(a,b,c){var d;c=(c?a.S:a.qb).w;if(void 0!==b){d=b=ff(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var e=a.F[c].Ma[d];if(void 0!==e){d=e.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;c=ef(a,b,void 0)}null!=c&&(d=Z(c));return d}function wf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Nc=cf(a,b.Ic=c[2]))}function tf(a,b){null!=a.w&&(a.w+=b||1)}
function nf(a,b){a.G=a;a.ka=a.Oc=536870912;a.za=null;a.Ba=[];b=cf(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){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 f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ka|=G[c],a.g(c+" messages enabled"))}}function rf(a,b){for(var c in G)if(64==G[c]){a.Ia[c]=b;break}}
l.Cc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function xf(a){return 6>a?"R"+a:6==a?"SP":"PC"}l.Dc=function(a){var b;0<=a&&(8>a?b=this.b.i[a]:16>a?b=this.b.Ra[a-8]:20>a?b=this.b.Aa[a-16]:20==a&&(b=Zb(this.b)));return b};
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.i[7]).w));this.ka&1073741824?this.Ba.push(a):this.za&&a==this.za||(this.za=a,this.ka&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,ed(a),a.la=0,L(a)))};
function mf(a){var b;if(Ad(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=Z();a.ma=0;a.g("instruction history buffer allocated")}if(!a.la||!a.la.length)for(a.la=Array(256),b=0;b<a.la.length;b++)a.la[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.ma=0,a.L=[],a.la=[]}l.Ab=function(a){if(!yf(this))return!1;this.b.Ab(a);return!0};
l.Bb=function(a,b,c){if(!yf(this))return!1;this.I=0;a||Ad(this)&&Bd(this,this.b.i[7],0);try{a=cd(this.b,a);var d=this.b.Bb(a);0<d&&(dd(this.b,a),this.I+=d,ad(this.b,d,!0),Ec(this.b,d),this.$++)}catch(f){"number"!=typeof f&&(this.I=0,ub(this.b,f.stack||f.message))}!1!==c&&L(this.b);this.Ha(b||!1);return 0<this.I};l.pa=function(a){this.b&&this.b.pa(a)};l.Ha=function(a){void 0===a&&(a=!0);this.S=Z(this.b.i[7]);a&&1!=this.fa?zf(this):Af(this)};
function yf(a){var b;if(b=a.b&&gb(a.b))b=a.b,b.u.ja?b=!0:(b.g(b.toString()+" not powered"),b=!1);return b&&!a.b.u.ha?!tb(a.b):!1}l.Qa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Pa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){mf(this);this.$=this.Ca=0;this.za=null;this.I=0;this.S=Z(this.b.i[7]);this.u.ha=!1;Bf(this);a||this.Ha()};
l.save=function(){var a=new M(this);a.set(0,uf(this.S));a.set(1,uf(this.ba));a.set(2,[this.j,this.ca,this.ka]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.S=vf(a[b++]),this.ba=vf(a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.ca=a[b][1],this.ka|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.fa||this.g("running");this.u.ha=!0;this.Zb=a;this.$b=b};
l.stop=function(a,b){if(this.u.ha){this.u.ha=!1;this.I=b-this.$b;if(!this.fa){b="stopped";if(this.I){a-=this.Zb;var c=0<a?Math.round(1E3*this.I/a):0;b+=" (";Ad(this)&&(b+=this.$+" opcodes, ",this.Ca-=this.$,this.$=0);b+=this.I+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.Ha(!0);this.Xb();Bf(this,this.b.i[7])}};function Ad(a){return 1<a.f.length||!!a.ua}
function Bd(a,b,c){var d=a.b;if(0<c&&(a.ua&&!--a.ua||vc(a,b,1,a.f)))return!0;0<=c&&a.la.length&&(a.$++,null!=Ib(a.H,b)&&(b=a.L[a.ma],b.w=d.i[7],b.Ja=!1,++a.ma==a.L.length&&(a.ma=0)));return!1}function lf(a){var b,c;a.f=["bp"];if(a.W)for(b=1;b<a.W.length;b++){c=a.W[b];var d=a.H;c=a.ea(c);wc(d.O[c>>>d.Z],!1)}a.W=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.H,c=a.ea(c),wc(d.O[c>>>d.Z],!0);a.D=["bw"];a.Eb=0}
l.jb=function(a,b,c){var d=!0;c||Cf(this,a,b,!1,!0);if(a!=this.f){var f=this.ea(b);if(-1===f)this.g("invalid address: "+Y(this,b.w)),d=!1;else{var e=this.H;e.O[f>>>e.Z].jb(f&e.f,a==this.D)}}d&&(a.push(b),c?b.Ja=!0:(Df(this,a,a.length-1,"set"),mf(this)));return d};function Cf(a,b,c,d,f){var e=!1;c=a.ea(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ea(h)&&(!d||h.Ja)){e=!0;h.Ja||f||Df(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.H,wc(d.O[c>>>d.Z],b==a.D));h.Ja||mf(a);break}}return e}
function Ef(a,b){for(var c=1;c<b.length;c++)Df(a,b,c);return b.length-1}function Df(a,b,c,d){c=b[c];a.g(b[0]+" "+Y(a,c.w)+(d?" "+d:c.Ic?' "'+c.Ic+'"':""))}function Bf(a,b){if(void 0!==b)vc(a,b,1,a.f,!0),a.fa=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ja){if(!Cf(a,a.f,c,!0))break;b=0}}}
function vc(a,b,c,d,f){var e=!1;if(!a.Eb++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ja)for(var k=a.ea(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ja&&(Cf(a,d,h,!0),f=!0);if(n=h.Nc){for(var e=!1,p=0;p<n.length;p++)if(!Ff(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.u.ha||(e=!0)}if(e){f||Df(a,d,g,"hit");break}}}a.Eb--;return e}
function Gf(a,b,c,d){var f=Z(b.w),e=a.Ka(b,2),g,h;for(h in a.Lb)if(g=a.Lb[h][e&h])break;g||(g=[0]);h="";for(var k=pf[g[0]],m=g.length-1,n=1;n<=m;n++){var p=g[n];if(void 0!==p){var q;q=a;var y=p,p=b,u="",z=y&61440;if(4096==z)p=p.w+((e&255)<<24>>23)&65535,u=Y(q,p);else if(8192==z)p=p.w-((e&63)<<1)&65535,u=Y(q,p);else if(12288==z)u=Y(q,e&7,1);else if(24576==z)u=Y(q,e&63,1);else if(z=e&y,y&4032&&(z>>=6,y>>=6),y&63)switch(y=z&7,z&56){case 0:u=xf(y);break;case 8:u="@"+xf(y);break;case 16:7>y?u="("+xf(y)+
")+":(z=q.Ka(p,2),u="#"+Y(q,z,0,!0));break;case 24:7>y?u="@("+xf(y)+")+":(z=q.Ka(p,2),u="@#"+Y(q,z,0,!0));break;case 32:u="-("+xf(y)+")";break;case 40:u="@-("+xf(y)+")";break;case 48:z=q.Ka(p,2);u=Y(q,z,0,!0)+"("+xf(y)+")";7==y&&(u=[u,Y(q,z+p.w&65535)]);break;case 56:z=q.Ka(p,2),u="@"+Y(q,z)+"("+xf(y)+")",7==y&&(u=[u,Y(q,z+p.w&65535)])}q=u;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0<h.length&&(h+=",");h+=q||"???"}}e="";g=Y(a,f.w)+":";if(-1!==f.w&&-1!==b.w){do if(e+=
" "+Y(a,a.Ka(f,2)),null==f.w)break;while(f.w!=b.w)}g+=ma(e,24);g+=ma(k,5);h&&(g+=" "+h);c&&(g=ma(g,60)+";"+c,g=a.b.u.rb?g+("cycles="+Yc(a.b).toString()+" cs="+t(a.b.Nb)):g+(null!=d?"="+d.toString():""));return g}function Hf(a,b){switch(b){case "N":a=a.b.Oa();break;case "Z":a=jd(a.b);break;case "V":a=id(a.b);break;case "C":a=N(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function If(a,b){var c="",d=a.b;8>b?(c=xf(b),c+="="+Y(a,d.i[b])):13>b?c="A"+(b-8)+"="+Y(a,d.Ra[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+Y(a,d.Aa[b-16]):20==b&&(c="PS="+Y(a,Zb(d)));c&&(c+=" ");return c}function Jf(a){var b,c="";for(b=0;6>b;b++)c+=If(a,b);c=c+"\n"+(If(a,6)+If(a,7)+If(a,20));return c+=Hf(a,"T")+Hf(a,"N")+Hf(a,"Z")+Hf(a,"V")+Hf(a,"C")}l.yc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Kf(a,b,c){var d=[],f=a.ea(b)>>>0;for(b=0;b<a.F.length;b++){var e=a.F[b],g=e.w>>>0,h=e.Vc;if(f>=g&&f<g+h){f=oa(e.uc,[f-g],a.yc);0<=f?Lf(a,b,f,d):c&&(f=~f,Lf(a,b,f-1,d),Lf(a,b,f,d));break}}return d}function Lf(a,b,c,d){var f={},e=a.F[b].uc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.F[b].Ma[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
function Mf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return jf(a)||a.g("no variables"),!0;if(!c[2])return jf(a,c[1]);if(!c[3])return delete a.ia[c[1]],!0;b=ef(a,c[3]);return void 0!==b?(a.ia[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
function Nf(a,b,c){var d=null;if(b=sf(a,b,!0)){a.ea(b);var f=Kf(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.w-f[1])&&(g=" + "+t(e,4,!0)),e=f[0]+" ("+Y(a,f[1])+")"+g,c&&a.g(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.w)&&(g=" - "+t(e,4,!0)),e=f[4]+" ("+Y(a,f[5])+")"+g,c&&a.g(e),d||(d=e))}else c&&a.g("no symbols")}return d}
function zf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}e=ef(a,b);if(void 0===e)return;b=f.toUpperCase();switch(b){case "SP":case "R6":d.i[6]=e&65535;break;case "PC":case "R7":ld(d,e);a.S=Z(d.i[7]);break;case "N":d.X=e?32768:0;break;
case "Z":d.Y=e?0:1;break;case "V":d.V=e?32768:0;break;case "C":d.U=e?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.i[b]=e&65535;break}a.g("unknown register: "+f);return}L(d);a.g("updated registers:")}a.g(Jf(a));c&&(a.S=Z(d.i[7]),Af(a,Y(a,a.S.w)))}}function Of(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(c[2]):ef(a,b,!0)}
function Pf(a,b,c){var d="t"!=b;c=gf(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Ca(c,function(){return eb(a,!0)&&a.Bb(f,d,!1)},function(){L(a.b);eb(a,!1)})}
function Af(a,b,c,d){if(b=sf(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=sf(a,c,!0);if(!d||d.w<b.w)return;f=d.w-b.w;if(256<f){a.g("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=fb(a,!1)||a.fa?a.I:null;var g=null!=e?"cycles":null,h=Kf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],e=null);e=Gf(a,b,g,e);a.g(e);a.S=b;f-=b.w-k;c++}}}
function Ff(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ca&&(a.g("ended assemble at "+Y(a,a.ba.w)),a.S=a.ba,a.ca=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(gb(a)&&0<b.length){a.ca&&(b="a "+Y(a,a.ba.w)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=sf(a,e[1],!0);
if(n)if(a.ba=n,void 0===e[2])a.g("begin assemble at "+Y(a,n.w)),a.ca=!0,L(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.Vb(n,p[q],1);a.g(Gf(a,a.ba))}}break;case "b":a:{var y=e[0],u=e[1],z=b;if("?"==u)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var wa=y.charAt(1);if("l"==wa){var Fc;Fc=0+Ef(a,a.f);Fc+=Ef(a,a.W);(Fc+=Ef(a,a.D))||a.g("no breakpoints")}else if("n"==wa)a.ua=gf(a,u),a.g("break after "+a.ua+" instruction(s)");else if(void 0===u)a.g("missing breakpoint address");else{var Q=Z();if("*"!=u&&(Q=sf(a,u,!0),!Q))break a;"c"==wa?null==Q.w?(lf(a),a.g("all breakpoints cleared")):Cf(a,a.f,Q)||Cf(a,a.W,Q)||Cf(a,a.D,Q)||a.g("breakpoint missing: "+Y(a,Q.w)):null!=Q.w&&(wf(a,Q,z),"p"==wa?a.jb(a.f,Q):"r"==wa?a.jb(a.W,Q):"w"==wa?a.jb(a.D,Q):
a.g("unknown breakpoint command: "+wa))}}}break;case "c":a.kb&&(a.kb.value="");break;case "d":a:{var Ja,Ka=e[0],ea=e[1],xa=e[2],hg=e[3];if("?"==ea){var La="";for(Ja in G)a.Ia[Ja]&&(La&&(La+=","),La+=Ja);La+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");La.length&&a.g("dump extension commands:\n\t"+
La)}else if("state"==ea){var ie=Qf(a.B,!0);"console"==xa?console.log(ie):(a.kb&&(a.kb.value=""),a.g(ie))}else if("symbols"==ea)for(var Gc=0;Gc<a.F.length;Gc++){var Hc=a.F[Gc],Ma;for(Ma in Hc.Ma)if("."!=Ma.charAt(0)){var je=Hc.Ma[Ma].o;if(void 0!==je){var ke=Hc.Ma[Ma].l;ke&&(Ma=ke);a.g(Y(a,je)+" "+Ma)}}}else{if("d"==Ka){for(Ja in G)if(e[1]==Ja){var le=a.Ia[Ja];le?(e.shift(),e.shift(),le(e)):a.g("no dump registered for "+ea);break a}ea||(Ka=a.lc||"db")}else a.lc=Ka;if("dh"==Ka){var me=ea,ne=xa,oe="",
pe=0,aa=a.ma,fa=a.L;if(fa.length){var V=+me||a.Gb,hb=+ne||10;isNaN(V)?V=hb:oe="more ";V>fa.length&&(a.g("note: only "+fa.length+" available"),V=fa.length);aa-=V;0>aa&&(null==fa[fa.length-1].w?(V=aa+V,aa=0):aa+=fa.length);var Ic=[];"call"==ne&&(hb=1E5,Ic=["CALL"]);for(void 0!==me&&a.g(V+" instructions earlier:");0<hb&&aa!=a.ma;){var qe=fa[aa++];if(null==qe.w)break;var ib=Z(qe.w),ig=V--,re=Gf(a,ib,"history",ig);(!Ic.length||0<=re.indexOf(Ic[0]))&&a.g(re);ib.jc&&(aa+=ib.jc,hb-=ib.jc,V-=ib.jc);aa>=fa.length&&
(aa=0);a.Gb=V;pe++;hb--}}pe||(a.g("no "+oe+"history available"),a.Gb=void 0)}else{var Rb=sf(a,ea);if(Rb){var Sb=0;xa&&("l"==xa.charAt(0)&&(xa=xa.substr(1)||hg),Sb=gf(a,xa)>>>0,65536<Sb&&(Sb=65536));for(var jb="",Na="dd"==Ka?4:"dw"==Ka?2:1,Tb=Na*Sb||128,jg=Tb+15>>4||1;jg--&&0<Tb;){var kb=0,Jc=0,lb,Kc="",se="",ea=Y(a,Rb.w);for(lb=4==Na?16:a.da;0<lb&&0<Tb;lb--){var Ub=a.sb(Rb,1),kb=kb|Ub<<(Jc++<<3);Jc==Na&&(Kc+=8==a.da?r(kb,3*Na):t(kb,2*Na),Kc+=1==Na?9==lb?"-":" ":" ",kb=Jc=0);se+=32<=Ub&&128>Ub?String.fromCharCode(Ub):
".";Tb--}jb&&(jb+="\n");jb+=ea+" "+Kc+(0==lb?" "+se:"")}jb&&a.g(jb);a.qb=Rb}}}}break;case "e":if("else"==e[0])break;var Oa,Lc,Mc,Nc,Oc=e[0],Pc=e[1];"eb"==Oc?(Oa=1,Lc=255,Mc=a.sb,Nc=a.Vb):"e"==Oc||"ew"==Oc?(Oa=2,Lc=65535,Mc=a.Ka,Nc=a.pb):Pc=null;if(null==Pc)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Vb=sf(a,Pc);if(Vb)for(var Wb=2;Wb<e.length;Wb++){var mb=ef(a,e[Wb]);if(void 0===mb){a.g("unrecognized value: "+
e[Wb]);break}mb&~Lc&&a.g("warning: "+t(mb)+" exceeds "+Oa+"-byte value");var kg=Mc.call(a,Vb);a.g("changing "+Y(a,Vb.w)+" from "+Y(a,kg,Oa)+" to "+Y(a,mb,Oa));Nc.call(a,Vb,mb,Oa)}}break;case "g":a:{var te=e[1],lg=b;if(void 0!==te){var Qc=sf(a,te,!0);if(!Qc)break a;wf(a,Qc,lg);a.jb(a.f,Qc,!0)}a.Ab(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Rc;if(a.u.ha)Rc="halting",a.pa();else{if(fb(a,!0))break a;Rc="already halted"}c||a.g(Rc)}break;case "i":if("if"==e[0]){var Sc;
var nb=b.substr(2),nb=na(nb);ef(a,nb)?(c||a.g("true: "+nb),Sc=!0):(c||a.g("false: "+nb),Sc=!1);Sc||(d=!1)}break;case "k":var mg=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Tc=0,ue=Z(),ob=Z(a.b.i[6]);for(a.g("stack trace for "+Y(a,ob.w));10>Tc;){for(var ya=null,ng=256;65536>ob.w>>>0;){ue.w=a.Ka(ob,2);if(null==ob.w||!ng--)break;for(var og=a,Xb=ue,ve=null,pb=Xb.w,we=pb,Uc=1;6>=Uc&&pb;Uc++){if(2<Uc){Xb.w=pb;var Yb=Gf(og,
Xb);if(0<=Yb.indexOf("JSR")){var xe=Yb.indexOf(" ");if(pb+(Yb.indexOf(" ",xe+1)-xe-1)/2==we){ve=Yb;break}}}pb--}Xb.w=we;if(ya=ve)break}if(!ya||null==ya)break;var ye=null;if("ks"==mg){var ze=ya.match(/[0-9A-F]+$/);ze&&(ye=Nf(a,ze[0]))}ya=ma(ya,50)+" ;"+(ye||"stack="+Y(a,ob.w));a.g(ya);Tc++}Tc||a.g("no return addresses found")}break;case "l":"ln"==e[0]&&Nf(a,e[1],!0);break;case "m":a:{var ga,ha=null,A=e[1];"?"==A&&(A=void 0);if(void 0!==A){var sa=0;if("all"==A)sa=1878917119,A=null;else if("on"==A)ha=
!0,A=null;else if("off"==A)ha=!1,A=null;else{"keys"==A&&(A="key");"kbd"==A&&(A="keyboard");for(ga in G)if(A==ga){sa=G[ga];ha=!!(a.ka&sa);break}if(!sa){a.g("unknown message category: "+A);break a}}if(sa)if("on"==e[2])a.ka|=sa,ha=!0;else if("off"==e[2]&&(a.ka&=~sa,ha=!1,1073741824==sa)){for(var Vc=0;Vc<a.Ba.length;Vc++)a.g(a.Ba[Vc]);a.Ba=[]}}var pg=0,qb="";for(ga in G)if(!A||A==ga){var qg=!!(a.ka&G[ga]);if(null===ha||ha==qg)qb&&(qb+=","),++pg%10||(qb+="\n\t"),"key"==ga&&(ga="keys"),qb+=ga}void 0===
A&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(qb||"none"));mf(a)}break;case "p":if("print"==e[0]){Of(a,b.substr(5));break}var rg="pr"==e[0]?1:0;if(a.fa)a.g("step in progress");else{var Ae=Z(a.b.i[7]);a.sb(Ae);a.fa?(a.jb(a.f,Ae,!0),a.Ab()||(a.B&&a.B.Xb(),a.fa=0)):Pf(a,rg?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}zf(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var rb=
+e[2];if(8==rb||10==rb||16==rb)a.da=rb;else{a.g("invalid base: "+rb);break}}a.g("default base: "+a.da);break;case "cs":var sb;void 0!==e[3]&&(sb=+e[3]);switch(e[2]){case "int":a.b.ub=sb;break;case "start":a.b.Ob=sb;break;case "stop":a.b.vb=sb;break;default:a.g("unknown cs option");break a}void 0!==sb&&Cc(a.b);a.g("checksums "+(a.b.u.rb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&($c(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.mb.toFixed(2)+
"Mhz")+" ("+a.b.ab+"x)");break;case "?":a.g("debugger options:");a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":Pf(a,e[0],e[1]);break;case "u":Af(a,e[1],e[2],8);break;case "v":if("var"==e[0]){Mf(a,b.substr(3))||(d=!1);break}a.g("PDP11js version 1.30.0 ("+
a.b.Yc+",RELEASE"+(vb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){Of(a,b.substr(1));break}var Wc="commands:",Xc;for(Xc in of)Wc+="\n"+ma(Xc,9)+of[Xc];Ad(a)||(Wc+="\nnote: history disabled if no exec breakpoints");a.g(Wc);break;default:a.g("unknown command: "+b),d=!1}}}catch(Be){a.g("debugger error: "+(Be.stack||Be.message)),d=!1}return d}function Dc(a,b,c){b=cf(a,b,c);for(var d in b)if(!Ff(a,b[+d]))return!1;return!0}
Pa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new kf(d);cb(d,c)}});
function Rf(a,b,c){w.call(this,"Computer",a,Rf,67108864);this.u.ja=!1;Sf(this,b);this.W=Ac(this,"autoPower",a);this.B=0;this.fa=a.busWidth||a.buswidth;this.f=Tf;this.L=null;this.F=this.ca=!1;this.url=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.j=Uf(this);if(this.b=bb("CPU",this.id)){this.G=bb("Debugger",this.id);this.H=new yb({id:this.wc+".bus",busWidth:this.fa},this.b,this.G);var d,f=ab(this.id);if((this.A=bb("Panel",this.id))&&this.A.kb)for(b=0;b<f.length;b++)d=f[b],d.ra=this.A.ra,d.g=
this.A.g,d.kb=this.A.kb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ya&&d.Ya(this,this.H,this.b,this.G);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.I=d:this.f=parseInt(d,10));var e;if(a=Ac(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.F=!0,this.f=Tf),this.f&&
(this.S=new M(this,"1.30.0"),Vf(this.S)?b=null:delete this.S);!b&&this.f&&(b=Wf(this))&&(this.F=!0);if(b){var g=this;ra(b,null,!0,function(a,b,c){c?(g.I=null,g.F=!1,g.ra("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.L=b,g.ca=!0);F(g)})}else F(this);this.K.power||(this.W=!0);!c&&this.W&&Xf(this,this.Pb)}else v("Unable to find CPU component")}B(Rf);var Tf=0;
function Sf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.da=b}function Ac(a,b,c){var d=b.toLowerCase(),d=Ua[b]||Ua[d];void 0===d&&a.da&&(d=a.da[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Xf(a,b,c){for(var d=ab(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!gb(e)){gb(e,function(){Xf(a,b,c)});return}}b.call(a,c)}
function Yf(a,b){var c=new M(a,"1.30.0","validate");if(Vf(c)&&Zf(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.ra("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Rf.prototype;
l.Pb=function(a){void 0===a&&(a=this.f||(this.L?1:Tf));if(!this.B){this.B++;var b=!1,c=!1;this.ba=!1;var d=this.S||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>Tf){if(Vf(d,this.L)){this.D=new M(this,"1.30.0","failsafe");Vf(this.D)&&($f(this,d),a=2,ag(this.D));this.D.set("timestamp",qa());bg(this.D);var f=this.f&&!this.F;if(1==a||ta("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Zf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Vf(d,g):("error"==
e&&"no machine state"!=g?(this.ra("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.j=null)):this.g(e+": "+g),ag(d),Vf(d)?(c=Zf(d),f=!0):c=!1))}f&&Yf(this,c?d:null)}else 2==a&&d.clear()}else Yf(this);delete this.L;delete this.S}f=ab(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=cg(this,g,d,b,c));b=[d,a,c];-1!=a?Xf(this,this.Ac,b):this.Ac(b)}};
function cg(a,b,c,d,f){if(!b.u.ja){b.u.ja=!0;if(b.Qa){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Qa(e,d)&&e&&(v("Unable to restore state for "+b.type),a.$&&!a.ca?(c.clear(),a.f=Tf,window&&window.location.reload()):a.ba=!0,b.Qa(null),f=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Ac=function(a){var b=a[0],c=0>a[1];a=a[2];this.ia=!0;this.u.ja=!0;var d=this.K.power;d&&(d.textContent="Shutdown");this.b&&(cg(this,this.b,b,c,a),this.b.Ib());this.ba&&($f(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0};
function $f(a,b){if(ta("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;ra("http://www.pcjs.org/api/v1/report",d,!0)}}
function Qf(a,b,c){var d,f="none";if(a.B)return null;a.B--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=qa();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Pa&&(c&&a.b.pa(),d=a.b.Pa(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.u.ja=!1,!1===d&&(f=null)));for(var h=ab(a.id),k=0;k<h.length;k++){var m=h[k];m.u.ja&&(m.Pa&&(d=m.Pa(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.u.ja=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.j&&dg(a,a.j,e.toString()),bg(g)&&bg(e)||(f=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&e.clear(h)):f=e.toString());c&&(a.u.ja=!1,b=a.K.power)&&(b.textContent="Power");a.B=0;return f}l.reset=function(){this.H&&this.H.reset&&(db(this,"Resetting "+this.H.type),this.H.reset());for(var a=ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(db(this,"Resetting "+c.type),c.reset())}};
l.xa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ta=this.M[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Dc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.i.length-1&&(b=d.i[++d.A])):40==a.keyCode&&(0<d.A?b=d.i[--d.A]:(b="",d.A=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.M[b]=c,Da(c,function(){if(d.ta){var a=d.ta.value;
d.ta.value="";Dc(d,a,!0);return!0}return!1}),!0;case "step":return this.M[b]=c,Da(c,function(a){var b=!1;fb(d,!0)||(eb(d,!0),b=d.Cb(a?1:0),eb(d,!1));return b}),!0}return!1};l.Wb=function(){this.ta&&this.ta.focus()};l.ea=function(a){a=a&&a.w;null==a&&(a=-1);return a};l.tb=function(a,b){var c=255,d=this.ea(a,!1,1);-1!==d&&(c=this.H,c=c.O[(d&c.i)>>>c.Z].Pb(d&c.f,d),b&&wf(a,b));return c};l.Ka=function(a,b){var c=65535,d=this.ea(a,!1,2);-1!==d&&(c=Ib(this.H,d),b&&wf(a,b));return c};
l.Ub=function(a,b,c){var d=this.ea(a,!0,1);if(-1!==d){var f=this.H;f.O[(d&f.i)>>>f.Z].Eb(d&f.f,b&255,d);c&&wf(a,c);L(this.b,!0)}};l.pb=function(a,b,c){var d=this.ea(a,!0,2);if(-1!==d){var f=this.H,e=d&f.f,g=(d&f.i)>>>f.Z;e!=f.f?f.O[g].tc(e,b&65535,d):(f.O[g++].Eb(e,b&255,d),f.O[g&f.B].Eb(0,b>>8&255,d+1));c&&wf(a,c);L(this.b,!0)}};function Z(a){return{w:a,Ja:!1}}function xf(a){return[a.w,a.Ja]}function yf(a){return{w:a[0],Ja:a[1]}}
function vf(a,b,c){var d;c=(c?a.S:a.rb).w;if(void 0!==b){d=b=jf(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var e=a.F[c].Na[d];if(void 0!==e){d=e.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;c=hf(a,b,void 0)}null!=c&&(d=Z(c));return d}function zf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Nc=ff(a,b.Ic=c[2]))}function wf(a,b){null!=a.w&&(a.w+=b||1)}
function qf(a,b){a.G=a;a.ka=a.Oc=536870912;a.za=null;a.Ba=[];b=ff(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){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 f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ka|=G[c],a.g(c+" messages enabled"))}}function uf(a,b){for(var c in G)if(64==G[c]){a.Ia[c]=b;break}}
l.Cc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Af(a){return 6>a?"R"+a:6==a?"SP":"PC"}l.Dc=function(a){var b;0<=a&&(8>a?b=this.b.j[a]:16>a?b=this.b.Sa[a-8]:20>a?b=this.b.Aa[a-16]:20==a&&(b=Zb(this.b)));return b};
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.j[7]).w));this.ka&1073741824?this.Ba.push(a):this.za&&a==this.za||(this.za=a,this.ka&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,ed(a),a.la=0,L(a)))};
function pf(a){var b;if(Ad(a)){if(!a.K||!a.K.length){a.K=Array(1E3);for(b=0;b<a.K.length;b++)a.K[b]=Z();a.ma=0;a.g("instruction history buffer allocated")}if(!a.la||!a.la.length)for(a.la=Array(256),b=0;b<a.la.length;b++)a.la[b]=[b,0]}else a.K&&a.K.length&&a.g("instruction history buffer freed"),a.ma=0,a.K=[],a.la=[]}l.Bb=function(a){if(!Bf(this))return!1;this.b.Bb(a);return!0};
l.Cb=function(a,b,c){if(!Bf(this))return!1;this.I=0;a||Ad(this)&&Bd(this,this.b.j[7],0);try{a=cd(this.b,a);var d=this.b.Cb(a);0<d&&(dd(this.b,a),this.I+=d,ad(this.b,d,!0),Ec(this.b,d),this.$++)}catch(f){"number"!=typeof f&&(this.I=0,ub(this.b,f.stack||f.message))}!1!==c&&L(this.b);this.Ha(b||!1);return 0<this.I};l.pa=function(a){this.b&&this.b.pa(a)};l.Ha=function(a){void 0===a&&(a=!0);this.S=Z(this.b.j[7]);a&&1!=this.fa?Cf(this):Df(this)};
function Bf(a){var b;if(b=a.b&&gb(a.b))b=a.b,b.u.ja?b=!0:(b.g(b.toString()+" not powered"),b=!1);return b&&!a.b.u.ha?!tb(a.b):!1}l.Ra=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Qa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){pf(this);this.$=this.Ca=0;this.za=null;this.I=0;this.S=Z(this.b.j[7]);this.u.ha=!1;Ef(this);a||this.Ha()};
l.save=function(){var a=new M(this);a.set(0,xf(this.S));a.set(1,xf(this.ba));a.set(2,[this.i,this.ca,this.ka]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.S=yf(a[b++]),this.ba=yf(a[b++]),this.i=a[b][0],"string"==typeof this.i&&(this.i=[this.i]),this.ca=a[b][1],this.ka|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.fa||this.g("running");this.u.ha=!0;this.Yb=a;this.Zb=b};
l.stop=function(a,b){if(this.u.ha){this.u.ha=!1;this.I=b-this.Zb;if(!this.fa){b="stopped";if(this.I){a-=this.Yb;var c=0<a?Math.round(1E3*this.I/a):0;b+=" (";Ad(this)&&(b+=this.$+" opcodes, ",this.Ca-=this.$,this.$=0);b+=this.I+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.Ha(!0);this.Wb();Ef(this,this.b.j[7])}};function Ad(a){return 1<a.f.length||!!a.ua}
function Bd(a,b,c){var d=a.b;if(0<c&&(a.ua&&!--a.ua||vc(a,b,1,a.f)))return!0;0<=c&&a.la.length&&(a.$++,null!=Ib(a.H,b)&&(b=a.K[a.ma],b.w=d.j[7],b.Ja=!1,++a.ma==a.K.length&&(a.ma=0)));return!1}function of(a){var b,c;a.f=["bp"];if(a.W)for(b=1;b<a.W.length;b++){c=a.W[b];var d=a.H;c=a.ea(c);wc(d.O[c>>>d.Z],!1)}a.W=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.H,c=a.ea(c),wc(d.O[c>>>d.Z],!0);a.D=["bw"];a.qb=0}
l.jb=function(a,b,c){var d=!0;c||Ff(this,a,b,!1,!0);if(a!=this.f){var f=this.ea(b);if(-1===f)this.g("invalid address: "+Y(this,b.w)),d=!1;else{var e=this.H;e.O[f>>>e.Z].jb(f&e.f,a==this.D)}}d&&(a.push(b),c?b.Ja=!0:(Gf(this,a,a.length-1,"set"),pf(this)));return d};function Ff(a,b,c,d,f){var e=!1;c=a.ea(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ea(h)&&(!d||h.Ja)){e=!0;h.Ja||f||Gf(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.H,wc(d.O[c>>>d.Z],b==a.D));h.Ja||pf(a);break}}return e}
function Hf(a,b){for(var c=1;c<b.length;c++)Gf(a,b,c);return b.length-1}function Gf(a,b,c,d){c=b[c];a.g(b[0]+" "+Y(a,c.w)+(d?" "+d:c.Ic?' "'+c.Ic+'"':""))}function Ef(a,b){if(void 0!==b)vc(a,b,1,a.f,!0),a.fa=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ja){if(!Ff(a,a.f,c,!0))break;b=0}}}
function vc(a,b,c,d,f){var e=!1;if(!a.qb++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ja)for(var k=a.ea(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ja&&(Ff(a,d,h,!0),f=!0);if(n=h.Nc){for(var e=!1,p=0;p<n.length;p++)if(!If(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.u.ha||(e=!0)}if(e){f||Gf(a,d,g,"hit");break}}}a.qb--;return e}
function Jf(a,b,c,d){var f=Z(b.w),e=a.Ka(b,2),g,h;for(h in a.Ib)if(g=a.Ib[h][e&h])break;g||(g=[0]);h="";for(var k=sf[g[0]],m=g.length-1,n=1;n<=m;n++){var p=g[n];if(void 0!==p){var q;q=a;var y=p,p=b,u="",z=y&61440;if(4096==z)p=p.w+((e&255)<<24>>23)&65535,u=Y(q,p);else if(8192==z)p=p.w-((e&63)<<1)&65535,u=Y(q,p);else if(12288==z)u=Y(q,e&7,1);else if(24576==z)u=Y(q,e&63,1);else if(z=e&y,y&4032&&(z>>=6,y>>=6),y&63)switch(y=z&7,z&56){case 0:u=Af(y);break;case 8:u="@"+Af(y);break;case 16:7>y?u="("+Af(y)+
")+":(z=q.Ka(p,2),u="#"+Y(q,z,0,!0));break;case 24:7>y?u="@("+Af(y)+")+":(z=q.Ka(p,2),u="@#"+Y(q,z,0,!0));break;case 32:u="-("+Af(y)+")";break;case 40:u="@-("+Af(y)+")";break;case 48:z=q.Ka(p,2);u=Y(q,z,0,!0)+"("+Af(y)+")";7==y&&(u=[u,Y(q,z+p.w&65535)]);break;case 56:z=q.Ka(p,2),u="@"+Y(q,z)+"("+Af(y)+")",7==y&&(u=[u,Y(q,z+p.w&65535)])}q=u;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0<h.length&&(h+=",");h+=q||"???"}}e="";g=Y(a,f.w)+":";if(-1!==f.w&&-1!==b.w){do if(e+=
" "+Y(a,a.Ka(f,2)),null==f.w)break;while(f.w!=b.w)}g+=ma(e,24);g+=ma(k,5);h&&(g+=" "+h);c&&(g=ma(g,60)+";"+c,g=a.b.u.sb?g+("cycles="+Yc(a.b).toString()+" cs="+t(a.b.Mb)):g+(null!=d?"="+d.toString():""));return g}function Kf(a,b){switch(b){case "N":a=a.b.Pa();break;case "Z":a=jd(a.b);break;case "V":a=id(a.b);break;case "C":a=N(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Lf(a,b){var c="",d=a.b;8>b?(c=Af(b),c+="="+Y(a,d.j[b])):13>b?c="A"+(b-8)+"="+Y(a,d.Sa[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+Y(a,d.Aa[b-16]):20==b&&(c="PS="+Y(a,Zb(d)));c&&(c+=" ");return c}function Mf(a){var b,c="";for(b=0;6>b;b++)c+=Lf(a,b);c=c+"\n"+(Lf(a,6)+Lf(a,7)+Lf(a,20));return c+=Kf(a,"T")+Kf(a,"N")+Kf(a,"Z")+Kf(a,"V")+Kf(a,"C")}l.xc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Nf(a,b,c){var d=[],f=a.ea(b)>>>0;for(b=0;b<a.F.length;b++){var e=a.F[b],g=e.w>>>0,h=e.Wc;if(f>=g&&f<g+h){f=oa(e.uc,[f-g],a.xc);0<=f?Of(a,b,f,d):c&&(f=~f,Of(a,b,f-1,d),Of(a,b,f,d));break}}return d}function Of(a,b,c,d){var f={},e=a.F[b].uc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.F[b].Na[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
function Pf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return mf(a)||a.g("no variables"),!0;if(!c[2])return mf(a,c[1]);if(!c[3])return delete a.ia[c[1]],!0;b=hf(a,c[3]);return void 0!==b?(a.ia[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
function Qf(a,b,c){var d=null;if(b=vf(a,b,!0)){a.ea(b);var f=Nf(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.w-f[1])&&(g=" + "+t(e,4,!0)),e=f[0]+" ("+Y(a,f[1])+")"+g,c&&a.g(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.w)&&(g=" - "+t(e,4,!0)),e=f[4]+" ("+Y(a,f[5])+")"+g,c&&a.g(e),d||(d=e))}else c&&a.g("no symbols")}return d}
function Cf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}e=hf(a,b);if(void 0===e)return;b=f.toUpperCase();switch(b){case "SP":case "R6":d.j[6]=e&65535;break;case "PC":case "R7":ld(d,e);a.S=Z(d.j[7]);break;case "N":d.X=e?32768:0;break;
case "Z":d.Y=e?0:1;break;case "V":d.V=e?32768:0;break;case "C":d.U=e?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.j[b]=e&65535;break}a.g("unknown register: "+f);return}L(d);a.g("updated registers:")}a.g(Mf(a));c&&(a.S=Z(d.j[7]),Df(a,Y(a,a.S.w)))}}function Rf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(c[2]):hf(a,b,!0)}
function Sf(a,b,c){var d="t"!=b;c=kf(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Ca(c,function(){return eb(a,!0)&&a.Cb(f,d,!1)},function(){L(a.b);eb(a,!1)})}
function Df(a,b,c,d){if(b=vf(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=vf(a,c,!0);if(!d||d.w<b.w)return;f=d.w-b.w;if(256<f){a.g("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=fb(a,!1)||a.fa?a.I:null;var g=null!=e?"cycles":null,h=Nf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],e=null);e=Jf(a,b,g,e);a.g(e);a.S=b;f-=b.w-k;c++}}}
function If(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ca&&(a.g("ended assemble at "+Y(a,a.ba.w)),a.S=a.ba,a.ca=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(gb(a)&&0<b.length){a.ca&&(b="a "+Y(a,a.ba.w)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=vf(a,e[1],!0);
if(n)if(a.ba=n,void 0===e[2])a.g("begin assemble at "+Y(a,n.w)),a.ca=!0,L(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.Ub(n,p[q],1);a.g(Jf(a,a.ba))}}break;case "b":a:{var y=e[0],u=e[1],z=b;if("?"==u)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var wa=y.charAt(1);if("l"==wa){var Fc;Fc=0+Hf(a,a.f);Fc+=Hf(a,a.W);(Fc+=Hf(a,a.D))||a.g("no breakpoints")}else if("n"==wa)a.ua=kf(a,u),a.g("break after "+a.ua+" instruction(s)");else if(void 0===u)a.g("missing breakpoint address");else{var Q=Z();if("*"!=u&&(Q=vf(a,u,!0),!Q))break a;"c"==wa?null==Q.w?(of(a),a.g("all breakpoints cleared")):Ff(a,a.f,Q)||Ff(a,a.W,Q)||Ff(a,a.D,Q)||a.g("breakpoint missing: "+Y(a,Q.w)):null!=Q.w&&(zf(a,Q,z),"p"==wa?a.jb(a.f,Q):"r"==wa?a.jb(a.W,Q):"w"==wa?a.jb(a.D,Q):
a.g("unknown breakpoint command: "+wa))}}}break;case "c":a.kb&&(a.kb.value="");break;case "d":a:{var Ja,Ka=e[0],ea=e[1],xa=e[2],kg=e[3];if("?"==ea){var La="";for(Ja in G)a.Ia[Ja]&&(La&&(La+=","),La+=Ja);La+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");La.length&&a.g("dump extension commands:\n\t"+
La)}else if("state"==ea){var je=Tf(a.B,!0);"console"==xa?console.log(je):(a.kb&&(a.kb.value=""),a.g(je))}else if("symbols"==ea)for(var Gc=0;Gc<a.F.length;Gc++){var Hc=a.F[Gc],Ma;for(Ma in Hc.Na)if("."!=Ma.charAt(0)){var ke=Hc.Na[Ma].o;if(void 0!==ke){var le=Hc.Na[Ma].l;le&&(Ma=le);a.g(Y(a,ke)+" "+Ma)}}}else{if("d"==Ka){for(Ja in G)if(e[1]==Ja){var me=a.Ia[Ja];me?(e.shift(),e.shift(),me(e)):a.g("no dump registered for "+ea);break a}ea||(Ka=a.ac||"db")}else a.ac=Ka;if("dh"==Ka){var ne=ea,oe=xa,pe="",
qe=0,aa=a.ma,fa=a.K;if(fa.length){var V=+ne||a.Fb,hb=+oe||10;isNaN(V)?V=hb:pe="more ";V>fa.length&&(a.g("note: only "+fa.length+" available"),V=fa.length);aa-=V;0>aa&&(null==fa[fa.length-1].w?(V=aa+V,aa=0):aa+=fa.length);var Ic=[];"call"==oe&&(hb=1E5,Ic=["CALL"]);for(void 0!==ne&&a.g(V+" instructions earlier:");0<hb&&aa!=a.ma;){var re=fa[aa++];if(null==re.w)break;var ib=Z(re.w),lg=V--,se=Jf(a,ib,"history",lg);(!Ic.length||0<=se.indexOf(Ic[0]))&&a.g(se);ib.kc&&(aa+=ib.kc,hb-=ib.kc,V-=ib.kc);aa>=fa.length&&
(aa=0);a.Fb=V;qe++;hb--}}qe||(a.g("no "+pe+"history available"),a.Fb=void 0)}else{var Rb=vf(a,ea);if(Rb){var Sb=0;xa&&("l"==xa.charAt(0)&&(xa=xa.substr(1)||kg),Sb=kf(a,xa)>>>0,65536<Sb&&(Sb=65536));for(var jb="",Na="dd"==Ka?4:"dw"==Ka?2:1,Tb=Na*Sb||128,mg=Tb+15>>4||1;mg--&&0<Tb;){var kb=0,Jc=0,lb,Kc="",te="",ea=Y(a,Rb.w);for(lb=4==Na?16:a.da;0<lb&&0<Tb;lb--){var Ub=a.tb(Rb,1),kb=kb|Ub<<(Jc++<<3);Jc==Na&&(Kc+=8==a.da?r(kb,3*Na):t(kb,2*Na),Kc+=1==Na?9==lb?"-":" ":" ",kb=Jc=0);te+=32<=Ub&&128>Ub?String.fromCharCode(Ub):
".";Tb--}jb&&(jb+="\n");jb+=ea+" "+Kc+(0==lb?" "+te:"")}jb&&a.g(jb);a.rb=Rb}}}}break;case "e":if("else"==e[0])break;var Oa,Lc,Mc,Nc,Oc=e[0],Pc=e[1];"eb"==Oc?(Oa=1,Lc=255,Mc=a.tb,Nc=a.Ub):"e"==Oc||"ew"==Oc?(Oa=2,Lc=65535,Mc=a.Ka,Nc=a.pb):Pc=null;if(null==Pc)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Vb=vf(a,Pc);if(Vb)for(var Wb=2;Wb<e.length;Wb++){var mb=hf(a,e[Wb]);if(void 0===mb){a.g("unrecognized value: "+
e[Wb]);break}mb&~Lc&&a.g("warning: "+t(mb)+" exceeds "+Oa+"-byte value");var ng=Mc.call(a,Vb);a.g("changing "+Y(a,Vb.w)+" from "+Y(a,ng,Oa)+" to "+Y(a,mb,Oa));Nc.call(a,Vb,mb,Oa)}}break;case "g":a:{var ue=e[1],og=b;if(void 0!==ue){var Qc=vf(a,ue,!0);if(!Qc)break a;zf(a,Qc,og);a.jb(a.f,Qc,!0)}a.Bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Rc;if(a.u.ha)Rc="halting",a.pa();else{if(fb(a,!0))break a;Rc="already halted"}c||a.g(Rc)}break;case "i":if("if"==e[0]){var Sc;
var nb=b.substr(2),nb=na(nb);hf(a,nb)?(c||a.g("true: "+nb),Sc=!0):(c||a.g("false: "+nb),Sc=!1);Sc||(d=!1)}break;case "k":var pg=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Tc=0,ve=Z(),ob=Z(a.b.j[6]);for(a.g("stack trace for "+Y(a,ob.w));10>Tc;){for(var ya=null,qg=256;65536>ob.w>>>0;){ve.w=a.Ka(ob,2);if(null==ob.w||!qg--)break;for(var rg=a,Xb=ve,we=null,pb=Xb.w,xe=pb,Uc=1;6>=Uc&&pb;Uc++){if(2<Uc){Xb.w=pb;var Yb=Jf(rg,
Xb);if(0<=Yb.indexOf("JSR")){var ye=Yb.indexOf(" ");if(pb+(Yb.indexOf(" ",ye+1)-ye-1)/2==xe){we=Yb;break}}}pb--}Xb.w=xe;if(ya=we)break}if(!ya||null==ya)break;var ze=null;if("ks"==pg){var Ae=ya.match(/[0-9A-F]+$/);Ae&&(ze=Qf(a,Ae[0]))}ya=ma(ya,50)+" ;"+(ze||"stack="+Y(a,ob.w));a.g(ya);Tc++}Tc||a.g("no return addresses found")}break;case "l":"ln"==e[0]&&Qf(a,e[1],!0);break;case "m":a:{var ga,ha=null,A=e[1];"?"==A&&(A=void 0);if(void 0!==A){var sa=0;if("all"==A)sa=1878917119,A=null;else if("on"==A)ha=
!0,A=null;else if("off"==A)ha=!1,A=null;else{"keys"==A&&(A="key");"kbd"==A&&(A="keyboard");for(ga in G)if(A==ga){sa=G[ga];ha=!!(a.ka&sa);break}if(!sa){a.g("unknown message category: "+A);break a}}if(sa)if("on"==e[2])a.ka|=sa,ha=!0;else if("off"==e[2]&&(a.ka&=~sa,ha=!1,1073741824==sa)){for(var Vc=0;Vc<a.Ba.length;Vc++)a.g(a.Ba[Vc]);a.Ba=[]}}var sg=0,qb="";for(ga in G)if(!A||A==ga){var tg=!!(a.ka&G[ga]);if(null===ha||ha==tg)qb&&(qb+=","),++sg%10||(qb+="\n\t"),"key"==ga&&(ga="keys"),qb+=ga}void 0===
A&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(qb||"none"));pf(a)}break;case "p":if("print"==e[0]){Rf(a,b.substr(5));break}var ug="pr"==e[0]?1:0;if(a.fa)a.g("step in progress");else{var Be=Z(a.b.j[7]);a.tb(Be);a.fa?(a.jb(a.f,Be,!0),a.Bb()||(a.B&&a.B.Wb(),a.fa=0)):Sf(a,ug?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Cf(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var rb=
+e[2];if(8==rb||10==rb||16==rb)a.da=rb;else{a.g("invalid base: "+rb);break}}a.g("default base: "+a.da);break;case "cs":var sb;void 0!==e[3]&&(sb=+e[3]);switch(e[2]){case "int":a.b.vb=sb;break;case "start":a.b.Nb=sb;break;case "stop":a.b.wb=sb;break;default:a.g("unknown cs option");break a}void 0!==sb&&Cc(a.b);a.g("checksums "+(a.b.u.sb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&($c(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.mb.toFixed(2)+
"Mhz")+" ("+a.b.bb+"x)");break;case "?":a.g("debugger options:");a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":Sf(a,e[0],e[1]);break;case "u":Df(a,e[1],e[2],8);break;case "v":if("var"==e[0]){Pf(a,b.substr(3))||(d=!1);break}a.g("PDP11js version 1.30.0 ("+
a.b.Zc+",RELEASE"+(vb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){Rf(a,b.substr(1));break}var Wc="commands:",Xc;for(Xc in rf)Wc+="\n"+ma(Xc,9)+rf[Xc];Ad(a)||(Wc+="\nnote: history disabled if no exec breakpoints");a.g(Wc);break;default:a.g("unknown command: "+b),d=!1}}}catch(Ce){a.g("debugger error: "+(Ce.stack||Ce.message)),d=!1}return d}function Dc(a,b,c){b=ff(a,b,c);for(var d in b)if(!If(a,b[+d]))return!1;return!0}
Pa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new nf(d);cb(d,c)}});
function Uf(a,b,c){w.call(this,"Computer",a,Uf,67108864);this.u.ja=!1;Vf(this,b);this.W=Ac(this,"autoPower",a);this.B=0;this.fa=a.busWidth||a.buswidth;this.f=Wf;this.K=null;this.F=this.ca=!1;this.url=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.i=Xf(this);if(this.b=bb("CPU",this.id)){this.G=bb("Debugger",this.id);this.H=new yb({id:this.yc+".bus",busWidth:this.fa},this.b,this.G);var d,f=ab(this.id);if((this.A=bb("Panel",this.id))&&this.A.kb)for(b=0;b<f.length;b++)d=f[b],d.ra=this.A.ra,d.g=
this.A.g,d.kb=this.A.kb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Za&&d.Za(this,this.H,this.b,this.G);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.I=d:this.f=parseInt(d,10));var e;if(a=Ac(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.F=!0,this.f=Wf),this.f&&
(this.S=new M(this,"1.30.0"),Yf(this.S)?b=null:delete this.S);!b&&this.f&&(b=Zf(this))&&(this.F=!0);if(b){var g=this;ra(b,null,!0,function(a,b,c){c?(g.I=null,g.F=!1,g.ra("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.K=b,g.ca=!0);F(g)})}else F(this);this.M.power||(this.W=!0);!c&&this.W&&$f(this,this.Ob)}else v("Unable to find CPU component")}B(Uf);var Wf=0;
function Vf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.da=b}function Ac(a,b,c){var d=b.toLowerCase(),d=Ua[b]||Ua[d];void 0===d&&a.da&&(d=a.da[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $f(a,b,c){for(var d=ab(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!gb(e)){gb(e,function(){$f(a,b,c)});return}}b.call(a,c)}
function ag(a,b){var c=new M(a,"1.30.0","validate");if(Yf(c)&&bg(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.ra("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Uf.prototype;
l.Ob=function(a){void 0===a&&(a=this.f||(this.K?1:Wf));if(!this.B){this.B++;var b=!1,c=!1;this.ba=!1;var d=this.S||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>Wf){if(Yf(d,this.K)){this.D=new M(this,"1.30.0","failsafe");Yf(this.D)&&(cg(this,d),a=2,dg(this.D));this.D.set("timestamp",qa());eg(this.D);var f=this.f&&!this.F;if(1==a||ta("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=bg(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Yf(d,g):("error"==
e&&"no machine state"!=g?(this.ra("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.i=null)):this.g(e+": "+g),dg(d),Yf(d)?(c=bg(d),f=!0):c=!1))}f&&ag(this,c?d:null)}else 2==a&&d.clear()}else ag(this);delete this.K;delete this.S}f=ab(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=fg(this,g,d,b,c));b=[d,a,c];-1!=a?$f(this,this.Ac,b):this.Ac(b)}};
function fg(a,b,c,d,f){if(!b.u.ja){b.u.ja=!0;if(b.Ra){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Ra(e,d)&&e&&(v("Unable to restore state for "+b.type),a.$&&!a.ca?(c.clear(),a.f=Wf,window&&window.location.reload()):a.ba=!0,b.Ra(null),f=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Ac=function(a){var b=a[0],c=0>a[1];a=a[2];this.ia=!0;this.u.ja=!0;var d=this.M.power;d&&(d.textContent="Shutdown");this.b&&(fg(this,this.b,b,c,a),this.b.Hb());this.ba&&(cg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0};
function cg(a,b){if(ta("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.i||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;ra("http://www.pcjs.org/api/v1/report",d,!0)}}
function Tf(a,b,c){var d,f="none";if(a.B)return null;a.B--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=qa();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Qa&&(c&&a.b.pa(),d=a.b.Qa(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.u.ja=!1,!1===d&&(f=null)));for(var h=ab(a.id),k=0;k<h.length;k++){var m=h[k];m.u.ja&&(m.Qa&&(d=m.Qa(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.u.ja=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.i&&gg(a,a.i,e.toString()),eg(g)&&eg(e)||(f=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&e.clear(h)):f=e.toString());c&&(a.u.ja=!1,b=a.M.power)&&(b.textContent="Power");a.B=0;return f}l.reset=function(){this.H&&this.H.reset&&(db(this,"Resetting "+this.H.type),this.H.reset());for(var a=ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(db(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=ab(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};l.stop=function(a,b){for(var c=ab(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
l.xa=function(a,b,c){var d=this;switch(b){case "power":return this.K[b]=c,c.onclick=function(){d.B||(d.u.ja?Qf(d,!1,!0):Xf(d,d.Pb))},!0;case "reset":return this.K[b]=c,c.onclick=function(){if(d.u.ja&&!d.B)if(d.f&&!d.I){var a=ta("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Qf(d,a,!0);!a&&d.$?window&&window.location.reload():d.Pb(Tf)}else d.reset(),d.b&&d.b.Ib()},!0;case "save":if(ia())c.parentNode.removeChild(c);else return this.K[b]=
c,c.onclick=function(){var a=Uf(d,!0);if(a){var b=!!(d.f&&!d.I||d.$),c=Qf(d,b);b?dg(d,a,c):d.ra("Resume disabled, machine state not saved")}},!0}return!1};
function Uf(a,b){var c=a.j;c||((c=za("user"),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=eg(a,c))||a.ra("The user ID is invalid.")):b&&a.ra("Browser local storage is not available"));return c}
function eg(a,b){a.j=null;b=ra(ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.j=b.data)}catch(d){v(d.message+" ("+c+")")}return a.j}function Wf(a){var b=null;a.j&&(b=ja()+"/api/v1/user?req=load&user="+a.j+"&state="+fg(a,"1.30.0"));return b}
function dg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=fg(a,"1.30.0");d.data=c;b=ra(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ra("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.ra(c),Aa("user",""),a.j=null)}}l.Xb=function(){};
l.Ha=function(a){this.b&&this.b.Ha(a);this.A&&this.A.Ha(a)};Pa(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=C(e),g=new Rf(g,d,!0);cb(g,e);g.W&&Xf(g,g.Pb)}});Ea.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.ia&&!c.u.ja&&c.Pb(-1)}});
Ea.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.u.ja&&Qf(c,!(!c.f||c.I),!0)}});function M(a,b,c){this.id=a.id;this.key=fg(a,b,c);this.G=a.G;ag(this,a.Sc)}function fg(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}
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ag(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,
1);c=0}}};function ag(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function bg(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Zf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function Vf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:va()&&(b=za(a.key))?(a[a.id]=b,a.b=!0):!1}var gg=0;
function sg(a,b,c,d,f,e){f("Loading "+a+"...");ra(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):tg(h,a,b,c,d,f,e)})}
function tg(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&($a(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?ug(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function ug(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");ra(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)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 "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);ug(a,b,c)}})}else c(a,null)}
function vg(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function e(a){f("Error: "+a);k&&(--gg||Ra(!0));k=!1}var g,h,k=!0;gg++;Za[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));n.appendChild(p)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?sg(c,null,null,!1,f,function(d,k){k?($a(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--gg||Ra(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--gg||Ra(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?sg(b,a,d,!0,f,m):tg(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,c,d){Ra(!1);return vg(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Sa;})();
l.xa=function(a,b,c){var d=this;switch(b){case "power":return this.M[b]=c,c.onclick=function(){d.B||(d.u.ja?Tf(d,!1,!0):$f(d,d.Ob))},!0;case "reset":return this.M[b]=c,c.onclick=function(){if(d.u.ja&&!d.B)if(d.f&&!d.I){var a=ta("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Tf(d,a,!0);!a&&d.$?window&&window.location.reload():d.Ob(Wf)}else d.reset(),d.b&&d.b.Hb()},!0;case "save":if(ia())c.parentNode.removeChild(c);else return this.M[b]=
c,c.onclick=function(){var a=Xf(d,!0);if(a){var b=!!(d.f&&!d.I||d.$),c=Tf(d,b);b?gg(d,a,c):d.ra("Resume disabled, machine state not saved")}},!0}return!1};
function Xf(a,b){var c=a.i;c||((c=za("user"),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=hg(a,c))||a.ra("The user ID is invalid.")):b&&a.ra("Browser local storage is not available"));return c}
function hg(a,b){a.i=null;b=ra(ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Zf(a){var b=null;a.i&&(b=ja()+"/api/v1/user?req=load&user="+a.i+"&state="+ig(a,"1.30.0"));return b}
function gg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ig(a,"1.30.0");d.data=c;b=ra(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ra("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.ra(c),Aa("user",""),a.i=null)}}l.Wb=function(){};
l.Ha=function(a){this.b&&this.b.Ha(a);this.A&&this.A.Ha(a)};Pa(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=C(e),g=new Uf(g,d,!0);cb(g,e);g.W&&$f(g,g.Ob)}});Ea.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.ia&&!c.u.ja&&c.Ob(-1)}});
Ea.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.u.ja&&Tf(c,!(!c.f||c.I),!0)}});function M(a,b,c){this.id=a.id;this.key=ig(a,b,c);this.G=a.G;dg(this,a.Uc)}function ig(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}
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){dg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,
1);c=0}}};function dg(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function eg(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function bg(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function Yf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:va()&&(b=za(a.key))?(a[a.id]=b,a.b=!0):!1}var jg=0;
function vg(a,b,c,d,f,e){f("Loading "+a+"...");ra(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):wg(h,a,b,c,d,f,e)})}
function wg(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&($a(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?xg(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function xg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");ra(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)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 "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);xg(a,b,c)}})}else c(a,null)}
function yg(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function e(a){f("Error: "+a);k&&(--jg||Ra(!0));k=!1}var g,h,k=!0;jg++;Za[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));n.appendChild(p)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?vg(c,null,null,!1,f,function(d,k){k?($a(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--jg||Ra(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--jg||Ra(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?vg(b,a,d,!0,f,m):wg(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,c,d){Ra(!1);return yg(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Sa;})();

View file

@ -8,145 +8,146 @@ typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encod
function r(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function ma(){if(null==la){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}la=a}return la}function na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pa(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)?!0:!1}return!1}var t={init:[],show:[],exit:[]},qa=!1,ra=!1,sa=!0;function ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
function ua(a){if(sa)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 va(a){!sa&&a?(sa=!0,qa&&wa("init"),ra&&wa("show")):sa=a}function wa(a){t[a]&&ua(t[a])}ta("onload",function(){qa=!0;ua(t.init)});ta("onpageshow",function(){ra=!0;ua(t.show)});ta(pa("Opera")||pa("iOS")?"onunload":"onbeforeunload",function(){ua(t.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ob=b.comment;this.hc=b;b=this.id.indexOf(".");0>b?this.yb=this.id:(this.Pb=this.id.substr(0,b),this.yb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Kc:!1,Lc:!1,O:!1,error:!1};this.pb=null;this.h.error=!1;this.B={};this.K=null;x.push(this)}var xa=void 0,ya={};
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Pb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.Ab=this.id:(this.Qb=this.id.substr(0,b),this.Ab=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Lc:!1,Mc:!1,O:!1,error:!1};this.pb=null;this.h.error=!1;this.B={};this.L=null;x.push(this)}var xa=void 0,ya={};
if(window){xa||(xa=window.location.search.substr(1));for(var za,Aa=/\+/g,Ba=/([^&=]+)=?([^&]*)/g;za=Ba.exec(xa);)ya[decodeURIComponent(za[1].replace(Aa," "))]=decodeURIComponent(za[2].replace(Aa," "))}function Ca(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function y(a,b){b||(b=v);a.prototype=Ca(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Da=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Da={},x=[];function Ea(a,b,c){Da[a]&&b&&(Da[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Fa(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<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function B(a,b){b=C(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=A(e))&&g.binding&&a.da(g.type,g.binding,e,g.value),k=h.length}}}}
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},da:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Cb=this.B[b]=c,c.value="",this.M=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.N=function(a){this.M(a,this.yb)}),!0;default:return!1}},log:function(){},M:function(){},status:function(a){this.M(this.yb+": "+a)},N:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},za:function(){return this.h.O=!0},ya:function(a,b){b&&(this.h.O=!1);return!0}};function E(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.pb;a.pb=null;b&&b()}}function Ga(a,b){b&&(a.h.ready?b():a.pb=b);return a.h.ready}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},da:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Db=this.B[b]=c,c.value="",this.M=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.N=function(a){this.M(a,this.Ab)}),!0;default:return!1}},log:function(){},M:function(){},status:function(a){this.M(this.Ab+": "+a)},N:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},za:function(){return this.h.O=!0},ya:function(a,b){b&&(this.h.O=!1);return!0}};function E(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.pb;a.pb=null;b&&b()}}function Ga(a,b){b&&(a.h.ready?b():a.pb=b);return a.h.ready}
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});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return f.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),f=this;c.prototype=this.prototype;b.prototype=new c;return b});var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);l=Ia.prototype;
l.da=function(a,b,c,d){return this.F&&this.F.da(a,b,c,d)||this.a&&this.a.da(a,b,c,d)?!0:this.parent.da.call(this,a,b,c,d)};l.Ma=function(a,b,c,d){this.F=a;this.C=b;this.a=c;this.K=d};l.za=function(a,b){b||Ja();return!0};l.ya=function(){return!0};l.Ua=function(){};function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&E(e)}}u(Ja);
function F(a,b,c){v.call(this,"Bus",a,F);this.a=b;this.K=c;this.F=a.busWidth||16;this.s=Math.pow(2,this.F);this.l=this.s-1|0;this.f=(this.F>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.G=this.g>>2;this.i=this.g-1;this.m=this.s/this.g|0;this.H=this.m-1;this.qa=[];this.v=null;this.$a=this.L;a=new G;Ka(a,this.K);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;this.Xa=Array(4);this.Xa[0]=La;this.Xa[1]=Ma;this.Xa[2]=Na;this.Xa[3]=Oa;Pa(this,this.s-8192,8192,Qa,this);
l.da=function(a,b,c,d){return this.F&&this.F.da(a,b,c,d)||this.a&&this.a.da(a,b,c,d)?!0:this.parent.da.call(this,a,b,c,d)};l.Ma=function(a,b,c,d){this.F=a;this.C=b;this.a=c;this.L=d};l.za=function(a,b){b||Ja();return!0};l.ya=function(){return!0};l.Ua=function(){};function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&E(e)}}u(Ja);
function F(a,b,c){v.call(this,"Bus",a,F);this.a=b;this.L=c;this.F=a.busWidth||16;this.s=Math.pow(2,this.F);this.l=this.s-1|0;this.c=(this.F>>1)+2;10>this.c&&(this.c=10);15<this.c&&(this.c=15);this.g=1<<this.c;this.G=this.g>>2;this.i=this.g-1;this.m=this.s/this.g|0;this.H=this.m-1;this.qa=[];this.v=null;this.$a=this.I;a=new G;Ka(a,this.L);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;this.Xa=Array(4);this.Xa[0]=La;this.Xa[1]=Ma;this.Xa[2]=Na;this.Xa[3]=Oa;Pa(this,this.s-8192,8192,Qa,this);
Pa(this,57344,8192,Qa,this);E(this)}y(F);function La(a,b){var c=this.controller,d=c.qa[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.qa[a&-2])&&d[2])return d[2](b&-2)>>8;c.M("warning: unconverted read access to byte @"+ba(b));return c.$a(b,-1,1)}
function Ma(a,b,c){var d=this.controller,f=d.qa[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.qa[a&-2])&&f[3]){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.M("warning: unconverted write access to byte @"+ba(c));d.$a(c,b,1)}
function Na(a,b){var c=this.controller;if(a=c.qa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.M("warning: unconverted read access to word @"+ba(b));return c.$a(b,-1,0)}function Oa(a,b,c){var d=this.controller;if(a=d.qa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.M("warning: unconverted write access to word @"+ba(c));d.$a(c,b,0)}F.prototype.reset=function(){this.v&&this.v()};F.prototype.L=function(){return 0};
F.prototype.za=function(a,b){b||this.reset();return!0};function Pa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.g,q=a.g-(e-m);q>g&&(q=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Wa)return k.xb+=k.Wa-e,k.Wa=e,!0;if(e>=k.Wa+k.xb){q=k.size-(e-m);q>g&&(q=g);k.xb=e-k.Wa+q;e=m+a.g;g-=q;h++;continue}}return Ra(1,e,g)}e=new G(e,q,a.g,d,f);Ka(e,a.K,k);a.b[h++]=e;e=m+a.g;g-=q}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Ta(a,b){return a.b[(b&a.l)>>>a.f].bb(b&a.i,b)}function Ua(a,b,c){var d=b&a.i,f=(b&a.l)>>>a.f;d!=a.i?a.b[f].Hc(d,c&65535,b):(a.b[f++].Va(d,c&255,b),a.b[f&a.H].Va(0,c>>8&255,b+1))}function Va(a){for(var b=0,c=[],d=0;d<a.m;d++){var f=a.b[d];if(f.ua||f.ec){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],q=g+1;q<f.length&&f[q]===m;)q++;k[h++]=q-g;k[h++]=m;g=q}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Na(a,b){var c=this.controller;if(a=c.qa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.M("warning: unconverted read access to word @"+ba(b));return c.$a(b,-1,0)}function Oa(a,b,c){var d=this.controller;if(a=d.qa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.M("warning: unconverted write access to word @"+ba(c));d.$a(c,b,0)}F.prototype.reset=function(){this.v&&this.v()};F.prototype.I=function(){return 0};
F.prototype.za=function(a,b){b||this.reset();return!0};function Pa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.c;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.g,q=a.g-(e-m);q>g&&(q=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Wa)return k.xb+=k.Wa-e,k.Wa=e,!0;if(e>=k.Wa+k.xb){q=k.size-(e-m);q>g&&(q=g);k.xb=e-k.Wa+q;e=m+a.g;g-=q;h++;continue}}return Ra(1,e,g)}e=new G(e,q,a.g,d,f);Ka(e,a.L,k);a.b[h++]=e;e=m+a.g;g-=q}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Ta(a,b){return a.b[(b&a.l)>>>a.c].bb(b&a.i,b)}function Ua(a,b,c){var d=b&a.i,f=(b&a.l)>>>a.c;d!=a.i?a.b[f].Ic(d,c&65535,b):(a.b[f++].Va(d,c&255,b),a.b[f&a.H].Va(0,c>>8&255,b+1))}function Va(a){for(var b=0,c=[],d=0;d<a.m;d++){var f=a.b[d];if(f.ua||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],q=g+1;q<f.length&&f[q]===m;)q++;k[h++]=q-g;k[h++]=m;g=q}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Wa(a,b){var c=Xa,d;for(d in c)for(var f=c[d],e=f[0]?f[0].bind(b):null,g=f[1]?f[1].bind(b):null,h=f[2]?f[2].bind(b):null,k=f[3]?f[3].bind(b):null,m=a,q=+d,f=f[4],w=+d;w<=q;w+=2){var D=w&8191;void 0!==m.qa[D]?r("I/O address already registered: "+n(w,8,!0)):m.qa[D]=[e,g,h,k,!1,f||"unknown"]}}function Ya(a,b,c){a.v=b;a.$a=c}function Ra(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function H(a){v.call(this,"Device",a,H);this.b={Fb:[],W:0,Y:128,b:127,dc:0};this.g={data:0,Jc:0,Qa:20,Bc:0};this.f={u:0,Ib:-1};this.i={eb:2496,R:0,A:128,fb:0,cb:0,X:0,Ub:0,U:[],Ka:[406,406,406,406],I:[12,12,12,12]};this.l={u:129,Za:0,J:0,xa:0,ra:0,Da:0,U:[],I:[40,40,40,40],Ka:[1024,1024,512,512],bc:[157,157,29,29]};this.m={a:[8210,8208,8210,8226],I:[22,22,22,50],Ja:[19,19,19,32],zb:[815,411,815,630],U:[],D:2176,Ta:0,Ra:0,ca:[0,0,0,0,0,0,0,0],ba:0,V:[4544,4544,4544,4544,4544,4544,4544,4544],Sa:[0,
0,0,0,0,0,0,0],Pa:0,yc:[0,0,0,0,0,0,0,0],Vb:0,Wb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],zc:[1,2,3,4,5,6,7,8],Xb:[0,0,0,0,0,0,0,0],la:[0,0,0,0,0,0,0,0],wb:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],Ca:0,Hb:0}}y(H);
function H(a){v.call(this,"Device",a,H);this.b={Gb:[],W:0,Y:128,b:127,ec:0};this.g={data:0,Kc:0,Qa:20,Cc:0};this.c={u:0,Jb:-1};this.i={eb:2496,R:0,A:128,fb:0,cb:0,X:0,Vb:0,U:[],Ka:[406,406,406,406],J:[12,12,12,12]};this.l={u:129,Za:0,K:0,xa:0,ra:0,Da:0,U:[],J:[40,40,40,40],Ka:[1024,1024,512,512],cc:[157,157,29,29]};this.m={a:[8210,8208,8210,8226],J:[22,22,22,50],Ja:[19,19,19,32],zb:[815,411,815,630],U:[],D:2176,Ta:0,Ra:0,ca:[0,0,0,0,0,0,0,0],ba:0,V:[4544,4544,4544,4544,4544,4544,4544,4544],Sa:[0,
0,0,0,0,0,0,0],Pa:0,zc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],c:[0,0,0,0,0,0,0,0],Ac:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],la:[0,0,0,0,0,0,0,0],wb:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],yc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],Ca:0,Ib:0}}y(H);
var Za=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=H.prototype;l.Ma=function(a,b,c,d){this.C=b;this.a=c;this.K=d;var f=this;this.f.Ib=$a(this.a,function(){f.f.wa|=128;f.f.wa&64&&(I(f.a,0,6,64),ab(f.a,f.f.Ib))});Wa(b,this);Ya(b,this.reset.bind(this),this.ac.bind(this));E(this)};l.mc=function(){var a=this.f.wa;this.f.wa&=-129;return a};
l.Dc=function(a){this.f.wa=a;a&64&&ab(this.a,this.f.Ib);this.f.wa=a&-129};l.nc=function(){var a=this.a;return a.H&62337|a.hb<<5|a.ib<<1};l.Ec=function(a){var b=4,c=this.a;c.H=a&=62337;c.hb=a>>5&3;c.ib=a>>1&15;c.qb=a&257?a&1?6:4:0;bb(c);a=c.H;a&1|256&&(b=this.a.Na&16?1:2);this.g.Qa=this.g.Qa&-8|b};l.pc=function(){return this.b.W};l.Gc=function(a){this.b.W=this.b.W&128|a&-129};l.qc=function(){return this.b.Y};
l.Ic=function(a){if(128==(this.b.Y&192)&&a&64){var b=this;I(this.a,8,4,52,function(){b.b.Y|=128;return!!(b.b.Y&64)})}this.b.Y=this.b.Y&128|a&-129};l.oc=function(){return cb(this.a)};l.Fc=function(a){db(this.a,a&-1809|cb(this.a)&1808);this.a.j|=128};
function eb(a){var b=a.i,c,d,f,e=b.X>>13&7;"undefined"===typeof b.U[e]&&(b.U[e]={cache:[],postProcess:a.rc,drive:e,blocksize:256,mapped:0,maxblock:b.Ka[e]*b.I[e],url:"rk"+e+".dsk"});b.A&=-129;switch(b.A>>1&7){case 0:b.eb=2496;b.R=0;b.A=128;b.X=0;break;case 1:if((b.X>>4&511)>=b.Ka[e]){b.R|=32832;b.A|=49152;break}if((b.X&15)>=b.I[e]){b.R|=32800;b.A|=49152;break}c=(b.X>>4&511)*b.I[e]+(b.X&15);d=(b.A&48)<<12|b.cb;f=65536-b.fb&65535;fb(a,b.U[e],c,d,f);return;case 2:if((b.X>>4&511)>=b.Ka[e])b.R|=32832,
b.A|=49152;else if((b.X&15)>=b.I[e])b.R|=32800,b.A|=49152;else{c=(b.X>>4&511)*b.I[e]+(b.X&15);d=(b.A&48)<<12|b.cb;f=65536-b.fb&65535;a.sb(b.U[e],c,d,f);return}}b.eb=e<<13|b.eb&8176|b.X%9&15;I(a.a,20,5,144,function(){b.A=b.A&65534|128;return!!(b.A&64)})}l.rc=function(a,b,c,d,f){var e=this.i;e.cb=d&65535;e.A=e.A&-49|d>>12&48;e.fb=65536-f&65535;switch(a){case 1:e.R|=33024;e.A|=49152;break;case 2:e.R|=33792,e.A|=49152}I(this.a,20,5,144,function(){e.A=e.A&65534|128;return!!(e.A&64)})};
function gb(a){var b=a.l,c,d,f,e=b.u>>8&3;b.u&=-2;"undefined"===typeof b.U[e]&&(b.U[e]={cache:[],postProcess:a.sc,drive:e,blocksize:128,mapped:1,maxblock:b.Ka[e]*b.I[e],url:"rl"+e+".dsk"});switch(b.u>>1&7){case 2:b.xa&8&&(b.u&=63);b.xa=b.bc[e]|b.Da&64;break;case 3:1==(b.J&3)&&(b.Da=b.J&4?b.Da+(b.J&65408)&65408|b.J<<2&64:b.Da-(b.J&65408)&65408|b.J<<2&64,b.J=b.Da);break;case 4:b.xa=b.Da;break;case 5:if(b.J>>6>=b.Ka[e]){b.u|=37888;break}if((b.J&63)>=b.I[e]){b.u|=37888;break}c=(b.J>>6)*b.I[e]+(b.J&63);
d=(b.ra&63)<<16|b.Za;f=65536-b.xa&65535;fb(a,b.U[e],c,d,f);return;case 6:if(b.J>>6>=b.Ka[e])b.u|=37888;else if((b.J&63)>=b.I[e])b.u|=37888;else{c=(b.J>>6)*b.I[e]+(b.J&63);d=(b.ra&63)<<16|b.Za;f=65536-b.xa&65535;a.sb(b.U[e],c,d,f);return}}I(a.a,20,5,112,function(){b.u|=129;return!!(b.u&64)})}
l.sc=function(a,b,c,d,f){var e=this.l;e.Za=d&65535;e.u=e.u&-49|d>>12&48;e.ra=d>>16&63;e.J=~~(c/e.I[b.ka])<<6|c%e.I[b.ka];e.Da=e.J;e.xa=65536-f&65535;switch(a){case 1:e.u|=33792;break;case 2:e.u|=40960}I(this.a,20,5,112,function(){e.u|=129;return!!(e.u&64)})};function hb(a){a=a.m;a.D=2176;a.ba=0;a.V=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Pa=a.Ta=a.Ra=a.Ca=a.Hb=0}
function ib(a,b){var c=a.m,d,f,e;c.D&=-16513;c.ba&=-2049;c.V[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.U[b]&&(c.U[b]={cache:[],postProcess:a.tc,drive:b,blocksize:256,mapped:0,maxblock:c.zb[0]*c.Ja[0]*c.I[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.wb[b]=c.la[b];c.D|=32896;c.V[b]|=32896;c.Pa|=1<<b;break;case 9:hb(a);break;case 19:c.V[b]|=64;break;case 49:if(c.la[b]>=c.zb[0]||c.ca[b]>>8>=c.Ja[0]||(c.ca[b]&255)>=c.I[0]){c.Sa[b]|=1024;c.D|=49152;break}d=(c.la[b]*c.Ja[0]+(c.ca[b]>>8))*c.I[0]+
(c.ca[b]&255);f=(c.Ca&63)<<16|c.Ra;e=65536-c.Ta&65535;fb(a,c.U[b],d,f,e);return;case 57:if(c.la[b]>=c.zb[0]||c.ca[b]>>8>=c.Ja[0]||(c.ca[b]&255)>=c.I[0])c.Sa[b]|=1024,c.D|=49152;else{d=(c.la[b]*c.Ja[0]+(c.ca[b]>>8))*c.I[0]+(c.ca[b]&255);f=(c.Ca&63)<<16|c.Ra;e=65536-c.Ta&65535;a.sb(c.U[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.V[b]|=128;return!!(c.D&64)})}
l.tc=function(a,b,c,d,f){var e=this.m;e.Ta=65536-f&65535;e.Ra=d&65535;e.D=e.D&-769|d>>8&768;e.Ca=d>>16&63;f=~~(c/e.I[0]);d=~~(f/e.Ja[0]);e.ca[b.ka]=f%e.Ja[0]<<8|c%e.I[0];e.wb[b.ka]=e.la[b.ka]=d;e.Pa|=1<<b.ka;c>=b.kc-1&&(e.V[b.ka]|=1024);switch(a){case 1:e.ba|=512;e.D|=49152;break;case 2:e.ba|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.V[b.ka]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};
function jb(a,b,c,d,f,e){var g=~~((e+c.sa-1)/c.sa),h=new XMLHttpRequest;2048>g&&d+2048<c.kc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.sa<<1)+"-"+(((d+g)*c.sa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,q,w,D;m=h.response;if(h.status&&206!=h.status||!m)c.Eb(1,c,d,f,e);else{m=new Uint8Array(m);q=d;for(D=0;D<m.length;){if("undefined"===typeof c.cache[q])for(c.cache[q]=[],w=0;w<c.sa;w++)c.cache[q][w]=D<m.length?
m[D]&255|m[D+1]<<8&65280:0,D+=2;else D+=c.sa<<1;q++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:K(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.sb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){jb(this,this.sb,a,b,c,d);return}for(f=0;f<a.sa&&0<d;f++){var e=a.jc?kb(this.a,c):c;Ua(this.a.C,e,a.cache[b][f]&65535);c+=2;--d}b++}a.Eb(0,a,b,c,d)};
function fb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.sa;e++)b.cache[c][e]=0;for(e=0;e<b.sa&&0<f;e++){g=a.a.ub(b.jc?kb(a.a,d):d);if(0>g){b.Eb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.Eb(0,b,c,d,f)}l.reset=function(){this.g.Qa=this.g.Qa&-120|20;this.b.W=0;this.b.Y=128;this.f.wa=0;this.i.A=128;this.l.u=128;hb(this)};
l.ac=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.Ba&65280:(a&1&&(b<<=8),e.Ba=b|255,d=0);break;case 4194298:if(0>b)d=e.Gb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Gb=d;e.j|=2}break;case 4194294:if(70!==e.La)return K(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.La)return K(e,4);d=1;break;case 4194290:if(70!==e.La)return K(e,4);d=0;break;case 4194288:if(70!==e.La)return K(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.La)return K(e,4);f=a-4194272>>1;0>b?d=e.Db[f]:(d=J(this,e.Db[f],a,b,c),0<=d&&(e.Db[f]=d));break;case 4194254:return a&1?e.w>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.fa[3]=b),d=e.fa[3]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.fa[1]=b),d=e.fa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.w&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.Oa[f]=b),d=e.Oa[f]),d;case 4194246:return a&
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.fa[0]=b),d=e.fa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.w&2048?(0<=b&&(e.Oa[f]=b),d=e.Oa[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.o|=16,K(e,4)}break;case 4194176:f=a>>1&31;d=J(this,e.P[3][f],a,b,c);0<=d&&(e.P[3][f]=d,e.P[3][f&15]&=65295);break;case 4194112:var g=this.b;switch(a&-2){case 4194174:d=J(this,e.vb,a,b,c);0<=d&&(e.vb=d);break;case 4194172:d=e.Aa;d&65280&&(d=(d<<8|d>>8)&65535);break;
case 4194168:0>b?d=this.g.Bc&65535:(d=J(this,this.g.data,a,b,c),0<=d&&(this.g.data=d));break;case 4194166:0<=b&&(b&127&&(g.dc=0),g.Y&=-129,I(e,100,4,52,function(){g.Y|=128;return!!(g.Y&64)}));d=0;break;case 4194162:d=0;0>b&&(g.W&=-129,0<g.Fb.length&&(d=g.Fb.shift(),0<g.Fb.length&&setTimeout(function(){g.W|=128;g.W&64&&I(e,40,4,48)},50)));break;case 4194160:0>b?d=g.W:(d=J(this,g.W,a,b,c),0<=d&&(g.W=g.W&128|d&-129));break;default:return e.o|=16,K(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
J(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194050:d=J(this,f.R,a,b,c);0<=d&&(f.R=d);break;case 4194052:d=J(this,f.A,a,b,c);0<=b&&0<=d&&(f.A=d&-36993|f.A&36992,f.A&1&&eb(this));break;case 4194054:d=J(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194056:d=J(this,f.cb,a,b,c);0<=d&&(f.cb=d);break;case 4194058:d=J(this,f.X,a,b,c);0<=d&&(f.X=d);break;case 4194060:break;case 4194062:d=J(this,f.Ub,a,b,c);0<=d&&(f.Ub=d);break;default:return e.o|=16,K(e,4)}break;case 4193728:var h=this.m;f=h.ba&7;switch(a&
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=H.prototype;l.Ma=function(a,b,c,d){this.C=b;this.a=c;this.L=d;var f=this;this.c.Jb=$a(this.a,function(){f.c.wa|=128;f.c.wa&64&&(I(f.a,0,6,64),ab(f.a,f.c.Jb))});Wa(b,this);Ya(b,this.reset.bind(this),this.bc.bind(this));E(this)};l.nc=function(){var a=this.c.wa;this.c.wa&=-129;return a};
l.Ec=function(a){this.c.wa=a;a&64&&ab(this.a,this.c.Jb);this.c.wa=a&-129};l.oc=function(){var a=this.a;return a.H&62337|a.hb<<5|a.ib<<1};l.Fc=function(a){var b=4,c=this.a;c.H=a&=62337;c.hb=a>>5&3;c.ib=a>>1&15;c.qb=a&257?a&1?6:4:0;bb(c);a=c.H;a&1|256&&(b=this.a.Na&16?1:2);this.g.Qa=this.g.Qa&-8|b};l.qc=function(){return this.b.W};l.Hc=function(a){this.b.W=this.b.W&128|a&-129};l.rc=function(){return this.b.Y};
l.Jc=function(a){if(128==(this.b.Y&192)&&a&64){var b=this;I(this.a,8,4,52,function(){b.b.Y|=128;return!!(b.b.Y&64)})}this.b.Y=this.b.Y&128|a&-129};l.pc=function(){return cb(this.a)};l.Gc=function(a){db(this.a,a&-1809|cb(this.a)&1808);this.a.j|=128};
function eb(a){var b=a.i,c,d,f,e=b.X>>13&7;"undefined"===typeof b.U[e]&&(b.U[e]={cache:[],postProcess:a.sc,drive:e,blocksize:256,mapped:0,maxblock:b.Ka[e]*b.J[e],url:"rk"+e+".dsk"});b.A&=-129;switch(b.A>>1&7){case 0:b.eb=2496;b.R=0;b.A=128;b.X=0;break;case 1:if((b.X>>4&511)>=b.Ka[e]){b.R|=32832;b.A|=49152;break}if((b.X&15)>=b.J[e]){b.R|=32800;b.A|=49152;break}c=(b.X>>4&511)*b.J[e]+(b.X&15);d=(b.A&48)<<12|b.cb;f=65536-b.fb&65535;fb(a,b.U[e],c,d,f);return;case 2:if((b.X>>4&511)>=b.Ka[e])b.R|=32832,
b.A|=49152;else if((b.X&15)>=b.J[e])b.R|=32800,b.A|=49152;else{c=(b.X>>4&511)*b.J[e]+(b.X&15);d=(b.A&48)<<12|b.cb;f=65536-b.fb&65535;a.sb(b.U[e],c,d,f);return}}b.eb=e<<13|b.eb&8176|b.X%9&15;I(a.a,20,5,144,function(){b.A=b.A&65534|128;return!!(b.A&64)})}l.sc=function(a,b,c,d,f){var e=this.i;e.cb=d&65535;e.A=e.A&-49|d>>12&48;e.fb=65536-f&65535;switch(a){case 1:e.R|=33024;e.A|=49152;break;case 2:e.R|=33792,e.A|=49152}I(this.a,20,5,144,function(){e.A=e.A&65534|128;return!!(e.A&64)})};
function gb(a){var b=a.l,c,d,f,e=b.u>>8&3;b.u&=-2;"undefined"===typeof b.U[e]&&(b.U[e]={cache:[],postProcess:a.tc,drive:e,blocksize:128,mapped:1,maxblock:b.Ka[e]*b.J[e],url:"rl"+e+".dsk"});switch(b.u>>1&7){case 2:b.xa&8&&(b.u&=63);b.xa=b.cc[e]|b.Da&64;break;case 3:1==(b.K&3)&&(b.Da=b.K&4?b.Da+(b.K&65408)&65408|b.K<<2&64:b.Da-(b.K&65408)&65408|b.K<<2&64,b.K=b.Da);break;case 4:b.xa=b.Da;break;case 5:if(b.K>>6>=b.Ka[e]){b.u|=37888;break}if((b.K&63)>=b.J[e]){b.u|=37888;break}c=(b.K>>6)*b.J[e]+(b.K&63);
d=(b.ra&63)<<16|b.Za;f=65536-b.xa&65535;fb(a,b.U[e],c,d,f);return;case 6:if(b.K>>6>=b.Ka[e])b.u|=37888;else if((b.K&63)>=b.J[e])b.u|=37888;else{c=(b.K>>6)*b.J[e]+(b.K&63);d=(b.ra&63)<<16|b.Za;f=65536-b.xa&65535;a.sb(b.U[e],c,d,f);return}}I(a.a,20,5,112,function(){b.u|=129;return!!(b.u&64)})}
l.tc=function(a,b,c,d,f){var e=this.l;e.Za=d&65535;e.u=e.u&-49|d>>12&48;e.ra=d>>16&63;e.K=~~(c/e.J[b.ka])<<6|c%e.J[b.ka];e.Da=e.K;e.xa=65536-f&65535;switch(a){case 1:e.u|=33792;break;case 2:e.u|=40960}I(this.a,20,5,112,function(){e.u|=129;return!!(e.u&64)})};function hb(a){a=a.m;a.D=2176;a.ba=0;a.V=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Pa=a.Ta=a.Ra=a.Ca=a.Ib=0}
function ib(a,b){var c=a.m,d,f,e;c.D&=-16513;c.ba&=-2049;c.V[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.U[b]&&(c.U[b]={cache:[],postProcess:a.uc,drive:b,blocksize:256,mapped:0,maxblock:c.zb[0]*c.Ja[0]*c.J[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.wb[b]=c.la[b];c.D|=32896;c.V[b]|=32896;c.Pa|=1<<b;break;case 9:hb(a);break;case 19:c.V[b]|=64;break;case 49:if(c.la[b]>=c.zb[0]||c.ca[b]>>8>=c.Ja[0]||(c.ca[b]&255)>=c.J[0]){c.Sa[b]|=1024;c.D|=49152;break}d=(c.la[b]*c.Ja[0]+(c.ca[b]>>8))*c.J[0]+
(c.ca[b]&255);f=(c.Ca&63)<<16|c.Ra;e=65536-c.Ta&65535;fb(a,c.U[b],d,f,e);return;case 57:if(c.la[b]>=c.zb[0]||c.ca[b]>>8>=c.Ja[0]||(c.ca[b]&255)>=c.J[0])c.Sa[b]|=1024,c.D|=49152;else{d=(c.la[b]*c.Ja[0]+(c.ca[b]>>8))*c.J[0]+(c.ca[b]&255);f=(c.Ca&63)<<16|c.Ra;e=65536-c.Ta&65535;a.sb(c.U[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.V[b]|=128;return!!(c.D&64)})}
l.uc=function(a,b,c,d,f){var e=this.m;e.Ta=65536-f&65535;e.Ra=d&65535;e.D=e.D&-769|d>>8&768;e.Ca=d>>16&63;f=~~(c/e.J[0]);d=~~(f/e.Ja[0]);e.ca[b.ka]=f%e.Ja[0]<<8|c%e.J[0];e.wb[b.ka]=e.la[b.ka]=d;e.Pa|=1<<b.ka;c>=b.lc-1&&(e.V[b.ka]|=1024);switch(a){case 1:e.ba|=512;e.D|=49152;break;case 2:e.ba|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.V[b.ka]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};
function jb(a,b,c,d,f,e){var g=~~((e+c.sa-1)/c.sa),h=new XMLHttpRequest;2048>g&&d+2048<c.lc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.sa<<1)+"-"+(((d+g)*c.sa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,q,w,D;m=h.response;if(h.status&&206!=h.status||!m)c.Fb(1,c,d,f,e);else{m=new Uint8Array(m);q=d;for(D=0;D<m.length;){if("undefined"===typeof c.cache[q])for(c.cache[q]=[],w=0;w<c.sa;w++)c.cache[q][w]=D<m.length?
m[D]&255|m[D+1]<<8&65280:0,D+=2;else D+=c.sa<<1;q++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:K(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.sb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){jb(this,this.sb,a,b,c,d);return}for(f=0;f<a.sa&&0<d;f++){var e=a.kc?kb(this.a,c):c;Ua(this.a.C,e,a.cache[b][f]&65535);c+=2;--d}b++}a.Fb(0,a,b,c,d)};
function fb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.sa;e++)b.cache[c][e]=0;for(e=0;e<b.sa&&0<f;e++){g=a.a.ub(b.kc?kb(a.a,d):d);if(0>g){b.Fb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.Fb(0,b,c,d,f)}l.reset=function(){this.g.Qa=this.g.Qa&-120|20;this.b.W=0;this.b.Y=128;this.c.wa=0;this.i.A=128;this.l.u=128;hb(this)};
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.Ba&65280:(a&1&&(b<<=8),e.Ba=b|255,d=0);break;case 4194298:if(0>b)d=e.Hb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Hb=d;e.j|=2}break;case 4194294:if(70!==e.La)return K(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.La)return K(e,4);d=1;break;case 4194290:if(70!==e.La)return K(e,4);d=0;break;case 4194288:if(70!==e.La)return K(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.La)return K(e,4);f=a-4194272>>1;0>b?d=e.Eb[f]:(d=J(this,e.Eb[f],a,b,c),0<=d&&(e.Eb[f]=d));break;case 4194254:return a&1?e.w>>14&1?(0<=b&&(e.f[6]=b),d=e.f[6]):(0<=b&&(e.fa[3]=b),d=e.fa[3]):e.w>>14&0?(0<=b&&(e.f[6]=b),d=e.f[6]):(0<=b&&(e.fa[1]=b),d=e.fa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.w&2048?(0<=b&&(e.f[f]=b),d=e.f[f]):(0<=b&&(e.Oa[f]=b),d=e.Oa[f]),d;case 4194246:return a&
1?(0<=b&&(e.f[7]=b),d=e.f[7]):e.w>>14&0?(0<=b&&(e.f[6]=b),d=e.f[6]):(0<=b&&(e.fa[0]=b),d=e.fa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.w&2048?(0<=b&&(e.Oa[f]=b),d=e.Oa[f]):(0<=b&&(e.f[f]=b),d=e.f[f]),d;default:return e.o|=16,K(e,4)}break;case 4194176:f=a>>1&31;d=J(this,e.P[3][f],a,b,c);0<=d&&(e.P[3][f]=d,e.P[3][f&15]&=65295);break;case 4194112:var g=this.b;switch(a&-2){case 4194174:d=J(this,e.vb,a,b,c);0<=d&&(e.vb=d);break;case 4194172:d=e.Aa;d&65280&&(d=(d<<8|d>>8)&65535);break;
case 4194168:0>b?d=this.g.Cc&65535:(d=J(this,this.g.data,a,b,c),0<=d&&(this.g.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.Y&=-129,I(e,100,4,52,function(){g.Y|=128;return!!(g.Y&64)}));d=0;break;case 4194162:d=0;0>b&&(g.W&=-129,0<g.Gb.length&&(d=g.Gb.shift(),0<g.Gb.length&&setTimeout(function(){g.W|=128;g.W&64&&I(e,40,4,48)},50)));break;case 4194160:0>b?d=g.W:(d=J(this,g.W,a,b,c),0<=d&&(g.W=g.W&128|d&-129));break;default:return e.o|=16,K(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
J(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194050:d=J(this,f.R,a,b,c);0<=d&&(f.R=d);break;case 4194052:d=J(this,f.A,a,b,c);0<=b&&0<=d&&(f.A=d&-36993|f.A&36992,f.A&1&&eb(this));break;case 4194054:d=J(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194056:d=J(this,f.cb,a,b,c);0<=d&&(f.cb=d);break;case 4194058:d=J(this,f.X,a,b,c);0<=d&&(f.X=d);break;case 4194060:break;case 4194062:d=J(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.o|=16,K(e,4)}break;case 4193728:var h=this.m;f=h.ba&7;switch(a&
-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.Ca=h.Ca&60|d>>8&3,h.D=d&17279|h.D&34944|2048,d&1&&h.D&128?ib(this,f):192==(d&192)&&I(e,0,5,172));break;case 4193730:d=J(this,h.Ta,a,b,c);0<=d&&(h.Ta=d);break;case 4193732:d=J(this,h.Ra,a,b,c);0<=d&&(h.Ra=d&65534);break;case 4193734:d=J(this,h.ca[f],a,b,c);0<=d&&(h.ca[f]=d&7967);break;case 4193736:d=J(this,h.ba,a,b,c);0<=d&&(h.ba=d&63|h.ba&65472,d&128&&hb(this));break;case 4193738:d=h.V[f];break;case 4193740:d=h.Sa[f];break;case 4193742:d=J(this,
h.Pa,a,b,c);0<=d&&(h.Pa=d&255);break;case 4193744:d=h.yc[f];break;case 4193746:d=J(this,h.Vb,a,b,c);0<=d&&(h.Vb=d);break;case 4193748:d=J(this,h.Wb[f],a,b,c);0<=d&&(h.Wb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.zc[f];break;case 4193754:d=J(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d);break;case 4193756:d=J(this,h.la[f],a,b,c);0<=d&&(h.la[f]=d&511);break;case 4193758:h.wb[f]=h.la[f];d=h.wb[f];break;case 4193760:d=h.wc[f];break;case 4193762:d=h.xc[f];break;case 4193764:d=h.uc[f];break;case 4193766:d=
h.vc[f];break;case 4193768:d=J(this,h.Ca,a,b,c);0<=d&&(h.Ca=d&63,h.D=h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Hb,a,b,c);0<=d&&(h.Hb=d);break;default:return e.o|=16,K(e,4)}break;case 4192512:f=this.l;switch(a&-2){case 4192512:d=J(this,f.u,a,b,c);0<=b&&0<=d&&(f.ra=f.ra&60|d>>4&3,f.u=f.u&-1023|d&1022,f.u&128||gb(this));break;case 4192514:d=J(this,f.Za,a,b,c);0<=d&&(f.Za=d&65534);break;case 4192516:d=J(this,f.J,a,b,c);0<=d&&(f.J=d);break;case 4192518:d=J(this,f.xa,a,b,c);0<=d&&(f.xa=d);break;
h.Pa,a,b,c);0<=d&&(h.Pa=d&255);break;case 4193744:d=h.zc[f];break;case 4193746:d=J(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=J(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.Ac[f];break;case 4193754:d=J(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=J(this,h.la[f],a,b,c);0<=d&&(h.la[f]=d&511);break;case 4193758:h.wb[f]=h.la[f];d=h.wb[f];break;case 4193760:d=h.xc[f];break;case 4193762:d=h.yc[f];break;case 4193764:d=h.vc[f];break;case 4193766:d=
h.wc[f];break;case 4193768:d=J(this,h.Ca,a,b,c);0<=d&&(h.Ca=d&63,h.D=h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Ib,a,b,c);0<=d&&(h.Ib=d);break;default:return e.o|=16,K(e,4)}break;case 4192512:f=this.l;switch(a&-2){case 4192512:d=J(this,f.u,a,b,c);0<=b&&0<=d&&(f.ra=f.ra&60|d>>4&3,f.u=f.u&-1023|d&1022,f.u&128||gb(this));break;case 4192514:d=J(this,f.Za,a,b,c);0<=d&&(f.Za=d&65534);break;case 4192516:d=J(this,f.K,a,b,c);0<=d&&(f.K=d);break;case 4192518:d=J(this,f.xa,a,b,c);0<=d&&(f.xa=d);break;
case 4192520:d=J(this,f.ra,a,b,c);0<=d&&(f.ra=d&63,f.u=f.u&-49|(f.ra&3)<<4);break;default:return e.o|=16,K(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Na:(d=J(this,e.Na,a,b,c),0<=d&&(70!==e.La&&(d&=-49),e.Na=d,e.rb[0]=d&4?15:7,e.rb[1]=d&2?15:7,e.rb[3]=d&1?15:7,e.qb&&(f=2,e.Na&16&&(f=1),this.g.Qa=this.g.Qa&-8|f)));break;default:return e.o|=16,K(e,4)}break;case 4191424:f=a>>1&31;d=J(this,e.P[0][f],a,b,c);0<=d&&(e.P[0][f]=d,e.P[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.P[1][f],
a,b,c);0<=d&&(e.P[1][f]=d,e.P[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.La)return K(e,4);f=a>>2&31;d=e.gb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=J(this,d,a,b,c),0<=d&&(e.gb[f]=a&2?d<<16|e.gb[f]&65535:e.gb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Za[a>>1&255];else return e.o|=16,K(e,4);break;default:return e.o|=16,K(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
return d};var L={},Xa=(L[65382]=[null,null,H.prototype.mc,H.prototype.Dc,"LKS"],L[65392]=[null,null,H.prototype.pc,H.prototype.Gc,"RCSR"],L[65396]=[null,null,H.prototype.qc,H.prototype.Ic,"XCSR"],L[65402]=[null,null,H.prototype.nc,H.prototype.Ec,"MMR0"],L[65534]=[null,null,H.prototype.oc,H.prototype.Fc,"PSW"],L);u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new H(d);B(d,c)}});var lb;
return d};var L={},Xa=(L[65382]=[null,null,H.prototype.nc,H.prototype.Ec,"LKS"],L[65392]=[null,null,H.prototype.qc,H.prototype.Hc,"RCSR"],L[65396]=[null,null,H.prototype.rc,H.prototype.Jc,"XCSR"],L[65402]=[null,null,H.prototype.oc,H.prototype.Fc,"MMR0"],L[65534]=[null,null,H.prototype.pc,H.prototype.Gc,"PSW"],L);u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new H(d);B(d,c)}});var lb;
if(Ha){var mb=new ArrayBuffer(2);(new DataView(mb)).setUint16(0,256,!0);lb=256===(new Uint16Array(mb))[0]}else lb=!1;var nb=lb;
function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Wa=a;this.xb=b;this.size=c||0;this.type=d||pb;this.i=d==qb;this.controller=null;Ka(this);this.ua=this.ec=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Xa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.m=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;rb(this,ub)}else rb(this)}
function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Wa=a;this.xb=b;this.size=c||0;this.type=d||pb;this.i=d==qb;this.controller=null;Ka(this);this.ua=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Xa);else if(Ha)this.c=new ArrayBuffer(c),this.g=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.m=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;rb(this,ub)}else rb(this)}
var pb=0,qb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],ob=0;
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.a=a;return this.ua=!0}return!1},s:function(){return 255},F:function(){},v:function(a,b){return this.bb(a++,b++)|this.bb(a,b)<<8},G:function(a,b,c){this.Va(a++,
b&255,c++);this.Va(a,b>>8,c)},Z:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ja:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},pa:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ua=!0},Ia:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ua=!0},L:function(a,b){return this.S(a,b)},ga:function(a,b){return this.ha(a,
b)},na:function(a,b,c){this.i||this.$b(a,b,c)},Fa:function(a,b,c){this.i||this.Ga(a,b,c)},H:function(a){return this.b[a]},T:function(a){return this.b[a]},$:function(a){return this.g.getUint16(a,!0)},ia:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.m[a>>1]},ma:function(a,b){this.b[a]=b;this.ua=!0},oa:function(a,b){this.b[a]=b;this.ua=!0},Ea:function(a,b){this.g.setUint16(a,b,!0);this.ua=!0},Ha:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.m[a>>1]=b;this.ua=!0}};
function Ka(a,b,c){a.K=b;a.B=a.l=0;c&&((a.B=c.B)&&vb(a,wb,!1),(a.l=c.l)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.l||(a.Va=!a.i&&b[1]||a.F,a.Hc=!a.i&&b[3]||a.G);if(c||void 0===c)a.$b=b[1]||a.F,a.Ga=b[3]||a.G}function vb(a,b,c){c&&a.B||(a.bb=b[0]||a.s,a.tb=b[2]||a.v);if(c||void 0===c)a.S=b[0]||a.s,a.ha=b[2]||a.v}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.Z,G.prototype.pa,G.prototype.ja,G.prototype.Ia],wb=[G.prototype.L,G.prototype.na,G.prototype.ga,G.prototype.Fa];
if(Ha)var tb=[G.prototype.H,G.prototype.ma,G.prototype.$,G.prototype.Ea],sb=[G.prototype.T,G.prototype.oa,G.prototype.ia,G.prototype.Ha];function zb(a,b){v.call(this,"CPU",a,zb);var c=a.multiplier||1;this.mb=a.cycles||b;this.ia=c;this.Ab=Math.round(this.mb/1E4)/100;this.na=this.Ab*this.ia;this.h.aa=!1;this.h.Yb=!1;this.h.Ya=a.autoStart;this.h.Mb=!1;this.h.ob=!1;this.kb=this.oa=0;this.lb=a.csStart;this.Fa=a.csInterval;this.Ga=a.csStop;this.S=[];this.Tb=this.Ac.bind(this);E(this)}y(zb);
var Ab=["power","reset"];l=zb.prototype;l.Ma=function(a,b,c,d){this.F=a;this.C=b;this.K=d;for(b=0;b<Ab.length;b++)(c=this.B[Ab[b]])&&this.F.da(null,Ab[b],c);this.Ea=null;a=Bb(a,"autoStart");null!=a&&(this.h.Ya="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.za=function(a,b){if(!b){if(a&&this.restore){Cb(this);if(!this.restore(a))return!1;Db(this)}else this.reset();this.M("No debugger detected")}Eb(this);return!0};
b&255,c++);this.Va(a,b>>8,c)},Z:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ja:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},pa:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ua=!0},Ia:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ua=!0},I:function(a,b){return this.S(a,b)},ga:function(a,b){return this.ha(a,
b)},na:function(a,b,c){this.i||this.ac(a,b,c)},Fa:function(a,b,c){this.i||this.Ga(a,b,c)},H:function(a){return this.b[a]},T:function(a){return this.b[a]},$:function(a){return this.g.getUint16(a,!0)},ia:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.m[a>>1]},ma:function(a,b){this.b[a]=b;this.ua=!0},oa:function(a,b){this.b[a]=b;this.ua=!0},Ea:function(a,b){this.g.setUint16(a,b,!0);this.ua=!0},Ha:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.m[a>>1]=b;this.ua=!0}};
function Ka(a,b,c){a.L=b;a.B=a.l=0;c&&((a.B=c.B)&&vb(a,wb,!1),(a.l=c.l)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.l||(a.Va=!a.i&&b[1]||a.F,a.Ic=!a.i&&b[3]||a.G);if(c||void 0===c)a.ac=b[1]||a.F,a.Ga=b[3]||a.G}function vb(a,b,c){c&&a.B||(a.bb=b[0]||a.s,a.tb=b[2]||a.v);if(c||void 0===c)a.S=b[0]||a.s,a.ha=b[2]||a.v}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.Z,G.prototype.pa,G.prototype.ja,G.prototype.Ia],wb=[G.prototype.I,G.prototype.na,G.prototype.ga,G.prototype.Fa];
if(Ha)var tb=[G.prototype.H,G.prototype.ma,G.prototype.$,G.prototype.Ea],sb=[G.prototype.T,G.prototype.oa,G.prototype.ia,G.prototype.Ha];function zb(a,b){v.call(this,"CPU",a,zb);var c=a.multiplier||1;this.mb=a.cycles||b;this.ia=c;this.Bb=Math.round(this.mb/1E4)/100;this.na=this.Bb*this.ia;this.h.aa=!1;this.h.Zb=!1;this.h.Ya=a.autoStart;this.h.Mb=!1;this.h.ob=!1;this.kb=this.oa=0;this.lb=a.csStart;this.Fa=a.csInterval;this.Ga=a.csStop;this.S=[];this.Ub=this.Bc.bind(this);E(this)}y(zb);
var Ab=["power","reset"];l=zb.prototype;l.Ma=function(a,b,c,d){this.F=a;this.C=b;this.L=d;for(b=0;b<Ab.length;b++)(c=this.B[Ab[b]])&&this.F.da(null,Ab[b],c);this.Ea=null;a=Bb(a,"autoStart");null!=a&&(this.h.Ya="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.za=function(a,b){if(!b){if(a&&this.restore){Cb(this);if(!this.restore(a))return!1;Db(this)}else this.reset();this.M("No debugger detected")}Eb(this);return!0};
l.ya=function(a){return a?this.save():!0};l.Ya=function(){return this.h.Ya||void 0===this.B.run?(Fb(this),!0):!1};l.Rb=function(){return 0};function Db(a){void 0===a.lb&&(a.lb=0);void 0===a.Fa&&(a.Fa=-1);void 0===a.Ga&&(a.Ga=-1);a.h.ob=0<=a.lb&&0<a.Fa;a.h.ob&&(a.kb=0,a.oa=a.lb-a.ja)}
function Gb(a,b,c,d){if(a.B[b]){void 0===c&&(a.h.error=!0,a.N("Value for "+b+" is invalid"),Hb(a));var f=a.K&&a.K.b||8;c=!a.h.aa||a.h.Mb?8==f?ba(c,d):n(c,d):"--------".substr(0,d||4);a.B[b].textContent!=c&&(a.B[b].textContent=c)}}
function Gb(a,b,c,d){if(a.B[b]){void 0===c&&(a.h.error=!0,a.N("Value for "+b+" is invalid"),Hb(a));var f=a.L&&a.L.b||8;c=!a.h.aa||a.h.Mb?8==f?ba(c,d):n(c,d):"--------".substr(0,d||4);a.B[b].textContent!=c&&(a.B[b].textContent=c)}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.F)if(a=d.F,a.h.O)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.O);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.pb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.aa?Hb(d):Fb(d))};a=!0;
break;case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){Ib(d,d.ia<<1)},c.textContent=this.na.toFixed(2)+"Mhz",a=!0}return a};function Jb(a,b,c){a.ja+=b;c&&(a.T=a.a=0)}function Kb(a,b){var c=1;b&&1<a.ia&&a.ga&&(c=a.ga/a.Ab);a.Qb=Math.round(1E3/30);a.nb=Math.floor(a.mb/30*c);b||(a.Ha=a.nb);a.Bb=0}function Lb(a){return a.ja+a.$+a.T-a.a}function Cb(a){a.ga=0;a.Sb=0;a.ja=a.$=a.T=a.a=0;Db(a);Ib(a,1)}
function Ib(a,b){if(void 0!==b&&(.8>a.ga/a.na&&(b=1),a.ia=b,b=a.Ab*a.ia,a.na!=b)){a.na=b;b=a.na.toFixed(2)+"Mhz";var c=a.B.setSpeed;c&&(c.textContent=b);a.M("target speed: "+b)}Jb(a,a.$);a.$=0;a.Z=ia();a.ha=0;Kb(a)}function $a(a,b){var c=a.S.length;a.S.push([-1,b]);return c}function ab(a,b){var c;0<=b&&b<a.S.length&&0>a.S[b][0]&&(c=a.mb*a.ia/1E3*(1E3/60),a.S[b][0]=c)}
l.Ac=function(){if(this.h.aa){this.Bb>=this.mb&&Kb(this,!0);this.Ia=0;this.jb=ia();if(this.ha){var a=this.jb-this.ha;a>this.Qb&&(this.Z+=a,this.Z>this.jb&&(this.Z=this.jb))}try{do{for(var b,c=this.h.ob?1:this.nb,d=this.S.length-1;0<=d;d--){var f=this.S[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Zb(b)}catch(m){if("number"!=typeof m)throw m;}for(var e=this.T-this.a,a=e,g=this.S.length-1;0<=g;g--){var h=this.S[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ia+=e;this.$+=e;Jb(this,0,!0);a=e;if(this.h.ob){var k=
!1;this.kb=this.kb+this.Rb()|0;this.oa-=a;0>=this.oa&&(this.oa+=this.Fa,k=!0);0<=this.Ga&&this.Ga<=Lb(this)&&(this.Fa=this.Ga=-1,Db(this),Hb(this),k=!0);k&&this.M(Lb(this)+" cycles: checksum="+n(this.kb))}this.Ha-=e;if(0>=this.Ha){this.Ha+=this.nb;15<=++this.Sb&&(this.F&&this.F.Ua(),this.Sb=0);break}}while(this.h.aa)}catch(m){Hb(this);Eb(this);this.F&&this.F.stop(ia(),Lb(this));b=m.stack||m.message;this.h.error=!0;this.N(b);return}if(this.h.aa){b=setTimeout;c=this.Tb;this.ha=ia();d=this.Qb;this.Ia&&
(d=Math.round(d*this.Ia/this.nb));d-=this.ha-this.jb;if(f=this.ha-this.Z)this.ga=Math.round(this.$/(10*f))/100,864E5<=f&&(this.ja=0,Ib(this));if(0>d||this.ga<this.na)-1E3>d&&(this.Z-=d),d=0;this.Bb+=this.Ia;this.ha+=d;b(c,d)}}};function Fb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.aa)a.M(a.toString()+" busy");else{Ib(a);a.h.aa=!0;a.h.Yb=!0;a.Ea&&a.Ea.start();if(b=a.B.run)b.textContent="Halt";a.F&&a.F.start(a.Z,Lb(a));Eb(a,!0);setTimeout(a.Tb,0)}}l.Zb=function(){return 0};
break;case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){Ib(d,d.ia<<1)},c.textContent=this.na.toFixed(2)+"Mhz",a=!0}return a};function Jb(a,b,c){a.ja+=b;c&&(a.T=a.a=0)}function Kb(a,b){var c=1;b&&1<a.ia&&a.ga&&(c=a.ga/a.Bb);a.Sb=Math.round(1E3/30);a.nb=Math.floor(a.mb/30*c);b||(a.Ha=a.nb);a.Cb=0}function Lb(a){return a.ja+a.$+a.T-a.a}function Cb(a){a.ga=0;a.Tb=0;a.ja=a.$=a.T=a.a=0;Db(a);Ib(a,1)}
function Ib(a,b){if(void 0!==b&&(.8>a.ga/a.na&&(b=1),a.ia=b,b=a.Bb*a.ia,a.na!=b)){a.na=b;b=a.na.toFixed(2)+"Mhz";var c=a.B.setSpeed;c&&(c.textContent=b);a.M("target speed: "+b)}Jb(a,a.$);a.$=0;a.Z=ia();a.ha=0;Kb(a)}function $a(a,b){var c=a.S.length;a.S.push([-1,b]);return c}function ab(a,b){var c;0<=b&&b<a.S.length&&0>a.S[b][0]&&(c=a.mb*a.ia/1E3*(1E3/60),a.S[b][0]=c)}
l.Bc=function(){if(this.h.aa){this.Cb>=this.mb&&Kb(this,!0);this.Ia=0;this.jb=ia();if(this.ha){var a=this.jb-this.ha;a>this.Sb&&(this.Z+=a,this.Z>this.jb&&(this.Z=this.jb))}try{do{for(var b,c=this.h.ob?1:this.nb,d=this.S.length-1;0<=d;d--){var f=this.S[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;}for(var e=this.T-this.a,a=e,g=this.S.length-1;0<=g;g--){var h=this.S[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ia+=e;this.$+=e;Jb(this,0,!0);a=e;if(this.h.ob){var k=
!1;this.kb=this.kb+this.Rb()|0;this.oa-=a;0>=this.oa&&(this.oa+=this.Fa,k=!0);0<=this.Ga&&this.Ga<=Lb(this)&&(this.Fa=this.Ga=-1,Db(this),Hb(this),k=!0);k&&this.M(Lb(this)+" cycles: checksum="+n(this.kb))}this.Ha-=e;if(0>=this.Ha){this.Ha+=this.nb;15<=++this.Tb&&(this.F&&this.F.Ua(),this.Tb=0);break}}while(this.h.aa)}catch(m){Hb(this);Eb(this);this.F&&this.F.stop(ia(),Lb(this));b=m.stack||m.message;this.h.error=!0;this.N(b);return}if(this.h.aa){b=setTimeout;c=this.Ub;this.ha=ia();d=this.Sb;this.Ia&&
(d=Math.round(d*this.Ia/this.nb));d-=this.ha-this.jb;if(f=this.ha-this.Z)this.ga=Math.round(this.$/(10*f))/100,864E5<=f&&(this.ja=0,Ib(this));if(0>d||this.ga<this.na)-1E3>d&&(this.Z-=d),d=0;this.Cb+=this.Ia;this.ha+=d;b(c,d)}}};function Fb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.aa)a.M(a.toString()+" busy");else{Ib(a);a.h.aa=!0;a.h.Zb=!0;a.Ea&&a.Ea.start();if(b=a.B.run)b.textContent="Halt";a.F&&a.F.start(a.Z,Lb(a));Eb(a,!0);setTimeout(a.Ub,0)}}l.$b=function(){return 0};
function Hb(a){if(a.h.aa){a.T-=a.a;a.a=0;Jb(a,a.$);a.$=0;a.h.aa=!1;a.Ea&&a.Ea.stop();var b=a.B.run;b&&(b.textContent="Run");a.F&&a.F.stop(ia(),Lb(a));Eb(a)}a.h.complete=void 0}function Eb(a,b){a.F&&a.F.Ua(b)}
function Mb(a){this.ic=a.resetAddr||0;zb.call(this,a,6666667);this.Lb=0;this.decode=Nb.bind(this);this.l=65536;this.g=32768;this.i=65535;this.m=32768;this.w=15;this.c=[0,0,0,0,0,0,0,this.ic];this.Oa=[0,0,0,0,0,0];this.fa=[0,0,0,0];this.ib=this.v=0;this.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.gb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.L=this.b=this.G=this.f=this.j=0;this.La=70;this.pa=-1;Ob(this);this.h.complete=this.h.cc=!1}y(Mb,zb);l=Mb.prototype;l.reset=function(){this.h.aa&&Hb(this);Ob(this);Cb(this);this.h.error=!1;this.parent.reset.call(this)};
function Ob(a){a.Ba=255;a.o=0;a.Gb=0;a.H=0;a.Aa=0;a.vb=0;a.Na=0;a.qb=0;a.hb=0;a.rb=[7,7,7,7];a.s=[];a.j|=2;bb(a)}function bb(a){a.qb?(a.Jb=65536,a.ma=a.gc,a.tb=a.ea):(a.Jb=0,a.ma=a.fc,a.tb=a.ub)}l.Rb=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.ja,this.ia]);a.set(2,Va(this.C));return a.data()};
function Mb(a){this.jc=a.resetAddr||0;zb.call(this,a,6666667);this.Ob=0;this.decode=Nb.bind(this);this.l=65536;this.g=32768;this.i=65535;this.m=32768;this.w=15;this.f=[0,0,0,0,0,0,0,this.jc];this.Oa=[0,0,0,0,0,0];this.fa=[0,0,0,0];this.ib=this.v=0;this.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.gb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Eb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.I=this.b=this.G=this.c=this.yb=this.j=0;this.La=70;this.pa=-1;Ob(this);this.h.complete=this.h.dc=!1}y(Mb,zb);l=Mb.prototype;l.reset=function(){this.h.aa&&Hb(this);Ob(this);Cb(this);this.h.error=!1;this.parent.reset.call(this)};
function Ob(a){a.Ba=255;a.o=0;a.Hb=0;a.H=0;a.Aa=0;a.vb=0;a.Na=0;a.qb=0;a.hb=0;a.rb=[7,7,7,7];a.s=[];a.j|=2;bb(a)}function bb(a){a.qb?(a.Lb=65536,a.ma=a.hc,a.tb=a.ea):(a.Lb=0,a.ma=a.gc,a.tb=a.ub)}l.Rb=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.ja,this.ia]);a.set(2,Va(this.C));return a.data()};
l.restore=function(a){var b=a[1];this.ja=b[1];Ib(this,b[3]);a:{b=this.C;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.G){for(var e=0,g=Array(b.G),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.B[b]=c;this.Lb++;a=!0;break;default:a=this.parent.da.call(this,a,b,c)}return a};
l.Ua=function(a){if(this.Lb&&(a||!this.h.aa||this.h.Mb)){for(a=0;a<this.c.length;a++)Gb(this,"R"+a,this.c[a]);a=cb(this);Gb(this,"PS",a);Gb(this,"NF",a&8?1:0,1);Gb(this,"ZF",a&4?1:0,1);Gb(this,"VF",a&2?1:0,1);Gb(this,"CF",a&1?1:0,1)}if(a=this.B.speed)a.textContent=this.h.aa&&this.ga?this.ga.toFixed(2)+"Mhz":"Stopped"};function N(a){return a.l&65536?1:0}l.va=function(){return this.m&32768?8:0};function Pb(a){var b=a.ea(a.c[7]);a.c[7]=a.c[7]+2&65535;return b}
function I(a,b,c,d,f){for(var e=a.s.length;0<e--;)if(a.s[e].Cc===d){0<e&&(a.s[e-1].ta+=a.s[e].ta);a.s.splice(e,1);break}if(0<=b){for(e=a.s.length;0<e--;){if(a.s[e].ta>b){a.s[e].ta-=b;break}b-=a.s[e].ta}a.s.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.j|=2}function cb(a){return a.w=a.w&63728|a.va()|(a.i&65535?0:4)|(a.g&32768?2:0)|N(a)}
function db(a,b){a.m=b<<12;a.i=~b&4;a.g=b<<14;a.l=b<<16;if((b^a.w)&2048)for(var c=a.Oa.length;0<=--c;){var d=a.c[c];a.c[c]=a.Oa[c];a.Oa[c]=d}a.v=b>>14&3;c=a.w>>14&3;a.v!=c&&(a.fa[c]=a.c[6],a.c[6]=a.fa[a.v]);a.j|=2;a.w=b}function O(a,b){a.j&128||(a.m=a.i=b,a.g=0)}function P(a,b,c){a.j&128||(a.m=a.i=a.l=b,a.g=c||0)}function Qb(a,b,c,d){a.j&128||(a.m=a.i=a.l=b,a.g=(c^b)&(d^b))}function Q(a,b){a.j&128||(a.m=a.i=a.l=b,a.g=a.m^a.l>>1)}function Rb(a,b,c,d){a.j&128||(a.m=a.i=a.l=b,a.g=(c^d)&(d^b))}
function K(a,b){var c=!1;0>a.pa?a.pa=cb(a):a.v||(b=4,c=!0);a.H&57344||(a.Aa=63222,a.vb=b);a.v=0;var d=a.ea(b|65536),f=a.ea(b+2&65535|65536);db(a,f&-12289|a.pa>>2&12288);c&&(a.o|=4,a.c[6]=4);Sb(a,a.pa);Sb(a,a.c[7]);a.c[7]=d&65535;a.j&=-113;a.pa=-1;throw b;}function Tb(a){var b=Ub(a),c=Ub(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);a.c[7]=b&65535;db(a,c);a.j&=-17}
l.da=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.B[b]=c;this.Ob++;a=!0;break;default:a=this.parent.da.call(this,a,b,c)}return a};
l.Ua=function(a){if(this.Ob&&(a||!this.h.aa||this.h.Mb)){for(a=0;a<this.f.length;a++)Gb(this,"R"+a,this.f[a]);a=cb(this);Gb(this,"PS",a);Gb(this,"NF",a&8?1:0,1);Gb(this,"ZF",a&4?1:0,1);Gb(this,"VF",a&2?1:0,1);Gb(this,"CF",a&1?1:0,1)}if(a=this.B.speed)a.textContent=this.h.aa&&this.ga?this.ga.toFixed(2)+"Mhz":"Stopped"};function N(a){return a.l&65536?1:0}l.va=function(){return this.m&32768?8:0};function Pb(a){var b=a.ea(a.f[7]);a.f[7]=a.f[7]+2&65535;return b}
function I(a,b,c,d,f){for(var e=a.s.length;0<e--;)if(a.s[e].Dc===d){0<e&&(a.s[e-1].ta+=a.s[e].ta);a.s.splice(e,1);break}if(0<=b){for(e=a.s.length;0<e--;){if(a.s[e].ta>b){a.s[e].ta-=b;break}b-=a.s[e].ta}a.s.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.j|=2}function cb(a){return a.w=a.w&63728|a.va()|(a.i&65535?0:4)|(a.g&32768?2:0)|N(a)}
function db(a,b){a.m=b<<12;a.i=~b&4;a.g=b<<14;a.l=b<<16;if((b^a.w)&2048)for(var c=a.Oa.length;0<=--c;){var d=a.f[c];a.f[c]=a.Oa[c];a.Oa[c]=d}a.v=b>>14&3;c=a.w>>14&3;a.v!=c&&(a.fa[c]=a.f[6],a.f[6]=a.fa[a.v]);a.j|=2;a.w=b}function O(a,b){a.j&128||(a.m=a.i=b,a.g=0)}function P(a,b,c){a.j&128||(a.m=a.i=a.l=b,a.g=c||0)}function Qb(a,b,c,d){a.j&128||(a.m=a.i=a.l=b,a.g=(c^b)&(d^b))}function Q(a,b){a.j&128||(a.m=a.i=a.l=b,a.g=a.m^a.l>>1)}function Rb(a,b,c,d){a.j&128||(a.m=a.i=a.l=b,a.g=(c^d)&(d^b))}
function K(a,b){var c=!1;0>a.pa?a.pa=cb(a):a.v||(b=4,c=!0);a.H&57344||(a.Aa=63222,a.vb=b);a.v=0;var d=a.ea(b|65536),f=a.ea(b+2&65535|65536);db(a,f&-12289|a.pa>>2&12288);c&&(a.o|=4,a.f[6]=4);Sb(a,a.pa);Sb(a,a.f[7]);a.f[7]=d&65535;a.j&=-113;a.pa=-1;throw b;}function Tb(a){var b=Ub(a),c=Ub(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);a.f[7]=b&65535;db(a,c);a.j&=-17}
function kb(a,b){var c=b>>13&31;31>c?a.Na&32&&(b=a.gb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Vb(a,b,c){var d,f,e,g=0;if(c&a.qb){d=b>>13&a.rb[a.v];f=a.P[a.v][d];e=(a.P[a.v][d+16]<<6)+(b&8191)&4194303;a.Na&16?3932160<=e&&4186112>e&&(e=kb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.o|=32,K(a,4)),e&1&&!(c&1)&&(a.o|=64,K(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
16384));a.P[a.v][d]=f;if(4194170!==e||a.v)a.hb=a.v,a.ib=d;g&&(g&57344&&(0<=a.pa&&(g|=128),a.H&57344||(a.H=a.H|g|a.hb<<5|a.ib<<1),K(a,168)),a.H&61440||!(4191360>e||4194239<e)||(a.H|=4096,a.H&512&&(a.j|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.o|=64,K(a,4));return e}l.ub=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.C,c=a&b.i,d=(a&b.l)>>>b.f;a=c!=b.i?b.b[d].tb(c,a):b.b[d++].bb(c,a)|b.b[d&b.H].bb(0,a+1)<<8}return a};l.ea=function(a){return this.ub(Vb(this,a,2))};
function Ub(a){var b=a.ea(a.c[6]|65536);a.c[6]=a.c[6]+2&65535;return b}function Sb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.H&57344||(a.Aa=a.Aa<<8|246);!a.v&&c<=a.Ba&&4<c&&(c<=a.Ba-32?(a.o|=4,a.c[6]=4,K(a,4)):(a.o|=8,a.j|=4));c=Vb(a,c|65536,4);Ua(a.C,c,b&65535)}
function R(a,b,c){var d,f,e=c&8?0:a.Jb,g=b>>3&7;b&=7;c&4?(a.f=g,a.b=b):(a.G=g,a.L=b);switch(g){case 0:return K(a,4),0;case 1:return 6===b&&!a.v&&c&4&&(a.c[6]<=a.Ba||65534<=a.c[6])&&(a.c[6]<=a.Ba-32||65534<=a.c[6]?(a.o|=4,a.c[6]=4,K(a,4)):(a.o|=8,a.j|=64)),a.a-=3,7===b?a.c[b]:a.c[b]|e;case 2:f=2;d=a.c[b];7!==b&&(d|=e,6>b&&c&1&&(f=1));a.a-=3;break;case 3:f=2;d=a.c[b];7!==b&&(d|=e);d=a.ea(d);d|=e;a.a-=7;break;case 4:f=-2;6>b&&c&1&&(f=-1);d=a.c[b]+f&65535;7!==b&&(d|=e);a.a-=4;break;case 5:f=-2;d=a.c[b]-
2&65535;7!==b&&(d|=e);d=a.ea(d)|e;a.a-=8;break;case 6:return d=Pb(a),d=d+a.c[b]&65535|e,a.a-=6,d;case 7:return d=Pb(a),d=d+a.c[b]&65535,d=a.ea(d|65536)|e,a.a-=10,d}a.c[b]=a.c[b]+f&65535;!e||a.H&57344||(a.Aa=a.Aa<<8|f<<3&248|b);6==b&&!a.v&&c&4&&0>=f&&(a.c[6]<=a.Ba||65534<=a.c[6])&&(a.c[6]<=a.Ba-32?(a.o|=4,a.c[6]=4,K(a,4)):(a.o|=8,a.j|=64));return d}l.fc=function(a,b){return R(this,a,b)};l.gc=function(a,b){return Vb(this,R(this,a,b),b)};
function Wb(a,b,c){b&56?(b=R(a,b,2),c&65536||61440!==(a.w&61440)&&(b&=65535),a.v=a.w>>12&3,c=a.ea(b|c&65536),a.v=a.w>>14&3):(a.G=0,c=b&7,c=6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]:a.fa[a.w>>12&3]);return c}function Xb(a,b,c,d){a.H&57344||(a.Aa=22);b&56?(b=R(a,b,4),c&65536||(b&=65535),a.v=a.w>>12&3,b=Vb(a,b|c&65536,4),a.v=a.w>>14&3,Ua(a.C,b,d&65535)):(a.f=0,c=b&7,6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]=d:a.fa[a.w>>12&3]=d)}function S(a,b){b&56?a=a.tb(R(a,b,2)):(a.G=0,a=a.c[b&7]);return a}
function T(a,b){b&56?(b=a.ma(b,3),a=Ta(a.C,b)):(a.G=0,a=a.c[b&7]&255);return a}function U(a,b,c,d){b&56?(b=a.ma(b,6),c=d.call(a,c,a.ub(b)),Ua(a.C,b,c&65535)):(a.f=0,b&=7,a.c[b]=d.call(a,c,a.c[b]))}function V(a,b,c,d){b&56?(b=a.ma(b,7),c=d.call(a,c,Ta(a.C,b)),b&1&&a.a--,a=a.C,a.b[(b&a.l)>>>a.f].Va(b&a.i,c&255,b)):(a.f=0,b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b]))}function Yb(a,b,c){b&56?(b=a.ma(b,4),Ua(a.C,b,c&65535)):(a.f=0,a.c[b&7]=c&65535);return c}
function Zb(a,b,c,d){b&56?(d=a.ma(b,5),d&1&&a.a--,a=a.C,a.b[(d&a.l)>>>a.f].Va(d&a.i,c&255,d)):(a.f=0,b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function W(a,b){a.c[7]=a.c[7]+(b<<24>>23)&65535}
l.Zb=function(a){this.h.complete=!0;this.h.cc=!1;this.h.Yb=!1;this.T=this.a=a;do{if(this.j&&(this.j&112&&(this.j&32?K(this,168):this.j&64?K(this,4):this.j&16&&K(this,12),this.j&=-113),this.j&7))if(this.j&2){this.j&=-3;a=null;for(var b=this.Gb&224,c=this.s.length;0<=--c;){if(0<this.s[c].ta){this.s[c].ta--;this.j|=2;break}if(this.s[c].Kb){if(!this.s[c].Kb()){this.s.splice(c,1);continue}this.s[c].Kb=null}this.s[c].lc>b&&(b=this.s[c].lc,a=this.s[c],this.s.splice(c,1))}b>(this.w&224)&&(this.j&4&&(this.c[7]=
this.c[7]+2&65535,this.j&=-5),a?K(this,a.Cc):K(this,160))}else this.j&1&&this.j++;this.H&57344||(this.Aa=0,this.vb=this.c[7]);this.j=this.j&7|this.w&16;this.decode(Pb(this))}while(0<this.a);return this.h.complete?this.T-this.a:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Mb(d);B(d,c)}});function $b(a,b){var c=b+a;Qb(this,c,a,b);return c&65535}function ac(a,b){var c=b+a;Qb(this,c<<8,a<<8,b<<8);return c&255}
16384));a.P[a.v][d]=f;if(4194170!==e||a.v)a.hb=a.v,a.ib=d;g&&(g&57344&&(0<=a.pa&&(g|=128),a.H&57344||(a.H=a.H|g|a.hb<<5|a.ib<<1),K(a,168)),a.H&61440||!(4191360>e||4194239<e)||(a.H|=4096,a.H&512&&(a.j|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.o|=64,K(a,4));return e}l.ub=function(a){if(4194304<=a)a=this.f[a-4194304];else if(0<=a){var b=this.C,c=a&b.i,d=(a&b.l)>>>b.c;a=c!=b.i?b.b[d].tb(c,a):b.b[d++].bb(c,a)|b.b[d&b.H].bb(0,a+1)<<8}return a};l.ea=function(a){return this.ub(Vb(this,a,2))};
function Ub(a){var b=a.ea(a.f[6]|65536);a.f[6]=a.f[6]+2&65535;return b}function Sb(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.H&57344||(a.Aa=a.Aa<<8|246);!a.v&&c<=a.Ba&&4<c&&(c<=a.Ba-32?(a.o|=4,a.f[6]=4,K(a,4)):(a.o|=8,a.j|=4));c=Vb(a,c|65536,4);Ua(a.C,c,b&65535)}
function R(a,b,c){var d,f,e=c&8?0:a.Lb,g=b>>3&7;b&=7;c&4?(a.c=g,a.b=b):(a.G=g,a.I=b);switch(g){case 0:return K(a,4),0;case 1:return 6===b&&!a.v&&c&4&&(a.f[6]<=a.Ba||65534<=a.f[6])&&(a.f[6]<=a.Ba-32||65534<=a.f[6]?(a.o|=4,a.f[6]=4,K(a,4)):(a.o|=8,a.j|=64)),a.a-=3,7===b?a.f[b]:a.f[b]|e;case 2:f=2;d=a.f[b];7!==b&&(d|=e,6>b&&c&1&&(f=1));a.a-=3;break;case 3:f=2;d=a.f[b];7!==b&&(d|=e);d=a.ea(d);d|=e;a.a-=7;break;case 4:f=-2;6>b&&c&1&&(f=-1);d=a.f[b]+f&65535;7!==b&&(d|=e);a.a-=4;break;case 5:f=-2;d=a.f[b]-
2&65535;7!==b&&(d|=e);d=a.ea(d)|e;a.a-=8;break;case 6:return d=Pb(a),d=d+a.f[b]&65535|e,a.a-=6,d;case 7:return d=Pb(a),d=d+a.f[b]&65535,d=a.ea(d|65536)|e,a.a-=10,d}a.f[b]=a.f[b]+f&65535;!e||a.H&57344||(a.Aa=a.Aa<<8|f<<3&248|b);6==b&&!a.v&&c&4&&0>=f&&(a.f[6]<=a.Ba||65534<=a.f[6])&&(a.f[6]<=a.Ba-32?(a.o|=4,a.f[6]=4,K(a,4)):(a.o|=8,a.j|=64));return d}l.gc=function(a,b){return R(this,a,b)};l.hc=function(a,b){return Vb(this,R(this,a,b),b)};
function Wb(a,b,c){b&56?(b=R(a,b,2),c&65536||61440!==(a.w&61440)&&(b&=65535),a.v=a.w>>12&3,c=a.ea(b|c&65536),a.v=a.w>>14&3):(a.G=0,c=a.I=b&7,c=6!=c||(a.w>>2&12288)===(a.w&12288)?a.f[c]:a.fa[a.w>>12&3]);return c}function Xb(a,b,c,d){a.H&57344||(a.Aa=22);b&56?(b=R(a,b,4),c&65536||(b&=65535),a.v=a.w>>12&3,b=Vb(a,b|c&65536,4),a.v=a.w>>14&3,Ua(a.C,b,d&65535)):(a.c=0,c=a.b=b&7,6!=c||(a.w>>2&12288)===(a.w&12288)?a.f[c]=d:a.fa[a.w>>12&3]=d)}
function S(a,b){b&56?a=a.tb(R(a,b,2)):(a.G=0,a=a.f[a.I=b&7]);return a}function T(a,b){b&56?(b=a.ma(b,3),a=Ta(a.C,b)):(a.G=0,a=a.f[a.I=b&7]&255);return a}function U(a,b,c,d){b&56?(b=a.ma(b,6),c=d.call(a,c,a.ub(b)),Ua(a.C,b,c&65535)):(a.c=0,b=a.b=b&7,a.f[b]=d.call(a,c,a.f[b]))}function V(a,b,c,d){b&56?(b=a.yb=a.ma(b,7),c=d.call(a,c,Ta(a.C,b)),b&1&&a.a--,a=a.C,a.b[(b&a.l)>>>a.c].Va(b&a.i,c&255,b)):(a.c=0,b=a.b=b&7,a.f[b]=a.f[b]&65280|d.call(a,c,a.f[b]))}
function Yb(a,b,c){b&56?(b=a.ma(b,4),Ua(a.C,b,c&65535)):(a.c=0,a.f[a.b=b&7]=c&65535);return c}function Zb(a,b,c,d){b&56?(d=a.ma(b,5),d&1&&a.a--,a=a.C,a.b[(d&a.l)>>>a.c].Va(d&a.i,c&255,d)):(a.c=0,b=a.b=b&7,a.f[b]=c?d&1?c<<24>>24&65535:a.f[b]&-256|c&255:a.f[b]&-256);return c}function W(a,b,c){c&&(a.f[7]=a.f[7]+(b<<24>>23)&65535,a.a-=2);a.a-=3}
l.$b=function(a){this.h.complete=!0;this.h.dc=!1;this.h.Zb=!1;this.T=this.a=a;do{if(this.j&&(this.j&112&&(this.j&32?K(this,168):this.j&64?K(this,4):this.j&16&&K(this,12),this.j&=-113),this.j&7))if(this.j&2){this.j&=-3;a=null;for(var b=this.Hb&224,c=this.s.length;0<=--c;){if(0<this.s[c].ta){this.s[c].ta--;this.j|=2;break}if(this.s[c].Kb){if(!this.s[c].Kb()){this.s.splice(c,1);continue}this.s[c].Kb=null}this.s[c].mc>b&&(b=this.s[c].mc,a=this.s[c],this.s.splice(c,1))}b>(this.w&224)&&(this.j&4&&(this.f[7]=
this.f[7]+2&65535,this.j&=-5),a?K(this,a.Dc):K(this,160))}else this.j&1&&this.j++;this.H&57344||(this.Aa=0,this.vb=this.f[7]);this.j=this.j&7|this.w&16;this.decode(Pb(this))}while(0<this.a);return this.h.complete?this.T-this.a:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Mb(d);B(d,c)}});function $b(a,b){var c=b+a;Qb(this,c,a,b);return c&65535}function ac(a,b){var c=b+a;Qb(this,c<<8,a<<8,b<<8);return c&255}
function bc(a,b){a=b<<1;Q(this,a);return a&65535}function cc(a,b){a=b<<1;Q(this,a<<8);return a&255}function dc(a,b){a=b&32768|b>>1|b<<16;Q(this,a);return a&65535}function ec(a,b){a=b&2048|b>>1|b<<8;Q(this,a<<8);return a&255}function fc(a,b){a=b&~a;O(this,a);return a}function gc(a,b){a=b&~a;O(this,a<<8);return a}function hc(a,b){a|=b;O(this,a);return a}function ic(a,b){a|=b;O(this,a<<8);return a}function jc(a,b){a=~b|65536;P(this,a);return a&65535}
function kc(a,b){a=~b|256;P(this,a<<8);return a&255}function lc(a,b){a=b-a;this.j&128||(this.m=this.i=a,this.g=b&(b^a));return a&65535}function mc(a,b){a=b-a;var c=a<<8;b<<=8;this.j&128||(this.m=this.i=c,this.g=b&(b^c));return a&255}function nc(a,b){a=b+a;this.j&128||(this.m=this.i=a,this.g=a&(b^a));return a&65535}function oc(a,b){a=b+a;var c=a<<8;this.j&128||(this.m=this.i=c,this.g=c&(b<<8^c));return a&255}function pc(a,b){a=-b;P(this,a,a&b&32768);return a&65535}
function qc(a,b){a=-b;P(this,a<<8,(a&b&128)<<8);return a&255}function rc(a,b){a=b<<1|this.l>>16&1;Q(this,a);return a&65535}function sc(a,b){a=b<<1|this.l>>16&1;Q(this,a<<8);return a&255}function tc(a,b){a=(this.l&65536|b)>>1|b<<16;Q(this,a);return a&65535}function uc(a,b){a=((this.l&65536)>>8|b)>>1|b<<8;Q(this,a<<8);return a&255}function vc(a,b){var c=b-a;Rb(this,c,a,b);return c&65535}function wc(a,b){var c=b-a;Rb(this,c<<8,a<<8,b<<8);return c&255}
function xc(a,b){this.j&128||(this.m=this.i=b&65280,this.g=this.l=0);return(b<<8|b>>8)&65535}function yc(a,b){a^=b;O(this,a);return a&65535}function zc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a];c&32768&&(c|=4294901760);this.l=this.g=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.l=c<<17-b,c>>=b):b&&(16<b?(this.g=c,c=0):(this.l=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.g=32768)));this.c[a]=c&65535;this.m=this.i=c;--this.a}
function Ac(a){var b=S(this,a);a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.l=this.g=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.l=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.l=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.g=32768)):d=c;this.c[a]=d>>16&65535;this.c[a|1]=d&65535;this.m=d>>16;this.i=d>>16|d;--this.a}function X(a){a&1&&(this.l=0);a&2&&(this.g=0);a&4&&(this.i=1);a&8&&(this.m=0);--this.a}
function Bc(a){var b=S(this,a);if(b){a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.l=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.c[a]=d&65535,this.c[a|1]=c-d*b&65535,this.i=d>>16|d,this.m=d>>16):(this.g=32768,this.i=d>>15|d,this.m=c>>16,-1===b&&65534===this.c[a]&&(this.c[a]=this.c[a|1]=1))}else this.i=this.m=0,this.g=32768,this.l=65536;--this.a}function Cc(a){a=R(this,a,8);this.c[7]=a&65535;--this.a}
function Dc(a){var b=R(this,a,8);a=a>>6&7;Sb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b&65535;--this.a}var Ec=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Fc(a){var b=S(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.c[a];c&32768&&(c|=-65536);b=~~(b*c);this.c[a]=b>>16&65535;this.c[a|1]=b&65535;this.j&128||(this.m=b>>16,this.i=this.m|b,this.g=0,this.l=-32768>b||32767<b?65536:0);--this.a}function Gc(){--this.a}
function Y(a){a&1&&(this.l=65536);a&2&&(this.g=32768);a&4&&(this.i=0);a&8&&(this.m=32768);--this.a}function Hc(a){var b=(a&448)>>6;if(this.c[b]=this.c[b]-1&65535)this.c[7]=this.c[7]-((a&63)<<1)&65535;--this.a}function Ic(a){U(this,a,0,xc);this.a-=this.f?9:3+(7==this.b?2:0)}function Jc(a){U(this,a,S(this,(a&448)>>6),yc);this.a-=this.f?9:3+(7==this.b?2:0)}function Z(){K(this,8)}function Nb(a){Kc[a>>12].call(this,a)}
var Kc=[function(a){Lc[a>>8&15].call(this,a)},function(a){O(this,Yb(this,a,S(this,a>>6)));this.a-=Ec[(this.G?8:0)+this.f]+(7!=this.b||this.f?0:2)},function(a){var b=S(this,a>>6);a=S(this,a);Rb(this,b-a,a,b);this.a-=this.f?4+(this.L&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){O(this,S(this,a>>6)&S(this,a));this.a-=this.f?4+(this.L&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){U(this,a,S(this,a>>6),fc);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},
function(a){U(this,a,S(this,a>>6),hc);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){U(this,a,S(this,a>>6),$b);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){Mc[a>>8&15].call(this,a)},function(a){Nc[a>>8&15].call(this,a)},function(a){var b=T(this,a>>6);O(this,Zb(this,a,b,1)<<8);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){var b=T(this,a>>6)<<8;a=T(this,a)<<8;Rb(this,b-a,a,b);this.a-=this.f?
4+(this.L&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){O(this,(T(this,a>>6)&T(this,a))<<8);this.a-=this.f?4+(this.L&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){V(this,a,T(this,a>>6),gc);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){V(this,a,T(this,a>>6),ic);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){U(this,a,S(this,a>>6),vc);this.a-=this.f?9+(this.L&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},
Z],Lc=[function(a){Oc[a>>4&15].call(this,a)},function(a){W(this,a);--this.a},function(a){this.i&65535&&W(this,a);--this.a},function(a){this.i&65535||W(this,a);--this.a},function(a){!this.va()==!(this.g&32768)&&W(this,a);--this.a},function(a){!this.va()!=!(this.g&32768)&&W(this,a);--this.a},function(a){this.i&65535&&!this.va()==!(this.g&32768)&&W(this,a);--this.a},function(a){this.i&65535&&!this.va()==!(this.g&32768)||W(this,a);--this.a},Dc,Dc,function(a){Pc[a>>6&3].call(this,a)},function(a){Qc[a>>
6&3].call(this,a)},function(a){Rc[a>>6&3].call(this,a)},function(a){Sc[a>>6&3].call(this,a)},Z,Z],Pc=[function(a){P(this,Yb(this,a,0));this.a-=this.f?9:3+(7==this.b?2:0)},function(a){U(this,a,0,jc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){U(this,a,1,nc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){U(this,a,1,lc);this.a-=this.f?9:3+(7==this.b?2:0)}],Qc=[function(a){U(this,a,0,pc);--this.a},function(a){U(this,a,N(this)?1:0,$b);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){U(this,a,N(this)?
1:0,vc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){a=S(this,a);P(this,a);--this.a}],Rc=[function(a){U(this,a,0,tc);--this.a},function(a){U(this,a,0,rc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){U(this,a,0,dc);--this.a},function(a){U(this,a,0,bc);this.a-=this.f?9:3+(7==this.b?2:0)}],Sc=[function(a){a=this.c[7]+((a&63)<<1)&65535;var b=this.ea(a|65536);this.c[7]=this.c[5]&65535;this.c[6]=a+2&65535;this.c[5]=b;--this.a},function(a){a=Wb(this,a,0);Sb(this,a);O(this,a);--this.a},function(a){var b=
Ub(this);Xb(this,a,0,b);O(this,b);--this.a},function(a){O(this,Yb(this,a,this.va?65535:0));this.a-=this.f?9:3+(7==this.b?2:0)}],Oc=[function(a){Tc[a&15].call(this,a)},Z,Z,Z,Cc,Cc,Cc,Cc,function(a){var b=Ub(this);a&=7;this.c[7]=this.c[a]&65535;this.c[a]=b;--this.a},function(a){this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.j|=1);--this.a},function(a){Uc[a&15].call(this,a)},function(a){Vc[a&15].call(this,a)},Ic,Ic,Ic,Ic],Uc=[Gc,function(){this.l=0;--this.a},function(){this.g=0;--this.a},X,function(){this.i=
1;--this.a},X,X,X,function(){this.m=0;--this.a},X,X,X,X,X,X,X],Vc=[Gc,function(){this.l=65536;--this.a},function(){this.g=32768;--this.a},Y,function(){this.i=0;--this.a},Y,Y,Y,function(){this.m=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],Tc=[function(){this.w&49152?(this.o|=128,K(this,4)):(this.T-=this.a,this.a=0);--this.a},function(){this.j|=4;this.c[7]=this.c[7]+-2&65535;--this.a},function(){Tb(this);this.j|=this.w&16;--this.a},function(){K(this,12);--this.a},function(){K(this,16);--this.a},function(){this.w&
49152||(Ob(this),this.C.reset());--this.a},function(){Tb(this);--this.a},Z,Z,Z,Z,Z,Z,Z,Z,Z],Mc=[Fc,Fc,Bc,Bc,zc,zc,Ac,Ac,Jc,Jc,Z,Z,Z,Z,Hc,Hc],Nc=[function(a){this.va()||W(this,a);--this.a},function(a){this.va()&&W(this,a);--this.a},function(a){!N(this)&&this.i&65535&&W(this,a);--this.a},function(a){!N(this)&&this.i&65535||W(this,a);--this.a},function(a){this.g&32768||W(this,a);--this.a},function(a){this.g&32768&&W(this,a);--this.a},function(a){N(this)||W(this,a);--this.a},function(a){N(this)&&W(this,
a);--this.a},function(){K(this,24);--this.a},function(){K(this,28);--this.a},function(a){Wc[a>>6&3].call(this,a)},function(a){Xc[a>>6&3].call(this,a)},function(a){Yc[a>>6&3].call(this,a)},function(a){Zc[a>>6&3].call(this,a)},Z,Z],Wc=[function(a){P(this,Zb(this,a,0));this.a-=this.f?9:3+(7==this.b?2:0)},function(a){V(this,a,0,kc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){V(this,a,1,oc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){V(this,a,1,mc);this.a-=this.f?9:3+(7==this.b?2:0)}],Xc=[function(a){V(this,
a,0,qc);--this.a},function(a){V(this,a,N(this)?1:0,ac);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){V(this,a,N(this)?1:0,wc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){a=T(this,a);P(this,a<<8);--this.a}],Yc=[function(a){V(this,a,0,uc);--this.a},function(a){V(this,a,0,sc);this.a-=this.f?9:3+(7==this.b?2:0)},function(a){V(this,a,0,ec);--this.a},function(a){V(this,a,0,cc);this.a-=this.f?9:3+(7==this.b?2:0)}],Zc=[Z,function(a){a=Wb(this,a,65536);Sb(this,a);O(this,a);--this.a},function(a){var b=
Ub(this);Xb(this,a,65536,b);O(this,b);--this.a},Z];function $c(a){v.call(this,"ROM",a,$c);this.b=null;this.m=a.addr;this.f=a.size;this.s=a.writable;this.g=a.alias;this.i=a.file;this.v=ca(this.i);if(this.i){a=this.i;var b=da(this.v);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){ad(c,a,b,e)})}}y($c);$c.prototype.Ma=function(a,b,c,d){this.C=b;this.a=c;this.K=d;bd(this)};
$c.prototype.za=function(){this.l&&(this.K&&this.K.a(this.id,this.m,this.f,this.l),delete this.l);return!0};$c.prototype.ya=function(){return!0};
function ad(a,b,c,d){if(d)a.N("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Pb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.l=h.symbols;if(!a.b.length){r("Empty ROM: "+b);
return}if(1==a.b.length){r(a.b[0]);return}}catch(k){a.N("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);bd(a)}}
function bd(a){if(!Ga(a))if(!a.i)E(a);else if(a.b&&a.C){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.N(b)}else{b=a.m;if(Pa(a.C,b,a.f,a.s?1:qb)){var c;for(c=0;c<a.b.length;c++){var d=a.C,f=b+c;d.b[(f&d.l)>>>d.f].$b(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.C,g=e.f,h=[],k=e.m>>>f.f;0<g&&
k<f.b.length;)h.push(f.b[k++]),g-=f.g;f=e.C;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}E(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $c(d);B(d,c)}});function cd(a){v.call(this,"RAM",a,cd);this.g=a.addr;this.f=a.size;this.b=!1}y(cd);l=cd.prototype;l.Ma=function(a,b,c,d){this.C=b;this.a=c;this.K=d;E(this)};l.za=function(a,b){b||this.reset();return!0};l.ya=function(a){return a?this.save():!0};
l.reset=function(){!this.b&&this.f&&Pa(this.C,this.g,this.f,1)&&(this.b=!0);this.b||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new cd(d);B(d,c)}});function dd(a){v.call(this,"Keyboard",a,dd);E(this)}y(dd);dd.prototype.da=function(){return!1};dd.prototype.Ma=function(a,b,c,d){this.F=a;this.a=c;this.K=d;this.Ea=null};
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new dd(d);B(d,c)}});
function ed(a,b,c){v.call(this,"Computer",a,ed);this.h.O=!1;fd(this,b);this.G=Bb(this,"autoPower",a);this.g=0;this.Z=a.busWidth||a.buswidth;this.b=gd;this.v=null;this.m=this.S=!1;this.url=Bb(this,"url")||"";(Math.random()+.1).toString(36);this.f=hd(this);if(this.a=Fa("CPU",this.id)){this.K=Fa("Debugger",this.id);this.C=new F({id:this.Pb+".bus",busWidth:this.Z},this.a,this.K);var d,f=z(this.id);if((this.i=Fa("Panel",this.id))&&this.i.Cb)for(b=0;b<f.length;b++)d=f[b],d.N=this.i.N,d.M=this.i.M,d.Cb=
this.i.Cb;this.M("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.M("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ma&&d.Ma(this,this.C,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.s=d:this.b=parseInt(d,10));var e;if(a=Bb(this,"state")||(e=!0,a.state))b=this.H=a,e||(this.m=!0,this.b=gd),this.b&&(this.F=
new M(this,"1.30.0"),id(this.F)?b=null:delete this.F);!b&&this.b&&(b=jd(this))&&(this.m=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.s=null,g.m=!1,g.N("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.v=b,g.S=!0);E(g)})}else E(this);this.B.power||(this.G=!0);!c&&this.G&&kd(this,this.ab)}else r("Unable to find CPU component")}y(ed);var gd=0;
function fd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.T=b}function Bb(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function kd(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){kd(a,b,c)});return}}b.call(a,c)}
function ld(a,b){var c=new M(a,"1.30.0","validate");if(id(c)&&md(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.N("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=ed.prototype;
l.ab=function(a){void 0===a&&(a=this.b||(this.v?1:gd));if(!this.g){this.g++;var b=!1,c=!1;this.L=!1;var d=this.F||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>gd){if(id(d,this.v)){this.l=new M(this,"1.30.0","failsafe");id(this.l)&&(nd(this,d),a=2,od(this.l));this.l.set("timestamp",ja());pd(this.l);var f=this.b&&!this.m;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=md(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?id(d,g):("error"==
e&&"no machine state"!=g?(this.N("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.f=null)):this.M(e+": "+g),od(d),id(d)?(c=md(d),f=!0):c=!1))}f&&ld(this,c?d:null)}else 2==a&&d.clear()}else ld(this);delete this.v;delete this.F}f=z(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=qd(this,g,d,b,c));b=[d,a,c];-1!=a?kd(this,this.Nb,b):this.Nb(b)}};
function qd(a,b,c,d,f){if(!b.h.O){b.h.O=!0;if(b.za){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.za(e,d)&&e&&(r("Unable to restore state for "+b.type),a.H&&!a.S?(c.clear(),a.b=gd,window&&window.location.reload()):a.L=!0,b.za(null),f=!1)}if(!d&&b.Ob)for(a=b.Ob.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.$=!0;this.h.O=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.a&&(qd(this,this.a,b,c,a),this.a.Ya());this.L&&(nd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.g=0};
function nd(a,b){if(ka("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function rd(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=ja();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ya&&(c&&Hb(a.a),d=a.a.ya(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.h.O=!1,!1===d&&(f=null)));for(var h=z(a.id),k=0;k<h.length;k++){var m=h[k];m.h.O&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.h.O=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&sd(a,a.f,e.toString()),pd(g)&&pd(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.h.O=!1,b=a.B.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.C&&this.C.reset&&this.C.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.C&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
function xc(a,b){this.j&128||(this.m=this.i=b&65280,this.g=this.l=0);return(b<<8|b>>8)&65535}function yc(a,b){a^=b;O(this,a);return a&65535}function zc(a){var b=S(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.l=this.g=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.l=c<<17-b,c>>=b;else if(b)if(16<b)this.g=c,c=0;else{this.l=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.m=this.i=c;this.a-=(this.c?6:7)+b}
function Ac(a){var b=S(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.l=this.g=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.l=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.l=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.g=32768)):d=c;this.f[a]=d>>16&65535;this.f[a|1]=d&65535;this.m=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function X(a){a&1&&(this.l=0);a&2&&(this.g=0);a&4&&(this.i=1);a&8&&(this.m=0);this.a-=5}
function Bc(a){var b=S(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.l=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.i=d>>16|d,this.m=d>>16):(this.g=32768,this.i=d>>15|d,this.m=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.i=this.m=0,this.g=32768,this.l=65536,this.a-=7}var Cc=[0,7,7,10,7,11,9,13];function Dc(a){var b=this.a;a=R(this,a,8);this.f[7]=a&65535;this.a=b-Cc[this.c]}
var Ec=[0,14,14,17,14,18,16,20];function Fc(a){var b=this.a,c=R(this,a,8);a=a>>6&7;Sb(this,this.f[a]);this.f[a]=this.f[7];this.f[7]=c&65535;this.a=b-Ec[this.c]}var Gc=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17],Hc=[7,13,13,17,14,18,17,21];function Ic(a){var b=S(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.j&128||(this.m=b>>16,this.i=this.m|b,this.g=0,this.l=-32768>b||32767<b?65536:0);this.a-=23}
function Jc(){this.a-=5}function Y(a){a&1&&(this.l=65536);a&2&&(this.g=32768);a&4&&(this.i=0);a&8&&(this.m=32768);this.a-=5}function Kc(a){var b=(a&448)>>6;if(this.f[b]=this.f[b]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535,this.a+=1;this.a-=6}function Lc(a){U(this,a,0,xc);this.a-=this.c?9:3+(7==this.b?2:0)}function Mc(a){U(this,a,S(this,(a&448)>>6),yc);this.a-=this.c?9:3+(7==this.b?2:0)}function Z(){K(this,8)}function Nb(a){Nc[a>>12].call(this,a)}
var Nc=[function(a){Oc[a>>8&15].call(this,a)},function(a){var b=this.a;O(this,Yb(this,a,S(this,a>>6)));this.a=b-Gc[(this.G?8:0)+this.c]+(7!=this.b||this.c?0:2)},function(a){var b=S(this,a>>6);a=S(this,a);Rb(this,b-a,a,b);this.a-=this.c?4+(this.I&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){O(this,S(this,a>>6)&S(this,a));this.a-=this.c?4+(this.I&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){U(this,a,S(this,a>>6),fc);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==
this.b?2:0)},function(a){U(this,a,S(this,a>>6),hc);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){U(this,a,S(this,a>>6),$b);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){Pc[a>>8&15].call(this,a)},function(a){Qc[a>>8&15].call(this,a)},function(a){var b=T(this,a>>6);O(this,Zb(this,a,b,1)<<8);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){var b=T(this,a>>6)<<8;a=T(this,a)<<8;Rb(this,b-a,a,b);
this.a-=this.c?4+(this.I&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){O(this,(T(this,a>>6)&T(this,a))<<8);this.a-=this.c?4+(this.I&&6<=this.b?1:0):(this.G?4:3)+(7==this.b?2:0)},function(a){V(this,a,T(this,a>>6),gc);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){V(this,a,T(this,a>>6),ic);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==this.b?2:0)},function(a){U(this,a,S(this,a>>6),vc);this.a-=this.c?9+(this.I&&6<=this.b?1:0):(this.G?5:3)+(7==
this.b?2:0)},Z],Oc=[function(a){Rc[a>>4&15].call(this,a)},function(a){W(this,a,!0)},function(a){W(this,a,!!(this.i&65535))},function(a){W(this,a,this.i&65535?0:4)},function(a){W(this,a,!this.va()==!(this.g&32768))},function(a){W(this,a,!this.va()!=!(this.g&32768))},function(a){W(this,a,!!(this.i&65535)&&!this.va()==!(this.g&32768))},function(a){W(this,a,(this.i&65535?0:4)||!this.va()!=!(this.g&32768))},Fc,Fc,function(a){Sc[a>>6&3].call(this,a)},function(a){Tc[a>>6&3].call(this,a)},function(a){Uc[a>>
6&3].call(this,a)},function(a){Vc[a>>6&3].call(this,a)},Z,Z],Sc=[function(a){P(this,Yb(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,jc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,nc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,lc);this.a-=this.c?9:3+(7==this.b?2:0)}],Tc=[function(a){U(this,a,0,pc);this.a-=this.c?11:6},function(a){U(this,a,N(this)?1:0,$b);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,N(this)?1:0,vc);this.a-=this.c?
9:3+(7==this.b?2:0)},function(a){a=S(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Uc=[function(a){U(this,a,0,tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,dc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,bc);this.a-=this.c?9:3+(7==this.b?2:0)}],Vc=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.ea(a|65536);this.f[7]=this.f[5]&65535;this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=
Wb(this,a,0);Sb(this,a);O(this,a);this.a-=11},function(a){var b=Ub(this),c=this.a;Xb(this,a,0,b);O(this,b);this.a=c-Hc[this.c]},function(a){O(this,Yb(this,a,this.va?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],Rc=[function(a){Wc[a&15].call(this,a)},Z,Z,Z,Dc,Dc,Dc,Dc,function(a){if(a&8)K(this,8);else{var b=Ub(this);a&=7;this.f[7]=this.f[a]&65535;this.f[a]=b;this.a-=9}},function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.j|=1),this.a-=5):K(this,8)},function(a){Xc[a&15].call(this,a)},
function(a){Yc[a&15].call(this,a)},Lc,Lc,Lc,Lc],Wc=[function(){this.w&49152?(this.o|=128,K(this,4)):(this.T-=this.a,this.a=0);this.a-=7},function(){this.j|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3},function(){Tb(this);this.j|=this.w&16;this.a-=13},function(){K(this,12);this.a-=5},function(){K(this,16);this.a-=25},function(){this.w&49152||(Ob(this),this.C.reset());this.a-=667},function(){Tb(this);this.a-=13},Z,Z,Z,Z,Z,Z,Z,Z,Z],Xc=[Jc,function(){this.l=0;this.a-=5},function(){this.g=0;this.a-=5},X,
function(){this.i=1;this.a-=5},X,X,X,function(){this.m=0;this.a-=5},X,X,X,X,X,X,X],Yc=[Jc,function(){this.l=65536;this.a-=5},function(){this.g=32768;this.a-=5},Y,function(){this.i=0;this.a-=5},Y,Y,Y,function(){this.m=32768;this.a-=5},Y,Y,Y,Y,Y,Y,Y],Pc=[Ic,Ic,Bc,Bc,zc,zc,Ac,Ac,Mc,Mc,Z,Z,Z,Z,Kc,Kc],Qc=[function(a){W(this,a,!this.va())},function(a){W(this,a,this.va())},function(a){W(this,a,!N(this)&&!!(this.i&65535))},function(a){W(this,a,N(this)||(this.i&65535?0:4))},function(a){W(this,a,!(this.g&32768))},
function(a){W(this,a,this.g&32768?2:0)},function(a){W(this,a,!N(this))},function(a){W(this,a,N(this))},function(){K(this,24);this.a-=25},function(){K(this,28);this.a-=5},function(a){Zc[a>>6&3].call(this,a)},function(a){$c[a>>6&3].call(this,a)},function(a){ad[a>>6&3].call(this,a)},function(a){bd[a>>6&3].call(this,a)},Z,Z],Zc=[function(a){P(this,Zb(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){V(this,a,0,kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){V(this,a,1,oc);this.a-=this.c?
9:3+(7==this.b?2:0)},function(a){V(this,a,1,mc);this.a-=this.c?9:3+(7==this.b?2:0)}],$c=[function(a){V(this,a,0,qc);this.a-=this.c?11:6},function(a){V(this,a,N(this)?1:0,ac);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){V(this,a,N(this)?1:0,wc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=T(this,a);P(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ad=[function(a){V(this,a,0,uc);this.a-=this.c?9+(this.yb&1):3+(7==this.b?2:0)},function(a){V(this,a,0,sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){V(this,
a,0,ec);this.a-=this.c?9+(this.yb&1):3+(7==this.b?2:0)},function(a){V(this,a,0,cc);this.a-=this.c?9:3+(7==this.b?2:0)}],bd=[Z,function(a){a=Wb(this,a,65536);Sb(this,a);O(this,a);this.a-=11},function(a){var b=Ub(this),c=this.a;Xb(this,a,65536,b);O(this,b);this.a=c-Hc[this.c]},Z];
function cd(a){v.call(this,"ROM",a,cd);this.b=null;this.m=a.addr;this.c=a.size;this.s=a.writable;this.g=a.alias;this.i=a.file;this.v=ca(this.i);if(this.i){a=this.i;var b=da(this.v);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){dd(c,a,b,e)})}}y(cd);cd.prototype.Ma=function(a,b,c,d){this.C=b;this.a=c;this.L=d;ed(this)};cd.prototype.za=function(){this.l&&(this.L&&this.L.a(this.id,this.m,this.c,this.l),delete this.l);return!0};
cd.prototype.ya=function(){return!0};
function dd(a,b,c,d){if(d)a.N("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Qb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.l=h.symbols;if(!a.b.length){r("Empty ROM: "+b);
return}if(1==a.b.length){r(a.b[0]);return}}catch(k){a.N("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);ed(a)}}
function ed(a){if(!Ga(a))if(!a.i)E(a);else if(a.b&&a.C){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.c,8,!0)+")";a.h.error=!0;a.N(b)}else{b=a.m;if(Pa(a.C,b,a.c,a.s?1:qb)){var c;for(c=0;c<a.b.length;c++){var d=a.C,f=b+c;d.b[(f&d.l)>>>d.c].ac(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.C,g=e.c,h=[],k=e.m>>>f.c;0<g&&
k<f.b.length;)h.push(f.b[k++]),g-=f.g;f=e.C;e=e.c;g=0;for(d>>>=f.c;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}E(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new cd(d);B(d,c)}});function fd(a){v.call(this,"RAM",a,fd);this.g=a.addr;this.c=a.size;this.b=!1}y(fd);l=fd.prototype;l.Ma=function(a,b,c,d){this.C=b;this.a=c;this.L=d;E(this)};l.za=function(a,b){b||this.reset();return!0};l.ya=function(a){return a?this.save():!0};
l.reset=function(){!this.b&&this.c&&Pa(this.C,this.g,this.c,1)&&(this.b=!0);this.b||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new fd(d);B(d,c)}});function gd(a){v.call(this,"Keyboard",a,gd);E(this)}y(gd);gd.prototype.da=function(){return!1};gd.prototype.Ma=function(a,b,c,d){this.F=a;this.a=c;this.L=d;this.Ea=null};
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new gd(d);B(d,c)}});
function hd(a,b,c){v.call(this,"Computer",a,hd);this.h.O=!1;id(this,b);this.G=Bb(this,"autoPower",a);this.g=0;this.Z=a.busWidth||a.buswidth;this.b=jd;this.v=null;this.m=this.S=!1;this.url=Bb(this,"url")||"";(Math.random()+.1).toString(36);this.c=kd(this);if(this.a=Fa("CPU",this.id)){this.L=Fa("Debugger",this.id);this.C=new F({id:this.Qb+".bus",busWidth:this.Z},this.a,this.L);var d,f=z(this.id);if((this.i=Fa("Panel",this.id))&&this.i.Db)for(b=0;b<f.length;b++)d=f[b],d.N=this.i.N,d.M=this.i.M,d.Db=
this.i.Db;this.M("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.M("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ma&&d.Ma(this,this.C,this.a,this.L);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.s=d:this.b=parseInt(d,10));var e;if(a=Bb(this,"state")||(e=!0,a.state))b=this.H=a,e||(this.m=!0,this.b=jd),this.b&&(this.F=
new M(this,"1.30.0"),ld(this.F)?b=null:delete this.F);!b&&this.b&&(b=md(this))&&(this.m=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.s=null,g.m=!1,g.N("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.v=b,g.S=!0);E(g)})}else E(this);this.B.power||(this.G=!0);!c&&this.G&&nd(this,this.ab)}else r("Unable to find CPU component")}y(hd);var jd=0;
function id(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.T=b}function Bb(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function nd(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){nd(a,b,c)});return}}b.call(a,c)}
function od(a,b){var c=new M(a,"1.30.0","validate");if(ld(c)&&pd(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.N("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=hd.prototype;
l.ab=function(a){void 0===a&&(a=this.b||(this.v?1:jd));if(!this.g){this.g++;var b=!1,c=!1;this.I=!1;var d=this.F||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>jd){if(ld(d,this.v)){this.l=new M(this,"1.30.0","failsafe");ld(this.l)&&(qd(this,d),a=2,rd(this.l));this.l.set("timestamp",ja());sd(this.l);var f=this.b&&!this.m;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=pd(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?ld(d,g):("error"==
e&&"no machine state"!=g?(this.N("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.c=null)):this.M(e+": "+g),rd(d),ld(d)?(c=pd(d),f=!0):c=!1))}f&&od(this,c?d:null)}else 2==a&&d.clear()}else od(this);delete this.v;delete this.F}f=z(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=td(this,g,d,b,c));b=[d,a,c];-1!=a?nd(this,this.Nb,b):this.Nb(b)}};
function td(a,b,c,d,f){if(!b.h.O){b.h.O=!0;if(b.za){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.za(e,d)&&e&&(r("Unable to restore state for "+b.type),a.H&&!a.S?(c.clear(),a.b=jd,window&&window.location.reload()):a.I=!0,b.za(null),f=!1)}if(!d&&b.Pb)for(a=b.Pb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.$=!0;this.h.O=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.a&&(td(this,this.a,b,c,a),this.a.Ya());this.I&&(qd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.g=0};
function qd(a,b){if(ka("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function ud(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=ja();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ya&&(c&&Hb(a.a),d=a.a.ya(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.h.O=!1,!1===d&&(f=null)));for(var h=z(a.id),k=0;k<h.length;k++){var m=h[k];m.h.O&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.h.O=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.c&&vd(a,a.c,e.toString()),sd(g)&&sd(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.h.O=!1,b=a.B.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.C&&this.C.reset&&this.C.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.C&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
l.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.g||(d.h.O?rd(d,!1,!0):kd(d,d.ab))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.O&&!d.g)if(d.b&&!d.s){var a=ka("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");rd(d,a,!0);!a&&d.H?window&&window.location.reload():d.ab(gd)}else d.reset(),d.a&&d.a.Ya()},!0;case "save":if(ea())c.parentNode.removeChild(c);else return this.B[b]=
c,c.onclick=function(){var a=hd(d,!0);if(a){var b=!!(d.b&&!d.s||d.H),c=rd(d,b);b?sd(d,a,c):d.N("Resume disabled, machine state not saved")}},!0}return!1};
function hd(a,b){var c=a.f;c||((c=na("user"),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=td(a,c))||a.N("The user ID is invalid.")):b&&a.N("Browser local storage is not available"));return c}
function td(a,b){a.f=null;b=p(fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(oa("user",b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function jd(a){var b=null;a.f&&(b=fa()+"/api/v1/user?req=load&user="+a.f+"&state="+ud(a,"1.30.0"));return b}
function sd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ud(a,"1.30.0");d.data=c;b=p(fa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.N("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.N(c),oa("user",""),a.f=null)}}
l.Ua=function(a){this.a&&this.a.Ua(a);this.i&&this.i.Ua(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=A(e),g=new ed(g,d,!0);B(g,e);g.G&&kd(g,g.ab)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Fa("Computer",c.id))&&c.$&&!c.h.O&&c.ab(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Fa("Computer",c.id))&&c.h.O&&rd(c,!(!c.b||c.s),!0)}});function M(a,b,c){this.id=a.id;this.key=ud(a,b,c);this.K=a.K;od(this,a.hc)}function ud(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}
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},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(f){}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(f){}b.splice(c,
1);c=0}}};function od(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function pd(a){var b=!0;if(ma()){var c=JSON.stringify(a[a.id]);oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function md(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function id(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ma()&&(b=na(a.key))?(a[a.id]=b,a.a=!0):!1}var vd=0;
function wd(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):xd(h,a,b,c,d,f,e)})}
function xd(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Ea(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){e=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?yd(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function yd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(e);)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 "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);yd(a,b,c)}})}else c(a,null)}
function zd(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ha(a))}function e(a){f("Error: "+a);k&&(--vd||va(!0));k=!1}var g,h,k=!0;vd++;Da[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));q.appendChild(w)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?wd(c,null,null,!1,f,function(d,k){k?(Ea(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--vd||va(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--vd||va(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?wd(b,a,d,!0,f,m):xd(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(D){e(D.message)}return k}window.embedPDP11=function(a,b,c,d){va(!1);return zd(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa;})();
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.g||(d.h.O?ud(d,!1,!0):nd(d,d.ab))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.O&&!d.g)if(d.b&&!d.s){var a=ka("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ud(d,a,!0);!a&&d.H?window&&window.location.reload():d.ab(jd)}else d.reset(),d.a&&d.a.Ya()},!0;case "save":if(ea())c.parentNode.removeChild(c);else return this.B[b]=
c,c.onclick=function(){var a=kd(d,!0);if(a){var b=!!(d.b&&!d.s||d.H),c=ud(d,b);b?vd(d,a,c):d.N("Resume disabled, machine state not saved")}},!0}return!1};
function kd(a,b){var c=a.c;c||((c=na("user"),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=wd(a,c))||a.N("The user ID is invalid.")):b&&a.N("Browser local storage is not available"));return c}
function wd(a,b){a.c=null;b=p(fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(oa("user",b.data),a.c=b.data)}catch(d){r(d.message+" ("+c+")")}return a.c}function md(a){var b=null;a.c&&(b=fa()+"/api/v1/user?req=load&user="+a.c+"&state="+xd(a,"1.30.0"));return b}
function vd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=xd(a,"1.30.0");d.data=c;b=p(fa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.N("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.N(c),oa("user",""),a.c=null)}}
l.Ua=function(a){this.a&&this.a.Ua(a);this.i&&this.i.Ua(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=A(e),g=new hd(g,d,!0);B(g,e);g.G&&nd(g,g.ab)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Fa("Computer",c.id))&&c.$&&!c.h.O&&c.ab(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Fa("Computer",c.id))&&c.h.O&&ud(c,!(!c.b||c.s),!0)}});function M(a,b,c){this.id=a.id;this.key=xd(a,b,c);this.L=a.L;rd(this,a.ic)}function xd(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}
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){rd(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,
1);c=0}}};function rd(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function sd(a){var b=!0;if(ma()){var c=JSON.stringify(a[a.id]);oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function pd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function ld(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ma()&&(b=na(a.key))?(a[a.id]=b,a.a=!0):!1}var yd=0;
function zd(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Ad(h,a,b,c,d,f,e)})}
function Ad(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Ea(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){e=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Bd(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Bd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(e);)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 "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Bd(a,b,c)}})}else c(a,null)}
function Cd(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ha(a))}function e(a){f("Error: "+a);k&&(--yd||va(!0));k=!1}var g,h,k=!0;yd++;Da[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));q.appendChild(w)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?zd(c,null,null,!1,f,function(d,k){k?(Ea(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--yd||va(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--yd||va(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?zd(b,a,d,!0,f,m):Ad(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(D){e(D.message)}return k}window.embedPDP11=function(a,b,c,d){va(!1);return Cd(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa;})();