From 44a2ec9f03ff4c200f9f34f1e5c48d03d9833ace Mon Sep 17 00:00:00 2001 From: Jeff Date: Thu, 29 Sep 2016 09:11:25 -0700 Subject: [PATCH] Fixed Debugger memory editing and register handling, tidied up some flag operations, and removed more now-unnecessary address checks in cpustate --- modules/pdp11/lib/cpuops.js | 149 +++++------ modules/pdp11/lib/cpustate.js | 129 +++++----- modules/pdp11/lib/debugger.js | 142 ++++++++--- modules/pdp11/lib/defines.js | 3 +- modules/shared/lib/debugger.js | 4 +- versions/c1pjs/1.30.0/c1p-dbg.js | 58 ++--- versions/c1pjs/1.30.0/c1p.js | 36 +-- versions/pdp11/1.30.0/pdp11-dbg.js | 396 +++++++++++++++-------------- versions/pdp11/1.30.0/pdp11.js | 192 +++++++------- 9 files changed, 583 insertions(+), 526 deletions(-) diff --git a/modules/pdp11/lib/cpuops.js b/modules/pdp11/lib/cpuops.js index 597f0cc88..d9f030947 100644 --- a/modules/pdp11/lib/cpuops.js +++ b/modules/pdp11/lib/cpuops.js @@ -39,18 +39,19 @@ if (NODE) { /* * Decoding starts at the bottom of this file, in op1170(). The basic decoding approach is to - * dispatch on the top 4 bits of the opcode, and if further decoding is required, then dispatch on - * the next 4 bits, and so on (although some of the intermediate levels dispatch only on 2 bits). + * dispatch on the top 4 bits of the opcode, and if further decoding is required, the dispatched + * function will dispatch on the next 4 bits, and so on (although some of the intermediate levels + * dispatch only on 2 bits, which could also handled with a switch statement). * * Eventually, every opcode should end up either in an opXXX() function or opUndefined(). For - * opcodes that perform a simple read and/or write operation, the entire functionality is handled - * by the opXXX() function. For opcodes that perform a more extensive read/modify/write operation + * opcodes that perform a simple read and/or write operation, the entire operation is handled by + * the opXXX() function. For opcodes that perform a more extensive read/modify/write operation * (also known as an update operation), those opXXX() functions usually rely on a corresponding * 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 handled by the helper function. + * is performed internally via the helper function. */ /** @@ -94,7 +95,7 @@ PDP11.fnADDB = function(src, dst) PDP11.fnASL = function(src, dst) { var result = dst << 1; - this.updateLogFlags(result); + this.updateShiftFlags(result); return result & 0xffff; }; @@ -109,7 +110,7 @@ PDP11.fnASL = function(src, dst) PDP11.fnASLB = function(src, dst) { var result = dst << 1; - this.updateLogFlags(result << 8); + this.updateShiftFlags(result << 8); return result & 0xff; }; @@ -124,7 +125,7 @@ PDP11.fnASLB = function(src, dst) PDP11.fnASR = function(src, dst) { var result = (dst & 0x8000) | (dst >> 1) | (dst << 16); - this.updateLogFlags(result); + this.updateShiftFlags(result); return result & 0xffff; }; @@ -139,7 +140,7 @@ PDP11.fnASR = function(src, dst) PDP11.fnASRB = function(src, dst) { var result = (dst & 0x800) | (dst >> 1) | (dst << 8); - this.updateLogFlags(result << 8); + this.updateShiftFlags(result << 8); return result & 0xff; }; @@ -214,7 +215,7 @@ PDP11.fnBISB = function(src, dst) PDP11.fnCOM = function(src, dst) { var result = ~dst | 0x10000; - this.updateNZCFlags(result); + this.updateAllFlags(result); return result & 0xffff; }; @@ -229,7 +230,7 @@ PDP11.fnCOM = function(src, dst) PDP11.fnCOMB = function(src, dst) { var result = ~dst | 0x100; - this.updateNZCFlags(result << 8); + this.updateAllFlags(result << 8); return result & 0xff; }; @@ -307,7 +308,7 @@ PDP11.fnNEG = function(src, dst) /* * If the sign bit of both dst and result are set, the original value must have been 0x8000, triggering overflow. */ - this.updateNZCFlags(result, result & dst & 0x8000); + this.updateAllFlags(result, result & dst & 0x8000); return result & 0xffff; }; @@ -325,7 +326,7 @@ PDP11.fnNEGB = function(src, dst) /* * If the sign bit of both dst and result are set, the original value must have been 0x80, which triggers overflow. */ - this.updateNZCFlags(result << 8, (result & dst & 0x80) << 8); + this.updateAllFlags(result << 8, (result & dst & 0x80) << 8); return result & 0xff; }; @@ -340,7 +341,7 @@ PDP11.fnNEGB = function(src, dst) PDP11.fnROL = function(src, dst) { var result = (dst << 1) | ((this.flagC >> 16) & 1); - this.updateLogFlags(result); + this.updateShiftFlags(result); return result & 0xffff; }; @@ -355,7 +356,7 @@ PDP11.fnROL = function(src, dst) PDP11.fnROLB = function(src, dst) { var result = (dst << 1) | ((this.flagC >> 16) & 1); - this.updateLogFlags(result << 8); + this.updateShiftFlags(result << 8); return result & 0xff; }; @@ -370,7 +371,7 @@ PDP11.fnROLB = function(src, dst) PDP11.fnROR = function(src, dst) { var result = (((this.flagC & 0x10000) | dst) >> 1) | (dst << 16); - this.updateLogFlags(result); + this.updateShiftFlags(result); return result & 0xffff; }; @@ -385,7 +386,7 @@ PDP11.fnROR = function(src, dst) PDP11.fnRORB = function(src, dst) { var result = ((((this.flagC & 0x10000) >> 8) | dst) >> 1) | (dst << 8); - this.updateLogFlags(result << 8); + this.updateShiftFlags(result << 8); return result & 0xff; }; @@ -867,7 +868,7 @@ PDP11.opBVS = function(opCode) */ PDP11.opCLR = function(opCode) { - this.updateNZCFlags(this.writeWordByMode(opCode, 0)); + this.updateAllFlags(this.writeWordByMode(opCode, 0)); this.nStepCycles -= 1; }; @@ -879,7 +880,7 @@ PDP11.opCLR = function(opCode) */ PDP11.opCLRB = function(opCode) { - this.updateNZCFlags(this.writeByteByMode(opCode, 0)); + this.updateAllFlags(this.writeByteByMode(opCode, 0)); this.nStepCycles -= 1; }; @@ -1040,6 +1041,9 @@ PDP11.opDECB = function(opCode) */ PDP11.opDIV = function(opCode) { + /* + * TODO: Review and determine if flag updates can be encapsulated in an updateDivFlags() function. + */ var src = this.readWordByMode(opCode); if (!src) { this.flagN = 0; // NZVC @@ -1159,7 +1163,7 @@ PDP11.opJSR = function(opCode) */ PDP11.opMARK = function(opCode) { - var addr = (this.regsGen[7] + ((opCode & 0x3F) << 1)) & 0xffff; + var addr = (this.regsGen[PDP11.REG.PC] + ((opCode & 0x3F) << 1)) & 0xffff; var src = this.readWordFromVirtual(addr | 0x10000); this.setPC(this.regsGen[5]); this.setSP(addr + 2); @@ -1264,10 +1268,7 @@ PDP11.opMUL = function(opCode) var result = ~~(src * dst); this.regsGen[reg] = (result >> 16) & 0xffff; this.regsGen[reg | 1] = result & 0xffff; - this.flagN = result >> 16; - this.flagZ = this.flagN | result; - this.flagV = 0; - this.flagC = (result < -32768 || result > 32767)? 0x10000 : 0; + this.updateMulFlags(result); this.nStepCycles -= 1; }; @@ -1511,7 +1512,7 @@ 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.regsGen[7] - ((opCode & 0x3F) << 1)); + this.setPC(this.regsGen[PDP11.REG.PC] - ((opCode & 0x3F) << 1)); } this.nStepCycles -= 1; }; @@ -1578,7 +1579,7 @@ PDP11.opTST = function(opCode) { var result = this.readWordByMode(opCode); this.assert(!(result & ~0xffff)); // assert that C flag will be clear - this.updateNZCFlags(result); + this.updateAllFlags(result); this.nStepCycles -= 1; }; @@ -1592,7 +1593,7 @@ PDP11.opTSTB = function(opCode) { var result = this.readByteByMode(opCode); this.assert(!(result & ~0xff)); // assert that C flag will be clear - this.updateNZCFlags(result << 8); + this.updateAllFlags(result << 8); this.nStepCycles -= 1; }; @@ -1643,45 +1644,45 @@ PDP11.op0Xnn_1170 = function(opCode) }; /** - * op0Ann_1170(opCode) + * op0AXn_1170(opCode) * * @this {CPUStatePDP11} * @param {number} opCode */ -PDP11.op0Ann_1170 = function(opCode) +PDP11.op0AXn_1170 = function(opCode) { PDP11.aOps0AXn_1170[(opCode >> 6) & 0x3].call(this, opCode); }; /** - * op0Bnn_1170(opCode) + * op0BXn_1170(opCode) * * @this {CPUStatePDP11} * @param {number} opCode */ -PDP11.op0Bnn_1170 = function(opCode) +PDP11.op0BXn_1170 = function(opCode) { PDP11.aOps0BXn_1170[(opCode >> 6) & 0x3].call(this, opCode); }; /** - * op0Cnn_1170(opCode) + * op0CXn_1170(opCode) * * @this {CPUStatePDP11} * @param {number} opCode */ -PDP11.op0Cnn_1170 = function(opCode) +PDP11.op0CXn_1170 = function(opCode) { PDP11.aOps0CXn_1170[(opCode >> 6) & 0x3].call(this, opCode); }; /** - * op0Dnn_1170(opCode) + * op0DXn_1170(opCode) * * @this {CPUStatePDP11} * @param {number} opCode */ -PDP11.op0Dnn_1170 = function(opCode) +PDP11.op0DXn_1170 = function(opCode) { PDP11.aOps0DXn_1170[(opCode >> 6) & 0x3].call(this, opCode); }; @@ -1848,14 +1849,42 @@ PDP11.aOps0Xnn_1170 = [ PDP11.opBLE, // 0x07nn PDP11.opJSR, // 0x08nn PDP11.opJSR, // 0x09nn - PDP11.op0Ann_1170, // 0x0Ann - PDP11.op0Bnn_1170, // 0x0Bnn - PDP11.op0Cnn_1170, // 0x0Cnn - PDP11.op0Dnn_1170, // 0x0Dnn + PDP11.op0AXn_1170, // 0x0Ann + PDP11.op0BXn_1170, // 0x0Bnn + PDP11.op0CXn_1170, // 0x0Cnn + PDP11.op0DXn_1170, // 0x0Dnn PDP11.opUndefined, // 0x0Enn PDP11.opUndefined // 0x0Fnn ]; +PDP11.aOps0AXn_1170 = [ + PDP11.opCLR, // 0x0A0n + PDP11.opCOM, // 0x0A4n + PDP11.opINC, // 0x0A8n + PDP11.opDEC // 0x0ACn +]; + +PDP11.aOps0BXn_1170 = [ + PDP11.opNEG, // 0x0B0n + PDP11.opADC, // 0x0B4n + PDP11.opSBC, // 0x0B8n + PDP11.opTST // 0x0BCn +]; + +PDP11.aOps0CXn_1170 = [ + PDP11.opROR, // 0x0C0n + PDP11.opROL, // 0x0C4n + PDP11.opASR, // 0x0C8n + PDP11.opASL // 0x0CCn +]; + +PDP11.aOps0DXn_1170 = [ + PDP11.opMARK, // 0x0D0n + PDP11.opMFPI, // 0x0D4n + PDP11.opMTPI, // 0x0D8n + PDP11.opSXT // 0x0DCn +]; + PDP11.aOps00Xn_1170 = [ PDP11.op000X_1170, // 0x000n PDP11.opUndefined, // 0x001n @@ -1914,13 +1943,13 @@ PDP11.aOps00BX_1170 = [ ]; PDP11.aOps000X_1170 = [ - PDP11.opHALT, // 0x0000 - PDP11.opWAIT, // 0x0001 - PDP11.opRTI, // 0x0002 - PDP11.opBPT, // 0x0003 - PDP11.opIOT, // 0x0004 - PDP11.opRESET, // 0x0005 - PDP11.opRTT, // 0x0006 + 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 @@ -1970,34 +1999,6 @@ PDP11.aOps8Xnn_1170 = [ PDP11.opUndefined // 0x8Fnn ]; -PDP11.aOps0AXn_1170 = [ - PDP11.opCLR, // 0x0A0n - PDP11.opCOM, // 0x0A4n - PDP11.opINC, // 0x0A8n - PDP11.opDEC // 0x0ACn -]; - -PDP11.aOps0BXn_1170 = [ - PDP11.opNEG, // 0x0B0n - PDP11.opADC, // 0x0B4n - PDP11.opSBC, // 0x0B8n - PDP11.opTST // 0x0BCn -]; - -PDP11.aOps0CXn_1170 = [ - PDP11.opROR, // 0x0C0n - PDP11.opROL, // 0x0C4n - PDP11.opASR, // 0x0C8n - PDP11.opASL // 0x0CCn -]; - -PDP11.aOps0DXn_1170 = [ - PDP11.opMARK, // 0x0D0n - PDP11.opMFPI, // 0x0D4n - PDP11.opMTPI, // 0x0D8n - PDP11.opSXT // 0x0DCn -]; - PDP11.aOps8AXn_1170 = [ PDP11.opCLRB, // 0x8A0n PDP11.opCOMB, // 0x8A4n diff --git a/modules/pdp11/lib/cpustate.js b/modules/pdp11/lib/cpustate.js index b12b39080..13b7741f6 100644 --- a/modules/pdp11/lib/cpustate.js +++ b/modules/pdp11/lib/cpustate.js @@ -165,7 +165,6 @@ CPUStatePDP11.prototype.initRegs = function() this.controlReg = [ // various control registers we don't really care about 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; - this.regOp = -1; // current opcode this.opFlags = 0; this.cpuType = 70; this.trapPSW = -1; @@ -504,6 +503,19 @@ CPUStatePDP11.prototype.getPC = function() return this.regsGen[7]; }; +/** + * getPCWord() + * + * @this {CPUStatePDP11} + * @return {number} + */ +CPUStatePDP11.prototype.getPCWord = function() +{ + var data = this.readWordFromVirtual(this.regsGen[7]); + this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff; + return data; +}; + /** * setPC() * @@ -728,28 +740,10 @@ CPUStatePDP11.prototype.setPSW = function(newPSW) this.regPSW = newPSW; }; -/** - * updateNZCFlags(result, overflow) - * - * NOTE: The V flag is simply zeroed, it is not "updated" based on the result; - * however, a specific overflow value may be provided (used by NEG, for example). - * - * @this {CPUStatePDP11} - * @param {number} result - * @param {number} [overflow] - */ -CPUStatePDP11.prototype.updateNZCFlags = function(result, overflow) -{ - if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) { - this.flagN = this.flagZ = this.flagC = result; - this.flagV = overflow || 0; - } -}; - /** * updateNZFlags(result) * - * NOTE: The V flag is simply zeroed, it is not "updated" based on the result. + * NOTE: The V flag is simply zeroed, and the C flag is unchanged. * * @this {CPUStatePDP11} * @param {number} result @@ -762,6 +756,23 @@ CPUStatePDP11.prototype.updateNZFlags = function(result) } }; +/** + * updateAllFlags(result, overflow) + * + * NOTE: The V flag is simply zeroed, unless a specific value is provided (eg, by NEG). + * + * @this {CPUStatePDP11} + * @param {number} result + * @param {number} [overflow] + */ +CPUStatePDP11.prototype.updateAllFlags = function(result, overflow) +{ + if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) { + this.flagN = this.flagZ = this.flagC = result; + this.flagV = overflow || 0; + } +}; + /** * updateAddFlags(result, src, dst) * @@ -815,12 +826,26 @@ CPUStatePDP11.prototype.updateIncFlags = function(result, dst) }; /** - * updateLogFlags(result) + * updateMulFlags(result) * * @this {CPUStatePDP11} * @param {number} result */ -CPUStatePDP11.prototype.updateLogFlags = function(result) +CPUStatePDP11.prototype.updateMulFlags = function(result) +{ + this.flagN = result >> 16; + this.flagZ = this.flagN | result; + this.flagV = 0; + this.flagC = (result < -32768 || result > 32767)? 0x10000 : 0; +}; + +/** + * updateShiftFlags(result) + * + * @this {CPUStatePDP11} + * @param {number} result + */ +CPUStatePDP11.prototype.updateShiftFlags = function(result) { if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) { this.flagN = this.flagZ = this.flagC = result; @@ -913,7 +938,7 @@ CPUStatePDP11.prototype.trap = function(vector, reason) if (DEBUG && this.dbg) { if (this.messageEnabled(MessagesPDP11.TRAP)) { - this.printMessage("trap to vector " + this.dbg.toBase(vector, 0, true) + (reason? " (reason " + reason + ")" : ""), MessagesPDP11.TRAP, true); + this.printMessage("trap to vector " + this.dbg.toStrBase(vector, 0, true) + (reason? " (reason " + reason + ")" : ""), MessagesPDP11.TRAP, true); } } @@ -1319,9 +1344,7 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags) stepSize = 2; virtualAddress = this.regsGen[reg]; if (reg !== 7) virtualAddress |= addrDSpace; - if ((virtualAddress = this.readWordFromVirtual(virtualAddress)) < 0) { - return virtualAddress; - } + virtualAddress = this.readWordFromVirtual(virtualAddress); // if (reg === 7) LOG_ADDRESS(virtualAddress); // @#n not operational virtualAddress |= addrDSpace; break; @@ -1345,44 +1368,25 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessFlags) stepSize = -2; virtualAddress = (this.regsGen[reg] - 2) & 0xffff; if (reg !== 7) virtualAddress |= addrDSpace; - if ((virtualAddress = this.readWordFromVirtual(virtualAddress)) < 0) { - return virtualAddress; - } - virtualAddress |= addrDSpace; + virtualAddress = this.readWordFromVirtual(virtualAddress) | addrDSpace; break; /* * Mode 6: d(R) */ case 6: - if ((virtualAddress = this.readWordFromVirtual(this.regsGen[7])) < 0) { - return virtualAddress; - } - this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff; - if (reg < 7) { - virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff; - } else { - virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff; - } - return virtualAddress | addrDSpace; + virtualAddress = this.getPCWord(); + virtualAddress = ((virtualAddress + this.regsGen[reg]) & 0xffff) | addrDSpace; + return virtualAddress; /* * Mode 7: @d(R) */ case 7: - if ((virtualAddress = this.readWordFromVirtual(this.regsGen[7])) < 0) { - return virtualAddress; - } - this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff; - if (reg < 7) { - virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff; - } else { - virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff; - } - if ((virtualAddress = this.readWordFromVirtual(virtualAddress | PDP11.ACCESS.DSPACE)) < 0) { - return virtualAddress; - } - return virtualAddress | addrDSpace; + virtualAddress = this.getPCWord(); + virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff; + virtualAddress = this.readWordFromVirtual(virtualAddress | PDP11.ACCESS.DSPACE) | addrDSpace; + return virtualAddress; } this.regsGen[reg] = (this.regsGen[reg] + stepSize) & 0xffff; @@ -1727,7 +1731,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles) this.checkInterruptQueue(); } - if (!(this.regMMR0 & 0xe000)) { + if (!(this.regMMR0 & PDP11.MMR0.ABORT)) { this.regMMR1 = 0; this.regMMR2 = this.regsGen[7]; } @@ -1738,22 +1742,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles) */ this.opFlags = this.regPSW & PDP11.PSW.TF; - /* - * TODO: Determine (later) if this.regOp is a useful (internal) register to maintain; - * perhaps it would alleviate lots of opCode parameter-passing. In the meantime, we use - * it to detect if our new decode() function has processed (ie, "consumed") the opcode, - * by setting it to -1. If it has, then we can skip the older opcode decode logic below. - */ - var opCode = this.regOp = this.readWordFromVirtual(this.regsGen[7]); - if (opCode >= 0) this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff; - - this.decode(opCode); - - if (DEBUG && this.regOp < 0) { - this.regsGen[7] = (this.regsGen[7] - 2) & 0xffff; - this.println("unimplemented"); - break; - } + this.decode(this.getPCWord()); } while (this.nStepCycles > 0); diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index 6cebfb333..5b40d1137 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -777,7 +777,7 @@ if (DEBUGGER) { */ DebuggerPDP11.prototype.toStrOffset = function(off) { - return this.toBase(off); + return this.toStrBase(off); }; /** @@ -1036,9 +1036,82 @@ if (DEBUGGER) { return false; }; + /** + * getRegIndex(sReg, off) + * + * @this {DebuggerPDP11} + * @param {string} sReg + * @param {number} [off] optional offset into sReg + * @return {number} register index, or -1 if not found + */ + DebuggerPDP11.prototype.getRegIndex = function(sReg, off) + { + var iReg = -1; + sReg = sReg.toUpperCase(); + switch(sReg) { + case "SP": + iReg = 6; + break; + case "PC": + iReg = 7; + break; + default: + if (sReg.charAt(0) == "R") { + iReg = +sReg.charAt(1); + if (iReg < 0 || iReg > 7) iReg = -1; + } + break; + } + return iReg; + }; + + /** + * getRegName(iReg) + * + * @this {DebuggerPDP11} + * @param {number} iReg + * @return {string} + */ + DebuggerPDP11.prototype.getRegName = function(iReg) + { + return (iReg < 6? ("R" + iReg) : (iReg == 6? "SP" : "PC")); + }; + + /** + * getRegValue(iReg) + * + * Register numbers 0-7 are reserved for cpu.regsGen, 8-15 are reserved for cpu.regsAlt, + * 16-19 for cpu.regsAltStack, and 20 for regPSW. + * + * @this {DebuggerPDP11} + * @param {number} iReg + * @return {number|undefined} + */ + DebuggerPDP11.prototype.getRegValue = function(iReg) + { + var value; + if (iReg >= 0) { + if (iReg < 8) { + value = this.cpu.regsGen[iReg]; + } + else if (iReg < 16) { + value = this.cpu.regsAlt[iReg-8]; + } + else if (iReg < 20) { + value = this.cpu.regsAltStack[iReg-16]; + } + else if (iReg == DebuggerPDP11.REG_PSW) { + value = this.cpu.getPSW(); + } + } + return value; + }; + /** * replaceRegs(s) * + * TODO: Implement or eliminate. + * * @this {DebuggerPDP11} * @param {string} s * @return {string} @@ -1929,7 +2002,7 @@ if (DEBUGGER) { var sLine = this.toStrAddr(dbgAddrOp) + ":"; if (dbgAddrOp.addr !== PDP11.ADDR_INVALID && dbgAddr.addr !== PDP11.ADDR_INVALID) { do { - sOpcodes += ' ' + this.toBase(this.getWord(dbgAddrOp, 2)); + sOpcodes += ' ' + this.toStrBase(this.getWord(dbgAddrOp, 2)); if (dbgAddrOp.addr == null) break; } while (dbgAddrOp.addr != dbgAddr.addr); } @@ -1973,20 +2046,20 @@ if (DEBUGGER) { if (opTypeOther == DebuggerPDP11.OP_BRANCH) { disp = ((opCode & 0xff) << 24) >> 23; addr = (dbgAddr.addr + disp) & 0xffff; - sOperand = this.toBase(addr); + sOperand = this.toStrBase(addr); } else if (opTypeOther == DebuggerPDP11.OP_DSTOFF) { disp = (opCode & 0x3f) << 1; addr = (dbgAddr.addr - disp) & 0xffff; - sOperand = this.toBase(addr); + sOperand = this.toStrBase(addr); } else if (opTypeOther == DebuggerPDP11.OP_DSTNUM3) { disp = (opCode & 0x7); - sOperand = this.toBase(disp, 1); + sOperand = this.toStrBase(disp, 1); } else if (opTypeOther == DebuggerPDP11.OP_DSTNUM6) { disp = (opCode & 0x3f); - sOperand = this.toBase(disp, 1); + sOperand = this.toStrBase(disp, 1); } else { /* @@ -2022,7 +2095,7 @@ if (DEBUGGER) { * When using R7 (aka PC), POST-INCREMENT is known as IMMEDIATE */ wIndex = this.getWord(dbgAddr, 2); - sOperand = '#' + this.toBase(wIndex, 0, true); + sOperand = '#' + this.toStrBase(wIndex, 0, true); } break; case PDP11.OPMODE.POSTINCD: // 0x3: POST-INCREMENT DEFERRED @@ -2033,7 +2106,7 @@ if (DEBUGGER) { * When using R7 (aka PC), POST-INCREMENT DEFERRED is known as ABSOLUTE */ wIndex = this.getWord(dbgAddr, 2); - sOperand = "@#" + this.toBase(wIndex, 0, true); + sOperand = "@#" + this.toStrBase(wIndex, 0, true); } break; case PDP11.OPMODE.PREDEC: // 0x4: PRE-DECREMENT @@ -2044,22 +2117,22 @@ if (DEBUGGER) { break; case PDP11.OPMODE.INDEX: // 0x6: INDEX wIndex = this.getWord(dbgAddr, 2); - sOperand = this.toBase(wIndex, 0, true) + '(' + this.getRegName(reg) + ')'; + sOperand = this.toStrBase(wIndex, 0, true) + '(' + this.getRegName(reg) + ')'; if (reg == 7) { /* * When using R7 (aka PC), INDEX is known as RELATIVE */ - sOperand = [sOperand, this.toBase((wIndex + dbgAddr.addr) & 0xffff)]; + sOperand = [sOperand, this.toStrBase((wIndex + dbgAddr.addr) & 0xffff)]; } break; case PDP11.OPMODE.INDEXD: // 0x7: INDEX DEFERRED wIndex = this.getWord(dbgAddr, 2); - sOperand = '@' + this.toBase(wIndex) + '(' + this.getRegName(reg) + ')'; + sOperand = '@' + this.toStrBase(wIndex) + '(' + this.getRegName(reg) + ')'; if (reg == 7) { /* * When using R7 (aka PC), INDEX DEFERRED is known as RELATIVE DEFERRED */ - sOperand = [sOperand, this.toBase((wIndex + dbgAddr.addr) & 0xffff)]; + sOperand = [sOperand, this.toStrBase((wIndex + dbgAddr.addr) & 0xffff)]; } break; default: @@ -2122,18 +2195,6 @@ if (DEBUGGER) { return sFlag.charAt(0) + (b? '1' : '0') + ' '; }; - /** - * getRegName(iReg) - * - * @this {DebuggerPDP11} - * @param {number} iReg - * @return {string} - */ - DebuggerPDP11.prototype.getRegName = function(iReg) - { - return (iReg < 6? ("R" + iReg) : (iReg == 6? "SP" : "PC")); - }; - /** * getRegOutput(iReg) * @@ -2148,16 +2209,16 @@ if (DEBUGGER) { if (iReg < 8) { sReg = this.getRegName(iReg); - sReg += '=' + this.toBase(cpu.regsGen[iReg]); + sReg += '=' + this.toStrBase(cpu.regsGen[iReg]); } else if (iReg < 13) { - sReg = "A" + (iReg - 8) + '=' + this.toBase(cpu.regsAlt[iReg - 8]); + sReg = "A" + (iReg - 8) + '=' + this.toStrBase(cpu.regsAlt[iReg - 8]); } else if (iReg >= 16 && iReg < 20) { - sReg = "S" + (iReg - 16) + '=' + this.toBase(cpu.regsAltStack[iReg - 16]); + sReg = "S" + (iReg - 16) + '=' + this.toStrBase(cpu.regsAltStack[iReg - 16]); } else if (iReg == DebuggerPDP11.REG_PSW) { - sReg = "PS=" + this.toBase(cpu.getPSW()); + sReg = "PS=" + this.toStrBase(cpu.getPSW()); } if (sReg) sReg += ' '; return sReg; @@ -2762,29 +2823,32 @@ if (DEBUGGER) { */ DebuggerPDP11.prototype.doEdit = function(asArgs) { - var size = 1; - var mask = 0xff; - var fnGet = this.getByte; - var fnSet = this.setByte; - if (asArgs[0] == "ew") { + var size, mask; + var fnGet, fnSet; + var sCmd = asArgs[0]; + var sAddr = asArgs[1]; + if (sCmd == "eb") { + size = 1; + mask = 0xff; + fnGet = this.getByte; + fnSet = this.setByte; + } + else if (sCmd == "e" || sCmd == "ew") { size = 2; mask = 0xffff; fnGet = this.getWord; fnSet = this.setWord; + } else { + sAddr = null; } - var cch = size << 1; - - var sAddr = asArgs[1]; if (sAddr == null) { this.println("edit memory commands:"); this.println("\teb [a] [...] edit bytes at address a"); this.println("\tew [a] [...] edit words at address a"); return; } - var dbgAddr = this.parseAddr(sAddr); if (!dbgAddr) return; - for (var i = 2; i < asArgs.length; i++) { var vNew = this.parseExpression(asArgs[i]); if (vNew === undefined) { @@ -2795,7 +2859,7 @@ if (DEBUGGER) { this.println("warning: " + str.toHex(vNew) + " exceeds " + size + "-byte value"); } var vOld = fnGet.call(this, dbgAddr); - this.println("changing " + this.toStrAddr(dbgAddr) + " from " + str.toHex(vOld, cch, true) + " to " + str.toHex(vNew, cch, true)); + this.println("changing " + this.toStrAddr(dbgAddr) + " from " + this.toStrBase(vOld, size) + " to " + this.toStrBase(vNew, size)); fnSet.call(this, dbgAddr, vNew, size); } }; diff --git a/modules/pdp11/lib/defines.js b/modules/pdp11/lib/defines.js index a13bae924..ca89ca149 100644 --- a/modules/pdp11/lib/defines.js +++ b/modules/pdp11/lib/defines.js @@ -281,7 +281,8 @@ var PDP11 = { TRAP_MMU: 0x1000, // trap: MMU ABORT_RO: 0x2000, // abort: read-only ABORT_PL: 0x4000, // abort: page length - ABORT_NR: 0x8000 // abort: non-resident + ABORT_NR: 0x8000, // abort: non-resident + ABORT: 0xE000 }, MMR1: { // general purpose auto-inc/auto-dec register REG1_NUM: 0x0007, diff --git a/modules/shared/lib/debugger.js b/modules/shared/lib/debugger.js index 094720332..e0cc05309 100644 --- a/modules/shared/lib/debugger.js +++ b/modules/shared/lib/debugger.js @@ -659,7 +659,7 @@ if (DEBUGGER) { }; /** - * toBase(n, nBytes, fStripLeadingZeros) + * toStrBase(n, nBytes, fStripLeadingZeros) * * Use this instead of str.toHex() or str.toOct() to convert bytes/words to the Debugger's default base. * @@ -669,7 +669,7 @@ if (DEBUGGER) { * @param {boolean} [fStripLeadingZeros] * @return {string} */ - Debugger.prototype.toBase = function(n, nBytes, fStripLeadingZeros) + Debugger.prototype.toStrBase = function(n, nBytes, fStripLeadingZeros) { var s; switch(this.nBase) { diff --git a/versions/c1pjs/1.30.0/c1p-dbg.js b/versions/c1pjs/1.30.0/c1p-dbg.js index ddc44bc56..a5cd2c61b 100644 --- a/versions/c1pjs/1.30.0/c1p-dbg.js +++ b/versions/c1pjs/1.30.0/c1p-dbg.js @@ -4,16 +4,16 @@ function t(a,b){var c=0,d=null;if("object"==typeof resources&&(d=resources[a]))b function u(a){window&&window.alert(a)}function v(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 fa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0b?this.bb=this.id:(this.pb=this.id.substr(0,b),this.bb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,Ba:!1,eb:!1,M:!1,error:!1};this.ab=null;this.C.error=!1;this.H={};this.u=null;this.la=d||0;A.push(this)}var na=void 0,oa={}; +function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;b=this.id.indexOf(".");0>b?this.bb=this.id:(this.pb=this.id.substr(0,b),this.bb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,Ja:!1,eb:!1,M:!1,error:!1};this.ab=null;this.C.error=!1;this.H={};this.u=null;this.la=d||0;A.push(this)}var na=void 0,oa={}; if(window){na||(na=window.location.search.substr(1));for(var pa,qa=/\+/g,ra=/([^&=]+)=?([^&]*)/g;pa=ra.exec(na);)oa[decodeURIComponent(pa[1].replace(qa," "))]=decodeURIComponent(pa[2].replace(qa," "))}function sa(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){var b;b||(b=z);a.prototype=sa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var D=window.PCjs.Machines||(window.PCjs.Machines={}),A=window.PCjs.Components||(window.PCjs.Components=[])}else D={},A=[];function ta(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;cBa(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.paBa(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.pa=a.P[d][0]&&b<=a.P[d][1]&&a.P[d][3].call(a.P[d][2],b,c)}function N(a,b,c,d,e){0>Ba(a.K,b,c,d,e)&&(a.da>b&&(a.da=b),a.ea=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function Ba(a,b,c,d,e){for(var g=0;ga.Qa&&a.ta&&(d=a.ta);d>a.La&&2>a.speed&&(d=a.La);a.jb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Wa=Math.floor(1E6/a.Ia*d);a.Va=Math.floor(1E6/a.Ha*d);b||(a.R=a.ra,a.Z=a.Wa,a.V=a.Va);a.Aa=0} +function Ea(a,b){var c=30;ca.Qa&&a.ta&&(d=a.ta);d>a.La&&2>a.speed&&(d=a.La);a.jb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Wa=Math.floor(1E6/a.Ha*d);a.Va=Math.floor(1E6/a.Ga*d);b||(a.R=a.ra,a.Z=a.Wa,a.V=a.Va);a.Aa=0} function Ha(a){var b=ea(),c=a.jb;a.$&&(c=Math.round(c*a.$/a.ra));c-=b-a.kb;if(b-=a.Na)a.ta=Math.round(a.U/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.speed?a.ta<=a.La&&(c=0):2==a.speed&&(c=0);a.Aa+=a.$;return c} f.va=function(){if(I(this,!0)){this.C.na||(M(this),this.J&&this.J.start(),this.C.na=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&Ea(this,!0);this.$=0;this.kb=ea();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Wa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Va,Fa(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.na)}catch(b){this.aa();this.update();I(this,!1);ua(this, b.stack||b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Ha(this))}else this.update(),this.J&&this.J.stop(this.Na,this.U)}; @@ -81,11 +81,11 @@ R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a! function Na(a,b,c,d){if(d)a.l('Error loading ROM "'+b+'" ('+d+")");else{if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),g=e.bytes;g?a.b=g:a.b=e}catch(h){a.l('Error processing ROM "'+b+'": '+h.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),c=0;c=--c.Ea&&(0=c.qb&&(c.ma=c.qb),0>c.ma&&(c.ma=0),c.Ea=20, -a.o.update(a.o.I|128),fb(a))}this.I=b;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(b){void 0!==b&&(this.I=b&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.v.I=14),this.I=b);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.v.I);b&=-2;0<=a.b&&0<=a.g[a.b].Da&&(b|=1);this.I=b;V(a,16,this)}}(a)};a.N={I:0,read:function(a){return function(){gb(a)}}(a), +x(function(){for(var a=G(document,"c1pjs","serial"),b=0;b=--c.Da&&(0=c.qb&&(c.ma=c.qb),0>c.ma&&(c.ma=0),c.Da=20, +a.o.update(a.o.I|128),fb(a))}this.I=b;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(b){void 0!==b&&(this.I=b&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.v.I=14),this.I=b);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.v.I);b&=-2;0<=a.b&&0<=a.g[a.b].Ca&&(b|=1);this.I=b;V(a,16,this)}}(a)};a.N={I:0,read:function(a){return function(){gb(a)}}(a), update:function(a){return function(b){void 0!==b&&(this.I=b);V(a,17,this)}}(a)};a.R={I:0,read:function(){},update:function(){return function(){}}(a)}}f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.l("loading "+aa(b)+"...");t(c,function(b,c,d){hb(a,b,c,d)})}}}(this),!0}return!1}; f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)Aa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ia=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))}; function hb(a,b,c,d){if(d)a.l("disk load error ("+d+")");else{d=[];a.l("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var e=d[0];if(void 0===e[0].trackNum)a.l("data error: "+e[0]);else if(a.g[0]){for(c=0;c>8&255);a.push(b&255)}function ib(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;cb?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.N;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=kb(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ga,!1,c.Hb);c.read()}}; -f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=kb(this,a-this.J,!0);if(this.u&&H(this.u,this.u.Ga|this.u.ob)&&(S(this.u,this,a,b,this.u.Ga,!0,d.Hb),d.Mb))for(a=128,b=d.I^c;b&&a;)b&a&&this.u.message(" changed "+d.Hb+"."+d.Mb[a]+" to "+(c&a?"1":"0")),a>>=1;d.update(c)}};function eb(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function fb(a){0<=a.b&&(a.g[a.b].Da=-1,a.N.update(255),a.v.update())} -function gb(a){var b;if(0<=a.b){b=a.g[a.b];var c=b.Ua[b.ma];void 0!==c&&(0<=b.Da&&b.Dab?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.N;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=kb(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Fa,!1,c.Hb);c.read()}}; +f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=kb(this,a-this.J,!0);if(this.u&&H(this.u,this.u.Fa|this.u.ob)&&(S(this.u,this,a,b,this.u.Fa,!0,d.Hb),d.Mb))for(a=128,b=d.I^c;b&&a;)b&a&&this.u.message(" changed "+d.Hb+"."+d.Mb[a]+" to "+(c&a?"1":"0")),a>>=1;d.update(c)}};function eb(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function fb(a){0<=a.b&&(a.g[a.b].Ca=-1,a.N.update(255),a.v.update())} +function gb(a){var b;if(0<=a.b){b=a.g[a.b];var c=b.Ua[b.ma];void 0!==c&&(0<=b.Ca&&b.Ca>24)} -f.S=function(a){var b;a>=this.N&&a=this.Fa?this.l("invalid address: "+r(a)):(this.a[this.N+a]=b&255,Da(this.s,a),this.s.update())};function tb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;eg&&(m+=" ;'"+String.fromCharCode(g)+"'")}if(e==a.s.$a&& +f.va=function(){if(!ob(this))return!1;this.s.va();return!0};f.step=function(a){if(!ob(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,ua(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Ba?pb(this):qb(this)};function ob(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.error?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a} +f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a>24)} +f.S=function(a){var b;a>=this.N&&a=this.Ea?this.l("invalid address: "+r(a)):(this.a[this.N+a]=b&255,Da(this.s,a),this.s.update())};function tb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;eg&&(m+=" ;'"+String.fromCharCode(g)+"'")}if(e==a.s.$a&& (gk?m+=String.fromCharCode(g):16==k&&(m+="\u2026"),k++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$=b;return d} -function Y(a,b){var c=a.ua;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c=a.Fa)&&(a.l("address out of range: "+p(c)),c=void 0);return c} -function wb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b=a.Ea)&&(a.l("address out of range: "+p(c)),c=void 0);return c} +function wb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;ba.Nb.indexOf(h)&&(e=a.O);e==a.nb&&27!=h&&(e=a.O)}else a.l("unknown operand: "+l),h=-1;if(0<=h){k=-1;for(g=0;gk)k=g;else{a.l("too many instruction matches (both "+q(k)+" and "+q(g)+")");k=-2;break}if(0<=k){if(d.push(k),void 0!==e)if(b=a.ga[k][1],l=l.match(/[0-9A-F]+/))for(l=parseInt(l[0],16),1==b&&e==a.fa&&(l-=c+2,-128>l||127>>=8;else b&& a.l("instruction missing "+b+" bytes")}else a.l("unknown instruction: "+b+" "+l+"")}}e=d;if(e.length){for(c=0;ch&&ek?String.fromCharCode(k):".",e++;a.l(p(g,4)+" "+b+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;dh&&ek?String.fromCharCode(k):".",e++;a.l(p(g,4)+" "+b+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;dd.length&&(a.l("note: only "+d.length+" available"),b=d.length); -void 0!==l&&(a.lb=0,a.l(b+" instructions earlier:"));l=a.lb?a.lb:1;c-=b;for(0>c&&(c=d.length-1);e&&c!=a.Ka;){g=d[c];if(0>g)break;a.l(vb(a,g,l++));++c==d.length&&(c=0);e--;b--}a.Rb=b;a.lb=l}10==e&&a.l("no history available");break;case "r":qb(a,c);break;case "s":a.S(a.s.f)==a.s.Pa?(ub(a,a.s.f+3),a.Ca=!0,a.va()||a.s.ca()):xb(a);break;case "t":xb(a,c[1]);break;case "u":pb(a,c[1],c[2],8);break;case "?":case "help":a.l("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble"); +void 0!==l&&(a.lb=0,a.l(b+" instructions earlier:"));l=a.lb?a.lb:1;c-=b;for(0>c&&(c=d.length-1);e&&c!=a.Ka;){g=d[c];if(0>g)break;a.l(vb(a,g,l++));++c==d.length&&(c=0);e--;b--}a.Rb=b;a.lb=l}10==e&&a.l("no history available");break;case "r":qb(a,c);break;case "s":a.S(a.s.f)==a.s.Pa?(ub(a,a.s.f+3),a.Ba=!0,a.va()||a.s.ca()):xb(a);break;case "t":xb(a,c[1]);break;case "u":pb(a,c[1],c[2],8);break;case "?":case "help":a.l("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble"); a.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=G(document,"c1pjs","debugger"),b=0;b");b&&b.ia(!0,a)} diff --git a/versions/c1pjs/1.30.0/c1p.js b/versions/c1pjs/1.30.0/c1p.js index 00ae1636a..3ef42e83f 100644 --- a/versions/c1pjs/1.30.0/c1p.js +++ b/versions/c1pjs/1.30.0/c1p.js @@ -3,30 +3,30 @@ function da(a){return a.replace(/[&<>"']/g,function(a){return ca[a]})}var q=Date function r(a,b){var c=0,d=null;if("object"==typeof resources&&(d=resources[a]))b&&b(a,d,c);else if("function"==typeof resources)resources(a,function(c,d){b&&b(a,c,d)});else{var f=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");f.onreadystatechange=function(){4===f.readyState&&(d=f.responseText,200==f.status||!f.status&&d.length&&"file:"==(window?window.location.protocol:"file:")||(c=f.status||-1),b&&b(a,d,c))};f.open("GET",a,!0);f.send()}} function t(a){window&&window.alert(a)}function u(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 v={init:[],show:[],exit:[]},ea=!1,fa=!1,w=!0;function ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){v.init.push(a)} function z(a){if(w)try{for(var b=0;bb?this.wa=this.id:(this.Ba=this.id.substr(0,b),this.wa=this.id.substr(b+1));this[a]=c;this.u={ready:!1,pa:!1,xa:!1,H:!1,error:!1};this.va=null;this.u.error=!1;this.A={};C.push(this)}var ia=void 0,ja={}; +function B(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;b=this.id.indexOf(".");0>b?this.wa=this.id:(this.Ba=this.id.substr(0,b),this.wa=this.id.substr(b+1));this[a]=c;this.u={ready:!1,ta:!1,xa:!1,H:!1,error:!1};this.va=null;this.u.error=!1;this.A={};C.push(this)}var ia=void 0,ja={}; if(window){ia||(ia=window.location.search.substr(1));for(var ka,la=/\+/g,ma=/([^&=]+)=?([^&]*)/g;ka=ma.exec(ia);)ja[decodeURIComponent(ka[1].replace(la," "))]=decodeURIComponent(ka[2].replace(la," "))}function na(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 D(a){var b;b||(b=B);a.prototype=na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var E=window.PCjs.Machines||(window.PCjs.Machines={}),C=window.PCjs.Components||(window.PCjs.Components=[])}else E={},C=[];function F(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;cwa(a.O,b,c,d,f)&&(a.ja>b&&(a.ja=b),a.kawa(a.K,b,c,d,f)&&(a.Y>b&&(a.Y=b),a.caa.ia&&a.ba&&(d=a.ba);d>a.ea&&2>a.speed&&(d=a.ea);a.bb=Math.round(1E3/30);a.fa=Math.floor(1E6/c*d);a.la=Math.floor(1E6/30*d);a.Ea=Math.floor(1E6/a.oa*d);a.Da=Math.floor(1E6/a.na*d);b||(a.P=a.la,a.U=a.Ea,a.T=a.Da);a.ma=0}function Aa(a){1E6<=a.ma&&xa(a,!0);a.V=0;a.cb=q()} function Ba(a){var b=q(),c=a.bb;a.V&&(c=Math.round(c*a.V/a.la));c-=b-a.cb;if(b-=a.Ca)a.ba=Math.round(a.S/(100*b))/10,864E5<=b&&ta(a);0>c?c=0:1==a.speed?a.ba<=a.ea&&(c=0):2==a.speed&&(c=0);a.ma+=a.V;return c} function N(a){if(oa(a,!0)){a.u.Z||(ta(a),a.I&&a.I.start(),a.u.Z=!0,a.A.run&&(a.A.run.innerHTML="Halt"),a.da());Aa(a);try{do{a.step(a.fa);var b=a.L-a.G;a.S+=b;a.V+=b;a.L=a.G=0;a.U-=a.fa;0>=a.U&&(a.U+=a.Ea,a.za());a.T-=a.fa;0>=a.T&&(a.T+=a.Da,ya(a));a.P-=a.fa;if(0>=a.P){a.P+=a.la;break}}while(a.u.Z)}catch(c){M(a);a.update();oa(a,!1);pa(a,c.stack||c.message);return}setTimeout(function(a){return function(){N(a)}}(a),Ba(a))}else a.update(),a.I&&a.I.stop(a.Ca,a.S)} e.step=function(a){this.b=this.j=-1;this.L=this.G=a;do{a=this.a[this.c];this.c++;this.v[a].call(this);if(0<=this.b){if(this.b>=this.ja&&this.b<=this.ka)for(var b=this.b,c=this.c,d=0;d=this.O[d][0]&&b<=this.O[d][1]&&this.O[d][3].call(this.O[d][2],b,c);this.b=-1}else if(0<=this.j){if(this.j>=this.Y&&this.j<=this.ca)for(b=this.j,c=this.c,d=0;d=this.K[d][0]&&b<=this.K[d][1]&&this.K[d][3].call(this.K[d][2],b,c);this.j=-1}this.G-=this.$a[a]}while(0>1)&128?64:0),b=b|(a.h&128?128:0);return a.B&60|b} +function M(a){a.u.ta&&(a.u.xa=!0);a.L-=a.G;a.G=0;a.u.Z&&(a.u.Z=!1,a.A.run&&(a.A.run.innerHTML="Run"))}e.update=function(){this.za();ya(this)};function Ca(a){return a.u.Z?a.S+a.L-a.G:0}e.W=function(a){return this.a[a]};e.R=function(a,b){this.a[a]=b};function za(a){var b=a.f&256?1:0,b=b|(a.i&255?0:2),b=b|((a.w&255^a.C^a.w>>1)&128?64:0),b=b|(a.h&128?128:0);return a.B&60|b} function Q(a,b,c){var d=a.f&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.C=b^c;a.w=f;a.h=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.f=f;a.i=b+c+d&255;a.G--;return f&255}function R(a,b,c){var d=a.f&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.h=a.i=(a.f=b-c-d)&255;a.C=b^c;a.w=a.f;a.f^=256;a.G--;return f&255}function sa(a){a.g=0;a.m=0;a.o=0;a.s=256;a.B=0;a.h=0;a.i=0;a.C=0;a.w=0;a.f=0;a.c=0;a.b=-1;a.j=-1;a.ba=0;a.S=a.L=a.G=0} e.Hb=function(){this.c++;this.a[this.s--]=this.c>>8;this.s|=256;this.a[this.s--]=this.c&255;this.s|=256;this.B|=16;this.B=za(this);this.a[this.s--]=this.B;this.s|=256;this.B&=239;this.b=65534;this.c=this.a[this.b]|this.a[this.b+1]<<8};e.$c=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g|=this.a[this.b]};e.bd=function(){this.b=this.a[this.c++];this.h=this.i=this.g|=this.a[this.b]}; e.xb=function(){this.j=this.a[this.c++];this.f=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.f&255};e.ed=function(){this.B=za(this);this.a[this.s--]=this.B;this.s|=256};e.Zc=function(){this.b=this.c++;this.h=this.i=this.g|=this.a[this.b]};e.wb=function(){this.f=this.g<<1;this.h=this.i=this.g=this.f&255};e.Wc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.g|=this.a[this.b]}; @@ -82,19 +82,19 @@ function Ga(a){B.call(this,"C1PKeyboard",a);this.u.H=!1;this.ea=a.model;this.L=8 29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.ka]=22E3;this.b[this.la]=21504;this.b[this.fa]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]= 17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]= 9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.v]=1536;this.b[this.K]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}D(Ga); -e=Ga.prototype;e.reset=function(){this.qa(this.ea);this.c=this.s;this.S=0;this.g=[this.s,0,0,0,0,0,0,0];this.w=[];if(this.h)for(var a in this.h)isNaN(+a)||this.h[a]&&clearTimeout(this.h[a]);this.h=[];this.ca=this.i=0;this.T=-1;this.P=this.g;this.V=this.C=0;this.j=""}; +e=Ga.prototype;e.reset=function(){this.pa(this.ea);this.c=this.s;this.S=0;this.g=[this.s,0,0,0,0,0,0,0];this.w=[];if(this.h)for(var a in this.h)isNaN(+a)||this.h[a]&&clearTimeout(this.h[a]);this.h=[];this.ca=this.i=0;this.T=-1;this.P=this.g;this.V=this.C=0;this.j=""}; e.J=function(a,b,c){if(void 0===this.A[b])switch(b){case "keyDown":return this.A[b]=c,c.onkeydown=function(a){return function(b){return Ha(a,b,!0)}}(this),!0;case "keyPress":return this.A[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.j="";a.c&8?a.c&=-9:c=!T(a,b);return c}}(this),!0;case "keyUp":return this.A[b]=c,c.onkeyup=function(a){return function(b){return Ha(a,b,!1)}}(this),!0;case "break":return this.A[b]=c,c.onclick=function(a){return function(){a.I&& -a.I.reset(!0)}}(this),!0;default:if(void 0!==this.m[b])return this.A[b]=c,c.onclick=function(a,b,c){return function(){a.f&&a.f.da();return!T(a,c)}}(this,b,this.m[b]),!0}return!1};e.X=function(a,b,c,d){this.a=a;this.Y=b;this.oa=c-b+1;this.ta=this.Y+this.oa;d&&(this.f=d,O(d,b,c,this,this.R));this.N()};e.qa=function(a){this.o=a;this.B=255;600!=this.o&&(this.B=0,this.F("updated keyboard model: "+this.o))};e.$=function(a,b){a&&!this.u.H&&(this.u.H=!0,this.I=b)}; -e.N=function(){this.U=(this.ra=u("iOS"))||u("Android");B.prototype.N.call(this)};function Ia(a,b){b=b?100:250;a.f&&a.f.ba&&(b/=a.f.ba);return b}function Ja(a,b){!a.i||void 0!==b&&b==a.i||(clearTimeout(a.h[a.i]),U(a,a.i,!1,4))}function V(a,b,c){a.j=b;Ka(a,c||300)}function Ka(a,b){if(0=c&&(c+=32);a.j=a.j.substr(1);T(a,c)}0=c&&(c+=32);a.j=a.j.substr(1);T(a,c)}0=b&&(b+=32),Ja(a,b),U(a,b,!0,0)&&(a.f.speed==a.f.Aa?U(a,b,!1,1):(c=!1,a.h[b]&&(clearTimeout(a.h[b]),c=!0),c=Ia(a,c),a.h[a.i=b]=setTimeout(function(a){return function(){U(a,b,!1,3)}}(a),c)),c=!0));return c} function U(a,b,c,d){var f=!1;c||(a.h[b]=null,a.i==b&&(a.i=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.v),h=a.b[b]);void 0!==h&&(b=h>>12,f=h>>8&15,g||(g=h&255),c?(a.g[b]|=1<b||8192<=b));b&&(b=a.w.shift(),void 0!==b&&(a.P=b),a.C=0,a.V=d);for(b=d=0;8>b;b++)a.S&1<b||8192<=b));b&&(b=a.w.shift(),void 0!==b&&(a.P=b),a.C=0,a.V=d);for(b=d=0;8>b;b++)a.S&1<b[d][0]&&(f=b[d][0]),gb[d][0]&&(f=b[d][0]),g=a.K&&(d-=a.K,dMissing <canvas> support. Please try a newer web browser.";break}f.setAttribute("class","c1pjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.setAttribute("contenteditable","true");f.setAttribute("autocapitalize","off");f.setAttribute("autocorrect","off");f.style.backgroundColor=d.screenColor; f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(f.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight));c.appendChild(f);var g=new Image,h=f.getContext("2d"),f=new Ma(d,f,h,g);g.onload=function(a){return function(){a.N()}}(f,d.charSet);g.src=d.charSet;H(f,c)}}); @@ -103,17 +103,17 @@ e.J=function(a,b,c){var d=this;switch(b){case "listSerial":return this.A[b]=c,!0 b.name,c.result.toString(),0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};e.X=function(a,b,c,d){this.a=a;this.o=b;this.v=c-b+1;this.s=this.o+this.v;if(this.f=d)va(d,b,c,this,this.W),O(d,b,c,this,this.R);this.N()};e.$=function(a,b){a&&!this.u.H&&(this.u.H=!0,this.I=b,this.b=L(b,"keyboard"))}; function Qa(a,b,c,d){if(c){a.i=0;a.c=c;a.j=!0;a.g=0;if(-1!==b.indexOf(".json",b.length-5))try{d="";var f=eval("("+c+")").bytes;for(c=0;c=--c.ha&&(0=c.Ga&&(c.aa=c.Ga),0>c.aa&&(c.aa=0),c.ha=20,a.g.update(a.g.D|128),Va(a))}this.D=b;a.m.D&4&&W(a,2,this)}}(a)};a.m={D:0,read:function(){}, +function Sa(a){B.call(this,"C1PDiskController",a);this.u.H=!1;this.reset(!0)}D(Sa);e=Sa.prototype;e.reset=function(a){Ta(this);this.b=-1;a&&(this.c=[],this.c[0]={Zd:0,Ga:40,Za:!0,ha:20,aa:0,ga:-1,ra:[]})}; +function Ta(a){a.v={D:64,read:function(){},update:function(a){return function(b){void 0!==b&&(this.D=b);a.j.D&4||W(a,0,this)}}(a)};a.g={D:255,read:function(){this.update()},update:function(a){return function(b){void 0===b?b=a.g.D:Ua(a,b,a.i.D);b=(b|190)&-2;if(0<=a.b&&a.c[a.b].ra.length){var c=a.c[a.b];c.Za&&(b&=-33);c.aa||(b&=-3);10>=--c.ha&&(0=c.Ga&&(c.aa=c.Ga),0>c.aa&&(c.aa=0),c.ha=20,a.g.update(a.g.D|128),Va(a))}this.D=b;a.m.D&4&&W(a,2,this)}}(a)};a.m={D:0,read:function(){}, update:function(a){return function(b){void 0!==b&&(this.D=b&-193);W(a,3,this);a.i.update();a.w.update()}}(a)};a.B={D:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.h.D=14),this.D=b);a.h.update()}}(a)};a.h={D:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.h.D);b&=-2;0<=a.b&&0<=a.c[a.b].ga&&(b|=1);this.D=b;W(a,16,this)}}(a)};a.s={D:0,read:function(a){return function(){Wa(a)}}(a),update:function(a){return function(b){void 0!==b&&(this.D= b);W(a,17,this)}}(a)};a.C={D:0,read:function(){},update:function(){return function(){}}(a)}}e.J=function(a,b,c){switch(b){case "listDisk":return this.A[b]=c,!0;case "loadDisk":return this.A[b]=c,c.onclick=function(a){return function(){if(a.A.listDisk){var b=a.A.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.F("loading "+aa(b)+"...");r(c,function(b,c,d){Xa(a,b,c,d)})}}}(this),!0}return!1}; e.X=function(a,b,c,d){this.a=a;this.o=b;if(this.f=d)va(d,b,c,this,this.W),O(d,b,c,this,this.R);this.N()};e.$=function(a){a&&!this.u.H&&(this.u.H=!0)}; function Xa(a,b,c,d){if(d)a.F("disk load error ("+d+")");else{d=[];a.F("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var f=d[0];if(void 0===f[0].trackNum)a.F("data error: "+f[0]);else if(a.c[0]){for(c=0;c>8&255);a.push(b&255)}function Ya(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;cb?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.j.D&4?a.g:a.v;break;case 1:a=a.j;break;case 2:a=a.m.D&4?a.i:a.w;break;case 3:a=a.m;break;case 16:a=c?a.B:a.h;break;case 17:a=a.s;break;default:a=a.C}return a}e.W=function(a,b){void 0!==b&&$a(this,a-this.o,!1).read()};e.R=function(a,b){void 0!==b&&(b=this.f.W(a),$a(this,a-this.o,!0).update(b))};function Ua(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.g.D&64||(d|=1));a.b!=d&&(a.b=d,a.h.update())} -function Va(a){0<=a.b&&(a.c[a.b].ga=-1,a.s.update(255),a.h.update())}function Wa(a){var b;if(0<=a.b){b=a.c[a.b];var c=b.sa[b.aa];void 0!==c&&(0<=b.ga&&b.ga");b&&b.$(!0,a)} x(function(){for(var a=I(document,"c1pjs","computer"),b=0;b');return}}if(!h){t(' definition must appear first in the specification'); diff --git a/versions/pdp11/1.30.0/pdp11-dbg.js b/versions/pdp11/1.30.0/pdp11-dbg.js index 33e70e39d..9728a4ea2 100644 --- a/versions/pdp11/1.30.0/pdp11-dbg.js +++ b/versions/pdp11/1.30.0/pdp11-dbg.js @@ -7,207 +7,209 @@ function sa(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=res typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")} function u(a){window&&window.alert(a)}function ta(a){var b=!1;window&&(b=window.confirm(a));return b}var xa=null;function ya(){if(null==xa){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}xa=a}return xa}function za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} 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.Db=this.id:(this.uc=this.id.substr(0,b),this.Db=this.id.substr(b+1));this[a]=c;this.u={ready:!1,Kb:!1,gc:!1,ia:!1,error:!1};this.Zb=null;this.u.error=!1;this.I={};this.C=null;this.ka=d||0;x.push(this)}var Sa=void 0,Ta={}; -if(window){Sa||(Sa=window.location.search.substr(1));for(var Ua,Va=/\+/g,Wa=/([^&=]+)=?([^&]*)/g;Ua=Wa.exec(Sa);)Ta[decodeURIComponent(Ua[1].replace(Va," "))]=decodeURIComponent(Ua[2].replace(Va," "))}function Xa(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=v);a.prototype=Xa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ya=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ya={},x=[];function Za(a,b,c){Ya[a]&&b&&(Ya[a][b]=c)}function $a(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;bb?this.Db=this.id:(this.uc=this.id.substr(0,b),this.Db=this.id.substr(b+1));this[a]=c;this.u={ready:!1,Kb:!1,gc:!1,ia:!1,error:!1};this.Zb=null;this.u.error=!1;this.I={};this.C=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.Y&&(this.Y=10);15>2;this.i=this.Ca-1;this.B=this.D/this.Ca|0;this.A=this.B-1;this.Ua=[];this.G=null;this.Mb=this.Gc;a=new H;yb(a,this.C);this.M=Array(this.B);for(b=0;b>8:d[2](b)&255}else if(b&1&&(d=c.Ua[a&-2])&&(E(c)&&cb(c,d[5]+".readByte("+r(b)+")",0,!0),d[2]))return d[2](b&-2)>>8;c.f("warning: unconverted read access to byte @"+r(b));return c.Mb(b,-1,1)} -function Ab(a,b,c){var d=this.controller,f=d.Ua[a];if(f){E(d)&&cb(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)&&cb(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.f("warning: unconverted write access to byte @"+r(c));d.Mb(c,b,1)} -function Bb(a,b){var c=this.controller;if(a=c.Ua[a]){E(c)&&cb(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.f("warning: unconverted read access to word @"+r(b));return c.Mb(b,-1,0)}function Cb(a,b,c){var d=this.controller;if(a=d.Ua[a]){E(d)&&cb(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.f("warning: unconverted write access to word @"+r(c));d.Mb(c,b,0)}l=xb.prototype; -l.reset=function(){this.G&&this.G()};l.Gc=function(){return 0};l.Ra=function(a,b){b||this.reset();return!0}; -function Db(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.Y;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.Ca;g-=n;h++;continue}}return Fb(1,e,g)}e=new H(e,n,a.Ca,d,f);yb(e,a.C,k);a.M[h++]=e;e=m+a.Ca;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Gb[d]+" at "+t(b,8,!0)),!0):Fb(2,b,c)} -l.rb=function(a){return this.M[(a&this.j)>>>this.Y].vb(a&this.i,a)};l.Ka=function(a){var b=a&this.i,c=(a&this.j)>>>this.Y;return b!=this.i?this.M[c].Rb(b,a):this.M[c++].vb(b,a)|this.M[c&this.A].vb(0,a+1)<<8};function Hb(a,b){var c=b&a.i,d=(b&a.j)>>>a.Y;return c!=a.i?a.M[d].mc(c,b):a.M[d++].Qb(c,b)|a.M[d&a.A].Qb(0,b+1)<<8}l.Vb=function(a,b){this.M[(a&this.j)>>>this.Y].Bb(a&this.i,b&255,a)}; -l.pb=function(a,b){var c=a&this.i,d=(a&this.j)>>>this.Y;c!=this.i?this.M[d].Fc(c,b&65535,a):(this.M[d++].Bb(c,b&255,a),this.M[d&this.A].Bb(0,b>>8&255,a+1))};function Ib(a){for(var b=0,c=[],d=0;d>1)+2;10>this.Y&&(this.Y=10);15>2;this.i=this.Ca-1;this.B=this.D/this.Ca|0;this.A=this.B-1;this.Va=[];this.G=null;this.Mb=this.Ic;a=new H;zb(a,this.C);this.M=Array(this.B);for(b=0;b>8:d[2](b)&255}else if(b&1&&(d=c.Va[a&-2])&&(E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0),d[2]))return d[2](b&-2)>>8;c.f("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.Va[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.Va[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.f("warning: unconverted write access to byte @"+r(c));d.Mb(c,b,1)} +function Cb(a,b){var c=this.controller;if(a=c.Va[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.f("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.Va[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.f("warning: unconverted write access to word @"+r(c));d.Mb(c,b,0)}l=yb.prototype; +l.reset=function(){this.G&&this.G()};l.Ic=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.Y;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.Ca;g-=n;h++;continue}}return Gb(1,e,g)}e=new H(e,n,a.Ca,d,f);zb(e,a.C,k);a.M[h++]=e;e=m+a.Ca;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.rb=function(a){return this.M[(a&this.j)>>>this.Y].vb(a&this.i,a)};l.Ja=function(a){var b=a&this.i,c=(a&this.j)>>>this.Y;return b!=this.i?this.M[c].Rb(b,a):this.M[c++].vb(b,a)|this.M[c&this.A].vb(0,a+1)<<8};function Ib(a,b){var c=b&a.i,d=(b&a.j)>>>a.Y;return c!=a.i?a.M[d].mc(c,b):a.M[d++].Qb(c,b)|a.M[d&a.A].Qb(0,b+1)<<8}l.Vb=function(a,b){this.M[(a&this.j)>>>this.Y].Bb(a&this.i,b&255,a)}; +l.pb=function(a,b){var c=a&this.i,d=(a&this.j)>>>this.Y;c!=this.i?this.M[d].Hc(c,b&65535,a):(this.M[d++].Bb(c,b&255,a),this.M[d&this.A].Bb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,c=[],d=0;d>5&3;c.xa=a>>1&15;c.$b=a&257?a&1?6:4:0;Yb(c);a=c.B;a&1|256&&(b=this.b.nb&16?1:2);this.A.sb=this.A.sb&-8|b};l.ad=function(){return this.i.ta};l.sd=function(a){this.i.ta=this.i.ta&128|a&-129};l.bd=function(){return this.i.wa}; -l.td=function(a){if(128==(this.i.wa&192)&&a&64){var b=this;J(this.b,8,4,52,function(){b.i.wa|=128;return!!(b.i.wa&64)})}this.i.wa=this.i.wa&128|a&-129};l.$c=function(){return Zb(this.b)};l.rd=function(a){$b(this.b,a&-1809|Zb(this.b)&1808);this.b.N|=128}; -function ac(a){var b=a.B,c,d,f,e=b.ua>>13&7;"undefined"===typeof b.pa[e]&&(b.pa[e]={cache:[],postProcess:a.cd,drive:e,blocksize:256,mapped:0,maxblock:b.ib[e]*b.aa[e],url:"rk"+e+".dsk"});b.P&=-129;switch(b.P>>1&7){case 0:b.Tb=2496;b.ma=0;b.P=128;b.ua=0;break;case 1:if((b.ua>>4&511)>=b.ib[e]){b.ma|=32832;b.P|=49152;break}if((b.ua&15)>=b.aa[e]){b.ma|=32800;b.P|=49152;break}c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;bc(a,b.pa[e],c,d,f);return;case 2:if((b.ua>>4&511)>=b.ib[e])b.ma|= -32832,b.P|=49152;else if((b.ua&15)>=b.aa[e])b.ma|=32800,b.P|=49152;else{c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;a.bc(b.pa[e],c,d,f);return}}b.Tb=e<<13|b.Tb&8176|b.ua%9&15;J(a.b,20,5,144,function(){b.P=b.P&65534|128;return!!(b.P&64)})}l.cd=function(a,b,c,d,f){var e=this.B;e.Sb=d&65535;e.P=e.P&-49|d>>12&48;e.Ub=65536-f&65535;switch(a){case 1:e.ma|=33024;e.P|=49152;break;case 2:e.ma|=33792,e.P|=49152}J(this.b,20,5,144,function(){e.P=e.P&65534|128;return!!(e.P&64)})}; -function cc(a){var b=a.D,c,d,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.pa[e]&&(b.pa[e]={cache:[],postProcess:a.dd,drive:e,blocksize:128,mapped:1,maxblock:b.ib[e]*b.aa[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.$a&8&&(b.K&=63);b.$a=b.Ic[e]|b.gb&64;break;case 3:1==(b.fa&3)&&(b.gb=b.fa&4?b.gb+(b.fa&65408)&65408|b.fa<<2&64:b.gb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.gb);break;case 4:b.$a=b.gb;break;case 5:if(b.fa>>6>=b.ib[e]){b.K|=37888;break}if((b.fa&63)>=b.aa[e]){b.K|=37888;break}c=(b.fa>>6)* -b.aa[e]+(b.fa&63);d=(b.Va&63)<<16|b.Jb;f=65536-b.$a&65535;bc(a,b.pa[e],c,d,f);return;case 6:if(b.fa>>6>=b.ib[e])b.K|=37888;else if((b.fa&63)>=b.aa[e])b.K|=37888;else{c=(b.fa>>6)*b.aa[e]+(b.fa&63);d=(b.Va&63)<<16|b.Jb;f=65536-b.$a&65535;a.bc(b.pa[e],c,d,f);return}}J(a.b,20,5,112,function(){b.K|=129;return!!(b.K&64)})} -l.dd=function(a,b,c,d,f){var e=this.D;e.Jb=d&65535;e.K=e.K&-49|d>>12&48;e.Va=d>>16&63;e.fa=~~(c/e.aa[b.Oa])<<6|c%e.aa[b.Oa];e.gb=e.fa;e.$a=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}J(this.b,20,5,112,function(){e.K|=129;return!!(e.K&64)})};function dc(a){a=a.G;a.S=2176;a.Ea=0;a.ra=[4544,4544,4544,4544,4544,4544,4544,4544];a.xb=[0,0,0,0,0,0,0,0];a.ob=a.yb=a.wb=a.fb=a.oc=0} -function ec(a,b){var c=a.G,d,f,e;c.S&=-16513;c.Ea&=-2049;c.ra[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof c.pa[b]&&(c.pa[b]={cache:[],postProcess:a.ed,drive:b,blocksize:256,mapped:0,maxblock:c.fc[0]*c.hb[0]*c.aa[0],url:"rp"+b+".dsk"});switch(c.S&63){case 5:c.ec[b]=c.Ta[b];c.S|=32896;c.ra[b]|=32896;c.ob|=1<=c.fc[0]||c.Fa[b]>>8>=c.hb[0]||(c.Fa[b]&255)>=c.aa[0]){c.xb[b]|=1024;c.S|=49152;break}d=(c.Ta[b]*c.hb[0]+(c.Fa[b]>>8))* -c.aa[0]+(c.Fa[b]&255);f=(c.fb&63)<<16|c.wb;e=65536-c.yb&65535;bc(a,c.pa[b],d,f,e);return;case 57:if(c.Ta[b]>=c.fc[0]||c.Fa[b]>>8>=c.hb[0]||(c.Fa[b]&255)>=c.aa[0])c.xb[b]|=1024,c.S|=49152;else{d=(c.Ta[b]*c.hb[0]+(c.Fa[b]>>8))*c.aa[0]+(c.Fa[b]&255);f=(c.fb&63)<<16|c.wb;e=65536-c.yb&65535;a.bc(c.pa[b],d,f,e);return}}J(a.b,3,5,172,function(){c.S=c.S&65534|128;c.ra[b]|=128;return!!(c.S&64)})} -l.ed=function(a,b,c,d,f){var e=this.G;e.yb=65536-f&65535;e.wb=d&65535;e.S=e.S&-769|d>>8&768;e.fb=d>>16&63;f=~~(c/e.aa[0]);d=~~(f/e.hb[0]);e.Fa[b.Oa]=f%e.hb[0]<<8|c%e.aa[0];e.ec[b.Oa]=e.Ta[b.Oa]=d;e.ob|=1<=b.Vc-1&&(e.ra[b.Oa]|=1024);switch(a){case 1:e.Ea|=512;e.S|=49152;break;case 2:e.Ea|=2048,e.S|=49152}J(this.b,20,5,172,function(){e.ra[b.Oa]|=128;e.S=e.S&65534|128;return!!(e.S&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.kc(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.kc(0,b,c,d,f)}l.reset=function(){this.A.sb=this.A.sb&-120|20;this.i.ta=0;this.i.wa=128;this.j.Za=0;this.B.P=128;this.D.K=128;dc(this)}; -l.Hc=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.nc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nc=d;e.Sa=2}break;case 4194294:if(70!==e.lb)return e.L(4,222);0>b?d=e.H:d=e.H=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.ic[f]:(d=K(this,e.ic[f],a,b,c),0<=d&&(e.ic[f]=d));break;case 4194254:return a&1?e.O>>14&1?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Da[3]=b),d=e.Da[3]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Da[1]=b),d=e.Da[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.O&2048?(0<=b&&(e.g[f]=b),d=e.g[f]):(0<=b&&(e.eb[f]= -b),d=e.eb[f]),d;case 4194246:return a&1?(0<=b&&(e.g[7]=b),d=e.g[7]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Da[0]=b),d=e.Da[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.O&2048?(0<=b&&(e.eb[f]=b),d=e.eb[f]):(0<=b&&(e.g[f]=b),d=e.g[f]),d;default:return e.H|=16,e.L(4,124)}break;case 4194176:f=a>>1&31;d=K(this,e.la[3][f],a,b,c);0<=d&&(e.la[3][f]=d,e.la[3][f&15]&=65295);break;case 4194112:var g=this.i;switch(a&-2){case 4194174:d=K(this,e.dc,a,b,c);0<=d&&(e.dc=d);break;case 4194172:d= -e.bb;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.A.nd&65535:(d=K(this,this.A.data,a,b,c),0<=d&&(this.A.data=d));break;case 4194166:0<=b&&(b&127&&(g.Mc=0),g.wa&=-129,J(e,100,4,52,function(){g.wa|=128;return!!(g.wa&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ta&=-129,0b?d=g.ta:(d=K(this,g.ta,a,b,c),0<=d&&(g.ta=g.ta&128|d&-129));break;default:return e.H|=16,e.L(4, -126)}break;case 4194048:f=this.B;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.ma,a,b,c);0<=d&&(f.ma=d);break;case 4194052:d=K(this,f.P,a,b,c);0<=b&&0<=d&&(f.P=d&-36993|f.P&36992,f.P&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.ua,a,b,c);0<=d&&(f.ua=d);break;case 4194060:break;case 4194062:d=K(this,f.Ac,a,b,c);0<=d&&(f.Ac=d);break;default:return e.H|= -16,e.L(4,128)}break;case 4193728:var h=this.G;f=h.Ea&7;switch(a&-2){case 4193728:d=K(this,h.S,a,b,c);0<=b&&0<=d&&(h.fb=h.fb&60|d>>8&3,h.S=d&17279|h.S&34944|2048,d&1&&h.S&128?ec(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.yb,a,b,c);0<=d&&(h.yb=d);break;case 4193732:d=K(this,h.wb,a,b,c);0<=d&&(h.wb=d&65534);break;case 4193734:d=K(this,h.Fa[f],a,b,c);0<=d&&(h.Fa[f]=d&7967);break;case 4193736:d=K(this,h.Ea,a,b,c);0<=d&&(h.Ea=d&63|h.Ea&65472,d&128&&dc(this));break;case 4193738:d= -h.ra[f];break;case 4193740:d=h.xb[f];break;case 4193742:d=K(this,h.ob,a,b,c);0<=d&&(h.ob=d&255);break;case 4193744:d=h.kd[f];break;case 4193746:d=K(this,h.Bc,a,b,c);0<=d&&(h.Bc=d);break;case 4193748:d=K(this,h.Cc[f],a,b,c);0<=d&&(h.Cc[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.ld[f];break;case 4193754:d=K(this,h.Dc[f],a,b,c);0<=d&&(h.Dc[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.ec[f]=h.Ta[f];d=h.ec[f];break;case 4193760:d=h.hd[f]; -break;case 4193762:d=h.jd[f];break;case 4193764:d=h.fd[f];break;case 4193766:d=h.gd[f];break;case 4193768:d=K(this,h.fb,a,b,c);0<=d&&(h.fb=d&63,h.S=h.S&-769|(d&3)<<8);break;case 4193770:d=K(this,h.oc,a,b,c);0<=d&&(h.oc=d);break;default:return e.H|=16,e.L(4,132)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=K(this,f.K,a,b,c);0<=b&&0<=d&&(f.Va=f.Va&60|d>>4&3,f.K=f.K&-1023|d&1022,f.K&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.fa, -a,b,c);0<=d&&(f.fa=d);break;case 4192518:d=K(this,f.$a,a,b,c);0<=d&&(f.$a=d);break;case 4192520:d=K(this,f.Va,a,b,c);0<=d&&(f.Va=d&63,f.K=f.K&-49|(f.Va&3)<<4);break;default:return e.H|=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.ac[0]=d&4?15:7,e.ac[1]=d&2?15:7,e.ac[3]=d&1?15:7,e.$b&&(f=2,e.nb&16&&(f=1),this.A.sb=this.A.sb&-8|f)));break;default:return e.H|=16,e.L(4,136)}break;case 4191424:f=a>>1&31;d=K(this,e.la[0][f], -a,b,c);0<=d&&(e.la[0][f]=d,e.la[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.la[1][f],a,b,c);0<=d&&(e.la[1][f]=d,e.la[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.lb)return e.L(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=Mb[a>>1&255];else return e.H|=16,e.L(4, -138);break;default:return e.H|=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={},Kb=(hc[65382]=[null,null,I.prototype.Yc,I.prototype.pd,"LKS"],hc[65392]=[null,null,I.prototype.ad,I.prototype.sd,"RCSR"],hc[65396]=[null,null,I.prototype.bd,I.prototype.td,"XCSR"],hc[65402]=[null,null,I.prototype.Zc,I.prototype.qd,"MMR0"],hc[65534]=[null,null,I.prototype.$c,I.prototype.rd,"PSW"],hc); -Oa(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>2),b=0;b>8,c)},ea:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa: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},ca:function(a,b){if(this.C&&null!=this.w){var c=this.C;vc(c,this.w+a,1,c.W)&&c.na(!0)}return this.Qb(a,b)},ja:function(a,b){if(this.C&&null!=this.w){var c=this.C;vc(c,this.w+a,2,c.W)&&c.na(!0)}return this.mc(a,b)},ya:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,1,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.Cb(a, -b,c)},La:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,2,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.rc(a,b,c)},$:function(a){return this.I[a]},da:function(a){return this.I[a]},ha:function(a){return this.G.getUint16(a,!0)},oa:function(a){return a&1?this.I[a]|this.I[a+1]<<8:this.R[a>>1]},xa:function(a,b){this.I[a]=b;this.Xa=!0},za:function(a,b){this.I[a]=b;this.Xa=!0},Ha:function(a,b){this.G.setUint16(a,b,!0);this.Xa=!0},Db:function(a,b){a&1?(this.I[a]=b,this.I[a+1]=b>>8):this.R[a>> -1]=b;this.Xa=!0}};function yb(a,b,c){a.C=b;a.j=a.A=0;c&&((a.j=c.j)&&uc(a,tc,!1),(a.A=c.A)&&sc(a,tc,!1))}function wc(a,b){b?--a.A||(a.Bb=a.i?a.B:a.Cb,a.Fc=a.i?a.J:a.rc):--a.j||(a.vb=a.Qb,a.Rb=a.mc)}function sc(a,b,c){c&&a.A||(a.Bb=!a.i&&b[1]||a.B,a.Fc=!a.i&&b[3]||a.J);if(c||void 0===c)a.Cb=b[1]||a.B,a.rc=b[3]||a.J}function uc(a,b,c){c&&a.j||(a.vb=b[0]||a.T,a.Rb=b[2]||a.W);if(c||void 0===c)a.Qb=b[0]||a.T,a.mc=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.ea,H.prototype.Ba,H.prototype.sa,H.prototype.Ma],tc=[H.prototype.ca,H.prototype.ya,H.prototype.ja,H.prototype.La];if(ub)var qc=[H.prototype.$,H.prototype.xa,H.prototype.ha,H.prototype.Ha],pc=[H.prototype.da,H.prototype.za,H.prototype.oa,H.prototype.Db]; -function yc(a,b){v.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.za=a.cycles||b;this.ab=c;this.Ha=Math.round(this.za/1E4)/100;this.mb=this.Ha*this.ab;this.u.ga=!1;this.u.pc=!1;this.u.Hb=a.autoStart;this.u.xc=!1;this.u.qb=!1;this.Nb=this.ca=0;this.Ob=a.csStart;this.tb=a.csInterval;this.ub=a.csStop;this.D=[];this.Ma=this.md.bind(this);F(this)}B(yc);var zc=["power","reset"];l=yc.prototype; -l.Ya=function(a,b,c,d){this.i=a;this.F=b;this.C=d;for(b=0;b=a.ca&&(a.ca+=a.tb,c=!0);0<=a.ub&&a.ub<=Tc(a)&&(a.tb=a.ub=-1,Qc(a),a.na(),c=!0);c&&a.f(Tc(a)+" cycles: checksum="+t(a.Nb))}} -function Uc(a,b,c,d){if(a.I[b]){void 0===c&&(tb(a,"Value for "+b+" is invalid"),a.na());var f=a.C&&a.C.ea||8;c=!a.u.ga||a.u.xc?8==f?r(c,d):t(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}} -l.va=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.I[b]=c;a=!0;break;case "run":this.I[b]=c;c.onclick=function(){var a;if(a=d.i)if(a=d.i,a.u.ia)a=!0;else{var b=null,c,h=$a(a.id);for(c=0;ca.R/a.mb?b=1:d=!0;a.ab=b;b=a.Ha*a.ab;if(a.mb!=b){a.mb=b;b=a.mb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.f("target speed: "+b)}c&&a.i&&a.i.Xb()}Wc(a,a.J);a.J=0;a.G=pa();a.T=0;Xc(a);return d}function Nb(a,b){var c=a.D.length;a.D.push([-1,b]);return c}function Xb(a,b){var c;0<=b&&ba.D[b][0]&&(c=a.za*a.ab/1E3*(1E3/60),a.D[b][0]=c)}function Yc(a){a.W-=a.b;a.b=0} -l.md=function(){if(this.u.ga){this.La>=this.za&&Xc(this,!0);this.ja=0;this.ya=pa();if(this.T){var a=this.ya-this.T;a>this.Ib&&(this.G+=a,this.G>this.ya&&(this.G=this.ya))}try{do{for(var b,c=this.u.qb?1:this.Ba,d=this.D.length-1;0<=d;d--){var f=this.D[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Ab(b)}catch(k){if("number"!=typeof k)throw k;}for(var e=this.W-this.b,a=e,g=this.D.length-1;0<=g;g--){var h=this.D[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ja+=e;this.J+=e;Wc(this,0,!0);Sc(this,e);this.da-= -e;if(0>=this.da){this.da+=this.Ba;15<=++this.Lb&&(this.i&&this.i.Ga(),this.Lb=0);break}}while(this.u.ga)}catch(k){this.na();L(this);this.i&&this.i.stop(pa(),Tc(this));tb(this,k.stack||k.message);return}if(this.u.ga){b=setTimeout;c=this.Ma;this.T=pa();d=this.Ib;this.ja&&(d=Math.round(d*this.ja/this.Ba));d-=this.T-this.ya;if(f=this.T-this.G)this.R=Math.round(this.J/(10*f))/100,864E5<=f&&(this.$=0,Vc(this));if(0>d||this.Rd&&(this.G-=d),d=0;this.La+=this.ja;this.T+=d;b(c,d)}}}; -l.zb=function(a){if(sb(this))return!1;if(this.u.ga)return this.f(this.toString()+" busy"),!1;Vc(this);this.u.ga=!0;this.u.pc=!0;this.ha&&this.ha.start();var b=this.I.run;b&&(b.textContent="Halt");this.i&&(this.i.start(this.G,Tc(this)),a&&this.i.Xb(!0));L(this,!0);setTimeout(this.Ma,0);return!0};l.Ab=function(){return 0}; -l.na=function(a){if(this.u.ga){Yc(this);Wc(this,this.J);this.J=0;this.u.ga=!1;this.ha&&this.ha.stop();var b=this.I.run;b&&(b.textContent="Run");this.i&&this.i.stop(pa(),Tc(this));L(this)}this.u.complete=a};function L(a,b){a.i&&a.i.Ga(b)} -function Zc(a){this.Wc=+a.model||1170;this.jc=a.resetAddr||0;yc.call(this,a,1E6);this.Fb=0;this.decode=$c.bind(this);this.U=65536;this.V=32768;this.Z=65535;this.X=32768;this.O=15;this.g=[0,0,0,0,0,0,0,this.jc];this.eb=[0,0,0,0,0,0];this.Da=[0,0,0,0];this.xa=this.A=0;this.la=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.ic=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.N=0;this.lb=70;this.ea=-1;this.oa=0;ad(this);this.u.complete=this.u.Lc=!1}B(Zc,yc);l=Zc.prototype;l.reset=function(){this.u.ga&&this.na();ad(this);Pc(this);this.u.error=!1;this.parent.reset.call(this)}; -function ad(a){a.cb=255;a.H=0;a.nc=0;a.B=0;a.bb=0;a.dc=0;a.nb=0;a.$b=0;a.sa=0;a.ac=[7,7,7,7];a.j=[];a.Sa=2;Yb(a)}function Yb(a){a.$b?(a.Eb=65536,a.ba=a.Sc,a.Rb=a.Aa):(a.Eb=0,a.ba=a.Rc,a.Rb=a.cc)}l.zc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.$,this.ab]);a.set(2,Ib(this.F));return a.data()}; -l.restore=function(a){var b=a[1];this.$=b[1];Vc(this,b[3]);a:{b=this.F;a=a[2];var c;for(c=0;c>5&3;c.xa=a>>1&15;c.$b=a&257?a&1?6:4:0;Yb(c);a=c.B;a&1|256&&(b=this.b.nb&16?1:2);this.A.sb=this.A.sb&-8|b};l.cd=function(){return this.i.ta};l.ud=function(a){this.i.ta=this.i.ta&128|a&-129};l.dd=function(){return this.i.wa}; +l.vd=function(a){if(128==(this.i.wa&192)&&a&64){var b=this;J(this.b,8,4,52,function(){b.i.wa|=128;return!!(b.i.wa&64)})}this.i.wa=this.i.wa&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.N|=128}; +function ac(a){var b=a.B,c,d,f,e=b.ua>>13&7;"undefined"===typeof b.pa[e]&&(b.pa[e]={cache:[],postProcess:a.ed,drive:e,blocksize:256,mapped:0,maxblock:b.ib[e]*b.aa[e],url:"rk"+e+".dsk"});b.P&=-129;switch(b.P>>1&7){case 0:b.Tb=2496;b.ma=0;b.P=128;b.ua=0;break;case 1:if((b.ua>>4&511)>=b.ib[e]){b.ma|=32832;b.P|=49152;break}if((b.ua&15)>=b.aa[e]){b.ma|=32800;b.P|=49152;break}c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;bc(a,b.pa[e],c,d,f);return;case 2:if((b.ua>>4&511)>=b.ib[e])b.ma|= +32832,b.P|=49152;else if((b.ua&15)>=b.aa[e])b.ma|=32800,b.P|=49152;else{c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;a.bc(b.pa[e],c,d,f);return}}b.Tb=e<<13|b.Tb&8176|b.ua%9&15;J(a.b,20,5,144,function(){b.P=b.P&65534|128;return!!(b.P&64)})}l.ed=function(a,b,c,d,f){var e=this.B;e.Sb=d&65535;e.P=e.P&-49|d>>12&48;e.Ub=65536-f&65535;switch(a){case 1:e.ma|=33024;e.P|=49152;break;case 2:e.ma|=33792,e.P|=49152}J(this.b,20,5,144,function(){e.P=e.P&65534|128;return!!(e.P&64)})}; +function cc(a){var b=a.D,c,d,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.pa[e]&&(b.pa[e]={cache:[],postProcess:a.fd,drive:e,blocksize:128,mapped:1,maxblock:b.ib[e]*b.aa[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.ab&8&&(b.K&=63);b.ab=b.Kc[e]|b.gb&64;break;case 3:1==(b.fa&3)&&(b.gb=b.fa&4?b.gb+(b.fa&65408)&65408|b.fa<<2&64:b.gb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.gb);break;case 4:b.ab=b.gb;break;case 5:if(b.fa>>6>=b.ib[e]){b.K|=37888;break}if((b.fa&63)>=b.aa[e]){b.K|=37888;break}c=(b.fa>>6)* +b.aa[e]+(b.fa&63);d=(b.Wa&63)<<16|b.Jb;f=65536-b.ab&65535;bc(a,b.pa[e],c,d,f);return;case 6:if(b.fa>>6>=b.ib[e])b.K|=37888;else if((b.fa&63)>=b.aa[e])b.K|=37888;else{c=(b.fa>>6)*b.aa[e]+(b.fa&63);d=(b.Wa&63)<<16|b.Jb;f=65536-b.ab&65535;a.bc(b.pa[e],c,d,f);return}}J(a.b,20,5,112,function(){b.K|=129;return!!(b.K&64)})} +l.fd=function(a,b,c,d,f){var e=this.D;e.Jb=d&65535;e.K=e.K&-49|d>>12&48;e.Wa=d>>16&63;e.fa=~~(c/e.aa[b.Oa])<<6|c%e.aa[b.Oa];e.gb=e.fa;e.ab=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}J(this.b,20,5,112,function(){e.K|=129;return!!(e.K&64)})};function dc(a){a=a.G;a.S=2176;a.Da=0;a.ra=[4544,4544,4544,4544,4544,4544,4544,4544];a.xb=[0,0,0,0,0,0,0,0];a.ob=a.yb=a.wb=a.fb=a.oc=0} +function ec(a,b){var c=a.G,d,f,e;c.S&=-16513;c.Da&=-2049;c.ra[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof c.pa[b]&&(c.pa[b]={cache:[],postProcess:a.gd,drive:b,blocksize:256,mapped:0,maxblock:c.fc[0]*c.hb[0]*c.aa[0],url:"rp"+b+".dsk"});switch(c.S&63){case 5:c.ec[b]=c.Ua[b];c.S|=32896;c.ra[b]|=32896;c.ob|=1<=c.fc[0]||c.Ea[b]>>8>=c.hb[0]||(c.Ea[b]&255)>=c.aa[0]){c.xb[b]|=1024;c.S|=49152;break}d=(c.Ua[b]*c.hb[0]+(c.Ea[b]>>8))* +c.aa[0]+(c.Ea[b]&255);f=(c.fb&63)<<16|c.wb;e=65536-c.yb&65535;bc(a,c.pa[b],d,f,e);return;case 57:if(c.Ua[b]>=c.fc[0]||c.Ea[b]>>8>=c.hb[0]||(c.Ea[b]&255)>=c.aa[0])c.xb[b]|=1024,c.S|=49152;else{d=(c.Ua[b]*c.hb[0]+(c.Ea[b]>>8))*c.aa[0]+(c.Ea[b]&255);f=(c.fb&63)<<16|c.wb;e=65536-c.yb&65535;a.bc(c.pa[b],d,f,e);return}}J(a.b,3,5,172,function(){c.S=c.S&65534|128;c.ra[b]|=128;return!!(c.S&64)})} +l.gd=function(a,b,c,d,f){var e=this.G;e.yb=65536-f&65535;e.wb=d&65535;e.S=e.S&-769|d>>8&768;e.fb=d>>16&63;f=~~(c/e.aa[0]);d=~~(f/e.hb[0]);e.Ea[b.Oa]=f%e.hb[0]<<8|c%e.aa[0];e.ec[b.Oa]=e.Ua[b.Oa]=d;e.ob|=1<=b.Xc-1&&(e.ra[b.Oa]|=1024);switch(a){case 1:e.Da|=512;e.S|=49152;break;case 2:e.Da|=2048,e.S|=49152}J(this.b,20,5,172,function(){e.ra[b.Oa]|=128;e.S=e.S&65534|128;return!!(e.S&64)})}; +function fc(a,b,c,d,f,e){var g=~~((e+c.Xa-1)/c.Xa),h=new XMLHttpRequest;2048>g&&d+2048g){b.kc(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.kc(0,b,c,d,f)}l.reset=function(){this.A.sb=this.A.sb&-120|20;this.i.ta=0;this.i.wa=128;this.j.$a=0;this.B.P=128;this.D.K=128;dc(this)}; +l.Jc=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.nc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nc=d;e.Sa=2}break;case 4194294:if(70!==e.lb)return e.L(4,222);0>b?d=e.H:d=e.H=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.ic[f]:(d=K(this,e.ic[f],a,b,c),0<=d&&(e.ic[f]=d));break;case 4194254:return a&1?e.O>>14&1?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[3]=b),d=e.Aa[3]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[1]=b),d=e.Aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.O&2048?(0<=b&&(e.g[f]=b),d=e.g[f]):(0<=b&&(e.Ta[f]= +b),d=e.Ta[f]),d;case 4194246:return a&1?(0<=b&&(e.g[7]=b),d=e.g[7]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[0]=b),d=e.Aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.O&2048?(0<=b&&(e.Ta[f]=b),d=e.Ta[f]):(0<=b&&(e.g[f]=b),d=e.g[f]),d;default:return e.H|=16,e.L(4,124)}break;case 4194176:f=a>>1&31;d=K(this,e.la[3][f],a,b,c);0<=d&&(e.la[3][f]=d,e.la[3][f&15]&=65295);break;case 4194112:var g=this.i;switch(a&-2){case 4194174:d=K(this,e.dc,a,b,c);0<=d&&(e.dc=d);break;case 4194172:d= +e.cb;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.A.pd&65535:(d=K(this,this.A.data,a,b,c),0<=d&&(this.A.data=d));break;case 4194166:0<=b&&(b&127&&(g.Oc=0),g.wa&=-129,J(e,100,4,52,function(){g.wa|=128;return!!(g.wa&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ta&=-129,0b?d=g.ta:(d=K(this,g.ta,a,b,c),0<=d&&(g.ta=g.ta&128|d&-129));break;default:return e.H|=16,e.L(4, +126)}break;case 4194048:f=this.B;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.ma,a,b,c);0<=d&&(f.ma=d);break;case 4194052:d=K(this,f.P,a,b,c);0<=b&&0<=d&&(f.P=d&-36993|f.P&36992,f.P&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.ua,a,b,c);0<=d&&(f.ua=d);break;case 4194060:break;case 4194062:d=K(this,f.Cc,a,b,c);0<=d&&(f.Cc=d);break;default:return e.H|= +16,e.L(4,128)}break;case 4193728:var h=this.G;f=h.Da&7;switch(a&-2){case 4193728:d=K(this,h.S,a,b,c);0<=b&&0<=d&&(h.fb=h.fb&60|d>>8&3,h.S=d&17279|h.S&34944|2048,d&1&&h.S&128?ec(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.yb,a,b,c);0<=d&&(h.yb=d);break;case 4193732:d=K(this,h.wb,a,b,c);0<=d&&(h.wb=d&65534);break;case 4193734:d=K(this,h.Ea[f],a,b,c);0<=d&&(h.Ea[f]=d&7967);break;case 4193736:d=K(this,h.Da,a,b,c);0<=d&&(h.Da=d&63|h.Da&65472,d&128&&dc(this));break;case 4193738:d= +h.ra[f];break;case 4193740:d=h.xb[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.Dc,a,b,c);0<=d&&(h.Dc=d);break;case 4193748:d=K(this,h.Ec[f],a,b,c);0<=d&&(h.Ec[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.nd[f];break;case 4193754:d=K(this,h.Fc[f],a,b,c);0<=d&&(h.Fc[f]=d);break;case 4193756:d=K(this,h.Ua[f],a,b,c);0<=d&&(h.Ua[f]=d&511);break;case 4193758:h.ec[f]=h.Ua[f];d=h.ec[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.fb,a,b,c);0<=d&&(h.fb=d&63,h.S=h.S&-769|(d&3)<<8);break;case 4193770:d=K(this,h.oc,a,b,c);0<=d&&(h.oc=d);break;default:return e.H|=16,e.L(4,132)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=K(this,f.K,a,b,c);0<=b&&0<=d&&(f.Wa=f.Wa&60|d>>4&3,f.K=f.K&-1023|d&1022,f.K&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.fa, +a,b,c);0<=d&&(f.fa=d);break;case 4192518:d=K(this,f.ab,a,b,c);0<=d&&(f.ab=d);break;case 4192520:d=K(this,f.Wa,a,b,c);0<=d&&(f.Wa=d&63,f.K=f.K&-49|(f.Wa&3)<<4);break;default:return e.H|=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.ac[0]=d&4?15:7,e.ac[1]=d&2?15:7,e.ac[3]=d&1?15:7,e.$b&&(f=2,e.nb&16&&(f=1),this.A.sb=this.A.sb&-8|f)));break;default:return e.H|=16,e.L(4,136)}break;case 4191424:f=a>>1&31;d=K(this,e.la[0][f], +a,b,c);0<=d&&(e.la[0][f]=d,e.la[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.la[1][f],a,b,c);0<=d&&(e.la[1][f]=d,e.la[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.lb)return e.L(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.H|=16,e.L(4, +138);break;default:return e.H|=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.$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); +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>2),b=0;b>8,c)},ea:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa: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},ca:function(a,b){if(this.C&&null!=this.w){var c=this.C;vc(c,this.w+a,1,c.W)&&c.na(!0)}return this.Qb(a,b)},ja:function(a,b){if(this.C&&null!=this.w){var c=this.C;vc(c,this.w+a,2,c.W)&&c.na(!0)}return this.mc(a,b)},ya:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,1,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.Cb(a, +b,c)},La:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,2,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.rc(a,b,c)},$:function(a){return this.I[a]},da:function(a){return this.I[a]},ha:function(a){return this.G.getUint16(a,!0)},oa:function(a){return a&1?this.I[a]|this.I[a+1]<<8:this.R[a>>1]},xa:function(a,b){this.I[a]=b;this.Ya=!0},za:function(a,b){this.I[a]=b;this.Ya=!0},Ga:function(a,b){this.G.setUint16(a,b,!0);this.Ya=!0},Db:function(a,b){a&1?(this.I[a]=b,this.I[a+1]=b>>8):this.R[a>> +1]=b;this.Ya=!0}};function zb(a,b,c){a.C=b;a.j=a.A=0;c&&((a.j=c.j)&&uc(a,tc,!1),(a.A=c.A)&&sc(a,tc,!1))}function wc(a,b){b?--a.A||(a.Bb=a.i?a.B:a.Cb,a.Hc=a.i?a.J:a.rc):--a.j||(a.vb=a.Qb,a.Rb=a.mc)}function sc(a,b,c){c&&a.A||(a.Bb=!a.i&&b[1]||a.B,a.Hc=!a.i&&b[3]||a.J);if(c||void 0===c)a.Cb=b[1]||a.B,a.rc=b[3]||a.J}function uc(a,b,c){c&&a.j||(a.vb=b[0]||a.T,a.Rb=b[2]||a.W);if(c||void 0===c)a.Qb=b[0]||a.T,a.mc=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.ea,H.prototype.Ba,H.prototype.sa,H.prototype.Ma],tc=[H.prototype.ca,H.prototype.ya,H.prototype.ja,H.prototype.La];if(vb)var qc=[H.prototype.$,H.prototype.xa,H.prototype.ha,H.prototype.Ga],pc=[H.prototype.da,H.prototype.za,H.prototype.oa,H.prototype.Db]; +function yc(a,b){w.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.za=a.cycles||b;this.bb=c;this.Ga=Math.round(this.za/1E4)/100;this.mb=this.Ga*this.bb;this.u.ga=!1;this.u.pc=!1;this.u.Hb=a.autoStart;this.u.xc=!1;this.u.qb=!1;this.Nb=this.ca=0;this.Ob=a.csStart;this.tb=a.csInterval;this.ub=a.csStop;this.D=[];this.Ma=this.od.bind(this);F(this)}B(yc);var zc=["power","reset"];l=yc.prototype; +l.Za=function(a,b,c,d){this.i=a;this.F=b;this.C=d;for(b=0;b=a.ca&&(a.ca+=a.tb,c=!0);0<=a.ub&&a.ub<=Yc(a)&&(a.tb=a.ub=-1,Vc(a),a.na(),c=!0);c&&a.f(Yc(a)+" cycles: checksum="+t(a.Nb))}} +function Zc(a,b,c,d){if(a.I[b]){void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.na());var f=a.C&&a.C.ea||8;c=!a.u.ga||a.u.xc?8==f?r(c,d):t(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}} +l.va=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.I[b]=c;a=!0;break;case "run":this.I[b]=c;c.onclick=function(){var a;if(a=d.i)if(a=d.i,a.u.ia)a=!0;else{var b=null,c,h=ab(a.id);for(c=0;ca.R/a.mb?b=1:d=!0;a.bb=b;b=a.Ga*a.bb;if(a.mb!=b){a.mb=b;b=a.mb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.f("target speed: "+b)}c&&a.i&&a.i.Xb()}ad(a,a.J);a.J=0;a.G=pa();a.T=0;bd(a);return d}function Ob(a,b){var c=a.D.length;a.D.push([-1,b]);return c}function Xb(a,b){var c;0<=b&&ba.D[b][0]&&(c=a.za*a.bb/1E3*(1E3/60),a.D[b][0]=c)}function cd(a){a.W-=a.b;a.b=0} +l.od=function(){if(this.u.ga){this.La>=this.za&&bd(this,!0);this.ja=0;this.ya=pa();if(this.T){var a=this.ya-this.T;a>this.Ib&&(this.G+=a,this.G>this.ya&&(this.G=this.ya))}try{do{for(var b,c=this.u.qb?1:this.Ba,d=this.D.length-1;0<=d;d--){var f=this.D[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Ab(b)}catch(k){if("number"!=typeof k)throw k;}for(var e=this.W-this.b,a=e,g=this.D.length-1;0<=g;g--){var h=this.D[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ja+=e;this.J+=e;ad(this,0,!0);Xc(this,e);this.da-= +e;if(0>=this.da){this.da+=this.Ba;15<=++this.Lb&&(this.i&&this.i.Fa(),this.Lb=0);break}}while(this.u.ga)}catch(k){this.na();L(this);this.i&&this.i.stop(pa(),Yc(this));ub(this,k.stack||k.message);return}if(this.u.ga){b=setTimeout;c=this.Ma;this.T=pa();d=this.Ib;this.ja&&(d=Math.round(d*this.ja/this.Ba));d-=this.T-this.ya;if(f=this.T-this.G)this.R=Math.round(this.J/(10*f))/100,864E5<=f&&(this.$=0,$c(this));if(0>d||this.Rd&&(this.G-=d),d=0;this.La+=this.ja;this.T+=d;b(c,d)}}}; +l.zb=function(a){if(tb(this))return!1;if(this.u.ga)return this.f(this.toString()+" busy"),!1;$c(this);this.u.ga=!0;this.u.pc=!0;this.ha&&this.ha.start();var b=this.I.run;b&&(b.textContent="Halt");this.i&&(this.i.start(this.G,Yc(this)),a&&this.i.Xb(!0));L(this,!0);setTimeout(this.Ma,0);return!0};l.Ab=function(){return 0}; +l.na=function(a){if(this.u.ga){cd(this);ad(this,this.J);this.J=0;this.u.ga=!1;this.ha&&this.ha.stop();var b=this.I.run;b&&(b.textContent="Run");this.i&&this.i.stop(pa(),Yc(this));L(this)}this.u.complete=a};function L(a,b){a.i&&a.i.Fa(b)} +function dd(a){this.Yc=+a.model||1170;this.jc=a.resetAddr||0;yc.call(this,a,1E6);this.Fb=0;this.decode=ed.bind(this);this.U=65536;this.V=32768;this.Z=65535;this.X=32768;this.O=15;this.g=[0,0,0,0,0,0,0,this.jc];this.Ta=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.xa=this.A=0;this.la=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.ic=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.N=0;this.lb=70;this.ea=-1;this.oa=0;fd(this);this.u.complete=this.u.Nc=!1}B(dd,yc);l=dd.prototype;l.reset=function(){this.u.ga&&this.na();fd(this);Bc(this);this.u.error=!1;this.parent.reset.call(this)}; +function fd(a){a.eb=255;a.H=0;a.nc=0;a.B=0;a.cb=0;a.dc=0;a.nb=0;a.$b=0;a.sa=0;a.ac=[7,7,7,7];a.j=[];a.Sa=2;Yb(a)}function Yb(a){a.$b?(a.Eb=65536,a.ba=a.Uc,a.Rb=a.Ka):(a.Eb=0,a.ba=a.Tc,a.Rb=a.cc)}l.zc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.$,this.bb]);a.set(2,Jb(this.F));return a.data()}; +l.restore=function(a){var b=a[1];this.$=b[1];$c(this,b[3]);a:{b=this.F;a=a[2];var c;for(c=0;cb){a.j[e].Ia-=b;break}b-=a.j[e].Ia}a.j.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.Sa=2}function Zb(a){return a.O=a.O&63728|a.Pa()|cd(a)|bd(a)|N(a)} -function $b(a,b){a.X=b<<12;a.Z=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.O)&2048)for(var c=a.eb.length;0<=--c;){var d=a.g[c];a.g[c]=a.eb[c];a.eb[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Da[c]=a.g[6],a.g[6]=a.Da[a.A]);a.Sa=2;a.O=b}function dd(a,b,c){a.N&128||(a.X=a.Z=a.U=b,a.V=c||0)}function O(a,b){a.N&128||(a.X=a.Z=b,a.V=0)}function ed(a,b,c,d){a.N&128||(a.X=a.Z=a.U=b,a.V=(c^b)&(d^b))}function fd(a,b){a.N&128||(a.X=a.Z=a.U=b,a.V=a.X^a.U>>1)}function gd(a,b,c,d){a.N&128||(a.X=a.Z=a.U=b,a.V=(c^d)&(d^b))} -l.L=function(a){var b=!1;0>this.ea?this.ea=Zb(this):this.A||(a=4,b=!0);this.B&57344||(this.bb=63222,this.dc=a);this.A=0;var c=this.Aa(a|65536),d=this.Aa(a+2&65535|65536);$b(this,d&-12289|this.ea>>2&12288);b&&(this.H|=4,this.g[6]=4);hd(this,this.ea);hd(this,this.g[7]);this.g[7]=c;this.N&=-113;this.ea=-1;throw a;};function id(a){var b=jd(a),c=jd(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);a.g[7]=b&65535;$b(a,c);a.N&=-17} +l.Fa=function(a){if(this.Fb&&(a||!this.u.ga||this.u.xc)){for(a=0;ab){a.j[e].Ha-=b;break}b-=a.j[e].Ha}a.j.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.Sa=2}function Zb(a){return a.O=a.O&63728|a.Pa()|hd(a)|gd(a)|N(a)} +function $b(a,b){a.X=b<<12;a.Z=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.O)&2048)for(var c=a.Ta.length;0<=--c;){var d=a.g[c];a.g[c]=a.Ta[c];a.Ta[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Aa[c]=a.g[6],a.g[6]=a.Aa[a.A]);a.Sa=2;a.O=b}function O(a,b){a.N&128||(a.X=a.Z=b,a.V=0)}function jd(a,b,c){a.N&128||(a.X=a.Z=a.U=b,a.V=c||0)}function kd(a,b,c,d){a.N&128||(a.X=a.Z=a.U=b,a.V=(c^b)&(d^b))}function ld(a,b){a.N&128||(a.X=a.Z=a.U=b,a.V=a.X^a.U>>1)}function md(a,b,c,d){a.N&128||(a.X=a.Z=a.U=b,a.V=(c^d)&(d^b))} +l.L=function(a){var b=!1;0>this.ea?this.ea=Zb(this):this.A||(a=4,b=!0);this.B&57344||(this.cb=63222,this.dc=a);this.A=0;var c=this.Ka(a|65536),d=this.Ka(a+2&65535|65536);$b(this,d&-12289|this.ea>>2&12288);b&&(this.H|=4,this.g[6]=4);nd(this,this.ea);nd(this,this.g[7]);this.g[7]=c;this.N&=-113;this.ea=-1;throw a;};function od(a){var b=pd(a),c=pd(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);a.g[7]=b&65535;$b(a,c);a.N&=-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 kd(a,b,c){var d,f,e,g=0;if(c&a.$b){d=b>>13&a.ac[a.A];f=a.la[a.A][d];e=(a.la[a.A][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.H|=32,a.L(4,12)),e&1&&!(c&1)&&(a.H|=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.la[a.A][d]=f;if(4194170!==e||a.A)a.sa=a.A,a.xa=d;g&&(g&57344&&(0<=a.ea&&(g|=128),a.B&57344||(a.B=a.B|g|a.sa<<5|a.xa<<1),a.L(168,16)),a.B&61440||!(4191360>e||4194239>3&7){case 0:a.L(4,20);break;case 1:return 6===e&&!a.A&&c&4&&(a.g[6]<=a.cb||65534<=a.g[6])&&(a.g[6]<=a.cb-32||65534<=a.g[6]?(a.H|=4,a.g[6]=4,a.L(4,22)):(a.H|=8,a.N|=64)),7===e?a.g[e]:a.g[e]|g;case 2:f=2;d=a.g[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.g[e];7!==e&&(d|=g);if(0>(d=a.Aa(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.g[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.g[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.Aa(d)))return d; -d|=g;break;case 6:if(0>(d=a.Aa(a.g[7])))return d;a.g[7]=a.g[7]+2&65535;d=d+a.g[e]&65535;return d|g;case 7:if(0>(d=a.Aa(a.g[7])))return d;a.g[7]=a.g[7]+2&65535;d=d+a.g[e]&65535;return 0>(d=a.Aa(d|65536))?d:d|g}a.g[e]=a.g[e]+f&65535;!g||a.B&57344||(a.bb=a.bb<<8|f<<3&248|e);6==e&&!a.A&&c&4&&0>=f&&(a.g[6]<=a.cb||65534<=a.g[6])&&(a.g[6]<=a.cb-32?(a.H|=4,a.g[6]=4,a.L(4,24)):(a.H|=8,a.N|=64));return d}l.Rc=function(a,b){return ld(this,a,b)};l.Sc=function(a,b){return kd(this,ld(this,a,b),b)}; -function md(a,b,c){b&56?(b=ld(a,b,0),c&65536||61440!==(a.O&61440)&&(b&=65535),a.A=a.O>>12&3,c=a.Aa(b|c&65536),a.A=a.O>>14&3):(c=b&7,c=6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]:a.Da[a.O>>12&3]);return c}function nd(a,b,c,d){a.B&57344||(a.bb=22);b&56?(b=ld(a,b,0),c&65536||(b&=65535),a.A=a.O>>12&3,b=kd(a,b|c&65536,4),a.A=a.O>>14&3,a.F.pb(b,d&65535)):(c=b&7,6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]=d:a.Da[a.O>>12&3]=d)}function P(a,b){return b&56?a.Rb(ld(a,b,2)):a.g[b&7]} -function od(a,b){b&56?(b=a.ba(b,3),a=a.F.rb(b)):a=a.g[b&7]&255;return a}function R(a,b,c,d){b&56?(b=a.ba(b,6),c=d.call(a,c,a.cc(b)),a.F.pb(b,c&65535)):(b&=7,a.g[b]=d.call(a,c,a.g[b]))}function S(a,b,c,d){b&56?(b=a.ba(b,7),c=d.call(a,c,a.F.rb(b)),a.F.Vb(b,c&255)):(b&=7,a.g[b]=a.g[b]&65280|d.call(a,c,a.g[b]))}function pd(a,b,c){b&56?(b=a.ba(b,4),a.F.pb(b,c&65535)):a.g[b&7]=c&65535;return c} -function qd(a,b,c,d){b&56?(d=a.ba(b,5),a.F.Vb(d,c&255)):(b&=7,a.g[b]=c?d&1?c<<24>>24&65535:a.g[b]&-256|c&255:a.g[b]&-256);return c}function T(a,b){a.g[7]=a.g[7]+(b<<24>>23)&65535} -l.Ab=function(a){this.u.complete=!0;var b=this.u.Lc=this.C&&rd(this.C),c=a?this.u.pc?0:1:-1;this.u.pc=!1;this.W=this.b=a;do{if(b){if(sd(this.C,this.g[7],c)){this.na();break}c=1}this.N&112&&(this.N&32?this.L(168,28):this.N&64?this.L(4,30):this.N&16&&this.L(12,32),this.N&=-113);if(a&&this.Sa)if(1==this.Sa)this.Sa=2;else{this.Sa=0;for(var d=null,f=this.nc&224,e=this.j.length;0<=--e;){if(0f&&(f=this.j[e].Xc,d=this.j[e],this.j.splice(e,1))}f>(this.O&224)&&(d?this.L(d.od,26):this.L(160,26))}this.B&57344||(this.bb=0,this.dc=this.g[7]);this.N=this.O&16;d=this.Aa(this.g[7]);0<=d&&(this.g[7]=this.g[7]+2&65535);this.decode(d)}while(0>1|b<<16;fd(this,a);return a&65535}function yd(a,b){a=b&2048|b>>1|b<<8;fd(this,a<<8);return a&255}function zd(a,b){a=b&~a;O(this,a);return a}function Ad(a,b){a=b&~a;O(this,a<<8);return a}function Bd(a,b){a|=b;O(this,a);return a} -function Cd(a,b){a|=b;O(this,a<<8);return a}function Dd(a,b){a=~b|65536;dd(this,a);return a&65535}function Ed(a,b){a=~b|256;dd(this,a<<8);return a&255}function Fd(a,b){a=b-a;this.N&128||(this.X=this.Z=a,this.V=b&(b^a));return a&65535}function Gd(a,b){a=b-a;var c=a<<8;b<<=8;this.N&128||(this.X=this.Z=c,this.V=b&(b^c));return a&255}function Hd(a,b){a=b+a;this.N&128||(this.X=this.Z=a,this.V=a&(b^a));return a&65535} -function Id(a,b){a=b+a;var c=a<<8;this.N&128||(this.X=this.Z=c,this.V=c&(b<<8^c));return a&255}function Jd(a,b){a=-b;dd(this,a,a&b&32768);return a&65535}function Kd(a,b){a=-b;dd(this,a<<8,(a&b&128)<<8);return a&255}function Ld(a,b){a=b<<1|this.U>>16&1;fd(this,a);return a&65535}function Md(a,b){a=b<<1|this.U>>16&1;fd(this,a<<8);return a&255}function Nd(a,b){a=(this.U&65536|b)>>1|b<<16;fd(this,a);return a&65535}function Od(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;fd(this,a<<8);return a&255} -function Pd(a,b){var c=b-a;gd(this,c,a,b);return c&65535}function Qd(a,b){var c=b-a;gd(this,c<<8,a<<8,b<<8);return c&255}function Rd(a,b){a^=b;O(this,a);return a&65535}function Sd(a){var b=P(this,a);a=a>>6&7;var c=this.g[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.g[a]=c&65535;this.X=this.Z=c;--this.b} -function Td(a){var b=P(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[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.g[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;--this.b}function U(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Z=1);a&8&&(this.X=0);--this.b} -function Ud(a){var b=P(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.V=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1))}else this.Z=this.X=0,this.V=32768,this.U=65536;--this.b}function Vd(a){var b=ld(this,a,8);a=a>>6&7;hd(this,this.g[a]);this.g[a]=this.g[7];this.g[7]=b;--this.b} -function Wd(a){var b=P(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.X=b>>16;this.Z=this.X|b;this.V=0;this.U=-32768>b||32767>6;if(this.g[b]=this.g[b]-1&65535)this.g[7]=this.g[7]-((a&63)<<1)&65535;--this.b} -function xe(a){R(this,a,P(this,(a&448)>>6),Rd);--this.b}function X(){this.L(8,6)}function $c(a){ye[a>>12].call(this,a)} -var ye=[function(a){ze[a>>8&15].call(this,a)},function(a){O(this,pd(this,a,P(this,a>>6)));--this.b},function(a){var b=P(this,a>>6);a=P(this,a);gd(this,b-a,a,b);--this.b},function(a){O(this,P(this,a>>6)&P(this,a));--this.b},function(a){R(this,a,P(this,a>>6),zd);--this.b},function(a){R(this,a,P(this,a>>6),Bd);--this.b},function(a){R(this,a,P(this,a>>6),td);--this.b},function(a){Ae[a>>8&15].call(this,a)},function(a){Be[a>>8&15].call(this,a)},function(a){var b=od(this,a>>6);O(this,qd(this,a,b,1)<<8); ---this.b},function(a){var b=od(this,a>>6)<<8;a=od(this,a)<<8;gd(this,b-a,a,b);--this.b},function(a){O(this,(od(this,a>>6)&od(this,a))<<8);--this.b},function(a){S(this,a,od(this,a>>6),Ad);--this.b},function(a){S(this,a,od(this,a>>6),Cd);--this.b},function(a){R(this,a,P(this,a>>6),Pd);--this.b},X],ze=[function(a){Ce[a>>4&15].call(this,a)},function(a){T(this,a);--this.b},function(a){cd(this)||T(this,a);--this.b},function(a){cd(this)&&T(this,a);--this.b},function(a){!this.Pa()==!bd(this)&&T(this,a);--this.b}, -function(a){!this.Pa()!=!bd(this)&&T(this,a);--this.b},function(a){cd(this)||!this.Pa()!=!bd(this)||T(this,a);--this.b},function(a){(cd(this)||!this.Pa()!=!bd(this))&&T(this,a);--this.b},Vd,Vd,function(a){De[a>>6&3].call(this,a)},function(a){Ee[a>>6&3].call(this,a)},function(a){Fe[a>>6&3].call(this,a)},function(a){Ge[a>>6&3].call(this,a)},X,X],Ce=[function(a){He[a&15].call(this,a)},X,X,X,X,X,X,X,function(a){var b=jd(this);a&=7;this.g[7]=this.g[a];this.g[a]=b;--this.b},function(a){this.O&49152||(this.O= -this.O&-2017|(a&7)<<5,this.Sa=1);--this.b},function(a){Ie[a&15].call(this,a)},function(a){Je[a&15].call(this,a)},X,X,X,X],Ie=[Xd,function(){this.U=0;--this.b},function(){this.V=0;--this.b},U,function(){this.Z=1;--this.b},U,U,U,function(){this.X=0;--this.b},U,U,U,U,U,U,U],Je=[Xd,function(){this.U=65536;--this.b},function(){this.V=32768;--this.b},W,function(){this.Z=0;--this.b},W,W,W,function(){this.X=32768;--this.b},W,W,W,W,W,W,W],He=[function(){this.O&49152?(this.H|=128,this.L(4,3)):(this.oa=3,Yc(this)); ---this.b},function(){for(var a=0,b=this.j.length;0<=--b;)a+=this.j[b].Ia,this.j[b].Ia=0;a||0!==this.oa||(this.oa=2,Yc(this));--this.b},function(){id(this);this.N|=this.O&16;--this.b},function(){this.L(12,1);--this.b},function(){this.L(16,4);--this.b},function(){this.O&49152||(ad(this),this.F.reset());--this.b},function(){id(this);--this.b},X,X,X,X,X,X,X,X,X],Ae=[Wd,Wd,Ud,Ud,Sd,Sd,Td,Td,xe,xe,X,X,X,X,we,we],Be=[function(a){this.Pa()||T(this,a);--this.b},function(a){this.Pa()&&T(this,a);--this.b},function(a){N(this)|| -cd(this)||T(this,a);--this.b},function(a){(N(this)||cd(this))&&T(this,a);--this.b},function(a){bd(this)||T(this,a);--this.b},function(a){bd(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.L(24,2);--this.b},function(){this.L(28,5);--this.b},function(a){Ke[a>>6&3].call(this,a)},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)},X,X],De=[function(a){dd(this,pd(this, -a,0));--this.b},function(a){R(this,a,0,Dd);--this.b},function(a){R(this,a,1,Hd);--this.b},function(a){R(this,a,1,Fd);--this.b}],Ee=[function(a){R(this,a,0,Jd);--this.b},function(a){R(this,a,N(this)?1:0,td);--this.b},function(a){R(this,a,N(this)?1:0,Pd);--this.b},function(a){a=P(this,a);dd(this,a);--this.b}],Fe=[function(a){R(this,a,0,Nd);--this.b},function(a){R(this,a,0,Ld);--this.b},function(a){R(this,a,0,xd);--this.b},function(a){R(this,a,0,vd);--this.b}],Ge=[function(a){a=this.g[7]+((a&63)<<1)& -65535;var b=this.Aa(a|65536);this.g[7]=this.g[5]&65535;this.g[6]=a+2&65535;this.g[5]=b;--this.b},function(a){a=md(this,a,0);hd(this,a);O(this,a);--this.b},function(a){var b=jd(this);nd(this,a,0,b);O(this,b);--this.b},function(a){O(this,pd(this,a,this.Pa?65535:0));--this.b}],Ke=[function(a){dd(this,qd(this,a,0));--this.b},function(a){S(this,a,0,Ed);--this.b},function(a){S(this,a,1,Id);--this.b},function(a){S(this,a,1,Gd);--this.b}],Le=[function(a){S(this,a,0,Kd);--this.b},function(a){S(this,a,N(this)? -1:0,ud);--this.b},function(a){S(this,a,N(this)?1:0,Qd);--this.b},function(a){a=od(this,a);dd(this,a<<8);--this.b}],Me=[function(a){S(this,a,0,Od);--this.b},function(a){S(this,a,0,Md);--this.b},function(a){S(this,a,0,yd);--this.b},function(a){S(this,a,0,wd);--this.b}],Ne=[X,function(a){a=md(this,a,65536);hd(this,a);O(this,a);--this.b},function(a){var b=jd(this);nd(this,a,65536,b);O(this,b);--this.b},X]; -function Oe(a){v.call(this,"ROM",a,Oe);this.i=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.A=a.alias;this.B=a.file;this.J=ca(this.B);if(this.B){a=this.B;var b=ha(this.J);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,e){Pe(c,a,b,e)})}}B(Oe);Oe.prototype.Ya=function(a,b,c,d){this.F=b;this.b=c;this.C=d;Qe(this)}; -Oe.prototype.Ra=function(){if(this.Na){if(this.C){var a=this.C,b=this.id,c=this.D,d=this.j,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.wc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({vd:b,w:c,Tc:d,Na:f,tc:e})}delete this.Na}return!0};Oe.prototype.Qa=function(){return!0}; -function Pe(a,b,c,d){if(d)a.qa("Unable to load system ROM (error "+d+": "+b+")");else{Za(a.uc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.i=e;else if(e=h.words)for(a.i=Array(2*e.length),g=f=0;f>8&255;else if(e=h.data)for(a.i=Array(4*e.length),g=f=0;f>8&255,a.i[g++]=e[f]>>16&255,a.i[g++]=e[f]>>24&255;else a.i=h;a.Na=h.symbols;if(!a.i.length){u("Empty ROM: "+ -b);return}if(1==a.i.length){u(a.i[0]);return}}catch(k){a.qa("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f>>d.Y].Cb(f&d.i,a.i[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.A?b.push(a.A):null!=a.A&&a.A.length&&(b=a.A);for(c=0;c>>f.Y;0>>=f.Y;0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; -function Ve(a,b,c,d){if(c)if(b){0>a.B&&a.A.length&&(a.B=0);if(0>a.B||b!=a.A[a.B])a.A.splice(0,0,b),a.B=0;a.B--}else a.da?b="end":b=a.A[a.B+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 We(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 qd(a,b,c){var d,f,e,g=0;if(c&a.$b){d=b>>13&a.ac[a.A];f=a.la[a.A][d];e=(a.la[a.A][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.H|=32,a.L(4,12)),e&1&&!(c&1)&&(a.H|=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.la[a.A][d]=f;if(4194170!==e||a.A)a.sa=a.A,a.xa=d;g&&(g&57344&&(0<=a.ea&&(g|=128),a.B&57344||(a.B=a.B|g|a.sa<<5|a.xa<<1),a.L(168,16)),a.B&61440||!(4191360>e||4194239>3&7){case 0:a.L(4,20);break;case 1:return 6===e&&!a.A&&c&4&&(a.g[6]<=a.eb||65534<=a.g[6])&&(a.g[6]<=a.eb-32||65534<=a.g[6]?(a.H|=4,a.g[6]=4,a.L(4,22)):(a.H|=8,a.N|=64)),7===e?a.g[e]:a.g[e]|g;case 2:f=2;d=a.g[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.g[e];7!==e&&(d|=g);d=a.Ka(d);d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.g[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.g[e]-2&65535;7!==e&&(d|=g);d=a.Ka(d)|g;break;case 6:return d= +id(a),d=d+a.g[e]&65535|g;case 7:return d=id(a),d=d+a.g[e]&65535,d=a.Ka(d|65536)|g}a.g[e]=a.g[e]+f&65535;!g||a.B&57344||(a.cb=a.cb<<8|f<<3&248|e);6==e&&!a.A&&c&4&&0>=f&&(a.g[6]<=a.eb||65534<=a.g[6])&&(a.g[6]<=a.eb-32?(a.H|=4,a.g[6]=4,a.L(4,24)):(a.H|=8,a.N|=64));return d}l.Tc=function(a,b){return rd(this,a,b)};l.Uc=function(a,b){return qd(this,rd(this,a,b),b)}; +function sd(a,b,c){b&56?(b=rd(a,b,0),c&65536||61440!==(a.O&61440)&&(b&=65535),a.A=a.O>>12&3,c=a.Ka(b|c&65536),a.A=a.O>>14&3):(c=b&7,c=6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]:a.Aa[a.O>>12&3]);return c}function td(a,b,c,d){a.B&57344||(a.cb=22);b&56?(b=rd(a,b,0),c&65536||(b&=65535),a.A=a.O>>12&3,b=qd(a,b|c&65536,4),a.A=a.O>>14&3,a.F.pb(b,d&65535)):(c=b&7,6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]=d:a.Aa[a.O>>12&3]=d)}function P(a,b){return b&56?a.Rb(rd(a,b,2)):a.g[b&7]} +function ud(a,b){b&56?(b=a.ba(b,3),a=a.F.rb(b)):a=a.g[b&7]&255;return a}function R(a,b,c,d){b&56?(b=a.ba(b,6),c=d.call(a,c,a.cc(b)),a.F.pb(b,c&65535)):(b&=7,a.g[b]=d.call(a,c,a.g[b]))}function S(a,b,c,d){b&56?(b=a.ba(b,7),c=d.call(a,c,a.F.rb(b)),a.F.Vb(b,c&255)):(b&=7,a.g[b]=a.g[b]&65280|d.call(a,c,a.g[b]))}function vd(a,b,c){b&56?(b=a.ba(b,4),a.F.pb(b,c&65535)):a.g[b&7]=c&65535;return c} +function wd(a,b,c,d){b&56?(d=a.ba(b,5),a.F.Vb(d,c&255)):(b&=7,a.g[b]=c?d&1?c<<24>>24&65535:a.g[b]&-256|c&255:a.g[b]&-256);return c}function T(a,b){a.g[7]=a.g[7]+(b<<24>>23)&65535} +l.Ab=function(a){this.u.complete=!0;var b=this.u.Nc=this.C&&xd(this.C),c=a?this.u.pc?0:1:-1;this.u.pc=!1;this.W=this.b=a;do{if(b){if(yd(this.C,this.g[7],c)){this.na();break}c=1}this.N&112&&(this.N&32?this.L(168,28):this.N&64?this.L(4,30):this.N&16&&this.L(12,32),this.N&=-113);if(a&&this.Sa)if(1==this.Sa)this.Sa=2;else{this.Sa=0;for(var d=null,f=this.nc&224,e=this.j.length;0<=--e;){if(0f&&(f=this.j[e].Zc,d=this.j[e],this.j.splice(e,1))}f>(this.O&224)&&(d?this.L(d.qd,26):this.L(160,26))}this.B&57344||(this.cb=0,this.dc=this.g[7]);this.N=this.O&16;this.decode(id(this))}while(0>1|b<<16;ld(this,a);return a&65535}function Ed(a,b){a=b&2048|b>>1|b<<8;ld(this,a<<8);return a&255}function Fd(a,b){a=b&~a;O(this,a);return a}function Gd(a,b){a=b&~a;O(this,a<<8);return a}function Hd(a,b){a|=b;O(this,a);return a}function Id(a,b){a|=b;O(this,a<<8);return a} +function Jd(a,b){a=~b|65536;jd(this,a);return a&65535}function Kd(a,b){a=~b|256;jd(this,a<<8);return a&255}function Ld(a,b){a=b-a;this.N&128||(this.X=this.Z=a,this.V=b&(b^a));return a&65535}function Md(a,b){a=b-a;var c=a<<8;b<<=8;this.N&128||(this.X=this.Z=c,this.V=b&(b^c));return a&255}function Nd(a,b){a=b+a;this.N&128||(this.X=this.Z=a,this.V=a&(b^a));return a&65535}function Od(a,b){a=b+a;var c=a<<8;this.N&128||(this.X=this.Z=c,this.V=c&(b<<8^c));return a&255} +function Pd(a,b){a=-b;jd(this,a,a&b&32768);return a&65535}function Qd(a,b){a=-b;jd(this,a<<8,(a&b&128)<<8);return a&255}function Rd(a,b){a=b<<1|this.U>>16&1;ld(this,a);return a&65535}function Sd(a,b){a=b<<1|this.U>>16&1;ld(this,a<<8);return a&255}function Td(a,b){a=(this.U&65536|b)>>1|b<<16;ld(this,a);return a&65535}function Ud(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;ld(this,a<<8);return a&255}function Vd(a,b){var c=b-a;md(this,c,a,b);return c&65535} +function Wd(a,b){var c=b-a;md(this,c<<8,a<<8,b<<8);return c&255}function Xd(a,b){a^=b;O(this,a);return a&65535}function Yd(a){var b=P(this,a);a=a>>6&7;var c=this.g[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.g[a]=c&65535;this.X=this.Z=c;--this.b} +function Zd(a){var b=P(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[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.g[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;--this.b}function U(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Z=1);a&8&&(this.X=0);--this.b} +function $d(a){var b=P(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.V=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1))}else this.Z=this.X=0,this.V=32768,this.U=65536;--this.b}function ae(a){var b=rd(this,a,8);a=a>>6&7;nd(this,this.g[a]);this.g[a]=this.g[7];this.g[7]=b;--this.b} +function be(a){var b=P(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.X=b>>16;this.Z=this.X|b;this.V=0;this.U=-32768>b||32767>6;if(this.g[b]=this.g[b]-1&65535)this.g[7]=this.g[7]-((a&63)<<1)&65535;--this.b} +function ye(a){R(this,a,P(this,(a&448)>>6),Xd);--this.b}function X(){this.L(8,6)}function ed(a){ze[a>>12].call(this,a)} +var ze=[function(a){Ae[a>>8&15].call(this,a)},function(a){O(this,vd(this,a,P(this,a>>6)));--this.b},function(a){var b=P(this,a>>6);a=P(this,a);md(this,b-a,a,b);--this.b},function(a){O(this,P(this,a>>6)&P(this,a));--this.b},function(a){R(this,a,P(this,a>>6),Fd);--this.b},function(a){R(this,a,P(this,a>>6),Hd);--this.b},function(a){R(this,a,P(this,a>>6),zd);--this.b},function(a){Be[a>>8&15].call(this,a)},function(a){Ce[a>>8&15].call(this,a)},function(a){var b=ud(this,a>>6);O(this,wd(this,a,b,1)<<8); +--this.b},function(a){var b=ud(this,a>>6)<<8;a=ud(this,a)<<8;md(this,b-a,a,b);--this.b},function(a){O(this,(ud(this,a>>6)&ud(this,a))<<8);--this.b},function(a){S(this,a,ud(this,a>>6),Gd);--this.b},function(a){S(this,a,ud(this,a>>6),Id);--this.b},function(a){R(this,a,P(this,a>>6),Vd);--this.b},X],Ae=[function(a){De[a>>4&15].call(this,a)},function(a){T(this,a);--this.b},function(a){hd(this)||T(this,a);--this.b},function(a){hd(this)&&T(this,a);--this.b},function(a){!this.Pa()==!gd(this)&&T(this,a);--this.b}, +function(a){!this.Pa()!=!gd(this)&&T(this,a);--this.b},function(a){hd(this)||!this.Pa()!=!gd(this)||T(this,a);--this.b},function(a){(hd(this)||!this.Pa()!=!gd(this))&&T(this,a);--this.b},ae,ae,function(a){Ee[a>>6&3].call(this,a)},function(a){Fe[a>>6&3].call(this,a)},function(a){Ge[a>>6&3].call(this,a)},function(a){He[a>>6&3].call(this,a)},X,X],Ee=[function(a){jd(this,vd(this,a,0));--this.b},function(a){R(this,a,0,Jd);--this.b},function(a){R(this,a,1,Nd);--this.b},function(a){R(this,a,1,Ld);--this.b}], +Fe=[function(a){R(this,a,0,Pd);--this.b},function(a){R(this,a,N(this)?1:0,zd);--this.b},function(a){R(this,a,N(this)?1:0,Vd);--this.b},function(a){a=P(this,a);jd(this,a);--this.b}],Ge=[function(a){R(this,a,0,Td);--this.b},function(a){R(this,a,0,Rd);--this.b},function(a){R(this,a,0,Dd);--this.b},function(a){R(this,a,0,Bd);--this.b}],He=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.Ka(a|65536);this.g[7]=this.g[5]&65535;this.g[6]=a+2&65535;this.g[5]=b;--this.b},function(a){a=sd(this,a,0);nd(this, +a);O(this,a);--this.b},function(a){var b=pd(this);td(this,a,0,b);O(this,b);--this.b},function(a){O(this,vd(this,a,this.Pa?65535:0));--this.b}],De=[function(a){Ie[a&15].call(this,a)},X,X,X,X,X,X,X,function(a){var b=pd(this);a&=7;this.g[7]=this.g[a];this.g[a]=b;--this.b},function(a){this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.Sa=1);--this.b},function(a){Je[a&15].call(this,a)},function(a){Ke[a&15].call(this,a)},X,X,X,X],Je=[ce,function(){this.U=0;--this.b},function(){this.V=0;--this.b},U,function(){this.Z= +1;--this.b},U,U,U,function(){this.X=0;--this.b},U,U,U,U,U,U,U],Ke=[ce,function(){this.U=65536;--this.b},function(){this.V=32768;--this.b},W,function(){this.Z=0;--this.b},W,W,W,function(){this.X=32768;--this.b},W,W,W,W,W,W,W],Ie=[function(){this.O&49152?(this.H|=128,this.L(4,3)):(this.oa=3,cd(this));--this.b},function(){for(var a=0,b=this.j.length;0<=--b;)a+=this.j[b].Ha,this.j[b].Ha=0;a||0!==this.oa||(this.oa=2,cd(this));--this.b},function(){od(this);this.N|=this.O&16;--this.b},function(){this.L(12, +1);--this.b},function(){this.L(16,4);--this.b},function(){this.O&49152||(fd(this),this.F.reset());--this.b},function(){od(this);--this.b},X,X,X,X,X,X,X,X,X],Be=[be,be,$d,$d,Yd,Yd,Zd,Zd,ye,ye,X,X,X,X,xe,xe],Ce=[function(a){this.Pa()||T(this,a);--this.b},function(a){this.Pa()&&T(this,a);--this.b},function(a){N(this)||hd(this)||T(this,a);--this.b},function(a){(N(this)||hd(this))&&T(this,a);--this.b},function(a){gd(this)||T(this,a);--this.b},function(a){gd(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.L(24,2);--this.b},function(){this.L(28,5);--this.b},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){jd(this,wd(this,a,0));--this.b},function(a){S(this,a,0,Kd);--this.b},function(a){S(this,a,1,Od);--this.b},function(a){S(this,a,1,Md);--this.b}],Me=[function(a){S(this,a,0,Qd);--this.b},function(a){S(this, +a,N(this)?1:0,Ad);--this.b},function(a){S(this,a,N(this)?1:0,Wd);--this.b},function(a){a=ud(this,a);jd(this,a<<8);--this.b}],Ne=[function(a){S(this,a,0,Ud);--this.b},function(a){S(this,a,0,Sd);--this.b},function(a){S(this,a,0,Ed);--this.b},function(a){S(this,a,0,Cd);--this.b}],Oe=[X,function(a){a=sd(this,a,65536);nd(this,a);O(this,a);--this.b},function(a){var b=pd(this);td(this,a,65536,b);O(this,b);--this.b},X]; +function Pe(a){w.call(this,"ROM",a,Pe);this.i=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.A=a.alias;this.B=a.file;this.J=ca(this.B);if(this.B){a=this.B;var b=ha(this.J);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,e){Qe(c,a,b,e)})}}B(Pe);Pe.prototype.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;Re(this)}; +Pe.prototype.Ra=function(){if(this.Na){if(this.C){var a=this.C,b=this.id,c=this.D,d=this.j,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.wc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({xd:b,w:c,Vc:d,Na:f,tc:e})}delete this.Na}return!0};Pe.prototype.Qa=function(){return!0}; +function Qe(a,b,c,d){if(d)a.qa("Unable to load system ROM (error "+d+": "+b+")");else{$a(a.uc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.i=e;else if(e=h.words)for(a.i=Array(2*e.length),g=f=0;f>8&255;else if(e=h.data)for(a.i=Array(4*e.length),g=f=0;f>8&255,a.i[g++]=e[f]>>16&255,a.i[g++]=e[f]>>24&255;else a.i=h;a.Na=h.symbols;if(!a.i.length){u("Empty ROM: "+ +b);return}if(1==a.i.length){u(a.i[0]);return}}catch(k){a.qa("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f>>d.Y].Cb(f&d.i,a.i[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.A?b.push(a.A):null!=a.A&&a.A.length&&(b=a.A);for(c=0;c>>f.Y;0>>=f.Y;0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ue.prototype.Ac=function(){return-1};Ue.prototype.Bc=function(){}; +function We(a,b,c,d){if(c)if(b){0>a.B&&a.A.length&&(a.B=0);if(0>a.B||b!=a.A[a.B])a.A.splice(0,0,b),a.B=0;a.B--}else a.da?b="end":b=a.A[a.B+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 Xe(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 Xe(a,b,c){var d;if(b){b=Ye(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.f((null!=b?b+": ":"")+d);return f} -function af(a,b){if(b)return $e(a,b,a.ja[b]);var c=0;for(b in a.ja)$e(a,b,a.ja[b]),c++;return 0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f>=1;g=n+g;d>>=8}d=t(c,0,!0)+" "+c+". "+r(c,0,!0)+" "+("0b"+g)}a.f((null!=b?b+": ":"")+d);return f}function bf(a,b){if(b)return af(a,b,a.ja[b]);var c=0;for(b in a.ja)af(a,b,a.ja[b]),c++;return 0>>d.F.Y;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.f("..."):(c=n.type,m=Gb[c],n&&d.f(t(n.id,8)+" %"+t(f<>>d.F.Y;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.f("..."):(c=n.type,m=Hb[c],n&&d.f(t(n.id,8)+" %"+t(f<>>c.Y].Qb(d&c.i,d),b&&lf(a,b));return c};l.Ka=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=Hb(this.F,d),b&&lf(a,b));return c}; -l.Vb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){var f=this.F;f.M[(d&f.j)>>>f.Y].Cb(d&f.i,b&255,d);c&&lf(a,c);L(this.b,!0)}};l.pb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){var f=this.F,e=d&f.i,g=(d&f.j)>>>f.Y;e!=f.i?f.M[g].rc(e,b&65535,d):(f.M[g++].Cb(e,b&255,d),f.M[g&f.A].Cb(0,b>>8&255,d+1));c&&lf(a,c);L(this.b,!0)}};function Z(a){return{w:a,Ja:!1}}function mf(a){return[a.w,a.Ja]}function nf(a){return{w:a[0],Ja:a[1]}} -function kf(a,b,c){var d;c=(c?a.T:a.Eb).w;if(void 0!==b){d=b=Ye(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;d>>d.Y],!1)}a.W=["br"];if(a.D)for(b=1;b>>d.Y],!0);a.D=["bw"];a.Fb=0} -l.jb=function(a,b,c){var d=!0;c||tf(this,a,b,!1,!0);if(a!=this.j){var f=this.ba(b);if(-1===f)this.f("invalid address: "+Y(this,b.w)),d=!1;else{var e=this.F;e.M[f>>>e.Y].jb(f&e.i,a==this.D)}}d&&(a.push(b),c?b.Ja=!0:(uf(this,a,a.length-1,"set"),df(this)));return d};function tf(a,b,c,d,f){var e=!1;c=a.ba(c);for(var g=1;g>>d.Y],b==a.D));h.Ja||df(a);break}}return e} -function vf(a,b){for(var c=1;c>23)&65535,w=Y(q,p);else if(8192==z)p=p.w-((e&63)<<1)&65535,w=Y(q,p);else if(12288==z)w=Y(q,e&7,1);else if(24576==z)w=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:w=yf(y);break;case 8:w="@"+yf(y);break;case 16:7>y?w="("+yf(y)+ -")+":(z=q.Ka(p,2),w="#"+Y(q,z,0,!0));break;case 24:7>y?w="@("+yf(y)+")+":(z=q.Ka(p,2),w="@#"+Y(q,z,0,!0));break;case 32:w="-("+yf(y)+")";break;case 40:w="@-("+yf(y)+")";break;case 48:z=q.Ka(p,2);w=Y(q,z,0,!0)+"("+yf(y)+")";7==y&&(w=[w,Y(q,z+p.w&65535)]);break;case 56:z=q.Ka(p,2),w="@"+Y(q,z)+"("+yf(y)+")",7==y&&(w=[w,Y(q,z+p.w&65535)])}q=w;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0a?"R"+a:6==a?"SP":"PC"} -function Af(a,b){var c="",d=a.b;8>b?(c=yf(b),c+="="+Y(a,d.g[b])):13>b?c="A"+(b-8)+"="+Y(a,d.eb[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+Y(a,d.Da[b-16]):20==b&&(c="PS="+Y(a,Zb(d)));c&&(c+=" ");return c}function Bf(a){var b,c="";for(b=0;6>b;b++)c+=Af(a,b);c=c+"\n"+(Af(a,6)+Af(a,7)+Af(a,20));return c+=zf(a,"T")+zf(a,"N")+zf(a,"Z")+zf(a,"V")+zf(a,"C")}l.wc=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=e.Tc;if(f>=g&&fb)){d.g[b]=e&65535;break}a.f("unknown register: "+f);return}L(d);a.f("updated registers:")}a.f(Bf(a));c&&(a.T=Z(d.g[7]),rf(a,Y(a,a.T.w)))}}function Gf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.f(c[2]):Xe(a,b,!0)} -function Hf(a,b,c){var d="t"!=b;c=Ze(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Ca(c,function(){return db(a,!0)&&a.Ab(f,d,!1)},function(){L(a.b);db(a,!1)})} -function rf(a,b,c,d){if(b=kf(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=kf(a,c,!0);if(!d||d.wh[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(g=h[3],e=null);e=xf(a,b,g,e);a.f(e);a.T=b;f-=b.w-k;c++}}} -function wf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(">> "+b):(a.da&&(a.f("ended assemble at "+Y(a,a.ca.w)),a.T=a.ca,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(rb(a)&&0m||"z"ea.length&&(a.f("note: only "+ea.length+" available"),V=ea.length);aa-=V;0>aa&&(null==ea[ea.length-1].w?(V=aa+V,aa=0):aa+=ea.length);var Ec=[];"call"==ce&&(eb=1E5,Ec=["CALL"]);for(void 0!==be&&a.f(V+" instructions earlier:");0=ea.length&& -(aa=0);a.Ib=V;ee++;eb--}}ee||(a.f("no "+de+"history available"),a.Ib=void 0)}else{var Ob=kf(a,da);if(Ob){var Pb=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||$f),Pb=Ze(a,va)>>>0,65536>4||1;bg--&&0Rb?String.fromCharCode(Rb): -".";Qb--}gb&&(gb+="\n");gb+=da+" "+Gc+(0==ib?" "+he:"")}gb&&a.f(gb);a.Eb=Ob}}}}break;case "e":if("else"==e[0])break;var Sb=1,ie=255,je=a.rb,ke=a.Vb;"ew"==e[0]&&(Sb=2,ie=65535,je=a.Ka,ke=a.pb);var le=Sb<<1,me=e[1];if(null==me)a.f("edit memory commands:"),a.f("\teb [a] [...] edit bytes at address a"),a.f("\tew [a] [...] edit words at address a");else{var Tb=kf(a,me);if(Tb)for(var Ub=2;UbKc;){for(var wa=null,fg=256;65536>lb.w>>>0;){oe.w=a.Ka(lb,2);if(null==lb.w||!fg--)break;for(var gg=a,Vb=oe,pe=null,mb=Vb.w,qe=mb,Lc=1;6>=Lc&&mb;Lc++){if(2\nLicense: GPL version 3 or later ");this.f("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bLf){if(Nf(d,this.R)){this.D=new M(this,"1.30.0","failsafe");Nf(this.D)&&(Sf(this,d),a=2,Tf(this.D));this.D.set("timestamp",qa());Uf(this.D);var f=this.i&&!this.G;if(1==a||ta("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Rf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Nf(d,g):("error"== -e&&"no machine state"!=g?(this.qa("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.j=null)):this.f(e+": "+g),Tf(d),Nf(d)?(c=Rf(d),f=!0):c=!1))}f&&Qf(this,c?d:null)}else 2==a&&d.clear()}else Qf(this);delete this.R;delete this.T}f=$a(this.id);for(e=0;ea[1];a=a[2];this.ja=!0;this.u.ia=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Vf(this,this.b,b,c,a),this.b.Hb());this.ca&&(Sf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.A=0}; -function Sf(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;sa("http://www.pcjs.org/api/v1/report",d,!0)}} -function If(a,b,c){var d,f="none";if(a.A)return null;a.A--;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.na(),d=a.b.Qa(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.u.ia=!1,!1===d&&(f=null)));for(var h=$a(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+"...");sa(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);mg(a,b,c)}})}else c(a,null)} -function ng(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&&(--Zf||Qa(!0));k=!1}var g,h,k=!0;Zf++;Ya[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?kg(c,null,null,!1,f,function(d,k){k?(Za(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Zf||Qa(!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),--Zf||Qa(!0)):e("invalid machine element: "+ -a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?kg(b,a,d,!0,f,m):lg(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){Qa(!1);return ng(a,b,c,d)};window.enableEvents=Qa;window.sendEvent=Ra;})(); +l.va=function(a,b,c){var d=this;switch(b){case "debugInput":return this.xa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Wc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B>>c.Y].Qb(d&c.i,d),b&&mf(a,b));return c};l.Ja=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=Ib(this.F,d),b&&mf(a,b));return c}; +l.Vb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){var f=this.F;f.M[(d&f.j)>>>f.Y].Cb(d&f.i,b&255,d);c&&mf(a,c);L(this.b,!0)}};l.pb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){var f=this.F,e=d&f.i,g=(d&f.j)>>>f.Y;e!=f.i?f.M[g].rc(e,b&65535,d):(f.M[g++].Cb(e,b&255,d),f.M[g&f.A].Cb(0,b>>8&255,d+1));c&&mf(a,c);L(this.b,!0)}};function Z(a){return{w:a,Ia:!1}}function nf(a){return[a.w,a.Ia]}function of(a){return{w:a[0],Ia:a[1]}} +function lf(a,b,c){var d;c=(c?a.T:a.Eb).w;if(void 0!==b){d=b=Ze(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.Bc=function(a){var b;0<=a&&(8>a?b=this.b.g[a]:16>a?b=this.b.Ta[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.g[7]).w));this.ka&1073741824?this.Ba.push(a):this.za&&a==this.za||(this.za=a,this.ka&-2147483648&&(this.na(),a+=" (cpu halted)"),this.f(a),this.b&&(a=this.b,cd(a),a.da=0,L(a)))}; +function ef(a){var b;if(xd(a)){if(!a.R||!a.R.length){a.R=Array(1E3);for(b=0;b>>d.Y],!1)}a.W=["br"];if(a.D)for(b=1;b>>d.Y],!0);a.D=["bw"];a.Fb=0} +l.jb=function(a,b,c){var d=!0;c||vf(this,a,b,!1,!0);if(a!=this.j){var f=this.ba(b);if(-1===f)this.f("invalid address: "+Y(this,b.w)),d=!1;else{var e=this.F;e.M[f>>>e.Y].jb(f&e.i,a==this.D)}}d&&(a.push(b),c?b.Ia=!0:(wf(this,a,a.length-1,"set"),ef(this)));return d};function vf(a,b,c,d,f){var e=!1;c=a.ba(c);for(var g=1;g>>d.Y],b==a.D));h.Ia||ef(a);break}}return e} +function xf(a,b){for(var c=1;c>23)&65535,v=Y(q,p);else if(8192==z)p=p.w-((e&63)<<1)&65535,v=Y(q,p);else if(12288==z)v=Y(q,e&7,1);else if(24576==z)v=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:v=qf(y);break;case 8:v="@"+qf(y);break;case 16:7>y?v="("+qf(y)+ +")+":(z=q.Ja(p,2),v="#"+Y(q,z,0,!0));break;case 24:7>y?v="@("+qf(y)+")+":(z=q.Ja(p,2),v="@#"+Y(q,z,0,!0));break;case 32:v="-("+qf(y)+")";break;case 40:v="@-("+qf(y)+")";break;case 48:z=q.Ja(p,2);v=Y(q,z,0,!0)+"("+qf(y)+")";7==y&&(v=[v,Y(q,z+p.w&65535)]);break;case 56:z=q.Ja(p,2),v="@"+Y(q,z)+"("+qf(y)+")",7==y&&(v=[v,Y(q,z+p.w&65535)])}q=v;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0b?(c=qf(b),c+="="+Y(a,d.g[b])):13>b?c="A"+(b-8)+"="+Y(a,d.Ta[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 Cf(a){var b,c="";for(b=0;6>b;b++)c+=Bf(a,b);c=c+"\n"+(Bf(a,6)+Bf(a,7)+Bf(a,20));return c+=Af(a,"T")+Af(a,"N")+Af(a,"Z")+Af(a,"V")+Af(a,"C")}l.wc=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.g[b]=e&65535;break}a.f("unknown register: "+f);return}L(d);a.f("updated registers:")}a.f(Cf(a));c&&(a.T=Z(d.g[7]),tf(a,Y(a,a.T.w)))}}function Hf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.f(c[2]):Ye(a,b,!0)} +function If(a,b,c){var d="t"!=b;c=$e(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.Ab(f,d,!1)},function(){L(a.b);eb(a,!1)})} +function tf(a,b,c,d){if(b=lf(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=lf(a,c,!0);if(!d||d.wh[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(g=h[3],e=null);e=zf(a,b,g,e);a.f(e);a.T=b;f-=b.w-k;c++}}} +function yf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(">> "+b):(a.da&&(a.f("ended assemble at "+Y(a,a.ca.w)),a.T=a.ca,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(sb(a)&&0m||"z"ea.length&&(a.f("note: only "+ea.length+" available"),V=ea.length);aa-=V;0>aa&&(null==ea[ea.length-1].w?(V=aa+V,aa=0):aa+=ea.length);var Fc=[];"call"==ie&&(gb=1E5,Fc=["CALL"]);for(void 0!==he&&a.f(V+" instructions earlier:");0=ea.length&& +(aa=0);a.Ib=V;ke++;gb--}}ke||(a.f("no "+je+"history available"),a.Ib=void 0)}else{var Pb=lf(a,da);if(Pb){var Qb=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||ag),Qb=$e(a,va)>>>0,65536>4||1;cg--&&0Sb?String.fromCharCode(Sb): +".";Rb--}ib&&(ib+="\n");ib+=da+" "+Hc+(0==kb?" "+ne:"")}ib&&a.f(ib);a.Eb=Pb}}}}break;case "e":if("else"==e[0])break;var Na,Ic,Jc,Kc,Lc=e[0],Mc=e[1];"eb"==Lc?(Na=1,Ic=255,Jc=a.rb,Kc=a.Vb):"e"==Lc||"ew"==Lc?(Na=2,Ic=65535,Jc=a.Ja,Kc=a.pb):Mc=null;if(null==Mc)a.f("edit memory commands:"),a.f("\teb [a] [...] edit bytes at address a"),a.f("\tew [a] [...] edit words at address a");else{var Tb=lf(a,Mc);if(Tb)for(var Ub=2;UbQc;){for(var wa=null,gg=256;65536>nb.w>>>0;){pe.w=a.Ja(nb,2);if(null==nb.w||!gg--)break;for(var hg=a,Vb=pe,qe=null,ob=Vb.w,re=ob,Rc=1;6>=Rc&&ob;Rc++){if(2\nLicense: GPL version 3 or later ");this.f("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bMf){if(Of(d,this.R)){this.D=new M(this,"1.30.0","failsafe");Of(this.D)&&(Tf(this,d),a=2,Uf(this.D));this.D.set("timestamp",qa());Vf(this.D);var f=this.i&&!this.G;if(1==a||ta("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Sf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Of(d,g):("error"== +e&&"no machine state"!=g?(this.qa("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.j=null)):this.f(e+": "+g),Uf(d),Of(d)?(c=Sf(d),f=!0):c=!1))}f&&Rf(this,c?d:null)}else 2==a&&d.clear()}else Rf(this);delete this.R;delete this.T}f=ab(this.id);for(e=0;ea[1];a=a[2];this.ja=!0;this.u.ia=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Wf(this,this.b,b,c,a),this.b.Hb());this.ca&&(Tf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.A=0}; +function Tf(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;sa("http://www.pcjs.org/api/v1/report",d,!0)}} +function Jf(a,b,c){var d,f="none";if(a.A)return null;a.A--;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.na(),d=a.b.Qa(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.u.ia=!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+"...");sa(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);ng(a,b,c)}})}else c(a,null)} +function og(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&&(--$f||Ra(!0));k=!1}var g,h,k=!0;$f++;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?lg(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,--$f||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),--$f||Ra(!0)):e("invalid machine element: "+ +a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?lg(b,a,d,!0,f,m):mg(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 og(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 dfab0e8d4..60fda61d8 100644 --- a/versions/pdp11/1.30.0/pdp11.js +++ b/versions/pdp11/1.30.0/pdp11.js @@ -12,11 +12,11 @@ function w(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name= 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=w);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.l=this.v/this.g|0;this.L=this.l-1;this.oa=[];this.C=null;this.ab=this.T;a=new G;Ka(a,this.I);this.b=Array(this.l);for(b=0;b>8:d[2](b)&255}else if(b&1&&(d=c.oa[a&-2])&&d[2])return d[2](b&-2)>>8;c.K("warning: unconverted read access to byte @"+ba(b));return c.ab(b,-1,1)} @@ -25,7 +25,7 @@ function Na(a,b){var c=this.controller;if(a=c.oa[a]){if(a[2])return a[2](b);if(a F.prototype.wa=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&&(r=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Xa)return k.vb+=k.Xa-e,k.Xa=e,!0;if(e>=k.Xa+k.vb){r=k.size-(e-m);r>g&&(r=g);k.vb=e-k.Xa+r;e=m+a.g;g-=r;h++;continue}}return Ra(1,e,g)}e=new G(e,r,a.g,d,f);Ka(e,a.I,k);a.b[h++]=e;e=m+a.g;g-=r}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.j)>>>a.f].cb(b&a.i,b)}function Ua(a,b,c){var d=b&a.i,f=(b&a.j)>>>a.f;d!=a.i?a.b[f].Fc(d,c&65535,b):(a.b[f++].Wa(d,c&255,b),a.b[f&a.L].Wa(0,c>>8&255,b+1))}function Va(a){for(var b=0,c=[],d=0;d>13&7;"undefined"===typeof b.R[e]&&(b.R[e]= b.A|=49152;else if((b.V&15)>=b.F[e])b.P|=32800,b.A|=49152;else{c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.eb;f=65536-b.gb&65535;a.qb(b.R[e],c,d,f);return}}b.fb=e<<13|b.fb&8176|b.V%9&15;I(a.a,20,5,144,function(){b.A=b.A&65534|128;return!!(b.A&64)})}l.pc=function(a,b,c,d,f){var e=this.i;e.eb=d&65535;e.A=e.A&-49|d>>12&48;e.gb=65536-f&65535;switch(a){case 1:e.P|=33024;e.A|=49152;break;case 2:e.P|=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.j,c,d,f,e=b.o>>8&3;b.o&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.qc,drive:e,blocksize:128,mapped:1,maxblock:b.Ia[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.o>>1&7){case 2:b.ua&8&&(b.o&=63);b.ua=b.$b[e]|b.Aa&64;break;case 3:1==(b.H&3)&&(b.Aa=b.H&4?b.Aa+(b.H&65408)&65408|b.H<<2&64:b.Aa-(b.H&65408)&65408|b.H<<2&64,b.H=b.Aa);break;case 4:b.ua=b.Aa;break;case 5:if(b.H>>6>=b.Ia[e]){b.o|=37888;break}if((b.H&63)>=b.F[e]){b.o|=37888;break}c=(b.H>>6)*b.F[e]+(b.H&63); d=(b.pa&63)<<16|b.$a;f=65536-b.ua&65535;fb(a,b.R[e],c,d,f);return;case 6:if(b.H>>6>=b.Ia[e])b.o|=37888;else if((b.H&63)>=b.F[e])b.o|=37888;else{c=(b.H>>6)*b.F[e]+(b.H&63);d=(b.pa&63)<<16|b.$a;f=65536-b.ua&65535;a.qb(b.R[e],c,d,f);return}}I(a.a,20,5,112,function(){b.o|=129;return!!(b.o&64)})} -l.qc=function(a,b,c,d,f){var e=this.j;e.$a=d&65535;e.o=e.o&-49|d>>12&48;e.pa=d>>16&63;e.H=~~(c/e.F[b.ha])<<6|c%e.F[b.ha];e.Aa=e.H;e.ua=65536-f&65535;switch(a){case 1:e.o|=33792;break;case 2:e.o|=40960}I(this.a,20,5,112,function(){e.o|=129;return!!(e.o&64)})};function hb(a){a=a.l;a.D=2176;a.ca=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Na=a.Ua=a.Sa=a.za=a.Gb=0} -function ib(a,b){var c=a.l,d,f,e;c.D&=-16513;c.ca&=-2049;c.S[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.rc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ha[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.ub[b]=c.ja[b];c.D|=32896;c.S[b]|=32896;c.Na|=1<=c.xb[0]||c.da[b]>>8>=c.Ha[0]||(c.da[b]&255)>=c.F[0]){c.Ta[b]|=1024;c.D|=49152;break}d=(c.ja[b]*c.Ha[0]+(c.da[b]>>8))*c.F[0]+ -(c.da[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;fb(a,c.R[b],d,f,e);return;case 57:if(c.ja[b]>=c.xb[0]||c.da[b]>>8>=c.Ha[0]||(c.da[b]&255)>=c.F[0])c.Ta[b]|=1024,c.D|=49152;else{d=(c.ja[b]*c.Ha[0]+(c.da[b]>>8))*c.F[0]+(c.da[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;a.qb(c.R[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.S[b]|=128;return!!(c.D&64)})} -l.rc=function(a,b,c,d,f){var e=this.l;e.Ua=65536-f&65535;e.Sa=d&65535;e.D=e.D&-769|d>>8&768;e.za=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ha[0]);e.da[b.ha]=f%e.Ha[0]<<8|c%e.F[0];e.ub[b.ha]=e.ja[b.ha]=d;e.Na|=1<=b.ic-1&&(e.S[b.ha]|=1024);switch(a){case 1:e.ca|=512;e.D|=49152;break;case 2:e.ca|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.S[b.ha]|=128;e.D=e.D&65534|128;return!!(e.D&64)})}; +l.qc=function(a,b,c,d,f){var e=this.j;e.$a=d&65535;e.o=e.o&-49|d>>12&48;e.pa=d>>16&63;e.H=~~(c/e.F[b.ha])<<6|c%e.F[b.ha];e.Aa=e.H;e.ua=65536-f&65535;switch(a){case 1:e.o|=33792;break;case 2:e.o|=40960}I(this.a,20,5,112,function(){e.o|=129;return!!(e.o&64)})};function hb(a){a=a.l;a.D=2176;a.ba=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Na=a.Ua=a.Sa=a.za=a.Gb=0} +function ib(a,b){var c=a.l,d,f,e;c.D&=-16513;c.ba&=-2049;c.S[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.rc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ha[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.ub[b]=c.ja[b];c.D|=32896;c.S[b]|=32896;c.Na|=1<=c.xb[0]||c.ca[b]>>8>=c.Ha[0]||(c.ca[b]&255)>=c.F[0]){c.Ta[b]|=1024;c.D|=49152;break}d=(c.ja[b]*c.Ha[0]+(c.ca[b]>>8))*c.F[0]+ +(c.ca[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;fb(a,c.R[b],d,f,e);return;case 57:if(c.ja[b]>=c.xb[0]||c.ca[b]>>8>=c.Ha[0]||(c.ca[b]&255)>=c.F[0])c.Ta[b]|=1024,c.D|=49152;else{d=(c.ja[b]*c.Ha[0]+(c.ca[b]>>8))*c.F[0]+(c.ca[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;a.qb(c.R[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.S[b]|=128;return!!(c.D&64)})} +l.rc=function(a,b,c,d,f){var e=this.l;e.Ua=65536-f&65535;e.Sa=d&65535;e.D=e.D&-769|d>>8&768;e.za=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ha[0]);e.ca[b.ha]=f%e.Ha[0]<<8|c%e.F[0];e.ub[b.ha]=e.ja[b.ha]=d;e.Na|=1<=b.ic-1&&(e.S[b.ha]|=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.S[b.ha]|=128;e.D=e.D&65534|128;return!!(e.D&64)})}; function jb(a,b,c,d,f,e){var g=~~((e+c.qa-1)/c.qa),h=new XMLHttpRequest;2048>g&&d+2048g){b.Db(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.Db(0,b,c,d,f)}l.reset=function(){this.g.Ra=this.g.Ra&-120|20;this.b.U=0;this.b.W=128;this.f.ta=0;this.i.A=128;this.j.o=128;hb(this)}; @@ -47,8 +47,8 @@ l.Zb=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){ca 255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ja)return K(e,4);f=a-4194272>>1;0>b?d=e.Cb[f]:(d=J(this,e.Cb[f],a,b,c),0<=d&&(e.Cb[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.ga[3]=b),d=e.ga[3]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ga[1]=b),d=e.ga[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.Ma[f]=b),d=e.Ma[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.ga[0]=b),d=e.ga[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.w&2048?(0<=b&&(e.Ma[f]=b),d=e.Ma[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.m|=16,K(e,4)}break;case 4194176:f=a>>1&31;d=J(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.b;switch(a&-2){case 4194174:d=J(this,e.tb,a,b,c);0<=d&&(e.tb=d);break;case 4194172:d=e.xa;d&65280&&(d=(d<<8|d>>8)&65535);break; case 4194168:0>b?d=this.g.zc&65535:(d=J(this,this.g.data,a,b,c),0<=d&&(this.g.data=d));break;case 4194166:0<=b&&(b&127&&(g.bc=0),g.W&=-129,I(e,100,4,52,function(){g.W|=128;return!!(g.W&64)}));d=0;break;case 4194162:d=0;0>b&&(g.U&=-129,0b?d=g.U:(d=J(this,g.U,a,b,c),0<=d&&(g.U=g.U&128|d&-129));break;default:return e.m|=16,K(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d= -J(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194050:d=J(this,f.P,a,b,c);0<=d&&(f.P=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.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194056:d=J(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194058:d=J(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=J(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;default:return e.m|=16,K(e,4)}break;case 4193728:var h=this.l;f=h.ca&7;switch(a& --2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.za=h.za&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.Ua,a,b,c);0<=d&&(h.Ua=d);break;case 4193732:d=J(this,h.Sa,a,b,c);0<=d&&(h.Sa=d&65534);break;case 4193734:d=J(this,h.da[f],a,b,c);0<=d&&(h.da[f]=d&7967);break;case 4193736:d=J(this,h.ca,a,b,c);0<=d&&(h.ca=d&63|h.ca&65472,d&128&&hb(this));break;case 4193738:d=h.S[f];break;case 4193740:d=h.Ta[f];break;case 4193742:d=J(this, +J(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194050:d=J(this,f.P,a,b,c);0<=d&&(f.P=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.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194056:d=J(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194058:d=J(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=J(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;default:return e.m|=16,K(e,4)}break;case 4193728:var h=this.l;f=h.ba&7;switch(a& +-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.za=h.za&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.Ua,a,b,c);0<=d&&(h.Ua=d);break;case 4193732:d=J(this,h.Sa,a,b,c);0<=d&&(h.Sa=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.S[f];break;case 4193740:d=h.Ta[f];break;case 4193742:d=J(this, h.Na,a,b,c);0<=d&&(h.Na=d&255);break;case 4193744:d=h.wc[f];break;case 4193746:d=J(this,h.Tb,a,b,c);0<=d&&(h.Tb=d);break;case 4193748:d=J(this,h.Ub[f],a,b,c);0<=d&&(h.Ub[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.xc[f];break;case 4193754:d=J(this,h.Vb[f],a,b,c);0<=d&&(h.Vb[f]=d);break;case 4193756:d=J(this,h.ja[f],a,b,c);0<=d&&(h.ja[f]=d&511);break;case 4193758:h.ub[f]=h.ja[f];d=h.ub[f];break;case 4193760:d=h.uc[f];break;case 4193762:d=h.vc[f];break;case 4193764:d=h.sc[f];break;case 4193766:d= h.tc[f];break;case 4193768:d=J(this,h.za,a,b,c);0<=d&&(h.za=d&63,h.D=h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Gb,a,b,c);0<=d&&(h.Gb=d);break;default:return e.m|=16,K(e,4)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=J(this,f.o,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.o=f.o&-1023|d&1022,f.o&128||gb(this));break;case 4192514:d=J(this,f.$a,a,b,c);0<=d&&(f.$a=d&65534);break;case 4192516:d=J(this,f.H,a,b,c);0<=d&&(f.H=d);break;case 4192518:d=J(this,f.ua,a,b,c);0<=d&&(f.ua=d);break; case 4192520:d=J(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.o=f.o&-49|(f.pa&3)<<4);break;default:return e.m|=16,K(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.La:(d=J(this,e.La,a,b,c),0<=d&&(70!==e.Ja&&(d&=-49),e.La=d,e.pb[0]=d&4?15:7,e.pb[1]=d&2?15:7,e.pb[3]=d&1?15:7,e.ob&&(f=2,e.La&16&&(f=1),this.g.Ra=this.g.Ra&-8|f)));break;default:return e.m|=16,K(e,4)}break;case 4191424:f=a>>1&31;d=J(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.O[1][f], @@ -58,91 +58,91 @@ if(Ha){var mb=new ArrayBuffer(2);(new DataView(mb)).setUint16(0,256,!0);lb=256== function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Xa=a;this.vb=b;this.size=c||0;this.type=d||pb;this.g=d==qb;this.controller=null;Ka(this);this.ra=this.cc=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Ya);else if(Ha)this.f=new ArrayBuffer(c),this.u=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.l=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},aa:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},na: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},Ea: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.ra=!0},T:function(a,b){return this.X(a,b)},ka:function(a,b){return this.la(a, -b)},Ca:function(a,b,c){this.g||this.Yb(a,b,c)},Ga:function(a,b,c){this.g||this.Oa(a,b,c)},L:function(a){return this.b[a]},Y:function(a){return this.b[a]},ba:function(a){return this.u.getUint16(a,!0)},ma:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Ba:function(a,b){this.b[a]=b;this.ra=!0},Da:function(a,b){this.b[a]=b;this.ra=!0},Fa:function(a,b){this.u.setUint16(a,b,!0);this.ra=!0},Pa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.ra=!0}}; -function Ka(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&vb(a,wb,!1),(a.j=c.j)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.j||(a.Wa=!a.g&&b[1]||a.G,a.Fc=!a.g&&b[3]||a.J);if(c||void 0===c)a.Yb=b[1]||a.G,a.Oa=b[3]||a.J}function vb(a,b,c){c&&a.i||(a.cb=b[0]||a.v,a.rb=b[2]||a.C);if(c||void 0===c)a.X=b[0]||a.v,a.la=b[2]||a.C}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.aa,G.prototype.Ea,G.prototype.na,G.prototype.Qa],wb=[G.prototype.T,G.prototype.Ca,G.prototype.ka,G.prototype.Ga]; -if(Ha)var tb=[G.prototype.L,G.prototype.Ba,G.prototype.ba,G.prototype.Fa],sb=[G.prototype.Y,G.prototype.Da,G.prototype.ma,G.prototype.Pa];function zb(a,b){w.call(this,"CPU",a,zb);var c=a.multiplier||1;this.kb=a.cycles||b;this.aa=c;this.zb=Math.round(this.kb/1E4)/100;this.la=this.zb*this.aa;this.h.$=!1;this.h.Wb=!1;this.h.Za=a.autoStart;this.h.Nb=!1;this.h.mb=!1;this.ib=this.ma=0;this.jb=a.csStart;this.Ca=a.csInterval;this.Da=a.csStop;this.G=[];this.wb=this.yc.bind(this);E(this)}y(zb); -var Ab=["power","reset"];l=zb.prototype;l.Ka=function(a,b,c,d){this.v=a;this.B=b;this.I=d;for(b=0;ba.T/a.la&&(b=1),a.aa=b,b=a.zb*a.aa,a.la!=b)){a.la=b;b=a.la.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.K("target speed: "+b)}Ib(a,a.L);a.L=0;a.J=ia();a.X=0;Jb(a)}function $a(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function ab(a,b){var c;0<=b&&ba.G[b][0]&&(c=a.kb*a.aa/1E3*(1E3/60),a.G[b][0]=c)}function Lb(a){a.Y-=a.a;a.a=0} -l.yc=function(){if(this.h.$){this.Ab>=this.kb&&Jb(this,!0);this.Fa=0;this.Qa=ia();if(this.X){var a=this.Qa-this.X;a>this.Pb&&(this.J+=a,this.J>this.Qa&&(this.J=this.Qa))}try{do{for(var b,c=this.h.mb?1:this.lb,d=this.G.length-1;0<=d;d--){var f=this.G[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Xb(b)}catch(m){if("number"!=typeof m)throw m;}for(var e=this.Y-this.a,a=e,g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Fa+=e;this.L+=e;Ib(this,0,!0);a=e;if(this.h.mb){var k= -!1;this.ib=this.ib+this.Rb()|0;this.ma-=a;0>=this.ma&&(this.ma+=this.Ca,k=!0);0<=this.Da&&this.Da<=Kb(this)&&(this.Ca=this.Da=-1,Db(this),Gb(this),k=!0);k&&this.K(Kb(this)+" cycles: checksum="+n(this.ib))}this.Ea-=e;if(0>=this.Ea){this.Ea+=this.lb;15<=++this.Qb&&(this.v&&this.v.Va(),this.Qb=0);break}}while(this.h.$)}catch(m){Gb(this);Eb(this);this.v&&this.v.stop(ia(),Kb(this));b=m.stack||m.message;this.h.error=!0;this.M(b);return}if(this.h.$){b=setTimeout;c=this.wb;this.X=ia();d=this.Pb;this.Fa&& -(d=Math.round(d*this.Fa/this.lb));d-=this.X-this.Qa;if(f=this.X-this.J)this.T=Math.round(this.L/(10*f))/100,864E5<=f&&(this.ba=0,Hb(this));if(0>d||this.Td&&(this.J-=d),d=0;this.Ab+=this.Fa;this.X+=d;b(c,d)}}};function Fb(a){var b;a.h.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.$)a.K(a.toString()+" busy");else{Hb(a);a.h.$=!0;a.h.Wb=!0;a.Ba&&a.Ba.start();if(b=a.u.run)b.textContent="Halt";a.v&&a.v.start(a.J,Kb(a));Eb(a,!0);setTimeout(a.wb,0)}}l.Xb=function(){return 0}; -function Gb(a){if(a.h.$){Lb(a);Ib(a,a.L);a.L=0;a.h.$=!1;a.Ba&&a.Ba.stop();var b=a.u.run;b&&(b.textContent="Run");a.v&&a.v.stop(ia(),Kb(a));Eb(a)}a.h.complete=void 0}function Eb(a,b){a.v&&a.v.Va(b)} +b&255,c++);this.Wa(a,b>>8,c)},$:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},na: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},Ea: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.ra=!0},T:function(a,b){return this.X(a,b)},ka:function(a,b){return this.la(a, +b)},Ca:function(a,b,c){this.g||this.Yb(a,b,c)},Ga:function(a,b,c){this.g||this.Oa(a,b,c)},L:function(a){return this.b[a]},Y:function(a){return this.b[a]},aa:function(a){return this.u.getUint16(a,!0)},ma:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Ba:function(a,b){this.b[a]=b;this.ra=!0},Da:function(a,b){this.b[a]=b;this.ra=!0},Fa:function(a,b){this.u.setUint16(a,b,!0);this.ra=!0},Pa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.ra=!0}}; +function Ka(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&vb(a,wb,!1),(a.j=c.j)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.j||(a.Wa=!a.g&&b[1]||a.G,a.Fc=!a.g&&b[3]||a.J);if(c||void 0===c)a.Yb=b[1]||a.G,a.Oa=b[3]||a.J}function vb(a,b,c){c&&a.i||(a.cb=b[0]||a.v,a.rb=b[2]||a.C);if(c||void 0===c)a.X=b[0]||a.v,a.la=b[2]||a.C}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.$,G.prototype.Ea,G.prototype.na,G.prototype.Qa],wb=[G.prototype.T,G.prototype.Ca,G.prototype.ka,G.prototype.Ga]; +if(Ha)var tb=[G.prototype.L,G.prototype.Ba,G.prototype.aa,G.prototype.Fa],sb=[G.prototype.Y,G.prototype.Da,G.prototype.ma,G.prototype.Pa];function zb(a,b){w.call(this,"CPU",a,zb);var c=a.multiplier||1;this.kb=a.cycles||b;this.$=c;this.zb=Math.round(this.kb/1E4)/100;this.la=this.zb*this.$;this.h.Z=!1;this.h.Wb=!1;this.h.Za=a.autoStart;this.h.Nb=!1;this.h.mb=!1;this.ib=this.ma=0;this.jb=a.csStart;this.Ca=a.csInterval;this.Da=a.csStop;this.G=[];this.wb=this.yc.bind(this);E(this)}y(zb); +var Ab=["power","reset"];l=zb.prototype;l.Ka=function(a,b,c,d){this.v=a;this.B=b;this.I=d;for(b=0;ba.T/a.la&&(b=1),a.$=b,b=a.zb*a.$,a.la!=b)){a.la=b;b=a.la.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.K("target speed: "+b)}Ib(a,a.L);a.L=0;a.J=ia();a.X=0;Jb(a)}function $a(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function ab(a,b){var c;0<=b&&ba.G[b][0]&&(c=a.kb*a.$/1E3*(1E3/60),a.G[b][0]=c)}function Lb(a){a.Y-=a.a;a.a=0} +l.yc=function(){if(this.h.Z){this.Ab>=this.kb&&Jb(this,!0);this.Fa=0;this.Qa=ia();if(this.X){var a=this.Qa-this.X;a>this.Pb&&(this.J+=a,this.J>this.Qa&&(this.J=this.Qa))}try{do{for(var b,c=this.h.mb?1:this.lb,d=this.G.length-1;0<=d;d--){var f=this.G[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Xb(b)}catch(m){if("number"!=typeof m)throw m;}for(var e=this.Y-this.a,a=e,g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Fa+=e;this.L+=e;Ib(this,0,!0);a=e;if(this.h.mb){var k= +!1;this.ib=this.ib+this.Rb()|0;this.ma-=a;0>=this.ma&&(this.ma+=this.Ca,k=!0);0<=this.Da&&this.Da<=Kb(this)&&(this.Ca=this.Da=-1,Db(this),Gb(this),k=!0);k&&this.K(Kb(this)+" cycles: checksum="+n(this.ib))}this.Ea-=e;if(0>=this.Ea){this.Ea+=this.lb;15<=++this.Qb&&(this.v&&this.v.Va(),this.Qb=0);break}}while(this.h.Z)}catch(m){Gb(this);Eb(this);this.v&&this.v.stop(ia(),Kb(this));b=m.stack||m.message;this.h.error=!0;this.M(b);return}if(this.h.Z){b=setTimeout;c=this.wb;this.X=ia();d=this.Pb;this.Fa&& +(d=Math.round(d*this.Fa/this.lb));d-=this.X-this.Qa;if(f=this.X-this.J)this.T=Math.round(this.L/(10*f))/100,864E5<=f&&(this.aa=0,Hb(this));if(0>d||this.Td&&(this.J-=d),d=0;this.Ab+=this.Fa;this.X+=d;b(c,d)}}};function Fb(a){var b;a.h.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.Z)a.K(a.toString()+" busy");else{Hb(a);a.h.Z=!0;a.h.Wb=!0;a.Ba&&a.Ba.start();if(b=a.u.run)b.textContent="Halt";a.v&&a.v.start(a.J,Kb(a));Eb(a,!0);setTimeout(a.wb,0)}}l.Xb=function(){return 0}; +function Gb(a){if(a.h.Z){Lb(a);Ib(a,a.L);a.L=0;a.h.Z=!1;a.Ba&&a.Ba.stop();var b=a.u.run;b&&(b.textContent="Run");a.v&&a.v.stop(ia(),Kb(a));Eb(a)}a.h.complete=void 0}function Eb(a,b){a.v&&a.v.Va(b)} function Mb(a){this.gc=a.resetAddr||0;zb.call(this,a,1E6);this.Jb=0;this.decode=Nb.bind(this);this.i=65536;this.b=32768;this.f=65535;this.j=32768;this.w=15;this.c=[0,0,0,0,0,0,0,this.gc];this.Ma=[0,0,0,0,0,0];this.ga=[0,0,0,0];this.Pa=this.l=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.hb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Cb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.s=0;this.Ja=70;this.na=-1;this.Ga=0;Ob(this);this.h.complete=this.h.ac=!1}y(Mb,zb);l=Mb.prototype;l.reset=function(){this.h.$&&Gb(this);Ob(this);Cb(this);this.h.error=!1;this.parent.reset.call(this)}; -function Ob(a){a.ya=255;a.m=0;a.Fb=0;a.C=0;a.xa=0;a.tb=0;a.La=0;a.ob=0;a.Oa=0;a.pb=[7,7,7,7];a.g=[];a.ia=2;bb(a)}function bb(a){a.ob?(a.Ib=65536,a.ka=a.fc,a.rb=a.Z):(a.Ib=0,a.ka=a.ec,a.rb=a.sb)}l.Rb=function(){return 0};l.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.ba,this.aa]);a.set(2,Va(this.B));return a.data()}; -l.restore=function(a){var b=a[1];this.ba=b[1];Hb(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;cb){a.g[e].fa-=b;break}b-=a.g[e].fa}a.g.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ia=2}function cb(a){return a.w=a.w&63728|a.sa()|(a.f&65535?0:4)|(a.b&32768?2:0)|O(a)} -function db(a,b){a.j=b<<12;a.f=~b&4;a.b=b<<14;a.i=b<<16;if((b^a.w)&2048)for(var c=a.Ma.length;0<=--c;){var d=a.c[c];a.c[c]=a.Ma[c];a.Ma[c]=d}a.l=b>>14&3;c=a.w>>14&3;a.l!=c&&(a.ga[c]=a.c[6],a.c[6]=a.ga[a.l]);a.ia=2;a.w=b}function P(a,b,c){a.s&128||(a.j=a.f=a.i=b,a.b=c||0)}function Q(a,b){a.s&128||(a.j=a.f=b,a.b=0)}function Pb(a,b,c,d){a.s&128||(a.j=a.f=a.i=b,a.b=(c^b)&(d^b))}function R(a,b){a.s&128||(a.j=a.f=a.i=b,a.b=a.j^a.i>>1)}function Qb(a,b,c,d){a.s&128||(a.j=a.f=a.i=b,a.b=(c^d)&(d^b))} -function K(a,b){var c=!1;0>a.na?a.na=cb(a):a.l||(b=4,c=!0);a.C&57344||(a.xa=63222,a.tb=b);a.l=0;var d=a.Z(b|65536),f=a.Z(b+2&65535|65536);db(a,f&-12289|a.na>>2&12288);c&&(a.m|=4,a.c[6]=4);Rb(a,a.na);Rb(a,a.c[7]);a.c[7]=d;a.s&=-113;a.na=-1;throw b;}function Sb(a){var b=Tb(a),c=Tb(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);a.c[7]=b&65535;db(a,c);a.s&=-17}function kb(a,b){var c=b>>13&31;31>c?a.La&32&&(b=a.hb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b} -function Ub(a,b,c){var d,f,e,g=0;if(c&a.ob){d=b>>13&a.pb[a.l];f=a.O[a.l][d];e=(a.O[a.l][d+16]<<6)+(b&8191)&4194303;a.La&16?3932160<=e&&4186112>e&&(e=kb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,K(a,4)),e&1&&!(c&1)&&(a.m|=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.O[a.l][d]=f;if(4194170!==e||a.l)a.Oa=a.l,a.Pa=d;g&&(g&57344&&(0<=a.na&&(g|=128),a.C&57344||(a.C=a.C|g|a.Oa<<5|a.Pa<<1),K(a,168)),a.C&61440||!(4191360>e||4194239>>b.f;a=c!=b.i?b.b[d].rb(c,a):b.b[d++].cb(c,a)|b.b[d&b.L].cb(0,a+1)<<8}return a};l.Z=function(a){return this.sb(Ub(this,a,2))}; -function Tb(a){var b=a.Z(a.c[6]|65536);a.c[6]=a.c[6]+2&65535;return b}function Rb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.C&57344||(a.xa=a.xa<<8|246);!a.l&&c<=a.ya&&4>3&7){case 0:K(a,4);break;case 1:return 6===e&&!a.l&&c&4&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.Z(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.Z(d)))return d; -d|=g;break;case 6:if(0>(d=a.Z(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.Z(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.Z(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.C&57344||(a.xa=a.xa<<8|f<<3&248|e);6==e&&!a.l&&c&4&&0>=f&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=64));return d}l.ec=function(a,b){return Vb(this,a,b)};l.fc=function(a,b){return Ub(this,Vb(this,a,b),b)}; -function Wb(a,b,c){b&56?(b=Vb(a,b,0),c&65536||61440!==(a.w&61440)&&(b&=65535),a.l=a.w>>12&3,c=a.Z(b|c&65536),a.l=a.w>>14&3):(c=b&7,c=6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]:a.ga[a.w>>12&3]);return c}function Xb(a,b,c,d){a.C&57344||(a.xa=22);b&56?(b=Vb(a,b,0),c&65536||(b&=65535),a.l=a.w>>12&3,b=Ub(a,b|c&65536,4),a.l=a.w>>14&3,Ua(a.B,b,d&65535)):(c=b&7,6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]=d:a.ga[a.w>>12&3]=d)}function S(a,b){return b&56?a.rb(Vb(a,b,2)):a.c[b&7]} -function T(a,b){b&56?(b=a.ka(b,3),a=Ta(a.B,b)):a=a.c[b&7]&255;return a}function U(a,b,c,d){b&56?(b=a.ka(b,6),c=d.call(a,c,a.sb(b)),Ua(a.B,b,c&65535)):(b&=7,a.c[b]=d.call(a,c,a.c[b]))}function V(a,b,c,d){b&56?(b=a.ka(b,7),c=d.call(a,c,Ta(a.B,b)),a=a.B,a.b[(b&a.j)>>>a.f].Wa(b&a.i,c&255,b)):(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.ka(b,4),Ua(a.B,b,c&65535)):a.c[b&7]=c&65535;return c} -function Zb(a,b,c,d){b&56?(d=a.ka(b,5),a=a.B,a.b[(d&a.j)>>>a.f].Wa(d&a.i,c&255,d)):(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.Xb=function(a){this.h.complete=!0;this.h.ac=!1;this.h.Wb=!1;this.Y=this.a=a;do{this.s&112&&(this.s&32?K(this,168):this.s&64?K(this,4):this.s&16&&K(this,12),this.s&=-113);if(a&&this.ia)if(1==this.ia)this.ia=2;else{this.ia=0;for(var b=null,c=this.Fb&224,d=this.g.length;0<=--d;){if(0c&&(c=this.g[d].jc,b=this.g[d],this.g.splice(d,1))}c>(this.w&224)&&(b?K(this, -b.Ac):K(this,160))}this.C&57344||(this.xa=0,this.tb=this.c[7]);this.s=this.w&16;b=this.Z(this.c[7]);0<=b&&(this.c[7]=this.c[7]+2&65535);this.decode(b)}while(0>1|b<<16;R(this,a);return a&65535}function ec(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function fc(a,b){a=b&~a;Q(this,a);return a}function gc(a,b){a=b&~a;Q(this,a<<8);return a}function hc(a,b){a|=b;Q(this,a);return a}function ic(a,b){a|=b;Q(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.s&128||(this.j=this.f=a,this.b=b&(b^a));return a&65535}function mc(a,b){a=b-a;var c=a<<8;b<<=8;this.s&128||(this.j=this.f=c,this.b=b&(b^c));return a&255}function nc(a,b){a=b+a;this.s&128||(this.j=this.f=a,this.b=a&(b^a));return a&65535}function oc(a,b){a=b+a;var c=a<<8;this.s&128||(this.j=this.f=c,this.b=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.i>>16&1;R(this,a);return a&65535}function sc(a,b){a=b<<1|this.i>>16&1;R(this,a<<8);return a&255}function tc(a,b){a=(this.i&65536|b)>>1|b<<16;R(this,a);return a&65535}function uc(a,b){a=((this.i&65536)>>8|b)>>1|b<<8;R(this,a<<8);return a&255}function vc(a,b){var c=b-a;Qb(this,c,a,b);return c&65535}function wc(a,b){var c=b-a;Qb(this,c<<8,a<<8,b<<8);return c&255}function xc(a,b){a^=b;Q(this,a);return a&65535} -function yc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a];c&32768&&(c|=4294901760);this.i=this.b=0;b&=63;b&32?(b=64-b,16>=b):b&&(16>15&65535)&&65535!==b&&(this.b=32768)));this.c[a]=c&65535;this.j=this.f=c;--this.a} -function zc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.i=this.b=0;b&=63;if(b&32){b=64-b;32>b-1;this.i=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.j=d>>16;this.f=d>>16|d;--this.a}function X(a){a&1&&(this.i=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.j=0);--this.a} -function Ac(a){var b=S(this,a);if(b){a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.i=this.b=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.f=d>>16|d,this.j=d>>16):(this.b=32768,this.f=d>>15|d,this.j=c>>16,-1===b&&65534===this.c[a]&&(this.c[a]=this.c[a|1]=1))}else this.f=this.j=0,this.b=32768,this.i=65536;--this.a}function Bc(a){var b=Vb(this,a,8);a=a>>6&7;Rb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a} -function Cc(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=b>>16;this.f=this.j|b;this.b=0;this.i=-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 Fc(a){U(this,a,S(this,(a&448)>>6),xc);--this.a}function Z(){K(this,8)}function Nb(a){Gc[a>>12].call(this,a)} -var Gc=[function(a){Hc[a>>8&15].call(this,a)},function(a){Q(this,Yb(this,a,S(this,a>>6)));--this.a},function(a){var b=S(this,a>>6);a=S(this,a);Qb(this,b-a,a,b);--this.a},function(a){Q(this,S(this,a>>6)&S(this,a));--this.a},function(a){U(this,a,S(this,a>>6),fc);--this.a},function(a){U(this,a,S(this,a>>6),hc);--this.a},function(a){U(this,a,S(this,a>>6),$b);--this.a},function(a){Ic[a>>8&15].call(this,a)},function(a){Jc[a>>8&15].call(this,a)},function(a){var b=T(this,a>>6);Q(this,Zb(this,a,b,1)<<8);--this.a}, -function(a){var b=T(this,a>>6)<<8;a=T(this,a)<<8;Qb(this,b-a,a,b);--this.a},function(a){Q(this,(T(this,a>>6)&T(this,a))<<8);--this.a},function(a){V(this,a,T(this,a>>6),gc);--this.a},function(a){V(this,a,T(this,a>>6),ic);--this.a},function(a){U(this,a,S(this,a>>6),vc);--this.a},Z],Hc=[function(a){Kc[a>>4&15].call(this,a)},function(a){W(this,a);--this.a},function(a){this.f&65535&&W(this,a);--this.a},function(a){this.f&65535||W(this,a);--this.a},function(a){!this.sa()==!(this.b&32768)&&W(this,a);--this.a}, -function(a){!this.sa()!=!(this.b&32768)&&W(this,a);--this.a},function(a){this.f&65535&&!this.sa()==!(this.b&32768)&&W(this,a);--this.a},function(a){this.f&65535&&!this.sa()==!(this.b&32768)||W(this,a);--this.a},Bc,Bc,function(a){Lc[a>>6&3].call(this,a)},function(a){Mc[a>>6&3].call(this,a)},function(a){Nc[a>>6&3].call(this,a)},function(a){Oc[a>>6&3].call(this,a)},Z,Z],Kc=[function(a){Pc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,function(a){var b=Tb(this);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.w& -49152||(this.w=this.w&-2017|(a&7)<<5,this.ia=1);--this.a},function(a){Qc[a&15].call(this,a)},function(a){Rc[a&15].call(this,a)},Z,Z,Z,Z],Qc=[Dc,function(){this.i=0;--this.a},function(){this.b=0;--this.a},X,function(){this.f=1;--this.a},X,X,X,function(){this.j=0;--this.a},X,X,X,X,X,X,X],Rc=[Dc,function(){this.i=65536;--this.a},function(){this.b=32768;--this.a},Y,function(){this.f=0;--this.a},Y,Y,Y,function(){this.j=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],Pc=[function(){this.w&49152?(this.m|=128,K(this,4)): -(this.Ga=3,Lb(this));--this.a},function(){for(var a=0,b=this.g.length;0<=--b;)a+=this.g[b].fa,this.g[b].fa=0;a||0!==this.Ga||(this.Ga=2,Lb(this));--this.a},function(){Sb(this);this.s|=this.w&16;--this.a},function(){K(this,12);--this.a},function(){K(this,16);--this.a},function(){this.w&49152||(Ob(this),this.B.reset());--this.a},function(){Sb(this);--this.a},Z,Z,Z,Z,Z,Z,Z,Z,Z],Ic=[Cc,Cc,Ac,Ac,yc,yc,zc,zc,Fc,Fc,Z,Z,Z,Z,Ec,Ec],Jc=[function(a){this.sa()||W(this,a);--this.a},function(a){this.sa()&&W(this, -a);--this.a},function(a){!O(this)&&this.f&65535&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535||W(this,a);--this.a},function(a){this.b&32768||W(this,a);--this.a},function(a){this.b&32768&&W(this,a);--this.a},function(a){O(this)||W(this,a);--this.a},function(a){O(this)&&W(this,a);--this.a},function(){K(this,24);--this.a},function(){K(this,28);--this.a},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],Lc=[function(a){P(this,Yb(this,a,0));--this.a},function(a){U(this,a,0,jc);--this.a},function(a){U(this,a,1,nc);--this.a},function(a){U(this,a,1,lc);--this.a}],Mc=[function(a){U(this,a,0,pc);--this.a},function(a){U(this,a,O(this)?1:0,$b);--this.a},function(a){U(this,a,O(this)?1:0,vc);--this.a},function(a){a=S(this,a);P(this,a);--this.a}],Nc=[function(a){U(this,a,0,tc);--this.a},function(a){U(this,a,0,rc);--this.a},function(a){U(this,a,0,dc);--this.a},function(a){U(this,a,0,bc);--this.a}], -Oc=[function(a){a=this.c[7]+((a&63)<<1)&65535;var b=this.Z(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);Rb(this,a);Q(this,a);--this.a},function(a){var b=Tb(this);Xb(this,a,0,b);Q(this,b);--this.a},function(a){Q(this,Yb(this,a,this.sa?65535:0));--this.a}],Sc=[function(a){P(this,Zb(this,a,0));--this.a},function(a){V(this,a,0,kc);--this.a},function(a){V(this,a,1,oc);--this.a},function(a){V(this,a,1,mc);--this.a}],Tc=[function(a){V(this,a,0,qc); ---this.a},function(a){V(this,a,O(this)?1:0,ac);--this.a},function(a){V(this,a,O(this)?1:0,wc);--this.a},function(a){a=T(this,a);P(this,a<<8);--this.a}],Uc=[function(a){V(this,a,0,uc);--this.a},function(a){V(this,a,0,sc);--this.a},function(a){V(this,a,0,ec);--this.a},function(a){V(this,a,0,cc);--this.a}],Vc=[Z,function(a){a=Wb(this,a,65536);Rb(this,a);Q(this,a);--this.a},function(a){var b=Tb(this);Xb(this,a,65536,b);Q(this,b);--this.a},Z]; -function Wc(a){w.call(this,"ROM",a,Wc);this.b=null;this.l=a.addr;this.f=a.size;this.v=a.writable;this.g=a.alias;this.i=a.file;this.C=ca(this.i);if(this.i){a=this.i;var b=da(this.C);"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){Xc(c,a,b,e)})}}y(Wc);Wc.prototype.Ka=function(a,b,c,d){this.B=b;this.a=c;this.I=d;Yc(this)};Wc.prototype.wa=function(){this.j&&(this.I&&this.I.a(this.id,this.l,this.f,this.j),delete this.j);return!0}; -Wc.prototype.va=function(){return!0}; -function Xc(a,b,c,d){if(d)a.M("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Mb,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.j=h.symbols;if(!a.b.length){q("Empty ROM: "+b); -return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.M("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].Yb(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.K("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bcd){if(ed(d,this.C)){this.j=new N(this,"1.30.0","failsafe");ed(this.j)&&(jd(this,d),a=2,kd(this.j));this.j.set("timestamp",ja());ld(this.j);var f=this.b&&!this.l;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=id(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?ed(d,g):("error"== -e&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.f=null)):this.K(e+": "+g),kd(d),ed(d)?(c=id(d),f=!0):c=!1))}f&&hd(this,c?d:null)}else 2==a&&d.clear()}else hd(this);delete this.C;delete this.G}f=z(this.id);for(e=0;ea[1];a=a[2];this.ba=!0;this.h.N=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(md(this,this.a,b,c,a),this.a.Za());this.T&&(jd(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function jd(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 nd(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new N(a,"1.30.0"),g=new N(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.va&&(c&&Gb(a.a),d=a.a.va(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.h.N=!1,!1===d&&(f=null)));for(var h=z(a.id),k=0;kb){a.g[e].ea-=b;break}b-=a.g[e].ea}a.g.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ia=2}function cb(a){return a.w=a.w&63728|a.sa()|(a.f&65535?0:4)|(a.b&32768?2:0)|O(a)} +function db(a,b){a.j=b<<12;a.f=~b&4;a.b=b<<14;a.i=b<<16;if((b^a.w)&2048)for(var c=a.Ma.length;0<=--c;){var d=a.c[c];a.c[c]=a.Ma[c];a.Ma[c]=d}a.l=b>>14&3;c=a.w>>14&3;a.l!=c&&(a.ga[c]=a.c[6],a.c[6]=a.ga[a.l]);a.ia=2;a.w=b}function P(a,b){a.s&128||(a.j=a.f=b,a.b=0)}function Q(a,b,c){a.s&128||(a.j=a.f=a.i=b,a.b=c||0)}function Qb(a,b,c,d){a.s&128||(a.j=a.f=a.i=b,a.b=(c^b)&(d^b))}function R(a,b){a.s&128||(a.j=a.f=a.i=b,a.b=a.j^a.i>>1)}function Rb(a,b,c,d){a.s&128||(a.j=a.f=a.i=b,a.b=(c^d)&(d^b))} +function K(a,b){var c=!1;0>a.na?a.na=cb(a):a.l||(b=4,c=!0);a.C&57344||(a.xa=63222,a.tb=b);a.l=0;var d=a.fa(b|65536),f=a.fa(b+2&65535|65536);db(a,f&-12289|a.na>>2&12288);c&&(a.m|=4,a.c[6]=4);Sb(a,a.na);Sb(a,a.c[7]);a.c[7]=d;a.s&=-113;a.na=-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.s&=-17}function kb(a,b){var c=b>>13&31;31>c?a.La&32&&(b=a.hb[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.ob){d=b>>13&a.pb[a.l];f=a.O[a.l][d];e=(a.O[a.l][d+16]<<6)+(b&8191)&4194303;a.La&16?3932160<=e&&4186112>e&&(e=kb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,K(a,4)),e&1&&!(c&1)&&(a.m|=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.O[a.l][d]=f;if(4194170!==e||a.l)a.Oa=a.l,a.Pa=d;g&&(g&57344&&(0<=a.na&&(g|=128),a.C&57344||(a.C=a.C|g|a.Oa<<5|a.Pa<<1),K(a,168)),a.C&61440||!(4191360>e||4194239>>b.f;a=c!=b.i?b.b[d].rb(c,a):b.b[d++].cb(c,a)|b.b[d&b.L].cb(0,a+1)<<8}return a};l.fa=function(a){return this.sb(Vb(this,a,2))}; +function Ub(a){var b=a.fa(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.C&57344||(a.xa=a.xa<<8|246);!a.l&&c<=a.ya&&4>3&7){case 0:K(a,4);break;case 1:return 6===e&&!a.l&&c&4&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);d=a.fa(d);d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);d=a.fa(d)|g;break;case 6:return d=Pb(a), +d=d+a.c[e]&65535|g;case 7:return d=Pb(a),d=d+a.c[e]&65535,d=a.fa(d|65536)|g}a.c[e]=a.c[e]+f&65535;!g||a.C&57344||(a.xa=a.xa<<8|f<<3&248|e);6==e&&!a.l&&c&4&&0>=f&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=64));return d}l.ec=function(a,b){return Wb(this,a,b)};l.fc=function(a,b){return Vb(this,Wb(this,a,b),b)}; +function Xb(a,b,c){b&56?(b=Wb(a,b,0),c&65536||61440!==(a.w&61440)&&(b&=65535),a.l=a.w>>12&3,c=a.fa(b|c&65536),a.l=a.w>>14&3):(c=b&7,c=6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]:a.ga[a.w>>12&3]);return c}function Yb(a,b,c,d){a.C&57344||(a.xa=22);b&56?(b=Wb(a,b,0),c&65536||(b&=65535),a.l=a.w>>12&3,b=Vb(a,b|c&65536,4),a.l=a.w>>14&3,Ua(a.B,b,d&65535)):(c=b&7,6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]=d:a.ga[a.w>>12&3]=d)}function S(a,b){return b&56?a.rb(Wb(a,b,2)):a.c[b&7]} +function T(a,b){b&56?(b=a.ka(b,3),a=Ta(a.B,b)):a=a.c[b&7]&255;return a}function U(a,b,c,d){b&56?(b=a.ka(b,6),c=d.call(a,c,a.sb(b)),Ua(a.B,b,c&65535)):(b&=7,a.c[b]=d.call(a,c,a.c[b]))}function V(a,b,c,d){b&56?(b=a.ka(b,7),c=d.call(a,c,Ta(a.B,b)),a=a.B,a.b[(b&a.j)>>>a.f].Wa(b&a.i,c&255,b)):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b]))}function Zb(a,b,c){b&56?(b=a.ka(b,4),Ua(a.B,b,c&65535)):a.c[b&7]=c&65535;return c} +function $b(a,b,c,d){b&56?(d=a.ka(b,5),a=a.B,a.b[(d&a.j)>>>a.f].Wa(d&a.i,c&255,d)):(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.Xb=function(a){this.h.complete=!0;this.h.ac=!1;this.h.Wb=!1;this.Y=this.a=a;do{this.s&112&&(this.s&32?K(this,168):this.s&64?K(this,4):this.s&16&&K(this,12),this.s&=-113);if(a&&this.ia)if(1==this.ia)this.ia=2;else{this.ia=0;for(var b=null,c=this.Fb&224,d=this.g.length;0<=--d;){if(0c&&(c=this.g[d].jc,b=this.g[d],this.g.splice(d,1))}c>(this.w&224)&&(b?K(this, +b.Ac):K(this,160))}this.C&57344||(this.xa=0,this.tb=this.c[7]);this.s=this.w&16;this.decode(Pb(this))}while(0>1|b<<16;R(this,a);return a&65535}function fc(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function gc(a,b){a=b&~a;P(this,a);return a}function hc(a,b){a=b&~a;P(this,a<<8);return a}function ic(a,b){a|=b;P(this,a);return a}function jc(a,b){a|=b;P(this,a<<8);return a}function kc(a,b){a=~b|65536;Q(this,a);return a&65535}function lc(a,b){a=~b|256;Q(this,a<<8);return a&255} +function mc(a,b){a=b-a;this.s&128||(this.j=this.f=a,this.b=b&(b^a));return a&65535}function nc(a,b){a=b-a;var c=a<<8;b<<=8;this.s&128||(this.j=this.f=c,this.b=b&(b^c));return a&255}function oc(a,b){a=b+a;this.s&128||(this.j=this.f=a,this.b=a&(b^a));return a&65535}function pc(a,b){a=b+a;var c=a<<8;this.s&128||(this.j=this.f=c,this.b=c&(b<<8^c));return a&255}function qc(a,b){a=-b;Q(this,a,a&b&32768);return a&65535}function rc(a,b){a=-b;Q(this,a<<8,(a&b&128)<<8);return a&255} +function sc(a,b){a=b<<1|this.i>>16&1;R(this,a);return a&65535}function tc(a,b){a=b<<1|this.i>>16&1;R(this,a<<8);return a&255}function uc(a,b){a=(this.i&65536|b)>>1|b<<16;R(this,a);return a&65535}function vc(a,b){a=((this.i&65536)>>8|b)>>1|b<<8;R(this,a<<8);return a&255}function wc(a,b){var c=b-a;Rb(this,c,a,b);return c&65535}function xc(a,b){var c=b-a;Rb(this,c<<8,a<<8,b<<8);return c&255}function yc(a,b){a^=b;P(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.i=this.b=0;b&=63;b&32?(b=64-b,16>=b):b&&(16>15&65535)&&65535!==b&&(this.b=32768)));this.c[a]=c&65535;this.j=this.f=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.i=this.b=0;b&=63;if(b&32){b=64-b;32>b-1;this.i=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.j=d>>16;this.f=d>>16|d;--this.a}function X(a){a&1&&(this.i=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.j=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.i=this.b=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.f=d>>16|d,this.j=d>>16):(this.b=32768,this.f=d>>15|d,this.j=c>>16,-1===b&&65534===this.c[a]&&(this.c[a]=this.c[a|1]=1))}else this.f=this.j=0,this.b=32768,this.i=65536;--this.a}function Cc(a){var b=Wb(this,a,8);a=a>>6&7;Sb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a} +function Dc(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=b>>16;this.f=this.j|b;this.b=0;this.i=-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 Gc(a){U(this,a,S(this,(a&448)>>6),yc);--this.a}function Z(){K(this,8)}function Nb(a){Hc[a>>12].call(this,a)} +var Hc=[function(a){Ic[a>>8&15].call(this,a)},function(a){P(this,Zb(this,a,S(this,a>>6)));--this.a},function(a){var b=S(this,a>>6);a=S(this,a);Rb(this,b-a,a,b);--this.a},function(a){P(this,S(this,a>>6)&S(this,a));--this.a},function(a){U(this,a,S(this,a>>6),gc);--this.a},function(a){U(this,a,S(this,a>>6),ic);--this.a},function(a){U(this,a,S(this,a>>6),ac);--this.a},function(a){Jc[a>>8&15].call(this,a)},function(a){Kc[a>>8&15].call(this,a)},function(a){var b=T(this,a>>6);P(this,$b(this,a,b,1)<<8);--this.a}, +function(a){var b=T(this,a>>6)<<8;a=T(this,a)<<8;Rb(this,b-a,a,b);--this.a},function(a){P(this,(T(this,a>>6)&T(this,a))<<8);--this.a},function(a){V(this,a,T(this,a>>6),hc);--this.a},function(a){V(this,a,T(this,a>>6),jc);--this.a},function(a){U(this,a,S(this,a>>6),wc);--this.a},Z],Ic=[function(a){Lc[a>>4&15].call(this,a)},function(a){W(this,a);--this.a},function(a){this.f&65535&&W(this,a);--this.a},function(a){this.f&65535||W(this,a);--this.a},function(a){!this.sa()==!(this.b&32768)&&W(this,a);--this.a}, +function(a){!this.sa()!=!(this.b&32768)&&W(this,a);--this.a},function(a){this.f&65535&&!this.sa()==!(this.b&32768)&&W(this,a);--this.a},function(a){this.f&65535&&!this.sa()==!(this.b&32768)||W(this,a);--this.a},Cc,Cc,function(a){Mc[a>>6&3].call(this,a)},function(a){Nc[a>>6&3].call(this,a)},function(a){Oc[a>>6&3].call(this,a)},function(a){Pc[a>>6&3].call(this,a)},Z,Z],Mc=[function(a){Q(this,Zb(this,a,0));--this.a},function(a){U(this,a,0,kc);--this.a},function(a){U(this,a,1,oc);--this.a},function(a){U(this, +a,1,mc);--this.a}],Nc=[function(a){U(this,a,0,qc);--this.a},function(a){U(this,a,O(this)?1:0,ac);--this.a},function(a){U(this,a,O(this)?1:0,wc);--this.a},function(a){a=S(this,a);Q(this,a);--this.a}],Oc=[function(a){U(this,a,0,uc);--this.a},function(a){U(this,a,0,sc);--this.a},function(a){U(this,a,0,ec);--this.a},function(a){U(this,a,0,cc);--this.a}],Pc=[function(a){a=this.c[7]+((a&63)<<1)&65535;var b=this.fa(a|65536);this.c[7]=this.c[5]&65535;this.c[6]=a+2&65535;this.c[5]=b;--this.a},function(a){a= +Xb(this,a,0);Sb(this,a);P(this,a);--this.a},function(a){var b=Ub(this);Yb(this,a,0,b);P(this,b);--this.a},function(a){P(this,Zb(this,a,this.sa?65535:0));--this.a}],Lc=[function(a){Qc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,function(a){var b=Ub(this);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.ia=1);--this.a},function(a){Rc[a&15].call(this,a)},function(a){Sc[a&15].call(this,a)},Z,Z,Z,Z],Rc=[Ec,function(){this.i=0;--this.a},function(){this.b= +0;--this.a},X,function(){this.f=1;--this.a},X,X,X,function(){this.j=0;--this.a},X,X,X,X,X,X,X],Sc=[Ec,function(){this.i=65536;--this.a},function(){this.b=32768;--this.a},Y,function(){this.f=0;--this.a},Y,Y,Y,function(){this.j=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],Qc=[function(){this.w&49152?(this.m|=128,K(this,4)):(this.Ga=3,Lb(this));--this.a},function(){for(var a=0,b=this.g.length;0<=--b;)a+=this.g[b].ea,this.g[b].ea=0;a||0!==this.Ga||(this.Ga=2,Lb(this));--this.a},function(){Tb(this);this.s|=this.w&16; +--this.a},function(){K(this,12);--this.a},function(){K(this,16);--this.a},function(){this.w&49152||(Ob(this),this.B.reset());--this.a},function(){Tb(this);--this.a},Z,Z,Z,Z,Z,Z,Z,Z,Z],Jc=[Dc,Dc,Bc,Bc,zc,zc,Ac,Ac,Gc,Gc,Z,Z,Z,Z,Fc,Fc],Kc=[function(a){this.sa()||W(this,a);--this.a},function(a){this.sa()&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535||W(this,a);--this.a},function(a){this.b&32768||W(this,a);--this.a},function(a){this.b&32768&& +W(this,a);--this.a},function(a){O(this)||W(this,a);--this.a},function(a){O(this)&&W(this,a);--this.a},function(){K(this,24);--this.a},function(){K(this,28);--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)},function(a){Wc[a>>6&3].call(this,a)},Z,Z],Tc=[function(a){Q(this,$b(this,a,0));--this.a},function(a){V(this,a,0,lc);--this.a},function(a){V(this,a,1,pc);--this.a},function(a){V(this,a,1,nc);--this.a}],Uc=[function(a){V(this, +a,0,rc);--this.a},function(a){V(this,a,O(this)?1:0,bc);--this.a},function(a){V(this,a,O(this)?1:0,xc);--this.a},function(a){a=T(this,a);Q(this,a<<8);--this.a}],Vc=[function(a){V(this,a,0,vc);--this.a},function(a){V(this,a,0,tc);--this.a},function(a){V(this,a,0,fc);--this.a},function(a){V(this,a,0,dc);--this.a}],Wc=[Z,function(a){a=Xb(this,a,65536);Sb(this,a);P(this,a);--this.a},function(a){var b=Ub(this);Yb(this,a,65536,b);P(this,b);--this.a},Z]; +function Xc(a){w.call(this,"ROM",a,Xc);this.b=null;this.l=a.addr;this.f=a.size;this.v=a.writable;this.g=a.alias;this.i=a.file;this.C=ca(this.i);if(this.i){a=this.i;var b=da(this.C);"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){Yc(c,a,b,e)})}}y(Xc);Xc.prototype.Ka=function(a,b,c,d){this.B=b;this.a=c;this.I=d;Zc(this)};Xc.prototype.wa=function(){this.j&&(this.I&&this.I.a(this.id,this.l,this.f,this.j),delete this.j);return!0}; +Xc.prototype.va=function(){return!0}; +function Yc(a,b,c,d){if(d)a.M("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Mb,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.j=h.symbols;if(!a.b.length){q("Empty ROM: "+b); +return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.M("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].Yb(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.K("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bdd){if(fd(d,this.C)){this.j=new N(this,"1.30.0","failsafe");fd(this.j)&&(kd(this,d),a=2,ld(this.j));this.j.set("timestamp",ja());md(this.j);var f=this.b&&!this.l;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=jd(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?fd(d,g):("error"== +e&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.f=null)):this.K(e+": "+g),ld(d),fd(d)?(c=jd(d),f=!0):c=!1))}f&&id(this,c?d:null)}else 2==a&&d.clear()}else id(this);delete this.C;delete this.G}f=z(this.id);for(e=0;ea[1];a=a[2];this.aa=!0;this.h.N=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(nd(this,this.a,b,c,a),this.a.Za());this.T&&(kd(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function kd(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 od(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new N(a,"1.30.0"),g=new N(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.va&&(c&&Gb(a.a),d=a.a.va(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.h.N=!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(r){e=null,a=r.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,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.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);ud(a,b,c)}})}else c(a,null)} -function vd(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&&(--rd||va(!0));k=!1}var g,h,k=!0;rd++;Da[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));r.appendChild(v)}c|| -(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?sd(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,--rd||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),--rd||va(!0)):e("invalid machine element: "+ -a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?sd(b,a,d,!0,f,m):td(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 vd(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.u[b]=c,c.onclick=function(){d.g||(d.h.N?od(d,!1,!0):hd(d,d.bb))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.h.N&&!d.g)if(d.b&&!d.v){var a=ka("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");od(d,a,!0);!a&&d.L?window&&window.location.reload():d.bb(dd)}else d.reset(),d.a&&d.a.Za()},!0;case "save":if(ea())c.parentNode.removeChild(c);else return this.u[b]= +c,c.onclick=function(){var a=ed(d,!0);if(a){var b=!!(d.b&&!d.v||d.L),c=od(d,b);b?pd(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1}; +function ed(a,b){var c=a.f;c||((c=na("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=qd(a,c))||a.M("The user ID is invalid.")):b&&a.M("Browser local storage is not available"));return c} +function qd(a,b){a.f=null;b=p(fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(oa("user",b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function gd(a){var b=null;a.f&&(b=fa()+"/api/v1/user?req=load&user="+a.f+"&state="+rd(a,"1.30.0"));return b} +function pd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=rd(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(r){e=null,a=r.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,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.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);vd(a,b,c)}})}else c(a,null)} +function wd(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&&(--sd||va(!0));k=!1}var g,h,k=!0;sd++;Da[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));r.appendChild(v)}c|| +(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?td(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,--sd||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),--sd||va(!0)):e("invalid machine element: "+ +a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?td(b,a,d,!0,f,m):ud(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 wd(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa;})();