From 2a065f4efce2ec0a1e967b1c20cd84740144069a Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 3 Oct 2016 14:27:14 -0700 Subject: [PATCH] First stab at PDP-11 cycle times (11/70 to be precise) is more or less complete now --- modules/pdp11/lib/cpuops.js | 264 +++++++++++--------- modules/pdp11/lib/cpustate.js | 59 +++-- modules/pdp11/lib/defines.js | 2 +- modules/shared/lib/component.js | 4 +- versions/pdp11/1.30.0/pdp11-dbg.js | 378 ++++++++++++++--------------- versions/pdp11/1.30.0/pdp11.js | 229 ++++++++--------- 6 files changed, 491 insertions(+), 445 deletions(-) diff --git a/modules/pdp11/lib/cpuops.js b/modules/pdp11/lib/cpuops.js index d2fb4d3bf..28b1f986f 100644 --- a/modules/pdp11/lib/cpuops.js +++ b/modules/pdp11/lib/cpuops.js @@ -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 diff --git a/modules/pdp11/lib/cpustate.js b/modules/pdp11/lib/cpustate.js index 669f33609..358873c16 100644 --- a/modules/pdp11/lib/cpustate.js +++ b/modules/pdp11/lib/cpustate.js @@ -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); }; /** diff --git a/modules/pdp11/lib/defines.js b/modules/pdp11/lib/defines.js index 7934b8bb5..3dcdb93ba 100644 --- a/modules/pdp11/lib/defines.js +++ b/modules/pdp11/lib/defines.js @@ -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 diff --git a/modules/shared/lib/component.js b/modules/shared/lib/component.js index 8c24accf3..ffc0c982b 100644 --- a/modules/shared/lib/component.js +++ b/modules/shared/lib/component.js @@ -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 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. */ /* diff --git a/versions/pdp11/1.30.0/pdp11-dbg.js b/versions/pdp11/1.30.0/pdp11-dbg.js index 783d428ca..98042758f 100644 --- a/versions/pdp11/1.30.0/pdp11-dbg.js +++ b/versions/pdp11/1.30.0/pdp11-dbg.js @@ -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));0b?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>1)+2;10>this.Z&&(this.Z=10);15>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>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;0g&&(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>1)+2;10>this.Z&&(this.Z=10);15>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>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;0g&&(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>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<=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.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+2048g){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,0b?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<=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.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+2048g){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,0b?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>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>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>2),b=0;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<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>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=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;ca.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&&ba.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>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<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>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=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;ca.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&&ba.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.bac&&(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;cb){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>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(0d&&(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.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.bac&&(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;cb){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>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(0d&&(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>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>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-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>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>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>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;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>>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>>f.Z;0>>=f.Z;0=":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<>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e":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;else if(b)if(16>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-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>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>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>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;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>>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>>f.Z;0>>=f.Z;0=":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<>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e":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>=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=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f>=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>>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;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<>>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;cd&&(d+=b.length);0>d&&(d=0);for(var f=b.length;db||7a?"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>>d.Z],!1)}a.W=["br"];if(a.D)for(b=1;b>>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>>d.Z],b==a.D));h.Ja||mf(a);break}}return e} -function Ef(a,b){for(var c=1;c>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]);0b?(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]>>0;for(b=0;b>>0,h=e.Vc;if(f>=g&&fb)){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.wh[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)&&0m||"z"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=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>4||1;jg--&&0Ub?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;WbTc;){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\nLicense: GPL version 3 or later ");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bTf){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;ea[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>>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;cd&&(d+=b.length);0>d&&(d=0);for(var f=b.length;db||7a?"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>>d.Z],!1)}a.W=["br"];if(a.D)for(b=1;b>>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>>d.Z],b==a.D));h.Ja||pf(a);break}}return e} +function Hf(a,b){for(var c=1;c>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]);0b?(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]>>0;for(b=0;b>>0,h=e.Wc;if(f>=g&&fb)){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.wh[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)&&0m||"z"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=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>4||1;mg--&&0Ub?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;WbTc;){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\nLicense: GPL version 3 or later ");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bWf){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;ea[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;ke.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDP11js$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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/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");0e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDP11js$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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/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;})(); diff --git a/versions/pdp11/1.30.0/pdp11.js b/versions/pdp11/1.30.0/pdp11.js index 7638182ec..d02390095 100644 --- a/versions/pdp11/1.30.0/pdp11.js +++ b/versions/pdp11/1.30.0/pdp11.js @@ -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;bb?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>1)+2;10>this.f&&(this.f=10);15>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>1)+2;10>this.c&&(this.c=10);15>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>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;0g&&(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>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;0g&&(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>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<=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.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+2048g){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,0b?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<=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.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+2048g){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,0b?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>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>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>2),b=0;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<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>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>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<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>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;ba.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&&ba.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.gad&&(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&&1a.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&&ba.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.gad&&(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;cb){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;ab){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>>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>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(0b&&(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(0e||4194239>>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>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(0b&&(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>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>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-1;this.l=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>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>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>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;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>>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>>f.f;0>>=f.f;0\nLicense: GPL version 3 or later ");this.M("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bgd){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;ea[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>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;else if(b)if(16>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-1;this.l=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>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>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>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;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>>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>>f.c;0>>=f.c;0\nLicense: GPL version 3 or later ");this.M("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bjd){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;ea[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;ke.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDP11js$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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/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");0e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDP11js$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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/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;})();