Restored support for custom memory controllers in the PDP11 emulator (to be used for UNIBUS I/O)

This commit is contained in:
Jeff Parsons 2016-09-20 11:19:42 -07:00 • committed by Jeff Parsons
commit 614fc11aca
11 changed files with 568 additions and 431 deletions

View file

@ -1,24 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<panel id="panel" width="100%" padding="8px"> <panel id="panel" width="100%" padding="8px">
<name>Control Panel</name> <name>Control Panel</name>
<control type="container" class="pcjs-textarea" width="99%" padright="8px"> <control type="container" class="pcjs-textarea" width="60%" padbottom="8px" padright="8px">
<control type="textarea" binding="print" width="100%" height="252px" pos="relative" style="resize:vertical;"/> <control type="textarea" binding="print" width="100%" height="252px" pos="relative" style="resize:vertical;"/>
<control type="container" width="100%">
<control type="text" binding="debugInput" width="auto"/>
<control type="button" binding="debugEnter">Enter</control>
<control type="button" binding="clear">Clear</control>
</control>
</control> </control>
<control type="container" class="pcjs-registers" width="100%" padleft="8px"> <control type="container" class="pcjs-registers" width="35%" padleft="8px">
<control type="register" label="PC" binding="PC" width="40px" padright="8px" padbottom="8px">0000</control> <control type="register" label="R0" binding="R0" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="R1" binding="R1" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="R2" binding="R2" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="R3" binding="R3" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="R4" binding="R4" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="R5" binding="R5" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="SP" binding="R6" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="PC" binding="R7" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="container" pos="left"> <control type="container" pos="left">
<control type="flag" label="S" binding="SF" width="8px" padright="4px" padbottom="8px">0</control> <control type="flag" label="N" binding="NF" width="8px" padright="4px" padbottom="8px">0</control>
<control type="flag" label="Z" binding="ZF" width="8px" padright="4px" padbottom="8px">0</control> <control type="flag" label="Z" binding="ZF" width="8px" padright="4px" padbottom="8px">0</control>
<control type="flag" label="V" binding="VF" width="8px" padright="4px" padbottom="8px">0</control>
<control type="flag" label="C" binding="CF" width="8px" padright="4px" padbottom="8px">0</control> <control type="flag" label="C" binding="CF" width="8px" padright="4px" padbottom="8px">0</control>
</control> </control>
<control type="description" padleft="16px" padbottom="8px">Speed:</control>
<control type="description" binding="speed" padleft="4px" padbottom="8px">Stopped</control>
</control> </control>
<control type="container" padbottom="8px"> <control type="container" padbottom="8px" padleft="8px">
<control type="text" binding="debugInput" width="100px"/> <control type="button" binding="run">Run</control>
<control type="button" binding="debugEnter">Enter</control>
<control type="button" binding="clear">Clear</control>
<control type="button" binding="run" padleft="32px">Run</control>
<control type="button" binding="step">Step</control> <control type="button" binding="step">Step</control>
<control type="button" binding="reset">Reset</control> <control type="button" binding="reset">Reset</control>
<control type="button" binding="setSpeed">Fast</control> <control type="button" binding="setSpeed">Fast</control>

View file

@ -59,7 +59,7 @@ if (NODE) {
* is the ROM you expected. * is the ROM you expected.
* *
* Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected * Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected
* CP/M binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the * binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the
* simplest solution was to add the option to load binary files into memory as "writable" ROMs. * simplest solution was to add the option to load binary files into memory as "writable" ROMs.
* *
* Moreover, if a "writable" ROM is installed at addr 0x100, that triggers our "Fake CP/M" support, providing * Moreover, if a "writable" ROM is installed at addr 0x100, that triggers our "Fake CP/M" support, providing

View file

@ -106,7 +106,9 @@ function BusPDP11(parmsBus, cpu, dbg)
* Bus Width Block Shift Block Size * Bus Width Block Shift Block Size
* --------- ----------- ---------- * --------- ----------- ----------
* 16 bits (64Kb address space): 10 1Kb (64 maximum blocks) * 16 bits (64Kb address space): 10 1Kb (64 maximum blocks)
* 18 bits (256Kb address space): 11 2Kb (128 maximum blocks)
* 20 bits (1Mb address space): 12 4Kb (256 maximum blocks) * 20 bits (1Mb address space): 12 4Kb (256 maximum blocks)
* 22 bits (4Mb address space): 13 8Kb (512 maximum blocks)
* 24 bits (16Mb address space): 14 16Kb (1K maximum blocks) * 24 bits (16Mb address space): 14 16Kb (1K maximum blocks)
* 32 bits (4Gb address space); 15 32Kb (128K maximum blocks) * 32 bits (4Gb address space); 15 32Kb (128K maximum blocks)
* *
@ -117,7 +119,9 @@ function BusPDP11(parmsBus, cpu, dbg)
*/ */
this.addrTotal = Math.pow(2, this.nBusWidth); this.addrTotal = Math.pow(2, this.nBusWidth);
this.nBusLimit = this.nBusMask = (this.addrTotal - 1) | 0; this.nBusLimit = this.nBusMask = (this.addrTotal - 1) | 0;
this.nBlockShift = (this.nBusWidth <= 16)? 10 : ((this.nBusWidth <= 20)? 12 : (this.nBusWidth <= 24? 14 : 15)); this.nBlockShift = (this.nBusWidth >> 1) + 2;
if (this.nBlockShift < 10) this.nBlockShift = 10;
if (this.nBlockShift > 15) this.nBlockShift = 15;
this.nBlockSize = 1 << this.nBlockShift; this.nBlockSize = 1 << this.nBlockShift;
this.nBlockLen = this.nBlockSize >> 2; this.nBlockLen = this.nBlockSize >> 2;
this.nBlockLimit = this.nBlockSize - 1; this.nBlockLimit = this.nBlockSize - 1;
@ -168,9 +172,17 @@ function BusPDP11(parmsBus, cpu, dbg)
Component.subclass(BusPDP11); Component.subclass(BusPDP11);
BusPDP11.IOBASE_VIRT = 0xE000; /*000160000*/
BusPDP11.IOBASE_18BIT = 0x3E000; /*000760000*/
BusPDP11.IOBASE_UNIBUS = 0x3C0000; /*017000000*/
BusPDP11.IOBASE_22BIT = 0x3FE000; /*017760000*/
BusPDP11.MAX_MEMORY = BusPDP11.IOBASE_UNIBUS - 16384; // Maximum memory address (need less memory for BSD 2.9 boot)
BusPDP11.MAX_ADDRESS = 0x400000; /*020000000*/ // Register addresses are above 22 bit addressing
BusPDP11.ERROR = { BusPDP11.ERROR = {
ADD_MEM_INUSE: 1, ADD_MEM_INUSE: 1,
ADD_MEM_BADRANGE: 2, ADD_MEM_BADRANGE: 2,
SET_MEM_NOCTRL: 3,
SET_MEM_BADRANGE: 4, SET_MEM_BADRANGE: 4,
REM_MEM_BADRANGE: 5 REM_MEM_BADRANGE: 5
}; };
@ -222,6 +234,89 @@ BusPDP11.prototype.initMemory = function()
for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) { for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
this.aMemBlocks[iBlock] = block; this.aMemBlocks[iBlock] = block;
} }
this.afnCtrl = new Array(4);
this.afnCtrl[0] = this.readCtrlByte;
this.afnCtrl[1] = this.readCtrlWord;
this.afnCtrl[2] = this.writeCtrlByte;
this.afnCtrl[3] = this.writeCtrlWord;
this.addMemory(BusPDP11.IOBASE_22BIT, 8192, MemoryPDP11.TYPE.CTRL, this);
};
/**
* getMemoryBuffer(addr)
*
* Our Bus component also acts as custom memory controller, so it must also provide this function.
*
* @this {BusPDP11}
* @param {number} addr
* @return {Array} containing the buffer (and the offset within that buffer that corresponds to the requested block)
*/
BusPDP11.prototype.getMemoryBuffer = function(addr)
{
return [null, 0];
};
/**
* getMemoryAccess()
*
* Our Bus component also acts as custom memory controller, so it must also provide this function.
*
* @this {BusPDP11}
* @return {Array.<function()>}
*/
BusPDP11.prototype.getMemoryAccess = function()
{
return this.afnCtrl;
};
/**
* readCtrlByte(off, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
BusPDP11.prototype.readCtrlByte = function(off, addr)
{
return 0;
};
/**
* readCtrlWord(off, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
BusPDP11.prototype.readCtrlWord = function(off, addr)
{
return 0;
};
/**
* writeCtrlByte(off, b, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} b (which should already be pre-masked to 8 bits)
* @param {number} [addr]
*/
BusPDP11.prototype.writeCtrlByte = function(off, b, addr)
{
};
/**
* writeCtrlWord(off, w, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} w (which should already be pre-masked to 16 bits)
* @param {number} [addr]
*/
BusPDP11.prototype.writeCtrlWord = function(off, w, addr)
{
}; };
/** /**
@ -257,7 +352,7 @@ BusPDP11.prototype.powerUp = function(data, fRepower)
}; };
/** /**
* addMemory(addr, size, type) * addMemory(addr, size, type, controller)
* *
* Adds new Memory blocks to the specified address range. Any Memory blocks previously * Adds new Memory blocks to the specified address range. Any Memory blocks previously
* added to that range must first be removed via removeMemory(); otherwise, you'll get * added to that range must first be removed via removeMemory(); otherwise, you'll get
@ -283,9 +378,10 @@ BusPDP11.prototype.powerUp = function(data, fRepower)
* @param {number} addr is the starting physical address of the request * @param {number} addr is the starting physical address of the request
* @param {number} size of the request, in bytes * @param {number} size of the request, in bytes
* @param {number} type is one of the MemoryPDP11.TYPE constants * @param {number} type is one of the MemoryPDP11.TYPE constants
* @param {Object} [controller] is an optional memory controller component
* @return {boolean} true if successful, false if not * @return {boolean} true if successful, false if not
*/ */
BusPDP11.prototype.addMemory = function(addr, size, type) BusPDP11.prototype.addMemory = function(addr, size, type, controller)
{ {
var addrNext = addr; var addrNext = addr;
var sizeLeft = size; var sizeLeft = size;
@ -299,7 +395,7 @@ BusPDP11.prototype.addMemory = function(addr, size, type)
if (sizeBlock > sizeLeft) sizeBlock = sizeLeft; if (sizeBlock > sizeLeft) sizeBlock = sizeLeft;
if (block && block.size) { if (block && block.size) {
if (block.type == type) { if (block.type == type && block.controller == controller) {
/* /*
* Where there is already a similar block with a non-zero size, we allow the allocation only if: * Where there is already a similar block with a non-zero size, we allow the allocation only if:
* *
@ -324,7 +420,7 @@ BusPDP11.prototype.addMemory = function(addr, size, type)
return this.reportError(BusPDP11.ERROR.ADD_MEM_INUSE, addrNext, sizeLeft); return this.reportError(BusPDP11.ERROR.ADD_MEM_INUSE, addrNext, sizeLeft);
} }
var blockNew = new MemoryPDP11(addrNext, sizeBlock, this.nBlockSize, type); var blockNew = new MemoryPDP11(addrNext, sizeBlock, this.nBlockSize, type, controller);
blockNew.copyBreakpoints(this.dbg, block); blockNew.copyBreakpoints(this.dbg, block);
this.aMemBlocks[iBlock++] = blockNew; this.aMemBlocks[iBlock++] = blockNew;
@ -456,6 +552,38 @@ BusPDP11.prototype.getMemoryBlocks = function(addr, size)
return aBlocks; return aBlocks;
}; };
/**
* setMemoryAccess(addr, size, afn, fQuiet)
*
* Updates the access functions in every block of the specified address range. Since the only components
* that should be dynamically modifying the memory access functions are those that use addMemory() with a custom
* memory controller, we require that the block(s) being updated do in fact have a controller.
*
* @this {BusPDP11}
* @param {number} addr
* @param {number} size
* @param {Array.<function()>} [afn]
* @param {boolean} [fQuiet] (true if any error should be quietly logged)
* @return {boolean} true if successful, false if not
*/
BusPDP11.prototype.setMemoryAccess = function(addr, size, afn, fQuiet)
{
if (!(addr & this.nBlockLimit) && size && !(size & this.nBlockLimit)) {
var iBlock = addr >>> this.nBlockShift;
while (size > 0) {
var block = this.aMemBlocks[iBlock];
if (!block.controller) {
return this.reportError(BusPDP11.ERROR.SET_MEM_NOCTRL, addr, size, fQuiet);
}
block.setAccess(afn, true);
size -= this.nBlockSize;
iBlock++;
}
return true;
}
return this.reportError(BusPDP11.ERROR.SET_MEM_BADRANGE, addr, size);
};
/** /**
* setMemoryBlocks(addr, size, aBlocks, type) * setMemoryBlocks(addr, size, aBlocks, type)
* *

View file

@ -433,12 +433,12 @@ CPUPDP11.prototype.displayChecksum = function()
* displayValue(sLabel, nValue, cch) * displayValue(sLabel, nValue, cch)
* *
* This is principally for displaying register values, but in reality, it can be used to display any * This is principally for displaying register values, but in reality, it can be used to display any
* numeric (hex) value bound to the given label. * numeric value bound to the given label.
* *
* @this {CPUPDP11} * @this {CPUPDP11}
* @param {string} sLabel * @param {string} sLabel
* @param {number} nValue * @param {number} nValue
* @param {number} cch * @param {number} [cch]
*/ */
CPUPDP11.prototype.displayValue = function(sLabel, nValue, cch) CPUPDP11.prototype.displayValue = function(sLabel, nValue, cch)
{ {
@ -448,10 +448,11 @@ CPUPDP11.prototype.displayValue = function(sLabel, nValue, cch)
this.stopCPU(); this.stopCPU();
} }
var sVal; var sVal;
var nBase = this.dbg && this.dbg.nBase || 8;
if (!this.flags.running || this.flags.displayLiveRegs) { if (!this.flags.running || this.flags.displayLiveRegs) {
sVal = str.toHex(nValue, cch); sVal = nBase == 8? str.toOct(nValue, cch) : str.toHex(nValue, cch);
} else { } else {
sVal = "--------".substr(0, cch); sVal = "--------".substr(0, cch || 4);
} }
/* /*
* TODO: Determine if this test actually avoids any redrawing when a register hasn't changed, and/or if * TODO: Determine if this test actually avoids any redrawing when a register hasn't changed, and/or if

View file

@ -128,47 +128,16 @@ CPUStatePDP11.prototype.reset = function()
CPUStatePDP11.prototype.initRegs = function() CPUStatePDP11.prototype.initRegs = function()
{ {
/* /*
* Instead of having separate flagC, flagZ and flagN variables, I would prefer to have only one: flagsCZN. * TODO: Verify the initial state of all PDP-11 flags (are they documented?)
* The C and N flags don't conflict; they are always bits 16 and 15 of the last 16-bit arithmetic result (or
* bits 8 and 7 of the last 8-bit arithmetic result). The Z flag is a "bit" more complicated, because it's a
* representation of bits 15-0 (or 7-0), which overlap the N flag bit. That overlap is fine after any given
* arithmetic operation, because of the four possible N and Z combinations:
*
* N Z
* - -
* 0 0 Positive non-zero number
* 0 1 Zero
* 1 0 Negative non-zero number
* 1 1 INVALID
*
* the fourth combination is an impossibility (the world of floating point numbers, with their NaNs, positive
* and negative zeros, infinities, etc, is another story, which doesn't concern us here).
*
* The problem is that some intervening NON-arithmetic instruction (eg, SEN or SEZ) could be executed that sets
* either N or Z independently, resulting in BOTH flags being set.
*
* One way to support that combination would be to define Z as the result of all non-sign bits. However,
* that means that, after any arithmetic operation, we would have to propagate the sign bit of the result to
* one or more other bits in flagsCZN; eg:
*
* flagsCZN = result | ((result & 0x8000) >> 1)
* or:
* flagsCZN = result | ((result & 0xffff)? 1 : 0)
*
* It's worth noting that all that extra work is actually required for only ONE 16-bit value: -32768 or 0x8000
* (and ONE 8-bit value: -128 or 0x80), because all other negative numbers already have 1 or more lower bits set.
*
* A simpler approach would be to leave flagN independent, and only combine flagC and flagZ (into flagCZ).
* Alternatively, we could combine flagC and flagN and leave flagZ independent; the choice is arbitrary. -JP
*/ */
this.flagC = 0x10000; // PSW C bit this.flagC = 0x10000; // PSW C bit
this.flagV = 0x8000; // PSW V bit this.flagV = 0x8000; // PSW V bit
this.flagZ = 0xffff; // ~ PSW Z bit this.flagZ = 0xffff; // ~ PSW Z bit (TODO: Why is Z clear instead of set like all other flags?)
this.flagN = 0x8000; // PSW N bit this.flagN = 0x8000; // PSW N bit
this.PSW = 0xf; // PSW other bits this.PSW = 0xf; // PSW other bits
this.regsGen = [ // General R0 - R7 this.regsGen = [ // General R0 - R7
0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, this.resetAddr
]; ];
this.regsAlt = [ // Alternate R0 - R5 this.regsAlt = [ // Alternate R0 - R5
0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0
@ -212,7 +181,6 @@ CPUStatePDP11.prototype.initRegs = function()
this.controlReg = [ // various control registers we don't really care about this.controlReg = [ // various control registers we don't really care about
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]; ];
this.debugPC = -1;
}; };
/** /**
@ -222,7 +190,6 @@ CPUStatePDP11.prototype.initRegs = function()
*/ */
CPUStatePDP11.prototype.resetRegs = function() CPUStatePDP11.prototype.resetRegs = function()
{ {
this.setPC(this.resetAddr);
this.stackLimit = 0xff; this.stackLimit = 0xff;
this.CPU_Error = 0; this.CPU_Error = 0;
this.interruptQueue = []; this.interruptQueue = [];
@ -292,12 +259,19 @@ CPUStatePDP11.prototype.setBinding = function(sHTMLType, sBinding, control, sVal
{ {
var fBound = false; var fBound = false;
switch (sBinding) { switch (sBinding) {
case "PC": case "R0":
case "PSW": case "R1":
case "R2":
case "R3":
case "R4":
case "R5":
case "R6":
case "R7":
case "NF": case "NF":
case "ZF": case "ZF":
case "VF": case "VF":
case "CF": case "CF":
case "PSW":
this.bindings[sBinding] = control; this.bindings[sBinding] = control;
this.cLiveRegs++; this.cLiveRegs++;
fBound = true; fBound = true;
@ -309,6 +283,34 @@ CPUStatePDP11.prototype.setBinding = function(sHTMLType, sBinding, control, sVal
return fBound; return fBound;
}; };
/**
* updateStatus(fForce)
*
* This provides periodic Control Panel updates (a few times per second; see YIELDS_PER_STATUS).
* this is where we take care of any DOM updates (eg, register values) while the CPU is running.
*
* @this {CPUStatePDP11}
* @param {boolean} [fForce] (true will display registers even if the CPU is running and "live" registers are not enabled)
*/
CPUStatePDP11.prototype.updateStatus = function(fForce)
{
if (this.cLiveRegs) {
if (fForce || !this.flags.running || this.flags.displayLiveRegs) {
for (var i = 0; i < this.regsGen.length; i++) {
this.displayValue('R'+i, this.regsGen[i]);
}
var regPSW = this.getPSW();
this.displayValue("PSW", regPSW);
this.displayValue("NF", (regPSW & PDP11.PSW.NF)? 1 : 0, 1);
this.displayValue("ZF", (regPSW & PDP11.PSW.ZF)? 1 : 0, 1);
this.displayValue("VF", (regPSW & PDP11.PSW.VF)? 1 : 0, 1);
this.displayValue("CF", (regPSW & PDP11.PSW.CF)? 1 : 0, 1);
}
}
var controlSpeed = this.bindings["speed"];
if (controlSpeed) controlSpeed.textContent = this.getSpeedCurrent();
};
/** /**
* clearCF() * clearCF()
* *
@ -316,7 +318,7 @@ CPUStatePDP11.prototype.setBinding = function(sHTMLType, sBinding, control, sVal
*/ */
CPUStatePDP11.prototype.clearCF = function() CPUStatePDP11.prototype.clearCF = function()
{ {
// this.resultZeroCarry &= 0xff; this.flagC = 0;
}; };
/** /**
@ -337,7 +339,7 @@ CPUStatePDP11.prototype.getCF = function()
*/ */
CPUStatePDP11.prototype.setCF = function() CPUStatePDP11.prototype.setCF = function()
{ {
// this.resultZeroCarry |= 0x100; this.flagC = 0x10000;
}; };
/** /**
@ -347,7 +349,7 @@ CPUStatePDP11.prototype.setCF = function()
*/ */
CPUStatePDP11.prototype.clearVF = function() CPUStatePDP11.prototype.clearVF = function()
{ {
// this.resultZeroCarry |= 0xff; this.flagV = 0;
}; };
/** /**
@ -368,7 +370,7 @@ CPUStatePDP11.prototype.getVF = function()
*/ */
CPUStatePDP11.prototype.setVF = function() CPUStatePDP11.prototype.setVF = function()
{ {
// this.resultZeroCarry &= ~0xff; this.flagV = 0x8000;
}; };
/** /**
@ -378,7 +380,7 @@ CPUStatePDP11.prototype.setVF = function()
*/ */
CPUStatePDP11.prototype.clearZF = function() CPUStatePDP11.prototype.clearZF = function()
{ {
// this.resultZeroCarry |= 0xff; this.flagZ = 1;
}; };
/** /**
@ -399,7 +401,7 @@ CPUStatePDP11.prototype.getZF = function()
*/ */
CPUStatePDP11.prototype.setZF = function() CPUStatePDP11.prototype.setZF = function()
{ {
// this.resultZeroCarry &= ~0xff; this.flagZ = 0;
}; };
/** /**
@ -409,7 +411,7 @@ CPUStatePDP11.prototype.setZF = function()
*/ */
CPUStatePDP11.prototype.clearNF = function() CPUStatePDP11.prototype.clearNF = function()
{ {
// if (this.getNF()) this.resultParitySign ^= 0xc0; this.flagN = 0;
}; };
/** /**
@ -420,7 +422,7 @@ CPUStatePDP11.prototype.clearNF = function()
*/ */
CPUStatePDP11.prototype.getNF = function() CPUStatePDP11.prototype.getNF = function()
{ {
return (this.flagN >> (15 - PDP11.PSW.NF_SHIFT)) & PDP11.PSW.NF; return (this.flagN & 0x8000)? PDP11.PSW.NF : 0;
}; };
/** /**
@ -430,7 +432,7 @@ CPUStatePDP11.prototype.getNF = function()
*/ */
CPUStatePDP11.prototype.setNF = function() CPUStatePDP11.prototype.setNF = function()
{ {
// if (!this.getNF()) this.resultParitySign ^= 0xc0; this.flagN = 0x8000;
}; };
/** /**
@ -527,48 +529,6 @@ CPUStatePDP11.prototype.requestHALT = function()
this.endBurst(); this.endBurst();
}; };
/**
* updateReg(sReg, nValue, cch)
*
* This function helps updateStatus() by massaging the register names and values according to
* CPU type before passing the call to displayValue(); in the "old days", updateStatus() called
* displayValue() directly (although then it was called displayReg()).
*
* @this {CPUStatePDP11}
* @param {string} sReg
* @param {number} nValue
* @param {number} [cch] (default is 4 hex digits)
*/
CPUStatePDP11.prototype.updateReg = function(sReg, nValue, cch)
{
this.displayValue(sReg, nValue, cch || 4);
};
/**
* updateStatus(fForce)
*
* This provides periodic Control Panel updates (eg, a few times per second; see YIELDS_PER_STATUS).
* this is where we take care of any DOM updates (eg, register values) while the CPU is running.
*
* @this {CPUStatePDP11}
* @param {boolean} [fForce] (true will display registers even if the CPU is running and "live" registers are not enabled)
*/
CPUStatePDP11.prototype.updateStatus = function(fForce)
{
if (this.cLiveRegs) {
if (fForce || !this.flags.running || this.flags.displayLiveRegs) {
var regPSW = this.getPSW();
this.updateReg("PSW", regPSW, 4);
this.updateReg("NF", (regPSW & PDP11.PSW.NF)? 1 : 0, 1);
this.updateReg("ZF", (regPSW & PDP11.PSW.ZF)? 1 : 0, 1);
this.updateReg("VF", (regPSW & PDP11.PSW.VF)? 1 : 0, 1);
this.updateReg("CF", (regPSW & PDP11.PSW.CF)? 1 : 0, 1);
}
}
var controlSpeed = this.bindings["speed"];
if (controlSpeed) controlSpeed.textContent = this.getSpeedCurrent();
};
/** /**
* interrupt(delay, priority, vector, callback) * interrupt(delay, priority, vector, callback)
* *
@ -931,7 +891,7 @@ CPUStatePDP11.prototype.readWordByAddr = function(physicalAddress)
return this.bus.access_iopage(physicalAddress, -1, 0); return this.bus.access_iopage(physicalAddress, -1, 0);
} else { } else {
if (physicalAddress >= 0) { if (physicalAddress >= 0) {
return this.memory[physicalAddress >> 1]; return this.bus.getShort(physicalAddress);
} }
} }
} }
@ -952,13 +912,14 @@ CPUStatePDP11.prototype.writeWordByAddr = function(physicalAddress, data)
if (physicalAddress >= PDP11.MAX_ADDRESS) { if (physicalAddress >= PDP11.MAX_ADDRESS) {
return (this.regsGen[physicalAddress - PDP11.MAX_ADDRESS] = data); return (this.regsGen[physicalAddress - PDP11.MAX_ADDRESS] = data);
} else { } else {
if (physicalAddress >= PDP11.IOBASE_UNIBUS) { // if (physicalAddress >= PDP11.IOBASE_UNIBUS) {
return this.bus.access_iopage(physicalAddress, data, 0); // return this.bus.access_iopage(physicalAddress, data, 0);
} else { // } else {
if (physicalAddress >= 0) { if (physicalAddress >= 0) {
return (this.memory[physicalAddress >> 1] = data); this.bus.setShort(physicalAddress, data);
return data;
} }
} // }
} }
return physicalAddress; return physicalAddress;
}; };
@ -980,11 +941,7 @@ CPUStatePDP11.prototype.readByteByAddr = function(physicalAddress)
return this.bus.access_iopage(physicalAddress, -1, 1); return this.bus.access_iopage(physicalAddress, -1, 1);
} else { } else {
if (physicalAddress >= 0) { if (physicalAddress >= 0) {
result = this.memory[physicalAddress >> 1]; return this.bus.getByte(physicalAddress);
if (physicalAddress & 1) {
result = result >> 8;
}
return (result & 0xff);
} }
} }
} }
@ -1009,11 +966,8 @@ CPUStatePDP11.prototype.writeByteByAddr = function(physicalAddress, data)
return this.bus.access_iopage(physicalAddress, data, 1); return this.bus.access_iopage(physicalAddress, data, 1);
} else { } else {
if (physicalAddress >= 0) { if (physicalAddress >= 0) {
if (physicalAddress & 1) { this.bus.setByte(physicalAddress, data);
return (this.memory[physicalAddress >> 1] = (data << 8) | (this.memory[physicalAddress >> 1] & 0xff)); return data;
} else {
return (this.memory[physicalAddress >> 1] = (this.memory[physicalAddress >> 1] & 0xff00) | data);
}
} }
} }
} }
@ -1404,11 +1358,6 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
} }
} }
} }
//if (this.regsGen[7] === this.debugPC) {
//LOG_PRINT();
//
//}
// Initialize this.memory before getting an instruction
if (!(this.MMR0 & 0xe000)) { if (!(this.MMR0 & 0xe000)) {
this.MMR1 = 0; this.MMR1 = 0;
this.MMR2 = this.regsGen[7]; this.MMR2 = this.regsGen[7];
@ -2332,19 +2281,17 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
break; break;
case 0xA0: /*0000240*/ // CLR CC 00024M Part 1 without N case 0xA0: /*0000240*/ // CLR CC 00024M Part 1 without N
case 0xA8: /*0000250*/ // CLR CC 00025M Part 2 with N case 0xA8: /*0000250*/ // CLR CC 00025M Part 2 with N
//LOG_INSTRUCTION(instruction, 10, "CLR CC"); if (instruction & 1) this.clearCF(); // CLC
if (instruction & 1) this.flagC = 0; // CLC if (instruction & 2) this.clearVF(); // CLV
if (instruction & 2) this.flagV = 0; // CLV if (instruction & 4) this.clearZF(); // CLZ
if (instruction & 4) this.flagZ = 1; // CLZ if (instruction & 8) this.clearNF(); // CLN
if (instruction & 8) this.flagN = 0; // CLN
break; break;
case 0xB0: /*0000260*/ // SET CC 00026M Part 1 without N case 0xB0: /*0000260*/ // SET CC 00026M Part 1 without N
case 0xB8: /*0000270*/ // SET CC 00026M Part 2 with N case 0xB8: /*0000270*/ // SET CC 00026M Part 2 with N
//LOG_INSTRUCTION(instruction, 10, "SET CC"); if (instruction & 1) this.setCF(); // SEC
if (instruction & 1) this.flagC = 0x10000; // SEC if (instruction & 2) this.setVF(); // SEV
if (instruction & 2) this.flagV = 0x8000; // SEV if (instruction & 4) this.setZF(); // SEZ
if (instruction & 4) this.flagZ = 0; // SEZ if (instruction & 8) this.setNF(); // SEN
if (instruction & 8) this.flagN = 0x8000; // SEN
break; break;
default: // Misc instructions (decode ALL remaining bits) xxxxxx default: // Misc instructions (decode ALL remaining bits) xxxxxx
switch (instruction) { switch (instruction) {

View file

@ -150,9 +150,9 @@ var PDP11 = {
PRI_SHIFT: 5, PRI_SHIFT: 5,
UNUSED: 0x0700, // bits 8-10: unused UNUSED: 0x0700, // bits 8-10: unused
REGSET: 0x0800, // bit 11: Register Set REGSET: 0x0800, // bit 11: Register Set
PMODE: 0x3000, // bits 12-13: Previous Mode (see PDP11.MODE) PMODE: 0x3000, // bits 12-13: Prev Mode (see PDP11.MODE)
PMODE_SHIFT:12, PMODE_SHIFT:12,
CMODE: 0xC000, // bits 14-15: Current Mode (see PDP11.MODE) CMODE: 0xC000, // bits 14-15: Curr Mode (see PDP11.MODE)
CMODE_SHIFT:14 CMODE_SHIFT:14
}, },
/* /*

View file

@ -57,7 +57,7 @@ var littleEndian = (TYPEDARRAYS? (function() {
})() : false); })() : false);
/** /**
* MemoryPDP11(addr, used, size, type) * MemoryPDP11(addr, used, size, type, controller)
* *
* The Bus component allocates MemoryPDP11 objects so that each has a memory buffer with a * The Bus component allocates MemoryPDP11 objects so that each has a memory buffer with a
* block-granular starting address and an address range equal to bus.nBlockSize; however, * block-granular starting address and an address range equal to bus.nBlockSize; however,
@ -94,8 +94,9 @@ var littleEndian = (TYPEDARRAYS? (function() {
* @param {number} [used] portion of block in bytes (0 for none); must be a multiple of 4 * @param {number} [used] portion of block in bytes (0 for none); must be a multiple of 4
* @param {number} [size] of block's buffer in bytes (0 for none); must be a multiple of 4 * @param {number} [size] of block's buffer in bytes (0 for none); must be a multiple of 4
* @param {number} [type] is one of the MemoryPDP11.TYPE constants (default is MemoryPDP11.TYPE.NONE) * @param {number} [type] is one of the MemoryPDP11.TYPE constants (default is MemoryPDP11.TYPE.NONE)
* @param {Object} [controller] is an optional memory controller component
*/ */
function MemoryPDP11(addr, used, size, type) function MemoryPDP11(addr, used, size, type, controller)
{ {
var i; var i;
this.id = (MemoryPDP11.idBlock += 2); this.id = (MemoryPDP11.idBlock += 2);
@ -106,6 +107,7 @@ function MemoryPDP11(addr, used, size, type)
this.size = size || 0; this.size = size || 0;
this.type = type || MemoryPDP11.TYPE.NONE; this.type = type || MemoryPDP11.TYPE.NONE;
this.fReadOnly = (type == MemoryPDP11.TYPE.ROM); this.fReadOnly = (type == MemoryPDP11.TYPE.ROM);
this.controller = null;
this.copyBreakpoints(); // initialize the block's Debugger info; the caller will reinitialize this.copyBreakpoints(); // initialize the block's Debugger info; the caller will reinitialize
/* /*
@ -129,6 +131,19 @@ function MemoryPDP11(addr, used, size, type)
return; return;
} }
/*
* When a controller is specified, the controller must provide a buffer,
* via getMemoryBuffer(), and memory access functions, via getMemoryAccess().
*/
if (controller) {
this.controller = controller;
var a = controller.getMemoryBuffer(addr);
this.adw = a[0];
this.offset = a[1];
this.setAccess(controller.getMemoryAccess());
return;
}
/* /*
* This is the normal case: allocate a buffer that provides 8 bits of data per address; * This is the normal case: allocate a buffer that provides 8 bits of data per address;
* no controller is required because our default memory access functions (see afnMemory) * no controller is required because our default memory access functions (see afnMemory)
@ -285,7 +300,10 @@ MemoryPDP11.prototype = {
*/ */
save: function() { save: function() {
var adw, i; var adw, i;
if (BYTEARRAYS) { if (this.controller) {
adw = null;
}
else if (BYTEARRAYS) {
adw = new Array(this.size >> 2); adw = new Array(this.size >> 2);
var off = 0; var off = 0;
for (i = 0; i < adw.length; i++) { for (i = 0; i < adw.length; i++) {
@ -327,6 +345,9 @@ MemoryPDP11.prototype = {
* @return {boolean} true if successful, false if block size mismatch * @return {boolean} true if successful, false if block size mismatch
*/ */
restore: function(adw) { restore: function(adw) {
if (this.controller) {
return (adw == null);
}
/* /*
* At this point, it's a consistency error for adw to be null; it's happened once already, * At this point, it's a consistency error for adw to be null; it's happened once already,
* when there was a restore bug in the Video component that added the frame buffer at the video * when there was a restore bug in the Video component that added the frame buffer at the video
@ -809,18 +830,45 @@ MemoryPDP11.prototype = {
/* /*
* This is the effective definition of afnNone, but we need not fully define it, because setAccess() * This is the effective definition of afnNone, but we need not fully define it, because setAccess()
* uses these defaults when any of the 6 handlers (ie, 3 read handlers and 3 write handlers) are undefined. * uses these defaults when any of the 4 handlers (ie, 2 read handlers and 2 write handlers) are undefined.
* *
MemoryPDP11.afnNone = [MemoryPDP11.prototype.readNone, MemoryPDP11.prototype.readShortDefault, MemoryPDP11.prototype.writeNone, MemoryPDP11.prototype.writeShortDefault]; MemoryPDP11.afnNone = [
MemoryPDP11.prototype.readNone,
MemoryPDP11.prototype.readShortDefault,
MemoryPDP11.prototype.writeNone,
MemoryPDP11.prototype.writeShortDefault
];
*/ */
MemoryPDP11.afnNone = [];
MemoryPDP11.afnNone = []; MemoryPDP11.afnMemory = [
MemoryPDP11.afnMemory = [MemoryPDP11.prototype.readByteMemory, MemoryPDP11.prototype.readShortMemory, MemoryPDP11.prototype.writeByteMemory, MemoryPDP11.prototype.writeShortMemory]; MemoryPDP11.prototype.readByteMemory,
MemoryPDP11.afnChecked = [MemoryPDP11.prototype.readByteChecked, MemoryPDP11.prototype.readShortChecked, MemoryPDP11.prototype.writeByteChecked, MemoryPDP11.prototype.writeShortChecked]; MemoryPDP11.prototype.readShortMemory,
MemoryPDP11.prototype.writeByteMemory,
MemoryPDP11.prototype.writeShortMemory
];
MemoryPDP11.afnChecked = [
MemoryPDP11.prototype.readByteChecked,
MemoryPDP11.prototype.readShortChecked,
MemoryPDP11.prototype.writeByteChecked,
MemoryPDP11.prototype.writeShortChecked
];
if (TYPEDARRAYS) { if (TYPEDARRAYS) {
MemoryPDP11.afnArrayBE = [MemoryPDP11.prototype.readByteBE, MemoryPDP11.prototype.readShortBE, MemoryPDP11.prototype.writeByteBE, MemoryPDP11.prototype.writeShortBE]; MemoryPDP11.afnArrayBE = [
MemoryPDP11.afnArrayLE = [MemoryPDP11.prototype.readByteLE, MemoryPDP11.prototype.readShortLE, MemoryPDP11.prototype.writeByteLE, MemoryPDP11.prototype.writeShortLE]; MemoryPDP11.prototype.readByteBE,
MemoryPDP11.prototype.readShortBE,
MemoryPDP11.prototype.writeByteBE,
MemoryPDP11.prototype.writeShortBE
];
MemoryPDP11.afnArrayLE = [
MemoryPDP11.prototype.readByteLE,
MemoryPDP11.prototype.readShortLE,
MemoryPDP11.prototype.writeByteLE,
MemoryPDP11.prototype.writeShortLE
];
} }
if (NODE) module.exports = MemoryPDP11; if (NODE) module.exports = MemoryPDP11;

View file

@ -60,12 +60,9 @@ if (NODE) {
* is the ROM you expected. * is the ROM you expected.
* *
* Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected * Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected
* CP/M binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the * binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the
* simplest solution was to add the option to load binary files into memory as "writable" ROMs. * simplest solution was to add the option to load binary files into memory as "writable" ROMs.
* *
* Moreover, if a "writable" ROM is installed at addr 0x100, that triggers our "Fake CP/M" support, providing
* a quick-and-dirty means of loading simple CP/M test binaries. See addROM() for details.
*
* @constructor * @constructor
* @extends Component * @extends Component
* @param {Object} parmsROM * @param {Object} parmsROM

View file

@ -12,7 +12,7 @@ function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}re
function Ca(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 Da={init:[],show:[],exit:[]},Ea=!1,Fa=!1,Ka=!0;function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Da.init.push(a)} function Ca(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 Da={init:[],show:[],exit:[]},Ea=!1,Fa=!1,Ka=!0;function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Da.init.push(a)}
function Na(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Oa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Pa(a){!Ka&&a?(Ka=!0,Ea&&Qa("init"),Fa&&Qa("show")):Ka=a}function Qa(a){Da[a]&&Na(Da[a])}La("onload",function(){Ea=!0;Na(Da.init)});La("onpageshow",function(){Fa=!0;Na(Da.show)});La(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Na(Da.exit)}); function Na(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Oa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Pa(a){!Ka&&a?(Ka=!0,Ea&&Qa("init"),Fa&&Qa("show")):Ka=a}function Qa(a){Da[a]&&Na(Da[a])}La("onload",function(){Ea=!0;Na(Da.init)});La("onpageshow",function(){Fa=!0;Na(Da.show)});La(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Na(Da.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.Md=b;b=this.id.indexOf(".");0>b?this.cb=this.id:(this.Bb=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,eb:!1,Kb:!1,xa:!1,error:!1};this.Eb=null;this.C.error=!1;this.N={};this.H=null;this.ta=d||0;Ra.push(this)}var Sa=void 0,Va={}; 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.Md=b;b=this.id.indexOf(".");0>b?this.cb=this.id:(this.Bb=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,eb:!1,Kb:!1,xa:!1,error:!1};this.Eb=null;this.C.error=!1;this.N={};this.H=null;this.ta=d||0;Ra.push(this)}var Sa=void 0,Va={};
if(window){Sa||(Sa=window.location.search.substr(1));for(var Wa,Xa=/\+/g,$a=/([^&=]+)=?([^&]*)/g;Wa=$a.exec(Sa);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function ab(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){Sa||(Sa=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Sa);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function ab(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 bb(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var cb=window.PCjs.Machines||(window.PCjs.Machines={}),Ra=window.PCjs.Components||(window.PCjs.Components=[])}else cb={},Ra=[];function db(a,b,c){cb[a]&&b&&(cb[a][b]=c)}function Oa(a,b,c){b||w((c?c+": ":"")+a)} function bb(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var cb=window.PCjs.Machines||(window.PCjs.Machines={}),Ra=window.PCjs.Components||(window.PCjs.Components=[])}else cb={},Ra=[];function db(a,b,c){cb[a]&&b&&(cb[a][b]=c)}function Oa(a,b,c){b||w((c?c+": ":"")+a)}
function eb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ra.length;b++){var d=Ra[b];a&&d.id.indexOf(a)||c.push(d)}return c}function fb(a){if(void 0!==a){var b;for(b=0;b<Ra.length;b++)if(Ra[b].id===a)return Ra[b]}return null}function gb(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<Ra.length;d++)if(c)c==Ra[d]&&(c=null);else if(!(a!=Ra[d].type||b&&Ra[d].id.indexOf(b)))return Ra[d]}return null} function eb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ra.length;b++){var d=Ra[b];a&&d.id.indexOf(a)||c.push(d)}return c}function fb(a){if(void 0!==a){var b;for(b=0;b<Ra.length;b++)if(Ra[b].id===a)return Ra[b]}return null}function gb(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<Ra.length;d++)if(c)c==Ra[d]&&(c=null);else if(!(a!=Ra[d].type||b&&Ra[d].id.indexOf(b)))return Ra[d]}return null}
function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function hb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),m=k.length}}}} function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function hb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),m=k.length}}}}
@ -40,12 +40,12 @@ var kc=[],ec=[G.prototype.Y,G.prototype.fa,G.prototype.ka,G.prototype.za],gc=[G.
function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.sb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}bb(lc);var mc=["power","reset"];l=lc.prototype; function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.sb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}bb(lc);var mc=["power","reset"];l=lc.prototype;
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.oa(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.sb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1}; l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.oa(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.sb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ea=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ja();if(c.za){var d=c.za;c.za=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.sb=function(){return this.C.sb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0}; l.Ea=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ja();if(c.za){var d=c.za;c.za=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.sb=function(){return this.C.sb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0};
function pc(a){void 0===a.ub&&(a.ub=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.ub&&0<a.hb;a.C.fb&&(a.tb=0,a.O=a.ub-a.M)}function sc(a,b){if(a.C.fb){var c=!1;a.tb=a.tb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,pc(a),a.pa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.tb))}} function pc(a){void 0===a.ub&&(a.ub=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.ub&&0<a.hb;a.C.fb&&(a.tb=0,a.O=a.ub-a.M)}function Ec(a,b){if(a.C.fb){var c=!1;a.tb=a.tb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,pc(a),a.pa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.tb))}}
l.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.pa():d.bb())}; l.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.pa():d.bb())};
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.K&&(c=a.K/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ia=0}function Fc(a){return a.M+a.G+a.L-a.b}function oc(a){a.K=0;a.za=0;a.M=a.G=a.L=a.b=0;pc(a);Gc(a,1)} a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.K&&(c=a.K/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ia=0}function Fc(a){return a.M+a.G+a.L-a.b}function oc(a){a.K=0;a.za=0;a.M=a.G=a.L=a.b=0;pc(a);Gc(a,1)}
function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=pa();a.J=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Y*a.Ra/1E3*c,a.w[b][0]=d)}function Lc(a){a.L-=a.b;a.b=0} function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=pa();a.J=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Y*a.Ra/1E3*c,a.w[b][0]=d)}function Lc(a){a.L-=a.b;a.b=0}
l.bb=function(a){if(lb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ia>=this.Y&&Ic(this,!0);this.ba=0;this.ea=pa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a= l.bb=function(a){if(lb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ia>=this.Y&&Ic(this,!0);this.ba=0;this.ea=pa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a=
f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);sc(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.pa();rc(this);this.B&&this.B.stop(pa(),Fc(this));lb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.J=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e=e-(this.J-this.ea);if(f=this.J-this.D)this.K=Math.round(this.G/ f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);Ec(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.pa();rc(this);this.B&&this.B.stop(pa(),Fc(this));lb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.J=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e=e-(this.J-this.ea);if(f=this.J-this.D)this.K=Math.round(this.G/
(10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.K<this.ab)-1E3>e&&(this.D-=e),e=0;this.ia+=this.ba;this.J+=e;c(d,e)}else rc(this),this.B&&this.B.stop(pa(),Fc(this))};l.kb=function(){return 0};l.pa=function(a){mb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function rc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}} (10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.K<this.ab)-1E3>e&&(this.D-=e),e=0;this.ia+=this.ba;this.J+=e;c(d,e)}else rc(this),this.B&&this.B.stop(pa(),Fc(this))};l.kb=function(){return 0};l.pa=function(a){mb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function rc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}}
function Nc(a){this.Ac=+a.model||8080;lc.call(this,a,1E6);this.ka=Oc;oc(this);this.C.complete=this.C.Ld=!1;this.la=0;this.ca=[];this.qa=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.pa();Pc(this);oc(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.na=0;H(a,a.qa);Rc(a,0);a.j=0}function Sc(a,b){a.qa=b;H(a,b)} function Nc(a){this.Ac=+a.model||8080;lc.call(this,a,1E6);this.ka=Oc;oc(this);this.C.complete=this.C.Ld=!1;this.la=0;this.ca=[];this.qa=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.pa();Pc(this);oc(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.na=0;H(a,a.qa);Rc(a,0);a.j=0}function Sc(a,b){a.qa=b;H(a,b)}
l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.na+this.R+Tc(this)|0}; l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.na+this.R+Tc(this)|0};
@ -151,7 +151,7 @@ function Be(a,b,c){var d;if(b){b=Ce(a,b);for(var e=0,f=!1,h=b,g=[],k=[],m=b.spli
d))}return d}function Ce(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Be(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.la}if(null==e)break;c=c.replace(d[0],e.toString())}return c} d))}return d}function Ce(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Be(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.la}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function De(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ea[b],null==e&&(e=aa(b,a.ob))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e} function De(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ea[b],null==e&&(e=aa(b,a.ob))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ee(a,b,c){var d,e=!1;if(void 0!==c){var e=!0,f=c,h=0;d="";if(!h||4<h)h=4;for(var g=0;g<h;g++){d&&(d=","+d);var k=f&255,m=8,p="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(k&1?"1":"0")+p,k>>=1;d=p+d;f>>=8}f=c;h=0;g="";h?11<h&&(h=11):h=f&-65536?11:6;if(null==f||isNaN(f))for(;0<h--;)g="?"+g;else for(;0<h--;)g=String.fromCharCode((f&7)+48)+g,f>>=3;d=t(c,0,!0)+" "+c+". "+("0o"+g)+" "+("0b"+d)}a.g((null!=b?b+": ":"")+d);return e} function Ee(a,b,c){var d,e=!1;if(void 0!==c){var e=!0,f=c,h=0;d="";if(!h||4<h)h=4;for(var g=0;g<h;g++){d&&(d=","+d);var k=f&255,m=8,p="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(k&1?"1":"0")+p,k>>=1;d=p+d;f>>=8}f=c;h=0;g="";h?11<h&&(h=11):h=f&-65536?11:6;if(null==f||isNaN(f))for(;0<h--;)g="?"+g;else for(;0<h--;)g=String.fromCharCode((f&7)+48)+g,f>>=3;d=t(c,0,!0)+" "+c+". "+("0o"+g)+" "+("0b"+d)}a.g((null!=b?b+": ":"")+d);return e}
function Fe(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0<c}function Ge(a){z.call(this,"Debugger",a,Ge);this.style=He;this.M=W();this.Ua=W();this.ca=W();this.G=[];this.I=this.O=this.D=[];Ie(this);this.ia=0;Je(this);this.wa=[];Ke(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return qc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return qc(b,a)})}bb(Ge,ye); function Fe(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0<c}function Ge(a){ye.call(this,a);this.style=He;this.M=W();this.Ua=W();this.ca=W();this.G=[];this.I=this.O=this.D=[];Ie(this);this.ia=0;Je(this);this.wa=[];Ke(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return qc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return qc(b,a)})}bb(Ge,ye);
var Le={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"}, var Le={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
He=8080,Me="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Ne="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "), He=8080,Me="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Ne="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
Oe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Pe=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963, Oe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Pe=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,
@ -174,7 +174,7 @@ function wf(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Mb(b,c+1
' "'+uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+X(W(this.b.R).F));if(this.ta&1073741824)this.qa.push(a);else if(!this.ka||a!=this.ka)if(this.ka=a,this.ta&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Lc(c);c.P=0;rc(c)}}; ' "'+uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+X(W(this.b.R).F));if(this.ta&1073741824)this.qa.push(a);else if(!this.ka||a!=this.ka)if(this.ka=a,this.ta&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Lc(c);c.P=0;rc(c)}};
function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ta&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=h?": "+ba(h):"")+(null!=e?" at "+X(e):""))} function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ta&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=h?": "+ba(h):"")+(null!=e?" at "+X(e):""))}
function Je(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.fa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.bb=function(a){if(!xf(this))return!1;this.b.bb(a);return!0}; function Je(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.fa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.bb=function(a){if(!xf(this))return!1;this.b.bb(a);return!0};
l.kb=function(a,b,c){if(!xf(this))return!1;this.J=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.J+=d,Hc(this.b,d,!0),sc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,ob(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.Ja(b||!1);return 0<this.J};l.pa=function(a){this.b&&this.b.pa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.Y?yf(this):zf(this)}; l.kb=function(a,b,c){if(!xf(this))return!1;this.J=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.J+=d,Hc(this.b,d,!0),Ec(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,ob(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.Ja(b||!1);return 0<this.J};l.pa=function(a){this.b&&this.b.pa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.Y?yf(this):zf(this)};
function xf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Je(this);this.ba=this.la=0;this.ka=null;this.J=0;this.M=W(this.b.R);this.C.Aa=!1;Af(this);a||this.Ja()}; function xf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Je(this);this.ba=this.la=0;this.ka=null;this.J=0;this.M=W(this.b.R);this.C.Aa=!1;Af(this);a||this.Ja()};
l.save=function(){var a=new Uc(this);I(a,0,Te(this.M));I(a,1,Te(this.ca));I(a,2,[this.w,this.P,this.ta]);I(a,3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Ue(a[b++]),this.ca=Ue(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.pb=b}; l.save=function(){var a=new Uc(this);I(a,0,Te(this.M));I(a,1,Te(this.ca));I(a,2,[this.w,this.P,this.ta]);I(a,3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Ue(a[b++]),this.ca=Ue(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.pb=b};
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.J=b-this.pb;if(!this.Y){var c="stopped";if(this.J){var d=a-this.nb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Id(this)&&(c+=this.ba+" opcodes, ",this.la-=this.ba,this.ba=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.xb();Af(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ia} l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.J=b-this.pb;if(!this.Y){var c="stopped";if(this.J){var d=a-this.nb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Id(this)&&(c+=this.ba+" opcodes, ",this.la-=this.ba,this.ba=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.xb();Af(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ia}
@ -203,12 +203,12 @@ a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)"
"i"==y?a.g("breakpoint "+(Fb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Kb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=B.F&&(Ve(a,B,C),"p"==y?a.Za(a.I,B):"r"==y?a.Za(a.O,B):"w"==y?a.Za(a.D,B):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var R,ca=f[0],Z=f[1],va=f[2],Hb=f[3];if("?"==Z){var Ga="";for(R in tb)a.wa[R]&&(Ga&&(Ga+=","),Ga+=R);Ga+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a"); "i"==y?a.g("breakpoint "+(Fb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Kb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=B.F&&(Ve(a,B,C),"p"==y?a.Za(a.I,B):"r"==y?a.Za(a.O,B):"w"==y?a.Za(a.D,B):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var R,ca=f[0],Z=f[1],va=f[2],Hb=f[3];if("?"==Z){var Ga="";for(R in tb)a.wa[R]&&(Ga&&(Ga+=","),Ga+=R);Ga+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");
a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ga.length&&a.g("dump extension commands:\n\t"+Ga)}else if("state"==Z){var We=Rf(a.B,!0);"console"==va?console.log(We):(a.Ga&&(a.Ga.value=""),a.g(We))}else if("symbols"==Z)for(var nd=0;nd<a.G.length;nd++){var od=a.G[nd],pb;for(pb in od.Qa)if("."!=pb.charAt(0)){var Xe=od.Qa[pb].o;if(void 0!==Xe){var Ye=od.Qa[pb].l;Ye&&(pb=Ye);a.g(X(Xe)+" "+pb)}}}else{if("d"== a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ga.length&&a.g("dump extension commands:\n\t"+Ga)}else if("state"==Z){var We=Rf(a.B,!0);"console"==va?console.log(We):(a.Ga&&(a.Ga.value=""),a.g(We))}else if("symbols"==Z)for(var nd=0;nd<a.G.length;nd++){var od=a.G[nd],pb;for(pb in od.Qa)if("."!=pb.charAt(0)){var Xe=od.Qa[pb].o;if(void 0!==Xe){var Ye=od.Qa[pb].l;Ye&&(pb=Ye);a.g(X(Xe)+" "+pb)}}}else{if("d"==
ca){for(R in tb)if(f[1]==R){var Ze=a.wa[R];Ze?(f.shift(),f.shift(),Ze(f)):a.g("no dump registered for "+Z);break a}Z||(ca=a.rb||"db")}else a.rb=ca;if("dh"==ca){var $e=Z,af=va,bf="",cf=0,da=a.fa,Ha=a.L;if(Ha.length){var ia=+$e||a.Wa,qb=+af||10;isNaN(ia)?ia=qb:bf="more ";ia>Ha.length&&(a.g("note: only "+Ha.length+" available"),ia=Ha.length);da-=ia;0>da&&(null==Ha[Ha.length-1].F?(ia=da+ia,da=0):da+=Ha.length);var pd=[];"call"==af&&(qb=1E5,pd=["CALL"]);for(void 0!==$e&&a.g(ia+" instructions earlier:");0< ca){for(R in tb)if(f[1]==R){var Ze=a.wa[R];Ze?(f.shift(),f.shift(),Ze(f)):a.g("no dump registered for "+Z);break a}Z||(ca=a.rb||"db")}else a.rb=ca;if("dh"==ca){var $e=Z,af=va,bf="",cf=0,da=a.fa,Ha=a.L;if(Ha.length){var ia=+$e||a.Wa,qb=+af||10;isNaN(ia)?ia=qb:bf="more ";ia>Ha.length&&(a.g("note: only "+Ha.length+" available"),ia=Ha.length);da-=ia;0>da&&(null==Ha[Ha.length-1].F?(ia=da+ia,da=0):da+=Ha.length);var pd=[];"call"==af&&(qb=1E5,pd=["CALL"]);for(void 0!==$e&&a.g(ia+" instructions earlier:");0<
qb&&da!=a.fa;){var df=Ha[da++];if(null==df.F)break;var Lb=W(df.F),jg=ia--,ef=Ff(a,Lb,"history",jg);(!pd.length||0<=ef.indexOf(pd[0]))&&a.g(ef);Lb.Lb&&(da+=Lb.Lb,qb-=Lb.Lb,ia-=Lb.Lb);da>=Ha.length&&(da=0);a.Wa=ia;cf++;qb--}}cf||(a.g("no "+bf+"history available"),a.Wa=void 0)}else{var tc=Re(a,Z);if(tc){var uc=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Hb),uc=De(a,va)>>>0,65536<uc&&(uc=65536));for(var Ya="",vc="dd"==ca?4:"dw"==ca?2:1,wc=vc*uc||128,kg=wc+15>>4||1;kg--&&0<wc;){var xc=0,qd=0,Mb,Nb="", qb&&da!=a.fa;){var df=Ha[da++];if(null==df.F)break;var Lb=W(df.F),jg=ia--,ef=Ff(a,Lb,"history",jg);(!pd.length||0<=ef.indexOf(pd[0]))&&a.g(ef);Lb.Lb&&(da+=Lb.Lb,qb-=Lb.Lb,ia-=Lb.Lb);da>=Ha.length&&(da=0);a.Wa=ia;cf++;qb--}}cf||(a.g("no "+bf+"history available"),a.Wa=void 0)}else{var sc=Re(a,Z);if(sc){var tc=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Hb),tc=De(a,va)>>>0,65536<tc&&(tc=65536));for(var Za="",uc="dd"==ca?4:"dw"==ca?2:1,vc=uc*tc||128,kg=vc+15>>4||1;kg--&&0<vc;){var wc=0,qd=0,Mb,Nb="",
rd="",Z=X(tc.F);for(Mb=16;0<Mb&&0<wc;Mb--){var yc=a.aa(tc,1),xc=xc|yc<<(qd++<<3);qd==vc&&(Nb+=t(xc,2*vc),Nb+=1==vc?9==Mb?"-":" ":" ",xc=qd=0);rd+=32<=yc&&128>yc?String.fromCharCode(yc):".";wc--}Ya&&(Ya+="\n");Ya+=Z+" "+Nb+(0==Mb?" "+rd:"")}Ya&&a.g(Ya);a.Ua=tc}}}}break;case "e":if("else"==f[0])break;var zc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(zc=2,ff=65535,gf=a.$a,hf=a.Ib);var jf=zc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); rd="",Z=X(sc.F);for(Mb=16;0<Mb&&0<vc;Mb--){var xc=a.aa(sc,1),wc=wc|xc<<(qd++<<3);qd==uc&&(Nb+=t(wc,2*uc),Nb+=1==uc?9==Mb?"-":" ":" ",wc=qd=0);rd+=32<=xc&&128>xc?String.fromCharCode(xc):".";vc--}Za&&(Za+="\n");Za+=Z+" "+Nb+(0==Mb?" "+rd:"")}Za&&a.g(Za);a.Ua=sc}}}}break;case "e":if("else"==f[0])break;var yc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(yc=2,ff=65535,gf=a.$a,hf=a.Ib);var jf=yc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");
else{var Ac=Re(a,kf);if(Ac)for(var Bc=2;Bc<f.length;Bc++){var Ob=Be(a,f[Bc]);if(void 0===Ob){a.g("unrecognized value: "+f[Bc]);break}Ob&~ff&&a.g("warning: "+t(Ob)+" exceeds "+zc+"-byte value");var lg=gf.call(a,Ac);a.g("changing "+X(Ac.F)+" from "+t(lg,jf,!0)+" to "+t(Ob,jf,!0));hf.call(a,Ac,Ob,zc)}}break;case "f":Lf(a,f[1]);break;case "g":a:{var lf=f[1],mg=b;if(void 0!==lf){var sd=Re(a,lf,!0);if(!sd)break a;Ve(a,sd,mg);a.Za(a.I,sd,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break; else{var zc=Re(a,kf);if(zc)for(var Ac=2;Ac<f.length;Ac++){var Ob=Be(a,f[Ac]);if(void 0===Ob){a.g("unrecognized value: "+f[Ac]);break}Ob&~ff&&a.g("warning: "+t(Ob)+" exceeds "+yc+"-byte value");var lg=gf.call(a,zc);a.g("changing "+X(zc.F)+" from "+t(lg,jf,!0)+" to "+t(Ob,jf,!0));hf.call(a,zc,Ob,yc)}}break;case "f":Lf(a,f[1]);break;case "g":a:{var lf=f[1],mg=b;if(void 0!==lf){var sd=Re(a,lf,!0);if(!sd)break a;Ve(a,sd,mg);a.Za(a.I,sd,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var td;if(a.C.Aa)td="halting",a.pa();else{if(mb(a,!0))break a;td="already halted"}c||a.g(td)}break;case "i":if("if"==f[0]){var ud;var Pb=b.substr(2),Pb=ma(Pb);Be(a,Pb)?(c||a.g("true: "+Pb),ud=!0):(c||a.g("false: "+Pb),ud=!1);ud||(d=!1);break}if("int"==f[0]){var Cc;var ng=f[1];if(a.b.ua&512){var vd=Be(a,ng);null==vd?Cc=!1:(a.g("requesting interrupt level "+vd),Hd(a.b,vd),Cc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Cc=!1;Cc||(d=!1);break}var wd=f[1];if(wd&&"?"!=wd){var xd= case "h":a:{var td;if(a.C.Aa)td="halting",a.pa();else{if(mb(a,!0))break a;td="already halted"}c||a.g(td)}break;case "i":if("if"==f[0]){var ud;var Pb=b.substr(2),Pb=ma(Pb);Be(a,Pb)?(c||a.g("true: "+Pb),ud=!0):(c||a.g("false: "+Pb),ud=!1);ud||(d=!1);break}if("int"==f[0]){var Bc;var ng=f[1];if(a.b.ua&512){var vd=Be(a,ng);null==vd?Bc=!1:(a.g("requesting interrupt level "+vd),Hd(a.b,vd),Bc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Bc=!1;Bc||(d=!1);break}var wd=f[1];if(wd&&"?"!=wd){var xd=
De(a,wd);if(void 0!==xd){var og=Ib(a.u,xd);a.g(v(xd)+": "+ba(og))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var pg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yd=0,mf=W(),Qb=W(a.b.na);for(a.g("stack trace for "+X(Qb.F));10>yd;){for(var Za=null,qg=256;65536>Qb.F>>>0;){mf.F=a.$a(Qb,2);if(null==Qb.F||!qg--)break;for(var rg=a,Dc=mf,nf= De(a,wd);if(void 0!==xd){var og=Ib(a.u,xd);a.g(v(xd)+": "+ba(og))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var pg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yd=0,mf=W(),Qb=W(a.b.na);for(a.g("stack trace for "+X(Qb.F));10>yd;){for(var $a=null,qg=256;65536>Qb.F>>>0;){mf.F=a.$a(Qb,2);if(null==Qb.F||!qg--)break;for(var rg=a,Cc=mf,nf=
null,Rb=Dc.F,of=Rb,zd=1;6>=zd&&Rb;zd++){if(2<zd){Dc.F=Rb;var Ec=Ff(rg,Dc);if(0<=Ec.indexOf("CALL")){var pf=Ec.indexOf(" ");if(Rb+(Ec.indexOf(" ",pf+1)-pf-1)/2==of){nf=Ec;break}}}Rb--}Dc.F=of;if(Za=nf)break}if(!Za||null==Za)break;var qf=null;if("ks"==pg){var rf=Za.match(/[0-9A-F]+$/);rf&&(qf=Nf(a,rf[0]))}Za=la(Za,50)+" ;"+(qf||"stack="+X(Qb.F));a.g(Za);yd++}yd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Nf(a,f[1],!0);break}break;case "m":a:{var Ia,Ja=null,O=f[1];"?"==O&&(O=void 0); null,Rb=Cc.F,of=Rb,zd=1;6>=zd&&Rb;zd++){if(2<zd){Cc.F=Rb;var Dc=Ff(rg,Cc);if(0<=Dc.indexOf("CALL")){var pf=Dc.indexOf(" ");if(Rb+(Dc.indexOf(" ",pf+1)-pf-1)/2==of){nf=Dc;break}}}Rb--}Cc.F=of;if($a=nf)break}if(!$a||null==$a)break;var qf=null;if("ks"==pg){var rf=$a.match(/[0-9A-F]+$/);rf&&(qf=Nf(a,rf[0]))}$a=la($a,50)+" ;"+(qf||"stack="+X(Qb.F));a.g($a);yd++}yd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Nf(a,f[1],!0);break}break;case "m":a:{var Ia,Ja=null,O=f[1];"?"==O&&(O=void 0);
if(void 0!==O){var Ta=0;if("all"==O)Ta=1878917119,O=null;else if("on"==O)Ja=!0,O=null;else if("off"==O)Ja=!1,O=null;else{"keys"==O&&(O="key");"kbd"==O&&(O="keyboard");for(Ia in tb)if(O==Ia){Ta=tb[Ia];Ja=!!(a.ta&Ta);break}if(!Ta){a.g("unknown message category: "+O);break a}}if(Ta)if("on"==f[2])a.ta|=Ta,Ja=!0;else if("off"==f[2]&&(a.ta&=~Ta,Ja=!1,1073741824==Ta)){for(var Ad=0;Ad<a.qa.length;Ad++)a.g(a.qa[Ad]);a.qa=[]}}var sg=0,Ua="";for(Ia in tb)if(!O||O==Ia){var tg=!!(a.ta&tb[Ia]);if(null===Ja||Ja== if(void 0!==O){var Ta=0;if("all"==O)Ta=1878917119,O=null;else if("on"==O)Ja=!0,O=null;else if("off"==O)Ja=!1,O=null;else{"keys"==O&&(O="key");"kbd"==O&&(O="keyboard");for(Ia in tb)if(O==Ia){Ta=tb[Ia];Ja=!!(a.ta&Ta);break}if(!Ta){a.g("unknown message category: "+O);break a}}if(Ta)if("on"==f[2])a.ta|=Ta,Ja=!0;else if("off"==f[2]&&(a.ta&=~Ta,Ja=!1,1073741824==Ta)){for(var Ad=0;Ad<a.qa.length;Ad++)a.g(a.qa[Ad]);a.qa=[]}}var sg=0,Ua="";for(Ia in tb)if(!O||O==Ia){var tg=!!(a.ta&tb[Ia]);if(null===Ja||Ja==
tg)Ua&&(Ua+=","),++sg%10||(Ua+="\n\t"),"key"==Ia&&(Ia="keys"),Ua+=Ia}void 0===O&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ua||"none"));Je(a)}break;case "o":var Bd=f[1],ug=f[2];if(Bd&&"?"!=Bd){var Cd=De(a,Bd,"port #"),Dd=De(a,ug);void 0!==Cd&&void 0!==Dd&&(Ub(a.u,Cd,Dd),a.g(v(Cd)+": "+ba(Dd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state"); tg)Ua&&(Ua+=","),++sg%10||(Ua+="\n\t"),"key"==Ia&&(Ia="keys"),Ua+=Ia}void 0===O&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ua||"none"));Je(a)}break;case "o":var Bd=f[1],ug=f[2];if(Bd&&"?"!=Bd){var Cd=De(a,Bd,"port #"),Dd=De(a,ug);void 0!==Cd&&void 0!==Dd&&(Ub(a.u,Cd,Dd),a.g(v(Cd)+": "+ba(Dd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Pf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,vg=1+sf;if(a.Y)a.g("step in progress");else{var Ed=W(a.b.R);switch(a.aa(Ed)){case 205:a.Y=vg,Se(Ed,3)}a.Y?(a.Za(a.I,Ed,!0),a.bb()||(a.B&&a.B.xb(),a.Y=0)):Qf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}yf(a,f);break;case "s":Of(a,f);break;case "t":Qf(a,f[0],f[1]);break;case "u":zf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.0 ("+a.b.Ac+",RELEASE"+ break;case "p":if("print"==f[0]){Pf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,vg=1+sf;if(a.Y)a.g("step in progress");else{var Ed=W(a.b.R);switch(a.aa(Ed)){case 205:a.Y=vg,Se(Ed,3)}a.Y?(a.Za(a.I,Ed,!0),a.bb()||(a.B&&a.B.xb(),a.Y=0)):Qf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}yf(a,f);break;case "s":Of(a,f);break;case "t":Qf(a,f[0],f[1]);break;case "u":zf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.0 ("+a.b.Ac+",RELEASE"+

View file

@ -5,169 +5,173 @@ function ha(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf(
function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ua(a,b,d){var c=0,e=a.length,f=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<e;){var h=c+e>>1,g;g=d(b,a[h]);0<g?c=h+1:(e=h,f=!g)}return f?c:~c}var va=Date.now||function(){return+new Date};function wa(){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 qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ua(a,b,d){var c=0,e=a.length,f=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<e;){var h=c+e>>1,g;g=d(b,a[h]);0<g?c=h+1:(e=h,f=!g)}return f?c:~c}var va=Date.now||function(){return+new Date};function wa(){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 xa(a,b,d,c){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return c&&c(a,f,e),[f,e];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),c&&c(a,f,e))});if(b&&"object"== function xa(a,b,d,c){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return c&&c(a,f,e),[f,e];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),c&&c(a,f,e))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(f=g.responseText,200!=g.status&&(e=g.status||-1),c&&c(a,f,e),h=[f,e]);return h}function ma(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(f=g.responseText,200!=g.status&&(e=g.status||-1),c&&c(a,f,e),h=[f,e]);return h}function ma(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Aa(){if(null==za){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}za=a}return za}function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b} function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Aa(){if(null==za){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}za=a}return za}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Ia(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 Ja(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()} function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Ia(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 Ja(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Ka(a,b){function d(){b(100===c)&&(e=setTimeout(d,c),c=100)}var c=0,e=null,f=!1;a.onmousedown=function(){f||e||(c=500,d())};a.ontouchstart=function(){e||(c=500,d())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)} function Ka(a,b){function d(){b(100===c)&&(e=setTimeout(d,c),c=100)}var c=0,e=null,f=!1;a.onmousedown=function(){f||e||(c=500,d())};a.ontouchstart=function(){e||(c=500,d())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)}); function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.kb=b.comment;this.Eb=b;b=this.id.indexOf(".");0>b?this.Ma=this.id:(this.lb=this.id.substr(0,b),this.Ma=this.id.substr(b+1));this[a]=d;this.A={ready:!1,Ga:!1,$a:!1,Z:!1,error:!1};this.Xa=null;this.A.error=!1;this.L={};this.I=null;this.$=c||0;x.push(this)}var Ua=void 0,Va={}; function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.qb=b.comment;this.Jb=b;b=this.id.indexOf(".");0>b?this.cb=this.id:(this.rb=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,Ga:!1,eb:!1,$:!1,error:!1};this.$a=null;this.A.error=!1;this.K={};this.I=null;this.aa=c||0;x.push(this)}var Ua=void 0,Va={};
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b} if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function y(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},x=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var c=x[b];a&&c.id.indexOf(a)||d.push(c)}return d} function y(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},x=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var c=x[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<x.length;c++)if(d)d==x[c]&&(d=null);else if(!(a!=x[c].type||b&&x[c].id.indexOf(b)))return x[c]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b} function mb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<x.length;c++)if(d)d==x[c]&&(d=null);else if(!(a!=x[c].type||b&&x[c].id.indexOf(b)))return x[c]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
function nb(a,b){for(var d=C(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var e=d[c].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=B(h))&&g.binding&&a.ha(g.type,g.binding,h,g.value),l=k.length}}}} function nb(a,b){for(var d=C(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var e=d[c].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=B(h))&&g.binding&&a.ha(g.type,g.binding,h,g.value),l=k.length}}}}
function C(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)e.test(a[b].className)&&d.push(a[b]);return d} function C(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)e.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ha:function(a,b,d){switch(b){case "clear":return this.L[b]||(this.L[b]=d,d.onclick=function(a){return function(){a.L.print&&(a.L.print.value="")}}(this)),!0;case "print":return this.L[b]||(this.xa=this.L[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d), u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ha:function(a,b,d){switch(b){case "clear":return this.K[b]||(this.K[b]=d,d.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.wa=this.K[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
this.ea=function(a){this.g(a,this.Ma)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Ma+": "+a)},ea:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},sa:function(){return this.A.Z=!0},ra:function(a,b){b&&(this.A.Z=!1);return!0}};function ob(a,b){if(a.I){a===a.I?b|=0:b=b||a.$;var d=a.I.$&b;return!!b&&d===b||!!(d&a.I.zb)}return!1} this.ea=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ea:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},ta:function(){return this.A.$=!0},sa:function(a,b){b&&(this.A.$=!1);return!0}};function ob(a,b){if(a.I){a===a.I?b|=0:b=b||a.aa;var d=a.I.aa&b;return!!b&&d===b||!!(d&a.I.Eb)}return!1}
function pb(a,b){if(a.A.$a)return a.A.Ga&&(a.A.Ga=!1),a.A.$a=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.Ga=b;return a.A.Ga}function qb(a,b){a.A.Ga&&(b?a.A.$a=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Ga}function E(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.ea(b)} function pb(a,b){if(a.A.eb)return a.A.Ga&&(a.A.Ga=!1),a.A.eb=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.Ga=b;return a.A.Ga}function qb(a,b){a.A.Ga&&(b?a.A.eb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Ga}function E(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.$a;a.$a=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.$a=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.ea(b)}
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}y(ub);m=ub.prototype;m.ha=function(a,b,d,c){return this.w&&this.w.ha(a,b,d,c)||this.f&&this.f.ha(a,b,d,c)||this.I&&this.I.ha(a,b,d,c)?!0:this.parent.ha.call(this,a,b,d,c)};m.ya=function(a,b,d,c){this.w=a;this.H=b;this.f=d;this.I=c}; var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}y(ub);m=ub.prototype;m.ha=function(a,b,d,c){return this.u&&this.u.ha(a,b,d,c)||this.f&&this.f.ha(a,b,d,c)||this.I&&this.I.ha(a,b,d,c)?!0:this.parent.ha.call(this,a,b,d,c)};m.xa=function(a,b,d,c){this.u=a;this.F=b;this.f=d;this.I=c};
m.sa=function(a,b){b||vb();return!0};m.ra=function(){return!0};m.ia=function(){};function vb(){for(var a=!1,b=C(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],e=B(c),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new ub(e));nb(f,c);a&&E(f)}}Qa(vb); m.ta=function(a,b){b||vb();return!0};m.sa=function(){return!0};m.ja=function(){};function vb(){for(var a=!1,b=C(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],e=B(c),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new ub(e));nb(f,c);a&&E(f)}}Qa(vb);
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.I=d;this.B=a.busWidth||16;this.G=Math.pow(2,this.B);this.w=this.G-1|0;this.ba=16>=this.B?10:20>=this.B?12:24>=this.B?14:15;this.ma=1<<this.ba;this.J=this.ma>>2;this.H=this.ma-1;this.F=this.G/this.ma|0;this.K=this.F-1;a=new G;xb(a,this.I);this.P=Array(this.F);for(b=0;b<this.F;b++)this.P[b]=a;E(this)}y(wb);wb.prototype.reset=function(){};wb.prototype.sa=function(a,b){b||this.reset();return!0}; function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.I=d;this.H=a.busWidth||16;this.J=Math.pow(2,this.H);this.u=this.J-1|0;this.S=(this.H>>1)+2;10>this.S&&(this.S=10);15<this.S&&(this.S=15);this.ma=1<<this.S;this.L=this.ma>>2;this.F=this.ma-1;this.G=this.J/this.ma|0;this.B=this.G-1;a=new G;xb(a,this.I);this.M=Array(this.G);for(b=0;b<this.G;b++)this.M[b]=a;this.Oa=Array(4);this.Oa[0]=this.Nb;this.Oa[1]=this.Ob;this.Oa[2]=this.Pb;this.Oa[3]=this.Qb;yb(this,4186112,8192,zb,this);E(this)}y(wb);
function yb(a,b,d,c){for(var e=b,f=d,h=e>>>a.ba;0<f&&h<a.P.length;){var g=a.P[h],k=h*a.ma,l=a.ma-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==c){if(e+f<=g.D)return g.Va+=g.D-e,g.D=e,!0;if(e>=g.D+g.Va){l=g.size-(e-k);l>f&&(l=f);g.Va=e-g.D+l;e=k+a.ma;f-=l;h++;continue}}return zb(1,e,f)}e=new G(e,l,a.ma,c);xb(e,a.I,g);a.P[h++]=e;e=k+a.ma;f-=l}return 0>=f?(a.status(Math.floor(d/1024)+"Kb "+Ab[c]+" at "+r(b,8,!0)),!0):zb(2,b,d)} m=wb.prototype;m.Nb=function(){return 0};m.Ob=function(){return 0};m.Pb=function(){};m.Qb=function(){};m.reset=function(){};m.ta=function(a,b){b||this.reset();return!0};
function Bb(a,b){var d=b&a.H,c=(b&a.w)>>>a.ba;return d!=a.H?a.P[c].ub(d,b):a.P[c++].Ta(d,b)|a.P[c&a.K].Ta(0,b+1)<<8}function zb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}var Cb;if(tb){var Ob=new ArrayBuffer(2);(new DataView(Ob)).setUint16(0,256,!0);Cb=256===(new Uint16Array(Ob))[0]}else Cb=!1;var Pb=Cb; function yb(a,b,d,c,e){for(var f=b,h=d,g=f>>>a.S;0<h&&g<a.M.length;){var k=a.M[g],l=g*a.ma,n=a.ma-(f-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==e){if(f+h<=k.D)return k.Ya+=k.D-f,k.D=f,!0;if(f>=k.D+k.Ya){n=k.size-(f-l);n>h&&(n=h);k.Ya=f-k.D+n;f=l+a.ma;h-=n;g++;continue}}return Ab(1,f,h)}f=new G(f,n,a.ma,c,e);xb(f,a.I,k);a.M[g++]=f;f=l+a.ma;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Bb[c]+" at "+r(b,8,!0)),!0):Ab(2,b,d)}
function G(a,b,d,c){this.id=Qb+=2;this.f=null;this.D=a;this.Va=b;this.size=d||0;this.type=c||Rb;this.J=c==Sb;xb(this);this.va=this.Bb=!1;if(d)if(tb)this.F=new ArrayBuffer(d),this.G=new DataView(this.F,0,d),this.H=new Uint8Array(this.F,0,d),this.N=new Uint16Array(this.F,0,d>>1),this.f=new Int32Array(this.F,0,d>>2),Tb(this,Pb?Ub:Vb);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;Tb(this,Wb)}else Tb(this)}var Rb=0,Sb=2,Ab=["NONE","RAM","ROM","VID","H/W"],Qb=0; m.Sa=function(a){return this.M[(a&this.u)>>>this.S].Ka(a&this.F,a)};m.pa=function(a){var b=a&this.F,d=(a&this.u)>>>this.S;return b!=this.F?this.M[d].Ab(b,a):this.M[d++].Ka(b,a)|this.M[d&this.B].Ka(0,a+1)<<8};function Cb(a,b){var d=b&a.F,c=(b&a.u)>>>a.S;return d!=a.F?a.M[c].hb(d,b):a.M[c++].Wa(d,b)|a.M[c&a.B].Wa(0,b+1)<<8}m.bb=function(a,b){this.M[(a&this.u)>>>this.S].Ma(a&this.F,b&255,a)};
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.G.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.G.setInt32(b<<2,a[b],!0);else this.f=a;return this.va=!0}return!1},wa:function(a,b){b?0===this.w++&&Xb(this,Yb,!1):0===this.L++&&Zb(this,Yb,!1)},O:function(){this.I&&ob(this.I,129)&&this.I.message("attempt to read invalid block %"+r(this.D),!0); m.ib=function(a,b){var d=a&this.F,c=(a&this.u)>>>this.S;d!=this.F?this.M[c].Cb(d,b&65535,a):(this.M[c++].Ma(d,b&255,a),this.M[c&this.B].Ma(0,b>>8&255,a+1))};function Ab(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}var Db;if(tb){var Pb=new ArrayBuffer(2);(new DataView(Pb)).setUint16(0,256,!0);Db=256===(new Uint16Array(Pb))[0]}else Db=!1;var Qb=Db;
return 255},B:function(a,b){this.I&&ob(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},X:function(a,b){return this.K(a++,b++)|this.K(a,b)<<8},pa:function(a,b,d){this.M(a++,b&255,d++);this.M(a,b>>8,d)},U:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},da:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ka:function(a,b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.va=!0},ua:function(a, function G(a,b,d,c,e){this.id=Rb+=2;this.f=null;this.D=a;this.Ya=b;this.size=d||0;this.type=c||Sb;this.K=c==Tb;this.controller=null;xb(this);this.ua=this.Gb=!1;if(d)if(e)this.controller=e,this.f=null,Ub(this,e.Oa);else if(tb)this.H=new ArrayBuffer(d),this.J=new DataView(this.H,0,d),this.F=new Uint8Array(this.H,0,d),this.N=new Uint16Array(this.H,0,d>>1),this.f=new Int32Array(this.H,0,d>>2),Ub(this,Qb?Vb:Wb);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;Ub(this,Xb)}else Ub(this)}
b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.va=!0},S:function(a,b){if(this.I&&null!=this.D){var d=this.I;$b(d,this.D+a,1,d.R)&&d.ca(!0)}return this.Ta(a,b)},W:function(a,b){if(this.I&&null!=this.D){var d=this.I;$b(d,this.D+a,2,d.R)&&d.ca(!0)}return this.ub(a,b)},ga:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;$b(c,this.D+a,1,c.J)&&c.ca(!0)}this.J?this.B(a,b,d):this.La(a,b,d)},na:function(a, var Sb=0,Tb=2,zb=4,Bb=["NONE","RAM","ROM","VID","H/W"],Rb=0;
b,d){if(this.I&&null!=this.D){var c=this.I;$b(c,this.D+a,2,c.J)&&c.ca(!0)}this.J?this.B(a,b,d):this.wb(a,b,d)},R:function(a){return this.H[a]},T:function(a){return this.H[a]},V:function(a){return this.G.getUint16(a,!0)},Y:function(a){return a&1?this.H[a]|this.H[a+1]<<8:this.N[a>>1]},fa:function(a,b){this.H[a]=b;this.va=!0},ja:function(a,b){this.H[a]=b;this.va=!0},la:function(a,b){this.G.setUint16(a,b,!0);this.va=!0},Ma:function(a,b){a&1?(this.H[a]=b,this.H[a+1]=b>>8):this.N[a>>1]=b;this.va=!0}}; G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.ua=!0}return!1},va:function(a,b){b?0===this.B++&&Yb(this,Zb,!1):0===this.u++&&$b(this,Zb,!1)},O:function(){this.I&&ob(this.I,129)&&
function xb(a,b,d){a.I=b;a.L=a.w=0;d&&((a.L=d.L)&&Zb(a,Yb,!1),(a.w=d.w)&&Xb(a,Yb,!1))}function ac(a,b){b?0===--a.w&&(a.M=a.J?a.B:a.La):0===--a.L&&(a.K=a.Ta)}function Xb(a,b,d){d&&a.w||(a.M=!a.J&&b[2]||a.B);if(d||void 0===d)a.La=b[2]||a.B,a.wb=b[3]||a.pa}function Zb(a,b,d){d&&a.L||(a.K=b[0]||a.O);if(d||void 0===d)a.Ta=b[0]||a.O,a.ub=b[1]||a.X}function Tb(a,b){b||(b=bc);Zb(a,b,void 0);Xb(a,b,void 0)} this.I.message("attempt to read invalid block %"+r(this.D),!0);return 255},G:function(a,b){this.I&&ob(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},P:function(a,b){return this.Ka(a++,b++)|this.Ka(a,b)<<8},L:function(a,b,d){this.Ma(a++,b&255,d++);this.Ma(a,b>>8,d)},V:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},Z:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ia:function(a,b){var d=a>>2,c=(a&
var bc=[],Wb=[G.prototype.U,G.prototype.da,G.prototype.ka,G.prototype.ua],Yb=[G.prototype.S,G.prototype.W,G.prototype.ga,G.prototype.na];if(tb)var Vb=[G.prototype.R,G.prototype.V,G.prototype.fa,G.prototype.la],Ub=[G.prototype.T,G.prototype.Y,G.prototype.ja,G.prototype.Ma]; 3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.ua=!0},qa:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.ua=!0},T:function(a,b){if(this.I&&null!=this.D){var d=this.I;ac(d,this.D+a,1,d.R)&&d.ca(!0)}return this.Wa(a,b)},X:function(a,b){if(this.I&&null!=this.D){var d=this.I;ac(d,this.D+a,2,d.R)&&d.ca(!0)}return this.hb(a,b)},fa:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;ac(c,this.D+a,1,
function cc(a,b){u.call(this,"CPU",a,cc,1);var d=a.multiplier||1;this.Fa=a.cycles||b;this.Aa=d;this.ua=Math.round(this.Fa/1E4)/100;this.za=this.ua*this.Aa;this.A.aa=!1;this.A.cb=!1;this.A.Na=a.autoStart;this.A.ib=!1;this.A.Ha=!1;this.Qa=this.X=0;this.Ra=a.csStart;this.Ia=a.csInterval;this.Ja=a.csStop;this.ja=[];this.Db=this.Ca.bind(this);E(this)}y(cc);var dc=["power","reset"];m=cc.prototype; c.J)&&c.ca(!0)}this.K?this.G(a,b,d):this.Na(a,b,d)},la:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;ac(c,this.D+a,2,c.J)&&c.ca(!0)}this.K?this.G(a,b,d):this.kb(a,b,d)},R:function(a){return this.F[a]},U:function(a){return this.F[a]},W:function(a){return this.J.getUint16(a,!0)},Y:function(a){return a&1?this.F[a]|this.F[a+1]<<8:this.N[a>>1]},da:function(a,b){this.F[a]=b;this.ua=!0},ga:function(a,b){this.F[a]=b;this.ua=!0},ka:function(a,b){this.J.setUint16(a,b,!0);this.ua=!0},na:function(a,b){a&
m.ya=function(a,b,d,c){this.w=a;this.H=b;this.I=c;for(b=0;b<dc.length;b++)(d=this.L[dc[b]])&&this.w.ha(null,dc[b],d);this.fa=null;a=ec(a,"autoStart");null!=a&&(this.A.Na="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1}; 1?(this.F[a]=b,this.F[a+1]=b>>8):this.N[a>>1]=b;this.ua=!0}};function xb(a,b,d){a.I=b;a.u=a.B=0;d&&((a.u=d.u)&&$b(a,Zb,!1),(a.B=d.B)&&Yb(a,Zb,!1))}function bc(a,b){b?0===--a.B&&(a.Ma=a.K?a.G:a.Na,a.Cb=a.K?a.L:a.kb):0===--a.u&&(a.Ka=a.Wa,a.Ab=a.hb)}function Yb(a,b,d){d&&a.B||(a.Ma=!a.K&&b[2]||a.G,a.Cb=!a.K&&b[3]||a.L);if(d||void 0===d)a.Na=b[2]||a.G,a.kb=b[3]||a.L}function $b(a,b,d){d&&a.u||(a.Ka=b[0]||a.O,a.Ab=b[1]||a.P);if(d||void 0===d)a.Wa=b[0]||a.O,a.hb=b[1]||a.P}
m.sa=function(a,b){if(!b){if(a&&this.restore){fc(this);if(!this.restore(a))return!1;gc(this)}else this.reset();if(this.I){var d=this.I;d.g("Type ? for help with PDP11 Debugger commands");d.ia();if(d.pa){var c=d.pa;d.pa=null;hc(d,c)}}else this.g("No debugger detected")}H(this);return!0};m.ra=function(a){return a?this.save():!0};m.Na=function(){return this.A.Na||!this.I&&void 0===this.L.run?(this.Ca(!0),!0):!1};m.mb=function(){return 0}; function Ub(a,b){b||(b=cc);$b(a,b,void 0);Yb(a,b,void 0)}var cc=[],Xb=[G.prototype.V,G.prototype.Z,G.prototype.ia,G.prototype.qa],Zb=[G.prototype.T,G.prototype.X,G.prototype.fa,G.prototype.la];if(tb)var Wb=[G.prototype.R,G.prototype.W,G.prototype.da,G.prototype.ka],Vb=[G.prototype.U,G.prototype.Y,G.prototype.ga,G.prototype.na];
function gc(a){void 0===a.Ra&&(a.Ra=0);void 0===a.Ia&&(a.Ia=-1);void 0===a.Ja&&(a.Ja=-1);a.A.Ha=0<=a.Ra&&0<a.Ia;a.A.Ha&&(a.Qa=0,a.X=a.Ra-a.U)}function ic(a,b){if(a.A.Ha){var d=!1;a.Qa=a.Qa+a.mb()|0;a.X-=b;0>=a.X&&(a.X+=a.Ia,d=!0);0<=a.Ja&&a.Ja<=jc(a)&&(a.Ia=a.Ja=-1,gc(a),a.ca(),d=!0);d&&a.g(jc(a)+" cycles: checksum="+r(a.Qa))}} function dc(a,b){u.call(this,"CPU",a,dc,1);var d=a.multiplier||1;this.Fa=a.cycles||b;this.za=d;this.Da=Math.round(this.Fa/1E4)/100;this.ya=this.Da*this.za;this.A.ba=!1;this.A.jb=!1;this.A.Pa=a.autoStart;this.A.ob=!1;this.A.Ha=!1;this.Ta=this.Y=0;this.Ua=a.csStart;this.Ia=a.csInterval;this.Ja=a.csStop;this.ia=[];this.Ib=this.Ba.bind(this);E(this)}y(dc);var ec=["power","reset"];m=dc.prototype;
function kc(a,b,d,c){a.L[b]&&(void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.ca()),d=!a.A.aa||a.A.ib?r(d,c):"--------".substr(0,c),a.L[b].textContent!=d&&(a.L[b].textContent=d))} m.xa=function(a,b,d,c){this.u=a;this.F=b;this.I=c;for(b=0;b<ec.length;b++)(d=this.K[ec[b]])&&this.u.ha(null,ec[b],d);this.fa=null;a=fc(a,"autoStart");null!=a&&(this.A.Pa="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.ha=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.L[b]=d;a=!0;break;case "run":this.L[b]=d;d.onclick=function(){var a;if(a=c.w)if(a=c.w,a.A.Z)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.Z);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(c.A.aa?c.ca():c.Ca())};a= m.ta=function(a,b){if(!b){if(a&&this.restore){gc(this);if(!this.restore(a))return!1;hc(this)}else this.reset();if(this.I){var d=this.I;d.g("Type ? for help with PDP11 Debugger commands");d.ja();if(d.qa){var c=d.qa;d.qa=null;ic(d,c)}}else this.g("No debugger detected")}H(this);return!0};m.sa=function(a){return a?this.save():!0};m.Pa=function(){return this.A.Pa||!this.I&&void 0===this.K.run?(this.Ba(!0),!0):!1};m.sb=function(){return 0};
!0;break;case "speed":this.L[b]=d;a=!0;break;case "setSpeed":this.L[b]=d,d.onclick=function(){lc(c,c.Aa<<1,!0)},d.textContent=this.za.toFixed(2)+"Mhz",a=!0}return a};function mc(a,b,d){a.U+=b;d&&(a.T=a.O=0)}function nc(a,b){var d=1;b&&1<a.Aa&&a.R&&(d=a.R/a.ua);a.qb=Math.round(1E3/30);a.na=Math.floor(a.Fa/30*d);b||(a.Y=a.na);a.Oa=0}function jc(a){return a.U+a.N+a.T-a.O}function fc(a){a.R=0;a.rb=0;a.U=a.N=a.T=a.O=0;gc(a);lc(a,1)} function hc(a){void 0===a.Ua&&(a.Ua=0);void 0===a.Ia&&(a.Ia=-1);void 0===a.Ja&&(a.Ja=-1);a.A.Ha=0<=a.Ua&&0<a.Ia;a.A.Ha&&(a.Ta=0,a.Y=a.Ua-a.V)}function jc(a,b){if(a.A.Ha){var d=!1;a.Ta=a.Ta+a.sb()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.Ia,d=!0);0<=a.Ja&&a.Ja<=kc(a)&&(a.Ia=a.Ja=-1,hc(a),a.ca(),d=!0);d&&a.g(kc(a)+" cycles: checksum="+r(a.Ta))}}
function lc(a,b,d){var c=!1;if(void 0!==b){.8>a.R/a.za?b=1:c=!0;a.Aa=b;b=a.ua*a.Aa;if(a.za!=b){a.za=b;b=a.za.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}d&&a.w&&a.w.Ua()}mc(a,a.N);a.N=0;a.M=va();a.S=0;nc(a);return c}function Ac(a){a.T-=a.O;a.O=0} function lc(a,b,d,c){if(a.K[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.ca());var e=a.I&&a.I.fa||8;d=!a.A.ba||a.A.ob?8==e?ga(d,c):r(d,c):"--------".substr(0,c||4);a.K[b].textContent!=d&&(a.K[b].textContent=d)}}
m.Ca=function(a){if(pb(this,!0)){if(!this.A.aa){lc(this);this.w&&this.w.start(this.M,jc(this));this.A.aa=!0;this.A.cb=!0;this.fa&&this.fa.start();var b=this.L.run;b&&(b.textContent="Halt");this.w&&(this.w.ia(!0),a&&this.w.Ua(!0))}this.Oa>=this.Fa&&nc(this,!0);this.ga=0;this.la=va();this.S&&(a=this.la-this.S,a>this.qb&&(this.M+=a,this.M>this.la&&(this.M=this.la)));try{do{for(var d=this.A.Ha?1:this.na,c=this.ja.length-1;0<=c;c--){var e=this.ja[c];0>e[0]||d>e[0]&&(d=e[0])}this.Ka(d);var f=this.T-this.O; m.ha=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.K[b]=d;a=!0;break;case "run":this.K[b]=d;d.onclick=function(){var a;if(a=c.u)if(a=c.u,a.A.$)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.$);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.$a?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ba?c.ca():c.Ba())};a=
a=f;for(var h=this.ja.length-1;0<=h;h--){var g=this.ja[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ga+=f;this.N+=f;mc(this,0,!0);ic(this,f);this.Y-=f;if(0>=this.Y){this.Y+=this.na;15<=++this.rb&&(this.w&&this.w.ia(),this.rb=0);break}}while(this.A.aa)}catch(k){this.ca();H(this);this.w&&this.w.stop(va(),jc(this));pb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Db;this.S=va();e=this.qb;this.ga&&(e=Math.round(e*this.ga/this.na));e=e-(this.S-this.la);if(f=this.S-this.M)this.R= !0;break;case "speed":this.K[b]=d;a=!0;break;case "setSpeed":this.K[b]=d,d.onclick=function(){mc(c,c.za<<1,!0)},d.textContent=this.ya.toFixed(2)+"Mhz",a=!0}return a};function nc(a,b,d){a.V+=b;d&&(a.U=a.P=0)}function oc(a,b){var d=1;b&&1<a.za&&a.R&&(d=a.R/a.Da);a.wb=Math.round(1E3/30);a.na=Math.floor(a.Fa/30*d);b||(a.Z=a.na);a.Qa=0}function kc(a){return a.V+a.O+a.U-a.P}function gc(a){a.R=0;a.xb=0;a.V=a.O=a.U=a.P=0;hc(a);mc(a,1)}
Math.round(this.N/(10*f))/100,864E5<=f&&(this.U=0,lc(this));if(0>e||this.R<this.za)-1E3>e&&(this.M-=e),e=0;this.Oa+=this.ga;this.S+=e;d(c,e)}else H(this),this.w&&this.w.stop(va(),jc(this))};m.Ka=function(){return 0};m.ca=function(a){qb(this,!0);Ac(this);mc(this,this.N);this.N=0;if(this.A.aa){this.A.aa=!1;this.fa&&this.fa.stop();var b=this.L.run;b&&(b.textContent="Run")}this.A.complete=a};function H(a,b){a.w&&a.w.ia(b)} function mc(a,b,d){var c=!1;if(void 0!==b){.8>a.R/a.ya?b=1:c=!0;a.za=b;b=a.Da*a.za;if(a.ya!=b){a.ya=b;b=a.ya.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}d&&a.u&&a.u.Xa()}nc(a,a.O);a.O=0;a.N=va();a.T=0;oc(a);return c}function pc(a){a.U-=a.P;a.P=0}
function Bc(a){this.tb=+a.model||1170;this.Fb=a.resetAddr||0;cc.call(this,a,1E6);this.Wa=0;this.C=65536;this.j=32768;this.u=65535;this.i=32768;this.f=15;this.b=[0,0,0,0,0,0,0,0];this.Ya=[0,0,0,0,0,0];this.Ba=[0,0,0,0];this.memory=[];this.G=[];this.Pa=this.sb=0;this.V=2;this.W=255;this.F=0;this.da=-1;this.pb=this.Da=this.ob=this.B=this.pa=this.K=this.J=0;this.ka=[7,7,7,7];this.Ea=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, m.Ba=function(a){if(pb(this,!0)){if(!this.A.ba){mc(this);this.u&&this.u.start(this.N,kc(this));this.A.ba=!0;this.A.jb=!0;this.fa&&this.fa.start();var b=this.K.run;b&&(b.textContent="Halt");this.u&&(this.u.ja(!0),a&&this.u.Xa(!0))}this.Qa>=this.Fa&&oc(this,!0);this.ga=0;this.la=va();this.T&&(a=this.la-this.T,a>this.wb&&(this.N+=a,this.N>this.la&&(this.N=this.la)));try{do{for(var d=this.A.Ha?1:this.na,c=this.ia.length-1;0<=c;c--){var e=this.ia[c];0>e[0]||d>e[0]&&(d=e[0])}this.La(d);var f=this.U-this.P;
0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Hb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Ab=!1}y(Bc,cc);m=Bc.prototype;m.reset=function(){this.A.aa&&this.ca();Cc(this);fc(this);this.A.error=!1;this.parent.reset.call(this)}; a=f;for(var h=this.ia.length-1;0<=h;h--){var g=this.ia[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ga+=f;this.O+=f;nc(this,0,!0);jc(this,f);this.Z-=f;if(0>=this.Z){this.Z+=this.na;15<=++this.xb&&(this.u&&this.u.ja(),this.xb=0);break}}while(this.A.ba)}catch(k){this.ca();H(this);this.u&&this.u.stop(va(),kc(this));pb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Ib;this.T=va();e=this.wb;this.ga&&(e=Math.round(e*this.ga/this.na));e=e-(this.T-this.la);if(f=this.T-this.N)this.R=
function Cc(a){a.b[7]=a.Fb;a.W=255;a.G=[];a.sb=0;a.J=a.K=a.pa=a.ob=0;a.ka[0]=a.ka[1]=a.ka[3]=7;a.Da=0}m.mb=function(){return 0};m.save=function(){var a=new I(this);J(a,0,[]);J(a,1,[this.nb,this.U,this.Aa]);for(var b=this.H,d=0,c=[],e=0;e<b.F;e++){var f=b.P[e];if(f.va||f.Bb){c[d++]=e;var h=d++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<f.length){f=l;break a}}c[h]=f}}J(a,2,c);return a.data()}; Math.round(this.O/(10*f))/100,864E5<=f&&(this.V=0,mc(this));if(0>e||this.R<this.ya)-1E3>e&&(this.N-=e),e=0;this.Qa+=this.ga;this.T+=e;d(c,e)}else H(this),this.u&&this.u.stop(va(),kc(this))};m.La=function(){return 0};m.ca=function(a){qb(this,!0);pc(this);nc(this,this.O);this.O=0;if(this.A.ba){this.A.ba=!1;this.fa&&this.fa.stop();var b=this.K.run;b&&(b.textContent="Run")}this.A.complete=a};function H(a,b){a.u&&a.u.ja(b)}
m.restore=function(a){var b=a[1];this.nb=b[0];this.U=b[1];lc(this,b[3]);a:{b=this.H;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],e=a[d+1];if(e&&e.length<b.J){for(var f=0,h=Array(b.J),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.P[c];if(!f||!f.restore(e)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b}; function Cc(a){this.zb=+a.model||1170;this.Kb=a.resetAddr||0;dc.call(this,a,1E6);this.Za=0;this.C=65536;this.j=32768;this.w=65535;this.i=32768;this.f=15;this.b=[0,0,0,0,0,0,0,this.Kb];this.ab=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.memory=[];this.H=[];this.Ra=this.yb=0;this.W=2;this.X=255;this.G=0;this.da=-1;this.vb=this.Ca=this.ub=this.B=this.qa=this.L=this.J=0;this.ka=[7,7,7,7];this.Ea=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
m.ha=function(a,b,d){var c=!1;switch(b){case "PC":case "PSW":case "NF":case "ZF":case "VF":case "CF":this.L[b]=d;this.Wa++;c=!0;break;default:c=this.parent.ha.call(this,a,b,d)}return c};function Dc(a){return a.f&-16|a.i>>12&8|(a.u&65535?0:4)|(a.j&32768?2:0)|(a.C&65536?1:0)} 0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Mb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Fb=!1}y(Cc,dc);m=Cc.prototype;m.reset=function(){this.A.ba&&this.ca();Dc(this);gc(this);this.A.error=!1;this.parent.reset.call(this)};
m.ia=function(a){this.Wa&&(a||!this.A.aa||this.A.ib)&&(a=Dc(this),kc(this,"PSW",a,4),kc(this,"NF",a&8?1:0,1),kc(this,"ZF",a&4?1:0,1),kc(this,"VF",a&2?1:0,1),kc(this,"CF",a&1?1:0,1));if(a=this.L.speed)a.textContent=this.A.aa&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};function Ec(a,b){a.i=b<<12;a.u=~b&4;a.j=b<<14;a.C=b<<16;if((b^a.f)&2048)for(var d=a.Ya.length;0<=--d;){var c=a.b[d];a.b[d]=a.Ya[d];a.Ya[d]=c}a.B=b>>14&3;d=a.f>>14&3;a.B!=d&&(a.Ba[d]=a.b[6],a.b[6]=a.Ba[a.B]);a.V=2;a.f=b} function Dc(a){a.X=255;a.H=[];a.yb=0;a.J=a.L=a.qa=a.ub=0;a.ka[0]=a.ka[1]=a.ka[3]=7;a.Ca=0}m.sb=function(){return 0};m.save=function(){var a=new I(this);J(a,0,[]);J(a,1,[this.tb,this.V,this.za]);for(var b=this.F,d=0,c=[],e=0;e<b.G;e++){var f=b.M[e];if(f.ua||f.Gb){c[d++]=e;var h=d++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<f.length){f=l;break a}}c[h]=f}}J(a,2,c);return a.data()};
function K(a,b){var d,c,e=0;0>a.da?a.da=a.f=a.f&63728|a.i>>12&8|(a.u&65535?0:4)|(a.j&32768?2:0)|(a.C&65536?1:0):a.B||(b=4,e=1);a.J&57344||(a.K=63222);a.B=0;0<=(d=L(a,b|65536))&&0<=(c=L(a,b+2&65535|65536))&&(Ec(a,c&53247|a.da>>2&12288),e&&(a.b[6]=4),0<=Fc(a,a.da)&&0<=Fc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.da=-1} m.restore=function(a){var b=a[1];this.tb=b[0];this.V=b[1];mc(this,b[3]);a:{b=this.F;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],e=a[d+1];if(e&&e.length<b.L){for(var f=0,h=Array(b.L),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.M[c];if(!f||!f.restore(e)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
function Gc(a,b,d){var c,e,f,h=0;if(d&a.ob){c=b>>13&a.ka[a.B];e=a.Ea[a.B][c];f=(a.Ea[a.B][c+16]<<6)+(b&8191)&4194303;if(a.pa&16){if(3932160<=f&&4186112>f){f=f&262143;var g=f>>13&31;31>g?a.pa&32&&(f=a.Hb[g]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}}else f&=262143,253952<=f&&(f|=4186112);if(3932160>f&&(3915776<=f||f&1&&!(d&1)))return K(a,4);switch(e&7){case 1:h=4096;case 2:e|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:e|=d&4?192:128;break; m.ha=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PSW":this.K[b]=d;this.Za++;c=!0;break;default:c=this.parent.ha.call(this,a,b,d)}return c};
default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.Ea[a.B][c]=e;if(4194170!==f||a.B)a.Da=a.B,a.pb=c;if(h){if(h&57344)return 0<=a.da&&(h|=128),a.J&57344||(a.J=a.J|h|a.Da<<5|a.pb<<1),K(a,168);a.J&61440||!(4191360>f||4194239<f)||(a.J|=4096,a.J&512&&(a.F|=2))}}else if(f=b&65535,57344<=f)f|=4186112;else if(f&1&&!(d&1))return K(a,4);return f}function N(a,b){return 4194304<=b?a.b[b-4194304]:3932160<=b?-1:0<=b?a.memory[b>>1]:b} m.ja=function(a){if(this.Za&&(a||!this.A.ba||this.A.ob)){for(a=0;a<this.b.length;a++)lc(this,"R"+a,this.b[a]);a=Ec(this);lc(this,"PSW",a);lc(this,"NF",a&8?1:0,1);lc(this,"ZF",a&4?1:0,1);lc(this,"VF",a&2?1:0,1);lc(this,"CF",a&1?1:0,1)}if(a=this.K.speed)a.textContent=this.A.ba&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};function Ec(a){return a.f&-16|(a.i&32768?8:0)|(a.w&65535?0:4)|(a.j&32768?2:0)|(a.C&65536?1:0)}
function O(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:3932160<=b?-1:0<=b?a.memory[b>>1]=d:b}function P(a,b){var d;return 4194304<=b?a.b[b-4194304]&255:3932160<=b?-1:0<=b?(d=a.memory[b>>1],b&1&&(d=d>>8),d&255):b}function S(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:3932160<=b?-1:0<=b?b&1?a.memory[b>>1]=d<<8|a.memory[b>>1]&255:a.memory[b>>1]=a.memory[b>>1]&65280|d:b}function L(a,b){return N(a,Gc(a,b,2))} function Fc(a,b){a.i=b<<12;a.w=~b&4;a.j=b<<14;a.C=b<<16;if((b^a.f)&2048)for(var d=a.ab.length;0<=--d;){var c=a.b[d];a.b[d]=a.ab[d];a.ab[d]=c}a.B=b>>14&3;d=a.f>>14&3;a.B!=d&&(a.Aa[d]=a.b[6],a.b[6]=a.Aa[a.B]);a.W=2;a.f=b}
function Hc(a){var b=L(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function Fc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.J&57344||(a.K=a.K<<8|246);if(!a.B&&c<=a.W&&4<c){if(c<=a.W-32)return a.b[6]=4,K(a,4);a.F|=4}return 0<=(d=Gc(a,c|65536,4))?O(a,d,b):d} function K(a,b){var d,c,e=0;0>a.da?a.da=a.f=a.f&63728|(a.i&32768?8:0)|(a.w&65535?0:4)|(a.j&32768?2:0)|(a.C&65536?1:0):a.B||(b=4,e=1);a.J&57344||(a.L=63222);a.B=0;0<=(d=L(a,b|65536))&&0<=(c=L(a,b+2&65535|65536))&&(Fc(a,c&53247|a.da>>2&12288),e&&(a.b[6]=4),0<=Gc(a,a.da)&&0<=Gc(a,a.b[7])&&(a.b[7]=d));a.G=0;return a.da=-1}
function Ic(a,b,d){var c,e,f=b&7;switch(b>>3&7){case 0:return K(a,4);case 1:if(6===f&&!a.B&&d&4&&(a.b[6]<=a.W||65534<=a.b[6])){if(a.b[6]<=a.W-32||65534<=a.b[6])return a.b[6]=4,K(a,4);a.F|=4}return 7===f?a.b[f]:a.b[f]|65536;case 2:e=2;c=a.b[f];7!==f&&(c|=65536,6>f&&d&1&&(e=1));break;case 3:e=2;c=a.b[f];7!==f&&(c|=65536);if(0>(c=L(a,c)))return c;c|=65536;break;case 4:e=-2;6>f&&d&1&&(e=-1);c=a.b[f]+e&65535;7!==f&&(c|=65536);break;case 5:e=-2;c=a.b[f]-2&65535;7!==f&&(c|=65536);if(0>(c=L(a,c)))return c; function Hc(a,b,d){var c,e,f,h=0;if(d&a.ub){c=b>>13&a.ka[a.B];e=a.Ea[a.B][c];f=(a.Ea[a.B][c+16]<<6)+(b&8191)&4194303;if(a.qa&16){if(3932160<=f&&4186112>f){f=f&262143;var g=f>>13&31;31>g?a.qa&32&&(f=a.Mb[g]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}}else f&=262143,253952<=f&&(f|=4186112);if(3932160>f&&(3915776<=f||f&1&&!(d&1)))return K(a,4);switch(e&7){case 1:h=4096;case 2:e|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:e|=d&4?192:128;break;
c|=65536;break;case 6:if(0>(c=L(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[f]&65535;return c|65536;case 7:if(0>(c=L(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[f]&65535;return 0>(c=L(a,c|65536))?c:c|65536}a.b[f]=a.b[f]+e&65535;a.J&57344||(a.K=a.K<<8|e<<3&248|f);if(6===f&&!a.B&&d&4&&0>=e&&(a.b[6]<=a.W||65534<=a.b[6])){if(a.b[6]<=a.W-32)return a.b[6]=4,K(a,4);a.F|=4}return c}function T(a,b,d){var c;return b&56?(0<=(c=Ic(a,b,d))&&(c=Gc(a,c,d)),c):4194304+(b&7)} default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.Ea[a.B][c]=e;if(4194170!==f||a.B)a.Ca=a.B,a.vb=c;if(h){if(h&57344)return 0<=a.da&&(h|=128),a.J&57344||(a.J=a.J|h|a.Ca<<5|a.vb<<1),K(a,168);a.J&61440||!(4191360>f||4194239<f)||(a.J|=4096,a.J&512&&(a.G|=2))}}else if(f=b&65535,57344<=f)f|=4186112;else if(f&1&&!(d&1))return K(a,4);return f}function N(a,b){return 4194304<=b?a.b[b-4194304]:3932160<=b?-1:0<=b?a.F.pa(b):b}
function U(a,b){var d;b&56?0<=(d=T(a,b,2))&&(d=N(a,d)):d=a.b[b&7];return d}function Jc(a,b){var d;b&56?0<=(d=T(a,b,3))&&(d=P(a,d)):d=a.b[b&7]&255;return d}function V(a,b){return((b&128?b|65280:b&255)<<1)+a&65535} function O(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.F.ib(b,d),d):b}function P(a,b){return 4194304<=b?a.b[b-4194304]&255:3932160<=b?-1:0<=b?a.F.Sa(b):b}function S(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:3932160<=b?-1:0<=b?(a.F.bb(b,d),d):b}function L(a,b){return N(a,Hc(a,b,2))}function Ic(a){var b=L(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
m.Ka=function(a){this.A.complete=!0;var b=this.A.Ab=this.I&&Kc(this.I),d=a?this.A.cb?0:1:-1;this.A.cb=!1;this.T=this.O=a;this.nb&256?(Ac(this),a=!1):a=!0;if(a){do{if(b){if(Lc(this.I,this.b[7],d)){this.ca();break}d=1}var c,e,f,h,g;if(this.V)if(1===this.V)this.V=2;else{this.V=0;g=-1;c=this.sb&224;if(0<(a=this.G.length))for(;0<a--;){if(0<this.G[a].bb){this.G[a].bb--;this.V=2;break}if(this.G[a].gb){if(!this.G[a].gb()){this.G.splice(a,1);g--;continue}this.G[a].gb=null}this.G[a].Gb>c&&(c=this.G[a].Gb,g= function Gc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.J&57344||(a.L=a.L<<8|246);if(!a.B&&c<=a.X&&4<c){if(c<=a.X-32)return a.b[6]=4,K(a,4);a.G|=4}return 0<=(d=Hc(a,c|65536,4))?O(a,d,b):d}
a)}c>(this.f&224)&&(0>g?K(this,160):(K(this,this.G[g].Jb),this.G.splice(g,1)))}this.J&57344||(this.K=0);this.F=this.f&16;if(0<=(a=L(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=U(this,a>>6))&&(a&56?0<=(f=T(this,a,4))&&0<=O(this,f,c)&&(this.i=this.u=c,this.j=0):(this.i=this.u=this.b[a&7]=c,this.j=0));break;case 8192:0<=(c=U(this,a>>6))&&0<=(e=U(this,a))&&(this.i=this.u=this.C=a=c-e,this.j=(c^e)&(c^a));break;case 12288:0<=(c=U(this,a>>6))&&0<=(e=U(this,a))&&(this.i=this.u= function Jc(a,b,d){var c,e,f=b&7;switch(b>>3&7){case 0:return K(a,4);case 1:if(6===f&&!a.B&&d&4&&(a.b[6]<=a.X||65534<=a.b[6])){if(a.b[6]<=a.X-32||65534<=a.b[6])return a.b[6]=4,K(a,4);a.G|=4}return 7===f?a.b[f]:a.b[f]|65536;case 2:e=2;c=a.b[f];7!==f&&(c|=65536,6>f&&d&1&&(e=1));break;case 3:e=2;c=a.b[f];7!==f&&(c|=65536);if(0>(c=L(a,c)))return c;c|=65536;break;case 4:e=-2;6>f&&d&1&&(e=-1);c=a.b[f]+e&65535;7!==f&&(c|=65536);break;case 5:e=-2;c=a.b[f]-2&65535;7!==f&&(c|=65536);if(0>(c=L(a,c)))return c;
c&e,this.j=0);break;case 16384:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e&~c,0<=O(this,f,a)&&(this.i=this.u=a,this.j=0)):(this.i=this.u=a=this.b[a&7]&=~c,this.j=0));break;case 20480:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e|c,0<=O(this,f,a)&&(this.i=this.u=a,this.j=0)):(this.i=this.u=a=this.b[a&7]|=c,this.j=0));break;case 24576:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=c+e,0<=O(this,f,a)&&(this.i=this.u=this.C=a,this.j=(c^a)&(e^a))):(g=a&7, c|=65536;break;case 6:if(0>(c=L(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[f]&65535;return c|65536;case 7:if(0>(c=L(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[f]&65535;return 0>(c=L(a,c|65536))?c:c|65536}a.b[f]=a.b[f]+e&65535;a.J&57344||(a.L=a.L<<8|e<<3&248|f);if(6===f&&!a.B&&d&4&&0>=e&&(a.b[6]<=a.X||65534<=a.b[6])){if(a.b[6]<=a.X-32)return a.b[6]=4,K(a,4);a.G|=4}return c}function T(a,b,d){var c;return b&56?(0<=(c=Jc(a,b,d))&&(c=Hc(a,c,d)),c):4194304+(b&7)}
e=this.b[g],this.b[g]=(a=c+e)&65535,this.i=this.u=this.C=a,this.j=(c^a)&(e^a)));break;case 36864:0<=(c=Jc(this,a>>6))&&(a&56?0<=(f=T(this,a,5))&&0<=S(this,f,c)&&(this.i=this.u=c<<8,this.j=0):(c&128&&(c|=65280),this.i=this.u=this.b[a&7]=c,this.j=0));break;case 40960:0<=(c=Jc(this,a>>6))&&0<=(e=Jc(this,a))&&(a=c-e,this.i=this.u=this.C=a<<8,this.j=((c^e)&(c^a))<<8);break;case 45056:0<=(c=Jc(this,a>>6))&&0<=(e=Jc(this,a))&&(this.i=this.u=(c&e)<<8,this.j=0);break;case 49152:0<=(c=Jc(this,a>>6))&&0<=(e= function U(a,b){var d;b&56?0<=(d=T(a,b,2))&&(d=N(a,d)):d=a.b[b&7];return d}function Kc(a,b){var d;b&56?0<=(d=T(a,b,3))&&(d=P(a,d)):d=a.b[b&7]&255;return d}function V(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
P(this,f=T(this,a,7)))&&(a=e&~c,0<=S(this,f,a)&&(this.i=this.u=a<<8,this.j=0));break;case 53248:0<=(c=Jc(this,a>>6))&&0<=(e=P(this,f=T(this,a,7)))&&(a=e|c,0<=S(this,f,a)&&(this.i=this.u=a<<8,this.j=0));break;case 57344:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e-c,0<=O(this,f,a)&&(this.i=this.u=this.C=a,this.j=(c^e)&(e^a))):(g=a&7,e=this.b[g],this.b[g]=(a=e-c)&65535,this.i=this.u=this.C=a,this.j=(c^e)&(e^a)));break;default:switch(a&65024){case 2048:0<=(h=Ic(this,a,0))&&(g=a>>6&7, m.La=function(a){this.A.complete=!0;var b=this.A.Fb=this.I&&Lc(this.I),d=a?this.A.jb?0:1:-1;this.A.jb=!1;this.U=this.P=a;this.tb&256?(pc(this),a=!1):a=!0;if(a){do{if(b){if(Mc(this.I,this.b[7],d)){this.ca();break}d=1}var c,e,f,h,g;if(this.W)if(1===this.W)this.W=2;else{this.W=0;g=-1;c=this.yb&224;if(0<(a=this.H.length))for(;0<a--;){if(0<this.H[a].gb){this.H[a].gb--;this.W=2;break}if(this.H[a].mb){if(!this.H[a].mb()){this.H.splice(a,1);g--;continue}this.H[a].mb=null}this.H[a].Lb>c&&(c=this.H[a].Lb,g=
0<=Fc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=U(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),e=this.b[g],e&32768&&(e|=-65536),a=~~(c*e),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.i=a>>16,this.u=this.i|a,this.C=this.j=0,-32768>a||32767<a)&&(this.C=65536);break;case 29184:0<=(c=U(this,a))&&(c?(g=a>>6&7,e=this.b[g]<<16|this.b[g|1],this.C=this.j=0,c&32768&&(c|=-65536),a=~~(e/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=e-a*c&65535,this.u=a>>16|a,this.i= a)}c>(this.f&224)&&(0>g?K(this,160):(K(this,this.H[g].Sb),this.H.splice(g,1)))}this.J&57344||(this.L=0);this.G=this.f&16;if(0<=(a=L(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=U(this,a>>6))&&(a&56?0<=(f=T(this,a,4))&&0<=O(this,f,c)&&(this.i=this.w=c,this.j=0):(this.i=this.w=this.b[a&7]=c,this.j=0));break;case 8192:0<=(c=U(this,a>>6))&&0<=(e=U(this,a))&&(this.i=this.w=this.C=a=c-e,this.j=(c^e)&(c^a));break;case 12288:0<=(c=U(this,a>>6))&&0<=(e=U(this,a))&&(this.i=this.w=
a>>16):(this.j=32768,this.u=a>>15|a,this.i=e>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.u=this.i=0,this.j=32768,this.C=65536));break;case 29696:0<=(c=U(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.C=this.j=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.C=a<<17-c,a=a>>c):c&&(16<c?(this.j=a,a=0):(this.C=a=a<<c,(e=a>>15&65535)&&65535!==e&&(this.j=32768))),this.b[g]=a&65535,this.i=this.u=a);break;case 30208:if(0<=(c=U(this,a))){g=a>>6&7;e=this.b[g]<<16|this.b[g|1];this.C= c&e,this.j=0);break;case 16384:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e&~c,0<=O(this,f,a)&&(this.i=this.w=a,this.j=0)):(this.i=this.w=a=this.b[a&7]&=~c,this.j=0));break;case 20480:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e|c,0<=O(this,f,a)&&(this.i=this.w=a,this.j=0)):(this.i=this.w=a=this.b[a&7]|=c,this.j=0));break;case 24576:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=c+e,0<=O(this,f,a)&&(this.i=this.w=this.C=a,this.j=(c^a)&(e^a))):(g=a&7,
this.j=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=e>>c-1,this.C=a<<16,a>>=1,e&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=e<<c-1,this.C=a>>15,a<<=1,32<c&&(c=32),e>>=32-c)e|=4294967295<<c&4294967295,4294967295!==e&&(this.j=32768)}else a=e;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.i=a>>16;this.u=a>>16|a}break;case 30720:a&56?0<=(e=N(this,f=T(this,a,6)))&&(e^=this.b[a>>6&7],0<=O(this,f,e)&&(this.i=this.u=e,this.j=0)):(this.i=this.u=e=this.b[a&7]^=this.b[a>>6&7],this.j=0);break;case 32256:g=a>> e=this.b[g],this.b[g]=(a=c+e)&65535,this.i=this.w=this.C=a,this.j=(c^a)&(e^a)));break;case 36864:0<=(c=Kc(this,a>>6))&&(a&56?0<=(f=T(this,a,5))&&0<=S(this,f,c)&&(this.i=this.w=c<<8,this.j=0):(c&128&&(c|=65280),this.i=this.w=this.b[a&7]=c,this.j=0));break;case 40960:0<=(c=Kc(this,a>>6))&&0<=(e=Kc(this,a))&&(a=c-e,this.i=this.w=this.C=a<<8,this.j=((c^e)&(c^a))<<8);break;case 45056:0<=(c=Kc(this,a>>6))&&0<=(e=Kc(this,a))&&(this.i=this.w=(c&e)<<8,this.j=0);break;case 49152:0<=(c=Kc(this,a>>6))&&0<=(e=
6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=V(this.b[7],a);break;case 512:this.u&65535&&(this.b[7]=V(this.b[7],a));break;case 768:this.u&65535||(this.b[7]=V(this.b[7],a));break;case 1024:(this.i&32768)===(this.j&32768)&&(this.b[7]=V(this.b[7],a));break;case 1280:(this.i&32768)!==(this.j&32768)&&(this.b[7]=V(this.b[7],a));break;case 1536:this.u&65535&&(this.i&32768)===(this.j&32768)&&(this.b[7]=V(this.b[7],a));break;case 1792:this.u& P(this,f=T(this,a,7)))&&(a=e&~c,0<=S(this,f,a)&&(this.i=this.w=a<<8,this.j=0));break;case 53248:0<=(c=Kc(this,a>>6))&&0<=(e=P(this,f=T(this,a,7)))&&(a=e|c,0<=S(this,f,a)&&(this.i=this.w=a<<8,this.j=0));break;case 57344:0<=(c=U(this,a>>6))&&(a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e-c,0<=O(this,f,a)&&(this.i=this.w=this.C=a,this.j=(c^e)&(e^a))):(g=a&7,e=this.b[g],this.b[g]=(a=e-c)&65535,this.i=this.w=this.C=a,this.j=(c^e)&(e^a)));break;default:switch(a&65024){case 2048:0<=(h=Jc(this,a,0))&&(g=a>>6&7,
65535&&(this.i&32768)===(this.j&32768)||(this.b[7]=V(this.b[7],a));break;case 32768:this.i&32768||(this.b[7]=V(this.b[7],a));break;case 33280:!(this.C&65536)&&this.u&65535&&(this.b[7]=V(this.b[7],a));break;case 33024:this.i&32768&&(this.b[7]=V(this.b[7],a));break;case 33536:if(this.C&65536||!(this.u&65535))this.b[7]=V(this.b[7],a);break;case 33792:this.j&32768||(this.b[7]=V(this.b[7],a));break;case 34048:this.j&32768&&(this.b[7]=V(this.b[7],a));break;case 34304:this.C&65536||(this.b[7]=V(this.b[7], 0<=Gc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=U(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),e=this.b[g],e&32768&&(e|=-65536),a=~~(c*e),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.i=a>>16,this.w=this.i|a,this.C=this.j=0,-32768>a||32767<a)&&(this.C=65536);break;case 29184:0<=(c=U(this,a))&&(c?(g=a>>6&7,e=this.b[g]<<16|this.b[g|1],this.C=this.j=0,c&32768&&(c|=-65536),a=~~(e/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=e-a*c&65535,this.w=a>>16|a,this.i=
a));break;case 34560:this.C&65536&&(this.b[7]=V(this.b[7],a));break;case 34816:K(this,24);break;case 35072:K(this,28);break;default:switch(a&65472){case 64:0<=(h=Ic(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e<<8|e>>8,0<=O(this,f,a)&&(this.i=this.u=e&65280,this.j=this.C=0)):(g=a&7,e=this.b[g],this.b[g]=(e<<8|e>>8)&65535,this.i=this.u=e&65280,this.j=this.C=0);break;case 2560:a&56?0<=(f=T(this,a,4))&&0<=O(this,f,0)&&(this.i=this.C=this.j=this.u=0):this.i=this.C= a>>16):(this.j=32768,this.w=a>>15|a,this.i=e>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.w=this.i=0,this.j=32768,this.C=65536));break;case 29696:0<=(c=U(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.C=this.j=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.C=a<<17-c,a=a>>c):c&&(16<c?(this.j=a,a=0):(this.C=a=a<<c,(e=a>>15&65535)&&65535!==e&&(this.j=32768))),this.b[g]=a&65535,this.i=this.w=a);break;case 30208:if(0<=(c=U(this,a))){g=a>>6&7;e=this.b[g]<<16|this.b[g|1];this.C=
this.j=this.u=this.b[a&7]=0;break;case 2624:0<=(e=N(this,f=T(this,a,6)))&&(a=~e,0<=O(this,f,a)&&(this.i=this.u=a,this.C=65536,this.j=0));break;case 2688:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e+1,0<=O(this,f,a)&&(this.i=this.u=a,this.j=a&(a^e))):(g=a&7,e=this.b[g],a=e+1,this.b[g]=a&65535,this.i=this.u=a,this.j=a&(a^e));break;case 2752:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e-1,0<=O(this,f,a)&&(this.i=this.u=a,this.j=(a^e)&e)):(g=a&7,e=this.b[g],a=e-1,this.b[g]=a&65535,this.i=this.u=a,this.j=(a^e)&e); this.j=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=e>>c-1,this.C=a<<16,a>>=1,e&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=e<<c-1,this.C=a>>15,a<<=1,32<c&&(c=32),e>>=32-c)e|=4294967295<<c&4294967295,4294967295!==e&&(this.j=32768)}else a=e;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.i=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(e=N(this,f=T(this,a,6)))&&(e^=this.b[a>>6&7],0<=O(this,f,e)&&(this.i=this.w=e,this.j=0)):(this.i=this.w=e=this.b[a&7]^=this.b[a>>6&7],this.j=0);break;case 32256:g=a>>
break;case 2816:0<=(e=N(this,f=T(this,a,6)))&&(a=-e,0<=O(this,f,a)&&(this.C=this.i=this.u=a,this.j=a&e));break;case 2880:0<=(e=N(this,f=T(this,a,6)))&&(a=e+(this.C>>16&1),0<=O(this,f,a)&&(this.C=this.i=this.u=a,this.j=a&(a^e)));break;case 2944:0<=(e=N(this,f=T(this,a,6)))&&(a=e-(this.C>>16&1),0<=O(this,f,a)&&(this.C=this.i=this.u=a,this.j=(a^e)&e));break;case 3008:0<=(e=U(this,a))&&(this.i=this.u=e,this.C=this.j=0);break;case 3072:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=(this.C&65536|e)>>1,0<=O(this, 6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=V(this.b[7],a);break;case 512:this.w&65535&&(this.b[7]=V(this.b[7],a));break;case 768:this.w&65535||(this.b[7]=V(this.b[7],a));break;case 1024:(this.i&32768)===(this.j&32768)&&(this.b[7]=V(this.b[7],a));break;case 1280:(this.i&32768)!==(this.j&32768)&&(this.b[7]=V(this.b[7],a));break;case 1536:this.w&65535&&(this.i&32768)===(this.j&32768)&&(this.b[7]=V(this.b[7],a));break;case 1792:this.w&
f,a)&&(this.C=e<<16,this.i=this.u=a,this.j=a^this.C>>1)):(g=a&7,e=this.b[g],a=(this.C&65536|e)>>1,this.b[g]=a&65535,this.C=e<<16,this.i=this.u=a,this.j=a^this.C>>1);break;case 3136:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e<<1|this.C>>16&1,0<=O(this,f,a)&&(this.C=this.i=this.u=a,this.j=a^e)):(g=a&7,e=this.b[g],a=e<<1|this.C>>16&1,this.b[g]=a&65535,this.C=this.i=this.u=a,this.j=a^e);break;case 3200:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e&32768|e>>1,0<=O(this,f,a)&&(this.C=e<<16,this.i=this.u=a,this.j= 65535&&(this.i&32768)===(this.j&32768)||(this.b[7]=V(this.b[7],a));break;case 32768:this.i&32768||(this.b[7]=V(this.b[7],a));break;case 33280:!(this.C&65536)&&this.w&65535&&(this.b[7]=V(this.b[7],a));break;case 33024:this.i&32768&&(this.b[7]=V(this.b[7],a));break;case 33536:if(this.C&65536||!(this.w&65535))this.b[7]=V(this.b[7],a);break;case 33792:this.j&32768||(this.b[7]=V(this.b[7],a));break;case 34048:this.j&32768&&(this.b[7]=V(this.b[7],a));break;case 34304:this.C&65536||(this.b[7]=V(this.b[7],
this.i^this.C>>1)):(g=a&7,e=this.b[g],a=e&32768|e>>1,this.b[g]=a&65535,this.C=e<<16,this.i=this.u=a,this.j=this.i^this.C>>1);break;case 3264:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e<<1,0<=O(this,f,a)&&(this.C=this.i=this.u=a,this.j=a^e)):(g=a&7,e=this.b[g],a=e<<1,this.b[g]=a&65535,this.C=this.i=this.u=a,this.j=a^e);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=L(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Ic(this,a,0))&&(61440!==(this.f&61440)&& a));break;case 34560:this.C&65536&&(this.b[7]=V(this.b[7],a));break;case 34816:K(this,24);break;case 35072:K(this,28);break;default:switch(a&65472){case 64:0<=(h=Jc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e<<8|e>>8,0<=O(this,f,a)&&(this.i=this.w=e&65280,this.j=this.C=0)):(g=a&7,e=this.b[g],this.b[g]=(e<<8|e>>8)&65535,this.i=this.w=e&65280,this.j=this.C=0);break;case 2560:a&56?0<=(f=T(this,a,4))&&0<=O(this,f,0)&&(this.i=this.C=this.j=this.w=0):this.i=this.C=
(h&=65535),this.B=this.f>>12&3,0<=(c=L(this,h))&&(this.B=this.f>>14&3,0<=Fc(this,c)&&(this.i=this.u=c,this.j=0))):(g=a&7,c=6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]:this.Ba[this.f>>12&3],0<=Fc(this,c)&&(this.i=this.u=c,this.j=0));break;case 3456:0<=(e=Hc(this))&&((this.J&57344||(this.K=22),a&56)?0<=(h=Ic(this,a,0))&&(h&=65535,this.B=this.f>>12&3,0<=(f=Gc(this,h,4))&&(this.B=this.f>>14&3,0<=O(this,f,e)&&(this.i=this.u=e,this.j=0))):(g=a&7,6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]= this.j=this.w=this.b[a&7]=0;break;case 2624:0<=(e=N(this,f=T(this,a,6)))&&(a=~e,0<=O(this,f,a)&&(this.i=this.w=a,this.C=65536,this.j=0));break;case 2688:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e+1,0<=O(this,f,a)&&(this.i=this.w=a,this.j=a&(a^e))):(g=a&7,e=this.b[g],a=e+1,this.b[g]=a&65535,this.i=this.w=a,this.j=a&(a^e));break;case 2752:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e-1,0<=O(this,f,a)&&(this.i=this.w=a,this.j=(a^e)&e)):(g=a&7,e=this.b[g],a=e-1,this.b[g]=a&65535,this.i=this.w=a,this.j=(a^e)&e);
e:this.Ba[this.f>>12&3]=e,this.i=this.u=e,this.j=0));break;case 3520:0<=(f=T(this,a,4))&&(a=-(this.i>>15&1),0<=O(this,f,a)&&(this.u=a,this.j=0));break;case 35328:a&56?0<=(f=T(this,a,5))&&0<=S(this,f,0)&&(this.i=this.C=this.j=this.u=0):(this.b[a&7]&=65280,this.i=this.C=this.j=this.u=0);break;case 35392:0<=(e=P(this,f=T(this,a,7)))&&(a=~e,0<=S(this,f,a)&&(this.i=this.u=a<<8,this.C=65536,this.j=0));break;case 35456:0<=(e=P(this,f=T(this,a,7)))&&(a=e+1,0<=S(this,f,a)&&(this.i=this.u=a<<8,this.j=(a&(a^ break;case 2816:0<=(e=N(this,f=T(this,a,6)))&&(a=-e,0<=O(this,f,a)&&(this.C=this.i=this.w=a,this.j=a&e));break;case 2880:0<=(e=N(this,f=T(this,a,6)))&&(a=e+(this.C>>16&1),0<=O(this,f,a)&&(this.C=this.i=this.w=a,this.j=a&(a^e)));break;case 2944:0<=(e=N(this,f=T(this,a,6)))&&(a=e-(this.C>>16&1),0<=O(this,f,a)&&(this.C=this.i=this.w=a,this.j=(a^e)&e));break;case 3008:0<=(e=U(this,a))&&(this.i=this.w=e,this.C=this.j=0);break;case 3072:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=(this.C&65536|e)>>1,0<=O(this,
e))<<8));break;case 35520:0<=(e=P(this,f=T(this,a,7)))&&(a=e-1,0<=S(this,f,a)&&(this.i=this.u=a<<8,this.j=((a^e)&e)<<8));break;case 35584:0<=(e=P(this,f=T(this,a,7)))&&(a=-e,0<=S(this,f,a)&&(this.C=this.i=this.u=a<<8,this.j=(a&e)<<8));break;case 35648:0<=(e=P(this,f=T(this,a,7)))&&(a=e+(this.C>>16&1),0<=S(this,f,a)&&(this.i=this.u=this.C=a<<8,this.j=(a&(a^e))<<8));break;case 35712:0<=(e=P(this,f=T(this,a,7)))&&(a=e-(this.C>>16&1),0<=S(this,f,a)&&(this.i=this.u=this.C=a<<8,this.j=((a^e)&e)<<8));break; f,a)&&(this.C=e<<16,this.i=this.w=a,this.j=a^this.C>>1)):(g=a&7,e=this.b[g],a=(this.C&65536|e)>>1,this.b[g]=a&65535,this.C=e<<16,this.i=this.w=a,this.j=a^this.C>>1);break;case 3136:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e<<1|this.C>>16&1,0<=O(this,f,a)&&(this.C=this.i=this.w=a,this.j=a^e)):(g=a&7,e=this.b[g],a=e<<1|this.C>>16&1,this.b[g]=a&65535,this.C=this.i=this.w=a,this.j=a^e);break;case 3200:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e&32768|e>>1,0<=O(this,f,a)&&(this.C=e<<16,this.i=this.w=a,this.j=
case 35776:0<=(e=Jc(this,a))&&(this.i=this.u=e<<8,this.C=this.j=0);break;case 35840:0<=(e=P(this,f=T(this,a,7)))&&(a=((this.C&65536)>>8|e)>>1,0<=S(this,f,a)&&(this.C=e<<16,this.i=this.u=a<<8,this.j=this.i^this.C>>1));break;case 35904:0<=(e=P(this,f=T(this,a,7)))&&(a=e<<1|this.C>>16&1,0<=S(this,f,a)&&(this.C=this.i=this.u=a<<8,this.j=(a^e)<<8));break;case 35968:0<=(e=P(this,f=T(this,a,7)))&&(a=e&128|e>>1,0<=S(this,f,a)&&(this.C=e<<16,this.i=this.u=a<<8,this.j=this.i^this.C>>1));break;case 36032:0<= this.i^this.C>>1)):(g=a&7,e=this.b[g],a=e&32768|e>>1,this.b[g]=a&65535,this.C=e<<16,this.i=this.w=a,this.j=this.i^this.C>>1);break;case 3264:a&56?0<=(e=N(this,f=T(this,a,6)))&&(a=e<<1,0<=O(this,f,a)&&(this.C=this.i=this.w=a,this.j=a^e)):(g=a&7,e=this.b[g],a=e<<1,this.b[g]=a&65535,this.C=this.i=this.w=a,this.j=a^e);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=L(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Jc(this,a,0))&&(61440!==(this.f&61440)&&
(e=P(this,f=T(this,a,7)))&&(a=e<<1,0<=S(this,f,a)&&(this.C=this.i=this.u=a<<8,this.j=(a^e)<<8));break;case 36160:a&56?0<=(h=Ic(this,a,0))&&(this.B=this.f>>12&3,0<=(c=L(this,h|65536))&&(this.B=this.f>>14&3,0<=Fc(this,c)&&(this.i=this.u=c,this.j=0))):(g=a&7,c=6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]:this.Ba[this.f>>12&3],0<=Fc(this,c)&&(this.i=this.u=c,this.j=0));break;case 36224:0<=(e=Hc(this))&&((this.J&57344||(this.K=22),a&56)?0<=(h=Ic(this,a,0))&&(this.B=this.f>>12&3,0<=(f=Gc(this,h| (h&=65535),this.B=this.f>>12&3,0<=(c=L(this,h))&&(this.B=this.f>>14&3,0<=Gc(this,c)&&(this.i=this.w=c,this.j=0))):(g=a&7,c=6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]:this.Aa[this.f>>12&3],0<=Gc(this,c)&&(this.i=this.w=c,this.j=0));break;case 3456:0<=(e=Ic(this))&&((this.J&57344||(this.L=22),a&56)?0<=(h=Jc(this,a,0))&&(h&=65535,this.B=this.f>>12&3,0<=(f=Hc(this,h,4))&&(this.B=this.f>>14&3,0<=O(this,f,e)&&(this.i=this.w=e,this.j=0))):(g=a&7,6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]=
65536,4))&&(this.B=this.f>>14&3,0<=O(this,f,e)&&(this.i=this.u=e,this.j=0))):(g=a&7,6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]=e:this.Ba[this.f>>12&3]=e,this.i=this.u=e,this.j=0));break;default:switch(a&65528){case 128:0<=(c=Hc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.f&49152||(this.f=this.f&63519|(a&7)<<5,this.V=1);break;case 160:case 168:a&1&&(this.C=0);a&2&&(this.j=0);a&4&&(this.u=1);a&8&&(this.i=0);break;case 176:case 184:a&1&&(this.C=65536);a&2&&(this.j=32768); e:this.Aa[this.f>>12&3]=e,this.i=this.w=e,this.j=0));break;case 3520:0<=(f=T(this,a,4))&&(a=-(this.i>>15&1),0<=O(this,f,a)&&(this.w=a,this.j=0));break;case 35328:a&56?0<=(f=T(this,a,5))&&0<=S(this,f,0)&&(this.i=this.C=this.j=this.w=0):(this.b[a&7]&=65280,this.i=this.C=this.j=this.w=0);break;case 35392:0<=(e=P(this,f=T(this,a,7)))&&(a=~e,0<=S(this,f,a)&&(this.i=this.w=a<<8,this.C=65536,this.j=0));break;case 35456:0<=(e=P(this,f=T(this,a,7)))&&(a=e+1,0<=S(this,f,a)&&(this.i=this.w=a<<8,this.j=(a&(a^
a&4&&(this.u=0);a&8&&(this.i=32768);break;default:switch(a){case 0:49152&this.f?K(this,4):(this.Pa=3,Ac(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.G.length))for(;0<a--;)g+=this.G[a].bb,this.G[a].bb=0;0===g&&0===this.Pa&&(this.Pa=2,Ac(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.f&49152||Cc(this);break;case 2:case 6:f=this.b[6];0<=(h=L(this,f|65536))&&(f=f+2&65535,0<=(c=L(this,f|65536))&&(this.b[6]=f+2&65535,c&=63743,this.f&49152&& e))<<8));break;case 35520:0<=(e=P(this,f=T(this,a,7)))&&(a=e-1,0<=S(this,f,a)&&(this.i=this.w=a<<8,this.j=((a^e)&e)<<8));break;case 35584:0<=(e=P(this,f=T(this,a,7)))&&(a=-e,0<=S(this,f,a)&&(this.C=this.i=this.w=a<<8,this.j=(a&e)<<8));break;case 35648:0<=(e=P(this,f=T(this,a,7)))&&(a=e+(this.C>>16&1),0<=S(this,f,a)&&(this.i=this.w=this.C=a<<8,this.j=(a&(a^e))<<8));break;case 35712:0<=(e=P(this,f=T(this,a,7)))&&(a=e-(this.C>>16&1),0<=S(this,f,a)&&(this.i=this.w=this.C=a<<8,this.j=((a^e)&e)<<8));break;
(c=c&63519|this.f&63712),this.b[7]=h,Ec(this,c),this.F&=-17,2===a&&(this.F|=this.f&16)));break;default:K(this,8)}}}}}}this.F&&(this.F&2?K(this,168):this.F&4?K(this,4):this.F&16&&K(this,12),this.F=0)}while(0<this.O)}return this.A.complete?this.T-this.O:void 0===this.A.complete?0:-1};Qa(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Bc(c);nb(c,d)}}); case 35776:0<=(e=Kc(this,a))&&(this.i=this.w=e<<8,this.C=this.j=0);break;case 35840:0<=(e=P(this,f=T(this,a,7)))&&(a=((this.C&65536)>>8|e)>>1,0<=S(this,f,a)&&(this.C=e<<16,this.i=this.w=a<<8,this.j=this.i^this.C>>1));break;case 35904:0<=(e=P(this,f=T(this,a,7)))&&(a=e<<1|this.C>>16&1,0<=S(this,f,a)&&(this.C=this.i=this.w=a<<8,this.j=(a^e)<<8));break;case 35968:0<=(e=P(this,f=T(this,a,7)))&&(a=e&128|e>>1,0<=S(this,f,a)&&(this.C=e<<16,this.i=this.w=a<<8,this.j=this.i^this.C>>1));break;case 36032:0<=
function Mc(a){u.call(this,"ROM",a,Mc);this.w=null;this.J=a.addr;this.B=a.size;this.K=a.writable;this.F=a.alias;this.G=a.file;this.M=ha(this.G);if(this.G){a=this.G;var b=ia(this.M);"json"!=b&&"hex"!=b&&(a=ma()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,f){Nc(d,a,b,f)})}}y(Mc);Mc.prototype.ya=function(a,b,d,c){this.H=b;this.f=d;this.I=c;Oc(this)}; (e=P(this,f=T(this,a,7)))&&(a=e<<1,0<=S(this,f,a)&&(this.C=this.i=this.w=a<<8,this.j=(a^e)<<8));break;case 36160:a&56?0<=(h=Jc(this,a,0))&&(this.B=this.f>>12&3,0<=(c=L(this,h|65536))&&(this.B=this.f>>14&3,0<=Gc(this,c)&&(this.i=this.w=c,this.j=0))):(g=a&7,c=6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]:this.Aa[this.f>>12&3],0<=Gc(this,c)&&(this.i=this.w=c,this.j=0));break;case 36224:0<=(e=Ic(this))&&((this.J&57344||(this.L=22),a&56)?0<=(h=Jc(this,a,0))&&(this.B=this.f>>12&3,0<=(f=Hc(this,h|
Mc.prototype.sa=function(){if(this.qa){if(this.I){var a=this.I,b=this.id,d=this.J,c=this.B,e=this.qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=f,k=[k>>>0,h],p=ua(n,k,a.hb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.K.push({Ib:b,D:d,Cb:c,qa:e,fb:f})}delete this.qa}return!0};Mc.prototype.ra=function(){return!0}; 65536,4))&&(this.B=this.f>>14&3,0<=O(this,f,e)&&(this.i=this.w=e,this.j=0))):(g=a&7,6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]=e:this.Aa[this.f>>12&3]=e,this.i=this.w=e,this.j=0));break;default:switch(a&65528){case 128:0<=(c=Ic(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.f&49152||(this.f=this.f&63519|(a&7)<<5,this.W=1);break;case 160:case 168:a&1&&(this.C=0);a&2&&(this.j=0);a&4&&(this.w=1);a&8&&(this.i=0);break;case 176:case 184:a&1&&(this.C=65536);a&2&&(this.j=32768);
function Nc(a,b,d,c){if(c)a.ea("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.lb,b,d);var e;if("["==d.charAt(0)||"{"==d.charAt(0))try{var f,h,g=eval("("+d+")");if(f=g.bytes)a.w=f;else if(f=g.words)for(a.w=Array(2*f.length),h=e=0;e<f.length;e++)a.w[h++]=f[e]&255,a.w[h++]=f[e]>>8&255;else if(f=g.data)for(a.w=Array(4*f.length),h=e=0;e<f.length;e++)a.w[h++]=f[e]&255,a.w[h++]=f[e]>>8&255,a.w[h++]=f[e]>>16&255,a.w[h++]=f[e]>>24&255;else a.w=g;a.qa=g.symbols;if(!a.w.length){t("Empty ROM: "+ a&4&&(this.w=0);a&8&&(this.i=32768);break;default:switch(a){case 0:49152&this.f?K(this,4):(this.Ra=3,pc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.H.length))for(;0<a--;)g+=this.H[a].gb,this.H[a].gb=0;0===g&&0===this.Ra&&(this.Ra=2,pc(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.f&49152||Dc(this);break;case 2:case 6:f=this.b[6];0<=(h=L(this,f|65536))&&(f=f+2&65535,0<=(c=L(this,f|65536))&&(this.b[6]=f+2&65535,c&=63743,this.f&49152&&
b);return}if(1==a.w.length){t(a.w[0]);return}}catch(k){a.ea("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=aa(b[e],16);Oc(a)}} (c=c&63519|this.f&63712),this.b[7]=h,Fc(this,c),this.G&=-17,2===a&&(this.G|=this.f&16)));break;default:K(this,8)}}}}}}this.G&&(this.G&2?K(this,168):this.G&4?K(this,4):this.G&16&&K(this,12),this.G=0)}while(0<this.P)}return this.A.complete?this.U-this.P:void 0===this.A.complete?0:-1};Qa(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Cc(c);nb(c,d)}});
function Oc(a){if(!rb(a))if(!a.G)E(a);else if(a.w&&a.H){a.B||(a.B=a.w.length);if(a.w.length!=a.B)sb(a,"ROM size ("+r(a.w.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(yb(a.H,b,a.B,a.K?1:Sb)){var d;for(d=0;d<a.w.length;d++){var c=a.H,e=b+d;c.P[(e&c.w)>>>c.ba].La(e&c.H,a.w[d]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var f=a,c=b[d],e=f.H,h=f.B,g=[],k=f.J>>>e.ba;0<h&&k<e.P.length;)g.push(e.P[k++]), function Nc(a){u.call(this,"ROM",a,Nc);this.u=null;this.J=a.addr;this.B=a.size;this.L=a.writable;this.G=a.alias;this.H=a.file;this.N=ha(this.H);if(this.H){a=this.H;var b=ia(this.N);"json"!=b&&"hex"!=b&&(a=ma()+"/api/v1/dump?file="+this.H+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,f){Oc(d,a,b,f)})}}y(Nc);Nc.prototype.xa=function(a,b,d,c){this.F=b;this.f=d;this.I=c;Pc(this)};
h-=e.ma;e=f.H;f=f.B;h=0;for(c>>>=e.ba;0<f&&c<e.P.length;){k=g[h++];if(!k)break;e.P[c++]=k;f-=e.ma}}delete a.w}}E(a)}}Qa(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Mc(c);nb(c,d)}});function Pc(a){u.call(this,"RAM",a,Pc);this.F=a.addr;this.B=a.size;this.w=!1}y(Pc);m=Pc.prototype;m.ya=function(a,b,d,c){this.H=b;this.f=d;this.I=c;E(this)};m.sa=function(a,b){b||this.reset();return!0};m.ra=function(a){return a?this.save():!0}; Nc.prototype.ta=function(){if(this.ra){if(this.I){var a=this.I,b=this.id,d=this.J,c=this.B,e=this.ra,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=f,k=[k>>>0,h],p=ua(n,k,a.nb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.L.push({Rb:b,D:d,Hb:c,ra:e,lb:f})}delete this.ra}return!0};Nc.prototype.sa=function(){return!0};
m.reset=function(){!this.w&&this.B&&yb(this.H,this.F,this.B,1)&&(this.w=!0);this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Pc(c);nb(c,d)}});function Qc(a){u.call(this,"Keyboard",a,Qc,65536);E(this)}y(Qc);Qc.prototype.ha=function(){return!1};Qc.prototype.ya=function(a,b,d,c){this.w=a;this.f=d;this.I=c;this.fa=null}; function Oc(a,b,d,c){if(c)a.ea("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.rb,b,d);var e;if("["==d.charAt(0)||"{"==d.charAt(0))try{var f,h,g=eval("("+d+")");if(f=g.bytes)a.u=f;else if(f=g.words)for(a.u=Array(2*f.length),h=e=0;e<f.length;e++)a.u[h++]=f[e]&255,a.u[h++]=f[e]>>8&255;else if(f=g.data)for(a.u=Array(4*f.length),h=e=0;e<f.length;e++)a.u[h++]=f[e]&255,a.u[h++]=f[e]>>8&255,a.u[h++]=f[e]>>16&255,a.u[h++]=f[e]>>24&255;else a.u=g;a.ra=g.symbols;if(!a.u.length){t("Empty ROM: "+
Qa(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Qc(c);nb(c,d)}});function Rc(a){u.call(this,"Debugger",a,Rc);this.la=a.base||16;this.S=this.ka=this.M=0;this.U=!1;this.G=-1;this.F=[];this.W={}}y(Rc);var Sc={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; b);return}if(1==a.u.length){t(a.u[0]);return}}catch(k){a.ea("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e<b.length;e++)a.u[e]=aa(b[e],16);Pc(a)}}
function Tc(a,b,d,c){if(d)if(b){0>a.G&&a.F.length&&(a.G=0);if(0>a.G||b!=a.F[a.G])a.F.splice(0,0,b),a.G=0;a.G--}else a.U?b="end":b=a.F[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var e=null;c=c||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)a.push(qa(b.substring(d,f))),d=f+1}}return a} function Pc(a){if(!rb(a))if(!a.H)E(a);else if(a.u&&a.F){a.B||(a.B=a.u.length);if(a.u.length!=a.B)sb(a,"ROM size ("+r(a.u.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(yb(a.F,b,a.B,a.L?1:Tb)){var d;for(d=0;d<a.u.length;d++){var c=a.F,e=b+d;c.M[(e&c.u)>>>c.S].Na(e&c.F,a.u[d]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(d=0;d<b.length;d++){for(var f=a,c=b[d],e=f.F,h=f.B,g=[],k=f.J>>>e.S;0<h&&k<e.M.length;)g.push(e.M[k++]),
function Uc(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(c){case "*":c=f*e;break;case "/":if(!e)return!1;c=f/e;break;case "%":if(!e)return!1;c=f%e;break;case "+":c=f+e;break;case "-":c=f-e;break;case "<<":c=f<<e;break;case ">>":c=f>>e;break;case ">>>":c=f>>>e;break;case "<":c=f<e?1:0;break;case "<=":c=f<=e?1:0;break;case ">":c=f>e?1:0;break;case ">=":c=f>=e?1:0;break;case "==":c=f==e?1:0;break;case "!=":c=f!=e?1:0;break;case "&":c=f&e;break; h-=e.ma;e=f.F;f=f.B;h=0;for(c>>>=e.S;0<f&&c<e.M.length;){k=g[h++];if(!k)break;e.M[c++]=k;f-=e.ma}}delete a.u}}E(a)}}Qa(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Nc(c);nb(c,d)}});function Qc(a){u.call(this,"RAM",a,Qc);this.G=a.addr;this.B=a.size;this.u=!1}y(Qc);m=Qc.prototype;m.xa=function(a,b,d,c){this.F=b;this.f=d;this.I=c;E(this)};m.ta=function(a,b){b||this.reset();return!0};m.sa=function(a){return a?this.save():!0};
m.reset=function(){!this.u&&this.B&&yb(this.F,this.G,this.B,1)&&(this.u=!0);this.u||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Qc(c);nb(c,d)}});function Rc(a){u.call(this,"Keyboard",a,Rc,65536);E(this)}y(Rc);Rc.prototype.ha=function(){return!1};Rc.prototype.xa=function(a,b,d,c){this.u=a;this.f=d;this.I=c;this.fa=null};
Qa(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Rc(c);nb(c,d)}});function Sc(a){u.call(this,"Debugger",a,Sc);this.fa=a.base||16;this.T=this.la=this.N=0;this.V=!1;this.H=-1;this.G=[];this.X={}}y(Sc);var Tc={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Uc(a,b,d,c){if(d)if(b){0>a.H&&a.G.length&&(a.H=0);if(0>a.H||b!=a.G[a.H])a.G.splice(0,0,b),a.H=0;a.H--}else a.V?b="end":b=a.G[a.H+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var e=null;c=c||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)a.push(qa(b.substring(d,f))),d=f+1}}return a}
function Vc(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(c){case "*":c=f*e;break;case "/":if(!e)return!1;c=f/e;break;case "%":if(!e)return!1;c=f%e;break;case "+":c=f+e;break;case "-":c=f-e;break;case "<<":c=f<<e;break;case ">>":c=f>>e;break;case ">>>":c=f>>>e;break;case "<":c=f<e?1:0;break;case "<=":c=f<=e?1:0;break;case ">":c=f>e?1:0;break;case ">=":c=f>=e?1:0;break;case "==":c=f==e?1:0;break;case "!=":c=f!=e?1:0;break;case "&":c=f&e;break;
case "^":c=f^e;break;case "|":c=f|e;break;case "&&":c=f&&e?1:0;break;case "||":c=f||e?1:0;break;default:return!1}a.push(c|0)}return!0} case "^":c=f^e;break;case "|":c=f|e;break;case "&&":c=f&&e?1:0;break;case "||":c=f||e?1:0;break;default:return!1}a.push(c|0)}return!0}
function Vc(a,b,d){var c;if(b){b=Wc(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var n=l[e++],p=n.length,n=qa(n);if(!n){f=!0;break}n=Xc(a,n,null,!1===d);if(void 0===n){f=!0;d=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],q=n.length;k.length&&Sc[n]<Sc[k[k.length-1]]&&Uc(g,k,1);k.push(n);b=b.substr(p+q)}Uc(g,k)&&1==g.length||(f=!0);f?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&Yc(a,null, function Wc(a,b,d){var c;if(b){b=Xc(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var n=l[e++],p=n.length,n=qa(n);if(!n){f=!0;break}n=Yc(a,n,null,!1===d);if(void 0===n){f=!0;d=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],q=n.length;k.length&&Tc[n]<Tc[k[k.length-1]]&&Vc(g,k,1);k.push(n);b=b.substr(p+q)}Vc(g,k)&&1==g.length||(f=!0);f?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&Zc(a,null,
c))}return c}function Wc(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=Vc(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var e=null;switch(c[1].toLowerCase()){case "ops":e=a.S-a.ka}if(null==e)break;d=d.replace(c[0],e.toString())}return d} c))}return c}function Xc(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=Wc(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var e=null;switch(c[1].toLowerCase()){case "ops":e=a.T-a.la}if(null==e)break;d=d.replace(c[0],e.toString())}return d}
function Xc(a,b,d,c){var e;null!=b?(e=a.W[b],null==e&&(e=aa(b,a.la)),null!=e||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return e}function Yc(a,b,d){var c,e=!1;if(void 0!==d){e=!0;c=d;var f=0,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ga(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return e} function Yc(a,b,d,c){var e;null!=b?(e=a.X[b],null==e&&(e=aa(b,a.fa)),null!=e||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return e}function Zc(a,b,d){var c,e=!1;if(void 0!==d){e=!0;c=d;var f=0,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ga(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return e}
function Zc(a,b){if(b)return Yc(a,b,a.W[b]);var d=0;for(b in a.W)Yc(a,b,a.W[b]),d++;return 0<d}function W(a,b,d){switch(a.la){case 8:return ga(b,d);case 10:return b.toString();default:return r(b,d)}} function $c(a,b){if(b)return Zc(a,b,a.X[b]);var d=0;for(b in a.X)Zc(a,b,a.X[b]),d++;return 0<d}function W(a,b,d){switch(a.fa){case 8:return ga(b,d);case 10:return b.toString();default:return r(b,d)}}
function $c(a){Rc.call(this,a);this.O=X();this.ua=X();this.T=X();this.K=[];this.B=this.R=this.J=[];ad(this);this.fa=0;bd(this);this.na=[];cd(this,a.messages);this.pa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return hc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return hc(b,a)})}y($c,Rc); function ad(a){Sc.call(this,a);this.P=X();this.Da=X();this.U=X();this.L=[];this.B=this.R=this.J=[];bd(this);this.ga=0;cd(this);this.na=[];dd(this,a.messages);this.qa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return ic(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return ic(b,a)})}y(ad,Sc);
var dd={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},ed="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "), var ed={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},fd="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
fd={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], gd={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72, 33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=$c.prototype; 63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=ad.prototype;
m.ya=function(a,b,d,c){this.H=b;this.f=d;this.w=a;(a=ec(a,"messages"))&&cd(this,a);this.Fa=fd;gd(this,function(a){a:{var b=c.H.P,d=a[0],g=a=0,k=b.length;if(d){a=Y(Z(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.H.ba;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Ab[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.H.ba,8)+" %%"+r(n.D,8)+" "+r(n.Va,4, m.xa=function(a,b,d,c){this.F=b;this.f=d;this.u=a;(a=fc(a,"messages"))&&dd(this,a);this.Fa=gd;hd(this,function(a){a:{var b=c.F.M,d=a[0],g=a=0,k=b.length;if(d){a=Y(Z(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.F.S;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Bb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.F.S,8)+" %%"+r(n.D,8)+" "+r(n.Ya,4,!0)+
!0)+" "+r(n.size,4,!0)+" "+l),d!=Rb&&(d=-1),l=0);a+=c.H.ma;g++}}});E(this)}; " "+r(n.size,4,!0)+" "+l),d!=Sb&&(d=-1),l=0);a+=c.F.ma;g++}}});E(this)};
m.ha=function(a,b,d){var c=this;switch(b){case "debugInput":return this.da=this.L[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",hc(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.G<c.F.length-1&&(b=c.F[++c.G])):40==a.keyCode&&(0<c.G?b=c.F[--c.G]:(b="",c.G=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.L[b]=d,Ka(d,function(){if(c.da){var a=c.da.value; m.ha=function(a,b,d){var c=this;switch(b){case "debugInput":return this.da=this.K[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",ic(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.H<c.G.length-1&&(b=c.G[++c.H])):40==a.keyCode&&(0<c.H?b=c.G[--c.H]:(b="",c.H=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.K[b]=d,Ka(d,function(){if(c.da){var a=c.da.value;
c.da.value="";hc(c,a,!0);return!0}return!1}),!0;case "step":return this.L[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.Ka(a?1:0),pb(c,!1));return b}),!0}return!1};m.Ua=function(){this.da&&this.da.focus()};function Y(a){a=a&&a.D;null==a&&(a=-1);return a}m.Za=function(a,b){var d=255,c=Y(a);-1!==c&&(d=this.H,d=d.P[(c&d.w)>>>d.ba].Ta(c&d.H,c),b&&hd(a,b));return d};m.ta=function(a,b){var d=65535,c=Y(a);-1!==c&&(d=Bb(this.H,c),b&&hd(a,b));return d}; c.da.value="";ic(c,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.La(a?1:0),pb(c,!1));return b}),!0}return!1};m.Xa=function(){this.da&&this.da.focus()};function Y(a){a=a&&a.D;null==a&&(a=-1);return a}m.Sa=function(a,b){var d=255,c=Y(a);-1!==c&&(d=this.F,d=d.M[(c&d.u)>>>d.S].Wa(c&d.F,c),b&&id(a,b));return d};m.pa=function(a,b){var d=65535,c=Y(a);-1!==c&&(d=Cb(this.F,c),b&&id(a,b));return d};
m.eb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.H;e.P[(c&e.w)>>>e.ba].La(c&e.H,b&255,c);d&&hd(a,d);H(this.f,!0)}};m.xb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.H,f=c&e.H,h=(c&e.w)>>>e.ba;f!=e.H?e.P[h].wb(f,b&65535,c):(e.P[h++].La(f,b&255,c),e.P[h&e.K].La(0,b>>8&255,c+1));d&&hd(a,d);H(this.f,!0)}};function X(a){return{D:a,oa:!1}}function id(a){return[a.D,a.oa]}function jd(a){return{D:a[0],oa:a[1]}} m.bb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.F;e.M[(c&e.u)>>>e.S].Na(c&e.F,b&255,c);d&&id(a,d);H(this.f,!0)}};m.ib=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.F,f=c&e.F,h=(c&e.u)>>>e.S;f!=e.F?e.M[h].kb(f,b&65535,c):(e.M[h++].Na(f,b&255,c),e.M[h&e.B].Na(0,b>>8&255,c+1));d&&id(a,d);H(this.f,!0)}};function X(a){return{D:a,oa:!1}}function jd(a){return[a.D,a.oa]}function kd(a){return{D:a[0],oa:a[1]}}
function Z(a,b,d){var c;d=(d?a.O:a.ua).D;if(void 0!==b){c=b=Wc(a,b);var e;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.K.length;d++){var f=a.K[d].qa[c];if(void 0!==f){c=f.o;void 0!==c&&(e=X(c));break}}if(c=e)return c;d=Vc(a,b,void 0)}null!=d&&(c=X(d));return c}function kd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.yb=Tc(a,b.vb=d[2]))}function hd(a,b){null!=a.D&&(a.D+=b||1)} function Z(a,b,d){var c;d=(d?a.P:a.Da).D;if(void 0!==b){c=b=Xc(a,b);var e;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.L.length;d++){var f=a.L[d].ra[c];if(void 0!==f){c=f.o;void 0!==c&&(e=X(c));break}}if(c=e)return c;d=Wc(a,b,void 0)}null!=d&&(c=X(d));return c}function ld(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Db=Uc(a,b.Bb=d[2]))}function id(a,b){null!=a.D&&(a.D+=b||1)}
function cd(a,b){a.I=a;a.$=a.zb=536870912;a.ga=null;a.ja=[];var d=Tc(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var e;a:if(e=void 0,Array.prototype.indexOf)e=d.indexOf(c,e);else{e=e||0;0>e&&(e+=d.length);0>e&&(e=0);for(var f=d.length;e<f;e++)if(e in d&&d[e]===c)break a;e=-1}0<=e&&(a.$|=F[c],a.g(c+" messages enabled"))}}function gd(a,b){for(var d in F)if(64==F[d]){a.na[d]=b;break}} function dd(a,b){a.I=a;a.aa=a.Eb=536870912;a.ia=null;a.ka=[];var d=Uc(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var e;a:if(e=void 0,Array.prototype.indexOf)e=d.indexOf(c,e);else{e=e||0;0>e&&(e+=d.length);0>e&&(e=0);for(var f=d.length;e<f;e++)if(e in d&&d[e]===c)break a;e=-1}0<=e&&(a.aa|=F[c],a.g(c+" messages enabled"))}}function hd(a,b){for(var d in F)if(64==F[d]){a.na[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+W(this,X(this.f.b[7]).D));if(this.$&1073741824)this.ja.push(a);else if(!this.ga||a!=this.ga)if(this.ga=a,this.$&-2147483648&&(this.ca(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Ac(d);d.Y=0;H(d)}}; m.message=function(a,b){b&&(a+=" at "+W(this,X(this.f.b[7]).D));if(this.aa&1073741824)this.ka.push(a);else if(!this.ia||a!=this.ia)if(this.ia=a,this.aa&-2147483648&&(this.ca(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;pc(d);d.Z=0;H(d)}};
function bd(a){var b;if(Kc(a)){if(!a.N||!a.N.length){a.N=Array(1E3);for(b=0;b<a.N.length;b++)a.N[b]=X();a.Y=0;a.g("instruction history buffer allocated")}if(!a.X||!a.X.length)for(a.X=Array(256),b=0;b<a.X.length;b++)a.X[b]=[b,0]}else a.N&&a.N.length&&a.g("instruction history buffer freed"),a.Y=0,a.N=[],a.X=[]}m.Ca=function(a){if(!ld(this))return!1;this.f.Ca(a);return!0}; function cd(a){var b;if(Lc(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=X();a.Z=0;a.g("instruction history buffer allocated")}if(!a.Y||!a.Y.length)for(a.Y=Array(256),b=0;b<a.Y.length;b++)a.Y[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.Z=0,a.O=[],a.Y=[]}m.Ba=function(a){if(!md(this))return!1;this.f.Ba(a);return!0};
m.Ka=function(a,b,d){if(!ld(this))return!1;this.M=0;a||Kc(this)&&Lc(this,this.f.b[7],0);try{var c=this.f.Ka(a);0<c&&(this.M+=c,mc(this.f,c,!0),ic(this.f,c),this.S++)}catch(e){"number"!=typeof e&&(this.M=0,sb(this.f,e.stack||e.message))}!1!==d&&H(this.f);this.ia(b||!1);return 0<this.M};m.ca=function(a){this.f&&this.f.ca(a)};m.ia=function(a){void 0===a&&(a=!0);this.O=X(this.f.b[7]);a&&1!=this.V?md(this):nd(this)}; m.La=function(a,b,d){if(!md(this))return!1;this.N=0;a||Lc(this)&&Mc(this,this.f.b[7],0);try{var c=this.f.La(a);0<c&&(this.N+=c,nc(this.f,c,!0),jc(this.f,c),this.T++)}catch(e){"number"!=typeof e&&(this.N=0,sb(this.f,e.stack||e.message))}!1!==d&&H(this.f);this.ja(b||!1);return 0<this.N};m.ca=function(a){this.f&&this.f.ca(a)};m.ja=function(a){void 0===a&&(a=!0);this.P=X(this.f.b[7]);a&&1!=this.W?nd(this):od(this)};
function ld(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.Z?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.sa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.ra=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){bd(this);this.S=this.ka=0;this.ga=null;this.M=0;this.O=X(this.f.b[7]);this.A.aa=!1;od(this);a||this.ia()}; function md(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.$?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.ta=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.sa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){cd(this);this.T=this.la=0;this.ia=null;this.N=0;this.P=X(this.f.b[7]);this.A.ba=!1;pd(this);a||this.ja()};
m.save=function(){var a=new I(this);J(a,0,id(this.O));J(a,1,id(this.T));J(a,2,[this.F,this.U,this.$]);J(a,3,this.K);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.O=jd(a[b++]),this.T=jd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.U=a[b][1],this.$|=a[b][2]);a[3]&&(this.K=a[3]);return!0};m.start=function(a,b){this.V||this.g("running");this.A.aa=!0;this.Oa=a;this.Pa=b}; m.save=function(){var a=new I(this);J(a,0,jd(this.P));J(a,1,jd(this.U));J(a,2,[this.G,this.V,this.aa]);J(a,3,this.L);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.P=kd(a[b++]),this.U=kd(a[b++]),this.G=a[b][0],"string"==typeof this.G&&(this.G=[this.G]),this.V=a[b][1],this.aa|=a[b][2]);a[3]&&(this.L=a[3]);return!0};m.start=function(a,b){this.W||this.g("running");this.A.ba=!0;this.Qa=a;this.Ra=b};
m.stop=function(a,b){if(this.A.aa){this.A.aa=!1;this.M=b-this.Pa;if(!this.V){var d="stopped";if(this.M){var c=a-this.Oa,e=0<c?Math.round(1E3*this.M/c):0,d=d+" (";Kc(this)&&(d+=this.S+" opcodes, ",this.ka-=this.S,this.S=0);d+=this.M+" cycles, "+c+" ms, "+e+" hz)"}else ob(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.ia(!0);this.Ua();od(this,this.f.b[7])}};function Kc(a){return 1<a.B.length||!!a.fa} m.stop=function(a,b){if(this.A.ba){this.A.ba=!1;this.N=b-this.Ra;if(!this.W){var d="stopped";if(this.N){var c=a-this.Qa,e=0<c?Math.round(1E3*this.N/c):0,d=d+" (";Lc(this)&&(d+=this.T+" opcodes, ",this.la-=this.T,this.T=0);d+=this.N+" cycles, "+c+" ms, "+e+" hz)"}else ob(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.ja(!0);this.Xa();pd(this,this.f.b[7])}};function Lc(a){return 1<a.B.length||!!a.ga}
function Lc(a,b,d){var c=a.f;if(0<d&&(a.fa&&!--a.fa||$b(a,b,1,a.B)))return!0;0<=d&&a.X.length&&(a.S++,null!=Bb(a.H,b)&&(b=a.N[a.Y],b.D=c.b[7],b.oa=!1,++a.Y==a.N.length&&(a.Y=0)));return!1}function ad(a){var b,d;a.B=["bp"];if(void 0!==a.R)for(b=1;b<a.R.length;b++){d=a.R[b];var c=a.H;ac(c.P[Y(d)>>>c.ba],!1)}a.R=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.H,ac(c.P[Y(d)>>>c.ba],!0);a.J=["bw"];a.Da=0} function Mc(a,b,d){var c=a.f;if(0<d&&(a.ga&&!--a.ga||ac(a,b,1,a.B)))return!0;0<=d&&a.Y.length&&(a.T++,null!=Cb(a.F,b)&&(b=a.O[a.Z],b.D=c.b[7],b.oa=!1,++a.Z==a.O.length&&(a.Z=0)));return!1}function bd(a){var b,d;a.B=["bp"];if(void 0!==a.R)for(b=1;b<a.R.length;b++){d=a.R[b];var c=a.F;bc(c.M[Y(d)>>>c.S],!1)}a.R=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.F,bc(c.M[Y(d)>>>c.S],!0);a.J=["bw"];a.Ca=0}
m.wa=function(a,b,d){var c=!0;d||pd(this,a,b,!1,!0);if(a!=this.B){var e=Y(b);if(-1===e)this.g("invalid address: "+W(this,b.D)),c=!1;else{var f=this.H;f.P[e>>>f.ba].wa(e&f.H,a==this.J)}}c&&(a.push(b),d?b.oa=!0:(qd(this,a,a.length-1,"set"),bd(this)));return c};function pd(a,b,d,c,e){var f=!1;d=Y(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Y(g)&&(!c||g.oa)){f=!0;g.oa||e||qd(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.H,ac(c.P[d>>>c.ba],b==a.J));g.oa||bd(a);break}}return f} m.va=function(a,b,d){var c=!0;d||qd(this,a,b,!1,!0);if(a!=this.B){var e=Y(b);if(-1===e)this.g("invalid address: "+W(this,b.D)),c=!1;else{var f=this.F;f.M[e>>>f.S].va(e&f.F,a==this.J)}}c&&(a.push(b),d?b.oa=!0:(rd(this,a,a.length-1,"set"),cd(this)));return c};function qd(a,b,d,c,e){var f=!1;d=Y(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Y(g)&&(!c||g.oa)){f=!0;g.oa||e||rd(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.F,bc(c.M[d>>>c.S],b==a.J));g.oa||cd(a);break}}return f}
function rd(a,b){for(var d=1;d<b.length;d++)qd(a,b,d);return b.length-1}function qd(a,b,d,c){d=b[d];a.g(b[0]+" "+W(a,d.D)+(c?" "+c:d.vb?' "'+d.vb+'"':""))}function od(a,b){if(void 0!==b)$b(a,b,1,a.B,!0),a.V=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.oa){if(!pd(a,a.B,c,!0))break;d=0}}} function sd(a,b){for(var d=1;d<b.length;d++)rd(a,b,d);return b.length-1}function rd(a,b,d,c){d=b[d];a.g(b[0]+" "+W(a,d.D)+(c?" "+c:d.Bb?' "'+d.Bb+'"':""))}function pd(a,b){if(void 0!==b)ac(a,b,1,a.B,!0),a.W=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.oa){if(!qd(a,a.B,c,!0))break;d=0}}}
function $b(a,b,d,c,e){var f=!1;if(!a.Da++)for(var h=1;!f&&h<c.length;h++){var g=c[h];if(!e||g.oa)for(var k=Y(g),l=0;l<d;l++)if(b+l==k){var n,f=!0;g.oa&&(pd(a,c,g,!0),e=!0);if(n=g.yb){for(var f=!1,p=0;p<n.length;p++)if(!sd(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){f=!0;break}}a.f.A.aa||(f=!0)}if(f){e||qd(a,c,h,"hit");break}}}a.Da--;return f} function ac(a,b,d,c,e){var f=!1;if(!a.Ca++)for(var h=1;!f&&h<c.length;h++){var g=c[h];if(!e||g.oa)for(var k=Y(g),l=0;l<d;l++)if(b+l==k){var n,f=!0;g.oa&&(qd(a,c,g,!0),e=!0);if(n=g.Db){for(var f=!1,p=0;p<n.length;p++)if(!td(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){f=!0;break}}a.f.A.ba||(f=!0)}if(f){e||rd(a,c,h,"hit");break}}}a.Ca--;return f}
function td(a,b,d,c){var e=X(b.D),f=a.ta(b,2),h,g;for(g in a.Fa)if(h=a.Fa[g][f&g])break;h||(h=[0]);g="";for(var k=ed[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var A=p,p=b,v="",w=void 0,w=void 0,w=A&61440;if(4096==w)w=(f&255)<<24>>23,w=p.D+w&65535,v=W(q,w);else if(8192==w)w=(f&63)<<1,w=p.D-w&65535,v=W(q,w);else if(12288==w)w=f&7,v=W(q,w,2);else if(24576==w)w=f&63,v=W(q,w);else if(w=f&A,A&4032&&(w>>=6,A>>=6),A&63){var A=void 0,z=w&7;switch((w&56)>>3){case 0:v=ud(z);break; function ud(a,b,d,c){var e=X(b.D),f=a.pa(b,2),h,g;for(g in a.Fa)if(h=a.Fa[g][f&g])break;h||(h=[0]);g="";for(var k=fd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var A=p,p=b,v="",w=void 0,w=void 0,w=A&61440;if(4096==w)w=(f&255)<<24>>23,w=p.D+w&65535,v=W(q,w);else if(8192==w)w=(f&63)<<1,w=p.D-w&65535,v=W(q,w);else if(12288==w)w=f&7,v=W(q,w,2);else if(24576==w)w=f&63,v=W(q,w);else if(w=f&A,A&4032&&(w>>=6,A>>=6),A&63){var A=void 0,z=w&7;switch((w&56)>>3){case 0:v=vd(z);break;
case 1:v="@"+ud(z);break;case 2:7>z?v="("+ud(z)+")+":(A=q.ta(p,2),v="#"+W(q,A));break;case 3:7>z?v="@("+ud(z)+")+":(A=q.ta(p,2),v="@#"+W(q,A));break;case 4:v="-("+ud(z)+")";break;case 5:v="@-("+ud(z)+")";break;case 6:A=q.ta(p,2);v=W(q,A)+"("+ud(z)+")";7==z&&(v=[v,W(q,A+p.D&65535)]);break;case 7:A=q.ta(p,2),v="@"+W(q,A)+"("+ud(z)+")",7==z&&(v=[v,W(q,A+p.D&65535)])}}q=v;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}f="";h=W(a,e.D)+":"; case 1:v="@"+vd(z);break;case 2:7>z?v="("+vd(z)+")+":(A=q.pa(p,2),v="#"+W(q,A));break;case 3:7>z?v="@("+vd(z)+")+":(A=q.pa(p,2),v="@#"+W(q,A));break;case 4:v="-("+vd(z)+")";break;case 5:v="@-("+vd(z)+")";break;case 6:A=q.pa(p,2);v=W(q,A)+"("+vd(z)+")";7==z&&(v=[v,W(q,A+p.D&65535)]);break;case 7:A=q.pa(p,2),v="@"+W(q,A)+"("+vd(z)+")",7==z&&(v=[v,W(q,A+p.D&65535)])}}q=v;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}f="";h=W(a,e.D)+":";
if(-1!==e.D&&-1!==b.D){do if(f+=" "+W(a,a.ta(e,2)),null==e.D)break;while(e.D!=b.D)}h+=pa(f,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.Ha?h+("cycles="+jc(a.f).toString()+" cs="+r(a.f.Qa)):h+(null!=c?"="+c.toString():""));return h}function vd(a,b){var d;switch(b){case "N":d=a.f.i>>12&8;break;case "Z":d=a.f.u&65535?0:4;break;case "V":d=a.f.j&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}function ud(a){return 6>a?"R"+a:6==a?"SP":"PC"} if(-1!==e.D&&-1!==b.D){do if(f+=" "+W(a,a.pa(e,2)),null==e.D)break;while(e.D!=b.D)}h+=pa(f,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.Ha?h+("cycles="+kc(a.f).toString()+" cs="+r(a.f.Ta)):h+(null!=c?"="+c.toString():""));return h}function Ud(a,b){var d;switch(b){case "N":d=a.f.i&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.j&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
function Ud(a,b){var d="",c=a.f;8>b?(d=ud(b),d+="="+W(a,c.b[b])):13>b?d="A"+(b-8)+"="+W(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+W(a,c.Ba[b-16]):20==b&&(d="PS="+W(a,Dc(c)));d&&(d+=" ");return d}m.hb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function Vd(a,b,d){var c=[],e=Y(b)>>>0;for(b=0;b<a.K.length;b++){var f=a.K[b],h=f.D>>>0,g=f.Cb;if(e>=h&&e<h+g){e=ua(f.fb,[e-h],a.hb);0<=e?Wd(a,b,e,c):d&&(e=~e,Wd(a,b,e-1,c),Wd(a,b,e,c));break}}return c} function vd(a){return 6>a?"R"+a:6==a?"SP":"PC"}function Vd(a,b){var d="",c=a.f;8>b?(d=vd(b),d+="="+W(a,c.b[b])):13>b?d="A"+(b-8)+"="+W(a,c.ab[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+W(a,c.Aa[b-16]):20==b&&(d="PS="+W(a,Ec(c)));d&&(d+=" ");return d}m.nb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function Wd(a,b,d){var c=[],e=Y(b)>>>0;for(b=0;b<a.L.length;b++){var f=a.L[b],h=f.D>>>0,g=f.Hb;if(e>=h&&e<h+g){e=ua(f.lb,[e-h],a.nb);0<=e?Xd(a,b,e,c):d&&(e=~e,Xd(a,b,e-1,c),Xd(a,b,e,c));break}}return c}
function Wd(a,b,d,c){var e={},f=a.K[b].fb,h=0,g=null;0<=d&&d<f.length&&(h=f[d][0],g=f[d][1]);g&&(e=a.K[b].qa[g],g="."==g.charAt(0)?null:e.l||g);c.push(g);c.push(h);c.push(e.a);c.push(e.c)}function Xd(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return Zc(a)||a.g("no variables"),!0;if(!d[2])return Zc(a,d[1]);if(!d[3])return delete a.W[d[1]],!0;var c=Vc(a,d[3]);return void 0!==c?(a.W[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1} function Xd(a,b,d,c){var e={},f=a.L[b].lb,h=0,g=null;0<=d&&d<f.length&&(h=f[d][0],g=f[d][1]);g&&(e=a.L[b].ra[g],g="."==g.charAt(0)?null:e.l||g);c.push(g);c.push(h);c.push(e.a);c.push(e.c)}function Yd(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return $c(a)||a.g("no variables"),!0;if(!d[2])return $c(a,d[1]);if(!d[3])return delete a.X[d[1]],!0;var c=Wc(a,d[3]);return void 0!==c?(a.X[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function Yd(a,b,d){var c=null;if(b=Z(a,b,!0)){var e=Vd(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.D-e[1])&&(h=" + "+r(f,4,!0)),f=e[0]+" ("+W(a,e[1])+")"+h,d&&a.g(f),c=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.D)&&(h=" - "+r(f,4,!0)),f=e[4]+" ("+W(a,e[5])+")"+h,d&&a.g(f),c||(c=f))}else d&&a.g("no symbols")}return c} function Zd(a,b,d){var c=null;if(b=Z(a,b,!0)){var e=Wd(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.D-e[1])&&(h=" + "+r(f,4,!0)),f=e[0]+" ("+W(a,e[1])+")"+h,d&&a.g(f),c=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.D)&&(h=" - "+r(f,4,!0)),f=e[4]+" ("+W(a,e[5])+")"+h,d&&a.g(f),c||(c=f))}else d&&a.g("no symbols")}return c}
function md(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Vc(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "PC":c.b[7]=g;a.O=X(c.b[7]);break;case "NF":break;case "ZF":break;case "VF":break;case "CF":break; function nd(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Wc(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "PC":c.b[7]=g;a.P=X(c.b[7]);break;case "NF":c.i=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.j=
default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}H(c);a.g("updated registers:")}f="";for(e=0;6>e;e++)f+=Ud(a,e);f=f+"\n"+(Ud(a,6)+Ud(a,7));f+=vd(a,"T")+vd(a,"N")+vd(a,"Z")+vd(a,"V")+vd(a,"C");a.g(f);d&&(a.O=X(c.b[7]),nd(a,W(a,a.O.D)))}}function Zd(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):Vc(a,b,!0)} g?32768:0;break;case "CF":c.C=g?65536:0;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}H(c);a.g("updated registers:")}f="";for(e=0;6>e;e++)f+=Vd(a,e);f=f+"\n"+(Vd(a,6)+Vd(a,7));f+=Ud(a,"T")+Ud(a,"N")+Ud(a,"Z")+Ud(a,"V")+Ud(a,"C");a.g(f);d&&(a.P=X(c.b[7]),od(a,W(a,a.P.D)))}}function $d(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):Wc(a,b,!0)}
function $d(a,b,d){var c="t"!=b;d=Xc(a,d,null,!0)||1;var e=1==d?0:1;"tc"==b&&(e=d,d=1);Ja(d,function(){return pb(a,!0)&&a.Ka(e,c,!1)},function(){H(a.f);pb(a,!1)})} function ae(a,b,d){var c="t"!=b;d=Yc(a,d,null,!0)||1;var e=1==d?0:1;"tc"==b&&(e=d,d=1);Ja(d,function(){return pb(a,!0)&&a.La(e,c,!1)},function(){H(a.f);pb(a,!1)})}
function nd(a,b,d,c){if(b=Z(a,b,!0)){void 0===c&&(c=1);var e=256;if(void 0!==d){c=Z(a,d,!0);if(!c||c.D<b.D)return;e=c.D-b.D;if(256<e){a.g("range too large");return}c=-1}d=0;for(var f;0<e&&c--;){f=qb(a,!1)||a.V?a.M:null;var h=null!=f?"cycles":null,g=Vd(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=td(a,b,h,f);a.g(f);a.O=b;e-=b.D-k;d++}}} function od(a,b,d,c){if(b=Z(a,b,!0)){void 0===c&&(c=1);var e=256;if(void 0!==d){c=Z(a,d,!0);if(!c||c.D<b.D)return;e=c.D-b.D;if(256<e){a.g("range too large");return}c=-1}d=0;for(var f;0<e&&c--;){f=qb(a,!1)||a.W?a.N:null;var h=null!=f?"cycles":null,g=Wd(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=ud(a,b,h,f);a.g(f);a.P=b;e-=b.D-k;d++}}}
function sd(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.U&&(a.g("ended assemble at "+W(a,a.T.D)),a.O=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ga=null;if(rb(a)&&0<b.length){a.U&&(b="a "+W(a,a.T.D)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Z(a,f[1],!0);if(n)if(a.T= function td(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.V&&(a.g("ended assemble at "+W(a,a.U.D)),a.P=a.U,a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ia=null;if(rb(a)&&0<b.length){a.V&&(b="a "+W(a,a.U.D)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Z(a,f[1],!0);if(n)if(a.U=
n,void 0===f[2])a.g("begin assemble at "+W(a,n.D)),a.U=!0,H(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.eb(n,p[q],1);a.g(td(a,a.T))}}break;case "b":a:{var A=f[0],v=f[1],w=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)"); n,void 0===f[2])a.g("begin assemble at "+W(a,n.D)),a.V=!0,H(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.bb(n,p[q],1);a.g(ud(a,a.U))}}break;case "b":a:{var A=f[0],v=f[1],w=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var z=A.charAt(1);if("l"==z){var Ba=0,Ba=Ba+rd(a,a.B),Ba=Ba+rd(a,a.R);(Ba+=rd(a,a.J))||a.g("no breakpoints")}else if("n"==z)a.fa=Xc(a,v),a.g("break after "+a.fa+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var Q=X();if("*"!=v&&(Q=Z(a,v,!0),!Q))break a;"c"==z?null==Q.D?(ad(a),a.g("all breakpoints cleared")):pd(a,a.B,Q)||pd(a,a.R,Q)||pd(a,a.J,Q)||a.g("breakpoint missing: "+W(a,Q.D)):null!=Q.D&&(kd(a,Q,w),"p"==z?a.wa(a.B,Q):"r"==z?a.wa(a.R,Q):"w"==z?a.wa(a.J,Q):a.g("unknown breakpoint command: "+ else{var z=A.charAt(1);if("l"==z){var Ca=0,Ca=Ca+sd(a,a.B),Ca=Ca+sd(a,a.R);(Ca+=sd(a,a.J))||a.g("no breakpoints")}else if("n"==z)a.ga=Yc(a,v),a.g("break after "+a.ga+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var Q=X();if("*"!=v&&(Q=Z(a,v,!0),!Q))break a;"c"==z?null==Q.D?(bd(a),a.g("all breakpoints cleared")):qd(a,a.B,Q)||qd(a,a.R,Q)||qd(a,a.J,Q)||a.g("breakpoint missing: "+W(a,Q.D)):null!=Q.D&&(ld(a,Q,w),"p"==z?a.va(a.B,Q):"r"==z?a.va(a.R,Q):"w"==z?a.va(a.J,Q):a.g("unknown breakpoint command: "+
z))}}}break;case "c":a.xa&&(a.xa.value="");break;case "d":a:{var Ca,Da=f[0],ba=f[1],ra=f[2],te=f[3];if("?"==ba){var ca="";for(Ca in F)a.na[Ca]&&(ca&&(ca+=","),ca+=Ca);ca+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ca.length&&a.g("dump extension commands:\n\t"+ca)}else if("state"==ba){var wd=ae(a.w, z))}}}break;case "c":a.wa&&(a.wa.value="");break;case "d":a:{var Da,Ea=f[0],ba=f[1],ra=f[2],ue=f[3];if("?"==ba){var ca="";for(Da in F)a.na[Da]&&(ca&&(ca+=","),ca+=Da);ca+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ca.length&&a.g("dump extension commands:\n\t"+ca)}else if("state"==ba){var wd=be(a.u,
!0);"console"==ra?console.log(wd):(a.xa&&(a.xa.value=""),a.g(wd))}else if("symbols"==ba)for(var oc=0;oc<a.K.length;oc++){var pc=a.K[oc],Ea;for(Ea in pc.qa)if("."!=Ea.charAt(0)){var xd=pc.qa[Ea].o;if(void 0!==xd){var yd=pc.qa[Ea].l;yd&&(Ea=yd);a.g(W(a,xd)+" "+Ea)}}}else{if("d"==Da){for(Ca in F)if(f[1]==Ca){var zd=a.na[Ca];zd?(f.shift(),f.shift(),zd(f)):a.g("no dump registered for "+ba);break a}ba||(Da=a.Wa||"db")}else a.Wa=Da;if("dh"==Da){var Ad=ba,Bd=ra,Cd="",Dd=0,M=a.Y,da=a.N;if(da.length){var R= !0);"console"==ra?console.log(wd):(a.wa&&(a.wa.value=""),a.g(wd))}else if("symbols"==ba)for(var qc=0;qc<a.L.length;qc++){var rc=a.L[qc],Fa;for(Fa in rc.ra)if("."!=Fa.charAt(0)){var xd=rc.ra[Fa].o;if(void 0!==xd){var yd=rc.ra[Fa].l;yd&&(Fa=yd);a.g(W(a,xd)+" "+Fa)}}}else{if("d"==Ea){for(Da in F)if(f[1]==Da){var zd=a.na[Da];zd?(f.shift(),f.shift(),zd(f)):a.g("no dump registered for "+ba);break a}ba||(Ea=a.Za||"db")}else a.Za=Ea;if("dh"==Ea){var Ad=ba,Bd=ra,Cd="",Dd=0,M=a.Z,da=a.O;if(da.length){var R=
+Ad||a.Ea,Fa=+Bd||10;isNaN(R)?R=Fa:Cd="more ";R>da.length&&(a.g("note: only "+da.length+" available"),R=da.length);M-=R;0>M&&(null==da[da.length-1].D?(R=M+R,M=0):M+=da.length);var qc=[];"call"==Bd&&(Fa=1E5,qc=["CALL"]);for(void 0!==Ad&&a.g(R+" instructions earlier:");0<Fa&&M!=a.Y;){var Ed=da[M++];if(null==Ed.D)break;var db=X(Ed.D),ue=R--,Fd=td(a,db,"history",ue);(!qc.length||0<=Fd.indexOf(qc[0]))&&a.g(Fd);db.ab&&(M+=db.ab,Fa-=db.ab,R-=db.ab);M>=da.length&&(M=0);a.Ea=R;Dd++;Fa--}}Dd||(a.g("no "+Cd+ +Ad||a.Ea,Ga=+Bd||10;isNaN(R)?R=Ga:Cd="more ";R>da.length&&(a.g("note: only "+da.length+" available"),R=da.length);M-=R;0>M&&(null==da[da.length-1].D?(R=M+R,M=0):M+=da.length);var sc=[];"call"==Bd&&(Ga=1E5,sc=["CALL"]);for(void 0!==Ad&&a.g(R+" instructions earlier:");0<Ga&&M!=a.Z;){var Ed=da[M++];if(null==Ed.D)break;var cb=X(Ed.D),ve=R--,Fd=ud(a,cb,"history",ve);(!sc.length||0<=Fd.indexOf(sc[0]))&&a.g(Fd);cb.fb&&(M+=cb.fb,Ga-=cb.fb,R-=cb.fb);M>=da.length&&(M=0);a.Ea=R;Dd++;Ga--}}Dd||(a.g("no "+Cd+
"history available"),a.Ea=void 0)}else{var Db=Z(a,ba);if(Db){var Eb=0;ra&&("l"==ra.charAt(0)&&(ra=ra.substr(1)||te),Eb=Xc(a,ra)>>>0,65536<Eb&&(Eb=65536));for(var sa="",Fb="dd"==Da?4:"dw"==Da?2:1,Gb=Fb*Eb||128,ve=Gb+15>>4||1;ve--&&0<Gb;){var Hb=0,rc=0,eb,fb="",sc="",ba=W(a,Db.D);for(eb=16;0<eb&&0<Gb;eb--){var Ib=a.Za(Db,1),Hb=Hb|Ib<<(rc++<<3);rc==Fb&&(fb+=r(Hb,2*Fb),fb+=1==Fb?9==eb?"-":" ":" ",Hb=rc=0);sc+=32<=Ib&&128>Ib?String.fromCharCode(Ib):".";Gb--}sa&&(sa+="\n");sa+=ba+" "+fb+(0==eb?" "+sc: "history available"),a.Ea=void 0)}else{var Eb=Z(a,ba);if(Eb){var Fb=0;ra&&("l"==ra.charAt(0)&&(ra=ra.substr(1)||ue),Fb=Yc(a,ra)>>>0,65536<Fb&&(Fb=65536));for(var sa="",Gb="dd"==Ea?4:"dw"==Ea?2:1,Hb=Gb*Fb||128,we=Hb+15>>4||1;we--&&0<Hb;){var Ib=0,tc=0,db,eb="",uc="",ba=W(a,Eb.D);for(db=16;0<db&&0<Hb;db--){var Jb=a.Sa(Eb,1),Ib=Ib|Jb<<(tc++<<3);tc==Gb&&(eb+=r(Ib,2*Gb),eb+=1==Gb?9==db?"-":" ":" ",Ib=tc=0);uc+=32<=Jb&&128>Jb?String.fromCharCode(Jb):".";Hb--}sa&&(sa+="\n");sa+=ba+" "+eb+(0==db?" "+uc:
"")}sa&&a.g(sa);a.ua=Db}}}}break;case "e":if("else"==f[0])break;var Jb=1,Gd=255,Hd=a.Za,Id=a.eb;"ew"==f[0]&&(Jb=2,Gd=65535,Hd=a.ta,Id=a.xb);var Jd=Jb<<1,Kd=f[1];if(null==Kd)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Kb=Z(a,Kd);if(Kb)for(var Lb=2;Lb<f.length;Lb++){var gb=Vc(a,f[Lb]);if(void 0===gb){a.g("unrecognized value: "+f[Lb]);break}gb&~Gd&&a.g("warning: "+r(gb)+" exceeds "+Jb+"-byte value");var we=Hd.call(a, "")}sa&&a.g(sa);a.Da=Eb}}}}break;case "e":if("else"==f[0])break;var Kb=1,Gd=255,Hd=a.Sa,Id=a.bb;"ew"==f[0]&&(Kb=2,Gd=65535,Hd=a.pa,Id=a.ib);var Jd=Kb<<1,Kd=f[1];if(null==Kd)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Lb=Z(a,Kd);if(Lb)for(var Mb=2;Mb<f.length;Mb++){var fb=Wc(a,f[Mb]);if(void 0===fb){a.g("unrecognized value: "+f[Mb]);break}fb&~Gd&&a.g("warning: "+r(fb)+" exceeds "+Kb+"-byte value");var xe=Hd.call(a,
Kb);a.g("changing "+W(a,Kb.D)+" from "+r(we,Jd,!0)+" to "+r(gb,Jd,!0));Id.call(a,Kb,gb,Jb)}}break;case "g":a:{var Ld=f[1],xe=b;if(void 0!==Ld){var tc=Z(a,Ld,!0);if(!tc)break a;kd(a,tc,xe);a.wa(a.B,tc,!0)}a.Ca(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var uc;if(a.A.aa)uc="halting",a.ca();else{if(qb(a,!0))break a;uc="already halted"}d||a.g(uc)}break;case "i":if("if"==f[0]){var vc;var hb=b.substr(2),hb=qa(hb);Vc(a,hb)?(d||a.g("true: "+hb),vc=!0):(d||a.g("false: "+ Lb);a.g("changing "+W(a,Lb.D)+" from "+r(xe,Jd,!0)+" to "+r(fb,Jd,!0));Id.call(a,Lb,fb,Kb)}}break;case "g":a:{var Ld=f[1],ye=b;if(void 0!==Ld){var vc=Z(a,Ld,!0);if(!vc)break a;ld(a,vc,ye);a.va(a.B,vc,!0)}a.Ba(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wc;if(a.A.ba)wc="halting",a.ca();else{if(qb(a,!0))break a;wc="already halted"}d||a.g(wc)}break;case "i":if("if"==f[0]){var xc;var gb=b.substr(2),gb=qa(gb);Wc(a,gb)?(d||a.g("true: "+gb),xc=!0):(d||a.g("false: "+
hb),vc=!1);vc||(c=!1)}break;case "k":var ye=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var wc=0,Md=X(),ib=X(a.f.b[6]);for(a.g("stack trace for "+W(a,ib.D));10>wc;){for(var ta=null,ze=256;65536>ib.D>>>0;){Md.D=a.ta(ib,2);if(null==ib.D||!ze--)break;for(var Ae=a,Mb=Md,Nd=null,jb=Mb.D,Od=jb,xc=1;6>=xc&&jb;xc++){if(2<xc){Mb.D=jb;var Nb=td(Ae,Mb);if(0<=Nb.indexOf("JSR")){var Pd=Nb.indexOf(" ");if(jb+(Nb.indexOf(" ",Pd+1)-Pd- gb),xc=!1);xc||(c=!1)}break;case "k":var ze=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yc=0,Md=X(),hb=X(a.f.b[6]);for(a.g("stack trace for "+W(a,hb.D));10>yc;){for(var ta=null,Ae=256;65536>hb.D>>>0;){Md.D=a.pa(hb,2);if(null==hb.D||!Ae--)break;for(var Be=a,Nb=Md,Nd=null,ib=Nb.D,Od=ib,zc=1;6>=zc&&ib;zc++){if(2<zc){Nb.D=ib;var Ob=ud(Be,Nb);if(0<=Ob.indexOf("JSR")){var Pd=Ob.indexOf(" ");if(ib+(Ob.indexOf(" ",Pd+1)-Pd-
1)/2==Od){Nd=Nb;break}}}jb--}Mb.D=Od;if(ta=Nd)break}if(!ta||null==ta)break;var Qd=null;if("ks"==ye){var Rd=ta.match(/[0-9A-F]+$/);Rd&&(Qd=Yd(a,Rd[0]))}ta=pa(ta,50)+" ;"+(Qd||"stack="+W(a,ib.D));a.g(ta);wc++}wc||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Yd(a,f[1],!0);break}break;case "m":a:{var ea,fa=null,D=f[1];"?"==D&&(D=void 0);if(void 0!==D){var ja=0;if("all"==D)ja=1878917119,D=null;else if("on"==D)fa=!0,D=null;else if("off"==D)fa=!1,D=null;else{"keys"==D&&(D="key");"kbd"== 1)/2==Od){Nd=Ob;break}}}ib--}Nb.D=Od;if(ta=Nd)break}if(!ta||null==ta)break;var Qd=null;if("ks"==ze){var Rd=ta.match(/[0-9A-F]+$/);Rd&&(Qd=Zd(a,Rd[0]))}ta=pa(ta,50)+" ;"+(Qd||"stack="+W(a,hb.D));a.g(ta);yc++}yc||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Zd(a,f[1],!0);break}break;case "m":a:{var ea,fa=null,D=f[1];"?"==D&&(D=void 0);if(void 0!==D){var ja=0;if("all"==D)ja=1878917119,D=null;else if("on"==D)fa=!0,D=null;else if("off"==D)fa=!1,D=null;else{"keys"==D&&(D="key");"kbd"==
D&&(D="keyboard");for(ea in F)if(D==ea){ja=F[ea];fa=!!(a.$&ja);break}if(!ja){a.g("unknown message category: "+D);break a}}if(ja)if("on"==f[2])a.$|=ja,fa=!0;else if("off"==f[2]&&(a.$&=~ja,fa=!1,1073741824==ja)){for(var yc=0;yc<a.ja.length;yc++)a.g(a.ja[yc]);a.ja=[]}}var Be=0,ka="";for(ea in F)if(!D||D==ea){var Ce=!!(a.$&F[ea]);if(null===fa||fa==Ce)ka&&(ka+=","),++Be%10||(ka+="\n\t"),"key"==ea&&(ea="keys"),ka+=ea}void 0===D&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off"); D&&(D="keyboard");for(ea in F)if(D==ea){ja=F[ea];fa=!!(a.aa&ja);break}if(!ja){a.g("unknown message category: "+D);break a}}if(ja)if("on"==f[2])a.aa|=ja,fa=!0;else if("off"==f[2]&&(a.aa&=~ja,fa=!1,1073741824==ja)){for(var Ac=0;Ac<a.ka.length;Ac++)a.g(a.ka[Ac]);a.ka=[]}}var Ce=0,ka="";for(ea in F)if(!D||D==ea){var De=!!(a.aa&F[ea]);if(null===fa||fa==De)ka&&(ka+=","),++Ce%10||(ka+="\n\t"),"key"==ea&&(ea="keys"),ka+=ea}void 0===D&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(ka||"none"));bd(a)}break;case "p":if("print"==f[0]){Zd(a,b.substr(5));break}var De="pr"==f[0]?1:0;if(a.V)a.g("step in progress");else{var Sd=X(a.f.b[7]);a.Za(Sd);a.V?(a.wa(a.B,Sd,!0),a.Ca()||(a.w&&a.w.Ua(),a.V=0)):$d(a,De?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}md(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var kb=+f[2];if(8==kb||10==kb||16==kb)a.la=kb;else{a.g("invalid base: "+kb);break}}a.g("default base: "+ a.g((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(ka||"none"));cd(a)}break;case "p":if("print"==f[0]){$d(a,b.substr(5));break}var Ee="pr"==f[0]?1:0;if(a.W)a.g("step in progress");else{var Sd=X(a.f.b[7]);a.Sa(Sd);a.W?(a.va(a.B,Sd,!0),a.Ba()||(a.u&&a.u.Xa(),a.W=0)):ae(a,Ee?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}nd(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var jb=+f[2];if(8==jb||10==jb||16==jb)a.fa=jb;else{a.g("invalid base: "+jb);break}}a.g("default base: "+
a.la);break;case "cs":var lb;void 0!==f[3]&&(lb=+f[3]);switch(f[2]){case "int":a.f.Ia=lb;break;case "start":a.f.Ra=lb;break;case "stop":a.f.Ja=lb;break;default:a.g("unknown cs option");break a}void 0!==lb&&gc(a.f);a.g("checksums "+(a.f.A.Ha?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(lc(a.f,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.za.toFixed(2)+"Mhz")+" ("+a.f.Aa+"x)");break;case "?":a.g("debugger options:");a.g("\tbase #\t\tset default base to #"); a.fa);break;case "cs":var kb;void 0!==f[3]&&(kb=+f[3]);switch(f[2]){case "int":a.f.Ia=kb;break;case "start":a.f.Ua=kb;break;case "stop":a.f.Ja=kb;break;default:a.g("unknown cs option");break a}void 0!==kb&&hc(a.f);a.g("checksums "+(a.f.A.Ha?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(mc(a.f,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.ya.toFixed(2)+"Mhz")+" ("+a.f.za+"x)");break;case "?":a.g("debugger options:");a.g("\tbase #\t\tset default base to #");
a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:f[1]&&a.g("unknown option: "+f[1])}break;case "t":$d(a,f[0],f[1]);break;case "u":nd(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xd(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.tb+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent: a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:f[1]&&a.g("unknown option: "+f[1])}break;case "t":ae(a,f[0],f[1]);break;case "u":od(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Yd(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.zb+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent:
"");break;case "?":if(f[1]){Zd(a,b.substr(1));break}var mb="commands:",zc;for(zc in dd)mb+="\n"+pa(zc,9)+dd[zc];Kc(a)||(mb+="\nnote: history disabled if no exec breakpoints");a.g(mb);break;default:a.g("unknown command: "+b),c=!1}}}catch(Td){a.g("debugger error: "+(Td.stack||Td.message)),c=!1}return c}function hc(a,b,d){b=Tc(a,b,d);for(var c in b)if(!sd(a,b[c]))return!1;return!0}Qa(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new $c(c);nb(c,d)}}); "");break;case "?":if(f[1]){$d(a,b.substr(1));break}var lb="commands:",Bc;for(Bc in ed)lb+="\n"+pa(Bc,9)+ed[Bc];Lc(a)||(lb+="\nnote: history disabled if no exec breakpoints");a.g(lb);break;default:a.g("unknown command: "+b),c=!1}}}catch(Td){a.g("debugger error: "+(Td.stack||Td.message)),c=!1}return c}function ic(a,b,d){b=Uc(a,b,d);for(var c in b)if(!td(a,b[c]))return!1;return!0}Qa(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new ad(c);nb(c,d)}});
function be(a,b,d){u.call(this,"Computer",a,be,67108864);this.A.Z=!1;ce(this,b);this.R=ec(this,"autoPower",a);this.F=0;this.W=a.busWidth||a.buswidth;this.w=de;this.N=null;this.K=this.U=!1;this.X=ec(this,"url")||"";(Math.random()+.1).toString(36);this.B=ee(this);if(this.f=cb("CPU",this.id)){this.I=cb("Debugger",this.id);this.H=new wb({id:this.lb+".bus",busWidth:this.W},this.f,this.I);var c,e=bb(this.id);if((this.G=cb("Panel",this.id))&&this.G.xa)for(b=0;b<e.length;b++)c=e[b],c.ea=this.G.ea,c.g=this.G.g, function ce(a,b,d){u.call(this,"Computer",a,ce,67108864);this.A.$=!1;de(this,b);this.R=fc(this,"autoPower",a);this.G=0;this.X=a.busWidth||a.buswidth;this.u=ee;this.O=null;this.L=this.V=!1;this.Y=fc(this,"url")||"";(Math.random()+.1).toString(36);this.B=fe(this);if(this.f=mb("CPU",this.id)){this.I=mb("Debugger",this.id);this.F=new wb({id:this.rb+".bus",busWidth:this.X},this.f,this.I);var c,e=bb(this.id);if((this.H=mb("Panel",this.id))&&this.H.wa)for(b=0;b<e.length;b++)c=e[b],c.ea=this.H.ea,c.g=this.H.g,
c.xa=this.G.xa;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)c=e[b],c.ya&&c.ya(this,this.H,this.f,this.I);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.M=c:this.w=parseInt(c,10));var f;if(a=ec(this,"state")||(f=!0,a.state))b=this.S=a,f||(this.K=!0,this.w=de),this.w&&(this.O= c.wa=this.H.wa;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)c=e[b],c.xa&&c.xa(this,this.F,this.f,this.I);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.N=c:this.u=parseInt(c,10));var f;if(a=fc(this,"state")||(f=!0,a.state))b=this.T=a,f||(this.L=!0,this.u=ee),this.u&&(this.P=
new I(this,"1.30.0"),fe(this.O)?b=null:delete this.O);!b&&this.w&&(b=ge(this))&&(this.K=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.M=null,h.K=!1,h.ea("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.N=b,h.U=!0);E(h)})}else E(this);this.L.power||(this.R=!0);!d&&this.R&&he(this,this.Sa)}else t("Unable to find CPU component")}y(be);var de=0; new I(this,"1.30.0"),ge(this.P)?b=null:delete this.P);!b&&this.u&&(b=he(this))&&(this.L=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.N=null,h.L=!1,h.ea("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.O=b,h.V=!0);E(h)})}else E(this);this.K.power||(this.R=!0);!d&&this.R&&ie(this,this.Va)}else t("Unable to find CPU component")}y(ce);var ee=0;
function ce(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.V=b}function ec(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.V&&(c=a.V[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function he(a,b,d){for(var c=bb(a.id),e=0;e<=c.length;e++){var f=e<c.length?c[e]:a;if(!rb(f)){rb(f,function(){he(a,b,d)});return}}b.call(a,d)} function de(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.W=b}function fc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.W&&(c=a.W[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function ie(a,b,d){for(var c=bb(a.id),e=0;e<=c.length;e++){var f=e<c.length?c[e]:a;if(!rb(f)){rb(f,function(){ie(a,b,d)});return}}b.call(a,d)}
function ie(a,b){var d=new I(a,"1.30.0","validate");if(fe(d)&&je(d)){var c=ke(d,"timestamp"),e=b?ke(b,"timestamp"):"unknown";c!=e&&(a.ea("Machine state may be out-of-date\n("+c+" vs. "+e+")\nCheck your browser's local storage limits"),b||d.clear())}}m=be.prototype; function je(a,b){var d=new I(a,"1.30.0","validate");if(ge(d)&&ke(d)){var c=le(d,"timestamp"),e=b?le(b,"timestamp"):"unknown";c!=e&&(a.ea("Machine state may be out-of-date\n("+c+" vs. "+e+")\nCheck your browser's local storage limits"),b||d.clear())}}m=ce.prototype;
m.Sa=function(a){void 0===a&&(a=this.w||(this.N?1:de));if(!this.F){this.F++;var b=!1,d=!1;this.T=!1;var c=this.O||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>de){if(fe(c,this.N)){this.J=new I(this,"1.30.0","failsafe");fe(this.J)&&(le(this,c),a=2,me(this.J));J(this.J,"timestamp",wa());ne(this.J);var e=this.w&&!this.K;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=je(c)){var f=ke(c,"code"),h=ke(c,"data");f&&("ok"==f?fe(c,h):("error"==f&& m.Va=function(a){void 0===a&&(a=this.u||(this.O?1:ee));if(!this.G){this.G++;var b=!1,d=!1;this.U=!1;var c=this.P||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>ee){if(ge(c,this.O)){this.J=new I(this,"1.30.0","failsafe");ge(this.J)&&(me(this,c),a=2,ne(this.J));J(this.J,"timestamp",wa());oe(this.J);var e=this.u&&!this.L;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=ke(c)){var f=le(c,"code"),h=le(c,"data");f&&("ok"==f?ge(c,h):("error"==f&&
"no machine state"!=h?(this.ea("Error: "+h),"unable to verify user"==h&&(Ha("user",""),this.B=null)):this.g(f+": "+h),me(c),fe(c)?(d=je(c),e=!0):d=!1))}e&&ie(this,d?c:null)}else 2==a&&c.clear()}else ie(this);delete this.N;delete this.O}e=bb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.f&&(d=oe(this,h,c,b,d));b=[c,a,d];-1!=a?he(this,this.jb,b):this.jb(b)}}; "no machine state"!=h?(this.ea("Error: "+h),"unable to verify user"==h&&(Ha("user",""),this.B=null)):this.g(f+": "+h),ne(c),ge(c)?(d=ke(c),e=!0):d=!1))}e&&je(this,d?c:null)}else 2==a&&c.clear()}else je(this);delete this.O;delete this.P}e=bb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.f&&(d=pe(this,h,c,b,d));b=[c,a,d];-1!=a?ie(this,this.pb,b):this.pb(b)}};
function oe(a,b,d,c,e){if(!b.A.Z){b.A.Z=!0;if(b.sa){var f=null;e&&((f=ke(d,b.id))||(f=ke(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.sa(f,c)&&f&&(t("Unable to restore state for "+b.type),a.S&&!a.U?(d.clear(),a.w=de,window&&window.location.reload()):a.T=!0,b.sa(null),e=!1)}if(!c&&b.kb)for(a=b.kb.split("|"),d=0;d<a.length;d++)b.status(a[d])}return e} function pe(a,b,d,c,e){if(!b.A.$){b.A.$=!0;if(b.ta){var f=null;e&&((f=le(d,b.id))||(f=le(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ta(f,c)&&f&&(t("Unable to restore state for "+b.type),a.T&&!a.V?(d.clear(),a.u=ee,window&&window.location.reload()):a.U=!0,b.ta(null),e=!1)}if(!c&&b.qb)for(a=b.qb.split("|"),d=0;d<a.length;d++)b.status(a[d])}return e}
m.jb=function(a){var b=a[0],d=0>a[1];a=a[2];this.Y=!0;this.A.Z=!0;var c=this.L.power;c&&(c.textContent="Shutdown");this.f&&(oe(this,this.f,b,d,a),this.f.Na());this.T&&(le(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0}; m.pb=function(a){var b=a[0],d=0>a[1];a=a[2];this.Z=!0;this.A.$=!0;var c=this.K.power;c&&(c.textContent="Shutdown");this.f&&(pe(this,this.f,b,d,a),this.f.Pa());this.U&&(me(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.G=0};
function le(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),e={app:"PDP11js",ver:"1.30.0"};e.url=a.X;e.user=d;e.type="bug";e.data=c;xa("http://www.pcjs.org/api/v1/report",e,!0)}} function me(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),e={app:"PDP11js",ver:"1.30.0"};e.url=a.Y;e.user=d;e.type="bug";e.data=c;xa("http://www.pcjs.org/api/v1/report",e,!0)}}
function ae(a,b,d){var c,e="none";if(a.F)return null;a.F--;var f=new I(a,"1.30.0"),h=new I(a,"1.30.0","validate"),g=wa();J(h,"timestamp",g);J(f,"timestamp",g);J(f,"version","1.30.0");J(f,"url",window?window.location.href:null);J(f,"browser",window?window.navigator.userAgent:"");a.f&&a.f.ra&&(d&&a.f.ca(),c=a.f.ra(b,d),"object"===typeof c&&J(f,a.f.id,c),d&&(a.f.A.Z=!1,!1===c&&(e=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.Z&&(l.ra&&(c=l.ra(b,d),"object"===typeof c&&J(f,l.id,c)),d&& function be(a,b,d){var c,e="none";if(a.G)return null;a.G--;var f=new I(a,"1.30.0"),h=new I(a,"1.30.0","validate"),g=wa();J(h,"timestamp",g);J(f,"timestamp",g);J(f,"version","1.30.0");J(f,"url",window?window.location.href:null);J(f,"browser",window?window.navigator.userAgent:"");a.f&&a.f.sa&&(d&&a.f.ca(),c=a.f.sa(b,d),"object"===typeof c&&J(f,a.f.id,c),d&&(a.f.A.$=!1,!1===c&&(e=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.$&&(l.sa&&(c=l.sa(b,d),"object"===typeof c&&J(f,l.id,c)),d&&
(l.A.Z=!1,!1===c&&(e=null)))}e&&(d?(g=c=!1,b?(a.B&&pe(a,a.B,f.toString()),ne(h)&&ne(f)||(e=null,c=g=!0)):a.w&&(c=!0,g=3==a.w),c&&f.clear(g)):e=f.toString());d&&(a.A.Z=!1,b=a.L.power)&&(b.textContent="Power");a.F=0;return e}m.reset=function(){this.H&&this.H.reset&&(this.I&&ob(this,0)&&this.I.message("Resetting "+this.H.type,void 0),this.H.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.H&&d.reset&&(this.I&&ob(this,0)&&this.I.message("Resetting "+d.type,void 0),d.reset())}}; (l.A.$=!1,!1===c&&(e=null)))}e&&(d?(g=c=!1,b?(a.B&&qe(a,a.B,f.toString()),oe(h)&&oe(f)||(e=null,c=g=!0)):a.u&&(c=!0,g=3==a.u),c&&f.clear(g)):e=f.toString());d&&(a.A.$=!1,b=a.K.power)&&(b.textContent="Power");a.G=0;return e}m.reset=function(){this.F&&this.F.reset&&(this.I&&ob(this,0)&&this.I.message("Resetting "+this.F.type,void 0),this.F.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.F&&d.reset&&(this.I&&ob(this,0)&&this.I.message("Resetting "+d.type,void 0),d.reset())}};
m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.ha=function(a,b,d){var c=this;switch(b){case "power":return this.L[b]=d,d.onclick=function(){c.F||(c.A.Z?ae(c,!1,!0):he(c,c.Sa))},!0;case "reset":return this.L[b]=d,d.onclick=function(){if(c.A.Z&&!c.F)if(c.w&&!c.M){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ae(c,a,!0);!a&&c.S?window&&window.location.reload():c.Sa(de)}else c.reset(),c.f&&c.f.Na()},!0;case "save":if(la()){d.parentNode.removeChild(d);break}this.L[b]= m.ha=function(a,b,d){var c=this;switch(b){case "power":return this.K[b]=d,d.onclick=function(){c.G||(c.A.$?be(c,!1,!0):ie(c,c.Va))},!0;case "reset":return this.K[b]=d,d.onclick=function(){if(c.A.$&&!c.G)if(c.u&&!c.N){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");be(c,a,!0);!a&&c.T?window&&window.location.reload():c.Va(ee)}else c.reset(),c.f&&c.f.Pa()},!0;case "save":if(la()){d.parentNode.removeChild(d);break}this.K[b]=
d;d.onclick=function(){var a=ee(c,!0);if(a){var b=!!(c.w&&!c.M||c.S),d=ae(c,b);b?pe(c,a,d):c.ea("Resume disabled, machine state not saved")}};return!0}return!1}; d;d.onclick=function(){var a=fe(c,!0);if(a){var b=!!(c.u&&!c.N||c.T),d=be(c,b);b?qe(c,a,d):c.ea("Resume disabled, machine state not saved")}};return!0}return!1};
function ee(a,b){var d=a.B;d||(d=Ga("user"),void 0!==d?!d&&b&&(d=null,window&&(d=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),d&&((d=qe(a,d))||a.ea("The user ID is invalid."))):b&&a.ea("Browser local storage is not available"));return d} function fe(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),d&&((d=re(a,d))||a.ea("The user ID is invalid."))):b&&a.ea("Browser local storage is not available"));return d}
function qe(a,b){a.B=null;var d=xa(ma()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ha("user",d.data),a.B=d.data)}catch(e){t(e.message+" ("+c+")")}return a.B}function ge(a){var b=null;a.B&&(b=ma()+"/api/v1/user?req=load&user="+a.B+"&state="+re(a,"1.30.0"));return b} function re(a,b){a.B=null;var d=xa(ma()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ha("user",d.data),a.B=d.data)}catch(e){t(e.message+" ("+c+")")}return a.B}function he(a){var b=null;a.B&&(b=ma()+"/api/v1/user?req=load&user="+a.B+"&state="+se(a,"1.30.0"));return b}
function pe(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=re(a,"1.30.0");c.data=d;b=xa(ma()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.ea("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.ea(d),Ha("user",""),a.B=null)}}m.Ua=function(){}; function qe(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=se(a,"1.30.0");c.data=d;b=xa(ma()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.ea("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.ea(d),Ha("user",""),a.B=null)}}m.Xa=function(){};
m.ia=function(a){this.f&&this.f.ia(a);this.G&&this.G.ia(a)};Qa(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=B(d),d=C(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],h=B(f),h=new be(h,c,!0);nb(h,f);h.R&&he(h,h.Sa)}});La.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=cb("Computer",d.id))&&d.Y&&!d.A.Z&&d.Sa(-1)}}); m.ja=function(a){this.f&&this.f.ja(a);this.H&&this.H.ja(a)};Qa(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=B(d),d=C(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],h=B(f),h=new ce(h,c,!0);nb(h,f);h.R&&ie(h,h.Va)}});La.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=mb("Computer",d.id))&&d.Z&&!d.A.$&&d.Va(-1)}});
La.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=cb("Computer",d.id))&&d.A.Z&&ae(d,!(!d.w||d.M),!0)}});function I(a,b,d){this.id=a.id;this.key=re(a,b,d);this.I=a.I;me(this,a.Eb)}function re(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a} La.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=mb("Computer",d.id))&&d.A.$&&be(d,!(!d.u||d.N),!0)}});function I(a,b,d){this.id=a.id;this.key=se(a,b,d);this.I=a.I;ne(this,a.Jb)}function se(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
I.prototype={constructor:I,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){me(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(e){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(e){}b.splice(d,1);d=0}}}; I.prototype={constructor:I,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){ne(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(e){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(e){}b.splice(d,1);d=0}}};
function me(a,b){a[a.id]={};b&&J(a,"parms",b);a.f=!1}function ne(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ha(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function je(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function fe(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ga(a.key))?(a[a.id]=b,a.f=!0):!1}function ke(a,b){return a[a.id][b]||null}function J(a,b,d){try{a[a.id][b]=d}catch(c){}}var se=0; function ne(a,b){a[a.id]={};b&&J(a,"parms",b);a.f=!1}function oe(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ha(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function ke(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function ge(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function le(a,b){return a[a.id][b]||null}function J(a,b,d){try{a[a.id][b]=d}catch(c){}}var te=0;
function Ee(a,b,d,c,e,f){e("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Fe(g,a,b,d,c,e,f)})} function Fe(a,b,d,c,e,f){e("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Ge(g,a,b,d,c,e,f)})}
function Fe(a,b,d,c,e,f,h){function g(a,f){if(f)h(f,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"), function Ge(a,b,d,c,e,f,h){function g(a,f){if(f)h(f,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Ge(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?He(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ge(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=c[2];b("Loading "+e+"...");xa(e,null,!0,function(f,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(f=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function He(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=c[2];b("Loading "+e+"...");xa(e,null,!0,function(f,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(f=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);Ge(a,b,d)}})}else d(a,null)} "");a=a.replace(c[0],h);He(a,b,d)}})}else d(a,null)}
function He(a,b,d,c){function e(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=oa(a))}function f(a){e("Error: "+a);k&&(--se||Sa(!0));k=!1}var h,g,k=!0;se++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d|| function Ie(a,b,d,c){function e(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=oa(a))}function f(a){e("Error: "+a);k&&(--te||Sa(!0));k=!1}var h,g,k=!0;te++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Ee(d,null,null,!1,e,function(c,k){if(k)if(ab(a,d,c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--se||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--se||Sa(!0)):f("invalid machine element: "+ (d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Fe(d,null,null,!1,e,function(c,k){if(k)if(ab(a,d,c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--te||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--te||Sa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(c)}):f(c)};"<"!=b.charAt(0)?Ee(b,a,c,!0,e,l):Fe(b,null,a,c,!1,e,l)}else f("missing machine element: "+a)}catch(q){f(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return He(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})(); a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(c)}):f(c)};"<"!=b.charAt(0)?Fe(b,a,c,!0,e,l):Ge(b,null,a,c,!1,e,l)}else f("missing machine element: "+a)}catch(q){f(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return Ie(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();

View file

@ -1,114 +1,118 @@
(function(){var m; (function(){var l;
function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f&&(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&&f&&(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 e,d=a;((f=b)&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):8==f?null!==d.match(/^[0-7]+$/):2== function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f&&(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&&f&&(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 e,d=a;((f=b)&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):8==f?null!==d.match(/^[0-7]+$/):2==
f&&null!==d.match(/^[01]+$/):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function n(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 f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b} f&&null!==d.match(/^[01]+$/):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function n(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 f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function da(){var a=p();return-1!==a.indexOf("pcjs.org",a.length-8)}var ea={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var q=Date.now||function(){return+new Date}; function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function da(){var a=p();return-1!==a.indexOf("pcjs.org",a.length-8)}var ea={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var ga=Date.now||function(){return+new Date};
function ga(){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 ha(){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 r(a,b,c,d){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),d&&d(a,e,f))});if(b&&"object"== function q(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(e=g.responseText,200!=g.status&&(f=g.status||-1),d&&d(a,e,f),h=[e,f]);return h}function p(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function p(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(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 ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} function r(a){window&&window.alert(a)}function ia(a){var b=!1;window&&(b=window.confirm(a));return b}var ja=null;function ka(){if(null==ja){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}ja=a}return ja}function la(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function la(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ma(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var u={init:[],show:[],exit:[]},na=!1,oa=!1,pa=!0;function qa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function v(a){u.init.push(a)} function ma(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function na(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},oa=!1,pa=!1,qa=!0;function ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function v(a){t.init.push(a)}
function ra(a){if(pa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function sa(a){!pa&&a?(pa=!0,na&&ta("init"),oa&&ta("show")):pa=a}function ta(a){u[a]&&ra(u[a])}qa("onload",function(){na=!0;ra(u.init)});qa("onpageshow",function(){oa=!0;ra(u.show)});qa(ma("Opera")||ma("iOS")?"onunload":"onbeforeunload",function(){ra(u.exit)}); function sa(a){if(qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ta(a){!qa&&a?(qa=!0,oa&&ua("init"),pa&&ua("show")):qa=a}function ua(a){t[a]&&sa(t[a])}ra("onload",function(){oa=!0;sa(t.init)});ra("onpageshow",function(){pa=!0;sa(t.show)});ra(na("Opera")||na("iOS")?"onunload":"onbeforeunload",function(){sa(t.exit)});
function w(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ka=b.comment;this.$a=b;b=this.id.indexOf(".");0>b?this.ta=this.id:(this.La=this.id.substr(0,b),this.ta=this.id.substr(b+1));this[a]=c;this.h={ready:!1,ha:!1,ua:!1,A:!1,error:!1};this.qa=null;this.h.error=!1;this.o={};this.B=null;x.push(this)}var ua=void 0,va={}; function w(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Na=b.comment;this.gb=b;b=this.id.indexOf(".");0>b?this.wa=this.id:(this.Oa=this.id.substr(0,b),this.wa=this.id.substr(b+1));this[a]=c;this.h={ready:!1,ia:!1,xa:!1,B:!1,error:!1};this.ta=null;this.h.error=!1;this.o={};this.w=null;x.push(this)}var va=void 0,wa={};
if(window){ua||(ua=window.location.search.substr(1));for(var wa,xa=/\+/g,ya=/([^&=]+)=?([^&]*)/g;wa=ya.exec(ua);)va[decodeURIComponent(wa[1].replace(xa," "))]=decodeURIComponent(wa[2].replace(xa," "))}function za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){va||(va=window.location.search.substr(1));for(var xa,ya=/\+/g,za=/([^&=]+)=?([^&]*)/g;xa=za.exec(va);)wa[decodeURIComponent(xa[1].replace(ya," "))]=decodeURIComponent(xa[2].replace(ya," "))}function Aa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function y(a,b){b||(b=w);a.prototype=za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Aa=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Aa={},x=[];function Ba(a,b,c){Aa[a]&&b&&(Aa[a][b]=c)}function A(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c} function y(a,b){b||(b=w);a.prototype=Aa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ba=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ba={},x=[];function Ca(a,b,c){Ba[a]&&b&&(Ba[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ca(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b} function Da(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function C(a,b){for(var c=D(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=B(h))&&g.binding&&a.L(g.type,g.binding,h,g.value),l=k.length}}}} function C(a,b){for(var c=D(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var g=f[e];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case "pdp11-binding":(h=B(g))&&h.binding&&a.L(h.type,h.binding,g,h.value),m=k.length}}}}
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c} function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},L:function(a,b,c){switch(b){case "clear":return this.o[b]||(this.o[b]=c,c.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[b]||(this.wa=this.o[b]=c,c.value="",this.H=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), w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},L:function(a,b,c){switch(b){case "clear":return this.o[b]||(this.o[b]=c,c.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[b]||(this.za=this.o[b]=c,c.value="",this.H=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.w=function(a){this.H(a,this.ta)}),!0;default:return!1}},log:function(){},H:function(){},status:function(a){this.H(this.ta+": "+a)},w:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},Y:function(){return this.h.A=!0},X:function(a,b){b&&(this.h.A=!1);return!0}};function Da(a,b){if(a.h.ua)return a.h.ha&&(a.h.ha=!1),a.h.ua=!1;if(a.h.error)return a.H(a.toString()+" error"),!1;a.h.ha=b;return a.h.ha}function E(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.qa;a.qa=null;b&&b()}} this.A=function(a){this.H(a,this.wa)}),!0;default:return!1}},log:function(){},H:function(){},status:function(a){this.H(this.wa+": "+a)},A:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},Y:function(){return this.h.B=!0},X:function(a,b){b&&(this.h.B=!1);return!0}};function Ea(a,b){if(a.h.xa)return a.h.ia&&(a.h.ia=!1),a.h.xa=!1;if(a.h.error)return a.H(a.toString()+" error"),!1;a.h.ia=b;return a.h.ia}function E(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.ta;a.ta=null;b&&b()}}
function Ea(a,b){b&&(a.h.ready?b():a.qa=b);return a.h.ready}var Fa="undefined"!==typeof ArrayBuffer;function Ga(a){w.call(this,"Panel",a,Ga)}y(Ga);m=Ga.prototype;m.L=function(a,b,c,d){return this.l&&this.l.L(a,b,c,d)||this.a&&this.a.L(a,b,c,d)?!0:this.parent.L.call(this,a,b,c,d)};m.ea=function(a,b,c,d){this.l=a;this.u=b;this.a=c;this.B=d};m.Y=function(a,b){b||Ha();return!0};m.X=function(){return!0};m.da=function(){}; function Fa(a,b){b&&(a.h.ready?b():a.ta=b);return a.h.ready}var Ga="undefined"!==typeof ArrayBuffer;function Ha(a){w.call(this,"Panel",a,Ha)}y(Ha);l=Ha.prototype;l.L=function(a,b,c,d){return this.l&&this.l.L(a,b,c,d)||this.a&&this.a.L(a,b,c,d)?!0:this.parent.L.call(this,a,b,c,d)};l.ca=function(a,b,c,d){this.l=a;this.s=b;this.a=c;this.w=d};l.Y=function(a,b){b||Ia();return!0};l.X=function(){return!0};l.ba=function(){};
function Ha(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=B(d),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===e){e=x[h];break a}e=null}e||(a=!0,e=new Ga(f));C(e,d);a&&E(e)}}v(Ha); function Ia(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=B(d),e;a:{e=f.id;if(void 0!==e)for(var g=void 0,g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}e=null}e||(a=!0,e=new Ha(f));C(e,d);a&&E(e)}}v(Ia);
function Ia(a,b,c){w.call(this,"Bus",a,Ia);this.a=b;this.B=c;this.g=a.busWidth||16;this.j=Math.pow(2,this.g);this.u=this.j-1|0;this.f=16>=this.g?10:20>=this.g?12:24>=this.g?14:15;this.c=1<<this.f;this.l=this.c>>2;this.m=this.c-1;this.i=this.j/this.c|0;a=new F;Ja(a,this.B);this.b=Array(this.i);for(b=0;b<this.i;b++)this.b[b]=a;E(this)}y(Ia);Ia.prototype.reset=function(){};Ia.prototype.Y=function(a,b){b||this.reset();return!0}; function Ja(a,b,c){w.call(this,"Bus",a,Ja);this.a=b;this.w=c;this.s=a.busWidth||16;this.l=Math.pow(2,this.s);this.i=this.l-1|0;this.c=(this.s>>1)+2;10>this.c&&(this.c=10);15<this.c&&(this.c=15);this.f=1<<this.c;this.m=this.f>>2;this.g=this.f-1;this.j=this.l/this.f|0;this.u=this.j-1;a=new F;Ka(a,this.w);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.ga=Array(4);this.ga[0]=this.ab;this.ga[1]=this.bb;this.ga[2]=this.jb;this.ga[3]=this.kb;La(this,4186112,8192,Ma,this);E(this)}y(Ja);l=Ja.prototype;
function Ka(a,b,c,d){for(var f=b,e=c,h=f>>>a.f;0<e&&h<a.b.length;){var g=a.b[h],k=h*a.c,l=a.c-(f-k);l>e&&(l=e);if(g&&g.size){if(g.type==d){if(f+e<=g.fa)return g.ra+=g.fa-f,g.fa=f,!0;if(f>=g.fa+g.ra){l=g.size-(f-k);l>e&&(l=e);g.ra=f-g.fa+l;f=k+a.c;e-=l;h++;continue}}return La(1,f,e)}f=new F(f,l,a.c,d);Ja(f,a.B,g);a.b[h++]=f;f=k+a.c;e-=l}return 0>=e?(a.status(Math.floor(c/1024)+"Kb "+Ma[d]+" at "+n(b,8,!0)),!0):La(2,b,c)} l.ab=function(){return 0};l.bb=function(){return 0};l.jb=function(){};l.kb=function(){};l.reset=function(){};l.Y=function(a,b){b||this.reset();return!0};
function La(a,b,c){t("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Na;if(Fa){var Oa=new ArrayBuffer(2);(new DataView(Oa)).setUint16(0,256,!0);Na=256===(new Uint16Array(Oa))[0]}else Na=!1;var Pa=Na; function La(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.c;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.f,u=a.f-(e-m);u>g&&(u=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.fa)return k.ua+=k.fa-e,k.fa=e,!0;if(e>=k.fa+k.ua){u=k.size-(e-m);u>g&&(u=g);k.ua=e-k.fa+u;e=m+a.f;g-=u;h++;continue}}return Na(1,e,g)}e=new F(e,u,a.f,d,f);Ka(e,a.w,k);a.b[h++]=e;e=m+a.f;g-=u}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Oa[d]+" at "+n(b,8,!0)),!0):Na(2,b,c)}
function F(a,b,c,d){this.id=Qa+=2;this.a=null;this.fa=a;this.ra=b;this.size=c||0;this.type=d||Ra;this.o=d==Sa;Ja(this);this.W=this.Wa=!1;if(c)if(Fa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.j=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),Ta(this,Pa?Ua:Va);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Ta(this,Wa)}else Ta(this)}var Ra=0,Sa=2,Ma=["NONE","RAM","ROM","VID","H/W"],Qa=0; function Na(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Pa;if(Ga){var Qa=new ArrayBuffer(2);(new DataView(Qa)).setUint16(0,256,!0);Pa=256===(new Uint16Array(Qa))[0]}else Pa=!1;var Ra=Pa;
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(Fa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Fa)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.W=!0}return!1},m:function(){return 255},s:function(){},K:function(a,b){return this.l(a++,b++)|this.l(a,b)<<8},$:function(a,b,c){this.u(a++,b&255,c++);this.u(a,b>>8,c)},G:function(a){return this.a[a>> function F(a,b,c,d,f){this.id=Sa+=2;this.a=null;this.fa=a;this.ua=b;this.size=c||0;this.type=d||Ta;this.g=d==Ua;this.controller=null;Ka(this);this.W=this.Za=!1;if(c)if(f)this.controller=f,this.a=null,Va(this,f.ga);else if(Ga)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.j=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),Va(this,Ra?Wa:Xa);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Va(this,Ya)}else Va(this)}
2]>>>((a&3)<<3)&255},P:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},U:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.W=!0},ca:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.W=!0},C:function(a,b){return this.D(a,b)},J:function(a,b){return this.N(a,b)},S:function(a,b,c){this.o||this.Ua(a,b,c)},Z:function(a,b,c){this.o|| var Ta=0,Ua=2,Ma=4,Oa=["NONE","RAM","ROM","VID","H/W"],Sa=0;
this.aa(a,b,c)},v:function(a){return this.b[a]},F:function(a){return this.b[a]},I:function(a){return this.f.getUint16(a,!0)},O:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},R:function(a,b){this.b[a]=b;this.W=!0},T:function(a,b){this.b[a]=b;this.W=!0},V:function(a,b){this.f.setUint16(a,b,!0);this.W=!0},ba:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.W=!0}};function Ja(a,b,c){a.B=b;a.g=a.i=0;c&&((a.g=c.g)&&Xa(a,Ya,!1),(a.i=c.i)&&Za(a,Ya,!1))} F.prototype={constructor:F,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ga)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ga)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.W=!0}return!1},s:function(){return 255},m:function(){},l:function(a,b){return this.ka(a++,b++)|this.ka(a,b)<<8},u:function(a,b,
function Za(a,b,c){c&&a.i||(a.u=!a.o&&b[2]||a.s);if(c||void 0===c)a.Ua=b[2]||a.s,a.aa=b[3]||a.$}function Xa(a,b,c){c&&a.g||(a.l=b[0]||a.m);if(c||void 0===c)a.D=b[0]||a.m,a.N=b[1]||a.K}function Ta(a,b){b||(b=$a);Xa(a,b,void 0);Za(a,b,void 0)}var $a=[],Wa=[F.prototype.G,F.prototype.P,F.prototype.U,F.prototype.ca],Ya=[F.prototype.C,F.prototype.J,F.prototype.S,F.prototype.Z];if(Fa)var Va=[F.prototype.v,F.prototype.I,F.prototype.R,F.prototype.V],Ua=[F.prototype.F,F.prototype.O,F.prototype.T,F.prototype.ba]; c){this.la(a++,b&255,c++);this.la(a,b>>8,c)},G:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},O:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},T:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.W=!0},aa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.W=!0},C:function(a,b){return this.D(a,b)},J:function(a,b){return this.K(a,
function ab(a,b){w.call(this,"CPU",a,ab);var c=a.multiplier||1;this.Aa=a.cycles||b;this.T=c;this.va=Math.round(this.Aa/1E4)/100;this.R=this.va*this.T;this.h.M=!1;this.h.Sa=!1;this.h.ga=a.autoStart;this.h.Ga=!1;this.h.pa=!1;this.na=this.S=0;this.oa=a.csStart;this.$=a.csInterval;this.aa=a.csStop;this.ka=[];this.Za=this.Ea.bind(this);E(this)}y(ab);var bb=["power","reset"];m=ab.prototype; b)},R:function(a,b,c){this.g||this.Xa(a,b,c)},V:function(a,b,c){this.g||this.Z(a,b,c)},v:function(a){return this.b[a]},F:function(a){return this.b[a]},I:function(a){return this.f.getUint16(a,!0)},N:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},P:function(a,b){this.b[a]=b;this.W=!0},S:function(a,b){this.b[a]=b;this.W=!0},U:function(a,b){this.f.setUint16(a,b,!0);this.W=!0},$:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.W=!0}};
m.ea=function(a,b,c,d){this.l=a;this.u=b;this.B=d;for(b=0;b<bb.length;b++)(c=this.o[bb[b]])&&this.l.L(null,bb[b],c);this.Z=null;a=cb(a,"autoStart");null!=a&&(this.h.ga="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Y=function(a,b){if(!b){if(a&&this.restore){db(this);if(!this.restore(a))return!1;eb(this)}else this.reset();this.H("No debugger detected")}fb(this);return!0};m.X=function(a){return a?this.save():!0}; function Ka(a,b,c){a.w=b;a.i=a.o=0;c&&((a.i=c.i)&&Za(a,$a,!1),(a.o=c.o)&&ab(a,$a,!1))}function ab(a,b,c){c&&a.o||(a.la=!a.g&&b[2]||a.m,a.lb=!a.g&&b[3]||a.u);if(c||void 0===c)a.Xa=b[2]||a.m,a.Z=b[3]||a.u}function Za(a,b,c){c&&a.i||(a.ka=b[0]||a.s,a.cb=b[1]||a.l);if(c||void 0===c)a.D=b[0]||a.s,a.K=b[1]||a.l}function Va(a,b){b||(b=bb);Za(a,b,void 0);ab(a,b,void 0)}var bb=[],Ya=[F.prototype.G,F.prototype.O,F.prototype.T,F.prototype.aa],$a=[F.prototype.C,F.prototype.J,F.prototype.R,F.prototype.V];
m.ga=function(){return this.h.ga||void 0===this.o.run?(this.Ea(),!0):!1};m.Ia=function(){return 0};function eb(a){void 0===a.oa&&(a.oa=0);void 0===a.$&&(a.$=-1);void 0===a.aa&&(a.aa=-1);a.h.pa=0<=a.oa&&0<a.$;a.h.pa&&(a.na=0,a.S=a.oa-a.N)}function gb(a,b,c,d){a.o[b]&&(void 0===c&&(a.h.error=!0,a.w("Value for "+b+" is invalid"),G(a)),c=!a.h.M||a.h.Ga?n(c,d):"--------".substr(0,d),a.o[b].textContent!=c&&(a.o[b].textContent=c))} if(Ga)var Xa=[F.prototype.v,F.prototype.I,F.prototype.P,F.prototype.U],Wa=[F.prototype.F,F.prototype.N,F.prototype.S,F.prototype.$];function cb(a,b){w.call(this,"CPU",a,cb);var c=a.multiplier||1;this.Da=a.cycles||b;this.T=c;this.ya=Math.round(this.Da/1E4)/100;this.R=this.ya*this.T;this.h.M=!1;this.h.Va=!1;this.h.ha=a.autoStart;this.h.Ja=!1;this.h.sa=!1;this.qa=this.S=0;this.ra=a.csStart;this.$=a.csInterval;this.aa=a.csStop;this.na=[];this.fb=this.Ha.bind(this);E(this)}y(cb);var db=["power","reset"];
m.L=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.o[b]=c;a=!0;break;case "run":this.o[b]=c;c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.h.A)a=!0;else{var b=null,c,g=A(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.A);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.qa?" (waiting for notification)":""))+".");a=!1}a&&(d.h.M?G(d):d.Ea())};a=!0;break; l=cb.prototype;l.ca=function(a,b,c,d){this.l=a;this.s=b;this.w=d;for(b=0;b<db.length;b++)(c=this.o[db[b]])&&this.l.L(null,db[b],c);this.Z=null;a=eb(a,"autoStart");null!=a&&(this.h.ha="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Y=function(a,b){if(!b){if(a&&this.restore){fb(this);if(!this.restore(a))return!1;gb(this)}else this.reset();this.H("No debugger detected")}hb(this);return!0};
case "speed":this.o[b]=c;a=!0;break;case "setSpeed":this.o[b]=c,c.onclick=function(){hb(d,d.T<<1)},c.textContent=this.R.toFixed(2)+"Mhz",a=!0}return a};function ib(a,b,c){a.N+=b;c&&(a.K=a.G=0)}function jb(a,b){var c=1;b&&1<a.T&&a.I&&(c=a.I/a.va);a.Pa=Math.round(1E3/30);a.ja=Math.floor(a.Aa/30*c);b||(a.ba=a.ja);a.Ba=0}function kb(a){return a.N+a.F+a.K-a.G}function db(a){a.I=0;a.Qa=0;a.N=a.F=a.K=a.G=0;eb(a);hb(a,1)} l.X=function(a){return a?this.save():!0};l.ha=function(){return this.h.ha||void 0===this.o.run?(this.Ha(),!0):!1};l.La=function(){return 0};function gb(a){void 0===a.ra&&(a.ra=0);void 0===a.$&&(a.$=-1);void 0===a.aa&&(a.aa=-1);a.h.sa=0<=a.ra&&0<a.$;a.h.sa&&(a.qa=0,a.S=a.ra-a.N)}
function hb(a,b){if(void 0!==b){.8>a.I/a.R&&(b=1);a.T=b;var c=a.va*a.T;if(a.R!=c){a.R=c;var c=a.R.toFixed(2)+"Mhz",d=a.o.setSpeed;d&&(d.textContent=c);a.H("target speed: "+c)}}ib(a,a.F);a.F=0;a.D=q();a.J=0;jb(a)}function lb(a){a.K-=a.G;a.G=0} function G(a,b,c,d){if(a.o[b]){void 0===c&&(a.h.error=!0,a.A("Value for "+b+" is invalid"),H(a));var f=a.w&&a.w.b||8;if(!a.h.M||a.h.Ja)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.o[b].textContent!=d&&(a.o[b].textContent=d)}}
m.Ea=function(){if(Da(this,!0)){if(!this.h.M){hb(this);this.l&&this.l.start(this.D,kb(this));this.h.M=!0;this.h.Sa=!0;this.Z&&this.Z.start();var a=this.o.run;a&&(a.textContent="Halt");this.l&&this.l.da(!0)}this.Ba>=this.Aa&&jb(this,!0);this.ca=0;this.ma=q();this.J&&(a=this.ma-this.J,a>this.Pa&&(this.D+=a,this.D>this.ma&&(this.D=this.ma)));try{do{for(var b=this.h.pa?1:this.ja,c=this.ka.length-1;0<=c;c--){var d=this.ka[c];0>d[0]||b>d[0]&&(b=d[0])}this.Ta(b);for(var f=this.K-this.G,a=f,e=this.ka.length- l.L=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.o[b]=c;a=!0;break;case "run":this.o[b]=c;c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.h.B)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.B);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.h.M?H(d):d.Ha())};a=!0;break;
1;0<=e;e--){var h=this.ka[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ca+=f;this.F+=f;ib(this,0,!0);a=f;if(this.h.pa){var g=!1;this.na=this.na+this.Ia()|0;this.S-=a;0>=this.S&&(this.S+=this.$,g=!0);0<=this.aa&&this.aa<=kb(this)&&(this.$=this.aa=-1,eb(this),G(this),g=!0);g&&this.H(kb(this)+" cycles: checksum="+n(this.na))}this.ba-=f;if(0>=this.ba){this.ba+=this.ja;15<=++this.Qa&&(this.l&&this.l.da(),this.Qa=0);break}}while(this.h.M)}catch(k){G(this);fb(this);this.l&&this.l.stop(q(),kb(this)); case "speed":this.o[b]=c;a=!0;break;case "setSpeed":this.o[b]=c,c.onclick=function(){ib(d,d.T<<1)},c.textContent=this.R.toFixed(2)+"Mhz",a=!0}return a};function jb(a,b,c){a.N+=b;c&&(a.K=a.G=0)}function kb(a,b){var c=1;b&&1<a.T&&a.I&&(c=a.I/a.ya);a.Sa=Math.round(1E3/30);a.ma=Math.floor(a.Da/30*c);b||(a.da=a.ma);a.Ea=0}function lb(a){return a.N+a.F+a.K-a.G}function fb(a){a.I=0;a.Ta=0;a.N=a.F=a.K=a.G=0;gb(a);ib(a,1)}
Da(this,!1);b=k.stack||k.message;this.h.error=!0;this.w(b);return}b=setTimeout;c=this.Za;this.J=q();d=this.Pa;this.ca&&(d=Math.round(d*this.ca/this.ja));d=d-(this.J-this.ma);if(f=this.J-this.D)this.I=Math.round(this.F/(10*f))/100,864E5<=f&&(this.N=0,hb(this));if(0>d||this.I<this.R)-1E3>d&&(this.D-=d),d=0;this.Ba+=this.ca;this.J+=d;b(c,d)}else fb(this),this.l&&this.l.stop(q(),kb(this))};m.Ta=function(){return 0}; function ib(a,b){if(void 0!==b){.8>a.I/a.R&&(b=1);a.T=b;var c=a.ya*a.T;if(a.R!=c){a.R=c;var c=a.R.toFixed(2)+"Mhz",d=a.o.setSpeed;d&&(d.textContent=c);a.H("target speed: "+c)}}jb(a,a.F);a.F=0;a.D=ga();a.J=0;kb(a)}function mb(a){a.K-=a.G;a.G=0}
function G(a){a.h.ha&&(a.h.ua=!0);lb(a);ib(a,a.F);a.F=0;if(a.h.M){a.h.M=!1;a.Z&&a.Z.stop();var b=a.o.run;b&&(b.textContent="Run")}a.h.complete=void 0}function fb(a){a.l&&a.l.da(void 0)} l.Ha=function(){if(Ea(this,!0)){if(!this.h.M){ib(this);this.l&&this.l.start(this.D,lb(this));this.h.M=!0;this.h.Va=!0;this.Z&&this.Z.start();var a=this.o.run;a&&(a.textContent="Halt");this.l&&this.l.ba(!0)}this.Ea>=this.Da&&kb(this,!0);this.ea=0;this.pa=ga();this.J&&(a=this.pa-this.J,a>this.Sa&&(this.D+=a,this.D>this.pa&&(this.D=this.pa)));try{do{for(var b=this.h.sa?1:this.ma,c=this.na.length-1;0<=c;c--){var d=this.na[c];0>d[0]||b>d[0]&&(b=d[0])}this.Wa(b);for(var f=this.K-this.G,a=f,e=this.na.length-
function mb(a){this.Ya=+a.model||1170;this.ab=a.resetAddr||0;ab.call(this,a,1E6);this.Ja=0;this.g=65536;this.c=32768;this.f=65535;this.b=32768;this.i=15;this.a=[0,0,0,0,0,0,0,0];this.Ca=[0,0,0,0,0,0];this.U=[0,0,0,0];this.memory=[];this.s=[];this.Da=this.Ra=0;this.O=2;this.P=255;this.m=0;this.V=-1;this.Oa=this.xa=this.Na=this.j=this.sa=this.C=this.v=0;this.la=[7,7,7,7];this.za=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1;0<=e;e--){var g=this.na[e];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ea+=f;this.F+=f;jb(this,0,!0);a=f;if(this.h.sa){var h=!1;this.qa=this.qa+this.La()|0;this.S-=a;0>=this.S&&(this.S+=this.$,h=!0);0<=this.aa&&this.aa<=lb(this)&&(this.$=this.aa=-1,gb(this),H(this),h=!0);h&&this.H(lb(this)+" cycles: checksum="+n(this.qa))}this.da-=f;if(0>=this.da){this.da+=this.ma;15<=++this.Ta&&(this.l&&this.l.ba(),this.Ta=0);break}}while(this.h.M)}catch(k){H(this);hb(this);this.l&&this.l.stop(ga(),lb(this));
0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Va=!1}y(mb,ab);m=mb.prototype;m.reset=function(){this.h.M&&G(this);nb(this);db(this);this.h.error=!1;this.parent.reset.call(this)}; Ea(this,!1);b=k.stack||k.message;this.h.error=!0;this.A(b);return}b=setTimeout;c=this.fb;this.J=ga();d=this.Sa;this.ea&&(d=Math.round(d*this.ea/this.ma));d=d-(this.J-this.pa);if(f=this.J-this.D)this.I=Math.round(this.F/(10*f))/100,864E5<=f&&(this.N=0,ib(this));if(0>d||this.I<this.R)-1E3>d&&(this.D-=d),d=0;this.Ea+=this.ea;this.J+=d;b(c,d)}else hb(this),this.l&&this.l.stop(ga(),lb(this))};l.Wa=function(){return 0};
function nb(a){a.a[7]=a.ab;a.P=255;a.s=[];a.Ra=0;a.v=a.C=a.sa=a.Na=0;a.la[0]=a.la[1]=a.la[3]=7;a.xa=0}m.Ia=function(){return 0};m.save=function(){var a=new H(this);I(a,0,[]);I(a,1,[this.Ma,this.N,this.T]);for(var b=this.u,c=0,d=[],f=0;f<b.i;f++){var e=b.b[f];if(e.W||e.Wa){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var Q=e[g],z=g+1;z<e.length&&e[z]===Q;)z++;l[k++]=z-g;l[k++]=Q;g=z}if(l.length<e.length){e=l;break a}}d[h]=e}}I(a,2,d);return a.data()}; function H(a){a.h.ia&&(a.h.xa=!0);mb(a);jb(a,a.F);a.F=0;if(a.h.M){a.h.M=!1;a.Z&&a.Z.stop();var b=a.o.run;b&&(b.textContent="Run")}a.h.complete=void 0}function hb(a){a.l&&a.l.ba(void 0)}
m.restore=function(a){var b=a[1];this.Ma=b[0];this.N=b[1];hb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.l){for(var e=0,h=Array(b.l),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; function nb(a){this.eb=+a.model||1170;this.hb=a.resetAddr||0;cb.call(this,a,1E6);this.Ma=0;this.g=65536;this.c=32768;this.f=65535;this.b=32768;this.i=15;this.a=[0,0,0,0,0,0,0,this.hb];this.Fa=[0,0,0,0,0,0];this.U=[0,0,0,0];this.memory=[];this.u=[];this.Ga=this.Ua=0;this.O=2;this.P=255;this.m=0;this.V=-1;this.Ra=this.Aa=this.Qa=this.j=this.va=this.C=this.v=0;this.oa=[7,7,7,7];this.Ca=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
m.L=function(a,b,c){var d=!1;switch(b){case "PC":case "PSW":case "NF":case "ZF":case "VF":case "CF":this.o[b]=c;this.Ja++;d=!0;break;default:d=this.parent.L.call(this,a,b,c)}return d}; 0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Ya=!1}y(nb,cb);l=nb.prototype;l.reset=function(){this.h.M&&H(this);ob(this);fb(this);this.h.error=!1;this.parent.reset.call(this)};
m.da=function(a){this.Ja&&(a||!this.h.M||this.h.Ga)&&(a=this.i&-16|this.b>>12&8|(this.f&65535?0:4)|(this.c&32768?2:0)|(this.g&65536?1:0),gb(this,"PSW",a,4),gb(this,"NF",a&8?1:0,1),gb(this,"ZF",a&4?1:0,1),gb(this,"VF",a&2?1:0,1),gb(this,"CF",a&1?1:0,1));if(a=this.o.speed)a.textContent=this.h.M&&this.I?this.I.toFixed(2)+"Mhz":"Stopped"}; function ob(a){a.P=255;a.u=[];a.Ua=0;a.v=a.C=a.va=a.Qa=0;a.oa[0]=a.oa[1]=a.oa[3]=7;a.Aa=0}l.La=function(){return 0};l.save=function(){var a=new I(this);J(a,0,[]);J(a,1,[this.Pa,this.N,this.T]);for(var b=this.s,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.W||e.Za){d[c++]=f;var g=c++;a:if(e=e.save()){for(var h=0,k=0,m=[];h<e.length;){for(var u=e[h],A=h+1;A<e.length&&e[A]===u;)A++;m[k++]=A-h;m[k++]=u;h=A}if(m.length<e.length){e=m;break a}}d[g]=e}}J(a,2,d);return a.data()};
function ob(a,b){a.b=b<<12;a.f=~b&4;a.c=b<<14;a.g=b<<16;if((b^a.i)&2048)for(var c=a.Ca.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ca[c];a.Ca[c]=d}a.j=b>>14&3;c=a.i>>14&3;a.j!=c&&(a.U[c]=a.a[6],a.a[6]=a.U[a.j]);a.O=2;a.i=b} l.restore=function(a){var b=a[1];this.Pa=b[0];this.N=b[1];ib(this,b[3]);a:{b=this.s;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.m){for(var e=0,g=Array(b.m),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
function J(a,b){var c,d,f=0;0>a.V?a.V=a.i=a.i&63728|a.b>>12&8|(a.f&65535?0:4)|(a.c&32768?2:0)|(a.g&65536?1:0):a.j||(b=4,f=1);a.v&57344||(a.C=63222);a.j=0;0<=(c=K(a,b|65536))&&0<=(d=K(a,b+2&65535|65536))&&(ob(a,d&53247|a.V>>2&12288),f&&(a.a[6]=4),0<=L(a,a.V)&&0<=L(a,a.a[7])&&(a.a[7]=c));a.m=0;return a.V=-1} l.L=function(a,b,c){var d=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PSW":this.o[b]=c;this.Ma++;d=!0;break;default:d=this.parent.L.call(this,a,b,c)}return d};
function pb(a,b,c){var d,f,e,h=0;if(c&a.Na){d=b>>13&a.la[a.j];f=a.za[a.j][d];e=(a.za[a.j][d+16]<<6)+(b&8191)&4194303;if(a.sa&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.sa&32&&(e=a.bb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&console.log("panic(898)")):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e&&(3915776<=e||e&1&&!(c&1)))return J(a,4);switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:128;break; l.ba=function(a){if(this.Ma&&(a||!this.h.M||this.h.Ja)){for(a=0;a<this.a.length;a++)G(this,"R"+a,this.a[a]);a=this.i&-16|(this.b&32768?8:0)|(this.f&65535?0:4)|(this.c&32768?2:0)|(this.g&65536?1:0);G(this,"PSW",a);G(this,"NF",a&8?1:0,1);G(this,"ZF",a&4?1:0,1);G(this,"VF",a&2?1:0,1);G(this,"CF",a&1?1:0,1)}if(a=this.o.speed)a.textContent=this.h.M&&this.I?this.I.toFixed(2)+"Mhz":"Stopped"};
default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.za[a.j][d]=f;if(4194170!==e||a.j)a.xa=a.j,a.Oa=d;if(h){if(h&57344)return 0<=a.V&&(h|=128),a.v&57344||(a.v=a.v|h|a.xa<<5|a.Oa<<1),J(a,168);a.v&61440||!(4191360>e||4194239<e)||(a.v|=4096,a.v&512&&(a.m|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return J(a,4);return e}function M(a,b){return 4194304<=b?a.a[b-4194304]:3932160<=b?-1:0<=b?a.memory[b>>1]:b} function pb(a,b){a.b=b<<12;a.f=~b&4;a.c=b<<14;a.g=b<<16;if((b^a.i)&2048)for(var c=a.Fa.length;0<=--c;){var d=a.a[c];a.a[c]=a.Fa[c];a.Fa[c]=d}a.j=b>>14&3;c=a.i>>14&3;a.j!=c&&(a.U[c]=a.a[6],a.a[6]=a.U[a.j]);a.O=2;a.i=b}
function N(a,b,c){c&=65535;return 4194304<=b?a.a[b-4194304]=c:3932160<=b?-1:0<=b?a.memory[b>>1]=c:b}function O(a,b){var c;return 4194304<=b?a.a[b-4194304]&255:3932160<=b?-1:0<=b?(c=a.memory[b>>1],b&1&&(c=c>>8),c&255):b}function P(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:3932160<=b?-1:0<=b?b&1?a.memory[b>>1]=c<<8|a.memory[b>>1]&255:a.memory[b>>1]=a.memory[b>>1]&65280|c:b}function K(a,b){return M(a,pb(a,b,2))} function K(a,b){var c,d,f=0;0>a.V?a.V=a.i=a.i&63728|(a.b&32768?8:0)|(a.f&65535?0:4)|(a.c&32768?2:0)|(a.g&65536?1:0):a.j||(b=4,f=1);a.v&57344||(a.C=63222);a.j=0;0<=(c=L(a,b|65536))&&0<=(d=L(a,b+2&65535|65536))&&(pb(a,d&53247|a.V>>2&12288),f&&(a.a[6]=4),0<=M(a,a.V)&&0<=M(a,a.a[7])&&(a.a[7]=c));a.m=0;return a.V=-1}
function qb(a){var b=K(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}function L(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.v&57344||(a.C=a.C<<8|246);if(!a.j&&d<=a.P&&4<d){if(d<=a.P-32)return a.a[6]=4,J(a,4);a.m|=4}return 0<=(c=pb(a,d|65536,4))?N(a,c,b):c} function qb(a,b,c){var d,f,e,g=0;if(c&a.Qa){d=b>>13&a.oa[a.j];f=a.Ca[a.j][d];e=(a.Ca[a.j][d+16]<<6)+(b&8191)&4194303;if(a.va&16){if(3932160<=e&&4186112>e){e=e&262143;var h=e>>13&31;31>h?a.va&32&&(e=a.ib[h]+(e&8190)&4194302,3932160<=e&&4186112>e&&console.log("panic(898)")):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e&&(3915776<=e||e&1&&!(c&1)))return K(a,4);switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;
function R(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.P||65534<=a.a[6])){if(a.a[6]<=a.P-32||65534<=a.a[6])return a.a[6]=4,J(a,4);a.m|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=K(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=K(a,d)))return d; default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=16384));a.Ca[a.j][d]=f;if(4194170!==e||a.j)a.Aa=a.j,a.Ra=d;if(g){if(g&57344)return 0<=a.V&&(g|=128),a.v&57344||(a.v=a.v|g|a.Aa<<5|a.Ra<<1),K(a,168);a.v&61440||!(4191360>e||4194239<e)||(a.v|=4096,a.v&512&&(a.m|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return K(a,4);return e}
d|=65536;break;case 6:if(0>(d=K(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=K(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=K(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.v&57344||(a.C=a.C<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.P||65534<=a.a[6])){if(a.a[6]<=a.P-32)return a.a[6]=4,J(a,4);a.m|=4}return d}function S(a,b,c){var d;return b&56?(0<=(d=R(a,b,c))&&(d=pb(a,d,c)),d):4194304+(b&7)} function N(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(3932160<=b)c=-1;else if(0<=b){c=a.s;var d=b&c.g,f=(b&c.i)>>>c.c;c=d!=c.g?c.b[f].cb(d,b):c.b[f++].ka(d,b)|c.b[f&c.u].ka(0,b+1)<<8}else c=b;return c}function O(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.s;var d=c,f=b&a.g,e=(b&a.i)>>>a.c;f!=a.g?a.b[e].lb(f,d&65535,b):(a.b[e++].la(f,d&255,b),a.b[e&a.u].la(0,d>>8&255,b+1));return c}return b}
function T(a,b){var c;b&56?0<=(c=S(a,b,2))&&(c=M(a,c)):c=a.a[b&7];return c}function U(a,b){var c;b&56?0<=(c=S(a,b,3))&&(c=O(a,c)):c=a.a[b&7]&255;return c}function V(a,b){return((b&128?b|65280:b&255)<<1)+a&65535} function P(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:3932160<=b?c=-1:0<=b?(c=a.s,c=c.b[(b&c.i)>>>c.c].ka(b&c.g,b)):c=b;return c}function Q(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:3932160<=b?-1:0<=b?(a=a.s,a.b[(b&a.i)>>>a.c].la(b&a.g,c&255,b),c):b}function L(a,b){return N(a,qb(a,b,2))}function rb(a){var b=L(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
m.Ta=function(a){this.h.complete=!0;this.h.Va=!1;this.h.Sa=!1;this.K=this.G=a;this.Ma&256?(lb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.O)if(1===this.O)this.O=2;else{this.O=0;e=-1;b=this.Ra&224;if(0<(a=this.s.length))for(;0<a--;){if(0<this.s[a].ya){this.s[a].ya--;this.O=2;break}if(this.s[a].Fa){if(!this.s[a].Fa()){this.s.splice(a,1);e--;continue}this.s[a].Fa=null}this.s[a].Xa>b&&(b=this.s[a].Xa,e=a)}b>(this.i&224)&&(0>e?J(this,160):(J(this,this.s[e].cb),this.s.splice(e,1)))}this.v&57344||(this.C= function M(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.v&57344||(a.C=a.C<<8|246);if(!a.j&&d<=a.P&&4<d){if(d<=a.P-32)return a.a[6]=4,K(a,4);a.m|=4}return 0<=(c=qb(a,d|65536,4))?O(a,c,b):c}
0);this.m=this.i&16;if(0<=(a=K(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=T(this,a>>6))&&(a&56?0<=(d=S(this,a,4))&&0<=N(this,d,b)&&(this.b=this.f=b,this.c=0):(this.b=this.f=this.a[a&7]=b,this.c=0));break;case 8192:0<=(b=T(this,a>>6))&&0<=(c=T(this,a))&&(this.b=this.f=this.g=a=b-c,this.c=(b^c)&(b^a));break;case 12288:0<=(b=T(this,a>>6))&&0<=(c=T(this,a))&&(this.b=this.f=b&c,this.c=0);break;case 16384:0<=(b=T(this,a>>6))&&(a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c&~b, function R(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return K(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.P||65534<=a.a[6])){if(a.a[6]<=a.P-32||65534<=a.a[6])return a.a[6]=4,K(a,4);a.m|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=L(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=L(a,d)))return d;
0<=N(this,d,a)&&(this.b=this.f=a,this.c=0)):(this.b=this.f=a=this.a[a&7]&=~b,this.c=0));break;case 20480:0<=(b=T(this,a>>6))&&(a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c|b,0<=N(this,d,a)&&(this.b=this.f=a,this.c=0)):(this.b=this.f=a=this.a[a&7]|=b,this.c=0));break;case 24576:0<=(b=T(this,a>>6))&&(a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=b+c,0<=N(this,d,a)&&(this.b=this.f=this.g=a,this.c=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.b=this.f=this.g=a,this.c=(b^a)&(c^a)));break;case 36864:0<= d|=65536;break;case 6:if(0>(d=L(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=L(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=L(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.v&57344||(a.C=a.C<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.P||65534<=a.a[6])){if(a.a[6]<=a.P-32)return a.a[6]=4,K(a,4);a.m|=4}return d}function S(a,b,c){var d;return b&56?(0<=(d=R(a,b,c))&&(d=qb(a,d,c)),d):4194304+(b&7)}
(b=U(this,a>>6))&&(a&56?0<=(d=S(this,a,5))&&0<=P(this,d,b)&&(this.b=this.f=b<<8,this.c=0):(b&128&&(b|=65280),this.b=this.f=this.a[a&7]=b,this.c=0));break;case 40960:0<=(b=U(this,a>>6))&&0<=(c=U(this,a))&&(a=b-c,this.b=this.f=this.g=a<<8,this.c=((b^c)&(b^a))<<8);break;case 45056:0<=(b=U(this,a>>6))&&0<=(c=U(this,a))&&(this.b=this.f=(b&c)<<8,this.c=0);break;case 49152:0<=(b=U(this,a>>6))&&0<=(c=O(this,d=S(this,a,7)))&&(a=c&~b,0<=P(this,d,a)&&(this.b=this.f=a<<8,this.c=0));break;case 53248:0<=(b=U(this, function T(a,b){var c;b&56?0<=(c=S(a,b,2))&&(c=N(a,c)):c=a.a[b&7];return c}function U(a,b){var c;b&56?0<=(c=S(a,b,3))&&(c=P(a,c)):c=a.a[b&7]&255;return c}function V(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
a>>6))&&0<=(c=O(this,d=S(this,a,7)))&&(a=c|b,0<=P(this,d,a)&&(this.b=this.f=a<<8,this.c=0));break;case 57344:0<=(b=T(this,a>>6))&&(a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c-b,0<=N(this,d,a)&&(this.b=this.f=this.g=a,this.c=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.b=this.f=this.g=a,this.c=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=R(this,a,0))&&(e=a>>6&7,0<=L(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=(b=T(this,a))&&(e=a>>6&7,b& l.Wa=function(a){this.h.complete=!0;this.h.Ya=!1;this.h.Va=!1;this.K=this.G=a;this.Pa&256?(mb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.O)if(1===this.O)this.O=2;else{this.O=0;e=-1;b=this.Ua&224;if(0<(a=this.u.length))for(;0<a--;){if(0<this.u[a].Ba){this.u[a].Ba--;this.O=2;break}if(this.u[a].Ia){if(!this.u[a].Ia()){this.u.splice(a,1);e--;continue}this.u[a].Ia=null}this.u[a].$a>b&&(b=this.u[a].$a,e=a)}b>(this.i&224)&&(0>e?K(this,160):(K(this,this.u[e].mb),this.u.splice(e,1)))}this.v&57344||(this.C=
0);this.m=this.i&16;if(0<=(a=L(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=T(this,a>>6))&&(a&56?0<=(d=S(this,a,4))&&0<=O(this,d,b)&&(this.b=this.f=b,this.c=0):(this.b=this.f=this.a[a&7]=b,this.c=0));break;case 8192:0<=(b=T(this,a>>6))&&0<=(c=T(this,a))&&(this.b=this.f=this.g=a=b-c,this.c=(b^c)&(b^a));break;case 12288:0<=(b=T(this,a>>6))&&0<=(c=T(this,a))&&(this.b=this.f=b&c,this.c=0);break;case 16384:0<=(b=T(this,a>>6))&&(a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c&~b,
0<=O(this,d,a)&&(this.b=this.f=a,this.c=0)):(this.b=this.f=a=this.a[a&7]&=~b,this.c=0));break;case 20480:0<=(b=T(this,a>>6))&&(a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c|b,0<=O(this,d,a)&&(this.b=this.f=a,this.c=0)):(this.b=this.f=a=this.a[a&7]|=b,this.c=0));break;case 24576:0<=(b=T(this,a>>6))&&(a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=b+c,0<=O(this,d,a)&&(this.b=this.f=this.g=a,this.c=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.b=this.f=this.g=a,this.c=(b^a)&(c^a)));break;case 36864:0<=
(b=U(this,a>>6))&&(a&56?0<=(d=S(this,a,5))&&0<=Q(this,d,b)&&(this.b=this.f=b<<8,this.c=0):(b&128&&(b|=65280),this.b=this.f=this.a[a&7]=b,this.c=0));break;case 40960:0<=(b=U(this,a>>6))&&0<=(c=U(this,a))&&(a=b-c,this.b=this.f=this.g=a<<8,this.c=((b^c)&(b^a))<<8);break;case 45056:0<=(b=U(this,a>>6))&&0<=(c=U(this,a))&&(this.b=this.f=(b&c)<<8,this.c=0);break;case 49152:0<=(b=U(this,a>>6))&&0<=(c=P(this,d=S(this,a,7)))&&(a=c&~b,0<=Q(this,d,a)&&(this.b=this.f=a<<8,this.c=0));break;case 53248:0<=(b=U(this,
a>>6))&&0<=(c=P(this,d=S(this,a,7)))&&(a=c|b,0<=Q(this,d,a)&&(this.b=this.f=a<<8,this.c=0));break;case 57344:0<=(b=T(this,a>>6))&&(a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c-b,0<=O(this,d,a)&&(this.b=this.f=this.g=a,this.c=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.b=this.f=this.g=a,this.c=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=R(this,a,0))&&(e=a>>6&7,0<=M(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=(b=T(this,a))&&(e=a>>6&7,b&
32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.b=a>>16,this.f=this.b|a,this.g=this.c=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=T(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.c=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.b=a>>16):(this.c=32768,this.f=a>>15|a,this.b=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=this.a[e|1]=1))):(this.f= 32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.b=a>>16,this.f=this.b|a,this.g=this.c=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=T(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.c=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.b=a>>16):(this.c=32768,this.f=a>>15|a,this.b=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=this.a[e|1]=1))):(this.f=
this.b=0,this.c=32768,this.g=65536));break;case 29696:0<=(b=T(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.c=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.c=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.c=32768))),this.a[e]=a&65535,this.b=this.f=a);break;case 30208:if(0<=(b=T(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.c=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&(a|=4294967295<<32-b);else if(b){if(a= this.b=0,this.c=32768,this.g=65536));break;case 29696:0<=(b=T(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.c=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.c=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.c=32768))),this.a[e]=a&65535,this.b=this.f=a);break;case 30208:if(0<=(b=T(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.c=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&(a|=4294967295<<32-b);else if(b){if(a=
c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.c=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.b=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=M(this,d=S(this,a,6)))&&(c^=this.a[a>>6&7],0<=N(this,d,c)&&(this.b=this.f=c,this.c=0)):(this.b=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.c=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.a[7]=V(this.a[7], c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.c=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.b=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=N(this,d=S(this,a,6)))&&(c^=this.a[a>>6&7],0<=O(this,d,c)&&(this.b=this.f=c,this.c=0)):(this.b=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.c=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.a[7]=V(this.a[7],
a);break;case 512:this.f&65535&&(this.a[7]=V(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=V(this.a[7],a));break;case 1024:(this.b&32768)===(this.c&32768)&&(this.a[7]=V(this.a[7],a));break;case 1280:(this.b&32768)!==(this.c&32768)&&(this.a[7]=V(this.a[7],a));break;case 1536:this.f&65535&&(this.b&32768)===(this.c&32768)&&(this.a[7]=V(this.a[7],a));break;case 1792:this.f&65535&&(this.b&32768)===(this.c&32768)||(this.a[7]=V(this.a[7],a));break;case 32768:this.b&32768||(this.a[7]=V(this.a[7], a);break;case 512:this.f&65535&&(this.a[7]=V(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=V(this.a[7],a));break;case 1024:(this.b&32768)===(this.c&32768)&&(this.a[7]=V(this.a[7],a));break;case 1280:(this.b&32768)!==(this.c&32768)&&(this.a[7]=V(this.a[7],a));break;case 1536:this.f&65535&&(this.b&32768)===(this.c&32768)&&(this.a[7]=V(this.a[7],a));break;case 1792:this.f&65535&&(this.b&32768)===(this.c&32768)||(this.a[7]=V(this.a[7],a));break;case 32768:this.b&32768||(this.a[7]=V(this.a[7],
a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=V(this.a[7],a));break;case 33024:this.b&32768&&(this.a[7]=V(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=V(this.a[7],a);break;case 33792:this.c&32768||(this.a[7]=V(this.a[7],a));break;case 34048:this.c&32768&&(this.a[7]=V(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=V(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=V(this.a[7],a));break;case 34816:J(this,24);break;case 35072:J(this,28);break; a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=V(this.a[7],a));break;case 33024:this.b&32768&&(this.a[7]=V(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=V(this.a[7],a);break;case 33792:this.c&32768||(this.a[7]=V(this.a[7],a));break;case 34048:this.c&32768&&(this.a[7]=V(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=V(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=V(this.a[7],a));break;case 34816:K(this,24);break;case 35072:K(this,28);break;
default:switch(a&65472){case 64:0<=(f=R(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c<<8|c>>8,0<=N(this,d,a)&&(this.b=this.f=c&65280,this.c=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.b=this.f=c&65280,this.c=this.g=0);break;case 2560:a&56?0<=(d=S(this,a,4))&&0<=N(this,d,0)&&(this.b=this.g=this.c=this.f=0):this.b=this.g=this.c=this.f=this.a[a&7]=0;break;case 2624:0<=(c=M(this,d=S(this,a,6)))&&(a=~c,0<=N(this,d,a)&&(this.b=this.f=a,this.g= default:switch(a&65472){case 64:0<=(f=R(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c<<8|c>>8,0<=O(this,d,a)&&(this.b=this.f=c&65280,this.c=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.b=this.f=c&65280,this.c=this.g=0);break;case 2560:a&56?0<=(d=S(this,a,4))&&0<=O(this,d,0)&&(this.b=this.g=this.c=this.f=0):this.b=this.g=this.c=this.f=this.a[a&7]=0;break;case 2624:0<=(c=N(this,d=S(this,a,6)))&&(a=~c,0<=O(this,d,a)&&(this.b=this.f=a,this.g=
65536,this.c=0));break;case 2688:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c+1,0<=N(this,d,a)&&(this.b=this.f=a,this.c=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.b=this.f=a,this.c=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c-1,0<=N(this,d,a)&&(this.b=this.f=a,this.c=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.b=this.f=a,this.c=(a^c)&c);break;case 2816:0<=(c=M(this,d=S(this,a,6)))&&(a=-c,0<=N(this,d,a)&&(this.g=this.b=this.f=a,this.c=a&c));break;case 2880:0<= 65536,this.c=0));break;case 2688:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c+1,0<=O(this,d,a)&&(this.b=this.f=a,this.c=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.b=this.f=a,this.c=a&(a^c));break;case 2752:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c-1,0<=O(this,d,a)&&(this.b=this.f=a,this.c=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.b=this.f=a,this.c=(a^c)&c);break;case 2816:0<=(c=N(this,d=S(this,a,6)))&&(a=-c,0<=O(this,d,a)&&(this.g=this.b=this.f=a,this.c=a&c));break;case 2880:0<=
(c=M(this,d=S(this,a,6)))&&(a=c+(this.g>>16&1),0<=N(this,d,a)&&(this.g=this.b=this.f=a,this.c=a&(a^c)));break;case 2944:0<=(c=M(this,d=S(this,a,6)))&&(a=c-(this.g>>16&1),0<=N(this,d,a)&&(this.g=this.b=this.f=a,this.c=(a^c)&c));break;case 3008:0<=(c=T(this,a))&&(this.b=this.f=c,this.g=this.c=0);break;case 3072:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=N(this,d,a)&&(this.g=c<<16,this.b=this.f=a,this.c=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|c)>>1,this.a[e]=a&65535,this.g= (c=N(this,d=S(this,a,6)))&&(a=c+(this.g>>16&1),0<=O(this,d,a)&&(this.g=this.b=this.f=a,this.c=a&(a^c)));break;case 2944:0<=(c=N(this,d=S(this,a,6)))&&(a=c-(this.g>>16&1),0<=O(this,d,a)&&(this.g=this.b=this.f=a,this.c=(a^c)&c));break;case 3008:0<=(c=T(this,a))&&(this.b=this.f=c,this.g=this.c=0);break;case 3072:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=O(this,d,a)&&(this.g=c<<16,this.b=this.f=a,this.c=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|c)>>1,this.a[e]=a&65535,this.g=
c<<16,this.b=this.f=a,this.c=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=N(this,d,a)&&(this.g=this.b=this.f=a,this.c=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.b=this.f=a,this.c=a^c);break;case 3200:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c&32768|c>>1,0<=N(this,d,a)&&(this.g=c<<16,this.b=this.f=a,this.c=this.b^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.b=this.f=a,this.c=this.b^this.g>> c<<16,this.b=this.f=a,this.c=a^this.g>>1);break;case 3136:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=O(this,d,a)&&(this.g=this.b=this.f=a,this.c=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.b=this.f=a,this.c=a^c);break;case 3200:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c&32768|c>>1,0<=O(this,d,a)&&(this.g=c<<16,this.b=this.f=a,this.c=this.b^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.b=this.f=a,this.c=this.b^this.g>>
1);break;case 3264:a&56?0<=(c=M(this,d=S(this,a,6)))&&(a=c<<1,0<=N(this,d,a)&&(this.g=this.b=this.f=a,this.c=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.b=this.f=a,this.c=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=K(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=R(this,a,0))&&(61440!==(this.i&61440)&&(f&=65535),this.j=this.i>>12&3,0<=(b=K(this,f))&&(this.j=this.i>>14&3,0<=L(this,b)&&(this.b=this.f=b,this.c=0))):(e=a& 1);break;case 3264:a&56?0<=(c=N(this,d=S(this,a,6)))&&(a=c<<1,0<=O(this,d,a)&&(this.g=this.b=this.f=a,this.c=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.b=this.f=a,this.c=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=L(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=R(this,a,0))&&(61440!==(this.i&61440)&&(f&=65535),this.j=this.i>>12&3,0<=(b=L(this,f))&&(this.j=this.i>>14&3,0<=M(this,b)&&(this.b=this.f=b,this.c=0))):(e=a&
7,b=6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]:this.U[this.i>>12&3],0<=L(this,b)&&(this.b=this.f=b,this.c=0));break;case 3456:0<=(c=qb(this))&&((this.v&57344||(this.C=22),a&56)?0<=(f=R(this,a,0))&&(f&=65535,this.j=this.i>>12&3,0<=(d=pb(this,f,4))&&(this.j=this.i>>14&3,0<=N(this,d,c)&&(this.b=this.f=c,this.c=0))):(e=a&7,6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]=c:this.U[this.i>>12&3]=c,this.b=this.f=c,this.c=0));break;case 3520:0<=(d=S(this,a,4))&&(a=-(this.b>>15&1),0<=N(this,d, 7,b=6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]:this.U[this.i>>12&3],0<=M(this,b)&&(this.b=this.f=b,this.c=0));break;case 3456:0<=(c=rb(this))&&((this.v&57344||(this.C=22),a&56)?0<=(f=R(this,a,0))&&(f&=65535,this.j=this.i>>12&3,0<=(d=qb(this,f,4))&&(this.j=this.i>>14&3,0<=O(this,d,c)&&(this.b=this.f=c,this.c=0))):(e=a&7,6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]=c:this.U[this.i>>12&3]=c,this.b=this.f=c,this.c=0));break;case 3520:0<=(d=S(this,a,4))&&(a=-(this.b>>15&1),0<=O(this,d,
a)&&(this.f=a,this.c=0));break;case 35328:a&56?0<=(d=S(this,a,5))&&0<=P(this,d,0)&&(this.b=this.g=this.c=this.f=0):(this.a[a&7]&=65280,this.b=this.g=this.c=this.f=0);break;case 35392:0<=(c=O(this,d=S(this,a,7)))&&(a=~c,0<=P(this,d,a)&&(this.b=this.f=a<<8,this.g=65536,this.c=0));break;case 35456:0<=(c=O(this,d=S(this,a,7)))&&(a=c+1,0<=P(this,d,a)&&(this.b=this.f=a<<8,this.c=(a&(a^c))<<8));break;case 35520:0<=(c=O(this,d=S(this,a,7)))&&(a=c-1,0<=P(this,d,a)&&(this.b=this.f=a<<8,this.c=((a^c)&c)<<8)); a)&&(this.f=a,this.c=0));break;case 35328:a&56?0<=(d=S(this,a,5))&&0<=Q(this,d,0)&&(this.b=this.g=this.c=this.f=0):(this.a[a&7]&=65280,this.b=this.g=this.c=this.f=0);break;case 35392:0<=(c=P(this,d=S(this,a,7)))&&(a=~c,0<=Q(this,d,a)&&(this.b=this.f=a<<8,this.g=65536,this.c=0));break;case 35456:0<=(c=P(this,d=S(this,a,7)))&&(a=c+1,0<=Q(this,d,a)&&(this.b=this.f=a<<8,this.c=(a&(a^c))<<8));break;case 35520:0<=(c=P(this,d=S(this,a,7)))&&(a=c-1,0<=Q(this,d,a)&&(this.b=this.f=a<<8,this.c=((a^c)&c)<<8));
break;case 35584:0<=(c=O(this,d=S(this,a,7)))&&(a=-c,0<=P(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a&c)<<8));break;case 35648:0<=(c=O(this,d=S(this,a,7)))&&(a=c+(this.g>>16&1),0<=P(this,d,a)&&(this.b=this.f=this.g=a<<8,this.c=(a&(a^c))<<8));break;case 35712:0<=(c=O(this,d=S(this,a,7)))&&(a=c-(this.g>>16&1),0<=P(this,d,a)&&(this.b=this.f=this.g=a<<8,this.c=((a^c)&c)<<8));break;case 35776:0<=(c=U(this,a))&&(this.b=this.f=c<<8,this.g=this.c=0);break;case 35840:0<=(c=O(this,d=S(this,a,7)))&&(a=((this.g& break;case 35584:0<=(c=P(this,d=S(this,a,7)))&&(a=-c,0<=Q(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a&c)<<8));break;case 35648:0<=(c=P(this,d=S(this,a,7)))&&(a=c+(this.g>>16&1),0<=Q(this,d,a)&&(this.b=this.f=this.g=a<<8,this.c=(a&(a^c))<<8));break;case 35712:0<=(c=P(this,d=S(this,a,7)))&&(a=c-(this.g>>16&1),0<=Q(this,d,a)&&(this.b=this.f=this.g=a<<8,this.c=((a^c)&c)<<8));break;case 35776:0<=(c=U(this,a))&&(this.b=this.f=c<<8,this.g=this.c=0);break;case 35840:0<=(c=P(this,d=S(this,a,7)))&&(a=((this.g&
65536)>>8|c)>>1,0<=P(this,d,a)&&(this.g=c<<16,this.b=this.f=a<<8,this.c=this.b^this.g>>1));break;case 35904:0<=(c=O(this,d=S(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=P(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a^c)<<8));break;case 35968:0<=(c=O(this,d=S(this,a,7)))&&(a=c&128|c>>1,0<=P(this,d,a)&&(this.g=c<<16,this.b=this.f=a<<8,this.c=this.b^this.g>>1));break;case 36032:0<=(c=O(this,d=S(this,a,7)))&&(a=c<<1,0<=P(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a^c)<<8));break;case 36160:a&56?0<=(f=R(this, 65536)>>8|c)>>1,0<=Q(this,d,a)&&(this.g=c<<16,this.b=this.f=a<<8,this.c=this.b^this.g>>1));break;case 35904:0<=(c=P(this,d=S(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=Q(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a^c)<<8));break;case 35968:0<=(c=P(this,d=S(this,a,7)))&&(a=c&128|c>>1,0<=Q(this,d,a)&&(this.g=c<<16,this.b=this.f=a<<8,this.c=this.b^this.g>>1));break;case 36032:0<=(c=P(this,d=S(this,a,7)))&&(a=c<<1,0<=Q(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a^c)<<8));break;case 36160:a&56?0<=(f=R(this,
a,0))&&(this.j=this.i>>12&3,0<=(b=K(this,f|65536))&&(this.j=this.i>>14&3,0<=L(this,b)&&(this.b=this.f=b,this.c=0))):(e=a&7,b=6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]:this.U[this.i>>12&3],0<=L(this,b)&&(this.b=this.f=b,this.c=0));break;case 36224:0<=(c=qb(this))&&((this.v&57344||(this.C=22),a&56)?0<=(f=R(this,a,0))&&(this.j=this.i>>12&3,0<=(d=pb(this,f|65536,4))&&(this.j=this.i>>14&3,0<=N(this,d,c)&&(this.b=this.f=c,this.c=0))):(e=a&7,6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]= a,0))&&(this.j=this.i>>12&3,0<=(b=L(this,f|65536))&&(this.j=this.i>>14&3,0<=M(this,b)&&(this.b=this.f=b,this.c=0))):(e=a&7,b=6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]:this.U[this.i>>12&3],0<=M(this,b)&&(this.b=this.f=b,this.c=0));break;case 36224:0<=(c=rb(this))&&((this.v&57344||(this.C=22),a&56)?0<=(f=R(this,a,0))&&(this.j=this.i>>12&3,0<=(d=qb(this,f|65536,4))&&(this.j=this.i>>14&3,0<=O(this,d,c)&&(this.b=this.f=c,this.c=0))):(e=a&7,6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]=
c:this.U[this.i>>12&3]=c,this.b=this.f=c,this.c=0));break;default:switch(a&65528){case 128:0<=(b=qb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.i&49152||(this.i=this.i&63519|(a&7)<<5,this.O=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.c=0);a&4&&(this.f=1);a&8&&(this.b=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.c=32768);a&4&&(this.f=0);a&8&&(this.b=32768);break;default:switch(a){case 0:49152&this.i?J(this,4):(this.Da=3,lb(this),console.log("HALT at "+ c:this.U[this.i>>12&3]=c,this.b=this.f=c,this.c=0));break;default:switch(a&65528){case 128:0<=(b=rb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.i&49152||(this.i=this.i&63519|(a&7)<<5,this.O=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.c=0);a&4&&(this.f=1);a&8&&(this.b=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.c=32768);a&4&&(this.f=0);a&8&&(this.b=32768);break;default:switch(a){case 0:49152&this.i?K(this,4):(this.Ga=3,mb(this),console.log("HALT at "+
this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.s.length))for(;0<a--;)e+=this.s[a].ya,this.s[a].ya=0;0===e&&0===this.Da&&(this.Da=2,lb(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.i&49152||nb(this);break;case 2:case 6:d=this.a[6];0<=(f=K(this,d|65536))&&(d=d+2&65535,0<=(b=K(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.i&49152&&(b=b&63519|this.i&63712),this.a[7]=f,ob(this,b),this.m&=-17,2===a&&(this.m|=this.i&16)));break;default:J(this,8)}}}}}}this.m&&(this.m& this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.u.length))for(;0<a--;)e+=this.u[a].Ba,this.u[a].Ba=0;0===e&&0===this.Ga&&(this.Ga=2,mb(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.i&49152||ob(this);break;case 2:case 6:d=this.a[6];0<=(f=L(this,d|65536))&&(d=d+2&65535,0<=(b=L(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.i&49152&&(b=b&63519|this.i&63712),this.a[7]=f,pb(this,b),this.m&=-17,2===a&&(this.m|=this.i&16)));break;default:K(this,8)}}}}}}this.m&&(this.m&
2?J(this,168):this.m&4?J(this,4):this.m&16&&J(this,12),this.m=0)}while(0<this.G)}return this.h.complete?this.K-this.G:void 0===this.h.complete?0:-1};v(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new mb(d);C(d,c)}}); 2?K(this,168):this.m&4?K(this,4):this.m&16&&K(this,12),this.m=0)}while(0<this.G)}return this.h.complete?this.K-this.G:void 0===this.h.complete?0:-1};v(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new nb(d);C(d,c)}});
function W(a){w.call(this,"ROM",a,W);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ba(this.g);if(this.g){a=this.g;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=p()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,e){rb(c,a,b,e)})}}y(W);W.prototype.ea=function(a,b,c,d){this.u=b;this.a=c;this.B=d;sb(this)};W.prototype.Y=function(){this.i&&(this.B&&this.B.a(this.id,this.j,this.c,this.i),delete this.i);return!0}; function W(a){w.call(this,"ROM",a,W);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ba(this.g);if(this.g){a=this.g;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=p()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,e){sb(c,a,b,e)})}}y(W);W.prototype.ca=function(a,b,c,d){this.s=b;this.a=c;this.w=d;tb(this)};W.prototype.Y=function(){this.i&&(this.w&&this.w.a(this.id,this.j,this.c,this.i),delete this.i);return!0};
W.prototype.X=function(){return!0}; W.prototype.X=function(){return!0};
function rb(a,b,c,d){if(d)a.w("Unable to load system ROM (error "+d+": "+b+")");else{Ba(a.La,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.i=g.symbols;if(!a.b.length){t("Empty ROM: "+b); function sb(a,b,c,d){if(d)a.A("Unable to load system ROM (error "+d+": "+b+")");else{Ca(a.Oa,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.i=h.symbols;if(!a.b.length){r("Empty ROM: "+b);
return}if(1==a.b.length){t(a.b[0]);return}}catch(k){a.w("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);sb(a)}} return}if(1==a.b.length){r(a.b[0]);return}}catch(k){a.A("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);tb(a)}}
function sb(a){if(!Ea(a))if(!a.g)E(a);else if(a.b&&a.u){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.c,8,!0)+")";a.h.error=!0;a.w(b)}else{b=a.j;if(Ka(a.u,b,a.c,a.l?1:Sa)){var c;for(c=0;c<a.b.length;c++){var d=a.u,f=b+c;d.b[(f&d.u)>>>d.f].Ua(f&d.m,a.b[c]&255,f)}b=!0}else 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 e=a,d=b[c],f=e.u,h=e.c,g=[],k=e.j>>>f.f;0<h&& function tb(a){if(!Fa(a))if(!a.g)E(a);else if(a.b&&a.s){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.c,8,!0)+")";a.h.error=!0;a.A(b)}else{b=a.j;if(La(a.s,b,a.c,a.l?1:Ua)){var c;for(c=0;c<a.b.length;c++){var d=a.s,f=b+c;d.b[(f&d.i)>>>d.c].Xa(f&d.g,a.b[c]&255,f)}b=!0}else 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 e=a,d=b[c],f=e.s,g=e.c,h=[],k=e.j>>>f.c;0<g&&
k<f.b.length;)g.push(f.b[k++]),h-=f.c;f=e.u;e=e.c;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.c}}delete a.b}}E(a)}}v(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new W(d);C(d,c)}});function tb(a){w.call(this,"RAM",a,tb);this.f=a.addr;this.c=a.size;this.b=!1}y(tb);m=tb.prototype;m.ea=function(a,b,c,d){this.u=b;this.a=c;this.B=d;E(this)};m.Y=function(a,b){b||this.reset();return!0};m.X=function(a){return a?this.save():!0}; k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.s;e=e.c;g=0;for(d>>>=f.c;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}E(a)}}v(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new W(d);C(d,c)}});function ub(a){w.call(this,"RAM",a,ub);this.f=a.addr;this.c=a.size;this.b=!1}y(ub);l=ub.prototype;l.ca=function(a,b,c,d){this.s=b;this.a=c;this.w=d;E(this)};l.Y=function(a,b){b||this.reset();return!0};l.X=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.c&&Ka(this.u,this.f,this.c,1)&&(this.b=!0);this.b||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};v(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new tb(d);C(d,c)}});function ub(a){w.call(this,"Keyboard",a,ub);E(this)}y(ub);ub.prototype.L=function(){return!1};ub.prototype.ea=function(a,b,c,d){this.l=a;this.a=c;this.B=d;this.Z=null}; l.reset=function(){!this.b&&this.c&&La(this.s,this.f,this.c,1)&&(this.b=!0);this.b||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};v(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new ub(d);C(d,c)}});function vb(a){w.call(this,"Keyboard",a,vb);E(this)}y(vb);vb.prototype.L=function(){return!1};vb.prototype.ca=function(a,b,c,d){this.l=a;this.a=c;this.w=d;this.Z=null};
v(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new ub(d);C(d,c)}}); v(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new vb(d);C(d,c)}});
function vb(a,b,c){w.call(this,"Computer",a,vb);this.h.A=!1;wb(this,b);this.v=cb(this,"autoPower",a);this.f=0;this.I=a.busWidth||a.buswidth;this.b=X;this.m=null;this.j=this.F=!1;this.J=cb(this,"url")||"";(Math.random()+.1).toString(36);this.c=xb(this);if(this.a=Ca("CPU",this.id)){this.B=Ca("Debugger",this.id);this.u=new Ia({id:this.La+".bus",busWidth:this.I},this.a,this.B);var d,f=A(this.id);if((this.g=Ca("Panel",this.id))&&this.g.wa)for(b=0;b<f.length;b++)d=f[b],d.w=this.g.w,d.H=this.g.H,d.wa=this.g.wa; function wb(a,b,c){w.call(this,"Computer",a,wb);this.h.B=!1;xb(this,b);this.v=eb(this,"autoPower",a);this.f=0;this.I=a.busWidth||a.buswidth;this.b=X;this.m=null;this.j=this.F=!1;this.J=eb(this,"url")||"";(Math.random()+.1).toString(36);this.c=yb(this);if(this.a=Da("CPU",this.id)){this.w=Da("Debugger",this.id);this.s=new Ja({id:this.Oa+".bus",busWidth:this.I},this.a,this.w);var d,f=z(this.id);if((this.g=Da("Panel",this.id))&&this.g.za)for(b=0;b<f.length;b++)d=f[b],d.A=this.g.A,d.H=this.g.H,d.za=this.g.za;
this.H("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.H("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.ea&&d.ea(this,this.u,this.a,this.B);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.l=d:this.b=parseInt(d,10));var e;if(a=cb(this,"state")||(e=!0,a.state))b=this.C=a,e||(this.j=!0,this.b=X),this.b&&(this.s=new H(this, this.H("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.H("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.ca&&d.ca(this,this.s,this.a,this.w);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.l=d:this.b=parseInt(d,10));var e;if(a=eb(this,"state")||(e=!0,a.state))b=this.C=a,e||(this.j=!0,this.b=X),this.b&&(this.u=new I(this,
"1.30.0"),Y(this.s)?b=null:delete this.s);!b&&this.b&&(b=yb(this))&&(this.j=!0);if(b){var h=this;r(b,null,!0,function(a,b,c){c?(h.l=null,h.j=!1,h.w("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.m=b,h.F=!0);E(h)})}else E(this);this.o.power||(this.v=!0);!c&&this.v&&zb(this,this.ia)}else t("Unable to find CPU component")}y(vb);var X=0; "1.30.0"),Y(this.u)?b=null:delete this.u);!b&&this.b&&(b=zb(this))&&(this.j=!0);if(b){var g=this;q(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.A("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.m=b,g.F=!0);E(g)})}else E(this);this.o.power||(this.v=!0);!c&&this.v&&Ab(this,this.ja)}else r("Unable to find CPU component")}y(wb);var X=0;
function wb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.G=b}function cb(a,b,c){var d=b.toLowerCase(),d=va[b]||va[d];void 0===d&&a.G&&(d=a.G[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function zb(a,b,c){for(var d=A(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ea(e)){Ea(e,function(){zb(a,b,c)});return}}b.call(a,c)} function xb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.G=b}function eb(a,b,c){var d=b.toLowerCase(),d=wa[b]||wa[d];void 0===d&&a.G&&(d=a.G[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Ab(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Fa(e)){Fa(e,function(){Ab(a,b,c)});return}}b.call(a,c)}
function Ab(a,b){var c=new H(a,"1.30.0","validate");if(Y(c)&&Bb(c)){var d=Z(c,"timestamp"),f=b?Z(b,"timestamp"):"unknown";d!=f&&(a.w("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=vb.prototype; function Bb(a,b){var c=new I(a,"1.30.0","validate");if(Y(c)&&Cb(c)){var d=Z(c,"timestamp"),f=b?Z(b,"timestamp"):"unknown";d!=f&&(a.A("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=wb.prototype;
m.ia=function(a){void 0===a&&(a=this.b||(this.m?1:X));if(!this.f){this.f++;var b=!1,c=!1;this.D=!1;var d=this.s||new H(this,"1.30.0");if(-1==a)b=!0;else if(a>X){if(Y(d,this.m)){this.i=new H(this,"1.30.0","failsafe");Y(this.i)&&(Cb(this,d),a=2,Db(this.i));I(this.i,"timestamp",ga());Eb(this.i);var f=this.b&&!this.j;if(1==a||ha("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Bb(d)){var e=Z(d,"code"),h=Z(d,"data");e&&("ok"==e?Y(d,h):("error"==e&&"no machine state"!= l.ja=function(a){void 0===a&&(a=this.b||(this.m?1:X));if(!this.f){this.f++;var b=!1,c=!1;this.D=!1;var d=this.u||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>X){if(Y(d,this.m)){this.i=new I(this,"1.30.0","failsafe");Y(this.i)&&(Db(this,d),a=2,Eb(this.i));J(this.i,"timestamp",ha());Fb(this.i);var f=this.b&&!this.j;if(1==a||ia("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Cb(d)){var e=Z(d,"code"),g=Z(d,"data");e&&("ok"==e?Y(d,g):("error"==e&&"no machine state"!=
h?(this.w("Error: "+h),"unable to verify user"==h&&(la("user",""),this.c=null)):this.H(e+": "+h),Db(d),Y(d)?(c=Bb(d),f=!0):c=!1))}f&&Ab(this,c?d:null)}else 2==a&&d.clear()}else Ab(this);delete this.m;delete this.s}f=A(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.a&&(c=Fb(this,h,d,b,c));b=[d,a,c];-1!=a?zb(this,this.Ha,b):this.Ha(b)}}; g?(this.A("Error: "+g),"unable to verify user"==g&&(ma("user",""),this.c=null)):this.H(e+": "+g),Eb(d),Y(d)?(c=Cb(d),f=!0):c=!1))}f&&Bb(this,c?d:null)}else 2==a&&d.clear()}else Bb(this);delete this.m;delete this.u}f=z(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Gb(this,g,d,b,c));b=[d,a,c];-1!=a?Ab(this,this.Ka,b):this.Ka(b)}};
function Fb(a,b,c,d,f){if(!b.h.A){b.h.A=!0;if(b.Y){var e=null;f&&((e=Z(c,b.id))||(e=Z(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Y(e,d)&&e&&(t("Unable to restore state for "+b.type),a.C&&!a.F?(c.clear(),a.b=X,window&&window.location.reload()):a.D=!0,b.Y(null),f=!1)}if(!d&&b.Ka)for(a=b.Ka.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f} function Gb(a,b,c,d,f){if(!b.h.B){b.h.B=!0;if(b.Y){var e=null;f&&((e=Z(c,b.id))||(e=Z(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Y(e,d)&&e&&(r("Unable to restore state for "+b.type),a.C&&!a.F?(c.clear(),a.b=X,window&&window.location.reload()):a.D=!0,b.Y(null),f=!1)}if(!d&&b.Na)for(a=b.Na.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Ha=function(a){var b=a[0],c=0>a[1];a=a[2];this.K=!0;this.h.A=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(Fb(this,this.a,b,c,a),this.a.ga());this.D&&(Cb(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; l.Ka=function(a){var b=a[0],c=0>a[1];a=a[2];this.K=!0;this.h.B=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(Gb(this,this.a,b,c,a),this.a.ha());this.D&&(Db(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
function Cb(a,b){if(ha("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.J;f.user=c;f.type="bug";f.data=d;r("http://www.pcjs.org/api/v1/report",f,!0)}} function Db(a,b){if(ia("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.J;f.user=c;f.type="bug";f.data=d;q("http://www.pcjs.org/api/v1/report",f,!0)}}
function Gb(a,b,c){var d,f="none";if(a.f)return null;a.f--;var e=new H(a,"1.30.0"),h=new H(a,"1.30.0","validate"),g=ga();I(h,"timestamp",g);I(e,"timestamp",g);I(e,"version","1.30.0");I(e,"url",window?window.location.href:null);I(e,"browser",window?window.navigator.userAgent:"");a.a&&a.a.X&&(c&&G(a.a),d=a.a.X(b,c),"object"===typeof d&&I(e,a.a.id,d),c&&(a.a.h.A=!1,!1===d&&(f=null)));for(var g=A(a.id),k=0;k<g.length;k++){var l=g[k];l.h.A&&(l.X&&(d=l.X(b,c),"object"===typeof d&&I(e,l.id,d)),c&&(l.h.A= function Hb(a,b,c){var d,f="none";if(a.f)return null;a.f--;var e=new I(a,"1.30.0"),g=new I(a,"1.30.0","validate"),h=ha();J(g,"timestamp",h);J(e,"timestamp",h);J(e,"version","1.30.0");J(e,"url",window?window.location.href:null);J(e,"browser",window?window.navigator.userAgent:"");a.a&&a.a.X&&(c&&H(a.a),d=a.a.X(b,c),"object"===typeof d&&J(e,a.a.id,d),c&&(a.a.h.B=!1,!1===d&&(f=null)));for(var h=z(a.id),k=0;k<h.length;k++){var m=h[k];m.h.B&&(m.X&&(d=m.X(b,c),"object"===typeof d&&J(e,m.id,d)),c&&(m.h.B=
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.c&&Hb(a,a.c,e.toString()),Eb(h)&&Eb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.A=!1,b=a.o.power)&&(b.textContent="Power");a.f=0;return f}m.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}}; !1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.c&&Ib(a,a.c,e.toString()),Fb(g)&&Fb(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.h.B=!1,b=a.o.power)&&(b.textContent="Power");a.f=0;return f}l.reset=function(){this.s&&this.s.reset&&this.s.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.stop=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}}; l.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
m.L=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.f||(d.h.A?Gb(d,!1,!0):zb(d,d.ia))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.h.A&&!d.f)if(d.b&&!d.l){var a=ha("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Gb(d,a,!0);!a&&d.C?window&&window.location.reload():d.ia(X)}else d.reset(),d.a&&d.a.ga()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.o[b]=c; l.L=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.f||(d.h.B?Hb(d,!1,!0):Ab(d,d.ja))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.h.B&&!d.f)if(d.b&&!d.l){var a=ia("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Hb(d,a,!0);!a&&d.C?window&&window.location.reload():d.ja(X)}else d.reset(),d.a&&d.a.ha()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.o[b]=c;
c.onclick=function(){var a=xb(d,!0);if(a){var b=!!(d.b&&!d.l||d.C),c=Gb(d,b);b?Hb(d,a,c):d.w("Resume disabled, machine state not saved")}};return!0}return!1}; c.onclick=function(){var a=yb(d,!0);if(a){var b=!!(d.b&&!d.l||d.C),c=Hb(d,b);b?Ib(d,a,c):d.A("Resume disabled, machine state not saved")}};return!0}return!1};
function xb(a,b){var c=a.c;c||(c=ka("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Ib(a,c))||a.w("The user ID is invalid."))):b&&a.w("Browser local storage is not available"));return c} function yb(a,b){var c=a.c;c||(c=la("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Jb(a,c))||a.A("The user ID is invalid."))):b&&a.A("Browser local storage is not available"));return c}
function Ib(a,b){a.c=null;var c=r(p()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(la("user",c.data),a.c=c.data)}catch(f){t(f.message+" ("+d+")")}return a.c}function yb(a){var b=null;a.c&&(b=p()+"/api/v1/user?req=load&user="+a.c+"&state="+Jb(a,"1.30.0"));return b} function Jb(a,b){a.c=null;var c=q(p()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ma("user",c.data),a.c=c.data)}catch(f){r(f.message+" ("+d+")")}return a.c}function zb(a){var b=null;a.c&&(b=p()+"/api/v1/user?req=load&user="+a.c+"&state="+Kb(a,"1.30.0"));return b}
function Hb(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Jb(a,"1.30.0");d.data=c;b=r(p()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.w("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.w(c),la("user",""),a.c=null)}} function Ib(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Kb(a,"1.30.0");d.data=c;b=q(p()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.A("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.A(c),ma("user",""),a.c=null)}}
m.da=function(a){this.a&&this.a.da(a);this.g&&this.g.da(a)};v(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=B(e),h=new vb(h,d,!0);C(h,e);h.v&&zb(h,h.ia)}});u.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ca("Computer",c.id))&&c.K&&!c.h.A&&c.ia(-1)}}); l.ba=function(a){this.a&&this.a.ba(a);this.g&&this.g.ba(a)};v(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=B(e),g=new wb(g,d,!0);C(g,e);g.v&&Ab(g,g.ja)}});t.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Da("Computer",c.id))&&c.K&&!c.h.B&&c.ja(-1)}});
u.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ca("Computer",c.id))&&c.h.A&&Gb(c,!(!c.b||c.l),!0)}});function H(a,b,c){this.id=a.id;this.key=Jb(a,b,c);this.B=a.B;Db(this,a.$a)}function Jb(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} t.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Da("Computer",c.id))&&c.h.B&&Hb(c,!(!c.b||c.l),!0)}});function I(a,b,c){this.id=a.id;this.key=Kb(a,b,c);this.w=a.w;Eb(this,a.gb)}function Kb(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}
H.prototype={constructor:H,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){Db(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}}}; I.prototype={constructor:I,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){Eb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}}};
function Db(a,b){a[a.id]={};b&&I(a,"parms",b);a.a=!1}function Eb(a){var b=!0;if(ja()){var c=JSON.stringify(a[a.id]);la(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Bb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Y(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ja()&&(b=ka(a.key))?(a[a.id]=b,a.a=!0):!1}function Z(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}var Kb=0; function Eb(a,b){a[a.id]={};b&&J(a,"parms",b);a.a=!1}function Fb(a){var b=!0;if(ka()){var c=JSON.stringify(a[a.id]);ma(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Cb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function Y(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ka()&&(b=la(a.key))?(a[a.id]=b,a.a=!0):!1}function Z(a,b){return a[a.id][b]||null}function J(a,b,c){try{a[a.id][b]=c}catch(d){}}var Lb=0;
function Lb(a,b,c,d,f,e){f("Loading "+a+"...");r(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Mb(g,a,b,c,d,f,e)})} function Mb(a,b,c,d,f,e){f("Loading "+a+"...");q(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Nb(h,a,b,c,d,f,e)})}
function Mb(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Ba(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"), function Nb(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{if(c){Ca(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(z){g=null,a=z.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Nb(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(A){h=null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?f?Ob(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Nb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");r(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,Q=/( [a-z]+=)(['"])(.*?)\2/g;l=Q.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function Ob(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,u=/( [a-z]+=)(['"])(.*?)\2/g;m=u.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Nb(a,b,c)}})}else c(a,null)} "");a=a.replace(d[0],g);Ob(a,b,c)}})}else c(a,null)}
function Ob(a,b,c,d){function f(a){if(void 0===g){var b=h&&D(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function e(a){f("Error: "+a);k&&(--Kb||sa(!0));k=!1}var h,g,k=!0;Kb++;Aa[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var Q=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=l:z.appendChild(document.createTextNode(l));Q.appendChild(z)}c|| function Pb(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=fa(a))}function e(a){f("Error: "+a);k&&(--Lb||ta(!0));k=!1}var g,h,k=!0;Lb++;Ba[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],A=document.createElement("style");A.type="text/css";A.styleSheet?A.styleSheet.cssText=m:A.appendChild(document.createTextNode(m));u.appendChild(A)}c||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?Lb(c,null,null,!1,f,function(d,k){if(k)if(Ba(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Kb||sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Kb||sa(!0)):e("invalid machine element: "+ (c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Mb(c,null,null,!1,f,function(d,k){if(k)if(Ca(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(k);m?(g.outerHTML=m,--Lb||ta(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Lb||ta(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?Lb(b,a,d,!0,f,l):Mb(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(Pb){e(Pb.message)}return k}window.embedPDP11=function(a,b,c,d){sa(!1);return Ob(a,b,c,d)};window.enableEvents=sa;window.sendEvent=ta;})(); a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?Mb(b,a,d,!0,f,m):Nb(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(Qb){e(Qb.message)}return k}window.embedPDP11=function(a,b,c,d){ta(!1);return Pb(a,b,c,d)};window.enableEvents=ta;window.sendEvent=ua;})();