Fixed some breakpoint issues, and honored the RK11 IBA bit

This commit is contained in:
Jeff Parsons 2016-12-06 10:47:36 -08:00 committed by Jeff Parsons
commit 66ffe17659
9 changed files with 562 additions and 611 deletions

View file

@ -8,7 +8,7 @@
<device id="default" type="default"/>
<serial id="dl11" adapter="0" binding="print"/>
<panel ref="/devices/pdp11/panel/1170/debugger/front.xml"/>
<debugger id="debugger" base="8" messages="" commands=""/>
<debugger id="debugger" base="8" messages="" commands="bp 33330"/>
<device ref="/devices/pdp11/pc11/default.xml"/>
<device ref="/devices/pdp11/rk11/default.xml"/>
<device ref="/devices/pdp11/rl11/default.xml"/>

View file

@ -235,10 +235,6 @@ BusPDP11.IOController = {
var bus = this.controller;
var afn = bus.aIOHandlers[off];
if (DEBUGGER && this.dbg) {
this.dbg.checkMemoryRead(addr, 1);
}
/*
* Since addr is primarily used to advise an I/O handler of the target IOPAGE address, and since we don't want
* our handlers to worry about the current IOPAGE location, we truncate addr to 16 bits (the IOPAGE's lowest location).
@ -299,10 +295,6 @@ BusPDP11.IOController = {
var bus = this.controller;
var afn = bus.aIOHandlers[off];
if (DEBUGGER && this.dbg) {
this.dbg.checkMemoryWrite(addr, 1);
}
/*
* Since addr is primarily used to advise an I/O handler of the target IOPAGE address, and since we don't want
* our handlers to worry about the current IOPAGE location, we truncate addr to 16 bits (the IOPAGE's lowest location).
@ -381,10 +373,6 @@ BusPDP11.IOController = {
var bus = this.controller;
var afn = bus.aIOHandlers[off];
if (DEBUGGER && this.dbg) {
this.dbg.checkMemoryRead(addr, 2);
}
/*
* Since addr is primarily used to advise an I/O handler of the target IOPAGE address, and since we don't want
* our handlers to worry about the current IOPAGE location, we truncate addr to 16 bits (the IOPAGE's lowest location).
@ -426,10 +414,6 @@ BusPDP11.IOController = {
var bus = this.controller;
var afn = bus.aIOHandlers[off];
if (DEBUGGER && this.dbg) {
this.dbg.checkMemoryWrite(addr, 2);
}
/*
* Since addr is primarily used to advise an I/O handler of the target IOPAGE address, and since we don't want
* our handlers to worry about the current IOPAGE location, we truncate addr to 16 bits (the IOPAGE's lowest location).
@ -1356,7 +1340,7 @@ BusPDP11.prototype.getAddrByName = function(sName)
var off = +i;
var afn = this.aIOHandlers[off];
if (afn[BusPDP11.IOHANDLER.REG_NAME] == sName) {
return off + this.addrIOPage;
return this.addrIOPage + off;
}
}
return null;

View file

@ -1822,31 +1822,6 @@ CPUStatePDP11.prototype.mapVirtualToPhysical = function(addrVirtual, access)
return addr;
};
/**
* readByteFromPhysical(addr)
*
* @this {CPUStatePDP11}
* @param {number} addr
* @return {number}
*/
CPUStatePDP11.prototype.readByteFromPhysical = function(addr)
{
return this.bus.getByte(addr);
};
/**
* writeByteToPhysical(addr, data)
*
* @this {CPUStatePDP11}
* @param {number} addr
* @param {number} data
*/
CPUStatePDP11.prototype.writeByteToPhysical = function(addr, data)
{
if (addr & 1) this.nStepCycles--;
this.bus.setByte(addr, data);
};
/**
* popWord()
*
@ -2110,7 +2085,7 @@ CPUStatePDP11.prototype.checkStackLimit1145 = function(access, step, addr)
CPUStatePDP11.prototype.getByteSafe = function(addr)
{
this.nDisableTraps++;
var b = this.readByteFromPhysical(this.mapVirtualToPhysical(addr, PDP11.ACCESS.READ_BYTE));
var b = this.bus.getByte(this.mapVirtualToPhysical(addr, PDP11.ACCESS.READ_BYTE));
this.nDisableTraps--;
return b;
};
@ -2127,7 +2102,7 @@ CPUStatePDP11.prototype.getByteSafe = function(addr)
CPUStatePDP11.prototype.getWordSafe = function(addr)
{
this.nDisableTraps++;
var w = this.readWordFromPhysical(this.mapVirtualToPhysical(addr, PDP11.ACCESS.READ_WORD));
var w = this.readWord(addr);
this.nDisableTraps--;
return w;
};
@ -2144,7 +2119,7 @@ CPUStatePDP11.prototype.getWordSafe = function(addr)
CPUStatePDP11.prototype.setByteSafe = function(addr, data)
{
this.nDisableTraps++;
this.writeByteToPhysical(this.mapVirtualToPhysical(addr, PDP11.ACCESS.WRITE_BYTE), data);
this.bus.setByte(this.mapVirtualToPhysical(addr, PDP11.ACCESS.WRITE_BYTE), data);
this.nDisableTraps--;
};
@ -2160,7 +2135,7 @@ CPUStatePDP11.prototype.setByteSafe = function(addr, data)
CPUStatePDP11.prototype.setWordSafe = function(addr, data)
{
this.nDisableTraps++;
this.writeWordToPhysical(this.mapVirtualToPhysical(addr, PDP11.ACCESS.WRITE_WORD), data);
this.writeWord(addr, data);
this.nDisableTraps--;
};
@ -2344,7 +2319,7 @@ CPUStatePDP11.prototype.readSrcByte = function(opCode)
if (!mode) {
result = this.regsGen[reg + this.offRegSrc] & this.maskRegSrcByte;
} else {
result = this.readByteFromPhysical(this.getAddr(mode, reg, PDP11.ACCESS.READ_BYTE));
result = this.bus.getByte(this.getAddr(mode, reg, PDP11.ACCESS.READ_BYTE));
}
return result;
};
@ -2420,7 +2395,7 @@ CPUStatePDP11.prototype.readDstByte = function(opCode)
if (!mode) {
result = this.regsGen[reg] & 0xff;
} else {
result = this.readByteFromPhysical(this.getAddr(mode, reg, PDP11.ACCESS.READ_BYTE));
result = this.bus.getByte(this.getAddr(mode, reg, PDP11.ACCESS.READ_BYTE));
}
return result;
};
@ -2466,7 +2441,8 @@ CPUStatePDP11.prototype.updateDstByte = function(opCode, data, fnOp)
} else {
var addr = this.dstAddr = this.getAddr(mode, reg, PDP11.ACCESS.UPDATE_BYTE);
data = (data < 0? (this.regsGen[-data-1] & 0xff) : data);
this.writeByteToPhysical(addr, fnOp.call(this, data, this.readByteFromPhysical(addr)));
this.bus.setByte(addr, fnOp.call(this, data, this.bus.getByte(addr)));
if (addr & 1) this.nStepCycles--;
}
};
@ -2529,7 +2505,8 @@ CPUStatePDP11.prototype.writeDstByte = function(opCode, data, writeFlags, fnFlag
} else {
var addr = this.getAddr(mode, reg, PDP11.ACCESS.WRITE_BYTE);
fnFlags.call(this, (data = data < 0? (this.regsGen[-data-1] & 0xff) : data) << 8);
this.writeByteToPhysical(addr, data);
this.bus.setByte(addr, data);
if (addr & 1) this.nStepCycles--;
}
};

View file

@ -2087,8 +2087,8 @@ if (DEBUGGER) {
DebuggerPDP11.prototype.checkBreakpoint = function(addr, nb, aBreak, fTemporary)
{
/*
* Time to check for execution breakpoints; note that this should be done BEFORE updating
* history data (see checkInstruction), since we might not actually execute the current instruction.
* Time to check for breakpoints; note that this should be done BEFORE updating history data
* (see checkInstruction), since we might not actually execute the current instruction.
*/
var fBreak = false;
@ -2101,11 +2101,11 @@ if (DEBUGGER) {
if (fTemporary && !dbgAddrBreak.fTemporary) continue;
/*
* Since we're checking an execution address, which is always virtual, and virtual
* If we're checking an execution address, which is always virtual, and virtual
* addresses are always restricted to 16 bits, let's mask the breakpoint address to match
* (the user should know better, but we'll be nice).
*/
var addrBreak = this.getAddr(dbgAddrBreak) & 0xffff;
var addrBreak = this.getAddr(dbgAddrBreak) & (aBreak == this.aBreakExec? 0xffff : -1);
for (var n = 0; n < nb; n++) {
if ((addr + n) != addrBreak) continue;
@ -3134,33 +3134,35 @@ if (DEBUGGER) {
*
* 00,010,011,000,100,010 00000023042
* 0,011,000,100,010 00000003042
* + KIPAR[1]: 0,000,001,101,111,010,000,000 00000157200
* & MMU MASK: 1,111,111,111,111,111,111,111 00017777777
* + KIPAR1: 0,000,001,101,111,010,000,000 00000157200
* & MMUMASK: 1,111,111,111,111,111,111,111 00017777777
* = PHYSICAL: 0,000,001,110,010,010,100,010 00000162242
*/
var a = this.cpu.getAddrInfo(dbgAddr.addr);
this.println(str.pad("", 19) + str.toBin(dbgAddr.addr, 17, 3) + " " + str.toOct(dbgAddr.addr, 8));
if (a.length > 1) {
this.println(str.pad("", 24) + str.toBin(a[1], 13, 3) + " " + str.toOct(a[1], 8));
this.println("+ " + DebuggerPDP11.MODES[a[2]] + "PAR[" + a[3] + "]: " + str.toBin(a[4], 22, 3) + " " + str.toOct(a[4], 8));
this.println("& MMU MASK: " + str.toBin(a[5], 22, 3) + " " + str.toOct(a[5], 8));
this.println("+ " + DebuggerPDP11.MODES[a[2]] + "PAR" + a[3] + ": " + str.toBin(a[4], 22, 3) + " " + str.toOct(a[4], 8));
this.println("& MMUMASK: " + str.toBin(a[5], 22, 3) + " " + str.toOct(a[5], 8));
this.println("= PHYSICAL: " + str.toBin(a[0], 22, 3) + " " + str.toOct(a[0], 8))
}
return;
}
var len = 0; // 0 is not a default; it triggers the appropriate default below
var fRange = false;
var len = 0;
var fJSON = (sCmd == "ds");
if (sLen) {
fRange = true;
if (sLen.charAt(0) == 'l') {
fRange = false;
sLen = sLen.substr(1) || sBytes;
len = this.parseValue(sLen);
}
len = this.parseValue(sLen) >>> 0; // negative lengths not allowed
if (len > 0x10000) len = 0x10000; // prevent bad user (or variable) input from producing excessive output
else {
var dbgAddrEnd = this.parseAddr(sLen);
if (dbgAddrEnd) len = dbgAddrEnd.addr - dbgAddr.addr;
}
if (len < 0) len = 0;
if (len > 0x10000) len = 0x10000;
}
/*
@ -3168,7 +3170,7 @@ if (DEBUGGER) {
* since this is primarily a word-oriented machine.
*/
var size = (sCmd == "dd"? 4 : (sCmd == "db"? 1 : 2));
var nBytes = (fRange? (len - dbgAddr.addr) : (size * len)) || 128;
var nBytes = (size * len) || 128;
var nBytesPerLine = fJSON? 16 : this.nBase;
var nLines = (((nBytes + nBytesPerLine - 1) / nBytesPerLine)|0) || 1;

View file

@ -163,10 +163,10 @@ var PDP11 = {
* Processor modes
*/
MODE: {
KERNEL: 0x0,
SUPER: 0x1,
KERNEL: 0x0, // 11/40 and higher only
SUPER: 0x1, // 11/45 and higher only
UNUSED: 0x2,
USER: 0x3,
USER: 0x3, // 11/40 and higher only
MASK: 0x3
},
/*
@ -503,44 +503,33 @@ var PDP11 = {
KDPAR5: 0o172372, // Kernel D Page Address Register 5
KDPAR6: 0o172374, // Kernel D Page Address Register 6
KDPAR7: 0o172376, // Kernel D Page Address Register 7
MMR3: 0o172516, // 772516 17772516
RLCS: 0o174400, // RL11 Control Status Register
RLBA: 0o174402, // RL11 Bus Address Register
RLDA: 0o174404, // RL11 Disk Address Register
RLMP: 0o174406, // RL11 Multi-Purpose Register
RLBE: 0o174410, // RL11 Bus (Address) Extension Register (RLV12 controller only)
DL11: 0o176500, // DL11 Additional Register Range (ends at 0o176676)
RKDS: 0o177400, // RK11 Drive Status Register
RKER: 0o177402, // RK11 Error Register
RKCS: 0o177404, // RK11 Control Status Register
RKWC: 0o177406, // RK11 Word Count Register
RKBA: 0o177410, // RK11 Bus Address Register
RKDA: 0o177412, // RK11 Disk Address Register
// NOTE: 177414 is unused
RKDB: 0o177416, // RK11 Data Buffer Register
LKS: 0o177546, // KW11-L Clock Status
PRS: 0o177550, // PC11 (and PR11) Reader Status Register
PRB: 0o177552, // PC11 (and PR11) Reader Buffer Register
PPS: 0o177554, // PC11 Punch Status Register
PPB: 0o177556, // PC11 Punch Buffer Register
RCSR: 0o177560, // DL11 Receiver Status Register
RBUF: 0o177562, // DL11 Receiver Data Buffer Register
XCSR: 0o177564, // DL11 Transmitter Status Register
XBUF: 0o177566, // DL11 Transmitter Data Buffer Register
CNSW: 0o177570, // Console (Front Panel) Switch/Display Register
MMR0: 0o177572, // 777572 17777572
MMR1: 0o177574, // 777574 17777574
MMR2: 0o177576, // 777576 17777576
UIPDR0: 0o177600, // User I Page Descriptor Register 0
UIPDR1: 0o177602, // User I Page Descriptor Register 1
UIPDR2: 0o177604, // User I Page Descriptor Register 2
@ -573,7 +562,6 @@ var PDP11 = {
UDPAR5: 0o177672, // User D Page Address Register 5
UDPAR6: 0o177674, // User D Page Address Register 6
UDPAR7: 0o177676, // User D Page Address Register 7
R0SET0: 0o177700, //
R1SET0: 0o177701, //
R2SET0: 0o177702, //
@ -590,7 +578,6 @@ var PDP11 = {
R5SET1: 0o177715, //
R6SUPER: 0o177716, //
R6USER: 0o177717, //
/*
* This next group of registers is largely ignored; all accesses are routed to regsControl[],
* and therefore are managed as a block of 8 "CTRL" registers.
@ -602,9 +589,8 @@ var PDP11 = {
CACHEC: 0o177746, // Cache Control (11/70 only)
MAINT: 0o177750, // Maintenance (11/70 only)
HITMISS: 0o177752, // Hit/Miss (11/70 only)
UNDEF1: 0o177754,
UNDEF2: 0o177756,
UNDEF1: 0o177754, //
UNDEF2: 0o177756, //
LSIZE: 0o177760, // Lower Size Register (last 64-byte block #) (11/70 only)
HSIZE: 0o177762, // Upper Size Register (always zero) (11/70 only)
SYSID: 0o177764, // System ID Register (11/70 only)
@ -654,7 +640,7 @@ var PDP11 = {
BAUD: 9600
},
XBUF: { // 177566: DL11 Transmitter Data Buffer Register
DATA: 0x00FF // Transmitted Data (W/O) TODO: Determine why pdp11.js effectively defined this as 0x7F
DATA: 0x00FF // Transmitted Data (W/O) (TODO: Determine why pdp11.js effectively defined this as 0x7F)
}
},
KW11: { // KW11-L Line Time Clock (60Hz; well, OK, or 50Hz, if you're in the UK, I suppose...)
@ -778,7 +764,7 @@ var PDP11 = {
RL11: { // RL11 Disk Controller
PRI: 5,
VEC: 0o160,
RLCS: { // Control Status Register (174400)
RLCS: { // 174400: Control Status Register
DRDY: 0x0001, // Drive Ready (R/O)
FUNC: 0x000E, // Function Code (F2,F1,F0) (R/W)
BAE: 0x0030, // Bus Address Extension bits (BA17,BA16) (R/W)
@ -798,13 +784,13 @@ var PDP11 = {
DS: 8
}
},
RLBA: { // Bus Address Register (174402)
RLBA: { // 174402: Bus Address Register
WMASK: 0xFFFE // bit 0 is effectively not writable (always zero)
},
/*
* This register has 3 formats: one for Seek, another for Read/Write, and a third for Get Status
*/
RLDA: { // Disk Address Register (174404)
RLDA: { // 174404: Disk Address Register
SEEK_CMD: 0x0001, // Seek: bit 0 must be set, bits 1 and 3 must be clear
SEEK_DIR: 0x0004, // Direction (clear to move heads away from spindle (lower cylinder), set to move to higher cylinder)
SEEK_HS: 0x0010, // Head Select (clear to select upper head, set to select lower head)
@ -822,7 +808,7 @@ var PDP11 = {
/*
* This register has 3 formats: one for Read Header, another for Read/Write, and a third for Get Status
*/
RLMP: { // Multi-Purpose Register (177406)
RLMP: { // 177406: Multi-Purpose Register
GS_ST: { // Major State Code (of the drive)
LOADC: 0x0, // Load Cartridge
SPINUP: 0x1, // Spin-Up
@ -847,7 +833,7 @@ var PDP11 = {
GS_CHE: 0x4000, // Current Head Error
GS_WDE: 0x8000 // Write Data Error
},
RLBE: { // Bus (Address) Extension Register (174410)
RLBE: { // 174410: Bus (Address) Extension Register
MASK: 0x003F // bits 5-0 correspond to bus address bits 21-16
},
ERRC: { // NOTE: These error codes are pre-shifted to read/write directly from/to RLCS.ERRC

View file

@ -572,7 +572,7 @@ RK11.prototype.bootSelectedDisk = function()
* a READY state is assured, and the readData() call shouldn't do anything to change that.
*/
this.cpu.setReset(0, true);
var err = this.readData(drive, 0, 0, 0, 512, 0);
var err = this.readData(drive, 0, 0, 0, 512, 0x0000, 2);
if (err) {
this.notice("Unable to read the boot sector (" + err + ")");
}
@ -954,7 +954,7 @@ RK11.prototype.processCommand = function()
var fnReadWrite, sFunc = "";
var iDrive = (this.regRKDA & PDP11.RK11.RKDA.DS) >> PDP11.RK11.RKDA.SHIFT.DS;
var drive = this.aDrives[iDrive];
var iCylinder, iHead, iSector, nWords, addr;
var iCylinder, iHead, iSector, nWords, addr, inc;
this.regRKCS &= ~PDP11.RK11.RKCS.CRDY;
var func = (this.regRKCS & PDP11.RK11.RKCS.FUNC) >> PDP11.RK11.RKCS.SHIFT.FUNC;
@ -999,8 +999,9 @@ RK11.prototype.processCommand = function()
iSector = this.regRKDA & PDP11.RK11.RKDA.SA;
nWords = (0x10000 - this.regRKWC) & 0xffff;
addr = (((this.regRKCS & PDP11.RK11.RKCS.MEX)) << (16 - PDP11.RK11.RKCS.SHIFT.MEX)) | this.regRKBA;
inc = (this.regRKCS & PDP11.RK11.RKCS.IBA)? 0 : 2;
if (this.messageEnabled()) this.printMessage(this.type + ": " + sFunc + "(" + iCylinder + ":" + iHead + ":" + iSector + ") @" + str.toOct(addr) + "-" + str.toOct(addr + ((nWords - 1) << 1)), true);
if (this.messageEnabled()) this.printMessage(this.type + ": " + sFunc + "(" + iCylinder + ":" + iHead + ":" + iSector + ") " + str.toOct(addr) + "-" + str.toOct(addr + ((nWords - 1) << 1)), true, true);
if (iCylinder >= drive.nCylinders) {
this.regRKER |= PDP11.RK11.RKER.DRE | PDP11.RK11.RKER.NXC;
@ -1013,7 +1014,7 @@ RK11.prototype.processCommand = function()
break;
}
fInterrupt = fnReadWrite.call(this, drive, iCylinder, iHead, iSector, nWords, addr, (func >= PDP11.RK11.FUNC.WCHK), this.endReadWrite.bind(this));
fInterrupt = fnReadWrite.call(this, drive, iCylinder, iHead, iSector, nWords, addr, inc, (func >= PDP11.RK11.FUNC.WCHK), this.endReadWrite.bind(this));
break;
case PDP11.RK11.FUNC.DRESET:
@ -1064,7 +1065,7 @@ RK11.prototype.endReadWrite = function(err, iCylinder, iHead, iSector, nWords, a
};
/**
* readData(drive, iCylinder, iHead, iSector, nWords, addr, fCheck, done)
* readData(drive, iCylinder, iHead, iSector, nWords, addr, inc, fCheck, done)
*
* @this {RK11}
* @param {Object} drive
@ -1073,11 +1074,12 @@ RK11.prototype.endReadWrite = function(err, iCylinder, iHead, iSector, nWords, a
* @param {number} iSector
* @param {number} nWords
* @param {number} addr
* @param {number} inc (normally 2, unless inhibited, in which case it's 0)
* @param {boolean} [fCheck]
* @param {function(...)} [done]
* @return {boolean|number} true if complete, false if queued (or if no done() is supplied, the error code, if any)
*/
RK11.prototype.readData = function(drive, iCylinder, iHead, iSector, nWords, addr, fCheck, done)
RK11.prototype.readData = function(drive, iCylinder, iHead, iSector, nWords, addr, inc, fCheck, done)
{
var err = 0;
var disk = drive.disk;
@ -1119,7 +1121,7 @@ RK11.prototype.readData = function(drive, iCylinder, iHead, iSector, nWords, add
break;
}
}
addr += 2;
addr += inc;
if (ibSector >= disk.cbSector) {
sector = null;
if (++iSector >= disk.nSectors) {
@ -1138,7 +1140,7 @@ RK11.prototype.readData = function(drive, iCylinder, iHead, iSector, nWords, add
};
/**
* writeData(drive, iCylinder, iHead, iSector, nWords, addr, fCheck, done)
* writeData(drive, iCylinder, iHead, iSector, nWords, addr, inc, fCheck, done)
*
* @this {RK11}
* @param {Object} drive
@ -1147,11 +1149,12 @@ RK11.prototype.readData = function(drive, iCylinder, iHead, iSector, nWords, add
* @param {number} iSector
* @param {number} nWords
* @param {number} addr
* @param {number} inc (normally 2, unless inhibited, in which case it's 0)
* @param {boolean} [fCheck]
* @param {function(...)} [done]
* @return {boolean|number} true if complete, false if queued (or if no done() is supplied, the error code, if any)
*/
RK11.prototype.writeData = function(drive, iCylinder, iHead, iSector, nWords, addr, fCheck, done)
RK11.prototype.writeData = function(drive, iCylinder, iHead, iSector, nWords, addr, inc, fCheck, done)
{
var err = 0;
var disk = drive.disk;
@ -1168,7 +1171,7 @@ RK11.prototype.writeData = function(drive, iCylinder, iHead, iSector, nWords, ad
err = PDP11.RK11.RKER.NXM;
break;
}
addr += 2;
addr += inc;
if (!sector) {
sector = disk.seek(iCylinder, iHead, iSector + 1, true);
if (!sector) {

View file

@ -574,7 +574,7 @@ RL11.prototype.bootSelectedDisk = function()
* a READY state is assured, and the readData() call shouldn't do anything to change that.
*/
this.cpu.setReset(0, true);
var err = this.readData(drive, 0, 0, 0, 512, 0);
var err = this.readData(drive, 0, 0, 0, 512, 0x0000);
if (err) {
this.notice("Unable to read the boot sector (" + err + ")");
}
@ -1023,7 +1023,7 @@ RL11.prototype.processCommand = function()
nWords = (0x10000 - this.regRLMP) & 0xffff;
addr = (((this.regRLBE & PDP11.RL11.RLBE.MASK)) << 16) | this.regRLBA; // 22 bit mode
if (this.messageEnabled()) this.printMessage(this.type + ": " + sFunc + "(" + iCylinder + ":" + iHead + ":" + iSector + ") @" + str.toOct(addr) + "-" + str.toOct(addr + ((nWords - 1) << 1)), true);
if (this.messageEnabled()) this.printMessage(this.type + ": " + sFunc + "(" + iCylinder + ":" + iHead + ":" + iSector + ") " + str.toOct(addr) + "-" + str.toOct(addr + ((nWords - 1) << 1)), true, true);
fInterrupt = fnReadWrite.call(this, drive, iCylinder, iHead, iSector, nWords, addr, this.endReadWrite.bind(this));
break;

View file

@ -34,332 +34,331 @@
*/
for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da<ca.length-1;da++){var ea=ca[da];ea in ba||(ba[ea]={});ba=ba[ea]}var fa=ca[ca.length-1],ia=ba[fa],ja=ia?ia:function(a){return Math.log(a)/Math.LN2};
ja!=ia&&null!=ja&&aa(ba,fa,{configurable:!0,writable:!0,value:ja});
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},ma={Jf:0,$c:1,Lf:2,Mf:3,Nf:4,Of:5,Pf:6,Qf:7,Bc:8,Rf:9,ad:10,Sf:11,Tf:12,bd:13,Uf:14,Vf:15,Wf:16,Xf:17,Yf:18,Zf:19,$f:20,ag:21,bg:22,cg:23,dg:24,eg:25,fg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,zc:65,If:66,Kf:67,gg:68,E:69,hg:70,ig:71,jg:72,kg:73,lg:74,mg:75,ng:76,og:77,pg:78,qg:79,rg:80,Q:81,sg:82,tg:83,ug:84,vg:85,wg:86,xg:87,yg:88,zg:89,kd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ag:97,Bg:98,Cg:99,d:100,e:101,Eg:102,Fg:103,Gg:104,Hg:105,Kg:106,k:107,Lg:108,Mg:109,n:110,Ng:111,p:112,q:113,r:114,Og:115,t:116,Qg:117,Rg:118,Sg:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,cd:127};
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Jf:0,Yc:1,Lf:2,Mf:3,Nf:4,Of:5,Pf:6,Qf:7,Ac:8,Rf:9,Zc:10,Sf:11,Tf:12,$c:13,Uf:14,Vf:15,Wf:16,Xf:17,Yf:18,Zf:19,$f:20,ag:21,bg:22,cg:23,dg:24,eg:25,fg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,yc:65,If:66,Kf:67,gg:68,E:69,hg:70,ig:71,jg:72,kg:73,lg:74,mg:75,ng:76,og:77,pg:78,qg:79,rg:80,Q:81,sg:82,tg:83,ug:84,vg:85,wg:86,xg:87,yg:88,zg:89,hd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ag:97,Bg:98,Cg:99,d:100,e:101,Eg:102,Fg:103,Gg:104,Hg:105,Kg:106,k:107,Lg:108,Mg:109,n:110,Ng:111,p:112,q:113,r:114,Og:115,t:116,Qg:117,Rg:118,Sg:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,ad:127};
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function oa(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function p(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
function q(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function v(a){return q(a,4,!0)}function w(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function qa(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ra={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function sa(a){return a.replace(/[&<>"']/g,function(a){return ra[a]})}function ta(a,b){return(a+" ").slice(0,b)}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
function qa(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ra={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function sa(a){return a.replace(/[&<>"']/g,function(a){return ra[a]})}function ta(a,b){return(a+" ").slice(0,b)}function za(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var Aa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function Ba(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}var Ca=Date.now||function(){return+new Date};
function Da(){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 Ea(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Fa(a,b){var c,d={ha:null,ja:null,Wa:null,Va:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Wa=g.load;d.Va=g.exec;if(e=g.bytes)d.ha=e;else if(e=g.words)for(d.ha=Array(2*e.length),f=c=0;c<e.length;c++)d.ha[f++]=e[c]&255,d.ha[f++]=e[c]>>8&255;else if(e=g.data)for(d.ha=Array(4*e.length),f=c=0;c<e.length;c++)d.ha[f++]=
e[c]&255,d.ha[f++]=e[c]>>8&255,d.ha[f++]=e[c]>>16&255,d.ha[f++]=e[c]>>24&255;else d.ha=g;d.ja=g.symbols;d.ha.length?1==d.ha.length&&(x(d.ha[0]),d=null):(x("Empty resource: "+a),d=null)}catch(h){x("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){x("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ha=e)}return d}
function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}function x(a){window&&window.alert(a)}function Ha(a){var b=!1;window&&(b=window.confirm(a));return b}var Ia=null;function Ja(){if(null==Ia){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}Ia=a}return Ia}
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}
function Pa(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function Qa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ra(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ta={init:[],show:[],exit:[]},Ua=!1,$a=!1,ab=!0;function bb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function cb(a){Ta.init.push(a)}
function db(a){if(ab)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function eb(a){!ab&&a?(ab=!0,Ua&&fb("init"),$a&&fb("show")):ab=a}function fb(a){Ta[a]&&db(Ta[a])}bb("onload",function(){Ua=!0;db(Ta.init)});bb("onpageshow",function(){$a=!0;db(Ta.show)});bb(Oa("Opera")||Oa("iOS")?"onunload":"onbeforeunload",function(){db(Ta.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Fc=b.comment;this.rd=b;b=this.id.indexOf(".");0>b?this.mb=this.id:(this.nb=this.id.substr(0,b),this.mb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,ob:!1,oc:!1,la:!1,error:!1};this.dc=null;this.C.error=!1;this.D={};this.i=null;this.pa=d||0;B.push(this)}var gb=void 0,hb={};
if(window){gb||(gb=window.location.search.substr(1));for(var ib,jb=/\+/g,kb=/([^&=]+)=?([^&]*)/g;ib=kb.exec(gb);)hb[decodeURIComponent(ib[1].replace(jb," "))]=decodeURIComponent(ib[2].replace(jb," "))}function lb(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 E(a,b){b||(b=z);a.prototype=lb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var mb=window.PCjs.Machines||(window.PCjs.Machines={}),B=window.PCjs.Components||(window.PCjs.Components=[])}else mb={},B=[];function nb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function ob(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<B.length;b++){var d=B[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function pb(a){if(void 0!==a){var b;for(b=0;b<B.length;b++)if(B[b].id===a)return B[b]}return null}function qb(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<B.length;d++)if(c)c==B[d]&&(c=null);else if(!(a!=B[d].type||b&&B[d].id.indexOf(b)))return B[d]}return null}function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function G(a,b){b=H(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pdp11-binding":(g=F(f))&&g.binding&&a.ya(g.type,g.binding,f,g.value),l=h.length}}}}
function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}function x(a){window&&window.alert(a)}function Ha(a){var b=!1;window&&(b=window.confirm(a));return b}var Ia=null;function Ma(){if(null==Ia){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}Ia=a}return Ia}
function Na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Pa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}
function Qa(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function Ra(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ta(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ua={init:[],show:[],exit:[]},$a=!1,ab=!1,bb=!0;function cb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function db(a){Ua.init.push(a)}
function eb(a){if(bb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function fb(a){!bb&&a?(bb=!0,$a&&gb("init"),ab&&gb("show")):bb=a}function gb(a){Ua[a]&&eb(Ua[a])}cb("onload",function(){$a=!0;eb(Ua.init)});cb("onpageshow",function(){ab=!0;eb(Ua.show)});cb(Pa("Opera")||Pa("iOS")?"onunload":"onbeforeunload",function(){eb(Ua.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ec=b.comment;this.pd=b;b=this.id.indexOf(".");0>b?this.mb=this.id:(this.nb=this.id.substr(0,b),this.mb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,ob:!1,oc:!1,la:!1,error:!1};this.ec=null;this.C.error=!1;this.D={};this.j=null;this.pa=d||0;B.push(this)}var hb=void 0,ib={};
if(window){hb||(hb=window.location.search.substr(1));for(var jb,kb=/\+/g,lb=/([^&=]+)=?([^&]*)/g;jb=lb.exec(hb);)ib[decodeURIComponent(jb[1].replace(kb," "))]=decodeURIComponent(jb[2].replace(kb," "))}function mb(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 E(a,b){b||(b=z);a.prototype=mb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var nb=window.PCjs.Machines||(window.PCjs.Machines={}),B=window.PCjs.Components||(window.PCjs.Components=[])}else nb={},B=[];function ob(a,b,c){nb[a]&&b&&(nb[a][b]=c)}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<B.length;b++){var d=B[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function qb(a){if(void 0!==a){var b;for(b=0;b<B.length;b++)if(B[b].id===a)return B[b]}return null}function rb(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<B.length;d++)if(c)c==B[d]&&(c=null);else if(!(a!=B[d].type||b&&B[d].id.indexOf(b)))return B[d]}return null}function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function G(a,b){b=H(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pdp11-binding":(g=F(f))&&g.binding&&a.za(g.type,g.binding,f,g.value),l=h.length}}}}
function H(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ya:function(a,b,c){switch(b){case "clear":return this.D[b]||(this.D[b]=c,c.onclick=function(a){return function(){a.D.print&&(a.D.print.value="")}}(this)),!0;case "print":return this.D[b]||(this.gb=this.D[b]=c,c.value="",this.j=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.M=function(a){this.j(a,this.mb)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.mb+": "+a)},M:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},Ma:function(){return this.C.la=!0},La:function(a,b){b&&(this.C.la=!1);return!0}};function I(a,b,c,d){a.i&&(!0===c||K(a,c|0))&&a.i.message(b,d)}function K(a,b){if(a.i){a===a.i?b|=0:b=b||a.pa;var c=a.i.pa&b;return!!b&&c===b||!!(c&a.i.sd)}return!1}
function wb(a,b){if(a.C.oc)return a.C.ob=!1,a.C.oc=!1;if(a.C.error)return a.j(a.toString()+" error"),!1;a.C.ob=b;return a.C.ob}function xb(a,b){a.C.ob&&(b?a.C.oc=!0:void 0===b&&a.j(a.toString()+" busy"));return a.C.ob}function L(a,b){a.C.error||(a.C.ready=!1!==b,a.C.ready&&(b=a.dc,a.dc=null,b&&b()))}function yb(a,b){b&&(a.C.ready?b():a.dc=b);return a.C.ready}function zb(a){return a.C.error?(a.j(a.toString()+" error"),!0):!1}function Ab(a,b){a.C.error=!0;a.M(b)}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},za:function(a,b,c){switch(b){case "clear":return this.D[b]||(this.D[b]=c,c.onclick=function(a){return function(){a.D.print&&(a.D.print.value="")}}(this)),!0;case "print":return this.D[b]||(this.gb=this.D[b]=c,c.value="",this.i=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.M=function(a){this.i(a,this.mb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.mb+": "+a)},M:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},Ma:function(){return this.C.la=!0},La:function(a,b){b&&(this.C.la=!1);return!0}};function I(a,b,c,d){a.j&&(!0===c||K(a,c|0))&&a.j.message(b,d)}function K(a,b){if(a.j){a===a.j?b|=0:b=b||a.pa;var c=a.j.pa&b;return!!b&&c===b||!!(c&a.j.qd)}return!1}
function sb(a,b){if(a.C.oc)return a.C.ob=!1,a.C.oc=!1;if(a.C.error)return a.i(a.toString()+" error"),!1;a.C.ob=b;return a.C.ob}function yb(a,b){a.C.ob&&(b?a.C.oc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.C.ob}function L(a,b){a.C.error||(a.C.ready=!1!==b,a.C.ready&&(b=a.ec,a.ec=null,b&&b()))}function zb(a,b){b&&(a.C.ready?b():a.ec=b);return a.C.ready}function Ab(a){return a.C.error?(a.i(a.toString()+" error"),!0):!1}function Bb(a,b){a.C.error=!0;a.M(b)}
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Bb="undefined"!==typeof ArrayBuffer,Cb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Db={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},Eb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,
buffer:1073741824,halt:-2147483648};function Fb(a){z.call(this,"Panel",a,Fb,512);this.Da=this.v=this.kb=this.Cb=this.A=this.F=0;this.I=this.K=this.H=!1;this.L=Gb;this.g={};this.f={START:[1,1,!0,!1,this.Id],STEP:[1,1,!1,!1,this.Jd],ENABLE:[1,1,!1,!1,this.Ed],CONT:[1,1,!0,!1,this.Cd],DEP:[0,0,!0,!1,this.Dd],EXAM:[1,1,!0,!1,this.Fd],LOAD:[1,1,!0,!1,this.Hd],TEST:[0,0,!0,!1,this.Gd]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Kd,a]}E(Fb);var Gb=7;function Hb(a,b){return a.f[b]&&a.f[b][1]}k=Fb.prototype;
var Cb="undefined"!==typeof ArrayBuffer,Db="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Eb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},Fb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,
buffer:1073741824,halt:-2147483648};function Gb(a){z.call(this,"Panel",a,Gb,512);this.Da=this.v=this.kb=this.Db=this.A=this.F=0;this.I=this.K=this.H=!1;this.L=Hb;this.g={};this.f={START:[1,1,!0,!1,this.Gd],STEP:[1,1,!1,!1,this.Hd],ENABLE:[1,1,!1,!1,this.Cd],CONT:[1,1,!0,!1,this.Ad],DEP:[0,0,!0,!1,this.Bd],EXAM:[1,1,!0,!1,this.Dd],LOAD:[1,1,!0,!1,this.Fd],TEST:[0,0,!0,!1,this.Ed]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Id,a]}E(Gb);var Hb=7;function Ib(a,b){return a.f[b]&&a.f[b][1]}k=Gb.prototype;
k.reset=function(){this.stop()};
k.ya=function(a,b,c,d){if(this.B&&this.B.ya(a,b,c,d)||this.b&&this.b.ya(a,b,c,d)||this.i&&this.i.ya(a,b,c,d))return!0;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":return this.D[b]=c,this.F++,!0;default:return"led"==a||"rled"==a?(this.D[b]=c,this.g[b]=d?1:0,this.F++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0,d?1:0]),this.D[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Jb(a,b)}}(this,b),!0):this.parent.ya.call(this,a,b,c,d)}};k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;Kb(b,this,Lb);Mb(b,this.reset.bind(this));Nb(this);Ob(this)};k.Ma=function(a,b){b||(Pb(),this.reset());return!0};k.La=function(){return!0};
function Qb(a,b,c){if(a=a.D[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Nb(a,b){for(var c in a.g)Qb(a,c,null!=b?b:a.g[c])}function Rb(a,b,c){if(a=a.D[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ob(a){for(var b in a.f)Rb(a,b,a.f[b][1])}function Sb(a,b,c,d){a.D[b]&&(void 0===c&&(Ab(a,"Value for "+b+" is invalid"),a.b.fa()),c=8==(a.i&&a.i.ma||8)?p(c,d):q(c,d),a.D[b].textContent!=c&&(a.D[b].textContent=c))}
function Ib(a,b){var c=a.f[b];Rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.I="DEP"==b,a.K="EXAM"==b)}function Jb(a,b){var c=a.f[b];c[2]&&c[3]&&(Rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Id=function(a){a||this.b.C.U||(a=this.b,a.w.reset(),Tb(a),Hb(this,"ENABLE")&&this.b.lb())};k.Jd=function(){};k.Ed=function(a){a||this.b.fa()};
k.Cd=function(a){if(!a&&!this.b.C.U)if(Hb(this,"ENABLE"))this.b.lb();else{if((a=this.i)&&!xb(a,!0))wb(a,!0),a.sb(0,null),wb(a,!1);else try{var b=this.b.sb(1);0<b&&(Ub(this.b,b),Vb(this.b,b,!0),Wb(this.b,b))}catch(c){"number"!=typeof c&&Ab(this.b,c.stack||c.message)}this.stop();this.B&&this.B.za()}};k.Dd=function(a){if(a&&!this.b.C.U)if(this.I&&Xb(this),a=Yb(this,this.kb),this.L==Gb)Zb(this.w,this.Da,a);else{var b=this.b,c=this.Da;b.K++;b.xc(mc(b,c,4),a);b.K--}};
k.Fd=function(a){a||this.b.C.U||(this.K&&Xb(this),a=this.L==Gb?nc(this.w,this.Da):oc(this.b,this.Da),Yb(this,a))};k.Hd=function(a){a||this.b.C.U||pc(this,this.kb)};k.Gd=function(a){a?(this.H=!0,Nb(this,!0)):(this.H=!1,Nb(this),qc(this,0))};k.Kd=function(a,b){this.kb=a?this.kb|1<<b:this.kb&~(1<<b)};function Xb(a){var b=1145>a.b.bb?8:16,c=65472<=a.Da&&a.Da<65472+b,b=c?1:2,c=c?15:a.w.Mb;Hb(a,"STEP")||(b=-b);pc(a,a.Da&~c|a.Da+b&c)}
function pc(a,b){a.Da=b&a.w.Mb;b=a.Da;for(var c=0;22>c;c++)rc(a,"A"+c,b&1<<c)}function Yb(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)rc(a,"D"+c,b&1<<c);return a.v}function rc(a,b,c){a.g[b]=c;a.H||Qb(a,b,c)}function sc(a){return void 0!==a.D.S0}function qc(a,b){if(sc(a)){a.kb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Ob(a)}}k.stop=function(){pc(this,this.b.u[7])};k.vc=function(a){this.Da=a};k.setData=function(a,b){b?this.Cb=a:this.v=a};k.Ld=function(a,b){return(b?this.Cb:this.kb)&65535};
k.Le=function(a){this.Cb=a};var tc={},Lb=(tc[65400]=[null,null,Fb.prototype.Ld,Fb.prototype.Le,"CNSW"],tc);function Pb(){for(var a=!1,b=H(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=F(d),f=pb(e.id);f||(a=!0,f=new Fb(e));G(f,d);a&&L(f)}}cb(Pb);
function uc(a,b,c){z.call(this,"Bus",a,uc,16);this.b=b;this.i=c;this.N=a.busWidth||16;this.A=1<<this.N;this.Mb=this.A-1;this.Ka=vc;this.ra=Math.log2(this.Ka);this.L=this.Ka>>2;this.w=this.Ka-1;this.v=this.A/this.Ka|0;this.Ua=[];this.sa=0;this.B=!1;this.F=[];this.nd=[wc,xc,yc,zc];a=new M(this);Ac(a,this.i);this.da=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.da[b]=this.f[b]=a;this.Ha=this.A-vc;Bc(this,this.Ha,vc,Cc,this);this.K=this.I=(this.Ha&this.Mb)>>>this.ra;this.H=0;this.g=this.Mb;
L(this)}E(uc);var vc=8192,Dc=vc-1;function wc(a,b){var c=-1,d=this.controller,e=d.Ua[a];this.i&&Ec(this.i,b,1);var f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ua[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.i&&K(this.i,16|e[5])&&I(this.i,e[4]+".readByte("+N(this.i,b)+"): "+N(this.i,c),!0,!d.sa),c;d.Sa(b,16,3);c=255;this.i&&K(this.i,16)&&I(this.i,"warning: unconverted read access to byte @"+N(this.i,b)+": "+N(this.i,c),!0,!d.sa);return c}
function xc(a,b,c){var d=!1,e=this.controller,f=e.Ua[a];this.i&&Fc(this.i,c,1);var g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ua[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.i&&K(this.i,16|f[5])&&I(this.i,f[4]+".writeByte("+N(this.i,c)+","+N(this.i,b)+")",!0,!e.sa):(e.Sa(c,16,5),this.i&&K(this.i,16)&&I(this.i,"warning: unconverted write access to byte @"+
N(this.i,c)+": "+N(this.i,b),!0,!e.sa))}function yc(a,b){var c=-1,d=this.controller;a=d.Ua[a];this.i&&Ec(this.i,b,2);var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.i&&K(this.i,16|a[5])&&I(this.i,a[4]+".readWord("+N(this.i,b)+"): "+N(this.i,c),!0,!d.sa),c;d.Sa(b,16,2);c=65535;this.i&&K(this.i,16)&&I(this.i,"warning: unconverted read access to word @"+N(this.i,b)+": "+N(this.i,c),!0,!d.sa);return c}
function zc(a,b,c){var d=!1,e=this.controller;a=e.Ua[a];this.i&&Fc(this.i,c,2);var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.i&&K(this.i,16|a[5])&&I(this.i,a[4]+".writeWord("+N(this.i,c)+","+N(this.i,b)+")",!0,!e.sa):(e.Sa(c,16,4),this.i&&K(this.i,16)&&I(this.i,"warning: unconverted write access to word @"+N(this.i,c)+": "+N(this.i,b),!0,!e.sa))}
function Gc(a,b){if(b!=a.H){for(var c=0;c<a.v;c++)a.f[c]=a.da[c];a.H=0;a.g=a.Mb;b&&(a.H=b,b=1<<b,a.g=b-1,b-=vc,a.K=(b&a.g)>>>a.ra,a.f[a.K]=a.da[a.I])}}k=uc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Gc(this,16)};k.Ma=function(a,b){b||this.reset();return!0};
function Bc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ra;0<g&&h<a.da.length;){var l=a.da[h],m=h*a.Ka,n=a.Ka-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.G)return l.Sb+=l.G-f,l.G=f,!0;if(f>=l.G+l.Sb){n=l.size-(f-m);n>g&&(n=g);l.Sb=f-l.G+n;f=m+a.Ka;g-=n;h++;continue}}return Hc(1,f,g)}f=new M(a,f,n,a.Ka,d,e);Ac(f,a.i,l);a.da[h++]=f;f=m+a.Ka;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Ic[d]+" at "+p(b)),!0):Hc(2,b,c)}k.fc=function(a){return this.f[(a&this.g)>>>this.ra].gc(a&this.w,a)};
k.xa=function(a){return this.f[(a&this.g)>>>this.ra].Ca(a&this.w,a)};k.Rb=function(a,b){this.f[(a&this.g)>>>this.ra].jc(a&this.w,b,a)};k.Fb=function(a,b){this.f[(a&this.g)>>>this.ra].ac(a&this.w,b,a)};function Jc(a,b){return a.da[(b&a.Mb)>>>a.ra]}function nc(a,b){a.B=!1;a.sa++;b=Jc(a,b).K(b&a.w,b);a.sa--;return b}function Kc(a,b,c){a.B=!1;a.sa++;Jc(a,b).H(b&a.w,c&255,b);a.sa--}function Zb(a,b,c){a.B=!1;a.sa++;Jc(a,b).N(b&a.w,c&65535,b);a.sa--}
function Lc(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.da[d];if(e.hb||e.xd){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function Mc(a){for(var b=Nc,c=0,d=0;d<a.da.length;d++){var e=a.da[d];e.type==b&&(c=e.G+e.Sb)}return c}
function Oc(a,b,c,d,e,f,g,h,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&Dc;if(void 0!==a.Ua[n])return x("I/O address already registered: "+q(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ua[n]=[d,e,f,g,r,h||16,!1]}return!0}
function Kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.bb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],t=g[5]||1,u=0;u<t;u++,f+=2)if(r&&1<t&&(r=g[4]+u),!Oc(a,f,f,h,l,m,n,g[7]||b.pa,r||b.mb))return!1}}return!0}
k.ec=function(a){var b=null;a>=this.Ha&&(a=this.Ua[a&Dc])&&(b=a[4]);return b};function Mb(a,b){a.F.push(b)}k.Sa=function(a,b,c){this.B=!0;this.sa||(this.i&&K(this.i,4)&&I(this.i,"memory fault ("+c+") on "+N(this.i,a),!0,!0),b&&(this.b.oa|=b),this.b.ua(4,0,a))};function Pc(a){var b=a.B;a.B=!1;return b}function Hc(a,b,c){x("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}function O(a){z.call(this,"Device",a,O,256);this.f={Dg:0,wc:-1}}E(O);k=O.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.i=d;var e=this;this.f.wc=Qc(c,function(){e.f.Lb|=128;e.f.Lb&64&&Rc(e.b,e.f.Kb);e.B&&e.B.za(1);Sc(e.b,e.f.wc,1E3/60)});this.f.Kb=Tc(c,64,6,524288);Kb(b,this,Uc);Mb(b,this.reset.bind(this));d&&cd(d,64,function(a){var b=e.b;P(e,"KIPDR",b.R[0],0,a[0]);P(e,"KDPDR",b.R[0],8,a[0]);P(e,"KIPAR",b.ga[0],0,a[0]);P(e,"KDPAR",b.ga[0],8,a[0],!0);P(e,"SIPDR",b.R[1],0,a[0]);P(e,"SDPDR",b.R[1],8,a[0]);P(e,"SIPAR",b.ga[1],0,a[0]);P(e,"SDPAR",b.ga[1],8,a[0],!0);
P(e,"UIPDR",b.R[3],0,a[0]);P(e,"UDPDR",b.R[3],8,a[0]);P(e,"UIPAR",b.ga[3],0,a[0]);P(e,"UDPAR",b.ga[3],8,a[0],!0);b.Na&32&&P(e,"UNIMAP",b.Eb,-1,a[0])});L(this)};function P(a,b,c,d,e,f){a=a.i;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",h=!1,l=0,m=8;0>d&&(e=c.length,d=0,h=!0,m=l=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(h?"["+p(n,2)+"]":"")+":"),g+=" "+N(a,c[d+n],l);a.j(g+(f?"\n":""))}}k.reset=function(){this.f.Lb=128;Sc(this.b,this.f.wc,1E3/60,!0)};k.Sd=function(){return this.f.Lb};
k.Se=function(a){this.f.Lb=a&192;this.f.Lb&64||dd(this.b,this.f.Kb)};k.Ud=function(){return ed(this.b)};k.Ue=function(a){fd(this.b,a&-129|this.b.Ea&128)};k.Vd=function(){return gd(this.b)};k.Wd=function(){return hd(this.b)};k.Xd=function(){return this.b.Na};k.Ve=function(a){id(this.b,a)};k.Ee=function(a){a=a>>1&63;var b=this.b.Eb[a>>1];return a&1?b>>16:b&65535};k.Ef=function(a,b){b=b>>1&63;var c=b>>1;this.b.Eb[c]=b&1?this.b.Eb[c]&65535|(a&63)<<16:this.b.Eb[c]&-65536|a&65534};
k.xe=function(a){return this.b.R[1][a>>1&7]};k.xf=function(a,b){this.b.R[1][b>>1&7]=a&65295};k.ve=function(a){return this.b.R[1][(a>>1&7)+8]};k.vf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.we=function(a){return this.b.ga[1][a>>1&7]};k.wf=function(a,b){b=b>>1&7;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.ue=function(a){return this.b.ga[1][(a>>1&7)+8]};k.uf=function(a,b){b=(b>>1&7)+8;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.Rd=function(a){return this.b.R[0][a>>1&7]};
k.Re=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Pd=function(a){return this.b.R[0][(a>>1&7)+8]};k.Pe=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Qd=function(a){return this.b.ga[0][a>>1&7]};k.Qe=function(a,b){b=b>>1&7;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Od=function(a){return this.b.ga[0][(a>>1&7)+8]};k.Oe=function(a,b){b=(b>>1&7)+8;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.De=function(a){return this.b.R[3][a>>1&7]};k.Df=function(a,b){this.b.R[3][b>>1&7]=a&65295};
k.Be=function(a){return this.b.R[3][(a>>1&7)+8]};k.Bf=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};k.Ce=function(a){return this.b.ga[3][a>>1&7]};k.Cf=function(a,b){b=b>>1&7;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Ae=function(a){return this.b.ga[3][(a>>1&7)+8]};k.Af=function(a,b){b=(b>>1&7)+8;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Pb=function(a){a&=7;return this.b.O&2048?this.b.cb[a]:this.b.u[a]};k.Tb=function(a,b){b&=7;this.b.O&2048?this.b.cb[b]=a:this.b.u[b]=a};
k.be=function(){return this.b.O&49152?this.b.Oa[0]:this.b.u[6]};k.$e=function(a){this.b.O&49152?this.b.Oa[0]=a:this.b.u[6]=a};k.ee=function(){return this.b.u[7]};k.cf=function(a){this.b.u[7]=a};k.Qb=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.cb[a]};k.Ub=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.cb[b]=a};k.ce=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[1]};k.af=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[1]=a};
k.de=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[3]};k.bf=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[3]=a};k.Nd=function(a){return this.b.tc[a-65504>>1]};k.Ne=function(a,b){this.b.tc[b-65504>>1]=a};k.Vc=function(a){return 65520==a?(Mc(this.w)>>6)-1:0};k.Zc=function(){};k.ze=function(){return 1};k.zf=function(){};k.Md=function(){return this.b.oa};k.Me=function(){this.b.oa=0};k.Td=function(){return this.b.sc};k.Te=function(a,b){b&1||(a&=255);this.b.sc=a};
k.Yd=function(a,b){return b?0:this.b.Db};k.We=function(a){jd(this.b,a)};k.ye=function(a,b){return b?0:this.b.jb&65280};k.yf=function(a){this.b.jb=a|255};k.ae=function(){return kd(this.b)};k.Ze=function(a){ld(this.b,a)};k.Yc=function(a,b){K(this)&&I(this,"writeIgnored("+p(b)+"): "+p(a),!0,!0)};
var Q={},Uc=(Q[61568]=[null,null,O.prototype.Ee,O.prototype.Ef,"UNIMAP",64,1170],Q[62592]=[null,null,O.prototype.xe,O.prototype.xf,"SIPDR",8,1145,64],Q[62608]=[null,null,O.prototype.ve,O.prototype.vf,"SDPDR",8,1145,64],Q[62624]=[null,null,O.prototype.we,O.prototype.wf,"SIPAR",8,1145,64],Q[62640]=[null,null,O.prototype.ue,O.prototype.uf,"SDPAR",8,1145,64],Q[62656]=[null,null,O.prototype.Rd,O.prototype.Re,"KIPDR",8,1145,64],Q[62672]=[null,null,O.prototype.Pd,O.prototype.Pe,"KDPDR",8,1145,64],Q[62688]=
[null,null,O.prototype.Qd,O.prototype.Qe,"KIPAR",8,1145,64],Q[62704]=[null,null,O.prototype.Od,O.prototype.Oe,"KDPAR",8,1145,64],Q[62798]=[null,null,O.prototype.Xd,O.prototype.Ve,"MMR3",1,1145,64],Q[65382]=[null,null,O.prototype.Sd,O.prototype.Se,"LKS"],Q[65402]=[null,null,O.prototype.Ud,O.prototype.Ue,"MMR0",1,1145,64],Q[65404]=[null,null,O.prototype.Vd,O.prototype.Yc,"MMR1",1,1145,64],Q[65406]=[null,null,O.prototype.Wd,O.prototype.Yc,"MMR2",1,1145,64],Q[65408]=[null,null,O.prototype.De,O.prototype.Df,
"UIPDR",8,1145,64],Q[65424]=[null,null,O.prototype.Be,O.prototype.Bf,"UDPDR",8,1145,64],Q[65440]=[null,null,O.prototype.Ce,O.prototype.Cf,"UIPAR",8,1145,64],Q[65456]=[null,null,O.prototype.Ae,O.prototype.Af,"UDPAR",8,1145,64],Q[65472]=[null,null,O.prototype.Pb,O.prototype.Tb,"R0SET0"],Q[65473]=[null,null,O.prototype.Pb,O.prototype.Tb,"R1SET0"],Q[65474]=[null,null,O.prototype.Pb,O.prototype.Tb,"R2SET0"],Q[65475]=[null,null,O.prototype.Pb,O.prototype.Tb,"R3SET0"],Q[65476]=[null,null,O.prototype.Pb,
O.prototype.Tb,"R4SET0"],Q[65477]=[null,null,O.prototype.Pb,O.prototype.Tb,"R5SET0"],Q[65478]=[null,null,O.prototype.be,O.prototype.$e,"R6KERNEL"],Q[65479]=[null,null,O.prototype.ee,O.prototype.cf,"R7KERNEL"],Q[65480]=[null,null,O.prototype.Qb,O.prototype.Ub,"R0SET1",1,1145],Q[65481]=[null,null,O.prototype.Qb,O.prototype.Ub,"R1SET1",1,1145],Q[65482]=[null,null,O.prototype.Qb,O.prototype.Ub,"R2SET1",1,1145],Q[65483]=[null,null,O.prototype.Qb,O.prototype.Ub,"R3SET1",1,1145],Q[65484]=[null,null,O.prototype.Qb,
O.prototype.Ub,"R4SET1",1,1145],Q[65485]=[null,null,O.prototype.Qb,O.prototype.Ub,"R5SET1",1,1145],Q[65486]=[null,null,O.prototype.ce,O.prototype.af,"R6SUPER",1,1145],Q[65487]=[null,null,O.prototype.de,O.prototype.bf,"R6USER",1,1145],Q[65504]=[null,null,O.prototype.Nd,O.prototype.Ne,"CTRL",8,1170],Q[65520]=[null,null,O.prototype.Vc,O.prototype.Zc,"LSIZE",1,1170],Q[65522]=[null,null,O.prototype.Vc,O.prototype.Zc,"HSIZE",1,1170],Q[65524]=[null,null,O.prototype.ze,O.prototype.zf,"SYSID",1,1170],Q[65526]=
[null,null,O.prototype.Md,O.prototype.Me,"CPUERR",1,1170],Q[65528]=[null,null,O.prototype.Td,O.prototype.Te,"MB",1,1170],Q[65530]=[null,null,O.prototype.Yd,O.prototype.We,"PIR"],Q[65532]=[null,null,O.prototype.ye,O.prototype.yf,"SL"],Q[65534]=[null,null,O.prototype.ae,O.prototype.Ze,"PSW"],Q);
cb(function(){for(var a=H(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=F(d);switch(c.type){case "default":c=new O(c);G(c,d);break;case "pc11":c=new md(c);G(c,d);break;case "rl11":c=new R(c);G(c,d);break;case "rk11":c=new T(c),G(c,d)}}});var nd;if(Bb){var od=new ArrayBuffer(2);(new DataView(od)).setUint16(0,256,!0);nd=256===(new Uint16Array(od))[0]}else nd=!1;var pd=nd;
function M(a,b,c,d,e,f){this.w=a;this.id=qd+=2;this.b=null;this.G=b;this.Sb=c;this.size=d||0;this.type=e||rd;this.f=e==sd;this.controller=null;Ac(this);this.hb=this.xd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],td(this,f.nd);else if(Bb)this.A=new ArrayBuffer(this.size),this.F=new DataView(this.A,0,this.size),this.D=new Uint8Array(this.A,0,this.size),this.P=new Uint16Array(this.A,0,this.size>>1),this.b=new Int32Array(this.A,0,this.size>>2),td(this,pd?ud:vd);else{a=this.b=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;td(this,wd)}else td(this)}var rd=0,Nc=1,sd=2,Cc=4,Ic=["NONE","RAM","ROM","VID","H/W"],qd=0;
M.prototype={constructor:M,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Bb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Bb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.hb=!0}return!1},xb:function(a,b){b?this.g++||xd(this,yd,!1):this.B++||zd(this,yd,!1)},S:function(a,b){this.i&&K(this.i,32)&&I(this.i,
"attempt to read invalid address "+N(this.i,b),!0);this.w.Sa(b,32,2);return 255},v:function(a,b,c){this.i&&K(this.i,32)&&I(this.i,"attempt to write "+N(this.i,b)+" to invalid addresses "+N(this.i,c),!0);this.w.Sa(c,32,4)},T:function(a,b){return this.gc(a++,b++)|this.gc(a,b)<<8},L:function(a,b,c){this.jc(a++,b&255,c++);this.jc(a,b>>8,c)},ba:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},va:function(a,b){a&1&&this.w.Sa(b,64,2);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},Qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.hb=!0},eb:function(a,b,c){a&1&&this.w.Sa(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.hb=!0},mb:function(a,b){this.i&&null!=this.G&&Ec(this.i,this.G+a);return this.I(a,b)},ma:function(a,b){this.i&&null!=this.G&&Ec(this.i,this.G+a,2);return this.K(a,b)},Aa:function(a,b,c){this.i&&null!=this.G&&Fc(this.i,this.G+
a);this.f?this.v(a,b,c):this.H(a,b,c)},Ya:function(a,b,c){this.i&&null!=this.G&&Fc(this.i,this.G+a,2);this.f?this.v(a,b,c):this.N(a,b,c)},Y:function(a){return this.D[a]},nb:function(a,b){a=this.D[a];this.i&&K(this.i,32)&&I(this.i,"Memory.readByte("+N(this.i,b)+"): "+N(this.i,a),!0);return a},ca:function(a,b){a&1&&this.w.Sa(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Sa(b,64,2);a=this.P[a>>1];this.i&&K(this.i,32)&&I(this.i,"Memory.readWord("+N(this.i,b)+"): "+N(this.i,a),!0);
return a},wa:function(a,b){this.D[a]=b;this.hb=!0},Ga:function(a,b,c){this.D[a]=b;this.hb=!0;this.i&&K(this.i,32)&&I(this.i,"Memory.writeByte("+N(this.i,c)+","+N(this.i,b)+")",!0)},Ta:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.F.setUint16(a,b,!0);this.hb=!0},Za:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.P[a>>1]=b;this.hb=!0;this.i&&K(this.i,32)&&I(this.i,"Memory.writeWord("+N(this.i,c)+","+N(this.i,b)+")",!0)}};
function Ac(a,b,c){a.i=b;a.B=a.g=0;c&&((a.B=c.B)&&zd(a,yd,!1),(a.g=c.g)&&xd(a,yd,!1))}function Ad(a,b){b?--a.g||(a.jc=a.f?a.v:a.H,a.ac=a.f?a.L:a.N):--a.B||(a.gc=a.I,a.Ca=a.K)}function xd(a,b,c){c&&a.g||(a.jc=!a.f&&b[1]||a.v,a.ac=!a.f&&b[3]||a.L);if(c||void 0===c)a.H=b[1]||a.v,a.N=b[3]||a.L}function zd(a,b,c){c&&a.B||(a.gc=b[0]||a.S,a.Ca=b[2]||a.T);if(c||void 0===c)a.I=b[0]||a.S,a.K=b[2]||a.T}function td(a,b){b||(b=Bd);zd(a,b,void 0);xd(a,b,void 0)}
var Bd=[],wd=[M.prototype.ba,M.prototype.Qa,M.prototype.va,M.prototype.eb],yd=[M.prototype.mb,M.prototype.Aa,M.prototype.ma,M.prototype.Ya];if(Bb)var vd=[M.prototype.Y,M.prototype.wa,M.prototype.ca,M.prototype.Ta],ud=[M.prototype.nb,M.prototype.Ga,M.prototype.na,M.prototype.Za];
function Cd(a,b){z.call(this,"CPU",a,Cd,1);b=a.cycles||b;var c=a.multiplier||1;this.Vb=0;this.ub=b;this.pb=c;this.lc=Math.round(this.ub/1E4)/100;this.Bb=this.lc*this.pb;this.C.U=!1;this.C.ic=!1;this.C.fb=a.autoStart;this.C.Jb=!1;this.Xb=this.Ga=0;this.Yb=a.csStart;this.Nb=a.csInterval;this.Ob=a.csStop;this.N=[];this.Kc=this.Je.bind(this);L(this)}E(Cd);var Dd=["power","reset"];k=Cd.prototype;
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.i=d;this.v=a.v;for(a=0;a<Dd.length;a++)(b=this.D[Dd[a]])&&this.B.ya(null,Dd[a],b);L(this)};k.Ac=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.Ma=function(a,b){var c=Ed(this.B,"autoStart");null!=c?this.C.fb="true"==c?!0:"false"==c?!1:!!c:null==this.C.fb&&(this.C.fb=!this.i&&void 0===this.D.run);if(!b){this.Ac();if(a&&this.restore){Fd(this);if(!this.restore(a))return!1;Gd(this)}else this.reset();this.i?(a=this.i,b=this.C.fb,a.Za=!0,a.j("Type ? for help with PDPjs Debugger commands"),Hd(a),b||a.rb(),a.Ta&&(b=a.Ta,a.Ta=null,Id(a,b))):this.j("No debugger detected");this.C.fb||this.j("CPU will not be auto-started, click Run to start")}return!0};
k.La=function(a){return a?this.save():!0};k.fb=function(){return this.C.U?!0:this.C.fb?(this.lb(),!0):!1};k.Qc=function(){return 0};function Gd(a){void 0===a.Yb&&(a.Yb=0);void 0===a.Nb&&(a.Nb=-1);void 0===a.Ob&&(a.Ob=-1);a.C.Jb=0<=a.Yb&&0<a.Nb;a.C.Jb&&(a.Xb=0,a.Ga=a.Yb-a.na)}function Wb(a,b){if(a.C.Jb){var c=!1;a.Xb=a.Xb+a.Qc()|0;a.Ga-=b;0>=a.Ga&&(a.Ga+=a.Nb,c=!0);0<=a.Ob&&a.Ob<=Jd(a)&&(a.Nb=a.Ob=-1,Gd(a),a.fa(),c=!0);c&&a.j(Jd(a)+" cycles: checksum="+q(a.Xb))}}
k.ya=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.D[b]=c,!0;case "run":return this.D[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.la)a=!0;else{var b=null,c,h=ob(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.la);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.dc?" (waiting for notification)":""))+".");a=!1}a&&(d.C.U?d.fa():d.lb())},
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Kd(d,d.pb<<1,!0)},c.textContent=this.Bb.toFixed(2)+"Mhz",!0}return!1};k.za=function(a){this.B&&this.B.za(a)};function Vb(a,b,c){a.na+=b;c&&(a.ma=a.b=a.L=0)}function Ld(a,b){var c=1;b&&1<a.pb&&a.Aa&&(c=a.Aa/a.lc);a.Ic=Math.round(1E3/30);a.vb=Math.floor(a.ub/30*c);b||(a.Qa=a.vb);a.mc=0}function Jd(a){return a.na+a.Y+a.ma-a.b}function Fd(a){a.Aa=0;a.Jc=0;a.na=a.Y=a.ma=a.b=a.L=0;Gd(a);Kd(a,1)}
function Kd(a,b,c){var d=!1;if(void 0!==b){.8>a.Aa/a.Bb?b=1:d=!0;a.pb=b;b=a.lc*a.pb;if(a.Bb!=b){a.Bb=b;b=a.Bb.toFixed(2)+"Mhz";var e=a.D.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.B&&a.B.rb()}Vb(a,a.Y);a.Y=0;a.T=Ca();a.ca=0;Ld(a);return d}function Qc(a,b){var c=a.N.length;a.N.push([-1,b]);return c}function Sc(a,b,c,d){0<=b&&b<a.N.length&&(d||0>a.N[b][0])&&(c=a.ub*a.pb/1E3*c|0,a.C.U&&(c+=Md(a)),a.N[b][0]=c)}
function Nd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ub(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Md(a,b){var c=a.ma-=a.b;a.b=a.L=0;b&&(a.ma=0);return c}
k.Je=function(){if(this.C.U){this.mc>=this.ub&&Ld(this,!0);this.Za=0;this.eb=Ca();if(this.ca){var a=this.eb-this.ca;a>this.Ic&&(this.T+=a,this.T>this.eb&&(this.T=this.eb))}try{do{var b=Nd(this,this.C.Jb?1:this.vb);try{this.sb(b)}catch(e){if("number"!=typeof e)throw e;}b=Md(this,!0);this.Za+=b;this.Y+=b;Wb(this,b);Ub(this,b);this.Qa-=b;if(0>=this.Qa){this.Qa+=this.vb;15<=++this.Jc&&(this.za(),this.Jc=0);break}}while(this.C.U)}catch(e){this.fa();this.B&&this.B.stop(Ca(),Jd(this));Ab(this,e.stack||e.message);
return}if(this.C.U){a=setTimeout;b=this.Kc;this.ca=Ca();var c=this.Ic;this.Za&&(c=Math.round(c*this.Za/this.vb));var c=c-(this.ca-this.eb),d=this.ca-this.T;d&&(this.Aa=Math.round(this.Y/(10*d))/100,864E5<=d&&(this.na=0,Kd(this)));if(0>c||this.Aa<this.Bb)-1E3>c&&(this.T-=c),c=0;this.mc+=this.Za;this.ca+=c;a(b,c)}}};
k.lb=function(a){if(zb(this))return!1;if(this.C.U)return this.j(this.toString()+" busy"),!1;Kd(this);this.C.U=!0;this.C.ic=!0;var b=this.D.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.rb(!0),this.B.start(this.T,Jd(this)));this.i||this.status("Started");setTimeout(this.Kc,0);return!0};k.sb=function(){return 0};
k.fa=function(a){var b=!1;if(this.C.U){Md(this);Vb(this,this.Y);this.Y=0;this.C.U=!1;if(b=this.D.run)b.textContent="Run";this.B&&this.B.stop(Ca(),Jd(this));b=!0;this.i||this.status("Stopped")}this.C.complete=a;return b};
function Od(a){this.bb=+a.model||1170;this.Ec=a.addrReset||0;Cd.call(this,a,6666667);this.wb=0;this.Hc=255;1120>=this.bb?(this.decode=Pd.bind(this),this.wa=this.ud,this.wb=8,this.Hc=-1,this.yc=255,this.Lc=0):(this.decode=Qd.bind(this),this.wa=this.vd,this.yc=~(1792|(1145>this.bb?2048:0))&65535,this.Lc=1145<=this.bb?2048:0);Rd(this);this.K=0;this.I=null;this.Wb=[];this.C.complete=!1}E(Od,Cd);k=Od.prototype;
k.Ac=function(){for(var a=192,b=0;b<this.Wb.length;b++){var c=this.Wb[b];0>c.$b&&(c.$b=a,a+=4)}};k.reset=function(){this.status("Model "+this.bb);this.C.U&&this.fa();Rd(this);Fd(this);this.C.error=!1;this.parent.reset.call(this)};
function Rd(a){a.V=65536;a.W=32768;a.Z=65535;a.X=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.Ec,-1,-2,-3,-4,-5,-6,-7,-8];a.cb=[0,0,0,0,0,0];a.Oa=[0,0,0,0];a.A=0;a.Gc=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,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,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ga=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0]];a.Eb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.tc=[0,0,0,0,0,0,0,0];a.sc=0;a.J=0;a.F=a.H=0;a.g=a.f=a.kc=0;a.va=-1;Tb(a)}function Tb(a){a.Ea=0;a.Gb=0;a.Hb=0;a.Na=0;a.oa=0;a.Db=0;a.jb=255;a.ba=0;a.Ta=0;a.Ya=0;a.S=262143;a.Ib=0;a.ta=0;a.I=null;a.w&&(Sd(a),a.md=Mc(a.w))}function Sd(a){a.ba?(a.P=65536,a.Ha=a.Na&16?4186112:253952,a.aa=a.zd,a.Ca=a.Fe,a.ac=a.Ff,Gc(a.w,a.Na&16?22:18)):(a.P=0,a.Ha=57344,a.aa=a.yd,a.Ca=a.Wc,a.ac=a.xc,Gc(a.w,16))}
function ed(a){var b=a.Ea;b&57344||(b=b&-3199|a.Ta<<5|a.Ya<<1);return b}function fd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.Gb=a.ta>>16&65535,a.Hb=a.ta&65535);a.Ea=b;a.Ta=(b&96)>>5;a.Ya=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.ba!=c&&(a.ba=c,Sd(a))}}function gd(a){a.Ea&57344||(a.Gb=a.ta>>16&65535);a=a.Gb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function hd(a){a.Ea&57344||(a.Hb=a.ta&65535);return a.Hb}
function id(a,b){1170>a.bb&&(b&=-49);a.Na!=b&&(a.Na=b,a.S=b&16?4194303:262143,Sd(a))}function Td(a,b,c){a.Ec=b;a.w.reset();Tb(a);Ud(a,b);ld(a,0);if(c){for(b=2;5>=b;b++)a.u[b]=0;a.C.U||a.lb()}else a.i?a.fa()||Hd(a.i):!1===c&&a.fa();!a.C.U&&a.v&&a.v.stop()}k.Qc=function(){return 0};
k.save=function(){var a=new U(this);a.set(0,[this.u,this.cb,this.Oa,this.Eb,this.tc,this.oa,this.sc,this.Db,this.jb,kd(this),this.va,this.A,this.J,this.Ea,this.Gb,this.Hb,this.Na,this.Ta,this.Ya,this.R,this.ga,this.ba,this.S,this.Ib,this.ta]);a.set(1,[this.na,this.pb]);a.set(2,Lc(this.w));return a.data()};
k.restore=function(a){var b=a[1];this.na=b[1];Kd(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.L){for(var f=0,g=Array(b.L),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.da[d];if(!f||!f.restore(e)){x("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Vd(a){return a.V&65536?1:0}function Wd(a){return a.W&32768?2:0}function Xd(a){return a.Z&65535?0:4}function Yd(a){return a.X&32768?8:0}
function Zd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function Ud(a,b){a.u[7]=b&65535}function Tc(a,b,c,d){c={$b:b,qb:c,message:d||0,next:null};c.name=Db[b];a.Wb.push(c);return c}function $d(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.J|=1)}
function Rc(a,b){if(b!=a.I){var c=a.I;if(!c||c.qb<=b.qb)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.qb<=b.qb){b.next=d;c.next=b;break}c=d}while(c)}}a.J|=1;b.message&&K(a,b.message|8)&&I(a,"setIRQ(vector="+p(b.$b)+",priority="+b.qb+")",!0,!0)}function dd(a,b){$d(a,b);b.message&&K(a,b.message|8)&&I(a,"clearIRQ(vector="+p(b.$b)+",priority="+b.qb+")",!0,!0)}function ae(a){return a.J&64?(a.ua(168,64,-6),!0):a.J&32?(a.ua(4,32,-5),!0):a.J&16?(a.ua(12,16,-7),!0):!1}
function kd(a){return a.O=a.O&63728|Yd(a)|Xd(a)|Wd(a)|Vd(a)}function ld(a,b){b&=a.yc;a.X=b<<12;a.Z=~b&4;a.W=b<<14;a.V=b<<16;if((b^a.O)&a.Lc)for(var c=a.cb.length;0<=--c;){var d=a.u[c];a.u[c]=a.cb[c];a.cb[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Oa[c]=a.u[6],a.u[6]=a.Oa[a.A]);a.O=b;a.J&=-3;a.J|=a.I?2:1}function jd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.J|=1}a.Db=b}k.Fa=function(a){this.X=this.Z=a;this.W=0};k.tb=function(a,b){this.X=this.Z=this.V=a;this.W=b||0};
function be(a,b){a.X=a.Z=a.V=b;a.W=a.X^a.V>>1}function ce(a,b,c,d){a.X=a.Z=a.V=b;a.W=(c^d)&(d^b)}
k.ua=function(a,b,c){if(!this.K){0>this.va?this.va=kd(this):this.A||(c=-4);-4==c&&(this.J&256&&(c=-1),this.J|=256,this.oa|=4,this.u[6]=a=4);if(-1!=c){this.ta=a|4143316992;this.A=0;var d=this.Ca(a|this.P),e=this.Ca(a+2&65535|this.P);ld(this,e&-12289|this.va>>2&12288);de(this,this.va);de(this,this.u[7]);Ud(this,d)}this.b-=5;this.J&=~(b|19);this.J|=129;this.va=-1;this.wd=a;this.td=c;-1==c&&this.fa();if(-4<=c)throw a;}};
function ye(a){var b=ze(a),c=ze(a);a.O&49152&&(c=c&-225|a.O&63712);Ud(a,b);ld(a,c);a.J&=-17}k.Ja=function(a){var b=a>>13&31;31>b&&(a=this.Na&32?this.Eb[b]+(a&8190)&4194302:a&-3932161);return a};k.ec=function(a){var b=[];if(this.ba){var c=this.A<<1,d=a>>13;7<d&&(c|=1);this.Na&this.Gc[this.A]||(d&=7);var e=a&8191,f=this.ga[this.A][d]<<6;a=f+e&this.S;3932160<=a&&(a=this.Ja(a));b.push(a);b.push(e);b.push(c);b.push(d&7);b.push(f);b.push(this.S)}else a&=65535,57344<=a&&(a|=this.Ha),b.push(a);return b};
function mc(a,b,c){var d,e,f;if(!(c&a.ba))return f=b&65535,57344<=f&&(f|=a.Ha),f;d=b>>13;a.Na&a.Gc[a.A]||(d&=7);e=a.R[a.A][d];f=(a.ga[a.A][d]<<6)+(b&8191)&a.S;3932160<=f&&(f=a.Ja(f));if(a.K)return f;f>=a.md&&f<a.Ha?(a.oa|=32,a.ua(4,0,f)):f&1&&!(c&1)&&(a.oa|=64,a.ua(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
8128)&&(g|=16384));a.R[a.A][d]=e;if(f!=(4194170&a.S)||a.A)a.Ta=a.A,a.Ya=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Ta<<5|a.Ya<<1,fd(a,a.Ea&-61695|g&61694)),a.ua(168,64,-2)),a.Ea&61440||!(f<(4191360&a.S)||f>(4194239&a.S))||(a.Ea|=4096,a.Ea&512&&(a.J|=64)));return f}function Ae(a,b){return a.w.fc(b)}function ze(a){var b=a.Ca(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}
function de(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.ta=a.ta&65535|(a.ta&-65536)<<8|16121856;a.J&256||a.wa(4,-2,c);a.ac(c,b)}
function Be(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.ua(4,0,-3),0;case 1:return 6==c&&a.wa(d,0,a.u[6]),a.b-=3,7==c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];6==c&&a.wa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!=c&&(e|=g);e=a.Ca(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;6==c&&a.wa(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!=c&&(e|=g);e=a.Ca(e)|g;a.b-=8;break;case 6:return e=a.Ca(Zd(a,2)),e=e+a.u[c]&65535,6==c&&a.wa(d,
0,e),a.b-=6,e|g;case 7:return e=a.Ca(Zd(a,2)),e=e+a.u[c]&65535,e=a.Ca(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.ta=a.ta&65535|(a.ta&-65536)<<8|(f<<3&248|c)<<16;return e}k.ud=function(a,b,c){!this.A&&0>=b&&c<=this.jb&&(this.J|=32)};k.vd=function(a,b,c){this.A||(65534<=c&&(c|=-65536),a&4&&c<=this.jb&&(c<=this.jb-32?this.ua(4,0,-4):(this.oa|=8,this.J|=32)))};function oc(a,b){a.K++;b=a.Wc(mc(a,b,2));a.K--;return b}k.yd=function(a,b,c){a=Be(this,a,b,c);3932160<=a&&(a=this.Ja(a));return a};
k.zd=function(a,b,c){return mc(this,Be(this,a,b,c),c)};k.Wc=function(a){3932160<=a&&(a=this.Ja(a));return this.w.xa(this.Ib=a)};k.Fe=function(a){return this.w.xa(this.Ib=mc(this,a,2))};k.xc=function(a,b){3932160<=a&&(a=this.Ja(a));this.w.Fb(this.Ib=a,b)};k.Ff=function(a,b){this.w.Fb(this.Ib=mc(this,a,4),b)};
function Ce(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Be(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.A=a.O>>12&3,c=a.Ca(d|c&a.P),a.A=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Oa[a.O>>12&3];return c}function De(a,b,c,d){a.ta=a.ta&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Be(a,b,e,4),c&65536||(e&=65535),a.A=a.O>>12&3,e=mc(a,e|c&65536,4),a.A=a.O>>14&3,a.w.Fb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Oa[a.O>>12&3]=d}
function Ee(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?Ae(a,a.aa(b,c,3)):a.u[c+a.wb]&a.Hc}function Fe(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?a.w.xa(a.aa(b,c,2)):a.u[c+a.wb]}function Ge(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Be(a,b,c,8)}function He(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ae(a,a.aa(b,c,3)):a.u[c]&255}function Ie(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.xa(a.aa(b,c,2)):a.u[c]}
function Je(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.kc=a.aa(b,e,7),c=0>c?a.u[-c-1]&255:c,c=d.call(a,c,Ae(a,e)),e&1&&a.b--,a.w.Rb(e,c)):(b=a.u[e],c=0>c?a.u[-c-1]&255:c,a.u[e]=b&65280|d.call(a,c,b&255))}function V(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,6),a.w.Fb(e,d.call(a,0>c?a.u[-c-1]:c,a.w.xa(e)))):a.u[e]=d.call(a,0>c?a.u[-c-1]:c,a.u[e])}
function Ke(a,b,c,d,e){var f=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.aa(b,f,5),e.call(a,(c=0>c?a.u[-c-1]&255:c)<<8),d&1&&a.b--,a.w.Rb(d,c)):(c?(c=0>c?a.u[-c-1]&255:c,a.u[f]=a.u[f]&~d|c<<24>>24&d):a.u[f]&=~d,e.call(a,c<<8))}function Le(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,4),d.call(a,c=0>c?a.u[-c-1]:c),a.w.Fb(e,c)):(a.u[e]=c=0>c?a.u[-c-1]:c,d.call(a,c))}function W(a,b,c){c&&(Ud(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
k.sb=function(a){this.C.complete=!0;var b=this.i?Me(this.i)?1:this.C.ic?-1:0:0,c=a?this.C.ic?0:1:-1;this.C.ic=!1;this.ma=this.b=a;this.J=this.J&-5|(b?4:0);do{if(this.J){if(this.J&4){if(Ne(this.i,this.u[7],c)){this.fa();break}++b||(this.J&=-5);c||c++}if(a=this.J&11)if(a=!1,this.J&2){var d=160,e=(this.Db&224)>>5,f=this.I&&this.I.qb>e?this.I:null;f&&(d=f.$b,e=f.qb);e>(this.O&224)>>5?(this.J&8&&(Zd(this,2),this.J&=-9),this.ua(d,0,-10),e=!0):e=!1;e&&(f&&$d(this,f),a=!0);this.I||this.Db||(this.J&=-3)}else this.J&
1&&this.J++;if(a){if(this.J&4&&Ne(this.i,this.u[7],c)){this.fa();break}if(0>c)break}if(this.J&112&&ae(this)){if(this.J&4&&Ne(this.i,this.u[7],c)){this.fa();break}if(0>c)break}}this.J=this.J&15|this.O&16;a=this.ta=this.u[7];f=this.Ca(a);this.u[7]=a+2&65535;this.decode(f)}while(0<this.b);return this.C.complete?this.ma-this.b:void 0===this.C.complete?0:-1};cb(function(){for(var a=H(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Od(d);G(d,c)}});
function Oe(a,b){var c=b+a;this.X=this.Z=this.V=c;this.W=(a^c)&(b^c);return c&65535}function Pe(a,b){var c=b+a,d=c<<8;this.X=this.Z=this.V=d;this.W=(a<<8^d)&(b<<8^d);return c&255}function Qe(a,b){a=b<<1;be(this,a);return a&65535}function Re(a,b){a=b<<1;be(this,a<<8);return a&255}function Se(a,b){a=b&32768|b>>1|b<<16;be(this,a);return a&65535}function Te(a,b){a=b&128|b>>1|b<<8;be(this,a<<8);return a&255}function Ue(a,b){a=b&~a;this.Fa(a);return a}function Ve(a,b){a=b&~a;this.Fa(a<<8);return a}
function We(a,b){a|=b;this.Fa(a);return a}function Xe(a,b){a|=b;this.Fa(a<<8);return a}function Ye(a,b){a=~b|65536;this.tb(a);return a&65535}function Ze(a,b){a=~b|256;this.tb(a<<8);return a&255}function $e(a,b){this.X=this.Z=a=b-a;this.W=b&(b^a);return a&65535}function af(a,b){a=b-a;var c=a<<8;b<<=8;this.X=this.Z=c;this.W=b&(b^c);return a&255}function bf(a,b){this.X=this.Z=a=b+a;this.W=a&(b^a);return a&65535}function cf(a,b){a=b+a;var c=a<<8;this.X=this.Z=c;this.W=c&(b<<8^c);return a&255}
function df(a,b){a=-b;this.tb(a,a&b&32768);return a&65535}function ef(a,b){a=-b;this.tb(a<<8,(a&b&128)<<8);return a&255}function ff(a,b){a=b<<1|this.V>>16&1;be(this,a);return a&65535}function gf(a,b){a=b<<1|this.V>>16&1;be(this,a<<8);return a&255}function hf(a,b){a=(this.V&65536|b)>>1|b<<16;be(this,a);return a&65535}function jf(a,b){a=((this.V&65536)>>8|b)>>1|b<<8;be(this,a<<8);return a&255}function kf(a,b){var c=b-a;ce(this,c,a,b);return c&65535}
function lf(a,b){var c=b-a;ce(this,c<<8,a<<8,b<<8);return c&255}function mf(a,b){this.X=this.Z=b&65280;this.W=this.V=0;return(b<<8|b>>8)&65535}function nf(a,b){a^=b;this.Fa(a);return a&65535}function of(a){V(this,a,Fe(this,a),Oe);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
function pf(a){var b=Ie(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.V=this.W=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.V=c<<17-b,c>>=b;else if(b)if(16<b)this.W=c,c=0;else{this.V=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.W=32768)}this.u[a]=c&65535;this.X=this.Z=c;this.b-=(this.g?6:7)+b}
function qf(a){var b=Ie(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.V=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.V=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.W=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;this.b-=(this.g?6:7)+b}function rf(a){W(this,a,!Vd(this))}function sf(a){W(this,a,Vd(this))}
function tf(a){V(this,a,Fe(this,a),Ue);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function uf(a){Je(this,a,Ee(this,a),Ve);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function vf(a){V(this,a,Fe(this,a),We);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function wf(a){Je(this,a,Ee(this,a),Xe);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
function xf(a){var b=Fe(this,a);a=Ie(this,a);this.Fa((0>b?this.u[-b-1]:b)&a);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function yf(a){var b=Ee(this,a);a=He(this,a);this.Fa(((0>b?this.u[-b-1]&255:b)&a)<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function zf(a){W(this,a,Xd(this))}function Af(a){W(this,a,!Yd(this)==!Wd(this))}function Bf(a){W(this,a,!Xd(this)&&!Yd(this)==!Wd(this))}function Cf(a){W(this,a,!Vd(this)&&!Xd(this))}
function Df(a){W(this,a,Xd(this)||!Yd(this)!=!Wd(this))}function Ef(a){W(this,a,Vd(this)||Xd(this))}function Ff(a){W(this,a,!Yd(this)!=!Wd(this))}function Gf(a){W(this,a,Yd(this))}function Hf(a){W(this,a,!Xd(this))}function If(a){W(this,a,!Yd(this))}function Jf(){this.ua(12,0,-9)}function Kf(a){W(this,a,!0)}function Lf(a){W(this,a,!Wd(this))}function Mf(a){W(this,a,Wd(this))}function Nf(a){a&1&&(this.V=0);a&2&&(this.W=0);a&4&&(this.Z=1);a&8&&(this.X=0);this.b-=5}
function Of(a){var b=Fe(this,a);a=Ie(this,a);var c=(b=0>b?this.u[-b-1]:b)-a;ce(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Pf(a){var b=Ee(this,a);a=He(this,a);var c=(b=(0>b?this.u[-b-1]&255:b)<<8)-(a<<=8);ce(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}
function Qf(a){var b=Ie(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.W=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.Z=this.X=0,this.W=32768,this.V=65536,this.b-=7}function Rf(){this.ua(24,0,-9);this.b-=20}
function Sf(){this.O&49152?(this.oa|=128,this.ua(4,0,-8)):(this.v&&1120==this.bb&&this.v.setData(this.u[0],!0),this.i?Tf(this.i):this.fa());this.b-=7}function Uf(){this.ua(16,0,-9);this.b-=20}var Vf=[0,7,7,10,7,11,9,13];function Wf(a){this.L=this.b;Ud(this,Ge(this,a));this.b=this.L-Vf[this.g]}var Xf=[0,14,14,17,14,18,16,20];function Yf(a){this.L=this.b;var b=Ge(this,a);a=a>>6&7;de(this,this.u[a]);this.u[a]=this.u[7];Ud(this,b);this.b=this.L-Xf[this.g]}
var Zf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function $f(a){var b=Fe(this,a);this.L=this.b;Le(this,a,b,this.Fa);this.b=this.L-Zf[(this.F?8:0)+this.g]+(7!=this.f||this.g?0:2)}function ag(a){var b=Ee(this,a);Ke(this,a,b,65535,this.Fa);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}var bg=[7,13,13,17,14,18,17,21];
function cg(a){var b=Ie(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.X=b>>16;this.Z=this.X|b;this.W=0;this.V=-32768>b||32767<b?65536:0;this.b-=23}function dg(){this.b-=5}function eg(){this.O&49152||(this.w.reset(),Tb(this),this.v&&this.v.setData(this.u[0],!0));this.b-=667}function fg(a){if(a&8)X.call(this,a);else{var b=ze(this);a&=7;7==a?Ud(this,b):(Ud(this,this.u[a]),this.u[a]=b);this.b-=9}}
function gg(){ye(this);this.b-=13}function hg(a){a&1&&(this.V=65536);a&2&&(this.W=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);this.b-=5}function ig(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)Ud(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function jg(a){V(this,a,Fe(this,a),kf);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function kg(a){V(this,a,0,mf);this.b-=this.g?9:3+(7==this.f?2:0)}function lg(){this.ua(28,0,-9)}
function mg(){this.v&&(this.v.vc(this.u[7],!0),this.v.setData(this.u[0],!0));this.J|=8;Zd(this,-2);this.b-=3}function ng(a){V(this,a,this.u[(a>>6&7)+this.wb],nf);this.b-=this.g?9:3+(7==this.f?2:0)}function X(a){var b;if(b=this.i)b=this.i,K(b,1)?(I(b,"undefined opcode "+N(b,a),!0,!0),b=Tf(b)):b=!1;b||this.ua(8,0,-9)}function Pd(a){og[a>>12].call(this,a)}function pg(a){qg[a>>6&3].call(this,a)}function rg(a){sg[a>>6&3].call(this,a)}function tg(a){ug[a>>6&3].call(this,a)}
function vg(a){wg[a&15].call(this,a)}function xg(a){yg[a&15].call(this,a)}function zg(a){Ag[a>>6&3].call(this,a)}function Bg(a){Cg[a>>6&3].call(this,a)}function Dg(a){Eg[a>>6&3].call(this,a)}
var og=[function(a){Fg[a>>8&15].call(this,a)},$f,Of,xf,tf,vf,of,X,function(a){Gg[a>>8&15].call(this,a)},ag,Pf,yf,uf,wf,jg,X],Fg=[function(a){Hg[a>>4&15].call(this,a)},Kf,Hf,zf,Af,Ff,Bf,Df,Yf,Yf,pg,rg,tg,X,X,X],qg=[function(a){Le(this,a,0,this.tb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ye);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,bf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,$e);this.b-=this.g?9:3+(7==this.f?2:0)}],sg=[function(a){V(this,a,0,df);
this.b-=this.g?11:6},function(a){V(this,a,Vd(this)?1:0,Oe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,Vd(this)?1:0,kf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ie(this,a);this.tb(a);this.b-=this.g?4:3+(7==this.f?2:0)}],ug=[function(a){V(this,a,0,hf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,ff);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Qe);this.b-=this.g?9:3+(7==this.f?2:0)}],Hg=
[function(a){Ig[a&15].call(this,a)},X,X,X,Wf,Wf,Wf,Wf,fg,X,vg,xg,kg,kg,kg,kg],Ig=[Sf,mg,gg,Jf,Uf,eg,X,X,X,X,X,X,X,X,X,X],wg=[dg,function(){this.V=0;this.b-=5},function(){this.W=0;this.b-=5},Nf,function(){this.Z=1;this.b-=5},Nf,Nf,Nf,function(){this.X=0;this.b-=5},Nf,Nf,Nf,Nf,Nf,Nf,Nf],yg=[dg,function(){this.V=65536;this.b-=5},function(){this.W=32768;this.b-=5},hg,function(){this.Z=0;this.b-=5},hg,hg,hg,function(){this.X=32768;this.b-=5},hg,hg,hg,hg,hg,hg,hg],Gg=[If,Gf,Cf,Ef,Lf,Mf,rf,sf,Rf,lg,zg,Bg,
Dg,X,X,X],Ag=[function(a){Ke(this,a,0,255,this.tb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,0,Ze);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,1,cf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,1,af);this.b-=this.g?9:3+(7==this.f?2:0)}],Cg=[function(a){Je(this,a,0,ef);this.b-=this.g?11:6},function(a){Je(this,a,Vd(this)?1:0,Pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,Vd(this)?1:0,lf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=He(this,
a);this.tb(a<<8);this.b-=this.g?4:3+(7==this.f?2:0)}],Eg=[function(a){Je(this,a,0,jf);this.b-=this.g?9+(this.kc&1):3+(7==this.f?2:0)},function(a){Je(this,a,0,gf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,0,Te);this.b-=this.g?9+(this.kc&1):3+(7==this.f?2:0)},function(a){Je(this,a,0,Re);this.b-=this.g?9:3+(7==this.f?2:0)}];function Qd(a){Jg[a>>12].call(this,a)}
var Jg=[function(a){Kg[a>>8&15].call(this,a)},$f,Of,xf,tf,vf,of,function(a){Lg[a>>8&15].call(this,a)},function(a){Mg[a>>8&15].call(this,a)},ag,Pf,yf,uf,wf,jg,X],Kg=[function(a){Ng[a>>4&15].call(this,a)},Kf,Hf,zf,Af,Ff,Bf,Df,Yf,Yf,pg,rg,tg,function(a){Og[a>>6&3].call(this,a)},X,X],Og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.Ca(a|this.P);Ud(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Ce(this,a,0);this.Fa(a);de(this,a);this.b-=11},function(a){var b=ze(this);
this.L=this.b;this.Fa(b);De(this,a,0,b);this.b=this.L-bg[this.g]},function(a){Le(this,a,Yd(this)?65535:0,this.Fa);this.b-=this.g?9:3+(7==this.f?2:0)}],Ng=[function(a){Pg[a&15].call(this,a)},X,X,X,Wf,Wf,Wf,Wf,fg,function(a){a&8?(this.O&49152||(this.O=this.O&-225|(a&7)<<5,this.J|=1,this.J&=-3),this.b-=5):X.call(this,a)},vg,xg,kg,kg,kg,kg],Pg=[Sf,mg,function(){ye(this);this.J|=this.O&16;this.b-=13},Jf,Uf,eg,gg,function(){this.ua(8,0,-9)},X,X,X,X,X,X,X,X],Lg=[cg,cg,Qf,Qf,pf,pf,qf,qf,ng,ng,X,X,X,X,ig,
ig],Mg=[If,Gf,Cf,Ef,Lf,Mf,rf,sf,Rf,lg,zg,Bg,Dg,function(a){Qg[a>>6&3].call(this,a)},X,X],Qg=[X,function(a){a=Ce(this,a,65536);this.Fa(a);de(this,a);this.b-=11},function(a){var b=ze(this);this.L=this.b;this.Fa(b);De(this,a,65536,b);this.b=this.L-bg[this.g]},X];
function Rg(a){z.call(this,"ROM",a,Rg,128);this.ja=this.B=null;this.A=a.addr;this.f=a.size;this.F=!1;this.v=a.alias;this.g=a.file;this.H=w(this.g);if(this.g){a=this.g;var b=pa(this.H);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.M("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(nb(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja):c.g=null);Sg(c)})}}E(Rg);k=Rg.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.b=c;this.i=d;Sg(this)};k.Ma=function(){this.ja&&(this.i&&Tg(this.i,this.id,this.A,this.f,this.ja),delete this.ja);return!0};k.La=function(){return!0};
function Sg(a){if(!yb(a)){if(a.g){if(!a.B||!a.w)return;a.f||(a.f=a.B.length);if(a.B.length!=a.f)Ab(a,"ROM size ("+q(a.B.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")");else{var b;a:{b=a.A;a.status(a.f+"-byte ROM at "+p(b));if(57344<=b&&b<57344+vc){var c={};b=(c[b]=[Rg.prototype.te,Rg.prototype.tf,null,null,null,a.f>>1],c);if(Kb(a.w,a,b)){b=a.F=!0;break a}}else if(Bc(a.w,b,a.f,sd)){for(c=0;c<a.B.length;c++)Kc(a.w,b+c,a.B[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.v?b.push(a.v):
null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.A>>>f.ra;0<g&&l<f.da.length;)h.push(f.da[l++]),g-=f.Ka;f=d.w;d=d.f;g=0;for(e>>>=f.ra;0<d&&e<f.da.length;){l=h[g++];if(!l)break;f.da[e++]=l;d-=f.Ka}}a.F||delete a.B}}}L(a)}}k.te=function(a){return this.B[a-this.A]};k.tf=function(){};cb(function(){for(var a=H(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Rg(d);G(d,c)}});
function Ug(a){z.call(this,"RAM",a,Ug);this.ja=this.B=null;this.g=a.addr;this.v=a.size;this.Wa=a.load;this.Va=a.exec;this.A=!1;this.f=a.file;this.F=w(this.f);if(this.f){a=this.f;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.M("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(nb(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja,null==c.Wa&&(c.Wa=a.Wa),null==c.Va&&(c.Va=a.Va)):c.f=null);Vg(c)})}}
E(Ug);Ug.prototype.Ia=function(a,b,c,d){this.w=b;this.b=c;this.i=d;Vg(this)};Ug.prototype.Ma=function(){this.ja&&(this.i&&Tg(this.i,this.id,this.g,this.v,this.ja),delete this.ja);return!0};Ug.prototype.La=function(){return!0};function Vg(a){if(a.w&&(!a.A&&a.v&&(Bc(a.w,a.g,a.v,Nc)?a.A=!0:a.v=0),!yb(a))){if(!a.A)x("No RAM allocated");else if(a.f){if(!a.B||!a.w)return;Wg(a,a.B,a.Wa,a.Va,a.g)}L(a)}}
Ug.prototype.reset=function(){if(this.A){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.ra;0<c&&b<a.da.length;){var e=a.da[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Bb&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.H(d,g,e.G+d);c-=a.Ka;b++;d=0}this.B&&Wg(this,this.B,this.Wa,this.Va,this.g,!0)}};
function Wg(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){I(a,"invalid signature ("+v(m)+") at offset "+v(n),4096);break}if(l+6>=b.length){I(a,"invalid block at offset "+v(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(t&255)+(t>>8)),u=l,C=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){I(a,"insufficient data for block at offset "+v(n),4096);break}m+=
b[l++]&255;if(m&255){I(a,"invalid checksum ("+q(m,2,!0)+") for block at offset "+v(n),4096);break}if(C)for(I(a,"loading "+v(C)+" bytes at "+v(t)+"-"+v(t+C-1),4096);C--;)Kc(a.w,t++,b[u++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&I(a,"starting address: "+v(d),4096);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)Kc(a.w,c+e,b[e]);h=!0}if(h){if(null==d||g)a.b.fa(),f=!1;null!=d&&Td(a.b,d,f)}return h}
cb(function(){for(var a=H(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ug(d);G(d,c)}});function Xg(a){z.call(this,"Keyboard",a,Xg,1024);L(this)}E(Xg);Xg.prototype.ya=function(){return!1};Xg.prototype.Ia=function(a,b,c,d){this.B=a;this.b=c;this.i=d};cb(function(){for(var a=H(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Xg(d);G(d,c)}});
function Yg(a){this.L=a.adapter;this.Y=a.baudReceive||9600;this.wa=a.baudTransmit||9600;this.va=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ba=a.charBOL;this.H=0;this.K=!0;z.call(this,"SerialPort",a,Yg,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=Zg;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.D[b])&&this.ya(null,a,b))}this.A=this.P=this.S=null;this.exports={connect:this.Uc,receiveData:this.hc,receiveStatus:this.Ie}}E(Yg);var Zg="buffer";k=Yg.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case Zg:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.Bc:ma.cd:46==c?b=ma.Bc:a.ctrlKey&&c>=ma.zc&&c<=ma.kd&&(b=c-(ma.zc-ma.$c));b&&(a.preventDefault&&a.preventDefault(),d.hc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==ma.bd&&(b=ma.ad);d.hc(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
k.za=function(a,b,c,d){if(this.B&&this.B.za(a,b,c,d)||this.b&&this.b.za(a,b,c,d)||this.j&&this.j.za(a,b,c,d))return!0;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":return this.D[b]=c,this.F++,!0;default:return"led"==a||"rled"==a?(this.D[b]=c,this.g[b]=d?1:0,this.F++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0,d?1:0]),this.D[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Jb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Kb(a,b)}}(this,b),!0):this.parent.za.call(this,a,b,c,d)}};k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;Lb(b,this,Mb);Nb(b,this.reset.bind(this));Ob(this);Pb(this)};k.Ma=function(a,b){b||(Qb(),this.reset());return!0};k.La=function(){return!0};
function Rb(a,b,c){if(a=a.D[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Ob(a,b){for(var c in a.g)Rb(a,c,null!=b?b:a.g[c])}function Sb(a,b,c){if(a=a.D[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Pb(a){for(var b in a.f)Sb(a,b,a.f[b][1])}function Tb(a,b,c,d){a.D[b]&&(void 0===c&&(Bb(a,"Value for "+b+" is invalid"),a.b.aa()),c=8==(a.j&&a.j.ma||8)?p(c,d):q(c,d),a.D[b].textContent!=c&&(a.D[b].textContent=c))}
function Jb(a,b){var c=a.f[b];Sb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.I="DEP"==b,a.K="EXAM"==b)}function Kb(a,b){var c=a.f[b];c[2]&&c[3]&&(Sb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Gd=function(a){a||this.b.C.U||(a=this.b,a.w.reset(),Ub(a),Ib(this,"ENABLE")&&this.b.lb())};k.Hd=function(){};k.Cd=function(a){a||this.b.aa()};
k.Ad=function(a){if(!a&&!this.b.C.U)if(Ib(this,"ENABLE"))this.b.lb();else{if((a=this.j)&&!yb(a,!0))sb(a,!0),a.sb(0,null),sb(a,!1);else try{var b=this.b.sb(1);0<b&&(Vb(this.b,b),Wb(this.b,b,!0),Xb(this.b,b))}catch(c){"number"!=typeof c&&Bb(this.b,c.stack||c.message)}this.stop();this.B&&this.B.Aa()}};k.Bd=function(a){if(a&&!this.b.C.U)if(this.I&&Yb(this),a=Zb(this,this.kb),this.L==Hb)$b(this.w,this.Da,a);else{var b=this.b,c=this.Da;b.K++;b.Hb(c,a);b.K--}};
k.Dd=function(a){a||this.b.C.U||(this.K&&Yb(this),a=this.L==Hb?ac(this.w,this.Da):nc(this.b,this.Da),Zb(this,a))};k.Fd=function(a){a||this.b.C.U||oc(this,this.kb)};k.Ed=function(a){a?(this.H=!0,Ob(this,!0)):(this.H=!1,Ob(this),pc(this,0))};k.Id=function(a,b){this.kb=a?this.kb|1<<b:this.kb&~(1<<b)};function Yb(a){var b=1145>a.b.bb?8:16,c=65472<=a.Da&&a.Da<65472+b,b=c?1:2,c=c?15:a.w.Ob;Ib(a,"STEP")||(b=-b);oc(a,a.Da&~c|a.Da+b&c)}
function oc(a,b){a.Da=b&a.w.Ob;b=a.Da;for(var c=0;22>c;c++)qc(a,"A"+c,b&1<<c)}function Zb(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)qc(a,"D"+c,b&1<<c);return a.v}function qc(a,b,c){a.g[b]=c;a.H||Rb(a,b,c)}function rc(a){return void 0!==a.D.S0}function pc(a,b){if(rc(a)){a.kb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Pb(a)}}k.stop=function(){oc(this,this.b.u[7])};k.vc=function(a){this.Da=a};k.setData=function(a,b){b?this.Db=a:this.v=a};k.Jd=function(a,b){return(b?this.Db:this.kb)&65535};
k.Ke=function(a){this.Db=a};var sc={},Mb=(sc[65400]=[null,null,Gb.prototype.Jd,Gb.prototype.Ke,"CNSW"],sc);function Qb(){for(var a=!1,b=H(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=F(d),f=qb(e.id);f||(a=!0,f=new Gb(e));G(f,d);a&&L(f)}}db(Qb);
function tc(a,b,c){z.call(this,"Bus",a,tc,16);this.b=b;this.j=c;this.N=a.busWidth||16;this.A=1<<this.N;this.Ob=this.A-1;this.Ka=uc;this.ra=Math.log2(this.Ka);this.L=this.Ka>>2;this.w=this.Ka-1;this.v=this.A/this.Ka|0;this.Ua=[];this.sa=0;this.B=!1;this.F=[];this.ld=[vc,wc,xc,yc];a=new M(this);zc(a,this.j);this.ea=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.ea[b]=this.f[b]=a;this.Ha=this.A-uc;Ac(this,this.Ha,uc,Bc,this);this.K=this.I=(this.Ha&this.Ob)>>>this.ra;this.H=0;this.g=this.Ob;
L(this)}E(tc);var uc=8192,Cc=uc-1;function vc(a,b){var c=-1,d=this.controller,e=d.Ua[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ua[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.j&&K(this.j,16|e[5])&&I(this.j,e[4]+".readByte("+N(this.j,b)+"): "+N(this.j,c),!0,!d.sa),c;d.Sa(b,16,3);c=255;this.j&&K(this.j,16)&&I(this.j,"warning: unconverted read access to byte @"+N(this.j,b)+": "+N(this.j,c),!0,!d.sa);return c}
function wc(a,b,c){var d=!1,e=this.controller,f=e.Ua[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ua[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.j&&K(this.j,16|f[5])&&I(this.j,f[4]+".writeByte("+N(this.j,c)+","+N(this.j,b)+")",!0,!e.sa):(e.Sa(c,16,5),this.j&&K(this.j,16)&&I(this.j,"warning: unconverted write access to byte @"+N(this.j,c)+": "+N(this.j,
b),!0,!e.sa))}function xc(a,b){var c=-1,d=this.controller;a=d.Ua[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.j&&K(this.j,16|a[5])&&I(this.j,a[4]+".readWord("+N(this.j,b)+"): "+N(this.j,c),!0,!d.sa),c;d.Sa(b,16,2);c=65535;this.j&&K(this.j,16)&&I(this.j,"warning: unconverted read access to word @"+N(this.j,b)+": "+N(this.j,c),!0,!d.sa);return c}
function yc(a,b,c){var d=!1,e=this.controller;a=e.Ua[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.j&&K(this.j,16|a[5])&&I(this.j,a[4]+".writeWord("+N(this.j,c)+","+N(this.j,b)+")",!0,!e.sa):(e.Sa(c,16,4),this.j&&K(this.j,16)&&I(this.j,"warning: unconverted write access to word @"+N(this.j,c)+": "+N(this.j,b),!0,!e.sa))}
function Dc(a,b){if(b!=a.H){for(var c=0;c<a.v;c++)a.f[c]=a.ea[c];a.H=0;a.g=a.Ob;b&&(a.H=b,b=1<<b,a.g=b-1,b-=uc,a.K=(b&a.g)>>>a.ra,a.f[a.K]=a.ea[a.I])}}k=tc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Dc(this,16)};k.Ma=function(a,b){b||this.reset();return!0};
function Ac(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ra;0<g&&h<a.ea.length;){var l=a.ea[h],m=h*a.Ka,n=a.Ka-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.G)return l.Ub+=l.G-f,l.G=f,!0;if(f>=l.G+l.Ub){n=l.size-(f-m);n>g&&(n=g);l.Ub=f-l.G+n;f=m+a.Ka;g-=n;h++;continue}}return Ec(1,f,g)}f=new M(a,f,n,a.Ka,d,e);zc(f,a.j,l);a.ea[h++]=f;f=m+a.Ka;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Fc[d]+" at "+p(b)),!0):Ec(2,b,c)}k.Ab=function(a){return this.f[(a&this.g)>>>this.ra].gc(a&this.w,a)};
k.xa=function(a){return this.f[(a&this.g)>>>this.ra].ya(a&this.w,a)};k.Tb=function(a,b){this.f[(a&this.g)>>>this.ra].jc(a&this.w,b,a)};k.Gb=function(a,b){this.f[(a&this.g)>>>this.ra].Hb(a&this.w,b,a)};function Gc(a,b){return a.ea[(b&a.Ob)>>>a.ra]}function ac(a,b){a.B=!1;a.sa++;b=Gc(a,b).K(b&a.w,b);a.sa--;return b}function Hc(a,b,c){a.B=!1;a.sa++;Gc(a,b).H(b&a.w,c&255,b);a.sa--}function $b(a,b,c){a.B=!1;a.sa++;Gc(a,b).N(b&a.w,c&65535,b);a.sa--}
function Ic(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.ea[d];if(e.hb||e.vd){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function Jc(a){for(var b=Kc,c=0,d=0;d<a.ea.length;d++){var e=a.ea[d];e.type==b&&(c=e.G+e.Ub)}return c}
function Lc(a,b,c,d,e,f,g,h,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&Cc;if(void 0!==a.Ua[n])return x("I/O address already registered: "+q(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ua[n]=[d,e,f,g,r,h||16,!1]}return!0}
function Lb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.bb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],u=g[5]||1,t=0;t<u;t++,f+=2)if(r&&1<u&&(r=g[4]+t),!Lc(a,f,f,h,l,m,n,g[7]||b.pa,r||b.mb))return!1}}return!0}
k.fc=function(a){var b=null;a>=this.Ha&&(a=this.Ua[a&Cc])&&(b=a[4]);return b};function Nb(a,b){a.F.push(b)}k.Sa=function(a,b,c){this.B=!0;this.sa||(this.j&&K(this.j,4)&&I(this.j,"memory fault ("+c+") on "+N(this.j,a),!0,!0),b&&(this.b.oa|=b),this.b.ua(4,0,a))};function Mc(a){var b=a.B;a.B=!1;return b}function Ec(a,b,c){x("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}function O(a){z.call(this,"Device",a,O,256);this.f={Dg:0,wc:-1}}E(O);k=O.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.j=d;var e=this;this.f.wc=Nc(c,function(){e.f.Nb|=128;e.f.Nb&64&&Oc(e.b,e.f.Mb);e.B&&e.B.Aa(1);Pc(e.b,e.f.wc,1E3/60)});this.f.Mb=Qc(c,64,6,524288);Lb(b,this,Rc);Nb(b,this.reset.bind(this));d&&$c(d,64,function(a){var b=e.b;P(e,"KIPDR",b.R[0],0,a[0]);P(e,"KDPDR",b.R[0],8,a[0]);P(e,"KIPAR",b.ga[0],0,a[0]);P(e,"KDPAR",b.ga[0],8,a[0],!0);P(e,"SIPDR",b.R[1],0,a[0]);P(e,"SDPDR",b.R[1],8,a[0]);P(e,"SIPAR",b.ga[1],0,a[0]);P(e,"SDPAR",b.ga[1],8,a[0],!0);
P(e,"UIPDR",b.R[3],0,a[0]);P(e,"UDPDR",b.R[3],8,a[0]);P(e,"UIPAR",b.ga[3],0,a[0]);P(e,"UDPAR",b.ga[3],8,a[0],!0);b.Na&32&&P(e,"UNIMAP",b.Fb,-1,a[0])});L(this)};function P(a,b,c,d,e,f){a=a.j;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",h=!1,l=0,m=8;0>d&&(e=c.length,d=0,h=!0,m=l=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(h?"["+p(n,2)+"]":"")+":"),g+=" "+N(a,c[d+n],l);a.i(g+(f?"\n":""))}}k.reset=function(){this.f.Nb=128;Pc(this.b,this.f.wc,1E3/60,!0)};k.Qd=function(){return this.f.Nb};
k.Re=function(a){this.f.Nb=a&192;this.f.Nb&64||ad(this.b,this.f.Mb)};k.Sd=function(){return bd(this.b)};k.Te=function(a){cd(this.b,a&-129|this.b.Ea&128)};k.Td=function(){return dd(this.b)};k.Ud=function(){return ed(this.b)};k.Vd=function(){return this.b.Na};k.Ue=function(a){fd(this.b,a)};k.Ce=function(a){a=a>>1&63;var b=this.b.Fb[a>>1];return a&1?b>>16:b&65535};k.Df=function(a,b){b=b>>1&63;var c=b>>1;this.b.Fb[c]=b&1?this.b.Fb[c]&65535|(a&63)<<16:this.b.Fb[c]&-65536|a&65534};
k.ve=function(a){return this.b.R[1][a>>1&7]};k.wf=function(a,b){this.b.R[1][b>>1&7]=a&65295};k.te=function(a){return this.b.R[1][(a>>1&7)+8]};k.uf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.ue=function(a){return this.b.ga[1][a>>1&7]};k.vf=function(a,b){b=b>>1&7;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.se=function(a){return this.b.ga[1][(a>>1&7)+8]};k.tf=function(a,b){b=(b>>1&7)+8;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.Pd=function(a){return this.b.R[0][a>>1&7]};
k.Qe=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Nd=function(a){return this.b.R[0][(a>>1&7)+8]};k.Oe=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Od=function(a){return this.b.ga[0][a>>1&7]};k.Pe=function(a,b){b=b>>1&7;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Md=function(a){return this.b.ga[0][(a>>1&7)+8]};k.Ne=function(a,b){b=(b>>1&7)+8;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Be=function(a){return this.b.R[3][a>>1&7]};k.Cf=function(a,b){this.b.R[3][b>>1&7]=a&65295};
k.ze=function(a){return this.b.R[3][(a>>1&7)+8]};k.Af=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};k.Ae=function(a){return this.b.ga[3][a>>1&7]};k.Bf=function(a,b){b=b>>1&7;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.ye=function(a){return this.b.ga[3][(a>>1&7)+8]};k.zf=function(a,b){b=(b>>1&7)+8;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Rb=function(a){a&=7;return this.b.O&2048?this.b.cb[a]:this.b.u[a]};k.Vb=function(a,b){b&=7;this.b.O&2048?this.b.cb[b]=a:this.b.u[b]=a};
k.$d=function(){return this.b.O&49152?this.b.Oa[0]:this.b.u[6]};k.Ze=function(a){this.b.O&49152?this.b.Oa[0]=a:this.b.u[6]=a};k.ce=function(){return this.b.u[7]};k.bf=function(a){this.b.u[7]=a};k.Sb=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.cb[a]};k.Wb=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.cb[b]=a};k.ae=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[1]};k.$e=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[1]=a};
k.be=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[3]};k.af=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[3]=a};k.Ld=function(a){return this.b.tc[a-65504>>1]};k.Me=function(a,b){this.b.tc[b-65504>>1]=a};k.Uc=function(a){return 65520==a?(Jc(this.w)>>6)-1:0};k.Xc=function(){};k.xe=function(){return 1};k.yf=function(){};k.Kd=function(){return this.b.oa};k.Le=function(){this.b.oa=0};k.Rd=function(){return this.b.sc};k.Se=function(a,b){b&1||(a&=255);this.b.sc=a};
k.Wd=function(a,b){return b?0:this.b.Eb};k.Ve=function(a){gd(this.b,a)};k.we=function(a,b){return b?0:this.b.jb&65280};k.xf=function(a){this.b.jb=a|255};k.Zd=function(){return hd(this.b)};k.Ye=function(a){id(this.b,a)};k.Wc=function(a,b){K(this)&&I(this,"writeIgnored("+p(b)+"): "+p(a),!0,!0)};
var Q={},Rc=(Q[61568]=[null,null,O.prototype.Ce,O.prototype.Df,"UNIMAP",64,1170],Q[62592]=[null,null,O.prototype.ve,O.prototype.wf,"SIPDR",8,1145,64],Q[62608]=[null,null,O.prototype.te,O.prototype.uf,"SDPDR",8,1145,64],Q[62624]=[null,null,O.prototype.ue,O.prototype.vf,"SIPAR",8,1145,64],Q[62640]=[null,null,O.prototype.se,O.prototype.tf,"SDPAR",8,1145,64],Q[62656]=[null,null,O.prototype.Pd,O.prototype.Qe,"KIPDR",8,1145,64],Q[62672]=[null,null,O.prototype.Nd,O.prototype.Oe,"KDPDR",8,1145,64],Q[62688]=
[null,null,O.prototype.Od,O.prototype.Pe,"KIPAR",8,1145,64],Q[62704]=[null,null,O.prototype.Md,O.prototype.Ne,"KDPAR",8,1145,64],Q[62798]=[null,null,O.prototype.Vd,O.prototype.Ue,"MMR3",1,1145,64],Q[65382]=[null,null,O.prototype.Qd,O.prototype.Re,"LKS"],Q[65402]=[null,null,O.prototype.Sd,O.prototype.Te,"MMR0",1,1145,64],Q[65404]=[null,null,O.prototype.Td,O.prototype.Wc,"MMR1",1,1145,64],Q[65406]=[null,null,O.prototype.Ud,O.prototype.Wc,"MMR2",1,1145,64],Q[65408]=[null,null,O.prototype.Be,O.prototype.Cf,
"UIPDR",8,1145,64],Q[65424]=[null,null,O.prototype.ze,O.prototype.Af,"UDPDR",8,1145,64],Q[65440]=[null,null,O.prototype.Ae,O.prototype.Bf,"UIPAR",8,1145,64],Q[65456]=[null,null,O.prototype.ye,O.prototype.zf,"UDPAR",8,1145,64],Q[65472]=[null,null,O.prototype.Rb,O.prototype.Vb,"R0SET0"],Q[65473]=[null,null,O.prototype.Rb,O.prototype.Vb,"R1SET0"],Q[65474]=[null,null,O.prototype.Rb,O.prototype.Vb,"R2SET0"],Q[65475]=[null,null,O.prototype.Rb,O.prototype.Vb,"R3SET0"],Q[65476]=[null,null,O.prototype.Rb,
O.prototype.Vb,"R4SET0"],Q[65477]=[null,null,O.prototype.Rb,O.prototype.Vb,"R5SET0"],Q[65478]=[null,null,O.prototype.$d,O.prototype.Ze,"R6KERNEL"],Q[65479]=[null,null,O.prototype.ce,O.prototype.bf,"R7KERNEL"],Q[65480]=[null,null,O.prototype.Sb,O.prototype.Wb,"R0SET1",1,1145],Q[65481]=[null,null,O.prototype.Sb,O.prototype.Wb,"R1SET1",1,1145],Q[65482]=[null,null,O.prototype.Sb,O.prototype.Wb,"R2SET1",1,1145],Q[65483]=[null,null,O.prototype.Sb,O.prototype.Wb,"R3SET1",1,1145],Q[65484]=[null,null,O.prototype.Sb,
O.prototype.Wb,"R4SET1",1,1145],Q[65485]=[null,null,O.prototype.Sb,O.prototype.Wb,"R5SET1",1,1145],Q[65486]=[null,null,O.prototype.ae,O.prototype.$e,"R6SUPER",1,1145],Q[65487]=[null,null,O.prototype.be,O.prototype.af,"R6USER",1,1145],Q[65504]=[null,null,O.prototype.Ld,O.prototype.Me,"CTRL",8,1170],Q[65520]=[null,null,O.prototype.Uc,O.prototype.Xc,"LSIZE",1,1170],Q[65522]=[null,null,O.prototype.Uc,O.prototype.Xc,"HSIZE",1,1170],Q[65524]=[null,null,O.prototype.xe,O.prototype.yf,"SYSID",1,1170],Q[65526]=
[null,null,O.prototype.Kd,O.prototype.Le,"CPUERR",1,1170],Q[65528]=[null,null,O.prototype.Rd,O.prototype.Se,"MB",1,1170],Q[65530]=[null,null,O.prototype.Wd,O.prototype.Ve,"PIR"],Q[65532]=[null,null,O.prototype.we,O.prototype.xf,"SL"],Q[65534]=[null,null,O.prototype.Zd,O.prototype.Ye,"PSW"],Q);
db(function(){for(var a=H(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=F(d);switch(c.type){case "default":c=new O(c);G(c,d);break;case "pc11":c=new jd(c);G(c,d);break;case "rl11":c=new R(c);G(c,d);break;case "rk11":c=new T(c),G(c,d)}}});var kd;if(Cb){var ld=new ArrayBuffer(2);(new DataView(ld)).setUint16(0,256,!0);kd=256===(new Uint16Array(ld))[0]}else kd=!1;var md=kd;
function M(a,b,c,d,e,f){this.w=a;this.id=nd+=2;this.b=null;this.G=b;this.Ub=c;this.size=d||0;this.type=e||od;this.f=e==pd;this.controller=null;zc(this);this.hb=this.vd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],qd(this,f.ld);else if(Cb)this.A=new ArrayBuffer(this.size),this.F=new DataView(this.A,0,this.size),this.D=new Uint8Array(this.A,0,this.size),this.P=new Uint16Array(this.A,0,this.size>>1),this.b=new Int32Array(this.A,0,this.size>>2),qd(this,md?rd:sd);else{a=this.b=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;qd(this,td)}else qd(this)}var od=0,Kc=1,pd=2,Bc=4,Fc=["NONE","RAM","ROM","VID","H/W"],nd=0;
M.prototype={constructor:M,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Cb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Cb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.hb=!0}return!1},xb:function(a,b){b?this.g++||ud(this,vd,!1):this.B++||wd(this,vd,!1)},S:function(a,b){this.j&&K(this.j,32)&&I(this.j,
"attempt to read invalid address "+N(this.j,b),!0);this.w.Sa(b,32,2);return 255},v:function(a,b,c){this.j&&K(this.j,32)&&I(this.j,"attempt to write "+N(this.j,b)+" to invalid addresses "+N(this.j,c),!0);this.w.Sa(c,32,4)},T:function(a,b){return this.gc(a++,b++)|this.gc(a,b)<<8},L:function(a,b,c){this.jc(a++,b&255,c++);this.jc(a,b>>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},va:function(a,b){a&1&&this.w.Sa(b,64,2);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},Qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.hb=!0},eb:function(a,b,c){a&1&&this.w.Sa(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.hb=!0},mb:function(a,b){if(this.j&&null!=this.G){var c=this.j;xd(c,this.G+a,1,c.N)&&c.aa(!0)}return this.I(a,b)},ma:function(a,b){if(this.j&&null!=this.G){var c=this.j;xd(c,this.G+a,2,c.N)&&c.aa(!0)}return this.K(a,b)},Ba:function(a,
b,c){if(this.j&&null!=this.G){var d=this.j;xd(d,this.G+a,1,d.F)&&d.aa(!0)}this.f?this.v(a,b,c):this.H(a,b,c)},Ya:function(a,b,c){if(this.j&&null!=this.G){var d=this.j;xd(d,this.G+a,2,d.F)&&d.aa(!0)}this.f?this.v(a,b,c):this.N(a,b,c)},Y:function(a){return this.D[a]},nb:function(a,b){a=this.D[a];this.j&&K(this.j,32)&&I(this.j,"Memory.readByte("+N(this.j,b)+"): "+N(this.j,a),!0);return a},da:function(a,b){a&1&&this.w.Sa(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Sa(b,64,2);a=
this.P[a>>1];this.j&&K(this.j,32)&&I(this.j,"Memory.readWord("+N(this.j,b)+"): "+N(this.j,a),!0);return a},wa:function(a,b){this.D[a]=b;this.hb=!0},Ga:function(a,b,c){this.D[a]=b;this.hb=!0;this.j&&K(this.j,32)&&I(this.j,"Memory.writeByte("+N(this.j,c)+","+N(this.j,b)+")",!0)},Ta:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.F.setUint16(a,b,!0);this.hb=!0},Za:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.P[a>>1]=b;this.hb=!0;this.j&&K(this.j,32)&&I(this.j,"Memory.writeWord("+N(this.j,c)+","+N(this.j,
b)+")",!0)}};function zc(a,b,c){a.j=b;a.B=a.g=0;c&&((a.B=c.B)&&wd(a,vd,!1),(a.g=c.g)&&ud(a,vd,!1))}function yd(a,b){b?--a.g||(a.jc=a.f?a.v:a.H,a.Hb=a.f?a.L:a.N):--a.B||(a.gc=a.I,a.ya=a.K)}function ud(a,b,c){c&&a.g||(a.jc=!a.f&&b[1]||a.v,a.Hb=!a.f&&b[3]||a.L);if(c||void 0===c)a.H=b[1]||a.v,a.N=b[3]||a.L}function wd(a,b,c){c&&a.B||(a.gc=b[0]||a.S,a.ya=b[2]||a.T);if(c||void 0===c)a.I=b[0]||a.S,a.K=b[2]||a.T}function qd(a,b){b||(b=zd);wd(a,b,void 0);ud(a,b,void 0)}
var zd=[],td=[M.prototype.ca,M.prototype.Qa,M.prototype.va,M.prototype.eb],vd=[M.prototype.mb,M.prototype.Ba,M.prototype.ma,M.prototype.Ya];if(Cb)var sd=[M.prototype.Y,M.prototype.wa,M.prototype.da,M.prototype.Ta],rd=[M.prototype.nb,M.prototype.Ga,M.prototype.na,M.prototype.Za];
function Ad(a,b){z.call(this,"CPU",a,Ad,1);b=a.cycles||b;var c=a.multiplier||1;this.Xb=0;this.ub=b;this.pb=c;this.lc=Math.round(this.ub/1E4)/100;this.Cb=this.lc*this.pb;this.C.U=!1;this.C.ic=!1;this.C.fb=a.autoStart;this.C.Lb=!1;this.Zb=this.Ga=0;this.$b=a.csStart;this.Pb=a.csInterval;this.Qb=a.csStop;this.N=[];this.Jc=this.Ie.bind(this);L(this)}E(Ad);var Bd=["power","reset"];k=Ad.prototype;
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.j=d;this.v=a.v;for(a=0;a<Bd.length;a++)(b=this.D[Bd[a]])&&this.B.za(null,Bd[a],b);L(this)};k.zc=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.Ma=function(a,b){var c=Cd(this.B,"autoStart");null!=c?this.C.fb="true"==c?!0:"false"==c?!1:!!c:null==this.C.fb&&(this.C.fb=!this.j&&void 0===this.D.run);if(!b){this.zc();if(a&&this.restore){Dd(this);if(!this.restore(a))return!1;Ed(this)}else this.reset();this.j?(a=this.j,b=this.C.fb,a.Za=!0,a.i("Type ? for help with PDPjs Debugger commands"),Fd(a),b||a.rb(),a.Ta&&(b=a.Ta,a.Ta=null,Gd(a,b))):this.i("No debugger detected");this.C.fb||this.i("CPU will not be auto-started, click Run to start")}return!0};
k.La=function(a){return a?this.save():!0};k.fb=function(){return this.C.U?!0:this.C.fb?(this.lb(),!0):!1};k.Pc=function(){return 0};function Ed(a){void 0===a.$b&&(a.$b=0);void 0===a.Pb&&(a.Pb=-1);void 0===a.Qb&&(a.Qb=-1);a.C.Lb=0<=a.$b&&0<a.Pb;a.C.Lb&&(a.Zb=0,a.Ga=a.$b-a.na)}function Xb(a,b){if(a.C.Lb){var c=!1;a.Zb=a.Zb+a.Pc()|0;a.Ga-=b;0>=a.Ga&&(a.Ga+=a.Pb,c=!0);0<=a.Qb&&a.Qb<=Hd(a)&&(a.Pb=a.Qb=-1,Ed(a),a.aa(),c=!0);c&&a.i(Hd(a)+" cycles: checksum="+q(a.Zb))}}
k.za=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.D[b]=c,!0;case "run":return this.D[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.la)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.la);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.ec?" (waiting for notification)":""))+".");a=!1}a&&(d.C.U?d.aa():d.lb())},
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Id(d,d.pb<<1,!0)},c.textContent=this.Cb.toFixed(2)+"Mhz",!0}return!1};k.Aa=function(a){this.B&&this.B.Aa(a)};function Wb(a,b,c){a.na+=b;c&&(a.ma=a.b=a.L=0)}function Jd(a,b){var c=1;b&&1<a.pb&&a.Ba&&(c=a.Ba/a.lc);a.Hc=Math.round(1E3/30);a.vb=Math.floor(a.ub/30*c);b||(a.Qa=a.vb);a.mc=0}function Hd(a){return a.na+a.Y+a.ma-a.b}function Dd(a){a.Ba=0;a.Ic=0;a.na=a.Y=a.ma=a.b=a.L=0;Ed(a);Id(a,1)}
function Id(a,b,c){var d=!1;if(void 0!==b){.8>a.Ba/a.Cb?b=1:d=!0;a.pb=b;b=a.lc*a.pb;if(a.Cb!=b){a.Cb=b;b=a.Cb.toFixed(2)+"Mhz";var e=a.D.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.B&&a.B.rb()}Wb(a,a.Y);a.Y=0;a.T=Ca();a.da=0;Jd(a);return d}function Nc(a,b){var c=a.N.length;a.N.push([-1,b]);return c}function Pc(a,b,c,d){0<=b&&b<a.N.length&&(d||0>a.N[b][0])&&(c=a.ub*a.pb/1E3*c|0,a.C.U&&(c+=Kd(a)),a.N[b][0]=c)}
function Ld(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Vb(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Kd(a,b){var c=a.ma-=a.b;a.b=a.L=0;b&&(a.ma=0);return c}
k.Ie=function(){if(this.C.U){this.mc>=this.ub&&Jd(this,!0);this.Za=0;this.eb=Ca();if(this.da){var a=this.eb-this.da;a>this.Hc&&(this.T+=a,this.T>this.eb&&(this.T=this.eb))}try{do{var b=Ld(this,this.C.Lb?1:this.vb);try{this.sb(b)}catch(e){if("number"!=typeof e)throw e;}b=Kd(this,!0);this.Za+=b;this.Y+=b;Xb(this,b);Vb(this,b);this.Qa-=b;if(0>=this.Qa){this.Qa+=this.vb;15<=++this.Ic&&(this.Aa(),this.Ic=0);break}}while(this.C.U)}catch(e){this.aa();this.B&&this.B.stop(Ca(),Hd(this));Bb(this,e.stack||e.message);
return}if(this.C.U){a=setTimeout;b=this.Jc;this.da=Ca();var c=this.Hc;this.Za&&(c=Math.round(c*this.Za/this.vb));var c=c-(this.da-this.eb),d=this.da-this.T;d&&(this.Ba=Math.round(this.Y/(10*d))/100,864E5<=d&&(this.na=0,Id(this)));if(0>c||this.Ba<this.Cb)-1E3>c&&(this.T-=c),c=0;this.mc+=this.Za;this.da+=c;a(b,c)}}};
k.lb=function(a){if(Ab(this))return!1;if(this.C.U)return this.i(this.toString()+" busy"),!1;Id(this);this.C.U=!0;this.C.ic=!0;var b=this.D.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.rb(!0),this.B.start(this.T,Hd(this)));this.j||this.status("Started");setTimeout(this.Jc,0);return!0};k.sb=function(){return 0};
k.aa=function(a){var b=!1;if(this.C.U){Kd(this);Wb(this,this.Y);this.Y=0;this.C.U=!1;if(b=this.D.run)b.textContent="Run";this.B&&this.B.stop(Ca(),Hd(this));b=!0;this.j||this.status("Stopped")}this.C.complete=a;return b};
function Md(a){this.bb=+a.model||1170;this.Dc=a.addrReset||0;Ad.call(this,a,6666667);this.wb=0;this.Gc=255;1120>=this.bb?(this.decode=Nd.bind(this),this.wa=this.sd,this.wb=8,this.Gc=-1,this.xc=255,this.Kc=0):(this.decode=Od.bind(this),this.wa=this.td,this.xc=~(1792|(1145>this.bb?2048:0))&65535,this.Kc=1145<=this.bb?2048:0);Pd(this);this.K=0;this.I=null;this.Yb=[];this.C.complete=!1}E(Md,Ad);k=Md.prototype;
k.zc=function(){for(var a=192,b=0;b<this.Yb.length;b++){var c=this.Yb[b];0>c.bc&&(c.bc=a,a+=4)}};k.reset=function(){this.status("Model "+this.bb);this.C.U&&this.aa();Pd(this);Dd(this);this.C.error=!1;this.parent.reset.call(this)};
function Pd(a){a.V=65536;a.W=32768;a.Z=65535;a.X=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.Dc,-1,-2,-3,-4,-5,-6,-7,-8];a.cb=[0,0,0,0,0,0];a.Oa=[0,0,0,0];a.A=0;a.Fc=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,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,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ga=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0]];a.Fb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.tc=[0,0,0,0,0,0,0,0];a.sc=0;a.J=0;a.F=a.H=0;a.g=a.f=a.kc=0;a.va=-1;Ub(a)}function Ub(a){a.Ea=0;a.Ib=0;a.Jb=0;a.Na=0;a.oa=0;a.Eb=0;a.jb=255;a.ca=0;a.Ta=0;a.Ya=0;a.S=262143;a.Kb=0;a.ta=0;a.I=null;a.w&&(Qd(a),a.kd=Jc(a.w))}function Qd(a){a.ca?(a.P=65536,a.Ha=a.Na&16?4186112:253952,a.ba=a.xd,a.ya=a.Ee,a.Hb=a.Ff,Dc(a.w,a.Na&16?22:18)):(a.P=0,a.Ha=57344,a.ba=a.wd,a.ya=a.De,a.Hb=a.Ef,Dc(a.w,16))}
function bd(a){var b=a.Ea;b&57344||(b=b&-3199|a.Ta<<5|a.Ya<<1);return b}function cd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.Ib=a.ta>>16&65535,a.Jb=a.ta&65535);a.Ea=b;a.Ta=(b&96)>>5;a.Ya=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.ca!=c&&(a.ca=c,Qd(a))}}function dd(a){a.Ea&57344||(a.Ib=a.ta>>16&65535);a=a.Ib;a&65280&&(a=(a<<8|a>>8)&65535);return a}function ed(a){a.Ea&57344||(a.Jb=a.ta&65535);return a.Jb}
function fd(a,b){1170>a.bb&&(b&=-49);a.Na!=b&&(a.Na=b,a.S=b&16?4194303:262143,Qd(a))}function Rd(a,b,c){a.Dc=b;a.w.reset();Ub(a);Sd(a,b);id(a,0);if(c){for(b=2;5>=b;b++)a.u[b]=0;a.C.U||a.lb()}else a.j?a.aa()||Fd(a.j):!1===c&&a.aa();!a.C.U&&a.v&&a.v.stop()}k.Pc=function(){return 0};
k.save=function(){var a=new U(this);a.set(0,[this.u,this.cb,this.Oa,this.Fb,this.tc,this.oa,this.sc,this.Eb,this.jb,hd(this),this.va,this.A,this.J,this.Ea,this.Ib,this.Jb,this.Na,this.Ta,this.Ya,this.R,this.ga,this.ca,this.S,this.Kb,this.ta]);a.set(1,[this.na,this.pb]);a.set(2,Ic(this.w));return a.data()};
k.restore=function(a){var b=a[1];this.na=b[1];Id(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.L){for(var f=0,g=Array(b.L),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.ea[d];if(!f||!f.restore(e)){x("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Td(a){return a.V&65536?1:0}function Ud(a){return a.W&32768?2:0}function Vd(a){return a.Z&65535?0:4}function Wd(a){return a.X&32768?8:0}
function Xd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function Sd(a,b){a.u[7]=b&65535}function Qc(a,b,c,d){c={bc:b,qb:c,message:d||0,next:null};c.name=Eb[b];a.Yb.push(c);return c}function Yd(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.J|=1)}
function Oc(a,b){if(b!=a.I){var c=a.I;if(!c||c.qb<=b.qb)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.qb<=b.qb){b.next=d;c.next=b;break}c=d}while(c)}}a.J|=1;b.message&&K(a,b.message|8)&&I(a,"setIRQ(vector="+p(b.bc)+",priority="+b.qb+")",!0,!0)}function ad(a,b){Yd(a,b);b.message&&K(a,b.message|8)&&I(a,"clearIRQ(vector="+p(b.bc)+",priority="+b.qb+")",!0,!0)}function Zd(a){return a.J&64?(a.ua(168,64,-6),!0):a.J&32?(a.ua(4,32,-5),!0):a.J&16?(a.ua(12,16,-7),!0):!1}
function hd(a){return a.O=a.O&63728|Wd(a)|Vd(a)|Ud(a)|Td(a)}function id(a,b){b&=a.xc;a.X=b<<12;a.Z=~b&4;a.W=b<<14;a.V=b<<16;if((b^a.O)&a.Kc)for(var c=a.cb.length;0<=--c;){var d=a.u[c];a.u[c]=a.cb[c];a.cb[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Oa[c]=a.u[6],a.u[6]=a.Oa[a.A]);a.O=b;a.J&=-3;a.J|=a.I?2:1}function gd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.J|=1}a.Eb=b}k.Fa=function(a){this.X=this.Z=a;this.W=0};k.tb=function(a,b){this.X=this.Z=this.V=a;this.W=b||0};
function $d(a,b){a.X=a.Z=a.V=b;a.W=a.X^a.V>>1}function ae(a,b,c,d){a.X=a.Z=a.V=b;a.W=(c^d)&(d^b)}
k.ua=function(a,b,c){if(!this.K){0>this.va?this.va=hd(this):this.A||(c=-4);-4==c&&(this.J&256&&(c=-1),this.J|=256,this.oa|=4,this.u[6]=a=4);if(-1!=c){this.ta=a|4143316992;this.A=0;var d=this.ya(a|this.P),e=this.ya(a+2&65535|this.P);id(this,e&-12289|this.va>>2&12288);ue(this,this.va);ue(this,this.u[7]);Sd(this,d)}this.b-=5;this.J&=~(b|19);this.J|=129;this.va=-1;this.ud=a;this.rd=c;-1==c&&this.aa();if(-4<=c)throw a;}};
function ve(a){var b=we(a),c=we(a);a.O&49152&&(c=c&-225|a.O&63712);Sd(a,b);id(a,c);a.J&=-17}k.Ja=function(a){var b=a>>13&31;31>b&&(a=this.Na&32?this.Fb[b]+(a&8190)&4194302:a&-3932161);return a};k.fc=function(a){var b=[];if(this.ca){var c=this.A<<1,d=a>>13;7<d&&(c|=1);this.Na&this.Fc[this.A]||(d&=7);var e=a&8191,f=this.ga[this.A][d]<<6;a=f+e&this.S;3932160<=a&&(a=this.Ja(a));b.push(a);b.push(e);b.push(c);b.push(d&7);b.push(f);b.push(this.S)}else a&=65535,57344<=a&&(a|=this.Ha),b.push(a);return b};
function xe(a,b,c){var d,e,f;if(!(c&a.ca))return f=b&65535,57344<=f&&(f|=a.Ha),f;d=b>>13;a.Na&a.Fc[a.A]||(d&=7);e=a.R[a.A][d];f=(a.ga[a.A][d]<<6)+(b&8191)&a.S;3932160<=f&&(f=a.Ja(f));if(a.K)return f;f>=a.kd&&f<a.Ha?(a.oa|=32,a.ua(4,0,f)):f&1&&!(c&1)&&(a.oa|=64,a.ua(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
8128)&&(g|=16384));a.R[a.A][d]=e;if(f!=(4194170&a.S)||a.A)a.Ta=a.A,a.Ya=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Ta<<5|a.Ya<<1,cd(a,a.Ea&-61695|g&61694)),a.ua(168,64,-2)),a.Ea&61440||!(f<(4191360&a.S)||f>(4194239&a.S))||(a.Ea|=4096,a.Ea&512&&(a.J|=64)));return f}function we(a){var b=a.ya(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}function ue(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.ta=a.ta&65535|(a.ta&-65536)<<8|16121856;a.J&256||a.wa(4,-2,c);a.Hb(c,b)}
function ye(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.ua(4,0,-3),0;case 1:return 6==c&&a.wa(d,0,a.u[6]),a.b-=3,7==c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];6==c&&a.wa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!=c&&(e|=g);e=a.ya(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;6==c&&a.wa(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!=c&&(e|=g);e=a.ya(e)|g;a.b-=8;break;case 6:return e=a.ya(Xd(a,2)),e=e+a.u[c]&65535,6==c&&a.wa(d,
0,e),a.b-=6,e|g;case 7:return e=a.ya(Xd(a,2)),e=e+a.u[c]&65535,e=a.ya(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.ta=a.ta&65535|(a.ta&-65536)<<8|(f<<3&248|c)<<16;return e}k.sd=function(a,b,c){!this.A&&0>=b&&c<=this.jb&&(this.J|=32)};k.td=function(a,b,c){this.A||(65534<=c&&(c|=-65536),a&4&&c<=this.jb&&(c<=this.jb-32?this.ua(4,0,-4):(this.oa|=8,this.J|=32)))};function nc(a,b){a.K++;b=a.ya(b);a.K--;return b}k.wd=function(a,b,c){a=ye(this,a,b,c);3932160<=a&&(a=this.Ja(a));return a};
k.xd=function(a,b,c){return xe(this,ye(this,a,b,c),c)};k.De=function(a){3932160<=a&&(a=this.Ja(a));return this.w.xa(this.Kb=a)};k.Ee=function(a){return this.w.xa(this.Kb=xe(this,a,2))};k.Ef=function(a,b){3932160<=a&&(a=this.Ja(a));this.w.Gb(this.Kb=a,b)};k.Ff=function(a,b){this.w.Gb(this.Kb=xe(this,a,4),b)};
function ze(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=ye(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.A=a.O>>12&3,c=a.ya(d|c&a.P),a.A=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Oa[a.O>>12&3];return c}function Ae(a,b,c,d){a.ta=a.ta&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=ye(a,b,e,4),c&65536||(e&=65535),a.A=a.O>>12&3,e=xe(a,e|c&65536,4),a.A=a.O>>14&3,a.w.Gb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Oa[a.O>>12&3]=d}
function Be(a,b){var c;b>>=6;var d=a.H=b&7;(b=a.F=(b&56)>>3)?c=a.w.Ab(a.ba(b,d,3)):c=a.u[d+a.wb]&a.Gc;return c}function Ce(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?a.w.xa(a.ba(b,c,2)):a.u[c+a.wb]}function De(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return ye(a,b,c,8)}function Ee(a,b){var c,d=a.f=b&7;(b=a.g=(b&56)>>3)?c=a.w.Ab(a.ba(b,d,3)):c=a.u[d]&255;return c}function Fe(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.xa(a.ba(b,c,2)):a.u[c]}
function Ge(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.kc=a.ba(b,e,7),c=0>c?a.u[-c-1]&255:c,a.w.Tb(e,d.call(a,c,a.w.Ab(e))),e&1&&a.b--):(b=a.u[e],c=0>c?a.u[-c-1]&255:c,a.u[e]=b&65280|d.call(a,c,b&255))}function V(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,6),a.w.Gb(e,d.call(a,0>c?a.u[-c-1]:c,a.w.xa(e)))):a.u[e]=d.call(a,0>c?a.u[-c-1]:c,a.u[e])}
function He(a,b,c,d,e){var f=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.ba(b,f,5),e.call(a,(c=0>c?a.u[-c-1]&255:c)<<8),a.w.Tb(d,c),d&1&&a.b--):(c?(c=0>c?a.u[-c-1]&255:c,a.u[f]=a.u[f]&~d|c<<24>>24&d):a.u[f]&=~d,e.call(a,c<<8))}function Ie(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,4),d.call(a,c=0>c?a.u[-c-1]:c),a.w.Gb(e,c)):(a.u[e]=c=0>c?a.u[-c-1]:c,d.call(a,c))}function W(a,b,c){c&&(Sd(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
k.sb=function(a){this.C.complete=!0;var b=this.j?Je(this.j)?1:this.C.ic?-1:0:0,c=a?this.C.ic?0:1:-1;this.C.ic=!1;this.ma=this.b=a;this.J=this.J&-5|(b?4:0);do{if(this.J){if(this.J&4){if(Ke(this.j,this.u[7],c)){this.aa();break}++b||(this.J&=-5);c||c++}if(a=this.J&11)if(a=!1,this.J&2){var d=160,e=(this.Eb&224)>>5,f=this.I&&this.I.qb>e?this.I:null;f&&(d=f.bc,e=f.qb);e>(this.O&224)>>5?(this.J&8&&(Xd(this,2),this.J&=-9),this.ua(d,0,-10),e=!0):e=!1;e&&(f&&Yd(this,f),a=!0);this.I||this.Eb||(this.J&=-3)}else this.J&
1&&this.J++;if(a){if(this.J&4&&Ke(this.j,this.u[7],c)){this.aa();break}if(0>c)break}if(this.J&112&&Zd(this)){if(this.J&4&&Ke(this.j,this.u[7],c)){this.aa();break}if(0>c)break}}this.J=this.J&15|this.O&16;a=this.ta=this.u[7];f=this.ya(a);this.u[7]=a+2&65535;this.decode(f)}while(0<this.b);return this.C.complete?this.ma-this.b:void 0===this.C.complete?0:-1};db(function(){for(var a=H(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Md(d);G(d,c)}});
function Le(a,b){var c=b+a;this.X=this.Z=this.V=c;this.W=(a^c)&(b^c);return c&65535}function Me(a,b){var c=b+a,d=c<<8;this.X=this.Z=this.V=d;this.W=(a<<8^d)&(b<<8^d);return c&255}function Ne(a,b){a=b<<1;$d(this,a);return a&65535}function Oe(a,b){a=b<<1;$d(this,a<<8);return a&255}function Pe(a,b){a=b&32768|b>>1|b<<16;$d(this,a);return a&65535}function Qe(a,b){a=b&128|b>>1|b<<8;$d(this,a<<8);return a&255}function Re(a,b){a=b&~a;this.Fa(a);return a}function Se(a,b){a=b&~a;this.Fa(a<<8);return a}
function Te(a,b){a|=b;this.Fa(a);return a}function Ue(a,b){a|=b;this.Fa(a<<8);return a}function Ve(a,b){a=~b|65536;this.tb(a);return a&65535}function We(a,b){a=~b|256;this.tb(a<<8);return a&255}function Xe(a,b){this.X=this.Z=a=b-a;this.W=b&(b^a);return a&65535}function Ye(a,b){a=b-a;var c=a<<8;b<<=8;this.X=this.Z=c;this.W=b&(b^c);return a&255}function Ze(a,b){this.X=this.Z=a=b+a;this.W=a&(b^a);return a&65535}function $e(a,b){a=b+a;var c=a<<8;this.X=this.Z=c;this.W=c&(b<<8^c);return a&255}
function af(a,b){a=-b;this.tb(a,a&b&32768);return a&65535}function bf(a,b){a=-b;this.tb(a<<8,(a&b&128)<<8);return a&255}function cf(a,b){a=b<<1|this.V>>16&1;$d(this,a);return a&65535}function df(a,b){a=b<<1|this.V>>16&1;$d(this,a<<8);return a&255}function ef(a,b){a=(this.V&65536|b)>>1|b<<16;$d(this,a);return a&65535}function ff(a,b){a=((this.V&65536)>>8|b)>>1|b<<8;$d(this,a<<8);return a&255}function gf(a,b){var c=b-a;ae(this,c,a,b);return c&65535}
function hf(a,b){var c=b-a;ae(this,c<<8,a<<8,b<<8);return c&255}function jf(a,b){this.X=this.Z=b&65280;this.W=this.V=0;return(b<<8|b>>8)&65535}function kf(a,b){a^=b;this.Fa(a);return a&65535}function lf(a){V(this,a,Ce(this,a),Le);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
function mf(a){var b=Fe(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.V=this.W=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.V=c<<17-b,c>>=b;else if(b)if(16<b)this.W=c,c=0;else{this.V=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.W=32768)}this.u[a]=c&65535;this.X=this.Z=c;this.b-=(this.g?6:7)+b}
function nf(a){var b=Fe(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.V=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.V=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.W=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;this.b-=(this.g?6:7)+b}function of(a){W(this,a,!Td(this))}function pf(a){W(this,a,Td(this))}
function qf(a){V(this,a,Ce(this,a),Re);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function rf(a){Ge(this,a,Be(this,a),Se);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function sf(a){V(this,a,Ce(this,a),Te);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function tf(a){Ge(this,a,Be(this,a),Ue);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
function uf(a){var b=Ce(this,a);a=Fe(this,a);this.Fa((0>b?this.u[-b-1]:b)&a);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function vf(a){var b=Be(this,a);a=Ee(this,a);this.Fa(((0>b?this.u[-b-1]&255:b)&a)<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function wf(a){W(this,a,Vd(this))}function xf(a){W(this,a,!Wd(this)==!Ud(this))}function yf(a){W(this,a,!Vd(this)&&!Wd(this)==!Ud(this))}function zf(a){W(this,a,!Td(this)&&!Vd(this))}
function Af(a){W(this,a,Vd(this)||!Wd(this)!=!Ud(this))}function Bf(a){W(this,a,Td(this)||Vd(this))}function Cf(a){W(this,a,!Wd(this)!=!Ud(this))}function Df(a){W(this,a,Wd(this))}function Ef(a){W(this,a,!Vd(this))}function Ff(a){W(this,a,!Wd(this))}function Gf(){this.ua(12,0,-9)}function Hf(a){W(this,a,!0)}function If(a){W(this,a,!Ud(this))}function Jf(a){W(this,a,Ud(this))}function Kf(a){a&1&&(this.V=0);a&2&&(this.W=0);a&4&&(this.Z=1);a&8&&(this.X=0);this.b-=5}
function Lf(a){var b=Ce(this,a);a=Fe(this,a);var c=(b=0>b?this.u[-b-1]:b)-a;ae(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Mf(a){var b=Be(this,a);a=Ee(this,a);var c=(b=(0>b?this.u[-b-1]&255:b)<<8)-(a<<=8);ae(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}
function Nf(a){var b=Fe(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.W=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.Z=this.X=0,this.W=32768,this.V=65536,this.b-=7}function Of(){this.ua(24,0,-9);this.b-=20}
function Pf(){this.O&49152?(this.oa|=128,this.ua(4,0,-8)):(this.v&&1120==this.bb&&this.v.setData(this.u[0],!0),this.j?Qf(this.j):this.aa());this.b-=7}function Rf(){this.ua(16,0,-9);this.b-=20}var Sf=[0,7,7,10,7,11,9,13];function Tf(a){this.L=this.b;Sd(this,De(this,a));this.b=this.L-Sf[this.g]}var Uf=[0,14,14,17,14,18,16,20];function Vf(a){this.L=this.b;var b=De(this,a);a=a>>6&7;ue(this,this.u[a]);this.u[a]=this.u[7];Sd(this,b);this.b=this.L-Uf[this.g]}
var Wf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Xf(a){var b=Ce(this,a);this.L=this.b;Ie(this,a,b,this.Fa);this.b=this.L-Wf[(this.F?8:0)+this.g]+(7!=this.f||this.g?0:2)}function Yf(a){var b=Be(this,a);He(this,a,b,65535,this.Fa);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}var Zf=[7,13,13,17,14,18,17,21];
function $f(a){var b=Fe(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.X=b>>16;this.Z=this.X|b;this.W=0;this.V=-32768>b||32767<b?65536:0;this.b-=23}function ag(){this.b-=5}function bg(){this.O&49152||(this.w.reset(),Ub(this),this.v&&this.v.setData(this.u[0],!0));this.b-=667}function cg(a){if(a&8)X.call(this,a);else{var b=we(this);a&=7;7==a?Sd(this,b):(Sd(this,this.u[a]),this.u[a]=b);this.b-=9}}
function dg(){ve(this);this.b-=13}function eg(a){a&1&&(this.V=65536);a&2&&(this.W=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);this.b-=5}function fg(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)Sd(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function gg(a){V(this,a,Ce(this,a),gf);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function hg(a){V(this,a,0,jf);this.b-=this.g?9:3+(7==this.f?2:0)}function ig(){this.ua(28,0,-9)}
function jg(){this.v&&(this.v.vc(this.u[7],!0),this.v.setData(this.u[0],!0));this.J|=8;Xd(this,-2);this.b-=3}function kg(a){V(this,a,this.u[(a>>6&7)+this.wb],kf);this.b-=this.g?9:3+(7==this.f?2:0)}function X(a){var b;if(b=this.j)b=this.j,K(b,1)?(I(b,"undefined opcode "+N(b,a),!0,!0),b=Qf(b)):b=!1;b||this.ua(8,0,-9)}function Nd(a){lg[a>>12].call(this,a)}function mg(a){ng[a>>6&3].call(this,a)}function og(a){pg[a>>6&3].call(this,a)}function qg(a){rg[a>>6&3].call(this,a)}
function sg(a){tg[a&15].call(this,a)}function ug(a){vg[a&15].call(this,a)}function wg(a){xg[a>>6&3].call(this,a)}function yg(a){zg[a>>6&3].call(this,a)}function Ag(a){Bg[a>>6&3].call(this,a)}
var lg=[function(a){Cg[a>>8&15].call(this,a)},Xf,Lf,uf,qf,sf,lf,X,function(a){Dg[a>>8&15].call(this,a)},Yf,Mf,vf,rf,tf,gg,X],Cg=[function(a){Eg[a>>4&15].call(this,a)},Hf,Ef,wf,xf,Cf,yf,Af,Vf,Vf,mg,og,qg,X,X,X],ng=[function(a){Ie(this,a,0,this.tb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,Ze);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,Xe);this.b-=this.g?9:3+(7==this.f?2:0)}],pg=[function(a){V(this,a,0,af);
this.b-=this.g?11:6},function(a){V(this,a,Td(this)?1:0,Le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,Td(this)?1:0,gf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Fe(this,a);this.tb(a);this.b-=this.g?4:3+(7==this.f?2:0)}],rg=[function(a){V(this,a,0,ef);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,cf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ne);this.b-=this.g?9:3+(7==this.f?2:0)}],Eg=
[function(a){Fg[a&15].call(this,a)},X,X,X,Tf,Tf,Tf,Tf,cg,X,sg,ug,hg,hg,hg,hg],Fg=[Pf,jg,dg,Gf,Rf,bg,X,X,X,X,X,X,X,X,X,X],tg=[ag,function(){this.V=0;this.b-=5},function(){this.W=0;this.b-=5},Kf,function(){this.Z=1;this.b-=5},Kf,Kf,Kf,function(){this.X=0;this.b-=5},Kf,Kf,Kf,Kf,Kf,Kf,Kf],vg=[ag,function(){this.V=65536;this.b-=5},function(){this.W=32768;this.b-=5},eg,function(){this.Z=0;this.b-=5},eg,eg,eg,function(){this.X=32768;this.b-=5},eg,eg,eg,eg,eg,eg,eg],Dg=[Ff,Df,zf,Bf,If,Jf,of,pf,Of,ig,wg,yg,
Ag,X,X,X],xg=[function(a){He(this,a,0,255,this.tb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ge(this,a,0,We);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ge(this,a,1,$e);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ge(this,a,1,Ye);this.b-=this.g?9:3+(7==this.f?2:0)}],zg=[function(a){Ge(this,a,0,bf);this.b-=this.g?11:6},function(a){Ge(this,a,Td(this)?1:0,Me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ge(this,a,Td(this)?1:0,hf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ee(this,
a);this.tb(a<<8);this.b-=this.g?4:3+(7==this.f?2:0)}],Bg=[function(a){Ge(this,a,0,ff);this.b-=this.g?9+(this.kc&1):3+(7==this.f?2:0)},function(a){Ge(this,a,0,df);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Ge(this,a,0,Qe);this.b-=this.g?9+(this.kc&1):3+(7==this.f?2:0)},function(a){Ge(this,a,0,Oe);this.b-=this.g?9:3+(7==this.f?2:0)}];function Od(a){Gg[a>>12].call(this,a)}
var Gg=[function(a){Hg[a>>8&15].call(this,a)},Xf,Lf,uf,qf,sf,lf,function(a){Ig[a>>8&15].call(this,a)},function(a){Jg[a>>8&15].call(this,a)},Yf,Mf,vf,rf,tf,gg,X],Hg=[function(a){Kg[a>>4&15].call(this,a)},Hf,Ef,wf,xf,Cf,yf,Af,Vf,Vf,mg,og,qg,function(a){Lg[a>>6&3].call(this,a)},X,X],Lg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ya(a|this.P);Sd(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=ze(this,a,0);this.Fa(a);ue(this,a);this.b-=11},function(a){var b=we(this);
this.L=this.b;this.Fa(b);Ae(this,a,0,b);this.b=this.L-Zf[this.g]},function(a){Ie(this,a,Wd(this)?65535:0,this.Fa);this.b-=this.g?9:3+(7==this.f?2:0)}],Kg=[function(a){Mg[a&15].call(this,a)},X,X,X,Tf,Tf,Tf,Tf,cg,function(a){a&8?(this.O&49152||(this.O=this.O&-225|(a&7)<<5,this.J|=1,this.J&=-3),this.b-=5):X.call(this,a)},sg,ug,hg,hg,hg,hg],Mg=[Pf,jg,function(){ve(this);this.J|=this.O&16;this.b-=13},Gf,Rf,bg,dg,function(){this.ua(8,0,-9)},X,X,X,X,X,X,X,X],Ig=[$f,$f,Nf,Nf,mf,mf,nf,nf,kg,kg,X,X,X,X,fg,
fg],Jg=[Ff,Df,zf,Bf,If,Jf,of,pf,Of,ig,wg,yg,Ag,function(a){Ng[a>>6&3].call(this,a)},X,X],Ng=[X,function(a){a=ze(this,a,65536);this.Fa(a);ue(this,a);this.b-=11},function(a){var b=we(this);this.L=this.b;this.Fa(b);Ae(this,a,65536,b);this.b=this.L-Zf[this.g]},X];
function Og(a){z.call(this,"ROM",a,Og,128);this.ja=this.B=null;this.A=a.addr;this.f=a.size;this.F=!1;this.v=a.alias;this.g=a.file;this.H=w(this.g);if(this.g){a=this.g;var b=pa(this.H);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.M("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(ob(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja):c.g=null);Pg(c)})}}E(Og);k=Og.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Pg(this)};k.Ma=function(){this.ja&&(this.j&&Qg(this.j,this.id,this.A,this.f,this.ja),delete this.ja);return!0};k.La=function(){return!0};
function Pg(a){if(!zb(a)){if(a.g){if(!a.B||!a.w)return;a.f||(a.f=a.B.length);if(a.B.length!=a.f)Bb(a,"ROM size ("+q(a.B.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")");else{var b;a:{b=a.A;a.status(a.f+"-byte ROM at "+p(b));if(57344<=b&&b<57344+uc){var c={};b=(c[b]=[Og.prototype.re,Og.prototype.sf,null,null,null,a.f>>1],c);if(Lb(a.w,a,b)){b=a.F=!0;break a}}else if(Ac(a.w,b,a.f,pd)){for(c=0;c<a.B.length;c++)Hc(a.w,b+c,a.B[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.v?b.push(a.v):
null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.A>>>f.ra;0<g&&l<f.ea.length;)h.push(f.ea[l++]),g-=f.Ka;f=d.w;d=d.f;g=0;for(e>>>=f.ra;0<d&&e<f.ea.length;){l=h[g++];if(!l)break;f.ea[e++]=l;d-=f.Ka}}a.F||delete a.B}}}L(a)}}k.re=function(a){return this.B[a-this.A]};k.sf=function(){};db(function(){for(var a=H(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Og(d);G(d,c)}});
function Rg(a){z.call(this,"RAM",a,Rg);this.ja=this.B=null;this.g=a.addr;this.v=a.size;this.Wa=a.load;this.Va=a.exec;this.A=!1;this.f=a.file;this.F=w(this.f);if(this.f){a=this.f;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.M("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(ob(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja,null==c.Wa&&(c.Wa=a.Wa),null==c.Va&&(c.Va=a.Va)):c.f=null);Sg(c)})}}
E(Rg);Rg.prototype.Ia=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Sg(this)};Rg.prototype.Ma=function(){this.ja&&(this.j&&Qg(this.j,this.id,this.g,this.v,this.ja),delete this.ja);return!0};Rg.prototype.La=function(){return!0};function Sg(a){if(a.w&&(!a.A&&a.v&&(Ac(a.w,a.g,a.v,Kc)?a.A=!0:a.v=0),!zb(a))){if(!a.A)x("No RAM allocated");else if(a.f){if(!a.B||!a.w)return;Tg(a,a.B,a.Wa,a.Va,a.g)}L(a)}}
Rg.prototype.reset=function(){if(this.A){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.ra;0<c&&b<a.ea.length;){var e=a.ea[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Cb&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.H(d,g,e.G+d);c-=a.Ka;b++;d=0}this.B&&Tg(this,this.B,this.Wa,this.Va,this.g,!0)}};
function Tg(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){I(a,"invalid signature ("+v(m)+") at offset "+v(n),4096);break}if(l+6>=b.length){I(a,"invalid block at offset "+v(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,u=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(u&255)+(u>>8)),t=l,C=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){I(a,"insufficient data for block at offset "+v(n),4096);break}m+=
b[l++]&255;if(m&255){I(a,"invalid checksum ("+q(m,2,!0)+") for block at offset "+v(n),4096);break}if(C)for(I(a,"loading "+v(C)+" bytes at "+v(u)+"-"+v(u+C-1),4096);C--;)Hc(a.w,u++,b[t++]&255);else u&1?g=!0:null==d&&(d=u),null!=d&&I(a,"starting address: "+v(d),4096);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)Hc(a.w,c+e,b[e]);h=!0}if(h){if(null==d||g)a.b.aa(),f=!1;null!=d&&Rd(a.b,d,f)}return h}
db(function(){for(var a=H(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Rg(d);G(d,c)}});function Ug(a){z.call(this,"Keyboard",a,Ug,1024);L(this)}E(Ug);Ug.prototype.za=function(){return!1};Ug.prototype.Ia=function(a,b,c,d){this.B=a;this.b=c;this.j=d};db(function(){for(var a=H(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ug(d);G(d,c)}});
function Vg(a){this.L=a.adapter;this.Y=a.baudReceive||9600;this.wa=a.baudTransmit||9600;this.va=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ca=a.charBOL;this.H=0;this.K=!0;z.call(this,"SerialPort",a,Vg,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=Wg;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.D[b])&&this.za(null,a,b))}this.A=this.P=this.S=null;this.exports={connect:this.Tc,receiveData:this.hc,receiveStatus:this.He}}E(Vg);var Wg="buffer";k=Vg.prototype;
k.za=function(a,b,c){var d=this;switch(b){case Wg:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Ac:la.ad:46==c?b=la.Ac:a.ctrlKey&&c>=la.yc&&c<=la.hd&&(b=c-(la.yc-la.Yc));b&&(a.preventDefault&&a.preventDefault(),d.hc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==la.$c&&(b=la.Zc);d.hc(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.hc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;var e=this;this.ca=Tc(this.b,this.L?-1:48,4,262144);this.na=Qc(this.b,function(){var a;a=-1;e.I.length&&(a=e.I.shift()&255,I(e,"receiveByte("+q(a,2,!0)+")"),e.va&&97<=a&&122>a&&(a-=32),Sc(e.b,e.na,1E3/Math.round(e.Y/10)));0<=a&&(e.N=a,e.f&128?e.N|=49152:e.f|=128,e.f&64&&Rc(c,e.ca))});this.T=Tc(this.b,this.L?-1:52,4,262144);this.Aa=Qc(this.b,function(){e.g|=128;e.g&64&&Rc(c,e.T)});Kb(b,this,$g,this.L?64832+8*(this.L-1)-65392:0);Mb(b,this.reset.bind(this));
L(this)};k.Uc=function(a){if(!this.A){var b=Ed(this.B,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.mb)return;c=ua(c[1]);if(this.A=pb(c)){var e=this.A.exports;if(e){var f=e.connect;f&&f.call(this.A,this.K);if(this.P=e.receiveData){this.K=a;this.S=e.receiveStatus;this.status(this.nb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.Ma=function(a,b){if(!b)if(this.Uc(this.K),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){ah(this)};k.save=function(){var a=new U(this);a.set(0,[]);return a.data()};k.restore=function(){return ah(this)};function ah(a){a.N=0;a.f=8192;a.g=128;a.I=[];return!0}
k.hc=function(a){if("number"==typeof a)this.I.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.I.push(b)}else this.I=this.I.concat(a);Sc(this.b,this.na,1E3/Math.round(this.Y/10));return!0};k.Ie=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Rc(this.b,this.ca))};k.ge=function(){var a=this.f&65534;this.f&=-32769;return a};
k.ef=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.K?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.A,b))};k.fe=function(){this.f&=-129;return this.N};k.df=function(){};k.He=function(){return this.g};k.Hf=function(a){this.g&128&&(a&64?Rc(this.b,this.T):dd(this.b,this.T));this.g=this.g&-70|a&69};k.Ge=function(){return 0};
k.Gf=function(a){a&=255;I(this,"transmitByte("+q(a,2,!0)+")");this.P&&this.P.call(this.A,a);a&=127;if(this.v)if(13==a)this.H=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.H&&this.H--;else{if(a){var b;b=(b=13!=a&&10!=a?Aa[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.H%a,this.ma&&(b=ta("",c)));this.ba&&!this.H&&c&&(b=String.fromCharCode(this.ba)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}}else if(null!=this.F){if(10==
a||1024<=this.F.length)this.j(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Sc(this.b,this.Aa,1E3/Math.round(this.wa/10));this.g&=-129};var bh={},$g=(bh[65392]=[null,null,Yg.prototype.ge,Yg.prototype.ef,"RCSR"],bh[65394]=[null,null,Yg.prototype.fe,Yg.prototype.df,"RBUF"],bh[65396]=[null,null,Yg.prototype.He,Yg.prototype.Hf,"XCSR"],bh[65398]=[null,null,Yg.prototype.Ge,Yg.prototype.Gf,"XBUF"],bh);
cb(function(){for(var a=H(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Yg(d);G(d,c)}});function md(a){z.call(this,"PC11",a,md);this.N=ch(this,a.autoMount);this.g=0;this.ba=a.baudReceive||3600;this.I=this.K=this.f=0;this.H=[];this.F=dh;this.v=eh;this.L=this.A="";this.ha=this.Wa=this.Va=null;this.T=-1;this.P=!Oa("Mobi")&&window&&"FileReader"in window}E(md);var dh="",eh=0;
function ch(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=md.prototype;
k.ya=function(a,b,c){var d=this,e=eh;switch(b){case "listTapes":return this.D[b]=c,c.onchange=function(){var a=d.D.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){x("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.D[b]=c,!0;case "readTape":e=2;case "loadTape":return e||(e=1),this.D[b]=c,c.onclick=function(){var a=
d.D.listTapes;a&&fh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.D[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;fh(d,w(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.D[b]=c,!0}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;this.Y=gh(a);var e=this;if(a=ch(this,Ed(this.B,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.S=Tc(this.b,56,4,4096);this.ca=Qc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.I<e.H.length&&(e.K=e.H[e.I++]&255,hh(e,e.I/e.H.length*100),e.f|=128,e.f&=-2049,e.f&64&&Rc(e.b,e.S))});Kb(b,this,Ch);Mb(b,this.reset.bind(this));Dh(this,"None",dh,!0);this.P&&Dh(this,"Local Tape","?");Dh(this,"Remote Tape","??");Eh(this)||L(this)};
k.Ma=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.K=0};function Eh(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.D.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=w(c,!0)}c&&b?Fh(a,b,c,1,!0):Gh(a)}return!!a.g}
function fh(a,b,c,d,e){if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"');a.F="??"}else a.F=c;Fh(a,b,c,d,!1,e)}else Hh(a,!1)}
function Fh(a,b,c,d,e,f){var g=-1;if(a.A.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Hh(a,!0),a.C.ob?a.M("PC11 busy"):(e&&(a.g++,K(a)&&I(a,"auto-loading tape: "+b)),Ih(a,b,c,d,f)?g++:a.C.ob=!0);g&&Jh(a,a.L,a.A,a.v,a.ha,a.Wa,a.Va)}
function Ih(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Jh(a,b,c,d,e),a.F="?");Gh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var h=0>g&&a.B&&!a.B.C.la;g?a.M('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.nb,e,f),(e=Fa(e,f))&&Jh(a,b,c,d,e.ha,e.Wa,
e.Va));a.C.ob=!1;a.g&&(a.g--,a.g||L(a));Gh(a)})}function Dh(a,b,c,d){if((a=a.D.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Gh(a){var b=a.D.listTapes;if(b&&b.options){a=a.F||a.A;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function hh(a,b){b|=0;if(b!==a.T){var c=a.D.readProgress;c&&(c=(c=H(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.T=b}}
function Jh(a,b,c,d,e,f,g){a.L=b;a.A=c;a.v=d;a.ha=e;a.Wa=f;a.Va=g;2==d?a.Y&&Wg(a.Y,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.M('No valid memory address for tape "'+b+'"'):(a.I=0,a.H=e,a.status('Loaded tape "'+b+'"'),hh(a,0))}function Hh(a,b){if(a.A||!1===b)a.L="",a.A="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.F=dh,a.v=eh,Gh(a))}k.save=function(){return(new U(this)).data()};k.restore=function(){return!0};k.$d=function(){return this.f&65534};
k.Ye=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Rc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.K=0,Sc(this.b,this.ca,1E3/Math.round(this.ba/10))));this.f=this.f&-66|a&65};k.Zd=function(){this.f&=-129;this.f|=2048;return this.K};k.Xe=function(){};var Kh={},Ch=(Kh[65384]=[null,null,md.prototype.$d,md.prototype.Ye,"PRS"],Kh[65386]=[null,null,md.prototype.Zd,md.prototype.Xe,"PRB"],Kh);
function Lh(a,b,c){z.call(this,"Disk",{id:a.nb+".disk"+q(++Mh,4)},Lh,8192);this.controller=a;this.B=a.B;this.i=a.i;this.v=b;this.Xa=b.name;this.cc=b.cc;Nh(this,c,b.ea,b.ka,b.ia,b.Ba);L(this)}var Mh=0;E(Lh);k=Lh.prototype;k.Ia=function(a,b,c,d){this.i=d};
function Nh(a,b,c,d,e,f){a.mode=b;a.ea=c;a.ka=d;a.ia=e;a.Ba=f;a.b=[];if("preload"!=a.mode){b=Array(a.ea);for(c=0;c<b.length;c++){d=Array(a.ka);for(e=0;e<d.length;e++){f=Array(a.ia);for(var g=1;g<=f.length;g++)f[g-1]=Oh(null,c,e,g,a.Ba,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
function Ph(a,b,c,d,e){var f=c;if(a.w)return!0;a.Xa=b;a.Pa=c;a.uc=w(c);a.w=e;a.A=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ea=e[0];a.ka=e[1];a.ia=e[2];a.Ba=e[3]||512;c=a.Ba>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ea);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ka),u=0;u<t.length;u++)for(var C=t[u]=Array(a.ia),y=0;y<C.length;y++){for(var A=Oh(null,d,u,y+1,a.Ba,0),D=A.data,Sa=0;Sa<c;Sa++,f+=4)var S=D[Sa]=b.getInt32(f,
!0),e=e+S&-1;A.Ra=c;C[y]=A}a.f=e;c=a}else a.M("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Xa,a.Pa),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=pa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):qa(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.cc?"":e)+"&format=json"));return!!Ea(f,
null,!0,function(b,c,d){Qh(a,b,c,d)})}
function Qh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.B&&!a.B.C.la;if(d)a.controller.M('Unable to load disk "'+a.Xa+'" (error '+d+": "+b+")",f);else{nb(a.controller.nb,b,c);try{if(0<w(a.uc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Xa]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(h.length)if(1==h.length)x(h[0]);else{a.ea=h.length;a.ka=h[0].length;a.ia=h[0][0].length;var l=h[0][0][0];a.Ba=l&&l.length||512;for(d=c=0;d<a.ea;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ia;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var t=l.bytes;if(void 0!==t&&t.length){for(var u=m<<2,C=t.length;C<u;C++)t[C]=n;Rh(l,t)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}Oh(l,d,f);for(u=
0;u<r.length;u++)c=c+r[u]&-1}a.b=h;a.f=c;e=a}else x("Empty disk image: "+a.Xa)}catch(y){x("Disk image error ("+b+"): "+y.message)}}a.w&&(a.w.call(a.A,a.v,e,a.Xa,a.Pa),a.w=null)}function Oh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ig=b;a.Jg=c;a.ab=a.Ra=0;a.hb=!1;return a}
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.pd&&b<f.ka)for(h=g[b]=Array(f.Nc),g=0;g<h.length;g++)h[g]=Oh(null,a,b,g+1,f.rc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.pd&&9==f.nc&&(d=h[g]=Oh(null,a,b,f.nc,f.rc,0))}}e&&e(d,!1);return d};function Rh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;var e=this;this.da=Qc(this.b,this.L?-1:48,4,262144);this.na=Nc(this.b,function(){var a;a=-1;e.I.length&&(a=e.I.shift()&255,I(e,"receiveByte("+q(a,2,!0)+")"),e.va&&97<=a&&122>a&&(a-=32),Pc(e.b,e.na,1E3/Math.round(e.Y/10)));0<=a&&(e.N=a,e.f&128?e.N|=49152:e.f|=128,e.f&64&&Oc(c,e.da))});this.T=Qc(this.b,this.L?-1:52,4,262144);this.Ba=Nc(this.b,function(){e.g|=128;e.g&64&&Oc(c,e.T)});Lb(b,this,Xg,this.L?64832+8*(this.L-1)-65392:0);Nb(b,this.reset.bind(this));
L(this)};k.Tc=function(a){if(!this.A){var b=Cd(this.B,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.mb)return;c=za(c[1]);if(this.A=qb(c)){var e=this.A.exports;if(e){var f=e.connect;f&&f.call(this.A,this.K);if(this.P=e.receiveData){this.K=a;this.S=e.receiveStatus;this.status(this.nb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.Ma=function(a,b){if(!b)if(this.Tc(this.K),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){Yg(this)};k.save=function(){var a=new U(this);a.set(0,[]);return a.data()};k.restore=function(){return Yg(this)};function Yg(a){a.N=0;a.f=8192;a.g=128;a.I=[];return!0}
k.hc=function(a){if("number"==typeof a)this.I.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.I.push(b)}else this.I=this.I.concat(a);Pc(this.b,this.na,1E3/Math.round(this.Y/10));return!0};k.He=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Oc(this.b,this.da))};k.ee=function(){var a=this.f&65534;this.f&=-32769;return a};
k.df=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.K?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.A,b))};k.de=function(){this.f&=-129;return this.N};k.cf=function(){};k.Ge=function(){return this.g};k.Hf=function(a){this.g&128&&(a&64?Oc(this.b,this.T):ad(this.b,this.T));this.g=this.g&-70|a&69};k.Fe=function(){return 0};
k.Gf=function(a){a&=255;I(this,"transmitByte("+q(a,2,!0)+")");this.P&&this.P.call(this.A,a);a&=127;if(this.v)if(13==a)this.H=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.H&&this.H--;else{if(a){var b;b=(b=13!=a&&10!=a?Aa[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.H%a,this.ma&&(b=ta("",c)));this.ca&&!this.H&&c&&(b=String.fromCharCode(this.ca)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}}else if(null!=this.F){if(10==
a||1024<=this.F.length)this.i(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Pc(this.b,this.Ba,1E3/Math.round(this.wa/10));this.g&=-129};var Zg={},Xg=(Zg[65392]=[null,null,Vg.prototype.ee,Vg.prototype.df,"RCSR"],Zg[65394]=[null,null,Vg.prototype.de,Vg.prototype.cf,"RBUF"],Zg[65396]=[null,null,Vg.prototype.Ge,Vg.prototype.Hf,"XCSR"],Zg[65398]=[null,null,Vg.prototype.Fe,Vg.prototype.Gf,"XBUF"],Zg);
db(function(){for(var a=H(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Vg(d);G(d,c)}});function jd(a){z.call(this,"PC11",a,jd);this.N=$g(this,a.autoMount);this.g=0;this.ca=a.baudReceive||3600;this.I=this.K=this.f=0;this.H=[];this.F=ah;this.v=bh;this.L=this.A="";this.ha=this.Wa=this.Va=null;this.T=-1;this.P=!Pa("Mobi")&&window&&"FileReader"in window}E(jd);var ah="",bh=0;
function $g(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=jd.prototype;
k.za=function(a,b,c){var d=this,e=bh;switch(b){case "listTapes":return this.D[b]=c,c.onchange=function(){var a=d.D.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){x("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.D[b]=c,!0;case "readTape":e=2;case "loadTape":return e||(e=1),this.D[b]=c,c.onclick=function(){var a=
d.D.listTapes;a&&ch(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.D[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;ch(d,w(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.D[b]=c,!0}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;this.Y=dh(a);var e=this;if(a=$g(this,Cd(this.B,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.S=Qc(this.b,56,4,4096);this.da=Nc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.I<e.H.length&&(e.K=e.H[e.I++]&255,zh(e,e.I/e.H.length*100),e.f|=128,e.f&=-2049,e.f&64&&Oc(e.b,e.S))});Lb(b,this,Ah);Nb(b,this.reset.bind(this));Bh(this,"None",ah,!0);this.P&&Bh(this,"Local Tape","?");Bh(this,"Remote Tape","??");Ch(this)||L(this)};
k.Ma=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.K=0};function Ch(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.D.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=w(c,!0)}c&&b?Dh(a,b,c,1,!0):Eh(a)}return!!a.g}
function ch(a,b,c,d,e){if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"');a.F="??"}else a.F=c;Dh(a,b,c,d,!1,e)}else Fh(a,!1)}
function Dh(a,b,c,d,e,f){var g=-1;if(a.A.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Fh(a,!0),a.C.ob?a.M("PC11 busy"):(e&&(a.g++,K(a)&&I(a,"auto-loading tape: "+b)),Gh(a,b,c,d,f)?g++:a.C.ob=!0);g&&Hh(a,a.L,a.A,a.v,a.ha,a.Wa,a.Va)}
function Gh(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Hh(a,b,c,d,e),a.F="?");Eh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var h=0>g&&a.B&&!a.B.C.la;g?a.M('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(ob(a.nb,e,f),(e=Fa(e,f))&&Hh(a,b,c,d,e.ha,e.Wa,
e.Va));a.C.ob=!1;a.g&&(a.g--,a.g||L(a));Eh(a)})}function Bh(a,b,c,d){if((a=a.D.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Eh(a){var b=a.D.listTapes;if(b&&b.options){a=a.F||a.A;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function zh(a,b){b|=0;if(b!==a.T){var c=a.D.readProgress;c&&(c=(c=H(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.T=b}}
function Hh(a,b,c,d,e,f,g){a.L=b;a.A=c;a.v=d;a.ha=e;a.Wa=f;a.Va=g;2==d?a.Y&&Tg(a.Y,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.M('No valid memory address for tape "'+b+'"'):(a.I=0,a.H=e,a.status('Loaded tape "'+b+'"'),zh(a,0))}function Fh(a,b){if(a.A||!1===b)a.L="",a.A="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.F=ah,a.v=bh,Eh(a))}k.save=function(){return(new U(this)).data()};k.restore=function(){return!0};k.Yd=function(){return this.f&65534};
k.Xe=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Oc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.K=0,Pc(this.b,this.da,1E3/Math.round(this.ca/10))));this.f=this.f&-66|a&65};k.Xd=function(){this.f&=-129;this.f|=2048;return this.K};k.We=function(){};var Ih={},Ah=(Ih[65384]=[null,null,jd.prototype.Yd,jd.prototype.Xe,"PRS"],Ih[65386]=[null,null,jd.prototype.Xd,jd.prototype.We,"PRB"],Ih);
function Jh(a,b,c){z.call(this,"Disk",{id:a.nb+".disk"+q(++Kh,4)},Jh,8192);this.controller=a;this.B=a.B;this.j=a.j;this.v=b;this.Xa=b.name;this.dc=b.dc;Lh(this,c,b.fa,b.ka,b.ia,b.Ca);L(this)}var Kh=0;E(Jh);k=Jh.prototype;k.Ia=function(a,b,c,d){this.j=d};
function Lh(a,b,c,d,e,f){a.mode=b;a.fa=c;a.ka=d;a.ia=e;a.Ca=f;a.b=[];if("preload"!=a.mode){b=Array(a.fa);for(c=0;c<b.length;c++){d=Array(a.ka);for(e=0;e<d.length;e++){f=Array(a.ia);for(var g=1;g<=f.length;g++)f[g-1]=Mh(null,c,e,g,a.Ca,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
function Nh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Xa=b;a.Pa=c;a.uc=w(c);a.w=e;a.A=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.fa=e[0];a.ka=e[1];a.ia=e[2];a.Ca=e[3]||512;c=a.Ca>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.fa);for(d=0;d<a.b.length;d++)for(var u=a.b[d]=Array(a.ka),t=0;t<u.length;t++)for(var C=u[t]=Array(a.ia),y=0;y<C.length;y++){for(var A=Mh(null,d,t,y+1,a.Ca,0),D=A.data,Sa=0;Sa<c;Sa++,f+=4)var S=D[Sa]=b.getInt32(f,
!0),e=e+S&-1;A.Ra=c;C[y]=A}a.f=e;c=a}else a.M("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Xa,a.Pa),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=pa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):qa(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.dc?"":e)+"&format=json"));return!!Ea(f,
null,!0,function(b,c,d){Oh(a,b,c,d)})}
function Oh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.B&&!a.B.C.la;if(d)a.controller.M('Unable to load disk "'+a.Xa+'" (error '+d+": "+b+")",f);else{ob(a.controller.nb,b,c);try{if(0<w(a.uc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Xa]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(h.length)if(1==h.length)x(h[0]);else{a.fa=h.length;a.ka=h[0].length;a.ia=h[0][0].length;var l=h[0][0][0];a.Ca=l&&l.length||512;for(d=c=0;d<a.fa;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ia;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var u=l.bytes;if(void 0!==u&&u.length){for(var t=m<<2,C=u.length;C<t;C++)u[C]=n;Ph(l,u)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}Mh(l,d,f);for(t=
0;t<r.length;t++)c=c+r[t]&-1}a.b=h;a.f=c;e=a}else x("Empty disk image: "+a.Xa)}catch(y){x("Disk image error ("+b+"): "+y.message)}}a.w&&(a.w.call(a.A,a.v,e,a.Xa,a.Pa),a.w=null)}function Mh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ig=b;a.Jg=c;a.ab=a.Ra=0;a.hb=!1;return a}
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.nd&&b<f.ka)for(h=g[b]=Array(f.Mc),g=0;g<h.length;g++)h[g]=Mh(null,a,b,g+1,f.rc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.nd&&9==f.nc&&(d=h[g]=Mh(null,a,b,f.nc,f.rc,0))}}e&&e(d,!1);return d};function Ph(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ra?f<a.ab?(a.Ra+=a.ab-f,a.ab=f):f>=a.ab+a.Ra&&(a.Ra+=f-(a.ab+a.Ra)+1):(a.ab=f,a.Ra=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Sh(a,b){var c=a.ka*a.ia,d=b/c|0;return d<a.ea?(b%=c,a.seek(d,b/a.ia|0,b%a.ia+1)):null}function Th(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Uh(a){for(var b="",c=0,d;d=Sh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Th(a,d,e));return btoa(b)}
k.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.f,this.ea,this.ka,this.ia,this.Ba];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ra){for(var h=[],l=0,m=g.ab,n=g.ab+g.Ra;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.ab,h]}}return b};
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?Nh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
function Qh(a,b){var c=a.ka*a.ia,d=b/c|0;return d<a.fa?(b%=c,a.seek(d,b/a.ia|0,b%a.ia+1)):null}function Rh(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Sh(a){for(var b="",c=0,d;d=Qh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Rh(a,d,e));return btoa(b)}
k.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.f,this.fa,this.ka,this.ia,this.Ca];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ra){for(var h=[],l=0,m=g.ab,n=g.ab+g.Ra;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.ab,h]}}return b};
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?Lh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.ab=e;for(h.Ra=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.M("Unable to restore disk '"+this.Xa+": "+c);return b};
k.toJSON=function(){var a;a=0;for(var b;b=Sh(this,a++);)Vh(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Vh(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function T(a){z.call(this,"RK11",a,T,65536);this.K=Wh(this,a.autoMount);this.F=0;this.g=Array(8);this.L=!Oa("Mobi")&&window&&"FileReader"in window}E(T);function Wh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=T.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RK11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&Xh(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&Yh(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Td(d.b,0,!0),(a=d.Cc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.L){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Pa(Uh(a),a.uc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.L)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Yh(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;if(a=Wh(this,Ed(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);Zh(this);this.Kb=Tc(this.b,144,5,65536);Kb(b,this,$h);Mb(b,this.reset.bind(this));ai(this,"None","",!0);this.L&&ai(this,"Local Disk","?");ai(this,"Remote Disk","??");bi(this)||L(this)};
k.Ma=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)ci(this,a,!0);bi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Xh(this,0)}}return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){Zh(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return Zh(this,a[0])};function bi(a,b){b||(a.F=0);for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!di(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
function Yh(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}di(a,e,b,c,!1,d)}else ci(a,e)}
function di(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Pa.toLowerCase()!=d.toLowerCase()&&(g++,ci(a,b,!0),h.zb?a.M("RK11 busy"):(h.zb=!0,e&&(h.yb=!0,a.F++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Ph(new Lh(a,h,"preload"),c,d,f,a.ed)&&g++));return g}
k.ed=function(a,b,c,d,e){a.zb=!1;b&&(b.ea>a.ea||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RK"+a.Ab)),b=null);b?(a.qa=b,a.Xa=c,a.Pa=d,this.M('Loaded disk "'+c+'" in drive '+("RK"+a.Ab),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.F||L(this));Xh(this,a.Ab)};
function ai(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Xh(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Pa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ci(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Xa="",d.Pa="",d.qa=null,d.ib=!1,c||(a.M("Drive RK"+b+" unloaded",c),Xh(a,b))}
function Zh(a,b){var c=0;b||(b=[]);a.P=b[c++]||2496;a.v=b[c++]||0;a.f=b[c++]||128;a.I=b[c++]||0;a.H=b[c++]||0;a.A=b[c++]||0;a.N=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Ab=b;d.name=c.mb;d.zb=d.ib=!1;d.ea=203;d.ka=2;d.ia=12;d.Ba=512;d.cc=!0;d.qd=0;d.od=0;d.nc=1;d.Nc=d.ia;d.rc=d.Ba;d.Ad=0;d.Ke=null;d.qa||(d.Pa="");d.status=2368}return!0}
k.dd=function(a,b,c,d,e,f){this.H=f&65535;this.f=this.f&-49|f>>12&48;this.I=65536-e&65535;this.A=this.A&-16|d&15;a&&(this.v=this.v|a|32768,this.f|=49152);return!0};
k.Cc=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){if(!m){m=a.seek(b,c,d+1);if(!m){l=4096;break}n=0}var r,t;if(0>(r=a.read(m,n++))||0>(t=a.read(m,n++))){l=32;break}if(!g&&(Zb(this.w,f,r|t<<8),Pc(this.w))){l=1024;break}f+=2;if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){l=64;break}}return h?h(l,b,c,d,e,f):l};
k.fd=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){var r=nc(this.w,f);if(Pc(this.w)){l=1024;break}f+=2;if(!m){m=a.seek(b,c,d+1,!0);if(!m){l=4096;break}n=0}if(g){var t,u;if(0>(t=a.read(m,n++))||0>(u=a.read(m,n++))){l=32;break}if(r!=(t|u<<8)){l=1;break}}else if(!a.write(m,n++,r&255)||!a.write(m,n++,r>>8)){l=32;break}if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){l=64;break}}return h?h(l,b,c,d,e,f):l};k.le=function(){return this.P};k.kf=function(){};
k.me=function(){return this.v};k.lf=function(){};k.ie=function(){return this.f&61438};
k.gf=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){a=!0;var b,c="",d=(this.A&57344)>>13,e=this.g[d],f,g,h,l,m;this.f&=-129;var n=(this.f&14)>>1;switch(n){case 0:K(this)&&I(this,this.type+": CRESET("+d+")",!0);this.v=0;this.f=128;this.A=0;break;case 4:f=(this.A&8160)>>5;K(this)&&I(this,this.type+": SEEK("+f+")",!0);f>=e.ea&&(this.v|=32832,this.f|=49152);break;case 5:c="RCHK";case 2:c||(c="READ"),b=this.Cc;case 3:c||(c="WCHK");case 1:c||(c="WRITE");b||(b=this.fd);f=(this.A&8160)>>5;g=(this.A&
16)>>4;h=this.A&15;l=65536-this.I&65535;m=(this.f&48)<<12|this.H;K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(m)+"-"+p(m+(l-1<<1)),!0);if(f>=e.ea){this.v|=32832;this.f|=49152;break}if(h>=e.ia){this.v|=32800;this.f|=49152;break}a=b.call(this,e,f,g,h,l,m,3<=n,this.dd.bind(this));break;case 6:K(this)&&I(this,this.type+": DRESET("+d+")");break;default:K(this)&&I(this,this.type+": UNSUPPORTED("+n+")")}this.P=e.status|(e.qa?128:0)|d<<13|this.A&15;this.v&32768&&K(this)&&I(this,this.type+": ERROR: "+
p(this.v)+")");a&&(this.f&=-2,this.f|=128,this.f&64&&Rc(this.b,this.Kb))}};k.ne=function(){return this.I};k.mf=function(a){this.I=a};k.he=function(){return this.H};k.ff=function(a){this.H=a};k.je=function(){return this.A};k.hf=function(a){this.A=a};k.ke=function(){return this.N};k.jf=function(a){this.N=a};
var ei={},$h=(ei[65280]=[null,null,T.prototype.le,T.prototype.kf,"RKDS"],ei[65282]=[null,null,T.prototype.me,T.prototype.lf,"RKER"],ei[65284]=[null,null,T.prototype.ie,T.prototype.gf,"RKCS"],ei[65286]=[null,null,T.prototype.ne,T.prototype.mf,"RKWC"],ei[65288]=[null,null,T.prototype.he,T.prototype.ff,"RKBA"],ei[65290]=[null,null,T.prototype.je,T.prototype.hf,"RKDA"],ei[65294]=[null,null,T.prototype.ke,T.prototype.jf,"RKDB"],ei);
function R(a){z.call(this,"RL11",a,R,131072);this.L=fi(this,a.autoMount);this.I=0;this.g=Array(4);this.N=!Oa("Mobi")&&window&&"FileReader"in window}E(R);function fi(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=R.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&gi(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&hi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Td(d.b,0,!0),(a=d.Dc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.N){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Pa(Uh(a),a.uc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.N)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;hi(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;if(a=fi(this,Ed(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.L[e]=a[e]);ii(this);this.Kb=Tc(this.b,112,5,131072);Kb(b,this,ji);Mb(b,this.reset.bind(this));ki(this,"None","",!0);this.N&&ki(this,"Local Disk","?");ki(this,"Remote Disk","??");li(this)||L(this)};
k.Ma=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)mi(this,a,!0);li(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";gi(this,0)}}return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){ii(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return ii(this,a[0])};function li(a,b){b||(a.I=0);for(var c in a.L){var d=a.L[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!ni(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.I}
function hi(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}ni(a,e,b,c,!1,d)}else mi(a,e)}
function ni(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Pa.toLowerCase()!=d.toLowerCase()&&(g++,mi(a,b,!0),h.zb?a.M("RL11 busy"):(h.zb=!0,e&&(h.yb=!0,a.I++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Ph(new Lh(a,h,"preload"),c,d,f,a.hd)&&g++));return g}
k.hd=function(a,b,c,d,e){a.zb=!1;b&&(b.ea>a.ea||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RL"+a.Ab)),b=null);b?(a.qa=b,a.Xa=c,a.Pa=d,this.M('Loaded disk "'+c+'" in drive '+("RL"+a.Ab),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.I||L(this));gi(this,a.Ab)};
function ki(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function gi(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Pa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function mi(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Xa="",d.Pa="",d.qa=null,d.ib=!1,c||(a.M("Drive RL"+b+" unloaded",c),gi(a,b))}
function ii(a,b){var c=0;b||(b=[]);a.f=b[c++]||129;a.K=b[c++]||0;a.v=b[c++]||0;a.A=b[c++]||0;a.H=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Ab=b;d.name=c.mb;d.zb=d.ib=!1;d.ea=512;d.ka=2;d.ia=40;d.Ba=256;d.cc=!0;d.qd=0;d.od=0;d.nc=1;d.Nc=d.ia;d.rc=d.Ba;d.Ad=0;d.Ke=null;d.qa||(d.Pa="");d.status=29}return!0}
k.gd=function(a,b,c,d,e,f){this.K=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.A=this.v=b<<7|(c?64:0)|d&63;this.H=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
k.Dc=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=5120;break}Zb(this.w,this.b.Ja(f),n|r<<8);if(Pc(this.w)){h=8192;break}f+=2;if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};
k.jd=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=nc(this.w,this.b.Ja(f));if(Pc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};k.qe=function(){return this.f&65535};
k.qf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){a=!0;var b,c="",d=this.g[(this.f&768)>>8],e=d.qa,f,g,h;this.f&=-2;switch(this.f&14){case 4:this.H&8&&(this.f&=63);this.H=d.status|this.A&64|(e&&512==e.ea?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.A=this.v&4?this.A+b:this.A-b,this.v=this.A=this.A&65408|c);break;case 8:this.H=this.A;break;case 12:c="READ",b=this.Dc;case 10:c||(c="WRITE"),b||(b=this.jd),f=this.v>>7,g=this.v&64?1:0,
h=this.v&63,!e||f>=e.ea||h>=e.ia?this.f|=37888:(a=65536-this.H&65535,e=(this.F&63)<<16|this.K,K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(e)+"-"+p(e+(a-1<<1)),!0),a=b.call(this,d,f,g,h,a,e,this.gd.bind(this)))}a&&(this.f|=129,this.f&64&&Rc(this.b,this.Kb))}};k.oe=function(){return this.K};k.nf=function(a){this.K=a&65534};k.re=function(){return this.v};k.rf=function(a){this.v=a};k.se=function(){return this.H};k.sf=function(a){this.H=a};k.pe=function(){return this.F};
k.pf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};var oi={},ji=(oi[63744]=[null,null,R.prototype.qe,R.prototype.qf,"RLCS"],oi[63746]=[null,null,R.prototype.oe,R.prototype.nf,"RLBA"],oi[63748]=[null,null,R.prototype.re,R.prototype.rf,"RLDA"],oi[63750]=[null,null,R.prototype.se,R.prototype.sf,"RLMP"],oi[63752]=[null,null,R.prototype.pe,R.prototype.pf,"RLBE"],oi);function pi(a){z.call(this,"Debugger",a,pi);this.ma=a.base||16;this.Ga=!1;this.I=0;this.T=!1;this.A=-1;this.g=[];this.ba={}}E(pi);
var qi={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};pi.prototype.Rc=function(){return-1};pi.prototype.Sc=function(){};pi.prototype.Tc=function(){};
function ri(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.T?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ua(b.substring(c,f))),c=f+1}}return a}
function si(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
k.toJSON=function(){var a;a=0;for(var b;b=Qh(this,a++);)Th(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Th(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function T(a){z.call(this,"RK11",a,T,65536);this.K=Uh(this,a.autoMount);this.F=0;this.g=Array(8);this.L=!Pa("Mobi")&&window&&"FileReader"in window}E(T);function Uh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=T.prototype;
k.za=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RK11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&Vh(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&Wh(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Rd(d.b,0,!0),(a=d.Bc(a,0,0,0,512,0,2))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.L){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Qa(Sh(a),a.uc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.L)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Wh(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;if(a=Uh(this,Cd(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);Xh(this);this.Mb=Qc(this.b,144,5,65536);Lb(b,this,Yh);Nb(b,this.reset.bind(this));Zh(this,"None","",!0);this.L&&Zh(this,"Local Disk","?");Zh(this,"Remote Disk","??");$h(this)||L(this)};
k.Ma=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)ai(this,a,!0);$h(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Vh(this,0)}}return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){Xh(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return Xh(this,a[0])};function $h(a,b){b||(a.F=0);for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!bi(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
function Wh(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}bi(a,e,b,c,!1,d)}else ai(a,e)}
function bi(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Pa.toLowerCase()!=d.toLowerCase()&&(g++,ai(a,b,!0),h.zb?a.M("RK11 busy"):(h.zb=!0,e&&(h.yb=!0,a.F++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Nh(new Jh(a,h,"preload"),c,d,f,a.cd)&&g++));return g}
k.cd=function(a,b,c,d,e){a.zb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RK"+a.Bb)),b=null);b?(a.qa=b,a.Xa=c,a.Pa=d,this.M('Loaded disk "'+c+'" in drive '+("RK"+a.Bb),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.F||L(this));Vh(this,a.Bb)};
function Zh(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Vh(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Pa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ai(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Xa="",d.Pa="",d.qa=null,d.ib=!1,c||(a.M("Drive RK"+b+" unloaded",c),Vh(a,b))}
function Xh(a,b){var c=0;b||(b=[]);a.P=b[c++]||2496;a.v=b[c++]||0;a.f=b[c++]||128;a.I=b[c++]||0;a.H=b[c++]||0;a.A=b[c++]||0;a.N=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Bb=b;d.name=c.mb;d.zb=d.ib=!1;d.fa=203;d.ka=2;d.ia=12;d.Ca=512;d.dc=!0;d.od=0;d.md=0;d.nc=1;d.Mc=d.ia;d.rc=d.Ca;d.yd=0;d.Je=null;d.qa||(d.Pa="");d.status=2368}return!0}
k.bd=function(a,b,c,d,e,f){this.H=f&65535;this.f=this.f&-49|f>>12&48;this.I=65536-e&65535;this.A=this.A&-16|d&15;a&&(this.v=this.v|a|32768,this.f|=49152);return!0};
k.Bc=function(a,b,c,d,e,f,g,h,l){var m=0;a=a.qa;var n=null,r;a||(m=128,e=0);for(;e--;){if(!n){n=a.seek(b,c,d+1);if(!n){m=4096;break}r=0}var u,t;if(0>(u=a.read(n,r++))||0>(t=a.read(n,r++))){m=32;break}if(!h&&($b(this.w,f,u|t<<8),Mc(this.w))){m=1024;break}f+=g;if(r>=a.Ca&&(n=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){m=64;break}}return l?l(m,b,c,d,e,f):m};
k.dd=function(a,b,c,d,e,f,g,h,l){var m=0;a=a.qa;var n=null,r;a||(m=128,e=0);for(;e--;){var u=ac(this.w,f);if(Mc(this.w)){m=1024;break}f+=g;if(!n){n=a.seek(b,c,d+1,!0);if(!n){m=4096;break}r=0}if(h){var t,C;if(0>(t=a.read(n,r++))||0>(C=a.read(n,r++))){m=32;break}if(u!=(t|C<<8)){m=1;break}}else if(!a.write(n,r++,u&255)||!a.write(n,r++,u>>8)){m=32;break}if(r>=a.Ca&&(n=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){m=64;break}}return l?l(m,b,c,d,e,f):m};k.je=function(){return this.P};k.jf=function(){};
k.ke=function(){return this.v};k.kf=function(){};k.ge=function(){return this.f&61438};
k.ff=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){a=!0;var b,c="",d=(this.A&57344)>>13,e=this.g[d],f,g,h,l,m,n;this.f&=-129;var r=(this.f&14)>>1;switch(r){case 0:K(this)&&I(this,this.type+": CRESET("+d+")",!0);this.v=0;this.f=128;this.A=0;break;case 4:f=(this.A&8160)>>5;K(this)&&I(this,this.type+": SEEK("+f+")",!0);f>=e.fa&&(this.v|=32832,this.f|=49152);break;case 5:c="RCHK";case 2:c||(c="READ"),b=this.Bc;case 3:c||(c="WCHK");case 1:c||(c="WRITE");b||(b=this.dd);f=(this.A&8160)>>5;g=(this.A&
16)>>4;h=this.A&15;l=65536-this.I&65535;m=(this.f&48)<<12|this.H;n=this.f&2048?0:2;K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") "+p(m)+"-"+p(m+(l-1<<1)),!0,!0);if(f>=e.fa){this.v|=32832;this.f|=49152;break}if(h>=e.ia){this.v|=32800;this.f|=49152;break}a=b.call(this,e,f,g,h,l,m,n,3<=r,this.bd.bind(this));break;case 6:K(this)&&I(this,this.type+": DRESET("+d+")");break;default:K(this)&&I(this,this.type+": UNSUPPORTED("+r+")")}this.P=e.status|(e.qa?128:0)|d<<13|this.A&15;this.v&32768&&K(this)&&
I(this,this.type+": ERROR: "+p(this.v)+")");a&&(this.f&=-2,this.f|=128,this.f&64&&Oc(this.b,this.Mb))}};k.le=function(){return this.I};k.lf=function(a){this.I=a};k.fe=function(){return this.H};k.ef=function(a){this.H=a};k.he=function(){return this.A};k.gf=function(a){this.A=a};k.ie=function(){return this.N};k.hf=function(a){this.N=a};
var ci={},Yh=(ci[65280]=[null,null,T.prototype.je,T.prototype.jf,"RKDS"],ci[65282]=[null,null,T.prototype.ke,T.prototype.kf,"RKER"],ci[65284]=[null,null,T.prototype.ge,T.prototype.ff,"RKCS"],ci[65286]=[null,null,T.prototype.le,T.prototype.lf,"RKWC"],ci[65288]=[null,null,T.prototype.fe,T.prototype.ef,"RKBA"],ci[65290]=[null,null,T.prototype.he,T.prototype.gf,"RKDA"],ci[65294]=[null,null,T.prototype.ie,T.prototype.hf,"RKDB"],ci);
function R(a){z.call(this,"RL11",a,R,131072);this.L=di(this,a.autoMount);this.I=0;this.g=Array(4);this.N=!Pa("Mobi")&&window&&"FileReader"in window}E(R);function di(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=R.prototype;
k.za=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&ei(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&fi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Rd(d.b,0,!0),(a=d.Cc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.N){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Qa(Sh(a),a.uc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.N)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;fi(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;if(a=di(this,Cd(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.L[e]=a[e]);gi(this);this.Mb=Qc(this.b,112,5,131072);Lb(b,this,hi);Nb(b,this.reset.bind(this));ii(this,"None","",!0);this.N&&ii(this,"Local Disk","?");ii(this,"Remote Disk","??");ji(this)||L(this)};
k.Ma=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)ki(this,a,!0);ji(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";ei(this,0)}}return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){gi(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return gi(this,a[0])};function ji(a,b){b||(a.I=0);for(var c in a.L){var d=a.L[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!li(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.I}
function fi(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}li(a,e,b,c,!1,d)}else ki(a,e)}
function li(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Pa.toLowerCase()!=d.toLowerCase()&&(g++,ki(a,b,!0),h.zb?a.M("RL11 busy"):(h.zb=!0,e&&(h.yb=!0,a.I++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Nh(new Jh(a,h,"preload"),c,d,f,a.fd)&&g++));return g}
k.fd=function(a,b,c,d,e){a.zb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RL"+a.Bb)),b=null);b?(a.qa=b,a.Xa=c,a.Pa=d,this.M('Loaded disk "'+c+'" in drive '+("RL"+a.Bb),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.I||L(this));ei(this,a.Bb)};
function ii(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ei(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Pa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ki(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Xa="",d.Pa="",d.qa=null,d.ib=!1,c||(a.M("Drive RL"+b+" unloaded",c),ei(a,b))}
function gi(a,b){var c=0;b||(b=[]);a.f=b[c++]||129;a.K=b[c++]||0;a.v=b[c++]||0;a.A=b[c++]||0;a.H=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Bb=b;d.name=c.mb;d.zb=d.ib=!1;d.fa=512;d.ka=2;d.ia=40;d.Ca=256;d.dc=!0;d.od=0;d.md=0;d.nc=1;d.Mc=d.ia;d.rc=d.Ca;d.yd=0;d.Je=null;d.qa||(d.Pa="");d.status=29}return!0}
k.ed=function(a,b,c,d,e,f){this.K=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.A=this.v=b<<7|(c?64:0)|d&63;this.H=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
k.Cc=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=5120;break}$b(this.w,this.b.Ja(f),n|r<<8);if(Mc(this.w)){h=8192;break}f+=2;if(m>=a.Ca&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};
k.gd=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=ac(this.w,this.b.Ja(f));if(Mc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Ca&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};k.oe=function(){return this.f&65535};
k.pf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){a=!0;var b,c="",d=this.g[(this.f&768)>>8],e=d.qa,f,g,h;this.f&=-2;switch(this.f&14){case 4:this.H&8&&(this.f&=63);this.H=d.status|this.A&64|(e&&512==e.fa?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.A=this.v&4?this.A+b:this.A-b,this.v=this.A=this.A&65408|c);break;case 8:this.H=this.A;break;case 12:c="READ",b=this.Cc;case 10:c||(c="WRITE"),b||(b=this.gd),f=this.v>>7,g=this.v&64?1:0,
h=this.v&63,!e||f>=e.fa||h>=e.ia?this.f|=37888:(a=65536-this.H&65535,e=(this.F&63)<<16|this.K,K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") "+p(e)+"-"+p(e+(a-1<<1)),!0,!0),a=b.call(this,d,f,g,h,a,e,this.ed.bind(this)))}a&&(this.f|=129,this.f&64&&Oc(this.b,this.Mb))}};k.me=function(){return this.K};k.mf=function(a){this.K=a&65534};k.pe=function(){return this.v};k.qf=function(a){this.v=a};k.qe=function(){return this.H};k.rf=function(a){this.H=a};k.ne=function(){return this.F};
k.nf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};var mi={},hi=(mi[63744]=[null,null,R.prototype.oe,R.prototype.pf,"RLCS"],mi[63746]=[null,null,R.prototype.me,R.prototype.mf,"RLBA"],mi[63748]=[null,null,R.prototype.pe,R.prototype.qf,"RLDA"],mi[63750]=[null,null,R.prototype.qe,R.prototype.rf,"RLMP"],mi[63752]=[null,null,R.prototype.ne,R.prototype.nf,"RLBE"],mi);function ni(a){z.call(this,"Debugger",a,ni);this.ma=a.base||16;this.Ga=!1;this.K=0;this.T=!1;this.A=-1;this.g=[];this.ca={}}E(ni);
var oi={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ni.prototype.Qc=function(){return-1};ni.prototype.Rc=function(){};ni.prototype.Sc=function(){};
function pi(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.T?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}
function qi(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function ti(a,b,c){var d;if(b){b=ui(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=ua(n);if(!n){f=!0;break}n=vi(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],t=n.length;l.length&&qi[n]<qi[l[l.length-1]]&&si(h,l,1);l.push(n);b=b.substr(r+t)}si(h,l)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&wi(a,null,
d))}return d}function ui(a,b){for(var c,d=a.Ga?"(":"{",e=a.Ga?")":"}",f=new RegExp(a.Ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=ti(a,c[1]);b=b.replace(d+c[1]+e,null!=g?N(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function vi(a,b,c,d){var e;null!=b?(e=a.Rc(b),0<=e?e=a.Sc(e):(e=a.ba[b],null==e&&(e=a.Tc(b),null==e&&(e=na(b,a.ma)))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}function wi(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=oa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+p(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
function xi(a,b){if(b)return wi(a,b,a.ba[b]);var c=0;for(b in a.ba)wi(a,b,a.ba[b]),c++;return 0<c}function N(a,b,c,d){switch(a.ma){case 8:a=p(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=q(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
function yi(a){pi.call(this,a);this.Za=!1;this.Ga=!0;this.L=Y(0);this.Ya=Y(0);this.S=Y(0);this.H=[];this.f=this.P=this.K=[];zi(this);this.wa=0;Ai(this);this.Qa={};Bi(this,a.messages);this.Ta=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Id(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Id(b,a)})}E(yi,pi);
var Ci={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Di=".WORD 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(" "),
Ei={SP:6,PC:7,PS:20,IR:21,ER:22,SL:23,MMR0:24,MMR1:25,MMR2:26,MMR3:27,AR:28,DR:29,SR:30},Fi="KI KD SI SD ?? ?? UI UD".split(" "),Gi={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]},
function ri(a,b,c){var d;if(b){b=si(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=za(n);if(!n){f=!0;break}n=ti(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],u=n.length;l.length&&oi[n]<oi[l[l.length-1]]&&qi(h,l,1);l.push(n);b=b.substr(r+u)}qi(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&ui(a,null,
d))}return d}function si(a,b){for(var c,d=a.Ga?"(":"{",e=a.Ga?")":"}",f=new RegExp(a.Ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=ri(a,c[1]);b=b.replace(d+c[1]+e,null!=g?N(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function ti(a,b,c,d){var e;null!=b?(e=a.Qc(b),0<=e?e=a.Rc(e):(e=a.ca[b],null==e&&(e=a.Sc(b),null==e&&(e=na(b,a.ma)))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}function ui(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=oa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+p(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function vi(a,b){if(b)return ui(a,b,a.ca[b]);var c=0;for(b in a.ca)ui(a,b,a.ca[b]),c++;return 0<c}function N(a,b,c,d){switch(a.ma){case 8:a=p(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=q(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
function wi(a){ni.call(this,a);this.Za=!1;this.Ga=!0;this.L=Y(0);this.Ya=Y(0);this.S=Y(0);this.I=[];this.f=this.N=this.F=[];xi(this);this.wa=0;yi(this);this.Qa={};zi(this,a.messages);this.Ta=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Gd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Gd(b,a)})}E(wi,ni);
var Ai={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Bi=".WORD 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(" "),
Ci={SP:6,PC:7,PS:20,IR:21,ER:22,SL:23,MMR0:24,MMR1:25,MMR2:26,MMR3:27,AR:28,DR:29,SR:30},Di="KI KD SI SD ?? ?? UI UD".split(" "),Ei={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,32768],35072:[107,32768]},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]}},Hi=[0],Ii=[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=yi.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.v=a.v;(a=Ed(a,"messages"))&&Bi(this,a);this.vb=Gi;this.Gb=1145>this.b.bb?Ii:[];cd(this,16,function(a){a:{var b=d.w.da,c=a[0],e=a=0,l=b.length;if(c){a=d.aa(Ji(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ra;l=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=Ic[c],n&&d.j(q(n.id,8)+" %"+
q(e<<d.w.ra,8)+" %%"+q(n.G,8)+" "+v(n.Sb)+" "+v(n.size)+" "+m),c!=rd&&(c=-1),m=0);a+=d.w.Ka;e++}}});L(this)};
k.ya=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.D[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Id(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.g.length-1&&(b=d.g[++d.A])):40==a.keyCode&&(0<d.A?b=d.g[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.D[b]=c,Ra(c,function(){if(d.va){var a=d.va.value;
d.va.value="";Id(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Ra(c,function(a){var b=!1;xb(d,!0)||(wb(d,!0),b=d.sb(a?1:0,null),wb(d,!1));return b}),!0}return!1};k.rb=function(a){if(this.va){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.va.focus();!a&&window&&window.scrollTo(b,c)}};k.aa=function(a){a=a&&a.G;null==a&&(a=-1);return a};k.Ja=function(a){return 3932160<=a?this.b.Ja(a):a};
k.fc=function(a,b){var c=255,d=this.aa(a,!1,1);-1!==d&&(a.bc||65535<d?(c=this.w,d=this.Ja(d),c.B=!1,c.sa++,d=Jc(c,d).I(d&c.w,d),c.sa--):(c=this.b,c.K++,d=Ae(c,mc(c,d,3)),c.K--),c=d,b&&Ki(a,b));return c};k.xa=function(a,b){var c=65535,d=this.aa(a,!1,2);-1!==d&&(c=a.bc||65535<d?nc(this.w,this.Ja(d)):oc(this.b,d),b&&Ki(a,b));return c};
k.Rb=function(a,b,c){var d=this.aa(a,!0,1);if(-1!==d){if(a.bc||65535<d)Kc(this.w,this.Ja(d),b);else{var e=this.b;e.K++;d=mc(e,d,5);d&1&&e.b--;e.w.Rb(d,b);e.K--}c&&Ki(a,c);this.B.za(-1)}};k.Fb=function(a,b,c){var d=this.aa(a,!0,2);if(-1!==d){if(a.bc||65535<d)Zb(this.w,this.Ja(d),b);else{var e=this.b;e.K++;e.xc(mc(e,d,4),b);e.K--}c&&Ki(a,c);this.B.za(-1)}};function Y(a,b){return{G:a,bc:b,$a:!1}}k.vc=function(a,b){a.G=b;a.$a=!1;return a};function Li(a){return[a.G,a.$a]}
function Mi(a){return{G:a[0],$a:a[1]}}function Ji(a,b,c){var d,e=(c?a.L:a.Ya).G;c=!1;if(void 0!==b){b=ui(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.H.length;e++){var g=a.H[e].ja[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=ti(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Ni(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ld=ri(a,b.Xc=c[2]))}function Ki(a,b){null!=a.G&&(a.G+=b||1)}
function Bi(a,b){a.i=a;a.pa=a.sd=536870912;a.na=null;a.Y=[];b=ri(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Eb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.pa|=Eb[c],a.j(c+" messages enabled"))}}function cd(a,b,c){for(var d in Eb)if(b==Eb[d]){a.Qa[d]=c;break}}
k.Rc=function(a){a=a.toUpperCase();var b=Ei[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Oi(a){return 6>a?"R"+a:6==a?"SP":"PC"}
k.Sc=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.cb[a-8];else if(20>a)b=this.b.Oa[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=kd(this.b);break;case 21:b=c.Db;break;case 22:b=c.oa;break;case 23:b=c.jb;break;case 24:b=ed(c);break;case 25:b=gd(c);break;case 26:b=hd(c);break;case 27:b=c.Na;break;case 28:d&&(b=d.Da);break;case 29:d&&(b=d.Cb);break;case 30:d&&sc(d)&&(b=d.kb)}}return b};
k.Tc=function(a){var b;a:{b=this.w;a=a.toUpperCase();for(var c in b.Ua){var d=+c;if(b.Ua[d][4]==a){b=d+b.Ha;break a}}b=null}return b};k.message=function(a,b){b&&(a+=" @"+N(this,Y(this.b.ta&65535).G));if(!this.na||a!=this.na)if(this.na=a,this.pa&1073741824)this.Y.push(a);else{var c;if(this.pa&-2147483648&&this.b&&(c=this.b.C.U)||xb(this,!0))this.fa(),c&&(a+=" (cpu halted)");this.j(a);this.b&&(a=this.b,Md(a),a.Qa=0,a.za())}};
function Ai(a){var b;if(!Me(a))a.F&&a.F.length&&a.j("instruction history buffer freed"),a.ca=0,a.F=[];else if(!a.F||!a.F.length){a.F=Array(1E3);for(b=0;b<a.F.length;b++)a.F[b]=Y();a.ca=0;a.j("instruction history buffer allocated")}}k.lb=function(a,b){if(!Pi(this,b))return!1;this.b.lb(a);return!0};
k.sb=function(a,b,c){if(!Pi(this))return!1;null===b&&(b=!this.wb||"tr"==this.wb);this.I=0;a||Me(this)&&Ne(this,this.b.u[7],0);try{a=Nd(this.b,a);var d=this.b.sb(a);0<d&&(Ub(this.b,d),this.I+=d,Vb(this.b,d,!0),Wb(this.b,d),this.Aa++)}catch(e){"number"!=typeof e&&(this.I=0,Ab(this.b,e.stack||e.message))}!1!==c&&(this.v&&this.v.stop(),this.B.za(-1));Hd(this,b||!1);return 0<this.I};k.fa=function(a){this.b&&this.b.fa(a)};
function Hd(a,b){if(a.Za){void 0===b&&(b=!0);var c;c=a.b;if(c=c.J&128?c.wd|c.td<<8:0){var d=c>>8;a.j("trapped to "+N(a,c&255,1)+" ("+(0>d?Cb[-d]:N(a,d))+")")}a.L=Y(a.b.u[7]);b&&1!=a.N?Qi(a):Ri(a)}}function Pi(a,b){var c;(c=!a.b||!yb(a.b))||(c=a.b,c.C.la?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.U?(b||a.j("cpu busy or unavailable, command ignored"),!1):!zb(a.b)}k.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.La=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Ai(this);this.Aa=0;this.na=null;this.I=0;this.L=Y(this.b.u[7]);this.C.U=!1;Si(this);a||Hd(this)};k.save=function(){var a=new U(this);a.set(0,Li(this.L));a.set(1,Li(this.S));a.set(2,[this.g,this.T,this.pa]);a.set(3,this.H);return a.data()};
k.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Mi(a[b++]),this.S=Mi(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.T=a[b][1],this.pa|=a[b][2]);a[3]&&(this.H=a[3]);return!0};k.start=function(a,b){this.N||this.j("running");this.C.U=!0;this.Hb=a;this.Vb=b};
k.stop=function(a,b){if(this.C.U){this.C.U=!1;this.I=b-this.Vb;if(!this.N){b="stopped";if(this.I){a-=this.Hb;var c=0<a?Math.round(1E3*this.I/a):0;b+=" (";Me(this)&&(b+=this.Aa+" instructions, ",this.Aa=0);b+=this.I+" cycles, "+a+" ms, "+c+" hz)"}else K(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}Hd(this,!0);this.rb();Si(this,this.b.u[7]);this.na=null}};function Me(a){return 1<a.f.length||!!a.wa}
function Ne(a,b,c){var d=-1;c||(d=oc(a.b,b),0==d&&(b=Zd(a.b,2)));if(0<c&&(a.wa&&!--a.wa||Ti(a,b,1,a.f)))return!0;0<=c&&a.F.length&&(a.Aa++,0>d&&(d=oc(a.b,b)),65535!=(d&65535)&&(a.vc(a.F[a.ca],b),++a.ca==a.F.length&&(a.ca=0)));return!1}function Tf(a){var b=a.b;if(b.C.U)throw Ud(b,a.b.ta&65535),a.fa(),-1;return!1}function Ec(a,b,c){Ti(a,b,c||1,a.P)&&a.fa(!0)}function Fc(a,b,c){Ti(a,b,c||1,a.K)&&a.fa(!0)}
function zi(a){var b,c;a.f=["bp"];if(a.P)for(b=1;b<a.P.length;b++){c=a.P[b];var d=a.w;c=a.aa(c);Ad(d.da[c>>>d.ra],!1)}a.P=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],d=a.w,c=a.aa(c),Ad(d.da[c>>>d.ra],!0);a.K=["bw"];a.eb=0}k.xb=function(a,b,c){var d=!0;c||Ui(this,a,b,!1,!0);if(a!=this.f){var e=this.aa(b);if(-1===e)this.j("invalid address: "+N(this,b.G)),d=!1;else{var f=this.w;f.da[e>>>f.ra].xb(e&f.w,a==this.K)}}d&&(a.push(b),c?b.$a=!0:(Vi(this,a,a.length-1,"set"),Ai(this)));return d};
function Ui(a,b,c,d,e){var f=!1;c=a.aa(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.aa(h)&&(!d||h.$a)){f=!0;h.$a||e||Vi(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Ad(d.da[c>>>d.ra],b==a.K));h.$a||Ai(a);break}}return f}function Wi(a,b){for(var c=1;c<b.length;c++)Vi(a,b,c);return b.length-1}function Vi(a,b,c,d){c=b[c];a.j(b[0]+" "+N(a,c.G)+(d?" "+d:c.Xc?' "'+c.Xc+'"':""))}
function Si(a,b){if(void 0!==b)Ti(a,b,1,a.f,!0),a.N=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.$a){if(!Ui(a,a.f,c,!0))break;b=0}}}
function Ti(a,b,c,d,e){var f=!1;if(!a.eb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.$a)for(var l=a.aa(h)&65535,m=0;m<c;m++)if(b+m==l){var n,f=!0;h.$a&&(Ui(a,d,h,!0),e=!0);if(n=h.ld){for(var f=!1,r=0;r<n.length;r++)if(!Xi(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var t=r+1;t<n.length&&n[t].indexOf("else");t++)r++;if(t==n.length){f=!0;break}}a.b.C.U||(f=!0)}if(f){e||Vi(a,d,g,"hit");break}}}a.eb--;return f}
function Yi(a,b,c,d){var e=Y(b.G),f=a.xa(b,2),g,h;for(h in a.vb)if(g=a.vb[h][f&h])break;g||(g=Hi);var l=g[0];0<=a.Gb.indexOf(l)&&(g=Hi,l=g[0]);var m=h="",n=Di[l],r=g.length-1;l||r||(h=N(a,f));for(l=1;l<=r;l++){var t=g[l];if(void 0!==t){var u;u=a;var C=t,t=b,y="",A=C&61440;if(4096==A)t=t.G+((f&255)<<24>>23)&65535,y=N(u,t);else if(8192==A)t=t.G-((f&63)<<1)&65535,y=N(u,t);else if(12288==A)y=N(u,f&7,1);else if(24576==A)y=N(u,f&63,1);else if(32768==A)y=N(u,f&255,1);else if(A=f&C,C&4032&&(A>>=6,C>>=6),
C&63){var C=null,D=A&7;switch(A&56){case 0:y=Oi(D);break;case 8:y="@"+Oi(D);C=Zi(u,u.b.u[D]);break;case 16:7>D?y="("+Oi(D)+")+":(A=u.xa(t,2),y="#"+N(u,A,0,!0));break;case 24:7>D?y="@("+Oi(D)+")+":(A=u.xa(t,2),y="@#"+N(u,A,0,!0),C=Zi(u,A));break;case 32:y="-("+Oi(D)+")";break;case 40:y="@-("+Oi(D)+")";break;case 48:A=u.xa(t,2);y=N(u,A,0,!0)+"("+Oi(D)+")";7==D&&(y=N(u,A=A+t.G&65535),C=Zi(u,A));break;case 56:A=u.xa(t,2),y="@"+N(u,A)+"("+Oi(D)+")",7==D&&(y="@"+N(u,A=A+t.G&65535),C=Zi(u,oc(u.b,A)))}C&&
(y=[y,C])}u=y;if(!u||!u.length){h="INVALID";break}"string"!=typeof u&&(m=u[1],u=u[0]);0<h.length&&(h+=",");h+=u||"???"}}f="";g=N(a,e.G)+":";if(-1!==e.G&&-1!==b.G){do if(f+=" "+N(a,a.xa(e,2)),null==e.G)break;while(e.G!=b.G)}g+=ta(f,24);g+=ta(n,5);h&&(g+=" "+h);if(c||m)g=ta(g,60)+";"+(c||""),g=a.b.C.Jb?g+("cycles="+Jd(a.b).toString()+" cs="+q(a.b.Xb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Zi(a,b){b=a.b.ec(b)[0];b>=a.b.Ha&&b<a.w.Ha&&(b=b-a.b.Ha+a.w.Ha);return a.w.ec(b)}function $i(a,b){switch(b){case "N":a=Yd(a.b);break;case "Z":a=Xd(a.b);break;case "V":a=Wd(a.b);break;case "C":a=Vd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.b;if(8>b)c=Oi(b),c+="="+N(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+N(a,d.cb[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+N(a,d.Oa[b-16]);else switch(b){case 20:c="PS="+N(a,kd(d));break;case 21:c="IR="+N(a,d.Db);break;case 22:c="ER="+N(a,d.oa);break;case 23:c="SL="+N(a,d.jb);break;case 24:c="MMR0="+N(a,ed(d));break;case 25:c="MMR1="+N(a,gd(d));break;case 26:c="MMR2="+N(a,hd(d));break;case 27:c="MMR3="+N(a,d.Na);break;case 28:a.v&&(c="AR="+N(a,a.v.Da,3));break;case 29:a.v&&
(c="DR="+N(a,a.v.Cb));break;case 30:a.v&&sc(a.v)&&(c="SR="+N(a,a.v.kb,3))}c&&(c+=" ");return c}function aj(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,20)+Z(a,21)+Z(a,23);d+=$i(a,"T")+$i(a,"N")+$i(a,"Z")+$i(a,"V")+$i(a,"C");b&&(b=d,c=""+(Z(a,24)+Z(a,25)),c+=Z(a,26)+Z(a,27)+Z(a,22),c=c+"\n"+(Z(a,30)+Z(a,28)+Z(a,29)),d=b+("\n"+c));return d}k.Oc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Tg(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Ba(n,l,a.Oc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Pg:b,G:c,Bd:d,ja:e,Mc:f})}function bj(a,b,c){var d=[],e=a.aa(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.G>>>0,h=f.Bd;if(e>=g&&e<g+h){e=Ba(f.Mc,[e-g],a.Oc);0<=e?cj(a,b,e,d):c&&(e=~e,cj(a,b,e-1,d),cj(a,b,e,d));break}}return d}
function cj(a,b,c,d){var e={},f=a.H[b].Mc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.H[b].ja[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function dj(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return xi(a)||a.j("no variables"),!0;if(!c[2])return xi(a,c[1]);if(!c[3])return delete a.ba[c[1]],!0;b=ti(a,c[3]);return void 0!==b?(a.ba[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function ej(a,b,c){var d=null;if(b=Ji(a,b,!0)){a.aa(b);var e=bj(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.G-e[1])&&(g=" + "+v(f)),f=e[0]+" ("+N(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.G)&&(g=" - "+v(f)),f=e[4]+" ("+N(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function Qi(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=ti(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.u[6]=g&65535;break;case "PC":case "R7":Ud(e,
g);a.L=Y(e.u[7]);break;case "N":e.X=g?32768:0;break;case "Z":e.Z=g?0:1;break;case "V":e.W=g?32768:0;break;case "C":e.V=g?65536:0;break;case "PS":ld(e,g);break;case "IR":jd(e,g);break;case "ER":e.oa=g;d=!0;break;case "SL":e.jb=g|255;break;case "MMR0":fd(e,g);d=!0;break;case "MMR3":id(e,g);d=!0;break;case "AR":a.v&&(d=a.v,pc(d,d.Da=g));d=!0;break;case "DR":a.v&&(d=a.v,Yb(d,d.Cb=g));d=!0;break;case "SR":if(a.v&&sc(a.v)){qc(a.v,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.u[b]=
g&65535;break}a.j("unknown register: "+f);return}a.B.za();a.j("updated registers:")}}a.j(aj(a,d));c&&(a.L=Y(e.u[7]),Ri(a,N(a,a.L.G)))}}function fj(a,b){b=ua(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):wi(a,null,c[2].charCodeAt(0)):ti(a,b,!0)}
function gj(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=vi(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.wb=b;Qa(c,function(){return wb(a,!0)&&a.sb(e,d,!1)},function(){a.v&&a.v.stop();a.B.za(-1);wb(a,!1)})}}
function Ri(a,b,c,d){if(b=Ji(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=vi(a,c.substr(1)),null!=c&&(d=c);else{d=Ji(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=xb(a,!1)||a.N?a.I:null;var g=null!=f?"cycles":null,h=bj(a,b),l=b.G;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);f=Yi(a,b,g,f);a.j(f);a.L=b;e-=b.G-l;c++}}}
function Xi(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.T&&(a.j("ended assemble at "+N(a,a.S.G)),a.L=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(yb(a)&&0<b.length){a.T&&(b="a "+N(a,a.S.G)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
Ji(a,g[1],!0);if(r)if(a.S=r,void 0===g[2])a.j("begin assemble at "+N(a,r.G)),a.T=!0,a.B.za();else{var t;a.j("not supported yet");t=[];if(t.length){for(var u=0;u<t.length;u++)a.Rb(r,t[u],1);a.j(Yi(a,a.S))}}break;case "b":a:{var C=g[0],y=g[1],A=b;if("?"==y)a.j("breakpoint commands:"),a.j("\tbp [#]\tset exec breakpoint at addr #"),a.j("\tbr [#]\tset read breakpoint at addr #"),a.j("\tbw [#]\tset write breakpoint at addr #"),a.j("\tbc [#]\tclear breakpoint at addr #"),a.j("\tbl\tlist all breakpoints"),
a.j("\tbn [#]\tbreak after # instruction(s)");else{var D=C.charAt(1);if("l"==D){var Sa;Sa=0+Wi(a,a.f);Sa+=Wi(a,a.P);(Sa+=Wi(a,a.K))||a.j("no breakpoints")}else if("n"==D)a.wa=vi(a,y),a.j("break after "+a.wa+" instruction(s)");else if(void 0===y)a.j("missing breakpoint address");else{var S=Y();if("*"!=y&&(S=Ji(a,y,!0),!S))break a;"c"==D?null==S.G?(zi(a),a.j("all breakpoints cleared")):Ui(a,a.f,S)||Ui(a,a.P,S)||Ui(a,a.K,S)||a.j("breakpoint missing: "+N(a,S.G)):null!=S.G&&(Ni(a,S,A),"p"==D?a.xb(a.f,
S):"r"==D?a.xb(a.P,S):"w"==D?a.xb(a.K,S):a.j("unknown breakpoint command: "+D))}}}break;case "c":a.gb&&(a.gb.value="");break;case "d":a:{var rb,Ka=g[0],va=g[1],Va=g[2],zj=g[3];if("?"==va){var sb="";for(rb in Eb)a.Qa[rb]&&(sb&&(sb+=","),sb+=rb);sb+=",state,symbols";a.j("dump memory commands:");a.j("\tda [a] dump info for address a");a.j("\tdb [a] [n] dump n bytes at address a");a.j("\tdw [a] [n] dump n words at address a");a.j("\tdd [a] [n] dump n dwords at address a");a.j("\tds [a] [n] dump n words at address a as JSON");
a.j("\tdh [p] [n] dump n instructions from history position p");sb.length&&a.j("dump extension commands:\n\t"+sb)}else if("state"==va){var ih=hj(a.B,!0);"console"==Va?console.log(ih):(a.gb&&(a.gb.value=""),a.j(ih))}else if("symbols"==va)for(var ee=0;ee<a.H.length;ee++){var fe=a.H[ee],tb;for(tb in fe.ja)if("."!=tb.charAt(0)){var jh=fe.ja[tb].o;if(void 0!==jh){var kh=fe.ja[tb].l;kh&&(tb=kh);a.j(N(a,jh)+" "+tb)}}}else{if("d"==Ka){for(rb in Eb)if(g[1]==rb){var lh=a.Qa[rb];lh?(g.shift(),g.shift(),lh(g)):
a.j("no dump registered for "+va);break a}va||(Ka=a.Wb||"dw")}else a.Wb=Ka;if("dh"==Ka){var mh=va,nh=Va,oh="",ph=0,la=a.ca,wa=a.F;if(wa.length){var ga=+mh||a.ub,$b=+nh||10;isNaN(ga)?ga=$b:oh="more ";ga>wa.length&&(a.j("note: only "+wa.length+" available"),ga=wa.length);la-=ga;0>la&&(null==wa[wa.length-1].G?(ga=la+ga,la=0):la+=wa.length);var ge=[];"call"==nh&&($b=1E5,ge=["CALL"]);for(void 0!==mh&&a.j(ga+" instructions earlier:");0<$b&&la!=a.ca;){var qh=wa[la++];if(null==qh.G)break;var ac=Y(qh.G),Aj=
ga--,rh=Yi(a,ac,"history",Aj);(!ge.length||0<=rh.indexOf(ge[0]))&&a.j(rh);ac.pc&&(la+=ac.pc,$b-=ac.pc,ga-=ac.pc);la>=wa.length&&(la=0);a.ub=ga;ph++;$b--}}ph||(a.j("no "+oh+"history available"),a.ub=void 0)}else{var xa=Ji(a,va);if(xa)if("da"==Ka){var ha=a.b.ec(xa.G);a.j(ta("",19)+oa(xa.G,17,3)+" "+p(xa.G,8));1<ha.length&&(a.j(ta("",24)+oa(ha[1],13,3)+" "+p(ha[1],8)),a.j("+ "+Fi[ha[2]]+"PAR["+ha[3]+"]: "+oa(ha[4],22,3)+" "+p(ha[4],8)),a.j("& MMU MASK: "+oa(ha[5],22,3)+" "+p(ha[5],8)),a.j("= PHYSICAL: "+
oa(ha[0],22,3)+" "+p(ha[0],8)))}else{var bc=0,he=!1,ie="ds"==Ka;Va&&(he=!0,"l"==Va.charAt(0)&&(he=!1,Va=Va.substr(1)||zj),bc=vi(a,Va)>>>0,65536<bc&&(bc=65536));for(var Wa="dd"==Ka?4:"db"==Ka?1:2,Vc=(he?bc-xa.G:Wa*bc)||128,je=ie?16:a.ma,Bj=(Vc+je-1)/je|0||1,Xa="";Bj--&&0<Vc;){for(var Ya="",ke="",va=N(a,xa.G),Wc=je,cc=0,dc=0;0<Wc&&0<Vc;){var ub=1,Xc=1==Wa?a.fc(xa,ub):a.xa(xa,ub=2),cc=cc|Xc<<(dc<<3),dc=dc+ub;dc==Wa&&(ie?(Ya&&(Ya+=","),Ya+="0x"+q(cc,2*Wa)):(Ya+=N(a,cc,Wa),Ya+=1==Wa?9==Wc?"-":" ":" "),
cc=dc=0);Wc-=ub;for(Vc-=ub;1==Wa&&ub--;)var le=Xc&255,ke=ke+(32<=le&&128>le?String.fromCharCode(le):"."),Xc=Xc>>8}Xa&&(Xa+="\n");Xa=ie?Xa+(Ya+","):Xa+(va+": "+Ya+(0==Wc?" "+ke:""))}Xa&&a.j(Xa);a.Ya=xa}}}}break;case "e":if("else"==g[0])break;var vb,me,ne,oe,pe=g[0],qe=g[1];"eb"==pe?(vb=1,me=255,ne=a.fc,oe=a.Rb):"e"==pe||"ew"==pe?(vb=2,me=65535,ne=a.xa,oe=a.Fb):qe=null;if(null==qe)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");
else{var Yc=Ji(a,qe);if(Yc)for(var Zc=2;Zc<g.length;Zc++){var ec=ti(a,g[Zc]);if(void 0===ec){a.j("unrecognized value: "+g[Zc]);break}ec&~me&&a.j("warning: "+q(ec)+" exceeds "+vb+"-byte value");a.j("changing "+N(a,Yc.G)+(K(a,16)?"":" from "+N(a,ne.call(a,Yc),vb))+" to "+N(a,ec,vb));oe.call(a,Yc,ec,vb)}}break;case "g":a:{var sh=g[1],Cj=b;if(void 0!==sh){var re=Ji(a,sh,!0);if(!re)break a;Ni(a,re,Cj);a.xb(a.f,re,!0)}a.lb(!0,c)}break;case "h":a.C.U?(c||a.j("halting"),a.fa()):xb(a,!0)||c||a.j("already halted");
break;case "i":if("if"==g[0]){var se;var fc=b.substr(2),fc=ua(fc);ti(a,fc)?(c||a.j("true: "+fc),se=!0):(c||a.j("false: "+fc),se=!1);se||(d=!1);break}f=!0;break;case "k":var Dj=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var te=0,ue=Y(),gc=Y(a.b.u[6]);for(a.j("stack trace for "+N(a,gc.G));10>te;){for(var Za=null,Ej=256;65536>gc.G>>>0;){ue.G=a.xa(gc,2);if(null==gc.G||!Ej--)break;if(!(ue.G&1)){for(var Fj=a,$c=ue,th=null,hc=
$c.G,uh=hc,ve=1;6>=ve&&hc;ve++){if(2<ve){$c.G=hc;var ad=Yi(Fj,$c);if(0<=ad.indexOf("JSR")){var vh=ad.indexOf(" ");if(hc+(ad.indexOf(" ",vh+1)-vh-1)/2==uh){th=ad;break}}}hc-=2}$c.G=uh;if(Za=th)break}}if(!Za||null==Za)break;var wh=null;if("ks"==Dj){var xh=Za.match(/[0-9A-F]+$/);xh&&(wh=ej(a,xh[0]))}Za=ta(Za,50)+" ;"+(wh||"stack="+N(a,gc.G));a.j(Za);te++}te||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){ej(a,g[1],!0);break}f=!0;break;case "m":a:{var ya,za=null,J=g[1];"?"==J&&(J=void 0);
if(void 0!==J){var La=0;if("all"==J)La=1879046143,J=null;else if("on"==J)za=!0,J=null;else if("off"==J)za=!1,J=null;else{"keys"==J&&(J="key");"kbd"==J&&(J="keyboard");for(ya in Eb)if(J==ya){La=Eb[ya];za=!!(a.pa&La);break}if(!La){a.j("unknown message category: "+J);break a}}if(La)if("on"==g[2])a.pa|=La,za=!0;else if("off"==g[2]&&(a.pa&=~La,za=!1,1073741824==La)){for(var yh=1E3<=a.Y.length?a.Y.length-1E3:0;yh<a.Y.length;)a.j(a.Y[yh++]);a.Y=[]}}var Gj=0,ic="";for(ya in Eb)if(!J||J==ya){var Hj=!!(a.pa&
Eb[ya]);if(null===za||za==Hj)ic&&(ic+=","),++Gj%10||(ic+="\n\t"),"key"==ya&&(ya="keys"),ic+=ya}void 0===J&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==za?za?"messages on: ":"messages off: ":"message categories:\n\t")+(ic||"none"));Ai(a)}break;case "p":if("print"==g[0]){fj(a,b.substr(5));break}var Ij=g[0];if("?"==g[1])a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");else{var zh="pr"==Ij?1:0,Ah=
1+zh;if(a.N)a.j("step in progress");else{var bd=Y(a.b.u[7]),jc=a.xa(bd);3==jc||4==jc||34816==(jc&65280)||35072==(jc&65280)?(a.N=Ah,Ki(bd,2)):2048==(jc&65024)&&(Yi(a,bd),a.N=Ah);a.N?(a.xb(a.f,bd,!0),a.lb()||(a.B&&a.B.rb(),a.N=0)):gj(a,zh?"tr":"t")}}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Qi(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kc=+g[2];if(8==kc||10==kc||16==kc)a.ma=kc;else{a.j("invalid base: "+kc);break}}a.j("default base: "+a.ma);break;case "cs":var lc;void 0!==
g[3]&&(lc=+g[3]);switch(g[2]){case "int":a.b.Nb=lc;break;case "start":a.b.Yb=lc;break;case "stop":a.b.Ob=lc;break;default:a.j("unknown cs option");break a}void 0!==lc&&Gd(a.b);a.j("checksums "+(a.b.C.Jb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Kd(a.b,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.b.Bb.toFixed(2)+"Mhz")+" ("+a.b.pb+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),
a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":gj(a,g[0],g[1]);break;case "u":Ri(a,g[1],g[2],8);break;case "v":if("var"==g[0]){dj(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j("PDPjs version 1.30.6 ("+a.b.bb+",RELEASE"+(Bb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){fj(a,
b.substr(1));break}var we="commands:",xe;for(xe in Ci)we+="\n"+ta(xe,9)+Ci[xe];Me(a)||(we+="\nnote: history disabled if no exec breakpoints");a.j(we);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(Bh){a.j("debugger error: "+(Bh.stack||Bh.message)),d=!1}return d}function Id(a,b,c){b=ri(a,b,c);for(var d in b)if(!Xi(a,b[+d]))return!1;return!0}cb(function(){for(var a=H(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new yi(d);G(d,c)}});
function ij(a,b,c){z.call(this,"Computer",a,ij,33554432);this.C.la=!1;jj(this,b);this.L=Ed(this,"autoPower",a);this.g=0;this.Y=a.busWidth||a.buswidth;this.f=kj;this.I=null;this.F=this.S=!1;this.ba=Ed(this,"url")||"";(Math.random()+.1).toString(36);this.B=lj(this);if(this.b=qb("CPU",this.id)){this.i=qb("Debugger",this.id);this.w=new uc({id:this.nb+".bus",busWidth:this.Y},this.b,this.i);var d,e=ob(this.id);if((this.v=qb("Panel",this.id))&&this.v.gb)for(b=0;b<e.length;b++)d=e[b],d.M=this.v.M,d.j=this.v.j,
d.gb=this.v.gb;this.j("PDPjs v1.30.6\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ia&&d.Ia(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Ed(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=kj),this.f&&(this.K=
new U(this,"1.30.6"),mj(this.K)?b=null:delete this.K);!b&&this.f&&(b=nj(this))&&(this.F=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.I=b,g.S=!0);L(g)})}else L(this);this.D.power||(this.L=!0);!c&&this.L&&oj(this,this.Zb)}else x("Unable to find CPU component")}E(ij);var kj=0;
function jj(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.T=b}function Ed(a,b,c){var d=b.toLowerCase(),d=hb[b]||hb[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function oj(a,b,c){for(var d=ob(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){oj(a,b,c)});return}}b.call(a,c)}
function pj(a,b){var c=new U(a,"1.30.6","validate");if(mj(c)&&qj(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ij.prototype;
k.Zb=function(a){void 0===a&&(a=this.f||(this.I?1:kj));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.K||new U(this,"1.30.6");if(-1==a)b=!0;else if(a>kj){if(mj(d,this.I)){this.A=new U(this,"1.30.6","failsafe");mj(this.A)&&(rj(this,d),a=2,sj(this.A));this.A.set("timestamp",Da());tj(this.A);var e=this.f&&!this.F;if(1==a||Ha("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=qj(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?mj(d,g):("error"==
f&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(Na("user",""),this.B=null)):this.j(f+": "+g),sj(d),mj(d)?(c=qj(d),e=!0):c=!1))}e&&pj(this,c?d:null)}else 2==a&&d.clear()}else pj(this);delete this.I;delete this.K}e=ob(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=uj(this,g,d,b,c));b=[d,a,c];-1!=a?oj(this,this.Pc,b):this.Pc(b)}};
function uj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.Ma){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ma(f,d)&&f&&(x("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.f=kj,window&&window.location.reload()):a.P=!0,b.Ma(null),e=!1)}if(!d&&b.Fc)for(a=b.Fc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Pc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.C.la=!0;var d=this.D.power;d&&(d.textContent="Shutdown");this.b&&(uj(this,this.b,b,c,a),this.za(),this.b.fb());this.P&&(rj(this,b),b.clear());!c&&this.A&&(this.A.clear(),delete this.A);this.g=0};
function rj(a,b){if(Ha("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.6"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function hj(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new U(a,"1.30.6"),g=new U(a,"1.30.6","validate"),h=Da();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.La&&(c&&a.b.fa(),d=a.b.La(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=ob(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.La&&(d=m.La(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.C.la=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&vj(a,a.B,f.toString()),tj(g)&&tj(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.C.la=!1,b=a.D.power)&&(b.textContent="Power");a.g=0;return e}
k.reset=function(){this.w&&this.w.reset&&(I(this,"Resetting "+this.w.type),this.w.reset());this.b&&this.b.reset&&(I(this,"Resetting "+this.b.type),this.b.reset());for(var a=ob(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c!==this.b&&c.reset&&(I(this,"Resetting "+c.type),c.reset())}this.za(-1)};k.start=function(a,b){for(var c=ob(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.za(-1)};
k.stop=function(a,b){for(var c=ob(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.za(-1)};
k.za=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Vb+=c))&&(d.textContent=b.C.U?b.Aa.toFixed(2)+"Mhz":"Stopped",b.Vb=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.U;d=!!(b.b.J&8);if(0>=a||60<=(b.A+=a)){for(var e=0;e<b.b.u.length;e++)Sb(b,"R"+e,b.b.u[e]);e=kd(b.b);Sb(b,"PS",e);Sb(b,"NF",e&8?1:0,1);Sb(b,"ZF",e&4?1:0,1);Sb(b,"VF",e&2?1:0,1);Sb(b,"CF",e&1?1:0,1);b.A=0}pc(b,0<a&&c&&!d?b.b.Ib:b.Da);Yb(b,b.Cb);a=b.b;a=a.ba?a.Na&16?1:2:4;rc(b,"B22",a&1);rc(b,"B18",a&2);rc(b,"B16",
180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},Fi=[0],Gi=[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=wi.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.v=a.v;(a=Cd(a,"messages"))&&zi(this,a);this.vb=Ei;this.Ib=1145>this.b.bb?Gi:[];$c(this,16,function(a){a:{var b=d.w.ea,c=a[0],e=a=0,l=b.length;if(c){a=d.ba(Hi(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.w.ra;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Fc[c],n&&d.i(q(n.id,8)+" %"+
q(e<<d.w.ra,8)+" %%"+q(n.G,8)+" "+v(n.Ub)+" "+v(n.size)+" "+m),c!=od&&(c=-1),m=0);a+=d.w.Ka;e++}}});L(this)};
k.za=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.D[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.g.length-1&&(b=d.g[++d.A])):40==a.keyCode&&(0<d.A?b=d.g[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.D[b]=c,Ta(c,function(){if(d.va){var a=d.va.value;
d.va.value="";Gd(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Ta(c,function(a){var b=!1;yb(d,!0)||(sb(d,!0),b=d.sb(a?1:0,null),sb(d,!1));return b}),!0}return!1};k.rb=function(a){if(this.va){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.va.focus();!a&&window&&window.scrollTo(b,c)}};k.ba=function(a){a=a&&a.G;null==a&&(a=-1);return a};k.Ja=function(a){return 3932160<=a?this.b.Ja(a):a};
k.Ab=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(a.cc||65535<d?(c=this.w,d=this.Ja(d),c.B=!1,c.sa++,d=Gc(c,d).I(d&c.w,d),c.sa--):(c=this.b,c.K++,d=c.w.Ab(xe(c,d,3)),c.K--),c=d,b&&Ii(a,b));return c};k.xa=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=a.cc||65535<d?ac(this.w,this.Ja(d)):nc(this.b,d),b&&Ii(a,b));return c};k.Tb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){if(a.cc||65535<d)Hc(this.w,this.Ja(d),b);else{var e=this.b;e.K++;e.w.Tb(xe(e,d,5),b);e.K--}c&&Ii(a,c);this.B.Aa(-1)}};
k.Gb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){if(a.cc||65535<d)$b(this.w,this.Ja(d),b);else{var e=this.b;e.K++;e.Hb(d,b);e.K--}c&&Ii(a,c);this.B.Aa(-1)}};function Y(a,b){return{G:a,cc:b,$a:!1}}k.vc=function(a,b){a.G=b;a.$a=!1;return a};function Ji(a){return[a.G,a.$a]}function Ki(a){return{G:a[0],$a:a[1]}}
function Hi(a,b,c){var d,e=(c?a.L:a.Ya).G;c=!1;if(void 0!==b){b=si(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.I.length;e++){var g=a.I[e].ja[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=ri(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Li(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.jd=pi(a,b.Vc=c[2]))}function Ii(a,b){null!=a.G&&(a.G+=b||1)}
function zi(a,b){a.j=a;a.pa=a.qd=536870912;a.na=null;a.Y=[];b=pi(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Fb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.pa|=Fb[c],a.i(c+" messages enabled"))}}function $c(a,b,c){for(var d in Fb)if(b==Fb[d]){a.Qa[d]=c;break}}
k.Qc=function(a){a=a.toUpperCase();var b=Ci[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Mi(a){return 6>a?"R"+a:6==a?"SP":"PC"}
k.Rc=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.cb[a-8];else if(20>a)b=this.b.Oa[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=hd(this.b);break;case 21:b=c.Eb;break;case 22:b=c.oa;break;case 23:b=c.jb;break;case 24:b=bd(c);break;case 25:b=dd(c);break;case 26:b=ed(c);break;case 27:b=c.Na;break;case 28:d&&(b=d.Da);break;case 29:d&&(b=d.Db);break;case 30:d&&rc(d)&&(b=d.kb)}}return b};
k.Sc=function(a){var b;a:{b=this.w;a=a.toUpperCase();for(var c in b.Ua){var d=+c;if(b.Ua[d][4]==a){b=b.Ha+d;break a}}b=null}return b};k.message=function(a,b){b&&(a+=" @"+N(this,Y(this.b.ta&65535).G));if(!this.na||a!=this.na)if(this.na=a,this.pa&1073741824)this.Y.push(a);else{var c;if(this.pa&-2147483648&&this.b&&(c=this.b.C.U)||yb(this,!0))this.aa(),c&&(a+=" (cpu halted)");this.i(a);this.b&&(a=this.b,Kd(a),a.Qa=0,a.Aa())}};
function yi(a){var b;if(!Je(a))a.H&&a.H.length&&a.i("instruction history buffer freed"),a.da=0,a.H=[];else if(!a.H||!a.H.length){a.H=Array(1E3);for(b=0;b<a.H.length;b++)a.H[b]=Y();a.da=0;a.i("instruction history buffer allocated")}}k.lb=function(a,b){if(!Ni(this,b))return!1;this.b.lb(a);return!0};
k.sb=function(a,b,c){if(!Ni(this))return!1;null===b&&(b=!this.wb||"tr"==this.wb);this.K=0;a||Je(this)&&Ke(this,this.b.u[7],0);try{a=Ld(this.b,a);var d=this.b.sb(a);0<d&&(Vb(this.b,d),this.K+=d,Wb(this.b,d,!0),Xb(this.b,d),this.Ba++)}catch(e){"number"!=typeof e&&(this.K=0,Bb(this.b,e.stack||e.message))}!1!==c&&(this.v&&this.v.stop(),this.B.Aa(-1));Fd(this,b||!1);return 0<this.K};k.aa=function(a){this.b&&this.b.aa(a)};
function Fd(a,b){if(a.Za){void 0===b&&(b=!0);var c;c=a.b;if(c=c.J&128?c.ud|c.rd<<8:0){var d=c>>8;a.i("trapped to "+N(a,c&255,1)+" ("+(0>d?Db[-d]:N(a,d))+")")}a.L=Y(a.b.u[7]);b&&1!=a.P?Oi(a):Pi(a)}}function Ni(a,b){var c;(c=!a.b||!zb(a.b))||(c=a.b,c.C.la?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.U?(b||a.i("cpu busy or unavailable, command ignored"),!1):!Ab(a.b)}k.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.La=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){yi(this);this.Ba=0;this.na=null;this.K=0;this.L=Y(this.b.u[7]);this.C.U=!1;Qi(this);a||Fd(this)};k.save=function(){var a=new U(this);a.set(0,Ji(this.L));a.set(1,Ji(this.S));a.set(2,[this.g,this.T,this.pa]);a.set(3,this.I);return a.data()};
k.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Ki(a[b++]),this.S=Ki(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.T=a[b][1],this.pa|=a[b][2]);a[3]&&(this.I=a[3]);return!0};k.start=function(a,b){this.P||this.i("running");this.C.U=!0;this.Jb=a;this.Xb=b};
k.stop=function(a,b){if(this.C.U){this.C.U=!1;this.K=b-this.Xb;if(!this.P){b="stopped";if(this.K){a-=this.Jb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";Je(this)&&(b+=this.Ba+" instructions, ",this.Ba=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else K(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Fd(this,!0);this.rb();Qi(this,this.b.u[7]);this.na=null}};function Je(a){return 1<a.f.length||!!a.wa}
function Ke(a,b,c){var d=-1;c||(d=nc(a.b,b),0==d&&(b=Xd(a.b,2)));if(0<c&&(a.wa&&!--a.wa||xd(a,b,1,a.f)))return!0;0<=c&&a.H.length&&(a.Ba++,0>d&&(d=nc(a.b,b)),65535!=(d&65535)&&(a.vc(a.H[a.da],b),++a.da==a.H.length&&(a.da=0)));return!1}function Qf(a){var b=a.b;if(b.C.U)throw Sd(b,a.b.ta&65535),a.aa(),-1;return!1}
function xi(a){var b,c;a.f=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];var d=a.w;c=a.ba(c);yd(d.ea[c>>>d.ra],!1)}a.N=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.w,c=a.ba(c),yd(d.ea[c>>>d.ra],!0);a.F=["bw"];a.eb=0}k.xb=function(a,b,c){var d=!0;c||Ri(this,a,b,!1,!0);if(a!=this.f){var e=this.ba(b);if(-1===e)this.i("invalid address: "+N(this,b.G)),d=!1;else{var f=this.w;f.ea[e>>>f.ra].xb(e&f.w,a==this.F)}}d&&(a.push(b),c?b.$a=!0:(Si(this,a,a.length-1,"set"),yi(this)));return d};
function Ri(a,b,c,d,e){var f=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.$a)){f=!0;h.$a||e||Si(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,yd(d.ea[c>>>d.ra],b==a.F));h.$a||yi(a);break}}return f}function Ti(a,b){for(var c=1;c<b.length;c++)Si(a,b,c);return b.length-1}function Si(a,b,c,d){c=b[c];a.i(b[0]+" "+N(a,c.G)+(d?" "+d:c.Vc?' "'+c.Vc+'"':""))}
function Qi(a,b){if(void 0!==b)xd(a,b,1,a.f,!0),a.P=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.$a){if(!Ri(a,a.f,c,!0))break;b=0}}}
function xd(a,b,c,d,e){var f=!1;if(!a.eb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.$a)for(var l=a.ba(h)&(d==a.f?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;h.$a&&(Ri(a,d,h,!0),e=!0);if(n=h.jd){for(var f=!1,r=0;r<n.length;r++)if(!Ui(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.b.C.U||(f=!0)}if(f){e||Si(a,d,g,"hit");break}}}a.eb--;return f}
function Vi(a,b,c,d){var e=Y(b.G),f=a.xa(b,2),g,h;for(h in a.vb)if(g=a.vb[h][f&h])break;g||(g=Fi);var l=g[0];0<=a.Ib.indexOf(l)&&(g=Fi,l=g[0]);var m=h="",n=Bi[l],r=g.length-1;l||r||(h=N(a,f));for(l=1;l<=r;l++){var u=g[l];if(void 0!==u){var t;t=a;var C=u,u=b,y="",A=C&61440;if(4096==A)u=u.G+((f&255)<<24>>23)&65535,y=N(t,u);else if(8192==A)u=u.G-((f&63)<<1)&65535,y=N(t,u);else if(12288==A)y=N(t,f&7,1);else if(24576==A)y=N(t,f&63,1);else if(32768==A)y=N(t,f&255,1);else if(A=f&C,C&4032&&(A>>=6,C>>=6),
C&63){var C=null,D=A&7;switch(A&56){case 0:y=Mi(D);break;case 8:y="@"+Mi(D);C=Wi(t,t.b.u[D]);break;case 16:7>D?y="("+Mi(D)+")+":(A=t.xa(u,2),y="#"+N(t,A,0,!0));break;case 24:7>D?y="@("+Mi(D)+")+":(A=t.xa(u,2),y="@#"+N(t,A,0,!0),C=Wi(t,A));break;case 32:y="-("+Mi(D)+")";break;case 40:y="@-("+Mi(D)+")";break;case 48:A=t.xa(u,2);y=N(t,A,0,!0)+"("+Mi(D)+")";7==D&&(y=N(t,A=A+u.G&65535),C=Wi(t,A));break;case 56:A=t.xa(u,2),y="@"+N(t,A)+"("+Mi(D)+")",7==D&&(y="@"+N(t,A=A+u.G&65535),C=Wi(t,nc(t.b,A)))}C&&
(y=[y,C])}t=y;if(!t||!t.length){h="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<h.length&&(h+=",");h+=t||"???"}}f="";g=N(a,e.G)+":";if(-1!==e.G&&-1!==b.G){do if(f+=" "+N(a,a.xa(e,2)),null==e.G)break;while(e.G!=b.G)}g+=ta(f,24);g+=ta(n,5);h&&(g+=" "+h);if(c||m)g=ta(g,60)+";"+(c||""),g=a.b.C.Lb?g+("cycles="+Hd(a.b).toString()+" cs="+q(a.b.Zb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Wi(a,b){b=a.b.fc(b)[0];b>=a.b.Ha&&b<a.w.Ha&&(b=b-a.b.Ha+a.w.Ha);return a.w.fc(b)}function Xi(a,b){switch(b){case "N":a=Wd(a.b);break;case "Z":a=Vd(a.b);break;case "V":a=Ud(a.b);break;case "C":a=Td(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.b;if(8>b)c=Mi(b),c+="="+N(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+N(a,d.cb[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+N(a,d.Oa[b-16]);else switch(b){case 20:c="PS="+N(a,hd(d));break;case 21:c="IR="+N(a,d.Eb);break;case 22:c="ER="+N(a,d.oa);break;case 23:c="SL="+N(a,d.jb);break;case 24:c="MMR0="+N(a,bd(d));break;case 25:c="MMR1="+N(a,dd(d));break;case 26:c="MMR2="+N(a,ed(d));break;case 27:c="MMR3="+N(a,d.Na);break;case 28:a.v&&(c="AR="+N(a,a.v.Da,3));break;case 29:a.v&&
(c="DR="+N(a,a.v.Db));break;case 30:a.v&&rc(a.v)&&(c="SR="+N(a,a.v.kb,3))}c&&(c+=" ");return c}function Yi(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,20)+Z(a,21)+Z(a,23);d+=Xi(a,"T")+Xi(a,"N")+Xi(a,"Z")+Xi(a,"V")+Xi(a,"C");b&&(b=d,c=""+(Z(a,24)+Z(a,25)),c+=Z(a,26)+Z(a,27)+Z(a,22),c=c+"\n"+(Z(a,30)+Z(a,28)+Z(a,29)),d=b+("\n"+c));return d}k.Nc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Qg(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Ba(n,l,a.Nc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.I.push({Pg:b,G:c,zd:d,ja:e,Lc:f})}function Zi(a,b,c){var d=[],e=a.ba(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.G>>>0,h=f.zd;if(e>=g&&e<g+h){e=Ba(f.Lc,[e-g],a.Nc);0<=e?$i(a,b,e,d):c&&(e=~e,$i(a,b,e-1,d),$i(a,b,e,d));break}}return d}
function $i(a,b,c,d){var e={},f=a.I[b].Lc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].ja[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function aj(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return vi(a)||a.i("no variables"),!0;if(!c[2])return vi(a,c[1]);if(!c[3])return delete a.ca[c[1]],!0;b=ri(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function bj(a,b,c){var d=null;if(b=Hi(a,b,!0)){a.ba(b);var e=Zi(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.G-e[1])&&(g=" + "+v(f)),f=e[0]+" ("+N(a,e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.G)&&(g=" - "+v(f)),f=e[4]+" ("+N(a,e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Oi(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}g=ri(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.u[6]=g&65535;break;case "PC":case "R7":Sd(e,
g);a.L=Y(e.u[7]);break;case "N":e.X=g?32768:0;break;case "Z":e.Z=g?0:1;break;case "V":e.W=g?32768:0;break;case "C":e.V=g?65536:0;break;case "PS":id(e,g);break;case "IR":gd(e,g);break;case "ER":e.oa=g;d=!0;break;case "SL":e.jb=g|255;break;case "MMR0":cd(e,g);d=!0;break;case "MMR3":fd(e,g);d=!0;break;case "AR":a.v&&(d=a.v,oc(d,d.Da=g));d=!0;break;case "DR":a.v&&(d=a.v,Zb(d,d.Db=g));d=!0;break;case "SR":if(a.v&&rc(a.v)){pc(a.v,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.u[b]=
g&65535;break}a.i("unknown register: "+f);return}a.B.Aa();a.i("updated registers:")}}a.i(Yi(a,d));c&&(a.L=Y(e.u[7]),Pi(a,N(a,a.L.G)))}}function cj(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):ui(a,null,c[2].charCodeAt(0)):ri(a,b,!0)}
function dj(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=ti(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.wb=b;Ra(c,function(){return sb(a,!0)&&a.sb(e,d,!1)},function(){a.v&&a.v.stop();a.B.Aa(-1);sb(a,!1)})}}
function Pi(a,b,c,d){if(b=Hi(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=ti(a,c.substr(1)),null!=c&&(d=c);else{d=Hi(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=yb(a,!1)||a.P?a.K:null;var g=null!=f?"cycles":null,h=Zi(a,b),l=b.G;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=Vi(a,b,g,f);a.i(f);a.L=b;e-=b.G-l;c++}}}
function Ui(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.T&&(a.i("ended assemble at "+N(a,a.S.G)),a.L=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(zb(a)&&0<b.length){a.T&&(b="a "+N(a,a.S.G)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
Hi(a,g[1],!0);if(r)if(a.S=r,void 0===g[2])a.i("begin assemble at "+N(a,r.G)),a.T=!0,a.B.Aa();else{var u;a.i("not supported yet");u=[];if(u.length){for(var t=0;t<u.length;t++)a.Tb(r,u[t],1);a.i(Vi(a,a.S))}}break;case "b":a:{var C=g[0],y=g[1],A=b;if("?"==y)a.i("breakpoint commands:"),a.i("\tbp [#]\tset exec breakpoint at addr #"),a.i("\tbr [#]\tset read breakpoint at addr #"),a.i("\tbw [#]\tset write breakpoint at addr #"),a.i("\tbc [#]\tclear breakpoint at addr #"),a.i("\tbl\tlist all breakpoints"),
a.i("\tbn [#]\tbreak after # instruction(s)");else{var D=C.charAt(1);if("l"==D){var Sa;Sa=0+Ti(a,a.f);Sa+=Ti(a,a.N);(Sa+=Ti(a,a.F))||a.i("no breakpoints")}else if("n"==D)a.wa=ti(a,y),a.i("break after "+a.wa+" instruction(s)");else if(void 0===y)a.i("missing breakpoint address");else{var S=Y();if("*"!=y&&(S=Hi(a,y,!0),!S))break a;"c"==D?null==S.G?(xi(a),a.i("all breakpoints cleared")):Ri(a,a.f,S)||Ri(a,a.N,S)||Ri(a,a.F,S)||a.i("breakpoint missing: "+N(a,S.G)):null!=S.G&&(Li(a,S,A),"p"==D?a.xb(a.f,
S):"r"==D?a.xb(a.N,S):"w"==D?a.xb(a.F,S):a.i("unknown breakpoint command: "+D))}}}break;case "c":a.gb&&(a.gb.value="");break;case "d":a:{var tb,Ja=g[0],ua=g[1],Ka=g[2],wj=g[3];if("?"==ua){var ub="";for(tb in Fb)a.Qa[tb]&&(ub&&(ub+=","),ub+=tb);ub+=",state,symbols";a.i("dump memory commands:");a.i("\tda [a] dump info for address a");a.i("\tdb [a] [n] dump n bytes at address a");a.i("\tdw [a] [n] dump n words at address a");a.i("\tdd [a] [n] dump n dwords at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
a.i("\tdh [p] [n] dump n instructions from history position p");ub.length&&a.i("dump extension commands:\n\t"+ub)}else if("state"==ua){var eh=ej(a.B,!0);"console"==Ka?console.log(eh):(a.gb&&(a.gb.value=""),a.i(eh))}else if("symbols"==ua)for(var be=0;be<a.I.length;be++){var ce=a.I[be],vb;for(vb in ce.ja)if("."!=vb.charAt(0)){var fh=ce.ja[vb].o;if(void 0!==fh){var gh=ce.ja[vb].l;gh&&(vb=gh);a.i(N(a,fh)+" "+vb)}}}else{if("d"==Ja){for(tb in Fb)if(g[1]==tb){var hh=a.Qa[tb];hh?(g.shift(),g.shift(),hh(g)):
a.i("no dump registered for "+ua);break a}ua||(Ja=a.Yb||"dw")}else a.Yb=Ja;if("dh"==Ja){var ih=ua,jh=Ka,kh="",lh=0,ma=a.da,va=a.H;if(va.length){var ga=+ih||a.ub,bc=+jh||10;isNaN(ga)?ga=bc:kh="more ";ga>va.length&&(a.i("note: only "+va.length+" available"),ga=va.length);ma-=ga;0>ma&&(null==va[va.length-1].G?(ga=ma+ga,ma=0):ma+=va.length);var de=[];"call"==jh&&(bc=1E5,de=["CALL"]);for(void 0!==ih&&a.i(ga+" instructions earlier:");0<bc&&ma!=a.da;){var mh=va[ma++];if(null==mh.G)break;var cc=Y(mh.G),xj=
ga--,nh=Vi(a,cc,"history",xj);(!de.length||0<=nh.indexOf(de[0]))&&a.i(nh);cc.pc&&(ma+=cc.pc,bc-=cc.pc,ga-=cc.pc);ma>=va.length&&(ma=0);a.ub=ga;lh++;bc--}}lh||(a.i("no "+kh+"history available"),a.ub=void 0)}else{var wa=Hi(a,ua);if(wa)if("da"==Ja){var ha=a.b.fc(wa.G);a.i(ta("",19)+oa(wa.G,17,3)+" "+p(wa.G,8));1<ha.length&&(a.i(ta("",24)+oa(ha[1],13,3)+" "+p(ha[1],8)),a.i("+ "+Di[ha[2]]+"PAR"+ha[3]+": "+oa(ha[4],22,3)+" "+p(ha[4],8)),a.i("& MMUMASK: "+oa(ha[5],22,3)+" "+p(ha[5],8)),a.i("= PHYSICAL: "+
oa(ha[0],22,3)+" "+p(ha[0],8)))}else{var Va=0,ee="ds"==Ja;if(Ka){if("l"==Ka.charAt(0))Ka=Ka.substr(1)||wj,Va=ti(a,Ka);else{var oh=Hi(a,Ka);oh&&(Va=oh.G-wa.G)}0>Va&&(Va=0);65536<Va&&(Va=65536)}for(var Wa="dd"==Ja?4:"db"==Ja?1:2,Sc=Wa*Va||128,fe=ee?16:a.ma,yj=(Sc+fe-1)/fe|0||1,Xa="";yj--&&0<Sc;){for(var Ya="",ge="",ua=N(a,wa.G),Tc=fe,dc=0,ec=0;0<Tc&&0<Sc;){var wb=1,Uc=1==Wa?a.Ab(wa,wb):a.xa(wa,wb=2),dc=dc|Uc<<(ec<<3),ec=ec+wb;ec==Wa&&(ee?(Ya&&(Ya+=","),Ya+="0x"+q(dc,2*Wa)):(Ya+=N(a,dc,Wa),Ya+=1==Wa?
9==Tc?"-":" ":" "),dc=ec=0);Tc-=wb;for(Sc-=wb;1==Wa&&wb--;)var he=Uc&255,ge=ge+(32<=he&&128>he?String.fromCharCode(he):"."),Uc=Uc>>8}Xa&&(Xa+="\n");Xa=ee?Xa+(Ya+","):Xa+(ua+": "+Ya+(0==Tc?" "+ge:""))}Xa&&a.i(Xa);a.Ya=wa}}}}break;case "e":if("else"==g[0])break;var xb,ie,je,ke,le=g[0],me=g[1];"eb"==le?(xb=1,ie=255,je=a.Ab,ke=a.Tb):"e"==le||"ew"==le?(xb=2,ie=65535,je=a.xa,ke=a.Gb):me=null;if(null==me)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");
else{var Vc=Hi(a,me);if(Vc)for(var Wc=2;Wc<g.length;Wc++){var fc=ri(a,g[Wc]);if(void 0===fc){a.i("unrecognized value: "+g[Wc]);break}fc&~ie&&a.i("warning: "+q(fc)+" exceeds "+xb+"-byte value");a.i("changing "+N(a,Vc.G)+(K(a,16)?"":" from "+N(a,je.call(a,Vc),xb))+" to "+N(a,fc,xb));ke.call(a,Vc,fc,xb)}}break;case "g":a:{var ph=g[1],zj=b;if(void 0!==ph){var ne=Hi(a,ph,!0);if(!ne)break a;Li(a,ne,zj);a.xb(a.f,ne,!0)}a.lb(!0,c)}break;case "h":a.C.U?(c||a.i("halting"),a.aa()):yb(a,!0)||c||a.i("already halted");
break;case "i":if("if"==g[0]){var oe;var gc=b.substr(2),gc=za(gc);ri(a,gc)?(c||a.i("true: "+gc),oe=!0):(c||a.i("false: "+gc),oe=!1);oe||(d=!1);break}f=!0;break;case "k":var Aj=g[0];if("?"==g[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var pe=0,qe=Y(),hc=Y(a.b.u[6]);for(a.i("stack trace for "+N(a,hc.G));10>pe;){for(var Za=null,Bj=256;65536>hc.G>>>0;){qe.G=a.xa(hc,2);if(null==hc.G||!Bj--)break;if(!(qe.G&1)){for(var Cj=a,Xc=qe,qh=null,ic=
Xc.G,rh=ic,re=1;6>=re&&ic;re++){if(2<re){Xc.G=ic;var Yc=Vi(Cj,Xc);if(0<=Yc.indexOf("JSR")){var sh=Yc.indexOf(" ");if(ic+(Yc.indexOf(" ",sh+1)-sh-1)/2==rh){qh=Yc;break}}}ic-=2}Xc.G=rh;if(Za=qh)break}}if(!Za||null==Za)break;var th=null;if("ks"==Aj){var uh=Za.match(/[0-9A-F]+$/);uh&&(th=bj(a,uh[0]))}Za=ta(Za,50)+" ;"+(th||"stack="+N(a,hc.G));a.i(Za);pe++}pe||a.i("no return addresses found")}break;case "l":if("ln"==g[0]){bj(a,g[1],!0);break}f=!0;break;case "m":a:{var xa,ya=null,J=g[1];"?"==J&&(J=void 0);
if(void 0!==J){var La=0;if("all"==J)La=1879046143,J=null;else if("on"==J)ya=!0,J=null;else if("off"==J)ya=!1,J=null;else{"keys"==J&&(J="key");"kbd"==J&&(J="keyboard");for(xa in Fb)if(J==xa){La=Fb[xa];ya=!!(a.pa&La);break}if(!La){a.i("unknown message category: "+J);break a}}if(La)if("on"==g[2])a.pa|=La,ya=!0;else if("off"==g[2]&&(a.pa&=~La,ya=!1,1073741824==La)){for(var vh=1E3<=a.Y.length?a.Y.length-1E3:0;vh<a.Y.length;)a.i(a.Y[vh++]);a.Y=[]}}var Dj=0,jc="";for(xa in Fb)if(!J||J==xa){var Ej=!!(a.pa&
Fb[xa]);if(null===ya||ya==Ej)jc&&(jc+=","),++Dj%10||(jc+="\n\t"),"key"==xa&&(xa="keys"),jc+=xa}void 0===J&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ya?ya?"messages on: ":"messages off: ":"message categories:\n\t")+(jc||"none"));yi(a)}break;case "p":if("print"==g[0]){cj(a,b.substr(5));break}var Fj=g[0];if("?"==g[1])a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else{var wh="pr"==Fj?1:0,xh=
1+wh;if(a.P)a.i("step in progress");else{var Zc=Y(a.b.u[7]),kc=a.xa(Zc);3==kc||4==kc||34816==(kc&65280)||35072==(kc&65280)?(a.P=xh,Ii(Zc,2)):2048==(kc&65024)&&(Vi(a,Zc),a.P=xh);a.P?(a.xb(a.f,Zc,!0),a.lb()||(a.B&&a.B.rb(),a.P=0)):dj(a,wh?"tr":"t")}}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Oi(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var lc=+g[2];if(8==lc||10==lc||16==lc)a.ma=lc;else{a.i("invalid base: "+lc);break}}a.i("default base: "+a.ma);break;case "cs":var mc;void 0!==
g[3]&&(mc=+g[3]);switch(g[2]){case "int":a.b.Pb=mc;break;case "start":a.b.$b=mc;break;case "stop":a.b.Qb=mc;break;default:a.i("unknown cs option");break a}void 0!==mc&&Ed(a.b);a.i("checksums "+(a.b.C.Lb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Id(a.b,+g[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.b.Cb.toFixed(2)+"Mhz")+" ("+a.b.pb+"x)");break;default:if(g[1]){a.i("unknown option: "+g[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),
a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":dj(a,g[0],g[1]);break;case "u":Pi(a,g[1],g[2],8);break;case "v":if("var"==g[0]){aj(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.i("PDPjs version 1.30.6 ("+a.b.bb+",RELEASE"+(Cb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){cj(a,
b.substr(1));break}var se="commands:",te;for(te in Ai)se+="\n"+ta(te,9)+Ai[te];Je(a)||(se+="\nnote: history disabled if no exec breakpoints");a.i(se);break;default:f=!0}f&&(a.i("unknown command: "+b),d=!1)}}catch(yh){a.i("debugger error: "+(yh.stack||yh.message)),d=!1}return d}function Gd(a,b,c){b=pi(a,b,c);for(var d in b)if(!Ui(a,b[+d]))return!1;return!0}db(function(){for(var a=H(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new wi(d);G(d,c)}});
function fj(a,b,c){z.call(this,"Computer",a,fj,33554432);this.C.la=!1;gj(this,b);this.L=Cd(this,"autoPower",a);this.g=0;this.Y=a.busWidth||a.buswidth;this.f=hj;this.I=null;this.F=this.S=!1;this.ca=Cd(this,"url")||"";(Math.random()+.1).toString(36);this.B=ij(this);if(this.b=rb("CPU",this.id)){this.j=rb("Debugger",this.id);this.w=new tc({id:this.nb+".bus",busWidth:this.Y},this.b,this.j);var d,e=pb(this.id);if((this.v=rb("Panel",this.id))&&this.v.gb)for(b=0;b<e.length;b++)d=e[b],d.M=this.v.M,d.i=this.v.i,
d.gb=this.v.gb;this.i("PDPjs v1.30.6\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.i("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ia&&d.Ia(this,this.w,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Cd(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=hj),this.f&&(this.K=
new U(this,"1.30.6"),jj(this.K)?b=null:delete this.K);!b&&this.f&&(b=kj(this))&&(this.F=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.I=b,g.S=!0);L(g)})}else L(this);this.D.power||(this.L=!0);!c&&this.L&&lj(this,this.ac)}else x("Unable to find CPU component")}E(fj);var hj=0;
function gj(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.T=b}function Cd(a,b,c){var d=b.toLowerCase(),d=ib[b]||ib[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function lj(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!zb(f)){zb(f,function(){lj(a,b,c)});return}}b.call(a,c)}
function mj(a,b){var c=new U(a,"1.30.6","validate");if(jj(c)&&nj(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=fj.prototype;
k.ac=function(a){void 0===a&&(a=this.f||(this.I?1:hj));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.K||new U(this,"1.30.6");if(-1==a)b=!0;else if(a>hj){if(jj(d,this.I)){this.A=new U(this,"1.30.6","failsafe");jj(this.A)&&(oj(this,d),a=2,pj(this.A));this.A.set("timestamp",Da());qj(this.A);var e=this.f&&!this.F;if(1==a||Ha("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=nj(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jj(d,g):("error"==
f&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(Oa("user",""),this.B=null)):this.i(f+": "+g),pj(d),jj(d)?(c=nj(d),e=!0):c=!1))}e&&mj(this,c?d:null)}else 2==a&&d.clear()}else mj(this);delete this.I;delete this.K}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=rj(this,g,d,b,c));b=[d,a,c];-1!=a?lj(this,this.Oc,b):this.Oc(b)}};
function rj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.Ma){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ma(f,d)&&f&&(x("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.f=hj,window&&window.location.reload()):a.P=!0,b.Ma(null),e=!1)}if(!d&&b.Ec)for(a=b.Ec.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Oc=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.C.la=!0;var d=this.D.power;d&&(d.textContent="Shutdown");this.b&&(rj(this,this.b,b,c,a),this.Aa(),this.b.fb());this.P&&(oj(this,b),b.clear());!c&&this.A&&(this.A.clear(),delete this.A);this.g=0};
function oj(a,b){if(Ha("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.6"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function ej(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new U(a,"1.30.6"),g=new U(a,"1.30.6","validate"),h=Da();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.La&&(c&&a.b.aa(),d=a.b.La(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=pb(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.La&&(d=m.La(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.C.la=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&sj(a,a.B,f.toString()),qj(g)&&qj(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.C.la=!1,b=a.D.power)&&(b.textContent="Power");a.g=0;return e}
k.reset=function(){this.w&&this.w.reset&&(I(this,"Resetting "+this.w.type),this.w.reset());this.b&&this.b.reset&&(I(this,"Resetting "+this.b.type),this.b.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c!==this.b&&c.reset&&(I(this,"Resetting "+c.type),c.reset())}this.Aa(-1)};k.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.Aa(-1)};
k.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.Aa(-1)};
k.Aa=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Xb+=c))&&(d.textContent=b.C.U?b.Ba.toFixed(2)+"Mhz":"Stopped",b.Xb=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.U;d=!!(b.b.J&8);if(0>=a||60<=(b.A+=a)){for(var e=0;e<b.b.u.length;e++)Tb(b,"R"+e,b.b.u[e]);e=hd(b.b);Tb(b,"PS",e);Tb(b,"NF",e&8?1:0,1);Tb(b,"ZF",e&4?1:0,1);Tb(b,"VF",e&2?1:0,1);Tb(b,"CF",e&1?1:0,1);b.A=0}oc(b,0<a&&c&&!d?b.b.Kb:b.Da);Zb(b,b.Db);a=b.b;a=a.ca?a.Na&16?1:2:4;qc(b,"B22",a&1);qc(b,"B18",a&2);qc(b,"B16",
a&4)}};
k.ya=function(a,b,c){var d=this;switch(b){case "power":return this.D[b]=c,c.onclick=function(){d.g||(d.C.la?hj(d,!1,!0):oj(d,d.Zb))},!0;case "reset":return this.D[b]=c,c.onclick=function(){if(d.C.la&&!d.g)if(d.f&&!d.H){var a=Ha("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");hj(d,a,!0);!a&&d.N?window&&window.location.reload():(a||(d.qc=!0),d.Zb(kj),d.qc=!1)}else d.reset(),d.b&&d.b.fb()},!0;case "save":if(qa(Ga(),"pcjs.org"))c.parentNode.removeChild(c);else return this.D[b]=
c,c.onclick=function(){var a=lj(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=hj(d,b);b?vj(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1};
function lj(a,b){var c=a.B;c||((c=Ma("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=wj(a,c))||a.M("The user ID is invalid.")):b&&a.M("Browser local storage is not available"));return c}
function wj(a,b){a.B=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Na("user",b.data),a.B=b.data)}catch(d){x(d.message+" ("+c+")")}return a.B}function nj(a){var b=null;a.B&&(b=Ga()+"/api/v1/user?req=load&user="+a.B+"&state="+xj(a,"1.30.6"));return b}
function vj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=xj(a,"1.30.6");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.M("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.M(c),Na("user",""),a.B=null)}}
function gh(a){var b;a=ob(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.rb=function(a){if(this.gb){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.gb.focus();!a&&window&&window.scrollTo(b,c)}};cb(function(){for(var a=H(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=F(c),c=H(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=F(f),g=new ij(g,d,!0);G(g,f);g.L&&oj(g,g.Zb)}});
Ta.show.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=qb("Computer",c.id))&&c.ca&&!c.C.la&&c.Zb(-1)}});Ta.exit.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=qb("Computer",c.id))&&c.C.la&&hj(c,!(!c.f||c.H),!0)}});function U(a,b,c){this.id=a.id;this.key=xj(a,b,c);this.i=a.i;sj(this,a.rd)}function xj(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}
U.prototype={constructor:U,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){sj(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function sj(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function tj(a){var b=!0;if(Ja()){var c=JSON.stringify(a[a.id]);Na(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function qj(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){x(c.message||c),b=!1}return b}function mj(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ja()&&(b=Ma(a.key))?(a[a.id]=b,a.b=!0):!1}var yj=0;
function Jj(a,b,c,d,e,f){e("Loading "+a+"...");Ea(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Kj(h,a,b,c,d,e,f)})}
function Kj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(nb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Lj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Lj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Lj(a,b,c)}})}else c(a,null)}
function Mj(a,b,c,d){function e(a){if(void 0===h){var b=g&&H(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);l&&(--yj||eb(!0));l=!1}var g,h,l=!0;yj++;mb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.30.6/components.xsl");m=function(d,h){h?Jj(c,null,null,!1,e,function(d,l){l?(nb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--yj||eb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--yj||eb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Jj(b,a,d,!0,e,m):Kj(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(t){f(t.message)}return l}window.embedPDP11=function(a,b,c,d){eb(!1);return Mj(a,b,c,d)};window.enableEvents=eb;window.sendEvent=fb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11-dbg.map
k.za=function(a,b,c){var d=this;switch(b){case "power":return this.D[b]=c,c.onclick=function(){d.g||(d.C.la?ej(d,!1,!0):lj(d,d.ac))},!0;case "reset":return this.D[b]=c,c.onclick=function(){if(d.C.la&&!d.g)if(d.f&&!d.H){var a=Ha("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ej(d,a,!0);!a&&d.N?window&&window.location.reload():(a||(d.qc=!0),d.ac(hj),d.qc=!1)}else d.reset(),d.b&&d.b.fb()},!0;case "save":if(qa(Ga(),"pcjs.org"))c.parentNode.removeChild(c);else return this.D[b]=
c,c.onclick=function(){var a=ij(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=ej(d,b);b?sj(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1};
function ij(a,b){var c=a.B;c||((c=Na("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=tj(a,c))||a.M("The user ID is invalid.")):b&&a.M("Browser local storage is not available"));return c}
function tj(a,b){a.B=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa("user",b.data),a.B=b.data)}catch(d){x(d.message+" ("+c+")")}return a.B}function kj(a){var b=null;a.B&&(b=Ga()+"/api/v1/user?req=load&user="+a.B+"&state="+uj(a,"1.30.6"));return b}
function sj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=uj(a,"1.30.6");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.M("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.M(c),Oa("user",""),a.B=null)}}
function dh(a){var b;a=pb(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.rb=function(a){if(this.gb){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.gb.focus();!a&&window&&window.scrollTo(b,c)}};db(function(){for(var a=H(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=F(c),c=H(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=F(f),g=new fj(g,d,!0);G(g,f);g.L&&lj(g,g.ac)}});
Ua.show.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=rb("Computer",c.id))&&c.da&&!c.C.la&&c.ac(-1)}});Ua.exit.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=rb("Computer",c.id))&&c.C.la&&ej(c,!(!c.f||c.H),!0)}});function U(a,b,c){this.id=a.id;this.key=uj(a,b,c);this.j=a.j;pj(this,a.pd)}function uj(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}
U.prototype={constructor:U,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){pj(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function pj(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function qj(a){var b=!0;if(Ma()){var c=JSON.stringify(a[a.id]);Oa(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function nj(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){x(c.message||c),b=!1}return b}function jj(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ma()&&(b=Na(a.key))?(a[a.id]=b,a.b=!0):!1}var vj=0;
function Gj(a,b,c,d,e,f){e("Loading "+a+"...");Ea(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Hj(h,a,b,c,d,e,f)})}
function Hj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ob(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Ij(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Ij(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Ij(a,b,c)}})}else c(a,null)}
function Jj(a,b,c,d){function e(a){if(void 0===h){var b=g&&H(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);l&&(--vj||fb(!0));l=!1}var g,h,l=!0;vj++;nb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.30.6/components.xsl");m=function(d,h){h?Gj(c,null,null,!1,e,function(d,l){l?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--vj||fb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--vj||fb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Gj(b,a,d,!0,e,m):Hj(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPDP11=function(a,b,c,d){fb(!1);return Jj(a,b,c,d)};window.enableEvents=fb;window.sendEvent=gb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11-dbg.map

View file

@ -34,242 +34,242 @@
*/
for(var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da<ca.length-1;da++){var ea=ca[da];ea in ba||(ba[ea]={});ba=ba[ea]}var fa=ca[ca.length-1],ga=ba[fa],ha=ga?ga:function(a){return Math.log(a)/Math.LN2};
ha!=ga&&null!=ha&&aa(ba,fa,{configurable:!0,writable:!0,value:ha});
var ia={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={Xe:0,sc:1,Ze:2,$e:3,af:4,bf:5,cf:6,df:7,Xb:8,ef:9,tc:10,ff:11,gf:12,uc:13,hf:14,jf:15,kf:16,lf:17,mf:18,nf:19,pf:20,qf:21,rf:22,sf:23,tf:24,uf:25,vf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Vb:65,We:66,Ye:67,wf:68,E:69,xf:70,yf:71,zf:72,Af:73,Bf:74,Cf:75,Df:76,Ef:77,Ff:78,Gf:79,Hf:80,Q:81,If:82,Jf:83,Kf:84,Lf:85,Mf:86,Nf:87,Of:88,Pf:89,Cc:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Qf:97,Rf:98,Sf:99,d:100,e:101,Uf:102,Vf:103,Wf:104,Xf:105,$f:106,k:107,ag:108,bg:109,n:110,cg:111,p:112,q:113,r:114,dg:115,t:116,eg:117,fg:118,gg:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,vc:127};
var ia={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={Xe:0,qc:1,Ze:2,$e:3,af:4,bf:5,cf:6,df:7,Xb:8,ef:9,rc:10,ff:11,gf:12,sc:13,hf:14,jf:15,kf:16,lf:17,mf:18,nf:19,pf:20,qf:21,rf:22,sf:23,tf:24,uf:25,vf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Vb:65,We:66,Ye:67,wf:68,E:69,xf:70,yf:71,zf:72,Af:73,Bf:74,Cf:75,Df:76,Ef:77,Ff:78,Gf:79,Hf:80,Q:81,If:82,Jf:83,Kf:84,Lf:85,Mf:86,Nf:87,Of:88,Pf:89,Ac:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Qf:97,Rf:98,Sf:99,d:100,e:101,Uf:102,Vf:103,Wf:104,Xf:105,$f:106,k:107,ag:108,bg:109,n:110,cg:111,p:112,q:113,r:114,dg:115,t:116,eg:117,fg:118,gg:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,tc:127};
function q(a){var b=10,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==
e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function ja(a,b){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""+c}function r(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function u(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ka(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function la(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ma={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function na(a){return a.replace(/[&<>"']/g,function(a){return ma[a]})}
function oa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var pa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},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 w(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,f,e))});if(b&&"object"==
e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function ja(a,b){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""+c}function ka(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function r(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function la(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ma(a,b){return-1!==a.indexOf(b,a.length-b.length)}var na={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function oa(a){return a.replace(/[&<>"']/g,function(a){return na[a]})}
function pa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var qa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},ra=Date.now||function(){return+new Date};
function sa(){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 u(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,!!c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,!!c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function sa(a,b){var c,d={M:null,da:null,pa:null,oa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.pa=g.load;d.oa=g.exec;if(e=g.bytes)d.M=e;else if(e=g.words)for(d.M=Array(2*e.length),f=c=0;c<e.length;c++)d.M[f++]=e[c]&255,d.M[f++]=e[c]>>8&255;else if(e=g.data)for(d.M=Array(4*e.length),f=c=0;c<e.length;c++)d.M[f++]=e[c]&
function ta(a,b){var c,d={M:null,da:null,pa:null,oa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.pa=g.load;d.oa=g.exec;if(e=g.bytes)d.M=e;else if(e=g.words)for(d.M=Array(2*e.length),f=c=0;c<e.length;c++)d.M[f++]=e[c]&255,d.M[f++]=e[c]>>8&255;else if(e=g.data)for(d.M=Array(4*e.length),f=c=0;c<e.length;c++)d.M[f++]=e[c]&
255,d.M[f++]=e[c]>>8&255,d.M[f++]=e[c]>>16&255,d.M[f++]=e[c]>>24&255;else d.M=g;d.da=g.symbols;d.M.length?1==d.M.length&&(x(d.M[0]),d=null):(x("Empty resource: "+a),d=null)}catch(k){x("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){x("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.M=e)}return d}
function ta(){return"http://"+(window?window.location.host:"www.pcjs.org")}function x(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}var va=null;function wa(){if(null==va){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}va=a}return va}
function ua(){return"http://"+(window?window.location.host:"www.pcjs.org")}function x(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}var wa=null;function ya(){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 za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}
function Ca(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}var Da={init:[],show:[],exit:[]},Ea=!1,Fa=!1,Ga=!0;
function Ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ia(a){Da.init.push(a)}function Ja(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ka(a){!Ga&&a?(Ga=!0,Ea&&La("init"),Fa&&La("show")):Ga=a}function La(a){Da[a]&&Ja(Da[a])}Ha("onload",function(){Ea=!0;Ja(Da.init)});Ha("onpageshow",function(){Fa=!0;Ja(Da.show)});
Ha(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ja(Da.exit)});function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cc=b.comment;this.Zc=b;b=this.id.indexOf(".");0>b?this.Aa=this.id:(this.Ba=this.id.substr(0,b),this.Aa=this.id.substr(b+1));this[a]=c;this.m={ready:!1,Ka:!1,Ib:!1,R:!1,error:!1};this.zb=null;this.m.error=!1;this.j={};this.D=null;this.Oc=d||0;A.push(this)}var Ma=void 0,Na={};
Ha(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ja(Da.exit)});function y(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cc=b.comment;this.Xc=b;b=this.id.indexOf(".");0>b?this.Aa=this.id:(this.Ba=this.id.substr(0,b),this.Aa=this.id.substr(b+1));this[a]=c;this.m={ready:!1,Ka:!1,Ib:!1,R:!1,error:!1};this.Ab=null;this.m.error=!1;this.j={};this.D=null;this.Mc=d||0;z.push(this)}var Ma=void 0,Na={};
if(window){Ma||(Ma=window.location.search.substr(1));for(var Oa,Pa=/\+/g,Qa=/([^&=]+)=?([^&]*)/g;Oa=Qa.exec(Ma);)Na[decodeURIComponent(Oa[1].replace(Pa," "))]=decodeURIComponent(Oa[2].replace(Pa," "))}function Ra(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function B(a,b){b||(b=z);a.prototype=Ra(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Sa=window.PCjs.Machines||(window.PCjs.Machines={}),A=window.PCjs.Components||(window.PCjs.Components=[])}else Sa={},A=[];function Ta(a,b,c){Sa[a]&&b&&(Sa[a][b]=c)}function C(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<A.length;b++){var d=A[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ua(a){if(void 0!==a){var b;for(b=0;b<A.length;b++)if(A[b].id===a)return A[b]}return null}function Va(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<A.length;d++)if(c)c==A[d]&&(c=null);else if(!(a!=A[d].type||b&&A[d].id.indexOf(b)))return A[d]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function E(a,b){b=F(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=D(f))&&g.binding&&a.ba(g.type,g.binding,f,g.value),l=k.length}}}}
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.lb=this.j[b]=c,c.value="",this.V=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.B=function(a){this.V(a,this.Aa)}),!0;default:return!1}},log:function(){},V:function(){},status:function(a){this.V(this.Aa+": "+a)},B:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},ka:function(){return this.m.R=!0},ja:function(a,b){b&&(this.m.R=!1);return!0}};function Wa(a,b){a.m.Ib?(a.m.Ka=!1,a.m.Ib=!1):a.m.error?a.V(a.toString()+" error"):a.m.Ka=b}function G(a,b){a.m.error||(a.m.ready=!1!==b,a.m.ready&&(b=a.zb,a.zb=null,b&&b()))}
function Xa(a,b){b&&(a.m.ready?b():a.zb=b);return a.m.ready}function Ya(a,b){a.m.error=!0;a.B(b)}Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
function A(a,b){b||(b=y);a.prototype=Ra(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Sa=window.PCjs.Machines||(window.PCjs.Machines={}),z=window.PCjs.Components||(window.PCjs.Components=[])}else Sa={},z=[];function Ta(a,b,c){Sa[a]&&b&&(Sa[a][b]=c)}function B(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<z.length;b++){var d=z[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ua(a){if(void 0!==a){var b;for(b=0;b<z.length;b++)if(z[b].id===a)return z[b]}return null}function Va(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<z.length;d++)if(c)c==z[d]&&(c=null);else if(!(a!=z[d].type||b&&z[d].id.indexOf(b)))return z[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function D(a,b){b=E(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=C(f))&&g.binding&&a.ba(g.type,g.binding,f,g.value),l=k.length}}}}
function E(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
y.prototype={constructor:y,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.lb=this.j[b]=c,c.value="",this.V=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.B=function(a){this.V(a,this.Aa)}),!0;default:return!1}},log:function(){},V:function(){},status:function(a){this.V(this.Aa+": "+a)},B:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},ka:function(){return this.m.R=!0},ja:function(a,b){b&&(this.m.R=!1);return!0}};function Wa(a,b){a.m.Ib?(a.m.Ka=!1,a.m.Ib=!1):a.m.error?a.V(a.toString()+" error"):a.m.Ka=b}function F(a,b){a.m.error||(a.m.ready=!1!==b,a.m.ready&&(b=a.Ab,a.Ab=null,b&&b()))}
function Xa(a,b){b&&(a.m.ready?b():a.Ab=b);return a.m.ready}function Ya(a,b){a.m.error=!0;a.B(b)}Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});var Za="undefined"!==typeof ArrayBuffer,$a={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"};
function ab(a){z.call(this,"Panel",a,ab,512);this.la=this.i=this.c=this.o=this.s=this.v=0;this.A=this.C=this.w=!1;this.G=bb;this.f={};this.b={START:[1,1,!0,!1,this.Wc],STEP:[1,1,!1,!1,this.Xc],ENABLE:[1,1,!1,!1,this.Sc],CONT:[1,1,!0,!1,this.Qc],DEP:[0,0,!0,!1,this.Rc],EXAM:[1,1,!0,!1,this.Tc],LOAD:[1,1,!0,!1,this.Vc],TEST:[0,0,!0,!1,this.Uc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Yc,a]}B(ab);var bb=7;function cb(a,b){return a.b[b]&&a.b[b][1]}h=ab.prototype;h.reset=function(){this.stop()};
function ab(a){y.call(this,"Panel",a,ab,512);this.la=this.i=this.c=this.o=this.s=this.v=0;this.A=this.C=this.w=!1;this.G=bb;this.f={};this.b={START:[1,1,!0,!1,this.Uc],STEP:[1,1,!1,!1,this.Vc],ENABLE:[1,1,!1,!1,this.Qc],CONT:[1,1,!0,!1,this.Oc],DEP:[0,0,!0,!1,this.Pc],EXAM:[1,1,!0,!1,this.Rc],LOAD:[1,1,!0,!1,this.Tc],TEST:[0,0,!0,!1,this.Sc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Wc,a]}A(ab);var bb=7;function cb(a,b){return a.b[b]&&a.b[b][1]}h=ab.prototype;h.reset=function(){this.stop()};
h.ba=function(a,b,c,d){if(this.l&&this.l.ba(a,b,c,d)||this.a&&this.a.ba(a,b,c,d))return!0;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":return this.j[b]=c,this.v++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.f[b]=d?1:0,this.v++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){db(a,
b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){eb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){db(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){eb(a,b)}}(this,b),!0):this.parent.ba.call(this,a,b,c,d)}};h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;fb(b,this,gb);hb(b,this.reset.bind(this));ib(this);jb(this)};h.ka=function(a,b){b||(kb(),this.reset());return!0};h.ja=function(){return!0};
function lb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ib(a,b){for(var c in a.f)lb(a,c,null!=b?b:a.f[c])}function mb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jb(a){for(var b in a.b)mb(a,b,a.b[b][1])}function nb(a,b,c,d){a.j[b]&&(void 0===c&&(Ya(a,"Value for "+b+" is invalid"),H(a.a)),c=8==(a.D&&a.D.c||8)?ja(c,d):r(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
function db(a,b){var c=a.b[b];mb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.A="DEP"==b,a.C="EXAM"==b)}function eb(a,b){var c=a.b[b];c[2]&&c[3]&&(mb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Wc=function(a){a||this.a.m.O||(a=this.a,a.h.reset(),ob(a),cb(this,"ENABLE")&&pb(this.a))};h.Xc=function(){};h.Sc=function(a){a||H(this.a)};
h.Qc=function(a){if(!a&&!this.a.m.O)if(cb(this,"ENABLE"))pb(this.a);else{a=this.D;var b;if(b=a)a.m.Ka&&(a.m.Ib=!0),b=!a.m.Ka;if(b)Wa(a,!0),a.Bb(0,null),Wa(a,!1);else try{var c=this.a.Bb(1);0<c&&(qb(this.a,c),rb(this.a,c,!0),sb(this.a,c))}catch(d){"number"!=typeof d&&Ya(this.a,d.stack||d.message)}this.stop();this.l&&this.l.za()}};h.Rc=function(a){if(a&&!this.a.m.O)if(this.A&&tb(this),a=ub(this,this.c),this.G==bb)vb(this.h,this.la,a);else{var b=this.a,c=this.la;b.Ua++;b.rc(wb(b,c,4),a);b.Ua--}};
h.Tc=function(a){if(!a&&!this.a.m.O){this.C&&tb(this);if(this.G==bb)a=xb(this.h,this.la);else{a=this.a;var b=this.la;a.Ua++;b=a.nc(wb(a,b,2));a.Ua--;a=b}ub(this,a)}};h.Vc=function(a){a||this.a.m.O||yb(this,this.c)};h.Uc=function(a){if(a)this.w=!0,ib(this,!0);else if(this.w=!1,ib(this),void 0!==this.j.S0){for(a=this.c=0;22>a;a++)this.b["S"+a][1]=0&1<<a?1:0;jb(this)}};h.Yc=function(a,b){this.c=a?this.c|1<<b:this.c&~(1<<b)};
function tb(a){var b=1145>a.a.Fa?8:16,c=65472<=a.la&&a.la<65472+b,b=c?1:2,c=c?15:a.h.Ga;cb(a,"STEP")||(b=-b);yb(a,a.la&~c|a.la+b&c)}function yb(a,b){a.la=b&a.h.Ga;b=a.la;for(var c=0;22>c;c++)zb(a,"A"+c,b&1<<c)}function ub(a,b){a.i=b&65535;b=a.i;for(var c=0;16>c;c++)zb(a,"D"+c,b&1<<c);return a.i}function zb(a,b,c){a.f[b]=c;a.w||lb(a,b,c)}h.stop=function(){yb(this,this.a.g[7])};h.setData=function(a,b){b?this.o=a:this.i=a};h.$c=function(a,b){return(b?this.o:this.c)&65535};h.ae=function(a){this.o=a};
var Ab={},gb=(Ab[65400]=[null,null,ab.prototype.$c,ab.prototype.ae,"CNSW"],Ab);function kb(){for(var a=!1,b=F(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),f=Ua(e.id);f||(a=!0,f=new ab(e));E(f,d);a&&G(f)}}Ia(kb);
function Bb(a,b,c){z.call(this,"Bus",a,Bb,16);this.a=b;this.D=c;this.L=a.busWidth||16;this.w=1<<this.L;this.Ga=this.w-1;this.c=Cb;this.b=Math.log2(this.c);this.J=this.c>>2;this.l=this.c-1;this.v=this.w/this.c|0;this.Da=[];this.o=0;this.s=!1;this.A=[];this.Dc=[Db,Eb,Fb,Gb];a=new I(this);Hb(a,this.D);this.h=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.h[b]=this.f[b]=a;this.Ca=this.w-Cb;Ib(this,this.Ca,Cb,Jb,this);this.I=this.G=(this.Ca&this.Ga)>>>this.b;this.C=0;this.i=this.Ga;G(this)}
B(Bb);var Cb=8192,Kb=Cb-1;function Db(a,b){var c=-1,d=this.controller,e=d.Da[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Da[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;J(d,b,16);return 255}
function Eb(a,b,c){var d=!1,e=this.controller,f=e.Da[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Da[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d||J(e,c,16)}function Fb(a,b){var c=-1,d=this.controller;a=d.Da[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return c;J(d,b,16);return 65535}
function Gb(a,b,c){var d=!1,e=this.controller;a=e.Da[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d||J(e,c,16)}function Lb(a,b){if(b!=a.C){for(var c=0;c<a.v;c++)a.f[c]=a.h[c];a.C=0;a.i=a.Ga;b&&(a.C=b,b=1<<b,a.i=b-1,b-=Cb,a.I=(b&a.i)>>>a.b,a.f[a.I]=a.h[a.G])}}Bb.prototype.reset=function(){for(var a=0;a<this.A.length;a++)this.A[a]();Lb(this,16)};Bb.prototype.ka=function(a,b){b||this.reset();return!0};
function Ib(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.b;0<g&&k<a.h.length;){var l=a.h[k],m=k*a.c,p=a.c-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ja)return l.ob+=l.Ja-f,l.Ja=f,!0;if(f>=l.Ja+l.ob){p=l.size-(f-m);p>g&&(p=g);l.ob=f-l.Ja+p;f=m+a.c;g-=p;k++;continue}}return Mb(1,f,g)}f=new I(a,f,p,a.c,d,e);Hb(f,a.D,l);a.h[k++]=f;f=m+a.c;g-=p}return 0>=g?(a.status((c>>10)+"Kb "+Nb[d]+" at "+ja(b)),!0):Mb(2,b,c)}function Ob(a,b){return a.f[(b&a.i)>>>a.b].Nb(b&a.l,b)}
function Pb(a,b){return a.f[(b&a.i)>>>a.b].aa(b&a.l,b)}function Qb(a,b,c){a.f[(b&a.i)>>>a.b].Db(b&a.l,c,b)}function xb(a,b){a.s=!1;a.o++;b=a.h[(b&a.Ga)>>>a.b].mc(b&a.l,b);a.o--;return b}function Rb(a,b,c){a.s=!1;a.o++;a.h[(b&a.Ga)>>>a.b].Ub(b&a.l,c&255,b);a.o--}function vb(a,b,c){a.s=!1;a.o++;a.h[(b&a.Ga)>>>a.b].qc(b&a.l,c&65535,b);a.o--}
function Sb(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.h[d];if(e.wa||e.Jc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function Tb(a){for(var b=Ub,c=0,d=0;d<a.h.length;d++){var e=a.h[d];e.type==b&&(c=e.Ja+e.ob)}return c}
function Vb(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&Kb;if(void 0!==a.Da[p])return x("I/O address already registered: "+r(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Da[p]=[d,e,f,g,t,k||16,!1]}return!0}
function fb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.a.Fa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],v=g[5]||1,y=0;y<v;y++,f+=2)if(t&&1<v&&(t=g[4]+y),!Vb(a,f,f,k,l,m,p,g[7]||b.Oc,t||b.Aa))return!1}}return!0}
function hb(a,b){a.A.push(b)}function J(a,b,c){a.s=!0;a.o||(c&&(a.a.X|=c),K(a.a,4,0,b))}function Wb(a){var b=a.s;a.s=!1;return b}function Mb(a,b,c){x("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}function L(a){z.call(this,"Device",a,L,256);this.b={Tf:0,Sb:-1}}B(L);h=L.prototype;
h.ia=function(a,b,c,d){this.h=b;this.l=a;this.a=c;this.D=d;var e=this;this.b.Sb=Xb(c,function(){e.b.Xa|=128;e.b.Xa&64&&M(e.a,e.b.Wa);e.l&&e.l.za(1);Yb(e.a,e.b.Sb,1E3/60)});this.b.Wa=$b(c,64,6,524288);fb(b,this,ac);hb(b,this.reset.bind(this));G(this)};h.reset=function(){this.b.Xa=128;Yb(this.a,this.b.Sb,1E3/60,!0)};h.gd=function(){return this.b.Xa};h.he=function(a){this.b.Xa=a&192;this.b.Xa&64||bc(this.a,this.b.Wa)};h.jd=function(){var a=this.a,b=a.Y;b&57344||(b=b&-3199|a.fb<<5|a.gb<<1);return b};
h.je=function(a){cc(this.a,a&-129|this.a.Y&128)};h.kd=function(){var a=this.a;a.Y&57344||(a.vb=a.A>>16&65535);a=a.vb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.ld=function(){var a=this.a;a.Y&57344||(a.wb=a.A&65535);return a.wb};h.md=function(){return this.a.ya};h.ke=function(a){var b=this.a;1170>b.Fa&&(a&=-49);b.ya!=a&&(b.ya=a,b.Sa=a&16?4194303:262143,dc(b))};h.Ud=function(a){a=a>>1&63;var b=this.a.bb[a>>1];return a&1?b>>16:b&65535};
h.Se=function(a,b){b=b>>1&63;var c=b>>1;this.a.bb[c]=b&1?this.a.bb[c]&65535|(a&63)<<16:this.a.bb[c]&-65536|a&65534};h.Nd=function(a){return this.a.H[1][a>>1&7]};h.Le=function(a,b){this.a.H[1][b>>1&7]=a&65295};h.Ld=function(a){return this.a.H[1][(a>>1&7)+8]};h.Je=function(a,b){this.a.H[1][(b>>1&7)+8]=a&65295};h.Md=function(a){return this.a.Z[1][a>>1&7]};h.Ke=function(a,b){b=b>>1&7;this.a.Z[1][b]=a;this.a.H[1][b]&=65295};h.Kd=function(a){return this.a.Z[1][(a>>1&7)+8]};
h.Ie=function(a,b){b=(b>>1&7)+8;this.a.Z[1][b]=a;this.a.H[1][b]&=65295};h.fd=function(a){return this.a.H[0][a>>1&7]};h.ge=function(a,b){this.a.H[0][b>>1&7]=a&65295};h.dd=function(a){return this.a.H[0][(a>>1&7)+8]};h.ee=function(a,b){this.a.H[0][(b>>1&7)+8]=a&65295};h.ed=function(a){return this.a.Z[0][a>>1&7]};h.fe=function(a,b){b=b>>1&7;this.a.Z[0][b]=a;this.a.H[0][b]&=65295};h.cd=function(a){return this.a.Z[0][(a>>1&7)+8]};h.de=function(a,b){b=(b>>1&7)+8;this.a.Z[0][b]=a;this.a.H[0][b]&=65295};
h.Td=function(a){return this.a.H[3][a>>1&7]};h.Re=function(a,b){this.a.H[3][b>>1&7]=a&65295};h.Rd=function(a){return this.a.H[3][(a>>1&7)+8]};h.Pe=function(a,b){this.a.H[3][(b>>1&7)+8]=a&65295};h.Sd=function(a){return this.a.Z[3][a>>1&7]};h.Qe=function(a,b){b=b>>1&7;this.a.Z[3][b]=a;this.a.H[3][b]&=65295};h.Qd=function(a){return this.a.Z[3][(a>>1&7)+8]};h.Oe=function(a,b){b=(b>>1&7)+8;this.a.Z[3][b]=a;this.a.H[3][b]&=65295};h.Za=function(a){a&=7;return this.a.F&2048?this.a.Ha[a]:this.a.g[a]};
h.cb=function(a,b){b&=7;this.a.F&2048?this.a.Ha[b]=a:this.a.g[b]=a};h.rd=function(){return this.a.F&49152?this.a.qa[0]:this.a.g[6]};h.pe=function(a){this.a.F&49152?this.a.qa[0]=a:this.a.g[6]=a};h.ud=function(){return this.a.g[7]};h.se=function(a){this.a.g[7]=a};h.$a=function(a){a&=7;return this.a.F&2048?this.a.g[a]:this.a.Ha[a]};h.eb=function(a,b){b&=7;this.a.F&2048?this.a.g[b]=a:this.a.Ha[b]=a};h.sd=function(){return 1==(this.a.F&49152)>>14?this.a.g[6]:this.a.qa[1]};
h.qe=function(a){1==(this.a.F&49152)>>14?this.a.g[6]=a:this.a.qa[1]=a};h.td=function(){return 3==(this.a.F&49152)>>14?this.a.g[6]:this.a.qa[3]};h.re=function(a){3==(this.a.F&49152)>>14?this.a.g[6]=a:this.a.qa[3]=a};h.bd=function(a){return this.a.Pb[a-65504>>1]};h.ce=function(a,b){this.a.Pb[b-65504>>1]=a};h.lc=function(a){return 65520==a?(Tb(this.h)>>6)-1:0};h.pc=function(){};h.Pd=function(){return 1};h.Ne=function(){};h.ad=function(){return this.a.X};h.be=function(){this.a.X=0};h.hd=function(){return this.a.Ob};
h.ie=function(a,b){b&1||(a&=255);this.a.Ob=a};h.nd=function(a,b){return b?0:this.a.nb};h.le=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.u|=1}b.nb=a};h.Od=function(a,b){return b?0:this.a.ab&65280};h.Me=function(a){this.a.ab=a|255};h.qd=function(){return ec(this.a)};h.oe=function(a){fc(this.a,a)};h.oc=function(){};
var N={},ac=(N[61568]=[null,null,L.prototype.Ud,L.prototype.Se,"UNIMAP",64,1170],N[62592]=[null,null,L.prototype.Nd,L.prototype.Le,"SIPDR",8,1145,64],N[62608]=[null,null,L.prototype.Ld,L.prototype.Je,"SDPDR",8,1145,64],N[62624]=[null,null,L.prototype.Md,L.prototype.Ke,"SIPAR",8,1145,64],N[62640]=[null,null,L.prototype.Kd,L.prototype.Ie,"SDPAR",8,1145,64],N[62656]=[null,null,L.prototype.fd,L.prototype.ge,"KIPDR",8,1145,64],N[62672]=[null,null,L.prototype.dd,L.prototype.ee,"KDPDR",8,1145,64],N[62688]=
[null,null,L.prototype.ed,L.prototype.fe,"KIPAR",8,1145,64],N[62704]=[null,null,L.prototype.cd,L.prototype.de,"KDPAR",8,1145,64],N[62798]=[null,null,L.prototype.md,L.prototype.ke,"MMR3",1,1145,64],N[65382]=[null,null,L.prototype.gd,L.prototype.he,"LKS"],N[65402]=[null,null,L.prototype.jd,L.prototype.je,"MMR0",1,1145,64],N[65404]=[null,null,L.prototype.kd,L.prototype.oc,"MMR1",1,1145,64],N[65406]=[null,null,L.prototype.ld,L.prototype.oc,"MMR2",1,1145,64],N[65408]=[null,null,L.prototype.Td,L.prototype.Re,
"UIPDR",8,1145,64],N[65424]=[null,null,L.prototype.Rd,L.prototype.Pe,"UDPDR",8,1145,64],N[65440]=[null,null,L.prototype.Sd,L.prototype.Qe,"UIPAR",8,1145,64],N[65456]=[null,null,L.prototype.Qd,L.prototype.Oe,"UDPAR",8,1145,64],N[65472]=[null,null,L.prototype.Za,L.prototype.cb,"R0SET0"],N[65473]=[null,null,L.prototype.Za,L.prototype.cb,"R1SET0"],N[65474]=[null,null,L.prototype.Za,L.prototype.cb,"R2SET0"],N[65475]=[null,null,L.prototype.Za,L.prototype.cb,"R3SET0"],N[65476]=[null,null,L.prototype.Za,
L.prototype.cb,"R4SET0"],N[65477]=[null,null,L.prototype.Za,L.prototype.cb,"R5SET0"],N[65478]=[null,null,L.prototype.rd,L.prototype.pe,"R6KERNEL"],N[65479]=[null,null,L.prototype.ud,L.prototype.se,"R7KERNEL"],N[65480]=[null,null,L.prototype.$a,L.prototype.eb,"R0SET1",1,1145],N[65481]=[null,null,L.prototype.$a,L.prototype.eb,"R1SET1",1,1145],N[65482]=[null,null,L.prototype.$a,L.prototype.eb,"R2SET1",1,1145],N[65483]=[null,null,L.prototype.$a,L.prototype.eb,"R3SET1",1,1145],N[65484]=[null,null,L.prototype.$a,
L.prototype.eb,"R4SET1",1,1145],N[65485]=[null,null,L.prototype.$a,L.prototype.eb,"R5SET1",1,1145],N[65486]=[null,null,L.prototype.sd,L.prototype.qe,"R6SUPER",1,1145],N[65487]=[null,null,L.prototype.td,L.prototype.re,"R6USER",1,1145],N[65504]=[null,null,L.prototype.bd,L.prototype.ce,"CTRL",8,1170],N[65520]=[null,null,L.prototype.lc,L.prototype.pc,"LSIZE",1,1170],N[65522]=[null,null,L.prototype.lc,L.prototype.pc,"HSIZE",1,1170],N[65524]=[null,null,L.prototype.Pd,L.prototype.Ne,"SYSID",1,1170],N[65526]=
[null,null,L.prototype.ad,L.prototype.be,"CPUERR",1,1170],N[65528]=[null,null,L.prototype.hd,L.prototype.ie,"MB",1,1170],N[65530]=[null,null,L.prototype.nd,L.prototype.le,"PIR"],N[65532]=[null,null,L.prototype.Od,L.prototype.Me,"SL"],N[65534]=[null,null,L.prototype.qd,L.prototype.oe,"PSW"],N);
Ia(function(){for(var a=F(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=D(d);switch(c.type){case "default":c=new L(c);E(c,d);break;case "pc11":c=new gc(c);E(c,d);break;case "rl11":c=new O(c);E(c,d);break;case "rk11":c=new P(c),E(c,d)}}});var hc;if(Za){var ic=new ArrayBuffer(2);(new DataView(ic)).setUint16(0,256,!0);hc=256===(new Uint16Array(ic))[0]}else hc=!1;var jc=hc;
function I(a,b,c,d,e,f){this.h=a;this.id=kc+=2;this.a=null;this.Ja=b;this.ob=c;this.size=d||0;this.type=e||lc;this.l=e==mc;this.controller=null;Hb(this);this.wa=this.Jc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.a=a[0],nc(this,f.Dc);else if(Za)this.b=new ArrayBuffer(this.size),this.c=new DataView(this.b,0,this.size),this.j=new Uint8Array(this.b,0,this.size),this.s=new Uint16Array(this.b,0,this.size>>1),this.a=new Int32Array(this.b,0,this.size>>2),nc(this,jc?oc:pc);else{a=this.a=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;nc(this,rc)}else nc(this)}var lc=0,Ub=1,mc=2,Jb=4,Nb=["NONE","RAM","ROM","VID","H/W"],kc=0;
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Za)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.c.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Za)for(b=0;b<a.length;b++)this.c.setInt32(b<<2,a[b],!0);else this.a=a;return this.wa=!0}return!1},v:function(a,b){J(this.h,b,32);return 255},f:function(a,b,c){J(this.h,c,32)},w:function(a,b){return this.Nb(a++,b++)|
this.Nb(a,b)<<8},A:function(a,b,c){this.Cb(a++,b&255,c++);this.Cb(a,b>>8,c)},L:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ga:function(a,b){a&1&&J(this.h,b,64);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ma:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.wa=!0},Ca:function(a,b,c){a&1&&J(this.h,c,64);c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|
b>>8);this.wa=!0},G:function(a,b){return this.I(a,b)},U:function(a,b){return this.mc(a,b)},Ba:function(a,b,c){this.l?this.f(a,b,c):this.Ub(a,b,c)},ua:function(a,b,c){this.l?this.f(a,b,c):this.qc(a,b,c)},C:function(a){return this.j[a]},J:function(a){return this.j[a]},S:function(a,b){a&1&&J(this.h,b,64);return this.c.getUint16(a,!0)},fa:function(a,b){a&1&&J(this.h,b,64);return this.s[a>>1]},Aa:function(a,b){this.j[a]=b;this.wa=!0},sa:function(a,b){this.j[a]=b;this.wa=!0},na:function(a,b,c){a&1&&J(this.h,
c,64);this.c.setUint16(a,b,!0);this.wa=!0},va:function(a,b,c){a&1&&J(this.h,c,64);this.s[a>>1]=b;this.wa=!0}};function Hb(a,b,c){a.D=b;a.i=a.o=0;c&&((a.i=c.i)&&sc(a,tc,!1),(a.o=c.o)&&uc(a,tc,!1))}function uc(a,b,c){c&&a.o||(a.Cb=!a.l&&b[1]||a.f,a.Db=!a.l&&b[3]||a.A);if(c||void 0===c)a.Ub=b[1]||a.f,a.qc=b[3]||a.A}function sc(a,b,c){c&&a.i||(a.Nb=b[0]||a.v,a.aa=b[2]||a.w);if(c||void 0===c)a.I=b[0]||a.v,a.mc=b[2]||a.w}function nc(a,b){b||(b=vc);sc(a,b,void 0);uc(a,b,void 0)}
var vc=[],rc=[I.prototype.L,I.prototype.ma,I.prototype.ga,I.prototype.Ca],tc=[I.prototype.G,I.prototype.Ba,I.prototype.U,I.prototype.ua];if(Za)var pc=[I.prototype.C,I.prototype.Aa,I.prototype.S,I.prototype.na],oc=[I.prototype.J,I.prototype.sa,I.prototype.fa,I.prototype.va];
function wc(a,b){z.call(this,"CPU",a,wc,1);b=a.cycles||b;var c=a.multiplier||1;this.Eb=0;this.sb=b;this.na=c;this.Jb=Math.round(this.sb/1E4)/100;this.Qa=this.Jb*this.na;this.m.O=!1;this.m.Rb=!1;this.m.Ea=a.autoStart;this.m.xb=!1;this.qb=this.Ta=0;this.rb=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.L=[];this.ic=this.Zd.bind(this);G(this)}B(wc);var xc=["power","reset"];h=wc.prototype;
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.D=d;this.v=a.v;for(a=0;a<xc.length;a++)(b=this.j[xc[a]])&&this.l.ba(null,xc[a],b);G(this)};h.Wb=function(){};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ka=function(a,b){var c=yc(this.l,"autoStart");null!=c?this.m.Ea="true"==c?!0:"false"==c?!1:!!c:null==this.m.Ea&&(this.m.Ea=void 0===this.j.run);if(!b){this.Wb();if(a&&this.restore){zc(this);if(!this.restore(a))return!1;Ac(this)}else this.reset();this.V("No debugger detected");this.m.Ea||this.V("CPU will not be auto-started, click Run to start")}return!0};h.ja=function(a){return a?this.save():!0};h.Ea=function(){return this.m.O?!0:this.m.Ea?(pb(this),!0):!1};h.dc=function(){return 0};
function Ac(a){void 0===a.rb&&(a.rb=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.m.xb=0<=a.rb&&0<a.hb;a.m.xb&&(a.qb=0,a.Ta=a.rb-a.ua)}function sb(a,b){if(a.m.xb){var c=!1;a.qb=a.qb+a.dc()|0;a.Ta-=b;0>=a.Ta&&(a.Ta+=a.hb,c=!0);0<=a.ib&&a.ib<=Bc(a)&&(a.hb=a.ib=-1,Ac(a),H(a),c=!0);c&&a.V(Bc(a)+" cycles: checksum="+r(a.qb))}}
h.ba=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.m.R)a=!0;else{var b=null,c,k=C(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.m.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.m.R);c++);c==k.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.m.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.m.O?H(d):pb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Cc(d,d.na<<1,!0)},c.textContent=this.Qa.toFixed(2)+"Mhz",!0}return!1};h.za=function(a){this.l&&this.l.za(a)};function rb(a,b,c){a.ua+=b;c&&(a.ma=a.a=a.J=0)}function Dc(a,b){var c=1;b&&1<a.na&&a.Pa&&(c=a.Pa/a.Jb);a.fc=Math.round(1E3/30);a.tb=Math.floor(a.sb/30*c);b||(a.jb=a.tb);a.Kb=0}function Bc(a){return a.ua+a.ga+a.ma-a.a}function zc(a){a.Pa=0;a.hc=0;a.ua=a.ga=a.ma=a.a=a.J=0;Ac(a);Cc(a,1)}
function Cc(a,b,c){if(void 0!==b){.8>a.Pa/a.Qa&&(b=1);a.na=b;b=a.Jb*a.na;if(a.Qa!=b){a.Qa=b;b=a.Qa.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.V("target speed: "+b)}c&&a.l&&Ec(a.l)}rb(a,a.ga);a.ga=0;a.fa=qa();a.sa=0;Dc(a)}function Xb(a,b){var c=a.L.length;a.L.push([-1,b]);return c}function Yb(a,b,c,d){0<=b&&b<a.L.length&&(d||0>a.L[b][0])&&(c=a.sb*a.na/1E3*c|0,a.m.O&&(c+=Fc(a)),a.L[b][0]=c)}
function qb(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Fc(a,b){var c=a.ma-=a.a;a.a=a.J=0;b&&(a.ma=0);return c}
h.Zd=function(){if(this.m.O){this.Kb>=this.sb&&Dc(this,!0);this.kb=0;this.pb=qa();if(this.sa){var a=this.pb-this.sa;a>this.fc&&(this.fa+=a,this.fa>this.pb&&(this.fa=this.pb))}try{do{for(var b,c=this.m.xb?1:this.tb,d=this.L.length-1;0<=d;d--){var e=this.L[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Bb(b)}catch(f){if("number"!=typeof f)throw f;}b=Fc(this,!0);this.kb+=b;this.ga+=b;sb(this,b);qb(this,b);this.jb-=b;if(0>=this.jb){this.jb+=this.tb;15<=++this.hc&&(this.za(),this.hc=0);break}}while(this.m.O)}catch(f){H(this);
this.l&&this.l.stop(qa(),Bc(this));Ya(this,f.stack||f.message);return}if(this.m.O){a=setTimeout;b=this.ic;this.sa=qa();c=this.fc;this.kb&&(c=Math.round(c*this.kb/this.tb));c-=this.sa-this.pb;if(d=this.sa-this.fa)this.Pa=Math.round(this.ga/(10*d))/100,864E5<=d&&(this.ua=0,Cc(this));if(0>c||this.Pa<this.Qa)-1E3>c&&(this.fa-=c),c=0;this.Kb+=this.kb;this.sa+=c;a(b,c)}}};
function pb(a){var b;a.m.error?(a.V(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.m.O)a.V(a.toString()+" busy");else{Cc(a);a.m.O=!0;a.m.Rb=!0;if(b=a.j.run)b.textContent="Halt";a.l&&a.l.start(a.fa,Bc(a));a.D||a.status("Started");setTimeout(a.ic,0)}}h.Bb=function(){return 0};function H(a){var b=!1;if(a.m.O){Fc(a);rb(a,a.ga);a.ga=0;a.m.O=!1;if(b=a.j.run)b.textContent="Run";a.l&&a.l.stop(qa(),Bc(a));b=!0;a.D||a.status("Stopped")}a.m.complete=void 0;return b}
function Gc(a){this.Fa=+a.model||1170;this.bc=a.addrReset||0;wc.call(this,a,6666667);this.ub=0;this.ec=255;1120>=this.Fa?(this.decode=Hc.bind(this),this.Oa=this.Hc,this.ub=8,this.ec=-1,this.kc=255,this.jc=0):(this.decode=Ic.bind(this),this.Oa=this.Ic,this.kc=~(1792|(1145>this.Fa?2048:0))&65535,this.jc=1145<=this.Fa?2048:0);Jc(this);this.Ua=0;this.I=null;this.Fb=[];this.m.complete=!1}B(Gc,wc);h=Gc.prototype;
h.Wb=function(){for(var a=192,b=0;b<this.Fb.length;b++){var c=this.Fb[b];0>c.Tb&&(c.Tb=a,a+=4)}};h.reset=function(){this.status("Model "+this.Fa);this.m.O&&H(this);Jc(this);zc(this);this.m.error=!1;this.parent.reset.call(this)};
function Jc(a){a.o=65536;a.f=32768;a.i=65535;a.s=32768;a.F=15;a.g=[0,0,0,0,0,0,0,a.bc,-1,-2,-3,-4,-5,-6,-7,-8];a.Ha=[0,0,0,0,0,0];a.qa=[0,0,0,0];a.w=0;a.Pc=[4,2,0,1];a.H=[[0,0,0,0,0,0,0,0,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,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Z=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0]];a.bb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.Pb=[0,0,0,0,0,0,0,0];a.Ob=0;a.u=0;a.C=a.G=0;a.c=a.b=a.Hb=0;a.va=-1;ob(a)}function ob(a){a.Y=0;a.vb=0;a.wb=0;a.ya=0;a.X=0;a.nb=0;a.ab=255;a.Ra=0;a.fb=0;a.gb=0;a.Sa=262143;a.Va=0;a.A=0;a.I=null;a.h&&(dc(a),a.Nc=Tb(a.h))}function dc(a){a.Ra?(a.U=65536,a.Ca=a.ya&16?4186112:253952,a.S=a.Lc,a.aa=a.Vd,a.Db=a.Te,Lb(a.h,a.ya&16?22:18)):(a.U=0,a.Ca=57344,a.S=a.Kc,a.aa=a.nc,a.Db=a.rc,Lb(a.h,16))}
function cc(a,b){b&=-3073;if(a.Y!=b){b&57344&&!(a.Y&57344)&&(a.vb=a.A>>16&65535,a.wb=a.A&65535);a.Y=b;a.fb=(b&96)>>5;a.gb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ra!=c&&(a.Ra=c,dc(a))}}function Kc(a,b,c){a.bc=b;a.h.reset();ob(a);Q(a,b);fc(a,0);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.m.O||pb(a)}else a.D?H(a)||a.D.b():!1===c&&H(a);!a.m.O&&a.v&&a.v.stop()}h.dc=function(){return 0};
h.save=function(){var a=new R(this);a.set(0,[this.g,this.Ha,this.qa,this.bb,this.Pb,this.X,this.Ob,this.nb,this.ab,ec(this),this.va,this.w,this.u,this.Y,this.vb,this.wb,this.ya,this.fb,this.gb,this.H,this.Z,this.Ra,this.Sa,this.Va,this.A]);a.set(1,[this.ua,this.na]);a.set(2,Sb(this.h));return a.data()};
h.restore=function(a){var b=a[1];this.ua=b[1];Cc(this,b[3]);a:{b=this.h;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.J){for(var f=0,g=Array(b.J),k=0;k<e.length-1;)for(var l=e[k++],m=e[k++];l--;)g[f++]=m;e=g}f=b.h[d];if(!f||!f.restore(e)){x("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function S(a){return a.o&65536?1:0}function Lc(a){return a.s&32768?8:0}function Mc(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function Q(a,b){a.g[7]=b&65535}
function $b(a,b,c,d){c={Tb:b,Ya:c,message:d||0,next:null};c.name=$a[b];a.Fb.push(c);return c}function bc(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.u|=1)}function M(a,b){if(b!=a.I){var c=a.I;if(!c||c.Ya<=b.Ya)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.Ya<=b.Ya){b.next=d;c.next=b;break}c=d}while(c)}}a.u|=1}function Nc(a){return a.u&64?(K(a,168,64,-6),!0):a.u&32?(K(a,4,32,-5),!0):a.u&16?(K(a,12,16,-7),!0):!1}
function ec(a){return a.F=a.F&63728|Lc(a)|(a.i&65535?0:4)|(a.f&32768?2:0)|S(a)}function fc(a,b){b&=a.kc;a.s=b<<12;a.i=~b&4;a.f=b<<14;a.o=b<<16;if((b^a.F)&a.jc)for(var c=a.Ha.length;0<=--c;){var d=a.g[c];a.g[c]=a.Ha[c];a.Ha[c]=d}a.w=b>>14&3;c=a.F>>14&3;a.w!=c&&(a.qa[c]=a.g[6],a.g[6]=a.qa[a.w]);a.F=b;a.u&=-3;a.u|=a.I?2:1}h.ca=function(a){this.s=this.i=a;this.f=0};h.Ia=function(a,b){this.s=this.i=this.o=a;this.f=b||0};function Oc(a,b){a.s=a.i=a.o=b;a.f=a.s^a.o>>1}
function Pc(a,b,c,d){a.s=a.i=a.o=b;a.f=(c^d)&(d^b)}function K(a,b,c,d){if(!a.Ua){0>a.va?a.va=ec(a):a.w||(d=-4);-4==d&&(a.u&256&&(d=-1),a.u|=256,a.X|=4,a.g[6]=b=4);if(-1!=d){a.A=b|4143316992;a.w=0;var e=a.aa(b|a.U),f=a.aa(b+2&65535|a.U);fc(a,f&-12289|a.va>>2&12288);Qc(a,a.va);Qc(a,a.g[7]);Q(a,e)}a.a-=5;a.u&=~(c|19);a.u|=129;a.va=-1;-1==d&&H(a);if(-4<=d)throw b;}}function Rc(a){var b=Sc(a),c=Sc(a);a.F&49152&&(c=c&-225|a.F&63712);Q(a,b);fc(a,c);a.u&=-17}
function Tc(a,b){var c=b>>13&31;31>c&&(b=a.ya&32?a.bb[c]+(b&8190)&4194302:b&-3932161);return b}
function wb(a,b,c){var d,e,f;if(!(c&a.Ra))return f=b&65535,57344<=f&&(f|=a.Ca),f;d=b>>13;a.ya&a.Pc[a.w]||(d&=7);e=a.H[a.w][d];f=(a.Z[a.w][d]<<6)+(b&8191)&a.Sa;3932160<=f&&(f=Tc(a,f));if(a.Ua)return f;f>=a.Nc&&f<a.Ca?(a.X|=32,K(a,4,0,f)):f&1&&!(c&1)&&(a.X|=64,K(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.H[a.w][d]=e;if(f!=(4194170&a.Sa)||a.w)a.fb=a.w,a.gb=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Y&57344||(g|=a.Y&4096|a.fb<<5|a.gb<<1,cc(a,a.Y&-61695|g&61694)),K(a,168,64,-2)),a.Y&61440||!(f<(4191360&a.Sa)||f>(4194239&a.Sa))||(a.Y|=4096,a.Y&512&&(a.u|=64)));return f}function Sc(a){var b=a.aa(a.g[6]|a.U);a.g[6]=a.g[6]+2&65535;return b}function Qc(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.A=a.A&65535|(a.A&-65536)<<8|16121856;a.u&256||a.Oa(4,-2,c);a.Db(c,b)}
function Uc(a,b,c,d){var e,f,g=d&8?0:a.U;switch(b){case 0:return K(a,4,0,-3),0;case 1:return 6==c&&a.Oa(d,0,a.g[6]),a.a-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Oa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.aa(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Oa(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.aa(e)|g;a.a-=8;break;case 6:return e=a.aa(Mc(a,2)),e=e+a.g[c]&65535,6==c&&a.Oa(d,
0,e),a.a-=6,e|g;case 7:return e=a.aa(Mc(a,2)),e=e+a.g[c]&65535,e=a.aa(e|a.U),a.a-=10,e|g}a.g[c]=a.g[c]+f&65535;a.A=a.A&65535|(a.A&-65536)<<8|(f<<3&248|c)<<16;return e}h.Hc=function(a,b,c){!this.w&&0>=b&&c<=this.ab&&(this.u|=32)};h.Ic=function(a,b,c){this.w||(65534<=c&&(c|=-65536),a&4&&c<=this.ab&&(c<=this.ab-32?K(this,4,0,-4):(this.X|=8,this.u|=32)))};h.Kc=function(a,b,c){a=Uc(this,a,b,c);3932160<=a&&(a=Tc(this,a));return a};h.Lc=function(a,b,c){return wb(this,Uc(this,a,b,c),c)};
h.nc=function(a){3932160<=a&&(a=Tc(this,a));return Pb(this.h,this.Va=a)};h.Vd=function(a){return Pb(this.h,this.Va=wb(this,a,2))};h.rc=function(a,b){3932160<=a&&(a=Tc(this,a));Qb(this.h,this.Va=a,b)};h.Te=function(a,b){Qb(this.h,this.Va=wb(this,a,4),b)};function Vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Uc(a,b,d,2),c&65536||61440!==(a.F&61440)&&(d&=65535),a.w=a.F>>12&3,c=a.aa(d|c&a.U),a.w=a.F>>14&3):c=6!=d||(a.F>>2&12288)===(a.F&12288)?a.g[d]:a.qa[a.F>>12&3];return c}
function Wc(a,b,c,d){a.A=a.A&65535|1441792;var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Uc(a,b,e,4),c&65536||(e&=65535),a.w=a.F>>12&3,e=wb(a,e|c&65536,4),a.w=a.F>>14&3,Qb(a.h,e,d)):6!=e||(a.F>>2&12288)===(a.F&12288)?a.g[e]=d:a.qa[a.F>>12&3]=d}function Xc(a,b){b>>=6;var c=a.G=b&7;(b=a.C=(b&56)>>3)?(c=a.S(b,c,3),a=Ob(a.h,c)):a=a.g[c+a.ub]&a.ec;return a}function Yc(a,b){b>>=6;var c=a.G=b&7;return(b=a.C=(b&56)>>3)?Pb(a.h,a.S(b,c,2)):a.g[c+a.ub]}
function Zc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Uc(a,b,c,8)}function $c(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.S(b,c,3),a=Ob(a.h,c)):a=a.g[c]&255;return a}function ad(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?Pb(a.h,a.S(b,c,2)):a.g[c]}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Hb=a.S(b,e,7),c=0>c?a.g[-c-1]&255:c,c=d.call(a,c,Ob(a.h,e)),e&1&&a.a--,a=a.h,a.f[(e&a.i)>>>a.b].Cb(e&a.l,c,e)):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function U(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.S(b,e,6),Qb(a.h,e,d.call(a,0>c?a.g[-c-1]:c,Pb(a.h,e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function bd(a,b,c,d,e){var f=a.b=b&7;(b=a.c=(b&56)>>3)?(d=a.S(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),d&1&&a.a--,a=a.h,a.f[(d&a.i)>>>a.b].Cb(d&a.l,c,d)):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function cd(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.S(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),Qb(a.h,e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}function V(a,b,c){c&&(Q(a,a.g[7]+(b<<24>>23)),a.a-=2);a.a-=3}
h.Bb=function(a){this.m.complete=!0;var b=a?this.m.Rb?0:1:-1;this.m.Rb=!1;this.ma=this.a=a;this.u=this.u&-5|0;do{if(this.u){if(a=this.u&11)if(a=!1,this.u&2){var c=160,d=(this.nb&224)>>5,e=this.I&&this.I.Ya>d?this.I:null;e&&(c=e.Tb,d=e.Ya);d>(this.F&224)>>5?(this.u&8&&(Mc(this,2),this.u&=-9),K(this,c,0,-10),d=!0):d=!1;d&&(e&&bc(this,e),a=!0);this.I||this.nb||(this.u&=-3)}else this.u&1&&this.u++;if(a){if(this.u&4&&this.D.h(this.g[7],b)){H(this);break}if(0>b)break}if(this.u&112&&Nc(this)){if(this.u&
4&&this.D.h(this.g[7],b)){H(this);break}if(0>b)break}}this.u=this.u&15|this.F&16;a=this.A=this.g[7];e=this.aa(a);this.g[7]=a+2&65535;this.decode(e)}while(0<this.a);return this.m.complete?this.ma-this.a:void 0===this.m.complete?0:-1};Ia(function(){for(var a=F(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Gc(d);E(d,c)}});function dd(a,b){var c=b+a;this.s=this.i=this.o=c;this.f=(a^c)&(b^c);return c&65535}
function ed(a,b){var c=b+a,d=c<<8;this.s=this.i=this.o=d;this.f=(a<<8^d)&(b<<8^d);return c&255}function fd(a,b){a=b<<1;Oc(this,a);return a&65535}function gd(a,b){a=b<<1;Oc(this,a<<8);return a&255}function hd(a,b){a=b&32768|b>>1|b<<16;Oc(this,a);return a&65535}function id(a,b){a=b&128|b>>1|b<<8;Oc(this,a<<8);return a&255}function jd(a,b){a=b&~a;this.ca(a);return a}function kd(a,b){a=b&~a;this.ca(a<<8);return a}function ld(a,b){a|=b;this.ca(a);return a}function md(a,b){a|=b;this.ca(a<<8);return a}
function lb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ib(a,b){for(var c in a.f)lb(a,c,null!=b?b:a.f[c])}function mb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jb(a){for(var b in a.b)mb(a,b,a.b[b][1])}function nb(a,b,c,d){a.j[b]&&(void 0===c&&(Ya(a,"Value for "+b+" is invalid"),G(a.a)),c=8==(a.D&&a.D.c||8)?ja(c,d):ka(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
function db(a,b){var c=a.b[b];mb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.A="DEP"==b,a.C="EXAM"==b)}function eb(a,b){var c=a.b[b];c[2]&&c[3]&&(mb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Uc=function(a){a||this.a.m.O||(a=this.a,a.h.reset(),ob(a),cb(this,"ENABLE")&&pb(this.a))};h.Vc=function(){};h.Qc=function(a){a||G(this.a)};
h.Oc=function(a){if(!a&&!this.a.m.O)if(cb(this,"ENABLE"))pb(this.a);else{a=this.D;var b;if(b=a)a.m.Ka&&(a.m.Ib=!0),b=!a.m.Ka;if(b)Wa(a,!0),a.Cb(0,null),Wa(a,!1);else try{var c=this.a.Cb(1);0<c&&(qb(this.a,c),rb(this.a,c,!0),sb(this.a,c))}catch(d){"number"!=typeof d&&Ya(this.a,d.stack||d.message)}this.stop();this.l&&this.l.za()}};h.Pc=function(a){if(a&&!this.a.m.O)if(this.A&&tb(this),a=ub(this,this.c),this.G==bb)vb(this.h,this.la,a);else{var b=this.a,c=this.la;b.Ua++;b.pb(c,a);b.Ua--}};
h.Rc=function(a){if(!a&&!this.a.m.O){this.C&&tb(this);if(this.G==bb)a=wb(this.h,this.la);else{a=this.a;var b=this.la;a.Ua++;b=a.X(b);a.Ua--;a=b}ub(this,a)}};h.Tc=function(a){a||this.a.m.O||xb(this,this.c)};h.Sc=function(a){if(a)this.w=!0,ib(this,!0);else if(this.w=!1,ib(this),void 0!==this.j.S0){for(a=this.c=0;22>a;a++)this.b["S"+a][1]=0&1<<a?1:0;jb(this)}};h.Wc=function(a,b){this.c=a?this.c|1<<b:this.c&~(1<<b)};
function tb(a){var b=1145>a.a.Fa?8:16,c=65472<=a.la&&a.la<65472+b,b=c?1:2,c=c?15:a.h.Ga;cb(a,"STEP")||(b=-b);xb(a,a.la&~c|a.la+b&c)}function xb(a,b){a.la=b&a.h.Ga;b=a.la;for(var c=0;22>c;c++)yb(a,"A"+c,b&1<<c)}function ub(a,b){a.i=b&65535;b=a.i;for(var c=0;16>c;c++)yb(a,"D"+c,b&1<<c);return a.i}function yb(a,b,c){a.f[b]=c;a.w||lb(a,b,c)}h.stop=function(){xb(this,this.a.g[7])};h.setData=function(a,b){b?this.o=a:this.i=a};h.Yc=function(a,b){return(b?this.o:this.c)&65535};h.$d=function(a){this.o=a};
var zb={},gb=(zb[65400]=[null,null,ab.prototype.Yc,ab.prototype.$d,"CNSW"],zb);function kb(){for(var a=!1,b=E(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=C(d),f=Ua(e.id);f||(a=!0,f=new ab(e));D(f,d);a&&F(f)}}Ia(kb);
function Ab(a,b,c){y.call(this,"Bus",a,Ab,16);this.a=b;this.D=c;this.L=a.busWidth||16;this.w=1<<this.L;this.Ga=this.w-1;this.c=Bb;this.b=Math.log2(this.c);this.J=this.c>>2;this.l=this.c-1;this.v=this.w/this.c|0;this.Da=[];this.o=0;this.s=!1;this.A=[];this.Bc=[Cb,Db,Eb,Fb];a=new H(this);Gb(a,this.D);this.h=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.h[b]=this.f[b]=a;this.Ca=this.w-Bb;Hb(this,this.Ca,Bb,Ib,this);this.I=this.G=(this.Ca&this.Ga)>>>this.b;this.C=0;this.i=this.Ga;F(this)}
A(Ab);var Bb=8192,Jb=Bb-1;function Cb(a,b){var c=-1,d=this.controller,e=d.Da[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Da[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;I(d,b,16);return 255}
function Db(a,b,c){var d=!1,e=this.controller,f=e.Da[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Da[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d||I(e,c,16)}function Eb(a,b){var c=-1,d=this.controller;a=d.Da[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return c;I(d,b,16);return 65535}
function Fb(a,b,c){var d=!1,e=this.controller;a=e.Da[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d||I(e,c,16)}function Kb(a,b){if(b!=a.C){for(var c=0;c<a.v;c++)a.f[c]=a.h[c];a.C=0;a.i=a.Ga;b&&(a.C=b,b=1<<b,a.i=b-1,b-=Bb,a.I=(b&a.i)>>>a.b,a.f[a.I]=a.h[a.G])}}Ab.prototype.reset=function(){for(var a=0;a<this.A.length;a++)this.A[a]();Kb(this,16)};Ab.prototype.ka=function(a,b){b||this.reset();return!0};
function Hb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.b;0<g&&k<a.h.length;){var l=a.h[k],m=k*a.c,p=a.c-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ja)return l.ob+=l.Ja-f,l.Ja=f,!0;if(f>=l.Ja+l.ob){p=l.size-(f-m);p>g&&(p=g);l.ob=f-l.Ja+p;f=m+a.c;g-=p;k++;continue}}return Lb(1,f,g)}f=new H(a,f,p,a.c,d,e);Gb(f,a.D,l);a.h[k++]=f;f=m+a.c;g-=p}return 0>=g?(a.status((c>>10)+"Kb "+Mb[d]+" at "+ja(b)),!0):Lb(2,b,c)}function Nb(a,b){return a.f[(b&a.i)>>>a.b].Nb(b&a.l,b)}
function Ob(a,b){return a.f[(b&a.i)>>>a.b].X(b&a.l,b)}function Pb(a,b,c){a.f[(b&a.i)>>>a.b].pb(b&a.l,c,b)}function wb(a,b){a.s=!1;a.o++;b=a.h[(b&a.Ga)>>>a.b].mc(b&a.l,b);a.o--;return b}function Qb(a,b,c){a.s=!1;a.o++;a.h[(b&a.Ga)>>>a.b].Ub(b&a.l,c&255,b);a.o--}function vb(a,b,c){a.s=!1;a.o++;a.h[(b&a.Ga)>>>a.b].pc(b&a.l,c&65535,b);a.o--}
function Rb(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.h[d];if(e.wa||e.Hc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function Sb(a){for(var b=Tb,c=0,d=0;d<a.h.length;d++){var e=a.h[d];e.type==b&&(c=e.Ja+e.ob)}return c}
function Ub(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&Jb;if(void 0!==a.Da[p])return x("I/O address already registered: "+ka(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Da[p]=[d,e,f,g,t,k||16,!1]}return!0}
function fb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.a.Fa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],w=g[5]||1,v=0;v<w;v++,f+=2)if(t&&1<w&&(t=g[4]+v),!Ub(a,f,f,k,l,m,p,g[7]||b.Mc,t||b.Aa))return!1}}return!0}
function hb(a,b){a.A.push(b)}function I(a,b,c){a.s=!0;a.o||(c&&(a.a.Y|=c),J(a.a,4,0,b))}function Vb(a){var b=a.s;a.s=!1;return b}function Lb(a,b,c){x("Memory block error ("+a+": "+ka(b)+","+ka(c)+")");return!1}function K(a){y.call(this,"Device",a,K,256);this.b={Tf:0,Sb:-1}}A(K);h=K.prototype;
h.ia=function(a,b,c,d){this.h=b;this.l=a;this.a=c;this.D=d;var e=this;this.b.Sb=Wb(c,function(){e.b.Xa|=128;e.b.Xa&64&&L(e.a,e.b.Wa);e.l&&e.l.za(1);Xb(e.a,e.b.Sb,1E3/60)});this.b.Wa=Yb(c,64,6,524288);fb(b,this,$b);hb(b,this.reset.bind(this));F(this)};h.reset=function(){this.b.Xa=128;Xb(this.a,this.b.Sb,1E3/60,!0)};h.ed=function(){return this.b.Xa};h.ge=function(a){this.b.Xa=a&192;this.b.Xa&64||ac(this.a,this.b.Wa)};h.gd=function(){var a=this.a,b=a.Z;b&57344||(b=b&-3199|a.fb<<5|a.gb<<1);return b};
h.ie=function(a){bc(this.a,a&-129|this.a.Z&128)};h.hd=function(){var a=this.a;a.Z&57344||(a.wb=a.A>>16&65535);a=a.wb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.jd=function(){var a=this.a;a.Z&57344||(a.xb=a.A&65535);return a.xb};h.kd=function(){return this.a.ya};h.je=function(a){var b=this.a;1170>b.Fa&&(a&=-49);b.ya!=a&&(b.ya=a,b.Sa=a&16?4194303:262143,cc(b))};h.Sd=function(a){a=a>>1&63;var b=this.a.bb[a>>1];return a&1?b>>16:b&65535};
h.Re=function(a,b){b=b>>1&63;var c=b>>1;this.a.bb[c]=b&1?this.a.bb[c]&65535|(a&63)<<16:this.a.bb[c]&-65536|a&65534};h.Ld=function(a){return this.a.H[1][a>>1&7]};h.Ke=function(a,b){this.a.H[1][b>>1&7]=a&65295};h.Jd=function(a){return this.a.H[1][(a>>1&7)+8]};h.Ie=function(a,b){this.a.H[1][(b>>1&7)+8]=a&65295};h.Kd=function(a){return this.a.aa[1][a>>1&7]};h.Je=function(a,b){b=b>>1&7;this.a.aa[1][b]=a;this.a.H[1][b]&=65295};h.Id=function(a){return this.a.aa[1][(a>>1&7)+8]};
h.He=function(a,b){b=(b>>1&7)+8;this.a.aa[1][b]=a;this.a.H[1][b]&=65295};h.dd=function(a){return this.a.H[0][a>>1&7]};h.fe=function(a,b){this.a.H[0][b>>1&7]=a&65295};h.bd=function(a){return this.a.H[0][(a>>1&7)+8]};h.de=function(a,b){this.a.H[0][(b>>1&7)+8]=a&65295};h.cd=function(a){return this.a.aa[0][a>>1&7]};h.ee=function(a,b){b=b>>1&7;this.a.aa[0][b]=a;this.a.H[0][b]&=65295};h.ad=function(a){return this.a.aa[0][(a>>1&7)+8]};h.ce=function(a,b){b=(b>>1&7)+8;this.a.aa[0][b]=a;this.a.H[0][b]&=65295};
h.Rd=function(a){return this.a.H[3][a>>1&7]};h.Qe=function(a,b){this.a.H[3][b>>1&7]=a&65295};h.Pd=function(a){return this.a.H[3][(a>>1&7)+8]};h.Oe=function(a,b){this.a.H[3][(b>>1&7)+8]=a&65295};h.Qd=function(a){return this.a.aa[3][a>>1&7]};h.Pe=function(a,b){b=b>>1&7;this.a.aa[3][b]=a;this.a.H[3][b]&=65295};h.Od=function(a){return this.a.aa[3][(a>>1&7)+8]};h.Ne=function(a,b){b=(b>>1&7)+8;this.a.aa[3][b]=a;this.a.H[3][b]&=65295};h.Za=function(a){a&=7;return this.a.F&2048?this.a.Ha[a]:this.a.g[a]};
h.cb=function(a,b){b&=7;this.a.F&2048?this.a.Ha[b]=a:this.a.g[b]=a};h.pd=function(){return this.a.F&49152?this.a.qa[0]:this.a.g[6]};h.oe=function(a){this.a.F&49152?this.a.qa[0]=a:this.a.g[6]=a};h.sd=function(){return this.a.g[7]};h.re=function(a){this.a.g[7]=a};h.$a=function(a){a&=7;return this.a.F&2048?this.a.g[a]:this.a.Ha[a]};h.eb=function(a,b){b&=7;this.a.F&2048?this.a.g[b]=a:this.a.Ha[b]=a};h.qd=function(){return 1==(this.a.F&49152)>>14?this.a.g[6]:this.a.qa[1]};
h.pe=function(a){1==(this.a.F&49152)>>14?this.a.g[6]=a:this.a.qa[1]=a};h.rd=function(){return 3==(this.a.F&49152)>>14?this.a.g[6]:this.a.qa[3]};h.qe=function(a){3==(this.a.F&49152)>>14?this.a.g[6]=a:this.a.qa[3]=a};h.$c=function(a){return this.a.Pb[a-65504>>1]};h.be=function(a,b){this.a.Pb[b-65504>>1]=a};h.lc=function(a){return 65520==a?(Sb(this.h)>>6)-1:0};h.oc=function(){};h.Nd=function(){return 1};h.Me=function(){};h.Zc=function(){return this.a.Y};h.ae=function(){this.a.Y=0};h.fd=function(){return this.a.Ob};
h.he=function(a,b){b&1||(a&=255);this.a.Ob=a};h.ld=function(a,b){return b?0:this.a.nb};h.ke=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.u|=1}b.nb=a};h.Md=function(a,b){return b?0:this.a.ab&65280};h.Le=function(a){this.a.ab=a|255};h.od=function(){return dc(this.a)};h.ne=function(a){ec(this.a,a)};h.nc=function(){};
var M={},$b=(M[61568]=[null,null,K.prototype.Sd,K.prototype.Re,"UNIMAP",64,1170],M[62592]=[null,null,K.prototype.Ld,K.prototype.Ke,"SIPDR",8,1145,64],M[62608]=[null,null,K.prototype.Jd,K.prototype.Ie,"SDPDR",8,1145,64],M[62624]=[null,null,K.prototype.Kd,K.prototype.Je,"SIPAR",8,1145,64],M[62640]=[null,null,K.prototype.Id,K.prototype.He,"SDPAR",8,1145,64],M[62656]=[null,null,K.prototype.dd,K.prototype.fe,"KIPDR",8,1145,64],M[62672]=[null,null,K.prototype.bd,K.prototype.de,"KDPDR",8,1145,64],M[62688]=
[null,null,K.prototype.cd,K.prototype.ee,"KIPAR",8,1145,64],M[62704]=[null,null,K.prototype.ad,K.prototype.ce,"KDPAR",8,1145,64],M[62798]=[null,null,K.prototype.kd,K.prototype.je,"MMR3",1,1145,64],M[65382]=[null,null,K.prototype.ed,K.prototype.ge,"LKS"],M[65402]=[null,null,K.prototype.gd,K.prototype.ie,"MMR0",1,1145,64],M[65404]=[null,null,K.prototype.hd,K.prototype.nc,"MMR1",1,1145,64],M[65406]=[null,null,K.prototype.jd,K.prototype.nc,"MMR2",1,1145,64],M[65408]=[null,null,K.prototype.Rd,K.prototype.Qe,
"UIPDR",8,1145,64],M[65424]=[null,null,K.prototype.Pd,K.prototype.Oe,"UDPDR",8,1145,64],M[65440]=[null,null,K.prototype.Qd,K.prototype.Pe,"UIPAR",8,1145,64],M[65456]=[null,null,K.prototype.Od,K.prototype.Ne,"UDPAR",8,1145,64],M[65472]=[null,null,K.prototype.Za,K.prototype.cb,"R0SET0"],M[65473]=[null,null,K.prototype.Za,K.prototype.cb,"R1SET0"],M[65474]=[null,null,K.prototype.Za,K.prototype.cb,"R2SET0"],M[65475]=[null,null,K.prototype.Za,K.prototype.cb,"R3SET0"],M[65476]=[null,null,K.prototype.Za,
K.prototype.cb,"R4SET0"],M[65477]=[null,null,K.prototype.Za,K.prototype.cb,"R5SET0"],M[65478]=[null,null,K.prototype.pd,K.prototype.oe,"R6KERNEL"],M[65479]=[null,null,K.prototype.sd,K.prototype.re,"R7KERNEL"],M[65480]=[null,null,K.prototype.$a,K.prototype.eb,"R0SET1",1,1145],M[65481]=[null,null,K.prototype.$a,K.prototype.eb,"R1SET1",1,1145],M[65482]=[null,null,K.prototype.$a,K.prototype.eb,"R2SET1",1,1145],M[65483]=[null,null,K.prototype.$a,K.prototype.eb,"R3SET1",1,1145],M[65484]=[null,null,K.prototype.$a,
K.prototype.eb,"R4SET1",1,1145],M[65485]=[null,null,K.prototype.$a,K.prototype.eb,"R5SET1",1,1145],M[65486]=[null,null,K.prototype.qd,K.prototype.pe,"R6SUPER",1,1145],M[65487]=[null,null,K.prototype.rd,K.prototype.qe,"R6USER",1,1145],M[65504]=[null,null,K.prototype.$c,K.prototype.be,"CTRL",8,1170],M[65520]=[null,null,K.prototype.lc,K.prototype.oc,"LSIZE",1,1170],M[65522]=[null,null,K.prototype.lc,K.prototype.oc,"HSIZE",1,1170],M[65524]=[null,null,K.prototype.Nd,K.prototype.Me,"SYSID",1,1170],M[65526]=
[null,null,K.prototype.Zc,K.prototype.ae,"CPUERR",1,1170],M[65528]=[null,null,K.prototype.fd,K.prototype.he,"MB",1,1170],M[65530]=[null,null,K.prototype.ld,K.prototype.ke,"PIR"],M[65532]=[null,null,K.prototype.Md,K.prototype.Le,"SL"],M[65534]=[null,null,K.prototype.od,K.prototype.ne,"PSW"],M);
Ia(function(){for(var a=E(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=C(d);switch(c.type){case "default":c=new K(c);D(c,d);break;case "pc11":c=new fc(c);D(c,d);break;case "rl11":c=new N(c);D(c,d);break;case "rk11":c=new O(c),D(c,d)}}});var gc;if(Za){var hc=new ArrayBuffer(2);(new DataView(hc)).setUint16(0,256,!0);gc=256===(new Uint16Array(hc))[0]}else gc=!1;var ic=gc;
function H(a,b,c,d,e,f){this.h=a;this.id=jc+=2;this.a=null;this.Ja=b;this.ob=c;this.size=d||0;this.type=e||kc;this.l=e==lc;this.controller=null;Gb(this);this.wa=this.Hc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.a=a[0],mc(this,f.Bc);else if(Za)this.b=new ArrayBuffer(this.size),this.c=new DataView(this.b,0,this.size),this.j=new Uint8Array(this.b,0,this.size),this.s=new Uint16Array(this.b,0,this.size>>1),this.a=new Int32Array(this.b,0,this.size>>2),mc(this,ic?nc:oc);else{a=this.a=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;mc(this,pc)}else mc(this)}var kc=0,Tb=1,lc=2,Ib=4,Mb=["NONE","RAM","ROM","VID","H/W"],jc=0;
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Za)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.c.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Za)for(b=0;b<a.length;b++)this.c.setInt32(b<<2,a[b],!0);else this.a=a;return this.wa=!0}return!1},v:function(a,b){I(this.h,b,32);return 255},f:function(a,b,c){I(this.h,c,32)},w:function(a,b){return this.Nb(a++,b++)|
this.Nb(a,b)<<8},A:function(a,b,c){this.Db(a++,b&255,c++);this.Db(a,b>>8,c)},L:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ga:function(a,b){a&1&&I(this.h,b,64);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ma:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.wa=!0},Ca:function(a,b,c){a&1&&I(this.h,c,64);c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|
b>>8);this.wa=!0},G:function(a,b){return this.I(a,b)},U:function(a,b){return this.mc(a,b)},Ba:function(a,b,c){this.l?this.f(a,b,c):this.Ub(a,b,c)},ua:function(a,b,c){this.l?this.f(a,b,c):this.pc(a,b,c)},C:function(a){return this.j[a]},J:function(a){return this.j[a]},S:function(a,b){a&1&&I(this.h,b,64);return this.c.getUint16(a,!0)},fa:function(a,b){a&1&&I(this.h,b,64);return this.s[a>>1]},Aa:function(a,b){this.j[a]=b;this.wa=!0},sa:function(a,b){this.j[a]=b;this.wa=!0},na:function(a,b,c){a&1&&I(this.h,
c,64);this.c.setUint16(a,b,!0);this.wa=!0},va:function(a,b,c){a&1&&I(this.h,c,64);this.s[a>>1]=b;this.wa=!0}};function Gb(a,b,c){a.D=b;a.i=a.o=0;c&&((a.i=c.i)&&rc(a,sc,!1),(a.o=c.o)&&tc(a,sc,!1))}function tc(a,b,c){c&&a.o||(a.Db=!a.l&&b[1]||a.f,a.pb=!a.l&&b[3]||a.A);if(c||void 0===c)a.Ub=b[1]||a.f,a.pc=b[3]||a.A}function rc(a,b,c){c&&a.i||(a.Nb=b[0]||a.v,a.X=b[2]||a.w);if(c||void 0===c)a.I=b[0]||a.v,a.mc=b[2]||a.w}function mc(a,b){b||(b=uc);rc(a,b,void 0);tc(a,b,void 0)}
var uc=[],pc=[H.prototype.L,H.prototype.ma,H.prototype.ga,H.prototype.Ca],sc=[H.prototype.G,H.prototype.Ba,H.prototype.U,H.prototype.ua];if(Za)var oc=[H.prototype.C,H.prototype.Aa,H.prototype.S,H.prototype.na],nc=[H.prototype.J,H.prototype.sa,H.prototype.fa,H.prototype.va];
function vc(a,b){y.call(this,"CPU",a,vc,1);b=a.cycles||b;var c=a.multiplier||1;this.Eb=0;this.tb=b;this.na=c;this.Jb=Math.round(this.tb/1E4)/100;this.Qa=this.Jb*this.na;this.m.O=!1;this.m.Rb=!1;this.m.Ea=a.autoStart;this.m.yb=!1;this.rb=this.Ta=0;this.sb=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.L=[];this.ic=this.Yd.bind(this);F(this)}A(vc);var wc=["power","reset"];h=vc.prototype;
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.D=d;this.v=a.v;for(a=0;a<wc.length;a++)(b=this.j[wc[a]])&&this.l.ba(null,wc[a],b);F(this)};h.Wb=function(){};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ka=function(a,b){var c=xc(this.l,"autoStart");null!=c?this.m.Ea="true"==c?!0:"false"==c?!1:!!c:null==this.m.Ea&&(this.m.Ea=void 0===this.j.run);if(!b){this.Wb();if(a&&this.restore){yc(this);if(!this.restore(a))return!1;zc(this)}else this.reset();this.V("No debugger detected");this.m.Ea||this.V("CPU will not be auto-started, click Run to start")}return!0};h.ja=function(a){return a?this.save():!0};h.Ea=function(){return this.m.O?!0:this.m.Ea?(pb(this),!0):!1};h.dc=function(){return 0};
function zc(a){void 0===a.sb&&(a.sb=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.m.yb=0<=a.sb&&0<a.hb;a.m.yb&&(a.rb=0,a.Ta=a.sb-a.ua)}function sb(a,b){if(a.m.yb){var c=!1;a.rb=a.rb+a.dc()|0;a.Ta-=b;0>=a.Ta&&(a.Ta+=a.hb,c=!0);0<=a.ib&&a.ib<=Ac(a)&&(a.hb=a.ib=-1,zc(a),G(a),c=!0);c&&a.V(Ac(a)+" cycles: checksum="+ka(a.rb))}}
h.ba=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.m.R)a=!0;else{var b=null,c,k=B(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.m.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.m.R);c++);c==k.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.m.ready?"powered yet":"ready yet"+(b.Ab?" (waiting for notification)":""))+".");a=!1}a&&(d.m.O?G(d):pb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Bc(d,d.na<<1,!0)},c.textContent=this.Qa.toFixed(2)+"Mhz",!0}return!1};h.za=function(a){this.l&&this.l.za(a)};function rb(a,b,c){a.ua+=b;c&&(a.ma=a.a=a.J=0)}function Cc(a,b){var c=1;b&&1<a.na&&a.Pa&&(c=a.Pa/a.Jb);a.fc=Math.round(1E3/30);a.ub=Math.floor(a.tb/30*c);b||(a.jb=a.ub);a.Kb=0}function Ac(a){return a.ua+a.ga+a.ma-a.a}function yc(a){a.Pa=0;a.hc=0;a.ua=a.ga=a.ma=a.a=a.J=0;zc(a);Bc(a,1)}
function Bc(a,b,c){if(void 0!==b){.8>a.Pa/a.Qa&&(b=1);a.na=b;b=a.Jb*a.na;if(a.Qa!=b){a.Qa=b;b=a.Qa.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.V("target speed: "+b)}c&&a.l&&Dc(a.l)}rb(a,a.ga);a.ga=0;a.fa=ra();a.sa=0;Cc(a)}function Wb(a,b){var c=a.L.length;a.L.push([-1,b]);return c}function Xb(a,b,c,d){0<=b&&b<a.L.length&&(d||0>a.L[b][0])&&(c=a.tb*a.na/1E3*c|0,a.m.O&&(c+=Ec(a)),a.L[b][0]=c)}
function qb(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Ec(a,b){var c=a.ma-=a.a;a.a=a.J=0;b&&(a.ma=0);return c}
h.Yd=function(){if(this.m.O){this.Kb>=this.tb&&Cc(this,!0);this.kb=0;this.qb=ra();if(this.sa){var a=this.qb-this.sa;a>this.fc&&(this.fa+=a,this.fa>this.qb&&(this.fa=this.qb))}try{do{for(var b,c=this.m.yb?1:this.ub,d=this.L.length-1;0<=d;d--){var e=this.L[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Cb(b)}catch(f){if("number"!=typeof f)throw f;}b=Ec(this,!0);this.kb+=b;this.ga+=b;sb(this,b);qb(this,b);this.jb-=b;if(0>=this.jb){this.jb+=this.ub;15<=++this.hc&&(this.za(),this.hc=0);break}}while(this.m.O)}catch(f){G(this);
this.l&&this.l.stop(ra(),Ac(this));Ya(this,f.stack||f.message);return}if(this.m.O){a=setTimeout;b=this.ic;this.sa=ra();c=this.fc;this.kb&&(c=Math.round(c*this.kb/this.ub));c-=this.sa-this.qb;if(d=this.sa-this.fa)this.Pa=Math.round(this.ga/(10*d))/100,864E5<=d&&(this.ua=0,Bc(this));if(0>c||this.Pa<this.Qa)-1E3>c&&(this.fa-=c),c=0;this.Kb+=this.kb;this.sa+=c;a(b,c)}}};
function pb(a){var b;a.m.error?(a.V(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.m.O)a.V(a.toString()+" busy");else{Bc(a);a.m.O=!0;a.m.Rb=!0;if(b=a.j.run)b.textContent="Halt";a.l&&a.l.start(a.fa,Ac(a));a.D||a.status("Started");setTimeout(a.ic,0)}}h.Cb=function(){return 0};function G(a){var b=!1;if(a.m.O){Ec(a);rb(a,a.ga);a.ga=0;a.m.O=!1;if(b=a.j.run)b.textContent="Run";a.l&&a.l.stop(ra(),Ac(a));b=!0;a.D||a.status("Stopped")}a.m.complete=void 0;return b}
function Fc(a){this.Fa=+a.model||1170;this.bc=a.addrReset||0;vc.call(this,a,6666667);this.vb=0;this.ec=255;1120>=this.Fa?(this.decode=Gc.bind(this),this.Oa=this.Fc,this.vb=8,this.ec=-1,this.kc=255,this.jc=0):(this.decode=Hc.bind(this),this.Oa=this.Gc,this.kc=~(1792|(1145>this.Fa?2048:0))&65535,this.jc=1145<=this.Fa?2048:0);Ic(this);this.Ua=0;this.I=null;this.Fb=[];this.m.complete=!1}A(Fc,vc);h=Fc.prototype;
h.Wb=function(){for(var a=192,b=0;b<this.Fb.length;b++){var c=this.Fb[b];0>c.Tb&&(c.Tb=a,a+=4)}};h.reset=function(){this.status("Model "+this.Fa);this.m.O&&G(this);Ic(this);yc(this);this.m.error=!1;this.parent.reset.call(this)};
function Ic(a){a.o=65536;a.f=32768;a.i=65535;a.s=32768;a.F=15;a.g=[0,0,0,0,0,0,0,a.bc,-1,-2,-3,-4,-5,-6,-7,-8];a.Ha=[0,0,0,0,0,0];a.qa=[0,0,0,0];a.w=0;a.Nc=[4,2,0,1];a.H=[[0,0,0,0,0,0,0,0,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,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.aa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0]];a.bb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.Pb=[0,0,0,0,0,0,0,0];a.Ob=0;a.u=0;a.C=a.G=0;a.c=a.b=a.Hb=0;a.va=-1;ob(a)}function ob(a){a.Z=0;a.wb=0;a.xb=0;a.ya=0;a.Y=0;a.nb=0;a.ab=255;a.Ra=0;a.fb=0;a.gb=0;a.Sa=262143;a.Va=0;a.A=0;a.I=null;a.h&&(cc(a),a.Lc=Sb(a.h))}function cc(a){a.Ra?(a.U=65536,a.Ca=a.ya&16?4186112:253952,a.S=a.Jc,a.X=a.Ud,a.pb=a.Te,Kb(a.h,a.ya&16?22:18)):(a.U=0,a.Ca=57344,a.S=a.Ic,a.X=a.Td,a.pb=a.Se,Kb(a.h,16))}
function bc(a,b){b&=-3073;if(a.Z!=b){b&57344&&!(a.Z&57344)&&(a.wb=a.A>>16&65535,a.xb=a.A&65535);a.Z=b;a.fb=(b&96)>>5;a.gb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ra!=c&&(a.Ra=c,cc(a))}}function Jc(a,b,c){a.bc=b;a.h.reset();ob(a);P(a,b);ec(a,0);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.m.O||pb(a)}else a.D?G(a)||a.D.b():!1===c&&G(a);!a.m.O&&a.v&&a.v.stop()}h.dc=function(){return 0};
h.save=function(){var a=new Q(this);a.set(0,[this.g,this.Ha,this.qa,this.bb,this.Pb,this.Y,this.Ob,this.nb,this.ab,dc(this),this.va,this.w,this.u,this.Z,this.wb,this.xb,this.ya,this.fb,this.gb,this.H,this.aa,this.Ra,this.Sa,this.Va,this.A]);a.set(1,[this.ua,this.na]);a.set(2,Rb(this.h));return a.data()};
h.restore=function(a){var b=a[1];this.ua=b[1];Bc(this,b[3]);a:{b=this.h;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.J){for(var f=0,g=Array(b.J),k=0;k<e.length-1;)for(var l=e[k++],m=e[k++];l--;)g[f++]=m;e=g}f=b.h[d];if(!f||!f.restore(e)){x("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function R(a){return a.o&65536?1:0}function Kc(a){return a.s&32768?8:0}function Lc(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function P(a,b){a.g[7]=b&65535}
function Yb(a,b,c,d){c={Tb:b,Ya:c,message:d||0,next:null};c.name=$a[b];a.Fb.push(c);return c}function ac(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.u|=1)}function L(a,b){if(b!=a.I){var c=a.I;if(!c||c.Ya<=b.Ya)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.Ya<=b.Ya){b.next=d;c.next=b;break}c=d}while(c)}}a.u|=1}function Mc(a){return a.u&64?(J(a,168,64,-6),!0):a.u&32?(J(a,4,32,-5),!0):a.u&16?(J(a,12,16,-7),!0):!1}
function dc(a){return a.F=a.F&63728|Kc(a)|(a.i&65535?0:4)|(a.f&32768?2:0)|R(a)}function ec(a,b){b&=a.kc;a.s=b<<12;a.i=~b&4;a.f=b<<14;a.o=b<<16;if((b^a.F)&a.jc)for(var c=a.Ha.length;0<=--c;){var d=a.g[c];a.g[c]=a.Ha[c];a.Ha[c]=d}a.w=b>>14&3;c=a.F>>14&3;a.w!=c&&(a.qa[c]=a.g[6],a.g[6]=a.qa[a.w]);a.F=b;a.u&=-3;a.u|=a.I?2:1}h.ca=function(a){this.s=this.i=a;this.f=0};h.Ia=function(a,b){this.s=this.i=this.o=a;this.f=b||0};function Nc(a,b){a.s=a.i=a.o=b;a.f=a.s^a.o>>1}
function Oc(a,b,c,d){a.s=a.i=a.o=b;a.f=(c^d)&(d^b)}function J(a,b,c,d){if(!a.Ua){0>a.va?a.va=dc(a):a.w||(d=-4);-4==d&&(a.u&256&&(d=-1),a.u|=256,a.Y|=4,a.g[6]=b=4);if(-1!=d){a.A=b|4143316992;a.w=0;var e=a.X(b|a.U),f=a.X(b+2&65535|a.U);ec(a,f&-12289|a.va>>2&12288);Pc(a,a.va);Pc(a,a.g[7]);P(a,e)}a.a-=5;a.u&=~(c|19);a.u|=129;a.va=-1;-1==d&&G(a);if(-4<=d)throw b;}}function Qc(a){var b=Rc(a),c=Rc(a);a.F&49152&&(c=c&-225|a.F&63712);P(a,b);ec(a,c);a.u&=-17}
function Sc(a,b){var c=b>>13&31;31>c&&(b=a.ya&32?a.bb[c]+(b&8190)&4194302:b&-3932161);return b}
function Tc(a,b,c){var d,e,f;if(!(c&a.Ra))return f=b&65535,57344<=f&&(f|=a.Ca),f;d=b>>13;a.ya&a.Nc[a.w]||(d&=7);e=a.H[a.w][d];f=(a.aa[a.w][d]<<6)+(b&8191)&a.Sa;3932160<=f&&(f=Sc(a,f));if(a.Ua)return f;f>=a.Lc&&f<a.Ca?(a.Y|=32,J(a,4,0,f)):f&1&&!(c&1)&&(a.Y|=64,J(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.H[a.w][d]=e;if(f!=(4194170&a.Sa)||a.w)a.fb=a.w,a.gb=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Z&57344||(g|=a.Z&4096|a.fb<<5|a.gb<<1,bc(a,a.Z&-61695|g&61694)),J(a,168,64,-2)),a.Z&61440||!(f<(4191360&a.Sa)||f>(4194239&a.Sa))||(a.Z|=4096,a.Z&512&&(a.u|=64)));return f}function Rc(a){var b=a.X(a.g[6]|a.U);a.g[6]=a.g[6]+2&65535;return b}function Pc(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.A=a.A&65535|(a.A&-65536)<<8|16121856;a.u&256||a.Oa(4,-2,c);a.pb(c,b)}
function Uc(a,b,c,d){var e,f,g=d&8?0:a.U;switch(b){case 0:return J(a,4,0,-3),0;case 1:return 6==c&&a.Oa(d,0,a.g[6]),a.a-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Oa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.X(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Oa(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.X(e)|g;a.a-=8;break;case 6:return e=a.X(Lc(a,2)),e=e+a.g[c]&65535,6==c&&a.Oa(d,0,
e),a.a-=6,e|g;case 7:return e=a.X(Lc(a,2)),e=e+a.g[c]&65535,e=a.X(e|a.U),a.a-=10,e|g}a.g[c]=a.g[c]+f&65535;a.A=a.A&65535|(a.A&-65536)<<8|(f<<3&248|c)<<16;return e}h.Fc=function(a,b,c){!this.w&&0>=b&&c<=this.ab&&(this.u|=32)};h.Gc=function(a,b,c){this.w||(65534<=c&&(c|=-65536),a&4&&c<=this.ab&&(c<=this.ab-32?J(this,4,0,-4):(this.Y|=8,this.u|=32)))};h.Ic=function(a,b,c){a=Uc(this,a,b,c);3932160<=a&&(a=Sc(this,a));return a};h.Jc=function(a,b,c){return Tc(this,Uc(this,a,b,c),c)};
h.Td=function(a){3932160<=a&&(a=Sc(this,a));return Ob(this.h,this.Va=a)};h.Ud=function(a){return Ob(this.h,this.Va=Tc(this,a,2))};h.Se=function(a,b){3932160<=a&&(a=Sc(this,a));Pb(this.h,this.Va=a,b)};h.Te=function(a,b){Pb(this.h,this.Va=Tc(this,a,4),b)};function Vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Uc(a,b,d,2),c&65536||61440!==(a.F&61440)&&(d&=65535),a.w=a.F>>12&3,c=a.X(d|c&a.U),a.w=a.F>>14&3):c=6!=d||(a.F>>2&12288)===(a.F&12288)?a.g[d]:a.qa[a.F>>12&3];return c}
function Wc(a,b,c,d){a.A=a.A&65535|1441792;var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Uc(a,b,e,4),c&65536||(e&=65535),a.w=a.F>>12&3,e=Tc(a,e|c&65536,4),a.w=a.F>>14&3,Pb(a.h,e,d)):6!=e||(a.F>>2&12288)===(a.F&12288)?a.g[e]=d:a.qa[a.F>>12&3]=d}function Xc(a,b){var c;b>>=6;var d=a.G=b&7;(b=a.C=(b&56)>>3)?c=Nb(a.h,a.S(b,d,3)):c=a.g[d+a.vb]&a.ec;return c}function Yc(a,b){b>>=6;var c=a.G=b&7;return(b=a.C=(b&56)>>3)?Ob(a.h,a.S(b,c,2)):a.g[c+a.vb]}
function Zc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Uc(a,b,c,8)}function $c(a,b){var c,d=a.b=b&7;(b=a.c=(b&56)>>3)?c=Nb(a.h,a.S(b,d,3)):c=a.g[d]&255;return c}function ad(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?Ob(a.h,a.S(b,c,2)):a.g[c]}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Hb=a.S(b,e,7),c=0>c?a.g[-c-1]&255:c,b=a.h,c=d.call(a,c,Nb(a.h,e)),b.f[(e&b.i)>>>b.b].Db(e&b.l,c,e),e&1&&a.a--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.S(b,e,6),Pb(a.h,e,d.call(a,0>c?a.g[-c-1]:c,Ob(a.h,e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function bd(a,b,c,d,e){var f=a.b=b&7;(b=a.c=(b&56)>>3)?(d=a.S(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),e=a.h,e.f[(d&e.i)>>>e.b].Db(d&e.l,c,d),d&1&&a.a--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function cd(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.S(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),Pb(a.h,e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}function U(a,b,c){c&&(P(a,a.g[7]+(b<<24>>23)),a.a-=2);a.a-=3}
h.Cb=function(a){this.m.complete=!0;var b=a?this.m.Rb?0:1:-1;this.m.Rb=!1;this.ma=this.a=a;this.u=this.u&-5|0;do{if(this.u){if(a=this.u&11)if(a=!1,this.u&2){var c=160,d=(this.nb&224)>>5,e=this.I&&this.I.Ya>d?this.I:null;e&&(c=e.Tb,d=e.Ya);d>(this.F&224)>>5?(this.u&8&&(Lc(this,2),this.u&=-9),J(this,c,0,-10),d=!0):d=!1;d&&(e&&ac(this,e),a=!0);this.I||this.nb||(this.u&=-3)}else this.u&1&&this.u++;if(a){if(this.u&4&&this.D.h(this.g[7],b)){G(this);break}if(0>b)break}if(this.u&112&&Mc(this)){if(this.u&
4&&this.D.h(this.g[7],b)){G(this);break}if(0>b)break}}this.u=this.u&15|this.F&16;a=this.A=this.g[7];e=this.X(a);this.g[7]=a+2&65535;this.decode(e)}while(0<this.a);return this.m.complete?this.ma-this.a:void 0===this.m.complete?0:-1};Ia(function(){for(var a=E(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Fc(d);D(d,c)}});function dd(a,b){var c=b+a;this.s=this.i=this.o=c;this.f=(a^c)&(b^c);return c&65535}
function ed(a,b){var c=b+a,d=c<<8;this.s=this.i=this.o=d;this.f=(a<<8^d)&(b<<8^d);return c&255}function fd(a,b){a=b<<1;Nc(this,a);return a&65535}function gd(a,b){a=b<<1;Nc(this,a<<8);return a&255}function hd(a,b){a=b&32768|b>>1|b<<16;Nc(this,a);return a&65535}function id(a,b){a=b&128|b>>1|b<<8;Nc(this,a<<8);return a&255}function jd(a,b){a=b&~a;this.ca(a);return a}function kd(a,b){a=b&~a;this.ca(a<<8);return a}function ld(a,b){a|=b;this.ca(a);return a}function md(a,b){a|=b;this.ca(a<<8);return a}
function nd(a,b){a=~b|65536;this.Ia(a);return a&65535}function od(a,b){a=~b|256;this.Ia(a<<8);return a&255}function pd(a,b){this.s=this.i=a=b-a;this.f=b&(b^a);return a&65535}function qd(a,b){a=b-a;var c=a<<8;b<<=8;this.s=this.i=c;this.f=b&(b^c);return a&255}function rd(a,b){this.s=this.i=a=b+a;this.f=a&(b^a);return a&65535}function sd(a,b){a=b+a;var c=a<<8;this.s=this.i=c;this.f=c&(b<<8^c);return a&255}function td(a,b){a=-b;this.Ia(a,a&b&32768);return a&65535}
function ud(a,b){a=-b;this.Ia(a<<8,(a&b&128)<<8);return a&255}function vd(a,b){a=b<<1|this.o>>16&1;Oc(this,a);return a&65535}function wd(a,b){a=b<<1|this.o>>16&1;Oc(this,a<<8);return a&255}function xd(a,b){a=(this.o&65536|b)>>1|b<<16;Oc(this,a);return a&65535}function yd(a,b){a=((this.o&65536)>>8|b)>>1|b<<8;Oc(this,a<<8);return a&255}function zd(a,b){var c=b-a;Pc(this,c,a,b);return c&65535}function Ad(a,b){var c=b-a;Pc(this,c<<8,a<<8,b<<8);return c&255}
function Bd(a,b){this.s=this.i=b&65280;this.f=this.o=0;return(b<<8|b>>8)&65535}function Cd(a,b){a^=b;this.ca(a);return a&65535}function Dd(a){U(this,a,Yc(this,a),dd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function ud(a,b){a=-b;this.Ia(a<<8,(a&b&128)<<8);return a&255}function vd(a,b){a=b<<1|this.o>>16&1;Nc(this,a);return a&65535}function wd(a,b){a=b<<1|this.o>>16&1;Nc(this,a<<8);return a&255}function xd(a,b){a=(this.o&65536|b)>>1|b<<16;Nc(this,a);return a&65535}function yd(a,b){a=((this.o&65536)>>8|b)>>1|b<<8;Nc(this,a<<8);return a&255}function zd(a,b){var c=b-a;Oc(this,c,a,b);return c&65535}function Ad(a,b){var c=b-a;Oc(this,c<<8,a<<8,b<<8);return c&255}
function Bd(a,b){this.s=this.i=b&65280;this.f=this.o=0;return(b<<8|b>>8)&65535}function Cd(a,b){a^=b;this.ca(a);return a&65535}function Dd(a){T(this,a,Yc(this,a),dd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function Ed(a){var b=ad(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.o=this.f=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.o=c<<17-b,c>>=b;else if(b)if(16<b)this.f=c,c=0;else{this.o=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.f=32768)}this.g[a]=c&65535;this.s=this.i=c;this.a-=(this.c?6:7)+b}
function Fd(a){var b=ad(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.o=this.f=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.o=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.o=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.f=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.s=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Gd(a){V(this,a,!S(this))}function Hd(a){V(this,a,S(this))}
function Id(a){U(this,a,Yc(this,a),jd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Jd(a){T(this,a,Xc(this,a),kd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Kd(a){U(this,a,Yc(this,a),ld);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Ld(a){T(this,a,Xc(this,a),md);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function Md(a){var b=Yc(this,a);a=ad(this,a);this.ca((0>b?this.g[-b-1]:b)&a);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Nd(a){var b=Xc(this,a);a=$c(this,a);this.ca(((0>b?this.g[-b-1]&255:b)&a)<<8);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Od(a){V(this,a,this.i&65535?0:4)}function Pd(a){V(this,a,!Lc(this)==!(this.f&32768))}function Qd(a){V(this,a,!!(this.i&65535)&&!Lc(this)==!(this.f&32768))}
function Rd(a){V(this,a,!S(this)&&!!(this.i&65535))}function Sd(a){V(this,a,(this.i&65535?0:4)||!Lc(this)!=!(this.f&32768))}function Td(a){V(this,a,S(this)||(this.i&65535?0:4))}function Ud(a){V(this,a,!Lc(this)!=!(this.f&32768))}function Vd(a){V(this,a,Lc(this))}function Wd(a){V(this,a,!!(this.i&65535))}function Xd(a){V(this,a,!Lc(this))}function Yd(){K(this,12,0,-9)}function Zd(a){V(this,a,!0)}function $d(a){V(this,a,!(this.f&32768))}function ae(a){V(this,a,this.f&32768?2:0)}
function W(a){a&1&&(this.o=0);a&2&&(this.f=0);a&4&&(this.i=1);a&8&&(this.s=0);this.a-=5}function be(a){var b=Yc(this,a);a=ad(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;Pc(this,c,a,b);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function ce(a){var b=Xc(this,a);a=$c(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);Pc(this,c,a,b);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}
function de(a){var b=ad(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.o=this.f=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.i=d>>16|d,this.s=d>>16):(this.f=32768,this.i=d>>15|d,this.s=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.a-=53}else this.i=this.s=0,this.f=32768,this.o=65536,this.a-=7}function ee(){K(this,24,0,-9);this.a-=20}
function fe(){this.F&49152?(this.X|=128,K(this,4,0,-8)):(this.v&&1120==this.Fa&&this.v.setData(this.g[0],!0),this.D?this.D.l():H(this));this.a-=7}function ge(){K(this,16,0,-9);this.a-=20}var he=[0,7,7,10,7,11,9,13];function ie(a){this.J=this.a;Q(this,Zc(this,a));this.a=this.J-he[this.c]}var je=[0,14,14,17,14,18,16,20];function ke(a){this.J=this.a;var b=Zc(this,a);a=a>>6&7;Qc(this,this.g[a]);this.g[a]=this.g[7];Q(this,b);this.a=this.J-je[this.c]}var le=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function Fd(a){var b=ad(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.o=this.f=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.o=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.o=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.f=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.s=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Gd(a){U(this,a,!R(this))}function Hd(a){U(this,a,R(this))}
function Id(a){T(this,a,Yc(this,a),jd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Jd(a){S(this,a,Xc(this,a),kd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Kd(a){T(this,a,Yc(this,a),ld);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Ld(a){S(this,a,Xc(this,a),md);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function Md(a){var b=Yc(this,a);a=ad(this,a);this.ca((0>b?this.g[-b-1]:b)&a);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Nd(a){var b=Xc(this,a);a=$c(this,a);this.ca(((0>b?this.g[-b-1]&255:b)&a)<<8);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Od(a){U(this,a,this.i&65535?0:4)}function Pd(a){U(this,a,!Kc(this)==!(this.f&32768))}function Qd(a){U(this,a,!!(this.i&65535)&&!Kc(this)==!(this.f&32768))}
function Rd(a){U(this,a,!R(this)&&!!(this.i&65535))}function Sd(a){U(this,a,(this.i&65535?0:4)||!Kc(this)!=!(this.f&32768))}function Td(a){U(this,a,R(this)||(this.i&65535?0:4))}function Ud(a){U(this,a,!Kc(this)!=!(this.f&32768))}function Vd(a){U(this,a,Kc(this))}function Wd(a){U(this,a,!!(this.i&65535))}function Xd(a){U(this,a,!Kc(this))}function Yd(){J(this,12,0,-9)}function Zd(a){U(this,a,!0)}function $d(a){U(this,a,!(this.f&32768))}function ae(a){U(this,a,this.f&32768?2:0)}
function V(a){a&1&&(this.o=0);a&2&&(this.f=0);a&4&&(this.i=1);a&8&&(this.s=0);this.a-=5}function be(a){var b=Yc(this,a);a=ad(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;Oc(this,c,a,b);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function ce(a){var b=Xc(this,a);a=$c(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);Oc(this,c,a,b);this.a-=this.c?4+(this.G&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}
function de(a){var b=ad(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.o=this.f=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.i=d>>16|d,this.s=d>>16):(this.f=32768,this.i=d>>15|d,this.s=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.a-=53}else this.i=this.s=0,this.f=32768,this.o=65536,this.a-=7}function ee(){J(this,24,0,-9);this.a-=20}
function fe(){this.F&49152?(this.Y|=128,J(this,4,0,-8)):(this.v&&1120==this.Fa&&this.v.setData(this.g[0],!0),this.D?this.D.l():G(this));this.a-=7}function ge(){J(this,16,0,-9);this.a-=20}var he=[0,7,7,10,7,11,9,13];function ie(a){this.J=this.a;P(this,Zc(this,a));this.a=this.J-he[this.c]}var je=[0,14,14,17,14,18,16,20];function ke(a){this.J=this.a;var b=Zc(this,a);a=a>>6&7;Pc(this,this.g[a]);this.g[a]=this.g[7];P(this,b);this.a=this.J-je[this.c]}var le=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function me(a){var b=Yc(this,a);this.J=this.a;cd(this,a,b,this.ca);this.a=this.J-le[(this.C?8:0)+this.c]+(7!=this.b||this.c?0:2)}function ne(a){var b=Xc(this,a);bd(this,a,b,65535,this.ca);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}var oe=[7,13,13,17,14,18,17,21];
function pe(a){var b=ad(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.s=b>>16;this.i=this.s|b;this.f=0;this.o=-32768>b||32767<b?65536:0;this.a-=23}function qe(){this.a-=5}function re(){this.F&49152||(this.h.reset(),ob(this),this.v&&this.v.setData(this.g[0],!0));this.a-=667}function se(a){if(a&8)K(this,8,0,-9);else{var b=Sc(this);a&=7;7==a?Q(this,b):(Q(this,this.g[a]),this.g[a]=b);this.a-=9}}
function te(){Rc(this);this.a-=13}function X(a){a&1&&(this.o=65536);a&2&&(this.f=32768);a&4&&(this.i=0);a&8&&(this.s=32768);this.a-=5}function ue(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)Q(this,this.g[7]-((a&63)<<1)),this.a+=1;this.a-=6}function ve(a){U(this,a,Yc(this,a),zd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function we(a){U(this,a,0,Bd);this.a-=this.c?9:3+(7==this.b?2:0)}function xe(){K(this,28,0,-9)}
function ye(){this.v&&(this.v.la=this.g[7],this.v.setData(this.g[0],!0));this.u|=8;Mc(this,-2);this.a-=3}function ze(a){U(this,a,this.g[(a>>6&7)+this.ub],Cd);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){K(this,8,0,-9)}function Hc(a){Ae[a>>12].call(this,a)}function Be(a){Ce[a>>6&3].call(this,a)}function De(a){Ee[a>>6&3].call(this,a)}function Fe(a){Ge[a>>6&3].call(this,a)}function He(a){Ie[a&15].call(this,a)}function Je(a){Ke[a&15].call(this,a)}function Le(a){Me[a>>6&3].call(this,a)}
function pe(a){var b=ad(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.s=b>>16;this.i=this.s|b;this.f=0;this.o=-32768>b||32767<b?65536:0;this.a-=23}function qe(){this.a-=5}function re(){this.F&49152||(this.h.reset(),ob(this),this.v&&this.v.setData(this.g[0],!0));this.a-=667}function se(a){if(a&8)J(this,8,0,-9);else{var b=Rc(this);a&=7;7==a?P(this,b):(P(this,this.g[a]),this.g[a]=b);this.a-=9}}
function te(){Qc(this);this.a-=13}function W(a){a&1&&(this.o=65536);a&2&&(this.f=32768);a&4&&(this.i=0);a&8&&(this.s=32768);this.a-=5}function ue(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)P(this,this.g[7]-((a&63)<<1)),this.a+=1;this.a-=6}function ve(a){T(this,a,Yc(this,a),zd);this.a-=this.c?9+(this.G&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function we(a){T(this,a,0,Bd);this.a-=this.c?9:3+(7==this.b?2:0)}function xe(){J(this,28,0,-9)}
function ye(){this.v&&(this.v.la=this.g[7],this.v.setData(this.g[0],!0));this.u|=8;Lc(this,-2);this.a-=3}function ze(a){T(this,a,this.g[(a>>6&7)+this.vb],Cd);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){J(this,8,0,-9)}function Gc(a){Ae[a>>12].call(this,a)}function Be(a){Ce[a>>6&3].call(this,a)}function De(a){Ee[a>>6&3].call(this,a)}function Fe(a){Ge[a>>6&3].call(this,a)}function He(a){Ie[a&15].call(this,a)}function Je(a){Ke[a&15].call(this,a)}function Le(a){Me[a>>6&3].call(this,a)}
function Ne(a){Oe[a>>6&3].call(this,a)}function Pe(a){Qe[a>>6&3].call(this,a)}
var Ae=[function(a){Re[a>>8&15].call(this,a)},me,be,Md,Id,Kd,Dd,Y,function(a){Se[a>>8&15].call(this,a)},ne,ce,Nd,Jd,Ld,ve,Y],Re=[function(a){Te[a>>4&15].call(this,a)},Zd,Wd,Od,Pd,Ud,Qd,Sd,ke,ke,Be,De,Fe,Y,Y,Y],Ce=[function(a){cd(this,a,0,this.Ia);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,nd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,rd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,pd);this.a-=this.c?9:3+(7==this.b?2:0)}],Ee=[function(a){U(this,a,0,td);
this.a-=this.c?11:6},function(a){U(this,a,S(this)?1:0,dd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,S(this)?1:0,zd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=ad(this,a);this.Ia(a);this.a-=this.c?4:3+(7==this.b?2:0)}],Ge=[function(a){U(this,a,0,xd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,vd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,hd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,fd);this.a-=this.c?9:3+(7==this.b?2:0)}],Te=[function(a){Ue[a&
15].call(this,a)},Y,Y,Y,ie,ie,ie,ie,se,Y,He,Je,we,we,we,we],Ue=[fe,ye,te,Yd,ge,re,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],Ie=[qe,function(){this.o=0;this.a-=5},function(){this.f=0;this.a-=5},W,function(){this.i=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],Ke=[qe,function(){this.o=65536;this.a-=5},function(){this.f=32768;this.a-=5},X,function(){this.i=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],Se=[Xd,Vd,Rd,Td,$d,ae,Gd,Hd,ee,xe,Le,Ne,Pe,Y,Y,Y],Me=[function(a){bd(this,a,0,
255,this.Ia);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,od);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,sd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,qd);this.a-=this.c?9:3+(7==this.b?2:0)}],Oe=[function(a){T(this,a,0,ud);this.a-=this.c?11:6},function(a){T(this,a,S(this)?1:0,ed);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,S(this)?1:0,Ad);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=$c(this,a);this.Ia(a<<8);this.a-=this.c?4:3+(7==this.b?
2:0)}],Qe=[function(a){T(this,a,0,yd);this.a-=this.c?9+(this.Hb&1):3+(7==this.b?2:0)},function(a){T(this,a,0,wd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,id);this.a-=this.c?9+(this.Hb&1):3+(7==this.b?2:0)},function(a){T(this,a,0,gd);this.a-=this.c?9:3+(7==this.b?2:0)}];function Ic(a){Ve[a>>12].call(this,a)}
var Ve=[function(a){We[a>>8&15].call(this,a)},me,be,Md,Id,Kd,Dd,function(a){Xe[a>>8&15].call(this,a)},function(a){Ye[a>>8&15].call(this,a)},ne,ce,Nd,Jd,Ld,ve,Y],We=[function(a){Ze[a>>4&15].call(this,a)},Zd,Wd,Od,Pd,Ud,Qd,Sd,ke,ke,Be,De,Fe,function(a){$e[a>>6&3].call(this,a)},Y,Y],$e=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.aa(a|this.U);Q(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.a-=8},function(a){a=Vc(this,a,0);this.ca(a);Qc(this,a);this.a-=11},function(a){var b=Sc(this);this.J=
this.a;this.ca(b);Wc(this,a,0,b);this.a=this.J-oe[this.c]},function(a){cd(this,a,Lc(this)?65535:0,this.ca);this.a-=this.c?9:3+(7==this.b?2:0)}],Ze=[function(a){af[a&15].call(this,a)},Y,Y,Y,ie,ie,ie,ie,se,function(a){a&8?(this.F&49152||(this.F=this.F&-225|(a&7)<<5,this.u|=1,this.u&=-3),this.a-=5):K(this,8,0,-9)},He,Je,we,we,we,we],af=[fe,ye,function(){Rc(this);this.u|=this.F&16;this.a-=13},Yd,ge,re,te,function(){K(this,8,0,-9)},Y,Y,Y,Y,Y,Y,Y,Y],Xe=[pe,pe,de,de,Ed,Ed,Fd,Fd,ze,ze,Y,Y,Y,Y,ue,ue],Ye=[Xd,
Vd,Rd,Td,$d,ae,Gd,Hd,ee,xe,Le,Ne,Pe,function(a){bf[a>>6&3].call(this,a)},Y,Y],bf=[Y,function(a){a=Vc(this,a,65536);this.ca(a);Qc(this,a);this.a-=11},function(a){var b=Sc(this);this.J=this.a;this.ca(b);Wc(this,a,65536,b);this.a=this.J-oe[this.c]},Y];
function cf(a){z.call(this,"ROM",a,cf,128);this.da=this.c=null;this.i=a.addr;this.b=a.size;this.o=!1;this.f=a.alias;this.l=a.file;this.s=u(this.l);if(this.l){a=this.l;var b=ka(this.s);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.l+"&format=bytes&decimal=true");var c=this;w(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.l=null):(Ta(c.Ba,a,b),(a=sa(a,b))?(c.c=a.M,c.da=a.da):c.l=null);df(c)})}}B(cf);h=cf.prototype;
var Ae=[function(a){Re[a>>8&15].call(this,a)},me,be,Md,Id,Kd,Dd,Y,function(a){Se[a>>8&15].call(this,a)},ne,ce,Nd,Jd,Ld,ve,Y],Re=[function(a){Te[a>>4&15].call(this,a)},Zd,Wd,Od,Pd,Ud,Qd,Sd,ke,ke,Be,De,Fe,Y,Y,Y],Ce=[function(a){cd(this,a,0,this.Ia);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,nd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,rd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,pd);this.a-=this.c?9:3+(7==this.b?2:0)}],Ee=[function(a){T(this,a,0,td);
this.a-=this.c?11:6},function(a){T(this,a,R(this)?1:0,dd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,R(this)?1:0,zd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=ad(this,a);this.Ia(a);this.a-=this.c?4:3+(7==this.b?2:0)}],Ge=[function(a){T(this,a,0,xd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,vd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,hd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,fd);this.a-=this.c?9:3+(7==this.b?2:0)}],Te=[function(a){Ue[a&
15].call(this,a)},Y,Y,Y,ie,ie,ie,ie,se,Y,He,Je,we,we,we,we],Ue=[fe,ye,te,Yd,ge,re,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],Ie=[qe,function(){this.o=0;this.a-=5},function(){this.f=0;this.a-=5},V,function(){this.i=1;this.a-=5},V,V,V,function(){this.s=0;this.a-=5},V,V,V,V,V,V,V],Ke=[qe,function(){this.o=65536;this.a-=5},function(){this.f=32768;this.a-=5},W,function(){this.i=0;this.a-=5},W,W,W,function(){this.s=32768;this.a-=5},W,W,W,W,W,W,W],Se=[Xd,Vd,Rd,Td,$d,ae,Gd,Hd,ee,xe,Le,Ne,Pe,Y,Y,Y],Me=[function(a){bd(this,a,0,
255,this.Ia);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,od);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,sd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,qd);this.a-=this.c?9:3+(7==this.b?2:0)}],Oe=[function(a){S(this,a,0,ud);this.a-=this.c?11:6},function(a){S(this,a,R(this)?1:0,ed);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,R(this)?1:0,Ad);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=$c(this,a);this.Ia(a<<8);this.a-=this.c?4:3+(7==this.b?
2:0)}],Qe=[function(a){S(this,a,0,yd);this.a-=this.c?9+(this.Hb&1):3+(7==this.b?2:0)},function(a){S(this,a,0,wd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,id);this.a-=this.c?9+(this.Hb&1):3+(7==this.b?2:0)},function(a){S(this,a,0,gd);this.a-=this.c?9:3+(7==this.b?2:0)}];function Hc(a){Ve[a>>12].call(this,a)}
var Ve=[function(a){We[a>>8&15].call(this,a)},me,be,Md,Id,Kd,Dd,function(a){Xe[a>>8&15].call(this,a)},function(a){Ye[a>>8&15].call(this,a)},ne,ce,Nd,Jd,Ld,ve,Y],We=[function(a){Ze[a>>4&15].call(this,a)},Zd,Wd,Od,Pd,Ud,Qd,Sd,ke,ke,Be,De,Fe,function(a){$e[a>>6&3].call(this,a)},Y,Y],$e=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.X(a|this.U);P(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.a-=8},function(a){a=Vc(this,a,0);this.ca(a);Pc(this,a);this.a-=11},function(a){var b=Rc(this);this.J=
this.a;this.ca(b);Wc(this,a,0,b);this.a=this.J-oe[this.c]},function(a){cd(this,a,Kc(this)?65535:0,this.ca);this.a-=this.c?9:3+(7==this.b?2:0)}],Ze=[function(a){af[a&15].call(this,a)},Y,Y,Y,ie,ie,ie,ie,se,function(a){a&8?(this.F&49152||(this.F=this.F&-225|(a&7)<<5,this.u|=1,this.u&=-3),this.a-=5):J(this,8,0,-9)},He,Je,we,we,we,we],af=[fe,ye,function(){Qc(this);this.u|=this.F&16;this.a-=13},Yd,ge,re,te,function(){J(this,8,0,-9)},Y,Y,Y,Y,Y,Y,Y,Y],Xe=[pe,pe,de,de,Ed,Ed,Fd,Fd,ze,ze,Y,Y,Y,Y,ue,ue],Ye=[Xd,
Vd,Rd,Td,$d,ae,Gd,Hd,ee,xe,Le,Ne,Pe,function(a){bf[a>>6&3].call(this,a)},Y,Y],bf=[Y,function(a){a=Vc(this,a,65536);this.ca(a);Pc(this,a);this.a-=11},function(a){var b=Rc(this);this.J=this.a;this.ca(b);Wc(this,a,65536,b);this.a=this.J-oe[this.c]},Y];
function cf(a){y.call(this,"ROM",a,cf,128);this.da=this.c=null;this.i=a.addr;this.b=a.size;this.o=!1;this.f=a.alias;this.l=a.file;this.s=r(this.l);if(this.l){a=this.l;var b=la(this.s);"json"!=b&&"hex"!=b&&(a=ua()+"/api/v1/dump?file="+this.l+"&format=bytes&decimal=true");var c=this;u(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.l=null):(Ta(c.Ba,a,b),(a=ta(a,b))?(c.c=a.M,c.da=a.da):c.l=null);df(c)})}}A(cf);h=cf.prototype;
h.ia=function(a,b,c,d){this.h=b;this.a=c;this.D=d;df(this)};h.ka=function(){this.da&&(this.D&&this.D.a(this.id,this.i,this.b,this.da),delete this.da);return!0};h.ja=function(){return!0};
function df(a){if(!Xa(a)){if(a.l){if(!a.c||!a.h)return;a.b||(a.b=a.c.length);if(a.c.length!=a.b)Ya(a,"ROM size ("+r(a.c.length,8,!0)+") does not match specified size ("+r(a.b,8,!0)+")");else{var b;a:{b=a.i;a.status(a.b+"-byte ROM at "+ja(b));if(57344<=b&&b<57344+Cb){var c={};b=(c[b]=[cf.prototype.Jd,cf.prototype.He,null,null,null,a.b>>1],c);if(fb(a.h,a,b)){b=a.o=!0;break a}}else if(Ib(a.h,b,a.b,mc)){for(c=0;c<a.c.length;c++)Rb(a.h,b+c,a.c[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?b.push(a.f):
null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.h,g=d.b,k=[],l=d.i>>>f.b;0<g&&l<f.h.length;)k.push(f.h[l++]),g-=f.c;f=d.h;d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.h.length;){l=k[g++];if(!l)break;f.h[e++]=l;d-=f.c}}a.o||delete a.c}}}G(a)}}h.Jd=function(a){return this.c[a-this.i]};h.He=function(){};Ia(function(){for(var a=F(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new cf(d);E(d,c)}});
function ef(a){z.call(this,"RAM",a,ef);this.da=this.c=null;this.l=a.addr;this.f=a.size;this.pa=a.load;this.oa=a.exec;this.i=!1;this.b=a.file;this.o=u(this.b);if(this.b){a=this.b;var b=ka(this.o);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;w(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(Ta(c.Ba,a,b),(a=sa(a,b))?(c.c=a.M,c.da=a.da,null==c.pa&&(c.pa=a.pa),null==c.oa&&(c.oa=a.oa)):c.b=null);ff(c)})}}
B(ef);ef.prototype.ia=function(a,b,c,d){this.h=b;this.a=c;this.D=d;ff(this)};ef.prototype.ka=function(){this.da&&(this.D&&this.D.a(this.id,this.l,this.f,this.da),delete this.da);return!0};ef.prototype.ja=function(){return!0};function ff(a){if(a.h&&(!a.i&&a.f&&(Ib(a.h,a.l,a.f,Ub)?a.i=!0:a.f=0),!Xa(a))){if(!a.i)x("No RAM allocated");else if(a.b){if(!a.c||!a.h)return;gf(a,a.c,a.pa,a.oa,a.l)}G(a)}}
function df(a){if(!Xa(a)){if(a.l){if(!a.c||!a.h)return;a.b||(a.b=a.c.length);if(a.c.length!=a.b)Ya(a,"ROM size ("+ka(a.c.length,8,!0)+") does not match specified size ("+ka(a.b,8,!0)+")");else{var b;a:{b=a.i;a.status(a.b+"-byte ROM at "+ja(b));if(57344<=b&&b<57344+Bb){var c={};b=(c[b]=[cf.prototype.Hd,cf.prototype.Ge,null,null,null,a.b>>1],c);if(fb(a.h,a,b)){b=a.o=!0;break a}}else if(Hb(a.h,b,a.b,lc)){for(c=0;c<a.c.length;c++)Qb(a.h,b+c,a.c[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?b.push(a.f):
null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.h,g=d.b,k=[],l=d.i>>>f.b;0<g&&l<f.h.length;)k.push(f.h[l++]),g-=f.c;f=d.h;d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.h.length;){l=k[g++];if(!l)break;f.h[e++]=l;d-=f.c}}a.o||delete a.c}}}F(a)}}h.Hd=function(a){return this.c[a-this.i]};h.Ge=function(){};Ia(function(){for(var a=E(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new cf(d);D(d,c)}});
function ef(a){y.call(this,"RAM",a,ef);this.da=this.c=null;this.l=a.addr;this.f=a.size;this.pa=a.load;this.oa=a.exec;this.i=!1;this.b=a.file;this.o=r(this.b);if(this.b){a=this.b;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=ua()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;u(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(Ta(c.Ba,a,b),(a=ta(a,b))?(c.c=a.M,c.da=a.da,null==c.pa&&(c.pa=a.pa),null==c.oa&&(c.oa=a.oa)):c.b=null);ff(c)})}}
A(ef);ef.prototype.ia=function(a,b,c,d){this.h=b;this.a=c;this.D=d;ff(this)};ef.prototype.ka=function(){this.da&&(this.D&&this.D.a(this.id,this.l,this.f,this.da),delete this.da);return!0};ef.prototype.ja=function(){return!0};function ff(a){if(a.h&&(!a.i&&a.f&&(Hb(a.h,a.l,a.f,Tb)?a.i=!0:a.f=0),!Xa(a))){if(!a.i)x("No RAM allocated");else if(a.b){if(!a.c||!a.h)return;gf(a,a.c,a.pa,a.oa,a.l)}F(a)}}
ef.prototype.reset=function(){if(this.i){for(var a=this.h,b=this.l,c=this.f,d=b&a.l,b=b>>>a.b;0<c&&b<a.h.length;){var e=a.h[b],f=c,g=0,k,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Za&&e.j)for(k=d;f--&&k<e.j.length;k++)e.j[k]=g;else for(k=d;f--&&k<e.size;k++)e.Ub(d,g,e.Ja+d);c-=a.c;b++;d=0}this.c&&gf(this,this.c,this.pa,this.oa,this.l,!0)}};
function gf(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),v=l,y=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(y)for(;y--;)Rb(a.h,t++,b[v++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)Rb(a.h,c+e,b[e]);k=!0}if(k){if(null==d||g)H(a.a),f=!1;null!=d&&Kc(a.a,d,f)}return k}Ia(function(){for(var a=F(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ef(d);E(d,c)}});function hf(a){z.call(this,"Keyboard",a,hf,1024);G(this)}B(hf);hf.prototype.ba=function(){return!1};hf.prototype.ia=function(a,b,c,d){this.l=a;this.a=c;this.D=d};Ia(function(){for(var a=F(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new hf(d);E(d,c)}});
function Z(a){this.A=a.adapter;this.L=a.baudReceive||9600;this.ma=a.baudTransmit||9600;this.sa=a.upperCase;this.f=this.o=null;this.fa=a.tabSize;this.S=a.charBOL;this.s=0;this.w=!0;z.call(this,"SerialPort",a,Z,262144);var b=a.binding;if("console"==b)this.o="";else{var c;a=jf;b&&(void 0===c&&(c="Panel"),(c=Va(c,this.id))&&(b=c.j[b])&&this.ba(null,a,b))}this.i=this.G=this.I=null;this.exports={connect:this.gc,receiveData:this.Ab,receiveStatus:this.Yd}}B(Z);var jf="buffer";h=Z.prototype;
h.ba=function(a,b,c){var d=this;switch(b){case jf:return this.j[b]=this.f=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Xb:n.vc:46==c?b=n.Xb:a.ctrlKey&&c>=n.Vb&&c<=n.Cc&&(b=c-(n.Vb-n.sc));b&&(a.preventDefault&&a.preventDefault(),d.Ab(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==n.uc&&(b=n.tc);d.Ab(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();a.preventDefault&&
a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ab(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;var e=this;this.U=$b(this.a,this.A?-1:48,4,262144);this.ga=Xb(this.a,function(){var a;a=-1;e.v.length&&(a=e.v.shift()&255,e.sa&&97<=a&&122>a&&(a-=32),Yb(e.a,e.ga,1E3/Math.round(e.L/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&M(c,e.U))});this.J=$b(this.a,this.A?-1:52,4,262144);this.na=Xb(this.a,function(){e.c|=128;e.c&64&&M(c,e.J)});fb(b,this,kf,this.A?64832+8*(this.A-1)-65392:0);hb(b,this.reset.bind(this));G(this)};
h.gc=function(a){if(!this.i){var b=yc(this.l,"connection");if(b){var c=b.split("->");if(2==c.length){var d=oa(c[0]);if(d!=this.Aa)return;c=oa(c[1]);if(this.i=Ua(c)){var e=this.i.exports;if(e){var f=e.connect;f&&f.call(this.i,this.w);if(this.G=e.receiveData){this.w=a;this.I=e.receiveStatus;this.status(this.Ba+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.ka=function(a,b){if(!b)if(this.gc(this.w),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){lf(this)};h.save=function(){var a=new R(this);a.set(0,[]);return a.data()};h.restore=function(){return lf(this)};function lf(a){a.C=0;a.b=8192;a.c=128;a.v=[];return!0}
h.Ab=function(a){if("number"==typeof a)this.v.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.v.push(b)}else this.v=this.v.concat(a);Yb(this.a,this.ga,1E3/Math.round(this.L/10));return!0};h.Yd=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&M(this.a,this.U))};h.wd=function(){var a=this.b&65534;this.b&=-32769;return a};
h.ue=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.I&&b&6&&(b=0,b=this.w?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.I.call(this.i,b))};h.vd=function(){this.b&=-129;return this.C};h.te=function(){};h.Xd=function(){return this.c};h.Ve=function(a){this.c&128&&(a&64?M(this.a,this.J):bc(this.a,this.J));this.c=this.c&-70|a&69};h.Wd=function(){return 0};
h.Ue=function(a){a&=255;this.G&&this.G.call(this.i,a);a&=127;if(this.f)if(13==a)this.s=0;else if(8==a)this.f.value=this.f.value.slice(0,-1),0<this.s&&this.s--;else{if(a){var b;b=(b=13!=a&&10!=a?pa[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.fa||8,c=a-this.s%a,this.fa&&(b=" ".slice(0,c)));this.S&&!this.s&&c&&(b=String.fromCharCode(this.S)+b);this.f.value+=b;this.f.scrollTop=this.f.scrollHeight;this.s+=c}}else if(null!=
this.o){if(10==a||1024<=this.o.length)this.V(this.o),this.o="";10!=a&&(this.o+=String.fromCharCode(a))}Yb(this.a,this.na,1E3/Math.round(this.ma/10));this.c&=-129};var mf={},kf=(mf[65392]=[null,null,Z.prototype.wd,Z.prototype.ue,"RCSR"],mf[65394]=[null,null,Z.prototype.vd,Z.prototype.te,"RBUF"],mf[65396]=[null,null,Z.prototype.Xd,Z.prototype.Ve,"XCSR"],mf[65398]=[null,null,Z.prototype.Wd,Z.prototype.Ue,"XBUF"],mf);
Ia(function(){for(var a=F(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Z(d);E(d,c)}});function gc(a){z.call(this,"PC11",a,gc);this.C=nf(this,a.autoMount);this.c=0;this.S=a.baudReceive||3600;this.v=this.w=this.b=0;this.s=[];this.o=of;this.f=pf;this.A=this.i="";this.M=this.pa=this.oa=null;this.J=-1;this.G=!Ba("Mobi")&&window&&"FileReader"in window}B(gc);var of="",pf=0;
function nf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=gc.prototype;
function gf(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),w=l,v=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(v)for(;v--;)Qb(a.h,t++,b[w++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)Qb(a.h,c+e,b[e]);k=!0}if(k){if(null==d||g)G(a.a),f=!1;null!=d&&Jc(a.a,d,f)}return k}Ia(function(){for(var a=E(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new ef(d);D(d,c)}});function hf(a){y.call(this,"Keyboard",a,hf,1024);F(this)}A(hf);hf.prototype.ba=function(){return!1};hf.prototype.ia=function(a,b,c,d){this.l=a;this.a=c;this.D=d};Ia(function(){for(var a=E(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new hf(d);D(d,c)}});
function Z(a){this.A=a.adapter;this.L=a.baudReceive||9600;this.ma=a.baudTransmit||9600;this.sa=a.upperCase;this.f=this.o=null;this.fa=a.tabSize;this.S=a.charBOL;this.s=0;this.w=!0;y.call(this,"SerialPort",a,Z,262144);var b=a.binding;if("console"==b)this.o="";else{var c;a=jf;b&&(void 0===c&&(c="Panel"),(c=Va(c,this.id))&&(b=c.j[b])&&this.ba(null,a,b))}this.i=this.G=this.I=null;this.exports={connect:this.gc,receiveData:this.Bb,receiveStatus:this.Xd}}A(Z);var jf="buffer";h=Z.prototype;
h.ba=function(a,b,c){var d=this;switch(b){case jf:return this.j[b]=this.f=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Xb:n.tc:46==c?b=n.Xb:a.ctrlKey&&c>=n.Vb&&c<=n.Ac&&(b=c-(n.Vb-n.qc));b&&(a.preventDefault&&a.preventDefault(),d.Bb(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==n.sc&&(b=n.rc);d.Bb(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();a.preventDefault&&
a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Bb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;var e=this;this.U=Yb(this.a,this.A?-1:48,4,262144);this.ga=Wb(this.a,function(){var a;a=-1;e.v.length&&(a=e.v.shift()&255,e.sa&&97<=a&&122>a&&(a-=32),Xb(e.a,e.ga,1E3/Math.round(e.L/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&L(c,e.U))});this.J=Yb(this.a,this.A?-1:52,4,262144);this.na=Wb(this.a,function(){e.c|=128;e.c&64&&L(c,e.J)});fb(b,this,kf,this.A?64832+8*(this.A-1)-65392:0);hb(b,this.reset.bind(this));F(this)};
h.gc=function(a){if(!this.i){var b=xc(this.l,"connection");if(b){var c=b.split("->");if(2==c.length){var d=pa(c[0]);if(d!=this.Aa)return;c=pa(c[1]);if(this.i=Ua(c)){var e=this.i.exports;if(e){var f=e.connect;f&&f.call(this.i,this.w);if(this.G=e.receiveData){this.w=a;this.I=e.receiveStatus;this.status(this.Ba+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.ka=function(a,b){if(!b)if(this.gc(this.w),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){lf(this)};h.save=function(){var a=new Q(this);a.set(0,[]);return a.data()};h.restore=function(){return lf(this)};function lf(a){a.C=0;a.b=8192;a.c=128;a.v=[];return!0}
h.Bb=function(a){if("number"==typeof a)this.v.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.v.push(b)}else this.v=this.v.concat(a);Xb(this.a,this.ga,1E3/Math.round(this.L/10));return!0};h.Xd=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&L(this.a,this.U))};h.ud=function(){var a=this.b&65534;this.b&=-32769;return a};
h.te=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.I&&b&6&&(b=0,b=this.w?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.I.call(this.i,b))};h.td=function(){this.b&=-129;return this.C};h.se=function(){};h.Wd=function(){return this.c};h.Ve=function(a){this.c&128&&(a&64?L(this.a,this.J):ac(this.a,this.J));this.c=this.c&-70|a&69};h.Vd=function(){return 0};
h.Ue=function(a){a&=255;this.G&&this.G.call(this.i,a);a&=127;if(this.f)if(13==a)this.s=0;else if(8==a)this.f.value=this.f.value.slice(0,-1),0<this.s&&this.s--;else{if(a){var b;b=(b=13!=a&&10!=a?qa[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.fa||8,c=a-this.s%a,this.fa&&(b=" ".slice(0,c)));this.S&&!this.s&&c&&(b=String.fromCharCode(this.S)+b);this.f.value+=b;this.f.scrollTop=this.f.scrollHeight;this.s+=c}}else if(null!=
this.o){if(10==a||1024<=this.o.length)this.V(this.o),this.o="";10!=a&&(this.o+=String.fromCharCode(a))}Xb(this.a,this.na,1E3/Math.round(this.ma/10));this.c&=-129};var mf={},kf=(mf[65392]=[null,null,Z.prototype.ud,Z.prototype.te,"RCSR"],mf[65394]=[null,null,Z.prototype.td,Z.prototype.se,"RBUF"],mf[65396]=[null,null,Z.prototype.Wd,Z.prototype.Ve,"XCSR"],mf[65398]=[null,null,Z.prototype.Vd,Z.prototype.Ue,"XBUF"],mf);
Ia(function(){for(var a=E(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Z(d);D(d,c)}});function fc(a){y.call(this,"PC11",a,fc);this.C=nf(this,a.autoMount);this.c=0;this.S=a.baudReceive||3600;this.v=this.w=this.b=0;this.s=[];this.o=of;this.f=pf;this.A=this.i="";this.M=this.pa=this.oa=null;this.J=-1;this.G=!Ba("Mobi")&&window&&"FileReader"in window}A(fc);var of="",pf=0;
function nf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=fc.prototype;
h.ba=function(a,b,c){var d=this,e=pf;switch(b){case "listTapes":return this.j[b]=c,c.onchange=function(){var a=d.j.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){x("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.j[b]=c,!0;case "readTape":e=2;case "loadTape":return e||(e=1),this.j[b]=c,c.onclick=function(){var a=
d.j.listTapes;a&&qf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.G){c.parentNode.removeChild(c);break}this.j[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;qf(d,u(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.j[b]=c,!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;this.L=rf(a);var e=this;if(a=nf(this,yc(this.l,"autoMount")))for(var f in a)"PTR"==f&&(this.C[f]=a[f]);this.I=$b(this.a,56,4,4096);this.U=Xb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.v<e.s.length&&(e.w=e.s[e.v++]&255,sf(e,e.v/e.s.length*100),e.b|=128,e.b&=-2049,e.b&64&&M(e.a,e.I))});fb(b,this,tf);hb(b,this.reset.bind(this));uf(this,"None",of,!0);this.G&&uf(this,"Local Tape","?");uf(this,"Remote Tape","??");vf(this)||G(this)};
h.ka=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function vf(a){a.c=0;var b=a.C.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=u(c,!0)}c&&b?wf(a,b,c,1,!0):xf(a)}return!!a.c}
function qf(a,b,c,d,e){if(c)if("?"==c)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"');a.o="??"}else a.o=c;wf(a,b,c,d,!1,e)}else yf(a,!1)}function wf(a,b,c,d,e,f){var g=-1;if(a.i.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,yf(a,!0),a.m.Ka?a.B("PC11 busy"):(e&&a.c++,zf(a,b,c,d,f)?g++:a.m.Ka=!0);g&&Af(a,a.A,a.i,a.f,a.M,a.pa,a.oa)}
function zf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Af(a,b,c,d,e),a.o="?");xf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=ka(c),f="json"==e||"gz"==e?encodeURI(c):ta()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!w(f,null,!0,function(e,f,g){var k=0>g&&a.l&&!a.l.m.R;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Ta(a.Ba,e,f),(e=sa(e,f))&&Af(a,b,c,d,e.M,e.pa,e.oa));
a.m.Ka=!1;a.c&&(a.c--,a.c||G(a));xf(a)})}function uf(a,b,c,d){if((a=a.j.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function xf(a){var b=a.j.listTapes;if(b&&b.options){a=a.o||a.i;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function sf(a,b){b|=0;if(b!==a.J){var c=a.j.readProgress;c&&(c=(c=F(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.J=b}}function Af(a,b,c,d,e,f,g){a.A=b;a.i=c;a.f=d;a.M=e;a.pa=f;a.oa=g;2==d?a.L&&gf(a.L,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.v=0,a.s=e,a.status('Loaded tape "'+b+'"'),sf(a,0))}function yf(a,b){if(a.i||!1===b)a.A="",a.i="",b||(a.f&&a.status(1==a.f?"tape detached":"tape unloaded"),a.o=of,a.f=pf,xf(a))}h.save=function(){return(new R(this)).data()};
h.restore=function(){return!0};h.pd=function(){return this.b&65534};h.ne=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&M(this.a,this.I)):(this.b&=-129,this.b|=2048,this.w=0,Yb(this.a,this.U,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.od=function(){this.b&=-129;this.b|=2048;return this.w};h.me=function(){};var Bf={},tf=(Bf[65384]=[null,null,gc.prototype.pd,gc.prototype.ne,"PRS"],Bf[65386]=[null,null,gc.prototype.od,gc.prototype.me,"PRB"],Bf);
function Cf(a,b,c){z.call(this,"Disk",{id:a.Ba+".disk"+r(++Df,4)},Cf,8192);this.controller=a;this.l=a.l;this.D=a.D;this.f=b;this.ra=b.name;this.yb=b.yb;Ef(this,c,b.K,b.P,b.N,b.W);G(this)}var Df=0;B(Cf);h=Cf.prototype;h.ia=function(a,b,c,d){this.D=d};
d.j.listTapes;a&&qf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.G){c.parentNode.removeChild(c);break}this.j[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;qf(d,r(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.j[b]=c,!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;this.L=rf(a);var e=this;if(a=nf(this,xc(this.l,"autoMount")))for(var f in a)"PTR"==f&&(this.C[f]=a[f]);this.I=Yb(this.a,56,4,4096);this.U=Wb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.v<e.s.length&&(e.w=e.s[e.v++]&255,sf(e,e.v/e.s.length*100),e.b|=128,e.b&=-2049,e.b&64&&L(e.a,e.I))});fb(b,this,tf);hb(b,this.reset.bind(this));uf(this,"None",of,!0);this.G&&uf(this,"Local Tape","?");uf(this,"Remote Tape","??");vf(this)||F(this)};
h.ka=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function vf(a){a.c=0;var b=a.C.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=r(c,!0)}c&&b?wf(a,b,c,1,!0):xf(a)}return!!a.c}
function qf(a,b,c,d,e){if(c)if("?"==c)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=r(c);a.status("Attempting to load "+c+' as "'+b+'"');a.o="??"}else a.o=c;wf(a,b,c,d,!1,e)}else yf(a,!1)}function wf(a,b,c,d,e,f){var g=-1;if(a.i.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,yf(a,!0),a.m.Ka?a.B("PC11 busy"):(e&&a.c++,zf(a,b,c,d,f)?g++:a.m.Ka=!0);g&&Af(a,a.A,a.i,a.f,a.M,a.pa,a.oa)}
function zf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Af(a,b,c,d,e),a.o="?");xf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):ua()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!u(f,null,!0,function(e,f,g){var k=0>g&&a.l&&!a.l.m.R;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Ta(a.Ba,e,f),(e=ta(e,f))&&Af(a,b,c,d,e.M,e.pa,e.oa));
a.m.Ka=!1;a.c&&(a.c--,a.c||F(a));xf(a)})}function uf(a,b,c,d){if((a=a.j.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function xf(a){var b=a.j.listTapes;if(b&&b.options){a=a.o||a.i;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function sf(a,b){b|=0;if(b!==a.J){var c=a.j.readProgress;c&&(c=(c=E(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.J=b}}function Af(a,b,c,d,e,f,g){a.A=b;a.i=c;a.f=d;a.M=e;a.pa=f;a.oa=g;2==d?a.L&&gf(a.L,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.v=0,a.s=e,a.status('Loaded tape "'+b+'"'),sf(a,0))}function yf(a,b){if(a.i||!1===b)a.A="",a.i="",b||(a.f&&a.status(1==a.f?"tape detached":"tape unloaded"),a.o=of,a.f=pf,xf(a))}h.save=function(){return(new Q(this)).data()};
h.restore=function(){return!0};h.nd=function(){return this.b&65534};h.me=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&L(this.a,this.I)):(this.b&=-129,this.b|=2048,this.w=0,Xb(this.a,this.U,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.md=function(){this.b&=-129;this.b|=2048;return this.w};h.le=function(){};var Bf={},tf=(Bf[65384]=[null,null,fc.prototype.nd,fc.prototype.me,"PRS"],Bf[65386]=[null,null,fc.prototype.md,fc.prototype.le,"PRB"],Bf);
function Cf(a,b,c){y.call(this,"Disk",{id:a.Ba+".disk"+ka(++Df,4)},Cf,8192);this.controller=a;this.l=a.l;this.D=a.D;this.f=b;this.ra=b.name;this.zb=b.zb;Ef(this,c,b.K,b.P,b.N,b.W);F(this)}var Df=0;A(Cf);h=Cf.prototype;h.ia=function(a,b,c,d){this.D=d};
function Ef(a,b,c,d,e,f){a.mode=b;a.K=c;a.P=d;a.N=e;a.W=f;a.a=[];if("preload"!=a.mode){b=Array(a.K);for(c=0;c<b.length;c++){d=Array(a.P);for(e=0;e<d.length;e++){f=Array(a.N);for(var g=1;g<=f.length;g++)f[g-1]=Ff(null,c,e,g,a.W,0);d[e]=f}b[c]=d}a.a=b}a.b=null}
function Gf(a,b,c,d,e){var f=c;if(a.h)return!0;a.ra=b;a.ea=c;a.Qb=u(c);a.h=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.K=e[0];a.P=e[1];a.N=e[2];a.W=e[3]||512;c=a.W>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.K);for(d=0;d<a.a.length;d++)for(var v=a.a[d]=Array(a.P),y=0;y<v.length;y++)for(var xa=v[y]=Array(a.N),ya=0;ya<xa.length;ya++){for(var Zb=Ff(null,d,y,ya+1,a.W,0),sg=Zb.data,qc=0;qc<c;qc++,f+=4)var tg=sg[qc]=b.getInt32(f,
!0),e=e+tg&-1;Zb.ha=c;xa[ya]=Zb}a.b=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.h&&(a.h.call(a.controller,a.f,c,a.ra,a.ea),a.h=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ka(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):la(c,"/")&&(d="dir"),f=ta()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.yb?"":e)+"&format=json"));return!!w(f,
function Gf(a,b,c,d,e){var f=c;if(a.h)return!0;a.ra=b;a.ea=c;a.Qb=r(c);a.h=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.K=e[0];a.P=e[1];a.N=e[2];a.W=e[3]||512;c=a.W>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.K);for(d=0;d<a.a.length;d++)for(var w=a.a[d]=Array(a.P),v=0;v<w.length;v++)for(var X=w[v]=Array(a.N),xa=0;xa<X.length;xa++){for(var Zb=Ff(null,d,v,xa+1,a.W,0),sg=Zb.data,qc=0;qc<c;qc++,f+=4)var tg=sg[qc]=b.getInt32(f,
!0),e=e+tg&-1;Zb.ha=c;X[xa]=Zb}a.b=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.h&&(a.h.call(a.controller,a.f,c,a.ra,a.ea),a.h=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=ua()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.zb?"":e)+"&format=json"));return!!u(f,
null,!0,function(b,c,d){Hf(a,b,c,d)})}
function Hf(a,b,c,d){var e=null;a.c=!1;var f=0>d&&a.l&&!a.l.m.R;if(d)a.controller.B('Unable to load disk "'+a.ra+'" (error '+d+": "+b+")",f);else{Ta(a.controller.Ba,b,c);try{if(0<u(a.Qb,!0).toLowerCase().indexOf("-readonly"))a.c=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.c=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.ra]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)x(k[0]);else{a.K=k.length;a.P=k[0].length;a.N=k[0][0].length;var l=k[0][0][0];a.W=l&&l.length||512;for(d=c=0;d<a.K;d++)for(f=0;f<a.P;f++)for(g=0;g<a.N;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var v=l.bytes;if(void 0!==v&&v.length){for(var y=m<<2,xa=v.length;xa<y;xa++)v[xa]=p;If(l,v)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}Ff(l,d,f);for(y=
0;y<t.length;y++)c=c+t[y]&-1}a.a=k;a.b=c;e=a}else x("Empty disk image: "+a.ra)}catch(ya){x("Disk image error ("+b+"): "+ya.message)}}a.h&&(a.h.call(a.i,a.f,e,a.ra,a.ea),a.h=null)}function Ff(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Yf=b;a.Zf=c;a.ta=a.ha=0;a.wa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.f,g=this.a[a];if(g){var k=g[b];if(!k&&f.Fc&&b<f.P)for(k=g[b]=Array(f.$b),g=0;g<k.length;g++)k[g]=Ff(null,a,b,g+1,f.Mb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Fc&&9==f.Gb&&(d=k[g]=Ff(null,a,b,f.Gb,f.Mb,0))}}e&&e(d,!1);return d};function If(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
function Hf(a,b,c,d){var e=null;a.c=!1;var f=0>d&&a.l&&!a.l.m.R;if(d)a.controller.B('Unable to load disk "'+a.ra+'" (error '+d+": "+b+")",f);else{Ta(a.controller.Ba,b,c);try{if(0<r(a.Qb,!0).toLowerCase().indexOf("-readonly"))a.c=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.c=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.ra]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)x(k[0]);else{a.K=k.length;a.P=k[0].length;a.N=k[0][0].length;var l=k[0][0][0];a.W=l&&l.length||512;for(d=c=0;d<a.K;d++)for(f=0;f<a.P;f++)for(g=0;g<a.N;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var w=l.bytes;if(void 0!==w&&w.length){for(var v=m<<2,X=w.length;X<v;X++)w[X]=p;If(l,w)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}Ff(l,d,f);for(v=0;v<
t.length;v++)c=c+t[v]&-1}a.a=k;a.b=c;e=a}else x("Empty disk image: "+a.ra)}catch(xa){x("Disk image error ("+b+"): "+xa.message)}}a.h&&(a.h.call(a.i,a.f,e,a.ra,a.ea),a.h=null)}function Ff(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Yf=b;a.Zf=c;a.ta=a.ha=0;a.wa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.f,g=this.a[a];if(g){var k=g[b];if(!k&&f.Dc&&b<f.P)for(k=g[b]=Array(f.$b),g=0;g<k.length;g++)k[g]=Ff(null,a,b,g+1,f.Mb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Dc&&9==f.Gb&&(d=k[g]=Ff(null,a,b,f.Gb,f.Mb,0))}}e&&e(d,!1);return d};function If(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.c)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.ha?f<a.ta?(a.ha+=a.ta-f,a.ta=f):f>=a.ta+a.ha&&(a.ha+=f-(a.ta+a.ha)+1):(a.ta=f,a.ha=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Jf(a,b){var c=a.P*a.N,d=b/c|0;return d<a.K?(b%=c,a.seek(d,b/a.N|0,b%a.N+1)):null}function Kf(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Lf(a){for(var b="",c=0,d;d=Jf(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Kf(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.ea,this.b,this.K,this.P,this.N,this.W];if(!this.c)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ha){for(var k=[],l=0,m=g.ta,p=g.ta+g.ha;m<p;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.ta,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?Ef(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.b&&e[1]!=this.b&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.b+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.a.length||l>=this.a[k].length||m>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.c){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.ta=e;for(k.ha=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.B("Unable to restore disk '"+this.ra+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=Jf(this,a++);)Mf(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Mf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function P(a){z.call(this,"RK11",a,P,65536);this.w=Nf(this,a.autoMount);this.o=0;this.c=Array(8);this.A=!Ba("Mobi")&&window&&"FileReader"in window}B(P);function Nf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=P.prototype;
function Mf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function O(a){y.call(this,"RK11",a,O,65536);this.w=Nf(this,a.autoMount);this.o=0;this.c=Array(8);this.A=!Ba("Mobi")&&window&&"FileReader"in window}A(O);function Nf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=O.prototype;
h.ba=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){x("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=q(c.value);null!=a&&Of(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&Pf(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&q(b.value);null==b||0>b||b>=d.c.length||!(a=d.c[b])?d.B("Unable to boot the selected drive"):a.T?(Kc(d.a,0,!0),(a=d.Yb(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.A){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.c&&((a=d.c[q(a.value)||0])?(a=a.T)?(a=Ca(Lf(a),a.Qb.replace(".json",".img")),x(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.A)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Pf(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;if(a=Nf(this,yc(this.l,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.w[e]=a[e]);Qf(this);this.Wa=$b(this.a,144,5,65536);fb(b,this,Rf);hb(b,this.reset.bind(this));Sf(this,"None","",!0);this.A&&Sf(this,"Local Disk","?");Sf(this,"Remote Disk","??");Tf(this)||G(this)};
h.ka=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.l.Lb){for(a=0;a<this.c.length;a++)Uf(this,a,!0);Tf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Of(this,0)}}return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){Qf(this)};h.save=function(){return(new R(this)).data()};
h.restore=function(a){return Qf(this,a[0])};function Tf(a,b){b||(a.o=0);for(var c in a.w){var d=a.w[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.c.length)){!Vf(a,g,f,e,!0)&&b&&G(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function Pf(a,b,c,d){var e=a.j.listDrives,e=e&&q(e.value);if(void 0===e||0>e||e>=a.c.length)a.B("Unable to load the selected drive");else if(c)if("?"==c)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}Vf(a,e,b,c,!1,d)}else Uf(a,e)}
function Vf(a,b,c,d,e,f){var g=-1,k=a.c[b];k.ea.toLowerCase()!=d.toLowerCase()&&(g++,Uf(a,b,!0),k.Ma?a.B("RK11 busy"):(k.Ma=!0,e&&(k.La=!0,a.o++),k.xa=!!f,Gf(new Cf(a,k,"preload"),c,d,f,a.xc)&&g++));return g}h.xc=function(a,b,c,d,e){a.Ma=!1;b&&(b.K>a.K||b.P>a.P)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Na)),b=null);b?(a.T=b,a.ra=c,a.ea=d,this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Na),a.La||e),this.l&&Ec(this.l)):a.xa=!1;a.La&&(a.La=!1,--this.o||G(this));Of(this,a.Na)};
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&Pf(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&q(b.value);null==b||0>b||b>=d.c.length||!(a=d.c[b])?d.B("Unable to boot the selected drive"):a.T?(Jc(d.a,0,!0),(a=d.Yb(a,0,0,0,512,0,2))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.A){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.c&&((a=d.c[q(a.value)||0])?(a=a.T)?(a=Ca(Lf(a),a.Qb.replace(".json",".img")),x(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.A)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Pf(d,r(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;if(a=Nf(this,xc(this.l,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.w[e]=a[e]);Qf(this);this.Wa=Yb(this.a,144,5,65536);fb(b,this,Rf);hb(b,this.reset.bind(this));Sf(this,"None","",!0);this.A&&Sf(this,"Local Disk","?");Sf(this,"Remote Disk","??");Tf(this)||F(this)};
h.ka=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.l.Lb){for(a=0;a<this.c.length;a++)Uf(this,a,!0);Tf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Of(this,0)}}return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){Qf(this)};h.save=function(){return(new Q(this)).data()};
h.restore=function(a){return Qf(this,a[0])};function Tf(a,b){b||(a.o=0);for(var c in a.w){var d=a.w[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=r(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.c.length)){!Vf(a,g,f,e,!0)&&b&&F(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function Pf(a,b,c,d){var e=a.j.listDrives,e=e&&q(e.value);if(void 0===e||0>e||e>=a.c.length)a.B("Unable to load the selected drive");else if(c)if("?"==c)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=r(c);a.status("Attempting to load "+c+' as "'+b+'"')}Vf(a,e,b,c,!1,d)}else Uf(a,e)}
function Vf(a,b,c,d,e,f){var g=-1,k=a.c[b];k.ea.toLowerCase()!=d.toLowerCase()&&(g++,Uf(a,b,!0),k.Ma?a.B("RK11 busy"):(k.Ma=!0,e&&(k.La=!0,a.o++),k.xa=!!f,Gf(new Cf(a,k,"preload"),c,d,f,a.vc)&&g++));return g}h.vc=function(a,b,c,d,e){a.Ma=!1;b&&(b.K>a.K||b.P>a.P)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Na)),b=null);b?(a.T=b,a.ra=c,a.ea=d,this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Na),a.La||e),this.l&&Dc(this.l)):a.xa=!1;a.La&&(a.La=!1,--this.o||F(this));Of(this,a.Na)};
function Sf(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Of(a,b){if(0<=b&&b<a.c.length){var c=a.c[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=q(a.value),c=c.xa?"?":c.ea,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Uf(a,b,c){var d=a.c[b];if(d.T||!1===c)d.ra="",d.ea="",d.T=null,d.xa=!1,c||(a.B("Drive RK"+b+" unloaded",c),Of(a,b))}
function Qf(a,b){var c=0;b||(b=[]);a.G=b[c++]||2496;a.i=b[c++]||0;a.b=b[c++]||128;a.v=b[c++]||0;a.s=b[c++]||0;a.f=b[c++]||0;a.C=b[c]||0;for(b=0;b<a.c.length;b++){var d=a.c[b];void 0===d&&(d=a.c[b]={});c=a;d.Na=b;d.name=c.Aa;d.Ma=d.xa=!1;d.K=203;d.P=2;d.N=12;d.W=512;d.yb=!0;d.Gc=0;d.Ec=0;d.Gb=1;d.$b=d.N;d.Mb=d.W;d.Mc=0;d.$d=null;d.T||(d.ea="");d.status=2368}return!0}
h.wc=function(a,b,c,d,e,f){this.s=f&65535;this.b=this.b&-49|f>>12&48;this.v=65536-e&65535;this.f=this.f&-16|d&15;a&&(this.i=this.i|a|32768,this.b|=49152);return!0};
h.Yb=function(a,b,c,d,e,f,g,k){var l=0;a=a.T;var m=null,p;a||(l=128,e=0);for(;e--;){if(!m){m=a.seek(b,c,d+1);if(!m){l=4096;break}p=0}var t,v;if(0>(t=a.read(m,p++))||0>(v=a.read(m,p++))){l=32;break}if(!g&&(vb(this.h,f,t|v<<8),Wb(this.h))){l=1024;break}f+=2;if(p>=a.W&&(m=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){l=64;break}}return k?k(l,b,c,d,e,f):l};
h.yc=function(a,b,c,d,e,f,g,k){var l=0;a=a.T;var m=null,p;a||(l=128,e=0);for(;e--;){var t=xb(this.h,f);if(Wb(this.h)){l=1024;break}f+=2;if(!m){m=a.seek(b,c,d+1,!0);if(!m){l=4096;break}p=0}if(g){var v,y;if(0>(v=a.read(m,p++))||0>(y=a.read(m,p++))){l=32;break}if(t!=(v|y<<8)){l=1;break}}else if(!a.write(m,p++,t&255)||!a.write(m,p++,t>>8)){l=32;break}if(p>=a.W&&(m=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){l=64;break}}return k?k(l,b,c,d,e,f):l};h.Bd=function(){return this.G};h.ze=function(){};
h.Cd=function(){return this.i};h.Ae=function(){};h.yd=function(){return this.b&61438};
h.we=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c=(this.f&57344)>>13,d=this.c[c],e,f,g,k,l;this.b&=-129;var m=(this.b&14)>>1;switch(m){case 0:this.i=0;this.b=128;this.f=0;break;case 4:e=(this.f&8160)>>5;e>=d.K&&(this.i|=32832,this.b|=49152);break;case 5:case 2:b=this.Yb;case 3:case 1:b||(b=this.yc),e=(this.f&8160)>>5,f=(this.f&16)>>4,g=this.f&15,k=65536-this.v&65535,l=(this.b&48)<<12|this.s,e>=d.K?(this.i|=32832,this.b|=49152):g>=d.N?(this.i|=32800,this.b|=49152):a=b.call(this,
d,e,f,g,k,l,3<=m,this.wc.bind(this))}this.G=d.status|(d.T?128:0)|c<<13|this.f&15;a&&(this.b&=-2,this.b|=128,this.b&64&&M(this.a,this.Wa))}};h.Dd=function(){return this.v};h.Be=function(a){this.v=a};h.xd=function(){return this.s};h.ve=function(a){this.s=a};h.zd=function(){return this.f};h.xe=function(a){this.f=a};h.Ad=function(){return this.C};h.ye=function(a){this.C=a};
var Wf={},Rf=(Wf[65280]=[null,null,P.prototype.Bd,P.prototype.ze,"RKDS"],Wf[65282]=[null,null,P.prototype.Cd,P.prototype.Ae,"RKER"],Wf[65284]=[null,null,P.prototype.yd,P.prototype.we,"RKCS"],Wf[65286]=[null,null,P.prototype.Dd,P.prototype.Be,"RKWC"],Wf[65288]=[null,null,P.prototype.xd,P.prototype.ve,"RKBA"],Wf[65290]=[null,null,P.prototype.zd,P.prototype.xe,"RKDA"],Wf[65294]=[null,null,P.prototype.Ad,P.prototype.ye,"RKDB"],Wf);
function O(a){z.call(this,"RL11",a,O,131072);this.A=Xf(this,a.autoMount);this.v=0;this.c=Array(4);this.C=!Ba("Mobi")&&window&&"FileReader"in window}B(O);function Xf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=O.prototype;
function Qf(a,b){var c=0;b||(b=[]);a.G=b[c++]||2496;a.i=b[c++]||0;a.b=b[c++]||128;a.v=b[c++]||0;a.s=b[c++]||0;a.f=b[c++]||0;a.C=b[c]||0;for(b=0;b<a.c.length;b++){var d=a.c[b];void 0===d&&(d=a.c[b]={});c=a;d.Na=b;d.name=c.Aa;d.Ma=d.xa=!1;d.K=203;d.P=2;d.N=12;d.W=512;d.zb=!0;d.Ec=0;d.Cc=0;d.Gb=1;d.$b=d.N;d.Mb=d.W;d.Kc=0;d.Zd=null;d.T||(d.ea="");d.status=2368}return!0}
h.uc=function(a,b,c,d,e,f){this.s=f&65535;this.b=this.b&-49|f>>12&48;this.v=65536-e&65535;this.f=this.f&-16|d&15;a&&(this.i=this.i|a|32768,this.b|=49152);return!0};
h.Yb=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e--;){if(!p){p=a.seek(b,c,d+1);if(!p){m=4096;break}t=0}var w,v;if(0>(w=a.read(p,t++))||0>(v=a.read(p,t++))){m=32;break}if(!k&&(vb(this.h,f,w|v<<8),Vb(this.h))){m=1024;break}f+=g;if(t>=a.W&&(p=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){m=64;break}}return l?l(m,b,c,d,e,f):m};
h.wc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e--;){var w=wb(this.h,f);if(Vb(this.h)){m=1024;break}f+=g;if(!p){p=a.seek(b,c,d+1,!0);if(!p){m=4096;break}t=0}if(k){var v,X;if(0>(v=a.read(p,t++))||0>(X=a.read(p,t++))){m=32;break}if(w!=(v|X<<8)){m=1;break}}else if(!a.write(p,t++,w&255)||!a.write(p,t++,w>>8)){m=32;break}if(t>=a.W&&(p=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){m=64;break}}return l?l(m,b,c,d,e,f):m};h.zd=function(){return this.G};h.ye=function(){};
h.Ad=function(){return this.i};h.ze=function(){};h.wd=function(){return this.b&61438};
h.ve=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c=(this.f&57344)>>13,d=this.c[c],e,f,g,k,l,m;this.b&=-129;var p=(this.b&14)>>1;switch(p){case 0:this.i=0;this.b=128;this.f=0;break;case 4:e=(this.f&8160)>>5;e>=d.K&&(this.i|=32832,this.b|=49152);break;case 5:case 2:b=this.Yb;case 3:case 1:b||(b=this.wc),e=(this.f&8160)>>5,f=(this.f&16)>>4,g=this.f&15,k=65536-this.v&65535,l=(this.b&48)<<12|this.s,m=this.b&2048?0:2,e>=d.K?(this.i|=32832,this.b|=49152):g>=d.N?(this.i|=32800,this.b|=
49152):a=b.call(this,d,e,f,g,k,l,m,3<=p,this.uc.bind(this))}this.G=d.status|(d.T?128:0)|c<<13|this.f&15;a&&(this.b&=-2,this.b|=128,this.b&64&&L(this.a,this.Wa))}};h.Bd=function(){return this.v};h.Ae=function(a){this.v=a};h.vd=function(){return this.s};h.ue=function(a){this.s=a};h.xd=function(){return this.f};h.we=function(a){this.f=a};h.yd=function(){return this.C};h.xe=function(a){this.C=a};
var Wf={},Rf=(Wf[65280]=[null,null,O.prototype.zd,O.prototype.ye,"RKDS"],Wf[65282]=[null,null,O.prototype.Ad,O.prototype.ze,"RKER"],Wf[65284]=[null,null,O.prototype.wd,O.prototype.ve,"RKCS"],Wf[65286]=[null,null,O.prototype.Bd,O.prototype.Ae,"RKWC"],Wf[65288]=[null,null,O.prototype.vd,O.prototype.ue,"RKBA"],Wf[65290]=[null,null,O.prototype.xd,O.prototype.we,"RKDA"],Wf[65294]=[null,null,O.prototype.yd,O.prototype.xe,"RKDB"],Wf);
function N(a){y.call(this,"RL11",a,N,131072);this.A=Xf(this,a.autoMount);this.v=0;this.c=Array(4);this.C=!Ba("Mobi")&&window&&"FileReader"in window}A(N);function Xf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=N.prototype;
h.ba=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){x("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=q(c.value);null!=a&&Yf(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&Zf(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&q(b.value);null==b||0>b||b>=d.c.length||!(a=d.c[b])?d.B("Unable to boot the selected drive"):a.T?(Kc(d.a,0,!0),(a=d.Zb(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.C){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.c&&((a=d.c[q(a.value)||0])?(a=a.T)?(a=Ca(Lf(a),a.Qb.replace(".json",".img")),x(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.C)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Zf(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;if(a=Xf(this,yc(this.l,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.A[e]=a[e]);$f(this);this.Wa=$b(this.a,112,5,131072);fb(b,this,ag);hb(b,this.reset.bind(this));bg(this,"None","",!0);this.C&&bg(this,"Local Disk","?");bg(this,"Remote Disk","??");cg(this)||G(this)};
h.ka=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.l.Lb){for(a=0;a<this.c.length;a++)dg(this,a,!0);cg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Yf(this,0)}}return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){$f(this)};h.save=function(){return(new R(this)).data()};
h.restore=function(a){return $f(this,a[0])};function cg(a,b){b||(a.v=0);for(var c in a.A){var d=a.A[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.c.length)){!eg(a,g,f,e,!0)&&b&&G(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.v}
function Zf(a,b,c,d){var e=a.j.listDrives,e=e&&q(e.value);if(void 0===e||0>e||e>=a.c.length)a.B("Unable to load the selected drive");else if(c)if("?"==c)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}eg(a,e,b,c,!1,d)}else dg(a,e)}
function eg(a,b,c,d,e,f){var g=-1,k=a.c[b];k.ea.toLowerCase()!=d.toLowerCase()&&(g++,dg(a,b,!0),k.Ma?a.B("RL11 busy"):(k.Ma=!0,e&&(k.La=!0,a.v++),k.xa=!!f,Gf(new Cf(a,k,"preload"),c,d,f,a.Ac)&&g++));return g}h.Ac=function(a,b,c,d,e){a.Ma=!1;b&&(b.K>a.K||b.P>a.P)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Na)),b=null);b?(a.T=b,a.ra=c,a.ea=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Na),a.La||e),this.l&&Ec(this.l)):a.xa=!1;a.La&&(a.La=!1,--this.v||G(this));Yf(this,a.Na)};
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&Zf(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&q(b.value);null==b||0>b||b>=d.c.length||!(a=d.c[b])?d.B("Unable to boot the selected drive"):a.T?(Jc(d.a,0,!0),(a=d.Zb(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.C){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.c&&((a=d.c[q(a.value)||0])?(a=a.T)?(a=Ca(Lf(a),a.Qb.replace(".json",".img")),x(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.C)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Zf(d,r(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ia=function(a,b,c,d){this.l=a;this.h=b;this.a=c;this.D=d;if(a=Xf(this,xc(this.l,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.A[e]=a[e]);$f(this);this.Wa=Yb(this.a,112,5,131072);fb(b,this,ag);hb(b,this.reset.bind(this));bg(this,"None","",!0);this.C&&bg(this,"Local Disk","?");bg(this,"Remote Disk","??");cg(this)||F(this)};
h.ka=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.l.Lb){for(a=0;a<this.c.length;a++)dg(this,a,!0);cg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Yf(this,0)}}return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){$f(this)};h.save=function(){return(new Q(this)).data()};
h.restore=function(a){return $f(this,a[0])};function cg(a,b){b||(a.v=0);for(var c in a.A){var d=a.A[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=r(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.c.length)){!eg(a,g,f,e,!0)&&b&&F(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.v}
function Zf(a,b,c,d){var e=a.j.listDrives,e=e&&q(e.value);if(void 0===e||0>e||e>=a.c.length)a.B("Unable to load the selected drive");else if(c)if("?"==c)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=r(c);a.status("Attempting to load "+c+' as "'+b+'"')}eg(a,e,b,c,!1,d)}else dg(a,e)}
function eg(a,b,c,d,e,f){var g=-1,k=a.c[b];k.ea.toLowerCase()!=d.toLowerCase()&&(g++,dg(a,b,!0),k.Ma?a.B("RL11 busy"):(k.Ma=!0,e&&(k.La=!0,a.v++),k.xa=!!f,Gf(new Cf(a,k,"preload"),c,d,f,a.yc)&&g++));return g}h.yc=function(a,b,c,d,e){a.Ma=!1;b&&(b.K>a.K||b.P>a.P)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Na)),b=null);b?(a.T=b,a.ra=c,a.ea=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Na),a.La||e),this.l&&Dc(this.l)):a.xa=!1;a.La&&(a.La=!1,--this.v||F(this));Yf(this,a.Na)};
function bg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Yf(a,b){if(0<=b&&b<a.c.length){var c=a.c[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=q(a.value),c=c.xa?"?":c.ea,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function dg(a,b,c){var d=a.c[b];if(d.T||!1===c)d.ra="",d.ea="",d.T=null,d.xa=!1,c||(a.B("Drive RL"+b+" unloaded",c),Yf(a,b))}
function $f(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.w=b[c++]||0;a.f=b[c++]||0;a.i=b[c++]||0;a.s=b[c++]||0;a.o=b[c]||0;for(b=0;b<a.c.length;b++){var d=a.c[b];void 0===d&&(d=a.c[b]={});c=a;d.Na=b;d.name=c.Aa;d.Ma=d.xa=!1;d.K=512;d.P=2;d.N=40;d.W=256;d.yb=!0;d.Gc=0;d.Ec=0;d.Gb=1;d.$b=d.N;d.Mb=d.W;d.Mc=0;d.$d=null;d.T||(d.ea="");d.status=29}return!0}
h.zc=function(a,b,c,d,e,f){this.w=f&65535;this.b=this.b&-49|f>>12&48;this.o=f>>16&63;this.i=this.f=b<<7|(c?64:0)|d&63;this.s=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};
h.Zb=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}vb(this.h,Tc(this.a,f),p|t<<8);if(Wb(this.h)){k=8192;break}f+=2;if(m>=a.W&&(l=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Bc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e--;){var p=xb(this.h,Tc(this.a,f));if(Wb(this.h)){k=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.W&&(l=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};h.Gd=function(){return this.b&65535};
h.Ee=function(a){this.b=this.b&-1023|a&1022;this.o=this.o&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c=this.c[(this.b&768)>>8],d=c.T,e,f,g;this.b&=-2;switch(this.b&14){case 4:this.s&8&&(this.b&=63);this.s=c.status|this.i&64|(d&&512==d.K?128:0);break;case 6:1==(this.f&3)&&(b=this.f&65408,c=(this.f&16)<<2,this.i=this.f&4?this.i+b:this.i-b,this.f=this.i=this.i&65408|c);break;case 8:this.s=this.i;break;case 12:b=this.Zb;case 10:b||(b=this.Bc),e=this.f>>7,f=this.f&64?1:0,g=this.f&63,!d||e>=d.K||g>=d.N?
this.b|=37888:(a=65536-this.s&65535,d=(this.o&63)<<16|this.w,a=b.call(this,c,e,f,g,a,d,this.zc.bind(this)))}a&&(this.b|=129,this.b&64&&M(this.a,this.Wa))}};h.Ed=function(){return this.w};h.Ce=function(a){this.w=a&65534};h.Hd=function(){return this.f};h.Fe=function(a){this.f=a};h.Id=function(){return this.s};h.Ge=function(a){this.s=a};h.Fd=function(){return this.o};h.De=function(a){this.o=a&63;this.b=this.b&-49|(this.o&3)<<4};
var fg={},ag=(fg[63744]=[null,null,O.prototype.Gd,O.prototype.Ee,"RLCS"],fg[63746]=[null,null,O.prototype.Ed,O.prototype.Ce,"RLBA"],fg[63748]=[null,null,O.prototype.Hd,O.prototype.Fe,"RLDA"],fg[63750]=[null,null,O.prototype.Id,O.prototype.Ge,"RLMP"],fg[63752]=[null,null,O.prototype.Fd,O.prototype.De,"RLBE"],fg);
function gg(a,b,c){z.call(this,"Computer",a,gg,33554432);this.m.R=!1;hg(this,b);this.A=yc(this,"autoPower",a);this.l=0;this.L=a.busWidth||a.buswidth;this.b=ig;this.s=null;this.i=this.I=!1;this.S=yc(this,"url")||"";(Math.random()+.1).toString(36);this.c=jg(this);if(this.a=Va("CPU",this.id)){this.D=Va("Debugger",this.id);this.h=new Bb({id:this.Ba+".bus",busWidth:this.L},this.a,this.D);var d,e=C(this.id);if((this.v=Va("Panel",this.id))&&this.v.lb)for(b=0;b<e.length;b++)d=e[b],d.B=this.v.B,d.V=this.v.V,
d.lb=this.v.lb;this.V("PDPjs v1.30.6\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.V("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ia&&d.ia(this,this.h,this.a,this.D);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.b=parseInt(d,10));var f;if(a=yc(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.i=!0,this.b=ig),this.b&&(this.w=
new R(this,"1.30.6"),kg(this.w)?b=null:delete this.w);!b&&this.b&&(b=lg(this))&&(this.i=!0);if(b){var g=this;w(b,null,!0,function(a,b,c){c?(g.o=null,g.i=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(g.s=b,g.I=!0);G(g)})}else G(this);this.j.power||(this.A=!0);!c&&this.A&&mg(this,this.mb)}else x("Unable to find CPU component")}B(gg);var ig=0;
function hg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.J=b}function yc(a,b,c){var d=b.toLowerCase(),d=Na[b]||Na[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function mg(a,b,c){for(var d=C(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Xa(f)){Xa(f,function(){mg(a,b,c)});return}}b.call(a,c)}
function ng(a,b){var c=new R(a,"1.30.6","validate");if(kg(c)&&og(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=gg.prototype;
h.mb=function(a){void 0===a&&(a=this.b||(this.s?1:ig));if(!this.l){this.l++;var b=!1,c=!1;this.G=!1;var d=this.w||new R(this,"1.30.6");if(-1==a)b=!0;else if(a>ig){if(kg(d,this.s)){this.f=new R(this,"1.30.6","failsafe");kg(this.f)&&(pg(this,d),a=2,qg(this.f));this.f.set("timestamp",ra());rg(this.f);var e=this.b&&!this.i;if(1==a||ua("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=og(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?kg(d,g):("error"==
f&&"no machine state"!=g?(this.B("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.c=null)):this.V(f+": "+g),qg(d),kg(d)?(c=og(d),e=!0):c=!1))}e&&ng(this,c?d:null)}else 2==a&&d.clear()}else ng(this);delete this.s;delete this.w}e=C(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=ug(this,g,d,b,c));b=[d,a,c];-1!=a?mg(this,this.ac,b):this.ac(b)}};
function $f(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.w=b[c++]||0;a.f=b[c++]||0;a.i=b[c++]||0;a.s=b[c++]||0;a.o=b[c]||0;for(b=0;b<a.c.length;b++){var d=a.c[b];void 0===d&&(d=a.c[b]={});c=a;d.Na=b;d.name=c.Aa;d.Ma=d.xa=!1;d.K=512;d.P=2;d.N=40;d.W=256;d.zb=!0;d.Ec=0;d.Cc=0;d.Gb=1;d.$b=d.N;d.Mb=d.W;d.Kc=0;d.Zd=null;d.T||(d.ea="");d.status=29}return!0}
h.xc=function(a,b,c,d,e,f){this.w=f&65535;this.b=this.b&-49|f>>12&48;this.o=f>>16&63;this.i=this.f=b<<7|(c?64:0)|d&63;this.s=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};
h.Zb=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}vb(this.h,Sc(this.a,f),p|t<<8);if(Vb(this.h)){k=8192;break}f+=2;if(m>=a.W&&(l=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.zc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e--;){var p=wb(this.h,Sc(this.a,f));if(Vb(this.h)){k=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.W&&(l=null,++d>=a.N&&(d=0,++c>=a.P&&(c=0,++b>=a.K)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};h.Ed=function(){return this.b&65535};
h.De=function(a){this.b=this.b&-1023|a&1022;this.o=this.o&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c=this.c[(this.b&768)>>8],d=c.T,e,f,g;this.b&=-2;switch(this.b&14){case 4:this.s&8&&(this.b&=63);this.s=c.status|this.i&64|(d&&512==d.K?128:0);break;case 6:1==(this.f&3)&&(b=this.f&65408,c=(this.f&16)<<2,this.i=this.f&4?this.i+b:this.i-b,this.f=this.i=this.i&65408|c);break;case 8:this.s=this.i;break;case 12:b=this.Zb;case 10:b||(b=this.zc),e=this.f>>7,f=this.f&64?1:0,g=this.f&63,!d||e>=d.K||g>=d.N?
this.b|=37888:(a=65536-this.s&65535,d=(this.o&63)<<16|this.w,a=b.call(this,c,e,f,g,a,d,this.xc.bind(this)))}a&&(this.b|=129,this.b&64&&L(this.a,this.Wa))}};h.Cd=function(){return this.w};h.Be=function(a){this.w=a&65534};h.Fd=function(){return this.f};h.Ee=function(a){this.f=a};h.Gd=function(){return this.s};h.Fe=function(a){this.s=a};h.Dd=function(){return this.o};h.Ce=function(a){this.o=a&63;this.b=this.b&-49|(this.o&3)<<4};
var fg={},ag=(fg[63744]=[null,null,N.prototype.Ed,N.prototype.De,"RLCS"],fg[63746]=[null,null,N.prototype.Cd,N.prototype.Be,"RLBA"],fg[63748]=[null,null,N.prototype.Fd,N.prototype.Ee,"RLDA"],fg[63750]=[null,null,N.prototype.Gd,N.prototype.Fe,"RLMP"],fg[63752]=[null,null,N.prototype.Dd,N.prototype.Ce,"RLBE"],fg);
function gg(a,b,c){y.call(this,"Computer",a,gg,33554432);this.m.R=!1;hg(this,b);this.A=xc(this,"autoPower",a);this.l=0;this.L=a.busWidth||a.buswidth;this.b=ig;this.s=null;this.i=this.I=!1;this.S=xc(this,"url")||"";(Math.random()+.1).toString(36);this.c=jg(this);if(this.a=Va("CPU",this.id)){this.D=Va("Debugger",this.id);this.h=new Ab({id:this.Ba+".bus",busWidth:this.L},this.a,this.D);var d,e=B(this.id);if((this.v=Va("Panel",this.id))&&this.v.lb)for(b=0;b<e.length;b++)d=e[b],d.B=this.v.B,d.V=this.v.V,
d.lb=this.v.lb;this.V("PDPjs v1.30.6\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.V("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ia&&d.ia(this,this.h,this.a,this.D);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.b=parseInt(d,10));var f;if(a=xc(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.i=!0,this.b=ig),this.b&&(this.w=
new Q(this,"1.30.6"),kg(this.w)?b=null:delete this.w);!b&&this.b&&(b=lg(this))&&(this.i=!0);if(b){var g=this;u(b,null,!0,function(a,b,c){c?(g.o=null,g.i=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.s=b,g.I=!0);F(g)})}else F(this);this.j.power||(this.A=!0);!c&&this.A&&mg(this,this.mb)}else x("Unable to find CPU component")}A(gg);var ig=0;
function hg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.J=b}function xc(a,b,c){var d=b.toLowerCase(),d=Na[b]||Na[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function mg(a,b,c){for(var d=B(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Xa(f)){Xa(f,function(){mg(a,b,c)});return}}b.call(a,c)}
function ng(a,b){var c=new Q(a,"1.30.6","validate");if(kg(c)&&og(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=gg.prototype;
h.mb=function(a){void 0===a&&(a=this.b||(this.s?1:ig));if(!this.l){this.l++;var b=!1,c=!1;this.G=!1;var d=this.w||new Q(this,"1.30.6");if(-1==a)b=!0;else if(a>ig){if(kg(d,this.s)){this.f=new Q(this,"1.30.6","failsafe");kg(this.f)&&(pg(this,d),a=2,qg(this.f));this.f.set("timestamp",sa());rg(this.f);var e=this.b&&!this.i;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=og(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?kg(d,g):("error"==
f&&"no machine state"!=g?(this.B("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.c=null)):this.V(f+": "+g),qg(d),kg(d)?(c=og(d),e=!0):c=!1))}e&&ng(this,c?d:null)}else 2==a&&d.clear()}else ng(this);delete this.s;delete this.w}e=B(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=ug(this,g,d,b,c));b=[d,a,c];-1!=a?mg(this,this.ac,b):this.ac(b)}};
function ug(a,b,c,d,e){if(!b.m.R){b.m.R=!0;if(b.ka){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ka(f,d)&&f&&(x("Unable to restore state for "+b.type),a.C&&!a.I?(c.clear(),a.b=ig,window&&window.location.reload()):a.G=!0,b.ka(null),e=!1)}if(!d&&b.cc)for(a=b.cc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.ac=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.m.R=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.a&&(ug(this,this.a,b,c,a),this.za(),this.a.Ea());this.G&&(pg(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.l=0};
function pg(a,b){if(ua("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.6"};d.url=a.S;d.user=c;d.type="bug";d.data=b;w("http://www.pcjs.org/api/v1/report",d,!0)}}
function vg(a,b,c){var d,e="none";if(a.l)return null;a.l--;var f=new R(a,"1.30.6"),g=new R(a,"1.30.6","validate"),k=ra();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ja&&(c&&H(a.a),d=a.a.ja(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.m.R=!1,!1===d&&(e=null)));for(var k=C(a.id),l=0;l<k.length;l++){var m=k[l];m.m.R&&(m.ja&&(d=m.ja(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.m.R=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&wg(a,a.c,f.toString()),rg(g)&&rg(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.m.R=!1,b=a.j.power)&&(b.textContent="Power");a.l=0;return e}h.reset=function(){this.h&&this.h.reset&&this.h.reset();this.a&&this.a.reset&&this.a.reset();for(var a=C(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.h&&c!==this.a&&c.reset&&c.reset()}this.za(-1)};
h.start=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.za(-1)};h.stop=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.za(-1)};
h.za=function(a){if(this.a){var b=this.a,c=a||0,d=b.j.speed;d&&(0>=c||30<=(b.Eb+=c))&&(d.textContent=b.m.O?b.Pa.toFixed(2)+"Mhz":"Stopped",b.Eb=0)}if(this.v&&(b=this.v,a=a||0,b.v)){c=b.a.m.O;d=!!(b.a.u&8);if(0>=a||60<=(b.s+=a)){for(var e=0;e<b.a.g.length;e++)nb(b,"R"+e,b.a.g[e]);e=ec(b.a);nb(b,"PS",e);nb(b,"NF",e&8?1:0,1);nb(b,"ZF",e&4?1:0,1);nb(b,"VF",e&2?1:0,1);nb(b,"CF",e&1?1:0,1);b.s=0}yb(b,0<a&&c&&!d?b.a.Va:b.la);ub(b,b.o);a=b.a;a=a.Ra?a.ya&16?1:2:4;zb(b,"B22",a&1);zb(b,"B18",a&2);zb(b,"B16",
function pg(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.6"};d.url=a.S;d.user=c;d.type="bug";d.data=b;u("http://www.pcjs.org/api/v1/report",d,!0)}}
function vg(a,b,c){var d,e="none";if(a.l)return null;a.l--;var f=new Q(a,"1.30.6"),g=new Q(a,"1.30.6","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ja&&(c&&G(a.a),d=a.a.ja(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.m.R=!1,!1===d&&(e=null)));for(var k=B(a.id),l=0;l<k.length;l++){var m=k[l];m.m.R&&(m.ja&&(d=m.ja(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.m.R=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&wg(a,a.c,f.toString()),rg(g)&&rg(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.m.R=!1,b=a.j.power)&&(b.textContent="Power");a.l=0;return e}h.reset=function(){this.h&&this.h.reset&&this.h.reset();this.a&&this.a.reset&&this.a.reset();for(var a=B(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.h&&c!==this.a&&c.reset&&c.reset()}this.za(-1)};
h.start=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.za(-1)};h.stop=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.za(-1)};
h.za=function(a){if(this.a){var b=this.a,c=a||0,d=b.j.speed;d&&(0>=c||30<=(b.Eb+=c))&&(d.textContent=b.m.O?b.Pa.toFixed(2)+"Mhz":"Stopped",b.Eb=0)}if(this.v&&(b=this.v,a=a||0,b.v)){c=b.a.m.O;d=!!(b.a.u&8);if(0>=a||60<=(b.s+=a)){for(var e=0;e<b.a.g.length;e++)nb(b,"R"+e,b.a.g[e]);e=dc(b.a);nb(b,"PS",e);nb(b,"NF",e&8?1:0,1);nb(b,"ZF",e&4?1:0,1);nb(b,"VF",e&2?1:0,1);nb(b,"CF",e&1?1:0,1);b.s=0}xb(b,0<a&&c&&!d?b.a.Va:b.la);ub(b,b.o);a=b.a;a=a.Ra?a.ya&16?1:2:4;yb(b,"B22",a&1);yb(b,"B18",a&2);yb(b,"B16",
a&4)}};
h.ba=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.l||(d.m.R?vg(d,!1,!0):mg(d,d.mb))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.m.R&&!d.l)if(d.b&&!d.o){var a=ua("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vg(d,a,!0);!a&&d.C?window&&window.location.reload():(a||(d.Lb=!0),d.mb(ig),d.Lb=!1)}else d.reset(),d.a&&d.a.Ea()},!0;case "save":if(la(ta(),"pcjs.org"))c.parentNode.removeChild(c);else return this.j[b]=
h.ba=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.l||(d.m.R?vg(d,!1,!0):mg(d,d.mb))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.m.R&&!d.l)if(d.b&&!d.o){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vg(d,a,!0);!a&&d.C?window&&window.location.reload():(a||(d.Lb=!0),d.mb(ig),d.Lb=!1)}else d.reset(),d.a&&d.a.Ea()},!0;case "save":if(ma(ua(),"pcjs.org"))c.parentNode.removeChild(c);else return this.j[b]=
c,c.onclick=function(){var a=jg(d,!0);if(a){var b=!!(d.b&&!d.o||d.C),c=vg(d,b);b?wg(d,a,c):d.B("Resume disabled, machine state not saved")}},!0}return!1};
function jg(a,b){var c=a.c;c||((c=za("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=xg(a,c))||a.B("The user ID is invalid.")):b&&a.B("Browser local storage is not available"));return c}
function xg(a,b){a.c=null;b=w(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function lg(a){var b=null;a.c&&(b=ta()+"/api/v1/user?req=load&user="+a.c+"&state="+yg(a,"1.30.6"));return b}
function wg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=yg(a,"1.30.6");d.data=c;b=w(ta()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("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.B(c),Aa("user",""),a.c=null)}}
function rf(a){var b;a=C(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function Ec(a){if(a.lb){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.lb.focus();window&&window.scrollTo(b,c)}}Ia(function(){for(var a=F(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=F(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=D(f),g=new gg(g,d,!0);E(g,f);g.A&&mg(g,g.mb)}});
Da.show.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Va("Computer",c.id))&&c.U&&!c.m.R&&c.mb(-1)}});Da.exit.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Va("Computer",c.id))&&c.m.R&&vg(c,!(!c.b||c.o),!0)}});function R(a,b,c){this.id=a.id;this.key=yg(a,b,c);this.D=a.D;qg(this,a.Zc)}function yg(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.prototype={constructor:R,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){qg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function qg(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function rg(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function og(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){x(c.message||c),b=!1}return b}function kg(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:wa()&&(b=za(a.key))?(a[a.id]=b,a.a=!0):!1}var zg=0;
function Ag(a,b,c,d,e,f){e("Loading "+a+"...");w(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):Bg(k,a,b,c,d,e,f)})}
function xg(a,b){a.c=null;b=u(ua()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function lg(a){var b=null;a.c&&(b=ua()+"/api/v1/user?req=load&user="+a.c+"&state="+yg(a,"1.30.6"));return b}
function wg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=yg(a,"1.30.6");d.data=c;b=u(ua()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("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.B(c),Aa("user",""),a.c=null)}}
function rf(a){var b;a=B(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function Dc(a){if(a.lb){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.lb.focus();window&&window.scrollTo(b,c)}}Ia(function(){for(var a=E(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=E(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new gg(g,d,!0);D(g,f);g.A&&mg(g,g.mb)}});
Da.show.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Va("Computer",c.id))&&c.U&&!c.m.R&&c.mb(-1)}});Da.exit.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Va("Computer",c.id))&&c.m.R&&vg(c,!(!c.b||c.o),!0)}});function Q(a,b,c){this.id=a.id;this.key=yg(a,b,c);this.D=a.D;qg(this,a.Xc)}function yg(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}
Q.prototype={constructor:Q,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){qg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function qg(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function rg(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function og(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){x(c.message||c),b=!1}return b}function kg(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.a=!0):!1}var zg=0;
function Ag(a,b,c,d,e,f){e("Loading "+a+"...");u(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):Bg(k,a,b,c,d,e,f)})}
function Bg(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Ta(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Cg(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Cg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");w(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
function Cg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");u(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Cg(a,b,c)}})}else c(a,null)}
function Dg(a,b,c,d){function e(a){if(void 0===k){var b=g&&F(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);l&&(--zg||Ka(!0));l=!1}var g,k,l=!0;zg++;Sa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
function Dg(a,b,c,d){function e(a){if(void 0===k){var b=g&&E(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);l&&(--zg||Ka(!0));l=!1}var g,k,l=!0;zg++;Sa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
(c="/versions/pdpjs/1.30.6/components.xsl");m=function(d,k){k?Ag(c,null,null,!1,e,function(d,l){l?(Ta(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--zg||Ka(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--zg||Ka(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ag(b,a,d,!0,e,m):Bg(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(v){f(v.message)}return l}window.embedPDP11=function(a,b,c,d){Ka(!1);return Dg(a,b,c,d)};window.enableEvents=Ka;window.sendEvent=La;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11.map
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ag(b,a,d,!0,e,m):Bg(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){Ka(!1);return Dg(a,b,c,d)};window.enableEvents=Ka;window.sendEvent=La;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11.map