Finished creating the new PDP-11 decoding skeleton

This commit is contained in:
Jeff 2016-09-23 17:59:18 -07:00 • committed by Jeff Parsons
commit a7148a6eb3
4 changed files with 1835 additions and 608 deletions

File diff suppressed because it is too large Load diff

View file

@ -1449,7 +1449,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
nDebugState = 1; nDebugState = 1;
} }
var instruction, var opCode,
src, src,
dst, dst,
dstAddr, dstAddr,
@ -1530,24 +1530,27 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
*/ */
this.opFlags = this.PSW & PDP11.PSW.TF; this.opFlags = this.PSW & PDP11.PSW.TF;
this.regOp = this.readWordByVirtual(this.regsGen[7]); /*
* TODO: Determine (later) if this.regOp is a useful (internal) register to maintain;
* perhaps it would alleviate lots of opCode parameter-passing.
*/
this.regOp = opCode = this.readWordByVirtual(this.regsGen[7]);
this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff; this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff;
this.decode(this.regOp);
if (this.regOp >= 0) { this.decode(opCode);
instruction = this.regOp;
this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff;
switch (instruction & 0xF000) /*0170000*/ { // Double operand instructions xxSSDD if (opCode >= 0) {
// this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff;
switch (opCode & 0xF000) /*0170000*/ { // Double operand instructions xxSSDD
// case 0x1000: /*0010000*/ // MOV 01SSDD // case 0x1000: /*0010000*/ // MOV 01SSDD
// //LOG_INSTRUCTION(instruction, 2, "MOV"); // //LOG_INSTRUCTION(opCode, 2, "MOV");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if (!(instruction & 0x38)) { // if (!(opCode & 0x38)) {
// this.regsGen[instruction & 7] = src; // this.regsGen[opCode & 7] = src;
// this.flagN = this.flagZ = src; // this.flagN = this.flagZ = src;
// this.flagV = 0; // this.flagV = 0;
// } else { // } else {
// if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE)) >= 0) { // if ((dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.WRITE)) >= 0) {
// if (this.writeWordByAddr(dstAddr, src) >= 0) { // if (this.writeWordByAddr(dstAddr, src) >= 0) {
// this.flagN = this.flagZ = src; // this.flagN = this.flagZ = src;
// this.flagV = 0; // this.flagV = 0;
@ -1557,9 +1560,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0x2000: /*0020000*/ // CMP 02SSDD // case 0x2000: /*0020000*/ // CMP 02SSDD
// //LOG_INSTRUCTION(instruction, 2, "CMP"); // //LOG_INSTRUCTION(opCode, 2, "CMP");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if ((dst = this.readWordByMode(instruction)) >= 0) { // if ((dst = this.readWordByMode(opCode)) >= 0) {
// result = src - dst; // result = src - dst;
// this.flagN = this.flagZ = this.flagC = result; // this.flagN = this.flagZ = this.flagC = result;
// this.flagV = (src ^ dst) & (src ^ result); // this.flagV = (src ^ dst) & (src ^ result);
@ -1567,23 +1570,23 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0x3000: /*0030000*/ // BIT 03SSDD // case 0x3000: /*0030000*/ // BIT 03SSDD
// //LOG_INSTRUCTION(instruction, 2, "BIT"); // //LOG_INSTRUCTION(opCode, 2, "BIT");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if ((dst = this.readWordByMode(instruction)) >= 0) { // if ((dst = this.readWordByMode(opCode)) >= 0) {
// this.flagN = this.flagZ = src & dst; // this.flagN = this.flagZ = src & dst;
// this.flagV = 0; // this.flagV = 0;
// } // }
// } // }
// break; // break;
// case 0x4000: /*0040000*/ // BIC 04SSDD // case 0x4000: /*0040000*/ // BIC 04SSDD
// //LOG_INSTRUCTION(instruction, 2, "BIC"); // //LOG_INSTRUCTION(opCode, 2, "BIC");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if (!(instruction & 0x38)) { // if (!(opCode & 0x38)) {
// result = this.regsGen[instruction & 7] &= ~src; // result = this.regsGen[opCode & 7] &= ~src;
// this.flagN = this.flagZ = result; // this.flagN = this.flagZ = result;
// this.flagV = 0; // this.flagV = 0;
// } else { // } else {
// if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= 0) { // if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >= 0) {
// result = dst & ~src; // result = dst & ~src;
// if (this.writeWordByAddr(dstAddr, result) >= 0) { // if (this.writeWordByAddr(dstAddr, result) >= 0) {
// this.flagN = this.flagZ = result; // this.flagN = this.flagZ = result;
@ -1594,14 +1597,14 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0x5000: /*0050000*/ // BIS 05SSDD // case 0x5000: /*0050000*/ // BIS 05SSDD
// //LOG_INSTRUCTION(instruction, 2, "BIS"); // //LOG_INSTRUCTION(opCode, 2, "BIS");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if (!(instruction & 0x38)) { // if (!(opCode & 0x38)) {
// result = this.regsGen[instruction & 7] |= src; // result = this.regsGen[opCode & 7] |= src;
// this.flagN = this.flagZ = result; // this.flagN = this.flagZ = result;
// this.flagV = 0; // this.flagV = 0;
// } else { // } else {
// if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= 0) { // if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >= 0) {
// result = dst | src; // result = dst | src;
// if (this.writeWordByAddr(dstAddr, result) >= 0) { // if (this.writeWordByAddr(dstAddr, result) >= 0) {
// this.flagN = this.flagZ = result; // this.flagN = this.flagZ = result;
@ -1612,16 +1615,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0x6000: /*0060000*/ // ADD 06SSDD // case 0x6000: /*0060000*/ // ADD 06SSDD
// //LOG_INSTRUCTION(instruction, 2, "ADD"); // //LOG_INSTRUCTION(opCode, 2, "ADD");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if (!(instruction & 0x38)) { // if (!(opCode & 0x38)) {
// reg = instruction & 7; // reg = opCode & 7;
// dst = this.regsGen[reg]; // dst = this.regsGen[reg];
// this.regsGen[reg] = (result = src + dst) & 0xffff; // this.regsGen[reg] = (result = src + dst) & 0xffff;
// this.flagN = this.flagZ = this.flagC = result; // this.flagN = this.flagZ = this.flagC = result;
// this.flagV = (src ^ result) & (dst ^ result); // this.flagV = (src ^ result) & (dst ^ result);
// } else { // } else {
// if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= 0) { // if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >= 0) {
// result = src + dst; // result = src + dst;
// if (this.writeWordByAddr(dstAddr, result) >= 0) { // if (this.writeWordByAddr(dstAddr, result) >= 0) {
// this.flagN = this.flagZ = this.flagC = result; // this.flagN = this.flagZ = this.flagC = result;
@ -1632,15 +1635,15 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0x9000: /*0110000*/ // MOVB 11SSDD // case 0x9000: /*0110000*/ // MOVB 11SSDD
// //LOG_INSTRUCTION(instruction, 2, "MOVB"); // //LOG_INSTRUCTION(opCode, 2, "MOVB");
// if ((src = this.readByteByMode(instruction >> 6)) >= 0) { // if ((src = this.readByteByMode(opCode >> 6)) >= 0) {
// if (!(instruction & 0x38)) { // if (!(opCode & 0x38)) {
// if (src & 0x80) /*0200*/ src |= 0xff00; // movb sign extends register to word size // if (src & 0x80) /*0200*/ src |= 0xff00; // movb sign extends register to word size
// this.regsGen[instruction & 7] = src; // this.regsGen[opCode & 7] = src;
// this.flagN = this.flagZ = src; // this.flagN = this.flagZ = src;
// this.flagV = 0; // this.flagV = 0;
// } else { // } else {
// if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE_BYTE)) >= 0) { // write byte // if ((dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.WRITE_BYTE)) >= 0) { // write byte
// if (this.writeByteByAddr(dstAddr, src) >= 0) { // if (this.writeByteByAddr(dstAddr, src) >= 0) {
// this.flagN = this.flagZ = src << 8; // this.flagN = this.flagZ = src << 8;
// this.flagV = 0; // this.flagV = 0;
@ -1650,9 +1653,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0xA000: /*0120000*/ // CMPB 12SSDD // case 0xA000: /*0120000*/ // CMPB 12SSDD
// //LOG_INSTRUCTION(instruction, 2, "CMPB"); // //LOG_INSTRUCTION(opCode, 2, "CMPB");
// if ((src = this.readByteByMode(instruction >> 6)) >= 0) { // if ((src = this.readByteByMode(opCode >> 6)) >= 0) {
// if ((dst = this.readByteByMode(instruction)) >= 0) { // if ((dst = this.readByteByMode(opCode)) >= 0) {
// result = src - dst; // result = src - dst;
// this.flagN = this.flagZ = this.flagC = result << 8; // this.flagN = this.flagZ = this.flagC = result << 8;
// this.flagV = ((src ^ dst) & (src ^ result)) << 8; // this.flagV = ((src ^ dst) & (src ^ result)) << 8;
@ -1660,18 +1663,18 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0xB000: /*0130000*/ // BITB 13SSDD // case 0xB000: /*0130000*/ // BITB 13SSDD
// //LOG_INSTRUCTION(instruction, 2, "BITB"); // //LOG_INSTRUCTION(opCode, 2, "BITB");
// if ((src = this.readByteByMode(instruction >> 6)) >= 0) { // if ((src = this.readByteByMode(opCode >> 6)) >= 0) {
// if ((dst = this.readByteByMode(instruction)) >= 0) { // if ((dst = this.readByteByMode(opCode)) >= 0) {
// this.flagN = this.flagZ = (src & dst) << 8; // this.flagN = this.flagZ = (src & dst) << 8;
// this.flagV = 0; // this.flagV = 0;
// } // }
// } // }
// break; // break;
// case 0xC000: /*0140000*/ // BICB 14SSDD // case 0xC000: /*0140000*/ // BICB 14SSDD
// //LOG_INSTRUCTION(instruction, 2, "BICB"); // //LOG_INSTRUCTION(opCode, 2, "BICB");
// if ((src = this.readByteByMode(instruction >> 6)) >= 0) { // if ((src = this.readByteByMode(opCode >> 6)) >= 0) {
// if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= 0) { // if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >= 0) {
// result = dst & ~src; // result = dst & ~src;
// if (this.writeByteByAddr(dstAddr, result) >= 0) { // if (this.writeByteByAddr(dstAddr, result) >= 0) {
// this.flagN = this.flagZ = result << 8; // this.flagN = this.flagZ = result << 8;
@ -1681,9 +1684,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0xD000: /*0150000*/ // BISB 15SSDD // case 0xD000: /*0150000*/ // BISB 15SSDD
// //LOG_INSTRUCTION(instruction, 2, "BISB"); // //LOG_INSTRUCTION(opCode, 2, "BISB");
// if ((src = this.readByteByMode(instruction >> 6)) >= 0) { // if ((src = this.readByteByMode(opCode >> 6)) >= 0) {
// if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= 0) { // if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >= 0) {
// result = dst | src; // result = dst | src;
// if (this.writeByteByAddr(dstAddr, result) >= 0) { // if (this.writeByteByAddr(dstAddr, result) >= 0) {
// this.flagN = this.flagZ = result << 8; // this.flagN = this.flagZ = result << 8;
@ -1693,16 +1696,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
// case 0xE000: /*0160000*/ // SUB 16SSDD // case 0xE000: /*0160000*/ // SUB 16SSDD
// //LOG_INSTRUCTION(instruction, 2, "SUB"); // //LOG_INSTRUCTION(opCode, 2, "SUB");
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) { // if ((src = this.readWordByMode(opCode >> 6)) >= 0) {
// if (!(instruction & 0x38)) { // if (!(opCode & 0x38)) {
// reg = instruction & 7; // reg = opCode & 7;
// dst = this.regsGen[reg]; // dst = this.regsGen[reg];
// this.regsGen[reg] = (result = dst - src) & 0xffff; // this.regsGen[reg] = (result = dst - src) & 0xffff;
// this.flagN = this.flagZ = this.flagC = result; // this.flagN = this.flagZ = this.flagC = result;
// this.flagV = (src ^ dst) & (dst ^ result); // this.flagV = (src ^ dst) & (dst ^ result);
// } else { // } else {
// if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= 0) { // if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >= 0) {
// result = dst - src; // result = dst - src;
// if (this.writeWordByAddr(dstAddr, result) >= 0) { // if (this.writeWordByAddr(dstAddr, result) >= 0) {
// this.flagN = this.flagZ = this.flagC = result; // this.flagN = this.flagZ = this.flagC = result;
@ -1713,11 +1716,11 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // }
// break; // break;
default: default:
switch (instruction & 0xFE00) /*0177000*/ { // Misc instructions xxRDD switch (opCode & 0xFE00) /*0177000*/ { // Misc instructions xxRDD
case 0x800: /*04000*/ // JSR 004RDD case 0x800: /*04000*/ // JSR 004RDD
//LOG_INSTRUCTION(instruction, 3, "JSR"); //LOG_INSTRUCTION(opCode, 3, "JSR");
if ((virtualAddress = this.getVirtualByMode(instruction, 0)) >= 0) { if ((virtualAddress = this.getVirtualByMode(opCode, 0)) >= 0) {
reg = (instruction >> 6) & 7; reg = (opCode >> 6) & 7;
if (this.pushWord(this.regsGen[reg]) >= 0) { if (this.pushWord(this.regsGen[reg]) >= 0) {
this.regsGen[reg] = this.regsGen[7]; this.regsGen[reg] = this.regsGen[7];
this.regsGen[7] = virtualAddress & 0xffff; this.regsGen[7] = virtualAddress & 0xffff;
@ -1725,9 +1728,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x7000: /*0070000*/ // MUL 070RSS case 0x7000: /*0070000*/ // MUL 070RSS
//LOG_INSTRUCTION(instruction, 3, "MUL"); //LOG_INSTRUCTION(opCode, 3, "MUL");
if ((src = this.readWordByMode(instruction)) >= 0) { if ((src = this.readWordByMode(opCode)) >= 0) {
reg = (instruction >> 6) & 7; reg = (opCode >> 6) & 7;
if (src & 0x8000) src |= ~0xffff; if (src & 0x8000) src |= ~0xffff;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
if (dst & 0x8000) dst |= ~0xffff; if (dst & 0x8000) dst |= ~0xffff;
@ -1741,15 +1744,15 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x7200: /*0071000*/ // DIV 071RSS case 0x7200: /*0071000*/ // DIV 071RSS
//LOG_INSTRUCTION(instruction, 3, "DIV"); //LOG_INSTRUCTION(opCode, 3, "DIV");
if ((src = this.readWordByMode(instruction)) >= 0) { if ((src = this.readWordByMode(opCode)) >= 0) {
if (!src) { if (!src) {
this.flagN = 0; // NZVC this.flagN = 0; // NZVC
this.flagZ = 0; this.flagZ = 0;
this.flagV = 0x8000; this.flagV = 0x8000;
this.flagC = 0x10000; // divide by zero this.flagC = 0x10000; // divide by zero
} else { } else {
reg = (instruction >> 6) & 7; reg = (opCode >> 6) & 7;
dst = (this.regsGen[reg] << 16) | this.regsGen[reg | 1]; dst = (this.regsGen[reg] << 16) | this.regsGen[reg | 1];
this.flagC = this.flagV = 0; this.flagC = this.flagV = 0;
if (src & 0x8000) src |= ~0xffff; if (src & 0x8000) src |= ~0xffff;
@ -1770,9 +1773,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x7400: /*072000*/ // ASH 072RSS case 0x7400: /*072000*/ // ASH 072RSS
//LOG_INSTRUCTION(instruction, 3, "ASH"); //LOG_INSTRUCTION(opCode, 3, "ASH");
if ((src = this.readWordByMode(instruction)) >= 0) { if ((src = this.readWordByMode(opCode)) >= 0) {
reg = (instruction >> 6) & 7; reg = (opCode >> 6) & 7;
result = this.regsGen[reg]; result = this.regsGen[reg];
if (result & 0x8000) result |= 0xffff0000; if (result & 0x8000) result |= 0xffff0000;
this.flagC = this.flagV = 0; this.flagC = this.flagV = 0;
@ -1800,9 +1803,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x7600: /*073000*/ // ASHC 073RSS case 0x7600: /*073000*/ // ASHC 073RSS
//LOG_INSTRUCTION(instruction, 3, "ASHC"); //LOG_INSTRUCTION(opCode, 3, "ASHC");
if ((src = this.readWordByMode(instruction)) >= 0) { if ((src = this.readWordByMode(opCode)) >= 0) {
reg = (instruction >> 6) & 7; reg = (opCode >> 6) & 7;
dst = (this.regsGen[reg] << 16) | this.regsGen[reg | 1]; dst = (this.regsGen[reg] << 16) | this.regsGen[reg | 1];
this.flagC = this.flagV = 0; this.flagC = this.flagV = 0;
src &= 0x3F; /*077*/ src &= 0x3F; /*077*/
@ -1835,14 +1838,14 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x7800: /*0074000*/ // XOR 074RSS case 0x7800: /*0074000*/ // XOR 074RSS
//LOG_INSTRUCTION(instruction, 3, "XOR"); //LOG_INSTRUCTION(opCode, 3, "XOR");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
dst = this.regsGen[instruction & 7] ^= this.regsGen[(instruction >> 6) & 7]; dst = this.regsGen[opCode & 7] ^= this.regsGen[(opCode >> 6) & 7];
this.flagN = this.flagZ = dst; this.flagN = this.flagZ = dst;
this.flagV = 0; this.flagV = 0;
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= 0) { if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >= 0) {
dst ^= this.regsGen[(instruction >> 6) & 7]; dst ^= this.regsGen[(opCode >> 6) & 7];
if (this.writeWordByAddr(dstAddr, dst) >= 0) { if (this.writeWordByAddr(dstAddr, dst) >= 0) {
this.flagN = this.flagZ = dst; this.flagN = this.flagZ = dst;
this.flagV = 0; this.flagV = 0;
@ -1851,107 +1854,107 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x7E00: /*0077000*/ // SOB 077Rnn case 0x7E00: /*0077000*/ // SOB 077Rnn
//LOG_INSTRUCTION(instruction, 5, "SOB"); //LOG_INSTRUCTION(opCode, 5, "SOB");
reg = (instruction >> 6) & 7; reg = (opCode >> 6) & 7;
if ((this.regsGen[reg] = ((this.regsGen[reg] - 1) & 0xffff))) { if ((this.regsGen[reg] = ((this.regsGen[reg] - 1) & 0xffff))) {
this.regsGen[7] = (this.regsGen[7] - ((instruction & 0x3F) /*077*/ << 1)) & 0xffff; this.regsGen[7] = (this.regsGen[7] - ((opCode & 0x3F) /*077*/ << 1)) & 0xffff;
} }
break; break;
default: default:
switch (instruction & 0xFF00) /*0177400*/ { // Program control instructions & traps switch (opCode & 0xFF00) /*0177400*/ { // Program control instructions & traps
case 0x100: /*0000400*/ // BR case 0x100: /*0000400*/ // BR
//LOG_INSTRUCTION(instruction, 4, "BR"); //LOG_INSTRUCTION(opCode, 4, "BR");
this.regsGen[7] = this.branch(this.regsGen[7], instruction); this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x200: /*0001000*/ // BNE case 0x200: /*0001000*/ // BNE
//LOG_INSTRUCTION(instruction, 4, "BNE"); //LOG_INSTRUCTION(opCode, 4, "BNE");
if (this.flagZ & 0xffff) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if (this.flagZ & 0xffff) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x300: /*0001400*/ // BEQ case 0x300: /*0001400*/ // BEQ
//LOG_INSTRUCTION(instruction, 4, "BEQ"); //LOG_INSTRUCTION(opCode, 4, "BEQ");
if (!(this.flagZ & 0xffff)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if (!(this.flagZ & 0xffff)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x400: /*0002000*/ // BGE case 0x400: /*0002000*/ // BGE
//LOG_INSTRUCTION(instruction, 4, "BGE"); //LOG_INSTRUCTION(opCode, 4, "BGE");
if ((this.flagN & 0x8000) === if ((this.flagN & 0x8000) ===
(this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); (this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x500: /*0002400*/ // BLT case 0x500: /*0002400*/ // BLT
//LOG_INSTRUCTION(instruction, 4, "BLT"); //LOG_INSTRUCTION(opCode, 4, "BLT");
if ((this.flagN & 0x8000) !== if ((this.flagN & 0x8000) !==
(this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); (this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x600: /*0003000*/ // BGT case 0x600: /*0003000*/ // BGT
//LOG_INSTRUCTION(instruction, 4, "BGT"); //LOG_INSTRUCTION(opCode, 4, "BGT");
if ((this.flagZ & 0xffff) && ((this.flagN & 0x8000) === if ((this.flagZ & 0xffff) && ((this.flagN & 0x8000) ===
(this.flagV & 0x8000))) this.regsGen[7] = this.branch(this.regsGen[7], instruction); (this.flagV & 0x8000))) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x700: /*0003400*/ // BLE case 0x700: /*0003400*/ // BLE
//LOG_INSTRUCTION(instruction, 4, "BLE"); //LOG_INSTRUCTION(opCode, 4, "BLE");
if (!(this.flagZ & 0xffff) || ((this.flagN & 0x8000) !== if (!(this.flagZ & 0xffff) || ((this.flagN & 0x8000) !==
(this.flagV & 0x8000))) this.regsGen[7] = this.branch(this.regsGen[7], instruction); (this.flagV & 0x8000))) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8000: /*0100000*/ // BPL case 0x8000: /*0100000*/ // BPL
//LOG_INSTRUCTION(instruction, 4, "BPL"); //LOG_INSTRUCTION(opCode, 4, "BPL");
if (!(this.flagN & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if (!(this.flagN & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8200: /*0101000*/ // BHI case 0x8200: /*0101000*/ // BHI
//LOG_INSTRUCTION(instruction, 4, "BHI"); //LOG_INSTRUCTION(opCode, 4, "BHI");
if (!(this.flagC & 0x10000) && if (!(this.flagC & 0x10000) &&
(this.flagZ & 0xffff)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); (this.flagZ & 0xffff)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8100: /*0100400*/ // BMI case 0x8100: /*0100400*/ // BMI
//LOG_INSTRUCTION(instruction, 4, "BMI"); //LOG_INSTRUCTION(opCode, 4, "BMI");
if ((this.flagN & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if ((this.flagN & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8300: /*0101400*/ // BLOS case 0x8300: /*0101400*/ // BLOS
//LOG_INSTRUCTION(instruction, 4, "BLOS"); //LOG_INSTRUCTION(opCode, 4, "BLOS");
if ((this.flagC & 0x10000) || if ((this.flagC & 0x10000) ||
!(this.flagZ & 0xffff)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); !(this.flagZ & 0xffff)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8400: /*0102000*/ // BVC case 0x8400: /*0102000*/ // BVC
//LOG_INSTRUCTION(instruction, 4, "BVC"); //LOG_INSTRUCTION(opCode, 4, "BVC");
if (!(this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if (!(this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8500: /*0102400*/ // BVS case 0x8500: /*0102400*/ // BVS
//LOG_INSTRUCTION(instruction, 4, "BVS"); //LOG_INSTRUCTION(opCode, 4, "BVS");
if ((this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if ((this.flagV & 0x8000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8600: /*0103000*/ // BCC case 0x8600: /*0103000*/ // BCC
//LOG_INSTRUCTION(instruction, 4, "BCC"); //LOG_INSTRUCTION(opCode, 4, "BCC");
if (!(this.flagC & if (!(this.flagC &
0x10000)) this.regsGen[7] = this.branch(this.regsGen[7], instruction); 0x10000)) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8700: /*0103400*/ // BCS case 0x8700: /*0103400*/ // BCS
//LOG_INSTRUCTION(instruction, 4, "BCS"); //LOG_INSTRUCTION(opCode, 4, "BCS");
if (this.flagC & 0x10000) this.regsGen[7] = this.branch(this.regsGen[7], instruction); if (this.flagC & 0x10000) this.regsGen[7] = this.branch(this.regsGen[7], opCode);
break; break;
case 0x8800: /*0104000*/ // EMT 104000 -> 104377 case 0x8800: /*0104000*/ // EMT 104000 -> 104377
//LOG_INSTRUCTION(instruction, 7, "EMT"); //LOG_INSTRUCTION(opCode, 7, "EMT");
this.trap(PDP11.TRAP.EMULATOR, /*030*/ 2); this.trap(PDP11.TRAP.EMULATOR, /*030*/ 2);
break; break;
case 0x8900: /*0104400*/ // TRAP 104400 -> 104777 case 0x8900: /*0104400*/ // TRAP 104400 -> 104777
//LOG_INSTRUCTION(instruction, 7, "TRAP"); //LOG_INSTRUCTION(opCode, 7, "TRAP");
this.trap(PDP11.TRAP.TRAP, /*034*/ 4); this.trap(PDP11.TRAP.TRAP, /*034*/ 4);
break; break;
default: default:
switch (instruction & 0xFFC0) /*0177700*/ { // Single operand instructions xxxxDD switch (opCode & 0xFFC0) /*0177700*/ { // Single operand instructions xxxxDD
case 0x40: /*0000100*/ // JMP 0001DD case 0x40: /*0000100*/ // JMP 0001DD
//LOG_INSTRUCTION(instruction, 1, "JMP"); //LOG_INSTRUCTION(opCode, 1, "JMP");
if ((virtualAddress = this.getVirtualByMode(instruction, 0)) >= 0) { if ((virtualAddress = this.getVirtualByMode(opCode, 0)) >= 0) {
this.regsGen[7] = virtualAddress & 0xffff; this.regsGen[7] = virtualAddress & 0xffff;
} }
break; break;
case 0xC0: /*0000300*/ // SWAB 0003DD case 0xC0: /*0000300*/ // SWAB 0003DD
//LOG_INSTRUCTION(instruction, 1, "SWAB"); //LOG_INSTRUCTION(opCode, 1, "SWAB");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
this.regsGen[reg] = ((dst << 8) | (dst >> 8)) & 0xffff; this.regsGen[reg] = ((dst << 8) | (dst >> 8)) & 0xffff;
this.flagN = this.flagZ = dst & 0xff00; this.flagN = this.flagZ = dst & 0xff00;
this.flagV = this.flagC = 0; this.flagV = this.flagC = 0;
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = (dst << 8) | (dst >> 8); result = (dst << 8) | (dst >> 8);
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -1962,12 +1965,12 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xA00: /*0005000*/ // CLR 0050DD case 0xA00: /*0005000*/ // CLR 0050DD
//LOG_INSTRUCTION(instruction, 1, "CLR"); //LOG_INSTRUCTION(opCode, 1, "CLR");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
this.regsGen[instruction & 7] = 0; this.regsGen[opCode & 7] = 0;
this.flagN = this.flagC = this.flagV = this.flagZ = 0; this.flagN = this.flagC = this.flagV = this.flagZ = 0;
} else { } else {
if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE)) >= 0) { // write word if ((dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.WRITE)) >= 0) { // write word
if (this.writeWordByAddr(dstAddr, 0) >= 0) { if (this.writeWordByAddr(dstAddr, 0) >= 0) {
this.flagN = this.flagC = this.flagV = this.flagZ = 0; this.flagN = this.flagC = this.flagV = this.flagZ = 0;
} }
@ -1975,8 +1978,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xA40: /*0005100*/ // COM 0051DD case 0xA40: /*0005100*/ // COM 0051DD
//LOG_INSTRUCTION(instruction, 1, "COM"); //LOG_INSTRUCTION(opCode, 1, "COM");
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = ~dst; result = ~dst;
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -1987,16 +1990,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xA80: /*0005200*/ // INC 0052DD case 0xA80: /*0005200*/ // INC 0052DD
//LOG_INSTRUCTION(instruction, 1, "INC"); //LOG_INSTRUCTION(opCode, 1, "INC");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
result = dst + 1; result = dst + 1;
this.regsGen[reg] = result & 0xffff; this.regsGen[reg] = result & 0xffff;
this.flagN = this.flagZ = result; this.flagN = this.flagZ = result;
this.flagV = result & (result ^ dst); this.flagV = result & (result ^ dst);
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = dst + 1; result = dst + 1;
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2007,16 +2010,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xAC0: /*0005300*/ // DEC 0053DD case 0xAC0: /*0005300*/ // DEC 0053DD
//LOG_INSTRUCTION(instruction, 1, "DEC"); //LOG_INSTRUCTION(opCode, 1, "DEC");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
result = dst - 1; result = dst - 1;
this.regsGen[reg] = result & 0xffff; this.regsGen[reg] = result & 0xffff;
this.flagN = this.flagZ = result; this.flagN = this.flagZ = result;
this.flagV = (result ^ dst) & dst; this.flagV = (result ^ dst) & dst;
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = dst - 1; result = dst - 1;
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2027,8 +2030,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xB00: /*0005400*/ // NEG 0054DD case 0xB00: /*0005400*/ // NEG 0054DD
//LOG_INSTRUCTION(instruction, 1, "NEG"); //LOG_INSTRUCTION(opCode, 1, "NEG");
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = -dst; result = -dst;
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2038,8 +2041,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xB40: /*0005500*/ // ADC 0055DD case 0xB40: /*0005500*/ // ADC 0055DD
//LOG_INSTRUCTION(instruction, 1, "ADC"); //LOG_INSTRUCTION(opCode, 1, "ADC");
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = dst + ((this.flagC >> 16) & 1); result = dst + ((this.flagC >> 16) & 1);
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2049,8 +2052,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xB80: /*0005600*/ // SBC 0056DD case 0xB80: /*0005600*/ // SBC 0056DD
//LOG_INSTRUCTION(instruction, 1, "SBC"); //LOG_INSTRUCTION(opCode, 1, "SBC");
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = dst - ((this.flagC >> 16) & 1); result = dst - ((this.flagC >> 16) & 1);
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2060,16 +2063,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xBC0: /*0005700*/ // TST 0057DD case 0xBC0: /*0005700*/ // TST 0057DD
//LOG_INSTRUCTION(instruction, 1, "TST"); //LOG_INSTRUCTION(opCode, 1, "TST");
if ((dst = this.readWordByMode(instruction)) >= 0) { if ((dst = this.readWordByMode(opCode)) >= 0) {
this.flagN = this.flagZ = dst; this.flagN = this.flagZ = dst;
this.flagC = this.flagV = 0; this.flagC = this.flagV = 0;
} }
break; break;
case 0xC00: /*0006000*/ // ROR 0060DD case 0xC00: /*0006000*/ // ROR 0060DD
//LOG_INSTRUCTION(instruction, 1, "ROR"); //LOG_INSTRUCTION(opCode, 1, "ROR");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
result = ((this.flagC & 0x10000) | dst) >> 1; result = ((this.flagC & 0x10000) | dst) >> 1;
this.regsGen[reg] = result & 0xffff; this.regsGen[reg] = result & 0xffff;
@ -2077,7 +2080,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.flagN = this.flagZ = result; this.flagN = this.flagZ = result;
this.flagV = result ^ (this.flagC >> 1); this.flagV = result ^ (this.flagC >> 1);
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = ((this.flagC & 0x10000) | dst) >> 1; result = ((this.flagC & 0x10000) | dst) >> 1;
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2089,16 +2092,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xC40: /*0006100*/ // ROL 0061DD case 0xC40: /*0006100*/ // ROL 0061DD
//LOG_INSTRUCTION(instruction, 1, "ROL"); //LOG_INSTRUCTION(opCode, 1, "ROL");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
result = (dst << 1) | ((this.flagC >> 16) & 1); result = (dst << 1) | ((this.flagC >> 16) & 1);
this.regsGen[reg] = result & 0xffff; this.regsGen[reg] = result & 0xffff;
this.flagC = this.flagN = this.flagZ = result; this.flagC = this.flagN = this.flagZ = result;
this.flagV = result ^ dst; this.flagV = result ^ dst;
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = (dst << 1) | ((this.flagC >> 16) & 1); result = (dst << 1) | ((this.flagC >> 16) & 1);
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2109,9 +2112,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xC80: /*0006200*/ // ASR 0062DD case 0xC80: /*0006200*/ // ASR 0062DD
//LOG_INSTRUCTION(instruction, 1, "ASR"); //LOG_INSTRUCTION(opCode, 1, "ASR");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
result = (dst & 0x8000) | (dst >> 1); result = (dst & 0x8000) | (dst >> 1);
this.regsGen[reg] = result & 0xffff; this.regsGen[reg] = result & 0xffff;
@ -2119,7 +2122,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.flagN = this.flagZ = result; this.flagN = this.flagZ = result;
this.flagV = this.flagN ^ (this.flagC >> 1); this.flagV = this.flagN ^ (this.flagC >> 1);
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = (dst & 0x8000) | (dst >> 1); result = (dst & 0x8000) | (dst >> 1);
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2131,16 +2134,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xCC0: /*0006300*/ // ASL 0063DD case 0xCC0: /*0006300*/ // ASL 0063DD
//LOG_INSTRUCTION(instruction, 1, "ASL"); //LOG_INSTRUCTION(opCode, 1, "ASL");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
dst = this.regsGen[reg]; dst = this.regsGen[reg];
result = dst << 1; result = dst << 1;
this.regsGen[reg] = result & 0xffff; this.regsGen[reg] = result & 0xffff;
this.flagC = this.flagN = this.flagZ = result; this.flagC = this.flagN = this.flagZ = result;
this.flagV = result ^ dst; this.flagV = result ^ dst;
} else { } else {
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE))) >= if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE))) >=
0) { 0) {
result = dst << 1; result = dst << 1;
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
@ -2151,8 +2154,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xD00: /*0006400*/ // MARK 0064nn case 0xD00: /*0006400*/ // MARK 0064nn
//LOG_INSTRUCTION(instruction, 8, "MARK"); //LOG_INSTRUCTION(opCode, 8, "MARK");
virtualAddress = (this.regsGen[7] + ((instruction & 0x3F) /*077*/ << 1)) & 0xffff; virtualAddress = (this.regsGen[7] + ((opCode & 0x3F) /*077*/ << 1)) & 0xffff;
if ((src = this.readWordByVirtual(virtualAddress | 0x10000)) >= 0) { if ((src = this.readWordByVirtual(virtualAddress | 0x10000)) >= 0) {
this.regsGen[7] = this.regsGen[5]; this.regsGen[7] = this.regsGen[5];
this.regsGen[5] = src; this.regsGen[5] = src;
@ -2160,9 +2163,9 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xD40: /*0006500*/ // MFPI 0065SS case 0xD40: /*0006500*/ // MFPI 0065SS
//LOG_INSTRUCTION(instruction, 1, "MFPI"); //LOG_INSTRUCTION(opCode, 1, "MFPI");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) { if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) {
src = this.regsGen[reg]; src = this.regsGen[reg];
} else { } else {
@ -2173,7 +2176,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.flagV = 0; this.flagV = 0;
} }
} else { } else {
if ((virtualAddress = this.getVirtualByMode(instruction, 0)) >= 0) { if ((virtualAddress = this.getVirtualByMode(opCode, 0)) >= 0) {
if ((this.PSW & 0xf000) !== 0xf000) virtualAddress &= 0xffff; if ((this.PSW & 0xf000) !== 0xf000) virtualAddress &= 0xffff;
this.mmuMode = (this.PSW >> 12) & 3; this.mmuMode = (this.PSW >> 12) & 3;
if ((src = this.readWordByVirtual(virtualAddress)) >= 0) { if ((src = this.readWordByVirtual(virtualAddress)) >= 0) {
@ -2187,11 +2190,11 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xD80: /*0006600*/ // MTPI 0066DD case 0xD80: /*0006600*/ // MTPI 0066DD
//LOG_INSTRUCTION(instruction, 1, "MTPI"); //LOG_INSTRUCTION(opCode, 1, "MTPI");
if ((dst = this.popWord()) >= 0) { if ((dst = this.popWord()) >= 0) {
if (!(this.MMR0 & 0xe000)) this.MMR1 = 0x16; /*026*/ if (!(this.MMR0 & 0xe000)) this.MMR1 = 0x16; /*026*/
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) { if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) {
this.regsGen[reg] = dst; this.regsGen[reg] = dst;
} else { } else {
@ -2200,7 +2203,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.flagN = this.flagZ = dst; this.flagN = this.flagZ = dst;
this.flagV = 0; this.flagV = 0;
} else { } else {
if ((virtualAddress = this.getVirtualByMode(instruction, 0)) >= 0) { if ((virtualAddress = this.getVirtualByMode(opCode, 0)) >= 0) {
virtualAddress &= 0xffff; virtualAddress &= 0xffff;
this.mmuMode = (this.PSW >> 12) & 3; this.mmuMode = (this.PSW >> 12) & 3;
if ((dstAddr = this.mapVirtualToPhysical(virtualAddress, PDP11.ACCESS.WRITE)) >= 0) { if ((dstAddr = this.mapVirtualToPhysical(virtualAddress, PDP11.ACCESS.WRITE)) >= 0) {
@ -2215,8 +2218,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0xDC0: /*0006700*/ // SXT 0067DD case 0xDC0: /*0006700*/ // SXT 0067DD
//LOG_INSTRUCTION(instruction, 1, "SXT"); //LOG_INSTRUCTION(opCode, 1, "SXT");
if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE)) >= 0) { // write word if ((dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.WRITE)) >= 0) { // write word
result = -((this.flagN >> 15) & 1); result = -((this.flagN >> 15) & 1);
if (this.writeWordByAddr(dstAddr, result) >= 0) { if (this.writeWordByAddr(dstAddr, result) >= 0) {
this.flagZ = result; this.flagZ = result;
@ -2225,12 +2228,12 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8A00: /*0105000*/ // CLRB 1050DD case 0x8A00: /*0105000*/ // CLRB 1050DD
//LOG_INSTRUCTION(instruction, 1, "CLRB"); //LOG_INSTRUCTION(opCode, 1, "CLRB");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
this.regsGen[instruction & 7] &= 0xff00; this.regsGen[opCode & 7] &= 0xff00;
this.flagN = this.flagC = this.flagV = this.flagZ = 0; this.flagN = this.flagC = this.flagV = this.flagZ = 0;
} else { } else {
if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE_BYTE)) >= 0) { // write byte if ((dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.WRITE_BYTE)) >= 0) { // write byte
if (this.writeByteByAddr(dstAddr, 0) >= 0) { if (this.writeByteByAddr(dstAddr, 0) >= 0) {
this.flagN = this.flagC = this.flagV = this.flagZ = 0; this.flagN = this.flagC = this.flagV = this.flagZ = 0;
} }
@ -2238,8 +2241,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8A40: /*0105100*/ // COMB 1051DD case 0x8A40: /*0105100*/ // COMB 1051DD
//LOG_INSTRUCTION(instruction, 1, "COMB"); //LOG_INSTRUCTION(opCode, 1, "COMB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = ~dst; result = ~dst;
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2250,8 +2253,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8A80: /*0105200*/ // INCB 1052DD case 0x8A80: /*0105200*/ // INCB 1052DD
//LOG_INSTRUCTION(instruction, 1, "INCB"); //LOG_INSTRUCTION(opCode, 1, "INCB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = dst + 1; result = dst + 1;
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2261,8 +2264,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8AC0: /*0105300*/ // DECB 1053DD case 0x8AC0: /*0105300*/ // DECB 1053DD
//LOG_INSTRUCTION(instruction, 1, "DECB"); //LOG_INSTRUCTION(opCode, 1, "DECB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = dst - 1; result = dst - 1;
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2272,8 +2275,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8B00: /*0105400*/ // NEGB 1054DD case 0x8B00: /*0105400*/ // NEGB 1054DD
//LOG_INSTRUCTION(instruction, 1, "NEGB"); //LOG_INSTRUCTION(opCode, 1, "NEGB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = -dst; result = -dst;
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2283,8 +2286,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8B40: /*0105500*/ // ADCB 01055DD case 0x8B40: /*0105500*/ // ADCB 01055DD
//LOG_INSTRUCTION(instruction, 1, "ADCB"); //LOG_INSTRUCTION(opCode, 1, "ADCB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = dst + ((this.flagC >> 16) & 1); result = dst + ((this.flagC >> 16) & 1);
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2294,8 +2297,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8B80: /*0105600*/ // SBCB 01056DD case 0x8B80: /*0105600*/ // SBCB 01056DD
//LOG_INSTRUCTION(instruction, 1, "SBCB"); //LOG_INSTRUCTION(opCode, 1, "SBCB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = dst - ((this.flagC >> 16) & 1); result = dst - ((this.flagC >> 16) & 1);
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2305,15 +2308,15 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8BC0: /*0105700*/ // TSTB 1057DD case 0x8BC0: /*0105700*/ // TSTB 1057DD
//LOG_INSTRUCTION(instruction, 1, "TSTB"); //LOG_INSTRUCTION(opCode, 1, "TSTB");
if ((dst = this.readByteByMode(instruction)) >= 0) { if ((dst = this.readByteByMode(opCode)) >= 0) {
this.flagN = this.flagZ = dst << 8; this.flagN = this.flagZ = dst << 8;
this.flagC = this.flagV = 0; this.flagC = this.flagV = 0;
} }
break; break;
case 0x8C00: /*0106000*/ // RORB 1060DD case 0x8C00: /*0106000*/ // RORB 1060DD
//LOG_INSTRUCTION(instruction, 1, "RORB"); //LOG_INSTRUCTION(opCode, 1, "RORB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = (((this.flagC & 0x10000) >> 8) | dst) >> 1; result = (((this.flagC & 0x10000) >> 8) | dst) >> 1;
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2324,8 +2327,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8C40: /*0106100*/ // ROLB 1061DD case 0x8C40: /*0106100*/ // ROLB 1061DD
//LOG_INSTRUCTION(instruction, 1, "ROLB"); //LOG_INSTRUCTION(opCode, 1, "ROLB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = (dst << 1) | ((this.flagC >> 16) & 1); result = (dst << 1) | ((this.flagC >> 16) & 1);
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2335,8 +2338,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8C80: /*0106200*/ // ASRB 1062DD case 0x8C80: /*0106200*/ // ASRB 1062DD
//LOG_INSTRUCTION(instruction, 1, "ASRB"); //LOG_INSTRUCTION(opCode, 1, "ASRB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = (dst & 0x80) | (dst >> 1); result = (dst & 0x80) | (dst >> 1);
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2347,8 +2350,8 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8CC0: /*0106300*/ // ASLB 1063DD case 0x8CC0: /*0106300*/ // ASLB 1063DD
//LOG_INSTRUCTION(instruction, 1, "ASLB"); //LOG_INSTRUCTION(opCode, 1, "ASLB");
if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.UPDATE_BYTE))) >= if ((dst = this.readByteByAddr(dstAddr = this.getAddrByMode(opCode, PDP11.ACCESS.UPDATE_BYTE))) >=
0) { 0) {
result = dst << 1; result = dst << 1;
if (this.writeByteByAddr(dstAddr, result) >= 0) { if (this.writeByteByAddr(dstAddr, result) >= 0) {
@ -2358,15 +2361,15 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
//case 0106400: // MTPS 1064SS //case 0106400: // MTPS 1064SS
// //LOG_INSTRUCTION(instruction, 1, "MTPS"); // //LOG_INSTRUCTION(opCode, 1, "MTPS");
// if ((src = this.readByteByMode(instruction)) >= 0) { // if ((src = this.readByteByMode(instruction)) >= 0) {
// this.setPSW((this.PSW & 0xff00) | (src & 0xef)); // this.setPSW((this.PSW & 0xff00) | (src & 0xef));
// } // Temporary PDP 11/34A // } // Temporary PDP 11/34A
// break; // break;
case 0x8D40: /*0106500*/ // MFPD 1065DD case 0x8D40: /*0106500*/ // MFPD 1065DD
//LOG_INSTRUCTION(instruction, 1, "MFPD"); //LOG_INSTRUCTION(opCode, 1, "MFPD");
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) { if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) {
src = this.regsGen[reg]; src = this.regsGen[reg];
} else { } else {
@ -2377,7 +2380,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.flagV = 0; this.flagV = 0;
} }
} else { } else {
if ((virtualAddress = this.getVirtualByMode(instruction, 0)) >= 0) { if ((virtualAddress = this.getVirtualByMode(opCode, 0)) >= 0) {
this.mmuMode = (this.PSW >> 12) & 3; this.mmuMode = (this.PSW >> 12) & 3;
if ((src = this.readWordByVirtual(virtualAddress | 0x10000)) >= 0) { if ((src = this.readWordByVirtual(virtualAddress | 0x10000)) >= 0) {
this.mmuMode = (this.PSW >> 14) & 3; this.mmuMode = (this.PSW >> 14) & 3;
@ -2390,11 +2393,11 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x8D80: /*0106600*/ // MTPD 1066DD case 0x8D80: /*0106600*/ // MTPD 1066DD
//LOG_INSTRUCTION(instruction, 1, "MTPD"); //LOG_INSTRUCTION(opCode, 1, "MTPD");
if ((dst = this.popWord()) >= 0) { if ((dst = this.popWord()) >= 0) {
if (!(this.MMR0 & 0xe000)) this.MMR1 = 0x16; /*026*/ if (!(this.MMR0 & 0xe000)) this.MMR1 = 0x16; /*026*/
if (!(instruction & 0x38)) { if (!(opCode & 0x38)) {
reg = instruction & 7; reg = opCode & 7;
if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) { if (6 !== reg || ((this.PSW >> 2) & 0x3000) === (this.PSW & 0x3000)) {
this.regsGen[reg] = dst; this.regsGen[reg] = dst;
} else { } else {
@ -2403,7 +2406,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.flagN = this.flagZ = dst; this.flagN = this.flagZ = dst;
this.flagV = 0; this.flagV = 0;
} else { } else {
if ((virtualAddress = this.getVirtualByMode(instruction, 0)) >= 0) { if ((virtualAddress = this.getVirtualByMode(opCode, 0)) >= 0) {
this.mmuMode = (this.PSW >> 12) & 3; this.mmuMode = (this.PSW >> 12) & 3;
if ((dstAddr = this.mapVirtualToPhysical(virtualAddress | if ((dstAddr = this.mapVirtualToPhysical(virtualAddress |
0x10000, PDP11.ACCESS.WRITE)) >= 0) { 0x10000, PDP11.ACCESS.WRITE)) >= 0) {
@ -2418,7 +2421,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
//case 0106700: // MTFS 1064SS //case 0106700: // MTFS 1064SS
// //LOG_INSTRUCTION(instruction, 1, "MFPS"); // //LOG_INSTRUCTION(opCode, 1, "MFPS");
// src = this.getPSW() & 0xff; // src = this.getPSW() & 0xff;
// if (instruction & 0x38) { // if (instruction & 0x38) {
// if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE_BYTE)) >= 0) { // write byte // if ((dstAddr = this.getAddrByMode(instruction, PDP11.ACCESS.WRITE_BYTE)) >= 0) { // write byte
@ -2435,40 +2438,40 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
// } // Temporary PDP 11/34A // } // Temporary PDP 11/34A
// break; // break;
default: default:
switch (instruction & 0xFFF8) /*0177770*/ { // Single register instructions xxxxxR (and CC) switch (opCode & 0xFFF8) /*0177770*/ { // Single register instructions xxxxxR (and CC)
case 0x80: /*0000200*/ // RTS 00020R case 0x80: /*0000200*/ // RTS 00020R
//LOG_INSTRUCTION(instruction, 6, "RTS"); //LOG_INSTRUCTION(opCode, 6, "RTS");
if ((src = this.popWord()) >= 0) { if ((src = this.popWord()) >= 0) {
reg = instruction & 7; reg = opCode & 7;
this.regsGen[7] = this.regsGen[reg]; this.regsGen[7] = this.regsGen[reg];
this.regsGen[reg] = src; this.regsGen[reg] = src;
} }
break; break;
case 0x98: /*0000230*/ // SPL 00023N case 0x98: /*0000230*/ // SPL 00023N
//LOG_INSTRUCTION(instruction, 9, "SPL"); //LOG_INSTRUCTION(opCode, 9, "SPL");
if (!(this.PSW & 0xc000)) { if (!(this.PSW & 0xc000)) {
this.PSW = (this.PSW & 0xf81f) | ((instruction & 7) << 5); this.PSW = (this.PSW & 0xf81f) | ((opCode & 7) << 5);
this.priorityReview = 1; this.priorityReview = 1;
} }
break; break;
case 0xA0: /*0000240*/ // CLR CC 00024M Part 1 without N case 0xA0: /*0000240*/ // CLR CC 00024M Part 1 without N
case 0xA8: /*0000250*/ // CLR CC 00025M Part 2 with N case 0xA8: /*0000250*/ // CLR CC 00025M Part 2 with N
if (instruction & 1) this.clearCF(); // CLC if (opCode & 1) this.clearCF(); // CLC
if (instruction & 2) this.clearVF(); // CLV if (opCode & 2) this.clearVF(); // CLV
if (instruction & 4) this.clearZF(); // CLZ if (opCode & 4) this.clearZF(); // CLZ
if (instruction & 8) this.clearNF(); // CLN if (opCode & 8) this.clearNF(); // CLN
break; break;
case 0xB0: /*0000260*/ // SET CC 00026M Part 1 without N case 0xB0: /*0000260*/ // SET CC 00026M Part 1 without N
case 0xB8: /*0000270*/ // SET CC 00026M Part 2 with N case 0xB8: /*0000270*/ // SET CC 00026M Part 2 with N
if (instruction & 1) this.setCF(); // SEC if (opCode & 1) this.setCF(); // SEC
if (instruction & 2) this.setVF(); // SEV if (opCode & 2) this.setVF(); // SEV
if (instruction & 4) this.setZF(); // SEZ if (opCode & 4) this.setZF(); // SEZ
if (instruction & 8) this.setNF(); // SEN if (opCode & 8) this.setNF(); // SEN
break; break;
default: // Misc instructions (decode ALL remaining bits) xxxxxx default: // Misc instructions (decode ALL remaining bits) xxxxxx
switch (instruction) { switch (opCode) {
case 0x0: /*0000000*/ // HALT 000000 case 0x0: /*0000000*/ // HALT 000000
//LOG_INSTRUCTION(instruction, 0, "HALT"); //LOG_INSTRUCTION(opCode, 0, "HALT");
if (0xc000 & this.PSW) { if (0xc000 & this.PSW) {
this.CPU_Error |= 0x80; /*0200*/ this.CPU_Error |= 0x80; /*0200*/
this.trap(PDP11.TRAP.BUS_ERROR, 46); this.trap(PDP11.TRAP.BUS_ERROR, 46);
@ -2480,7 +2483,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x1: /*0000001*/ // WAIT 000001 case 0x1: /*0000001*/ // WAIT 000001
//LOG_INSTRUCTION(instruction, 0, "WAIT"); //LOG_INSTRUCTION(opCode, 0, "WAIT");
j = 0; j = 0;
if ((i = this.interruptQueue.length) > 0) { if ((i = this.interruptQueue.length) > 0) {
while (i-- > 0) { while (i-- > 0) {
@ -2494,15 +2497,15 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
break; break;
case 0x3: /*0000003*/ // BPT 000003 case 0x3: /*0000003*/ // BPT 000003
//LOG_INSTRUCTION(instruction, 0, "BPT"); //LOG_INSTRUCTION(opCode, 0, "BPT");
this.trap(PDP11.TRAP.BREAKPOINT, /*014*/ 6); this.trap(PDP11.TRAP.BREAKPOINT, /*014*/ 6);
break; break;
case 0x4: /*0000004*/ // IOT 000004 case 0x4: /*0000004*/ // IOT 000004
//LOG_INSTRUCTION(instruction, 0, "IOT"); //LOG_INSTRUCTION(opCode, 0, "IOT");
this.trap(PDP11.TRAP.IOT, /*020*/ 8); this.trap(PDP11.TRAP.IOT, /*020*/ 8);
break; break;
case 0x5: /*0000005*/ // RESET 000005 case 0x5: /*0000005*/ // RESET 000005
//LOG_INSTRUCTION(instruction, 0, "RESET"); //LOG_INSTRUCTION(opCode, 0, "RESET");
if (!(this.PSW & 0xc000)) { if (!(this.PSW & 0xc000)) {
this.resetRegs(); this.resetRegs();
this.bus.reset(); this.bus.reset();
@ -2511,7 +2514,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
break; break;
case 0x2: /*0000002*/ // RTI 000002 case 0x2: /*0000002*/ // RTI 000002
case 0x6: /*0000006*/ // RTT 000006 case 0x6: /*0000006*/ // RTT 000006
//LOG_INSTRUCTION(instruction, 0, "RTT"); //LOG_INSTRUCTION(opCode, 0, "RTT");
dstAddr = this.regsGen[6]; dstAddr = this.regsGen[6];
if ((virtualAddress = this.readWordByVirtual(dstAddr | 0x10000)) >= 0) { if ((virtualAddress = this.readWordByVirtual(dstAddr | 0x10000)) >= 0) {
dstAddr = (dstAddr + 2) & 0xffff; dstAddr = (dstAddr + 2) & 0xffff;
@ -2525,18 +2528,18 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
this.regsGen[7] = virtualAddress; this.regsGen[7] = virtualAddress;
this.setPSW(savePSW); this.setPSW(savePSW);
this.opFlags &= ~PDP11.OPFLAG.TRAP_TF; this.opFlags &= ~PDP11.OPFLAG.TRAP_TF;
if (instruction === 2) { // RTI enables immediate trace if (opCode === 2) { // RTI enables immediate trace
this.opFlags |= (this.PSW & PDP11.PSW.TF); this.opFlags |= (this.PSW & PDP11.PSW.TF);
} }
} }
} }
break; break;
//case 0000007: // MFPT 000007 //case 0000007: // MFPT 000007
// //LOG_INSTRUCTION(instruction, 0, "MFPT"); // //LOG_INSTRUCTION(opCode, 0, "MFPT");
// this.regsGen[0] = 1; // this.regsGen[0] = 1;
// break; // Exists on pdp 11/44 & KB11-EM // break; // Exists on pdp 11/44 & KB11-EM
default: // We don't know this instruction default: // We don't know this instruction
//LOG_INSTRUCTION(instruction, 11, "-unknown-"); //LOG_INSTRUCTION(opCode, 11, "-unknown-");
this.trap(PDP11.TRAP.RESERVED, /*010*/ 48); // reserved instruction this.trap(PDP11.TRAP.RESERVED, /*010*/ 48); // reserved instruction
break; break;
} }

View file

@ -1,211 +1,214 @@
(function(){var m; (function(){var m;
function aa(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&f&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var e,c=a;((f=b)&&10!=f?16==f?null!==c.match(/^[0-9a-f]+$/i):8==f?null!==c.match(/^[0-7]+$/):2== function aa(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&f&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var e,c=a;((f=b)&&10!=f?16==f?null!==c.match(/^[0-9a-f]+$/i):8==f?null!==c.match(/^[0-7]+$/):2==
f&&null!==c.match(/^[01]+$/):null!==c.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(d=e|0)}return d}function ba(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),c=String.fromCharCode(f)+c;a>>=4}return(d?"0x":"")+c} f&&null!==c.match(/^[01]+$/):null!==c.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(d=e|0)}return d}function ba(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),c=String.fromCharCode(f)+c;a>>=4}return(d?"0x":"")+c}
function ca(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function da(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ea(){var a=fa();return-1!==a.indexOf("pcjs.org",a.length-8)}var la={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function na(a,b){return(a+" ").slice(0,b)} function ca(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function da(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ea(){var a=fa();return-1!==a.indexOf("pcjs.org",a.length-8)}var ga={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ma(a){return a.replace(/[&<>"']/g,function(a){return ga[a]})}function na(a,b){return(a+" ").slice(0,b)}
function oa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function pa(a,b,d){var c=0,f=a.length,e=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var qa=Date.now||function(){return+new Date};function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function oa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function pa(a,b,d){var c=0,f=a.length,e=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var qa=Date.now||function(){return+new Date};function ra(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function ua(a,b,d,c){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return c&&c(a,e,f),[e,f];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),c&&c(a,e,f))});if(b&&"object"== function ua(a,b,d,c){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return c&&c(a,e,f),[e,f];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),c&&c(a,e,f))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(e=g.responseText,200!=g.status&&(f=g.status||-1),c&&c(a,e,f),h=[e,f]);return h}function fa(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(e=g.responseText,200!=g.status&&(f=g.status||-1),c&&c(a,e,f),h=[e,f]);return h}function fa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}var wa=null;function Aa(){if(null==wa){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}wa=a}return wa}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b} function t(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}var wa=null;function xa(){if(null==wa){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}wa=a}return wa}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(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 Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()} function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(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 Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Fa(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ga={init:[],show:[],exit:[]},Ha=!1,Ia=!1,Ja=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){Ga.init.push(a)} function Fa(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ga={init:[],show:[],exit:[]},Ha=!1,Ia=!1,Ja=!0;function Ka(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){Ga.init.push(a)}
function Ra(a){if(Ja)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Ja&&a?(Ja=!0,Ha&&Ta("init"),Ia&&Ta("show")):Ja=a}function Ta(a){Ga[a]&&Ra(Ga[a])}Pa("onload",function(){Ha=!0;Ra(Ga.init)});Pa("onpageshow",function(){Ia=!0;Ra(Ga.show)});Pa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(Ga.exit)}); function Ra(a){if(Ja)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Ja&&a?(Ja=!0,Ha&&Ta("init"),Ia&&Ta("show")):Ja=a}function Ta(a){Ga[a]&&Ra(Ga[a])}Ka("onload",function(){Ha=!0;Ra(Ga.init)});Ka("onpageshow",function(){Ia=!0;Ra(Ga.show)});Ka(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(Ga.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Nc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.oc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.j={ready:!1,nb:!1,dc:!1,fa:!1,error:!1};this.Wb=null;this.j.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={}; function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.lc=b.comment;this.Nc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.nc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.u={ready:!1,nb:!1,cc:!1,fa:!1,error:!1};this.Vb=null;this.u.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b} if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function w(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},v=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d} function $a(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ab=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else ab={},v=[];function bb(a,b,d){ab[a]&&b&&(ab[a][b]=d)}function cb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b} function db(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ua(g.type,g.binding,h,g.value),l=k.length}}}} function eb(a,b){for(var d=x(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=w(h))&&g.binding&&a.ua(g.type,g.binding,h,g.value),l=k.length}}}}
function A(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d} function x(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ua:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.fb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d), u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ua:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.fb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
this.oa=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},oa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.j.fa=!0},Ma:function(a,b){b&&(this.j.fa=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Hc)}return!1} this.oa=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},oa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.u.fa=!0},Ma:function(a,b){b&&(this.u.fa=!1);return!0}};function fb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Hc)}return!1}
function fb(a,b){if(a.j.dc)return a.j.nb&&(a.j.nb=!1),a.j.dc=!1;if(a.j.error)return a.g(a.toString()+" error"),!1;a.j.nb=b;return a.j.nb}function gb(a,b){a.j.nb&&(b?a.j.dc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.nb}function E(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Wb;a.Wb=null;b&&b()}}function hb(a,b){b&&(a.j.ready?b():a.Wb=b);return a.j.ready}function ib(a,b){a.j.error=!0;a.oa(b)} function gb(a,b){if(a.u.cc)return a.u.nb&&(a.u.nb=!1),a.u.cc=!1;if(a.u.error)return a.g(a.toString()+" error"),!1;a.u.nb=b;return a.u.nb}function hb(a,b){a.u.nb&&(b?a.u.cc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.u.nb}function A(a){if(!a.u.error&&(a.u.ready=!0,a.u.ready)){var b=a.Vb;a.Vb=null;b&&b()}}function ib(a,b){b&&(a.u.ready?b():a.Vb=b);return a.u.ready}function jb(a,b){a.u.error=!0;a.oa(b)}
var jb="undefined"!==typeof ArrayBuffer,kb=2,F=4,G=6,kb=0|kb,vb=1|kb,F=0|F,wb=1|F,G=0|G,xb=1|G,yb={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function zb(a){u.call(this,"Panel",a,zb)}w(zb);m=zb.prototype;m.ua=function(a,b,d,c){return this.i&&this.i.ua(a,b,d,c)||this.f&&this.f.ua(a,b,d,c)||this.H&&this.H.ua(a,b,d,c)?!0:this.parent.ua.call(this,a,b,d,c)}; var kb="undefined"!==typeof ArrayBuffer,lb=2,B=4,F=6,lb=0|lb,wb=1|lb,B=0|B,xb=1|B,F=0|F,yb=1|F,zb={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function Ab(a){u.call(this,"Panel",a,Ab)}$a(Ab);m=Ab.prototype;m.ua=function(a,b,d,c){return this.i&&this.i.ua(a,b,d,c)||this.b&&this.b.ua(a,b,d,c)||this.H&&this.H.ua(a,b,d,c)?!0:this.parent.ua.call(this,a,b,d,c)};
m.Xa=function(a,b,d,c){this.i=a;this.G=b;this.f=d;this.H=c};m.Na=function(a,b){b||Ab();return!0};m.Ma=function(){return!0};m.xa=function(){};function Ab(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new zb(f));db(e,c);a&&E(e)}}Qa(Ab); m.Xa=function(a,b,d,c){this.i=a;this.G=b;this.b=d;this.H=c};m.Na=function(a,b){b||Bb();return!0};m.Ma=function(){return!0};m.wa=function(){};function Bb(){for(var a=!1,b=x(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=w(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new Ab(f));eb(e,c);a&&A(e)}}Qa(Bb);
function Bb(a,b,d){u.call(this,"Bus",a,Bb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.Aa=1<<this.X;this.T=this.Aa>>2;this.G=this.Aa-1;this.C=this.I/this.Aa|0;this.u=this.C-1;this.Ta=[];this.J=null;this.Gb=this.Dc;a=new H;Cb(a,this.H);this.R=Array(this.C);for(b=0;b<this.C;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=Db;this.Cb[1]=Eb;this.Cb[2]=Fb;this.Cb[3]=Gb;this.P=this.I-8192;Hb(this, function Cb(a,b,d){u.call(this,"Bus",a,Cb);this.b=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.Aa=1<<this.X;this.T=this.Aa>>2;this.G=this.Aa-1;this.C=this.I/this.Aa|0;this.j=this.C-1;this.Ta=[];this.J=null;this.Fb=this.Dc;a=new G;Db(a,this.H);this.R=Array(this.C);for(b=0;b<this.C;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=Eb;this.Cb[1]=Fb;this.Cb[2]=Gb;this.Cb[3]=Hb;this.P=this.I-8192;Ib(this,
this.P,8192,Ib,this);E(this)}w(Bb);function Db(a,b){var d=this.controller.Ta[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Ta[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)} this.P,8192,Jb,this);A(this)}$a(Cb);function Eb(a,b){var d=this.controller.Ta[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Ta[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Fb(b,-1,1)}
function Eb(a,b,d){var c=this.controller.Ta[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Ta[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Fb(a,b){var d=this.controller.Ta[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)} function Fb(a,b,d){var c=this.controller.Ta[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Ta[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Fb(d,b,1)}function Gb(a,b){var d=this.controller.Ta[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Fb(b,-1,0)}
function Gb(a,b,d){if(a=this.controller.Ta[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=Bb.prototype;m.reset=function(){this.J&&this.J()};m.Dc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0}; function Hb(a,b,d){if(a=this.controller.Ta[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Fb(d,b,0)}m=Cb.prototype;m.reset=function(){this.J&&this.J()};m.Dc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
function Hb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.Aa,n=a.Aa-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.A)return k.Ub+=k.A-e,k.A=e,!0;if(e>=k.A+k.Ub){n=k.size-(e-l);n>h&&(n=h);k.Ub=e-k.A+n;e=l+a.Aa;h-=n;g++;continue}}return Jb(1,e,h)}e=new H(e,n,a.Aa,c,f);Cb(e,a.H,k);a.R[g++]=e;e=l+a.Aa;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Kb[c]+" at "+r(b,8,!0)),!0):Jb(2,b,d)} function Ib(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.Aa,n=a.Aa-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.A)return k.Tb+=k.A-e,k.A=e,!0;if(e>=k.A+k.Tb){n=k.size-(e-l);n>h&&(n=h);k.Tb=e-k.A+n;e=l+a.Aa;h-=n;g++;continue}}return Kb(1,e,h)}e=new G(e,n,a.Aa,c,f);Db(e,a.H,k);a.R[g++]=e;e=l+a.Aa;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Lb[c]+" at "+r(b,8,!0)),!0):Kb(2,b,d)}
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].sb(a&this.G,a)};m.Ha=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].wc(b,a):this.R[d++].sb(b,a)|this.R[d&this.u].sb(0,a+1)<<8};function Lb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].hc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.u].Ob(0,b+1)<<8}m.bc=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)}; m.Gb=function(a){return this.R[(a&this.i)>>>this.X].sb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].wc(b,a):this.R[d++].sb(b,a)|this.R[d&this.j].sb(0,a+1)<<8};function Mb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].gc(d,b):a.R[c++].Nb(d,b)|a.R[c&a.j].Nb(0,b+1)<<8}m.ac=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)};
m.jc=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Cc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.u].xb(0,b>>8&255,a+1))};function Jb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1} m.ic=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Cc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.j].xb(0,b>>8&255,a+1))};function Kb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Mb(a){u.call(this,"Device",a,Mb);this.P=a.name;this.N={gc:[],Ia:0,qa:128,H:127,Jc:0};this.i={data:0,gd:0,pb:20,dd:0};this.u={Ib:0,K:0};this.C={Qb:2496,la:0,S:128,Rb:0,Pb:0,ta:0,xc:0,na:[],cb:[406,406,406,406],Z:[12,12,12,12]};this.I={K:129,Fb:0,ca:0,Ya:0,Ua:0,ab:0,na:[],Z:[40,40,40,40],cb:[1024,1024,512,512],Fc:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Z:[22,22,22,50],bb:[19,19,19,32],cc:[815,411,815,630],na:[],U:2176,vb:0,tb:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,pa:[4544,4544,4544,4544,4544, function Nb(a){u.call(this,"Device",a,Nb);this.P=a.name;this.N={fc:[],Ha:0,qa:128,H:127,Jc:0};this.i={data:0,gd:0,pb:20,dd:0};this.j={Hb:0,K:0};this.C={Pb:2496,la:0,S:128,Qb:0,Ob:0,ta:0,xc:0,na:[],cb:[406,406,406,406],Z:[12,12,12,12]};this.I={K:129,Eb:0,ca:0,Ya:0,Ua:0,ab:0,na:[],Z:[40,40,40,40],cb:[1024,1024,512,512],Fc:[157,157,29,29]};this.J={b:[8210,8208,8210,8226],Z:[22,22,22,50],bb:[19,19,19,32],bc:[815,411,815,630],na:[],U:2176,vb:0,tb:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,pa:[4544,4544,4544,4544,4544,
4544,4544,4544],ub:[0,0,0,0,0,0,0,0],kb:0,bd:[0,0,0,0,0,0,0,0],yc:0,zc:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Ac:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],ac:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$a:0,ic:0}}w(Mb); 4544,4544,4544],ub:[0,0,0,0,0,0,0,0],kb:0,bd:[0,0,0,0,0,0,0,0],yc:0,zc:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Ac:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],$b:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$a:0,hc:0}}$a(Nb);
var Nb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551, var Ob=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769, 2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=Mb.prototype; 0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=Nb.prototype;
m.Xa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ob;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Ta[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Ta[n]=[h,g,k,e,!1]}}f=this.Ec.bind(this);b.J=this.reset.bind(this);b.Gb=f}E(this)};m.Uc=function(){return $b(this.f)}; m.Xa=function(a,b,d,c){this.G=b;this.b=d;this.H=c;switch(this.P){default:a=Pb;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Ta[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Ta[n]=[h,g,k,e,!1]}}f=this.Ec.bind(this);b.J=this.reset.bind(this);b.Fb=f}A(this)};m.Uc=function(){return ac(this.b)};
m.fd=function(a){ac(this.f,a&-1809|$b(this.f)&1808);this.f.W|=128}; m.fd=function(a){bc(this.b,a&-1809|ac(this.b)&1808);this.b.W|=128};
function bc(a){var b=a.C,d,c,f,e=b.ta>>13&7;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.cb[e]*b.Z[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.la=0;b.S=128;b.ta=0;break;case 1:if((b.ta>>4&511)>=b.cb[e]){b.la|=32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;cc(a,b.na[e],d,c,f);return;case 2:if((b.ta>>4&511)>=b.cb[e]){b.la|= function cc(a){var b=a.C,d,c,f,e=b.ta>>13&7;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.cb[e]*b.Z[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Pb=2496;b.la=0;b.S=128;b.ta=0;break;case 1:if((b.ta>>4&511)>=b.cb[e]){b.la|=32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Ob;f=65536-b.Qb&65535;dc(a,b.na[e],d,c,f);return;case 2:if((b.ta>>4&511)>=b.cb[e]){b.la|=
32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.$b(b.na[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.ta%9&15;I(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.C;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.la|=33024;e.S|=49152;break;case 2:e.la|=33792,e.S|=49152}I(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})}; 32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Ob;f=65536-b.Qb&65535;a.Zb(b.na[e],d,c,f);return}b.Pb=e<<13|b.Pb&8176|b.ta%9&15;H(a.b,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.C;e.Ob=c&65535;e.S=e.S&-49|c>>12&48;e.Qb=65536-f&65535;switch(a){case 1:e.la|=33024;e.S|=49152;break;case 2:e.la|=33792,e.S|=49152}H(this.b,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
function dc(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.cb[e]*b.Z[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Ya&8&&(b.K&=63);b.Ya=b.Fc[e]|b.ab&64;break;case 3:1==(b.ca&3)&&(b.ab=b.ca&4?b.ab+(b.ca&65408)&65408|b.ca<<2&64:b.ab-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.ab);break;case 4:b.Ya=b.ab;break;case 5:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+ function ec(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.cb[e]*b.Z[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Ya&8&&(b.K&=63);b.Ya=b.Fc[e]|b.ab&64;break;case 3:1==(b.ca&3)&&(b.ab=b.ca&4?b.ab+(b.ca&65408)&65408|b.ca<<2&64:b.ab-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.ab);break;case 4:b.Ya=b.ab;break;case 5:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+
(b.ca&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;cc(a,b.na[e],d,c,f);return;case 6:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+(b.ca&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;a.$b(b.na[e],d,c,f);return}I(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})} (b.ca&63);c=(b.Ua&63)<<16|b.Eb;f=65536-b.Ya&65535;dc(a,b.na[e],d,c,f);return;case 6:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+(b.ca&63);c=(b.Ua&63)<<16|b.Eb;f=65536-b.Ya&65535;a.Zb(b.na[e],d,c,f);return}H(a.b,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
m.Wc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ua=c>>16&63;e.ca=~~(d/e.Z[b.La])<<6|d%e.Z[b.La];e.ab=e.ca;e.Ya=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}I(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function ec(a){a=a.J;a.U=2176;a.Ba=0;a.pa=[4544,4544,4544,4544,4544,4544,4544,4544];a.ub=[0,0,0,0,0,0,0,0];a.kb=a.vb=a.tb=a.$a=a.ic=0} m.Wc=function(a,b,d,c,f){var e=this.I;e.Eb=c&65535;e.K=e.K&-49|c>>12&48;e.Ua=c>>16&63;e.ca=~~(d/e.Z[b.La])<<6|d%e.Z[b.La];e.ab=e.ca;e.Ya=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.b,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function fc(a){a=a.J;a.U=2176;a.Ba=0;a.pa=[4544,4544,4544,4544,4544,4544,4544,4544];a.ub=[0,0,0,0,0,0,0,0];a.kb=a.vb=a.tb=a.$a=a.hc=0}
function fc(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Ba&=-2049;d.pa[b]&=-1153;I(a.f,-1,0,172);"undefined"===typeof d.na[b]&&(d.na[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.cc[0]*d.bb[0]*d.Z[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ac[b]=d.Pa[b];d.U|=32896;d.pa[b]|=32896;d.kb|=1<<b;break;case 9:ec(a);break;case 19:d.pa[b]|=64;break;case 49:if(d.Pa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+ function gc(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Ba&=-2049;d.pa[b]&=-1153;H(a.b,-1,0,172);"undefined"===typeof d.na[b]&&(d.na[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.bc[0]*d.bb[0]*d.Z[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.$b[b]=d.Pa[b];d.U|=32896;d.pa[b]|=32896;d.kb|=1<<b;break;case 9:fc(a);break;case 19:d.pa[b]|=64;break;case 49:if(d.Pa[b]>=d.bc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+
(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;cc(a,d.na[b],c,f,e);return;case 57:if(d.Pa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;a.$b(d.na[b],c,f,e);return}I(a.f,3,160,172,function(){d.U=d.U&65534|128;d.pa[b]|=128;return!!(d.U&64)})} (d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;dc(a,d.na[b],c,f,e);return;case 57:if(d.Pa[b]>=d.bc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;a.Zb(d.na[b],c,f,e);return}H(a.b,3,160,172,function(){d.U=d.U&65534|128;d.pa[b]|=128;return!!(d.U&64)})}
m.Xc=function(a,b,d,c,f){var e=this.J;e.vb=65536-f&65535;e.tb=c&65535;e.U=e.U&-769|c>>8&768;e.$a=c>>16&63;f=~~(d/e.Z[0]);c=~~(f/e.bb[0]);e.Ca[b.La]=f%e.bb[0]<<8|d%e.Z[0];e.ac[b.La]=e.Pa[b.La]=c;e.kb|=1<<b.La;d>=b.Sc-1&&(e.pa[b.La]|=1024);switch(a){case 1:e.Ba|=512;e.U|=49152;break;case 2:e.Ba|=2048,e.U|=49152}I(this.f,20,160,172,function(){e.pa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Pc=function(){this.u.K|=128;this.u.K&64&&I(this.f,0,192,64)}; m.Xc=function(a,b,d,c,f){var e=this.J;e.vb=65536-f&65535;e.tb=c&65535;e.U=e.U&-769|c>>8&768;e.$a=c>>16&63;f=~~(d/e.Z[0]);c=~~(f/e.bb[0]);e.Ca[b.La]=f%e.bb[0]<<8|d%e.Z[0];e.$b[b.La]=e.Pa[b.La]=c;e.kb|=1<<b.La;d>=b.Sc-1&&(e.pa[b.La]|=1024);switch(a){case 1:e.Ba|=512;e.U|=49152;break;case 2:e.Ba|=2048,e.U|=49152}H(this.b,20,160,172,function(){e.pa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Pc=function(){this.j.K|=128;this.j.K&64&&H(this.b,0,192,64)};
function gc(a,b,d,c,f,e){var h=~~((e+d.Va-1)/d.Va),g=new XMLHttpRequest;2048>h&&c+2048<d.Sc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Va<<1)+"-"+(((c+h)*d.Va<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Zb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Va;p++)d.cache[n][p]=q<l.length? function hc(a,b,d,c,f,e){var h=~~((e+d.Va-1)/d.Va),g=new XMLHttpRequest;2048>h&&c+2048<d.Sc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Va<<1)+"-"+(((c+h)*d.Va<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Yb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Va;p++)d.cache[n][p]=q<l.length?
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Va<<1;n++}h(d,c,f,e)}}};g.send(null)}function J(a,b,d,c,f){if(d&1){if(!f)return K(a.f,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.$b=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){gc(this,this.$b,a,b,d,c);return}for(f=0;f<a.Va&&0<c;f++){if(0>L(this.f,a.Rc?hc(this.f,d):d,a.cache[b][f])){a.Zb(2,a,b,d,c);return}d+=2;--c}b++}a.Zb(0,a,b,d,c)}; l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Va<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.b,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){hc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Va&&0<c;f++){if(0>K(this.b,a.Rc?ic(this.b,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
function cc(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Va;e++)b.cache[d][e]=0;for(e=0;e<b.Va&&0<f;e++){h=M(a.f,b.Rc?hc(a.f,c):c);if(0>h){b.Zb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Zb(0,b,d,c,f)}m.reset=function(){this.i.pb=this.i.pb&-120|20;this.N.Ia=0;this.N.qa=128;this.u.K=0;this.C.S=128;this.I.K=128;ec(this)}; function dc(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Va;e++)b.cache[d][e]=0;for(e=0;e<b.Va&&0<f;e++){h=L(a.b,b.Rc?ic(a.b,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}m.reset=function(){this.i.pb=this.i.pb&-120|20;this.N.Ha=0;this.N.qa=128;this.j.K=0;this.C.S=128;this.I.K=128;fc(this)};
m.Ec=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Yb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Yb=c;e.Oa=2}break;case 4194294:if(70!==e.gb)return K(e,4,222);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.gb)return K(e,4,224);c=1;break;case 4194290:if(70!==e.gb)return K(e,4,226);c=0;break;case 4194288:if(70!==e.gb)return K(e,4,228);c=61183;break;case 4194296:0<= m.Ec=function(a,b,d){var c,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Xb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Xb=c;e.Oa=2}break;case 4194294:if(70!==e.gb)return J(e,4,222);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.gb)return J(e,4,224);c=1;break;case 4194290:if(70!==e.gb)return J(e,4,226);c=0;break;case 4194288:if(70!==e.gb)return J(e,4,228);c=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.gb)return K(e,4,232);f=a-4194272>>1;0>b?c=e.fc[f]:(c=J(this,e.fc[f],a,b,d),0<=c&&(e.fc[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[3]=b),c=e.sa[3]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[1]=b),c=e.sa[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Za[f]= b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.gb)return J(e,4,232);f=a-4194272>>1;0>b?c=e.ec[f]:(c=I(this,e.ec[f],a,b,d),0<=c&&(e.ec[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.f[6]=b),c=e.f[6]):(0<=b&&(e.sa[3]=b),c=e.sa[3]):e.M>>14&0?(0<=b&&(e.f[6]=b),c=e.f[6]):(0<=b&&(e.sa[1]=b),c=e.sa[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.f[f]=b),c=e.f[f]):(0<=b&&(e.Za[f]=
b),c=e.Za[f]),c;case 4194246:return a&1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[0]=b),c=e.sa[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Za[f]=b),c=e.Za[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.L|=16,K(e,4,124)}break;case 4194176:f=a>>1&31;c=J(this,e.ka[3][f],a,b,d);0<=c&&(e.ka[3][f]=c,e.ka[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.u;switch(a&-2){case 4194174:c=J(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c= b),c=e.Za[f]),c;case 4194246:return a&1?(0<=b&&(e.f[7]=b),c=e.f[7]):e.M>>14&0?(0<=b&&(e.f[6]=b),c=e.f[6]):(0<=b&&(e.sa[0]=b),c=e.sa[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Za[f]=b),c=e.Za[f]):(0<=b&&(e.f[f]=b),c=e.f[f]),c;default:return e.L|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;c=I(this,e.ka[3][f],a,b,d);0<=c&&(e.ka[3][f]=c,e.ka[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.j;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=
e.Da;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Xb<<1;0>b?c=e.ba:(c=J(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Xb=c>>1&15,c&257?(f=2,e.Ra&16&&(f=1),e.Jb=c&1?kb|F:F):(e.Jb=0,f=4),this.i.pb=this.i.pb&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=J(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Jc=0),h.qa&=-129,I(e,100,128,52,function(){h.qa|=128;return!!(h.qa&64)}));c=0;break;case 4194164:0>b?c=h.qa:(c=J(this,h.qa, e.Da;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ba=e.ba&62337|e.Jb<<5|e.Wb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Jb=c>>5&3,e.Wb=c>>1&15,c&257?(f=2,e.Ra&16&&(f=1),e.Ib=c&1?lb|B:B):(e.Ib=0,f=4),this.i.pb=this.i.pb&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Jc=0),h.qa&=-129,H(e,100,128,52,function(){h.qa|=128;return!!(h.qa&64)}));c=0;break;case 4194164:0>b?c=h.qa:(c=I(this,h.qa,
a,b,d),0<=c&&(128==(h.qa&192)&&c&64&&I(e,8,128,52,function(){h.qa|=128;return!!(h.qa&64)}),h.qa=h.qa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ia&=-129,0<h.gc.length&&(c=h.gc.shift(),0<h.gc.length&&setTimeout(function(){h.Ia|=128;h.Ia&64&&I(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ia:(c=J(this,h.Ia,a,b,d),0<=c&&(h.Ia=h.Ia&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=J(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Pc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.L|= a,b,d),0<=c&&(128==(h.qa&192)&&c&64&&H(e,8,128,52,function(){h.qa|=128;return!!(h.qa&64)}),h.qa=h.qa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.fc.length&&(c=h.fc.shift(),0<h.fc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=I(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=I(this,f.K,a,b,d),0<=c&&(c&64&&!f.Hb&&(setInterval(this.Pc.bind(this),25),f.Hb=1),f.K=c&-129));break;default:return e.L|=
16,K(e,4,126)}break;case 4194048:f=this.C;switch(a&-2){case 4194048:c=J(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=J(this,f.la,a,b,d);0<=c&&(f.la=c);break;case 4194052:c=J(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&bc(this));break;case 4194054:c=J(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=J(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=J(this,f.ta,a,b,d);0<=c&&(f.ta=c);break;case 4194060:break;case 4194062:c=J(this,f.xc,a,b,d);0<=c&&(f.xc=c);break;default:return e.L|= 16,J(e,4,126)}break;case 4194048:f=this.C;switch(a&-2){case 4194048:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194050:c=I(this,f.la,a,b,d);0<=c&&(f.la=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&cc(this));break;case 4194054:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194056:c=I(this,f.Ob,a,b,d);0<=c&&(f.Ob=c);break;case 4194058:c=I(this,f.ta,a,b,d);0<=c&&(f.ta=c);break;case 4194060:break;case 4194062:c=I(this,f.xc,a,b,d);0<=c&&(f.xc=c);break;default:return e.L|=
16,K(e,4,128)}break;case 4193728:var g=this.J;f=g.Ba&7;switch(a&-2){case 4193728:c=J(this,g.U,a,b,d);0<=b&&0<=c&&(g.$a=g.$a&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?fc(this,f):192==(c&192)&&I(e,0,160,172));break;case 4193730:c=J(this,g.vb,a,b,d);0<=c&&(g.vb=c);break;case 4193732:c=J(this,g.tb,a,b,d);0<=c&&(g.tb=c&65534);break;case 4193734:c=J(this,g.Ca[f],a,b,d);0<=c&&(g.Ca[f]=c&7967);break;case 4193736:c=J(this,g.Ba,a,b,d);0<=c&&(g.Ba=c&63|g.Ba&65472,c&128&&ec(this));break;case 4193738:c= 16,J(e,4,128)}break;case 4193728:var g=this.J;f=g.Ba&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.$a=g.$a&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?gc(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.vb,a,b,d);0<=c&&(g.vb=c);break;case 4193732:c=I(this,g.tb,a,b,d);0<=c&&(g.tb=c&65534);break;case 4193734:c=I(this,g.Ca[f],a,b,d);0<=c&&(g.Ca[f]=c&7967);break;case 4193736:c=I(this,g.Ba,a,b,d);0<=c&&(g.Ba=c&63|g.Ba&65472,c&128&&fc(this));break;case 4193738:c=
g.pa[f];break;case 4193740:c=g.ub[f];break;case 4193742:c=J(this,g.kb,a,b,d);0<=c&&(g.kb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=J(this,g.yc,a,b,d);0<=c&&(g.yc=c);break;case 4193748:c=J(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=J(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c);break;case 4193756:c=J(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.ac[f]=g.Pa[f];c=g.ac[f];break;case 4193760:c=g.$c[f]; g.pa[f];break;case 4193740:c=g.ub[f];break;case 4193742:c=I(this,g.kb,a,b,d);0<=c&&(g.kb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=I(this,g.yc,a,b,d);0<=c&&(g.yc=c);break;case 4193748:c=I(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=I(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.$b[f]=g.Pa[f];c=g.$b[f];break;case 4193760:c=g.$c[f];
break;case 4193762:c=g.ad[f];break;case 4193764:c=g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=J(this,g.$a,a,b,d);0<=c&&(g.$a=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=J(this,g.ic,a,b,d);0<=c&&(g.ic=c);break;default:return e.L|=16,K(e,4,132)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=J(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ua=f.Ua&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||dc(this));break;case 4192514:c=J(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=J(this,f.ca, break;case 4193762:c=g.ad[f];break;case 4193764:c=g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=I(this,g.$a,a,b,d);0<=c&&(g.$a=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.hc,a,b,d);0<=c&&(g.hc=c);break;default:return e.L|=16,J(e,4,132)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ua=f.Ua&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||ec(this));break;case 4192514:c=I(this,f.Eb,a,b,d);0<=c&&(f.Eb=c&65534);break;case 4192516:c=I(this,f.ca,
a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=J(this,f.Ya,a,b,d);0<=c&&(f.Ya=c);break;case 4192520:c=J(this,f.Ua,a,b,d);0<=c&&(f.Ua=c&63,f.K=f.K&-49|(f.Ua&3)<<4);break;default:return e.L|=16,K(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ra:(c=J(this,e.Ra,a,b,d),0<=c&&(70!==e.gb&&(c&=-49),e.Ra=c,e.ib[0]=c&4?15:7,e.ib[1]=c&2?15:7,e.ib[3]=c&1?15:7,e.Jb&&(f=2,e.Ra&16&&(f=1),this.i.pb=this.i.pb&-8|f)));break;default:return e.L|=16,K(e,4,136)}break;case 4191424:f=a>>1&31;c=J(this,e.ka[0][f], a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Ya,a,b,d);0<=c&&(f.Ya=c);break;case 4192520:c=I(this,f.Ua,a,b,d);0<=c&&(f.Ua=c&63,f.K=f.K&-49|(f.Ua&3)<<4);break;default:return e.L|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ra:(c=I(this,e.Ra,a,b,d),0<=c&&(70!==e.gb&&(c&=-49),e.Ra=c,e.ib[0]=c&4?15:7,e.ib[1]=c&2?15:7,e.ib[3]=c&1?15:7,e.Ib&&(f=2,e.Ra&16&&(f=1),this.i.pb=this.i.pb&-8|f)));break;default:return e.L|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;c=I(this,e.ka[0][f],
a,b,d);0<=c&&(e.ka[0][f]=c,e.ka[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=J(this,e.ka[1][f],a,b,d);0<=c&&(e.ka[1][f]=c,e.ka[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.gb)return K(e,4,234);f=a>>2&31;c=e.Sb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=J(this,c,a,b,d),0<=c&&(e.Sb[f]=a&2?c<<16|e.Sb[f]&65535:e.Sb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Nb[a>>1&255];else return e.L|=16,K(e, a,b,d);0<=c&&(e.ka[0][f]=c,e.ka[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=I(this,e.ka[1][f],a,b,d);0<=c&&(e.ka[1][f]=c,e.ka[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.gb)return J(e,4,234);f=a>>2&31;c=e.Rb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.Rb[f]=a&2?c<<16|e.Rb[f]&65535:e.Rb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Ob[a>>1&255];else return e.L|=16,J(e,
4,138);break;default:return e.L|=16,K(e,4,142)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};var Ob={};Ob[4194302]=[null,null,Mb.prototype.Uc,Mb.prototype.fd];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Mb(c);db(c,d)}});var ic;if(jb){var jc=new ArrayBuffer(2);(new DataView(jc)).setUint16(0,256,!0);ic=256===(new Uint16Array(jc))[0]}else ic=!1;var kc=ic; 4,138);break;default:return e.L|=16,J(e,4,142)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};var Pb={};Pb[4194302]=[null,null,Nb.prototype.Uc,Nb.prototype.fd];Qa(function(){for(var a=x(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=w(d),c=new Nb(c);eb(c,d)}});var jc;if(kb){var kc=new ArrayBuffer(2);(new DataView(kc)).setUint16(0,256,!0);jc=256===(new Uint16Array(kc))[0]}else jc=!1;var lc=jc;
function H(a,b,d,c,f){this.id=lc+=2;this.f=null;this.A=a;this.Ub=b;this.size=d||0;this.type=c||mc;this.O=c==nc;this.controller=null;Cb(this);this.Wa=this.Lc=!1;if(d)if(f)this.controller=f,this.f=null,oc(this,f.Cb);else if(jb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),oc(this,kc?pc:qc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;oc(this,rc)}else oc(this)} function G(a,b,d,c,f){this.id=mc+=2;this.b=null;this.A=a;this.Tb=b;this.size=d||0;this.type=c||nc;this.O=c==oc;this.controller=null;Db(this);this.Wa=this.Lc=!1;if(d)if(f)this.controller=f,this.b=null,pc(this,f.Cb);else if(kb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.b=new Int32Array(this.I,0,d>>2),pc(this,lc?qc:rc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;pc(this,sc)}else pc(this)}
var mc=0,nc=2,Ib=4,Kb=["NONE","RAM","ROM","VID","H/W"],lc=0; var nc=0,oc=2,Jb=4,Lb=["NONE","RAM","ROM","VID","H/W"],mc=0;
H.prototype={constructor:H,parent:null,Ib:function(a){this.A=a},save:function(){var a,b;if(this.controller)a=null;else if(jb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(jb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Wa=!0}return!1},eb:function(a,b){b?0===this.u++&&sc(this,tc,!1):0===this.i++&&uc(this,tc,!1)},T:function(){this.H&& G.prototype={constructor:G,parent:null,Hb:function(a){this.A=a},save:function(){var a,b;if(this.controller)a=null;else if(kb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(kb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.b=a;return this.Wa=!0}return!1},eb:function(a,b){b?0===this.j++&&tc(this,uc,!1):0===this.i++&&vc(this,uc,!1)},T:function(){this.H&&
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.A),!0);return 255},C:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},V:function(a,b){return this.sb(a++,b++)|this.sb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},da:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},za:function(a, fb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.A),!0);return 255},C:function(a,b){this.H&&fb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},V:function(a,b){return this.sb(a++,b++)|this.sb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var d=this.b[b]>>a;return 24>a?d&65535:d&255|(this.b[b+1]&255)<<8},za:function(a,
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Wa=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Wa=!0},$:function(a,b){if(this.H&&null!=this.A){var d=this.H;vc(d,this.A+a,1,d.Y)&&d.ma(!0)}return this.Ob(a,b)},ga:function(a,b){if(this.H&&null!=this.A){var d=this.H;vc(d,this.A+a,2,d.Y)&&d.ma(!0)}return this.hc(a,b)},wa:function(a,b,d){if(this.H&&null!=this.A){var c=this.H; b){var d=a>>2,c=(a&3)<<3;this.b[d]=this.b[d]&~(255<<c)|b<<c;this.Wa=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.b[d]=this.b[d]&~(65535<<c)|b<<c:(this.b[d]=this.b[d]&16777215|b<<24,d++,this.b[d]=this.b[d]&-256|b>>8);this.Wa=!0},$:function(a,b){if(this.H&&null!=this.A){var d=this.H;wc(d,this.A+a,1,d.Y)&&d.ma(!0)}return this.Nb(a,b)},ga:function(a,b){if(this.H&&null!=this.A){var d=this.H;wc(d,this.A+a,2,d.Y)&&d.ma(!0)}return this.gc(a,b)},xa:function(a,b,d){if(this.H&&null!=this.A){var c=this.H;
vc(c,this.A+a,1,c.J)&&c.ma(!0)}this.O?this.C(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.A){var c=this.H;vc(c,this.A+a,2,c.J)&&c.ma(!0)}this.O?this.C(a,b,d):this.lc(a,b,d)},Y:function(a){return this.G[a]},aa:function(a){return this.G[a]},ea:function(a){return this.J.getUint16(a,!0)},ja:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},va:function(a,b){this.G[a]=b;this.Wa=!0},ya:function(a,b){this.G[a]=b;this.Wa=!0},Ea:function(a,b){this.J.setUint16(a,b,!0);this.Wa= wc(c,this.A+a,1,c.J)&&c.ma(!0)}this.O?this.C(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.A){var c=this.H;wc(c,this.A+a,2,c.J)&&c.ma(!0)}this.O?this.C(a,b,d):this.kc(a,b,d)},Y:function(a){return this.G[a]},aa:function(a){return this.G[a]},ea:function(a){return this.J.getUint16(a,!0)},ja:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},va:function(a,b){this.G[a]=b;this.Wa=!0},ya:function(a,b){this.G[a]=b;this.Wa=!0},Ia:function(a,b){this.J.setUint16(a,b,!0);this.Wa=
!0},Sa:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Wa=!0}};function Cb(a,b,d){a.H=b;a.i=a.u=0;d&&((a.i=d.i)&&uc(a,tc,!1),(a.u=d.u)&&sc(a,tc,!1))}function wc(a,b){b?0===--a.u&&(a.xb=a.O?a.C:a.yb,a.Cc=a.O?a.N:a.lc):0===--a.i&&(a.sb=a.Ob,a.wc=a.hc)}function sc(a,b,d){d&&a.u||(a.xb=!a.O&&b[1]||a.C,a.Cc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.C,a.lc=b[3]||a.N}function uc(a,b,d){d&&a.i||(a.sb=b[0]||a.T,a.wc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.hc=b[2]||a.V} !0},Sa:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Wa=!0}};function Db(a,b,d){a.H=b;a.i=a.j=0;d&&((a.i=d.i)&&vc(a,uc,!1),(a.j=d.j)&&tc(a,uc,!1))}function xc(a,b){b?0===--a.j&&(a.xb=a.O?a.C:a.yb,a.Cc=a.O?a.N:a.kc):0===--a.i&&(a.sb=a.Nb,a.wc=a.gc)}function tc(a,b,d){d&&a.j||(a.xb=!a.O&&b[1]||a.C,a.Cc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.C,a.kc=b[3]||a.N}function vc(a,b,d){d&&a.i||(a.sb=b[0]||a.T,a.wc=b[2]||a.V);if(d||void 0===d)a.Nb=b[0]||a.T,a.gc=b[2]||a.V}
function oc(a,b){b||(b=xc);uc(a,b,void 0);sc(a,b,void 0)}var xc=[],rc=[H.prototype.da,H.prototype.za,H.prototype.ra,H.prototype.Bb],tc=[H.prototype.$,H.prototype.wa,H.prototype.ga,H.prototype.Ja];if(jb)var qc=[H.prototype.Y,H.prototype.va,H.prototype.ea,H.prototype.Ea],pc=[H.prototype.aa,H.prototype.ya,H.prototype.ja,H.prototype.Sa]; function pc(a,b){b||(b=yc);vc(a,b,void 0);tc(a,b,void 0)}var yc=[],sc=[G.prototype.da,G.prototype.za,G.prototype.ra,G.prototype.Bb],uc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ja];if(kb)var rc=[G.prototype.Y,G.prototype.va,G.prototype.ea,G.prototype.Ia],qc=[G.prototype.aa,G.prototype.ya,G.prototype.ja,G.prototype.Sa];
function yc(a,b){u.call(this,"CPU",a,yc,1);var d=a.multiplier||1;this.za=a.cycles||b;this.jb=d;this.ya=Math.round(this.za/1E4)/100;this.hb=this.ya*this.jb;this.j.ia=!1;this.j.kc=!1;this.j.Db=a.autoStart;this.j.sc=!1;this.j.ob=!1;this.Lb=this.Y=0;this.Mb=a.csStart;this.qb=a.csInterval;this.rb=a.csStop;this.ja=[];this.Eb=this.lb.bind(this);E(this)}w(yc);var zc=["power","reset"];m=yc.prototype; function zc(a,b){u.call(this,"CPU",a,zc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.jb=d;this.xa=Math.round(this.ya/1E4)/100;this.hb=this.xa*this.jb;this.u.ia=!1;this.u.jc=!1;this.u.Db=a.autoStart;this.u.sc=!1;this.u.ob=!1;this.Kb=this.Y=0;this.Lb=a.csStart;this.qb=a.csInterval;this.rb=a.csStop;this.ja=[];this.zb=this.lb.bind(this);A(this)}$a(zc);var Ac=["power","reset"];m=zc.prototype;
m.Xa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<zc.length;b++)(d=this.O[zc[b]])&&this.i.ua(null,zc[b],d);this.da=null;a=Ac(a,"autoStart");null!=a&&(this.j.Db="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}Dc(this);return!0}; m.Xa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<Ac.length;b++)(d=this.O[Ac[b]])&&this.i.ua(null,Ac[b],d);this.da=null;a=Bc(a,"autoStart");null!=a&&(this.u.Db="true"==a?!0:"false"==a?!1:!!a);A(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){Cc(this);if(!this.restore(a))return!1;Dc(this)}else this.reset();this.H?this.H.Hb():this.g("No debugger detected")}Ec(this);return!0};
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.j.Db||!this.H&&void 0===this.O.run?(this.lb(!0),!0):!1};m.uc=function(){return 0};function Cc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.j.ob=0<=a.Mb&&0<a.qb;a.j.ob&&(a.Lb=0,a.Y=a.Mb-a.V)}function Ec(a,b){if(a.j.ob){var d=!1;a.Lb=a.Lb+a.uc()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.qb,d=!0);0<=a.rb&&a.rb<=Fc(a)&&(a.qb=a.rb=-1,Cc(a),a.ma(),d=!0);d&&a.g(Fc(a)+" cycles: checksum="+r(a.Lb))}} m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.u.Db||!this.H&&void 0===this.O.run?(this.lb(!0),!0):!1};m.uc=function(){return 0};function Dc(a){void 0===a.Lb&&(a.Lb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.u.ob=0<=a.Lb&&0<a.qb;a.u.ob&&(a.Kb=0,a.Y=a.Lb-a.V)}function Fc(a,b){if(a.u.ob){var d=!1;a.Kb=a.Kb+a.uc()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.qb,d=!0);0<=a.rb&&a.rb<=Sc(a)&&(a.qb=a.rb=-1,Dc(a),a.ma(),d=!0);d&&a.g(Sc(a)+" cycles: checksum="+r(a.Kb))}}
function Sc(a,b,d,c){if(a.O[b]){void 0===d&&(ib(a,"Value for "+b+" is invalid"),a.ma());var f=a.H&&a.H.wa||8;d=!a.j.ia||a.j.sc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}} function Tc(a,b,d,c){if(a.O[b]){void 0===d&&(jb(a,"Value for "+b+" is invalid"),a.ma());var f=a.H&&a.H.xa||8;d=!a.u.ia||a.u.sc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
m.ua=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.j.fa)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.j.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.j.fa);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Wb?" (waiting for notification)":""))+".");a=!1}a&&(c.j.ia?c.ma():c.lb())}; m.ua=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.u.fa)a=!0;else{var b=null,d,g=cb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.u.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.u.fa);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.u.ready?"powered yet":"ready yet"+(b.Vb?" (waiting for notification)":""))+".");a=!1}a&&(c.u.ia?c.ma():c.lb())};
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Tc(c,c.jb<<1,!0)},d.textContent=this.hb.toFixed(2)+"Mhz",a=!0}return a};function Uc(a,b,d){a.V+=b;d&&(a.T=a.C=0)}function Vc(a,b){var d=1;b&&1<a.jb&&a.N&&(d=a.N/a.ya);a.mb=Math.round(1E3/30);a.va=Math.floor(a.za/30*d);b||(a.$=a.va);a.Ea=0}function Fc(a){return a.V+a.J+a.T-a.C}function Bc(a){a.N=0;a.zb=0;a.V=a.J=a.T=a.C=0;Cc(a);Tc(a,1)} a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Uc(c,c.jb<<1,!0)},d.textContent=this.hb.toFixed(2)+"Mhz",a=!0}return a};function Vc(a,b,d){a.V+=b;d&&(a.T=a.b=0)}function Wc(a,b){var d=1;b&&1<a.jb&&a.N&&(d=a.N/a.xa);a.Sa=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.za=0}function Sc(a){return a.V+a.J+a.T-a.b}function Cc(a){a.N=0;a.mb=0;a.V=a.J=a.T=a.b=0;Dc(a);Uc(a,1)}
function Tc(a,b,d){var c=!1;if(void 0!==b){.8>a.N/a.hb?b=1:c=!0;a.jb=b;b=a.ya*a.jb;if(a.hb!=b){a.hb=b;b=a.hb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Tb()}Uc(a,a.J);a.J=0;a.I=qa();a.P=0;Vc(a);return c}function Wc(a){a.T-=a.C;a.C=0} function Uc(a,b,d){var c=!1;if(void 0!==b){.8>a.N/a.hb?b=1:c=!0;a.jb=b;b=a.xa*a.jb;if(a.hb!=b){a.hb=b;b=a.hb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Sb()}Vc(a,a.J);a.J=0;a.I=qa();a.P=0;Wc(a);return c}function Xc(a){a.T-=a.b;a.b=0}
m.lb=function(a){if(fb(this,!0)){if(!this.j.ia){Tc(this);this.i&&this.i.start(this.I,Fc(this));this.j.ia=!0;this.j.kc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.xa(!0),a&&this.i.Tb(!0))}this.Ea>=this.za&&Vc(this,!0);this.ea=0;this.ra=qa();this.P&&(a=this.ra-this.P,a>this.mb&&(this.I+=a,this.I>this.ra&&(this.I=this.ra)));try{do{for(var d,c=this.j.ob?1:this.va,f=this.ja.length-1;0<=f;f--){var e=this.ja[f];0>e[0]||c>e[0]&&(c=e[0])}d=c;try{this.wb(d)}catch(l){if("number"!= m.lb=function(a){if(gb(this,!0)){if(!this.u.ia){Uc(this);this.i&&this.i.start(this.I,Sc(this));this.u.ia=!0;this.u.jc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Sb(!0))}this.za>=this.ya&&Wc(this,!0);this.ea=0;this.ra=qa();this.P&&(a=this.ra-this.P,a>this.Sa&&(this.I+=a,this.I>this.ra&&(this.I=this.ra)));try{do{for(var d,c=this.u.ob?1:this.va,f=this.ja.length-1;0<=f;f--){var e=this.ja[f];0>e[0]||c>e[0]&&(c=e[0])}d=c;try{this.wb(d)}catch(l){if("number"!=
typeof l)throw l;}var h=this.T-this.C;a=h;for(var g=this.ja.length-1;0<=g;g--){var k=this.ja[g];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ea+=h;this.J+=h;Uc(this,0,!0);Ec(this,h);this.$-=h;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.xa(),this.zb=0);break}}while(this.j.ia)}catch(l){this.ma();Dc(this);this.i&&this.i.stop(qa(),Fc(this));fb(this,!1);ib(this,l.stack||l.message);return}d=setTimeout;c=this.Eb;this.P=qa();f=this.mb;this.ea&&(f=Math.round(f*this.ea/this.va));f=f-(this.P- typeof l)throw l;}var h=this.T-this.b;a=h;for(var g=this.ja.length-1;0<=g;g--){var k=this.ja[g];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ea+=h;this.J+=h;Vc(this,0,!0);Fc(this,h);this.$-=h;if(0>=this.$){this.$+=this.va;15<=++this.mb&&(this.i&&this.i.wa(),this.mb=0);break}}while(this.u.ia)}catch(l){this.ma();Ec(this);this.i&&this.i.stop(qa(),Sc(this));gb(this,!1);jb(this,l.stack||l.message);return}d=setTimeout;c=this.zb;this.P=qa();f=this.Sa;this.ea&&(f=Math.round(f*this.ea/this.va));f=f-(this.P-
this.ra);if(e=this.P-this.I)this.N=Math.round(this.J/(10*e))/100,864E5<=e&&(this.V=0,Tc(this));if(0>f||this.N<this.hb)-1E3>f&&(this.I-=f),f=0;this.Ea+=this.ea;this.P+=f;d(c,f)}else Dc(this),this.i&&this.i.stop(qa(),Fc(this))};m.wb=function(){return 0};m.ma=function(a){gb(this,!0);Wc(this);Uc(this,this.J);this.J=0;if(this.j.ia){this.j.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.j.complete=a};function Dc(a,b){a.i&&a.i.xa(b)} this.ra);if(e=this.P-this.I)this.N=Math.round(this.J/(10*e))/100,864E5<=e&&(this.V=0,Uc(this));if(0>f||this.N<this.hb)-1E3>f&&(this.I-=f),f=0;this.za+=this.ea;this.P+=f;d(c,f)}else Ec(this),this.i&&this.i.stop(qa(),Sc(this))};m.wb=function(){return 0};m.ma=function(a){hb(this,!0);Xc(this);Vc(this,this.J);this.J=0;if(this.u.ia){this.u.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.u.complete=a};function Ec(a,b){a.i&&a.i.wa(b)}
function Xc(a){this.vc=+a.model||1170;this.Vb=a.resetAddr||0;yc.call(this,a,1E6);this.Ja=0;this.decode=Yc.bind(this);this.D=65536;this.B=32768;this.F=65535;this.w=32768;this.wa=-1;this.b=[0,0,0,0,0,0,0,this.Vb];this.Za=[0,0,0,0,0,0];this.sa=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Yb=0;this.Oa=2;this.Qa=255;this.W=0;this.aa=-1;this.L=0;this.gb=70;this.Xb=this.Kb=this.Jb=this.u=this.Ra=this.Ab=this.Da=this.ba=0;this.ib=[7,7,7,7];this.ka=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, function Yc(a){this.vc=+a.model||1170;this.Ub=a.resetAddr||0;zc.call(this,a,1E6);this.Ia=0;this.decode=Zc.bind(this);this.D=65536;this.B=32768;this.F=65535;this.w=32768;this.f=[0,0,0,0,0,0,0,this.Ub];this.Za=[0,0,0,0,0,0];this.sa=[0,0,0,0];this.memory=[];this.j=[];this.ga=this.Xb=0;this.Oa=2;this.Qa=255;this.W=0;this.aa=-1;this.L=0;this.gb=70;this.Wb=this.Jb=this.Ib=this.C=this.Ra=this.Ab=this.Da=this.ba=0;this.ib=[7,7,7,7];this.ka=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Sb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.fc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.j.complete=this.j.Ic=!1}w(Xc,yc);m=Xc.prototype; [0,0,0,0,0,0,0,0,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.Rb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.ec=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.u.complete=this.u.Ic=!1}$a(Yc,zc);m=Yc.prototype;
m.reset=function(){this.j.ia&&this.ma();Zc(this);Bc(this);this.j.error=!1;this.parent.reset.call(this)};function Zc(a){a.Qa=255;a.L=0;a.f=[];a.Yb=0;a.ba=a.Da=a.Ab=a.Ra=a.Jb=0;a.ib[0]=a.ib[1]=a.ib[3]=7;a.Kb=0}m.uc=function(){return 0}; m.reset=function(){this.u.ia&&this.ma();$c(this);Cc(this);this.u.error=!1;this.parent.reset.call(this)};function $c(a){a.Qa=255;a.L=0;a.j=[];a.Xb=0;a.ba=a.Da=a.Ab=a.Ra=a.Ib=0;a.ib[0]=a.ib[1]=a.ib[3]=7;a.Jb=0}m.uc=function(){return 0};
m.save=function(){var a=new $c(this);N(a,0,[]);N(a,1,[this.Sa,this.V,this.jb]);for(var b=this.G,d=0,c=[],f=0;f<b.C;f++){var e=b.R[f];if(e.Wa||e.Lc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}N(a,2,c);return a.data()}; m.save=function(){var a=new ad(this);M(a,0,[]);M(a,1,[this.Ja,this.V,this.jb]);for(var b=this.G,d=0,c=[],f=0;f<b.C;f++){var e=b.R[f];if(e.Wa||e.Lc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}M(a,2,c);return a.data()};
m.restore=function(a){var b=a[1];this.Sa=b[0];this.V=b[1];Tc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b}; m.restore=function(a){var b=a[1];this.Ja=b[0];this.V=b[1];Uc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
m.ua=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ua.call(this,a,b,d)}return c}; m.ua=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.O[b]=d;this.Ia++;c=!0;break;default:c=this.parent.ua.call(this,a,b,d)}return c};
m.xa=function(a){if(this.Ja&&(a||!this.j.ia||this.j.sc)){for(a=0;a<this.b.length;a++)Sc(this,"R"+a,this.b[a]);a=$b(this);Sc(this,"PS",a);Sc(this,"NF",a&8?1:0,1);Sc(this,"ZF",a&4?1:0,1);Sc(this,"VF",a&2?1:0,1);Sc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.j.ia&&this.N?this.N.toFixed(2)+"Mhz":"Stopped"}; m.wa=function(a){if(this.Ia&&(a||!this.u.ia||this.u.sc)){for(a=0;a<this.f.length;a++)Tc(this,"R"+a,this.f[a]);a=ac(this);Tc(this,"PS",a);Tc(this,"NF",a&8?1:0,1);Tc(this,"ZF",a&4?1:0,1);Tc(this,"VF",a&2?1:0,1);Tc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.u.ia&&this.N?this.N.toFixed(2)+"Mhz":"Stopped"};
function I(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].ed===c){0<e&&(a.f[e-1].Fa+=a.f[e].Fa);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Fa>b){a.f[e].Fa-=b;break}b-=a.f[e].Fa}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function $b(a){return a.M=a.M&63728|(a.w&32768?8:0)|(a.F&65535?0:4)|(a.B&32768?2:0)|(a.D&65536?1:0)} function H(a,b,d,c,f){for(var e=a.j.length;0<e--;)if(a.j[e].ed===c){0<e&&(a.j[e-1].Ea+=a.j[e].Ea);a.j.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.zb,0));for(e=a.j.length;0<e--;){if(a.j[e].Ea>b){a.j[e].Ea-=b;break}b-=a.j[e].Ea}a.j.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function ac(a){return a.M=a.M&63728|(a.w&32768?8:0)|(a.F&65535?0:4)|(a.B&32768?2:0)|(a.D&65536?1:0)}
function ac(a,b){a.w=b<<12;a.F=~b&4;a.B=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Za.length;0<=--d;){var c=a.b[d];a.b[d]=a.Za[d];a.Za[d]=c}a.u=b>>14&3;d=a.M>>14&3;a.u!=d&&(a.sa[d]=a.b[6],a.b[6]=a.sa[a.u]);a.Oa=2;a.M=b}function ad(a,b){!a.W&128&&(a.w=a.F=b,a.B=0)}function bd(a,b,d,c){!a.W&128&&(a.w=a.F=a.D=b,a.B=(d^c)&(c^b))} function bc(a,b){a.w=b<<12;a.F=~b&4;a.B=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Za.length;0<=--d;){var c=a.f[d];a.f[d]=a.Za[d];a.Za[d]=c}a.C=b>>14&3;d=a.M>>14&3;a.C!=d&&(a.sa[d]=a.f[6],a.f[6]=a.sa[a.C]);a.Oa=2;a.M=b}function bd(a,b){a.W&128||(a.w=a.F=b,a.B=0)}function cd(a,b,d,c){a.W&128||(a.w=a.F=a.D=b,a.B=(d^c)&(c^b))}
function K(a,b,d){var c,f,e=0;0>a.aa?a.aa=$b(a):a.u||(b=4,e=1);a.ba&57344||(a.Da=63222,a.Ab=b);a.u=0;0<=(c=O(a,b|65536))&&0<=(f=O(a,b+2&65535|65536))&&(ac(a,f&53247|a.aa>>2&12288),e&&(a.L|=4,a.b[6]=4),0<=cd(a,a.aa)&&0<=cd(a,a.b[7])&&(a.b[7]=c));a.W&=-113;a.aa=-1;throw b|d<<8;}function hc(a,b){var d=b>>13&31;31>d?a.Ra&32&&(b=a.Sb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b} function J(a,b,d){var c,f,e=0;0>a.aa?a.aa=ac(a):a.C||(b=4,e=1);a.ba&57344||(a.Da=63222,a.Ab=b);a.C=0;0<=(c=N(a,b|65536))&&0<=(f=N(a,b+2&65535|65536))&&(bc(a,f&53247|a.aa>>2&12288),e&&(a.L|=4,a.f[6]=4),0<=dd(a,a.aa)&&0<=dd(a,a.f[7])&&(a.f[7]=c));a.W&=-113;a.aa=-1;throw b|d<<8;}function ic(a,b){var d=b>>13&31;31>d?a.Ra&32&&(b=a.Rb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function dd(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.ib[a.u];f=a.ka[a.u][c];e=(a.ka[a.u][c+16]<<6)+(b&8191)&4194303;a.Ra&16?3932160<=e&&4186112>e&&(e=hc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.L|=32,K(a,4,24)),e&1&&!(d&1)&&(a.L|=64,K(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;d&F&&(h=8192);break;case 4:h=4096;case 5:d&F&&(h=4096);case 6:f|=d&F?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2& function ed(a,b,d){var c,f,e,h=0;if(d&a.Ib){c=b>>13&a.ib[a.C];f=a.ka[a.C][c];e=(a.ka[a.C][c+16]<<6)+(b&8191)&4194303;a.Ra&16?3932160<=e&&4186112>e&&(e=ic(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.L|=32,J(a,4,24)),e&1&&!(d&1)&&(a.L|=64,J(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;d&B&&(h=8192);break;case 4:h=4096;case 5:d&B&&(h=4096);case 6:f|=d&B?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&
8128)&&(h|=16384));a.ka[a.u][c]=f;if(4194170!==e||a.u)a.Kb=a.u,a.Xb=c;h&&(h&57344&&(0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Xb<<1),K(a,168,28)),a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.W|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(d&1)&&(a.L|=64,K(a,4,22));return e}function M(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ha(b):b}function L(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.jc(b,d),d):b} 8128)&&(h|=16384));a.ka[a.C][c]=f;if(4194170!==e||a.C)a.Jb=a.C,a.Wb=c;h&&(h&57344&&(0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Jb<<5|a.Wb<<1),J(a,168,28)),a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.W|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(d&1)&&(a.L|=64,J(a,4,22));return e}function L(a,b){return 4194304<=b?a.f[b-4194304]:0<=b?a.G.Ga(b):b}function K(a,b,d){d&=65535;return 4194304<=b?a.f[b-4194304]=d:0<=b?(a.G.ic(b,d),d):b}
function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Hb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.bc(b,d),d):b}function O(a,b){return M(a,dd(a,b,kb))}function ed(a){var b=O(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function cd(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Da=a.Da<<8|246);!a.u&&c<=a.Qa&&4<c&&(c<=a.Qa-32?(a.L|=4,a.b[6]=4,K(a,4,32)):(a.L|=8,a.W|=4));return 0<=(d=dd(a,c|65536,F))?L(a,d,b):d} function O(a,b){return 4194304<=b?a.f[b-4194304]&255:0<=b?a.G.Gb(b):b}function P(a,b,d){d&=255;return 4194304<=b?a.f[b-4194304]=a.f[b-4194304]&65280|d:0<=b?(a.G.ac(b,d),d):b}function N(a,b){return L(a,ed(a,b,lb))}function fd(a){var b=N(a,a.f[6]|65536);0<=b&&(a.f[6]=a.f[6]+2&65535);return b}function dd(a,b){var d,c;a.f[6]=c=a.f[6]-2&65535;a.ba&57344||(a.Da=a.Da<<8|246);!a.C&&c<=a.Qa&&4<c&&(c<=a.Qa-32?(a.L|=4,a.f[6]=4,J(a,4,32)):(a.L|=8,a.W|=4));return 0<=(d=ed(a,c|65536,B))?K(a,d,b):d}
function fd(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:K(a,4,34);break;case 1:return 6===e&&!a.u&&d&F&&(a.b[6]<=a.Qa||65534<=a.b[6])&&(a.b[6]<=a.Qa-32||65534<=a.b[6]?(a.L|=4,a.b[6]=4,K(a,4,36)):(a.L|=8,a.W|=64)),7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=O(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c= function gd(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.C&&d&B&&(a.f[6]<=a.Qa||65534<=a.f[6])&&(a.f[6]<=a.Qa-32||65534<=a.f[6]?(a.L|=4,a.f[6]=4,J(a,4,36)):(a.L|=8,a.W|=64)),7===e?a.f[e]:a.f[e]|65536;case 2:f=2;c=a.f[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.f[e];7!==e&&(c|=65536);if(0>(c=N(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.f[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.f[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
O(a,c)))return c;c|=65536;break;case 6:if(0>(c=O(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=O(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=O(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Da=a.Da<<8|f<<3&248|e);6===e&&!a.u&&d&F&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])&&(a.b[6]<=a.Qa-32?(a.L|=4,a.b[6]=4,K(a,4,38)):(a.L|=8,a.W|=64));return c} N(a,c)))return c;c|=65536;break;case 6:if(0>(c=N(a,a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[e]&65535;return c|65536;case 7:if(0>(c=N(a,a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[e]&65535;return 0>(c=N(a,c|65536))?c:c|65536}a.f[e]=a.f[e]+f&65535;a.ba&57344||(a.Da=a.Da<<8|f<<3&248|e);6===e&&!a.C&&d&B&&0>=f&&(a.f[6]<=a.Qa||65534<=a.f[6])&&(a.f[6]<=a.Qa-32?(a.L|=4,a.f[6]=4,J(a,4,38)):(a.L|=8,a.W|=64));return c}
function S(a,b,d){var c;return b&56?(0<=(c=fd(a,b,d))&&(c=dd(a,c,d)),c):4194304+(b&7)}function T(a,b){var d;b&56?(d=S(a,b,kb),d=M(a,d)):d=a.b[b&7];return d}function gd(a,b){var d;b&56?(d=S(a,b,vb),d=Q(a,d)):d=a.b[b&7]&255;return d}function hd(a,b,d,c){b&56?(b=S(a,b,G),L(a,b,c.call(a,d,M(a,b)))):(b&=7,a.b[b]=c.call(a,d,a.b[b]))}function id(a,b,d,c){b&56?(b=S(a,b,xb),R(a,b,c.call(a,d,Q(a,b)))):(b&=7,a.b[b]=c.call(a,d,a.b[b]))}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535} function R(a,b,d){var c;return b&56?(0<=(c=gd(a,b,d))&&(c=ed(a,c,d)),c):4194304+(b&7)}function S(a,b){var d;b&56?(d=R(a,b,lb),d=L(a,d)):d=a.f[b&7];return d}function hd(a,b){var d;b&56?(d=R(a,b,wb),d=O(a,d)):d=a.f[b&7]&255;return d}function id(a,b,d,c){b&56?(b=R(a,b,F),K(a,b,c.call(a,d,L(a,b)))):(b&=7,a.f[b]=c.call(a,d,a.f[b]))}function jd(a,b,d,c){b&56?(b=R(a,b,yb),P(a,b,c.call(a,d,O(a,b)))):(b&=7,a.f[b]=c.call(a,d,a.f[b]))}function T(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.wb=function(a){this.j.complete=!0;var b=this.j.Ic=this.H&&jd(this.H),d=a?this.j.kc?0:1:-1;this.j.kc=!1;this.T=this.C=a;this.Sa&256?(Wc(this),a=!1):a=!0;if(a){do{if(b){if(kd(this.H,this.b[7],d)){this.ma();break}d=1}var c,f,e,h,g;this.W&112&&(this.W&32?K(this,168,52):this.W&64?K(this,4,54):this.W&16&&K(this,12,56),this.W&=-113);if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;f=-1;c=this.Yb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Fa){this.f[a].Fa--;this.Oa=2;break}if(this.f[a].pc){if(!this.f[a].pc()){this.f.splice(a, m.wb=function(a){this.u.complete=!0;var b=this.u.Ic=this.H&&kd(this.H),d=a?this.u.jc?0:1:-1;this.u.jc=!1;this.T=this.b=a;this.Ja&256?(Xc(this),a=!1):a=!0;if(a){do{if(b){if(ld(this.H,this.f[7],d)){this.ma();break}d=1}var c,f,e,h,g;this.W&112&&(this.W&32?J(this,168,52):this.W&64?J(this,4,54):this.W&16&&J(this,12,56),this.W&=-113);if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;f=-1;c=this.Xb&224;if(0<(a=this.j.length))for(;0<a--;){if(0<this.j[a].Ea){this.j[a].Ea--;this.Oa=2;break}if(this.j[a].pc){if(!this.j[a].pc()){this.j.splice(a,
1);f--;continue}this.f[a].pc=null}this.f[a].Tc>c&&(c=this.f[a].Tc,f=a)}c>(this.M&224)&&(0>f?K(this,160,42):(K(this,this.f[f].ed,44),this.f.splice(f,1)))}this.ba&57344||(this.Da=0,this.Ab=this.b[7]);this.W=this.M&16;this.wa=O(this,this.b[7]);this.b[7]=this.b[7]+2&65535;this.decode(this.wa);if(0<=this.wa)switch(a=this.wa,this.b[7]=this.b[7]+2&65535,a&61440){default:switch(a&65024){case 2048:0<=(h=fd(this,a,0))&&(g=a>>6&7,0<=cd(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<= 1);f--;continue}this.j[a].pc=null}this.j[a].Tc>c&&(c=this.j[a].Tc,f=a)}c>(this.M&224)&&(0>f?J(this,160,42):(J(this,this.j[f].ed,44),this.j.splice(f,1)))}this.ba&57344||(this.Da=0,this.Ab=this.f[7]);this.W=this.M&16;a=N(this,this.f[7]);this.f[7]=this.f[7]+2&65535;this.decode(a);if(0<=a)switch(a&61440){default:switch(a&65024){case 2048:0<=(h=gd(this,a,0))&&(g=a>>6&7,0<=dd(this,this.f[g])&&(this.f[g]=this.f[7],this.f[7]=h&65535));break;case 28672:0<=(c=S(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.f[g],
(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.w=a>>16,this.F=this.w|a,this.D=this.B=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.D=this.B=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.F=a>>16|a,this.w=a>>16):(this.B=32768,this.F=a>>15|a,this.w=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]= f&32768&&(f|=-65536),a=~~(c*f),this.f[g]=a>>16&65535,this.f[g|1]=a&65535,this.w=a>>16,this.F=this.w|a,this.D=this.B=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=S(this,a))&&(c?(g=a>>6&7,f=this.f[g]<<16|this.f[g|1],this.D=this.B=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.f[g]=a&65535,this.f[g|1]=f-a*c&65535,this.F=a>>16|a,this.w=a>>16):(this.B=32768,this.F=a>>15|a,this.w=f>>16,-1===c&&65534===this.f[g]&&(this.f[g]=this.f[g|1]=1))):(this.F=this.w=0,this.B=32768,this.D=
this.b[g|1]=1))):(this.F=this.w=0,this.B=32768,this.D=65536));break;case 29696:0<=(c=T(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.D=this.B=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.B=a,a=0):(this.D=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.B=32768))),this.b[g]=a&65535,this.w=this.F=a);break;case 30208:if(0<=(c=T(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|1];this.D=this.B=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&& 65536));break;case 29696:0<=(c=S(this,a))&&(g=a>>6&7,a=this.f[g],a&32768&&(a|=4294901760),this.D=this.B=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.B=a,a=0):(this.D=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.B=32768))),this.f[g]=a&65535,this.w=this.F=a);break;case 30208:if(0<=(c=S(this,a))){g=a>>6&7;f=this.f[g]<<16|this.f[g|1];this.D=this.B=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>
(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.B=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.w=a>>16;this.F=a>>16|a}break;case 30720:a&56?0<=(f=M(this,e=S(this,a,G)))&&(f^=this.b[a>>6&7],0<=L(this,e,f)&&(this.w=this.F=f,this.B=0)):(this.w=this.F=f=this.b[a&7]^=this.b[a>>6&7],this.B=0);break;case 32256:g=a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a& 15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.B=32768)}else a=f;this.f[g]=a>>16&65535;this.f[g|1]=a&65535;this.w=a>>16;this.F=a>>16|a}break;case 30720:a&56?0<=(f=L(this,e=R(this,a,F)))&&(f^=this.f[a>>6&7],0<=K(this,e,f)&&(this.w=this.F=f,this.B=0)):(this.w=this.F=f=this.f[a&7]^=this.f[a>>6&7],this.B=0);break;case 32256:g=a>>6&7;if(this.f[g]=this.f[g]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.f[7]=T(this.f[7],a);break;
65280){case 256:this.b[7]=U(this.b[7],a);break;case 512:this.F&65535&&(this.b[7]=U(this.b[7],a));break;case 768:this.F&65535||(this.b[7]=U(this.b[7],a));break;case 1024:(this.w&32768)===(this.B&32768)&&(this.b[7]=U(this.b[7],a));break;case 1280:(this.w&32768)!==(this.B&32768)&&(this.b[7]=U(this.b[7],a));break;case 1536:this.F&65535&&(this.w&32768)===(this.B&32768)&&(this.b[7]=U(this.b[7],a));break;case 1792:this.F&65535&&(this.w&32768)===(this.B&32768)||(this.b[7]=U(this.b[7],a));break;case 32768:this.w& case 512:this.F&65535&&(this.f[7]=T(this.f[7],a));break;case 768:this.F&65535||(this.f[7]=T(this.f[7],a));break;case 1024:(this.w&32768)===(this.B&32768)&&(this.f[7]=T(this.f[7],a));break;case 1280:(this.w&32768)!==(this.B&32768)&&(this.f[7]=T(this.f[7],a));break;case 1536:this.F&65535&&(this.w&32768)===(this.B&32768)&&(this.f[7]=T(this.f[7],a));break;case 1792:this.F&65535&&(this.w&32768)===(this.B&32768)||(this.f[7]=T(this.f[7],a));break;case 32768:this.w&32768||(this.f[7]=T(this.f[7],a));break;
32768||(this.b[7]=U(this.b[7],a));break;case 33280:!(this.D&65536)&&this.F&65535&&(this.b[7]=U(this.b[7],a));break;case 33024:this.w&32768&&(this.b[7]=U(this.b[7],a));break;case 33536:if(this.D&65536||!(this.F&65535))this.b[7]=U(this.b[7],a);break;case 33792:this.B&32768||(this.b[7]=U(this.b[7],a));break;case 34048:this.B&32768&&(this.b[7]=U(this.b[7],a));break;case 34304:this.D&65536||(this.b[7]=U(this.b[7],a));break;case 34560:this.D&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:K(this,24, case 33280:!(this.D&65536)&&this.F&65535&&(this.f[7]=T(this.f[7],a));break;case 33024:this.w&32768&&(this.f[7]=T(this.f[7],a));break;case 33536:if(this.D&65536||!(this.F&65535))this.f[7]=T(this.f[7],a);break;case 33792:this.B&32768||(this.f[7]=T(this.f[7],a));break;case 34048:this.B&32768&&(this.f[7]=T(this.f[7],a));break;case 34304:this.D&65536||(this.f[7]=T(this.f[7],a));break;case 34560:this.D&65536&&(this.f[7]=T(this.f[7],a));break;case 34816:J(this,24,2);break;case 35072:J(this,28,4);break;default:switch(a&
2);break;case 35072:K(this,28,4);break;default:switch(a&65472){case 64:0<=(h=fd(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=f<<8|f>>8,0<=L(this,e,a)&&(this.w=this.F=f&65280,this.B=this.D=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.w=this.F=f&65280,this.B=this.D=0);break;case 2560:a&56?0<=(e=S(this,a,F))&&0<=L(this,e,0)&&(this.w=this.D=this.B=this.F=0):this.w=this.D=this.B=this.F=this.b[a&7]=0;break;case 2624:0<=(f=M(this,e=S(this,a,G)))&&(a=~f, 65472){case 64:0<=(h=gd(this,a,0))&&(this.f[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=R(this,a,F)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.w=this.F=f&65280,this.B=this.D=0)):(g=a&7,f=this.f[g],this.f[g]=(f<<8|f>>8)&65535,this.w=this.F=f&65280,this.B=this.D=0);break;case 2560:a&56?0<=(e=R(this,a,B))&&0<=K(this,e,0)&&(this.w=this.D=this.B=this.F=0):this.w=this.D=this.B=this.F=this.f[a&7]=0;break;case 2624:0<=(f=L(this,e=R(this,a,F)))&&(a=~f,0<=K(this,e,a)&&(this.w=this.F=a,this.D=65536,this.B=0));
0<=L(this,e,a)&&(this.w=this.F=a,this.D=65536,this.B=0));break;case 2688:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=f+1,0<=L(this,e,a)&&(this.w=this.F=a,this.B=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.w=this.F=a,this.B=a&(a^f));break;case 2752:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=f-1,0<=L(this,e,a)&&(this.w=this.F=a,this.B=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.w=this.F=a,this.B=(a^f)&f);break;case 2816:0<=(f=M(this,e=S(this,a,G)))&&(a=-f,0<=L(this,e,a)&&(this.D=this.w= break;case 2688:a&56?0<=(f=L(this,e=R(this,a,F)))&&(a=f+1,0<=K(this,e,a)&&(this.w=this.F=a,this.B=a&(a^f))):(g=a&7,f=this.f[g],a=f+1,this.f[g]=a&65535,this.w=this.F=a,this.B=a&(a^f));break;case 2752:a&56?0<=(f=L(this,e=R(this,a,F)))&&(a=f-1,0<=K(this,e,a)&&(this.w=this.F=a,this.B=(a^f)&f)):(g=a&7,f=this.f[g],a=f-1,this.f[g]=a&65535,this.w=this.F=a,this.B=(a^f)&f);break;case 2816:0<=(f=L(this,e=R(this,a,F)))&&(a=-f,0<=K(this,e,a)&&(this.D=this.w=this.F=a,this.B=a&f));break;case 2880:0<=(f=L(this,e=
this.F=a,this.B=a&f));break;case 2880:0<=(f=M(this,e=S(this,a,G)))&&(a=f+(this.D>>16&1),0<=L(this,e,a)&&(this.D=this.w=this.F=a,this.B=a&(a^f)));break;case 2944:0<=(f=M(this,e=S(this,a,G)))&&(a=f-(this.D>>16&1),0<=L(this,e,a)&&(this.D=this.w=this.F=a,this.B=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.w=this.F=f,this.D=this.B=0);break;case 3072:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=(this.D&65536|f)>>1,0<=L(this,e,a)&&(this.D=f<<16,this.w=this.F=a,this.B=a^this.D>>1)):(g=a&7,f=this.b[g],a=(this.D& R(this,a,F)))&&(a=f+(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.w=this.F=a,this.B=a&(a^f)));break;case 2944:0<=(f=L(this,e=R(this,a,F)))&&(a=f-(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.w=this.F=a,this.B=(a^f)&f));break;case 3008:0<=(f=S(this,a))&&(this.w=this.F=f,this.D=this.B=0);break;case 3072:a&56?0<=(f=L(this,e=R(this,a,F)))&&(a=(this.D&65536|f)>>1,0<=K(this,e,a)&&(this.D=f<<16,this.w=this.F=a,this.B=a^this.D>>1)):(g=a&7,f=this.f[g],a=(this.D&65536|f)>>1,this.f[g]=a&65535,this.D=f<<16,this.w=
65536|f)>>1,this.b[g]=a&65535,this.D=f<<16,this.w=this.F=a,this.B=a^this.D>>1);break;case 3136:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=f<<1|this.D>>16&1,0<=L(this,e,a)&&(this.D=this.w=this.F=a,this.B=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.D>>16&1,this.b[g]=a&65535,this.D=this.w=this.F=a,this.B=a^f);break;case 3200:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=f&32768|f>>1,0<=L(this,e,a)&&(this.D=f<<16,this.w=this.F=a,this.B=this.w^this.D>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.D=f<<16,this.w= this.F=a,this.B=a^this.D>>1);break;case 3136:a&56?0<=(f=L(this,e=R(this,a,F)))&&(a=f<<1|this.D>>16&1,0<=K(this,e,a)&&(this.D=this.w=this.F=a,this.B=a^f)):(g=a&7,f=this.f[g],a=f<<1|this.D>>16&1,this.f[g]=a&65535,this.D=this.w=this.F=a,this.B=a^f);break;case 3200:a&56?0<=(f=L(this,e=R(this,a,F)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.D=f<<16,this.w=this.F=a,this.B=this.w^this.D>>1)):(g=a&7,f=this.f[g],a=f&32768|f>>1,this.f[g]=a&65535,this.D=f<<16,this.w=this.F=a,this.B=this.w^this.D>>1);break;case 3264:a&
this.F=a,this.B=this.w^this.D>>1);break;case 3264:a&56?0<=(f=M(this,e=S(this,a,G)))&&(a=f<<1,0<=L(this,e,a)&&(this.D=this.w=this.F=a,this.B=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.D=this.w=this.F=a,this.B=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=O(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=fd(this,a,0))&&(61440!==(this.M&61440)&&(h&=65535),this.u=this.M>>12&3,0<=(c=O(this,h))&&(this.u=this.M>>14&3,0<=cd(this,c)&& 56?0<=(f=L(this,e=R(this,a,F)))&&(a=f<<1,0<=K(this,e,a)&&(this.D=this.w=this.F=a,this.B=a^f)):(g=a&7,f=this.f[g],a=f<<1,this.f[g]=a&65535,this.D=this.w=this.F=a,this.B=a^f);break;case 3328:h=this.f[7]+((a&63)<<1)&65535;0<=(c=N(this,h|65536))&&(this.f[7]=this.f[5],this.f[5]=c,this.f[6]=h+2&65535);break;case 3392:a&56?0<=(h=gd(this,a,0))&&(61440!==(this.M&61440)&&(h&=65535),this.C=this.M>>12&3,0<=(c=N(this,h))&&(this.C=this.M>>14&3,0<=dd(this,c)&&(this.w=this.F=c,this.B=0))):(g=a&7,c=6!==g||(this.M>>
(this.w=this.F=c,this.B=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.sa[this.M>>12&3],0<=cd(this,c)&&(this.w=this.F=c,this.B=0));break;case 3456:0<=(f=ed(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=fd(this,a,0))&&(h&=65535,this.u=this.M>>12&3,0<=(e=dd(this,h,F))&&(this.u=this.M>>14&3,0<=L(this,e,f)&&(this.w=this.F=f,this.B=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.sa[this.M>>12&3]=f,this.w=this.F=f,this.B=0));break;case 3520:0<=(e=S(this, 2&12288)===(this.M&12288)?this.f[g]:this.sa[this.M>>12&3],0<=dd(this,c)&&(this.w=this.F=c,this.B=0));break;case 3456:0<=(f=fd(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=gd(this,a,0))&&(h&=65535,this.C=this.M>>12&3,0<=(e=ed(this,h,B))&&(this.C=this.M>>14&3,0<=K(this,e,f)&&(this.w=this.F=f,this.B=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.f[g]=f:this.sa[this.M>>12&3]=f,this.w=this.F=f,this.B=0));break;case 3520:0<=(e=R(this,a,B))&&(a=-(this.w>>15&1),0<=K(this,e,a)&&(this.F=a,
a,F))&&(a=-(this.w>>15&1),0<=L(this,e,a)&&(this.F=a,this.B=0));break;case 35328:a&56?0<=(e=S(this,a,wb))&&0<=R(this,e,0)&&(this.w=this.D=this.B=this.F=0):(this.b[a&7]&=65280,this.w=this.D=this.B=this.F=0);break;case 35392:0<=(f=Q(this,e=S(this,a,xb)))&&(a=~f,0<=R(this,e,a)&&(this.w=this.F=a<<8,this.D=65536,this.B=0));break;case 35456:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f+1,0<=R(this,e,a)&&(this.w=this.F=a<<8,this.B=(a&(a^f))<<8));break;case 35520:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f-1,0<=R(this,e,a)&& this.B=0));break;case 35328:a&56?0<=(e=R(this,a,xb))&&0<=P(this,e,0)&&(this.w=this.D=this.B=this.F=0):(this.f[a&7]&=65280,this.w=this.D=this.B=this.F=0);break;case 35392:0<=(f=O(this,e=R(this,a,yb)))&&(a=~f,0<=P(this,e,a)&&(this.w=this.F=a<<8,this.D=65536,this.B=0));break;case 35456:0<=(f=O(this,e=R(this,a,yb)))&&(a=f+1,0<=P(this,e,a)&&(this.w=this.F=a<<8,this.B=(a&(a^f))<<8));break;case 35520:0<=(f=O(this,e=R(this,a,yb)))&&(a=f-1,0<=P(this,e,a)&&(this.w=this.F=a<<8,this.B=((a^f)&f)<<8));break;case 35584:0<=
(this.w=this.F=a<<8,this.B=((a^f)&f)<<8));break;case 35584:0<=(f=Q(this,e=S(this,a,xb)))&&(a=-f,0<=R(this,e,a)&&(this.D=this.w=this.F=a<<8,this.B=(a&f)<<8));break;case 35648:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f+(this.D>>16&1),0<=R(this,e,a)&&(this.w=this.F=this.D=a<<8,this.B=(a&(a^f))<<8));break;case 35712:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f-(this.D>>16&1),0<=R(this,e,a)&&(this.w=this.F=this.D=a<<8,this.B=((a^f)&f)<<8));break;case 35776:0<=(f=gd(this,a))&&(this.w=this.F=f<<8,this.D=this.B=0);break; (f=O(this,e=R(this,a,yb)))&&(a=-f,0<=P(this,e,a)&&(this.D=this.w=this.F=a<<8,this.B=(a&f)<<8));break;case 35648:0<=(f=O(this,e=R(this,a,yb)))&&(a=f+(this.D>>16&1),0<=P(this,e,a)&&(this.w=this.F=this.D=a<<8,this.B=(a&(a^f))<<8));break;case 35712:0<=(f=O(this,e=R(this,a,yb)))&&(a=f-(this.D>>16&1),0<=P(this,e,a)&&(this.w=this.F=this.D=a<<8,this.B=((a^f)&f)<<8));break;case 35776:0<=(f=hd(this,a))&&(this.w=this.F=f<<8,this.D=this.B=0);break;case 35840:0<=(f=O(this,e=R(this,a,yb)))&&(a=((this.D&65536)>>
case 35840:0<=(f=Q(this,e=S(this,a,xb)))&&(a=((this.D&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.D=f<<16,this.w=this.F=a<<8,this.B=this.w^this.D>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f<<1|this.D>>16&1,0<=R(this,e,a)&&(this.D=this.w=this.F=a<<8,this.B=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.D=f<<16,this.w=this.F=a<<8,this.B=this.w^this.D>>1));break;case 36032:0<=(f=Q(this,e=S(this,a,xb)))&&(a=f<<1,0<=R(this,e,a)&&(this.D=this.w=this.F= 8|f)>>1,0<=P(this,e,a)&&(this.D=f<<16,this.w=this.F=a<<8,this.B=this.w^this.D>>1));break;case 35904:0<=(f=O(this,e=R(this,a,yb)))&&(a=f<<1|this.D>>16&1,0<=P(this,e,a)&&(this.D=this.w=this.F=a<<8,this.B=(a^f)<<8));break;case 35968:0<=(f=O(this,e=R(this,a,yb)))&&(a=f&128|f>>1,0<=P(this,e,a)&&(this.D=f<<16,this.w=this.F=a<<8,this.B=this.w^this.D>>1));break;case 36032:0<=(f=O(this,e=R(this,a,yb)))&&(a=f<<1,0<=P(this,e,a)&&(this.D=this.w=this.F=a<<8,this.B=(a^f)<<8));break;case 36160:a&56?0<=(h=gd(this,
a<<8,this.B=(a^f)<<8));break;case 36160:a&56?0<=(h=fd(this,a,0))&&(this.u=this.M>>12&3,0<=(c=O(this,h|65536))&&(this.u=this.M>>14&3,0<=cd(this,c)&&(this.w=this.F=c,this.B=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.sa[this.M>>12&3],0<=cd(this,c)&&(this.w=this.F=c,this.B=0));break;case 36224:0<=(f=ed(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=fd(this,a,0))&&(this.u=this.M>>12&3,0<=(e=dd(this,h|65536,F))&&(this.u=this.M>>14&3,0<=L(this,e,f)&&(this.w=this.F=f,this.B= a,0))&&(this.C=this.M>>12&3,0<=(c=N(this,h|65536))&&(this.C=this.M>>14&3,0<=dd(this,c)&&(this.w=this.F=c,this.B=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.f[g]:this.sa[this.M>>12&3],0<=dd(this,c)&&(this.w=this.F=c,this.B=0));break;case 36224:0<=(f=fd(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=gd(this,a,0))&&(this.C=this.M>>12&3,0<=(e=ed(this,h|65536,B))&&(this.C=this.M>>14&3,0<=K(this,e,f)&&(this.w=this.F=f,this.B=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.f[g]=
0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.sa[this.M>>12&3]=f,this.w=this.F=f,this.B=0));break;default:switch(a&65528){case 128:0<=(c=ed(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.B=0);a&4&&(this.F=1);a&8&&(this.w=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.B=32768);a&4&&(this.F=0);a&8&&(this.w=32768);break;default:switch(a){case 0:49152& f:this.sa[this.M>>12&3]=f,this.w=this.F=f,this.B=0));break;default:switch(a&65528){case 128:0<=(c=fd(this))&&(g=a&7,this.f[7]=this.f[g],this.f[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.B=0);a&4&&(this.F=1);a&8&&(this.w=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.B=32768);a&4&&(this.F=0);a&8&&(this.w=32768);break;default:switch(a){case 0:49152&this.M?(this.L|=128,J(this,4,46)):(this.ga=3,Xc(this),console.log("HALT at "+
this.M?(this.L|=128,K(this,4,46)):(this.ga=3,Wc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:f=0;if(0<(a=this.f.length))for(;0<a--;)f+=this.f[a].Fa,this.f[a].Fa=0;0===f&&0===this.ga&&(this.ga=2,Wc(this));break;case 3:K(this,12,6);break;case 4:K(this,16,8);break;case 5:this.M&49152||(Zc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=O(this,e|65536))&&(e=e+2&65535,0<=(c=O(this,e|65536))&&(this.b[6]=e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.b[7]= this.f[7].toString(8)));break;case 1:f=0;if(0<(a=this.j.length))for(;0<a--;)f+=this.j[a].Ea,this.j[a].Ea=0;0===f&&0===this.ga&&(this.ga=2,Xc(this));break;case 3:J(this,12,6);break;case 4:J(this,16,8);break;case 5:this.M&49152||($c(this),this.G.reset());break;case 2:case 6:e=this.f[6];0<=(h=N(this,e|65536))&&(e=e+2&65535,0<=(c=N(this,e|65536))&&(this.f[6]=e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.f[7]=h,bc(this,c),this.W&=-17,2===a&&(this.W|=this.M&16)));break;default:J(this,8,
h,ac(this,c),this.W&=-17,2===a&&(this.W|=this.M&16)));break;default:K(this,8,48)}}}}}}}while(0<this.C)}return this.j.complete?this.T-this.C:void 0===this.j.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Xc(c);db(c,d)}});function ld(a,b){var d=a+b;!this.W&128&&(this.w=this.F=this.D=d,this.B=(a^d)&(b^d));return d&65535}function md(a,b){var d=~a&b;ad(this,d);return d}function nd(a,b){var d=~a&b;ad(this,d<<8);return d} 48)}}}}}}}while(0<this.b)}return this.u.complete?this.T-this.b:void 0===this.u.complete?0:-1};Qa(function(){for(var a=x(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=w(d),c=new Yc(c);eb(c,d)}});function md(a,b){var d=a+b;this.W&128||(this.w=this.F=this.D=d,this.B=(a^d)&(b^d));return d&65535}function nd(a,b){var d=~a&b;bd(this,d);return d}function od(a,b){var d=~a&b;bd(this,d<<8);return d}function pd(a,b){var d=a|b;bd(this,d);return d}function qd(a,b){var d=a|b;bd(this,d<<8);return d}
function od(a,b){var d=a|b;ad(this,d);return d}function pd(a,b){var d=a|b;ad(this,d<<8);return d}function qd(a,b){var d=b-a;bd(this,d,a,b);return d&65535}function Yc(a){rd[a>>12].call(this,a)}function sd(){--this.C} function rd(a,b){var d=b-a;cd(this,d,a,b);return d&65535}function sd(){--this.b}function td(){--this.b}function ud(){--this.b}function vd(){--this.b}function wd(){--this.b}function xd(){--this.b}function yd(){--this.b}function U(){J(this,8,48)}function Zc(a){zd[a>>12].call(this,a)}
var rd=[function(){},function(a){var b=T(this,a>>6);a&56?L(this,S(this,a,F),b):this.b[a&7]=b;ad(this,b);--this.C},function(a){var b=T(this,a>>6);a=T(this,a);bd(this,b-a,a,b);--this.C},function(a){ad(this,T(this,a>>6)&T(this,a));--this.C},function(a){hd(this,a,T(this,a>>6),md);--this.C},function(a){hd(this,a,T(this,a>>6),od);--this.C},function(a){hd(this,a,T(this,a>>6),ld);--this.C},sd,sd,function(a){var b=gd(this,a>>6),b=b&128?b|65280:b;a&56?(b&=255,R(this,S(this,a,wb),b)):this.b[a&7]=b;ad(this,b<< var zd=[function(a){Ad[a>>8&15].call(this,a)},function(a){var b=S(this,a>>6);a&56?K(this,R(this,a,B),b):this.f[a&7]=b;bd(this,b);--this.b},function(a){var b=S(this,a>>6);a=S(this,a);cd(this,b-a,a,b);--this.b},function(a){bd(this,S(this,a>>6)&S(this,a));--this.b},function(a){id(this,a,S(this,a>>6),nd);--this.b},function(a){id(this,a,S(this,a>>6),pd);--this.b},function(a){id(this,a,S(this,a>>6),md);--this.b},function(a){Bd[a>>8&15].call(this,a)},function(a){Cd[a>>8&15].call(this,a)},function(a){var b=
8);--this.C},function(a){var b=gd(this,a>>6)<<8;a=gd(this,a)<<8;bd(this,b-a,a,b);--this.C},function(a){ad(this,(gd(this,a>>6)&gd(this,a))<<8);--this.C},function(a){id(this,a,gd(this,a>>6),nd);--this.C},function(a){id(this,a,gd(this,a>>6),pd);--this.C},function(a){hd(this,a,T(this,a>>6),qd);--this.C},sd]; hd(this,a>>6),b=b&128?b|65280:b;a&56?(b&=255,P(this,R(this,a,xb),b)):this.f[a&7]=b;bd(this,b<<8);--this.b},function(a){var b=hd(this,a>>6)<<8;a=hd(this,a)<<8;cd(this,b-a,a,b);--this.b},function(a){bd(this,(hd(this,a>>6)&hd(this,a))<<8);--this.b},function(a){jd(this,a,hd(this,a>>6),od);--this.b},function(a){jd(this,a,hd(this,a>>6),qd);--this.b},function(a){id(this,a,S(this,a>>6),rd);--this.b},U],Ad=[function(a){Dd[a>>4&15].call(this,a)},function(){--this.b},function(){--this.b},function(){--this.b},
function td(a){u.call(this,"ROM",a,td);this.i=null;this.J=a.addr;this.u=a.size;this.N=a.writable;this.C=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=da(this.P);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;ua(a,null,!0,function(a,b,e){ud(d,a,b,e)})}}w(td);td.prototype.Xa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;vd(this)}; function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},vd,vd,function(a){Ed[a>>6&3].call(this,a)},function(a){Fd[a>>6&3].call(this,a)},function(a){Gd[a>>6&3].call(this,a)},function(a){Hd[a>>6&3].call(this,a)},U,U],Dd=[function(a){Id[a&15].call(this,a)},U,U,U,U,U,U,U,U,U,function(){--this.b},function(){--this.b},U,U,U,U],Id=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},
td.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.u,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=pa(n,k,a.qc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({hd:b,A:d,Qc:c,Ka:f,nc:e})}delete this.Ka}return!0};td.prototype.Ma=function(){return!0}; function(){--this.b},U,U,U,U,U,U,U,U],Bd=[wd,wd,ud,ud,sd,sd,td,td,yd,yd,U,U,U,U,xd,xd],Cd=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b},function(a){Jd[a>>6&3].call(this,a)},function(a){Kd[a>>6&3].call(this,a)},function(a){Ld[a>>6&3].call(this,a)},function(a){Md[a>>6&3].call(this,a)},U,U],Ed=[function(){--this.b},function(){--this.b},function(){--this.b},
function ud(a,b,d,c){if(c)a.oa("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.oc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+ function(){--this.b}],Fd=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b}],Gd=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b}],Hd=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b}],Jd=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b}],Kd=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b}],Ld=[function(){--this.b},function(){--this.b},
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.oa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);vd(a)}} function(){--this.b},function(){--this.b}],Md=[function(){--this.b},function(){--this.b},function(){--this.b},function(){--this.b}];function Nd(a){u.call(this,"ROM",a,Nd);this.i=null;this.J=a.addr;this.j=a.size;this.N=a.writable;this.C=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=da(this.P);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;ua(a,null,!0,function(a,b,e){Od(d,a,b,e)})}}$a(Nd);
function vd(a){if(!hb(a))if(!a.I)E(a);else if(a.i&&a.G){a.u||(a.u=a.i.length);if(a.i.length!=a.u)ib(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.u,8,!0)+")");else{var b;b=a.J;if(Hb(a.G,b,a.u,a.N?1:nc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.u,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]), Nd.prototype.Xa=function(a,b,d,c){this.G=b;this.b=d;this.H=c;Pd(this)};Nd.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.j,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=pa(n,k,a.qc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({hd:b,A:d,Qc:c,Ka:f,mc:e})}delete this.Ka}return!0};Nd.prototype.Ma=function(){return!0};
h-=f.Aa;f=e.G;e=e.u;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.Aa}}delete a.i}}E(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new td(c);db(c,d)}});function wd(a){u.call(this,"RAM",a,wd);this.C=a.addr;this.u=a.size;this.i=!1}w(wd);m=wd.prototype;m.Xa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;E(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0}; function Od(a,b,d,c){if(c)a.oa("Unable to load system ROM (error "+c+": "+b+")");else{bb(a.nc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
m.reset=function(){!this.i&&this.u&&Hb(this.G,this.C,this.u,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new wd(c);db(c,d)}});function xd(a){u.call(this,"Keyboard",a,xd,65536);E(this)}w(xd);xd.prototype.ua=function(){return!1};xd.prototype.Xa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null}; b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.oa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);Pd(a)}}
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new xd(c);db(c,d)}});function yd(a){u.call(this,"Debugger",a,yd);this.wa=a.base||16;this.$=this.Ja=this.P=0;this.da=!1;this.I=-1;this.C=[];this.ga={}}w(yd);var zd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; function Pd(a){if(!ib(a))if(!a.I)A(a);else if(a.i&&a.G){a.j||(a.j=a.i.length);if(a.i.length!=a.j)jb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.j,8,!0)+")");else{var b;b=a.J;if(Ib(a.G,b,a.j,a.N?1:oc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.j,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
function Ad(a,b,d,c){if(d)if(b){0>a.I&&a.C.length&&(a.I=0);if(0>a.I||b!=a.C[a.I])a.C.splice(0,0,b),a.I=0;a.I--}else a.da?b="end":b=a.C[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(oa(b.substring(d,e))),d=e+1}}return a} h-=f.Aa;f=e.G;e=e.j;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.Aa}}delete a.i}}A(a)}}Qa(function(){for(var a=x(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=w(d),c=new Nd(c);eb(c,d)}});function Qd(a){u.call(this,"RAM",a,Qd);this.C=a.addr;this.j=a.size;this.i=!1}$a(Qd);m=Qd.prototype;m.Xa=function(a,b,d,c){this.G=b;this.b=d;this.H=c;A(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
function Bd(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break; m.reset=function(){!this.i&&this.j&&Ib(this.G,this.C,this.j,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=x(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=w(d),c=new Qd(c);eb(c,d)}});function Rd(a){u.call(this,"Keyboard",a,Rd,65536);A(this)}$a(Rd);Rd.prototype.ua=function(){return!1};Rd.prototype.Xa=function(a,b,d,c){this.i=a;this.b=d;this.H=c;this.da=null};
Qa(function(){for(var a=x(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=w(d),c=new Rd(c);eb(c,d)}});function Sd(a){u.call(this,"Debugger",a,Sd);this.xa=a.base||16;this.$=this.Ja=this.P=0;this.da=!1;this.I=-1;this.C=[];this.ga={}}$a(Sd);var Td={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function re(a,b,d,c){if(d)if(b){0>a.I&&a.C.length&&(a.I=0);if(0>a.I||b!=a.C[a.I])a.C.splice(0,0,b),a.I=0;a.I--}else a.da?b="end":b=a.C[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(oa(b.substring(d,e))),d=e+1}}return a}
function se(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0} case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0}
function Cd(a,b,d){var c;if(b){b=Dd(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=oa(n);if(!n){e=!0;break}n=Ed(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&zd[n]<zd[k[k.length-1]]&&Bd(g,k,1);k.push(n);b=b.substr(p+q)}Bd(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&Fd(a,null, function te(a,b,d){var c;if(b){b=ue(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=oa(n);if(!n){e=!0;break}n=ve(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&Td[n]<Td[k[k.length-1]]&&se(g,k,1);k.push(n);b=b.substr(p+q)}se(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&we(a,null,
c))}return c}function Dd(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=Cd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.$-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d} c))}return c}function ue(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=te(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.$-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
function Ed(a,b,d,c){var f;null!=b?(f=a.ga[b],null==f&&(f=aa(b,a.wa)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function Fd(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f} function ve(a,b,d,c){var f;null!=b?(f=a.ga[b],null==f&&(f=aa(b,a.xa)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function we(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
function Gd(a,b){if(b)return Fd(a,b,a.ga[b]);var d=0;for(b in a.ga)Fd(a,b,a.ga[b]),d++;return 0<d}function V(a,b,d){switch(a.wa){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}} function xe(a,b){if(b)return we(a,b,a.ga[b]);var d=0;for(b in a.ga)we(a,b,a.ga[b]),d++;return 0<d}function V(a,b,d){switch(a.xa){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
function Hd(a){yd.call(this,a);this.V=W();this.zb=W();this.aa=W();this.N=[];this.u=this.Y=this.J=[];Id(this);this.ya=0;Jd(this);this.Sa=[];Kd(this,a.messages);this.mb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Ld(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Ld(b,a)})}w(Hd,yd); function ye(a){Sd.call(this,a);this.V=W();this.zb=W();this.aa=W();this.N=[];this.j=this.Y=this.J=[];ze(this);this.ya=0;Ae(this);this.Sa=[];Be(this,a.messages);this.mb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Ce(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Ce(b,a)})}$a(ye,Sd);
var Md={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},ke="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "), var De={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Ee="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
le={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096], Fe={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72, 33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=Hd.prototype; 63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=ye.prototype;
m.Xa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=Ac(a,"messages"))&&Kd(this,a);this.rc=le;me(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(ne(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Kb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.A,8)+" "+r(n.Ub,4, m.Xa=function(a,b,d,c){this.G=b;this.b=d;this.i=a;(a=Bc(a,"messages"))&&Be(this,a);this.rc=Fe;Ge(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=X(He(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Lb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.A,8)+" "+r(n.Tb,4,
!0)+" "+r(n.size,4,!0)+" "+l),d!=mc&&(d=-1),l=0);a+=c.G.Aa;g++}}});E(this)}; !0)+" "+r(n.size,4,!0)+" "+l),d!=nc&&(d=-1),l=0);a+=c.G.Aa;g++}}});A(this)};
m.ua=function(a,b,d){var c=this;switch(b){case "debugInput":return this.va=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",Ld(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.C.length-1&&(b=c.C[++c.I])):40==a.keyCode&&(0<c.I?b=c.C[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Fa(d,function(){if(c.va){var a=c.va.value; m.ua=function(a,b,d){var c=this;switch(b){case "debugInput":return this.va=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",Ce(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.C.length-1&&(b=c.C[++c.I])):40==a.keyCode&&(0<c.I?b=c.C[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Fa(d,function(){if(c.va){var a=c.va.value;
c.va.value="";Ld(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Fa(d,function(a){var b=!1;gb(c,!0)||(fb(c,!0),b=c.wb(a?1:0),fb(c,!1));return b}),!0}return!1};m.Tb=function(){this.va&&this.va.focus()};function Z(a){a=a&&a.A;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Ob(c&d.G,c),b&&oe(a,b));return d};m.Ha=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Lb(this.G,c),b&&oe(a,b));return d}; c.va.value="";Ce(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Fa(d,function(a){var b=!1;hb(c,!0)||(gb(c,!0),b=c.wb(a?1:0),gb(c,!1));return b}),!0}return!1};m.Sb=function(){this.va&&this.va.focus()};function X(a){a=a&&a.A;null==a&&(a=-1);return a}m.Gb=function(a,b){var d=255,c=X(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Nb(c&d.G,c),b&&Ie(a,b));return d};m.Ga=function(a,b){var d=65535,c=X(a);-1!==c&&(d=Mb(this.G,c),b&&Ie(a,b));return d};
m.bc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&oe(a,d);Dc(this.f,!0)}};m.jc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].lc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.u].yb(0,b>>8&255,c+1));d&&oe(a,d);Dc(this.f,!0)}};function W(a){return{A:a,Ga:!1}}function pe(a){return[a.A,a.Ga]}function qe(a){return{A:a[0],Ga:a[1]}} m.ac=function(a,b,d){var c=X(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&Ie(a,d);Ec(this.b,!0)}};m.ic=function(a,b,d){var c=X(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].kc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.j].yb(0,b>>8&255,c+1));d&&Ie(a,d);Ec(this.b,!0)}};function W(a){return{A:a,Fa:!1}}function Je(a){return[a.A,a.Fa]}function Ke(a){return{A:a[0],Fa:a[1]}}
function ne(a,b,d){var c;d=(d?a.V:a.zb).A;if(void 0!==b){c=b=Dd(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=W(c));break}}if(c=f)return c;d=Cd(a,b,void 0)}null!=d&&(c=W(d));return c}function re(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Gc=Ad(a,b.Bc=d[2]))}function oe(a,b){null!=a.A&&(a.A+=b||1)} function He(a,b,d){var c;d=(d?a.V:a.zb).A;if(void 0!==b){c=b=ue(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=W(c));break}}if(c=f)return c;d=te(a,b,void 0)}null!=d&&(c=W(d));return c}function Le(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Gc=re(a,b.Bc=d[2]))}function Ie(a,b){null!=a.A&&(a.A+=b||1)}
function Kd(a,b){a.H=a;a.ha=a.Hc=536870912;a.za=null;a.Ea=[];var d=Ad(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in yb){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=yb[c],a.g(c+" messages enabled"))}}function me(a,b){for(var d in yb)if(64==yb[d]){a.Sa[d]=b;break}} function Be(a,b){a.H=a;a.ha=a.Hc=536870912;a.za=null;a.Ia=[];var d=re(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in zb){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=zb[c],a.g(c+" messages enabled"))}}function Ge(a,b){for(var d in zb)if(64==zb[d]){a.Sa[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+V(this,W(this.f.b[7]).A));if(this.ha&1073741824)this.Ea.push(a);else if(!this.za||a!=this.za)if(this.za=a,this.ha&-2147483648&&(this.ma(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Wc(d);d.$=0;Dc(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.xa();if(this.mb){var a=this.mb;this.mb=null;Ld(this,a)}}; m.message=function(a,b){b&&(a+=" at "+V(this,W(this.b.f[7]).A));if(this.ha&1073741824)this.Ia.push(a);else if(!this.za||a!=this.za)if(this.za=a,this.ha&-2147483648&&(this.ma(),a+=" (cpu halted)"),this.g(a),this.b){var d=this.b;Xc(d);d.$=0;Ec(d)}};m.Hb=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.mb){var a=this.mb;this.mb=null;Ce(this,a)}};
function Jd(a){var b;if(jd(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=W();a.ra=0;a.g("instruction history buffer allocated")}if(!a.ja||!a.ja.length)for(a.ja=Array(256),b=0;b<a.ja.length;b++)a.ja[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.ra=0,a.T=[],a.ja=[]}m.lb=function(a){if(!se(this))return!1;this.f.lb(a);return!0}; function Ae(a){var b;if(kd(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=W();a.ra=0;a.g("instruction history buffer allocated")}if(!a.ja||!a.ja.length)for(a.ja=Array(256),b=0;b<a.ja.length;b++)a.ja[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.ra=0,a.T=[],a.ja=[]}m.lb=function(a){if(!Me(this))return!1;this.b.lb(a);return!0};
m.wb=function(a,b,d){if(!se(this))return!1;this.P=0;a||jd(this)&&kd(this,this.f.b[7],0);try{var c=this.f.wb(a);0<c&&(this.P+=c,Uc(this.f,c,!0),Ec(this.f,c),this.$++)}catch(f){"number"!=typeof f&&(this.P=0,ib(this.f,f.stack||f.message))}!1!==d&&Dc(this.f);this.xa(b||!1);return 0<this.P};m.ma=function(a){this.f&&this.f.ma(a)};m.xa=function(a){void 0===a&&(a=!0);this.V=W(this.f.b[7]);a&&1!=this.ea?te(this):ue(this)}; m.wb=function(a,b,d){if(!Me(this))return!1;this.P=0;a||kd(this)&&ld(this,this.b.f[7],0);try{var c=this.b.wb(a);0<c&&(this.P+=c,Vc(this.b,c,!0),Fc(this.b,c),this.$++)}catch(f){"number"!=typeof f&&(this.P=0,jb(this.b,f.stack||f.message))}!1!==d&&Ec(this.b);this.wa(b||!1);return 0<this.P};m.ma=function(a){this.b&&this.b.ma(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=W(this.b.f[7]);a&&1!=this.ea?Ne(this):Oe(this)};
function se(a){var b;if(b=a.f&&hb(a.f))b=a.f,b.j.fa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!gb(a.f)?(a=a.f,a.j.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Jd(this);this.$=this.Ja=0;this.za=null;this.P=0;this.V=W(this.f.b[7]);this.j.ia=!1;ve(this);a||this.xa()}; function Me(a){var b;if(b=a.b&&ib(a.b))b=a.b,b.u.fa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!hb(a.b)?(a=a.b,a.u.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Ae(this);this.$=this.Ja=0;this.za=null;this.P=0;this.V=W(this.b.f[7]);this.u.ia=!1;Pe(this);a||this.wa()};
m.save=function(){var a=new $c(this);N(a,0,pe(this.V));N(a,1,pe(this.aa));N(a,2,[this.C,this.da,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=qe(a[b++]),this.aa=qe(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.da=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.ea||this.g("running");this.j.ia=!0;this.Kc=a;this.Mc=b}; m.save=function(){var a=new ad(this);M(a,0,Je(this.V));M(a,1,Je(this.aa));M(a,2,[this.C,this.da,this.ha]);M(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Ke(a[b++]),this.aa=Ke(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.da=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.ea||this.g("running");this.u.ia=!0;this.Kc=a;this.Mc=b};
m.stop=function(a,b){if(this.j.ia){this.j.ia=!1;this.P=b-this.Mc;if(!this.ea){var d="stopped";if(this.P){var c=a-this.Kc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";jd(this)&&(d+=this.$+" opcodes, ",this.Ja-=this.$,this.$=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.xa(!0);this.Tb();ve(this,this.f.b[7])}};function jd(a){return 1<a.u.length||!!a.ya} m.stop=function(a,b){if(this.u.ia){this.u.ia=!1;this.P=b-this.Mc;if(!this.ea){var d="stopped";if(this.P){var c=a-this.Kc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";kd(this)&&(d+=this.$+" opcodes, ",this.Ja-=this.$,this.$=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else fb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Sb();Pe(this,this.b.f[7])}};function kd(a){return 1<a.j.length||!!a.ya}
function kd(a,b,d){var c=a.f;if(0<d&&(a.ya&&!--a.ya||vc(a,b,1,a.u)))return!0;0<=d&&a.ja.length&&(a.$++,null!=Lb(a.G,b)&&(b=a.T[a.ra],b.A=c.b[7],b.Ga=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function Id(a){var b,d;a.u=["bp"];if(void 0!==a.Y)for(b=1;b<a.Y.length;b++){d=a.Y[b];var c=a.G;wc(c.R[Z(d)>>>c.X],!1)}a.Y=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,wc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0} function ld(a,b,d){var c=a.b;if(0<d&&(a.ya&&!--a.ya||wc(a,b,1,a.j)))return!0;0<=d&&a.ja.length&&(a.$++,null!=Mb(a.G,b)&&(b=a.T[a.ra],b.A=c.f[7],b.Fa=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function ze(a){var b,d;a.j=["bp"];if(void 0!==a.Y)for(b=1;b<a.Y.length;b++){d=a.Y[b];var c=a.G;xc(c.R[X(d)>>>c.X],!1)}a.Y=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,xc(c.R[X(d)>>>c.X],!0);a.J=["bw"];a.Ub=0}
m.eb=function(a,b,d){var c=!0;d||we(this,a,b,!1,!0);if(a!=this.u){var f=Z(b);if(-1===f)this.g("invalid address: "+V(this,b.A)),c=!1;else{var e=this.G;e.R[f>>>e.X].eb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Ga=!0:(xe(this,a,a.length-1,"set"),Jd(this)));return c};function we(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Ga)){e=!0;g.Ga||f||xe(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(c=a.G,wc(c.R[d>>>c.X],b==a.J));g.Ga||Jd(a);break}}return e} m.eb=function(a,b,d){var c=!0;d||Qe(this,a,b,!1,!0);if(a!=this.j){var f=X(b);if(-1===f)this.g("invalid address: "+V(this,b.A)),c=!1;else{var e=this.G;e.R[f>>>e.X].eb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(Re(this,a,a.length-1,"set"),Ae(this)));return c};function Qe(a,b,d,c,f){var e=!1;d=X(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==X(g)&&(!c||g.Fa)){e=!0;g.Fa||f||Re(a,b,h,"cleared");b.splice(h,1);b!=a.j&&(c=a.G,xc(c.R[d>>>c.X],b==a.J));g.Fa||Ae(a);break}}return e}
function ye(a,b){for(var d=1;d<b.length;d++)xe(a,b,d);return b.length-1}function xe(a,b,d,c){d=b[d];a.g(b[0]+" "+V(a,d.A)+(c?" "+c:d.Bc?' "'+d.Bc+'"':""))}function ve(a,b){if(void 0!==b)vc(a,b,1,a.u,!0),a.ea=0;else for(var d=1;d<a.u.length;d++){var c=a.u[d];if(c.Ga){if(!we(a,a.u,c,!0))break;d=0}}} function Se(a,b){for(var d=1;d<b.length;d++)Re(a,b,d);return b.length-1}function Re(a,b,d,c){d=b[d];a.g(b[0]+" "+V(a,d.A)+(c?" "+c:d.Bc?' "'+d.Bc+'"':""))}function Pe(a,b){if(void 0!==b)wc(a,b,1,a.j,!0),a.ea=0;else for(var d=1;d<a.j.length;d++){var c=a.j[d];if(c.Fa){if(!Qe(a,a.j,c,!0))break;d=0}}}
function vc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Ga)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Ga&&(we(a,c,g,!0),f=!0);if(n=g.Gc){for(var e=!1,p=0;p<n.length;p++)if(!ze(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.j.ia||(e=!0)}if(e){f||xe(a,c,h,"hit");break}}}a.Eb--;return e} function wc(a,b,d,c,f){var e=!1;if(!a.Ub++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=X(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(Qe(a,c,g,!0),f=!0);if(n=g.Gc){for(var e=!1,p=0;p<n.length;p++)if(!Te(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.u.ia||(e=!0)}if(e){f||Re(a,c,h,"hit");break}}}a.Ub--;return e}
function Ae(a,b,d,c){var f=W(b.A),e=a.Ha(b,2),h,g;for(g in a.rc)if(h=a.rc[g][e&g])break;h||(h=[0]);g="";for(var k=ke[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var C=p,p=b,x="",y=void 0,y=void 0,y=C&61440;if(4096==y)y=(e&255)<<24>>23,y=p.A+y&65535,x=V(q,y);else if(8192==y)y=(e&63)<<1,y=p.A-y&65535,x=V(q,y);else if(12288==y)y=e&7,x=V(q,y,2);else if(24576==y)y=e&63,x=V(q,y);else if(y=e&C,C&4032&&(y>>=6,C>>=6),C&63){var C=void 0,B=y&7;switch(y&56){case 0:x=Be(B);break;case 8:x= function Ue(a,b,d,c){var f=W(b.A),e=a.Ga(b,2),h,g;for(g in a.rc)if(h=a.rc[g][e&g])break;h||(h=[0]);g="";for(var k=Ee[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,y="",z=void 0,z=void 0,z=D&61440;if(4096==z)z=(e&255)<<24>>23,z=p.A+z&65535,y=V(q,z);else if(8192==z)z=(e&63)<<1,z=p.A-z&65535,y=V(q,z);else if(12288==z)z=e&7,y=V(q,z,2);else if(24576==z)z=e&63,y=V(q,z);else if(z=e&D,D&4032&&(z>>=6,D>>=6),D&63){var D=void 0,C=z&7;switch(z&56){case 0:y=Ve(C);break;case 8:y=
"@"+Be(B);break;case 16:7>B?x="("+Be(B)+")+":(C=q.Ha(p,2),x="#"+V(q,C));break;case 24:7>B?x="@("+Be(B)+")+":(C=q.Ha(p,2),x="@#"+V(q,C));break;case 32:x="-("+Be(B)+")";break;case 40:x="@-("+Be(B)+")";break;case 48:C=q.Ha(p,2);x=V(q,C)+"("+Be(B)+")";7==B&&(x=[x,V(q,C+p.A&65535)]);break;case 56:C=q.Ha(p,2),x="@"+V(q,C)+"("+Be(B)+")",7==B&&(x=[x,V(q,C+p.A&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=V(a,f.A)+":";if(-1!== "@"+Ve(C);break;case 16:7>C?y="("+Ve(C)+")+":(D=q.Ga(p,2),y="#"+V(q,D));break;case 24:7>C?y="@("+Ve(C)+")+":(D=q.Ga(p,2),y="@#"+V(q,D));break;case 32:y="-("+Ve(C)+")";break;case 40:y="@-("+Ve(C)+")";break;case 48:D=q.Ga(p,2);y=V(q,D)+"("+Ve(C)+")";7==C&&(y=[y,V(q,D+p.A&65535)]);break;case 56:D=q.Ga(p,2),y="@"+V(q,D)+"("+Ve(C)+")",7==C&&(y=[y,V(q,D+p.A&65535)])}}q=y;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=V(a,f.A)+":";if(-1!==
f.A&&-1!==b.A){do if(e+=" "+V(a,a.Ha(f,2)),null==f.A)break;while(f.A!=b.A)}h+=na(e,24);h+=na(k,5);g&&(h+=" "+g);d&&(h=na(h,60)+";"+d,h=a.f.j.ob?h+("cycles="+Fc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function Ce(a,b){var d;switch(b){case "N":d=a.f.w&32768?8:0;break;case "Z":d=a.f.F&65535?0:4;break;case "V":d=a.f.B&32768?2:0;break;case "C":d=a.f.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}function Be(a){return 6>a?"R"+a:6==a?"SP":"PC"} f.A&&-1!==b.A){do if(e+=" "+V(a,a.Ga(f,2)),null==f.A)break;while(f.A!=b.A)}h+=na(e,24);h+=na(k,5);g&&(h+=" "+g);d&&(h=na(h,60)+";"+d,h=a.b.u.ob?h+("cycles="+Sc(a.b).toString()+" cs="+r(a.b.Kb)):h+(null!=c?"="+c.toString():""));return h}function We(a,b){var d;switch(b){case "N":d=a.b.w&32768?8:0;break;case "Z":d=a.b.F&65535?0:4;break;case "V":d=a.b.B&32768?2:0;break;case "C":d=a.b.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}function Ve(a){return 6>a?"R"+a:6==a?"SP":"PC"}
function De(a,b){var d="",c=a.f;8>b?(d=Be(b),d+="="+V(a,c.b[b])):13>b?d="A"+(b-8)+"="+V(a,c.Za[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+V(a,c.sa[b-16]):20==b&&(d="PS="+V(a,$b(c)));d&&(d+=" ");return d}function Ee(a){var b,d="";for(b=0;6>b;b++)d+=De(a,b);d=d+"\n"+(De(a,6)+De(a,7)+De(a,20));return d+=Ce(a,"T")+Ce(a,"N")+Ce(a,"Z")+Ce(a,"V")+Ce(a,"C")}m.qc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function Xe(a,b){var d="",c=a.b;8>b?(d=Ve(b),d+="="+V(a,c.f[b])):13>b?d="A"+(b-8)+"="+V(a,c.Za[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+V(a,c.sa[b-16]):20==b&&(d="PS="+V(a,ac(c)));d&&(d+=" ");return d}function Ye(a){var b,d="";for(b=0;6>b;b++)d+=Xe(a,b);d=d+"\n"+(Xe(a,6)+Xe(a,7)+Xe(a,20));return d+=We(a,"T")+We(a,"N")+We(a,"Z")+We(a,"V")+We(a,"C")}m.qc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Fe(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.A>>>0,g=e.Qc;if(f>=h&&f<h+g){f=pa(e.nc,[f-h],a.qc);0<=f?Ge(a,b,f,c):d&&(f=~f,Ge(a,b,f-1,c),Ge(a,b,f,c));break}}return c}function Ge(a,b,d,c){var f={},e=a.N[b].nc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)} function Ze(a,b,d){var c=[],f=X(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.A>>>0,g=e.Qc;if(f>=h&&f<h+g){f=pa(e.mc,[f-h],a.qc);0<=f?$e(a,b,f,c):d&&(f=~f,$e(a,b,f-1,c),$e(a,b,f,c));break}}return c}function $e(a,b,d,c){var f={},e=a.N[b].mc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
function He(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return Gd(a)||a.g("no variables"),!0;if(!d[2])return Gd(a,d[1]);if(!d[3])return delete a.ga[d[1]],!0;var c=Cd(a,d[3]);return void 0!==c?(a.ga[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1} function af(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return xe(a)||a.g("no variables"),!0;if(!d[2])return xe(a,d[1]);if(!d[3])return delete a.ga[d[1]],!0;var c=te(a,d[3]);return void 0!==c?(a.ga[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function Ie(a,b,d){var c=null;if(b=ne(a,b,!0)){var f=Fe(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.A-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+V(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.A)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+V(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c} function bf(a,b,d){var c=null;if(b=He(a,b,!0)){var f=Ze(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.A-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+V(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.A)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+V(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
function te(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Cd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=W(c.b[7]);break;case "NF":c.w=g?32768:0;break;case "ZF":c.F=g?0:1;break;case "VF":c.B= function Ne(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.b;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=te(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.f[7]=g;a.V=W(c.f[7]);break;case "NF":c.w=g?32768:0;break;case "ZF":c.F=g?0:1;break;case "VF":c.B=
g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}Dc(c);a.g("updated registers:")}a.g(Ee(a));d&&(a.V=W(c.b[7]),ue(a,V(a,a.V.A)))}}function Je(a,b){b=oa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):Cd(a,b,!0)}function Ke(a,b,d){var c="t"!=b;d=Ed(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return fb(a,!0)&&a.wb(f,c,!1)},function(){Dc(a.f);fb(a,!1)})} g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}Ec(c);a.g("updated registers:")}a.g(Ye(a));d&&(a.V=W(c.f[7]),Oe(a,V(a,a.V.A)))}}function cf(a,b){b=oa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):te(a,b,!0)}function df(a,b,d){var c="t"!=b;d=ve(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return gb(a,!0)&&a.wb(f,c,!1)},function(){Ec(a.b);gb(a,!1)})}
function ue(a,b,d,c){if(b=ne(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=ne(a,d,!0);if(!c||c.A<b.A)return;f=c.A-b.A;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=gb(a,!1)||a.ea?a.P:null;var h=null!=e?"cycles":null,g=Fe(a,b),k=b.A;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=Ae(a,b,h,e);a.g(e);a.V=b;f-=b.A-k;d++}}} function Oe(a,b,d,c){if(b=He(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=He(a,d,!0);if(!c||c.A<b.A)return;f=c.A-b.A;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=hb(a,!1)||a.ea?a.P:null;var h=null!=e?"cycles":null,g=Ze(a,b),k=b.A;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=Ue(a,b,h,e);a.g(e);a.V=b;f-=b.A-k;d++}}}
function ze(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.da&&(a.g("ended assemble at "+V(a,a.aa.A)),a.V=a.aa,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(hb(a)&&0<b.length){a.da&&(b="a "+V(a,a.aa.A)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=ne(a,e[1],!0); function Te(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.da&&(a.g("ended assemble at "+V(a,a.aa.A)),a.V=a.aa,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(ib(a)&&0<b.length){a.da&&(b="a "+V(a,a.aa.A)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=He(a,e[1],!0);
if(n)if(a.aa=n,void 0===e[2])a.g("begin assemble at "+V(a,n.A)),a.da=!0,Dc(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.bc(n,p[q],1);a.g(Ae(a,a.aa))}}break;case "b":a:{var C=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)"); if(n)if(a.aa=n,void 0===e[2])a.g("begin assemble at "+V(a,n.A)),a.da=!0,Ec(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.ac(n,p[q],1);a.g(Ue(a,a.aa))}}break;case "b":a:{var D=e[0],y=e[1],z=b;if("?"==y)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var B=C.charAt(1);if("l"==B){var Ka=0,Ka=Ka+ye(a,a.u),Ka=Ka+ye(a,a.Y);(Ka+=ye(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.ya=Ed(a,x),a.g("break after "+a.ya+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var X=W();if("*"!=x&&(X=ne(a,x,!0),!X))break a;"c"==B?null==X.A?(Id(a),a.g("all breakpoints cleared")):we(a,a.u,X)||we(a,a.Y,X)||we(a,a.J,X)||a.g("breakpoint missing: "+V(a,X.A)):null!=X.A&&(re(a,X,y),"p"==B?a.eb(a.u,X):"r"==B?a.eb(a.Y,X):"w"==B?a.eb(a.J,X): else{var C=D.charAt(1);if("l"==C){var La=0,La=La+Se(a,a.j),La=La+Se(a,a.Y);(La+=Se(a,a.J))||a.g("no breakpoints")}else if("n"==C)a.ya=ve(a,y),a.g("break after "+a.ya+" instruction(s)");else if(void 0===y)a.g("missing breakpoint address");else{var Y=W();if("*"!=y&&(Y=He(a,y,!0),!Y))break a;"c"==C?null==Y.A?(ze(a),a.g("all breakpoints cleared")):Qe(a,a.j,Y)||Qe(a,a.Y,Y)||Qe(a,a.J,Y)||a.g("breakpoint missing: "+V(a,Y.A)):null!=Y.A&&(Le(a,Y,z),"p"==C?a.eb(a.j,Y):"r"==C?a.eb(a.Y,Y):"w"==C?a.eb(a.J,Y):
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.fb&&(a.fb.value="");break;case "d":a:{var La,Ma=e[0],ga=e[1],xa=e[2],df=e[3];if("?"==ga){var ha="";for(La in yb)a.Sa[La]&&(ha&&(ha+=","),ha+=La);ha+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ha.length&&a.g("dump extension commands:\n\t"+ a.g("unknown breakpoint command: "+C))}}}break;case "c":a.fb&&(a.fb.value="");break;case "d":a:{var Ma,Na=e[0],ha=e[1],ya=e[2],yf=e[3];if("?"==ha){var ia="";for(Ma in zb)a.Sa[Ma]&&(ia&&(ia+=","),ia+=Ma);ia+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ia.length&&a.g("dump extension commands:\n\t"+
ha)}else if("state"==ga){var Nd=Le(a.i,!0);"console"==xa?console.log(Nd):(a.fb&&(a.fb.value=""),a.g(Nd))}else if("symbols"==ga)for(var Gc=0;Gc<a.N.length;Gc++){var Hc=a.N[Gc],Na;for(Na in Hc.Ka)if("."!=Na.charAt(0)){var Od=Hc.Ka[Na].o;if(void 0!==Od){var Pd=Hc.Ka[Na].l;Pd&&(Na=Pd);a.g(V(a,Od)+" "+Na)}}}else{if("d"==Ma){for(La in yb)if(e[1]==La){var Qd=a.Sa[La];Qd?(e.shift(),e.shift(),Qd(e)):a.g("no dump registered for "+ga);break a}ga||(Ma=a.Oc||"db")}else a.Oc=Ma;if("dh"==Ma){var Rd=ga,Sd=xa,Td= ia)}else if("state"==ha){var Ud=ef(a.i,!0);"console"==ya?console.log(Ud):(a.fb&&(a.fb.value=""),a.g(Ud))}else if("symbols"==ha)for(var Gc=0;Gc<a.N.length;Gc++){var Hc=a.N[Gc],Oa;for(Oa in Hc.Ka)if("."!=Oa.charAt(0)){var Vd=Hc.Ka[Oa].o;if(void 0!==Vd){var Wd=Hc.Ka[Oa].l;Wd&&(Oa=Wd);a.g(V(a,Vd)+" "+Oa)}}}else{if("d"==Na){for(Ma in zb)if(e[1]==Ma){var Xd=a.Sa[Ma];Xd?(e.shift(),e.shift(),Xd(e)):a.g("no dump registered for "+ha);break a}ha||(Na=a.Oc||"db")}else a.Oc=Na;if("dh"==Na){var Yd=ha,Zd=ya,$d=
"",Ud=0,P=a.ra,ia=a.T;if(ia.length){var Y=+Rd||a.Vb,Oa=+Sd||10;isNaN(Y)?Y=Oa:Td="more ";Y>ia.length&&(a.g("note: only "+ia.length+" available"),Y=ia.length);P-=Y;0>P&&(null==ia[ia.length-1].A?(Y=P+Y,P=0):P+=ia.length);var Ic=[];"call"==Sd&&(Oa=1E5,Ic=["CALL"]);for(void 0!==Rd&&a.g(Y+" instructions earlier:");0<Oa&&P!=a.ra;){var Vd=ia[P++];if(null==Vd.A)break;var lb=W(Vd.A),ef=Y--,Wd=Ae(a,lb,"history",ef);(!Ic.length||0<=Wd.indexOf(Ic[0]))&&a.g(Wd);lb.ec&&(P+=lb.ec,Oa-=lb.ec,Y-=lb.ec);P>=ia.length&& "",ae=0,Q=a.ra,ja=a.T;if(ja.length){var Z=+Yd||a.oc,Pa=+Zd||10;isNaN(Z)?Z=Pa:$d="more ";Z>ja.length&&(a.g("note: only "+ja.length+" available"),Z=ja.length);Q-=Z;0>Q&&(null==ja[ja.length-1].A?(Z=Q+Z,Q=0):Q+=ja.length);var Ic=[];"call"==Zd&&(Pa=1E5,Ic=["CALL"]);for(void 0!==Yd&&a.g(Z+" instructions earlier:");0<Pa&&Q!=a.ra;){var be=ja[Q++];if(null==be.A)break;var mb=W(be.A),zf=Z--,ce=Ue(a,mb,"history",zf);(!Ic.length||0<=ce.indexOf(Ic[0]))&&a.g(ce);mb.dc&&(Q+=mb.dc,Pa-=mb.dc,Z-=mb.dc);Q>=ja.length&&
(P=0);a.Vb=Y;Ud++;Oa--}}Ud||(a.g("no "+Td+"history available"),a.Vb=void 0)}else{var Pb=ne(a,ga);if(Pb){var Qb=0;xa&&("l"==xa.charAt(0)&&(xa=xa.substr(1)||df),Qb=Ed(a,xa)>>>0,65536<Qb&&(Qb=65536));for(var ya="",Rb="dd"==Ma?4:"dw"==Ma?2:1,Sb=Rb*Qb||128,ff=Sb+15>>4||1;ff--&&0<Sb;){var Tb=0,Jc=0,mb,nb="",Kc="",ga=V(a,Pb.A);for(mb=16;0<mb&&0<Sb;mb--){var Ub=a.Hb(Pb,1),Tb=Tb|Ub<<(Jc++<<3);Jc==Rb&&(nb+=r(Tb,2*Rb),nb+=1==Rb?9==mb?"-":" ":" ",Tb=Jc=0);Kc+=32<=Ub&&128>Ub?String.fromCharCode(Ub):".";Sb--}ya&& (Q=0);a.oc=Z;ae++;Pa--}}ae||(a.g("no "+$d+"history available"),a.oc=void 0)}else{var Qb=He(a,ha);if(Qb){var Rb=0;ya&&("l"==ya.charAt(0)&&(ya=ya.substr(1)||yf),Rb=ve(a,ya)>>>0,65536<Rb&&(Rb=65536));for(var za="",Sb="dd"==Na?4:"dw"==Na?2:1,Tb=Sb*Rb||128,Af=Tb+15>>4||1;Af--&&0<Tb;){var Ub=0,Jc=0,nb,ob="",Kc="",ha=V(a,Qb.A);for(nb=16;0<nb&&0<Tb;nb--){var Vb=a.Gb(Qb,1),Ub=Ub|Vb<<(Jc++<<3);Jc==Sb&&(ob+=r(Ub,2*Sb),ob+=1==Sb?9==nb?"-":" ":" ",Ub=Jc=0);Kc+=32<=Vb&&128>Vb?String.fromCharCode(Vb):".";Tb--}za&&
(ya+="\n");ya+=ga+" "+nb+(0==mb?" "+Kc:"")}ya&&a.g(ya);a.zb=Pb}}}}break;case "e":if("else"==e[0])break;var Vb=1,Xd=255,Yd=a.Hb,Zd=a.bc;"ew"==e[0]&&(Vb=2,Xd=65535,Yd=a.Ha,Zd=a.jc);var $d=Vb<<1,ae=e[1];if(null==ae)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Wb=ne(a,ae);if(Wb)for(var Xb=2;Xb<e.length;Xb++){var ob=Cd(a,e[Xb]);if(void 0===ob){a.g("unrecognized value: "+e[Xb]);break}ob&~Xd&&a.g("warning: "+r(ob)+" exceeds "+ (za+="\n");za+=ha+" "+ob+(0==nb?" "+Kc:"")}za&&a.g(za);a.zb=Qb}}}}break;case "e":if("else"==e[0])break;var Wb=1,de=255,ee=a.Gb,fe=a.ac;"ew"==e[0]&&(Wb=2,de=65535,ee=a.Ga,fe=a.ic);var ge=Wb<<1,he=e[1];if(null==he)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Xb=He(a,he);if(Xb)for(var Yb=2;Yb<e.length;Yb++){var pb=te(a,e[Yb]);if(void 0===pb){a.g("unrecognized value: "+e[Yb]);break}pb&~de&&a.g("warning: "+r(pb)+" exceeds "+
Vb+"-byte value");var gf=Yd.call(a,Wb);a.g("changing "+V(a,Wb.A)+" from "+r(gf,$d,!0)+" to "+r(ob,$d,!0));Zd.call(a,Wb,ob,Vb)}}break;case "g":a:{var be=e[1],hf=b;if(void 0!==be){var Lc=ne(a,be,!0);if(!Lc)break a;re(a,Lc,hf);a.eb(a.u,Lc,!0)}a.lb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Mc;if(a.j.ia)Mc="halting",a.ma();else{if(gb(a,!0))break a;Mc="already halted"}d||a.g(Mc)}break;case "i":if("if"==e[0]){var Nc;var pb=b.substr(2),pb=oa(pb);Cd(a,pb)?(d||a.g("true: "+ Wb+"-byte value");var Bf=ee.call(a,Xb);a.g("changing "+V(a,Xb.A)+" from "+r(Bf,ge,!0)+" to "+r(pb,ge,!0));fe.call(a,Xb,pb,Wb)}}break;case "g":a:{var ie=e[1],Cf=b;if(void 0!==ie){var Lc=He(a,ie,!0);if(!Lc)break a;Le(a,Lc,Cf);a.eb(a.j,Lc,!0)}a.lb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Mc;if(a.u.ia)Mc="halting",a.ma();else{if(hb(a,!0))break a;Mc="already halted"}d||a.g(Mc)}break;case "i":if("if"==e[0]){var Nc;var qb=b.substr(2),qb=oa(qb);te(a,qb)?(d||a.g("true: "+
pb),Nc=!0):(d||a.g("false: "+pb),Nc=!1);Nc||(c=!1)}break;case "k":var jf=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Oc=0,ce=W(),qb=W(a.f.b[6]);for(a.g("stack trace for "+V(a,qb.A));10>Oc;){for(var za=null,kf=256;65536>qb.A>>>0;){ce.A=a.Ha(qb,2);if(null==qb.A||!kf--)break;for(var lf=a,Yb=ce,de=null,rb=Yb.A,ee=rb,Pc=1;6>=Pc&&rb;Pc++){if(2<Pc){Yb.A=rb;var Zb=Ae(lf,Yb);if(0<=Zb.indexOf("JSR")){var fe=Zb.indexOf(" ");if(rb+ qb),Nc=!0):(d||a.g("false: "+qb),Nc=!1);Nc||(c=!1)}break;case "k":var Df=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Oc=0,je=W(),rb=W(a.b.f[6]);for(a.g("stack trace for "+V(a,rb.A));10>Oc;){for(var Aa=null,Ef=256;65536>rb.A>>>0;){je.A=a.Ga(rb,2);if(null==rb.A||!Ef--)break;for(var Ff=a,Zb=je,ke=null,sb=Zb.A,le=sb,Pc=1;6>=Pc&&sb;Pc++){if(2<Pc){Zb.A=sb;var $b=Ue(Ff,Zb);if(0<=$b.indexOf("JSR")){var me=$b.indexOf(" ");if(sb+
(Zb.indexOf(" ",fe+1)-fe-1)/2==ee){de=Zb;break}}}rb--}Yb.A=ee;if(za=de)break}if(!za||null==za)break;var ge=null;if("ks"==jf){var he=za.match(/[0-9A-F]+$/);he&&(ge=Ie(a,he[0]))}za=na(za,50)+" ;"+(ge||"stack="+V(a,qb.A));a.g(za);Oc++}Oc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){Ie(a,e[1],!0);break}break;case "m":a:{var ja,ka=null,D=e[1];"?"==D&&(D=void 0);if(void 0!==D){var ra=0;if("all"==D)ra=1878917119,D=null;else if("on"==D)ka=!0,D=null;else if("off"==D)ka=!1,D=null;else{"keys"== ($b.indexOf(" ",me+1)-me-1)/2==le){ke=$b;break}}}sb--}Zb.A=le;if(Aa=ke)break}if(!Aa||null==Aa)break;var ne=null;if("ks"==Df){var oe=Aa.match(/[0-9A-F]+$/);oe&&(ne=bf(a,oe[0]))}Aa=na(Aa,50)+" ;"+(ne||"stack="+V(a,rb.A));a.g(Aa);Oc++}Oc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){bf(a,e[1],!0);break}break;case "m":a:{var ka,la=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var sa=0;if("all"==E)sa=1878917119,E=null;else if("on"==E)la=!0,E=null;else if("off"==E)la=!1,E=null;else{"keys"==
D&&(D="key");"kbd"==D&&(D="keyboard");for(ja in yb)if(D==ja){ra=yb[ja];ka=!!(a.ha&ra);break}if(!ra){a.g("unknown message category: "+D);break a}}if(ra)if("on"==e[2])a.ha|=ra,ka=!0;else if("off"==e[2]&&(a.ha&=~ra,ka=!1,1073741824==ra)){for(var Qc=0;Qc<a.Ea.length;Qc++)a.g(a.Ea[Qc]);a.Ea=[]}}var mf=0,sa="";for(ja in yb)if(!D||D==ja){var nf=!!(a.ha&yb[ja]);if(null===ka||ka==nf)sa&&(sa+=","),++mf%10||(sa+="\n\t"),"key"==ja&&(ja="keys"),sa+=ja}void 0===D&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off"); E&&(E="key");"kbd"==E&&(E="keyboard");for(ka in zb)if(E==ka){sa=zb[ka];la=!!(a.ha&sa);break}if(!sa){a.g("unknown message category: "+E);break a}}if(sa)if("on"==e[2])a.ha|=sa,la=!0;else if("off"==e[2]&&(a.ha&=~sa,la=!1,1073741824==sa)){for(var Qc=0;Qc<a.Ia.length;Qc++)a.g(a.Ia[Qc]);a.Ia=[]}}var Gf=0,ta="";for(ka in zb)if(!E||E==ka){var Hf=!!(a.ha&zb[ka]);if(null===la||la==Hf)ta&&(ta+=","),++Gf%10||(ta+="\n\t"),"key"==ka&&(ka="keys"),ta+=ka}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==ka?ka?"messages on: ":"messages off: ":"message categories:\n\t")+(sa||"none"));Jd(a)}break;case "p":if("print"==e[0]){Je(a,b.substr(5));break}var of="pr"==e[0]?1:0;if(a.ea)a.g("step in progress");else{var ie=W(a.f.b[7]);a.Hb(ie);a.ea?(a.eb(a.u,ie,!0),a.lb()||(a.i&&a.i.Tb(),a.ea=0)):Ke(a,of?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}te(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var sb=+e[2];if(8==sb||10==sb||16==sb)a.wa=sb;else{a.g("invalid base: "+sb); a.g((null!==la?la?"messages on: ":"messages off: ":"message categories:\n\t")+(ta||"none"));Ae(a)}break;case "p":if("print"==e[0]){cf(a,b.substr(5));break}var If="pr"==e[0]?1:0;if(a.ea)a.g("step in progress");else{var pe=W(a.b.f[7]);a.Gb(pe);a.ea?(a.eb(a.j,pe,!0),a.lb()||(a.i&&a.i.Sb(),a.ea=0)):df(a,If?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}Ne(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var tb=+e[2];if(8==tb||10==tb||16==tb)a.xa=tb;else{a.g("invalid base: "+tb);
break}}a.g("default base: "+a.wa);break;case "cs":var tb;void 0!==e[3]&&(tb=+e[3]);switch(e[2]){case "int":a.f.qb=tb;break;case "start":a.f.Mb=tb;break;case "stop":a.f.rb=tb;break;default:a.g("unknown cs option");break a}void 0!==tb&&Cc(a.f);a.g("checksums "+(a.f.j.ob?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Tc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.hb.toFixed(2)+"Mhz")+" ("+a.f.jb+"x)");break;case "?":a.g("debugger options:"); break}}a.g("default base: "+a.xa);break;case "cs":var ub;void 0!==e[3]&&(ub=+e[3]);switch(e[2]){case "int":a.b.qb=ub;break;case "start":a.b.Lb=ub;break;case "stop":a.b.rb=ub;break;default:a.g("unknown cs option");break a}void 0!==ub&&Dc(a.b);a.g("checksums "+(a.b.u.ob?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Uc(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.hb.toFixed(2)+"Mhz")+" ("+a.b.jb+"x)");break;case "?":a.g("debugger options:");
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":Ke(a,e[0],e[1]);break;case "u":ue(a,e[1],e[2],8);break;case "v":if("var"==e[0]){He(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.vc+",RELEASE"+(jb?",TYPEDARRAYS":",LONGARRAYS")+ a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":df(a,e[0],e[1]);break;case "u":Oe(a,e[1],e[2],8);break;case "v":if("var"==e[0]){af(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.b.vc+",RELEASE"+(kb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){Je(a,b.substr(1));break}var ub="commands:",Rc;for(Rc in Md)ub+="\n"+na(Rc,9)+Md[Rc];jd(a)||(ub+="\nnote: history disabled if no exec breakpoints");a.g(ub);break;default:a.g("unknown command: "+b),c=!1}}}catch(je){a.g("debugger error: "+(je.stack||je.message)),c=!1}return c}function Ld(a,b,d){b=Ad(a,b,d);for(var c in b)if(!ze(a,b[c]))return!1;return!0} ")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){cf(a,b.substr(1));break}var vb="commands:",Rc;for(Rc in De)vb+="\n"+na(Rc,9)+De[Rc];kd(a)||(vb+="\nnote: history disabled if no exec breakpoints");a.g(vb);break;default:a.g("unknown command: "+b),c=!1}}}catch(qe){a.g("debugger error: "+(qe.stack||qe.message)),c=!1}return c}function Ce(a,b,d){b=re(a,b,d);for(var c in b)if(!Te(a,b[c]))return!1;return!0}
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hd(c);db(c,d)}}); Qa(function(){for(var a=x(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=w(d),c=new ye(c);eb(c,d)}});
function Me(a,b,d){u.call(this,"Computer",a,Me,67108864);this.j.fa=!1;Ne(this,b);this.Y=Ac(this,"autoPower",a);this.C=0;this.ga=a.busWidth||a.buswidth;this.i=Oe;this.T=null;this.N=this.da=!1;this.url=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.u=Pe(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new Bb({id:this.oc+".bus",busWidth:this.ga},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.fb)for(b=0;b<f.length;b++)c=f[b],c.oa=this.I.oa,c.g= function ff(a,b,d){u.call(this,"Computer",a,ff,67108864);this.u.fa=!1;gf(this,b);this.Y=Bc(this,"autoPower",a);this.C=0;this.ga=a.busWidth||a.buswidth;this.i=hf;this.T=null;this.N=this.da=!1;this.url=Bc(this,"url")||"";(Math.random()+.1).toString(36);this.j=jf(this);if(this.b=db("CPU",this.id)){this.H=db("Debugger",this.id);this.G=new Cb({id:this.nc+".bus",busWidth:this.ga},this.b,this.H);var c,f=cb(this.id);if((this.I=db("Panel",this.id))&&this.I.fb)for(b=0;b<f.length;b++)c=f[b],c.oa=this.I.oa,c.g=
this.I.g,c.fb=this.I.fb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Xa&&c.Xa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=Ac(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.N=!0,this.i=Oe),this.i&& this.I.g,c.fb=this.I.fb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Xa&&c.Xa(this,this.G,this.b,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=Bc(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.N=!0,this.i=hf),this.i&&
(this.V=new $c(this,"1.30.0"),Qe(this.V)?b=null:delete this.V);!b&&this.i&&(b=Re(this))&&(this.N=!0);if(b){var h=this;ua(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.oa("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(h.T=b,h.da=!0);E(h)})}else E(this);this.O.power||(this.Y=!0);!d&&this.Y&&Se(this,this.Nb)}else t("Unable to find CPU component")}w(Me);var Oe=0; (this.V=new ad(this,"1.30.0"),kf(this.V)?b=null:delete this.V);!b&&this.i&&(b=lf(this))&&(this.N=!0);if(b){var h=this;ua(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.oa("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(h.T=b,h.da=!0);A(h)})}else A(this);this.O.power||(this.Y=!0);!d&&this.Y&&mf(this,this.Mb)}else t("Unable to find CPU component")}$a(ff);var hf=0;
function Ne(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.ea=b}function Ac(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.ea&&(c=a.ea[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function Se(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!hb(e)){hb(e,function(){Se(a,b,d)});return}}b.call(a,d)} function gf(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.ea=b}function Bc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.ea&&(c=a.ea[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function mf(a,b,d){for(var c=cb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!ib(e)){ib(e,function(){mf(a,b,d)});return}}b.call(a,d)}
function Te(a,b){var d=new $c(a,"1.30.0","validate");if(Qe(d)&&Ue(d)){var c=Ve(d,"timestamp"),f=b?Ve(b,"timestamp"):"unknown";c!=f&&(a.oa("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=Me.prototype; function nf(a,b){var d=new ad(a,"1.30.0","validate");if(kf(d)&&of(d)){var c=pf(d,"timestamp"),f=b?pf(b,"timestamp"):"unknown";c!=f&&(a.oa("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=ff.prototype;
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:Oe));if(!this.C){this.C++;var b=!1,d=!1;this.aa=!1;var c=this.V||new $c(this,"1.30.0");if(-1==a)b=!0;else if(a>Oe){if(Qe(c,this.T)){this.J=new $c(this,"1.30.0","failsafe");Qe(this.J)&&(We(this,c),a=2,Xe(this.J));N(this.J,"timestamp",ta());Ye(this.J);var f=this.i&&!this.N;if(1==a||va("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Ue(c)){var e=Ve(c,"code"),h=Ve(c,"data");e&&("ok"==e?Qe(c,h):("error"== m.Mb=function(a){void 0===a&&(a=this.i||(this.T?1:hf));if(!this.C){this.C++;var b=!1,d=!1;this.aa=!1;var c=this.V||new ad(this,"1.30.0");if(-1==a)b=!0;else if(a>hf){if(kf(c,this.T)){this.J=new ad(this,"1.30.0","failsafe");kf(this.J)&&(qf(this,c),a=2,rf(this.J));M(this.J,"timestamp",ra());sf(this.J);var f=this.i&&!this.N;if(1==a||va("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=of(c)){var e=pf(c,"code"),h=pf(c,"data");e&&("ok"==e?kf(c,h):("error"==
e&&"no machine state"!=h?(this.oa("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.u=null)):this.g(e+": "+h),Xe(c),Qe(c)?(d=Ue(c),f=!0):d=!1))}f&&Te(this,d?c:null)}else 2==a&&c.clear()}else Te(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=Ze(this,h,c,b,d));b=[c,a,d];-1!=a?Se(this,this.tc,b):this.tc(b)}}; e&&"no machine state"!=h?(this.oa("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.j=null)):this.g(e+": "+h),rf(c),kf(c)?(d=of(c),f=!0):d=!1))}f&&nf(this,d?c:null)}else 2==a&&c.clear()}else nf(this);delete this.T;delete this.V}f=cb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.b&&(d=tf(this,h,c,b,d));b=[c,a,d];-1!=a?mf(this,this.tc,b):this.tc(b)}};
function Ze(a,b,d,c,f){if(!b.j.fa){b.j.fa=!0;if(b.Na){var e=null;f&&((e=Ve(d,b.id))||(e=Ve(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.$&&!a.da?(d.clear(),a.i=Oe,window&&window.location.reload()):a.aa=!0,b.Na(null),f=!1)}if(!c&&b.mc)for(a=b.mc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f} function tf(a,b,d,c,f){if(!b.u.fa){b.u.fa=!0;if(b.Na){var e=null;f&&((e=pf(d,b.id))||(e=pf(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.$&&!a.da?(d.clear(),a.i=hf,window&&window.location.reload()):a.aa=!0,b.Na(null),f=!1)}if(!c&&b.lc)for(a=b.lc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
m.tc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ja=!0;this.j.fa=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(Ze(this,this.f,b,d,a),this.f.Db());this.aa&&(We(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.C=0}; m.tc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ja=!0;this.u.fa=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.b&&(tf(this,this.b,b,d,a),this.b.Db());this.aa&&(qf(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.C=0};
function We(a,b){if(va("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 d=a.u||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;ua("http://www.pcjs.org/api/v1/report",f,!0)}} function qf(a,b){if(va("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 d=a.j||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;ua("http://www.pcjs.org/api/v1/report",f,!0)}}
function Le(a,b,d){var c,f="none";if(a.C)return null;a.C--;var e=new $c(a,"1.30.0"),h=new $c(a,"1.30.0","validate"),g=ta();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.ma(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.j.fa=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.j.fa&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)), function ef(a,b,d){var c,f="none";if(a.C)return null;a.C--;var e=new ad(a,"1.30.0"),h=new ad(a,"1.30.0","validate"),g=ra();M(h,"timestamp",g);M(e,"timestamp",g);M(e,"version","1.30.0");M(e,"url",window?window.location.href:null);M(e,"browser",window?window.navigator.userAgent:"");a.b&&a.b.Ma&&(d&&a.b.ma(),c=a.b.Ma(b,d),"object"===typeof c&&M(e,a.b.id,c),d&&(a.b.u.fa=!1,!1===c&&(f=null)));for(var g=cb(a.id),k=0;k<g.length;k++){var l=g[k];l.u.fa&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&M(e,l.id,c)),
d&&(l.j.fa=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.u&&$e(a,a.u,e.toString()),Ye(h)&&Ye(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.j.fa=!1,b=a.O.power)&&(b.textContent="Power");a.C=0;return f} d&&(l.u.fa=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.j&&uf(a,a.j,e.toString()),sf(h)&&sf(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.u.fa=!1,b=a.O.power)&&(b.textContent="Power");a.C=0;return f}
m.reset=function(){this.G&&this.G.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.G.type,void 0),this.G.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.G&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}}; m.reset=function(){this.G&&this.G.reset&&(this.H&&fb(this,0)&&this.H.message("Resetting "+this.G.type,void 0),this.G.reset());for(var a=cb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.G&&d.reset&&(this.H&&fb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=cb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}}; m.stop=function(a,b){for(var d=cb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
m.ua=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.C||(c.j.fa?Le(c,!1,!0):Se(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.j.fa&&!c.C)if(c.i&&!c.P){var a=va("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Le(c,a,!0);!a&&c.$?window&&window.location.reload():c.Nb(Oe)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ea()){d.parentNode.removeChild(d);break}this.O[b]= m.ua=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.C||(c.u.fa?ef(c,!1,!0):mf(c,c.Mb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.u.fa&&!c.C)if(c.i&&!c.P){var a=va("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ef(c,a,!0);!a&&c.$?window&&window.location.reload():c.Mb(hf)}else c.reset(),c.b&&c.b.Db()},!0;case "save":if(ea()){d.parentNode.removeChild(d);break}this.O[b]=
d;d.onclick=function(){var a=Pe(c,!0);if(a){var b=!!(c.i&&!c.P||c.$),d=Le(c,b);b?$e(c,a,d):c.oa("Resume disabled, machine state not saved")}};return!0}return!1}; d;d.onclick=function(){var a=jf(c,!0);if(a){var b=!!(c.i&&!c.P||c.$),d=ef(c,b);b?uf(c,a,d):c.oa("Resume disabled, machine state not saved")}};return!0}return!1};
function Pe(a,b){var d=a.u;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=af(a,d))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return d} function jf(a,b){var d=a.j;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=vf(a,d))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return d}
function af(a,b){a.u=null;var d=ua(fa()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.u=d.data)}catch(f){t(f.message+" ("+c+")")}return a.u}function Re(a){var b=null;a.u&&(b=fa()+"/api/v1/user?req=load&user="+a.u+"&state="+bf(a,"1.30.0"));return b} function vf(a,b){a.j=null;var d=ua(fa()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.j=d.data)}catch(f){t(f.message+" ("+c+")")}return a.j}function lf(a){var b=null;a.j&&(b=fa()+"/api/v1/user?req=load&user="+a.j+"&state="+wf(a,"1.30.0"));return b}
function $e(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=bf(a,"1.30.0");c.data=d;b=ua(fa()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.oa("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.oa(d),Ca("user",""),a.u=null)}}m.Tb=function(){}; function uf(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=wf(a,"1.30.0");c.data=d;b=ua(fa()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.oa("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.oa(d),Ca("user",""),a.j=null)}}m.Sb=function(){};
m.xa=function(a){this.f&&this.f.xa(a);this.I&&this.I.xa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new Me(h,c,!0);db(h,e);h.Y&&Se(h,h.Nb)}});Ga.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ja&&!d.j.fa&&d.Nb(-1)}}); m.wa=function(a){this.b&&this.b.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=x(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=w(d),d=x(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=w(e),h=new ff(h,c,!0);eb(h,e);h.Y&&mf(h,h.Mb)}});Ga.show.push(function(){for(var a=x(document,"pdp11","computer"),b=0;b<a.length;b++){var d=w(a[b]);(d=db("Computer",d.id))&&d.ja&&!d.u.fa&&d.Mb(-1)}});
Ga.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.j.fa&&Le(d,!(!d.i||d.P),!0)}});function $c(a,b,d){this.id=a.id;this.key=bf(a,b,d);this.H=a.H;Xe(this,a.Nc)}function bf(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a} Ga.exit.push(function(){for(var a=x(document,"pdp11","computer"),b=0;b<a.length;b++){var d=w(a[b]);(d=db("Computer",d.id))&&d.u.fa&&ef(d,!(!d.i||d.P),!0)}});function ad(a,b,d){this.id=a.id;this.key=wf(a,b,d);this.H=a.H;rf(this,a.Nc)}function wf(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
$c.prototype={constructor:$c,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Xe(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}}; ad.prototype={constructor:ad,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){rf(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
function Xe(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Ye(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Ue(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function Qe(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function Ve(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var cf=0; function rf(a,b){a[a.id]={};b&&M(a,"parms",b);a.b=!1}function sf(a){var b=!0;if(xa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function of(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function kf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=Ba(a.key))?(a[a.id]=b,a.b=!0):!1}function pf(a,b){return a[a.id][b]||null}function M(a,b,d){try{a[a.id][b]=d}catch(c){}}var xf=0;
function pf(a,b,d,c,f,e){f("Loading "+a+"...");ua(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):qf(g,a,b,d,c,f,e)})} function Jf(a,b,d,c,f,e){f("Loading "+a+"...");ua(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Kf(g,a,b,d,c,f,e)})}
function qf(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"), function Kf(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){bb(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?rf(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Lf(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function rf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");ua(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function Lf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");ua(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);rf(a,b,d)}})}else d(a,null)} "");a=a.replace(c[0],h);Lf(a,b,d)}})}else d(a,null)}
function sf(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--cf||Sa(!0));k=!1}var h,g,k=!0;cf++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d|| function Mf(a,b,d,c){function f(a){if(void 0===g){var b=h&&x(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--xf||Sa(!0));k=!1}var h,g,k=!0;xf++;ab[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?pf(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--cf||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--cf||Sa(!0)):e("invalid machine element: "+ (d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Jf(d,null,null,!1,f,function(c,k){if(k)if(bb(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--xf||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--xf||Sa(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?pf(b,a,c,!0,f,l):qf(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return sf(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})(); a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?Jf(b,a,c,!0,f,l):Kf(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return Mf(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();

View file

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