Merge branch 'master' into gh-pages

This commit is contained in:
Jeff Parsons 2017-01-02 15:17:56 -08:00
commit a7f9667b55
24 changed files with 1070 additions and 915 deletions

View file

@ -32,8 +32,6 @@ and tell it to convert the constructor to a class; for example:
/**
* BusPDP11(parmsBus, cpu, dbg)
*
* ...
*
* @constructor
* @extends Component
* @param {Object} parmsBus
@ -53,8 +51,6 @@ class BusPDP11 extends Component {
/**
* BusPDP11(parmsBus, cpu, dbg)
*
* ...
*
* @param {Object} parmsBus
* @param {CPUStatePDP11} cpu
* @param {DebuggerPDP11} dbg

View file

@ -11,7 +11,9 @@ PDPjs implements the DL11 component in [SerialPortPDP11](/modules/pdp11/lib/seri
This component is typically instantiated by a Machine XML file using:
<serial id="dl11" adapter="0" binding="print"/>
```xml
<serial id="dl11" adapter="0" binding="print"/>
```
Most of our PDP-11 machines specify *binding="print"* to connect the DL11 to a `<textarea>` that serves as the machine's
display terminal.

View file

@ -2,13 +2,13 @@
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.32.0/machine.xsl"?>
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 with 256Kb running CPU Exerciser</name>
<computer id="computer" busWidth="22"/>
<computer id="computer" busWidth="22" resume="1"/>
<cpu id="cpu" model="1170" cycles="6666667"/>
<ram id="ram" addr="0x00000" size="0x40000" file="/apps/pdp11/tapes/diags/MAINDEC-11-DEQKC-B1-PB.json"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0" binding="print"/>
<panel ref="/devices/pdp11/panel/1170/debugger/front.xml"/>
<debugger id="debugger" base="8" messages="rk11|pc11" commands='bp 033330 "bp 037772; bp 041734; bp 042164"'/>
<debugger id="debugger" base="8" messages="" commands=''/>
<device ref="/devices/pdp11/pc11/default.xml"/>
<device ref="/devices/pdp11/rk11/default.xml"/>
<device ref="/devices/pdp11/rl11/default.xml"/>

View file

@ -29,18 +29,18 @@ used to control the device, such as choosing which tape should be "loaded" into
```xml
<?xml version="1.0" encoding="UTF-8"?>
<device id="pc11" type="pc11" baudReceive="9600" autoMount='{PTR:{path:"/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json"}}' pos="left" width="35%" padLeft="8px" padBottom="8px">
<name>Paper Tape Controls</name>
<control type="container">
<control type="list" binding="listTapes">
<tape id="tape00" name="Bootstrap Loader (16Kb)" path="/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json"/>
<tape id="tape01" name="Absolute Loader" path="/apps/pdp11/tapes/absloader/DEC-11-L2PC-PO.json"/>
<tape id="tape02" name="BASIC (Single User)" path="/apps/pdp11/tapes/basic/DEC-11-AJPB-PB.json"/>
</control>
<control type="button" binding="loadTape">Load</control>
<control type="button" binding="readTape">Read</control>
<control type="description" binding="descTape" padRight="8px"/>
<control type="file" binding="mountTape"/>
<control type="progress" binding="readProgress" pos="default" width="250px" padTop="8px">Tape Progress</control>
</control>
<name>Paper Tape Controls</name>
<control type="container">
<control type="list" binding="listTapes">
<tape id="tape00" name="Bootstrap Loader (16Kb)" path="/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json"/>
<tape id="tape01" name="Absolute Loader" path="/apps/pdp11/tapes/absloader/DEC-11-L2PC-PO.json"/>
<tape id="tape02" name="BASIC (Single User)" path="/apps/pdp11/tapes/basic/DEC-11-AJPB-PB.json"/>
</control>
<control type="button" binding="loadTape">Load</control>
<control type="button" binding="readTape">Read</control>
<control type="description" binding="descTape" padRight="8px"/>
<control type="file" binding="mountTape"/>
<control type="progress" binding="readProgress" pos="default" width="250px" padTop="8px">Tape Progress</control>
</control>
</device>
```

View file

@ -32,16 +32,16 @@ used to control the device, such as choosing which disks should be "auto-mounted
```xml
<?xml version="1.0" encoding="UTF-8"?>
<device id="rk11" type="rk11" autoMount='{RK0:{path:"http://archive.pcjs.org/disks/dec/rk03/RK03-XXDP.json"}}' pos="left" width="35%" padLeft="8px" padBottom="8px">
<name>Disk Drive Controls</name>
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk id="disk01" name="XXDP+ Diagnostics" path="http://archive.pcjs.org/disks/dec/rk03/RK03-XXDP.json"/>
</control>
<control type="button" binding="loadDisk">Load</control>
<control type="button" binding="bootDisk">Boot</control>
<control type="description" binding="descDisk" padRight="8px"/>
<control type="file" binding="mountDisk"/>
</control>
<name>Disk Drive Controls</name>
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk id="disk01" name="XXDP+ Diagnostics" path="http://archive.pcjs.org/disks/dec/rk03/RK03-XXDP.json"/>
</control>
<control type="button" binding="loadDisk">Load</control>
<control type="button" binding="bootDisk">Boot</control>
<control type="description" binding="descDisk" padRight="8px"/>
<control type="file" binding="mountDisk"/>
</control>
</device>
```

View file

@ -33,16 +33,16 @@ used to control the device, such as choosing which disks should be "auto-mounted
```xml
<?xml version="1.0" encoding="UTF-8"?>
<device id="rl11" type="rl11" autoMount='{RL0:{path:"http://archive.pcjs.org/disks/dec/rl02k/RL02K-XXDP.json"}}' pos="left" width="35%" padLeft="8px" padBottom="8px">
<name>Disk Drive Controls</name>
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk id="disk01" name="XXDP+ Diagnostics" path="http://archive.pcjs.org/disks/dec/rl02k/RL02K-XXDP.json"/>
</control>
<control type="button" binding="loadDisk">Load</control>
<control type="button" binding="bootDisk">Boot</control>
<control type="description" binding="descDisk" padRight="8px"/>
<control type="file" binding="mountDisk"/>
</control>
<name>Disk Drive Controls</name>
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk id="disk01" name="XXDP+ Diagnostics" path="http://archive.pcjs.org/disks/dec/rl02k/RL02K-XXDP.json"/>
</control>
<control type="button" binding="loadDisk">Load</control>
<control type="button" binding="bootDisk">Boot</control>
<control type="description" binding="descDisk" padRight="8px"/>
<control type="file" binding="mountDisk"/>
</control>
</device>
```

View file

@ -318,15 +318,6 @@ class BusPDP11 extends Component {
/**
* powerUp(data, fRepower)
*
* We don't need a powerDown() handler, because for largely historical reasons, our state is saved by saveMemory(),
* which called by the CPU.
*
* However, we do need a powerUp() handler, because on resumable machines, the Computer's onReset() function calls
* everyone's powerUp() handler rather than their reset() handler.
*
* TODO: Perhaps Computer should be smarter: if there's no powerUp() handler, then fallback to the reset() handler.
* In that case, however, we'd either need to remove the powerUp() stub in Component, or detect the existence of the stub.
*
* @this {BusPDP11}
* @param {Object|null} data (always null because we supply no powerDown() handler)
* @param {boolean} [fRepower]
@ -334,10 +325,54 @@ class BusPDP11 extends Component {
*/
powerUp(data, fRepower)
{
if (!fRepower) this.reset();
if (!fRepower) {
if (!data) {
this.reset();
} else {
if (!this.restore(data)) return false;
}
}
return true;
}
/**
* powerDown(fSave, fShutdown)
*
* @this {BusPDP11}
* @param {boolean} [fSave]
* @param {boolean} [fShutdown]
* @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
*/
powerDown(fSave, fShutdown)
{
return fSave? this.save() : true;
}
/**
* save()
*
* @this {BusPDP11}
* @return {Object|null}
*/
save()
{
var state = new State(this);
state.set(0, this.saveMemory());
return state.data();
}
/**
* restore(data)
*
* @this {BusPDP11}
* @param {Object} data
* @return {boolean} true if restore successful, false if not
*/
restore(data)
{
return this.restoreMemory(data[0]);
}
/**
* addMemory(addr, size, type, controller)
*

View file

@ -128,14 +128,14 @@ class ComputerPDP11 extends Component {
*/
this.nBusWidth = +parmsComputer['busWidth'] || +parmsComputer['buswidth'];
this.resume = ComputerPDP11.RESUME_NONE;
this.sResumePath = this.sStatePath = null;
this.sStateData = null;
this.fStateData = false; // remembers if sStateData was loaded
this.fServerState = false;
this.stateComputer = this.stateFailSafe = null;
this.fInitialized = this.fReload = this.fRestoreError = false;
this.stateFailSafe = null;
this.url = this.getMachineParm('url') || "";
this.url = /** @type {string} */ (this.getMachineParm('url') || "");
/*
* Generate a random number x (where 0 <= x < 1), add 0.1 so that it's guaranteed to be
@ -145,7 +145,7 @@ class ComputerPDP11 extends Component {
this.sUserID = this.queryUserID();
/*
* Find the appropriate CPU (and Debugger and Control Panel, if any)
* Find the appropriate CPU (and Debugger and Control Panel, if any).
*
* CLOSURE COMPILER TIP: To override the type of a right-hand expression (as we need to do here,
* where we know getComponentByType() will only return an CPUState object or null), wrap the expression
@ -198,20 +198,7 @@ class ComputerPDP11 extends Component {
if (component.initBus) component.initBus(this, this.bus, this.cpu, this.dbg);
}
var sStatePath = null;
var sResume = parmsComputer['resume'];
if (sResume !== undefined) {
/*
* DEPRECATE: This goofiness is a holdover from when the 'resume' property was a string (either a
* single-digit string or a path); now it's always a number, so it never has a 'length' property and
* the call to parseInt() is unnecessary.
*/
if (sResume.length > 1) {
sStatePath = this.sResumePath = sResume;
} else {
this.resume = parseInt(sResume, 10);
}
}
this.resume = /** @type {number} */ (this.getMachineParm('resume', parmsComputer, Str.TYPES.NUMBER, ComputerPDP11.RESUME_NONE));
/*
* The Computer 'state' property allows a state file to be specified independent of the 'resume' feature;
@ -227,11 +214,11 @@ class ComputerPDP11 extends Component {
* OVERRIDES everything; it overrides any 'state' Computer parameter AND it disables resume of any saved state in
* localStorage (in other words, it prevents fAllowResume from being true, and forcing resume off).
*/
var fAllowResume;
var fAllowResume, sStatePath = null;
var sState = this.getMachineParm('state') || (fAllowResume = true) && parmsComputer['state'];
if (sState) {
sStatePath = this.sStatePath = sState;
this.sStatePath = sStatePath = sState;
if (!fAllowResume) {
this.fServerState = true;
this.resume = ComputerPDP11.RESUME_NONE;
@ -305,21 +292,26 @@ class ComputerPDP11 extends Component {
}
/**
* getMachineParm(sParm, parmsComponent, type)
* getMachineParm(sParm, parmsComponent, type, defaultValue)
*
* If the machine parameter doesn't exist, we check for a matching component parameter (if parmsComponent is provided),
* and failing that, we check the bundled resources (if any).
* If the machine parameter doesn't exist, we check for a matching component parameter
* (if parmsComponent is provided), and failing that, we check the bundled resources (if any).
*
* At the moment, the only bundled resource request we expect to encounter is 'state'; if it exists, then we return
* 'state' back to the caller (ie, the name of the resource), so that the caller will then attempt to load the 'state'
* resource to obtain the actual state.
* At the moment, the only bundled resource request we expect to encounter is 'state'; if it exists,
* then we return 'state' back to the caller (ie, the name of the resource), so that the caller will
* then attempt to load the 'state' resource to obtain the actual state.
*
* TODO: It would be nice if we could tell the Closure Compiler that when a specific type parameter
* (eg, Str.TYPES.NUMBER) is used, the return value will be that type; unfortunately, every caller
* must coerce their own return value.
*
* @param {string} sParm
* @param {Object|null} [parmsComponent]
* @param {number} [type] (from Str.TYPES)
* @return {string|undefined}
* @param {*} [defaultValue]
* @return {*}
*/
getMachineParm(sParm, parmsComponent, type)
getMachineParm(sParm, parmsComponent, type, defaultValue)
{
/*
* When checking parmsURL, the check is allowed be a bit looser, because URL parameters are
@ -329,20 +321,15 @@ class ComputerPDP11 extends Component {
*/
var sParmLC = sParm.toLowerCase();
var value = Web.getURLParm(sParm) || Web.getURLParm(sParmLC);
if (value === undefined && this.parmsMachine) {
value = this.parmsMachine[sParm];
}
if (value === undefined && parmsComponent) {
value = parmsComponent[sParm];
}
if (value === undefined && typeof resources == 'object' && resources[sParm]) {
value = sParm;
}
if (value === undefined && this.parmsMachine) value = this.parmsMachine[sParm];
if (value === undefined && parmsComponent) value = parmsComponent[sParm];
if (value === undefined && typeof resources == 'object' && resources[sParm]) value = sParm;
if (value === undefined) value = defaultValue;
if (typeof value == "string" && type) {
switch(type) {
case Str.TYPES.NUMBER:
value = +value;
if (isNaN(/** @type {number} */(value))) value = defaultValue || 0;
break;
case Str.TYPES.BOOLEAN:
value = (value == "true");
@ -428,6 +415,7 @@ class ComputerPDP11 extends Component {
}
}
if (DEBUG && this.messageEnabled()) this.printMessage("ComputerPDP11.wait(ready)");
//noinspection JSUnresolvedFunction
fn.call(this, parms);
}
@ -615,11 +603,15 @@ class ComputerPDP11 extends Component {
{
if (!component.flags.powered) {
/*
* TODO: If all components called super.powerUp(), the powered flag would be set automatically.
*/
this.assert(component.powerUp);
component.flags.powered = true;
if (component.powerUp) {
var data = null;
var data = null;
try {
if (fRestore) {
data = stateComputer.get(component.id);
if (!data) {
@ -692,14 +684,17 @@ class ComputerPDP11 extends Component {
*/
fRestore = false;
}
}
if (!fRepower && component.comment) {
var asComments = component.comment.split("|");
for (var i = 0; i < asComments.length; i++) {
component.status(asComments[i]);
if (!fRepower && component.comment) {
var asComments = component.comment.split("|");
for (var i = 0; i < asComments.length; i++) {
component.status(asComments[i]);
}
}
}
catch (err) {
Component.error("Error restoring state for " + component.type + " (" + err.message + ")");
}
}
return fRestore;
}

View file

@ -246,7 +246,7 @@ class CPUPDP11 extends Component {
}
if (!fRepower) {
if (!data || !this.restore) {
if (!data) {
this.reset();
} else {
this.resetCycles();
@ -293,12 +293,6 @@ class CPUPDP11 extends Component {
*/
powerDown(fSave, fShutdown)
{
/*
* The Computer component (which is responsible for all powerDown and powerUp notifications)
* is now responsible for managing a component's fPowered flag, not us.
*
* this.flags.powered = false;
*/
return fSave? this.save() : true;
}

View file

@ -37,7 +37,11 @@ if (NODE) {
}
/*
* Decoding starts at the bottom of this file, in op1120() and op1145().
* Decoding starts near the bottom of this file, in op1120() and op1140(). Obviously, there are
* MANY more PDP-11 models than the 11/20 and 11/40, but for the broad model categories that PDPjs
* supports (ie, MODEL_1120, MODEL_1140, MODEL_1145, and MODEL_1170), the biggest differences are
* between MODEL_1120 and MODEL_1140, so decoding is divided into those two categories, and all
* other differences are handled inside the opcode handlers.
*
* The basic decoding approach is to dispatch on the top 4 bits of the opcode, and if further
* decoding is required, the dispatched function will dispatch on the next 4 bits, and so on
@ -53,6 +57,11 @@ if (NODE) {
* For example, opADD() passes the helper function fnADD() to the appropriate update method. This
* allows the update method to perform the entire read/modify/write operation, because the modify
* step is performed internally, via the fnXXX() helper function.
*
* For the handful of instructions in the 1140 tables that actually exist only on the 11/45 and
* 11/70 (ie, MFPD, MTPD, and SPL), those opcode handlers perform their own model checks. That's
* simpler than creating additional tables, and seems fine for instructions that are not commonly
* executed.
*/
/**
@ -1302,6 +1311,23 @@ PDP11.opMFPI = function(opCode)
this.nStepCycles -= (10 + 1);
};
/**
* opMFPS(opCode)
*
* 1067XX MFPS - Move Byte From PSW
*
* The 8-bit contents of the PS are moved to the effective destination. If destination is mode 0,
* PS bit 7 is sign extended through the upper byte of the register. The destination operand is treated
* as a byte address. 11/34A only.
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.opMFPS = function(opCode)
{
PDP11.opUndefined.call(this, opCode);
};
/**
* opMFPT(opCode)
*
@ -1321,10 +1347,7 @@ PDP11.opMFPI = function(opCode)
*/
PDP11.opMFPT = function(opCode)
{
/*
* TODO: Review
*/
this.trap(PDP11.TRAP.RESERVED, 0, PDP11.REASON.OPCODE);
PDP11.opUndefined.call(this, opCode);
};
PDP11.MOV_CYCLES = [
@ -1405,6 +1428,23 @@ PDP11.opMTPI = function(opCode)
this.nStepCycles = this.nSnapCycles - PDP11.MTP_CYCLES[this.dstMode];
};
/**
* opMTPS(opCode)
*
* 1064XX MTPS - Move Byte To PSW
*
* The 8 bits of the effective operand replace the current contents of the PS <0:7>. The source operand
* address is treated as a byte address. Note that PS bit 4 cannot be set with this instruction. The
* src operand remains unchanged. 11/34A only.
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.opMTPS = function(opCode)
{
PDP11.opUndefined.call(this, opCode);
};
/**
* opMUL(opCode)
*
@ -1588,6 +1628,7 @@ PDP11.opRTI = function(opCode)
PDP11.opRTS = function(opCode)
{
if (opCode & 0x08) {
//noinspection JSUnresolvedFunction
PDP11.opUndefined.call(this, opCode);
return;
}
@ -1731,7 +1772,8 @@ PDP11.opSOB = function(opCode)
*/
PDP11.opSPL = function(opCode)
{
if (!(opCode & 0x08)) {
if (!(opCode & 0x08) || this.model < PDP11.MODEL_1145) {
//noinspection JSUnresolvedFunction
PDP11.opUndefined.call(this, opCode);
return;
}
@ -2219,103 +2261,108 @@ PDP11.aOp8CXn_1120 = [
];
/**
* op1145(opCode)
* op1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op1145 = function(opCode)
PDP11.op1140 = function(opCode)
{
PDP11.aOpXnnn_1145[opCode >> 12].call(this, opCode);
PDP11.aOpXnnn_1140[opCode >> 12].call(this, opCode);
};
/**
* op0Xnn_1145(opCode)
* op0Xnn_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op0Xnn_1145 = function(opCode)
PDP11.op0Xnn_1140 = function(opCode)
{
PDP11.aOp0Xnn_1145[(opCode >> 8) & 0xf].call(this, opCode);
PDP11.aOp0Xnn_1140[(opCode >> 8) & 0xf].call(this, opCode);
};
/**
* op0DXn_1145(opCode)
* op0DXn_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op0DXn_1145 = function(opCode)
PDP11.op0DXn_1140 = function(opCode)
{
PDP11.aOp0DXn_1145[(opCode >> 6) & 0x3].call(this, opCode);
PDP11.aOp0DXn_1140[(opCode >> 6) & 0x3].call(this, opCode);
};
/**
* op00Xn_1145(opCode)
* op00Xn_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op00Xn_1145 = function(opCode)
PDP11.op00Xn_1140 = function(opCode)
{
PDP11.aOp00Xn_1145[(opCode >> 4) & 0xf].call(this, opCode);
PDP11.aOp00Xn_1140[(opCode >> 4) & 0xf].call(this, opCode);
};
/**
* op000X_1145(opCode)
* op000X_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op000X_1145 = function(opCode)
PDP11.op000X_1140 = function(opCode)
{
PDP11.aOp000X_1145[opCode & 0xf].call(this, opCode);
PDP11.aOp000X_1140[opCode & 0xf].call(this, opCode);
};
/**
* op7Xnn_1145(opCode)
* op7Xnn_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op7Xnn_1145 = function(opCode)
PDP11.op7Xnn_1140 = function(opCode)
{
PDP11.aOp7Xnn_1145[(opCode >> 8) & 0xf].call(this, opCode);
PDP11.aOp7Xnn_1140[(opCode >> 8) & 0xf].call(this, opCode);
};
/**
* op8Xnn_1145(opCode)
* op8Xnn_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op8Xnn_1145 = function(opCode)
PDP11.op8Xnn_1140 = function(opCode)
{
PDP11.aOp8Xnn_1145[(opCode >> 8) & 0xf].call(this, opCode);
PDP11.aOp8Xnn_1140[(opCode >> 8) & 0xf].call(this, opCode);
};
/**
* op8DXn_1145(opCode)
* op8DXn_1140(opCode)
*
* @this {CPUStatePDP11}
* @param {number} opCode
*/
PDP11.op8DXn_1145 = function(opCode)
PDP11.op8DXn_1140 = function(opCode)
{
PDP11.aOp8DXn_1145[(opCode >> 6) & 0x3].call(this, opCode);
if (this.model < PDP11.MODEL_1145) {
//noinspection JSUnresolvedFunction
PDP11.opUndefined.call(this, opCode);
return;
}
PDP11.aOp8DXn_1140[(opCode >> 6) & 0x3].call(this, opCode);
};
PDP11.aOpXnnn_1145 = [
PDP11.op0Xnn_1145, // 0x0nnn
PDP11.aOpXnnn_1140 = [
PDP11.op0Xnn_1140, // 0x0nnn
PDP11.opMOV, // 0x1nnn 01SSDD 11/20+ 2.3
PDP11.opCMP, // 0x2nnn 02SSDD 11/20+ 2.3*
PDP11.opBIT, // 0x3nnn 03SSDD 11/20+ 2.9*
PDP11.opBIC, // 0x4nnn 04SSDD 11/20+ 2.9
PDP11.opBIS, // 0x5nnn 05SSDD 11/20+ 2.3
PDP11.opADD, // 0x6nnn 06SSDD 11/20+ 2.3
PDP11.op7Xnn_1145, // 0x7nnn
PDP11.op8Xnn_1145, // 0x8nnn
PDP11.op7Xnn_1140, // 0x7nnn
PDP11.op8Xnn_1140, // 0x8nnn
PDP11.opMOVB, // 0x9nnn 11SSDD 11/20+ 2.3
PDP11.opCMPB, // 0xAnnn 12SSDD 11/20+ 2.3
PDP11.opBITB, // 0xBnnn 13SSDD 11/20+ 2.9
@ -2325,8 +2372,8 @@ PDP11.aOpXnnn_1145 = [
PDP11.opUndefined // 0xFnnn
];
PDP11.aOp0Xnn_1145 = [
PDP11.op00Xn_1145, // 0x00nn
PDP11.aOp0Xnn_1140 = [
PDP11.op00Xn_1140, // 0x00nn
PDP11.opBR, // 0x01nn 0004XX 11/20+ 2.6
PDP11.opBNE, // 0x02nn 0010XX 11/20+ 2.6**
PDP11.opBEQ, // 0x03nn 0014XX 11/20+ 2.6**
@ -2339,20 +2386,20 @@ PDP11.aOp0Xnn_1145 = [
PDP11.op0AXn_1120, // 0x0Ann
PDP11.op0BXn_1120, // 0x0Bnn
PDP11.op0CXn_1120, // 0x0Cnn
PDP11.op0DXn_1145, // 0x0Dnn
PDP11.op0DXn_1140, // 0x0Dnn
PDP11.opUndefined, // 0x0Enn
PDP11.opUndefined // 0x0Fnn
];
PDP11.aOp0DXn_1145 = [
PDP11.opMARK, // 0x0D0n 11/45+
PDP11.opMFPI, // 0x0D4n 11/45+
PDP11.opMTPI, // 0x0D8n 11/45+
PDP11.opSXT // 0x0DCn 11/45+
PDP11.aOp0DXn_1140 = [
PDP11.opMARK, // 0x0D0n 11/40+ LEIS
PDP11.opMFPI, // 0x0D4n 11/40+
PDP11.opMTPI, // 0x0D8n 11/40+
PDP11.opSXT // 0x0DCn 11/40+ LEIS
];
PDP11.aOp00Xn_1145 = [
PDP11.op000X_1145, // 0x000n 000000-000017
PDP11.aOp00Xn_1140 = [
PDP11.op000X_1140, // 0x000n 000000-000017
PDP11.opUndefined, // 0x001n 000020-000037
PDP11.opUndefined, // 0x002n 000040-000057
PDP11.opUndefined, // 0x003n 000060-000077
@ -2370,15 +2417,15 @@ PDP11.aOp00Xn_1145 = [
PDP11.opSWAB // 0x00Fn 0003DD 11/20+ 2.3
];
PDP11.aOp000X_1145 = [
PDP11.aOp000X_1140 = [
PDP11.opHALT, // 0x0000 000000 11/20+ 1.8
PDP11.opWAIT, // 0x0001 000001 11/20+ 1.8
PDP11.opRTI, // 0x0002 000002 11/20+ 4.8
PDP11.opBPT, // 0x0003 000003
PDP11.opIOT, // 0x0004 000004 11/20+ 9.3
PDP11.opRESET, // 0x0005 000005 11/20+ 20ms
PDP11.opRTT, // 0x0006 000006 11/45+
PDP11.opMFPT, // 0x0007 000007 TBD
PDP11.opRTT, // 0x0006 000006 11/40+ LEIS
PDP11.opMFPT, // 0x0007 000007 11/44+
PDP11.opUndefined, // 0x0008
PDP11.opUndefined, // 0x0009
PDP11.opUndefined, // 0x000A
@ -2389,26 +2436,26 @@ PDP11.aOp000X_1145 = [
PDP11.opUndefined // 0x000F
];
PDP11.aOp7Xnn_1145 = [
PDP11.opMUL, // 0x70nn 11/45+
PDP11.opMUL, // 0x71nn 11/45+
PDP11.opDIV, // 0x72nn 11/45+
PDP11.opDIV, // 0x73nn 11/45+
PDP11.opASH, // 0x74nn 11/45+
PDP11.opASH, // 0x75nn 11/45+
PDP11.opASHC, // 0x76nn 11/45+
PDP11.opASHC, // 0x77nn 11/45+
PDP11.opXOR, // 0x78nn 11/45+
PDP11.opXOR, // 0x79nn 11/45+
PDP11.aOp7Xnn_1140 = [
PDP11.opMUL, // 0x70nn 11/40+ EIS
PDP11.opMUL, // 0x71nn 11/40+ EIS
PDP11.opDIV, // 0x72nn 11/40+ EIS
PDP11.opDIV, // 0x73nn 11/40+ EIS
PDP11.opASH, // 0x74nn 11/40+ EIS
PDP11.opASH, // 0x75nn 11/40+ EIS
PDP11.opASHC, // 0x76nn 11/40+ EIS
PDP11.opASHC, // 0x77nn 11/40+ EIS
PDP11.opXOR, // 0x78nn 11/40+ LEIS
PDP11.opXOR, // 0x79nn 11/40+ LEIS
PDP11.opUndefined, // 0x7Ann
PDP11.opUndefined, // 0x7Bnn
PDP11.opUndefined, // 0x7Cnn
PDP11.opUndefined, // 0x7Dnn
PDP11.opSOB, // 0x7Enn 11/45+
PDP11.opSOB // 0x7Fnn 11/45+
PDP11.opSOB, // 0x7Enn 11/40+ LEIS
PDP11.opSOB // 0x7Fnn 11/40+ LEIS
];
PDP11.aOp8Xnn_1145 = [
PDP11.aOp8Xnn_1140 = [
PDP11.opBPL, // 0x80nn 1000XX 11/20+ 2.6**
PDP11.opBMI, // 0x81nn 1004XX 11/20+ 2.6**
PDP11.opBHI, // 0x82nn 1010XX 11/20+ 2.6**
@ -2419,17 +2466,17 @@ PDP11.aOp8Xnn_1145 = [
PDP11.opBCS, // 0x87nn 1034XX 11/20+ 2.6**
PDP11.opEMT, // 0x88nn 104000-104377 11/20+ 9.3
PDP11.opTRAP, // 0x89nn 104400-104777 11/20+ 9.3
PDP11.op8AXn_1120, // 0x8Ann
PDP11.op8BXn_1120, // 0x8Bnn
PDP11.op8CXn_1120, // 0x8Cnn
PDP11.op8DXn_1145, // 0x8Dnn
PDP11.opUndefined, // 0x8Enn
PDP11.opUndefined // 0x8Fnn
PDP11.op8AXn_1120, // 0x8Ann 1050XX
PDP11.op8BXn_1120, // 0x8Bnn 1054XX
PDP11.op8CXn_1120, // 0x8Cnn 1060XX
PDP11.op8DXn_1140, // 0x8Dnn 106400-106777
PDP11.opUndefined, // 0x8Enn 1070XX
PDP11.opUndefined // 0x8Fnn 1074XX
];
PDP11.aOp8DXn_1145 = [
PDP11.opUndefined, // 0x8D0n
PDP11.opMFPD, // 0x8D4n 11/45+
PDP11.opMTPD, // 0x8D8n 11/45+
PDP11.opUndefined // 0x8DCn
PDP11.aOp8DXn_1140 = [
PDP11.opMTPS, // 0x8D0n 1064XX 11/34A only
PDP11.opMFPD, // 0x8D4n 1065XX 11/45+
PDP11.opMTPD, // 0x8D8n 1066XX 11/45+
PDP11.opMFPS // 0x8DCn 1067XX 11/34A only
];

View file

@ -106,7 +106,7 @@ class CPUStatePDP11 extends CPUPDP11 {
}
/*
* WARNING: With ES6 classes, you cannot access "this" until all superclasses have been initialized as well.
* ES6 ALERT: Classes cannot access "this" until all superclasses have been initialized as well.
*/
super(parmsCPU, nCyclesDefault);
@ -156,10 +156,14 @@ class CPUStatePDP11 extends CPUPDP11 {
this.pswUsed = ~(PDP11.PSW.UNUSED | PDP11.PSW.REGSET | PDP11.PSW.PMODE | PDP11.PSW.CMODE) & 0xffff;
this.pswRegSet = 0;
} else {
this.decode = PDP11.op1145.bind(this);
this.checkStackLimit = this.checkStackLimit1145;
this.pswUsed = ~(PDP11.PSW.UNUSED | (this.model < PDP11.MODEL_1145? PDP11.PSW.REGSET : 0)) & 0xffff;
this.pswRegSet = (this.model >= PDP11.MODEL_1145? PDP11.PSW.REGSET : 0);
this.decode = PDP11.op1140.bind(this);
this.checkStackLimit = this.checkStackLimit1140;
/*
* The alternate register set (REGSET) doesn't exist on the 11/20 or 11/40; it's available on the 11/45 and 11/70.
* Ditto for separate I/D spaces, SUPER mode, and the instructions MFPD, MTPD, and SPL.
*/
this.pswUsed = ~(PDP11.PSW.UNUSED | (this.model <= PDP11.MODEL_1140? PDP11.PSW.REGSET : 0)) & 0xffff;
this.pswRegSet = (this.model > PDP11.MODEL_1140? PDP11.PSW.REGSET : 0);
}
this.nDisableTraps = 0;
@ -209,6 +213,9 @@ class CPUStatePDP11 extends CPUPDP11 {
/**
* powerUp(data, fRepower)
*
* We hook the powerUp() notification only because it's our best opportunity to take care of any
* floating vector assignments.
*
* @this {CPUStatePDP11}
* @param {Object|null} data
* @param {boolean} [fRepower]
@ -265,8 +272,7 @@ class CPUStatePDP11 extends CPUPDP11 {
this.flagN = 0x8000; // PSW N bit
this.regPSW = 0x000f; // PSW other bits (TODO: What's the point of setting the flag bits here, too?)
this.regsGen = [ // General R0-R7
0, 0, 0, 0, 0, 0, 0, this.addrReset,
-1, -2, -3, -4, -5, -6, -7, -8
0, 0, 0, 0, 0, 0, 0, this.addrReset, -1, -2, -3, -4, -5, -6, -7, -8
];
this.regsAlt = [ // Alternate R0-R5
@ -550,7 +556,7 @@ class CPUStatePDP11 extends CPUPDP11 {
setMMR3(newMMR3)
{
/*
* Don't allow the 11/45 to use 22-bit addressing or the UNIBUS map.
* Don't allow non-11/70 models to use 22-bit addressing or the UNIBUS map.
*/
if (this.model < PDP11.MODEL_1170) {
newMMR3 &= ~(PDP11.MMR3.MMU_22BIT | PDP11.MMR3.UNIBUS_MAP);
@ -610,19 +616,19 @@ class CPUStatePDP11 extends CPUPDP11 {
/**
* getChecksum()
*
* TODO: Implement
*
* @this {CPUStatePDP11}
* @return {number} a 32-bit summation of key elements of the current CPU state (used by the CPU checksum code)
*/
getChecksum()
{
return 0; // TODO: Implement
return 0;
}
/**
* save()
*
* This implements save support for the CPUStatePDP11 component.
*
* @this {CPUStatePDP11}
* @return {Object|null}
*/
@ -639,7 +645,6 @@ class CPUStatePDP11 extends CPUPDP11 {
this.regMBR,
this.regPIR,
this.regSLR,
this.getPSW(),
this.pswTrap,
this.pswMode,
this.opFlags,
@ -656,26 +661,60 @@ class CPUStatePDP11 extends CPUPDP11 {
this.addrLast,
this.opLast
]);
state.set(1, [this.nTotalCycles, this.getSpeed()]);
state.set(2, this.bus.saveMemory());
state.set(1, [this.getPSW()]);
state.set(2, [this.nTotalCycles, this.getSpeed()]);
return state.data();
}
/**
* restore(data)
*
* This implements restore support for the CPUStatePDP11 component.
*
* @this {CPUStatePDP11}
* @param {Object} data
* @return {boolean} true if restore successful, false if not
*/
restore(data)
{
var a = data[1];
this.nTotalCycles = a[1];
this.setSpeed(a[3]);
return this.bus.restoreMemory(data[2]);
var a;
/*
* ES6 ALERT: Gotta love these destructuring assignments, which make it easy to perform the inverse
* of what save() does when it collects a bunch of object properties into an array.
*/
[
this.regsGen,
this.regsAlt,
this.regsAltStack,
this.regsUniMap,
this.regsControl,
this.regErr,
this.regMBR,
this.regPIR,
this.regSLR,
this.pswTrap,
this.pswMode,
this.opFlags,
this.regMMR0,
this.regMMR1,
this.regMMR2,
this.regMMR3,
this.mmuLastMode,
this.mmuLastPage,
this.mmuPDR,
this.mmuPAR,
this.mmuEnable,
this.mmuMask,
this.addrLast,
this.opLast
] = data[0];
a = data[1];
this.setPSW(a[0]);
a = data[2];
this.nTotalCycles = a[0];
this.setSpeed(a[1]);
return true;
}
/**
@ -1213,13 +1252,6 @@ class CPUStatePDP11 extends CPUPDP11 {
*/
getPSW()
{
/*
* TODO: I'm not sure why this function can't simply be written as:
*
* return (this.regPSW & ~PDP11.PSW.FLAGS) | (this.getNF() | this.getZF() | this.getVF() | this.getCF());
*
* but for now, I'm keeping the same masking logic as the original pdp11.js.
*/
var mask = PDP11.PSW.CMODE | PDP11.PSW.PMODE | PDP11.PSW.REGSET | PDP11.PSW.PRI | PDP11.PSW.TF;
return this.regPSW = (this.regPSW & mask) | this.getNF() | this.getZF() | this.getVF() | this.getCF();
}
@ -2148,14 +2180,14 @@ class CPUStatePDP11 extends CPUPDP11 {
}
/**
* checkStackLimit1145(access, step, addr)
* checkStackLimit1140(access, step, addr)
*
* @this {CPUStatePDP11}
* @param {number} access
* @param {number} step
* @param {number} addr
*/
checkStackLimit1145(access, step, addr)
checkStackLimit1140(access, step, addr)
{
if (!this.pswMode) {
/*

View file

@ -303,10 +303,15 @@ class DebuggerPDP11 extends Debugger {
/*
* Re-initialize Debugger message support if necessary
*/
var sMessages = cmp.getMachineParm('messages');
var sMessages = /** @type {string|undefined} */ (cmp.getMachineParm('messages'));
if (sMessages) this.messageInit(sMessages);
if (this.cpu.model < PDP11.MODEL_1145) this.aOpReserved = DebuggerPDP11.OP1145;
if (this.cpu.model < PDP11.MODEL_1140) {
this.aOpReserved = this.aOpReserved.concat(DebuggerPDP11.OP1140);
}
if (this.cpu.model < PDP11.MODEL_1145) {
this.aOpReserved = this.aOpReserved.concat(DebuggerPDP11.OP1145);
}
this.messageDump(MessagesPDP11.BUS, function onDumpBus(asArgs) { dbg.dumpBus(asArgs); });
@ -4350,21 +4355,27 @@ if (DEBUGGER) {
DebuggerPDP11.OPNONE = [DebuggerPDP11.OPS.NONE];
/*
* Table of opcodes specific to the 11/45 and newer
* Table of opcodes added to the 11/40 and newer
*/
DebuggerPDP11.OP1145 = [
DebuggerPDP11.OP1140 = [
DebuggerPDP11.OPS.MARK,
DebuggerPDP11.OPS.MFPI,
DebuggerPDP11.OPS.MTPI,
DebuggerPDP11.OPS.SXT,
DebuggerPDP11.OPS.SPL,
DebuggerPDP11.OPS.RTT,
DebuggerPDP11.OPS.MUL,
DebuggerPDP11.OPS.DIV,
DebuggerPDP11.OPS.ASH,
DebuggerPDP11.OPS.ASHC,
DebuggerPDP11.OPS.XOR,
DebuggerPDP11.OPS.SOB,
DebuggerPDP11.OPS.SOB
];
/*
* Table of opcodes added to the 11/45 and newer
*/
DebuggerPDP11.OP1145 = [
DebuggerPDP11.OPS.SPL,
DebuggerPDP11.OPS.MFPD,
DebuggerPDP11.OPS.MTPD
];

View file

@ -131,8 +131,9 @@ var PDP11 = {
* The 11/40 added the MODE bits to the PSW (but only KERNEL=00 and USER=11) and 18-bit
* addressing via an MMU; there was still only one register set.
*
* The 11/45 added REGSET bit to the PSW (along with the second register set), and added
* SUPERVISOR=01 to the set of modes.
* The 11/45 added REGSET bit to the PSW (to support a second register set), SUPER=01
* mode to the existing KERNEL=00 and USER=11 modes, separate I/D spaces, and other MMU
* extensions (eg, MMR1 and MMR3).
*
* The 11/70 added 22-bit addressing and corresponding extensions to the MMU.
*/
@ -163,10 +164,10 @@ var PDP11 = {
* Processor modes
*/
MODE: {
KERNEL: 0x0, // 11/40 and higher only
SUPER: 0x1, // 11/45 and higher only
KERNEL: 0x0, // 11/40 and higher
SUPER: 0x1, // 11/45 and higher
UNUSED: 0x2,
USER: 0x3, // 11/40 and higher only
USER: 0x3, // 11/40 and higher
MASK: 0x3
},
/*
@ -364,14 +365,14 @@ var PDP11 = {
MMR0: { // 177572
ENABLED: 0x0001, // 000001 address relocation enabled
PAGE_NUM: 0x000E, // 000016 page number of last fault
PAGE_D: 0x0010, // 000020 last fault occurred in D space (11/44 and 11/70 only)
PAGE_D: 0x0010, // 000020 last fault occurred in D space (11/45 and 11/70)
PAGE: 0x001E, // 000176 (all of the PAGE bits)
MODE: 0x0060, // 000140 processor mode as of last fault
COMPLETED: 0x0080, // 000200 last instruction completed (R/O) (11/70 only)
COMPLETED: 0x0080, // 000200 last instruction completed (R/O) (11/70)
MAINT: 0x0100, // 000400 only destination mode references will be relocated
MMU_TRAPS: 0x0200, // 001000 enable MMU traps (11/70 only)
MMU_TRAPS: 0x0200, // 001000 enable MMU traps (11/70)
UNUSED: 0x0C00, // 006000
TRAP_MMU: 0x1000, // 010000 trap: MMU (11/70 only)
TRAP_MMU: 0x1000, // 010000 trap: MMU (11/70)
ABORT_RO: 0x2000, // 020000 abort: read-only
ABORT_PL: 0x4000, // 040000 abort: page length
ABORT_NR: 0x8000, // 100000 abort: non-resident
@ -382,7 +383,7 @@ var PDP11 = {
MODE: 5
}
},
MMR1: { // 177574: general purpose auto-inc/auto-dec register (11/44 and 11/70 only)
MMR1: { // 177574: general purpose auto-inc/auto-dec register (11/45 and 11/70)
REG1_NUM: 0x0007, //
REG1_DELTA: 0x00F8, //
REG2_NUM: 0x0700, //
@ -390,7 +391,7 @@ var PDP11 = {
},
MMR2: { // 177576: virtual program counter register
},
MMR3: { // 172516: mapping register (11/44 and 11/70 only)
MMR3: { // 172516: mapping register (11/45 and 11/70)
USER_D: 0x0001, // (000001)
SUPER_D: 0x0002, // (000002)
KERNEL_D: 0x0004, // (000004)
@ -400,11 +401,11 @@ var PDP11 = {
PDR: {
ACF: {
NR: 0x0, // non-resident, abort all accesses
RO1: 0x1, // read-only, abort on write attempt, memory management trap on read (11/70 only)
RO1: 0x1, // read-only, abort on write attempt, memory management trap on read (11/70)
RO: 0x2, // read-only, abort on write attempt
U1: 0x3, // unused, abort all accesses--reserved for future use
RW1: 0x4, // read/write, memory management trap upon completion of a read or write
RW2: 0x5, // read/write, memory management trap upon completion of a write (11/70 only)
RW2: 0x5, // read/write, memory management trap upon completion of a write (11/70)
RW: 0x6, // read/write, no system trap/abort action
U2: 0x7, // unused, abort all accesses--reserved for future use
MASK: 0x7
@ -412,7 +413,7 @@ var PDP11 = {
ED: 0x0008, // expansion direction (if set, the page expands downward from block number 127)
UNUSED: 0x0030,
MODIFIED: 0x0040, // page has been written (bit cleared when either PDR or PAR is written)
ACCESSED: 0x0080, // page has been accessed (bit cleared when either PDR or PAR is written) (11/70 only)
ACCESSED: 0x0080, // page has been accessed (bit cleared when either PDR or PAR is written) (11/70)
PLF: 0x7F00, // page length field
BC: 0x8000 // bypass cache (11/44 only)
},

View file

@ -1145,18 +1145,18 @@ DevicePDP11.UNIBUS_IOTABLE = {
[PDP11.UNIBUS.SDPDR0]: /* 172220 */ [null, null, DevicePDP11.prototype.readSDPDR, DevicePDP11.prototype.writeSDPDR, "SDPDR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.SIPAR0]: /* 172240 */ [null, null, DevicePDP11.prototype.readSIPAR, DevicePDP11.prototype.writeSIPAR, "SIPAR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.SDPAR0]: /* 172260 */ [null, null, DevicePDP11.prototype.readSDPAR, DevicePDP11.prototype.writeSDPAR, "SDPAR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.KIPDR0]: /* 172300 */ [null, null, DevicePDP11.prototype.readKIPDR, DevicePDP11.prototype.writeKIPDR, "KIPDR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.KIPDR0]: /* 172300 */ [null, null, DevicePDP11.prototype.readKIPDR, DevicePDP11.prototype.writeKIPDR, "KIPDR", 8, PDP11.MODEL_1140, MessagesPDP11.MMU],
[PDP11.UNIBUS.KDPDR0]: /* 172320 */ [null, null, DevicePDP11.prototype.readKDPDR, DevicePDP11.prototype.writeKDPDR, "KDPDR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.KIPAR0]: /* 172340 */ [null, null, DevicePDP11.prototype.readKIPAR, DevicePDP11.prototype.writeKIPAR, "KIPAR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.KIPAR0]: /* 172340 */ [null, null, DevicePDP11.prototype.readKIPAR, DevicePDP11.prototype.writeKIPAR, "KIPAR", 8, PDP11.MODEL_1140, MessagesPDP11.MMU],
[PDP11.UNIBUS.KDPAR0]: /* 172360 */ [null, null, DevicePDP11.prototype.readKDPAR, DevicePDP11.prototype.writeKDPAR, "KDPAR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.MMR3]: /* 172516 */ [null, null, DevicePDP11.prototype.readMMR3, DevicePDP11.prototype.writeMMR3, "MMR3", 1, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.LKS]: /* 177546 */ [null, null, DevicePDP11.prototype.readLKS, DevicePDP11.prototype.writeLKS, "LKS"],
[PDP11.UNIBUS.MMR0]: /* 177572 */ [null, null, DevicePDP11.prototype.readMMR0, DevicePDP11.prototype.writeMMR0, "MMR0", 1, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.MMR0]: /* 177572 */ [null, null, DevicePDP11.prototype.readMMR0, DevicePDP11.prototype.writeMMR0, "MMR0", 1, PDP11.MODEL_1140, MessagesPDP11.MMU],
[PDP11.UNIBUS.MMR1]: /* 177574 */ [null, null, DevicePDP11.prototype.readMMR1, DevicePDP11.prototype.writeIgnored, "MMR1", 1, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.MMR2]: /* 177576 */ [null, null, DevicePDP11.prototype.readMMR2, DevicePDP11.prototype.writeIgnored, "MMR2", 1, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.UIPDR0]: /* 177600 */ [null, null, DevicePDP11.prototype.readUIPDR, DevicePDP11.prototype.writeUIPDR, "UIPDR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.MMR2]: /* 177576 */ [null, null, DevicePDP11.prototype.readMMR2, DevicePDP11.prototype.writeIgnored, "MMR2", 1, PDP11.MODEL_1140, MessagesPDP11.MMU],
[PDP11.UNIBUS.UIPDR0]: /* 177600 */ [null, null, DevicePDP11.prototype.readUIPDR, DevicePDP11.prototype.writeUIPDR, "UIPDR", 8, PDP11.MODEL_1140, MessagesPDP11.MMU],
[PDP11.UNIBUS.UDPDR0]: /* 177620 */ [null, null, DevicePDP11.prototype.readUDPDR, DevicePDP11.prototype.writeUDPDR, "UDPDR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.UIPAR0]: /* 177640 */ [null, null, DevicePDP11.prototype.readUIPAR, DevicePDP11.prototype.writeUIPAR, "UIPAR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.UIPAR0]: /* 177640 */ [null, null, DevicePDP11.prototype.readUIPAR, DevicePDP11.prototype.writeUIPAR, "UIPAR", 8, PDP11.MODEL_1140, MessagesPDP11.MMU],
[PDP11.UNIBUS.UDPAR0]: /* 177660 */ [null, null, DevicePDP11.prototype.readUDPAR, DevicePDP11.prototype.writeUDPAR, "UDPAR", 8, PDP11.MODEL_1145, MessagesPDP11.MMU],
[PDP11.UNIBUS.R0SET0]: /* 177700 */ [null, null, DevicePDP11.prototype.readRSET0, DevicePDP11.prototype.writeRSET0, "R0SET0"],
[PDP11.UNIBUS.R1SET0]: /* 177701 */ [null, null, DevicePDP11.prototype.readRSET0, DevicePDP11.prototype.writeRSET0, "R1SET0"],

View file

@ -847,7 +847,7 @@ class PanelPDP11 extends Component {
*/
advanceAddr()
{
var nRegs = this.cpu.model < PDP11.MODEL_1145? 8 : 16;
var nRegs = this.cpu.model <= PDP11.MODEL_1140? 8 : 16;
var fGenRegs = (this.regAddr >= PDP11.UNIBUS.R0SET0 /*177700*/ && this.regAddr < PDP11.UNIBUS.R0SET0 + nRegs);
var inc = fGenRegs? 1 : 2;
var mask = fGenRegs? 0xf : this.bus.nBusMask;

View file

@ -69,8 +69,8 @@ class PC11 extends Component {
this.sDevice = "PTR"; // TODO: Make the device name configurable
/*
* We record any 'autoMount' object now, but we no longer parse it until initBus(), because the
* Computer's getMachineParm() service may have an override for us.
* We preliminarily parse and record any 'autoMount' object now, but we no longer process it
* until initBus(), because the Computer's getMachineParm() service may have an override for us.
*/
this.configMount = this.parseConfig(parms['autoMount']);
this.cAutoMount = 0;

View file

@ -61,8 +61,8 @@ class RK11 extends Component {
super("RK11", parms, RK11, MessagesPDP11.RK11);
/*
* We record any 'autoMount' object now, but we no longer parse it until initBus(),
* because the Computer's getMachineParm() service may have an override for us.
* We preliminarily parse and record any 'autoMount' object now, but we no longer process it
* until initBus(), because the Computer's getMachineParm() service may have an override for us.
*/
this.configMount = this.parseConfig(parms['autoMount']);
this.cAutoMount = 0;
@ -309,7 +309,7 @@ class RK11 extends Component {
*/
this.initController();
this.irq = this.cpu.addIRQ(PDP11.RK11.VEC, PDP11.RK11.PRI, MessagesPDP11.RK11);
this.irq = this.cpu.addIRQ(RK11.VEC, RK11.PRI, MessagesPDP11.RK11);
bus.addIOTable(this, RK11.UNIBUS_IOTABLE);
bus.addResetHandler(this.reset.bind(this));
@ -863,9 +863,9 @@ class RK11 extends Component {
{
var i = 0;
if (!data) data = [];
this.regRKDS = data[i++] || (PDP11.RK11.RKDS.RK05 | PDP11.RK11.RKDS.SOK | PDP11.RK11.RKDS.RRDY);
this.regRKDS = data[i++] || (RK11.RKDS.RK05 | RK11.RKDS.SOK | RK11.RKDS.RRDY);
this.regRKER = data[i++] || 0;
this.regRKCS = data[i++] || (PDP11.RK11.RKCS.CRDY);
this.regRKCS = data[i++] || (RK11.RKCS.CRDY);
this.regRKWC = data[i++] || 0;
this.regRKBA = data[i++] || 0;
this.regRKDA = data[i++] || 0;
@ -933,7 +933,7 @@ class RK11 extends Component {
if (!drive.disk) drive.sDiskPath = ""; // ensure this is initialized to a default that displayDisk() can deal with
drive.status = PDP11.RK11.RKDS.RK05 | PDP11.RK11.RKDS.SOK | PDP11.RK11.RKDS.RRDY;
drive.status = RK11.RKDS.RK05 | RK11.RKDS.SOK | RK11.RKDS.RRDY;
return fSuccess;
}
@ -947,73 +947,73 @@ class RK11 extends Component {
{
var fInterrupt = true;
var fnReadWrite, func, sFunc = "";
var iDrive = (this.regRKDA & PDP11.RK11.RKDA.DS) >> PDP11.RK11.RKDA.SHIFT.DS;
var iDrive = (this.regRKDA & RK11.RKDA.DS) >> RK11.RKDA.SHIFT.DS;
var drive = this.aDrives[iDrive];
var iCylinder, iHead, iSector, nWords, addr, inc;
this.regRKCS &= ~(PDP11.RK11.RKCS.CRDY | PDP11.RK11.RKCS.SCP);
this.regRKER &= ~(PDP11.RK11.RKER.SE);
this.regRKCS &= ~(RK11.RKCS.CRDY | RK11.RKCS.SCP);
this.regRKER &= ~(RK11.RKER.SE);
switch(func = this.regRKCS & PDP11.RK11.RKCS.FUNC) {
switch(func = this.regRKCS & RK11.RKCS.FUNC) {
case PDP11.RK11.FUNC.CRESET:
case RK11.FUNC.CRESET:
if (this.messageEnabled()) this.printMessage(this.type + ": CRESET(" + iDrive + ")", true);
this.regRKER = this.regRKDA = 0;
this.regRKCS = PDP11.RK11.RKCS.CRDY;
this.regRKCS = RK11.RKCS.CRDY;
break;
case PDP11.RK11.FUNC.RCHK:
case RK11.FUNC.RCHK:
sFunc = "RCHK";
/* falls through */
case PDP11.RK11.FUNC.READ:
case RK11.FUNC.READ:
if (!sFunc) sFunc = "READ";
fnReadWrite = this.readData;
/* falls through */
case PDP11.RK11.FUNC.WCHK:
case RK11.FUNC.WCHK:
if (!sFunc) sFunc = "WCHK";
/* falls through */
case PDP11.RK11.FUNC.WRITE:
case RK11.FUNC.WRITE:
if (!sFunc) sFunc = "WRITE";
if (!fnReadWrite) fnReadWrite = this.writeData;
iCylinder = (this.regRKDA & PDP11.RK11.RKDA.CA) >> PDP11.RK11.RKDA.SHIFT.CA;
iHead = (this.regRKDA & PDP11.RK11.RKDA.HS) >> PDP11.RK11.RKDA.SHIFT.HS;
iSector = this.regRKDA & PDP11.RK11.RKDA.SA;
iCylinder = (this.regRKDA & RK11.RKDA.CA) >> RK11.RKDA.SHIFT.CA;
iHead = (this.regRKDA & RK11.RKDA.HS) >> RK11.RKDA.SHIFT.HS;
iSector = this.regRKDA & RK11.RKDA.SA;
nWords = (0x10000 - this.regRKWC) & 0xffff;
addr = (((this.regRKCS & PDP11.RK11.RKCS.MEX)) << (16 - PDP11.RK11.RKCS.SHIFT.MEX)) | this.regRKBA;
inc = (this.regRKCS & PDP11.RK11.RKCS.IBA)? 0 : 2;
addr = (((this.regRKCS & RK11.RKCS.MEX)) << (16 - RK11.RKCS.SHIFT.MEX)) | this.regRKBA;
inc = (this.regRKCS & RK11.RKCS.IBA)? 0 : 2;
if (this.messageEnabled()) this.printMessage(this.type + ": " + sFunc + "(" + iCylinder + ":" + iHead + ":" + iSector + ") " + Str.toOct(addr) + "--" + Str.toOct(addr + (nWords << 1)), true, true);
if (iCylinder >= drive.nCylinders) {
this.regRKER |= PDP11.RK11.RKER.NXC;
this.regRKER |= RK11.RKER.NXC;
break;
}
if (iSector >= drive.nSectors) {
this.regRKER |= PDP11.RK11.RKER.NXS;
this.regRKER |= RK11.RKER.NXS;
break;
}
fInterrupt = fnReadWrite.call(this, drive, iCylinder, iHead, iSector, nWords, addr, inc, (func >= PDP11.RK11.FUNC.WCHK), this.doneReadWrite.bind(this));
fInterrupt = fnReadWrite.call(this, drive, iCylinder, iHead, iSector, nWords, addr, inc, (func >= RK11.FUNC.WCHK), this.doneReadWrite.bind(this));
break;
case PDP11.RK11.FUNC.SEEK:
iCylinder = (this.regRKDA & PDP11.RK11.RKDA.CA) >> PDP11.RK11.RKDA.SHIFT.CA;
case RK11.FUNC.SEEK:
iCylinder = (this.regRKDA & RK11.RKDA.CA) >> RK11.RKDA.SHIFT.CA;
if (this.messageEnabled()) this.printMessage(this.type + ": SEEK(" + iCylinder + ")", true);
if (iCylinder < drive.nCylinders) {
this.regRKCS |= PDP11.RK11.RKCS.SCP;
this.regRKCS |= RK11.RKCS.SCP;
} else {
this.regRKER |= PDP11.RK11.RKER.NXC;
this.regRKER |= RK11.RKER.NXC;
}
break;
case PDP11.RK11.FUNC.DRESET:
case RK11.FUNC.DRESET:
if (this.messageEnabled()) this.printMessage(this.type + ": DRESET(" + iDrive + ")");
this.regRKER = this.regRKDA = 0;
this.regRKCS = PDP11.RK11.RKCS.CRDY | PDP11.RK11.RKCS.SCP;
this.regRKCS = RK11.RKCS.CRDY | RK11.RKCS.SCP;
break;
default:
@ -1021,14 +1021,14 @@ class RK11 extends Component {
break;
}
this.regRKDS = drive.status | (drive.disk? PDP11.RK11.RKDS.DRDY : 0) | (iDrive << PDP11.RK11.RKDS.SHIFT.ID) | (this.regRKDA & PDP11.RK11.RKDS.SC);
this.regRKDS = drive.status | (drive.disk? RK11.RKDS.DRDY : 0) | (iDrive << RK11.RKDS.SHIFT.ID) | (this.regRKDA & RK11.RKDS.SC);
this.updateErrors();
if (fInterrupt) {
this.regRKCS &= ~PDP11.RK11.RKCS.GO;
this.regRKCS |= PDP11.RK11.RKCS.CRDY;
if (this.regRKCS & PDP11.RK11.RKCS.IE) this.cpu.setIRQ(this.irq);
this.regRKCS &= ~RK11.RKCS.GO;
this.regRKCS |= RK11.RKCS.CRDY;
if (this.regRKCS & RK11.RKCS.IE) this.cpu.setIRQ(this.irq);
}
}
@ -1054,7 +1054,7 @@ class RK11 extends Component {
var sector = null, ibSector;
if (!disk) {
err = PDP11.RK11.RKER.NXD;
err = RK11.RKER.NXD;
nWords = 0;
}
@ -1062,12 +1062,12 @@ class RK11 extends Component {
while (nWords) {
if (!sector) {
if (iCylinder >= disk.nCylinders) {
err = PDP11.RK11.RKER.NXC;
err = RK11.RKER.NXC;
break;
}
sector = disk.seek(iCylinder, iHead, iSector + 1);
if (!sector) {
err = PDP11.RK11.RKER.SKE;
err = RK11.RKER.SKE;
break;
}
ibSector = 0;
@ -1081,7 +1081,7 @@ class RK11 extends Component {
}
var b0, b1;
if ((b0 = disk.read(sector, ibSector++)) < 0 || (b1 = disk.read(sector, ibSector++)) < 0) {
err = PDP11.RK11.RKER.NXS;
err = RK11.RKER.NXS;
break;
}
if (!fCheck) {
@ -1096,7 +1096,7 @@ class RK11 extends Component {
}
}
if (this.bus.checkFault()) {
err = PDP11.RK11.RKER.NXM;
err = RK11.RKER.NXM;
break;
}
}
@ -1129,24 +1129,24 @@ class RK11 extends Component {
var sector = null, ibSector;
if (!disk) {
err = PDP11.RK11.RKER.NXD;
err = RK11.RKER.NXD;
nWords = 0;
}
while (nWords) {
var data = this.bus.getWordDirect(this.cpu.mapUnibus(addr));
if (this.bus.checkFault()) {
err = PDP11.RK11.RKER.NXM;
err = RK11.RKER.NXM;
break;
}
if (!sector) {
if (iCylinder >= disk.nCylinders) {
err = PDP11.RK11.RKER.NXC;
err = RK11.RKER.NXC;
break;
}
sector = disk.seek(iCylinder, iHead, iSector + 1, true);
if (!sector) {
err = PDP11.RK11.RKER.SKE;
err = RK11.RKER.SKE;
break;
}
ibSector = 0;
@ -1161,7 +1161,7 @@ class RK11 extends Component {
if (fCheck) {
var b0, b1;
if ((b0 = disk.read(sector, ibSector++)) < 0 || (b1 = disk.read(sector, ibSector++)) < 0) {
err = PDP11.RK11.RKER.NXS;
err = RK11.RKER.NXS;
break;
}
/*
@ -1175,12 +1175,12 @@ class RK11 extends Component {
* trigger the RKCS HE (Hard Error) bit. This is all taken care of in updateErrors() now.
*/
if (data != (b0 | (b1 << 8))) {
err = PDP11.RK11.RKER.WCE;
err = RK11.RKER.WCE;
break;
}
} else {
if (!disk.write(sector, ibSector++, data & 0xff) || !disk.write(sector, ibSector++, data >> 8)) {
err = PDP11.RK11.RKER.NXS;
err = RK11.RKER.NXS;
break;
}
}
@ -1206,9 +1206,9 @@ class RK11 extends Component {
doneReadWrite(err, iCylinder, iHead, iSector, nWords, addr)
{
this.regRKBA = addr & 0xffff;
this.regRKCS = (this.regRKCS & ~PDP11.RK11.RKCS.MEX) | ((addr >> (16 - PDP11.RK11.RKCS.SHIFT.MEX)) & PDP11.RK11.RKCS.MEX);
this.regRKCS = (this.regRKCS & ~RK11.RKCS.MEX) | ((addr >> (16 - RK11.RKCS.SHIFT.MEX)) & RK11.RKCS.MEX);
this.regRKWC = (0x10000 - nWords) & 0xffff;
this.regRKDA = (this.regRKDA & ~PDP11.RK11.RKDA.SA) | (iSector & PDP11.RK11.RKDA.SA);
this.regRKDA = (this.regRKDA & ~RK11.RKDA.SA) | (iSector & RK11.RKDA.SA);
this.regRKER |= err;
this.updateErrors();
return true;
@ -1233,11 +1233,11 @@ class RK11 extends Component {
* much like the high error bit found in other hardware registers: we always set it if any lower error bits
* are also set.
*/
this.regRKCS &= ~PDP11.RK11.RKCS.ERR;
this.regRKCS &= ~RK11.RKCS.ERR;
if (this.regRKER) {
this.regRKER |= PDP11.RK11.RKER.DRE;
this.regRKCS |= PDP11.RK11.RKCS.ERR;
if (this.regRKER & PDP11.RK11.RKER.HE) this.regRKCS |= PDP11.RK11.RKCS.HE;
this.regRKER |= RK11.RKER.DRE;
this.regRKCS |= RK11.RKCS.ERR;
if (this.regRKER & RK11.RKER.HE) this.regRKCS |= RK11.RKCS.HE;
if (this.messageEnabled()) this.printMessage(this.type + ": ERROR: " + Str.toOct(this.regRKER));
}
}
@ -1303,7 +1303,7 @@ class RK11 extends Component {
*/
readRKCS(addr)
{
return this.regRKCS & PDP11.RK11.RKCS.RMASK;
return this.regRKCS & RK11.RKCS.RMASK;
}
/**
@ -1315,9 +1315,9 @@ class RK11 extends Component {
*/
writeRKCS(data, addr)
{
this.regRKCS = (this.regRKCS & ~PDP11.RK11.RKCS.WMASK) | (data & PDP11.RK11.RKCS.WMASK);
this.regRKCS = (this.regRKCS & ~RK11.RKCS.WMASK) | (data & RK11.RKCS.WMASK);
if (this.regRKCS & PDP11.RK11.RKCS.GO) this.processCommand();
if (this.regRKCS & RK11.RKCS.GO) this.processCommand();
}
/**
@ -1426,6 +1426,17 @@ RK11.SOURCE = {
REMOTE: "??"
};
/*
* Alias RK11 definitions as class constants
*/
RK11.PRI = PDP11.RK11.PRI;
RK11.VEC = PDP11.RK11.VEC;
RK11.RKDS = PDP11.RK11.RKDS; // 177400: Drive Status Register
RK11.RKER = PDP11.RK11.RKER; // 177402: Error Register
RK11.RKCS = PDP11.RK11.RKCS; // 177404: Control Status Register
RK11.RKDA = PDP11.RK11.RKDA; // 177412: Disk Address Register
RK11.FUNC = PDP11.RK11.FUNC;
/*
* ES6 ALERT: As you can see below, I've finally started using computed property names.
*/

View file

@ -63,8 +63,8 @@ class RL11 extends Component {
super("RL11", parms, RL11, MessagesPDP11.RL11);
/*
* We record any 'autoMount' object now, but we no longer parse it until initBus(),
* because the Computer's getMachineParm() service may have an override for us.
* We preliminarily parse and record any 'autoMount' object now, but we no longer process it
* until initBus(), because the Computer's getMachineParm() service may have an override for us.
*/
this.configMount = this.parseConfig(parms['autoMount']);
this.cAutoMount = 0;
@ -311,7 +311,7 @@ class RL11 extends Component {
*/
this.initController();
this.irq = this.cpu.addIRQ(PDP11.RL11.VEC, PDP11.RL11.PRI, MessagesPDP11.RL11);
this.irq = this.cpu.addIRQ(RL11.VEC, RL11.PRI, MessagesPDP11.RL11);
bus.addIOTable(this, RL11.UNIBUS_IOTABLE);
bus.addResetHandler(this.reset.bind(this));
@ -863,7 +863,7 @@ class RL11 extends Component {
{
var i = 0;
if (!data) data = [];
this.regRLCS = data[i++] || (PDP11.RL11.RLCS.DRDY | PDP11.RL11.RLCS.CRDY);
this.regRLCS = data[i++] || (RL11.RLCS.DRDY | RL11.RLCS.CRDY);
this.regRLBA = data[i++] || 0;
this.regRLDA = data[i++] || 0;
this.tmpRLDA = data[i++] || 0;
@ -935,7 +935,7 @@ class RL11 extends Component {
/*
* Default drive status bits returned via the controller's Get Status command via the RLMP register
*/
drive.status = PDP11.RL11.RLMP.GS_ST.LOCKON | PDP11.RL11.RLMP.GS_BH | PDP11.RL11.RLMP.GS_HO;
drive.status = RL11.RLMP.GS_ST.LOCKON | RL11.RLMP.GS_BH | RL11.RLMP.GS_HO;
return fSuccess;
}
@ -949,7 +949,7 @@ class RL11 extends Component {
{
var fInterrupt = true;
var fnReadWrite, sFunc = "";
var iDrive = (this.regRLCS & PDP11.RL11.RLCS.DS) >> PDP11.RL11.RLCS.SHIFT.DS;
var iDrive = (this.regRLCS & RL11.RLCS.DS) >> RL11.RLCS.SHIFT.DS;
var drive = this.aDrives[iDrive];
var disk = drive.disk;
var iCylinder, iHead, iSector, nWords, addr;
@ -961,62 +961,62 @@ class RL11 extends Component {
* 2) CRDY is cleared to process a command
* 3) DRDY is cleared to indicate a command in process
*/
this.regRLCS &= ~PDP11.RL11.RLCS.DRDY;
this.regRLCS &= ~RL11.RLCS.DRDY;
switch(this.regRLCS & PDP11.RL11.RLCS.FUNC) {
switch(this.regRLCS & RL11.RLCS.FUNC) {
case PDP11.RL11.FUNC.NOP:
case PDP11.RL11.FUNC.WCHK:
case PDP11.RL11.FUNC.RDNC:
case RL11.FUNC.NOP:
case RL11.FUNC.WCHK:
case RL11.FUNC.RDNC:
break;
case PDP11.RL11.FUNC.STATUS:
if (this.regRLMP & PDP11.RL11.RLMP.GS_BH) {
this.regRLCS &= (PDP11.RL11.RLCS.DRDY | PDP11.RL11.RLCS.FUNC | PDP11.RL11.RLCS.BAE); // TODO: Review
case RL11.FUNC.STATUS:
if (this.regRLMP & RL11.RLMP.GS_BH) {
this.regRLCS &= (RL11.RLCS.DRDY | RL11.RLCS.FUNC | RL11.RLCS.BAE); // TODO: Review
}
/*
* The bit indicating whether or not the disk contains 256 or 512 cylinders is critical;
* for example, the first RSTS/E disk image we tried was an RL01K, which has only 256 cylinders,
* and the operating system would crash mysteriously if we didn't report the correct geometry.
*/
this.regRLMP = drive.status | (this.tmpRLDA & PDP11.RL11.RLDA.RW_HS) | (disk && disk.nCylinders == 512? PDP11.RL11.RLMP.GS_DT : 0);
this.regRLMP = drive.status | (this.tmpRLDA & RL11.RLDA.RW_HS) | (disk && disk.nCylinders == 512? RL11.RLMP.GS_DT : 0);
break;
case PDP11.RL11.FUNC.SEEK:
if ((this.regRLDA & PDP11.RL11.RLDA.GS_CMD) == PDP11.RL11.RLDA.SEEK_CMD) {
var darCA = (this.regRLDA & PDP11.RL11.RLDA.RW_CA);
var darHS = (this.regRLDA & PDP11.RL11.RLDA.SEEK_HS) << 2;
if (this.regRLDA & PDP11.RL11.RLDA.SEEK_DIR) {
case RL11.FUNC.SEEK:
if ((this.regRLDA & RL11.RLDA.GS_CMD) == RL11.RLDA.SEEK_CMD) {
var darCA = (this.regRLDA & RL11.RLDA.RW_CA);
var darHS = (this.regRLDA & RL11.RLDA.SEEK_HS) << 2;
if (this.regRLDA & RL11.RLDA.SEEK_DIR) {
this.tmpRLDA += darCA;
} else {
this.tmpRLDA -= darCA;
}
this.regRLDA = this.tmpRLDA = (this.tmpRLDA & PDP11.RL11.RLDA.RW_CA) | darHS;
this.regRLDA = this.tmpRLDA = (this.tmpRLDA & RL11.RLDA.RW_CA) | darHS;
}
break;
case PDP11.RL11.FUNC.RHDR:
case RL11.FUNC.RHDR:
this.regRLMP = this.tmpRLDA;
break;
case PDP11.RL11.FUNC.RDATA:
case RL11.FUNC.RDATA:
sFunc = "READ";
fnReadWrite = this.readData;
/* falls through */
case PDP11.RL11.FUNC.WDATA:
case RL11.FUNC.WDATA:
if (!sFunc) sFunc = "WRITE";
if (!fnReadWrite) fnReadWrite = this.writeData;
iCylinder = this.regRLDA >> PDP11.RL11.RLDA.SHIFT.RW_CA;
iHead = (this.regRLDA & PDP11.RL11.RLDA.RW_HS)? 1 : 0;
iSector = this.regRLDA & PDP11.RL11.RLDA.RW_SA;
iCylinder = this.regRLDA >> RL11.RLDA.SHIFT.RW_CA;
iHead = (this.regRLDA & RL11.RLDA.RW_HS)? 1 : 0;
iSector = this.regRLDA & RL11.RLDA.RW_SA;
if (!disk || iCylinder >= disk.nCylinders || iSector >= disk.nSectors) {
this.regRLCS |= PDP11.RL11.ERRC.HNF | PDP11.RL11.RLCS.ERR;
this.regRLCS |= RL11.ERRC.HNF | RL11.RLCS.ERR;
break;
}
nWords = (0x10000 - this.regRLMP) & 0xffff;
addr = (((this.regRLBE & PDP11.RL11.RLBE.MASK)) << 16) | this.regRLBA; // 22 bit mode
addr = (((this.regRLBE & RL11.RLBE.MASK)) << 16) | this.regRLBA; // 22 bit mode
if (this.messageEnabled()) this.printMessage(this.type + ": " + sFunc + "(" + iCylinder + ":" + iHead + ":" + iSector + ") " + Str.toOct(addr) + "--" + Str.toOct(addr + (nWords << 1)), true, true);
@ -1028,8 +1028,8 @@ class RL11 extends Component {
}
if (fInterrupt) {
this.regRLCS |= PDP11.RL11.RLCS.DRDY | PDP11.RL11.RLCS.CRDY;
if (this.regRLCS & PDP11.RL11.RLCS.IE) this.cpu.setIRQ(this.irq);
this.regRLCS |= RL11.RLCS.DRDY | RL11.RLCS.CRDY;
if (this.regRLCS & RL11.RLCS.IE) this.cpu.setIRQ(this.irq);
}
}
@ -1054,7 +1054,7 @@ class RL11 extends Component {
var sector = null, ibSector;
if (!disk) {
err = PDP11.RL11.ERRC.HNF; // TODO: Review
err = RL11.ERRC.HNF; // TODO: Review
nWords = 0;
}
@ -1063,14 +1063,14 @@ class RL11 extends Component {
if (!sector) {
sector = disk.seek(iCylinder, iHead, iSector + 1);
if (!sector) {
err = PDP11.RL11.ERRC.HNF;
err = RL11.ERRC.HNF;
break;
}
ibSector = 0;
}
var b0, b1, data;
if ((b0 = disk.read(sector, ibSector++)) < 0 || (b1 = disk.read(sector, ibSector++)) < 0) {
err = PDP11.RL11.ERRC.HNF;
err = RL11.ERRC.HNF;
break;
}
/*
@ -1088,7 +1088,7 @@ class RL11 extends Component {
}
}
if (this.bus.checkFault()) {
err = PDP11.RL11.ERRC.NXM;
err = RL11.ERRC.NXM;
break;
}
addr += 2;
@ -1101,7 +1101,7 @@ class RL11 extends Component {
if (++iHead >= disk.nHeads) {
iHead = 0;
if (++iCylinder >= disk.nCylinders) {
err = PDP11.RL11.ERRC.HNF;
err = RL11.ERRC.HNF;
break;
}
}
@ -1137,7 +1137,7 @@ class RL11 extends Component {
var sector = null, ibSector;
if (!disk) {
err = PDP11.RL11.ERRC.HNF; // TODO: Review
err = RL11.ERRC.HNF; // TODO: Review
nWords = 0;
}
@ -1150,7 +1150,7 @@ class RL11 extends Component {
*/
var data = this.bus.getWordDirect(this.cpu.mapUnibus(addr));
if (this.bus.checkFault()) {
err = PDP11.RL11.ERRC.NXM;
err = RL11.ERRC.NXM;
break;
}
if (DEBUG && this.messageEnabled(MessagesPDP11.WRITE)) {
@ -1167,13 +1167,13 @@ class RL11 extends Component {
if (!sector) {
sector = disk.seek(iCylinder, iHead, iSector + 1, true);
if (!sector) {
err = PDP11.RL11.ERRC.HNF;
err = RL11.ERRC.HNF;
break;
}
ibSector = 0;
}
if (!disk.write(sector, ibSector++, data & 0xff) || !disk.write(sector, ibSector++, data >> 8)) {
err = PDP11.RL11.ERRC.HNF;
err = RL11.ERRC.HNF;
break;
}
if (ibSector >= disk.cbSector) {
@ -1183,7 +1183,7 @@ class RL11 extends Component {
if (++iHead >= disk.nHeads) {
iHead = 0;
if (++iCylinder >= disk.nCylinders) {
err = PDP11.RL11.ERRC.HNF;
err = RL11.ERRC.HNF;
break;
}
}
@ -1213,13 +1213,13 @@ class RL11 extends Component {
doneReadWrite(err, iCylinder, iHead, iSector, nWords, addr)
{
this.regRLBA = addr & 0xffff;
this.regRLCS = (this.regRLCS & ~PDP11.RL11.RLCS.BAE) | ((addr >> (16 - PDP11.RL11.RLCS.SHIFT.BAE)) & PDP11.RL11.RLCS.BAE);
this.regRLBE = (addr >> 16) & PDP11.RL11.RLBE.MASK; // 22 bit mode
this.regRLDA = (iCylinder << PDP11.RL11.RLDA.SHIFT.RW_CA) | (iHead? PDP11.RL11.RLDA.RW_HS : 0) | (iSector & PDP11.RL11.RLDA.RW_SA);
this.regRLCS = (this.regRLCS & ~RL11.RLCS.BAE) | ((addr >> (16 - RL11.RLCS.SHIFT.BAE)) & RL11.RLCS.BAE);
this.regRLBE = (addr >> 16) & RL11.RLBE.MASK; // 22 bit mode
this.regRLDA = (iCylinder << RL11.RLDA.SHIFT.RW_CA) | (iHead? RL11.RLDA.RW_HS : 0) | (iSector & RL11.RLDA.RW_SA);
this.tmpRLDA = this.regRLDA;
this.regRLMP = (0x10000 - nWords) & 0xffff;
if (err) {
this.regRLCS |= err | PDP11.RL11.RLCS.ERR;
this.regRLCS |= err | RL11.RLCS.ERR;
}
return true;
}
@ -1233,7 +1233,7 @@ class RL11 extends Component {
*/
readRLCS(addr)
{
return this.regRLCS & PDP11.RL11.RLCS.RMASK;
return this.regRLCS & RL11.RLCS.RMASK;
}
/**
@ -1245,9 +1245,9 @@ class RL11 extends Component {
*/
writeRLCS(data, addr)
{
this.regRLCS = (this.regRLCS & ~PDP11.RL11.RLCS.WMASK) | (data & PDP11.RL11.RLCS.WMASK);
this.regRLBE = (this.regRLBE & 0x3C) | ((data & PDP11.RL11.RLCS.BAE) >> PDP11.RL11.RLCS.SHIFT.BAE);
if (!(this.regRLCS & PDP11.RL11.RLCS.CRDY)) this.processCommand();
this.regRLCS = (this.regRLCS & ~RL11.RLCS.WMASK) | (data & RL11.RLCS.WMASK);
this.regRLBE = (this.regRLBE & 0x3C) | ((data & RL11.RLCS.BAE) >> RL11.RLCS.SHIFT.BAE);
if (!(this.regRLCS & RL11.RLCS.CRDY)) this.processCommand();
}
/**
@ -1271,7 +1271,7 @@ class RL11 extends Component {
*/
writeRLBA(data, addr)
{
this.regRLBA = data & PDP11.RL11.RLBA.WMASK;
this.regRLBA = data & RL11.RLBA.WMASK;
}
/**
@ -1349,8 +1349,8 @@ class RL11 extends Component {
*/
writeRLBE(data, addr)
{
this.regRLBE = data & PDP11.RL11.RLBE.MASK;
this.regRLCS = (this.regRLCS & ~PDP11.RL11.RLCS.BAE) | ((this.regRLBE & 0x3) << PDP11.RL11.RLCS.SHIFT.BAE);
this.regRLBE = data & RL11.RLBE.MASK;
this.regRLCS = (this.regRLCS & ~RL11.RLCS.BAE) | ((this.regRLBE & 0x3) << RL11.RLCS.SHIFT.BAE);
}
}
@ -1363,6 +1363,19 @@ RL11.SOURCE = {
REMOTE: "??"
};
/*
* Alias RL11 definitions as class constants
*/
RL11.PRI = PDP11.RL11.PRI;
RL11.VEC = PDP11.RL11.VEC;
RL11.RLCS = PDP11.RL11.RLCS; // 174400: Control Status Register
RL11.RLBA = PDP11.RL11.RLBA; // 174402: Bus Address Register
RL11.RLDA = PDP11.RL11.RLDA; // 174404: Disk Address Register
RL11.RLMP = PDP11.RL11.RLMP; // 177406: Multi-Purpose Register
RL11.RLBE = PDP11.RL11.RLBE; // 174410: Bus (Address) Extension Register
RL11.ERRC = PDP11.RL11.ERRC; // NOTE: These error codes are pre-shifted to read/write directly from/to RLCS.ERRC
RL11.FUNC = PDP11.RL11.FUNC; // NOTE: These function codes are pre-shifted to read/write directly from/to RLCS.FUNC
/*
* ES6 ALERT: As you can see below, I've finally started using computed property names.
*/

View file

@ -33,7 +33,6 @@ if (NODE) {
var http = require("http");
var path = require("path");
var url = require("url");
var Str = require("../../shared/es6/strlib");
}
class Net {

View file

@ -28,9 +28,11 @@
"use strict";
var Str = require("../../shared/es6/strlib");
var Web = require("../../shared/es6/weblib");
var Component = require("../../shared/es6/component");
if (NODE) {
var Str = require("../../shared/es6/strlib");
var Web = require("../../shared/es6/weblib");
var Component = require("../../shared/es6/component");
}
/**
* savePC(idMachine, sPCJSFile, callback)

View file

@ -28,8 +28,10 @@
"use strict";
var Web = require("../../shared/es6/weblib");
var Component = require("../../shared/es6/component");
if (NODE) {
var Web = require("../../shared/es6/weblib");
var Component = require("../../shared/es6/component");
}
class State {
/**

View file

@ -341,7 +341,19 @@ net.getResource = function(sURL, dataPost, fAsync, done)
var nErrorCode = -1, sResource = null, response = null;
if (net.isRemote(sURL)) {
console.log('net.getResource("' + sURL + '"): unimplemented');
/*
* TODO: This code is nothing more than a band-aid. It assumes the URL uses "http:"
* (hence the call to getFile(), which only supports HTTP GET operations), it assumes
* the requested data is UTF-8 string data (which is normally the case, because nearly
* all our requests are for JSON files), it doesn't deal with dataPost, it assumes
* that fAsync is true, and it performs very simplistic error code mapping.
*
* But, it gets the job done for what little we actually ask of it, when our machines
* are running in the Node environment.
*/
Net.getFile(sURL, "utf8", function(err, status, data) {
if (done) done(sURL, data, err? status : 0);
});
} else {
if (!sServerRoot) {
sServerRoot = path.join(path.dirname(fs.realpathSync(__filename)), "../../../");

View file

@ -32,342 +32,343 @@
http://pcjs.org/modules/shared/es6/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/debugger.js (C) Jeff Parsons 2012-2017
*/
var h;function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da<ca.length-1;da++){var ea=ca[da];ea in ba||(ba[ea]={});ba=ba[ea]}var ga=ca[ca.length-1],ha=ba[ga],ia=ha?ha:function(a){return Math.log(a)/Math.LN2};
ia!=ha&&null!=ia&&aa(ba,ga,{configurable:!0,writable:!0,value:ia});
var ja={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},ka={qg:0,ud:1,sg:2,tg:3,ug:4,vg:5,wg:6,xg:7,Lc:8,yg:9,vd:10,zg:11,Ag:12,wd:13,Bg:14,Cg:15,Dg:16,Eg:17,Fg:18,Gg:19,Hg:20,Ig:21,Jg:22,Kg:23,Lg:24,Mg:25,Ng:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ia(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}for(var ja=ba,ka=["Math","log2"],la=0;la<ka.length-1;la++){var ma=ka[la];ma in ja||(ja[ma]={});ja=ja[ma]}var na=ka[ka.length-1],oa=ja[na],pa=oa?oa:function(a){return Math.log(a)/Math.LN2};pa!=oa&&null!=pa&&aa(ja,na,{configurable:!0,writable:!0,value:pa});
var qa={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},sa={qg:0,ud:1,sg:2,tg:3,ug:4,vg:5,wg:6,xg:7,Lc:8,yg:9,vd:10,zg:11,Ag:12,wd:13,Bg:14,Cg:15,Dg:16,Eg:17,Fg:18,Gg:19,Hg:20,Ig:21,Jg:22,Kg:23,Lg:24,Mg:25,Ng:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ic:65,pg:66,rg:67,Og:68,E:69,Pg:70,Qg:71,Rg:72,Sg:73,Tg:74,Ug:75,Vg:76,Wg:77,Xg:78,Yg:79,Zg:80,Q:81,$g:82,ah:83,bh:84,dh:85,eh:86,fh:87,gh:88,hh:89,Gd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ih:97,jh:98,kh:99,d:100,e:101,mh:102,nh:103,oh:104,ph:105,sh:106,k:107,th:108,uh:109,n:110,vh:111,p:112,q:113,r:114,wh:115,t:116,yh:117,zh:118,Ah:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,xd:127};
function la(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function ma(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function q(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
function na(a){var b=2,c="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode(a%10+48)+c,a/=10;return c}function v(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function w(a){return v(a,4,!0)}
function x(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(a,b){return-1!==a.indexOf(b,a.length-b.length)}function qa(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ta(a,b){return(a+" ").slice(0,b)}
function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function xa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}function ya(){return Date.now()||+new Date}function za(){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 Aa(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
function ta(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function ua(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function q(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
function va(a){var b=2,c="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode(a%10+48)+c,a/=10;return c}function v(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function w(a){return v(a,4,!0)}
function x(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function wa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ya(a,b){return-1!==a.indexOf(b,a.length-b.length)}function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}
function Ca(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Da={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function Ea(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}function Fa(){return Date.now()||+new Date}function Ka(){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 La(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ba(a,b){var c,d={ba:null,ea:null,wa:null,va:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.wa=g.load;d.va=g.exec;if(e=g.bytes)d.ba=e;else if(e=g.words)for(d.ba=Array(2*e.length),f=c=0;c<e.length;c++)d.ba[f++]=e[c]&255,d.ba[f++]=e[c]>>8&255;else if(e=g.data)for(d.ba=Array(4*e.length),f=c=0;c<e.length;c++)d.ba[f++]=
e[c]&255,d.ba[f++]=e[c]>>8&255,d.ba[f++]=e[c]>>16&255,d.ba[f++]=e[c]>>24&255;else d.ba=g;d.ea=g.symbols;d.ba.length?1==d.ba.length&&(y(d.ba[0]),d=null):(y("Empty resource: "+a),d=null)}catch(k){y("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){y("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ba=e)}return d}
function Ca(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Da(a){window&&window.alert(a)}function Ea(a){var b=!1;window&&(b=window.confirm(a));return b}function Fa(){if(null==Ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ka=a}return Ka}
function La(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}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)}return!1}
function Oa(a){if(!Pa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Pa=c}return Pa[a]}
function Qa(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function Ra(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Sa(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}}function Ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Ya.init.push(a)}
function Za(a){if($a)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Da&&Da(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ab(a){!$a&&a?($a=!0,bb&&cb("init"),db&&cb("show")):$a=a}function cb(a){Ya[a]&&Za(Ya[a])}var Pa=null,Ya={init:[],show:[],exit:[]},bb=!1,db=!1,$a=!0,Ka=null;Ta("onload",function(){bb=!0;Za(Ya.init)});Ta("onpageshow",function(){db=!0;Za(Ya.show)});
Ta(Na("Opera")||Na("iOS")?"onunload":"onbeforeunload",function(){Za(Ya.exit)});function A(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Rc=b.comment;this.Fd=b;this.exports={};a=this.id.indexOf(".");0>a?this.kb=this.id:(this.lb=this.id.substr(0,a),this.kb=this.id.substr(a+1));this.A={ready:!1,cb:!1,zc:!1,fa:!1,error:!1};this.bc=null;this.A.error=!1;this.B={};this.ga=d||0;this.F=this.f=this.D=this.J=this.Pa=null;eb.push(this)}
function gb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function y(a){Da&&Da(a)}function nb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<eb.length;b++){var d=eb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ob(a){if(void 0!==a){var b;for(b=0;b<eb.length;b++)if(eb[b].id===a)return eb[b]}return null}
function pb(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<eb.length;d++)if(c)c==eb[d]&&(c=null);else if(!(a!=eb[d].type||b&&eb[d].id.indexOf(b)))return eb[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){y(c.message+" ("+a+")")}return b}
function qb(a,b){var c=E;b=G(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=B(g))&&k.binding&&a.oa(k.type,k.binding,g,k.value),m=l.length}}}}
function G(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=A.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.oa=function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Pa=this.B[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.M=function(a){this.u(a,this.kb)}),!0;default:return!1}};h.log=function(){};h.u=function(){};
h.status=function(a){this.u(this.kb+": "+a)};h.M=function(a,b,c){c=c||this.type;!b&&Da&&Da((c?c+": ":"")+a)};function rb(a,b){a.A.error=!0;a.M(b)}function sb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function tb(a,b){b&&(a.A.ready?b():a.bc=b);return a.A.ready}function H(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.bc,a.bc=null,b&&b()))}function ub(a,b){a.A.cb&&(b?a.A.zc=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.cb}
function vb(a,b){if(a.A.zc)return a.A.cb=!1,a.A.zc=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.cb=b;return a.A.cb}h.sa=function(){return this.A.fa=!0};h.Ca=function(a,b){b&&(this.A.fa=!1);return!0};function I(a,b){if(a.F){a===a.F?b|=0:b=b||a.ga;var c=a.F.ga&b;return!!b&&c===b||!!(c&a.F.cd)}return!1}function J(a,b,c,d){a.F&&(!0===c||I(a,c|0))&&a.F.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var mb=window?window.PCjs.Machines:{},eb=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
function Ma(a,b){var c,d={ca:null,ea:null,wa:null,va:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.wa=g.load;d.va=g.exec;if(e=g.bytes)d.ca=e;else if(e=g.words)for(d.ca=Array(2*e.length),f=c=0;c<e.length;c++)d.ca[f++]=e[c]&255,d.ca[f++]=e[c]>>8&255;else if(e=g.data)for(d.ca=Array(4*e.length),f=c=0;c<e.length;c++)d.ca[f++]=
e[c]&255,d.ca[f++]=e[c]>>8&255,d.ca[f++]=e[c]>>16&255,d.ca[f++]=e[c]>>24&255;else d.ca=g;d.ea=g.symbols;d.ca.length?1==d.ca.length&&(y(d.ca[0]),d=null):(y("Empty resource: "+a),d=null)}catch(k){y("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){y("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ca=e)}return d}
function Na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Oa(a){window&&window.alert(a)}function Pa(a){var b=!1;window&&(b=window.confirm(a));return b}function Qa(){if(null==Ra){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}Ra=a}return Ra}
function Sa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ta(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Xa(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)}return!1}
function Ya(a){if(!Za){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Za=c}return Za[a]}
function $a(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function ab(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function bb(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}}function cb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function db(a){eb.init.push(a)}
function fb(a){if(hb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Oa&&Oa(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function nb(a){!hb&&a?(hb=!0,ob&&pb("init"),qb&&pb("show")):hb=a}function pb(a){eb[a]&&fb(eb[a])}var Za=null,eb={init:[],show:[],exit:[]},ob=!1,qb=!1,hb=!0,Ra=null;cb("onload",function(){ob=!0;fb(eb.init)});cb("onpageshow",function(){qb=!0;fb(eb.show)});
cb(Xa("Opera")||Xa("iOS")?"onunload":"onbeforeunload",function(){fb(eb.exit)});function A(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Rc=b.comment;this.Fd=b;this.exports={};a=this.id.indexOf(".");0>a?this.kb=this.id:(this.lb=this.id.substr(0,a),this.kb=this.id.substr(a+1));this.A={ready:!1,eb:!1,zc:!1,fa:!1,error:!1};this.dc=null;this.A.error=!1;this.C={};this.ha=d||0;this.F=this.f=this.D=this.J=this.Pa=null;rb.push(this)}
function sb(a,b,c){tb[a]&&b&&(tb[a][b]=c)}function y(a){Oa&&Oa(a)}function ub(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<rb.length;b++){var d=rb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function vb(a){if(void 0!==a){var b;for(b=0;b<rb.length;b++)if(rb[b].id===a)return rb[b]}return null}
function wb(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<rb.length;d++)if(c)c==rb[d]&&(c=null);else if(!(a!=rb[d].type||b&&rb[d].id.indexOf(b)))return rb[d]}return null}function xb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){y(c.message+" ("+a+")")}return b}
function yb(a,b){var c=B;b=E(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=xb(g))&&k.binding&&a.pa(k.type,k.binding,g,k.value),m=l.length}}}}
function E(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=A.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.pa=function(a,b,c){switch(b){case "clear":return this.C[b]||(this.C[b]=c,c.onclick=function(a){return function(){a.C.print&&(a.C.print.value="")}}(this)),!0;case "print":return this.C[b]||(this.Pa=this.C[b]=c,c.value="",this.u=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.O=function(a){this.u(a,this.kb)}),!0;default:return!1}};h.log=function(){};h.u=function(){};
h.status=function(a){this.u(this.kb+": "+a)};h.O=function(a,b,c){c=c||this.type;!b&&Oa&&Oa((c?c+": ":"")+a)};function zb(a,b){a.A.error=!0;a.O(b)}function Ab(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Bb(a,b){b&&(a.A.ready?b():a.dc=b);return a.A.ready}function G(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.dc,a.dc=null,b&&b()))}function Cb(a,b){a.A.eb&&(b?a.A.zc=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.eb}
function Db(a,b){if(a.A.zc)return a.A.eb=!1,a.A.zc=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.eb=b;return a.A.eb}h.za=function(){return this.A.fa=!0};h.ya=function(a,b){b&&(this.A.fa=!1);return!0};function H(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.cd)}return!1}function I(a,b,c,d){a.F&&(!0===c||H(a,c|0))&&a.F.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var tb=window?window.PCjs.Machines:{},rb=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var wb="undefined"!==typeof ArrayBuffer,E="pdp11",xb="PDPjs",yb=!1,zb=wb,Ab=!0,Bb=!0,Cb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Db={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},E="pdp11",xb="PDPjs",yb=!1,zb=wb,Bb=Ab=!0,Eb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,
var Eb="undefined"!==typeof ArrayBuffer,B="pdp11",Fb="PDPjs",Gb=!1,Hb=Eb,Ob=!0,Pb=!0,Qb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Rb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},B="pdp11",Fb="PDPjs",Gb=!1,Hb=Eb,Pb=Ob=!0,Sb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,
kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Fb(a,b){A.call(this,"Panel",a,0,512);this.j=this.v=0;this.I=b;this.ta=this.i=this.Va=this.tb=0;this.C=this.G=this.w=!1;this.H=Mb;this.g={};this.b={START:[1,1,!0,!1,this.Xd],STEP:[1,1,!1,!1,this.Yd],ENABLE:[1,1,!1,!1,this.Td],CONT:[1,1,!0,!1,this.Rd],DEP:[0,0,!0,!1,this.Sd],EXAM:[1,1,!0,!1,this.Ud],LOAD:[1,1,!0,!1,this.Wd],TEST:[0,0,!0,!1,this.Vd]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Zd,a];this.F=this.f=this.D=this.J=null;H(this)}p(Fb,A);h=Fb.prototype;h.reset=function(){this.stop()};
h.oa=function(a,b,c,d){if(this.J&&this.J.oa(a,b,c,d)||this.f&&this.f.oa(a,b,c,d)||this.F&&this.F.oa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.B[b]=c,this.v++,!0;default:return"led"==a||"rled"==a?(this.B[b]=c,this.g[b]=d?1:0,this.v++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.B[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Nb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Ob(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Nb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Ob(a,b)}}(this,b),!0):A.prototype.oa.call(this,a,b,c,d)}};h.ra=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;Pb(b,this,Qb);Rb(b,this.reset.bind(this));Sb(this);Tb(this)};h.sa=function(a,b){b||(this.I&&Ub(),this.reset());return!0};h.Ca=function(){return!0};
function Vb(a,b,c){if(a=a.B[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Sb(a,b){for(var c in a.g)Vb(a,c,null!=b?b:a.g[c])}function Wb(a,b,c){if(a=a.B[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Tb(a){for(var b in a.b)Wb(a,b,a.b[b][1])}function Xb(a,b,c,d){a.B[b]&&(void 0===c&&(rb(a,"Value for "+b+" is invalid"),a.f.Z()),c=8==(a.F&&a.F.xa||8)?q(c,d):v(c,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
function Nb(a,b){var c=a.b[b];Wb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=Yb&&(a.C=b==Zb,a.G=b==$b)}function Ob(a,b){var c=a.b[b];c[2]&&c[3]&&(Wb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Xd=function(a){a||this.f.A.U||(a=this.f,a.D.reset(),ac(a),this.b[bc]&&this.b[bc][1]&&cc(this.f))};h.Yd=function(){};h.Td=function(a){a||this.f.Z()};
h.Rd=function(a){if(!a&&!this.f.A.U)if(this.b[bc]&&this.b[bc][1])cc(this.f);else{if((a=this.F)&&!ub(a,!0))vb(a,!0),dc(a,0,null),vb(a,!1);else try{var b=this.f.$b(1);0<b&&(ec(this.f,b),fc(this.f,b,!0),gc(this.f,b))}catch(c){"number"!=typeof c&&rb(this.f,c.stack||c.message)}this.stop();this.J&&L(this.J)}};h.Sd=function(a){if(a&&!this.f.A.U)if(this.C&&hc(this),a=ic(this,this.Va),this.H==Mb)jc(this.D,this.ta,a);else{var b=this.f,c=this.ta;b.ma++;b.D.Lb(kc(b,c,4),a);b.ma--}};
h.Ud=function(a){a||this.f.A.U||(this.G&&hc(this),a=this.H==Mb?lc(this.D,this.ta):mc(this.f,this.ta),ic(this,a))};h.Wd=function(a){a||this.f.A.U||nc(this,this.Va)};h.Vd=function(a){a?(this.w=!0,Sb(this,!0)):(this.w=!1,Sb(this),oc(this,0))};h.Zd=function(a,b){this.Va=a?this.Va|1<<b:this.Va&~(1<<b)};function hc(a){var b=1145>a.f.Aa?8:16,c=65472<=a.ta&&a.ta<65472+b,b=c?1:2,c=c?15:a.D.I;a.b[Yb]&&a.b[Yb][1]||(b=-b);nc(a,a.ta&~c|a.ta+b&c)}
function nc(a,b){a.ta=b&a.D.I;b=a.ta;for(var c=0;22>c;c++)pc(a,"A"+c,b&1<<c)}function ic(a,b){a.i=b&65535;b=a.i;for(var c=0;16>c;c++)pc(a,"D"+c,b&1<<c);return a.i}function pc(a,b,c){a.g[b]=c;a.w||Vb(a,b,c)}function qc(a){return void 0!==a.B[Cc]}function oc(a,b){if(qc(a)){a.Va=b;for(var c=0;22>c;c++)a.b["S"+c][1]=b&1<<c?1:0;Tb(a)}}h.stop=function(){nc(this,this.f.g[7])};h.Fc=function(a){this.ta=a};h.setData=function(a,b){b?this.tb=a:this.i=a};h.de=function(a,b){return(b?this.tb:this.Va)&65535};
h.pf=function(a){this.tb=a};function Ub(){for(var a=G(document,E,"panel"),b=0;b<a.length;b++){var c=a[b],d=B(c),e=ob(d.id);e||(e=new Fb(d,!0));qb(e,c)}}var Mb=7,Cc="S0",Zb="DEP",bc="ENABLE",$b="EXAM",Yb="STEP",Dc={},Qb=(Dc[65400]=[null,null,Fb.prototype.de,Fb.prototype.pf,"CNSW"],Dc);Xa(Ub);
function Ec(a,b,c){A.call(this,"Bus",a,0,16);this.f=b;this.F=c;this.V=+a.busWidth||16;this.N=1<<this.V;this.I=this.N-1;this.j=Fc;this.g=Math.log2(this.j);this.S=this.j>>2;this.i=this.j-1;this.H=this.N/this.j|0;this.T=this.H-1;this.Ma=[];this.ia=0;this.G=!1;this.O=[];this.Hd=[Gc,Hc,Ic,Jc];this.b=this.v=[];this.C=this.L=this.w=this.P=this.R=0;a=new M(this);Kc(a,this.F);this.b=Array(this.H);this.v=Array(this.H);for(b=0;b<this.H;b++)this.b[b]=this.v[b]=a;this.C=this.N-Fc;Lc(this,this.C,Fc,Mc,this);this.R=
this.P=(this.C&this.I)>>>this.g;this.L=0;this.w=this.I;H(this)}p(Ec,A);function Nc(a,b){if(b!=a.L){for(var c=0;c<a.H;c++)a.v[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Fc,a.R=(b&a.w)>>>a.g,a.v[a.R]=a.b[a.P])}}h=Ec.prototype;h.reset=function(){for(var a=0;a<this.O.length;a++)this.O[a]();Nc(this,16)};h.sa=function(a,b){b||this.reset();return!0};
function Lc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Hb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Hb){n=l.size-(f-m);n>g&&(n=g);l.Hb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return Oc(Pc,f,g)}f=new M(a,f,n,a.j,d,e);Kc(f,a.F,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Qc[d]+" at "+q(b)),!0):Oc(Rc,b,c)}h.Jc=function(a){return this.v[(a&this.w)>>>this.g].sb(a&this.i,a)};
h.Zb=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Bb||b!=this.i?this.v[c].ja(b,a):this.v[c++].sb(b,a)|this.v[c&this.T].sb(0,a+1)<<8};h.Kc=function(a,b){this.v[(a&this.w)>>>this.g].ub(a&this.i,b,a)};h.Lb=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Bb||c!=this.i?this.v[d].vb(c,b,a):(this.v[d++].ub(c,b&255,a),this.v[d&this.T].ub(0,b>>8&255,a+1))};function Sc(a,b){return a.b[(b&a.I)>>>a.g]}
function lc(a,b){var c;a.G=!1;a.ia++;var d=b&a.i,e=Sc(a,b);Bb||d!=a.i?c=e.C(d,b):c=e.j(d,b)|Sc(a,b+1).j(0,b+1)<<8;a.ia--;return c}function Tc(a,b,c){a.G=!1;a.ia++;Sc(a,b).D(b&a.i,c&255,b);a.ia--}function jc(a,b,c){a.G=!1;a.ia++;var d=b&a.i,e=Sc(a,b);Bb||d!=a.i?e.G(d,c&65535,b):(e.D(d,c&255,b),Sc(a,b+1).D(0,c>>8&255,b+1));a.ia--}
function Uc(a){for(var b=0,c=[],d=0;d<a.H;d++){var e=a.b[d];if(e.Ta||e.Nd){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function Vc(a){for(var b=Wc,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Hb)}return c}
function Xc(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&Yc;if(void 0!==a.Ma[n])return Da&&Da("I/O address already registered: "+v(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ma[n]=[d,e,f,g,r,k||16,!1]}return!0}
function Pb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.Aa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],u=g[5]||1,t=0;t<u;t++,f+=2)if(r&&1<u&&(r=g[4]+t),!Xc(a,f,f,k,l,m,n,g[7]||b.ga,r||b.kb))return!1}}return!0}
function Rb(a,b){a.O.push(b)}h.La=function(a,b,c){this.G=!0;this.ia||(this.F&&I(this.F,4)&&J(this.F,"memory fault ("+c+") on "+O(this.F,a),!0,!0),b&&(this.f.R|=b),this.f.ka(4,0,a))};function Zc(a){var b=a.G;a.G=!1;return b}function Oc(a,b,c){y("Memory block error ("+a+": "+v(b)+","+v(c)+")");return!1}var Fc=8192,Yc=Fc-1,Pc=1,Rc=2;
function Gc(a,b){var c=-1,d=this.controller,e=d.Ma[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ma[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&I(this.f,16|e[5])&&J(this.f,e[4]+".readByte("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ia),c;d.La(b,16,3);c=255;this.f&&I(this.f,16)&&J(this.f,"warning: unconverted read access to byte @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ia);return c}
function Hc(a,b,c){var d=!1,e=this.controller,f=e.Ma[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ma[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&I(this.f,16|f[5])&&J(this.f,f[4]+".writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ia):(e.La(c,16,5),this.f&&I(this.f,16)&&J(this.f,"warning: unconverted write access to byte @"+O(this.f,c)+": "+O(this.f,
b),!0,!e.ia))}function Ic(a,b){var c=-1,d=this.controller;a=d.Ma[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&I(this.f,16|a[5])&&J(this.f,a[4]+".readWord("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ia),c;d.La(b,16,2);c=65535;this.f&&I(this.f,16)&&J(this.f,"warning: unconverted read access to word @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ia);return c}
function Jc(a,b,c){var d=!1,e=this.controller;a=e.Ma[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&I(this.f,16|a[5])&&J(this.f,a[4]+".writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ia):(e.La(c,16,4),this.f&&I(this.f,16)&&J(this.f,"warning: unconverted write access to word @"+O(this.f,c)+": "+O(this.f,b),!0,!e.ia))}function P(a){A.call(this,"Device",a,0,256);this.b={lh:0,Gc:-1}}p(P,A);h=P.prototype;
h.ra=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.F=d;var e=this;this.b.Gc=$c(c,function(){e.b.Eb|=128;e.b.Eb&64&&ad(e.f,e.b.eb);e.J&&L(e.J,1);bd(e.f,e.b.Gc,1E3/60)});this.b.eb=cd(c,64,6,524288);Pb(b,this,dd);Rb(b,this.reset.bind(this));d&&ed(d,64,function(a){var b=e.f;fd(e,"KIPDR",b.C[0],0,a[0]);fd(e,"KDPDR",b.C[0],8,a[0]);fd(e,"KIPAR",b.N[0],0,a[0]);fd(e,"KDPAR",b.N[0],8,a[0],!0);fd(e,"SIPDR",b.C[1],0,a[0]);fd(e,"SDPDR",b.C[1],8,a[0]);fd(e,"SIPAR",b.N[1],0,a[0]);fd(e,"SDPAR",b.N[1],8,a[0],
!0);fd(e,"UIPDR",b.C[3],0,a[0]);fd(e,"UDPDR",b.C[3],8,a[0]);fd(e,"UIPAR",b.N[3],0,a[0]);fd(e,"UDPAR",b.N[3],8,a[0],!0);b.T&32&&fd(e,"UNIMAP",b.Sa,-1,a[0])});H(this)};function fd(a,b,c,d,e,f){a=a.F;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",k=!1,l=0,m=8;0>d&&(e=c.length,d=0,k=!0,l=3,m=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(k?"["+na(n)+"]":"")+":"),g+=" "+O(a,c[d+n],l);a.u(g+(f?"\n":""))}}h.reset=function(){this.b.Eb=128;bd(this.f,this.b.Gc,1E3/60,!0)};h.ke=function(){return this.b.Eb};
h.wf=function(a){this.b.Eb=a&192;this.b.Eb&64||gd(this.f,this.b.eb)};h.me=function(){return hd(this.f)};h.yf=function(a){id(this.f,a&-129|this.f.S&128)};h.ne=function(){return jd(this.f)};h.oe=function(){return kd(this.f)};h.pe=function(){return this.f.T};h.zf=function(a){ld(this.f,a)};h.Xe=function(a){a=a>>1&63;var b=this.f.Sa[a>>1];return a&1?b>>16:b&65535};h.gg=function(a,b){b=b>>1&63;var c=b>>1;this.f.Sa[c]=b&1?this.f.Sa[c]&65535|(a&63)<<16:this.f.Sa[c]&-65536|a&65534};
h.Qe=function(a){return this.f.C[1][a>>1&7]};h.$f=function(a,b){this.f.C[1][b>>1&7]=a&65295};h.Oe=function(a){return this.f.C[1][(a>>1&7)+8]};h.Yf=function(a,b){this.f.C[1][(b>>1&7)+8]=a&65295};h.Pe=function(a){return this.f.N[1][a>>1&7]};h.Zf=function(a,b){b=b>>1&7;this.f.N[1][b]=a;this.f.C[1][b]&=65295};h.Ne=function(a){return this.f.N[1][(a>>1&7)+8]};h.Xf=function(a,b){b=(b>>1&7)+8;this.f.N[1][b]=a;this.f.C[1][b]&=65295};h.je=function(a){return this.f.C[0][a>>1&7]};
h.vf=function(a,b){this.f.C[0][b>>1&7]=a&65295};h.he=function(a){return this.f.C[0][(a>>1&7)+8]};h.tf=function(a,b){this.f.C[0][(b>>1&7)+8]=a&65295};h.ie=function(a){return this.f.N[0][a>>1&7]};h.uf=function(a,b){b=b>>1&7;this.f.N[0][b]=a;this.f.C[0][b]&=65295};h.ge=function(a){return this.f.N[0][(a>>1&7)+8]};h.sf=function(a,b){b=(b>>1&7)+8;this.f.N[0][b]=a;this.f.C[0][b]&=65295};h.We=function(a){return this.f.C[3][a>>1&7]};h.fg=function(a,b){this.f.C[3][b>>1&7]=a&65295};
h.Ue=function(a){return this.f.C[3][(a>>1&7)+8]};h.dg=function(a,b){this.f.C[3][(b>>1&7)+8]=a&65295};h.Ve=function(a){return this.f.N[3][a>>1&7]};h.eg=function(a,b){b=b>>1&7;this.f.N[3][b]=a;this.f.C[3][b]&=65295};h.Te=function(a){return this.f.N[3][(a>>1&7)+8]};h.cg=function(a,b){b=(b>>1&7)+8;this.f.N[3][b]=a;this.f.C[3][b]&=65295};h.Fb=function(a){a&=7;return this.f.w&2048?this.f.qa[a]:this.f.g[a]};h.Jb=function(a,b){b&=7;this.f.w&2048?this.f.qa[b]=a:this.f.g[b]=a};
h.ue=function(){return this.f.w&49152?this.f.X[0]:this.f.g[6]};h.Ef=function(a){this.f.w&49152?this.f.X[0]=a:this.f.g[6]=a};h.xe=function(){return this.f.g[7]};h.Hf=function(a){this.f.g[7]=a};h.Gb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.qa[a]};h.Kb=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.qa[b]=a};h.ve=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.X[1]};h.Ff=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.X[1]=a};
h.we=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.X[3]};h.Gf=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.X[3]=a};h.fe=function(a){return this.f.nc[a-65504>>1]};h.rf=function(a,b){this.f.nc[b-65504>>1]=a};h.nd=function(a){return 65520==a?(Vc(this.D)>>6)-1:0};h.sd=function(){};h.Se=function(){return 1};h.bg=function(){};h.ee=function(){return this.f.R};h.qf=function(){this.f.R=0};h.le=function(){return this.f.mc};h.xf=function(a,b){b&1||(a&=255);this.f.mc=a};
h.qe=function(a,b){return b?0:this.f.bb};h.Af=function(a){md(this.f,a)};h.Re=function(a,b){return b?0:this.f.Ba&65280};h.ag=function(a){this.f.Ba=a|255};h.te=function(){return nd(this.f)};h.Df=function(a){od(this.f,a)};h.rd=function(a,b){I(this)&&J(this,"writeIgnored("+q(b)+"): "+q(a),!0,!0)};
var Q={},dd=(Q[61568]=[null,null,P.prototype.Xe,P.prototype.gg,"UNIMAP",64,1170],Q[62592]=[null,null,P.prototype.Qe,P.prototype.$f,"SIPDR",8,1145,64],Q[62608]=[null,null,P.prototype.Oe,P.prototype.Yf,"SDPDR",8,1145,64],Q[62624]=[null,null,P.prototype.Pe,P.prototype.Zf,"SIPAR",8,1145,64],Q[62640]=[null,null,P.prototype.Ne,P.prototype.Xf,"SDPAR",8,1145,64],Q[62656]=[null,null,P.prototype.je,P.prototype.vf,"KIPDR",8,1145,64],Q[62672]=[null,null,P.prototype.he,P.prototype.tf,"KDPDR",8,1145,64],Q[62688]=
[null,null,P.prototype.ie,P.prototype.uf,"KIPAR",8,1145,64],Q[62704]=[null,null,P.prototype.ge,P.prototype.sf,"KDPAR",8,1145,64],Q[62798]=[null,null,P.prototype.pe,P.prototype.zf,"MMR3",1,1145,64],Q[65382]=[null,null,P.prototype.ke,P.prototype.wf,"LKS"],Q[65402]=[null,null,P.prototype.me,P.prototype.yf,"MMR0",1,1145,64],Q[65404]=[null,null,P.prototype.ne,P.prototype.rd,"MMR1",1,1145,64],Q[65406]=[null,null,P.prototype.oe,P.prototype.rd,"MMR2",1,1145,64],Q[65408]=[null,null,P.prototype.We,P.prototype.fg,
"UIPDR",8,1145,64],Q[65424]=[null,null,P.prototype.Ue,P.prototype.dg,"UDPDR",8,1145,64],Q[65440]=[null,null,P.prototype.Ve,P.prototype.eg,"UIPAR",8,1145,64],Q[65456]=[null,null,P.prototype.Te,P.prototype.cg,"UDPAR",8,1145,64],Q[65472]=[null,null,P.prototype.Fb,P.prototype.Jb,"R0SET0"],Q[65473]=[null,null,P.prototype.Fb,P.prototype.Jb,"R1SET0"],Q[65474]=[null,null,P.prototype.Fb,P.prototype.Jb,"R2SET0"],Q[65475]=[null,null,P.prototype.Fb,P.prototype.Jb,"R3SET0"],Q[65476]=[null,null,P.prototype.Fb,
P.prototype.Jb,"R4SET0"],Q[65477]=[null,null,P.prototype.Fb,P.prototype.Jb,"R5SET0"],Q[65478]=[null,null,P.prototype.ue,P.prototype.Ef,"R6KERNEL"],Q[65479]=[null,null,P.prototype.xe,P.prototype.Hf,"R7KERNEL"],Q[65480]=[null,null,P.prototype.Gb,P.prototype.Kb,"R0SET1",1,1145],Q[65481]=[null,null,P.prototype.Gb,P.prototype.Kb,"R1SET1",1,1145],Q[65482]=[null,null,P.prototype.Gb,P.prototype.Kb,"R2SET1",1,1145],Q[65483]=[null,null,P.prototype.Gb,P.prototype.Kb,"R3SET1",1,1145],Q[65484]=[null,null,P.prototype.Gb,
P.prototype.Kb,"R4SET1",1,1145],Q[65485]=[null,null,P.prototype.Gb,P.prototype.Kb,"R5SET1",1,1145],Q[65486]=[null,null,P.prototype.ve,P.prototype.Ff,"R6SUPER",1,1145],Q[65487]=[null,null,P.prototype.we,P.prototype.Gf,"R6USER",1,1145],Q[65504]=[null,null,P.prototype.fe,P.prototype.rf,"CTRL",8,1170],Q[65520]=[null,null,P.prototype.nd,P.prototype.sd,"LSIZE",1,1170],Q[65522]=[null,null,P.prototype.nd,P.prototype.sd,"HSIZE",1,1170],Q[65524]=[null,null,P.prototype.Se,P.prototype.bg,"SYSID",1,1170],Q[65526]=
function Tb(a,b){A.call(this,"Panel",a,0,512);this.j=this.v=0;this.I=b;this.ua=this.i=this.Ya=this.vb=0;this.B=this.G=this.w=!1;this.H=Ub;this.g={};this.b={START:[1,1,!0,!1,this.Xd],STEP:[1,1,!1,!1,this.Yd],ENABLE:[1,1,!1,!1,this.Td],CONT:[1,1,!0,!1,this.Rd],DEP:[0,0,!0,!1,this.Sd],EXAM:[1,1,!0,!1,this.Ud],LOAD:[1,1,!0,!1,this.Wd],TEST:[0,0,!0,!1,this.Vd]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Zd,a];this.F=this.f=this.D=this.J=null;G(this)}p(Tb,A);h=Tb.prototype;h.reset=function(){this.stop()};
h.pa=function(a,b,c,d){if(this.J&&this.J.pa(a,b,c,d)||this.f&&this.f.pa(a,b,c,d)||this.F&&this.F.pa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.C[b]=c,this.v++,!0;default:return"led"==a||"rled"==a?(this.C[b]=c,this.g[b]=d?1:0,this.v++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.C[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Vb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Wb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Vb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Wb(a,b)}}(this,b),!0):A.prototype.pa.call(this,a,b,c,d)}};h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;Xb(b,this,Yb);Zb(b,this.reset.bind(this));$b(this);ac(this)};h.za=function(a,b){b||(this.I&&bc(),this.reset());return!0};h.ya=function(){return!0};
function cc(a,b,c){if(a=a.C[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function $b(a,b){for(var c in a.g)cc(a,c,null!=b?b:a.g[c])}function dc(a,b,c){if(a=a.C[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ac(a){for(var b in a.b)dc(a,b,a.b[b][1])}function ec(a,b,c,d){a.C[b]&&(void 0===c&&(zb(a,"Value for "+b+" is invalid"),a.f.Z()),c=8==(a.F&&a.F.xa||8)?q(c,d):v(c,d),a.C[b].textContent!=c&&(a.C[b].textContent=c))}
function Vb(a,b){var c=a.b[b];dc(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=fc&&(a.B=b==gc,a.G=b==hc)}function Wb(a,b){var c=a.b[b];c[2]&&c[3]&&(dc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Xd=function(a){a||this.f.A.U||(a=this.f,a.D.reset(),ic(a),this.b[jc]&&this.b[jc][1]&&kc(this.f))};h.Yd=function(){};h.Td=function(a){a||this.f.Z()};
h.Rd=function(a){if(!a&&!this.f.A.U)if(this.b[jc]&&this.b[jc][1])kc(this.f);else{if((a=this.F)&&!Cb(a,!0))Db(a,!0),lc(a,0,null),Db(a,!1);else try{var b=this.f.bc(1);0<b&&(mc(this.f,b),nc(this.f,b,!0),oc(this.f,b))}catch(c){"number"!=typeof c&&zb(this.f,c.stack||c.message)}this.stop();this.J&&J(this.J)}};h.Sd=function(a){if(a&&!this.f.A.U)if(this.B&&pc(this),a=qc(this,this.Ya),this.H==Ub)rc(this.D,this.ua,a);else{var b=this.f,c=this.ua;b.ma++;b.D.Nb(Dc(b,c,4),a);b.ma--}};
h.Ud=function(a){a||this.f.A.U||(this.G&&pc(this),a=this.H==Ub?Ec(this.D,this.ua):Fc(this.f,this.ua),qc(this,a))};h.Wd=function(a){a||this.f.A.U||Gc(this,this.Ya)};h.Vd=function(a){a?(this.w=!0,$b(this,!0)):(this.w=!1,$b(this),Hc(this,0))};h.Zd=function(a,b){this.Ya=a?this.Ya|1<<b:this.Ya&~(1<<b)};function pc(a){var b=1140>=a.f.ba?8:16,c=65472<=a.ua&&a.ua<65472+b,b=c?1:2,c=c?15:a.D.I;a.b[fc]&&a.b[fc][1]||(b=-b);Gc(a,a.ua&~c|a.ua+b&c)}
function Gc(a,b){a.ua=b&a.D.I;b=a.ua;for(var c=0;22>c;c++)Ic(a,"A"+c,b&1<<c)}function qc(a,b){a.i=b&65535;b=a.i;for(var c=0;16>c;c++)Ic(a,"D"+c,b&1<<c);return a.i}function Ic(a,b,c){a.g[b]=c;a.w||cc(a,b,c)}function Jc(a){return void 0!==a.C[Kc]}function Hc(a,b){if(Jc(a)){a.Ya=b;for(var c=0;22>c;c++)a.b["S"+c][1]=b&1<<c?1:0;ac(a)}}h.stop=function(){Gc(this,this.f.g[7])};h.Fc=function(a){this.ua=a};h.setData=function(a,b){b?this.vb=a:this.i=a};h.de=function(a,b){return(b?this.vb:this.Ya)&65535};
h.pf=function(a){this.vb=a};function bc(){for(var a=E(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=xb(c),e=vb(d.id);e||(e=new Tb(d,!0));yb(e,c)}}var Ub=7,Kc="S0",gc="DEP",jc="ENABLE",hc="EXAM",fc="STEP",Lc={},Yb=(Lc[65400]=[null,null,Tb.prototype.de,Tb.prototype.pf,"CNSW"],Lc);db(bc);
function Mc(a,b,c){A.call(this,"Bus",a,0,16);this.f=b;this.F=c;this.V=+a.busWidth||16;this.M=1<<this.V;this.I=this.M-1;this.j=Nc;this.g=Math.log2(this.j);this.S=this.j>>2;this.i=this.j-1;this.H=this.M/this.j|0;this.T=this.H-1;this.Ma=[];this.ja=0;this.G=!1;this.N=[];this.Hd=[Oc,Pc,Qc,Rc];this.b=this.v=[];this.B=this.L=this.w=this.P=this.R=0;a=new L(this);Sc(a,this.F);this.b=Array(this.H);this.v=Array(this.H);for(b=0;b<this.H;b++)this.b[b]=this.v[b]=a;this.B=this.M-Nc;Tc(this,this.B,Nc,Uc,this);this.R=
this.P=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;G(this)}p(Mc,A);function Vc(a,b){if(b!=a.L){for(var c=0;c<a.H;c++)a.v[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Nc,a.R=(b&a.w)>>>a.g,a.v[a.R]=a.b[a.P])}}h=Mc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();Vc(this,16)};h.za=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.ya=function(a){return a?this.save():!0};h.save=function(){var a=new M(this);a.set(0,Wc(this));return a.data()};
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.S){for(var e=0,f=Array(this.S),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.b[c];if(!e||!e.restore(d)){y("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Tc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Jb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Jb){n=l.size-(f-m);n>g&&(n=g);l.Jb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return Xc(Yc,f,g)}f=new L(a,f,n,a.j,d,e);Sc(f,a.F,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Zc[d]+" at "+q(b)),!0):Xc($c,b,c)}h.Jc=function(a){return this.v[(a&this.w)>>>this.g].ub(a&this.i,a)};
h.ac=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Pb||b!=this.i?this.v[c].ka(b,a):this.v[c++].ub(b,a)|this.v[c&this.T].ub(0,a+1)<<8};h.Kc=function(a,b){this.v[(a&this.w)>>>this.g].wb(a&this.i,b,a)};h.Nb=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Pb||c!=this.i?this.v[d].xb(c,b,a):(this.v[d++].wb(c,b&255,a),this.v[d&this.T].wb(0,b>>8&255,a+1))};function ad(a,b){return a.b[(b&a.I)>>>a.g]}
function Ec(a,b){var c;a.G=!1;a.ja++;var d=b&a.i,e=ad(a,b);Pb||d!=a.i?c=e.B(d,b):c=e.j(d,b)|ad(a,b+1).j(0,b+1)<<8;a.ja--;return c}function bd(a,b,c){a.G=!1;a.ja++;ad(a,b).D(b&a.i,c&255,b);a.ja--}function rc(a,b,c){a.G=!1;a.ja++;var d=b&a.i,e=ad(a,b);Pb||d!=a.i?e.G(d,c&65535,b):(e.D(d,c&255,b),ad(a,b+1).D(0,c>>8&255,b+1));a.ja--}
function Wc(a){for(var b=0,c=[],d=0;d<a.H;d++){var e=a.b[d];if(e.Wa||e.Nd){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function cd(a){for(var b=dd,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Jb)}return c}
function ed(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&fd;if(void 0!==a.Ma[n])return Oa&&Oa("I/O address already registered: "+v(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ma[n]=[d,e,f,g,r,k||16,!1]}return!0}
function Xb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ba)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],u=g[5]||1,t=0;t<u;t++,f+=2)if(r&&1<u&&(r=g[4]+t),!ed(a,f,f,k,l,m,n,g[7]||b.ha,r||b.kb))return!1}}return!0}
function Zb(a,b){a.N.push(b)}h.La=function(a,b,c){this.G=!0;this.ja||(this.F&&H(this.F,4)&&I(this.F,"memory fault ("+c+") on "+O(this.F,a),!0,!0),b&&(this.f.R|=b),this.f.qa(4,0,a))};function gd(a){var b=a.G;a.G=!1;return b}function Xc(a,b,c){y("Memory block error ("+a+": "+v(b)+","+v(c)+")");return!1}var Nc=8192,fd=Nc-1,Yc=1,$c=2;
function Oc(a,b){var c=-1,d=this.controller,e=d.Ma[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ma[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&H(this.f,16|e[5])&&I(this.f,e[4]+".readByte("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ja),c;d.La(b,16,3);c=255;this.f&&H(this.f,16)&&I(this.f,"warning: unconverted read access to byte @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ja);return c}
function Pc(a,b,c){var d=!1,e=this.controller,f=e.Ma[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ma[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&H(this.f,16|f[5])&&I(this.f,f[4]+".writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ja):(e.La(c,16,5),this.f&&H(this.f,16)&&I(this.f,"warning: unconverted write access to byte @"+O(this.f,c)+": "+O(this.f,
b),!0,!e.ja))}function Qc(a,b){var c=-1,d=this.controller;a=d.Ma[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&H(this.f,16|a[5])&&I(this.f,a[4]+".readWord("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ja),c;d.La(b,16,2);c=65535;this.f&&H(this.f,16)&&I(this.f,"warning: unconverted read access to word @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ja);return c}
function Rc(a,b,c){var d=!1,e=this.controller;a=e.Ma[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&H(this.f,16|a[5])&&I(this.f,a[4]+".writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ja):(e.La(c,16,4),this.f&&H(this.f,16)&&I(this.f,"warning: unconverted write access to word @"+O(this.f,c)+": "+O(this.f,b),!0,!e.ja))}function P(a){A.call(this,"Device",a,0,256);this.b={lh:0,Gc:-1}}p(P,A);h=P.prototype;
h.ta=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.F=d;var e=this;this.b.Gc=hd(c,function(){e.b.Gb|=128;e.b.Gb&64&&id(e.f,e.b.fb);e.J&&J(e.J,1);jd(e.f,e.b.Gc,1E3/60)});this.b.fb=kd(c,64,6,524288);Xb(b,this,ld);Zb(b,this.reset.bind(this));d&&md(d,64,function(a){var b=e.f;nd(e,"KIPDR",b.B[0],0,a[0]);nd(e,"KDPDR",b.B[0],8,a[0]);nd(e,"KIPAR",b.M[0],0,a[0]);nd(e,"KDPAR",b.M[0],8,a[0],!0);nd(e,"SIPDR",b.B[1],0,a[0]);nd(e,"SDPDR",b.B[1],8,a[0]);nd(e,"SIPAR",b.M[1],0,a[0]);nd(e,"SDPAR",b.M[1],8,a[0],
!0);nd(e,"UIPDR",b.B[3],0,a[0]);nd(e,"UDPDR",b.B[3],8,a[0]);nd(e,"UIPAR",b.M[3],0,a[0]);nd(e,"UDPAR",b.M[3],8,a[0],!0);b.T&32&&nd(e,"UNIMAP",b.Ea,-1,a[0])});G(this)};function nd(a,b,c,d,e,f){a=a.F;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",k=!1,l=0,m=8;0>d&&(e=c.length,d=0,k=!0,l=3,m=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(k?"["+va(n)+"]":"")+":"),g+=" "+O(a,c[d+n],l);a.u(g+(f?"\n":""))}}h.reset=function(){this.b.Gb=128;jd(this.f,this.b.Gc,1E3/60,!0)};h.ke=function(){return this.b.Gb};
h.wf=function(a){this.b.Gb=a&192;this.b.Gb&64||od(this.f,this.b.fb)};h.me=function(){return pd(this.f)};h.yf=function(a){qd(this.f,a&-129|this.f.S&128)};h.ne=function(){return rd(this.f)};h.oe=function(){return sd(this.f)};h.pe=function(){return this.f.T};h.zf=function(a){td(this.f,a)};h.Xe=function(a){a=a>>1&63;var b=this.f.Ea[a>>1];return a&1?b>>16:b&65535};h.gg=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ea[c]=b&1?this.f.Ea[c]&65535|(a&63)<<16:this.f.Ea[c]&-65536|a&65534};
h.Qe=function(a){return this.f.B[1][a>>1&7]};h.$f=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Oe=function(a){return this.f.B[1][(a>>1&7)+8]};h.Yf=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Pe=function(a){return this.f.M[1][a>>1&7]};h.Zf=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Ne=function(a){return this.f.M[1][(a>>1&7)+8]};h.Xf=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.je=function(a){return this.f.B[0][a>>1&7]};
h.vf=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.he=function(a){return this.f.B[0][(a>>1&7)+8]};h.tf=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.ie=function(a){return this.f.M[0][a>>1&7]};h.uf=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.ge=function(a){return this.f.M[0][(a>>1&7)+8]};h.sf=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.We=function(a){return this.f.B[3][a>>1&7]};h.fg=function(a,b){this.f.B[3][b>>1&7]=a&65295};
h.Ue=function(a){return this.f.B[3][(a>>1&7)+8]};h.dg=function(a,b){this.f.B[3][(b>>1&7)+8]=a&65295};h.Ve=function(a){return this.f.M[3][a>>1&7]};h.eg=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Te=function(a){return this.f.M[3][(a>>1&7)+8]};h.cg=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Hb=function(a){a&=7;return this.f.w&2048?this.f.na[a]:this.f.g[a]};h.Lb=function(a,b){b&=7;this.f.w&2048?this.f.na[b]=a:this.f.g[b]=a};
h.ue=function(){return this.f.w&49152?this.f.V[0]:this.f.g[6]};h.Ef=function(a){this.f.w&49152?this.f.V[0]=a:this.f.g[6]=a};h.xe=function(){return this.f.g[7]};h.Hf=function(a){this.f.g[7]=a};h.Ib=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.na[a]};h.Mb=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.na[b]=a};h.ve=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.V[1]};h.Ff=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.V[1]=a};
h.we=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.V[3]};h.Gf=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.V[3]=a};h.fe=function(a){return this.f.Zb[a-65504>>1]};h.rf=function(a,b){this.f.Zb[b-65504>>1]=a};h.nd=function(a){return 65520==a?(cd(this.D)>>6)-1:0};h.sd=function(){};h.Se=function(){return 1};h.bg=function(){};h.ee=function(){return this.f.R};h.qf=function(){this.f.R=0};h.le=function(){return this.f.Yb};h.xf=function(a,b){b&1||(a&=255);this.f.Yb=a};
h.qe=function(a,b){return b?0:this.f.Va};h.Af=function(a){ud(this.f,a)};h.Re=function(a,b){return b?0:this.f.sa&65280};h.ag=function(a){this.f.sa=a|255};h.te=function(){return vd(this.f)};h.Df=function(a){wd(this.f,a)};h.rd=function(a,b){H(this)&&I(this,"writeIgnored("+q(b)+"): "+q(a),!0,!0)};
var Q={},ld=(Q[61568]=[null,null,P.prototype.Xe,P.prototype.gg,"UNIMAP",64,1170],Q[62592]=[null,null,P.prototype.Qe,P.prototype.$f,"SIPDR",8,1145,64],Q[62608]=[null,null,P.prototype.Oe,P.prototype.Yf,"SDPDR",8,1145,64],Q[62624]=[null,null,P.prototype.Pe,P.prototype.Zf,"SIPAR",8,1145,64],Q[62640]=[null,null,P.prototype.Ne,P.prototype.Xf,"SDPAR",8,1145,64],Q[62656]=[null,null,P.prototype.je,P.prototype.vf,"KIPDR",8,1140,64],Q[62672]=[null,null,P.prototype.he,P.prototype.tf,"KDPDR",8,1145,64],Q[62688]=
[null,null,P.prototype.ie,P.prototype.uf,"KIPAR",8,1140,64],Q[62704]=[null,null,P.prototype.ge,P.prototype.sf,"KDPAR",8,1145,64],Q[62798]=[null,null,P.prototype.pe,P.prototype.zf,"MMR3",1,1145,64],Q[65382]=[null,null,P.prototype.ke,P.prototype.wf,"LKS"],Q[65402]=[null,null,P.prototype.me,P.prototype.yf,"MMR0",1,1140,64],Q[65404]=[null,null,P.prototype.ne,P.prototype.rd,"MMR1",1,1145,64],Q[65406]=[null,null,P.prototype.oe,P.prototype.rd,"MMR2",1,1140,64],Q[65408]=[null,null,P.prototype.We,P.prototype.fg,
"UIPDR",8,1140,64],Q[65424]=[null,null,P.prototype.Ue,P.prototype.dg,"UDPDR",8,1145,64],Q[65440]=[null,null,P.prototype.Ve,P.prototype.eg,"UIPAR",8,1140,64],Q[65456]=[null,null,P.prototype.Te,P.prototype.cg,"UDPAR",8,1145,64],Q[65472]=[null,null,P.prototype.Hb,P.prototype.Lb,"R0SET0"],Q[65473]=[null,null,P.prototype.Hb,P.prototype.Lb,"R1SET0"],Q[65474]=[null,null,P.prototype.Hb,P.prototype.Lb,"R2SET0"],Q[65475]=[null,null,P.prototype.Hb,P.prototype.Lb,"R3SET0"],Q[65476]=[null,null,P.prototype.Hb,
P.prototype.Lb,"R4SET0"],Q[65477]=[null,null,P.prototype.Hb,P.prototype.Lb,"R5SET0"],Q[65478]=[null,null,P.prototype.ue,P.prototype.Ef,"R6KERNEL"],Q[65479]=[null,null,P.prototype.xe,P.prototype.Hf,"R7KERNEL"],Q[65480]=[null,null,P.prototype.Ib,P.prototype.Mb,"R0SET1",1,1145],Q[65481]=[null,null,P.prototype.Ib,P.prototype.Mb,"R1SET1",1,1145],Q[65482]=[null,null,P.prototype.Ib,P.prototype.Mb,"R2SET1",1,1145],Q[65483]=[null,null,P.prototype.Ib,P.prototype.Mb,"R3SET1",1,1145],Q[65484]=[null,null,P.prototype.Ib,
P.prototype.Mb,"R4SET1",1,1145],Q[65485]=[null,null,P.prototype.Ib,P.prototype.Mb,"R5SET1",1,1145],Q[65486]=[null,null,P.prototype.ve,P.prototype.Ff,"R6SUPER",1,1145],Q[65487]=[null,null,P.prototype.we,P.prototype.Gf,"R6USER",1,1145],Q[65504]=[null,null,P.prototype.fe,P.prototype.rf,"CTRL",8,1170],Q[65520]=[null,null,P.prototype.nd,P.prototype.sd,"LSIZE",1,1170],Q[65522]=[null,null,P.prototype.nd,P.prototype.sd,"HSIZE",1,1170],Q[65524]=[null,null,P.prototype.Se,P.prototype.bg,"SYSID",1,1170],Q[65526]=
[null,null,P.prototype.ee,P.prototype.qf,"ERR",1,1170],Q[65528]=[null,null,P.prototype.le,P.prototype.xf,"MBR",1,1170],Q[65530]=[null,null,P.prototype.qe,P.prototype.Af,"PIR"],Q[65532]=[null,null,P.prototype.Re,P.prototype.ag,"SLR"],Q[65534]=[null,null,P.prototype.te,P.prototype.Df,"PSW"],Q);
Xa(function(){for(var a=G(document,E,"device"),b=0;b<a.length;b++){var c,d=a[b];c=B(d);switch(c.type){case "default":c=new P(c);qb(c,d);break;case "pc11":c=new pd(c);qb(c,d);break;case "rl11":c=new qd(c);qb(c,d);break;case "rk11":c=new R(c),qb(c,d)}}});
function M(a,b,c,d,e,f){this.B=a;this.id=rd+=2;this.b=null;this.K=b;this.Hb=c;this.size=d||0;this.type=e||sd;this.J=e==td;this.f=this.controller=null;this.sb=this.j=this.Cc;this.ja=this.C=this.Dc;this.ub=this.D=this.Ib;this.vb=this.G=this.kc;this.F=this.i=0;Kc(this);this.Ta=this.Nd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],ud(this,f.Hd);else if(wb)this.v=new ArrayBuffer(this.size),this.w=new DataView(this.v,0,this.size),this.g=new Uint8Array(this.v,0,this.size),this.H=new Uint16Array(this.v,
0,this.size>>1),this.b=new Int32Array(this.v,0,this.size>>2),ud(this,Dd?Ed:Fd);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;ud(this,Gd)}else ud(this)}h=M.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(wb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(wb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ta=!0}return!1};function ud(a,b){b||(b=Hd);Id(a,b,void 0);Jd(a,b,void 0)}function Id(a,b,c){c&&a.F||(a.sb=b[0]||a.Cc,a.ja=b[2]||a.Dc);if(c||void 0===c)a.j=b[0]||a.Cc,a.C=b[2]||a.Dc}function Jd(a,b,c){c&&a.i||(a.ub=!a.J&&b[1]||a.Ib,a.vb=!a.J&&b[3]||a.kc);if(c||void 0===c)a.D=b[1]||a.Ib,a.G=b[3]||a.kc}
h.ob=function(a,b){b?this.i++||Jd(this,Kd,!1):this.F++||Id(this,Kd,!1)};function Ld(a,b){b?--a.i||(a.ub=a.J?a.Ib:a.D,a.vb=a.J?a.kc:a.G):--a.F||(a.sb=a.j,a.ja=a.C)}function Kc(a,b,c){a.f=b;a.F=a.i=0;c&&((a.F=c.F)&&Id(a,Kd,!1),(a.i=c.i)&&Jd(a,Kd,!1))}h.Cc=function(a,b){this.f&&I(this.f,32)&&J(this.f,"attempt to read invalid address "+O(this.f,b),!0);this.B.La(b,32,2);return 255};
h.Ib=function(a,b,c){this.f&&I(this.f,32)&&J(this.f,"attempt to write "+O(this.f,b)+" to invalid addresses "+O(this.f,c),!0);this.B.La(c,32,4)};h.Dc=function(a,b){return this.sb(a++,b++)|this.sb(a,b)<<8};h.kc=function(a,b,c){this.ub(a++,b&255,c++);this.ub(a,b>>8,c)};h.ce=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.cf=function(a,b){Ab&&a&1&&this.B.La(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};
h.nf=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ta=!0};h.kg=function(a,b,c){Ab&&a&1&&this.B.La(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ta=!0};h.ae=function(a,b){this.f&&null!=this.K&&Md(this.f,this.K+a);return this.j(a,b)};h.Ze=function(a,b){this.f&&null!=this.K&&Md(this.f,this.K+a,2);return this.C(a,b)};
h.lf=function(a,b,c){this.f&&null!=this.K&&Nd(this.f,this.K+a);this.J?this.Ib(0,b,c):this.D(a,b,c)};h.ig=function(a,b,c){this.f&&null!=this.K&&Nd(this.f,this.K+a,2);this.J?this.Ib(0,b,c):this.G(a,b,c)};h.$d=function(a){return this.g[a]};h.be=function(a,b){a=this.g[a];this.f&&I(this.f,32)&&J(this.f,"Memory.readByte("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.Ye=function(a,b){Ab&&a&1&&this.B.La(b,64,2);return this.w.getUint16(a,!0)};
h.bf=function(a,b){Ab&&a&1&&this.B.La(b,64,2);a=!Bb&&a&1?this.g[a]|this.g[a+1]<<8:this.H[a>>1];this.f&&I(this.f,32)&&J(this.f,"Memory.readWord("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.kf=function(a,b){this.g[a]=b;this.Ta=!0};h.mf=function(a,b,c){this.g[a]=b;this.Ta=!0;this.f&&I(this.f,32)&&J(this.f,"Memory.writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0)};h.hg=function(a,b,c){Ab&&a&1&&this.B.La(c,64,4);this.w.setUint16(a,b,!0);this.Ta=!0};
h.jg=function(a,b,c){Ab&&a&1&&this.B.La(c,64,4);!Bb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.H[a>>1]=b;this.Ta=!0;this.f&&I(this.f,32)&&J(this.f,"Memory.writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0)};var sd=0,Wc=1,td=2,Mc=4,Qc=["NONE","RAM","ROM","VID","H/W"],rd=0,Hd=[],Gd=[M.prototype.ce,M.prototype.nf,M.prototype.cf,M.prototype.kg],Kd=[M.prototype.ae,M.prototype.lf,M.prototype.Ze,M.prototype.ig];
if(wb)var Fd=[M.prototype.$d,M.prototype.kf,M.prototype.Ye,M.prototype.hg],Ed=[M.prototype.be,M.prototype.mf,M.prototype.bf,M.prototype.jg];var Od;if(wb){var Pd=new ArrayBuffer(2);(new DataView(Pd)).setUint16(0,256,!0);Od=256===(new Uint16Array(Pd))[0]}else Od=!1;var Dd=Od;
function Qd(a,b){A.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.oc=0;this.ic=b;this.Za=c;this.vc=Math.round(this.ic/1E4)/100;this.nb=this.vc*this.Za;this.wc=this.Sb=this.hb=this.jc=0;this.A.U=!1;this.A.fc=!1;this.A.Ia=a.autoStart;"string"==typeof this.A.Ia&&(this.A.Ia="true"==this.A.Ia);this.A.zb=!1;this.Qb=this.Bb=0;this.Rb=+a.csStart;this.Ab=+a.csInterval;this.Cb=+a.csStop;this.Da=[];this.Tc=this.gf.bind(this);this.$a=this.Ha=this.Ya=this.b=this.da=this.Ga=this.Pb=this.Xa=this.Db=
this.xc=this.mb=0;this.pa=null;H(this)}p(Qd,A);h=Qd.prototype;h.ra=function(a,b,c,d){this.J=a;this.D=b;this.F=d;this.pa=a.i;for(a=0;a<Rd.length;a++)(b=this.B[Rd[a]])&&this.J.oa(null,Rd[a],b);H(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.sa=function(a,b){var c=Sd(this.J,"autoStart");null!=c?this.A.Ia="true"==c?!0:"false"==c?!1:!!c:null==this.A.Ia&&(this.A.Ia=!this.F&&void 0===this.B.run);if(!b){if(a&&this.restore){Td(this);if(!this.restore(a))return!1;Ud(this)}else this.reset();this.F?(a=this.F,b=this.A.Ia,a.Da=!0,a.u("Type ? for help with PDPjs Debugger commands"),Vd(a),b||Wd(a),a.ua&&(b=a.ua,a.ua=null,Xd(a,b))):this.u("No debugger detected");this.A.Ia||this.u("CPU will not be auto-started "+(this.pa?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.Ca=function(a){return a?this.save():!0};h.Ia=function(){return this.A.U?!0:this.A.Ia?(cc(this),!0):!1};h.gd=function(){return 0};function Ud(a){void 0===a.Rb&&(a.Rb=0);void 0===a.Ab&&(a.Ab=-1);void 0===a.Cb&&(a.Cb=-1);a.A.zb=0<=a.Rb&&0<a.Ab;a.A.zb&&(a.Qb=0,a.Bb=a.Rb-a.$a)}function gc(a,b){if(a.A.zb){var c=!1;a.Qb=a.Qb+a.gd()|0;a.Bb-=b;0>=a.Bb&&(a.Bb+=a.Ab,c=!0);0<=a.Cb&&a.Cb<=Yd(a)&&(a.Ab=a.Cb=-1,Ud(a),a.Z(),c=!0);c&&a.u(Yd(a)+" cycles: checksum="+v(a.Qb))}}
h.oa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.B[b]=c,!0;case "run":return this.B[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.fa)a=!0;else{var b=null,c,k=nb(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.fa);c++);c==k.length&&(b=a);Da("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.bc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.U?d.Z():cc(d))},!0;
case "speed":return this.B[b]=c,!0;case "setSpeed":return this.B[b]=c,c.onclick=function(){Zd(d,d.Za<<1,!0)},c.textContent=this.nb.toFixed(2)+"Mhz",!0}return!1};function fc(a,b,c){a.$a+=b;c&&(a.Ya=a.b=a.da=0)}function $d(a,b){var c=1;b&&1<a.Za&&a.mb&&(c=a.mb/a.vc);a.wc=Math.round(1E3/ae);a.Sb=Math.floor(a.ic/ae*c);b||(a.hb=a.Sb);a.jc=0}function Yd(a){return a.$a+a.Ha+a.Ya-a.b}function Td(a){a.mb=0;a.xc=0;a.$a=a.Ha=a.Ya=a.b=a.da=0;Ud(a);Zd(a,1)}
function Zd(a,b,c){var d=!1;if(void 0!==b){.8>a.mb/a.nb?b=1:d=!0;a.Za=b;b=a.vc*a.Za;if(a.nb!=b){a.nb=b;b=a.nb.toFixed(2)+"Mhz";var e=a.B.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.J&&be(a.J)}fc(a,a.Ha);a.Ha=0;a.Ga=ya();a.Xa=0;$d(a);return d}function $c(a,b){var c=a.Da.length;a.Da.push([-1,b]);return c}function bd(a,b,c,d){0<=b&&b<a.Da.length&&(d||0>a.Da[b][0])&&(c=a.ic*a.Za/1E3*c|0,a.A.U&&(c+=ce(a)),a.Da[b][0]=c)}
function de(a,b){for(var c=a.Da.length-1;0<=c;c--){var d=a.Da[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ec(a,b){for(var c=a.Da.length-1;0<=c;c--){var d=a.Da[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ce(a,b){var c=a.Ya-=a.b;a.b=a.da=0;b&&(a.Ya=0);return c}
h.gf=function(){if(this.A.U){this.jc>=this.ic&&$d(this,!0);this.Db=0;this.Pb=ya();if(this.Xa){var a=this.Pb-this.Xa;a>this.wc&&(this.Ga+=a,this.Ga>this.Pb&&(this.Ga=this.Pb))}try{do{var b=de(this,this.A.zb?1:this.Sb);try{this.$b(b)}catch(e){if("number"!=typeof e)throw e;}b=ce(this,!0);this.Db+=b;this.Ha+=b;gc(this,b);ec(this,b);this.hb-=b;if(0>=this.hb){this.hb+=this.Sb;++this.xc>=ee&&(this.J&&L(this.J,void 0),this.xc=0);break}}while(this.A.U)}catch(e){this.Z();this.J&&this.J.stop(ya(),Yd(this));
rb(this,e.stack||e.message);return}if(this.A.U){a=setTimeout;b=this.Tc;this.Xa=ya();var c=this.wc;this.Db&&(c=Math.round(c*this.Db/this.Sb));var c=c-(this.Xa-this.Pb),d=this.Xa-this.Ga;d&&(this.mb=Math.round(this.Ha/(10*d))/100,864E5<=d&&(this.$a=0,Zd(this)));if(0>c||this.mb<this.nb)-1E3>c&&(this.Ga-=c),c=0;this.jc+=this.Db;this.Xa+=c;a(b,c)}}};
function cc(a,b){if(!sb(a))if(a.A.U)a.u(a.toString()+" busy");else{Zd(a);a.A.U=!0;a.A.fc=!0;var c=a.B.run;c&&(c.textContent="Halt");a.J&&(b&&be(a.J,!0),a.J.start(a.Ga,Yd(a)));a.F||a.status("Started");setTimeout(a.Tc,0)}}h.$b=function(){return 0};h.Z=function(a){var b=!1;if(this.A.U){ce(this);fc(this,this.Ha);this.Ha=0;this.A.U=!1;if(b=this.B.run)b.textContent="Run";this.J&&this.J.stop(ya(),Yd(this));b=!0;this.F||this.status("Stopped")}this.A.complete=a;return b};var ae=30,ee=15,Rd=["power","reset"];
function fe(a){var b=+a.model||1170;Qd.call(this,a,6666667);this.Aa=b;this.Qc=+a.addrReset||0;this.w=this.G=this.H=this.L=this.I=0;this.g=this.qa=this.X=[];this.O=0;this.uc=[];this.C=this.N=this.Sa=this.nc=[];this.lc=this.jb=this.P=this.Pc=this.Wa=this.xb=this.yb=this.Fa=this.R=this.bb=this.Ba=this.S=this.Wb=this.Xb=this.T=this.ab=this.v=this.j=this.hc=this.V=this.Y=this.i=this.mc=0;this.Sc=255;1120>=this.Aa?(this.Oc=ge.bind(this),this.wb=this.Ld,this.lc=8,this.Sc=-1,this.Xc=255,this.Uc=0):(this.Oc=
he.bind(this),this.wb=this.Md,this.Xc=~(1792|(1145>this.Aa?2048:0))&65535,this.Uc=1145<=this.Aa?2048:0);this.ma=0;this.la=null;this.tc=[];this.A.complete=!1;this.Mb=this.pc=this.fd;this.Nb=this.qc=this.ld;this.gc=this.rc=this.pd;this.Ob=this.sc=this.qd;this.Ea=this.ib=this.Tb=this.Vb=0;this.ua=this.kd;this.ja=this.Ec;this.vb=this.Hc;this.Zc=this.Yc=0}p(fe,Qd);h=fe.prototype;
h.ra=function(a,b,c,d){Qd.prototype.ra.call(this,a,b,c,d);this.pc=b.Jc.bind(b);this.qc=b.Zb.bind(b);this.rc=b.Kc.bind(b);this.sc=b.Lb.bind(b)};h.sa=function(a,b){for(var c=192,d=0;d<this.tc.length;d++){var e=this.tc[d];0>e.Yb&&(e.Yb=c,c+=4)}return Qd.prototype.sa.call(this,a,b)};
h.reset=function(){this.status("Model "+this.Aa);this.A.U&&this.Z();this.G=65536;this.H=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Qc,-1,-2,-3,-4,-5,-6,-7,-8];this.qa=[0,0,0,0,0,0];this.X=[0,0,0,0];this.O=0;this.uc=[4,2,0,1];this.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.N=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Sa=[0,0,0,0,0,0,0,0,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.nc=[0,0,0,0,0,0,0,0];this.v=this.j=this.hc=this.V=this.Y=this.i=this.mc=0;this.ab=-1;ac(this);Td(this);this.A.error=!1;Qd.prototype.reset.call(this)};function ac(a){a.S=0;a.Wb=0;a.Xb=0;a.T=0;a.R=0;a.bb=0;a.Ba=255;a.Wa=0;a.xb=0;a.yb=0;a.Fa=262143;a.jb=a.g[7];a.P=0;a.la=null;a.D&&(ie(a),a.Pc=Vc(a.D))}
function ie(a){a.Mb=a.pc;a.Nb=a.qc;a.gc=a.rc;a.Ob=a.sc;a.Tb&&(a.Mb=a.fd,a.Nb=a.ld);a.Vb&&(a.gc=a.pd,a.Ob=a.qd);a.Wa?(a.Ea=65536,a.ib=a.T&16?4186112:253952,a.ua=a.kd,a.ja=a.Tb?a.af:a.Ec,a.vb=a.Vb?a.mg:a.Hc,Nc(a.D,a.T&16?22:18)):(a.Ea=0,a.ib=57344,a.ua=a.Od,a.ja=a.Tb?a.$e:a.od,a.vb=a.Vb?a.lg:a.td,Nc(a.D,16))}function hd(a){var b=a.S;b&57344||(b=b&-3199|a.xb<<5|a.yb<<1);return b}
function id(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.Wb=a.P>>16&65535,a.Xb=a.P&65535);a.S=b;a.xb=(b&96)>>5;a.yb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Wa!=c&&(a.Wa=c,ie(a))}}function jd(a){a.S&57344||(a.Wb=a.P>>16&65535);a=a.Wb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function kd(a){a.S&57344||(a.Xb=a.P&65535);return a.Xb}function ld(a,b){1170>a.Aa&&(b&=-49);a.T!=b&&(a.T=b,a.Fa=b&16?4194303:262143,ie(a))}
function je(a,b,c){a.Qc=b;a.D.reset();ac(a);ke(a,b);od(a,0);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.A.U||cc(a)}else a.F?a.Z()||Vd(a.F):!1===c&&a.Z();!a.A.U&&a.pa&&a.pa.stop()}h.gd=function(){return 0};h.save=function(){var a=new le(this);a.set(0,[this.g,this.qa,this.X,this.Sa,this.nc,this.R,this.mc,this.bb,this.Ba,nd(this),this.ab,this.O,this.i,this.S,this.Wb,this.Xb,this.T,this.xb,this.yb,this.C,this.N,this.Wa,this.Fa,this.jb,this.P]);a.set(1,[this.$a,this.Za]);a.set(2,Uc(this.D));return a.data()};
h.restore=function(a){var b=a[1];this.$a=b[1];Zd(this,b[3]);a:{b=this.D;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.S){for(var f=0,g=Array(b.S),k=0;k<e.length-1;)for(var l=e[k++],m=e[k++];l--;)g[f++]=m;e=g}f=b.b[d];if(!f||!f.restore(e)){y("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function me(a){return a.G&65536?1:0}function ne(a){return a.H&32768?2:0}function oe(a){return a.L&65535?0:4}function pe(a){return a.I&32768?8:0}
function qe(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function S(a,b,c){c&&(ke(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function ke(a,b){a.g[7]=b&65535}function cd(a,b,c,d){c={Yb:b,fb:c,message:d||0,next:null};c.name=Db[b];a.tc.push(c);return c}function re(a,b){var c=a.la;if(c==b)a.la=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.la&&(a.i|=1)}
function ad(a,b){if(b){if(b!=a.la){var c=a.la;if(!c||c.fb<=b.fb)b.next=c,a.la=b;else{do{var d=c.next;if(!d||d.fb<=b.fb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&I(a,b.message|8)&&J(a,"setIRQ(vector="+q(b.Yb)+",priority="+b.fb+")",!0,!0)}}function gd(a,b){b&&(re(a,b),b.message&&I(a,b.message|8)&&J(a,"clearIRQ(vector="+q(b.Yb)+",priority="+b.fb+")",!0,!0))}function se(a){return a.i&64?(a.ka(168,64,-6),!0):a.i&32?(a.ka(4,32,-5),!0):a.i&16?(a.ka(12,16,-7),!0):!1}
function nd(a){return a.w=a.w&63728|pe(a)|oe(a)|ne(a)|me(a)}function od(a,b){b&=a.Xc;a.I=b<<12;a.L=~b&4;a.H=b<<14;a.G=b<<16;if((b^a.w)&a.Uc)for(var c=a.qa.length;0<=--c;){var d=a.g[c];a.g[c]=a.qa[c];a.qa[c]=d}a.O=b>>14&3;c=a.w>>14&3;a.O!=c&&(a.X[c]=a.g[6],a.g[6]=a.X[a.O]);a.w=b;a.i&=-3;a.i|=a.la?2:1}function md(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.bb=b}h.za=function(a){this.I=this.L=a;this.H=0};h.gb=function(a,b){this.I=this.L=this.G=a;this.H=b||0};
function te(a,b){a.I=a.L=a.G=b;a.H=a.I^a.G>>1}function ue(a,b,c,d){a.I=a.L=a.G=b;a.H=(c^d)&(d^b)}
h.ka=function(a,b,c){if(!this.ma){0>this.ab?this.ab=nd(this):this.O||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.R|=4,this.g[6]=a=4);if(-1!=c){this.P=a|4143316992;this.O=0;var d=this.ja(a|this.Ea),e=this.ja(a+2&65535|this.Ea);od(this,e&-12289|this.ab>>2&12288);ve(this,this.ab);ve(this,this.g[7]);ke(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.ab=-1;this.Zc=a;this.Yc=c;-1==c&&this.Z();if(-4<=c)throw a;}};
function we(a){var b=xe(a),c=xe(a);a.w&49152&&(c=c&-225|a.w&63712);ke(a,b);od(a,c);a.i&=-17}function ye(a,b){var c=b>>13&31;31>c&&(b=a.T&32?a.Sa[c]+(b&8191)&4194303:b&-3932161);return b}
function ze(a,b,c){var d=[];if(c){c=ye(a,b);var e=b>>13&31;d.push(c);d.push(e);a.T&32&&(d.push(a.Sa[e]),d.push(b&8191))}else if(a.Wa){var e=a.O<<1,f=b>>13;7<f&&(e|=1);a.T&a.uc[a.O]||(f&=7);b&=8191;var g=a.N[a.O][f]<<6;c=g+b&a.Fa;3932160<=c&&(c=ye(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.Fa)}else c=b&65535,57344<=c&&(c|=a.ib),d.push(c);return d}
function kc(a,b,c){var d,e,f;if(!(c&a.Wa))return f=b&65535,57344<=f&&(f|=a.ib),f;d=b>>13;a.T&a.uc[a.O]||(d&=7);e=a.C[a.O][d];f=(a.N[a.O][d]<<6)+(b&8191)&a.Fa;3932160<=f&&(f=ye(a,f));if(a.ma)return f;f>=a.Pc&&f<a.ib?(a.R|=32,a.ka(4,0,f)):f&1&&!(c&1)&&(a.R|=64,a.ka(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.C[a.O][d]=e;if(f!=(4194170&a.Fa)||a.O)a.xb=a.O,a.yb=d;g&&(g&57344&&(0<=a.ab&&(g|=128),a.S&57344||(g|=a.S&4096|a.xb<<5|a.yb<<1,id(a,a.S&-61695|g&61694)),a.ka(168,64,-2)),a.S&61440||!(f<(4191360&a.Fa)||f>(4194239&a.Fa))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function xe(a){var b=a.ja(a.g[6]|a.Ea);a.g[6]=a.g[6]+2&65535;return b}function ve(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.P=a.P&65535|(a.P&-65536)<<8|16121856;a.i&256||a.wb(4,-2,c);a.vb(c,b)}
function Ae(a,b,c,d){var e,f,g=d&8?0:a.Ea;switch(b){case 0:return a.ka(4,0,-3),0;case 1:return 6==c&&a.wb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.wb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.ja(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.wb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.ja(e)|g;a.b-=8;break;case 6:return e=a.ja(qe(a,2)),e=e+a.g[c]&65535,6==c&&a.wb(d,
0,e),a.b-=6,e|g;case 7:return e=a.ja(qe(a,2)),e=e+a.g[c]&65535,e=a.ja(e|a.Ea),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.P=a.P&65535|(a.P&-65536)<<8|(f<<3&248|c)<<16;return e}h.Ld=function(a,b,c){!this.O&&0>=b&&c<=this.Ba&&(this.i|=32)};h.Md=function(a,b,c){this.O||(65534<=c&&(c|=-65536),a&4&&c<=this.Ba&&(c<=this.Ba-32?this.ka(4,0,-4):(this.R|=8,this.i|=32)))};h.fd=function(a){this.F&&Md(this.F,a,1);return this.pc(a)};h.ld=function(a){this.F&&Md(this.F,a,2);return this.qc(a)};
h.pd=function(a,b){this.F&&Nd(this.F,a,1);this.rc(a,b)};h.qd=function(a,b){this.F&&Nd(this.F,a,2);this.sc(a,b)};function mc(a,b){a.ma++;b=a.D.Zb(kc(a,b,2));a.ma--;return b}function Be(a,b){(b?--a.Vb:--a.Tb)||ie(a)}h.Od=function(a,b,c){return Ae(this,a,b,c)};h.kd=function(a,b,c){return kc(this,Ae(this,a,b,c),c)};h.od=function(a){return this.D.Zb(this.jb=a)};h.$e=function(a){this.F&&Md(this.F,a,2);return this.od(a)};h.Ec=function(a){return this.D.Zb(this.jb=kc(this,a,2))};
h.af=function(a){this.F&&Md(this.F,a,2);return this.Ec(a)};h.td=function(a,b){this.D.Lb(this.jb=a,b)};h.lg=function(a,b){this.F&&Nd(this.F,a,2);this.td(a,b)};h.Hc=function(a,b){this.D.Lb(this.jb=kc(this,a,4),b)};h.mg=function(a,b){this.F&&Nd(this.F,a,2);this.Hc(a,b)};function Ce(a,b,c){var d=a.j=b&7;(b=a.v=(b&56)>>3)?(d=Ae(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.O=a.w>>12&3,c=a.ja(d|c&a.Ea),a.O=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.X[a.w>>12&3];return c}
function De(a,b,c,d){a.P=a.P&65535|1441792;var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=Ae(a,b,e,4),c&65536||(e&=65535),a.O=a.w>>12&3,e=kc(a,e|c&65536,4),a.O=a.w>>14&3,a.Ob(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.X[a.w>>12&3]=d}function Ee(a,b){b>>=6;var c=a.Y=b&7;return(b=a.V=(b&56)>>3)?a.Mb(a.ua(b,c,3)):a.g[c+a.lc]&a.Sc}function Fe(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.V=(b&56)>>3)?c=a.Nb(a.ua(b,d,2)):c=a.g[d+a.lc];return c}function Ge(a,b){var c=a.j=b&7;b=a.v=(b&56)>>3;return Ae(a,b,c,8)}
function He(a,b){var c=a.j=b&7;return(b=a.v=(b&56)>>3)?a.Mb(a.ua(b,c,3)):a.g[c]&255}function Ie(a,b){var c,d=a.j=b&7;(b=a.v=(b&56)>>3)?c=a.Nb(a.ua(b,d,2)):c=a.g[d];return c}function Je(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.hc=a.ua(b,e,7),c=0>c?a.g[-c-1]&255:c,a.gc(e,d.call(a,c,a.Mb(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function T(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.ua(b,e,6),a.Ob(e,d.call(a,0>c?a.g[-c-1]:c,a.Nb(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function Ke(a,b,c,d,e){var f=a.j=b&7;(b=a.v=(b&56)>>3)?(d=a.ua(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.gc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function ff(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.ua(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.Ob(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.$b=function(a){this.A.complete=!0;var b=this.F?gf(this.F)?1:this.A.fc?-1:0:0,c=a?this.A.fc?0:1:-1;this.A.fc=!1;this.Ya=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(hf(this.F,this.g[7],c)){this.Z();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.bb&224)>>5,f=this.la&&this.la.fb>e?this.la:null;f&&(d=f.Yb,e=f.fb);e>(this.w&224)>>5?(this.i&8&&(qe(this,2),this.i&=-9),this.ka(d,0,-10),e=!0):e=!1;e&&(f&&re(this,f),a=!0);this.la||this.bb||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&hf(this.F,this.g[7],c)){this.Z();break}if(0>c)break}if(this.i&112&&se(this)){if(this.i&4&&hf(this.F,this.g[7],c)){this.Z();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.P=this.g[7];f=this.ja(a);this.g[7]=a+2&65535;this.Oc(f)}while(0<this.b);return this.A.complete?this.Ya-this.b:void 0===this.A.complete?0:-1};Xa(function(){for(var a=G(document,E,"cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new fe(d);qb(d,c)}});
function jf(a,b){var c=b+a;this.I=this.L=this.G=c;this.H=(a^c)&(b^c);return c&65535}function kf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.G=d;this.H=(a<<8^d)&(b<<8^d);return c&255}function lf(a,b){a=b<<1;te(this,a);return a&65535}function mf(a,b){a=b<<1;te(this,a<<8);return a&255}function nf(a,b){a=b&32768|b>>1|b<<16;te(this,a);return a&65535}function of(a,b){a=b&128|b>>1|b<<8;te(this,a<<8);return a&255}function pf(a,b){a=b&~a;this.za(a);return a}function qf(a,b){a=b&~a;this.za(a<<8);return a}
function rf(a,b){a|=b;this.za(a);return a}function sf(a,b){a|=b;this.za(a<<8);return a}function tf(a,b){a=~b|65536;this.gb(a);return a&65535}function uf(a,b){a=~b|256;this.gb(a<<8);return a&255}function vf(a,b){this.I=this.L=a=b-a;this.H=b&(b^a);return a&65535}function wf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.H=b&(b^c);return a&255}function xf(a,b){this.I=this.L=a=b+a;this.H=a&(b^a);return a&65535}function yf(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.H=c&(b<<8^c);return a&255}
function zf(a,b){a=-b;this.gb(a,a&b&32768);return a&65535}function Af(a,b){a=-b;this.gb(a<<8,(a&b&128)<<8);return a&255}function Bf(a,b){a=b<<1|this.G>>16&1;te(this,a);return a&65535}function Cf(a,b){a=b<<1|this.G>>16&1;te(this,a<<8);return a&255}function Df(a,b){a=(this.G&65536|b)>>1|b<<16;te(this,a);return a&65535}function Ef(a,b){a=((this.G&65536)>>8|b)>>1|b<<8;te(this,a<<8);return a&255}function Ff(a,b){var c=b-a;ue(this,c,a,b);return c&65535}
function Gf(a,b){var c=b-a;ue(this,c<<8,a<<8,b<<8);return c&255}function Hf(a,b){this.I=this.L=b&65280;this.H=this.G=0;return(b<<8|b>>8)&65535}function If(a,b){a^=b;this.za(a);return a&65535}function Jf(a){T(this,a,Fe(this,a),jf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}
function Kf(a){var b=Ie(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.G=this.H=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.G=c<<17-b,c>>=b;else if(b)if(16<b)this.H=c,c=0;else{this.G=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.H=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.v?6:7)+b}
function Lf(a){var b=Ie(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.G=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.G=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.H=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.I=d>>16;this.L=d>>16|d;this.b-=(this.v?6:7)+b}function Mf(a){S(this,a,!me(this))}function Nf(a){S(this,a,me(this))}
function Of(a){T(this,a,Fe(this,a),pf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}function Pf(a){Je(this,a,Ee(this,a),qf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}function Qf(a){T(this,a,Fe(this,a),rf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}function Rf(a){Je(this,a,Ee(this,a),sf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}
function Sf(a){var b=Fe(this,a);a=Ie(this,a);this.za((0>b?this.g[-b-1]:b)&a);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.V?4:3)+(7==this.j?2:0)}function Tf(a){var b=Ee(this,a);a=He(this,a);this.za(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.V?4:3)+(7==this.j?2:0)}function Uf(a){S(this,a,oe(this))}function Vf(a){S(this,a,!pe(this)==!ne(this))}function Wf(a){S(this,a,!oe(this)&&!pe(this)==!ne(this))}function Xf(a){S(this,a,!me(this)&&!oe(this))}
function Yf(a){S(this,a,oe(this)||!pe(this)!=!ne(this))}function Zf(a){S(this,a,me(this)||oe(this))}function $f(a){S(this,a,!pe(this)!=!ne(this))}function ag(a){S(this,a,pe(this))}function bg(a){S(this,a,!oe(this))}function cg(a){S(this,a,!pe(this))}function dg(){this.ka(12,0,-9)}function eg(a){S(this,a,!0)}function fg(a){S(this,a,!ne(this))}function gg(a){S(this,a,ne(this))}function hg(a){a&1&&(this.G=0);a&2&&(this.H=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function ig(a){var b=Fe(this,a);a=Ie(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;ue(this,c,a,b);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.V?4:3)+(7==this.j?2:0)}function jg(a){var b=Ee(this,a);a=He(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);ue(this,c,a,b);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.V?4:3)+(7==this.j?2:0)}
function kg(a){var b=Ie(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.H=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.H=32768,this.G=65536,this.b-=7}function lg(){this.ka(24,0,-9);this.b-=20}
function mg(){this.w&49152?(this.R|=128,this.ka(4,0,-8)):(this.pa&&1120==this.Aa&&this.pa.setData(this.g[0],!0),this.F?ng(this.F):this.Z());this.b-=7}function og(){this.ka(16,0,-9);this.b-=20}var pg=[0,7,7,10,7,11,9,13];function qg(a){this.da=this.b;ke(this,Ge(this,a));this.b=this.da-pg[this.v]}var rg=[0,14,14,17,14,18,16,20];function sg(a){this.da=this.b;var b=Ge(this,a);a=a>>6&7;ve(this,this.g[a]);this.g[a]=this.g[7];ke(this,b);this.b=this.da-rg[this.v]}
var tg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function ug(a){var b=Fe(this,a);this.da=this.b;ff(this,a,b,this.za);this.b=this.da-tg[(this.V?8:0)+this.v]+(7!=this.j||this.v?0:2)}function vg(a){var b=Ee(this,a);Ke(this,a,b,65535,this.za);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}var wg=[7,13,13,17,14,18,17,21];
function xg(a){var b=Ie(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.I=b>>16;this.L=this.I|b;this.H=0;this.G=-32768>b||32767<b?65536:0;this.b-=23}function yg(){this.b-=5}function zg(){this.w&49152||(this.D.reset(),ac(this),this.pa&&this.pa.setData(this.g[0],!0));this.b-=667}function Ag(a){if(a&8)U.call(this,a);else{var b=xe(this);a&=7;7==a?ke(this,b):(ke(this,this.g[a]),this.g[a]=b);this.b-=9}}
function Bg(){we(this);this.b-=13}function Cg(a){a&1&&(this.G=65536);a&2&&(this.H=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Dg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)ke(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Eg(a){T(this,a,Fe(this,a),Ff);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.V?5:3)+(7==this.j?2:0)}function Fg(a){T(this,a,0,Hf);this.b-=this.v?9:3+(7==this.j?2:0)}function Gg(){this.ka(28,0,-9)}
function Hg(){this.pa&&(this.pa.Fc(this.g[7],!0),this.pa.setData(this.g[0],!0));this.i|=8;qe(this,-2);this.b-=3}function Ig(a){T(this,a,this.g[(a>>6&7)+this.lc],If);this.b-=this.v?9:3+(7==this.j?2:0)}function U(a){var b;if(b=this.F)b=this.F,I(b,1)?(J(b,"undefined opcode "+O(b,a),!0,!0),b=ng(b)):b=!1;b||this.ka(8,0,-9)}function ge(a){Jg[a>>12].call(this,a)}function Kg(a){Lg[a>>6&3].call(this,a)}function Mg(a){Ng[a>>6&3].call(this,a)}function Og(a){Pg[a>>6&3].call(this,a)}
function Qg(a){Rg[a&15].call(this,a)}function Sg(a){Tg[a&15].call(this,a)}function Ug(a){Vg[a>>6&3].call(this,a)}function Wg(a){Xg[a>>6&3].call(this,a)}function Yg(a){Zg[a>>6&3].call(this,a)}
var Jg=[function(a){$g[a>>8&15].call(this,a)},ug,ig,Sf,Of,Qf,Jf,U,function(a){ah[a>>8&15].call(this,a)},vg,jg,Tf,Pf,Rf,Eg,U],$g=[function(a){bh[a>>4&15].call(this,a)},eg,bg,Uf,Vf,$f,Wf,Yf,sg,sg,Kg,Mg,Og,U,U,U],Lg=[function(a){ff(this,a,0,this.gb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,tf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,xf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,vf);this.b-=this.v?9:3+(7==this.j?2:0)}],Ng=[function(a){T(this,a,0,zf);
this.b-=this.v?11:6},function(a){T(this,a,me(this)?1:0,jf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,me(this)?1:0,Ff);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=Ie(this,a);this.gb(a);this.b-=this.v?4:3+(7==this.j?2:0)}],Pg=[function(a){T(this,a,0,Df);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Bf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,nf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,lf);this.b-=this.v?9:3+(7==this.j?2:0)}],bh=
[function(a){ch[a&15].call(this,a)},U,U,U,qg,qg,qg,qg,Ag,U,Qg,Sg,Fg,Fg,Fg,Fg],ch=[mg,Hg,Bg,dg,og,zg,U,U,U,U,U,U,U,U,U,U],Rg=[yg,function(){this.G=0;this.b-=5},function(){this.H=0;this.b-=5},hg,function(){this.L=1;this.b-=5},hg,hg,hg,function(){this.I=0;this.b-=5},hg,hg,hg,hg,hg,hg,hg],Tg=[yg,function(){this.G=65536;this.b-=5},function(){this.H=32768;this.b-=5},Cg,function(){this.L=0;this.b-=5},Cg,Cg,Cg,function(){this.I=32768;this.b-=5},Cg,Cg,Cg,Cg,Cg,Cg,Cg],ah=[cg,ag,Xf,Zf,fg,gg,Mf,Nf,lg,Gg,Ug,Wg,
Yg,U,U,U],Vg=[function(a){Ke(this,a,0,255,this.gb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){Je(this,a,0,uf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){Je(this,a,1,yf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){Je(this,a,1,wf);this.b-=this.v?9:3+(7==this.j?2:0)}],Xg=[function(a){Je(this,a,0,Af);this.b-=this.v?11:6},function(a){Je(this,a,me(this)?1:0,kf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){Je(this,a,me(this)?1:0,Gf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=He(this,
a);this.gb(a<<8);this.b-=this.v?4:3+(7==this.j?2:0)}],Zg=[function(a){Je(this,a,0,Ef);this.b-=this.v?9+(this.hc&1):3+(7==this.j?2:0)},function(a){Je(this,a,0,Cf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){Je(this,a,0,of);this.b-=this.v?9+(this.hc&1):3+(7==this.j?2:0)},function(a){Je(this,a,0,mf);this.b-=this.v?9:3+(7==this.j?2:0)}];function he(a){dh[a>>12].call(this,a)}
var dh=[function(a){eh[a>>8&15].call(this,a)},ug,ig,Sf,Of,Qf,Jf,function(a){fh[a>>8&15].call(this,a)},function(a){gh[a>>8&15].call(this,a)},vg,jg,Tf,Pf,Rf,Eg,U],eh=[function(a){hh[a>>4&15].call(this,a)},eg,bg,Uf,Vf,$f,Wf,Yf,sg,sg,Kg,Mg,Og,function(a){ih[a>>6&3].call(this,a)},U,U],ih=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.ja(a|this.Ea);ke(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Ce(this,a,0);this.za(a);ve(this,a);this.b-=11},function(a){var b=xe(this);
this.da=this.b;this.za(b);De(this,a,0,b);this.b=this.da-wg[this.v]},function(a){ff(this,a,pe(this)?65535:0,this.za);this.b-=this.v?9:3+(7==this.j?2:0)}],hh=[function(a){jh[a&15].call(this,a)},U,U,U,qg,qg,qg,qg,Ag,function(a){a&8?(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5):U.call(this,a)},Qg,Sg,Fg,Fg,Fg,Fg],jh=[mg,Hg,function(){we(this);this.i|=this.w&16;this.b-=13},dg,og,zg,Bg,function(){this.ka(8,0,-9)},U,U,U,U,U,U,U,U],fh=[xg,xg,kg,kg,Kf,Kf,Lf,Lf,Ig,Ig,U,U,U,U,Dg,
Dg],gh=[cg,ag,Xf,Zf,fg,gg,Mf,Nf,lg,Gg,Ug,Wg,Yg,function(a){kh[a>>6&3].call(this,a)},U,U],kh=[U,function(a){a=Ce(this,a,65536);this.za(a);ve(this,a);this.b-=11},function(a){var b=xe(this);this.da=this.b;this.za(b);De(this,a,65536,b);this.b=this.da-wg[this.v]},U];
function lh(a){A.call(this,"ROM",a,0,128);this.ea=this.g=null;this.v=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.C=x(this.j);if(this.j){a=this.j;var b=oa(this.C);"json"!=b&&"hex"!=b&&(a=Ca()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Aa(a,null,!0,function(a,b,f){f?(c.M("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(gb(c.lb,a,b),(a=Ba(a,b))?(c.g=a.ba,c.ea=a.ea):c.j=null);mh(c)})}}p(lh,A);
h=lh.prototype;h.ra=function(a,b,c,d){this.D=b;this.f=c;this.F=d;mh(this)};h.sa=function(){this.ea&&(this.F&&nh(this.F,this.id,this.v,this.b,this.ea),delete this.ea);return!0};h.Ca=function(){return!0};
function mh(a){if(!tb(a)){if(a.j){if(!a.g||!a.D)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)rb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.v;a.status(a.b+"-byte ROM at "+q(b));if(57344<=b&&b<57344+Fc){var c={};b=(c[b]=[lh.prototype.Me,lh.prototype.Wf,null,null,null,a.b>>1],c);if(Pb(a.D,a,b)){b=a.w=!0;break a}}else if(Lc(a.D,b,a.b,td)){for(c=0;c<a.g.length;c++)Tc(a.D,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?b.push(a.i):
null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.D,g=d.b,k=[],l=d.v>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.D;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}H(a)}}h.Me=function(a){return this.g[a-this.v]};h.Wf=function(){};Xa(function(){for(var a=G(document,E,"rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new lh(d);qb(d,c)}});
function oh(a){A.call(this,"RAM",a);this.ea=this.g=null;this.i=+a.addr;this.j=+a.size;this.wa=a.load;this.va=a.exec;null!=this.wa&&(this.wa=+this.wa);null!=this.va&&(this.va=+this.va);this.v=!1;this.b=a.file;this.w=x(this.b);if(this.b){a=this.b;var b=oa(this.w);"json"!=b&&"hex"!=b&&(a=Ca()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Aa(a,null,!0,function(a,b,f){f?(c.M("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(gb(c.lb,a,b),(a=Ba(a,b))?(c.g=a.ba,c.ea=a.ea,
null==c.wa&&(c.wa=a.wa),null==c.va&&(c.va=a.va)):c.b=null);ph(c)})}}p(oh,A);oh.prototype.ra=function(a,b,c,d){this.D=b;this.f=c;this.F=d;ph(this)};oh.prototype.sa=function(){this.ea&&(this.F&&nh(this.F,this.id,this.i,this.j,this.ea),delete this.ea);return!0};oh.prototype.Ca=function(){return!0};
function ph(a){if(a.D&&(!a.v&&a.j&&(Lc(a.D,a.i,a.j,Wc)?a.v=!0:a.j=0),!tb(a))){if(!a.v)y("No RAM allocated");else if(a.b){if(!a.g||!a.D)return;qh(a,a.g,a.wa,a.va,a.i)?a.status('Loaded image "'+a.w+'"'):a.M('Error loading image "'+a.w+'"')}H(a)}}
oh.prototype.reset=function(){if(this.v){for(var a=this.D,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(wb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.D(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&qh(this,this.g,this.wa,this.va,this.i,!0)}};
function qh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){J(a,"invalid signature ("+w(m)+") at offset "+w(n),4096);break}if(l+6>=b.length){J(a,"invalid block at offset "+w(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,u=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(u&255)+(u>>8)),t=l,D=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){J(a,"insufficient data for block at offset "+w(n),4096);break}m+=
b[l++]&255;if(m&255){J(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+w(n),4096);break}if(D)for(J(a,"loading "+w(D)+" bytes at "+w(u)+"-"+w(u+D),4096);D--;)Tc(a.D,u++,b[t++]&255);else u&1?g=!0:null==d&&(d=u),null!=d&&J(a,"starting address: "+w(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)Tc(a.D,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.Z(),f=!1;null!=d&&je(a.f,d,f)}return k}
Xa(function(){for(var a=G(document,E,"ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new oh(d);qb(d,c)}});function rh(a){A.call(this,"Keyboard",a,0,1024);H(this)}p(rh,A);rh.prototype.oa=function(){return!1};rh.prototype.ra=function(a,b,c,d){this.J=a;this.f=c;this.F=d};Xa(function(){for(var a=G(document,E,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new rh(d);qb(d,c)}});
function sh(a){A.call(this,"SerialPort",a,0,262144);this.N=+a.adapter;this.T=+a.baudReceive||9600;this.da=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.j=this.w=null;this.X=+a.tabSize;this.V=+a.charBOL;this.C=0;this.I=!0;this.R=this.O=null;this.S=this.Y=-1;this.G=this.b=this.g=0;this.v=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=th;b&&(void 0===c&&(c="Panel"),(c=pb(c,this.id))&&(b=c.B[b])&&this.oa(null,a,b))}this.i=this.H=this.P=null;
this.exports={connect:this.md,receiveData:this.cc,receiveStatus:this.ff,setConnection:this.jf}}p(sh,A);h=sh.prototype;
h.oa=function(a,b,c){var d=this;switch(b){case th:return this.B[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ka.Lc:ka.xd:46==c?b=ka.Lc:a.ctrlKey&&c>=ka.Ic&&c<=ka.Gd&&(b=c-(ka.Ic-ka.ud));b&&(a.preventDefault&&a.preventDefault(),d.cc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ka.wd&&(b=ka.vd);d.cc(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.cc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ra=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;var e=this;this.R=cd(this.f,this.N?-1:48,4,262144);this.S=$c(this.f,function(){var a;a=-1;e.v.length&&(a=e.v.shift()&255,J(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),bd(e.f,e.S,1E3/Math.round(e.T/10)));0<=a&&(e.G=a,e.b&128?e.G|=49152:e.b|=128,e.b&64&&ad(c,e.R))});this.O=cd(this.f,this.N?-1:52,4,262144);this.Y=$c(this.f,function(){e.g|=128;e.g&64&&ad(c,e.O)});Pb(b,this,uh,this.N?64832+8*(this.N-1)-65392:0);Rb(b,this.reset.bind(this));
H(this)};h.md=function(a){if(!this.i){var b=Sd(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.kb)return;c=ua(c[1]);if(this.i=ob(c)){var e=this.i.exports;if(e){var f=e.connect;f&&f.call(this.i,this.I);if(this.H=e.receiveData){this.I=a;this.P=e.receiveStatus;this.status(this.lb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.sa=function(a,b){if(!b)if(this.md(this.I),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){vh(this)};h.save=function(){var a=new le(this);a.set(0,[]);return a.data()};h.restore=function(){return vh(this)};function vh(a){a.G=0;a.b=8192;a.g=128;a.v=[];return!0}
h.cc=function(a){if("number"==typeof a)this.v.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.v.push(b)}else this.v=this.v.concat(a);bd(this.f,this.S,1E3/Math.round(this.T/10));return!0};h.ff=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&ad(this.f,this.R))};h.jf=function(a,b){return this.i?!1:(this.i=a,this.H=b,!0)};
h.ze=function(){var a=this.b&65534;this.b&=-32769;return a};h.Jf=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.P&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.P.call(this.i,b))};h.ye=function(){this.b&=-129;return this.G};h.If=function(){};h.ef=function(){return this.g};h.og=function(a){this.g&128&&(a&64?ad(this.f,this.O):gd(this.f,this.O));this.g=this.g&-70|a&69};h.df=function(){return 0};
h.ng=function(a){a&=255;J(this,"transmitByte("+v(a,2,!0)+")");this.H&&this.H.call(this.i,a);a&=127;if(this.j)if(13==a)this.C=0;else if(8==a)this.j.value=this.j.value.slice(0,-1),0<this.C&&this.C--;else{if(a){var b;13!=a&&10!=a&&(b=va[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.X||8,c=a-this.C%a,this.X&&(b=ta("",c)));this.V&&!this.C&&c&&(b=String.fromCharCode(this.V)+b);this.j.value+=b;this.j.scrollTop=this.j.scrollHeight;this.C+=c}}else if(null!=this.w){if(10==
a||1024<=this.w.length)this.u(this.w),this.w="";10!=a&&(this.w+=String.fromCharCode(a))}bd(this.f,this.Y,1E3/Math.round(this.da/10));this.g&=-129};var th="buffer",wh={},uh=(wh[65392]=[null,null,sh.prototype.ze,sh.prototype.Jf,"RCSR"],wh[65394]=[null,null,sh.prototype.ye,sh.prototype.If,"RBUF"],wh[65396]=[null,null,sh.prototype.ef,sh.prototype.og,"XCSR"],wh[65398]=[null,null,sh.prototype.df,sh.prototype.ng,"XBUF"],wh);
Xa(function(){for(var a=G(document,E,"serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new sh(d);qb(d,c)}});function pd(a){A.call(this,"PC11",a);this.N=xh(this,a.autoMount);this.g=0;this.S=+a.baudReceive||3600;this.C=this.G=this.b=0;this.w=[];this.v=yh;this.i=zh;this.L=this.j="";this.ba=this.wa=this.va=null;this.P=-1;this.O=!Na("Mobi")&&window&&"FileReader"in window;this.H=null;this.R=-1;this.I=null}p(pd,A);
function xh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=pd.prototype;
h.oa=function(a,b,c){var d=this,e=zh;switch(b){case "listTapes":return this.B[b]=c,c.onchange=function(){var a=d.B.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){y("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.B[b]=c,!0;case "readTape":e=Ah;case "loadTape":return e||(e=Bh),this.B[b]=c,c.onclick=
function(){var a=d.B.listTapes;a&&Ch(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.B[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ch(d,x(b,!0),b,Bh,a)}return!1};return!0;case Dh:return this.B[b]=c,!0}return!1};
h.ra=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;this.I=Eh(a);var e=this;if(a=xh(this,Sd(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.H=cd(this.f,56,4,4096);this.R=$c(this.f,function(){1==(e.b&32769)&&!(e.b&128)&&e.C<e.w.length&&(e.G=e.w[e.C++]&255,Fh(e,e.C/e.w.length*100),e.b|=128,e.b&=-2049,e.b&64&&ad(e.f,e.H))});Pb(b,this,Gh);Rb(b,this.reset.bind(this));Hh(this,"None",yh,!0);this.O&&Hh(this,"Local Tape",Ih);Hh(this,"Remote Tape",Jh);Kh(this)||H(this)};
h.sa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.G=0};function Kh(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.B.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=x(c,!0)}c&&b?Lh(a,b,c,Bh,!0):Mh(a)}return!!a.g}
function Ch(a,b,c,d,e){if(c)if(c==Ih)a.M('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Jh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=x(c);a.status("Attempting to load "+c+' as "'+b+'"');a.v=Jh}else a.v=c;Lh(a,b,c,d,!1,e)}else Nh(a,!1)}
function Lh(a,b,c,d,e,f){var g=-1;if(a.j.toLowerCase()!=c.toLowerCase()||a.i!=d)g++,Nh(a,!0),a.A.cb?a.M("PC11 busy"):(e&&(a.g++,I(a)&&J(a,"auto-loading tape: "+b)),Oh(a,b,c,d,f)?g++:a.A.cb=!0);g&&Ph(a,a.L,a.j,a.i,a.ba,a.wa,a.va)}
function Oh(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Ph(a,b,c,d,e),a.v=Ih);Mh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=oa(c),f="json"==e||"gz"==e?encodeURI(c):Ca()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Aa(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.fa;g?a.M('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(gb(a.lb,e,f),(e=Ba(e,f))&&Ph(a,b,c,d,e.ba,e.wa,
e.va));a.A.cb=!1;a.g&&(a.g--,a.g||H(a));Mh(a)})}function Hh(a,b,c,d){if((a=a.B.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Mh(a){var b=a.B.listTapes;if(b&&b.options){a=a.v||a.j;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Fh(a,b){b|=0;if(b!==a.P){var c=a.B[Dh];c&&(c=(c=G(c,Qh))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function Ph(a,b,c,d,e,f,g){a.L=b;a.j=c;a.i=d;a.ba=e;a.wa=f;a.va=g;d==Ah?a.I&&qh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.M('No valid memory address for tape "'+b+'"'):(a.C=0,a.w=e,a.status('Loaded tape "'+b+'"'),Fh(a,0))}function Nh(a,b){if(a.j||!1===b)a.L="",a.j="",b||(a.i&&a.status(a.i==Bh?"tape detached":"tape unloaded"),a.v=yh,a.i=zh,Mh(a))}h.save=function(){return(new le(this)).data()};h.restore=function(){return!0};h.se=function(){return this.b&65534};
h.Cf=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&ad(this.f,this.H)):(this.b&=-129,this.b|=2048,this.G=0,bd(this.f,this.R,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.re=function(){this.b&=-129;this.b|=2048;return this.G};h.Bf=function(){};var yh="",Ih="?",Jh="??",zh=0,Bh=1,Ah=2,Dh="readProgress",Qh="pcjs-progress-bar",Rh={},Gh=(Rh[65384]=[null,null,pd.prototype.se,pd.prototype.Cf,"PRS"],Rh[65386]=[null,null,pd.prototype.re,pd.prototype.Bf,"PRB"],Rh);
function Sh(a,b,c){A.call(this,"Disk",{id:a.lb+".disk"+v(++Th,4)},0,8192);this.controller=a;this.J=a.J;this.F=a.F;this.v=b;this.Na=b.name;this.ya=this.ec="";this.ac=b.ac;this.W=this.ca=this.aa=this.na=this.mode=0;this.b=[];this.i=null;this.j=!1;Uh(this,c,b.W,b.ca,b.aa,b.na);this.g=this.w=null;H(this)}p(Sh,A);h=Sh.prototype;h.ra=function(a,b,c,d){this.F=d};
function Uh(a,b,c,d,e,f){a.mode=b;a.W=c;a.ca=d;a.aa=e;a.na=f;a.b=[];if("preload"!=a.mode){b=Array(a.W);for(c=0;c<b.length;c++){d=Array(a.ca);for(e=0;e<d.length;e++){f=Array(a.aa);for(var g=1;g<=f.length;g++)f[g-1]=Vh(null,c,e,g,a.na,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function Wh(a,b,c,d,e){var f=c;if(a.g)return!0;a.Na=b;a.ya=c;a.ec=x(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ja[d];if(e){a.W=e[0];a.ca=e[1];a.aa=e[2];a.na=e[3]||512;c=a.na>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.W);for(d=0;d<a.b.length;d++)for(var u=a.b[d]=Array(a.ca),t=0;t<u.length;t++)for(var D=u[t]=Array(a.aa),z=0;z<D.length;z++){for(var C=Vh(null,d,t,z+1,a.na,0),F=C.data,fb=0;fb<c;fb++,f+=4)var V=F[fb]=b.getInt32(f,!0),
e=e+V&-1;C.Ja=c;D[z]=C}a.i=e;c=a}else a.M("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.v,c,a.Na,a.ya),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=oa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):pa(c,"/")&&(d="dir"),f=Ca()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.ac?"":e)+"&format=json"));return!!Aa(f,null,
!0,function(b,c,d){Xh(a,b,c,d)})}
function Xh(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.fa;a.j=!1;if(d)a.controller.M('Unable to load disk "'+a.Na+'" (error '+d+": "+b+")",f);else{gb(a.controller.lb,b,c);try{if(0<x(a.ec,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Na]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)y(k[0]);else{a.W=k.length;a.ca=k[0].length;a.aa=k[0][0].length;var l=k[0][0][0];a.na=l&&l.length||512;for(d=c=0;d<a.W;d++)for(f=0;f<a.ca;f++)for(g=0;g<a.aa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var u=l.bytes;if(void 0!==u&&u.length){for(var t=m<<2,D=u.length;D<t;D++)u[D]=n;Yh(l,u)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}Vh(l,d,f);for(t=
0;t<r.length;t++)c=c+r[t]&-1}a.b=k;a.i=c;e=a}else y("Empty disk image: "+a.Na)}catch(z){y("Disk image error ("+b+"): "+z.message)}}a.g&&(a.g.call(a.w,a.v,e,a.Na,a.ya),a.g=null)}function Vh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.qh=b;a.rh=c;a.Ra=a.Ja=0;a.Ta=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var k=g[b];if(!k&&f.Jd&&b<f.ca)for(k=g[b]=Array(f.bd),g=0;g<k.length;g++)k[g]=Vh(null,a,b,g+1,f.Bc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Jd&&9==f.yc&&(d=k[g]=Vh(null,a,b,f.yc,f.Bc,0))}}e&&e(d,!1);return d};function Yh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
db(function(){for(var a=E(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=xb(d);switch(c.type){case "default":c=new P(c);yb(c,d);break;case "pc11":c=new Fd(c);yb(c,d);break;case "rl11":c=new Gd(c);yb(c,d);break;case "rk11":c=new R(c),yb(c,d)}}});
function L(a,b,c,d,e,f){this.C=a;this.id=Hd+=2;this.b=null;this.K=b;this.Jb=c;this.size=d||0;this.type=e||Id;this.J=e==Jd;this.f=this.controller=null;this.ub=this.j=this.Cc;this.ka=this.B=this.Dc;this.wb=this.D=this.Kb;this.xb=this.G=this.kc;this.F=this.i=0;Sc(this);this.Wa=this.Nd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Kd(this,f.Hd);else if(Eb)this.v=new ArrayBuffer(this.size),this.w=new DataView(this.v,0,this.size),this.g=new Uint8Array(this.v,0,this.size),this.H=new Uint16Array(this.v,
0,this.size>>1),this.b=new Int32Array(this.v,0,this.size>>2),Kd(this,Ld?Md:Nd);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Kd(this,Od)}else Kd(this)}h=L.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Eb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Eb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.Wa=!0}return!1};function Kd(a,b){b||(b=Pd);Qd(a,b,void 0);Rd(a,b,void 0)}function Qd(a,b,c){c&&a.F||(a.ub=b[0]||a.Cc,a.ka=b[2]||a.Dc);if(c||void 0===c)a.j=b[0]||a.Cc,a.B=b[2]||a.Dc}function Rd(a,b,c){c&&a.i||(a.wb=!a.J&&b[1]||a.Kb,a.xb=!a.J&&b[3]||a.kc);if(c||void 0===c)a.D=b[1]||a.Kb,a.G=b[3]||a.kc}
h.pb=function(a,b){b?this.i++||Rd(this,Sd,!1):this.F++||Qd(this,Sd,!1)};function Td(a,b){b?--a.i||(a.wb=a.J?a.Kb:a.D,a.xb=a.J?a.kc:a.G):--a.F||(a.ub=a.j,a.ka=a.B)}function Sc(a,b,c){a.f=b;a.F=a.i=0;c&&((a.F=c.F)&&Qd(a,Sd,!1),(a.i=c.i)&&Rd(a,Sd,!1))}h.Cc=function(a,b){this.f&&H(this.f,32)&&I(this.f,"attempt to read invalid address "+O(this.f,b),!0);this.C.La(b,32,2);return 255};
h.Kb=function(a,b,c){this.f&&H(this.f,32)&&I(this.f,"attempt to write "+O(this.f,b)+" to invalid addresses "+O(this.f,c),!0);this.C.La(c,32,4)};h.Dc=function(a,b){return this.ub(a++,b++)|this.ub(a,b)<<8};h.kc=function(a,b,c){this.wb(a++,b&255,c++);this.wb(a,b>>8,c)};h.ce=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.cf=function(a,b){Ob&&a&1&&this.C.La(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};
h.nf=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Wa=!0};h.kg=function(a,b,c){Ob&&a&1&&this.C.La(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Wa=!0};h.ae=function(a,b){this.f&&null!=this.K&&Ud(this.f,this.K+a);return this.j(a,b)};h.Ze=function(a,b){this.f&&null!=this.K&&Ud(this.f,this.K+a,2);return this.B(a,b)};
h.lf=function(a,b,c){this.f&&null!=this.K&&Vd(this.f,this.K+a);this.J?this.Kb(0,b,c):this.D(a,b,c)};h.ig=function(a,b,c){this.f&&null!=this.K&&Vd(this.f,this.K+a,2);this.J?this.Kb(0,b,c):this.G(a,b,c)};h.$d=function(a){return this.g[a]};h.be=function(a,b){a=this.g[a];this.f&&H(this.f,32)&&I(this.f,"Memory.readByte("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.Ye=function(a,b){Ob&&a&1&&this.C.La(b,64,2);return this.w.getUint16(a,!0)};
h.bf=function(a,b){Ob&&a&1&&this.C.La(b,64,2);a=!Pb&&a&1?this.g[a]|this.g[a+1]<<8:this.H[a>>1];this.f&&H(this.f,32)&&I(this.f,"Memory.readWord("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.kf=function(a,b){this.g[a]=b;this.Wa=!0};h.mf=function(a,b,c){this.g[a]=b;this.Wa=!0;this.f&&H(this.f,32)&&I(this.f,"Memory.writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0)};h.hg=function(a,b,c){Ob&&a&1&&this.C.La(c,64,4);this.w.setUint16(a,b,!0);this.Wa=!0};
h.jg=function(a,b,c){Ob&&a&1&&this.C.La(c,64,4);!Pb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.H[a>>1]=b;this.Wa=!0;this.f&&H(this.f,32)&&I(this.f,"Memory.writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0)};var Id=0,dd=1,Jd=2,Uc=4,Zc=["NONE","RAM","ROM","VID","H/W"],Hd=0,Pd=[],Od=[L.prototype.ce,L.prototype.nf,L.prototype.cf,L.prototype.kg],Sd=[L.prototype.ae,L.prototype.lf,L.prototype.Ze,L.prototype.ig];
if(Eb)var Nd=[L.prototype.$d,L.prototype.kf,L.prototype.Ye,L.prototype.hg],Md=[L.prototype.be,L.prototype.mf,L.prototype.bf,L.prototype.jg];var Wd;if(Eb){var Xd=new ArrayBuffer(2);(new DataView(Xd)).setUint16(0,256,!0);Wd=256===(new Uint16Array(Xd))[0]}else Wd=!1;var Ld=Wd;
function Yd(a,b){A.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.oc=0;this.lc=b;this.bb=c;this.vc=Math.round(this.lc/1E4)/100;this.nb=this.vc*this.bb;this.wc=this.Vb=this.qb=this.mc=0;this.A.U=!1;this.A.hc=!1;this.A.Ia=a.autoStart;"string"==typeof this.A.Ia&&(this.A.Ia="true"==this.A.Ia);this.A.zb=!1;this.Sb=this.Bb=0;this.Tb=+a.csStart;this.Ab=+a.csInterval;this.Cb=+a.csStop;this.Fa=[];this.Tc=this.gf.bind(this);this.cb=this.Ta=this.ab=this.b=this.ga=this.Sa=this.Rb=this.$a=this.Db=
this.xc=this.mb=0;this.ra=null;G(this)}p(Yd,A);h=Yd.prototype;h.ta=function(a,b,c,d){this.J=a;this.D=b;this.F=d;this.ra=a.i;for(a=0;a<Zd.length;a++)(b=this.C[Zd[a]])&&this.J.pa(null,Zd[a],b);G(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.za=function(a,b){var c=$d(this.J,"autoStart");null!=c?this.A.Ia="true"==c?!0:"false"==c?!1:!!c:null==this.A.Ia&&(this.A.Ia=!this.F&&void 0===this.C.run);if(!b){if(a){ae(this);if(!this.restore(a))return!1;be(this)}else this.reset();this.F?(a=this.F,b=this.A.Ia,a.Da=!0,a.u("Type ? for help with PDPjs Debugger commands"),ce(a),b||de(a),a.sa&&(b=a.sa,a.sa=null,ee(a,b))):this.u("No debugger detected");this.A.Ia||this.u("CPU will not be auto-started "+(this.ra?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.ya=function(a){return a?this.save():!0};h.Ia=function(){return this.A.U?!0:this.A.Ia?(kc(this),!0):!1};h.gd=function(){return 0};function be(a){void 0===a.Tb&&(a.Tb=0);void 0===a.Ab&&(a.Ab=-1);void 0===a.Cb&&(a.Cb=-1);a.A.zb=0<=a.Tb&&0<a.Ab;a.A.zb&&(a.Sb=0,a.Bb=a.Tb-a.cb)}function oc(a,b){if(a.A.zb){var c=!1;a.Sb=a.Sb+a.gd()|0;a.Bb-=b;0>=a.Bb&&(a.Bb+=a.Ab,c=!0);0<=a.Cb&&a.Cb<=fe(a)&&(a.Ab=a.Cb=-1,be(a),a.Z(),c=!0);c&&a.u(fe(a)+" cycles: checksum="+v(a.Sb))}}
h.pa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.C[b]=c,!0;case "run":return this.C[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.fa)a=!0;else{var b=null,c,k=ub(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.fa);c++);c==k.length&&(b=a);Oa("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.dc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.U?d.Z():kc(d))},!0;
case "speed":return this.C[b]=c,!0;case "setSpeed":return this.C[b]=c,c.onclick=function(){ge(d,d.bb<<1,!0)},c.textContent=this.nb.toFixed(2)+"Mhz",!0}return!1};function nc(a,b,c){a.cb+=b;c&&(a.ab=a.b=a.ga=0)}function he(a,b){var c=1;b&&1<a.bb&&a.mb&&(c=a.mb/a.vc);a.wc=Math.round(1E3/ie);a.Vb=Math.floor(a.lc/ie*c);b||(a.qb=a.Vb);a.mc=0}function fe(a){return a.cb+a.Ta+a.ab-a.b}function ae(a){a.mb=0;a.xc=0;a.cb=a.Ta=a.ab=a.b=a.ga=0;be(a);ge(a,1)}
function ge(a,b,c){var d=!1;if(void 0!==b){.8>a.mb/a.nb?b=1:d=!0;a.bb=b;b=a.vc*a.bb;if(a.nb!=b){a.nb=b;b=a.nb.toFixed(2)+"Mhz";var e=a.C.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.J&&je(a.J)}nc(a,a.Ta);a.Ta=0;a.Sa=Fa();a.$a=0;he(a);return d}function hd(a,b){var c=a.Fa.length;a.Fa.push([-1,b]);return c}function jd(a,b,c,d){0<=b&&b<a.Fa.length&&(d||0>a.Fa[b][0])&&(c=a.lc*a.bb/1E3*c|0,a.A.U&&(c+=ke(a)),a.Fa[b][0]=c)}
function le(a,b){for(var c=a.Fa.length-1;0<=c;c--){var d=a.Fa[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function mc(a,b){for(var c=a.Fa.length-1;0<=c;c--){var d=a.Fa[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ke(a,b){var c=a.ab-=a.b;a.b=a.ga=0;b&&(a.ab=0);return c}
h.gf=function(){if(this.A.U){this.mc>=this.lc&&he(this,!0);this.Db=0;this.Rb=Fa();if(this.$a){var a=this.Rb-this.$a;a>this.wc&&(this.Sa+=a,this.Sa>this.Rb&&(this.Sa=this.Rb))}try{do{var b=le(this,this.A.zb?1:this.Vb);try{this.bc(b)}catch(e){if("number"!=typeof e)throw e;}b=ke(this,!0);this.Db+=b;this.Ta+=b;oc(this,b);mc(this,b);this.qb-=b;if(0>=this.qb){this.qb+=this.Vb;++this.xc>=me&&(this.J&&J(this.J,void 0),this.xc=0);break}}while(this.A.U)}catch(e){this.Z();this.J&&this.J.stop(Fa(),fe(this));
zb(this,e.stack||e.message);return}if(this.A.U){a=setTimeout;b=this.Tc;this.$a=Fa();var c=this.wc;this.Db&&(c=Math.round(c*this.Db/this.Vb));var c=c-(this.$a-this.Rb),d=this.$a-this.Sa;d&&(this.mb=Math.round(this.Ta/(10*d))/100,864E5<=d&&(this.cb=0,ge(this)));if(0>c||this.mb<this.nb)-1E3>c&&(this.Sa-=c),c=0;this.mc+=this.Db;this.$a+=c;a(b,c)}}};
function kc(a,b){if(!Ab(a))if(a.A.U)a.u(a.toString()+" busy");else{ge(a);a.A.U=!0;a.A.hc=!0;var c=a.C.run;c&&(c.textContent="Halt");a.J&&(b&&je(a.J,!0),a.J.start(a.Sa,fe(a)));a.F||a.status("Started");setTimeout(a.Tc,0)}}h.bc=function(){return 0};h.Z=function(a){var b=!1;if(this.A.U){ke(this);nc(this,this.Ta);this.Ta=0;this.A.U=!1;if(b=this.C.run)b.textContent="Run";this.J&&this.J.stop(Fa(),fe(this));b=!0;this.F||this.status("Stopped")}this.A.complete=a;return b};var ie=30,me=15,Zd=["power","reset"];
function ne(a){var b=+a.model||1170;Yd.call(this,a,6666667);this.ba=b;this.Qc=+a.addrReset||0;this.w=this.G=this.H=this.L=this.I=0;this.g=this.na=this.V=[];this.N=0;this.uc=[];this.B=this.M=this.Ea=this.Zb=[];this.nc=this.Za=this.P=this.Pc=this.Ha=this.ib=this.ob=this.Da=this.R=this.Va=this.sa=this.S=this.Eb=this.Fb=this.T=this.Ua=this.v=this.j=this.jc=this.W=this.Y=this.i=this.Yb=0;this.Sc=255;1120>=this.ba?(this.Oc=oe.bind(this),this.yb=this.Ld,this.nc=8,this.Sc=-1,this.Xc=255,this.Uc=0):(this.Oc=
pe.bind(this),this.yb=this.Md,this.Xc=~(1792|(1140>=this.ba?2048:0))&65535,this.Uc=1140<this.ba?2048:0);this.ma=0;this.la=null;this.tc=[];this.A.complete=!1;this.Ob=this.pc=this.fd;this.Pb=this.qc=this.ld;this.ic=this.rc=this.pd;this.Qb=this.sc=this.qd;this.Ga=this.jb=this.Wb=this.Xb=0;this.Ca=this.kd;this.ka=this.Ec;this.xb=this.Hc;this.Zc=this.Yc=0}p(ne,Yd);h=ne.prototype;
h.ta=function(a,b,c,d){Yd.prototype.ta.call(this,a,b,c,d);this.pc=b.Jc.bind(b);this.qc=b.ac.bind(b);this.rc=b.Kc.bind(b);this.sc=b.Nb.bind(b)};h.za=function(a,b){for(var c=192,d=0;d<this.tc.length;d++){var e=this.tc[d];0>e.$b&&(e.$b=c,c+=4)}return Yd.prototype.za.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ba);this.A.U&&this.Z();this.G=65536;this.H=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Qc,-1,-2,-3,-4,-5,-6,-7,-8];this.na=[0,0,0,0,0,0];this.V=[0,0,0,0];this.N=0;this.uc=[4,2,0,1];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.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];this.Zb=[0,0,0,0,0,0,0,0];this.v=this.j=this.jc=this.W=this.Y=this.i=this.Yb=0;this.Ua=-1;ic(this);ae(this);this.A.error=!1;Yd.prototype.reset.call(this)};function ic(a){a.S=0;a.Eb=0;a.Fb=0;a.T=0;a.R=0;a.Va=0;a.sa=255;a.Ha=0;a.ib=0;a.ob=0;a.Da=262143;a.Za=a.g[7];a.P=0;a.la=null;a.D&&(qe(a),a.Pc=cd(a.D))}
function qe(a){a.Ob=a.pc;a.Pb=a.qc;a.ic=a.rc;a.Qb=a.sc;a.Wb&&(a.Ob=a.fd,a.Pb=a.ld);a.Xb&&(a.ic=a.pd,a.Qb=a.qd);a.Ha?(a.Ga=65536,a.jb=a.T&16?4186112:253952,a.Ca=a.kd,a.ka=a.Wb?a.af:a.Ec,a.xb=a.Xb?a.mg:a.Hc,Vc(a.D,a.T&16?22:18)):(a.Ga=0,a.jb=57344,a.Ca=a.Od,a.ka=a.Wb?a.$e:a.od,a.xb=a.Xb?a.lg:a.td,Vc(a.D,16))}function pd(a){var b=a.S;b&57344||(b=b&-3199|a.ib<<5|a.ob<<1);return b}
function qd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.Eb=a.P>>16&65535,a.Fb=a.P&65535);a.S=b;a.ib=(b&96)>>5;a.ob=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ha!=c&&(a.Ha=c,qe(a))}}function rd(a){a.S&57344||(a.Eb=a.P>>16&65535);a=a.Eb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function sd(a){a.S&57344||(a.Fb=a.P&65535);return a.Fb}function td(a,b){1170>a.ba&&(b&=-49);a.T!=b&&(a.T=b,a.Da=b&16?4194303:262143,qe(a))}
function re(a,b,c){a.Qc=b;a.D.reset();ic(a);se(a,b);wd(a,0);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.A.U||kc(a)}else a.F?a.Z()||ce(a.F):!1===c&&a.Z();!a.A.U&&a.ra&&a.ra.stop()}h.gd=function(){return 0};h.save=function(){var a=new M(this);a.set(0,[this.g,this.na,this.V,this.Ea,this.Zb,this.R,this.Yb,this.Va,this.sa,this.Ua,this.N,this.i,this.S,this.Eb,this.Fb,this.T,this.ib,this.ob,this.B,this.M,this.Ha,this.Da,this.Za,this.P]);a.set(1,[vd(this)]);a.set(2,[this.cb,this.bb]);return a.data()};
h.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.g=b.next().value;this.na=b.next().value;this.V=b.next().value;this.Ea=b.next().value;this.Zb=b.next().value;this.R=b.next().value;this.Yb=b.next().value;this.Va=b.next().value;this.sa=b.next().value;this.Ua=b.next().value;this.N=b.next().value;this.i=b.next().value;this.S=b.next().value;this.Eb=b.next().value;this.Fb=b.next().value;this.T=b.next().value;this.ib=b.next().value;this.ob=b.next().value;
this.B=b.next().value;this.M=b.next().value;this.Ha=b.next().value;this.Da=b.next().value;this.Za=b.next().value;this.P=b.next().value;b=a[1];wd(this,b[0]);b=a[2];this.cb=b[0];ge(this,b[1]);return!0};function te(a){return a.G&65536?1:0}function ue(a){return a.H&32768?2:0}function ve(a){return a.L&65535?0:4}function we(a){return a.I&32768?8:0}function xe(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function S(a,b,c){c&&(se(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function se(a,b){a.g[7]=b&65535}
function kd(a,b,c,d){c={$b:b,gb:c,message:d||0,next:null};c.name=Rb[b];a.tc.push(c);return c}function ye(a,b){var c=a.la;if(c==b)a.la=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.la&&(a.i|=1)}function id(a,b){if(b){if(b!=a.la){var c=a.la;if(!c||c.gb<=b.gb)b.next=c,a.la=b;else{do{var d=c.next;if(!d||d.gb<=b.gb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&H(a,b.message|8)&&I(a,"setIRQ(vector="+q(b.$b)+",priority="+b.gb+")",!0,!0)}}
function od(a,b){b&&(ye(a,b),b.message&&H(a,b.message|8)&&I(a,"clearIRQ(vector="+q(b.$b)+",priority="+b.gb+")",!0,!0))}function ze(a){return a.i&64?(a.qa(168,64,-6),!0):a.i&32?(a.qa(4,32,-5),!0):a.i&16?(a.qa(12,16,-7),!0):!1}function vd(a){return a.w=a.w&63728|we(a)|ve(a)|ue(a)|te(a)}
function wd(a,b){b&=a.Xc;a.I=b<<12;a.L=~b&4;a.H=b<<14;a.G=b<<16;if((b^a.w)&a.Uc)for(var c=a.na.length;0<=--c;){var d=a.g[c];a.g[c]=a.na[c];a.na[c]=d}a.N=b>>14&3;c=a.w>>14&3;a.N!=c&&(a.V[c]=a.g[6],a.g[6]=a.V[a.N]);a.w=b;a.i&=-3;a.i|=a.la?2:1}function ud(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.Va=b}h.Ba=function(a){this.I=this.L=a;this.H=0};h.hb=function(a,b){this.I=this.L=this.G=a;this.H=b||0};function Ae(a,b){a.I=a.L=a.G=b;a.H=a.I^a.G>>1}
function Be(a,b,c,d){a.I=a.L=a.G=b;a.H=(c^d)&(d^b)}h.qa=function(a,b,c){if(!this.ma){0>this.Ua?this.Ua=vd(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.R|=4,this.g[6]=a=4);if(-1!=c){this.P=a|4143316992;this.N=0;var d=this.ka(a|this.Ga),e=this.ka(a+2&65535|this.Ga);wd(this,e&-12289|this.Ua>>2&12288);Ce(this,this.Ua);Ce(this,this.g[7]);se(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.Ua=-1;this.Zc=a;this.Yc=c;-1==c&&this.Z();if(-4<=c)throw a;}};
function De(a){var b=Ee(a),c=Ee(a);a.w&49152&&(c=c&-225|a.w&63712);se(a,b);wd(a,c);a.i&=-17}function Fe(a,b){var c=b>>13&31;31>c&&(b=a.T&32?a.Ea[c]+(b&8191)&4194303:b&-3932161);return b}
function Ge(a,b,c){var d=[];if(c){c=Fe(a,b);var e=b>>13&31;d.push(c);d.push(e);a.T&32&&(d.push(a.Ea[e]),d.push(b&8191))}else if(a.Ha){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.T&a.uc[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.Da;3932160<=c&&(c=Fe(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.Da)}else c=b&65535,57344<=c&&(c|=a.jb),d.push(c);return d}
function Dc(a,b,c){var d,e,f;if(!(c&a.Ha))return f=b&65535,57344<=f&&(f|=a.jb),f;d=b>>13;a.T&a.uc[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.Da;3932160<=f&&(f=Fe(a,f));if(a.ma)return f;f>=a.Pc&&f<a.jb?(a.R|=32,a.qa(4,0,f)):f&1&&!(c&1)&&(a.R|=64,a.qa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.Da)||a.N)a.ib=a.N,a.ob=d;g&&(g&57344&&(0<=a.Ua&&(g|=128),a.S&57344||(g|=a.S&4096|a.ib<<5|a.ob<<1,qd(a,a.S&-61695|g&61694)),a.qa(168,64,-2)),a.S&61440||!(f<(4191360&a.Da)||f>(4194239&a.Da))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ee(a){var b=a.ka(a.g[6]|a.Ga);a.g[6]=a.g[6]+2&65535;return b}function Ce(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.P=a.P&65535|(a.P&-65536)<<8|16121856;a.i&256||a.yb(4,-2,c);a.xb(c,b)}
function He(a,b,c,d){var e,f,g=d&8?0:a.Ga;switch(b){case 0:return a.qa(4,0,-3),0;case 1:return 6==c&&a.yb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.yb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.ka(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.yb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.ka(e)|g;a.b-=8;break;case 6:return e=a.ka(xe(a,2)),e=e+a.g[c]&65535,6==c&&a.yb(d,
0,e),a.b-=6,e|g;case 7:return e=a.ka(xe(a,2)),e=e+a.g[c]&65535,e=a.ka(e|a.Ga),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.P=a.P&65535|(a.P&-65536)<<8|(f<<3&248|c)<<16;return e}h.Ld=function(a,b,c){!this.N&&0>=b&&c<=this.sa&&(this.i|=32)};h.Md=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.sa&&(c<=this.sa-32?this.qa(4,0,-4):(this.R|=8,this.i|=32)))};h.fd=function(a){this.F&&Ud(this.F,a,1);return this.pc(a)};h.ld=function(a){this.F&&Ud(this.F,a,2);return this.qc(a)};
h.pd=function(a,b){this.F&&Vd(this.F,a,1);this.rc(a,b)};h.qd=function(a,b){this.F&&Vd(this.F,a,2);this.sc(a,b)};function Fc(a,b){a.ma++;b=a.D.ac(Dc(a,b,2));a.ma--;return b}function Ie(a,b){(b?--a.Xb:--a.Wb)||qe(a)}h.Od=function(a,b,c){return He(this,a,b,c)};h.kd=function(a,b,c){return Dc(this,He(this,a,b,c),c)};h.od=function(a){return this.D.ac(this.Za=a)};h.$e=function(a){this.F&&Ud(this.F,a,2);return this.od(a)};h.Ec=function(a){return this.D.ac(this.Za=Dc(this,a,2))};
h.af=function(a){this.F&&Ud(this.F,a,2);return this.Ec(a)};h.td=function(a,b){this.D.Nb(this.Za=a,b)};h.lg=function(a,b){this.F&&Vd(this.F,a,2);this.td(a,b)};h.Hc=function(a,b){this.D.Nb(this.Za=Dc(this,a,4),b)};h.mg=function(a,b){this.F&&Vd(this.F,a,2);this.Hc(a,b)};function Je(a,b,c){var d=a.j=b&7;(b=a.v=(b&56)>>3)?(d=He(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.ka(d|c&a.Ga),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.V[a.w>>12&3];return c}
function Ke(a,b,c,d){a.P=a.P&65535|1441792;var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=He(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Dc(a,e|c&65536,4),a.N=a.w>>14&3,a.Qb(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.V[a.w>>12&3]=d}function Le(a,b){b>>=6;var c=a.Y=b&7;return(b=a.W=(b&56)>>3)?a.Ob(a.Ca(b,c,3)):a.g[c+a.nc]&a.Sc}function Me(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.W=(b&56)>>3)?c=a.Pb(a.Ca(b,d,2)):c=a.g[d+a.nc];return c}function Ne(a,b){var c=a.j=b&7;b=a.v=(b&56)>>3;return He(a,b,c,8)}
function jf(a,b){var c=a.j=b&7;return(b=a.v=(b&56)>>3)?a.Ob(a.Ca(b,c,3)):a.g[c]&255}function kf(a,b){var c,d=a.j=b&7;(b=a.v=(b&56)>>3)?c=a.Pb(a.Ca(b,d,2)):c=a.g[d];return c}function lf(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.jc=a.Ca(b,e,7),c=0>c?a.g[-c-1]&255:c,a.ic(e,d.call(a,c,a.Ob(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function T(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.Ca(b,e,6),a.Qb(e,d.call(a,0>c?a.g[-c-1]:c,a.Pb(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function mf(a,b,c,d,e){var f=a.j=b&7;(b=a.v=(b&56)>>3)?(d=a.Ca(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.ic(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function nf(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.Ca(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.Qb(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.bc=function(a){this.A.complete=!0;var b=this.F?of(this.F)?1:this.A.hc?-1:0:0,c=a?this.A.hc?0:1:-1;this.A.hc=!1;this.ab=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(pf(this.F,this.g[7],c)){this.Z();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.Va&224)>>5,f=this.la&&this.la.gb>e?this.la:null;f&&(d=f.$b,e=f.gb);e>(this.w&224)>>5?(this.i&8&&(xe(this,2),this.i&=-9),this.qa(d,0,-10),e=!0):e=!1;e&&(f&&ye(this,f),a=!0);this.la||this.Va||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&pf(this.F,this.g[7],c)){this.Z();break}if(0>c)break}if(this.i&112&&ze(this)){if(this.i&4&&pf(this.F,this.g[7],c)){this.Z();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.P=this.g[7];f=this.ka(a);this.g[7]=a+2&65535;this.Oc(f)}while(0<this.b);return this.A.complete?this.ab-this.b:void 0===this.A.complete?0:-1};db(function(){for(var a=E(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=xb(c),d=new ne(d);yb(d,c)}});
function qf(a,b){var c=b+a;this.I=this.L=this.G=c;this.H=(a^c)&(b^c);return c&65535}function rf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.G=d;this.H=(a<<8^d)&(b<<8^d);return c&255}function sf(a,b){a=b<<1;Ae(this,a);return a&65535}function tf(a,b){a=b<<1;Ae(this,a<<8);return a&255}function uf(a,b){a=b&32768|b>>1|b<<16;Ae(this,a);return a&65535}function vf(a,b){a=b&128|b>>1|b<<8;Ae(this,a<<8);return a&255}function wf(a,b){a=b&~a;this.Ba(a);return a}function xf(a,b){a=b&~a;this.Ba(a<<8);return a}
function yf(a,b){a|=b;this.Ba(a);return a}function zf(a,b){a|=b;this.Ba(a<<8);return a}function Af(a,b){a=~b|65536;this.hb(a);return a&65535}function Bf(a,b){a=~b|256;this.hb(a<<8);return a&255}function Cf(a,b){this.I=this.L=a=b-a;this.H=b&(b^a);return a&65535}function Df(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.H=b&(b^c);return a&255}function Ef(a,b){this.I=this.L=a=b+a;this.H=a&(b^a);return a&65535}function Ff(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.H=c&(b<<8^c);return a&255}
function Gf(a,b){a=-b;this.hb(a,a&b&32768);return a&65535}function Hf(a,b){a=-b;this.hb(a<<8,(a&b&128)<<8);return a&255}function If(a,b){a=b<<1|this.G>>16&1;Ae(this,a);return a&65535}function Jf(a,b){a=b<<1|this.G>>16&1;Ae(this,a<<8);return a&255}function Kf(a,b){a=(this.G&65536|b)>>1|b<<16;Ae(this,a);return a&65535}function Lf(a,b){a=((this.G&65536)>>8|b)>>1|b<<8;Ae(this,a<<8);return a&255}function Mf(a,b){var c=b-a;Be(this,c,a,b);return c&65535}
function Nf(a,b){var c=b-a;Be(this,c<<8,a<<8,b<<8);return c&255}function Of(a,b){this.I=this.L=b&65280;this.H=this.G=0;return(b<<8|b>>8)&65535}function Pf(a,b){a^=b;this.Ba(a);return a&65535}function Qf(a){T(this,a,Me(this,a),qf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}
function Rf(a){var b=kf(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.G=this.H=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.G=c<<17-b,c>>=b;else if(b)if(16<b)this.H=c,c=0;else{this.G=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.H=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.v?6:7)+b}
function Sf(a){var b=kf(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.G=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.G=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.H=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.I=d>>16;this.L=d>>16|d;this.b-=(this.v?6:7)+b}function Tf(a){S(this,a,!te(this))}function Uf(a){S(this,a,te(this))}
function Vf(a){T(this,a,Me(this,a),wf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Wf(a){lf(this,a,Le(this,a),xf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Xf(a){T(this,a,Me(this,a),yf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Yf(a){lf(this,a,Le(this,a),zf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}
function Zf(a){var b=Me(this,a);a=kf(this,a);this.Ba((0>b?this.g[-b-1]:b)&a);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}function $f(a){var b=Le(this,a);a=jf(this,a);this.Ba(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}function ag(a){S(this,a,ve(this))}function bg(a){S(this,a,!we(this)==!ue(this))}function cg(a){S(this,a,!ve(this)&&!we(this)==!ue(this))}function dg(a){S(this,a,!te(this)&&!ve(this))}
function eg(a){S(this,a,ve(this)||!we(this)!=!ue(this))}function fg(a){S(this,a,te(this)||ve(this))}function gg(a){S(this,a,!we(this)!=!ue(this))}function hg(a){S(this,a,we(this))}function ig(a){S(this,a,!ve(this))}function jg(a){S(this,a,!we(this))}function kg(){this.qa(12,0,-9)}function lg(a){S(this,a,!0)}function mg(a){S(this,a,!ue(this))}function ng(a){S(this,a,ue(this))}function og(a){a&1&&(this.G=0);a&2&&(this.H=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function pg(a){var b=Me(this,a);a=kf(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;Be(this,c,a,b);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}function qg(a){var b=Le(this,a);a=jf(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);Be(this,c,a,b);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}
function rg(a){var b=kf(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.H=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.H=32768,this.G=65536,this.b-=7}function sg(){this.qa(24,0,-9);this.b-=20}
function tg(){this.w&49152?(this.R|=128,this.qa(4,0,-8)):(this.ra&&1120==this.ba&&this.ra.setData(this.g[0],!0),this.F?ug(this.F):this.Z());this.b-=7}function vg(){this.qa(16,0,-9);this.b-=20}var wg=[0,7,7,10,7,11,9,13];function xg(a){this.ga=this.b;se(this,Ne(this,a));this.b=this.ga-wg[this.v]}var yg=[0,14,14,17,14,18,16,20];function zg(a){this.ga=this.b;var b=Ne(this,a);a=a>>6&7;Ce(this,this.g[a]);this.g[a]=this.g[7];se(this,b);this.b=this.ga-yg[this.v]}
var Ag=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Bg(a){var b=Me(this,a);this.ga=this.b;nf(this,a,b,this.Ba);this.b=this.ga-Ag[(this.W?8:0)+this.v]+(7!=this.j||this.v?0:2)}function Cg(a){var b=Le(this,a);mf(this,a,b,65535,this.Ba);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}var Dg=[7,13,13,17,14,18,17,21];
function Eg(a){var b=kf(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.I=b>>16;this.L=this.I|b;this.H=0;this.G=-32768>b||32767<b?65536:0;this.b-=23}function Fg(){this.b-=5}function Gg(){this.w&49152||(this.D.reset(),ic(this),this.ra&&this.ra.setData(this.g[0],!0));this.b-=667}function Hg(a){if(a&8)U.call(this,a);else{var b=Ee(this);a&=7;7==a?se(this,b):(se(this,this.g[a]),this.g[a]=b);this.b-=9}}
function Ig(){De(this);this.b-=13}function Jg(a){a&1&&(this.G=65536);a&2&&(this.H=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Kg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)se(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Lg(a){T(this,a,Me(this,a),Mf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Mg(a){T(this,a,0,Of);this.b-=this.v?9:3+(7==this.j?2:0)}function Ng(){this.qa(28,0,-9)}
function Og(){this.ra&&(this.ra.Fc(this.g[7],!0),this.ra.setData(this.g[0],!0));this.i|=8;xe(this,-2);this.b-=3}function Pg(a){T(this,a,this.g[(a>>6&7)+this.nc],Pf);this.b-=this.v?9:3+(7==this.j?2:0)}function U(a){var b;if(b=this.F)b=this.F,H(b,1)?(I(b,"undefined opcode "+O(b,a),!0,!0),b=ug(b)):b=!1;b||this.qa(8,0,-9)}function oe(a){Qg[a>>12].call(this,a)}function Rg(a){Sg[a>>6&3].call(this,a)}function Tg(a){Ug[a>>6&3].call(this,a)}function Vg(a){Wg[a>>6&3].call(this,a)}
function Xg(a){Yg[a&15].call(this,a)}function Zg(a){$g[a&15].call(this,a)}function ah(a){bh[a>>6&3].call(this,a)}function ch(a){dh[a>>6&3].call(this,a)}function eh(a){fh[a>>6&3].call(this,a)}
var Qg=[function(a){gh[a>>8&15].call(this,a)},Bg,pg,Zf,Vf,Xf,Qf,U,function(a){hh[a>>8&15].call(this,a)},Cg,qg,$f,Wf,Yf,Lg,U],gh=[function(a){ih[a>>4&15].call(this,a)},lg,ig,ag,bg,gg,cg,eg,zg,zg,Rg,Tg,Vg,U,U,U],Sg=[function(a){nf(this,a,0,this.hb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Af);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Ef);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Cf);this.b-=this.v?9:3+(7==this.j?2:0)}],Ug=[function(a){T(this,a,0,Gf);
this.b-=this.v?11:6},function(a){T(this,a,te(this)?1:0,qf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,te(this)?1:0,Mf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=kf(this,a);this.hb(a);this.b-=this.v?4:3+(7==this.j?2:0)}],Wg=[function(a){T(this,a,0,Kf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,If);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,uf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,sf);this.b-=this.v?9:3+(7==this.j?2:0)}],ih=
[function(a){jh[a&15].call(this,a)},U,U,U,xg,xg,xg,xg,Hg,U,Xg,Zg,Mg,Mg,Mg,Mg],jh=[tg,Og,Ig,kg,vg,Gg,U,U,U,U,U,U,U,U,U,U],Yg=[Fg,function(){this.G=0;this.b-=5},function(){this.H=0;this.b-=5},og,function(){this.L=1;this.b-=5},og,og,og,function(){this.I=0;this.b-=5},og,og,og,og,og,og,og],$g=[Fg,function(){this.G=65536;this.b-=5},function(){this.H=32768;this.b-=5},Jg,function(){this.L=0;this.b-=5},Jg,Jg,Jg,function(){this.I=32768;this.b-=5},Jg,Jg,Jg,Jg,Jg,Jg,Jg],hh=[jg,hg,dg,fg,mg,ng,Tf,Uf,sg,Ng,ah,ch,
eh,U,U,U],bh=[function(a){mf(this,a,0,255,this.hb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){lf(this,a,0,Bf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){lf(this,a,1,Ff);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){lf(this,a,1,Df);this.b-=this.v?9:3+(7==this.j?2:0)}],dh=[function(a){lf(this,a,0,Hf);this.b-=this.v?11:6},function(a){lf(this,a,te(this)?1:0,rf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){lf(this,a,te(this)?1:0,Nf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=jf(this,
a);this.hb(a<<8);this.b-=this.v?4:3+(7==this.j?2:0)}],fh=[function(a){lf(this,a,0,Lf);this.b-=this.v?9+(this.jc&1):3+(7==this.j?2:0)},function(a){lf(this,a,0,Jf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){lf(this,a,0,vf);this.b-=this.v?9+(this.jc&1):3+(7==this.j?2:0)},function(a){lf(this,a,0,tf);this.b-=this.v?9:3+(7==this.j?2:0)}];function pe(a){kh[a>>12].call(this,a)}
var kh=[function(a){lh[a>>8&15].call(this,a)},Bg,pg,Zf,Vf,Xf,Qf,function(a){mh[a>>8&15].call(this,a)},function(a){nh[a>>8&15].call(this,a)},Cg,qg,$f,Wf,Yf,Lg,U],lh=[function(a){oh[a>>4&15].call(this,a)},lg,ig,ag,bg,gg,cg,eg,zg,zg,Rg,Tg,Vg,function(a){ph[a>>6&3].call(this,a)},U,U],ph=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.ka(a|this.Ga);se(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Je(this,a,0);this.Ba(a);Ce(this,a);this.b-=11},function(a){var b=Ee(this);
this.ga=this.b;this.Ba(b);Ke(this,a,0,b);this.b=this.ga-Dg[this.v]},function(a){nf(this,a,we(this)?65535:0,this.Ba);this.b-=this.v?9:3+(7==this.j?2:0)}],oh=[function(a){qh[a&15].call(this,a)},U,U,U,xg,xg,xg,xg,Hg,function(a){!(a&8)||1145>this.ba?U.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},Xg,Zg,Mg,Mg,Mg,Mg],qh=[tg,Og,function(){De(this);this.i|=this.w&16;this.b-=13},kg,vg,Gg,Ig,function(a){U.call(this,a)},U,U,U,U,U,U,U,U],mh=[Eg,Eg,rg,rg,Rf,Rf,Sf,Sf,
Pg,Pg,U,U,U,U,Kg,Kg],nh=[jg,hg,dg,fg,mg,ng,Tf,Uf,sg,Ng,ah,ch,eh,function(a){1145>this.ba?U.call(this,a):rh[a>>6&3].call(this,a)},U,U],rh=[function(a){U.call(this,a)},function(a){a=Je(this,a,65536);this.Ba(a);Ce(this,a);this.b-=11},function(a){var b=Ee(this);this.ga=this.b;this.Ba(b);Ke(this,a,65536,b);this.b=this.ga-Dg[this.v]},function(a){U.call(this,a)}];
function sh(a){A.call(this,"ROM",a,0,128);this.ea=this.g=null;this.v=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=x(this.j);if(this.j){a=this.j;var b=wa(this.B);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,f){f?(c.O("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(sb(c.lb,a,b),(a=Ma(a,b))?(c.g=a.ca,c.ea=a.ea):c.j=null);th(c)})}}p(sh,A);
h=sh.prototype;h.ta=function(a,b,c,d){this.D=b;this.f=c;this.F=d;th(this)};h.za=function(){this.ea&&(this.F&&uh(this.F,this.id,this.v,this.b,this.ea),delete this.ea);return!0};h.ya=function(){return!0};
function th(a){if(!Bb(a)){if(a.j){if(!a.g||!a.D)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)zb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.v;a.status(a.b+"-byte ROM at "+q(b));if(57344<=b&&b<57344+Nc){var c={};b=(c[b]=[sh.prototype.Me,sh.prototype.Wf,null,null,null,a.b>>1],c);if(Xb(a.D,a,b)){b=a.w=!0;break a}}else if(Tc(a.D,b,a.b,Jd)){for(c=0;c<a.g.length;c++)bd(a.D,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?b.push(a.i):
null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.D,g=d.b,k=[],l=d.v>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.D;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}G(a)}}h.Me=function(a){return this.g[a-this.v]};h.Wf=function(){};db(function(){for(var a=E(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=xb(c),d=new sh(d);yb(d,c)}});
function vh(a){A.call(this,"RAM",a);this.ea=this.g=null;this.i=+a.addr;this.j=+a.size;this.wa=a.load;this.va=a.exec;null!=this.wa&&(this.wa=+this.wa);null!=this.va&&(this.va=+this.va);this.v=!1;this.b=a.file;this.w=x(this.b);if(this.b){a=this.b;var b=wa(this.w);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,f){f?(c.O("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(sb(c.lb,a,b),(a=Ma(a,b))?(c.g=a.ca,c.ea=a.ea,
null==c.wa&&(c.wa=a.wa),null==c.va&&(c.va=a.va)):c.b=null);wh(c)})}}p(vh,A);vh.prototype.ta=function(a,b,c,d){this.D=b;this.f=c;this.F=d;wh(this)};vh.prototype.za=function(){this.ea&&(this.F&&uh(this.F,this.id,this.i,this.j,this.ea),delete this.ea);return!0};vh.prototype.ya=function(){return!0};
function wh(a){if(a.D&&(!a.v&&a.j&&(Tc(a.D,a.i,a.j,dd)?a.v=!0:a.j=0),!Bb(a))){if(!a.v)y("No RAM allocated");else if(a.b){if(!a.g||!a.D)return;xh(a,a.g,a.wa,a.va,a.i)?a.status('Loaded image "'+a.w+'"'):a.O('Error loading image "'+a.w+'"')}G(a)}}
vh.prototype.reset=function(){if(this.v){for(var a=this.D,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Eb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.D(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&xh(this,this.g,this.wa,this.va,this.i,!0)}};
function xh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){I(a,"invalid signature ("+w(m)+") at offset "+w(n),4096);break}if(l+6>=b.length){I(a,"invalid block at offset "+w(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,u=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(u&255)+(u>>8)),t=l,D=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){I(a,"insufficient data for block at offset "+w(n),4096);break}m+=
b[l++]&255;if(m&255){I(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+w(n),4096);break}if(D)for(I(a,"loading "+w(D)+" bytes at "+w(u)+"-"+w(u+D),4096);D--;)bd(a.D,u++,b[t++]&255);else u&1?g=!0:null==d&&(d=u),null!=d&&I(a,"starting address: "+w(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)bd(a.D,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.Z(),f=!1;null!=d&&re(a.f,d,f)}return k}
db(function(){for(var a=E(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=xb(c),d=new vh(d);yb(d,c)}});function yh(a){A.call(this,"Keyboard",a,0,1024);G(this)}p(yh,A);yh.prototype.pa=function(){return!1};yh.prototype.ta=function(a,b,c,d){this.J=a;this.f=c;this.F=d};db(function(){for(var a=E(document,B,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=xb(c),d=new yh(d);yb(d,c)}});
function zh(a){A.call(this,"SerialPort",a,0,262144);this.M=+a.adapter;this.T=+a.baudReceive||9600;this.ba=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.j=this.w=null;this.W=+a.tabSize;this.V=+a.charBOL;this.B=0;this.I=!0;this.R=this.N=null;this.S=this.Y=-1;this.G=this.b=this.g=0;this.v=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Ah;b&&(void 0===c&&(c="Panel"),(c=wb(c,this.id))&&(b=c.C[b])&&this.pa(null,a,b))}this.i=this.H=this.P=null;
this.exports={connect:this.md,receiveData:this.ec,receiveStatus:this.ff,setConnection:this.jf}}p(zh,A);h=zh.prototype;
h.pa=function(a,b,c){var d=this;switch(b){case Ah:return this.C[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?sa.Lc:sa.xd:46==c?b=sa.Lc:a.ctrlKey&&c>=sa.Ic&&c<=sa.Gd&&(b=c-(sa.Ic-sa.ud));b&&(a.preventDefault&&a.preventDefault(),d.ec(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==sa.wd&&(b=sa.vd);d.ec(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ec(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;var e=this;this.R=kd(this.f,this.M?-1:48,4,262144);this.S=hd(this.f,function(){var a;a=-1;e.v.length&&(a=e.v.shift()&255,I(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),jd(e.f,e.S,1E3/Math.round(e.T/10)));0<=a&&(e.G=a,e.b&128?e.G|=49152:e.b|=128,e.b&64&&id(c,e.R))});this.N=kd(this.f,this.M?-1:52,4,262144);this.Y=hd(this.f,function(){e.g|=128;e.g&64&&id(c,e.N)});Xb(b,this,Bh,this.M?64832+8*(this.M-1)-65392:0);Zb(b,this.reset.bind(this));
G(this)};h.md=function(a){if(!this.i){var b=$d(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.kb)return;c=Ca(c[1]);if(this.i=vb(c)){var e=this.i.exports;if(e){var f=e.connect;f&&f.call(this.i,this.I);if(this.H=e.receiveData){this.I=a;this.P=e.receiveStatus;this.status(this.lb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.za=function(a,b){if(!b)if(this.md(this.I),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){Ch(this)};h.save=function(){var a=new M(this);a.set(0,[]);return a.data()};h.restore=function(){return Ch(this)};function Ch(a){a.G=0;a.b=8192;a.g=128;a.v=[];return!0}
h.ec=function(a){if("number"==typeof a)this.v.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.v.push(b)}else this.v=this.v.concat(a);jd(this.f,this.S,1E3/Math.round(this.T/10));return!0};h.ff=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&id(this.f,this.R))};h.jf=function(a,b){return this.i?!1:(this.i=a,this.H=b,!0)};
h.ze=function(){var a=this.b&65534;this.b&=-32769;return a};h.Jf=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.P&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.P.call(this.i,b))};h.ye=function(){this.b&=-129;return this.G};h.If=function(){};h.ef=function(){return this.g};h.og=function(a){this.g&128&&(a&64?id(this.f,this.N):od(this.f,this.N));this.g=this.g&-70|a&69};h.df=function(){return 0};
h.ng=function(a){a&=255;I(this,"transmitByte("+v(a,2,!0)+")");this.H&&this.H.call(this.i,a);a&=127;if(this.j)if(13==a)this.B=0;else if(8==a)this.j.value=this.j.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=Da[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.W||8,c=a-this.B%a,this.W&&(b=Ba("",c)));this.V&&!this.B&&c&&(b=String.fromCharCode(this.V)+b);this.j.value+=b;this.j.scrollTop=this.j.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==
a||1024<=this.w.length)this.u(this.w),this.w="";10!=a&&(this.w+=String.fromCharCode(a))}jd(this.f,this.Y,1E3/Math.round(this.ba/10));this.g&=-129};var Ah="buffer",Dh={},Bh=(Dh[65392]=[null,null,zh.prototype.ze,zh.prototype.Jf,"RCSR"],Dh[65394]=[null,null,zh.prototype.ye,zh.prototype.If,"RBUF"],Dh[65396]=[null,null,zh.prototype.ef,zh.prototype.og,"XCSR"],Dh[65398]=[null,null,zh.prototype.df,zh.prototype.ng,"XBUF"],Dh);
db(function(){for(var a=E(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=xb(c),d=new zh(d);yb(d,c)}});function Fd(a){A.call(this,"PC11",a);this.M=Eh(this,a.autoMount);this.g=0;this.S=+a.baudReceive||3600;this.B=this.G=this.b=0;this.w=[];this.v=Fh;this.i=Gh;this.L=this.j="";this.ca=this.wa=this.va=null;this.P=-1;this.N=!Xa("Mobi")&&window&&"FileReader"in window;this.H=null;this.R=-1;this.I=null}p(Fd,A);
function Eh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Fd.prototype;
h.pa=function(a,b,c){var d=this,e=Gh;switch(b){case "listTapes":return this.C[b]=c,c.onchange=function(){var a=d.C.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){y("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.C[b]=c,!0;case "readTape":e=Hh;case "loadTape":return e||(e=Ih),this.C[b]=c,c.onclick=
function(){var a=d.C.listTapes;a&&Jh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.N){c.parentNode.removeChild(c);break}this.C[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Jh(d,x(b,!0),b,Ih,a)}return!1};return!0;case Kh:return this.C[b]=c,!0}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;this.I=Lh(a);var e=this;if(a=Eh(this,$d(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.M[f]=a[f]);this.H=kd(this.f,56,4,4096);this.R=hd(this.f,function(){1==(e.b&32769)&&!(e.b&128)&&e.B<e.w.length&&(e.G=e.w[e.B++]&255,Mh(e,e.B/e.w.length*100),e.b|=128,e.b&=-2049,e.b&64&&id(e.f,e.H))});Xb(b,this,Nh);Zb(b,this.reset.bind(this));Oh(this,"None",Fh,!0);this.N&&Oh(this,"Local Tape",Ph);Oh(this,"Remote Tape",Qh);Rh(this)||G(this)};
h.za=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.G=0};function Rh(a){a.g=0;var b=a.M.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.C.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=x(c,!0)}c&&b?Sh(a,b,c,Ih,!0):Th(a)}return!!a.g}
function Jh(a,b,c,d,e){if(c)if(c==Ph)a.O('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Qh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=x(c);a.status("Attempting to load "+c+' as "'+b+'"');a.v=Qh}else a.v=c;Sh(a,b,c,d,!1,e)}else Uh(a,!1)}
function Sh(a,b,c,d,e,f){var g=-1;if(a.j.toLowerCase()!=c.toLowerCase()||a.i!=d)g++,Uh(a,!0),a.A.eb?a.O("PC11 busy"):(e&&(a.g++,H(a)&&I(a,"auto-loading tape: "+b)),Vh(a,b,c,d,f)?g++:a.A.eb=!0);g&&Wh(a,a.L,a.j,a.i,a.ca,a.wa,a.va)}
function Vh(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Wh(a,b,c,d,e),a.v=Ph);Th(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=wa(c),f="json"==e||"gz"==e?encodeURI(c):Na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!La(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.fa;g?a.O('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(sb(a.lb,e,f),(e=Ma(e,f))&&Wh(a,b,c,d,e.ca,e.wa,
e.va));a.A.eb=!1;a.g&&(a.g--,a.g||G(a));Th(a)})}function Oh(a,b,c,d){if((a=a.C.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Th(a){var b=a.C.listTapes;if(b&&b.options){a=a.v||a.j;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Mh(a,b){b|=0;if(b!==a.P){var c=a.C[Kh];c&&(c=(c=E(c,Xh))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function Wh(a,b,c,d,e,f,g){a.L=b;a.j=c;a.i=d;a.ca=e;a.wa=f;a.va=g;d==Hh?a.I&&xh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.O('No valid memory address for tape "'+b+'"'):(a.B=0,a.w=e,a.status('Loaded tape "'+b+'"'),Mh(a,0))}function Uh(a,b){if(a.j||!1===b)a.L="",a.j="",b||(a.i&&a.status(a.i==Ih?"tape detached":"tape unloaded"),a.v=Fh,a.i=Gh,Th(a))}h.save=function(){return(new M(this)).data()};h.restore=function(){return!0};h.se=function(){return this.b&65534};
h.Cf=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&id(this.f,this.H)):(this.b&=-129,this.b|=2048,this.G=0,jd(this.f,this.R,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.re=function(){this.b&=-129;this.b|=2048;return this.G};h.Bf=function(){};var Fh="",Ph="?",Qh="??",Gh=0,Ih=1,Hh=2,Kh="readProgress",Xh="pcjs-progress-bar",Yh={},Nh=(Yh[65384]=[null,null,Fd.prototype.se,Fd.prototype.Cf,"PRS"],Yh[65386]=[null,null,Fd.prototype.re,Fd.prototype.Bf,"PRB"],Yh);
function Zh(a,b,c){A.call(this,"Disk",{id:a.lb+".disk"+v(++$h,4)},0,8192);this.controller=a;this.J=a.J;this.F=a.F;this.v=b;this.Na=b.name;this.Aa=this.gc="";this.cc=b.cc;this.X=this.da=this.aa=this.oa=this.mode=0;this.b=[];this.i=null;this.j=!1;ai(this,c,b.X,b.da,b.aa,b.oa);this.g=this.w=null;G(this)}p(Zh,A);h=Zh.prototype;h.ta=function(a,b,c,d){this.F=d};
function ai(a,b,c,d,e,f){a.mode=b;a.X=c;a.da=d;a.aa=e;a.oa=f;a.b=[];if("preload"!=a.mode){b=Array(a.X);for(c=0;c<b.length;c++){d=Array(a.da);for(e=0;e<d.length;e++){f=Array(a.aa);for(var g=1;g<=f.length;g++)f[g-1]=bi(null,c,e,g,a.oa,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function ci(a,b,c,d,e){var f=c;if(a.g)return!0;a.Na=b;a.Aa=c;a.gc=x(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=qa[d];if(e){a.X=e[0];a.da=e[1];a.aa=e[2];a.oa=e[3]||512;c=a.oa>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.X);for(d=0;d<a.b.length;d++)for(var u=a.b[d]=Array(a.da),t=0;t<u.length;t++)for(var D=u[t]=Array(a.aa),z=0;z<D.length;z++){for(var C=bi(null,d,t,z+1,a.oa,0),F=C.data,gb=0;gb<c;gb++,f+=4)var W=F[gb]=b.getInt32(f,!0),
e=e+W&-1;C.Ja=c;D[z]=C}a.i=e;c=a}else a.O("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.v,c,a.Na,a.Aa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=wa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ya(c,"/")&&(d="dir"),f=Na()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.cc?"":e)+"&format=json"));return!!La(f,null,
!0,function(b,c,d){di(a,b,c,d)})}
function di(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.fa;a.j=!1;if(d)a.controller.O('Unable to load disk "'+a.Na+'" (error '+d+": "+b+")",f);else{sb(a.controller.lb,b,c);try{if(0<x(a.gc,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Na]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)y(k[0]);else{a.X=k.length;a.da=k[0].length;a.aa=k[0][0].length;var l=k[0][0][0];a.oa=l&&l.length||512;for(d=c=0;d<a.X;d++)for(f=0;f<a.da;f++)for(g=0;g<a.aa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var u=l.bytes;if(void 0!==u&&u.length){for(var t=m<<2,D=u.length;D<t;D++)u[D]=n;ei(l,u)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}bi(l,d,f);for(t=
0;t<r.length;t++)c=c+r[t]&-1}a.b=k;a.i=c;e=a}else y("Empty disk image: "+a.Na)}catch(z){y("Disk image error ("+b+"): "+z.message)}}a.g&&(a.g.call(a.w,a.v,e,a.Na,a.Aa),a.g=null)}function bi(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.qh=b;a.rh=c;a.Ra=a.Ja=0;a.Wa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var k=g[b];if(!k&&f.Jd&&b<f.da)for(k=g[b]=Array(f.bd),g=0;g<k.length;g++)k[g]=bi(null,a,b,g+1,f.Bc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Jd&&9==f.yc&&(d=k[g]=bi(null,a,b,f.yc,f.Bc,0))}}e&&e(d,!1);return d};function ei(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ja?f<a.Ra?(a.Ja+=a.Ra-f,a.Ra=f):f>=a.Ra+a.Ja&&(a.Ja+=f-(a.Ra+a.Ja)+1):(a.Ra=f,a.Ja=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Zh(a,b){var c=a.ca*a.aa,d=b/c|0;return d<a.W?(b%=c,a.seek(d,b/a.aa|0,b%a.aa+1)):null}function $h(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function ai(a){for(var b="",c=0,d;d=Zh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode($h(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.ya,this.i,this.W,this.ca,this.aa,this.na];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ja){for(var k=[],l=0,m=g.Ra,n=g.Ra+g.Ja;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Ra,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?Uh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.i&&e[1]!=this.i&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.i+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.b.length||l>=this.b[k].length||m>=this.b[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Ra=e;for(k.Ja=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.M("Unable to restore disk '"+this.Na+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=Zh(this,a++);)bi(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function bi(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var Th=0;function R(a){A.call(this,"RK11",a,0,65536);this.G=ci(this,a.autoMount);this.C=0;this.i=Array(8);this.H=!Na("Mobi")&&window&&"FileReader"in window;this.eb=null;this.L=this.g=this.b=this.w=this.v=this.j=this.I=0}p(R,A);
function ci(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=R.prototype;
h.oa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.B[b]=c,c.onchange=function(){var a=d.B.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.B[b]=c,c.onchange=function(){var a=la(c.value,10);null!=a&&di(d,
a)},!0;case "loadDisk":return this.B[b]=c,c.onclick=function(){var a=d.B.listDisks;a&&a.options&&ei(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.B[b]=c,c.onclick=function(){var a,b=d.B.listDrives,b=b&&la(b.value,10);null==b||0>b||b>=d.i.length||!(a=d.i[b])?d.M("Unable to boot the selected drive"):a.ha?(je(d.f,0,!0),(a=d.Vc(a,0,0,0,512,0,2))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.H){c.parentNode.removeChild(c);
break}this.B[b]=c;c.onclick=function(){var a=d.B.listDrives;a&&a.options&&d.i&&((a=d.i[la(a.value,10)||0])?(a=a.ha)?(a=Qa(ai(a),a.ec.replace(".json",".img")),Da(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.H)return this.B[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;ei(d,x(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ra=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=ci(this,Sd(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.G[e]=a[e]);yi(this);this.eb=cd(this.f,144,5,65536);Pb(b,this,Ai);Rb(b,this.reset.bind(this));Bi(this,"None",Ci,!0);this.H&&Bi(this,"Local Disk",Di);Bi(this,"Remote Disk",Ei);Fi(this)||H(this)};
h.sa=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.J.w){for(a=0;a<this.i.length;a++)Gi(this,a,!0);Fi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.B.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";di(this,0)}}return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){yi(this)};h.save=function(){return(new le(this)).data()};
h.restore=function(a){return yi(this,a[0])};function Fi(a,b){b||(a.C=0);for(var c in a.G){var d=a.G[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.B.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=x(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.i.length)){!Hi(a,g,f,e,!0)&&b&&H(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.C}
function ei(a,b,c,d){var e=a.B.listDrives,e=e&&la(e.value,10);if(void 0===e||0>e||e>=a.i.length)a.M("Unable to load the selected drive");else if(c)if(c==Di)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Ei){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=x(c);a.status("Attempting to load "+c+' as "'+b+'"')}Hi(a,e,b,c,!1,d)}else Gi(a,e)}
function Hi(a,b,c,d,e,f){var g=-1,k=a.i[b];k.ya.toLowerCase()!=d.toLowerCase()&&(g++,Gi(a,b,!0),k.qb?a.M("RK11 busy"):(k.qb=!0,e&&(k.pb=!0,a.C++,I(a)&&J(a,"auto-loading disk: "+c)),k.Ua=!!f,Wh(new Sh(a,k,"preload"),c,d,f,a.Ad)&&g++));return g}
h.Ad=function(a,b,c,d,e){a.qb=!1;b&&(b.W>a.W||b.ca>a.ca)&&(this.M('Disk "'+c+'" too large for drive '+("RK"+a.rb)),b=null);b?(a.ha=b,a.Na=c,a.ya=d,this.M('Loaded disk "'+c+'" in drive '+("RK"+a.rb),a.pb||e),this.J&&be(this.J)):a.Ua=!1;a.pb&&(a.pb=!1,--this.C||H(this));di(this,a.rb)};
function Bi(a,b,c,d){if((a=a.B.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function di(a,b){if(0<=b&&b<a.i.length){var c=a.i[b],d=a.B.listDisks;a=a.B.listDrives;if(d&&a&&d.options&&a.options&&(a=la(a.value,10),c=c.Ua?Di:c.ya,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Gi(a,b,c){var d=a.i[b];if(d.ha||!1===c)d.Na="",d.ya="",d.ha=null,d.Ua=!1,c||(a.M("Drive RK"+b+" unloaded",c),di(a,b))}
function yi(a,b){var c=0;b||(b=[]);a.L=b[c++]||2368;a.g=b[c++]||0;a.b=b[c++]||128;a.w=b[c++]||0;a.v=b[c++]||0;a.j=b[c++]||0;a.I=b[c]||0;for(b=0;b<a.i.length;b++){var d=a.i[b];void 0===d&&(d=a.i[b]={});c=a;d.rb=b;d.name=c.kb;d.qb=d.Ua=!1;d.W=203;d.ca=2;d.aa=12;d.na=512;d.ac=!0;d.Kd=0;d.Id=0;d.yc=1;d.bd=d.aa;d.Bc=d.na;d.Pd=0;d.hf=null;d.ha||(d.ya="");d.status=2368}return!0}
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ha;var n=null,r;a||(m=128,e=0);for(;e;){if(!n){if(b>=a.W){m=64;break}n=a.seek(b,c,d+1);if(!n){m=4096;break}r=0;++d>=a.aa&&(d=0,++c>=a.ca&&(c=0,++b))}var u,t;if(0>(u=a.read(n,r++))||0>(t=a.read(n,r++))){m=32;break}if(!k&&(jc(this.D,ye(this.f,f),u|t<<8),Zc(this.D))){m=1024;break}r>=a.na&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Bd=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ha;var n=null,r;a||(m=128,e=0);for(;e;){var u=lc(this.D,ye(this.f,f));if(Zc(this.D)){m=1024;break}if(!n){if(b>=a.W){m=64;break}n=a.seek(b,c,d+1,!0);if(!n){m=4096;break}r=0;++d>=a.aa&&(d=0,++c>=a.ca&&(c=0,++b))}if(k){var t,D;if(0>(t=a.read(n,r++))||0>(D=a.read(n,r++))){m=32;break}if(u!=(t|D<<8)){m=1;break}}else if(!a.write(n,r++,u&255)||!a.write(n,r++,u>>8)){m=32;break}r>=a.na&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.zd=function(a,b,c,d,e,f){this.v=f&65535;this.b=this.b&-49|f>>12&48;this.w=65536-e&65535;this.j=this.j&-16|d&15;this.g|=a;Ii(this);return!0};function Ii(a){a.b&=-32769;a.g&&(a.g|=32768,a.b|=32768,a.g&32736&&(a.b|=16384),I(a)&&J(a,a.type+": ERROR: "+q(a.g)))}h.Ee=function(){return this.L};h.Of=function(){};h.Fe=function(){return this.g};h.Pf=function(){};h.Be=function(){return this.b&61438};
h.Lf=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c,d="",e=(this.j&57344)>>13,f=this.i[e],g,k,l,m,n,r;this.b&=-8321;this.g&=-4;switch(c=this.b&14){case 0:I(this)&&J(this,this.type+": CRESET("+e+")",!0);this.g=this.j=0;this.b=128;break;case 10:d="RCHK";case 4:d||(d="READ"),b=this.Vc;case 6:d||(d="WCHK");case 2:d||(d="WRITE");b||(b=this.Bd);g=(this.j&8160)>>5;k=(this.j&16)>>4;l=this.j&15;m=65536-this.w&65535;n=(this.b&48)<<12|this.v;r=this.b&2048?0:2;I(this)&&J(this,this.type+": "+
d+"("+g+":"+k+":"+l+") "+q(n)+"--"+q(n+(m<<1)),!0,!0);if(g>=f.W){this.g|=64;break}if(l>=f.aa){this.g|=32;break}a=b.call(this,f,g,k,l,m,n,r,6<=c,this.zd.bind(this));break;case 8:g=(this.j&8160)>>5;I(this)&&J(this,this.type+": SEEK("+g+")",!0);g<f.W?this.b|=8192:this.g|=64;break;case 12:I(this)&&J(this,this.type+": DRESET("+e+")");this.g=this.j=0;this.b=8320;break;default:I(this)&&J(this,this.type+": UNSUPPORTED("+c+")")}this.L=f.status|(f.ha?128:0)|e<<13|this.j&15;Ii(this);a&&(this.b&=-2,this.b|=128,
this.b&64&&ad(this.f,this.eb))}};h.Ge=function(){return this.w};h.Qf=function(a){this.w=a};h.Ae=function(){return this.v};h.Kf=function(a){this.v=a};h.Ce=function(){return this.j};h.Mf=function(a){this.j=a};h.De=function(){return this.I};h.Nf=function(a){this.I=a};
var Ci="",Di="?",Ei="??",Ji={},Ai=(Ji[65280]=[null,null,R.prototype.Ee,R.prototype.Of,"RKDS"],Ji[65282]=[null,null,R.prototype.Fe,R.prototype.Pf,"RKER"],Ji[65284]=[null,null,R.prototype.Be,R.prototype.Lf,"RKCS"],Ji[65286]=[null,null,R.prototype.Ge,R.prototype.Qf,"RKWC"],Ji[65288]=[null,null,R.prototype.Ae,R.prototype.Kf,"RKBA"],Ji[65290]=[null,null,R.prototype.Ce,R.prototype.Mf,"RKDA"],Ji[65294]=[null,null,R.prototype.De,R.prototype.Nf,"RKDB"],Ji);
function qd(a){A.call(this,"RL11",a,0,131072);this.H=Ki(this,a.autoMount);this.G=0;this.g=Array(4);this.I=!Na("Mobi")&&window&&"FileReader"in window;this.eb=null;this.b=this.C=this.i=this.j=this.w=this.v=0}p(qd,A);function Ki(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=qd.prototype;
h.oa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.B[b]=c,c.onchange=function(){var a=d.B.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.B[b]=c,c.onchange=function(){var a=la(c.value,10);null!=a&&Li(d,
a)},!0;case "loadDisk":return this.B[b]=c,c.onclick=function(){var a=d.B.listDisks;a&&a.options&&Mi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.B[b]=c,c.onclick=function(){var a,b=d.B.listDrives,b=b&&la(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.ha?(je(d.f,0,!0),(a=d.Wc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.I){c.parentNode.removeChild(c);
break}this.B[b]=c;c.onclick=function(){var a=d.B.listDrives;a&&a.options&&d.g&&((a=d.g[la(a.value,10)||0])?(a=a.ha)?(a=Qa(ai(a),a.ec.replace(".json",".img")),Da(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.I)return this.B[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Mi(d,x(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ra=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=Ki(this,Sd(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.H[e]=a[e]);Ni(this);this.eb=cd(this.f,112,5,131072);Pb(b,this,Oi);Rb(b,this.reset.bind(this));Pi(this,"None",Qi,!0);this.I&&Pi(this,"Local Disk",Ri);Pi(this,"Remote Disk",Si);Ti(this)||H(this)};
h.sa=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.J.w){for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.B.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Li(this,0)}}return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){Ni(this)};h.save=function(){return(new le(this)).data()};
h.restore=function(a){return Ni(this,a[0])};function Ti(a,b){b||(a.G=0);for(var c in a.H){var d=a.H[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.B.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=x(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Vi(a,g,f,e,!0)&&b&&H(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.G}
function Mi(a,b,c,d){var e=a.B.listDrives,e=e&&la(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if(c==Ri)a.M('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Si){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=x(c);a.status("Attempting to load "+c+' as "'+b+'"')}Vi(a,e,b,c,!1,d)}else Ui(a,e)}
function Vi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.ya.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.qb?a.M("RL11 busy"):(k.qb=!0,e&&(k.pb=!0,a.G++,I(a)&&J(a,"auto-loading disk: "+c)),k.Ua=!!f,Wh(new Sh(a,k,"preload"),c,d,f,a.Dd)&&g++));return g}
h.Dd=function(a,b,c,d,e){a.qb=!1;b&&(b.W>a.W||b.ca>a.ca)&&(this.M('Disk "'+c+'" too large for drive '+("RL"+a.rb)),b=null);b?(a.ha=b,a.Na=c,a.ya=d,this.M('Loaded disk "'+c+'" in drive '+("RL"+a.rb),a.pb||e),this.J&&be(this.J)):a.Ua=!1;a.pb&&(a.pb=!1,--this.G||H(this));Li(this,a.rb)};
function Pi(a,b,c,d){if((a=a.B.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Li(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.B.listDisks;a=a.B.listDrives;if(d&&a&&d.options&&a.options&&(a=la(a.value,10),c=c.Ua?Ri:c.ya,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Ui(a,b,c){var d=a.g[b];if(d.ha||!1===c)d.Na="",d.ya="",d.ha=null,d.Ua=!1,c||(a.M("Drive RL"+b+" unloaded",c),Li(a,b))}
function Ni(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.C=b[c++]||0;a.i=b[c++]||0;a.j=b[c++]||0;a.w=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.rb=b;d.name=c.kb;d.qb=d.Ua=!1;d.W=512;d.ca=2;d.aa=40;d.na=256;d.ac=!0;d.Kd=0;d.Id=0;d.yc=1;d.bd=d.aa;d.Bc=d.na;d.Pd=0;d.hf=null;d.ha||(d.ya="");d.status=29}return!0}
h.Wc=function(a,b,c,d,e,f,g){var k=0;a=a.ha;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){k=5120;break}jc(this.D,ye(this.f,f),n|r<<8);if(Zc(this.D)){k=8192;break}f+=2;e--;if(m>=a.na&&(l=null,++d>=a.aa&&(d=0,++c>=a.ca&&(c=0,++b>=a.W)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Ed=function(a,b,c,d,e,f,g){var k=0;a=a.ha;var l=null,m;a||(k=5120,e=0);for(;e;){var n=lc(this.D,ye(this.f,f));if(Zc(this.D)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){k=5120;break}if(m>=a.na&&(l=null,++d>=a.aa&&(d=0,++c>=a.ca&&(c=0,++b>=a.W)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Cd=function(a,b,c,d,e,f){this.C=f&65535;this.b=this.b&-49|f>>12&48;this.v=f>>16&63;this.j=this.i=b<<7|(c?64:0)|d&63;this.w=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};h.Je=function(){return this.b&65535};
h.Tf=function(a){this.b=this.b&-1023|a&1022;this.v=this.v&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c="",d=this.g[(this.b&768)>>8],e=d.ha,f,g,k;this.b&=-2;switch(this.b&14){case 4:this.w&8&&(this.b&=63);this.w=d.status|this.j&64|(e&&512==e.W?128:0);break;case 6:1==(this.i&3)&&(b=this.i&65408,c=(this.i&16)<<2,this.j=this.i&4?this.j+b:this.j-b,this.i=this.j=this.j&65408|c);break;case 8:this.w=this.j;break;case 12:c="READ",b=this.Wc;case 10:c||(c="WRITE"),b||(b=this.Ed),f=this.i>>7,g=this.i&64?1:0,k=
this.i&63,!e||f>=e.W||k>=e.aa?this.b|=37888:(a=65536-this.w&65535,e=(this.v&63)<<16|this.C,I(this)&&J(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+q(e)+"--"+q(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,this.Cd.bind(this)))}a&&(this.b|=129,this.b&64&&ad(this.f,this.eb))}};h.He=function(){return this.C};h.Rf=function(a){this.C=a&65534};h.Ke=function(){return this.i};h.Uf=function(a){this.i=a};h.Le=function(){return this.w};h.Vf=function(a){this.w=a};h.Ie=function(){return this.v};
h.Sf=function(a){this.v=a&63;this.b=this.b&-49|(this.v&3)<<4};var Qi="",Ri="?",Si="??",Wi={},Oi=(Wi[63744]=[null,null,qd.prototype.Je,qd.prototype.Tf,"RLCS"],Wi[63746]=[null,null,qd.prototype.He,qd.prototype.Rf,"RLBA"],Wi[63748]=[null,null,qd.prototype.Ke,qd.prototype.Uf,"RLDA"],Wi[63750]=[null,null,qd.prototype.Le,qd.prototype.Vf,"RLMP"],Wi[63752]=[null,null,qd.prototype.Ie,qd.prototype.Sf,"RLBE"],Wi);
function Xi(a){A.call(this,"Debugger",a);this.xa=+a.base||16;this.da=!1;this.w=0;this.P=!1;this.v=-1;this.j=[];this.T={}}p(Xi,A);Xi.prototype.hd=function(){return-1};Xi.prototype.jd=function(){};
function Yi(a,b,c,d){if(c)if(b){0>a.v&&a.j.length&&(a.v=0);if(0>a.v||b!=a.j[a.v])a.j.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.j[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ua(b.substring(c,f))),c=f+1}}return a}
function Zi(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
function fi(a,b){var c=a.da*a.aa,d=b/c|0;return d<a.X?(b%=c,a.seek(d,b/a.aa|0,b%a.aa+1)):null}function gi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function hi(a){for(var b="",c=0,d;d=fi(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(gi(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.Aa,this.i,this.X,this.da,this.aa,this.oa];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ja){for(var k=[],l=0,m=g.Ra,n=g.Ra+g.Ja;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Ra,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?ai(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.i&&e[1]!=this.i&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.i+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.b.length||l>=this.b[k].length||m>=this.b[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Ra=e;for(k.Ja=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.O("Unable to restore disk '"+this.Na+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=fi(this,a++);)ii(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function ii(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var $h=0;function R(a){A.call(this,"RK11",a,0,65536);this.G=ji(this,a.autoMount);this.B=0;this.i=Array(8);this.H=!Xa("Mobi")&&window&&"FileReader"in window;this.fb=null;this.L=this.g=this.b=this.w=this.v=this.j=this.I=0}p(R,A);
function ji(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=R.prototype;
h.pa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.C[b]=c,c.onchange=function(){var a=d.C.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.C[b]=c,c.onchange=function(){var a=ta(c.value,10);null!=a&&Di(d,
a)},!0;case "loadDisk":return this.C[b]=c,c.onclick=function(){var a=d.C.listDisks;a&&a.options&&Fi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.C[b]=c,c.onclick=function(){var a,b=d.C.listDrives,b=b&&ta(b.value,10);null==b||0>b||b>=d.i.length||!(a=d.i[b])?d.O("Unable to boot the selected drive"):a.ia?(re(d.f,0,!0),(a=d.Vc(a,0,0,0,512,0,2))&&d.O("Unable to read the boot sector ("+a+")")):d.O("Load a disk into the drive first")},!0;case "saveDisk":if(!this.H){c.parentNode.removeChild(c);
break}this.C[b]=c;c.onclick=function(){var a=d.C.listDrives;a&&a.options&&d.i&&((a=d.i[ta(a.value,10)||0])?(a=a.ia)?(a=$a(hi(a),a.gc.replace(".json",".img")),Oa(a)):d.O("No disk loaded in drive."):d.O("No disk drive selected."))};return!0;case "mountDisk":if(this.H)return this.C[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Fi(d,x(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=ji(this,$d(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.G[e]=a[e]);Gi(this);this.fb=kd(this.f,144,5,65536);Xb(b,this,Hi);Zb(b,this.reset.bind(this));Ii(this,"None",Ji,!0);this.H&&Ii(this,"Local Disk",Ki);Ii(this,"Remote Disk",Li);Mi(this)||G(this)};
h.za=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.J.B){for(a=0;a<this.i.length;a++)Ni(this,a,!0);Mi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.C.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Di(this,0)}}return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){Gi(this)};h.save=function(){return(new M(this)).data()};
h.restore=function(a){return Gi(this,a[0])};function Mi(a,b){b||(a.B=0);for(var c in a.G){var d=a.G[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.C.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=x(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.i.length)){!Oi(a,g,f,e,!0)&&b&&G(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.B}
function Fi(a,b,c,d){var e=a.C.listDrives,e=e&&ta(e.value,10);if(void 0===e||0>e||e>=a.i.length)a.O("Unable to load the selected drive");else if(c)if(c==Ki)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Li){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=x(c);a.status("Attempting to load "+c+' as "'+b+'"')}Oi(a,e,b,c,!1,d)}else Ni(a,e)}
function Oi(a,b,c,d,e,f){var g=-1,k=a.i[b];k.Aa.toLowerCase()!=d.toLowerCase()&&(g++,Ni(a,b,!0),k.sb?a.O("RK11 busy"):(k.sb=!0,e&&(k.rb=!0,a.B++,H(a)&&I(a,"auto-loading disk: "+c)),k.Xa=!!f,ci(new Zh(a,k,"preload"),c,d,f,a.Ad)&&g++));return g}
h.Ad=function(a,b,c,d,e){a.sb=!1;b&&(b.X>a.X||b.da>a.da)&&(this.O('Disk "'+c+'" too large for drive '+("RK"+a.tb)),b=null);b?(a.ia=b,a.Na=c,a.Aa=d,this.O('Loaded disk "'+c+'" in drive '+("RK"+a.tb),a.rb||e),this.J&&je(this.J)):a.Xa=!1;a.rb&&(a.rb=!1,--this.B||G(this));Di(this,a.tb)};
function Ii(a,b,c,d){if((a=a.C.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Di(a,b){if(0<=b&&b<a.i.length){var c=a.i[b],d=a.C.listDisks;a=a.C.listDrives;if(d&&a&&d.options&&a.options&&(a=ta(a.value,10),c=c.Xa?Ki:c.Aa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Ni(a,b,c){var d=a.i[b];if(d.ia||!1===c)d.Na="",d.Aa="",d.ia=null,d.Xa=!1,c||(a.O("Drive RK"+b+" unloaded",c),Di(a,b))}
function Gi(a,b){var c=0;b||(b=[]);a.L=b[c++]||2368;a.g=b[c++]||0;a.b=b[c++]||128;a.w=b[c++]||0;a.v=b[c++]||0;a.j=b[c++]||0;a.I=b[c]||0;for(b=0;b<a.i.length;b++){var d=a.i[b];void 0===d&&(d=a.i[b]={});c=a;d.tb=b;d.name=c.kb;d.sb=d.Xa=!1;d.X=203;d.da=2;d.aa=12;d.oa=512;d.cc=!0;d.Kd=0;d.Id=0;d.yc=1;d.bd=d.aa;d.Bc=d.oa;d.Pd=0;d.hf=null;d.ia||(d.Aa="");d.status=2368}return!0}
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ia;var n=null,r;a||(m=128,e=0);for(;e;){if(!n){if(b>=a.X){m=64;break}n=a.seek(b,c,d+1);if(!n){m=4096;break}r=0;++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b))}var u,t;if(0>(u=a.read(n,r++))||0>(t=a.read(n,r++))){m=32;break}if(!k&&(rc(this.D,Fe(this.f,f),u|t<<8),gd(this.D))){m=1024;break}r>=a.oa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Bd=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ia;var n=null,r;a||(m=128,e=0);for(;e;){var u=Ec(this.D,Fe(this.f,f));if(gd(this.D)){m=1024;break}if(!n){if(b>=a.X){m=64;break}n=a.seek(b,c,d+1,!0);if(!n){m=4096;break}r=0;++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b))}if(k){var t,D;if(0>(t=a.read(n,r++))||0>(D=a.read(n,r++))){m=32;break}if(u!=(t|D<<8)){m=1;break}}else if(!a.write(n,r++,u&255)||!a.write(n,r++,u>>8)){m=32;break}r>=a.oa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.zd=function(a,b,c,d,e,f){this.v=f&65535;this.b=this.b&-49|f>>12&48;this.w=65536-e&65535;this.j=this.j&-16|d&15;this.g|=a;Pi(this);return!0};function Pi(a){a.b&=-32769;a.g&&(a.g|=32768,a.b|=32768,a.g&32736&&(a.b|=16384),H(a)&&I(a,a.type+": ERROR: "+q(a.g)))}h.Ee=function(){return this.L};h.Of=function(){};h.Fe=function(){return this.g};h.Pf=function(){};h.Be=function(){return this.b&61438};
h.Lf=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c,d="",e=(this.j&57344)>>13,f=this.i[e],g,k,l,m,n,r;this.b&=-8321;this.g&=-4;switch(c=this.b&14){case 0:H(this)&&I(this,this.type+": CRESET("+e+")",!0);this.g=this.j=0;this.b=128;break;case 10:d="RCHK";case 4:d||(d="READ"),b=this.Vc;case 6:d||(d="WCHK");case 2:d||(d="WRITE");b||(b=this.Bd);g=(this.j&8160)>>5;k=(this.j&16)>>4;l=this.j&15;m=65536-this.w&65535;n=(this.b&48)<<12|this.v;r=this.b&2048?0:2;H(this)&&I(this,this.type+": "+
d+"("+g+":"+k+":"+l+") "+q(n)+"--"+q(n+(m<<1)),!0,!0);if(g>=f.X){this.g|=64;break}if(l>=f.aa){this.g|=32;break}a=b.call(this,f,g,k,l,m,n,r,6<=c,this.zd.bind(this));break;case 8:g=(this.j&8160)>>5;H(this)&&I(this,this.type+": SEEK("+g+")",!0);g<f.X?this.b|=8192:this.g|=64;break;case 12:H(this)&&I(this,this.type+": DRESET("+e+")");this.g=this.j=0;this.b=8320;break;default:H(this)&&I(this,this.type+": UNSUPPORTED("+c+")")}this.L=f.status|(f.ia?128:0)|e<<13|this.j&15;Pi(this);a&&(this.b&=-2,this.b|=128,
this.b&64&&id(this.f,this.fb))}};h.Ge=function(){return this.w};h.Qf=function(a){this.w=a};h.Ae=function(){return this.v};h.Kf=function(a){this.v=a};h.Ce=function(){return this.j};h.Mf=function(a){this.j=a};h.De=function(){return this.I};h.Nf=function(a){this.I=a};
var Ji="",Ki="?",Li="??",Qi={},Hi=(Qi[65280]=[null,null,R.prototype.Ee,R.prototype.Of,"RKDS"],Qi[65282]=[null,null,R.prototype.Fe,R.prototype.Pf,"RKER"],Qi[65284]=[null,null,R.prototype.Be,R.prototype.Lf,"RKCS"],Qi[65286]=[null,null,R.prototype.Ge,R.prototype.Qf,"RKWC"],Qi[65288]=[null,null,R.prototype.Ae,R.prototype.Kf,"RKBA"],Qi[65290]=[null,null,R.prototype.Ce,R.prototype.Mf,"RKDA"],Qi[65294]=[null,null,R.prototype.De,R.prototype.Nf,"RKDB"],Qi);
function Gd(a){A.call(this,"RL11",a,0,131072);this.H=Ri(this,a.autoMount);this.G=0;this.g=Array(4);this.I=!Xa("Mobi")&&window&&"FileReader"in window;this.fb=null;this.b=this.B=this.i=this.j=this.w=this.v=0}p(Gd,A);function Ri(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Gd.prototype;
h.pa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.C[b]=c,c.onchange=function(){var a=d.C.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.C[b]=c,c.onchange=function(){var a=ta(c.value,10);null!=a&&Si(d,
a)},!0;case "loadDisk":return this.C[b]=c,c.onclick=function(){var a=d.C.listDisks;a&&a.options&&Ti(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.C[b]=c,c.onclick=function(){var a,b=d.C.listDrives,b=b&&ta(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.O("Unable to boot the selected drive"):a.ia?(re(d.f,0,!0),(a=d.Wc(a,0,0,0,512,0))&&d.O("Unable to read the boot sector ("+a+")")):d.O("Load a disk into the drive first")},!0;case "saveDisk":if(!this.I){c.parentNode.removeChild(c);
break}this.C[b]=c;c.onclick=function(){var a=d.C.listDrives;a&&a.options&&d.g&&((a=d.g[ta(a.value,10)||0])?(a=a.ia)?(a=$a(hi(a),a.gc.replace(".json",".img")),Oa(a)):d.O("No disk loaded in drive."):d.O("No disk drive selected."))};return!0;case "mountDisk":if(this.I)return this.C[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ti(d,x(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=Ri(this,$d(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.H[e]=a[e]);Ui(this);this.fb=kd(this.f,112,5,131072);Xb(b,this,Vi);Zb(b,this.reset.bind(this));Wi(this,"None",Xi,!0);this.I&&Wi(this,"Local Disk",Yi);Wi(this,"Remote Disk",Zi);$i(this)||G(this)};
h.za=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.J.B){for(a=0;a<this.g.length;a++)aj(this,a,!0);$i(this,!0)}}else if(!this.restore(a))return!1;if(a=this.C.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Si(this,0)}}return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){Ui(this)};h.save=function(){return(new M(this)).data()};
h.restore=function(a){return Ui(this,a[0])};function $i(a,b){b||(a.G=0);for(var c in a.H){var d=a.H[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.C.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=x(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!bj(a,g,f,e,!0)&&b&&G(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.G}
function Ti(a,b,c,d){var e=a.C.listDrives,e=e&&ta(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.O("Unable to load the selected drive");else if(c)if(c==Yi)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Zi){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=x(c);a.status("Attempting to load "+c+' as "'+b+'"')}bj(a,e,b,c,!1,d)}else aj(a,e)}
function bj(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Aa.toLowerCase()!=d.toLowerCase()&&(g++,aj(a,b,!0),k.sb?a.O("RL11 busy"):(k.sb=!0,e&&(k.rb=!0,a.G++,H(a)&&I(a,"auto-loading disk: "+c)),k.Xa=!!f,ci(new Zh(a,k,"preload"),c,d,f,a.Dd)&&g++));return g}
h.Dd=function(a,b,c,d,e){a.sb=!1;b&&(b.X>a.X||b.da>a.da)&&(this.O('Disk "'+c+'" too large for drive '+("RL"+a.tb)),b=null);b?(a.ia=b,a.Na=c,a.Aa=d,this.O('Loaded disk "'+c+'" in drive '+("RL"+a.tb),a.rb||e),this.J&&je(this.J)):a.Xa=!1;a.rb&&(a.rb=!1,--this.G||G(this));Si(this,a.tb)};
function Wi(a,b,c,d){if((a=a.C.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Si(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.C.listDisks;a=a.C.listDrives;if(d&&a&&d.options&&a.options&&(a=ta(a.value,10),c=c.Xa?Yi:c.Aa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function aj(a,b,c){var d=a.g[b];if(d.ia||!1===c)d.Na="",d.Aa="",d.ia=null,d.Xa=!1,c||(a.O("Drive RL"+b+" unloaded",c),Si(a,b))}
function Ui(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.B=b[c++]||0;a.i=b[c++]||0;a.j=b[c++]||0;a.w=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.tb=b;d.name=c.kb;d.sb=d.Xa=!1;d.X=512;d.da=2;d.aa=40;d.oa=256;d.cc=!0;d.Kd=0;d.Id=0;d.yc=1;d.bd=d.aa;d.Bc=d.oa;d.Pd=0;d.hf=null;d.ia||(d.Aa="");d.status=29}return!0}
h.Wc=function(a,b,c,d,e,f,g){var k=0;a=a.ia;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){k=5120;break}rc(this.D,Fe(this.f,f),n|r<<8);if(gd(this.D)){k=8192;break}f+=2;e--;if(m>=a.oa&&(l=null,++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b>=a.X)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Ed=function(a,b,c,d,e,f,g){var k=0;a=a.ia;var l=null,m;a||(k=5120,e=0);for(;e;){var n=Ec(this.D,Fe(this.f,f));if(gd(this.D)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){k=5120;break}if(m>=a.oa&&(l=null,++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b>=a.X)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Cd=function(a,b,c,d,e,f){this.B=f&65535;this.b=this.b&-49|f>>12&48;this.v=f>>16&63;this.j=this.i=b<<7|(c?64:0)|d&63;this.w=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};h.Je=function(){return this.b&65535};
h.Tf=function(a){this.b=this.b&-1023|a&1022;this.v=this.v&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c="",d=this.g[(this.b&768)>>8],e=d.ia,f,g,k;this.b&=-2;switch(this.b&14){case 4:this.w&8&&(this.b&=63);this.w=d.status|this.j&64|(e&&512==e.X?128:0);break;case 6:1==(this.i&3)&&(b=this.i&65408,c=(this.i&16)<<2,this.j=this.i&4?this.j+b:this.j-b,this.i=this.j=this.j&65408|c);break;case 8:this.w=this.j;break;case 12:c="READ",b=this.Wc;case 10:c||(c="WRITE"),b||(b=this.Ed),f=this.i>>7,g=this.i&64?1:0,k=
this.i&63,!e||f>=e.X||k>=e.aa?this.b|=37888:(a=65536-this.w&65535,e=(this.v&63)<<16|this.B,H(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+q(e)+"--"+q(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,this.Cd.bind(this)))}a&&(this.b|=129,this.b&64&&id(this.f,this.fb))}};h.He=function(){return this.B};h.Rf=function(a){this.B=a&65534};h.Ke=function(){return this.i};h.Uf=function(a){this.i=a};h.Le=function(){return this.w};h.Vf=function(a){this.w=a};h.Ie=function(){return this.v};
h.Sf=function(a){this.v=a&63;this.b=this.b&-49|(this.v&3)<<4};var Xi="",Yi="?",Zi="??",cj={},Vi=(cj[63744]=[null,null,Gd.prototype.Je,Gd.prototype.Tf,"RLCS"],cj[63746]=[null,null,Gd.prototype.He,Gd.prototype.Rf,"RLBA"],cj[63748]=[null,null,Gd.prototype.Ke,Gd.prototype.Uf,"RLDA"],cj[63750]=[null,null,Gd.prototype.Le,Gd.prototype.Vf,"RLMP"],cj[63752]=[null,null,Gd.prototype.Ie,Gd.prototype.Sf,"RLBE"],cj);
function dj(a){A.call(this,"Debugger",a);this.xa=+a.base||16;this.ga=!1;this.w=0;this.P=!1;this.v=-1;this.j=[];this.T={}}p(dj,A);dj.prototype.hd=function(){return-1};dj.prototype.jd=function(){};
function ej(a,b,c,d){if(c)if(b){0>a.v&&a.j.length&&(a.v=0);if(0>a.v||b!=a.j[a.v])a.j.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.j[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}
function fj(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function $i(a,b,c){var d;if(b){b=aj(a,b);for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=ua(n);if(!n){f=!0;break}n=bj(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}k.push(n);if(e==m.length)break;var n=m[e++],u=n.length;l.length&&cj[n]<cj[l[l.length-1]]&&Zi(k,l,1);l.push(n);b=b.substr(r+u)}Zi(k,l)&&1==k.length||(f=!0);f?c&&a.u("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),c&&dj(a,null,
d))}return d}function aj(a,b){for(var c,d=a.da?"(":"{",e=a.da?")":"}",f=new RegExp(a.da?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=$i(a,c[1]);b=b.replace(d+c[1]+e,null!=g?O(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function bj(a,b,c,d){var e;null!=b?(e=a.hd(b),0<=e?e=a.jd(e):(e=a.T[b],null==e&&(e=la(b,a.xa))),null!=e||d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return e}function dj(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var k=0;k<f;k++)g&&(g=","+g),g=ma(d&255,8)+g,d>>=8;d=v(c,0,!0)+" "+c+". "+q(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}
function ej(a,b){if(b)return dj(a,b,a.T[b]);var c=0;for(b in a.T)dj(a,b,a.T[b]),c++;return 0<c}function O(a,b,c,d){switch(a.xa){case 8:a=q(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=v(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}var cj={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function fj(a){Xi.call(this,a);this.Da=!1;this.da=!0;this.H=W();this.Ba=W();this.O=W();this.C=[];this.g=this.L=this.G=[];gj(this);this.R=this.Y=0;this.i=[];this.pa=void 0;hj(this);this.F=this;this.la={};this.ga=this.cd=0;this.S=null;this.N=[];ij(this,a.messages);this.ua=a.commands;this.Ga=jj;this.Aa=[];this.I=0;this.Ha=this.qa=null;this.w=this.Fa=this.Ea=this.X=this.ma=0;this.b=this.V=null;var b=this;window?void 0===window[E]&&(window[E]=function(a){return Xd(b,a)}):void 0===global[E]&&(global[E]=
function(a){return Xd(b,a)})}p(fj,Xi);function kj(a){a=a&&a.K;null==a&&(a=-1);return a}function W(a,b,c){return{K:void 0===a?null:a,Ka:void 0===b?!1:b,Qa:!1,xa:c}}h=fj.prototype;h.Fc=function(a,b){a.K=b;a.Qa=!1;a.xa=void 0;return a};function lj(a){return[a.K,a.Ka,a.xa,a.Qa,a.dc]}function mj(a,b){var c=W(b[0],b[1],b[2]);c.Qa=b[3];b[4]&&(c.$c=Yi(a,c.dc=b[4]));return c}
h.ra=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.b=a.i;(a=Sd(a,"messages"))&&ij(this,a);1145>this.f.Aa&&(this.Aa=nj);ed(this,16,function(a){a:{var b=d.D.b,c=a[0],e=a=0,l=b.length;if(c){a=kj(oj(d,c));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.D.g;l=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.u("..."):(c=n.type,m=Qc[c],n&&d.u(v(n.id,8)+" %"+v(e<<d.D.g,8)+
" %"+v(n.K,8)+" "+w(n.Hb)+" "+w(n.size)+" "+m),c!=sd&&(c=-1),m=0);a+=d.D.j;e++}}});H(this)};
h.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.B[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Xd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.j.length-1&&(b=d.j[++d.v])):40==a.keyCode&&(0<d.v?b=d.j[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.B[b]=c,Sa(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";Xd(d,a,!0);return!0}return!1}),!0;case "step":return this.B[b]=c,Sa(c,function(a){var b=!1;ub(d,!0)||(vb(d,!0),b=dc(d,a?1:0,null),vb(d,!1));return b}),!0}return!1};function Wd(a){if(a.V){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.V.focus();window&&window.scrollTo(b,c)}}h.Mc=function(a,b){var c=255,d=kj(a);-1!==d&&(a.Ka||65535<d?(c=this.D,d=ye(this.f,d),c.G=!1,c.ia++,d=Sc(c,d).j(d&c.i,d),c.ia--):(c=this.f,c.ma++,d=c.D.Jc(kc(c,d,3)),c.ma--),c=d,b&&pj(a,b));return c};
h.Oa=function(a,b){var c=65535,d=kj(a);-1!==d&&(c=a.Ka||65535<d?lc(this.D,ye(this.f,d)):mc(this.f,d),b&&pj(a,b));return c};h.Nc=function(a,b,c){var d=kj(a);if(-1!==d){if(a.Ka||65535<d)Tc(this.D,ye(this.f,d),b);else{var e=this.f;e.ma++;e.D.Kc(kc(e,d,5),b);e.ma--}c&&pj(a,c);L(this.J,-1)}};h.yd=function(a,b,c){var d=kj(a);if(-1!==d){if(a.Ka||65535<d)jc(this.D,ye(this.f,d),b);else{var e=this.f;e.ma++;e.D.Lb(kc(e,d,4),b);e.ma--}c&&pj(a,c);L(this.J,-1)}};
function oj(a,b,c){var d;c=(c?a.H:a.Ba).K;var e,f;if(void 0!==b){b=aj(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,k;a:{c=a.D;var l;l=d.toUpperCase();for(k in c.Ma){var m=+k;if(c.Ma[m][4]==l){k=c.C+m;break a}}k=null}if(null==k&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.C.length;c++)if(l=a.C[c].ea[d],null!=l){k=l.o;break}null!=k&&(g=W(k));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=$i(a,b,void 0)}null!=c&&(d=W(c,e,f));return d}
function qj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.$c=Yi(a,b.dc=c[2]))}function pj(a,b){null!=a.K&&(a.K+=b||1)}function rj(a,b){return(b.Ka?"%":"")+O(a,b.K)}
function ij(a,b){a.F=a;a.ga=a.cd=536870912;a.S=null;a.N=[];b=Yi(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Eb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ga|=Eb[c],a.u(c+" messages enabled"))}}function ed(a,b,c){for(var d in Eb)if(b==Eb[d]){a.la[d]=c;break}}
h.hd=function(a){a=a.toUpperCase();var b=sj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function tj(a){return 6>a?"R"+a:6==a?"SP":"PC"}
h.jd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.qa[a-8];else if(20>a)b=this.f.X[a-16];else{var c=this.f,d=this.b;switch(a){case uj:b=nd(this.f);break;case vj:b=c.bb;break;case wj:b=c.R;break;case xj:b=c.Ba&65280;break;case yj:b=hd(c);break;case zj:b=jd(c);break;case Aj:b=kd(c);break;case Bj:b=c.T;break;case Cj:d&&(b=d.ta);break;case Dj:d&&(b=d.tb);break;case Ej:d&&qc(d)&&(b=d.Va)}}return b};
h.message=function(a,b){b&&(a+=" @"+rj(this,W(this.f.P&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ga&1073741824)this.N.push(a);else{var c;if(this.ga&-2147483648&&this.f&&(c=this.f.A.U)||ub(this,!0))this.Z(),c&&(a+=" (cpu halted)");this.u(a);this.f&&(a=this.f,ce(a),a.hb=0,a.J&&L(a.J,void 0))}};
function hj(a){var b;if(!gf(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(Fj);for(b=0;b<a.i.length;b++)a.i[b]=W();a.R=0;a.u("instruction history buffer allocated")}}function Gj(a,b,c){if(!Hj(a,c))return!1;cc(a.f,b);return!0}
function dc(a,b,c,d){if(!Hj(a))return!1;null===c&&(c=!a.qa||"tr"==a.qa);a.w=0;b||gf(a)&&hf(a,a.f.g[7],0);try{b=de(a.f,b);var e=a.f.$b(b);0<e&&(ec(a.f,e),a.w+=e,fc(a.f,e,!0),gc(a.f,e),a.X++)}catch(f){"number"!=typeof f&&(a.w=0,rb(a.f,f.stack||f.message))}!1!==d&&(a.b&&a.b.stop(),L(a.J,-1));Vd(a,c||!1);return 0<a.w}h.Z=function(a){this.f&&this.f.Z(a)};
function Vd(a,b){if(a.Da){void 0===b&&(b=!0);var c;c=a.f;if(c=c.i&128?c.Zc|c.Yc<<8:0){var d=c>>8;a.u("trapped to "+O(a,c&255,1)+" ("+(0>d?Cb[-d]:O(a,d))+")")}a.H=W(a.f.g[7]);b&&1!=a.I?Ij(a):Jj(a)}}function Hj(a,b){var c;(c=!a.f||!tb(a.f))||(c=a.f,c.A.fa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.U?(b||a.u("cpu busy or unavailable, command ignored"),!1):!sb(a.f)}h.sa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
h.Ca=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){hj(this);this.X=0;this.S=null;this.w=0;this.H=W(this.f.g[7]);this.A.U=!1;Kj(this);a||Vd(this)};h.save=function(){var a=new le(this);a.set(0,lj(this.H));a.set(1,lj(this.O));a.set(2,[this.j,this.P,this.ga]);a.set(3,this.C);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.H=mj(this,a[b++]),this.O=mj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ga|=a[b][2]);a[3]&&(this.C=a[3]);return!0};h.start=function(a,b){this.I||this.u("running");this.A.U=!0;this.Ea=a;this.Fa=b};
h.stop=function(a,b){if(this.A.U){this.A.U=!1;this.w=b-this.Fa;if(!this.I){b="stopped";if(this.w){a-=this.Ea;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";gf(this)&&(b+=this.X+" instructions, ",this.X=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else I(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}Vd(this,!0);Wd(this);Kj(this,this.f.g[7]);this.S=null}};function gf(a){return 1<a.g.length||!!a.Y}
function hf(a,b,c){var d=-1;c||(d=mc(a.f,b))||(a.f.P&65535)!=b||(b=qe(a.f,2));if(0<c&&(a.Y&&!--a.Y||Lj(a,b,1,a.g)))return!0;0<=c&&a.i.length&&(a.X++,0>d&&(d=mc(a.f,b)),65535!=(d&65535)&&(a.Fc(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function ng(a){var b=a.f;if(b.A.U)throw ke(b,a.f.P&65535),a.Z(),-1;return!1}function Md(a,b,c){Lj(a,b,c||1,a.L)&&a.Z(!0)}function Nd(a,b,c){Lj(a,b,c||1,a.G)&&a.Z(!0)}
function gj(a){var b,c,d;a.g=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=kj(c),c.Ka?(c=a.D,Ld(c.b[d>>>c.g],!1)):Be(a.f,!1);a.L=["br"];if(a.G)for(b=1;b<a.G.length;b++)c=a.G[b],d=kj(c),c.Ka?(c=a.D,Ld(c.b[d>>>c.g],!0)):Be(a.f,!0);a.G=["bw"];a.ma=0}
h.ob=function(a,b,c){var d=!0;c||Mj(this,a,b,!1,!0);if(a!=this.g){var e=kj(b);if(-1===e)this.u("invalid address: "+rj(this,b)),d=!1;else{var f=a==this.G;65535<e&&(b.Ka=!0);if(b.Ka){var g=this.D;g.b[e>>>g.g].ob(e&g.i,f)}else e=this.f,(f?e.Vb++:e.Tb++)||ie(e)}}d&&(a.push(b),c?b.Qa=!0:(Nj(this,a,a.length-1,"set"),hj(this)));return d};
function Mj(a,b,c,d,e){var f=!1;c=kj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==kj(k)&&(!d||k.Qa)){f=!0;k.Qa||e||Nj(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(b=b==a.G,k.Ka?(d=a.D,Ld(d.b[c>>>d.g],b)):Be(a.f,b));k.Qa||hj(a);break}}return f}function Oj(a,b){for(var c=1;c<b.length;c++)Nj(a,b,c);return b.length-1}function Nj(a,b,c,d){c=b[c];a.u(b[0]+" "+rj(a,c)+(d?" "+d:c.dc?' "'+c.dc+'"':""))}
function Kj(a,b){if(void 0!==b)Lj(a,b,1,a.g,!0),a.I=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Qa){if(!Mj(a,a.g,c,!0))break;b=0}}}
function Lj(a,b,c,d,e){var f=!1;if(!a.ma++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Qa)for(var l=kj(k)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Qa&&(Mj(a,d,k,!0),e=!0);if(n=k.$c){for(var f=!1,r=0;r<n.length;r++)if(!Pj(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.f.A.U||(f=!0)}if(f){e||Nj(a,d,g,"hit");break}}}a.ma--;return f}
function Qj(a,b,c,d){var e=W(b.K),f=a.Oa(b,2),g,k;for(k in a.Ga)if(g=a.Ga[k][f&k])break;g||(g=Rj);var l=g[0];0<=a.Aa.indexOf(l)&&(g=Rj,l=g[0]);var m=k="",n=Sj[l],r=g.length-1;l||r||(k=O(a,f));for(l=1;l<=r;l++){var u=g[l];if(void 0!==u){var t;t=a;var D=u,u=b,z="",C=D&Tj;if(C==X)u=u.K+((f&255)<<24>>23)&65535,z=O(t,u);else if(C==Uj)u=u.K-((f&63)<<1)&65535,z=O(t,u);else if(C==Vj)z=O(t,f&7,1);else if(C==Wj)z=O(t,f&63,1);else if(C==Xj)z=O(t,f&255,1);else if(C=f&D,D&Yj&&(C>>=6,D>>=6),D&Y){var D=null,F=C&
Zj;switch(C&ak){case 0:z=tj(F);break;case 8:z="@"+tj(F);D=bk(t,t.f.g[F]);break;case 16:7>F?z="("+tj(F)+")+":(C=t.Oa(u,2),z="#"+O(t,C,0,!0));break;case 24:7>F?z="@("+tj(F)+")+":(C=t.Oa(u,2),z="@#"+O(t,C,0,!0),D=bk(t,C));break;case 32:z="-("+tj(F)+")";break;case 40:z="@-("+tj(F)+")";break;case 48:C=t.Oa(u,2);z=O(t,C,0,!0)+"("+tj(F)+")";7==F&&(z=O(t,C=C+u.K&65535),D=bk(t,C));break;case 56:C=t.Oa(u,2),z="@"+O(t,C)+"("+tj(F)+")",7==F&&(z="@"+O(t,C=C+u.K&65535),D=bk(t,mc(t.f,C)))}D&&(z=[z,D])}t=z;if(!t||
!t.length){k="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<k.length&&(k+=",");k+=t||"???"}}f="";g=rj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+O(a,a.Oa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ta(f,24);g+=ta(n,5);k&&(g+=" "+k);if(c||m)g=ta(g,60)+";"+(c||""),g=a.f.A.zb?g+("cycles="+Yd(a.f).toString()+" cs="+v(a.f.Qb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function bk(a,b){b=ze(a.f,b)[0];b>=a.f.ib&&b<a.D.C&&(b=b-a.f.ib+a.D.C);var c=a.D;a=null;b>=c.C&&(b=c.Ma[b&Yc])&&(a=b[4]);return a}function ck(a,b){switch(b){case "N":a=pe(a.f);break;case "Z":a=oe(a.f);break;case "V":a=ne(a.f);break;case "C":a=me(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.f;if(8>b)c=tj(b),c+="="+O(a,d.g[b]);else if(13>b)c="A"+(b-8)+"="+O(a,d.qa[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+O(a,d.X[b-16]);else switch(b){case uj:c="PS="+O(a,nd(d));break;case vj:c="PI="+O(a,d.bb);break;case wj:c="ER="+O(a,d.R);break;case xj:c="SL="+O(a,d.Ba&65280);break;case yj:c="M0="+O(a,hd(d));break;case zj:c="M1="+O(a,jd(d));break;case Aj:c="M2="+O(a,kd(d));break;case Bj:c="M3="+O(a,d.T);break;case Cj:a.b&&(c="AR="+O(a,a.b.ta,3));break;case Dj:a.b&&(c="DR="+
O(a,a.b.tb));break;case Ej:a.b&&qc(a.b)&&(c="SR="+O(a,a.b.Va,3))}c&&(c+=" ");return c}function dk(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,uj)+Z(a,vj)+Z(a,xj);d+=ck(a,"T")+ck(a,"N")+ck(a,"Z")+ck(a,"V")+ck(a,"C");b&&(b=d,c=""+(Z(a,yj)+Z(a,zj)),c+=Z(a,Aj)+Z(a,Bj)+Z(a,wj),c=c+"\n"+(Z(a,Ej)+Z(a,Cj)+Z(a,Dj)),d=b+("\n"+c));return d}h.dd=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function nh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=xa(n,l,a.dd);0>r&&n.splice(-(r+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.C.push({xh:b,K:c,Qd:d,ea:e,ad:f})}function ek(a,b,c){var d=[],e=kj(b)>>>0;for(b=0;b<a.C.length;b++){var f=a.C[b],g=f.K>>>0,k=f.Qd;if(e>=g&&e<g+k){e=xa(f.ad,[e-g],a.dd);0<=e?fk(a,b,e,d):c&&(e=~e,fk(a,b,e-1,d),fk(a,b,e,d));break}}return d}
function fk(a,b,c,d){var e={},f=a.C[b].ad,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.C[b].ea[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function gk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ej(a)||a.u("no variables"),!0;if(!c[2])return ej(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=$i(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function hk(a,b,c){var d=null;if(b=oj(a,b,!0)){var e=ek(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+w(f)),f=e[0]+" ("+O(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+w(f)),f=e[4]+" ("+O(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function Ij(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=$i(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":ke(e,
g);a.H=W(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.H=g?32768:0;break;case "C":e.G=g?65536:0;break;case "PS":od(e,g);break;case "PI":md(e,g);break;case "ER":e.R=g;d=!0;break;case "SL":e.Ba=g|255;break;case "M0":id(e,g);d=!0;break;case "M3":ld(e,g);d=!0;break;case "AR":a.b&&(d=a.b,nc(d,d.ta=g));d=!0;break;case "DR":a.b&&(d=a.b,ic(d,d.tb=g));d=!0;break;case "SR":if(a.b&&qc(a.b)){oc(a.b,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=
g&65535;break}a.u("unknown register: "+f);return}L(a.J);a.u("updated registers:")}}a.u(dk(a,d));c&&(a.H=W(e.g[7]),Jj(a,rj(a,a.H)))}}function ik(a,b){b=ua(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):dj(a,null,c[2].charCodeAt(0)):$i(a,b,!0)}
function jk(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=bj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.qa=b;Ra(c,function(){return vb(a,!0)&&dc(a,e,d,!1)},function(){a.b&&a.b.stop();L(a.J,-1);vb(a,!1)})}}
function Jj(a,b,c,d){if(b=oj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=bj(a,c.substr(1)),null!=c&&(d=c);else{d=oj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.u("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ub(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=ek(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.u(m)}k[3]&&(g=k[3],f=null);f=Qj(a,b,g,f);a.u(f);a.H=b;e-=b.K-l;c++}}}
function Pj(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(">> "+b):(a.P&&(a.u("ended assemble at "+rj(a,a.O)),a.H=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(tb(a)&&0<b.length){a.P&&(b="a "+rj(a,a.O)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
oj(a,g[1],!0);if(r)if(a.O=r,void 0===g[2])a.u("begin assemble at "+rj(a,r)),a.P=!0,L(a.J);else{var u;a.u("not supported yet");u=[];if(u.length){for(var t=0;t<u.length;t++)a.Nc(r,u[t],1);a.u(Qj(a,a.O))}}break;case "b":a:{var D=g[0],z=g[1],C=b;if("?"==z)a.u("breakpoint commands:"),a.u("\tbp [#]\tset exec breakpoint at addr #"),a.u("\tbr [#]\tset read breakpoint at addr #"),a.u("\tbw [#]\tset write breakpoint at addr #"),a.u("\tbc [#]\tclear breakpoint at addr #"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");
else{var F=D.charAt(1);if("l"==F){var fb;fb=0+Oj(a,a.g);fb+=Oj(a,a.L);(fb+=Oj(a,a.G))||a.u("no breakpoints")}else if("n"==F)a.Y=bj(a,z),a.u("break after "+a.Y+" instruction(s)");else if(void 0===z)a.u("missing breakpoint address");else{var V=W();if("*"!=z&&(V=oj(a,z,!0),!V))break a;"c"==F?null==V.K?(gj(a),a.u("all breakpoints cleared")):Mj(a,a.g,V)||Mj(a,a.L,V)||Mj(a,a.G,V)||a.u("breakpoint missing: "+rj(a,V)):null!=V.K&&(qj(a,V,C),"p"==F?a.ob(a.g,V):"r"==F?a.ob(a.L,V):"w"==F?a.ob(a.G,V):a.u("unknown breakpoint command: "+
F))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var Gb,Ua=g[0],Ga=g[1],Va=g[2],Jk=g[3];if("?"==Ga){var Hb="";for(Gb in Eb)a.la[Gb]&&(Hb&&(Hb+=","),Hb+=Gb);Hb+=",state,symbols";a.u("dump memory commands:");a.u("\tda [a] dump info for address a");a.u("\tdb [a] [n] dump n bytes at address a");a.u("\tdw [a] [n] dump n words at address a");a.u("\tdd [a] [n] dump n dwords at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");
Hb.length&&a.u("dump extension commands:\n\t"+Hb)}else if("state"==Ga){var Le=kk(a.J,!0);"console"==Va?console.log(Le):(a.Pa&&(a.Pa.value=""),Le&&a.u(Le))}else if("symbols"==Ga)for(var Me=0;Me<a.C.length;Me++){var Ne=a.C[Me],Ib;for(Ib in Ne.ea)if("."!=Ib.charAt(0)){var fi=Ne.ea[Ib].o;if(void 0!==fi){var gi=Ne.ea[Ib].l;gi&&(Ib=gi);a.u(O(a,fi)+" "+Ib)}}}else{if("d"==Ua){for(Gb in Eb)if(g[1]==Gb){var hi=a.la[Gb];hi?(g.shift(),g.shift(),hi(g)):a.u("no dump registered for "+Ga);break a}Ga||(Ua=a.Ha||"dw")}else a.Ha=
Ua;if("dh"==Ua){var ii=Ga,ji=Va,ki="",li=0,wa=a.R,Ha=a.i;if(Ha.length){var ra=+ii||a.pa,rc=+ji||10;isNaN(ra)?ra=rc:ki="more ";ra>Ha.length&&(a.u("note: only "+Ha.length+" available"),ra=Ha.length);wa-=ra;0>wa&&(null==Ha[Ha.length-1].K?(ra=wa+ra,wa=0):wa+=Ha.length);var Oe=[];"call"==ji&&(rc=1E5,Oe=["CALL"]);for(void 0!==ii&&a.u(ra+" instructions earlier:");0<rc&&wa!=a.R;){var mi=Ha[wa++];if(null==mi.K)break;var sc=W(mi.K),Kk=ra--,ni=Qj(a,sc,"history",Kk);(!Oe.length||0<=ni.indexOf(Oe[0]))&&a.u(ni);
sc.Ac&&(wa+=sc.Ac,rc-=sc.Ac,ra-=sc.Ac);wa>=Ha.length&&(wa=0);a.pa=ra;li++;rc--}}li||(a.u("no "+ki+"history available"),a.pa=void 0)}else{var fa=oj(a,Ga);if(fa)if("da"==Ua){var Pe=fa.Ka||65535<fa.K,K=ze(a.f,fa.K||0,Pe);a.u(ta("",Pe?12:19)+ma(fa.K,Pe?22:17,3)+" "+q(fa.K,8));6>K.length?(2<K.length&&(a.u(" OFFSET: "+ma(K[3],13,3)+" "+q(K[3],8)),a.u("UNIMAP["+na(K[1])+"]: "+ma(K[2],22,3)+" "+q(K[2],8))),a.u(" PHYSICAL: "+ma(K[0],22,3)+" "+q(K[0],8))):(a.u(" OFFSET: "+
ma(K[1],13,3)+" "+q(K[1],8)),a.u("+ "+lk[K[2]]+"PAR"+K[3]+": "+ma(K[4],22,3)+" "+q(K[4],8)),a.u("& MMUMASK: "+ma(K[5],22,3)+" "+q(K[5],8)),a.u("= PHYSICAL: "+ma(K[0],22,3)+" "+q(K[0],8)))}else{var hb=0,Qe="ds"==Ua;if(Va){if("l"==Va.charAt(0))Va=Va.substr(1)||Jk,hb=bj(a,Va);else{var oi=oj(a,Va);oi&&(hb=oi.K-fa.K)}0>hb&&(hb=0);65536<hb&&(hb=65536)}var Mk=a.xa;fa.xa&&(a.xa=fa.xa);for(var ib="dd"==Ua?4:"db"==Ua?1:2,vd=ib*hb||128,Re=Qe?16:a.xa,Nk=(vd+Re-1)/Re|0||1,jb="";Nk--&&0<vd;){for(var kb=
"",Se="",Ga=rj(a,fa),wd=Re,tc=0,uc=0;0<wd&&0<vd;){var Jb=1,xd=1==ib?a.Mc(fa,Jb):a.Oa(fa,Jb=2),tc=tc|xd<<(uc<<3),uc=uc+Jb;uc==ib&&(Qe?(kb&&(kb+=","),kb+="0x"+v(tc,2*ib)):(kb+=O(a,tc,ib),kb+=1==ib?9==wd?"-":" ":" "),tc=uc=0);wd-=Jb;for(vd-=Jb;1==ib&&Jb--;)var Te=xd&255,Se=Se+(32<=Te&&128>Te?String.fromCharCode(Te):"."),xd=xd>>8}jb&&(jb+="\n");jb=Qe?jb+(kb+","):jb+(Ga+": "+kb+(wd?"":" "+Se))}jb&&a.u(jb);a.Ba=fa;a.xa=Mk}}}}break;case "e":if("else"==g[0])break;var Kb,Ue,Ve,We,Xe=g[0],Ye=g[1];"eb"==Xe?
(Kb=1,Ue=255,Ve=a.Mc,We=a.Nc):"e"==Xe||"ew"==Xe?(Kb=2,Ue=65535,Ve=a.Oa,We=a.yd):Ye=null;if(null==Ye)a.u("edit memory commands:"),a.u("\teb [a] [...] edit bytes at address a"),a.u("\tew [a] [...] edit words at address a");else{var yd=oj(a,Ye);if(yd)for(var zd=2;zd<g.length;zd++){var vc=$i(a,g[zd]);if(void 0===vc){a.u("unrecognized value: "+g[zd]);break}vc&~Ue&&a.u("warning: "+v(vc)+" exceeds "+Kb+"-byte value");a.u("changing "+rj(a,yd)+(I(a,16)?"":" from "+O(a,Ve.call(a,yd),Kb))+" to "+O(a,vc,Kb));
We.call(a,yd,vc,Kb)}}break;case "g":a:{var pi=g[1],Ok=b;if(void 0!==pi){var Ze=oj(a,pi,!0);if(!Ze)break a;qj(a,Ze,Ok);a.ob(a.g,Ze,!0)}Gj(a,!0,c)}break;case "h":a.A.U?(c||a.u("halting"),a.Z()):ub(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var $e;var wc=b.substr(2),wc=ua(wc);$i(a,wc)?(c||a.u("true: "+wc),$e=!0):(c||a.u("false: "+wc),$e=!1);$e||(d=!1);break}f=!0;break;case "k":var Pk=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");
else{var af=0,bf=W(),xc=W(a.f.g[6]);for(a.u("stack trace for "+rj(a,xc));10>af;){for(var lb=null,Qk=256;65536>xc.K>>>0;){bf.K=a.Oa(xc,2);if(null==xc.K||!Qk--)break;if(!(bf.K&1)){for(var Rk=a,Ad=bf,qi=null,yc=Ad.K,ri=yc,cf=1;6>=cf&&yc;cf++){if(2<cf){Ad.K=yc;var Bd=Qj(Rk,Ad);if(0<=Bd.indexOf("JSR")){var si=Bd.indexOf(" ");if(yc+(Bd.indexOf(" ",si+1)-si-1)/2==ri){qi=Bd;break}}}yc-=2}Ad.K=ri;if(lb=qi)break}}if(!lb||null==lb)break;var ti=null;if("ks"==Pk){var ui=lb.match(/[0-9A-F]+$/);ui&&(ti=hk(a,ui[0]))}lb=
ta(lb,50)+" ;"+(ti||"stack="+rj(a,xc));a.u(lb);af++}af||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){hk(a,g[1],!0);break}f=!0;break;case "m":a:{var Ia,Ja=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Wa=0;if("all"==N)Wa=1879046143,N=null;else if("on"==N)Ja=!0,N=null;else if("off"==N)Ja=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ia in Eb)if(N==Ia){Wa=Eb[Ia];Ja=!!(a.ga&Wa);break}if(!Wa){a.u("unknown message category: "+N);break a}}if(Wa)if("on"==g[2])a.ga|=
Wa,Ja=!0;else if("off"==g[2]&&(a.ga&=~Wa,Ja=!1,1073741824==Wa)){for(var vi=1E3<=a.N.length?a.N.length-1E3:0;vi<a.N.length;)a.u(a.N[vi++]);a.N=[]}}var Sk=0,zc="";for(Ia in Eb)if(!N||N==Ia){var Tk=!!(a.ga&Eb[Ia]);if(null===Ja||Ja==Tk)zc&&(zc+=","),++Sk%10||(zc+="\n\t"),"key"==Ia&&(Ia="keys"),zc+=Ia}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(zc||"none"));hj(a)}break;case "p":if("print"==
g[0]){ik(a,b.substr(5));break}var Uk=g[0];if("?"==g[1])a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else{var wi="pr"==Uk?1:0,xi=1+wi;if(a.I)a.u("step in progress");else{var Cd=W(a.f.g[7]),Lb=a.Oa(Cd);3==Lb||4==Lb||34816==(Lb&65280)||32256==(Lb&65024)||35072==(Lb&65280)?(a.I=xi,pj(Cd,2)):2048==(Lb&65024)&&(Qj(a,Cd),a.I=xi);a.I?(a.ob(a.g,Cd,!0),Gj(a)||(a.J&&be(a.J),a.I=0)):jk(a,wi?"tr":"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();
break}Ij(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Ac=+g[2];if(8==Ac||10==Ac||16==Ac)a.xa=Ac;else{a.u("invalid base: "+Ac);break}}a.u("default base: "+a.xa);break;case "cs":var Bc;void 0!==g[3]&&(Bc=+g[3]);switch(g[2]){case "int":a.f.Ab=Bc;break;case "start":a.f.Rb=Bc;break;case "stop":a.f.Cb=Bc;break;default:a.u("unknown cs option");break a}void 0!==Bc&&Ud(a.f);a.u("checksums "+(a.f.A.zb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Zd(a.f,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));
a.u("target speed: "+(a.f.nb.toFixed(2)+"Mhz")+" ("+a.f.Za+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":jk(a,g[0],g[1]);break;case "u":Jj(a,g[1],g[2],8);break;case "v":if("var"==g[0]){gk(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((xb||"PDP11")+" version 1.32.0 ("+a.f.Aa+",RELEASE"+(zb?",TYPEDARRAYS":yb?",BYTEARRAYS":",LONGARRAYS")+")");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){ik(a,b.substr(1));break}var df="commands:",ef;for(ef in mk)df+="\n"+ta(ef,9)+mk[ef];gf(a)||(df+="\nnote: history disabled if no exec breakpoints");a.u(df);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(zi){a.u("debugger error: "+(zi.stack||zi.message)),
d=!1}return d}function Xd(a,b,c){b=Yi(a,b,c);for(var d in b)if(!Pj(a,b[+d]))return!1;return!0}
var mk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Sj=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
uj=20,vj=21,wj=22,xj=23,yj=24,zj=25,Aj=26,Bj=27,Cj=28,Dj=29,Ej=30,sj={SP:6,PC:7,PS:uj,PI:vj,ER:wj,SL:xj,M0:yj,M1:zj,M2:Aj,M3:Bj,AR:Cj,DR:Dj,SR:Ej},lk="KI KD SI SD ?? ?? UI UD".split(" "),Zj=7,ak=56,Y=ak|Zj,Yj=4032,X=4096,Uj=8192,Vj=12288,Wj=24576,Xj=32768,Tj=61440,jj={61440:{4096:[62,Yj,Y],8192:[47,Yj,Y],12288:[18,Yj,Y],16384:[14,Yj,Y],20480:[16,Yj,Y],24576:[3,Yj,Y],36864:[63,Yj,Y],40960:[48,Yj,Y],45056:[19,Yj,Y],49152:[15,Yj,Y],53248:[17,Yj,Y],57344:[94,Yj,Y]},65024:{2048:[57,448,Y],28672:[100,Y,
448],29184:[101,Y,448],29696:[102,Y,448],30208:[103,Y,448],30720:[104,448,Y],32256:[105,448,Uj]},65280:{256:[27,X],512:[24,X],768:[10,X],1024:[11,X],1280:[22,X],1536:[12,X],1792:[20,X],32768:[25,X],33024:[23,X],33280:[13,X],33536:[21,X],33792:[28,X],34048:[29,X],34304:[8,X],34560:[9,X],34816:[106,Xj],35072:[107,Xj]},65472:{64:[56,Y],192:[95,Y],2560:[39,Y],2624:[49,Y],2688:[53,Y],2752:[51,Y],2816:[67,Y],2880:[1,Y],2944:[77,Y],3008:[97,Y],3072:[73,Y],3136:[71,Y],3200:[6,Y],3264:[4,Y],3328:[58,Wj],3392:[60,
Y],3456:[65,Y],3520:[96,Y],35328:[40,Y],35392:[50,Y],35456:[54,Y],35520:[52,Y],35584:[68,Y],35648:[2,Y],35712:[78,Y],35776:[98,Y],35840:[74,Y],35904:[72,Y],35968:[7,Y],36032:[5,Y],36096:[66,Y],36160:[59,Y],36224:[64,Y],36288:[61,Y]},65528:{128:[76,Zj],152:[108,Vj]},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]}},Rj=[0],nj=[58,60,65,96,108,110,100,101,102,103,104,105,59,64],Fj=1E3;Xa(function(){for(var a=G(document,E,"debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new fj(d);qb(d,c)}});
function nk(a,b,c){A.call(this,"Computer",a,0,33554432);this.A.fa=!1;this.O=null;ok(this,b);this.L=Sd(this,"autoPower",a,6);this.j=0;this.T=+a.busWidth||+a.buswidth;this.b=pk;this.H=null;this.R=this.w=this.N=this.C=this.S=!1;this.v=null;this.V=Sd(this,"url")||"";(Math.random()+.1).toString(36);this.g=qk(this);if(this.f=pb("CPU",this.id)){this.F=pb("Debugger",this.id);this.D=new Ec({id:this.lb+".bus",busWidth:this.T},this.f,this.F);var d,e=nb(this.id);if((this.i=pb("Panel",this.id))&&this.i.Pa)for(b=
0;b<e.length;b++)d=e[b],d.M=this.i.M,d.u=this.i.u,d.Pa=this.i.Pa;this.u(xb+" v1.32.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.u("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ra&&d.ra(this,this.D,this.f,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.G=d:this.b=parseInt(d,10));var f;if(a=Sd(this,"state")||(f=!0,a.state))b=
this.P=a,f||(this.C=!0,this.b=pk),this.b&&(this.I=new le(this,"1.32.0"),rk(this.I)?b=null:delete this.I);!b&&this.b&&(b=sk(this))&&(this.C=!0);if(b){var g=this;Aa(b,null,!0,function(a,b,c){c?(g.G=null,g.C=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.H=b,g.S=!0);H(g)})}else H(this);this.B.power||(this.L=!0);!c&&this.L&&tk(this,this.Ub)}else y("Unable to find CPU component")}p(nk,A);
function ok(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){y(d.message+" ("+c+")")}}a.O=b}function Sd(a,b,c,d){var e=b.toLowerCase(),e=Oa(b)||Oa(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);if("string"==typeof e&&d)switch(d){case 4:e=+e;break;case 6:e="true"==e}return e}
function tk(a,b,c){for(var d=nb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!tb(f)){tb(f,function(){tk(a,b,c)});return}}b.call(a,c)}function uk(a,b){var c=new le(a,"1.32.0",vk);if(rk(c)&&wk(c)){var d=c.get(xk),e=b?b.get(xk):"unknown";d!=e&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=nk.prototype;
h.Ub=function(a){void 0===a&&(a=this.b||(this.H?yk:pk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new le(this,"1.32.0");if(a==zk)b=!0;else if(a>pk){if(rk(d,this.H)){this.v=new le(this,"1.32.0",Ak);rk(this.v)&&(Bk(this,d),a=Ck,Dk(this.v));this.v.set(xk,za());Ek(this.v);var e=this.b&&!this.C;if(a==yk||Ea("Click OK to restore the previous "+xb+" machine state, or CANCEL to reset the machine.")){if(c=wk(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?rk(d,g):("error"==f&&"no machine state"!=
g?(this.M("Error: "+g),"unable to verify user"==g&&(Ma(Fk,""),this.g=null)):this.u(f+": "+g),Dk(d),rk(d)?(c=wk(d),e=!0):c=!1))}e&&uk(this,c?d:null)}else a==Ck&&d.clear()}else uk(this);delete this.H;delete this.I}e=nb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Gk(this,g,d,b,c));b=[d,a,c];a!=zk?tk(this,this.ed,b):this.ed(b)}};
function Gk(a,b,c,d,e){if(!b.A.fa){b.A.fa=!0;if(b.sa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.sa(f,d)&&f&&(y("Unable to restore state for "+b.type),a.P&&!a.S?(c.clear(),a.b=pk,window&&window.location.reload()):a.N=!0,b.sa(null),e=!1)}if(!d&&b.Rc)for(a=b.Rc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.ed=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.A.fa=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.f&&(Gk(this,this.f,b,c,a),L(this),this.f.Ia());this.N&&(Bk(this,b),b.clear());!c&&this.v&&(this.v.clear(),delete this.v);this.j=0};
function Bk(a,b){if(Ea("There may be a problem with your "+xb+" machine.\n\nTo help us diagnose it, click OK to send this "+xb+" machine state to http://www.pcjs.org.")){var c=a.V;a=a.g||"";b=b.toString();var d={};d.app=xb;d.ver="1.32.0";d.url=c;d.user=a;d.type="bug";d.data=b;Aa("http://www.pcjs.org/api/v1/report",d,!0)}}
function kk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new le(a,"1.32.0"),g=new le(a,"1.32.0",vk),k=za();g.set(xk,k);f.set(xk,k);f.set(Hk,"1.32.0");f.set(Ik,window?window.location.href:null);f.set(Lk,window?window.navigator.userAgent:"");a.f&&a.f.Ca&&(c&&a.f.Z(),d=a.f.Ca(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.fa=!1,!1===d&&(e=null)));for(var k=nb(a.id),l=0;l<k.length;l++){var m=k[l];m.A.fa&&(m.Ca&&(d=m.Ca(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.fa=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.g&&Vk(a,a.g,f.toString()),Ek(g)&&Ek(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Wk),d&&f.clear(k)):e=f.toString());c&&(a.A.fa=!1,b=a.B.power)&&(b.textContent="Power");a.j=0;return e}h.reset=function(){this.D&&this.D.reset&&(J(this,"Resetting "+this.D.type),this.D.reset());this.f&&this.f.reset&&(J(this,"Resetting "+this.f.type),this.f.reset());for(var a=nb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.f&&c.reset&&(J(this,"Resetting "+c.type),c.reset())}L(this,-1)};
h.start=function(a,b){for(var c=nb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}L(this,-1)};h.stop=function(a,b){for(var c=nb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}L(this,-1)};
function L(a,b){if(a.f){var c=a.f,d=b||0,e=c.B.speed;e&&(0>=d||30<=(c.oc+=d))&&(e.textContent=c.A.U?c.mb.toFixed(2)+"Mhz":"Stopped",c.oc=0)}if(a.i&&(a=a.i,b=b||0,a.v)){c=a.f.A.U;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)Xb(a,"R"+e,a.f.g[e]);e=nd(a.f);Xb(a,"PS",e);Xb(a,"NF",e&8?1:0,1);Xb(a,"ZF",e&4?1:0,1);Xb(a,"VF",e&2?1:0,1);Xb(a,"CF",e&1?1:0,1);a.j=0}nc(a,0<b&&c&&!d?a.f.jb:a.ta);ic(a,a.tb);b=a.f;b=b.Wa?b.T&16?1:2:4;pc(a,"B22",b&1);pc(a,"B18",b&2);pc(a,"B16",b&4)}}
h.oa=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.j||(d.A.fa?kk(d,!1,!0):tk(d,d.Ub))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.A.fa&&!d.j)if(d.b&&!d.G){var a=Ea("Click OK to save changes to this "+xb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");kk(d,a,!0);!a&&d.P?window&&window.location.reload():(a||(d.w=!0),d.Ub(pk),d.w=!1)}else d.reset(),d.f&&d.f.Ia()},!0;case "save":if(pa(Ca(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.B[b]=c,c.onclick=function(){var a=qk(d,!0);if(a){var b=!!(d.b&&!d.G||d.P),c=kk(d,b);b?Vk(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1};
function qk(a,b){var c=a.g;c||((c=La(Fk),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Xk(a,c))||a.M("The user ID is invalid.")):b&&a.M("Browser local storage is not available"));return c}
function Xk(a,b){a.g=null;b=Aa(Ca()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ma(Fk,b.data),a.g=b.data)}catch(d){y(d.message+" ("+c+")")}return a.g}function sk(a){var b=null;a.g&&(b=Ca()+"/api/v1/user?req=load&user="+a.g+"&state="+Yk(a,"1.32.0"));return b}
function Vk(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Yk(a,"1.32.0");d.data=c;b=Aa(Ca()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.M("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.M(c),Ma(Fk,""),a.g=null)}}
function Eh(a){var b;a=nb(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function be(a,b){if(a.Pa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Pa.focus();!b&&window&&window.scrollTo(c,d)}}var Ak="failsafe",vk="validate",xk="timestamp",Hk="version",Ik="url",Lk="browser",Fk="user",zk=-1,pk=0,yk=1,Ck=2,Wk=3;
Xa(function(){for(var a=G(document,E+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=G(c,E,"computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new nk(g,d,!0);qb(g,f);g.L&&tk(g,g.Ub)}});Ya.show.push(function(){for(var a=G(document,E,"computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=pb("Computer",c.id))&&c.R&&!c.A.fa&&c.Ub(zk)}});Ya.exit.push(function(){for(var a=G(document,E,"computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=pb("Computer",c.id))&&c.A.fa&&kk(c,!(!c.b||c.G),!0)}});
function le(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.B=!1;this.key=Yk(a,b,c);Dk(this,a.Fd)}h=le.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function rk(a,b){return b?(a.b=b,a.g=!0,a.B=!1,!0):a.g?!0:Fa()&&(b=La(a.key))?(a.b=b,a.g=!0):!1}function wk(a){var b=!0;if(!a.B)try{a.f=JSON.parse(a.b),a.B=!0}catch(c){y(c.message||c),b=!1}return b}
function Ek(a){var b=!0;if(Fa()){var c=JSON.stringify(a.f);Ma(a.key,c)||(y("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function Dk(a,b){a.b="";a.f={};a.g=a.B=!1;b&&a.set("parms",b)}
h.clear=function(a){Dk(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Yk(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}var Zk=0;
function $k(a,b,c,d,e,f){e("Loading "+a+"...");Aa(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):al(k,a,b,c,d,e,f)})}
function al(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(gb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?bl(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function bl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Aa(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);bl(a,b,c)}})}else c(a,null)}
function cl(a,b,c,d){function e(a){if(void 0===k){var b=g&&G(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=qa(a))}function f(a){e("Error: "+a);l&&(--Zk||ab(!0));l=!1}var g,k,l=!0;Zk++;mb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.32.0/components.xsl");m=function(d,k){k?$k(c,null,null,!1,e,function(d,l){l?(gb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--Zk||ab(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Zk||ab(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?$k(b,a,d,!0,e,m):al(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPDP11=function(a,b,c,d){ab(!1);return cl(a,b,c,d)};window.enableEvents=ab;window.sendEvent=cb;})();//# sourceMappingURL=/tmp/pdpjs/1.32.0/pdp11-dbg.map
function gj(a,b,c){var d;if(b){b=hj(a,b);for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ca(n);if(!n){f=!0;break}n=ij(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}k.push(n);if(e==m.length)break;var n=m[e++],u=n.length;l.length&&jj[n]<jj[l[l.length-1]]&&fj(k,l,1);l.push(n);b=b.substr(r+u)}fj(k,l)&&1==k.length||(f=!0);f?c&&a.u("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),c&&kj(a,null,
d))}return d}function hj(a,b){for(var c,d=a.ga?"(":"{",e=a.ga?")":"}",f=new RegExp(a.ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=gj(a,c[1]);b=b.replace(d+c[1]+e,null!=g?O(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function ij(a,b,c,d){var e;null!=b?(e=a.hd(b),0<=e?e=a.jd(e):(e=a.T[b],null==e&&(e=ta(b,a.xa))),null!=e||d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return e}function kj(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var k=0;k<f;k++)g&&(g=","+g),g=ua(d&255,8)+g,d>>=8;d=v(c,0,!0)+" "+c+". "+q(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}
function lj(a,b){if(b)return kj(a,b,a.T[b]);var c=0;for(b in a.T)kj(a,b,a.T[b]),c++;return 0<c}function O(a,b,c,d){switch(a.xa){case 8:a=q(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=v(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}var jj={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function mj(a){dj.call(this,a);this.Da=!1;this.ga=!0;this.H=V();this.Ca=V();this.N=V();this.B=[];this.g=this.L=this.G=[];nj(this);this.R=this.ba=0;this.i=[];this.na=void 0;oj(this);this.F=this;this.la={};this.ha=this.cd=0;this.S=null;this.M=[];pj(this,a.messages);this.sa=a.commands;this.Ga=qj;this.W=[];this.I=0;this.Ha=this.ra=null;this.w=this.Fa=this.Ea=this.Y=this.ma=0;this.b=this.V=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return ee(b,a)}):void 0===global[B]&&(global[B]=
function(a){return ee(b,a)})}p(mj,dj);function rj(a){a=a&&a.K;null==a&&(a=-1);return a}function V(a,b,c){return{K:void 0===a?null:a,Ka:void 0===b?!1:b,Qa:!1,xa:c}}h=mj.prototype;h.Fc=function(a,b){a.K=b;a.Qa=!1;a.xa=void 0;return a};function sj(a){return[a.K,a.Ka,a.xa,a.Qa,a.fc]}function tj(a,b){var c=V(b[0],b[1],b[2]);c.Qa=b[3];b[4]&&(c.$c=ej(a,c.fc=b[4]));return c}
h.ta=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.b=a.i;(a=$d(a,"messages"))&&pj(this,a);1140>this.f.ba&&(this.W=this.W.concat(uj));1145>this.f.ba&&(this.W=this.W.concat(vj));md(this,16,function(a){a:{var b=d.D.b,c=a[0],e=a=0,l=b.length;if(c){a=rj(wj(d,c));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.D.g;l=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.u("..."):
(c=n.type,m=Zc[c],n&&d.u(v(n.id,8)+" %"+v(e<<d.D.g,8)+" %"+v(n.K,8)+" "+w(n.Jb)+" "+w(n.size)+" "+m),c!=Id&&(c=-1),m=0);a+=d.D.j;e++}}});G(this)};
h.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.C[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ee(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.j.length-1&&(b=d.j[++d.v])):40==a.keyCode&&(0<d.v?b=d.j[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.C[b]=c,bb(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";ee(d,a,!0);return!0}return!1}),!0;case "step":return this.C[b]=c,bb(c,function(a){var b=!1;Cb(d,!0)||(Db(d,!0),b=lc(d,a?1:0,null),Db(d,!1));return b}),!0}return!1};function de(a){if(a.V){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.V.focus();window&&window.scrollTo(b,c)}}h.Mc=function(a,b){var c=255,d=rj(a);-1!==d&&(a.Ka||65535<d?(c=this.D,d=Fe(this.f,d),c.G=!1,c.ja++,d=ad(c,d).j(d&c.i,d),c.ja--):(c=this.f,c.ma++,d=c.D.Jc(Dc(c,d,3)),c.ma--),c=d,b&&xj(a,b));return c};
h.Oa=function(a,b){var c=65535,d=rj(a);-1!==d&&(c=a.Ka||65535<d?Ec(this.D,Fe(this.f,d)):Fc(this.f,d),b&&xj(a,b));return c};h.Nc=function(a,b,c){var d=rj(a);if(-1!==d){if(a.Ka||65535<d)bd(this.D,Fe(this.f,d),b);else{var e=this.f;e.ma++;e.D.Kc(Dc(e,d,5),b);e.ma--}c&&xj(a,c);J(this.J,-1)}};h.yd=function(a,b,c){var d=rj(a);if(-1!==d){if(a.Ka||65535<d)rc(this.D,Fe(this.f,d),b);else{var e=this.f;e.ma++;e.D.Nb(Dc(e,d,4),b);e.ma--}c&&xj(a,c);J(this.J,-1)}};
function wj(a,b,c){var d;c=(c?a.H:a.Ca).K;var e,f;if(void 0!==b){b=hj(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,k;a:{c=a.D;var l;l=d.toUpperCase();for(k in c.Ma){var m=+k;if(c.Ma[m][4]==l){k=c.B+m;break a}}k=null}if(null==k&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(l=a.B[c].ea[d],null!=l){k=l.o;break}null!=k&&(g=V(k));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=gj(a,b,void 0)}null!=c&&(d=V(c,e,f));return d}
function yj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.$c=ej(a,b.fc=c[2]))}function xj(a,b){null!=a.K&&(a.K+=b||1)}function zj(a,b){return(b.Ka?"%":"")+O(a,b.K)}
function pj(a,b){a.F=a;a.ha=a.cd=536870912;a.S=null;a.M=[];b=ej(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Sb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ha|=Sb[c],a.u(c+" messages enabled"))}}function md(a,b,c){for(var d in Sb)if(b==Sb[d]){a.la[d]=c;break}}
h.hd=function(a){a=a.toUpperCase();var b=Aj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Bj(a){return 6>a?"R"+a:6==a?"SP":"PC"}
h.jd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.na[a-8];else if(20>a)b=this.f.V[a-16];else{var c=this.f,d=this.b;switch(a){case Cj:b=vd(this.f);break;case Dj:b=c.Va;break;case Ej:b=c.R;break;case Fj:b=c.sa&65280;break;case Gj:b=pd(c);break;case Hj:b=rd(c);break;case Ij:b=sd(c);break;case Jj:b=c.T;break;case Kj:d&&(b=d.ua);break;case Lj:d&&(b=d.vb);break;case Mj:d&&Jc(d)&&(b=d.Ya)}}return b};
h.message=function(a,b){b&&(a+=" @"+zj(this,V(this.f.P&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ha&1073741824)this.M.push(a);else{var c;if(this.ha&-2147483648&&this.f&&(c=this.f.A.U)||Cb(this,!0))this.Z(),c&&(a+=" (cpu halted)");this.u(a);this.f&&(a=this.f,ke(a),a.qb=0,a.J&&J(a.J,void 0))}};
function oj(a){var b;if(!of(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(Nj);for(b=0;b<a.i.length;b++)a.i[b]=V();a.R=0;a.u("instruction history buffer allocated")}}function Oj(a,b,c){if(!Pj(a,c))return!1;kc(a.f,b);return!0}
function lc(a,b,c,d){if(!Pj(a))return!1;null===c&&(c=!a.ra||"tr"==a.ra);a.w=0;b||of(a)&&pf(a,a.f.g[7],0);try{b=le(a.f,b);var e=a.f.bc(b);0<e&&(mc(a.f,e),a.w+=e,nc(a.f,e,!0),oc(a.f,e),a.Y++)}catch(f){"number"!=typeof f&&(a.w=0,zb(a.f,f.stack||f.message))}!1!==d&&(a.b&&a.b.stop(),J(a.J,-1));ce(a,c||!1);return 0<a.w}h.Z=function(a){this.f&&this.f.Z(a)};
function ce(a,b){if(a.Da){void 0===b&&(b=!0);var c;c=a.f;if(c=c.i&128?c.Zc|c.Yc<<8:0){var d=c>>8;a.u("trapped to "+O(a,c&255,1)+" ("+(0>d?Qb[-d]:O(a,d))+")")}a.H=V(a.f.g[7]);b&&1!=a.I?Qj(a):Rj(a)}}function Pj(a,b){var c;(c=!a.f||!Bb(a.f))||(c=a.f,c.A.fa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.U?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ab(a.f)}h.za=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
h.ya=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){oj(this);this.Y=0;this.S=null;this.w=0;this.H=V(this.f.g[7]);this.A.U=!1;Sj(this);a||ce(this)};h.save=function(){var a=new M(this);a.set(0,sj(this.H));a.set(1,sj(this.N));a.set(2,[this.j,this.P,this.ha]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.H=tj(this,a[b++]),this.N=tj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.u("running");this.A.U=!0;this.Ea=a;this.Fa=b};
h.stop=function(a,b){if(this.A.U){this.A.U=!1;this.w=b-this.Fa;if(!this.I){b="stopped";if(this.w){a-=this.Ea;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";of(this)&&(b+=this.Y+" instructions, ",this.Y=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else H(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}ce(this,!0);de(this);Sj(this,this.f.g[7]);this.S=null}};function of(a){return 1<a.g.length||!!a.ba}
function pf(a,b,c){var d=-1;c||(d=Fc(a.f,b))||(a.f.P&65535)!=b||(b=xe(a.f,2));if(0<c&&(a.ba&&!--a.ba||Tj(a,b,1,a.g)))return!0;0<=c&&a.i.length&&(a.Y++,0>d&&(d=Fc(a.f,b)),65535!=(d&65535)&&(a.Fc(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function ug(a){var b=a.f;if(b.A.U)throw se(b,a.f.P&65535),a.Z(),-1;return!1}function Ud(a,b,c){Tj(a,b,c||1,a.L)&&a.Z(!0)}function Vd(a,b,c){Tj(a,b,c||1,a.G)&&a.Z(!0)}
function nj(a){var b,c,d;a.g=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=rj(c),c.Ka?(c=a.D,Td(c.b[d>>>c.g],!1)):Ie(a.f,!1);a.L=["br"];if(a.G)for(b=1;b<a.G.length;b++)c=a.G[b],d=rj(c),c.Ka?(c=a.D,Td(c.b[d>>>c.g],!0)):Ie(a.f,!0);a.G=["bw"];a.ma=0}
h.pb=function(a,b,c){var d=!0;c||Uj(this,a,b,!1,!0);if(a!=this.g){var e=rj(b);if(-1===e)this.u("invalid address: "+zj(this,b)),d=!1;else{var f=a==this.G;65535<e&&(b.Ka=!0);if(b.Ka){var g=this.D;g.b[e>>>g.g].pb(e&g.i,f)}else e=this.f,(f?e.Xb++:e.Wb++)||qe(e)}}d&&(a.push(b),c?b.Qa=!0:(Vj(this,a,a.length-1,"set"),oj(this)));return d};
function Uj(a,b,c,d,e){var f=!1;c=rj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==rj(k)&&(!d||k.Qa)){f=!0;k.Qa||e||Vj(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(b=b==a.G,k.Ka?(d=a.D,Td(d.b[c>>>d.g],b)):Ie(a.f,b));k.Qa||oj(a);break}}return f}function Wj(a,b){for(var c=1;c<b.length;c++)Vj(a,b,c);return b.length-1}function Vj(a,b,c,d){c=b[c];a.u(b[0]+" "+zj(a,c)+(d?" "+d:c.fc?' "'+c.fc+'"':""))}
function Sj(a,b){if(void 0!==b)Tj(a,b,1,a.g,!0),a.I=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Qa){if(!Uj(a,a.g,c,!0))break;b=0}}}
function Tj(a,b,c,d,e){var f=!1;if(!a.ma++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Qa)for(var l=rj(k)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Qa&&(Uj(a,d,k,!0),e=!0);if(n=k.$c){for(var f=!1,r=0;r<n.length;r++)if(!Xj(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.f.A.U||(f=!0)}if(f){e||Vj(a,d,g,"hit");break}}}a.ma--;return f}
function Yj(a,b,c,d){var e=V(b.K),f=a.Oa(b,2),g,k;for(k in a.Ga)if(g=a.Ga[k][f&k])break;g||(g=Zj);var l=g[0];0<=a.W.indexOf(l)&&(g=Zj,l=g[0]);var m=k="",n=ak[l],r=g.length-1;l||r||(k=O(a,f));for(l=1;l<=r;l++){var u=g[l];if(void 0!==u){var t;t=a;var D=u,u=b,z="",C=D&bk;if(C==X)u=u.K+((f&255)<<24>>23)&65535,z=O(t,u);else if(C==ck)u=u.K-((f&63)<<1)&65535,z=O(t,u);else if(C==dk)z=O(t,f&7,1);else if(C==ek)z=O(t,f&63,1);else if(C==fk)z=O(t,f&255,1);else if(C=f&D,D&gk&&(C>>=6,D>>=6),D&Y){var D=null,F=C&
hk;switch(C&ik){case 0:z=Bj(F);break;case 8:z="@"+Bj(F);D=jk(t,t.f.g[F]);break;case 16:7>F?z="("+Bj(F)+")+":(C=t.Oa(u,2),z="#"+O(t,C,0,!0));break;case 24:7>F?z="@("+Bj(F)+")+":(C=t.Oa(u,2),z="@#"+O(t,C,0,!0),D=jk(t,C));break;case 32:z="-("+Bj(F)+")";break;case 40:z="@-("+Bj(F)+")";break;case 48:C=t.Oa(u,2);z=O(t,C,0,!0)+"("+Bj(F)+")";7==F&&(z=O(t,C=C+u.K&65535),D=jk(t,C));break;case 56:C=t.Oa(u,2),z="@"+O(t,C)+"("+Bj(F)+")",7==F&&(z="@"+O(t,C=C+u.K&65535),D=jk(t,Fc(t.f,C)))}D&&(z=[z,D])}t=z;if(!t||
!t.length){k="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<k.length&&(k+=",");k+=t||"???"}}f="";g=zj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+O(a,a.Oa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=Ba(f,24);g+=Ba(n,5);k&&(g+=" "+k);if(c||m)g=Ba(g,60)+";"+(c||""),g=a.f.A.zb?g+("cycles="+fe(a.f).toString()+" cs="+v(a.f.Sb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function jk(a,b){b=Ge(a.f,b)[0];b>=a.f.jb&&b<a.D.B&&(b=b-a.f.jb+a.D.B);var c=a.D;a=null;b>=c.B&&(b=c.Ma[b&fd])&&(a=b[4]);return a}function kk(a,b){switch(b){case "N":a=we(a.f);break;case "Z":a=ve(a.f);break;case "V":a=ue(a.f);break;case "C":a=te(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.f;if(8>b)c=Bj(b),c+="="+O(a,d.g[b]);else if(13>b)c="A"+(b-8)+"="+O(a,d.na[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+O(a,d.V[b-16]);else switch(b){case Cj:c="PS="+O(a,vd(d));break;case Dj:c="PI="+O(a,d.Va);break;case Ej:c="ER="+O(a,d.R);break;case Fj:c="SL="+O(a,d.sa&65280);break;case Gj:c="M0="+O(a,pd(d));break;case Hj:c="M1="+O(a,rd(d));break;case Ij:c="M2="+O(a,sd(d));break;case Jj:c="M3="+O(a,d.T);break;case Kj:a.b&&(c="AR="+O(a,a.b.ua,3));break;case Lj:a.b&&(c="DR="+
O(a,a.b.vb));break;case Mj:a.b&&Jc(a.b)&&(c="SR="+O(a,a.b.Ya,3))}c&&(c+=" ");return c}function lk(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,Cj)+Z(a,Dj)+Z(a,Fj);d+=kk(a,"T")+kk(a,"N")+kk(a,"Z")+kk(a,"V")+kk(a,"C");b&&(b=d,c=""+(Z(a,Gj)+Z(a,Hj)),c+=Z(a,Ij)+Z(a,Jj)+Z(a,Ej),c=c+"\n"+(Z(a,Mj)+Z(a,Kj)+Z(a,Lj)),d=b+("\n"+c));return d}h.dd=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function uh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Ea(n,l,a.dd);0>r&&n.splice(-(r+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({xh:b,K:c,Qd:d,ea:e,ad:f})}function mk(a,b,c){var d=[],e=rj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Qd;if(e>=g&&e<g+k){e=Ea(f.ad,[e-g],a.dd);0<=e?nk(a,b,e,d):c&&(e=~e,nk(a,b,e-1,d),nk(a,b,e,d));break}}return d}
function nk(a,b,c,d){var e={},f=a.B[b].ad,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ea[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function ok(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return lj(a)||a.u("no variables"),!0;if(!c[2])return lj(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=gj(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function pk(a,b,c){var d=null;if(b=wj(a,b,!0)){var e=mk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+w(f)),f=e[0]+" ("+O(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+w(f)),f=e[4]+" ("+O(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function Qj(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=gj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":se(e,
g);a.H=V(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.H=g?32768:0;break;case "C":e.G=g?65536:0;break;case "PS":wd(e,g);break;case "PI":ud(e,g);break;case "ER":e.R=g;d=!0;break;case "SL":e.sa=g|255;break;case "M0":qd(e,g);d=!0;break;case "M3":td(e,g);d=!0;break;case "AR":a.b&&(d=a.b,Gc(d,d.ua=g));d=!0;break;case "DR":a.b&&(d=a.b,qc(d,d.vb=g));d=!0;break;case "SR":if(a.b&&Jc(a.b)){Hc(a.b,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=
g&65535;break}a.u("unknown register: "+f);return}J(a.J);a.u("updated registers:")}}a.u(lk(a,d));c&&(a.H=V(e.g[7]),Rj(a,zj(a,a.H)))}}function qk(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):kj(a,null,c[2].charCodeAt(0)):gj(a,b,!0)}
function rk(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=ij(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ra=b;ab(c,function(){return Db(a,!0)&&lc(a,e,d,!1)},function(){a.b&&a.b.stop();J(a.J,-1);Db(a,!1)})}}
function Rj(a,b,c,d){if(b=wj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=ij(a,c.substr(1)),null!=c&&(d=c);else{d=wj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.u("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Cb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=mk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.u(m)}k[3]&&(g=k[3],f=null);f=Yj(a,b,g,f);a.u(f);a.H=b;e-=b.K-l;c++}}}
function Xj(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(">> "+b):(a.P&&(a.u("ended assemble at "+zj(a,a.N)),a.H=a.N,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Bb(a)&&0<b.length){a.P&&(b="a "+zj(a,a.N)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
wj(a,g[1],!0);if(r)if(a.N=r,void 0===g[2])a.u("begin assemble at "+zj(a,r)),a.P=!0,J(a.J);else{var u;a.u("not supported yet");u=[];if(u.length){for(var t=0;t<u.length;t++)a.Nc(r,u[t],1);a.u(Yj(a,a.N))}}break;case "b":a:{var D=g[0],z=g[1],C=b;if("?"==z)a.u("breakpoint commands:"),a.u("\tbp [#]\tset exec breakpoint at addr #"),a.u("\tbr [#]\tset read breakpoint at addr #"),a.u("\tbw [#]\tset write breakpoint at addr #"),a.u("\tbc [#]\tclear breakpoint at addr #"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");
else{var F=D.charAt(1);if("l"==F){var gb;gb=0+Wj(a,a.g);gb+=Wj(a,a.L);(gb+=Wj(a,a.G))||a.u("no breakpoints")}else if("n"==F)a.ba=ij(a,z),a.u("break after "+a.ba+" instruction(s)");else if(void 0===z)a.u("missing breakpoint address");else{var W=V();if("*"!=z&&(W=wj(a,z,!0),!W))break a;"c"==F?null==W.K?(nj(a),a.u("all breakpoints cleared")):Uj(a,a.g,W)||Uj(a,a.L,W)||Uj(a,a.G,W)||a.u("breakpoint missing: "+zj(a,W)):null!=W.K&&(yj(a,W,C),"p"==F?a.pb(a.g,W):"r"==F?a.pb(a.L,W):"w"==F?a.pb(a.G,W):a.u("unknown breakpoint command: "+
F))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var Ib,Ua=g[0],Ga=g[1],Va=g[2],Rk=g[3];if("?"==Ga){var Jb="";for(Ib in Sb)a.la[Ib]&&(Jb&&(Jb+=","),Jb+=Ib);Jb+=",state,symbols";a.u("dump memory commands:");a.u("\tda [a] dump info for address a");a.u("\tdb [a] [n] dump n bytes at address a");a.u("\tdw [a] [n] dump n words at address a");a.u("\tdd [a] [n] dump n dwords at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");
Jb.length&&a.u("dump extension commands:\n\t"+Jb)}else if("state"==Ga){var Oe=sk(a.J,!0);"console"==Va?console.log(Oe):(a.Pa&&(a.Pa.value=""),Oe&&a.u(Oe))}else if("symbols"==Ga)for(var Pe=0;Pe<a.B.length;Pe++){var Qe=a.B[Pe],Kb;for(Kb in Qe.ea)if("."!=Kb.charAt(0)){var ki=Qe.ea[Kb].o;if(void 0!==ki){var li=Qe.ea[Kb].l;li&&(Kb=li);a.u(O(a,ki)+" "+Kb)}}}else{if("d"==Ua){for(Ib in Sb)if(g[1]==Ib){var mi=a.la[Ib];mi?(g.shift(),g.shift(),mi(g)):a.u("no dump registered for "+Ga);break a}Ga||(Ua=a.Ha||"dw")}else a.Ha=
Ua;if("dh"==Ua){var ni=Ga,oi=Va,pi="",qi=0,xa=a.R,Ha=a.i;if(Ha.length){var ra=+ni||a.na,sc=+oi||10;isNaN(ra)?ra=sc:pi="more ";ra>Ha.length&&(a.u("note: only "+Ha.length+" available"),ra=Ha.length);xa-=ra;0>xa&&(null==Ha[Ha.length-1].K?(ra=xa+ra,xa=0):xa+=Ha.length);var Re=[];"call"==oi&&(sc=1E5,Re=["CALL"]);for(void 0!==ni&&a.u(ra+" instructions earlier:");0<sc&&xa!=a.R;){var ri=Ha[xa++];if(null==ri.K)break;var tc=V(ri.K),Sk=ra--,si=Yj(a,tc,"history",Sk);(!Re.length||0<=si.indexOf(Re[0]))&&a.u(si);
tc.Ac&&(xa+=tc.Ac,sc-=tc.Ac,ra-=tc.Ac);xa>=Ha.length&&(xa=0);a.na=ra;qi++;sc--}}qi||(a.u("no "+pi+"history available"),a.na=void 0)}else{var fa=wj(a,Ga);if(fa)if("da"==Ua){var Se=fa.Ka||65535<fa.K,K=Ge(a.f,fa.K||0,Se);a.u(Ba("",Se?12:19)+ua(fa.K,Se?22:17,3)+" "+q(fa.K,8));6>K.length?(2<K.length&&(a.u(" OFFSET: "+ua(K[3],13,3)+" "+q(K[3],8)),a.u("UNIMAP["+va(K[1])+"]: "+ua(K[2],22,3)+" "+q(K[2],8))),a.u(" PHYSICAL: "+ua(K[0],22,3)+" "+q(K[0],8))):(a.u(" OFFSET: "+
ua(K[1],13,3)+" "+q(K[1],8)),a.u("+ "+tk[K[2]]+"PAR"+K[3]+": "+ua(K[4],22,3)+" "+q(K[4],8)),a.u("& MMUMASK: "+ua(K[5],22,3)+" "+q(K[5],8)),a.u("= PHYSICAL: "+ua(K[0],22,3)+" "+q(K[0],8)))}else{var ib=0,Te="ds"==Ua;if(Va){if("l"==Va.charAt(0))Va=Va.substr(1)||Rk,ib=ij(a,Va);else{var ti=wj(a,Va);ti&&(ib=ti.K-fa.K)}0>ib&&(ib=0);65536<ib&&(ib=65536)}var Uk=a.xa;fa.xa&&(a.xa=fa.xa);for(var jb="dd"==Ua?4:"db"==Ua?1:2,xd=jb*ib||128,Ue=Te?16:a.xa,Vk=(xd+Ue-1)/Ue|0||1,kb="";Vk--&&0<xd;){for(var lb=
"",Ve="",Ga=zj(a,fa),yd=Ue,uc=0,vc=0;0<yd&&0<xd;){var Lb=1,zd=1==jb?a.Mc(fa,Lb):a.Oa(fa,Lb=2),uc=uc|zd<<(vc<<3),vc=vc+Lb;vc==jb&&(Te?(lb&&(lb+=","),lb+="0x"+v(uc,2*jb)):(lb+=O(a,uc,jb),lb+=1==jb?9==yd?"-":" ":" "),uc=vc=0);yd-=Lb;for(xd-=Lb;1==jb&&Lb--;)var We=zd&255,Ve=Ve+(32<=We&&128>We?String.fromCharCode(We):"."),zd=zd>>8}kb&&(kb+="\n");kb=Te?kb+(lb+","):kb+(Ga+": "+lb+(yd?"":" "+Ve))}kb&&a.u(kb);a.Ca=fa;a.xa=Uk}}}}break;case "e":if("else"==g[0])break;var Mb,Xe,Ye,Ze,$e=g[0],af=g[1];"eb"==$e?
(Mb=1,Xe=255,Ye=a.Mc,Ze=a.Nc):"e"==$e||"ew"==$e?(Mb=2,Xe=65535,Ye=a.Oa,Ze=a.yd):af=null;if(null==af)a.u("edit memory commands:"),a.u("\teb [a] [...] edit bytes at address a"),a.u("\tew [a] [...] edit words at address a");else{var Ad=wj(a,af);if(Ad)for(var Bd=2;Bd<g.length;Bd++){var wc=gj(a,g[Bd]);if(void 0===wc){a.u("unrecognized value: "+g[Bd]);break}wc&~Xe&&a.u("warning: "+v(wc)+" exceeds "+Mb+"-byte value");a.u("changing "+zj(a,Ad)+(H(a,16)?"":" from "+O(a,Ye.call(a,Ad),Mb))+" to "+O(a,wc,Mb));
Ze.call(a,Ad,wc,Mb)}}break;case "g":a:{var ui=g[1],Wk=b;if(void 0!==ui){var bf=wj(a,ui,!0);if(!bf)break a;yj(a,bf,Wk);a.pb(a.g,bf,!0)}Oj(a,!0,c)}break;case "h":a.A.U?(c||a.u("halting"),a.Z()):Cb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var cf;var xc=b.substr(2),xc=Ca(xc);gj(a,xc)?(c||a.u("true: "+xc),cf=!0):(c||a.u("false: "+xc),cf=!1);cf||(d=!1);break}f=!0;break;case "k":var Xk=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");
else{var df=0,ef=V(),yc=V(a.f.g[6]);for(a.u("stack trace for "+zj(a,yc));10>df;){for(var mb=null,Yk=256;65536>yc.K>>>0;){ef.K=a.Oa(yc,2);if(null==yc.K||!Yk--)break;if(!(ef.K&1)){for(var Zk=a,Cd=ef,vi=null,zc=Cd.K,wi=zc,ff=1;6>=ff&&zc;ff++){if(2<ff){Cd.K=zc;var Dd=Yj(Zk,Cd);if(0<=Dd.indexOf("JSR")){var xi=Dd.indexOf(" ");if(zc+(Dd.indexOf(" ",xi+1)-xi-1)/2==wi){vi=Dd;break}}}zc-=2}Cd.K=wi;if(mb=vi)break}}if(!mb||null==mb)break;var yi=null;if("ks"==Xk){var zi=mb.match(/[0-9A-F]+$/);zi&&(yi=pk(a,zi[0]))}mb=
Ba(mb,50)+" ;"+(yi||"stack="+zj(a,yc));a.u(mb);df++}df||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){pk(a,g[1],!0);break}f=!0;break;case "m":a:{var Ia,Ja=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Wa=0;if("all"==N)Wa=1879046143,N=null;else if("on"==N)Ja=!0,N=null;else if("off"==N)Ja=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ia in Sb)if(N==Ia){Wa=Sb[Ia];Ja=!!(a.ha&Wa);break}if(!Wa){a.u("unknown message category: "+N);break a}}if(Wa)if("on"==g[2])a.ha|=
Wa,Ja=!0;else if("off"==g[2]&&(a.ha&=~Wa,Ja=!1,1073741824==Wa)){for(var Ai=1E3<=a.M.length?a.M.length-1E3:0;Ai<a.M.length;)a.u(a.M[Ai++]);a.M=[]}}var $k=0,Ac="";for(Ia in Sb)if(!N||N==Ia){var al=!!(a.ha&Sb[Ia]);if(null===Ja||Ja==al)Ac&&(Ac+=","),++$k%10||(Ac+="\n\t"),"key"==Ia&&(Ia="keys"),Ac+=Ia}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ac||"none"));oj(a)}break;case "p":if("print"==
g[0]){qk(a,b.substr(5));break}var bl=g[0];if("?"==g[1])a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else{var Bi="pr"==bl?1:0,Ci=1+Bi;if(a.I)a.u("step in progress");else{var Ed=V(a.f.g[7]),Nb=a.Oa(Ed);3==Nb||4==Nb||34816==(Nb&65280)||32256==(Nb&65024)||35072==(Nb&65280)?(a.I=Ci,xj(Ed,2)):2048==(Nb&65024)&&(Yj(a,Ed),a.I=Ci);a.I?(a.pb(a.g,Ed,!0),Oj(a)||(a.J&&je(a.J),a.I=0)):rk(a,Bi?"tr":"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();
break}Qj(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Bc=+g[2];if(8==Bc||10==Bc||16==Bc)a.xa=Bc;else{a.u("invalid base: "+Bc);break}}a.u("default base: "+a.xa);break;case "cs":var Cc;void 0!==g[3]&&(Cc=+g[3]);switch(g[2]){case "int":a.f.Ab=Cc;break;case "start":a.f.Tb=Cc;break;case "stop":a.f.Cb=Cc;break;default:a.u("unknown cs option");break a}void 0!==Cc&&be(a.f);a.u("checksums "+(a.f.A.zb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ge(a.f,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));
a.u("target speed: "+(a.f.nb.toFixed(2)+"Mhz")+" ("+a.f.bb+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":rk(a,g[0],g[1]);break;case "u":Rj(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ok(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Fb||"PDP11")+" version 1.32.0 ("+a.f.ba+",RELEASE"+(Hb?",TYPEDARRAYS":Gb?",BYTEARRAYS":",LONGARRAYS")+")");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){qk(a,b.substr(1));break}var gf="commands:",hf;for(hf in uk)gf+="\n"+Ba(hf,9)+uk[hf];of(a)||(gf+="\nnote: history disabled if no exec breakpoints");a.u(gf);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Ei){a.u("debugger error: "+(Ei.stack||Ei.message)),
d=!1}return d}function ee(a,b,c){b=ej(a,b,c);for(var d in b)if(!Xj(a,b[+d]))return!1;return!0}
var uk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},ak=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
Cj=20,Dj=21,Ej=22,Fj=23,Gj=24,Hj=25,Ij=26,Jj=27,Kj=28,Lj=29,Mj=30,Aj={SP:6,PC:7,PS:Cj,PI:Dj,ER:Ej,SL:Fj,M0:Gj,M1:Hj,M2:Ij,M3:Jj,AR:Kj,DR:Lj,SR:Mj},tk="KI KD SI SD ?? ?? UI UD".split(" "),hk=7,ik=56,Y=ik|hk,gk=4032,X=4096,ck=8192,dk=12288,ek=24576,fk=32768,bk=61440,qj={61440:{4096:[62,gk,Y],8192:[47,gk,Y],12288:[18,gk,Y],16384:[14,gk,Y],20480:[16,gk,Y],24576:[3,gk,Y],36864:[63,gk,Y],40960:[48,gk,Y],45056:[19,gk,Y],49152:[15,gk,Y],53248:[17,gk,Y],57344:[94,gk,Y]},65024:{2048:[57,448,Y],28672:[100,Y,
448],29184:[101,Y,448],29696:[102,Y,448],30208:[103,Y,448],30720:[104,448,Y],32256:[105,448,ck]},65280:{256:[27,X],512:[24,X],768:[10,X],1024:[11,X],1280:[22,X],1536:[12,X],1792:[20,X],32768:[25,X],33024:[23,X],33280:[13,X],33536:[21,X],33792:[28,X],34048:[29,X],34304:[8,X],34560:[9,X],34816:[106,fk],35072:[107,fk]},65472:{64:[56,Y],192:[95,Y],2560:[39,Y],2624:[49,Y],2688:[53,Y],2752:[51,Y],2816:[67,Y],2880:[1,Y],2944:[77,Y],3008:[97,Y],3072:[73,Y],3136:[71,Y],3200:[6,Y],3264:[4,Y],3328:[58,ek],3392:[60,
Y],3456:[65,Y],3520:[96,Y],35328:[40,Y],35392:[50,Y],35456:[54,Y],35520:[52,Y],35584:[68,Y],35648:[2,Y],35712:[78,Y],35776:[98,Y],35840:[74,Y],35904:[72,Y],35968:[7,Y],36032:[5,Y],36096:[66,Y],36160:[59,Y],36224:[64,Y],36288:[61,Y]},65528:{128:[76,hk],152:[108,dk]},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]}},Zj=[0],uj=[58,60,65,96,110,100,101,102,103,104,105],vj=[108,59,64],Nj=1E3;db(function(){for(var a=E(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=xb(c),d=new mj(d);yb(d,c)}});
function vk(a,b,c){A.call(this,"Computer",a,0,33554432);this.A.fa=!1;this.P=null;wk(this,b);this.M=$d(this,"autoPower",a,6);this.j=0;this.T=+a.busWidth||+a.buswidth;this.I=this.H=this.L=null;this.G=this.S=!1;this.w=this.v=null;this.R=this.B=this.N=!1;this.V=$d(this,"url")||"";(Math.random()+.1).toString(36);this.g=xk(this);if(this.f=wb("CPU",this.id)){this.F=wb("Debugger",this.id);this.D=new Mc({id:this.lb+".bus",busWidth:this.T},this.f,this.F);var d,e=ub(this.id);if((this.i=wb("Panel",this.id))&&
this.i.Pa)for(b=0;b<e.length;b++)d=e[b],d.O=this.i.O,d.u=this.i.u,d.Pa=this.i.Pa;this.u(Fb+" v1.32.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.u("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ta&&d.ta(this,this.D,this.f,this.F);this.b=$d(this,"resume",a,4,yk);var f;b=null;if(a=$d(this,"state")||(f=!0,a.state))this.L=b=a,f||(this.G=
!0,this.b=yk),this.b&&(this.w=new M(this,"1.32.0"),zk(this.w)?b=null:delete this.w);!b&&this.b&&(b=Ak(this))&&(this.G=!0);if(b){var g=this;La(b,null,!0,function(a,b,c){c?(g.H=null,g.G=!1,g.O("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.I=b,g.S=!0);G(g)})}else G(this);this.C.power||(this.M=!0);!c&&this.M&&Bk(this,this.Ub)}else y("Unable to find CPU component")}p(vk,A);
function wk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){y(d.message+" ("+c+")")}}a.P=b}function $d(a,b,c,d,e){var f=b.toLowerCase(),f=Ya(b)||Ya(f);void 0===f&&a.P&&(f=a.P[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Bk(a,b,c){for(var d=ub(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){Bk(a,b,c)});return}}b.call(a,c)}function Ck(a,b){var c=new M(a,"1.32.0",Dk);if(zk(c)&&Ek(c)){var d=c.get(Fk),e=b?b.get(Fk):"unknown";d!=e&&(a.O("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=vk.prototype;
h.Ub=function(a){void 0===a&&(a=this.b||(this.I?Gk:yk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.w||new M(this,"1.32.0");if(a==Hk)b=!0;else if(a>yk){if(zk(d,this.I)){this.v=new M(this,"1.32.0",Ik);zk(this.v)&&(Jk(this,d),a=Kk,Lk(this.v));this.v.set(Fk,Ka());Mk(this.v);var e=this.b&&!this.G;if(a==Gk||Pa("Click OK to restore the previous "+Fb+" machine state, or CANCEL to reset the machine.")){if(c=Ek(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?zk(d,g):("error"==f&&"no machine state"!=
g?(this.O("Error: "+g),"unable to verify user"==g&&(Ta(Nk,""),this.g=null)):this.u(f+": "+g),Lk(d),zk(d)?(c=Ek(d),e=!0):c=!1))}e&&Ck(this,c?d:null)}else a==Kk&&d.clear()}else Ck(this);delete this.I;delete this.w}e=ub(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Ok(this,g,d,b,c));b=[d,a,c];a!=Hk?Bk(this,this.ed,b):this.ed(b)}};
function Ok(a,b,c,d,e){if(!b.A.fa){b.A.fa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.za(f,d)&&f&&(y("Unable to restore state for "+b.type),a.L&&!a.S?(c.clear(),a.b=yk,window&&window.location.reload()):a.N=!0,b.za(null),e=!1),!d&&b.Rc){var g=b.Rc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){y("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ed=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.A.fa=!0;var d=this.C.power;d&&(d.textContent="Shutdown");this.f&&(Ok(this,this.f,b,c,a),J(this),this.f.Ia());this.N&&(Jk(this,b),b.clear());!c&&this.v&&(this.v.clear(),delete this.v);this.j=0};
function Jk(a,b){if(Pa("There may be a problem with your "+Fb+" machine.\n\nTo help us diagnose it, click OK to send this "+Fb+" machine state to http://www.pcjs.org.")){var c=a.V;a=a.g||"";b=b.toString();var d={};d.app=Fb;d.ver="1.32.0";d.url=c;d.user=a;d.type="bug";d.data=b;La("http://www.pcjs.org/api/v1/report",d,!0)}}
function sk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new M(a,"1.32.0"),g=new M(a,"1.32.0",Dk),k=Ka();g.set(Fk,k);f.set(Fk,k);f.set(Pk,"1.32.0");f.set(Qk,window?window.location.href:null);f.set(Tk,window?window.navigator.userAgent:"");a.f&&a.f.ya&&(c&&a.f.Z(),d=a.f.ya(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.fa=!1,!1===d&&(e=null)));for(var k=ub(a.id),l=0;l<k.length;l++){var m=k[l];m.A.fa&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.fa=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.g&&cl(a,a.g,f.toString()),Mk(g)&&Mk(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==dl),d&&f.clear(k)):e=f.toString());c&&(a.A.fa=!1,b=a.C.power)&&(b.textContent="Power");a.j=0;return e}h.reset=function(){this.D&&this.D.reset&&(I(this,"Resetting "+this.D.type),this.D.reset());this.f&&this.f.reset&&(I(this,"Resetting "+this.f.type),this.f.reset());for(var a=ub(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.f&&c.reset&&(I(this,"Resetting "+c.type),c.reset())}J(this,-1)};
h.start=function(a,b){for(var c=ub(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};h.stop=function(a,b){for(var c=ub(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
function J(a,b){if(a.f){var c=a.f,d=b||0,e=c.C.speed;e&&(0>=d||30<=(c.oc+=d))&&(e.textContent=c.A.U?c.mb.toFixed(2)+"Mhz":"Stopped",c.oc=0)}if(a.i&&(a=a.i,b=b||0,a.v)){c=a.f.A.U;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)ec(a,"R"+e,a.f.g[e]);e=vd(a.f);ec(a,"PS",e);ec(a,"NF",e&8?1:0,1);ec(a,"ZF",e&4?1:0,1);ec(a,"VF",e&2?1:0,1);ec(a,"CF",e&1?1:0,1);a.j=0}Gc(a,0<b&&c&&!d?a.f.Za:a.ua);qc(a,a.vb);b=a.f;b=b.Ha?b.T&16?1:2:4;Ic(a,"B22",b&1);Ic(a,"B18",b&2);Ic(a,"B16",b&4)}}
h.pa=function(a,b,c){var d=this;switch(b){case "power":return this.C[b]=c,c.onclick=function(){d.j||(d.A.fa?sk(d,!1,!0):Bk(d,d.Ub))},!0;case "reset":return this.C[b]=c,c.onclick=function(){if(d.A.fa&&!d.j)if(d.b&&!d.H){var a=Pa("Click OK to save changes to this "+Fb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sk(d,a,!0);!a&&d.L?window&&window.location.reload():(a||(d.B=!0),d.Ub(yk),d.B=!1)}else d.reset(),d.f&&d.f.Ia()},!0;case "save":if(ya(Na(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.C[b]=c,c.onclick=function(){var a=xk(d,!0);if(a){var b=!!(d.b&&!d.H||d.L),c=sk(d,b);b?cl(d,a,c):d.O("Resume disabled, machine state not saved")}},!0}return!1};
function xk(a,b){var c=a.g;c||((c=Sa(Nk),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=el(a,c))||a.O("The user ID is invalid.")):b&&a.O("Browser local storage is not available"));return c}
function el(a,b){a.g=null;b=La(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(Nk,b.data),a.g=b.data)}catch(d){y(d.message+" ("+c+")")}return a.g}function Ak(a){var b=null;a.g&&(b=Na()+"/api/v1/user?req=load&user="+a.g+"&state="+fl(a,"1.32.0"));return b}
function cl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=fl(a,"1.32.0");d.data=c;b=La(Na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.O("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.O(c),Ta(Nk,""),a.g=null)}}
function Lh(a){var b;a=ub(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function je(a,b){if(a.Pa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Pa.focus();!b&&window&&window.scrollTo(c,d)}}var Ik="failsafe",Dk="validate",Fk="timestamp",Pk="version",Qk="url",Tk="browser",Nk="user",Hk=-1,yk=0,Gk=1,Kk=2,dl=3;
db(function(){for(var a=E(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=xb(c),c=E(c,B,"computer"),e=0;e<c.length;e++){var f=c[e],g=xb(f),g=new vk(g,d,!0);yb(g,f);g.M&&Bk(g,g.Ub)}});eb.show.push(function(){for(var a=E(document,B,"computer"),b=0;b<a.length;b++){var c=xb(a[b]);(c=wb("Computer",c.id))&&c.R&&!c.A.fa&&c.Ub(Hk)}});eb.exit.push(function(){for(var a=E(document,B,"computer"),b=0;b<a.length;b++){var c=xb(a[b]);(c=wb("Computer",c.id))&&c.A.fa&&sk(c,!(!c.b||c.H),!0)}});
function M(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.C=!1;this.key=fl(a,b,c);Lk(this,a.Fd)}h=M.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function zk(a,b){return b?(a.b=b,a.g=!0,a.C=!1,!0):a.g?!0:Qa()&&(b=Sa(a.key))?(a.b=b,a.g=!0):!1}function Ek(a){var b=!0;if(!a.C)try{a.f=JSON.parse(a.b),a.C=!0}catch(c){y(c.message||c),b=!1}return b}
function Mk(a){var b=!0;if(Qa()){var c=JSON.stringify(a.f);Ta(a.key,c)||(y("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function Lk(a,b){a.b="";a.f={};a.g=a.C=!1;b&&a.set("parms",b)}
h.clear=function(a){Lk(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function fl(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}var gl=0;
function hl(a,b,c,d,e,f){e("Loading "+a+"...");La(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):il(k,a,b,c,d,e,f)})}
function il(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(sb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?jl(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function jl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");La(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);jl(a,b,c)}})}else c(a,null)}
function kl(a,b,c,d){function e(a){if(void 0===k){var b=g&&E(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=za(a))}function f(a){e("Error: "+a);l&&(--gl||nb(!0));l=!1}var g,k,l=!0;gl++;tb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.32.0/components.xsl");m=function(d,k){k?hl(c,null,null,!1,e,function(d,l){l?(sb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--gl||nb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--gl||nb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?hl(b,a,d,!0,e,m):il(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPDP11=function(a,b,c,d){nb(!1);return kl(a,b,c,d)};window.enableEvents=nb;window.sendEvent=pb;})();//# sourceMappingURL=/tmp/pdpjs/1.32.0/pdp11-dbg.map

View file

@ -32,251 +32,253 @@
http://pcjs.org/modules/shared/es6/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/debugger.js (C) Jeff Parsons 2012-2017
*/
var h;function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da<ca.length-1;da++){var ea=ca[da];ea in ba||(ba[ea]={});ba=ba[ea]}var fa=ca[ca.length-1],ga=ba[fa],ha=ga?ga:function(a){return Math.log(a)/Math.LN2};
ha!=ga&&null!=ha&&aa(ba,fa,{configurable:!0,writable:!0,value:ha});
var ia={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},q={Gf:0,Gc:1,If:2,Jf:3,Kf:4,Lf:5,Mf:6,Nf:7,ic:8,Of:9,Hc:10,Pf:11,Qf:12,Ic:13,Rf:14,Sf:15,Tf:16,Uf:17,Vf:18,Wf:19,Xf:20,Yf:21,Zf:22,$f:23,ag:24,bg:25,cg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}for(var ia=ba,ja=["Math","log2"],ka=0;ka<ja.length-1;ka++){var la=ja[ka];la in ia||(ia[la]={});ia=ia[la]}var ma=ja[ja.length-1],na=ia[ma],oa=na?na:function(a){return Math.log(a)/Math.LN2};oa!=na&&null!=oa&&aa(ia,ma,{configurable:!0,writable:!0,value:oa});
var pa={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},q={Gf:0,Gc:1,If:2,Jf:3,Kf:4,Lf:5,Mf:6,Nf:7,ic:8,Of:9,Hc:10,Pf:11,Qf:12,Ic:13,Rf:14,Sf:15,Tf:16,Uf:17,Vf:18,Wf:19,Xf:20,Yf:21,Zf:22,$f:23,ag:24,bg:25,cg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,hc:65,Ff:66,Hf:67,dg:68,E:69,eg:70,fg:71,gg:72,hg:73,ig:74,jg:75,kg:76,lg:77,mg:78,ng:79,og:80,Q:81,pg:82,qg:83,rg:84,sg:85,tg:86,ug:87,vg:88,wg:89,Uc:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,xg:97,yg:98,zg:99,d:100,e:101,Bg:102,Cg:103,Dg:104,Eg:105,Hg:106,k:107,Ig:108,Jg:109,n:110,Kg:111,p:112,q:113,r:114,Lg:115,t:116,Mg:117,Ng:118,Og:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,Jc:127};
function r(a){var b=10,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==
e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function ja(a,b){var c="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return""+c}function ka(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function u(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function la(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ma(a,b){return-1!==a.indexOf(b,a.length-b.length)}function na(a){return a.replace(/[&<>"']/g,function(a){return oa[a]})}function pa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var oa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},qa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function ra(){return Date.now()||+new Date}
function sa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function qa(a,b){var c="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return""+c}function ra(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function u(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ta(a,b){return-1!==a.indexOf(b,a.length-b.length)}function ua(a){return a.replace(/[&<>"']/g,function(a){return va[a]})}function wa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},xa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function ya(){return Date.now()||+new Date}
function za(){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 v(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function ta(a,b){var c,d={N:null,ga:null,Z:null,Y:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Z=g.load;d.Y=g.exec;if(e=g.bytes)d.N=e;else if(e=g.words)for(d.N=Array(2*e.length),f=c=0;c<e.length;c++)d.N[f++]=e[c]&255,d.N[f++]=e[c]>>8&255;else if(e=g.data)for(d.N=Array(4*e.length),f=c=0;c<e.length;c++)d.N[f++]=e[c]&255,
d.N[f++]=e[c]>>8&255,d.N[f++]=e[c]>>16&255,d.N[f++]=e[c]>>24&255;else d.N=g;d.ga=g.symbols;d.N.length?1==d.N.length&&(y(d.N[0]),d=null):(y("Empty resource: "+a),d=null)}catch(k){y("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){y("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.N=e)}return d}
function ua(){return"http://"+(window?window.location.host:"www.pcjs.org")}function z(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}function wa(){if(null==xa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}xa=a}return xa}
function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Aa(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)}return!1}
function Ba(a){if(!Ca){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ca=c}return Ca[a]}
function Ea(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}
function Fa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ga(a){Ha.init.push(a)}function Ia(a){if(Ja)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){z&&z(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ka(a){!Ja&&a?(Ja=!0,La&&Ma("init"),Na&&Ma("show")):Ja=a}function Ma(a){Ha[a]&&Ia(Ha[a])}var Ca=null,Ha={init:[],show:[],exit:[]},La=!1,Na=!1,Ja=!0,xa=null;
Fa("onload",function(){La=!0;Ia(Ha.init)});Fa("onpageshow",function(){Na=!0;Ia(Ha.show)});Fa(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Ia(Ha.exit)});
function A(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Rc=b;this.exports={};a=this.id.indexOf(".");0>a?this.Ga=this.id:(this.Ha=this.id.substr(0,a),this.Ga=this.id.substr(a+1));this.l={ready:!1,Pa:!1,Xb:!1,R:!1,error:!1};this.zb=null;this.l.error=!1;this.j={};this.Kc=d||0;this.C=this.c=this.s=this.A=this.ab=null;B.push(this)}function Oa(a,b,c){Pa[a]&&b&&(Pa[a][b]=c)}function y(a){z&&z(a)}
function C(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<B.length;b++){var d=B[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Qa(a){if(void 0!==a){var b;for(b=0;b<B.length;b++)if(B[b].id===a)return B[b]}return null}function Ra(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<B.length;d++)if(c)c==B[d]&&(c=null);else if(!(a!=B[d].type||b&&B[d].id.indexOf(b)))return B[d]}return null}
function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){y(c.message+" ("+a+")")}return b}function E(a,b){var c=F;b=G(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=D(g))&&k.binding&&a.da(k.type,k.binding,g,k.value),m=l.length}}}}
function Aa(a,b){var c,d={N:null,fa:null,Z:null,Y:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Z=g.load;d.Y=g.exec;if(e=g.bytes)d.N=e;else if(e=g.words)for(d.N=Array(2*e.length),f=c=0;c<e.length;c++)d.N[f++]=e[c]&255,d.N[f++]=e[c]>>8&255;else if(e=g.data)for(d.N=Array(4*e.length),f=c=0;c<e.length;c++)d.N[f++]=e[c]&255,
d.N[f++]=e[c]>>8&255,d.N[f++]=e[c]>>16&255,d.N[f++]=e[c]>>24&255;else d.N=g;d.fa=g.symbols;d.N.length?1==d.N.length&&(y(d.N[0]),d=null):(y("Empty resource: "+a),d=null)}catch(k){y("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){y("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.N=e)}return d}
function Ba(){return"http://"+(window?window.location.host:"www.pcjs.org")}function z(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}function Da(){if(null==Fa){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}Fa=a}return Fa}
function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}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)}return!1}
function Ja(a){if(!Ka){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ka=c}return Ka[a]}
function La(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}
function Ma(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Na(a){Oa.init.push(a)}function Pa(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){z&&z(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ra(a){!Qa&&a?(Qa=!0,Sa&&Ta("init"),Ua&&Ta("show")):Qa=a}function Ta(a){Oa[a]&&Pa(Oa[a])}var Ka=null,Oa={init:[],show:[],exit:[]},Sa=!1,Ua=!1,Qa=!0,Fa=null;
Ma("onload",function(){Sa=!0;Pa(Oa.init)});Ma("onpageshow",function(){Ua=!0;Pa(Oa.show)});Ma(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Pa(Oa.exit)});
function A(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Rc=b;this.exports={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.l={ready:!1,Sa:!1,Xb:!1,R:!1,error:!1};this.Bb=null;this.l.error=!1;this.j={};this.Kc=d||0;this.D=this.c=this.u=this.A=this.ab=null;B.push(this)}function Va(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function y(a){z&&z(a)}
function C(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<B.length;b++){var d=B[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Xa(a){if(void 0!==a){var b;for(b=0;b<B.length;b++)if(B[b].id===a)return B[b]}return null}function Ya(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<B.length;d++)if(c)c==B[d]&&(c=null);else if(!(a!=B[d].type||b&&B[d].id.indexOf(b)))return B[d]}return null}
function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){y(c.message+" ("+a+")")}return b}function E(a,b){var c=F;b=G(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=D(g))&&k.binding&&a.ca(k.type,k.binding,g,k.value),m=l.length}}}}
function G(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=A.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.da=function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.ab=this.j[b]=c,c.value="",this.V=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.B=function(a){this.V(a,this.Ga)}),!0;default:return!1}};h.log=function(){};h.V=function(){};
h.status=function(a){this.V(this.Ga+": "+a)};h.B=function(a,b,c){c=c||this.type;!b&&z&&z((c?c+": ":"")+a)};function Sa(a,b){a.l.error=!0;a.B(b)}function Ta(a,b){b&&(a.l.ready?b():a.zb=b);return a.l.ready}function H(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.zb,a.zb=null,b&&b()))}function Ua(a,b){a.l.Xb?(a.l.Pa=!1,a.l.Xb=!1):a.l.error?a.V(a.toString()+" error"):a.l.Pa=b}h.ba=function(){return this.l.R=!0};h.ia=function(a,b){b&&(this.l.R=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var Pa=window?window.PCjs.Machines:{},B=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
h.ca=function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.ab=this.j[b]=c,c.value="",this.V=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.B=function(a){this.V(a,this.Ka)}),!0;default:return!1}};h.log=function(){};h.V=function(){};
h.status=function(a){this.V(this.Ka+": "+a)};h.B=function(a,b,c){c=c||this.type;!b&&z&&z((c?c+": ":"")+a)};function Za(a,b){a.l.error=!0;a.B(b)}function $a(a,b){b&&(a.l.ready?b():a.Bb=b);return a.l.ready}function H(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.Bb,a.Bb=null,b&&b()))}function ab(a,b){a.l.Xb?(a.l.Sa=!1,a.l.Xb=!1):a.l.error?a.V(a.toString()+" error"):a.l.Sa=b}h.ha=function(){return this.l.R=!0};h.ga=function(a,b){b&&(this.l.R=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var Wa=window?window.PCjs.Machines:{},B=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Va="undefined"!==typeof ArrayBuffer,F="pdp11",Wa="PDPjs",Xa=!0,Ya=!0,Za={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},F="pdp11",Wa="PDPjs",Ya=Xa=!0;
function $a(a,b){A.call(this,"Panel",a,0,512);this.i=this.m=0;this.D=b;this.ja=this.g=this.b=this.h=0;this.u=this.v=this.o=!1;this.w=ab;this.f={};this.a={START:[1,1,!0,!1,this.md],STEP:[1,1,!1,!1,this.nd],ENABLE:[1,1,!1,!1,this.hd],CONT:[1,1,!0,!1,this.fd],DEP:[0,0,!0,!1,this.gd],EXAM:[1,1,!0,!1,this.jd],LOAD:[1,1,!0,!1,this.ld],TEST:[0,0,!0,!1,this.kd]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.od,a];this.C=this.c=this.s=this.A=null;H(this)}n($a,A);h=$a.prototype;h.reset=function(){this.stop()};
h.da=function(a,b,c,d){if(this.A&&this.A.da(a,b,c,d)||this.c&&this.c.da(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.j[b]=c,this.m++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.f[b]=d?1:0,this.m++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){bb(a,
b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){cb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){bb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){cb(a,b)}}(this,b),!0):A.prototype.da.call(this,a,b,c,d)}};h.aa=function(a,b,c,d){this.A=a;this.s=b;this.c=c;this.C=d;db(b,this,eb);fb(b,this.reset.bind(this));gb(this);hb(this)};h.ba=function(a,b){b||(this.D&&ib(),this.reset());return!0};h.ia=function(){return!0};
function jb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gb(a,b){for(var c in a.f)jb(a,c,null!=b?b:a.f[c])}function kb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hb(a){for(var b in a.a)kb(a,b,a.a[b][1])}function lb(a,b,c,d){a.j[b]&&(void 0===c&&(Sa(a,"Value for "+b+" is invalid"),I(a.c)),c=8==(a.C&&a.C.h||8)?ja(c,d):ka(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
function bb(a,b){var c=a.a[b];kb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=mb&&(a.u=b==nb,a.v=b==ob)}function cb(a,b){var c=a.a[b];c[2]&&c[3]&&(kb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.md=function(a){a||this.c.l.P||(a=this.c,a.s.reset(),pb(a),this.a[qb]&&this.a[qb][1]&&rb(this.c))};h.nd=function(){};h.hd=function(a){a||I(this.c)};
h.fd=function(a){if(!a&&!this.c.l.P)if(this.a[qb]&&this.a[qb][1])rb(this.c);else{a=this.C;var b;if(b=a)a.l.Pa&&(a.l.Xb=!0),b=!a.l.Pa;if(b)Ua(a,!0),a.f(0,null),Ua(a,!1);else try{var c=this.c.Qb(1);0<c&&(sb(this.c,c),tb(this.c,c,!0),ub(this.c,c))}catch(d){"number"!=typeof d&&Sa(this.c,d.stack||d.message)}this.stop();this.A&&vb(this.A)}};h.gd=function(a){if(a&&!this.c.l.P)if(this.u&&wb(this),a=xb(this,this.b),this.w==ab)yb(this.s,this.ja,a);else{var b=this.c,c=this.ja;b.$a++;b.s.wb(zb(b,c,4),a);b.$a--}};
h.jd=function(a){if(!a&&!this.c.l.P){this.v&&wb(this);if(this.w==ab)a=Ab(this.s,this.ja);else{a=this.c;var b=this.ja;a.$a++;b=a.s.vb(zb(a,b,2));a.$a--;a=b}xb(this,a)}};h.ld=function(a){a||this.c.l.P||Bb(this,this.b)};h.kd=function(a){if(a)this.o=!0,gb(this,!0);else if(this.o=!1,gb(this),void 0!==this.j[Cb]){for(a=this.b=0;22>a;a++)this.a["S"+a][1]=0&1<<a?1:0;hb(this)}};h.od=function(a,b){this.b=a?this.b|1<<b:this.b&~(1<<b)};
function wb(a){var b=1145>a.c.xa?8:16,c=65472<=a.ja&&a.ja<65472+b,b=c?1:2,c=c?15:a.s.v;a.a[mb]&&a.a[mb][1]||(b=-b);Bb(a,a.ja&~c|a.ja+b&c)}function Bb(a,b){a.ja=b&a.s.v;b=a.ja;for(var c=0;22>c;c++)Db(a,"A"+c,b&1<<c)}function xb(a,b){a.g=b&65535;b=a.g;for(var c=0;16>c;c++)Db(a,"D"+c,b&1<<c);return a.g}function Db(a,b,c){a.f[b]=c;a.o||jb(a,b,c)}h.stop=function(){Bb(this,this.c.b[7])};h.setData=function(a,b){b?this.h=a:this.g=a};h.td=function(a,b){return(b?this.h:this.b)&65535};
h.Ee=function(a){this.h=a};function ib(){for(var a=G(document,F,"panel"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=Qa(d.id);e||(e=new $a(d,!0));E(e,c)}}var ab=7,Cb="S0",nb="DEP",qb="ENABLE",ob="EXAM",mb="STEP",Eb={},eb=(Eb[65400]=[null,null,$a.prototype.td,$a.prototype.Ee,"CNSW"],Eb);Ga(ib);
function Fb(a,b,c){A.call(this,"Bus",a,0,16);this.c=b;this.C=c;this.S=+a.busWidth||16;this.F=1<<this.S;this.v=this.F-1;this.g=Gb;this.h=Math.log2(this.g);this.K=this.g>>2;this.f=this.g-1;this.u=this.F/this.g|0;this.L=this.u-1;this.Ca=[];this.m=0;this.o=!1;this.G=[];this.Vc=[Hb,Ib,Jb,Kb];this.a=this.b=[];this.D=this.w=this.i=this.H=this.I=0;a=new J(this);Lb(a);this.a=Array(this.u);this.b=Array(this.u);for(b=0;b<this.u;b++)this.a[b]=this.b[b]=a;this.D=this.F-Gb;Mb(this,this.D,Gb,Nb,this);this.I=this.H=
(this.D&this.v)>>>this.h;this.w=0;this.i=this.v;H(this)}n(Fb,A);function Ob(a,b){if(b!=a.w){for(var c=0;c<a.u;c++)a.b[c]=a.a[c];a.w=0;a.i=a.v;b&&(a.w=b,b=1<<b,a.i=b-1,b-=Gb,a.I=(b&a.i)>>>a.h,a.b[a.I]=a.a[a.H])}}h=Fb.prototype;h.reset=function(){for(var a=0;a<this.G.length;a++)this.G[a]();Ob(this,16)};h.ba=function(a,b){b||this.reset();return!0};
function Mb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.h;0<g&&k<a.a.length;){var l=a.a[k],m=k*a.g,p=a.g-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Oa)return l.tb+=l.Oa-f,l.Oa=f,!0;if(f>=l.Oa+l.tb){p=l.size-(f-m);p>g&&(p=g);l.tb=f-l.Oa+p;f=m+a.g;g-=p;k++;continue}}return Pb(Qb,f,g)}f=new J(a,f,p,a.g,d,e);Lb(f,l);a.a[k++]=f;f=m+a.g;g-=p}return 0>=g?(a.status((c>>10)+"Kb "+Rb[d]+" at "+ja(b)),!0):Pb(Sb,b,c)}h.Ec=function(a){return this.b[(a&this.i)>>>this.h].fb(a&this.f,a)};
h.vb=function(a){var b=a&this.f,c=(a&this.i)>>>this.h;return Ya||b!=this.f?this.b[c].W(b,a):this.b[c++].fb(b,a)|this.b[c&this.L].fb(0,a+1)<<8};h.Fc=function(a,b){this.b[(a&this.i)>>>this.h].ib(a&this.f,b,a)};h.wb=function(a,b){var c=a&this.f,d=(a&this.i)>>>this.h;Ya||c!=this.f?this.b[d].lb(c,b,a):(this.b[d++].ib(c,b&255,a),this.b[d&this.L].ib(0,b>>8&255,a+1))};function Tb(a,b){return a.a[(b&a.v)>>>a.h]}
function Ab(a,b){var c;a.o=!1;a.m++;var d=b&a.f,e=Tb(a,b);Ya||d!=a.f?c=e.C(d,b):c=e.i(d,b)|Tb(a,b+1).i(0,b+1)<<8;a.m--;return c}function Ub(a,b,c){a.o=!1;a.m++;Tb(a,b).j(b&a.f,c&255,b);a.m--}function yb(a,b,c){a.o=!1;a.m++;var d=b&a.f,e=Tb(a,b);Ya||d!=a.f?e.m(d,c&65535,b):(e.j(d,c&255,b),Tb(a,b+1).j(0,c>>8&255,b+1));a.m--}
function Vb(a){for(var b=0,c=[],d=0;d<a.u;d++){var e=a.a[d];if(e.va||e.ad){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function Wb(a){for(var b=Xb,c=0,d=0;d<a.a.length;d++){var e=a.a[d];e.type==b&&(c=e.Oa+e.tb)}return c}
function Yb(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&Zb;if(void 0!==a.Ca[p])return z&&z("I/O address already registered: "+ka(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Ca[p]=[d,e,f,g,t,k||16,!1]}return!0}
function db(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.xa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],x=g[5]||1,w=0;w<x;w++,f+=2)if(t&&1<x&&(t=g[4]+w),!Yb(a,f,f,k,l,m,p,g[7]||b.Kc,t||b.Ga))return!1}}return!0}
function fb(a,b){a.G.push(b)}function K(a,b,c){a.o=!0;a.m||(c&&(a.c.G|=c),L(a.c,4,0,b))}function $b(a){var b=a.o;a.o=!1;return b}function Pb(a,b,c){y("Memory block error ("+a+": "+ka(b)+","+ka(c)+")");return!1}var Gb=8192,Zb=Gb-1,Qb=1,Sb=2;function Hb(a,b){var c=-1,d=this.controller,e=d.Ca[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ca[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;K(d,b,16);return 255}
function Ib(a,b,c){var d=!1,e=this.controller,f=e.Ca[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ca[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d||K(e,c,16)}function Jb(a,b){var c=-1,d=this.controller;a=d.Ca[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return c;K(d,b,16);return 65535}
function Kb(a,b,c){var d=!1,e=this.controller;a=e.Ca[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d||K(e,c,16)}function M(a){A.call(this,"Device",a,0,256);this.a={Ag:0,bc:-1}}n(M,A);h=M.prototype;h.aa=function(a,b,c,d){this.s=b;this.A=a;this.c=c;this.C=d;var e=this;this.a.bc=ac(c,function(){e.a.cb|=128;e.a.cb&64&&bc(e.c,e.a.Da);e.A&&vb(e.A,1);cc(e.c,e.a.bc,1E3/60)});this.a.Da=ec(c,64,6,524288);db(b,this,fc);fb(b,this.reset.bind(this));H(this)};
h.reset=function(){this.a.cb=128;cc(this.c,this.a.bc,1E3/60,!0)};h.Ad=function(){return this.a.cb};h.Le=function(a){this.a.cb=a&192;this.a.cb&64||(a=this.a.Da)&&gc(this.c,a)};h.Cd=function(){var a=this.c,b=a.H;b&57344||(b=b&-3199|a.Wa<<5|a.Xa<<1);return b};h.Ne=function(a){hc(this.c,a&-129|this.c.H&128)};h.Dd=function(){var a=this.c;a.H&57344||(a.qb=a.F>>16&65535);a=a.qb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ed=function(){var a=this.c;a.H&57344||(a.rb=a.F&65535);return a.rb};h.Fd=function(){return this.c.oa};
h.Oe=function(a){var b=this.c;1170>b.xa&&(a&=-49);b.oa!=a&&(b.oa=a,b.Ka=a&16?4194303:262143,ic(b))};h.me=function(a){a=a>>1&63;var b=this.c.Na[a>>1];return a&1?b>>16:b&65535};h.xf=function(a,b){b=b>>1&63;var c=b>>1;this.c.Na[c]=b&1?this.c.Na[c]&65535|(a&63)<<16:this.c.Na[c]&-65536|a&65534};h.fe=function(a){return this.c.u[1][a>>1&7]};h.qf=function(a,b){this.c.u[1][b>>1&7]=a&65295};h.de=function(a){return this.c.u[1][(a>>1&7)+8]};h.nf=function(a,b){this.c.u[1][(b>>1&7)+8]=a&65295};
h.ee=function(a){return this.c.I[1][a>>1&7]};h.pf=function(a,b){b=b>>1&7;this.c.I[1][b]=a;this.c.u[1][b]&=65295};h.ce=function(a){return this.c.I[1][(a>>1&7)+8]};h.mf=function(a,b){b=(b>>1&7)+8;this.c.I[1][b]=a;this.c.u[1][b]&=65295};h.zd=function(a){return this.c.u[0][a>>1&7]};h.Ke=function(a,b){this.c.u[0][b>>1&7]=a&65295};h.xd=function(a){return this.c.u[0][(a>>1&7)+8]};h.Ie=function(a,b){this.c.u[0][(b>>1&7)+8]=a&65295};h.yd=function(a){return this.c.I[0][a>>1&7]};
h.Je=function(a,b){b=b>>1&7;this.c.I[0][b]=a;this.c.u[0][b]&=65295};h.wd=function(a){return this.c.I[0][(a>>1&7)+8]};h.He=function(a,b){b=(b>>1&7)+8;this.c.I[0][b]=a;this.c.u[0][b]&=65295};h.le=function(a){return this.c.u[3][a>>1&7]};h.wf=function(a,b){this.c.u[3][b>>1&7]=a&65295};h.je=function(a){return this.c.u[3][(a>>1&7)+8]};h.uf=function(a,b){this.c.u[3][(b>>1&7)+8]=a&65295};h.ke=function(a){return this.c.I[3][a>>1&7]};h.vf=function(a,b){b=b>>1&7;this.c.I[3][b]=a;this.c.u[3][b]&=65295};
h.ie=function(a){return this.c.I[3][(a>>1&7)+8]};h.tf=function(a,b){b=(b>>1&7)+8;this.c.I[3][b]=a;this.c.u[3][b]&=65295};h.gb=function(a){a&=7;return this.c.i&2048?this.c.ua[a]:this.c.b[a]};h.jb=function(a,b){b&=7;this.c.i&2048?this.c.ua[b]=a:this.c.b[b]=a};h.Kd=function(){return this.c.i&49152?this.c.fa[0]:this.c.b[6]};h.Te=function(a){this.c.i&49152?this.c.fa[0]=a:this.c.b[6]=a};h.Nd=function(){return this.c.b[7]};h.We=function(a){this.c.b[7]=a};
h.hb=function(a){a&=7;return this.c.i&2048?this.c.b[a]:this.c.ua[a]};h.kb=function(a,b){b&=7;this.c.i&2048?this.c.b[b]=a:this.c.ua[b]=a};h.Ld=function(){return 1==(this.c.i&49152)>>14?this.c.b[6]:this.c.fa[1]};h.Ue=function(a){1==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.fa[1]=a};h.Md=function(){return 3==(this.c.i&49152)>>14?this.c.b[6]:this.c.fa[3]};h.Ve=function(a){3==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.fa[3]=a};h.vd=function(a){return this.c.Nb[a-65504>>1]};
h.Ge=function(a,b){this.c.Nb[b-65504>>1]=a};h.zc=function(a){return 65520==a?(Wb(this.s)>>6)-1:0};h.Cc=function(){};h.he=function(){return 1};h.sf=function(){};h.ud=function(){return this.c.G};h.Fe=function(){this.c.G=0};h.Bd=function(){return this.c.Mb};h.Me=function(a,b){b&1||(a&=255);this.c.Mb=a};h.Gd=function(a,b){return b?0:this.c.bb};h.Pe=function(a){var b=this.c;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.g|=1}b.bb=a};h.ge=function(a,b){return b?0:this.c.Ma&65280};
h.rf=function(a){this.c.Ma=a|255};h.Jd=function(){return jc(this.c)};h.Se=function(a){kc(this.c,a)};h.Bc=function(){};
var N={},fc=(N[61568]=[null,null,M.prototype.me,M.prototype.xf,"UNIMAP",64,1170],N[62592]=[null,null,M.prototype.fe,M.prototype.qf,"SIPDR",8,1145,64],N[62608]=[null,null,M.prototype.de,M.prototype.nf,"SDPDR",8,1145,64],N[62624]=[null,null,M.prototype.ee,M.prototype.pf,"SIPAR",8,1145,64],N[62640]=[null,null,M.prototype.ce,M.prototype.mf,"SDPAR",8,1145,64],N[62656]=[null,null,M.prototype.zd,M.prototype.Ke,"KIPDR",8,1145,64],N[62672]=[null,null,M.prototype.xd,M.prototype.Ie,"KDPDR",8,1145,64],N[62688]=
[null,null,M.prototype.yd,M.prototype.Je,"KIPAR",8,1145,64],N[62704]=[null,null,M.prototype.wd,M.prototype.He,"KDPAR",8,1145,64],N[62798]=[null,null,M.prototype.Fd,M.prototype.Oe,"MMR3",1,1145,64],N[65382]=[null,null,M.prototype.Ad,M.prototype.Le,"LKS"],N[65402]=[null,null,M.prototype.Cd,M.prototype.Ne,"MMR0",1,1145,64],N[65404]=[null,null,M.prototype.Dd,M.prototype.Bc,"MMR1",1,1145,64],N[65406]=[null,null,M.prototype.Ed,M.prototype.Bc,"MMR2",1,1145,64],N[65408]=[null,null,M.prototype.le,M.prototype.wf,
"UIPDR",8,1145,64],N[65424]=[null,null,M.prototype.je,M.prototype.uf,"UDPDR",8,1145,64],N[65440]=[null,null,M.prototype.ke,M.prototype.vf,"UIPAR",8,1145,64],N[65456]=[null,null,M.prototype.ie,M.prototype.tf,"UDPAR",8,1145,64],N[65472]=[null,null,M.prototype.gb,M.prototype.jb,"R0SET0"],N[65473]=[null,null,M.prototype.gb,M.prototype.jb,"R1SET0"],N[65474]=[null,null,M.prototype.gb,M.prototype.jb,"R2SET0"],N[65475]=[null,null,M.prototype.gb,M.prototype.jb,"R3SET0"],N[65476]=[null,null,M.prototype.gb,
M.prototype.jb,"R4SET0"],N[65477]=[null,null,M.prototype.gb,M.prototype.jb,"R5SET0"],N[65478]=[null,null,M.prototype.Kd,M.prototype.Te,"R6KERNEL"],N[65479]=[null,null,M.prototype.Nd,M.prototype.We,"R7KERNEL"],N[65480]=[null,null,M.prototype.hb,M.prototype.kb,"R0SET1",1,1145],N[65481]=[null,null,M.prototype.hb,M.prototype.kb,"R1SET1",1,1145],N[65482]=[null,null,M.prototype.hb,M.prototype.kb,"R2SET1",1,1145],N[65483]=[null,null,M.prototype.hb,M.prototype.kb,"R3SET1",1,1145],N[65484]=[null,null,M.prototype.hb,
M.prototype.kb,"R4SET1",1,1145],N[65485]=[null,null,M.prototype.hb,M.prototype.kb,"R5SET1",1,1145],N[65486]=[null,null,M.prototype.Ld,M.prototype.Ue,"R6SUPER",1,1145],N[65487]=[null,null,M.prototype.Md,M.prototype.Ve,"R6USER",1,1145],N[65504]=[null,null,M.prototype.vd,M.prototype.Ge,"CTRL",8,1170],N[65520]=[null,null,M.prototype.zc,M.prototype.Cc,"LSIZE",1,1170],N[65522]=[null,null,M.prototype.zc,M.prototype.Cc,"HSIZE",1,1170],N[65524]=[null,null,M.prototype.he,M.prototype.sf,"SYSID",1,1170],N[65526]=
[null,null,M.prototype.ud,M.prototype.Fe,"ERR",1,1170],N[65528]=[null,null,M.prototype.Bd,M.prototype.Me,"MBR",1,1170],N[65530]=[null,null,M.prototype.Gd,M.prototype.Pe,"PIR"],N[65532]=[null,null,M.prototype.ge,M.prototype.rf,"SLR"],N[65534]=[null,null,M.prototype.Jd,M.prototype.Se,"PSW"],N);
Ga(function(){for(var a=G(document,F,"device"),b=0;b<a.length;b++){var c,d=a[b];c=D(d);switch(c.type){case "default":c=new M(c);E(c,d);break;case "pc11":c=new lc(c);E(c,d);break;case "rl11":c=new O(c);E(c,d);break;case "rk11":c=new P(c),E(c,d)}}});
function J(a,b,c,d,e,f){this.b=a;this.id=mc+=2;this.c=null;this.Oa=b;this.tb=c;this.size=d||0;this.type=e||nc;this.A=e==oc;this.controller=null;this.fb=this.i=this.Zb;this.W=this.C=this.$b;this.ib=this.j=this.ub;this.lb=this.m=this.dc;this.g=this.s=0;Lb(this);this.va=this.ad=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.c=a[0],pc(this,f.Vc);else if(Va)this.f=new ArrayBuffer(this.size),this.h=new DataView(this.f,0,this.size),this.a=new Uint8Array(this.f,0,this.size),this.o=new Uint16Array(this.f,
0,this.size>>1),this.c=new Int32Array(this.f,0,this.size>>2),pc(this,qc?rc:sc);else{a=this.c=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;pc(this,tc)}else pc(this)}h=J.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Va)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.h.getInt32(b<<2,!0);else a=this.c;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Va)for(b=0;b<a.length;b++)this.h.setInt32(b<<2,a[b],!0);else this.c=a;return this.va=!0}return!1};function pc(a,b){b||(b=uc);vc(a,b,void 0);wc(a,b,void 0)}function vc(a,b,c){c&&a.g||(a.fb=b[0]||a.Zb,a.W=b[2]||a.$b);if(c||void 0===c)a.i=b[0]||a.Zb,a.C=b[2]||a.$b}function wc(a,b,c){c&&a.s||(a.ib=!a.A&&b[1]||a.ub,a.lb=!a.A&&b[3]||a.dc);if(c||void 0===c)a.j=b[1]||a.ub,a.m=b[3]||a.dc}
function Lb(a,b){a.g=a.s=0;b&&((a.g=b.g)&&vc(a,yc,!1),(a.s=b.s)&&wc(a,yc,!1))}h.Zb=function(a,b){K(this.b,b,32);return 255};h.ub=function(a,b,c){K(this.b,c,32)};h.$b=function(a,b){return this.fb(a++,b++)|this.fb(a,b)<<8};h.dc=function(a,b,c){this.ib(a++,b&255,c++);this.ib(a,b>>8,c)};h.sd=function(a){return this.c[a>>2]>>>((a&3)<<3)&255};h.re=function(a,b){Xa&&a&1&&K(this.b,b,64);b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8};
h.De=function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.va=!0};h.Bf=function(a,b,c){Xa&&a&1&&K(this.b,c,64);c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.va=!0};h.qd=function(a,b){return this.i(a,b)};h.oe=function(a,b){return this.C(a,b)};h.Be=function(a,b,c){this.A?this.ub(0,0,c):this.j(a,b,c)};h.zf=function(a,b,c){this.A?this.ub(0,0,c):this.m(a,b,c)};h.pd=function(a){return this.a[a]};
h.rd=function(a){return this.a[a]};h.ne=function(a,b){Xa&&a&1&&K(this.b,b,64);return this.h.getUint16(a,!0)};h.qe=function(a,b){Xa&&a&1&&K(this.b,b,64);return!Ya&&a&1?this.a[a]|this.a[a+1]<<8:this.o[a>>1]};h.Ae=function(a,b){this.a[a]=b;this.va=!0};h.Ce=function(a,b){this.a[a]=b;this.va=!0};h.yf=function(a,b,c){Xa&&a&1&&K(this.b,c,64);this.h.setUint16(a,b,!0);this.va=!0};h.Af=function(a,b,c){Xa&&a&1&&K(this.b,c,64);!Ya&&a&1?(this.a[a]=b,this.a[a+1]=b>>8):this.o[a>>1]=b;this.va=!0};
var nc=0,Xb=1,oc=2,Nb=4,Rb=["NONE","RAM","ROM","VID","H/W"],mc=0,uc=[],tc=[J.prototype.sd,J.prototype.De,J.prototype.re,J.prototype.Bf],yc=[J.prototype.qd,J.prototype.Be,J.prototype.oe,J.prototype.zf];if(Va)var sc=[J.prototype.pd,J.prototype.Ae,J.prototype.ne,J.prototype.yf],rc=[J.prototype.rd,J.prototype.Ce,J.prototype.qe,J.prototype.Af];var zc;if(Va){var Ac=new ArrayBuffer(2);(new DataView(Ac)).setUint16(0,256,!0);zc=256===(new Uint16Array(Ac))[0]}else zc=!1;var qc=zc;
function Bc(a,b){A.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ec=0;this.Jb=b;this.La=c;this.Tb=Math.round(this.Jb/1E4)/100;this.Va=this.Tb*this.La;this.Ub=this.pb=this.Ya=this.Kb=0;this.l.P=!1;this.l.ac=!1;this.l.la=a.autoStart;"string"==typeof this.l.la&&(this.l.la="true"==this.l.la);this.l.xb=!1;this.Fb=this.Ta=0;this.Gb=+a.csStart;this.nb=+a.csInterval;this.ob=+a.csStop;this.qa=[];this.pc=this.ve.bind(this);this.Aa=this.ta=this.za=this.a=this.S=this.sa=this.mb=this.ya=this.Za=
this.Vb=this.Ia=0;this.ka=null;H(this)}n(Bc,A);h=Bc.prototype;h.aa=function(a,b,c,d){this.A=a;this.s=b;this.C=d;this.ka=a.f;for(a=0;a<Cc.length;a++)(b=this.j[Cc[a]])&&this.A.da(null,Cc[a],b);H(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ba=function(a,b){var c=Dc(this.A,"autoStart");null!=c?this.l.la="true"==c?!0:"false"==c?!1:!!c:null==this.l.la&&(this.l.la=void 0===this.j.run);if(!b){if(a&&this.restore){Ec(this);if(!this.restore(a))return!1;Fc(this)}else this.reset();this.V("No debugger detected");this.l.la||this.V("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};h.ia=function(a){return a?this.save():!0};h.la=function(){return this.l.P?!0:this.l.la?(rb(this),!0):!1};h.wc=function(){return 0};
function Fc(a){void 0===a.Gb&&(a.Gb=0);void 0===a.nb&&(a.nb=-1);void 0===a.ob&&(a.ob=-1);a.l.xb=0<=a.Gb&&0<a.nb;a.l.xb&&(a.Fb=0,a.Ta=a.Gb-a.Aa)}function ub(a,b){if(a.l.xb){var c=!1;a.Fb=a.Fb+a.wc()|0;a.Ta-=b;0>=a.Ta&&(a.Ta+=a.nb,c=!0);0<=a.ob&&a.ob<=Gc(a)&&(a.nb=a.ob=-1,Fc(a),I(a),c=!0);c&&a.V(Gc(a)+" cycles: checksum="+ka(a.Fb))}}
h.da=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.l.R)a=!0;else{var b=null,c,k=C(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.R);c++);c==k.length&&(b=a);z("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.l.P?I(d):rb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Hc(d,d.La<<1,!0)},c.textContent=this.Va.toFixed(2)+"Mhz",!0}return!1};function tb(a,b,c){a.Aa+=b;c&&(a.za=a.a=a.S=0)}function Ic(a,b){var c=1;b&&1<a.La&&a.Ia&&(c=a.Ia/a.Tb);a.Ub=Math.round(1E3/Jc);a.pb=Math.floor(a.Jb/Jc*c);b||(a.Ya=a.pb);a.Kb=0}function Gc(a){return a.Aa+a.ta+a.za-a.a}function Ec(a){a.Ia=0;a.Vb=0;a.Aa=a.ta=a.za=a.a=a.S=0;Fc(a);Hc(a,1)}
function Hc(a,b,c){if(void 0!==b){.8>a.Ia/a.Va&&(b=1);a.La=b;b=a.Tb*a.La;if(a.Va!=b){a.Va=b;b=a.Va.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.V("target speed: "+b)}c&&a.A&&Kc(a.A)}tb(a,a.ta);a.ta=0;a.sa=ra();a.ya=0;Ic(a)}function ac(a,b){var c=a.qa.length;a.qa.push([-1,b]);return c}function cc(a,b,c,d){0<=b&&b<a.qa.length&&(d||0>a.qa[b][0])&&(c=a.Jb*a.La/1E3*c|0,a.l.P&&(c+=Lc(a)),a.qa[b][0]=c)}
function sb(a,b){for(var c=a.qa.length-1;0<=c;c--){var d=a.qa[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Lc(a,b){var c=a.za-=a.a;a.a=a.S=0;b&&(a.za=0);return c}
h.ve=function(){if(this.l.P){this.Kb>=this.Jb&&Ic(this,!0);this.Za=0;this.mb=ra();if(this.ya){var a=this.mb-this.ya;a>this.Ub&&(this.sa+=a,this.sa>this.mb&&(this.sa=this.mb))}try{do{for(var b,c=this.l.xb?1:this.pb,d=this.qa.length-1;0<=d;d--){var e=this.qa[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Qb(b)}catch(f){if("number"!=typeof f)throw f;}b=Lc(this,!0);this.Za+=b;this.ta+=b;ub(this,b);sb(this,b);this.Ya-=b;if(0>=this.Ya){this.Ya+=this.pb;++this.Vb>=Mc&&(this.A&&vb(this.A,void 0),this.Vb=0);break}}while(this.l.P)}catch(f){I(this);
this.A&&this.A.stop(ra(),Gc(this));Sa(this,f.stack||f.message);return}if(this.l.P){a=setTimeout;b=this.pc;this.ya=ra();c=this.Ub;this.Za&&(c=Math.round(c*this.Za/this.pb));c-=this.ya-this.mb;if(d=this.ya-this.sa)this.Ia=Math.round(this.ta/(10*d))/100,864E5<=d&&(this.Aa=0,Hc(this));if(0>c||this.Ia<this.Va)-1E3>c&&(this.sa-=c),c=0;this.Kb+=this.Za;this.ya+=c;a(b,c)}}};
function rb(a){var b;a.l.error?(a.V(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.P)a.V(a.toString()+" busy");else{Hc(a);a.l.P=!0;a.l.ac=!0;if(b=a.j.run)b.textContent="Halt";a.A&&a.A.start(a.sa,Gc(a));a.C||a.status("Started");setTimeout(a.pc,0)}}h.Qb=function(){return 0};function I(a){var b=!1;if(a.l.P){Lc(a);tb(a,a.ta);a.ta=0;a.l.P=!1;if(b=a.j.run)b.textContent="Run";a.A&&a.A.stop(ra(),Gc(a));b=!0;a.C||a.status("Stopped")}a.l.complete=void 0;return b}var Jc=30,Mc=15,Cc=["power","reset"];
function Nc(a){var b=+a.model||1170;Bc.call(this,a,6666667);this.xa=b;this.lc=+a.addrReset||0;this.i=this.v=this.m=this.o=this.w=0;this.b=this.ua=this.fa=[];this.D=0;this.nc=[];this.u=this.I=this.Na=this.Nb=[];this.Lb=this.Fa=this.F=this.kc=this.Ja=this.Wa=this.Xa=this.Ka=this.G=this.bb=this.Ma=this.H=this.qb=this.rb=this.oa=this.Ba=this.h=this.f=this.Eb=this.K=this.L=this.g=this.Mb=0;this.oc=255;1120>=this.xa?(this.jc=Oc.bind(this),this.Ua=this.Zc,this.Lb=8,this.oc=-1,this.rc=255,this.qc=0):(this.jc=
Pc.bind(this),this.Ua=this.$c,this.rc=~(1792|(1145>this.xa?2048:0))&65535,this.qc=1145<=this.xa?2048:0);this.$a=0;this.X=null;this.Sb=[];this.l.complete=!1;this.Bb=this.fc=this.bd;this.Cb=this.gc=this.dd;this.Ob=this.Pb=this.xe;this.Db=this.Rb=this.ze;this.ra=this.Ab=0;this.na=this.xc;this.W=this.Ac;this.lb=this.Dc;this.Tc=this.Sc=0}n(Nc,Bc);h=Nc.prototype;h.aa=function(a,b,c,d){Bc.prototype.aa.call(this,a,b,c,d);this.fc=b.Ec.bind(b);this.gc=b.vb.bind(b);this.Pb=b.Fc.bind(b);this.Rb=b.wb.bind(b)};
h.ba=function(a,b){for(var c=192,d=0;d<this.Sb.length;d++){var e=this.Sb[d];0>e.cc&&(e.cc=c,c+=4)}return Bc.prototype.ba.call(this,a,b)};
h.reset=function(){this.status("Model "+this.xa);this.l.P&&I(this);this.v=65536;this.m=32768;this.o=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.lc,-1,-2,-3,-4,-5,-6,-7,-8];this.ua=[0,0,0,0,0,0];this.fa=[0,0,0,0];this.D=0;this.nc=[4,2,0,1];this.u=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.I=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Na=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Nb=[0,0,0,0,0,0,0,0];this.h=this.f=this.Eb=this.K=this.L=this.g=this.Mb=0;this.Ba=-1;pb(this);Ec(this);this.l.error=!1;Bc.prototype.reset.call(this)};function pb(a){a.H=0;a.qb=0;a.rb=0;a.oa=0;a.G=0;a.bb=0;a.Ma=255;a.Ja=0;a.Wa=0;a.Xa=0;a.Ka=262143;a.Fa=a.b[7];a.F=0;a.X=null;a.s&&(ic(a),a.kc=Wb(a.s))}
function ic(a){a.Bb=a.fc;a.Cb=a.gc;a.Ob=a.Pb;a.Db=a.Rb;a.Ja?(a.ra=65536,a.Ab=a.oa&16?4186112:253952,a.na=a.xc,a.W=a.Ac,a.lb=a.Dc,Ob(a.s,a.oa&16?22:18)):(a.ra=0,a.Ab=57344,a.na=a.cd,a.W=a.pe,a.lb=a.Cf,Ob(a.s,16))}function hc(a,b){b&=-3073;if(a.H!=b){b&57344&&!(a.H&57344)&&(a.qb=a.F>>16&65535,a.rb=a.F&65535);a.H=b;a.Wa=(b&96)>>5;a.Xa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ja!=c&&(a.Ja=c,ic(a))}}
function Qc(a,b,c){a.lc=b;a.s.reset();pb(a);Q(a,b);kc(a,0);if(c){for(b=2;5>=b;b++)a.b[b]=0;a.l.P||rb(a)}else a.C?I(a)||a.C.g():!1===c&&I(a);!a.l.P&&a.ka&&a.ka.stop()}h.wc=function(){return 0};h.save=function(){var a=new R(this);a.set(0,[this.b,this.ua,this.fa,this.Na,this.Nb,this.G,this.Mb,this.bb,this.Ma,jc(this),this.Ba,this.D,this.g,this.H,this.qb,this.rb,this.oa,this.Wa,this.Xa,this.u,this.I,this.Ja,this.Ka,this.Fa,this.F]);a.set(1,[this.Aa,this.La]);a.set(2,Vb(this.s));return a.data()};
h.restore=function(a){var b=a[1];this.Aa=b[1];Hc(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],e=a[c+1];if(e&&e.length<b.K){for(var f=0,g=Array(b.K),k=0;k<e.length-1;)for(var l=e[k++],m=e[k++];l--;)g[f++]=m;e=g}f=b.a[d];if(!f||!f.restore(e)){y("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Rc(a){return a.v&65536?1:0}function Sc(a){return a.w&32768?8:0}function Tc(a,b){var c=a.b[7];a.b[7]=c+b&65535;return c}
function S(a,b,c){c&&(Q(a,a.b[7]+(b<<24>>23)),a.a-=2);a.a-=3}function Q(a,b){a.b[7]=b&65535}function ec(a,b,c,d){c={cc:b,eb:c,message:d||0,next:null};c.name=Za[b];a.Sb.push(c);return c}function gc(a,b){var c=a.X;if(c==b)a.X=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.X&&(a.g|=1)}function bc(a,b){if(b){if(b!=a.X){var c=a.X;if(!c||c.eb<=b.eb)b.next=c,a.X=b;else{do{var d=c.next;if(!d||d.eb<=b.eb){b.next=d;c.next=b;break}c=d}while(c)}}a.g|=1}}
function Uc(a){return a.g&64?(L(a,168,64,-6),!0):a.g&32?(L(a,4,32,-5),!0):a.g&16?(L(a,12,16,-7),!0):!1}function jc(a){return a.i=a.i&63728|Sc(a)|(a.o&65535?0:4)|(a.m&32768?2:0)|Rc(a)}function kc(a,b){b&=a.rc;a.w=b<<12;a.o=~b&4;a.m=b<<14;a.v=b<<16;if((b^a.i)&a.qc)for(var c=a.ua.length;0<=--c;){var d=a.b[c];a.b[c]=a.ua[c];a.ua[c]=d}a.D=b>>14&3;c=a.i>>14&3;a.D!=c&&(a.fa[c]=a.b[6],a.b[6]=a.fa[a.D]);a.i=b;a.g&=-3;a.g|=a.X?2:1}h.ea=function(a){this.w=this.o=a;this.m=0};
h.Ea=function(a,b){this.w=this.o=this.v=a;this.m=b||0};function Vc(a,b){a.w=a.o=a.v=b;a.m=a.w^a.v>>1}function Wc(a,b,c,d){a.w=a.o=a.v=b;a.m=(c^d)&(d^b)}function L(a,b,c,d){if(!a.$a){0>a.Ba?a.Ba=jc(a):a.D||(d=-4);-4==d&&(a.g&256&&(d=-1),a.g|=256,a.G|=4,a.b[6]=b=4);if(-1!=d){a.F=b|4143316992;a.D=0;var e=a.W(b|a.ra),f=a.W(b+2&65535|a.ra);kc(a,f&-12289|a.Ba>>2&12288);Xc(a,a.Ba);Xc(a,a.b[7]);Q(a,e)}a.a-=5;a.g&=~(c|19);a.g|=129;a.Ba=-1;a.Tc=b;a.Sc=d;-1==d&&I(a);if(-4<=d)throw b;}}
function Yc(a){var b=Zc(a),c=Zc(a);a.i&49152&&(c=c&-225|a.i&63712);Q(a,b);kc(a,c);a.g&=-17}function $c(a,b){var c=b>>13&31;31>c&&(b=a.oa&32?a.Na[c]+(b&8191)&4194303:b&-3932161);return b}
function zb(a,b,c){var d,e,f;if(!(c&a.Ja))return f=b&65535,57344<=f&&(f|=a.Ab),f;d=b>>13;a.oa&a.nc[a.D]||(d&=7);e=a.u[a.D][d];f=(a.I[a.D][d]<<6)+(b&8191)&a.Ka;3932160<=f&&(f=$c(a,f));if(a.$a)return f;f>=a.kc&&f<a.Ab?(a.G|=32,L(a,4,0,f)):f&1&&!(c&1)&&(a.G|=64,L(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.u[a.D][d]=e;if(f!=(4194170&a.Ka)||a.D)a.Wa=a.D,a.Xa=d;g&&(g&57344&&(0<=a.Ba&&(g|=128),a.H&57344||(g|=a.H&4096|a.Wa<<5|a.Xa<<1,hc(a,a.H&-61695|g&61694)),L(a,168,64,-2)),a.H&61440||!(f<(4191360&a.Ka)||f>(4194239&a.Ka))||(a.H|=4096,a.H&512&&(a.g|=64)));return f}function Zc(a){var b=a.W(a.b[6]|a.ra);a.b[6]=a.b[6]+2&65535;return b}function Xc(a,b){var c=a.b[6]-2&65535;a.b[6]=c;a.F=a.F&65535|(a.F&-65536)<<8|16121856;a.g&256||a.Ua(4,-2,c);a.lb(c,b)}
function ad(a,b,c,d){var e,f,g=d&8?0:a.ra;switch(b){case 0:return L(a,4,0,-3),0;case 1:return 6==c&&a.Ua(d,0,a.b[6]),a.a-=3,7==c?a.b[c]:a.b[c]|g;case 2:f=2;e=a.b[c];6==c&&a.Ua(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.b[c];7!=c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.b[c]+f&65535;6==c&&a.Ua(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.b[c]-2&65535;7!=c&&(e|=g);e=a.W(e)|g;a.a-=8;break;case 6:return e=a.W(Tc(a,2)),e=e+a.b[c]&65535,6==c&&a.Ua(d,0,
e),a.a-=6,e|g;case 7:return e=a.W(Tc(a,2)),e=e+a.b[c]&65535,e=a.W(e|a.ra),a.a-=10,e|g}a.b[c]=a.b[c]+f&65535;a.F=a.F&65535|(a.F&-65536)<<8|(f<<3&248|c)<<16;return e}h.Zc=function(a,b,c){!this.D&&0>=b&&c<=this.Ma&&(this.g|=32)};h.$c=function(a,b,c){this.D||(65534<=c&&(c|=-65536),a&4&&c<=this.Ma&&(c<=this.Ma-32?L(this,4,0,-4):(this.G|=8,this.g|=32)))};h.bd=function(a){return this.fc(a)};h.dd=function(a){return this.gc(a)};h.xe=function(a,b){this.Pb(a,b)};h.ze=function(a,b){this.Rb(a,b)};
h.cd=function(a,b,c){return ad(this,a,b,c)};h.xc=function(a,b,c){return zb(this,ad(this,a,b,c),c)};h.pe=function(a){return this.s.vb(this.Fa=a)};h.Ac=function(a){return this.s.vb(this.Fa=zb(this,a,2))};h.Cf=function(a,b){this.s.wb(this.Fa=a,b)};h.Dc=function(a,b){this.s.wb(this.Fa=zb(this,a,4),b)};
function bd(a,b,c){var d=a.f=b&7;(b=a.h=(b&56)>>3)?(d=ad(a,b,d,2),c&65536||61440!==(a.i&61440)&&(d&=65535),a.D=a.i>>12&3,c=a.W(d|c&a.ra),a.D=a.i>>14&3):c=6!=d||(a.i>>2&12288)===(a.i&12288)?a.b[d]:a.fa[a.i>>12&3];return c}function cd(a,b,c,d){a.F=a.F&65535|1441792;var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=ad(a,b,e,4),c&65536||(e&=65535),a.D=a.i>>12&3,e=zb(a,e|c&65536,4),a.D=a.i>>14&3,a.Db(e,d)):6!=e||(a.i>>2&12288)===(a.i&12288)?a.b[e]=d:a.fa[a.i>>12&3]=d}
function dd(a,b){b>>=6;var c=a.L=b&7;return(b=a.K=(b&56)>>3)?a.Bb(a.na(b,c,3)):a.b[c+a.Lb]&a.oc}function ed(a,b){var c;b>>=6;var d=a.L=b&7;(b=a.K=(b&56)>>3)?c=a.Cb(a.na(b,d,2)):c=a.b[d+a.Lb];return c}function fd(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return ad(a,b,c,8)}function gd(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.Bb(a.na(b,c,3)):a.b[c]&255}function hd(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.Cb(a.na(b,d,2)):c=a.b[d];return c}
function T(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.Eb=a.na(b,e,7),c=0>c?a.b[-c-1]&255:c,a.Ob(e,d.call(a,c,a.Bb(e))),e&1&&a.a--):(b=a.b[e],c=0>c?a.b[-c-1]&255:c,a.b[e]=b&65280|d.call(a,c,b&255))}function U(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.na(b,e,6),a.Db(e,d.call(a,0>c?a.b[-c-1]:c,a.Cb(e)))):a.b[e]=d.call(a,0>c?a.b[-c-1]:c,a.b[e])}
function id(a,b,c,d,e){var f=a.f=b&7;(b=a.h=(b&56)>>3)?(d=a.na(b,f,5),e.call(a,(c=0>c?a.b[-c-1]&255:c)<<8),a.Ob(d,c),d&1&&a.a--):(c?(c=0>c?a.b[-c-1]&255:c,a.b[f]=a.b[f]&~d|c<<24>>24&d):a.b[f]&=~d,e.call(a,c<<8))}function jd(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.na(b,e,4),d.call(a,c=0>c?a.b[-c-1]:c),a.Db(e,c)):(a.b[e]=c=0>c?a.b[-c-1]:c,d.call(a,c))}
h.Qb=function(a){this.l.complete=!0;var b=a?this.l.ac?0:1:-1;this.l.ac=!1;this.za=this.a=a;this.g=this.g&-5|0;do{if(this.g){if(a=this.g&11)if(a=!1,this.g&2){var c=160,d=(this.bb&224)>>5,e=this.X&&this.X.eb>d?this.X:null;e&&(c=e.cc,d=e.eb);d>(this.i&224)>>5?(this.g&8&&(Tc(this,2),this.g&=-9),L(this,c,0,-10),d=!0):d=!1;d&&(e&&gc(this,e),a=!0);this.X||this.bb||(this.g&=-3)}else this.g&1&&this.g++;if(a){if(this.g&4&&this.C.b(this.b[7],b)){I(this);break}if(0>b)break}if(this.g&112&&Uc(this)){if(this.g&
4&&this.C.b(this.b[7],b)){I(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.F=this.b[7];e=this.W(a);this.b[7]=a+2&65535;this.jc(e)}while(0<this.a);return this.l.complete?this.za-this.a:void 0===this.l.complete?0:-1};Ga(function(){for(var a=G(document,F,"cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Nc(d);E(d,c)}});function kd(a,b){var c=b+a;this.w=this.o=this.v=c;this.m=(a^c)&(b^c);return c&65535}
function ld(a,b){var c=b+a,d=c<<8;this.w=this.o=this.v=d;this.m=(a<<8^d)&(b<<8^d);return c&255}function md(a,b){a=b<<1;Vc(this,a);return a&65535}function nd(a,b){a=b<<1;Vc(this,a<<8);return a&255}function od(a,b){a=b&32768|b>>1|b<<16;Vc(this,a);return a&65535}function pd(a,b){a=b&128|b>>1|b<<8;Vc(this,a<<8);return a&255}function qd(a,b){a=b&~a;this.ea(a);return a}function rd(a,b){a=b&~a;this.ea(a<<8);return a}function sd(a,b){a|=b;this.ea(a);return a}function td(a,b){a|=b;this.ea(a<<8);return a}
function ud(a,b){a=~b|65536;this.Ea(a);return a&65535}function vd(a,b){a=~b|256;this.Ea(a<<8);return a&255}function wd(a,b){this.w=this.o=a=b-a;this.m=b&(b^a);return a&65535}function xd(a,b){a=b-a;var c=a<<8;b<<=8;this.w=this.o=c;this.m=b&(b^c);return a&255}function yd(a,b){this.w=this.o=a=b+a;this.m=a&(b^a);return a&65535}function zd(a,b){a=b+a;var c=a<<8;this.w=this.o=c;this.m=c&(b<<8^c);return a&255}function Ad(a,b){a=-b;this.Ea(a,a&b&32768);return a&65535}
function Bd(a,b){a=-b;this.Ea(a<<8,(a&b&128)<<8);return a&255}function Cd(a,b){a=b<<1|this.v>>16&1;Vc(this,a);return a&65535}function Dd(a,b){a=b<<1|this.v>>16&1;Vc(this,a<<8);return a&255}function Ed(a,b){a=(this.v&65536|b)>>1|b<<16;Vc(this,a);return a&65535}function Fd(a,b){a=((this.v&65536)>>8|b)>>1|b<<8;Vc(this,a<<8);return a&255}function Gd(a,b){var c=b-a;Wc(this,c,a,b);return c&65535}function Hd(a,b){var c=b-a;Wc(this,c<<8,a<<8,b<<8);return c&255}
function Id(a,b){this.w=this.o=b&65280;this.m=this.v=0;return(b<<8|b>>8)&65535}function Jd(a,b){a^=b;this.ea(a);return a&65535}function Kd(a){U(this,a,ed(this,a),kd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}
function Ld(a){var b=hd(this,a);a=a>>6&7;var c=this.b[a];c&32768&&(c|=4294901760);this.v=this.m=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.v=c<<17-b,c>>=b;else if(b)if(16<b)this.m=c,c=0;else{this.v=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.m=32768)}this.b[a]=c&65535;this.w=this.o=c;this.a-=(this.h?6:7)+b}
function Md(a){var b=hd(this,a);a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.v=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.v=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.m=32768)):d=c;this.b[a]=d>>16&65535;this.b[a|1]=d&65535;this.w=d>>16;this.o=d>>16|d;this.a-=(this.h?6:7)+b}function Nd(a){S(this,a,!Rc(this))}function Od(a){S(this,a,Rc(this))}
function Pd(a){U(this,a,ed(this,a),qd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Qd(a){T(this,a,dd(this,a),rd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Rd(a){U(this,a,ed(this,a),sd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Sd(a){T(this,a,dd(this,a),td);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}
function Td(a){var b=ed(this,a);a=hd(this,a);this.ea((0>b?this.b[-b-1]:b)&a);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function Ud(a){var b=dd(this,a);a=gd(this,a);this.ea(((0>b?this.b[-b-1]&255:b)&a)<<8);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function Vd(a){S(this,a,this.o&65535?0:4)}function Wd(a){S(this,a,!Sc(this)==!(this.m&32768))}function Xd(a){S(this,a,!!(this.o&65535)&&!Sc(this)==!(this.m&32768))}
function Yd(a){S(this,a,!Rc(this)&&!!(this.o&65535))}function Zd(a){S(this,a,(this.o&65535?0:4)||!Sc(this)!=!(this.m&32768))}function $d(a){S(this,a,Rc(this)||(this.o&65535?0:4))}function ae(a){S(this,a,!Sc(this)!=!(this.m&32768))}function be(a){S(this,a,Sc(this))}function ce(a){S(this,a,!!(this.o&65535))}function de(a){S(this,a,!Sc(this))}function ee(){L(this,12,0,-9)}function fe(a){S(this,a,!0)}function ge(a){S(this,a,!(this.m&32768))}function he(a){S(this,a,this.m&32768?2:0)}
function V(a){a&1&&(this.v=0);a&2&&(this.m=0);a&4&&(this.o=1);a&8&&(this.w=0);this.a-=5}function ie(a){var b=ed(this,a);a=hd(this,a);var c=(b=0>b?this.b[-b-1]:b)-a;Wc(this,c,a,b);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function je(a){var b=dd(this,a);a=gd(this,a);var c=(b=(0>b?this.b[-b-1]&255:b)<<8)-(a<<=8);Wc(this,c,a,b);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}
function ke(a){var b=hd(this,a);if(b){a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.b[a]=d&65535,this.b[a|1]=c-d*b&65535,this.o=d>>16|d,this.w=d>>16):(this.m=32768,this.o=d>>15|d,this.w=c>>16,-1===b&&65534===this.b[a]&&(this.b[a]=this.b[a|1]=1));this.a-=53}else this.o=this.w=0,this.m=32768,this.v=65536,this.a-=7}function le(){L(this,24,0,-9);this.a-=20}
function me(){this.i&49152?(this.G|=128,L(this,4,0,-8)):(this.ka&&1120==this.xa&&this.ka.setData(this.b[0],!0),this.C?this.C.i():I(this));this.a-=7}function ne(){L(this,16,0,-9);this.a-=20}var oe=[0,7,7,10,7,11,9,13];function pe(a){this.S=this.a;Q(this,fd(this,a));this.a=this.S-oe[this.h]}var qe=[0,14,14,17,14,18,16,20];function re(a){this.S=this.a;var b=fd(this,a);a=a>>6&7;Xc(this,this.b[a]);this.b[a]=this.b[7];Q(this,b);this.a=this.S-qe[this.h]}var se=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function te(a){var b=ed(this,a);this.S=this.a;jd(this,a,b,this.ea);this.a=this.S-se[(this.K?8:0)+this.h]+(7!=this.f||this.h?0:2)}function ue(a){var b=dd(this,a);id(this,a,b,65535,this.ea);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}var ve=[7,13,13,17,14,18,17,21];
function we(a){var b=hd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.b[a];c&32768&&(c|=-65536);b=~~(b*c);this.b[a]=b>>16&65535;this.b[a|1]=b&65535;this.w=b>>16;this.o=this.w|b;this.m=0;this.v=-32768>b||32767<b?65536:0;this.a-=23}function xe(){this.a-=5}function ye(){this.i&49152||(this.s.reset(),pb(this),this.ka&&this.ka.setData(this.b[0],!0));this.a-=667}function ze(a){if(a&8)L(this,8,0,-9);else{var b=Zc(this);a&=7;7==a?Q(this,b):(Q(this,this.b[a]),this.b[a]=b);this.a-=9}}
function Ae(){Yc(this);this.a-=13}function W(a){a&1&&(this.v=65536);a&2&&(this.m=32768);a&4&&(this.o=0);a&8&&(this.w=32768);this.a-=5}function Be(a){var b=(a&448)>>6;if(this.b[b]=this.b[b]-1&65535)Q(this,this.b[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Ce(a){U(this,a,ed(this,a),Gd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function De(a){U(this,a,0,Id);this.a-=this.h?9:3+(7==this.f?2:0)}function Ee(){L(this,28,0,-9)}
function Fe(){this.ka&&(this.ka.ja=this.b[7],this.ka.setData(this.b[0],!0));this.g|=8;Tc(this,-2);this.a-=3}function Ge(a){U(this,a,this.b[(a>>6&7)+this.Lb],Jd);this.a-=this.h?9:3+(7==this.f?2:0)}function X(){L(this,8,0,-9)}function Oc(a){He[a>>12].call(this,a)}function Ie(a){Je[a>>6&3].call(this,a)}function Ke(a){Le[a>>6&3].call(this,a)}function Me(a){Ne[a>>6&3].call(this,a)}function Oe(a){Pe[a&15].call(this,a)}function Qe(a){Re[a&15].call(this,a)}function Se(a){Te[a>>6&3].call(this,a)}
function Ue(a){Ve[a>>6&3].call(this,a)}function We(a){Xe[a>>6&3].call(this,a)}
var He=[function(a){Ye[a>>8&15].call(this,a)},te,ie,Td,Pd,Rd,Kd,X,function(a){Ze[a>>8&15].call(this,a)},ue,je,Ud,Qd,Sd,Ce,X],Ye=[function(a){$e[a>>4&15].call(this,a)},fe,ce,Vd,Wd,ae,Xd,Zd,re,re,Ie,Ke,Me,X,X,X],Je=[function(a){jd(this,a,0,this.Ea);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,ud);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,yd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,wd);this.a-=this.h?9:3+(7==this.f?2:0)}],Le=[function(a){U(this,a,0,Ad);
this.a-=this.h?11:6},function(a){U(this,a,Rc(this)?1:0,kd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,Rc(this)?1:0,Gd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=hd(this,a);this.Ea(a);this.a-=this.h?4:3+(7==this.f?2:0)}],Ne=[function(a){U(this,a,0,Ed);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Cd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,od);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,md);this.a-=this.h?9:3+(7==this.f?2:0)}],$e=
[function(a){af[a&15].call(this,a)},X,X,X,pe,pe,pe,pe,ze,X,Oe,Qe,De,De,De,De],af=[me,Fe,Ae,ee,ne,ye,X,X,X,X,X,X,X,X,X,X],Pe=[xe,function(){this.v=0;this.a-=5},function(){this.m=0;this.a-=5},V,function(){this.o=1;this.a-=5},V,V,V,function(){this.w=0;this.a-=5},V,V,V,V,V,V,V],Re=[xe,function(){this.v=65536;this.a-=5},function(){this.m=32768;this.a-=5},W,function(){this.o=0;this.a-=5},W,W,W,function(){this.w=32768;this.a-=5},W,W,W,W,W,W,W],Ze=[de,be,Yd,$d,ge,he,Nd,Od,le,Ee,Se,Ue,We,X,X,X],Te=[function(a){id(this,
a,0,255,this.Ea);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,vd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,zd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,xd);this.a-=this.h?9:3+(7==this.f?2:0)}],Ve=[function(a){T(this,a,0,Bd);this.a-=this.h?11:6},function(a){T(this,a,Rc(this)?1:0,ld);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,Rc(this)?1:0,Hd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=gd(this,a);this.Ea(a<<8);this.a-=this.h?4:3+
(7==this.f?2:0)}],Xe=[function(a){T(this,a,0,Fd);this.a-=this.h?9+(this.Eb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,Dd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,pd);this.a-=this.h?9+(this.Eb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,nd);this.a-=this.h?9:3+(7==this.f?2:0)}];function Pc(a){bf[a>>12].call(this,a)}
var bf=[function(a){cf[a>>8&15].call(this,a)},te,ie,Td,Pd,Rd,Kd,function(a){df[a>>8&15].call(this,a)},function(a){ef[a>>8&15].call(this,a)},ue,je,Ud,Qd,Sd,Ce,X],cf=[function(a){ff[a>>4&15].call(this,a)},fe,ce,Vd,Wd,ae,Xd,Zd,re,re,Ie,Ke,Me,function(a){gf[a>>6&3].call(this,a)},X,X],gf=[function(a){a=this.b[7]+((a&63)<<1)&65535;var b=this.W(a|this.ra);Q(this,this.b[5]);this.b[6]=a+2&65535;this.b[5]=b;this.a-=8},function(a){a=bd(this,a,0);this.ea(a);Xc(this,a);this.a-=11},function(a){var b=Zc(this);this.S=
this.a;this.ea(b);cd(this,a,0,b);this.a=this.S-ve[this.h]},function(a){jd(this,a,Sc(this)?65535:0,this.ea);this.a-=this.h?9:3+(7==this.f?2:0)}],ff=[function(a){hf[a&15].call(this,a)},X,X,X,pe,pe,pe,pe,ze,function(a){a&8?(this.i&49152||(this.i=this.i&-225|(a&7)<<5,this.g|=1,this.g&=-3),this.a-=5):L(this,8,0,-9)},Oe,Qe,De,De,De,De],hf=[me,Fe,function(){Yc(this);this.g|=this.i&16;this.a-=13},ee,ne,ye,Ae,function(){L(this,8,0,-9)},X,X,X,X,X,X,X,X],df=[we,we,ke,ke,Ld,Ld,Md,Md,Ge,Ge,X,X,X,X,Be,Be],ef=[de,
be,Yd,$d,ge,he,Nd,Od,le,Ee,Se,Ue,We,function(a){jf[a>>6&3].call(this,a)},X,X],jf=[X,function(a){a=bd(this,a,65536);this.ea(a);Xc(this,a);this.a-=11},function(a){var b=Zc(this);this.S=this.a;this.ea(b);cd(this,a,65536,b);this.a=this.S-ve[this.h]},X];
function kf(a){A.call(this,"ROM",a,0,128);this.ga=this.b=null;this.h=+a.addr;this.a=+a.size;this.i=!1;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.g=a.file;this.m=u(this.g);if(this.g){a=this.g;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=ua()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(Oa(c.Ha,a,b),(a=ta(a,b))?(c.b=a.N,c.ga=a.ga):c.g=null);lf(c)})}}n(kf,A);
h=kf.prototype;h.aa=function(a,b,c,d){this.s=b;this.c=c;this.C=d;lf(this)};h.ba=function(){this.ga&&(this.C&&this.C.a(this.id,this.h,this.a,this.ga),delete this.ga);return!0};h.ia=function(){return!0};
function lf(a){if(!Ta(a)){if(a.g){if(!a.b||!a.s)return;a.a||(a.a=a.b.length);if(a.b.length!=a.a)Sa(a,"ROM size ("+ka(a.b.length,8,!0)+") does not match specified size ("+ka(a.a,8,!0)+")");else{var b;a:{b=a.h;a.status(a.a+"-byte ROM at "+ja(b));if(57344<=b&&b<57344+Gb){var c={};b=(c[b]=[kf.prototype.be,kf.prototype.lf,null,null,null,a.a>>1],c);if(db(a.s,a,b)){b=a.i=!0;break a}}else if(Mb(a.s,b,a.a,oc)){for(c=0;c<a.b.length;c++)Ub(a.s,b+c,a.b[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?b.push(a.f):
null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.a,k=[],l=d.h>>>f.h;0<g&&l<f.a.length;)k.push(f.a[l++]),g-=f.g;f=d.s;d=d.a;g=0;for(e>>>=f.h;0<d&&e<f.a.length;){l=k[g++];if(!l)break;f.a[e++]=l;d-=f.g}}a.i||delete a.b}}}H(a)}}h.be=function(a){return this.b[a-this.h]};h.lf=function(){};Ga(function(){for(var a=G(document,F,"rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new kf(d);E(d,c)}});
function mf(a){A.call(this,"RAM",a);this.ga=this.b=null;this.f=+a.addr;this.g=+a.size;this.Z=a.load;this.Y=a.exec;null!=this.Z&&(this.Z=+this.Z);null!=this.Y&&(this.Y=+this.Y);this.h=!1;this.a=a.file;this.i=u(this.a);if(this.a){a=this.a;var b=la(this.i);"json"!=b&&"hex"!=b&&(a=ua()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Oa(c.Ha,a,b),(a=ta(a,b))?(c.b=a.N,c.ga=a.ga,null==c.Z&&
(c.Z=a.Z),null==c.Y&&(c.Y=a.Y)):c.a=null);nf(c)})}}n(mf,A);mf.prototype.aa=function(a,b,c,d){this.s=b;this.c=c;this.C=d;nf(this)};mf.prototype.ba=function(){this.ga&&(this.C&&this.C.a(this.id,this.f,this.g,this.ga),delete this.ga);return!0};mf.prototype.ia=function(){return!0};
function nf(a){if(a.s&&(!a.h&&a.g&&(Mb(a.s,a.f,a.g,Xb)?a.h=!0:a.g=0),!Ta(a))){if(!a.h)y("No RAM allocated");else if(a.a){if(!a.b||!a.s)return;of(a,a.b,a.Z,a.Y,a.f)?a.status('Loaded image "'+a.i+'"'):a.B('Error loading image "'+a.i+'"')}H(a)}}
mf.prototype.reset=function(){if(this.h){for(var a=this.s,b=this.f,c=this.g,d=b&a.f,b=b>>>a.h;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Va&&e.a)for(k=d;f--&&k<e.a.length;k++)e.a[k]=g;else for(k=d;f--&&k<e.size;k++)e.j(d,g,e.Oa+d);c-=a.g;b++;d=0}this.b&&of(this,this.b,this.Z,this.Y,this.f,!0)}};
function of(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),x=l,w=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(w)for(;w--;)Ub(a.s,t++,b[x++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)Ub(a.s,c+e,b[e]);k=!0}if(k){if(null==d||g)I(a.c),f=!1;null!=d&&Qc(a.c,d,f)}return k}Ga(function(){for(var a=G(document,F,"ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new mf(d);E(d,c)}});function pf(a){A.call(this,"Keyboard",a,0,1024);H(this)}n(pf,A);pf.prototype.da=function(){return!1};pf.prototype.aa=function(a,b,c,d){this.A=a;this.c=c;this.C=d};Ga(function(){for(var a=G(document,F,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new pf(d);E(d,c)}});
function Y(a){A.call(this,"SerialPort",a,0,262144);this.D=+a.adapter;this.K=+a.baudReceive||9600;this.fa=+a.baudTransmit||9600;this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.g=this.i=null;this.S=+a.tabSize;this.L=+a.charBOL;this.m=0;this.v=!0;this.H=this.F=null;this.I=this.X=-1;this.o=this.a=this.b=0;this.h=[];var b=a.binding;if("console"==b)this.i="";else{var c;a=qf;b&&(void 0===c&&(c="Panel"),(c=Ra(c,this.id))&&(b=c.j[b])&&this.da(null,a,b))}this.f=this.u=this.G=null;this.exports=
var bb="undefined"!==typeof ArrayBuffer,F="pdp11",cb="PDPjs",db=!0,eb=!0,fb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},F="pdp11",cb="PDPjs",eb=db=!0;
function gb(a,b){A.call(this,"Panel",a,0,512);this.i=this.m=0;this.C=b;this.ja=this.g=this.b=this.h=0;this.s=this.v=this.o=!1;this.w=hb;this.f={};this.a={START:[1,1,!0,!1,this.md],STEP:[1,1,!1,!1,this.nd],ENABLE:[1,1,!1,!1,this.hd],CONT:[1,1,!0,!1,this.fd],DEP:[0,0,!0,!1,this.gd],EXAM:[1,1,!0,!1,this.jd],LOAD:[1,1,!0,!1,this.ld],TEST:[0,0,!0,!1,this.kd]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.od,a];this.D=this.c=this.u=this.A=null;H(this)}n(gb,A);h=gb.prototype;h.reset=function(){this.stop()};
h.ca=function(a,b,c,d){if(this.A&&this.A.ca(a,b,c,d)||this.c&&this.c.ca(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.j[b]=c,this.m++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.f[b]=d?1:0,this.m++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ib(a,
b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){jb(a,b)}}(this,b),!0):A.prototype.ca.call(this,a,b,c,d)}};h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;kb(b,this,lb);mb(b,this.reset.bind(this));nb(this);ob(this)};h.ha=function(a,b){b||(this.C&&pb(),this.reset());return!0};h.ga=function(){return!0};
function qb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function nb(a,b){for(var c in a.f)qb(a,c,null!=b?b:a.f[c])}function rb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ob(a){for(var b in a.a)rb(a,b,a.a[b][1])}function sb(a,b,c,d){a.j[b]&&(void 0===c&&(Za(a,"Value for "+b+" is invalid"),I(a.c)),c=8==(a.D&&a.D.h||8)?qa(c,d):ra(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
function ib(a,b){var c=a.a[b];rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=tb&&(a.s=b==ub,a.v=b==vb)}function jb(a,b){var c=a.a[b];c[2]&&c[3]&&(rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.md=function(a){a||this.c.l.P||(a=this.c,a.u.reset(),wb(a),this.a[xb]&&this.a[xb][1]&&yb(this.c))};h.nd=function(){};h.hd=function(a){a||I(this.c)};
h.fd=function(a){if(!a&&!this.c.l.P)if(this.a[xb]&&this.a[xb][1])yb(this.c);else{a=this.D;var b;if(b=a)a.l.Sa&&(a.l.Xb=!0),b=!a.l.Sa;if(b)ab(a,!0),a.f(0,null),ab(a,!1);else try{var c=this.c.Qb(1);0<c&&(zb(this.c,c),Ab(this.c,c,!0),Bb(this.c,c))}catch(d){"number"!=typeof d&&Za(this.c,d.stack||d.message)}this.stop();this.A&&Cb(this.A)}};h.gd=function(a){if(a&&!this.c.l.P)if(this.s&&Db(this),a=Eb(this,this.b),this.w==hb)Fb(this.u,this.ja,a);else{var b=this.c,c=this.ja;b.bb++;b.u.yb(Gb(b,c,4),a);b.bb--}};
h.jd=function(a){if(!a&&!this.c.l.P){this.v&&Db(this);if(this.w==hb)a=Hb(this.u,this.ja);else{a=this.c;var b=this.ja;a.bb++;b=a.u.xb(Gb(a,b,2));a.bb--;a=b}Eb(this,a)}};h.ld=function(a){a||this.c.l.P||Ib(this,this.b)};h.kd=function(a){if(a)this.o=!0,nb(this,!0);else if(this.o=!1,nb(this),void 0!==this.j[Jb]){for(a=this.b=0;22>a;a++)this.a["S"+a][1]=0&1<<a?1:0;ob(this)}};h.od=function(a,b){this.b=a?this.b|1<<b:this.b&~(1<<b)};
function Db(a){var b=1140>=a.c.pa?8:16,c=65472<=a.ja&&a.ja<65472+b,b=c?1:2,c=c?15:a.u.v;a.a[tb]&&a.a[tb][1]||(b=-b);Ib(a,a.ja&~c|a.ja+b&c)}function Ib(a,b){a.ja=b&a.u.v;b=a.ja;for(var c=0;22>c;c++)Kb(a,"A"+c,b&1<<c)}function Eb(a,b){a.g=b&65535;b=a.g;for(var c=0;16>c;c++)Kb(a,"D"+c,b&1<<c);return a.g}function Kb(a,b,c){a.f[b]=c;a.o||qb(a,b,c)}h.stop=function(){Ib(this,this.c.b[7])};h.setData=function(a,b){b?this.h=a:this.g=a};h.td=function(a,b){return(b?this.h:this.b)&65535};
h.Ee=function(a){this.h=a};function pb(){for(var a=G(document,F,"panel"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=Xa(d.id);e||(e=new gb(d,!0));E(e,c)}}var hb=7,Jb="S0",ub="DEP",xb="ENABLE",vb="EXAM",tb="STEP",Lb={},lb=(Lb[65400]=[null,null,gb.prototype.td,gb.prototype.Ee,"CNSW"],Lb);Na(pb);
function Mb(a,b,c){A.call(this,"Bus",a,0,16);this.c=b;this.D=c;this.S=+a.busWidth||16;this.F=1<<this.S;this.v=this.F-1;this.g=Nb;this.h=Math.log2(this.g);this.K=this.g>>2;this.f=this.g-1;this.s=this.F/this.g|0;this.L=this.s-1;this.Ha=[];this.m=0;this.o=!1;this.G=[];this.Vc=[Ob,Pb,Qb,Rb];this.a=this.b=[];this.C=this.w=this.i=this.H=this.I=0;a=new J(this);Sb(a);this.a=Array(this.s);this.b=Array(this.s);for(b=0;b<this.s;b++)this.a[b]=this.b[b]=a;this.C=this.F-Nb;Tb(this,this.C,Nb,Ub,this);this.I=this.H=
(this.C&this.v)>>>this.h;this.w=0;this.i=this.v;H(this)}n(Mb,A);function Vb(a,b){if(b!=a.w){for(var c=0;c<a.s;c++)a.b[c]=a.a[c];a.w=0;a.i=a.v;b&&(a.w=b,b=1<<b,a.i=b-1,b-=Nb,a.I=(b&a.i)>>>a.h,a.b[a.I]=a.a[a.H])}}h=Mb.prototype;h.reset=function(){for(var a=0;a<this.G.length;a++)this.G[a]();Vb(this,16)};h.ha=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.ga=function(a){return a?this.save():!0};h.save=function(){var a=new K(this);a.set(0,Wb(this));return a.data()};
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.K){for(var e=0,f=Array(this.K),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){y("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Tb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.h;0<g&&k<a.a.length;){var l=a.a[k],m=k*a.g,p=a.g-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ra)return l.vb+=l.Ra-f,l.Ra=f,!0;if(f>=l.Ra+l.vb){p=l.size-(f-m);p>g&&(p=g);l.vb=f-l.Ra+p;f=m+a.g;g-=p;k++;continue}}return Xb(Yb,f,g)}f=new J(a,f,p,a.g,d,e);Sb(f,l);a.a[k++]=f;f=m+a.g;g-=p}return 0>=g?(a.status((c>>10)+"Kb "+Zb[d]+" at "+qa(b)),!0):Xb($b,b,c)}h.Ec=function(a){return this.b[(a&this.i)>>>this.h].hb(a&this.f,a)};
h.xb=function(a){var b=a&this.f,c=(a&this.i)>>>this.h;return eb||b!=this.f?this.b[c].W(b,a):this.b[c++].hb(b,a)|this.b[c&this.L].hb(0,a+1)<<8};h.Fc=function(a,b){this.b[(a&this.i)>>>this.h].kb(a&this.f,b,a)};h.yb=function(a,b){var c=a&this.f,d=(a&this.i)>>>this.h;eb||c!=this.f?this.b[d].nb(c,b,a):(this.b[d++].kb(c,b&255,a),this.b[d&this.L].kb(0,b>>8&255,a+1))};function ac(a,b){return a.a[(b&a.v)>>>a.h]}
function Hb(a,b){var c;a.o=!1;a.m++;var d=b&a.f,e=ac(a,b);eb||d!=a.f?c=e.D(d,b):c=e.i(d,b)|ac(a,b+1).i(0,b+1)<<8;a.m--;return c}function bc(a,b,c){a.o=!1;a.m++;ac(a,b).j(b&a.f,c&255,b);a.m--}function Fb(a,b,c){a.o=!1;a.m++;var d=b&a.f,e=ac(a,b);eb||d!=a.f?e.m(d,c&65535,b):(e.j(d,c&255,b),ac(a,b+1).j(0,c>>8&255,b+1));a.m--}
function Wb(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.a[d];if(e.xa||e.ad){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function cc(a){for(var b=dc,c=0,d=0;d<a.a.length;d++){var e=a.a[d];e.type==b&&(c=e.Ra+e.vb)}return c}
function ec(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&fc;if(void 0!==a.Ha[p])return z&&z("I/O address already registered: "+ra(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Ha[p]=[d,e,f,g,t,k||16,!1]}return!0}
function kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.pa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],x=g[5]||1,w=0;w<x;w++,f+=2)if(t&&1<x&&(t=g[4]+w),!ec(a,f,f,k,l,m,p,g[7]||b.Kc,t||b.Ka))return!1}}return!0}
function mb(a,b){a.G.push(b)}function L(a,b,c){a.o=!0;a.m||(c&&(a.c.G|=c),M(a.c,4,0,b))}function hc(a){var b=a.o;a.o=!1;return b}function Xb(a,b,c){y("Memory block error ("+a+": "+ra(b)+","+ra(c)+")");return!1}var Nb=8192,fc=Nb-1,Yb=1,$b=2;function Ob(a,b){var c=-1,d=this.controller,e=d.Ha[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ha[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;L(d,b,16);return 255}
function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ha[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d||L(e,c,16)}function Qb(a,b){var c=-1,d=this.controller;a=d.Ha[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return c;L(d,b,16);return 65535}
function Rb(a,b,c){var d=!1,e=this.controller;a=e.Ha[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d||L(e,c,16)}function N(a){A.call(this,"Device",a,0,256);this.a={Ag:0,bc:-1}}n(N,A);h=N.prototype;h.aa=function(a,b,c,d){this.u=b;this.A=a;this.c=c;this.D=d;var e=this;this.a.bc=ic(c,function(){e.a.fb|=128;e.a.fb&64&&jc(e.c,e.a.Ia);e.A&&Cb(e.A,1);kc(e.c,e.a.bc,1E3/60)});this.a.Ia=lc(c,64,6,524288);kb(b,this,mc);mb(b,this.reset.bind(this));H(this)};
h.reset=function(){this.a.fb=128;kc(this.c,this.a.bc,1E3/60,!0)};h.Ad=function(){return this.a.fb};h.Le=function(a){this.a.fb=a&192;this.a.fb&64||(a=this.a.Ia)&&nc(this.c,a)};h.Cd=function(){var a=this.c,b=a.H;b&57344||(b=b&-3199|a.Na<<5|a.Oa<<1);return b};h.Ne=function(a){oc(this.c,a&-129|this.c.H&128)};h.Dd=function(){var a=this.c;a.H&57344||(a.cb=a.F>>16&65535);a=a.cb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ed=function(){var a=this.c;a.H&57344||(a.eb=a.F&65535);return a.eb};h.Fd=function(){return this.c.la};
h.Oe=function(a){var b=this.c;1170>b.pa&&(a&=-49);b.la!=a&&(b.la=a,b.Ba=a&16?4194303:262143,pc(b))};h.me=function(a){a=a>>1&63;var b=this.c.Ga[a>>1];return a&1?b>>16:b&65535};h.xf=function(a,b){b=b>>1&63;var c=b>>1;this.c.Ga[c]=b&1?this.c.Ga[c]&65535|(a&63)<<16:this.c.Ga[c]&-65536|a&65534};h.fe=function(a){return this.c.s[1][a>>1&7]};h.qf=function(a,b){this.c.s[1][b>>1&7]=a&65295};h.de=function(a){return this.c.s[1][(a>>1&7)+8]};h.nf=function(a,b){this.c.s[1][(b>>1&7)+8]=a&65295};
h.ee=function(a){return this.c.I[1][a>>1&7]};h.pf=function(a,b){b=b>>1&7;this.c.I[1][b]=a;this.c.s[1][b]&=65295};h.ce=function(a){return this.c.I[1][(a>>1&7)+8]};h.mf=function(a,b){b=(b>>1&7)+8;this.c.I[1][b]=a;this.c.s[1][b]&=65295};h.zd=function(a){return this.c.s[0][a>>1&7]};h.Ke=function(a,b){this.c.s[0][b>>1&7]=a&65295};h.xd=function(a){return this.c.s[0][(a>>1&7)+8]};h.Ie=function(a,b){this.c.s[0][(b>>1&7)+8]=a&65295};h.yd=function(a){return this.c.I[0][a>>1&7]};
h.Je=function(a,b){b=b>>1&7;this.c.I[0][b]=a;this.c.s[0][b]&=65295};h.wd=function(a){return this.c.I[0][(a>>1&7)+8]};h.He=function(a,b){b=(b>>1&7)+8;this.c.I[0][b]=a;this.c.s[0][b]&=65295};h.le=function(a){return this.c.s[3][a>>1&7]};h.wf=function(a,b){this.c.s[3][b>>1&7]=a&65295};h.je=function(a){return this.c.s[3][(a>>1&7)+8]};h.uf=function(a,b){this.c.s[3][(b>>1&7)+8]=a&65295};h.ke=function(a){return this.c.I[3][a>>1&7]};h.vf=function(a,b){b=b>>1&7;this.c.I[3][b]=a;this.c.s[3][b]&=65295};
h.ie=function(a){return this.c.I[3][(a>>1&7)+8]};h.tf=function(a,b){b=(b>>1&7)+8;this.c.I[3][b]=a;this.c.s[3][b]&=65295};h.ib=function(a){a&=7;return this.c.i&2048?this.c.qa[a]:this.c.b[a]};h.lb=function(a,b){b&=7;this.c.i&2048?this.c.qa[b]=a:this.c.b[b]=a};h.Kd=function(){return this.c.i&49152?this.c.X[0]:this.c.b[6]};h.Te=function(a){this.c.i&49152?this.c.X[0]=a:this.c.b[6]=a};h.Nd=function(){return this.c.b[7]};h.We=function(a){this.c.b[7]=a};
h.jb=function(a){a&=7;return this.c.i&2048?this.c.b[a]:this.c.qa[a]};h.mb=function(a,b){b&=7;this.c.i&2048?this.c.b[b]=a:this.c.qa[b]=a};h.Ld=function(){return 1==(this.c.i&49152)>>14?this.c.b[6]:this.c.X[1]};h.Ue=function(a){1==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.X[1]=a};h.Md=function(){return 3==(this.c.i&49152)>>14?this.c.b[6]:this.c.X[3]};h.Ve=function(a){3==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.X[3]=a};h.vd=function(a){return this.c.tb[a-65504>>1]};
h.Ge=function(a,b){this.c.tb[b-65504>>1]=a};h.zc=function(a){return 65520==a?(cc(this.u)>>6)-1:0};h.Cc=function(){};h.he=function(){return 1};h.sf=function(){};h.ud=function(){return this.c.G};h.Fe=function(){this.c.G=0};h.Bd=function(){return this.c.sb};h.Me=function(a,b){b&1||(a&=255);this.c.sb=a};h.Gd=function(a,b){return b?0:this.c.Qa};h.Pe=function(a){var b=this.c;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.g|=1}b.Qa=a};h.ge=function(a,b){return b?0:this.c.Fa&65280};
h.rf=function(a){this.c.Fa=a|255};h.Jd=function(){return qc(this.c)};h.Se=function(a){rc(this.c,a)};h.Bc=function(){};
var O={},mc=(O[61568]=[null,null,N.prototype.me,N.prototype.xf,"UNIMAP",64,1170],O[62592]=[null,null,N.prototype.fe,N.prototype.qf,"SIPDR",8,1145,64],O[62608]=[null,null,N.prototype.de,N.prototype.nf,"SDPDR",8,1145,64],O[62624]=[null,null,N.prototype.ee,N.prototype.pf,"SIPAR",8,1145,64],O[62640]=[null,null,N.prototype.ce,N.prototype.mf,"SDPAR",8,1145,64],O[62656]=[null,null,N.prototype.zd,N.prototype.Ke,"KIPDR",8,1140,64],O[62672]=[null,null,N.prototype.xd,N.prototype.Ie,"KDPDR",8,1145,64],O[62688]=
[null,null,N.prototype.yd,N.prototype.Je,"KIPAR",8,1140,64],O[62704]=[null,null,N.prototype.wd,N.prototype.He,"KDPAR",8,1145,64],O[62798]=[null,null,N.prototype.Fd,N.prototype.Oe,"MMR3",1,1145,64],O[65382]=[null,null,N.prototype.Ad,N.prototype.Le,"LKS"],O[65402]=[null,null,N.prototype.Cd,N.prototype.Ne,"MMR0",1,1140,64],O[65404]=[null,null,N.prototype.Dd,N.prototype.Bc,"MMR1",1,1145,64],O[65406]=[null,null,N.prototype.Ed,N.prototype.Bc,"MMR2",1,1140,64],O[65408]=[null,null,N.prototype.le,N.prototype.wf,
"UIPDR",8,1140,64],O[65424]=[null,null,N.prototype.je,N.prototype.uf,"UDPDR",8,1145,64],O[65440]=[null,null,N.prototype.ke,N.prototype.vf,"UIPAR",8,1140,64],O[65456]=[null,null,N.prototype.ie,N.prototype.tf,"UDPAR",8,1145,64],O[65472]=[null,null,N.prototype.ib,N.prototype.lb,"R0SET0"],O[65473]=[null,null,N.prototype.ib,N.prototype.lb,"R1SET0"],O[65474]=[null,null,N.prototype.ib,N.prototype.lb,"R2SET0"],O[65475]=[null,null,N.prototype.ib,N.prototype.lb,"R3SET0"],O[65476]=[null,null,N.prototype.ib,
N.prototype.lb,"R4SET0"],O[65477]=[null,null,N.prototype.ib,N.prototype.lb,"R5SET0"],O[65478]=[null,null,N.prototype.Kd,N.prototype.Te,"R6KERNEL"],O[65479]=[null,null,N.prototype.Nd,N.prototype.We,"R7KERNEL"],O[65480]=[null,null,N.prototype.jb,N.prototype.mb,"R0SET1",1,1145],O[65481]=[null,null,N.prototype.jb,N.prototype.mb,"R1SET1",1,1145],O[65482]=[null,null,N.prototype.jb,N.prototype.mb,"R2SET1",1,1145],O[65483]=[null,null,N.prototype.jb,N.prototype.mb,"R3SET1",1,1145],O[65484]=[null,null,N.prototype.jb,
N.prototype.mb,"R4SET1",1,1145],O[65485]=[null,null,N.prototype.jb,N.prototype.mb,"R5SET1",1,1145],O[65486]=[null,null,N.prototype.Ld,N.prototype.Ue,"R6SUPER",1,1145],O[65487]=[null,null,N.prototype.Md,N.prototype.Ve,"R6USER",1,1145],O[65504]=[null,null,N.prototype.vd,N.prototype.Ge,"CTRL",8,1170],O[65520]=[null,null,N.prototype.zc,N.prototype.Cc,"LSIZE",1,1170],O[65522]=[null,null,N.prototype.zc,N.prototype.Cc,"HSIZE",1,1170],O[65524]=[null,null,N.prototype.he,N.prototype.sf,"SYSID",1,1170],O[65526]=
[null,null,N.prototype.ud,N.prototype.Fe,"ERR",1,1170],O[65528]=[null,null,N.prototype.Bd,N.prototype.Me,"MBR",1,1170],O[65530]=[null,null,N.prototype.Gd,N.prototype.Pe,"PIR"],O[65532]=[null,null,N.prototype.ge,N.prototype.rf,"SLR"],O[65534]=[null,null,N.prototype.Jd,N.prototype.Se,"PSW"],O);
Na(function(){for(var a=G(document,F,"device"),b=0;b<a.length;b++){var c,d=a[b];c=D(d);switch(c.type){case "default":c=new N(c);E(c,d);break;case "pc11":c=new sc(c);E(c,d);break;case "rl11":c=new P(c);E(c,d);break;case "rk11":c=new Q(c),E(c,d)}}});
function J(a,b,c,d,e,f){this.b=a;this.id=tc+=2;this.c=null;this.Ra=b;this.vb=c;this.size=d||0;this.type=e||uc;this.A=e==vc;this.controller=null;this.hb=this.i=this.Zb;this.W=this.D=this.$b;this.kb=this.j=this.wb;this.nb=this.m=this.dc;this.g=this.h=0;Sb(this);this.xa=this.ad=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.c=a[0],wc(this,f.Vc);else if(bb)this.f=new ArrayBuffer(this.size),this.u=new DataView(this.f,0,this.size),this.a=new Uint8Array(this.f,0,this.size),this.o=new Uint16Array(this.f,
0,this.size>>1),this.c=new Int32Array(this.f,0,this.size>>2),wc(this,xc?yc:zc);else{a=this.c=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;wc(this,Bc)}else wc(this)}h=J.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(bb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.c;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(bb)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.c=a;return this.xa=!0}return!1};function wc(a,b){b||(b=Cc);Dc(a,b,void 0);Ec(a,b,void 0)}function Dc(a,b,c){c&&a.g||(a.hb=b[0]||a.Zb,a.W=b[2]||a.$b);if(c||void 0===c)a.i=b[0]||a.Zb,a.D=b[2]||a.$b}function Ec(a,b,c){c&&a.h||(a.kb=!a.A&&b[1]||a.wb,a.nb=!a.A&&b[3]||a.dc);if(c||void 0===c)a.j=b[1]||a.wb,a.m=b[3]||a.dc}
function Sb(a,b){a.g=a.h=0;b&&((a.g=b.g)&&Dc(a,Fc,!1),(a.h=b.h)&&Ec(a,Fc,!1))}h.Zb=function(a,b){L(this.b,b,32);return 255};h.wb=function(a,b,c){L(this.b,c,32)};h.$b=function(a,b){return this.hb(a++,b++)|this.hb(a,b)<<8};h.dc=function(a,b,c){this.kb(a++,b&255,c++);this.kb(a,b>>8,c)};h.sd=function(a){return this.c[a>>2]>>>((a&3)<<3)&255};h.re=function(a,b){db&&a&1&&L(this.b,b,64);b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8};
h.De=function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.xa=!0};h.Bf=function(a,b,c){db&&a&1&&L(this.b,c,64);c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.xa=!0};h.qd=function(a,b){return this.i(a,b)};h.oe=function(a,b){return this.D(a,b)};h.Be=function(a,b,c){this.A?this.wb(0,0,c):this.j(a,b,c)};h.zf=function(a,b,c){this.A?this.wb(0,0,c):this.m(a,b,c)};h.pd=function(a){return this.a[a]};
h.rd=function(a){return this.a[a]};h.ne=function(a,b){db&&a&1&&L(this.b,b,64);return this.u.getUint16(a,!0)};h.qe=function(a,b){db&&a&1&&L(this.b,b,64);return!eb&&a&1?this.a[a]|this.a[a+1]<<8:this.o[a>>1]};h.Ae=function(a,b){this.a[a]=b;this.xa=!0};h.Ce=function(a,b){this.a[a]=b;this.xa=!0};h.yf=function(a,b,c){db&&a&1&&L(this.b,c,64);this.u.setUint16(a,b,!0);this.xa=!0};h.Af=function(a,b,c){db&&a&1&&L(this.b,c,64);!eb&&a&1?(this.a[a]=b,this.a[a+1]=b>>8):this.o[a>>1]=b;this.xa=!0};
var uc=0,dc=1,vc=2,Ub=4,Zb=["NONE","RAM","ROM","VID","H/W"],tc=0,Cc=[],Bc=[J.prototype.sd,J.prototype.De,J.prototype.re,J.prototype.Bf],Fc=[J.prototype.qd,J.prototype.Be,J.prototype.oe,J.prototype.zf];if(bb)var zc=[J.prototype.pd,J.prototype.Ae,J.prototype.ne,J.prototype.yf],yc=[J.prototype.rd,J.prototype.Ce,J.prototype.qe,J.prototype.Af];var Gc;if(bb){var Hc=new ArrayBuffer(2);(new DataView(Hc)).setUint16(0,256,!0);Gc=256===(new Uint16Array(Hc))[0]}else Gc=!1;var xc=Gc;
function Ic(a,b){A.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ec=0;this.Lb=b;this.Pa=c;this.Tb=Math.round(this.Lb/1E4)/100;this.Wa=this.Tb*this.Pa;this.Ub=this.rb=this.Za=this.Mb=0;this.l.P=!1;this.l.ac=!1;this.l.ma=a.autoStart;"string"==typeof this.l.ma&&(this.l.ma="true"==this.l.ma);this.l.zb=!1;this.Jb=this.Ya=0;this.Kb=+a.csStart;this.pb=+a.csInterval;this.qb=+a.csStop;this.sa=[];this.pc=this.ve.bind(this);this.Ea=this.va=this.Da=this.a=this.S=this.ua=this.ob=this.Ca=this.$a=
this.Vb=this.Ma=0;this.ka=null;H(this)}n(Ic,A);h=Ic.prototype;h.aa=function(a,b,c,d){this.A=a;this.u=b;this.D=d;this.ka=a.f;for(a=0;a<Jc.length;a++)(b=this.j[Jc[a]])&&this.A.ca(null,Jc[a],b);H(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ha=function(a,b){var c=Kc(this.A,"autoStart");null!=c?this.l.ma="true"==c?!0:"false"==c?!1:!!c:null==this.l.ma&&(this.l.ma=void 0===this.j.run);if(!b){if(a){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.V("No debugger detected");this.l.ma||this.V("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};h.ga=function(a){return a?this.save():!0};h.ma=function(){return this.l.P?!0:this.l.ma?(yb(this),!0):!1};h.wc=function(){return 0};
function Mc(a){void 0===a.Kb&&(a.Kb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.l.zb=0<=a.Kb&&0<a.pb;a.l.zb&&(a.Jb=0,a.Ya=a.Kb-a.Ea)}function Bb(a,b){if(a.l.zb){var c=!1;a.Jb=a.Jb+a.wc()|0;a.Ya-=b;0>=a.Ya&&(a.Ya+=a.pb,c=!0);0<=a.qb&&a.qb<=Nc(a)&&(a.pb=a.qb=-1,Mc(a),I(a),c=!0);c&&a.V(Nc(a)+" cycles: checksum="+ra(a.Jb))}}
h.ca=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.l.R)a=!0;else{var b=null,c,k=C(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.R);c++);c==k.length&&(b=a);z("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.Bb?" (waiting for notification)":""))+".");a=!1}a&&(d.l.P?I(d):yb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Oc(d,d.Pa<<1,!0)},c.textContent=this.Wa.toFixed(2)+"Mhz",!0}return!1};function Ab(a,b,c){a.Ea+=b;c&&(a.Da=a.a=a.S=0)}function Pc(a,b){var c=1;b&&1<a.Pa&&a.Ma&&(c=a.Ma/a.Tb);a.Ub=Math.round(1E3/Qc);a.rb=Math.floor(a.Lb/Qc*c);b||(a.Za=a.rb);a.Mb=0}function Nc(a){return a.Ea+a.va+a.Da-a.a}function Lc(a){a.Ma=0;a.Vb=0;a.Ea=a.va=a.Da=a.a=a.S=0;Mc(a);Oc(a,1)}
function Oc(a,b,c){if(void 0!==b){.8>a.Ma/a.Wa&&(b=1);a.Pa=b;b=a.Tb*a.Pa;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.V("target speed: "+b)}c&&a.A&&Rc(a.A)}Ab(a,a.va);a.va=0;a.ua=ya();a.Ca=0;Pc(a)}function ic(a,b){var c=a.sa.length;a.sa.push([-1,b]);return c}function kc(a,b,c,d){0<=b&&b<a.sa.length&&(d||0>a.sa[b][0])&&(c=a.Lb*a.Pa/1E3*c|0,a.l.P&&(c+=Sc(a)),a.sa[b][0]=c)}
function zb(a,b){for(var c=a.sa.length-1;0<=c;c--){var d=a.sa[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Sc(a,b){var c=a.Da-=a.a;a.a=a.S=0;b&&(a.Da=0);return c}
h.ve=function(){if(this.l.P){this.Mb>=this.Lb&&Pc(this,!0);this.$a=0;this.ob=ya();if(this.Ca){var a=this.ob-this.Ca;a>this.Ub&&(this.ua+=a,this.ua>this.ob&&(this.ua=this.ob))}try{do{for(var b,c=this.l.zb?1:this.rb,d=this.sa.length-1;0<=d;d--){var e=this.sa[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Qb(b)}catch(f){if("number"!=typeof f)throw f;}b=Sc(this,!0);this.$a+=b;this.va+=b;Bb(this,b);zb(this,b);this.Za-=b;if(0>=this.Za){this.Za+=this.rb;++this.Vb>=Tc&&(this.A&&Cb(this.A,void 0),this.Vb=0);break}}while(this.l.P)}catch(f){I(this);
this.A&&this.A.stop(ya(),Nc(this));Za(this,f.stack||f.message);return}if(this.l.P){a=setTimeout;b=this.pc;this.Ca=ya();c=this.Ub;this.$a&&(c=Math.round(c*this.$a/this.rb));c-=this.Ca-this.ob;if(d=this.Ca-this.ua)this.Ma=Math.round(this.va/(10*d))/100,864E5<=d&&(this.Ea=0,Oc(this));if(0>c||this.Ma<this.Wa)-1E3>c&&(this.ua-=c),c=0;this.Mb+=this.$a;this.Ca+=c;a(b,c)}}};
function yb(a){var b;a.l.error?(a.V(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.P)a.V(a.toString()+" busy");else{Oc(a);a.l.P=!0;a.l.ac=!0;if(b=a.j.run)b.textContent="Halt";a.A&&a.A.start(a.ua,Nc(a));a.D||a.status("Started");setTimeout(a.pc,0)}}h.Qb=function(){return 0};function I(a){var b=!1;if(a.l.P){Sc(a);Ab(a,a.va);a.va=0;a.l.P=!1;if(b=a.j.run)b.textContent="Run";a.A&&a.A.stop(ya(),Nc(a));b=!0;a.D||a.status("Stopped")}a.l.complete=void 0;return b}var Qc=30,Tc=15,Jc=["power","reset"];
function Uc(a){var b=+a.model||1170;Ic.call(this,a,6666667);this.pa=b;this.lc=+a.addrReset||0;this.i=this.v=this.m=this.o=this.w=0;this.b=this.qa=this.X=[];this.C=0;this.nc=[];this.s=this.I=this.Ga=this.tb=[];this.Nb=this.za=this.F=this.kc=this.Aa=this.Na=this.Oa=this.Ba=this.G=this.Qa=this.Fa=this.H=this.cb=this.eb=this.la=this.wa=this.h=this.f=this.Gb=this.K=this.L=this.g=this.sb=0;this.oc=255;1120>=this.pa?(this.jc=Vc.bind(this),this.Xa=this.Zc,this.Nb=8,this.oc=-1,this.rc=255,this.qc=0):(this.jc=
Wc.bind(this),this.Xa=this.$c,this.rc=~(1792|(1140>=this.pa?2048:0))&65535,this.qc=1140<this.pa?2048:0);this.bb=0;this.ea=null;this.Sb=[];this.l.complete=!1;this.Db=this.fc=this.bd;this.Eb=this.gc=this.dd;this.Ob=this.Pb=this.xe;this.Fb=this.Rb=this.ze;this.ta=this.Cb=0;this.oa=this.xc;this.W=this.Ac;this.nb=this.Dc;this.Tc=this.Sc=0}n(Uc,Ic);h=Uc.prototype;h.aa=function(a,b,c,d){Ic.prototype.aa.call(this,a,b,c,d);this.fc=b.Ec.bind(b);this.gc=b.xb.bind(b);this.Pb=b.Fc.bind(b);this.Rb=b.yb.bind(b)};
h.ha=function(a,b){for(var c=192,d=0;d<this.Sb.length;d++){var e=this.Sb[d];0>e.cc&&(e.cc=c,c+=4)}return Ic.prototype.ha.call(this,a,b)};
h.reset=function(){this.status("Model "+this.pa);this.l.P&&I(this);this.v=65536;this.m=32768;this.o=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.lc,-1,-2,-3,-4,-5,-6,-7,-8];this.qa=[0,0,0,0,0,0];this.X=[0,0,0,0];this.C=0;this.nc=[4,2,0,1];this.s=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.I=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Ga=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.tb=[0,0,0,0,0,0,0,0];this.h=this.f=this.Gb=this.K=this.L=this.g=this.sb=0;this.wa=-1;wb(this);Lc(this);this.l.error=!1;Ic.prototype.reset.call(this)};function wb(a){a.H=0;a.cb=0;a.eb=0;a.la=0;a.G=0;a.Qa=0;a.Fa=255;a.Aa=0;a.Na=0;a.Oa=0;a.Ba=262143;a.za=a.b[7];a.F=0;a.ea=null;a.u&&(pc(a),a.kc=cc(a.u))}
function pc(a){a.Db=a.fc;a.Eb=a.gc;a.Ob=a.Pb;a.Fb=a.Rb;a.Aa?(a.ta=65536,a.Cb=a.la&16?4186112:253952,a.oa=a.xc,a.W=a.Ac,a.nb=a.Dc,Vb(a.u,a.la&16?22:18)):(a.ta=0,a.Cb=57344,a.oa=a.cd,a.W=a.pe,a.nb=a.Cf,Vb(a.u,16))}function oc(a,b){b&=-3073;if(a.H!=b){b&57344&&!(a.H&57344)&&(a.cb=a.F>>16&65535,a.eb=a.F&65535);a.H=b;a.Na=(b&96)>>5;a.Oa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Aa!=c&&(a.Aa=c,pc(a))}}
function Xc(a,b,c){a.lc=b;a.u.reset();wb(a);R(a,b);rc(a,0);if(c){for(b=2;5>=b;b++)a.b[b]=0;a.l.P||yb(a)}else a.D?I(a)||a.D.g():!1===c&&I(a);!a.l.P&&a.ka&&a.ka.stop()}h.wc=function(){return 0};h.save=function(){var a=new K(this);a.set(0,[this.b,this.qa,this.X,this.Ga,this.tb,this.G,this.sb,this.Qa,this.Fa,this.wa,this.C,this.g,this.H,this.cb,this.eb,this.la,this.Na,this.Oa,this.s,this.I,this.Aa,this.Ba,this.za,this.F]);a.set(1,[qc(this)]);a.set(2,[this.Ea,this.Pa]);return a.data()};
h.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.b=b.next().value;this.qa=b.next().value;this.X=b.next().value;this.Ga=b.next().value;this.tb=b.next().value;this.G=b.next().value;this.sb=b.next().value;this.Qa=b.next().value;this.Fa=b.next().value;this.wa=b.next().value;this.C=b.next().value;this.g=b.next().value;this.H=b.next().value;this.cb=b.next().value;this.eb=b.next().value;this.la=b.next().value;this.Na=b.next().value;this.Oa=b.next().value;
this.s=b.next().value;this.I=b.next().value;this.Aa=b.next().value;this.Ba=b.next().value;this.za=b.next().value;this.F=b.next().value;b=a[1];rc(this,b[0]);b=a[2];this.Ea=b[0];Oc(this,b[1]);return!0};function Yc(a){return a.v&65536?1:0}function Zc(a){return a.w&32768?8:0}function $c(a,b){var c=a.b[7];a.b[7]=c+b&65535;return c}function S(a,b,c){c&&(R(a,a.b[7]+(b<<24>>23)),a.a-=2);a.a-=3}function R(a,b){a.b[7]=b&65535}
function lc(a,b,c,d){c={cc:b,gb:c,message:d||0,next:null};c.name=fb[b];a.Sb.push(c);return c}function nc(a,b){var c=a.ea;if(c==b)a.ea=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.ea&&(a.g|=1)}function jc(a,b){if(b){if(b!=a.ea){var c=a.ea;if(!c||c.gb<=b.gb)b.next=c,a.ea=b;else{do{var d=c.next;if(!d||d.gb<=b.gb){b.next=d;c.next=b;break}c=d}while(c)}}a.g|=1}}function ad(a){return a.g&64?(M(a,168,64,-6),!0):a.g&32?(M(a,4,32,-5),!0):a.g&16?(M(a,12,16,-7),!0):!1}
function qc(a){return a.i=a.i&63728|Zc(a)|(a.o&65535?0:4)|(a.m&32768?2:0)|Yc(a)}function rc(a,b){b&=a.rc;a.w=b<<12;a.o=~b&4;a.m=b<<14;a.v=b<<16;if((b^a.i)&a.qc)for(var c=a.qa.length;0<=--c;){var d=a.b[c];a.b[c]=a.qa[c];a.qa[c]=d}a.C=b>>14&3;c=a.i>>14&3;a.C!=c&&(a.X[c]=a.b[6],a.b[6]=a.X[a.C]);a.i=b;a.g&=-3;a.g|=a.ea?2:1}h.da=function(a){this.w=this.o=a;this.m=0};h.Ja=function(a,b){this.w=this.o=this.v=a;this.m=b||0};function bd(a,b){a.w=a.o=a.v=b;a.m=a.w^a.v>>1}
function cd(a,b,c,d){a.w=a.o=a.v=b;a.m=(c^d)&(d^b)}function M(a,b,c,d){if(!a.bb){0>a.wa?a.wa=qc(a):a.C||(d=-4);-4==d&&(a.g&256&&(d=-1),a.g|=256,a.G|=4,a.b[6]=b=4);if(-1!=d){a.F=b|4143316992;a.C=0;var e=a.W(b|a.ta),f=a.W(b+2&65535|a.ta);rc(a,f&-12289|a.wa>>2&12288);dd(a,a.wa);dd(a,a.b[7]);R(a,e)}a.a-=5;a.g&=~(c|19);a.g|=129;a.wa=-1;a.Tc=b;a.Sc=d;-1==d&&I(a);if(-4<=d)throw b;}}function ed(a){var b=fd(a),c=fd(a);a.i&49152&&(c=c&-225|a.i&63712);R(a,b);rc(a,c);a.g&=-17}
function gd(a,b){var c=b>>13&31;31>c&&(b=a.la&32?a.Ga[c]+(b&8191)&4194303:b&-3932161);return b}
function Gb(a,b,c){var d,e,f;if(!(c&a.Aa))return f=b&65535,57344<=f&&(f|=a.Cb),f;d=b>>13;a.la&a.nc[a.C]||(d&=7);e=a.s[a.C][d];f=(a.I[a.C][d]<<6)+(b&8191)&a.Ba;3932160<=f&&(f=gd(a,f));if(a.bb)return f;f>=a.kc&&f<a.Cb?(a.G|=32,M(a,4,0,f)):f&1&&!(c&1)&&(a.G|=64,M(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.s[a.C][d]=e;if(f!=(4194170&a.Ba)||a.C)a.Na=a.C,a.Oa=d;g&&(g&57344&&(0<=a.wa&&(g|=128),a.H&57344||(g|=a.H&4096|a.Na<<5|a.Oa<<1,oc(a,a.H&-61695|g&61694)),M(a,168,64,-2)),a.H&61440||!(f<(4191360&a.Ba)||f>(4194239&a.Ba))||(a.H|=4096,a.H&512&&(a.g|=64)));return f}function fd(a){var b=a.W(a.b[6]|a.ta);a.b[6]=a.b[6]+2&65535;return b}function dd(a,b){var c=a.b[6]-2&65535;a.b[6]=c;a.F=a.F&65535|(a.F&-65536)<<8|16121856;a.g&256||a.Xa(4,-2,c);a.nb(c,b)}
function hd(a,b,c,d){var e,f,g=d&8?0:a.ta;switch(b){case 0:return M(a,4,0,-3),0;case 1:return 6==c&&a.Xa(d,0,a.b[6]),a.a-=3,7==c?a.b[c]:a.b[c]|g;case 2:f=2;e=a.b[c];6==c&&a.Xa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.b[c];7!=c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.b[c]+f&65535;6==c&&a.Xa(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.b[c]-2&65535;7!=c&&(e|=g);e=a.W(e)|g;a.a-=8;break;case 6:return e=a.W($c(a,2)),e=e+a.b[c]&65535,6==c&&a.Xa(d,0,
e),a.a-=6,e|g;case 7:return e=a.W($c(a,2)),e=e+a.b[c]&65535,e=a.W(e|a.ta),a.a-=10,e|g}a.b[c]=a.b[c]+f&65535;a.F=a.F&65535|(a.F&-65536)<<8|(f<<3&248|c)<<16;return e}h.Zc=function(a,b,c){!this.C&&0>=b&&c<=this.Fa&&(this.g|=32)};h.$c=function(a,b,c){this.C||(65534<=c&&(c|=-65536),a&4&&c<=this.Fa&&(c<=this.Fa-32?M(this,4,0,-4):(this.G|=8,this.g|=32)))};h.bd=function(a){return this.fc(a)};h.dd=function(a){return this.gc(a)};h.xe=function(a,b){this.Pb(a,b)};h.ze=function(a,b){this.Rb(a,b)};
h.cd=function(a,b,c){return hd(this,a,b,c)};h.xc=function(a,b,c){return Gb(this,hd(this,a,b,c),c)};h.pe=function(a){return this.u.xb(this.za=a)};h.Ac=function(a){return this.u.xb(this.za=Gb(this,a,2))};h.Cf=function(a,b){this.u.yb(this.za=a,b)};h.Dc=function(a,b){this.u.yb(this.za=Gb(this,a,4),b)};
function id(a,b,c){var d=a.f=b&7;(b=a.h=(b&56)>>3)?(d=hd(a,b,d,2),c&65536||61440!==(a.i&61440)&&(d&=65535),a.C=a.i>>12&3,c=a.W(d|c&a.ta),a.C=a.i>>14&3):c=6!=d||(a.i>>2&12288)===(a.i&12288)?a.b[d]:a.X[a.i>>12&3];return c}function jd(a,b,c,d){a.F=a.F&65535|1441792;var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=hd(a,b,e,4),c&65536||(e&=65535),a.C=a.i>>12&3,e=Gb(a,e|c&65536,4),a.C=a.i>>14&3,a.Fb(e,d)):6!=e||(a.i>>2&12288)===(a.i&12288)?a.b[e]=d:a.X[a.i>>12&3]=d}
function kd(a,b){b>>=6;var c=a.L=b&7;return(b=a.K=(b&56)>>3)?a.Db(a.oa(b,c,3)):a.b[c+a.Nb]&a.oc}function ld(a,b){var c;b>>=6;var d=a.L=b&7;(b=a.K=(b&56)>>3)?c=a.Eb(a.oa(b,d,2)):c=a.b[d+a.Nb];return c}function md(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return hd(a,b,c,8)}function nd(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.Db(a.oa(b,c,3)):a.b[c]&255}function od(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.Eb(a.oa(b,d,2)):c=a.b[d];return c}
function T(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.Gb=a.oa(b,e,7),c=0>c?a.b[-c-1]&255:c,a.Ob(e,d.call(a,c,a.Db(e))),e&1&&a.a--):(b=a.b[e],c=0>c?a.b[-c-1]&255:c,a.b[e]=b&65280|d.call(a,c,b&255))}function U(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.oa(b,e,6),a.Fb(e,d.call(a,0>c?a.b[-c-1]:c,a.Eb(e)))):a.b[e]=d.call(a,0>c?a.b[-c-1]:c,a.b[e])}
function pd(a,b,c,d,e){var f=a.f=b&7;(b=a.h=(b&56)>>3)?(d=a.oa(b,f,5),e.call(a,(c=0>c?a.b[-c-1]&255:c)<<8),a.Ob(d,c),d&1&&a.a--):(c?(c=0>c?a.b[-c-1]&255:c,a.b[f]=a.b[f]&~d|c<<24>>24&d):a.b[f]&=~d,e.call(a,c<<8))}function qd(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.oa(b,e,4),d.call(a,c=0>c?a.b[-c-1]:c),a.Fb(e,c)):(a.b[e]=c=0>c?a.b[-c-1]:c,d.call(a,c))}
h.Qb=function(a){this.l.complete=!0;var b=a?this.l.ac?0:1:-1;this.l.ac=!1;this.Da=this.a=a;this.g=this.g&-5|0;do{if(this.g){if(a=this.g&11)if(a=!1,this.g&2){var c=160,d=(this.Qa&224)>>5,e=this.ea&&this.ea.gb>d?this.ea:null;e&&(c=e.cc,d=e.gb);d>(this.i&224)>>5?(this.g&8&&($c(this,2),this.g&=-9),M(this,c,0,-10),d=!0):d=!1;d&&(e&&nc(this,e),a=!0);this.ea||this.Qa||(this.g&=-3)}else this.g&1&&this.g++;if(a){if(this.g&4&&this.D.b(this.b[7],b)){I(this);break}if(0>b)break}if(this.g&112&&ad(this)){if(this.g&
4&&this.D.b(this.b[7],b)){I(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.F=this.b[7];e=this.W(a);this.b[7]=a+2&65535;this.jc(e)}while(0<this.a);return this.l.complete?this.Da-this.a:void 0===this.l.complete?0:-1};Na(function(){for(var a=G(document,F,"cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Uc(d);E(d,c)}});function rd(a,b){var c=b+a;this.w=this.o=this.v=c;this.m=(a^c)&(b^c);return c&65535}
function sd(a,b){var c=b+a,d=c<<8;this.w=this.o=this.v=d;this.m=(a<<8^d)&(b<<8^d);return c&255}function td(a,b){a=b<<1;bd(this,a);return a&65535}function ud(a,b){a=b<<1;bd(this,a<<8);return a&255}function vd(a,b){a=b&32768|b>>1|b<<16;bd(this,a);return a&65535}function wd(a,b){a=b&128|b>>1|b<<8;bd(this,a<<8);return a&255}function xd(a,b){a=b&~a;this.da(a);return a}function yd(a,b){a=b&~a;this.da(a<<8);return a}function zd(a,b){a|=b;this.da(a);return a}function Ad(a,b){a|=b;this.da(a<<8);return a}
function Bd(a,b){a=~b|65536;this.Ja(a);return a&65535}function Cd(a,b){a=~b|256;this.Ja(a<<8);return a&255}function Dd(a,b){this.w=this.o=a=b-a;this.m=b&(b^a);return a&65535}function Ed(a,b){a=b-a;var c=a<<8;b<<=8;this.w=this.o=c;this.m=b&(b^c);return a&255}function Fd(a,b){this.w=this.o=a=b+a;this.m=a&(b^a);return a&65535}function Gd(a,b){a=b+a;var c=a<<8;this.w=this.o=c;this.m=c&(b<<8^c);return a&255}function Hd(a,b){a=-b;this.Ja(a,a&b&32768);return a&65535}
function Id(a,b){a=-b;this.Ja(a<<8,(a&b&128)<<8);return a&255}function Jd(a,b){a=b<<1|this.v>>16&1;bd(this,a);return a&65535}function Kd(a,b){a=b<<1|this.v>>16&1;bd(this,a<<8);return a&255}function Ld(a,b){a=(this.v&65536|b)>>1|b<<16;bd(this,a);return a&65535}function Md(a,b){a=((this.v&65536)>>8|b)>>1|b<<8;bd(this,a<<8);return a&255}function Nd(a,b){var c=b-a;cd(this,c,a,b);return c&65535}function Od(a,b){var c=b-a;cd(this,c<<8,a<<8,b<<8);return c&255}
function Pd(a,b){this.w=this.o=b&65280;this.m=this.v=0;return(b<<8|b>>8)&65535}function Qd(a,b){a^=b;this.da(a);return a&65535}function Rd(a){U(this,a,ld(this,a),rd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}
function Sd(a){var b=od(this,a);a=a>>6&7;var c=this.b[a];c&32768&&(c|=4294901760);this.v=this.m=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.v=c<<17-b,c>>=b;else if(b)if(16<b)this.m=c,c=0;else{this.v=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.m=32768)}this.b[a]=c&65535;this.w=this.o=c;this.a-=(this.h?6:7)+b}
function Td(a){var b=od(this,a);a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.v=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.v=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.m=32768)):d=c;this.b[a]=d>>16&65535;this.b[a|1]=d&65535;this.w=d>>16;this.o=d>>16|d;this.a-=(this.h?6:7)+b}function Ud(a){S(this,a,!Yc(this))}function Vd(a){S(this,a,Yc(this))}
function Wd(a){U(this,a,ld(this,a),xd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Xd(a){T(this,a,kd(this,a),yd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Yd(a){U(this,a,ld(this,a),zd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Zd(a){T(this,a,kd(this,a),Ad);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}
function $d(a){var b=ld(this,a);a=od(this,a);this.da((0>b?this.b[-b-1]:b)&a);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function ae(a){var b=kd(this,a);a=nd(this,a);this.da(((0>b?this.b[-b-1]&255:b)&a)<<8);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function be(a){S(this,a,this.o&65535?0:4)}function ce(a){S(this,a,!Zc(this)==!(this.m&32768))}function de(a){S(this,a,!!(this.o&65535)&&!Zc(this)==!(this.m&32768))}
function ee(a){S(this,a,!Yc(this)&&!!(this.o&65535))}function fe(a){S(this,a,(this.o&65535?0:4)||!Zc(this)!=!(this.m&32768))}function ge(a){S(this,a,Yc(this)||(this.o&65535?0:4))}function he(a){S(this,a,!Zc(this)!=!(this.m&32768))}function ie(a){S(this,a,Zc(this))}function je(a){S(this,a,!!(this.o&65535))}function ke(a){S(this,a,!Zc(this))}function le(){M(this,12,0,-9)}function me(a){S(this,a,!0)}function ne(a){S(this,a,!(this.m&32768))}function oe(a){S(this,a,this.m&32768?2:0)}
function V(a){a&1&&(this.v=0);a&2&&(this.m=0);a&4&&(this.o=1);a&8&&(this.w=0);this.a-=5}function pe(a){var b=ld(this,a);a=od(this,a);var c=(b=0>b?this.b[-b-1]:b)-a;cd(this,c,a,b);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function qe(a){var b=kd(this,a);a=nd(this,a);var c=(b=(0>b?this.b[-b-1]&255:b)<<8)-(a<<=8);cd(this,c,a,b);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}
function re(a){var b=od(this,a);if(b){a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.b[a]=d&65535,this.b[a|1]=c-d*b&65535,this.o=d>>16|d,this.w=d>>16):(this.m=32768,this.o=d>>15|d,this.w=c>>16,-1===b&&65534===this.b[a]&&(this.b[a]=this.b[a|1]=1));this.a-=53}else this.o=this.w=0,this.m=32768,this.v=65536,this.a-=7}function se(){M(this,24,0,-9);this.a-=20}
function te(){this.i&49152?(this.G|=128,M(this,4,0,-8)):(this.ka&&1120==this.pa&&this.ka.setData(this.b[0],!0),this.D?this.D.i():I(this));this.a-=7}function ue(){M(this,16,0,-9);this.a-=20}var ve=[0,7,7,10,7,11,9,13];function we(a){this.S=this.a;R(this,md(this,a));this.a=this.S-ve[this.h]}var xe=[0,14,14,17,14,18,16,20];function ye(a){this.S=this.a;var b=md(this,a);a=a>>6&7;dd(this,this.b[a]);this.b[a]=this.b[7];R(this,b);this.a=this.S-xe[this.h]}var ze=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function Ae(a){var b=ld(this,a);this.S=this.a;qd(this,a,b,this.da);this.a=this.S-ze[(this.K?8:0)+this.h]+(7!=this.f||this.h?0:2)}function Be(a){var b=kd(this,a);pd(this,a,b,65535,this.da);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}var Ce=[7,13,13,17,14,18,17,21];
function De(a){var b=od(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.b[a];c&32768&&(c|=-65536);b=~~(b*c);this.b[a]=b>>16&65535;this.b[a|1]=b&65535;this.w=b>>16;this.o=this.w|b;this.m=0;this.v=-32768>b||32767<b?65536:0;this.a-=23}function Ee(){this.a-=5}function Fe(){this.i&49152||(this.u.reset(),wb(this),this.ka&&this.ka.setData(this.b[0],!0));this.a-=667}function Ge(a){if(a&8)M(this,8,0,-9);else{var b=fd(this);a&=7;7==a?R(this,b):(R(this,this.b[a]),this.b[a]=b);this.a-=9}}
function He(){ed(this);this.a-=13}function W(a){a&1&&(this.v=65536);a&2&&(this.m=32768);a&4&&(this.o=0);a&8&&(this.w=32768);this.a-=5}function Ie(a){var b=(a&448)>>6;if(this.b[b]=this.b[b]-1&65535)R(this,this.b[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Je(a){U(this,a,ld(this,a),Nd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Ke(a){U(this,a,0,Pd);this.a-=this.h?9:3+(7==this.f?2:0)}function Le(){M(this,28,0,-9)}
function Me(){this.ka&&(this.ka.ja=this.b[7],this.ka.setData(this.b[0],!0));this.g|=8;$c(this,-2);this.a-=3}function Ne(a){U(this,a,this.b[(a>>6&7)+this.Nb],Qd);this.a-=this.h?9:3+(7==this.f?2:0)}function X(){M(this,8,0,-9)}function Vc(a){Oe[a>>12].call(this,a)}function Pe(a){Qe[a>>6&3].call(this,a)}function Re(a){Se[a>>6&3].call(this,a)}function Te(a){Ue[a>>6&3].call(this,a)}function Ve(a){We[a&15].call(this,a)}function Xe(a){Ye[a&15].call(this,a)}function Ze(a){$e[a>>6&3].call(this,a)}
function af(a){bf[a>>6&3].call(this,a)}function cf(a){df[a>>6&3].call(this,a)}
var Oe=[function(a){ef[a>>8&15].call(this,a)},Ae,pe,$d,Wd,Yd,Rd,X,function(a){ff[a>>8&15].call(this,a)},Be,qe,ae,Xd,Zd,Je,X],ef=[function(a){gf[a>>4&15].call(this,a)},me,je,be,ce,he,de,fe,ye,ye,Pe,Re,Te,X,X,X],Qe=[function(a){qd(this,a,0,this.Ja);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Bd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Fd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Dd);this.a-=this.h?9:3+(7==this.f?2:0)}],Se=[function(a){U(this,a,0,Hd);
this.a-=this.h?11:6},function(a){U(this,a,Yc(this)?1:0,rd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,Yc(this)?1:0,Nd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=od(this,a);this.Ja(a);this.a-=this.h?4:3+(7==this.f?2:0)}],Ue=[function(a){U(this,a,0,Ld);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Jd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,vd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,td);this.a-=this.h?9:3+(7==this.f?2:0)}],gf=
[function(a){hf[a&15].call(this,a)},X,X,X,we,we,we,we,Ge,X,Ve,Xe,Ke,Ke,Ke,Ke],hf=[te,Me,He,le,ue,Fe,X,X,X,X,X,X,X,X,X,X],We=[Ee,function(){this.v=0;this.a-=5},function(){this.m=0;this.a-=5},V,function(){this.o=1;this.a-=5},V,V,V,function(){this.w=0;this.a-=5},V,V,V,V,V,V,V],Ye=[Ee,function(){this.v=65536;this.a-=5},function(){this.m=32768;this.a-=5},W,function(){this.o=0;this.a-=5},W,W,W,function(){this.w=32768;this.a-=5},W,W,W,W,W,W,W],ff=[ke,ie,ee,ge,ne,oe,Ud,Vd,se,Le,Ze,af,cf,X,X,X],$e=[function(a){pd(this,
a,0,255,this.Ja);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,Cd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Gd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Ed);this.a-=this.h?9:3+(7==this.f?2:0)}],bf=[function(a){T(this,a,0,Id);this.a-=this.h?11:6},function(a){T(this,a,Yc(this)?1:0,sd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,Yc(this)?1:0,Od);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=nd(this,a);this.Ja(a<<8);this.a-=this.h?4:3+
(7==this.f?2:0)}],df=[function(a){T(this,a,0,Md);this.a-=this.h?9+(this.Gb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,Kd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,wd);this.a-=this.h?9+(this.Gb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,ud);this.a-=this.h?9:3+(7==this.f?2:0)}];function Wc(a){jf[a>>12].call(this,a)}
var jf=[function(a){kf[a>>8&15].call(this,a)},Ae,pe,$d,Wd,Yd,Rd,function(a){lf[a>>8&15].call(this,a)},function(a){mf[a>>8&15].call(this,a)},Be,qe,ae,Xd,Zd,Je,X],kf=[function(a){nf[a>>4&15].call(this,a)},me,je,be,ce,he,de,fe,ye,ye,Pe,Re,Te,function(a){of[a>>6&3].call(this,a)},X,X],of=[function(a){a=this.b[7]+((a&63)<<1)&65535;var b=this.W(a|this.ta);R(this,this.b[5]);this.b[6]=a+2&65535;this.b[5]=b;this.a-=8},function(a){a=id(this,a,0);this.da(a);dd(this,a);this.a-=11},function(a){var b=fd(this);this.S=
this.a;this.da(b);jd(this,a,0,b);this.a=this.S-Ce[this.h]},function(a){qd(this,a,Zc(this)?65535:0,this.da);this.a-=this.h?9:3+(7==this.f?2:0)}],nf=[function(a){pf[a&15].call(this,a)},X,X,X,we,we,we,we,Ge,function(a){!(a&8)||1145>this.pa?M(this,8,0,-9):(this.i&49152||(this.i=this.i&-225|(a&7)<<5,this.g|=1,this.g&=-3),this.a-=5)},Ve,Xe,Ke,Ke,Ke,Ke],pf=[te,Me,function(){ed(this);this.g|=this.i&16;this.a-=13},le,ue,Fe,He,function(){M(this,8,0,-9)},X,X,X,X,X,X,X,X],lf=[De,De,re,re,Sd,Sd,Td,Td,Ne,Ne,X,
X,X,X,Ie,Ie],mf=[ke,ie,ee,ge,ne,oe,Ud,Vd,se,Le,Ze,af,cf,function(a){1145>this.pa?M(this,8,0,-9):qf[a>>6&3].call(this,a)},X,X],qf=[function(){M(this,8,0,-9)},function(a){a=id(this,a,65536);this.da(a);dd(this,a);this.a-=11},function(a){var b=fd(this);this.S=this.a;this.da(b);jd(this,a,65536,b);this.a=this.S-Ce[this.h]},function(){M(this,8,0,-9)}];
function rf(a){A.call(this,"ROM",a,0,128);this.fa=this.b=null;this.h=+a.addr;this.a=+a.size;this.i=!1;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.g=a.file;this.m=u(this.g);if(this.g){a=this.g;var b=sa(this.m);"json"!=b&&"hex"!=b&&(a=Ba()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(Va(c.La,a,b),(a=Aa(a,b))?(c.b=a.N,c.fa=a.fa):c.g=null);sf(c)})}}n(rf,A);
h=rf.prototype;h.aa=function(a,b,c,d){this.u=b;this.c=c;this.D=d;sf(this)};h.ha=function(){this.fa&&(this.D&&this.D.a(this.id,this.h,this.a,this.fa),delete this.fa);return!0};h.ga=function(){return!0};
function sf(a){if(!$a(a)){if(a.g){if(!a.b||!a.u)return;a.a||(a.a=a.b.length);if(a.b.length!=a.a)Za(a,"ROM size ("+ra(a.b.length,8,!0)+") does not match specified size ("+ra(a.a,8,!0)+")");else{var b;a:{b=a.h;a.status(a.a+"-byte ROM at "+qa(b));if(57344<=b&&b<57344+Nb){var c={};b=(c[b]=[rf.prototype.be,rf.prototype.lf,null,null,null,a.a>>1],c);if(kb(a.u,a,b)){b=a.i=!0;break a}}else if(Tb(a.u,b,a.a,vc)){for(c=0;c<a.b.length;c++)bc(a.u,b+c,a.b[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?b.push(a.f):
null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.a,k=[],l=d.h>>>f.h;0<g&&l<f.a.length;)k.push(f.a[l++]),g-=f.g;f=d.u;d=d.a;g=0;for(e>>>=f.h;0<d&&e<f.a.length;){l=k[g++];if(!l)break;f.a[e++]=l;d-=f.g}}a.i||delete a.b}}}H(a)}}h.be=function(a){return this.b[a-this.h]};h.lf=function(){};Na(function(){for(var a=G(document,F,"rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new rf(d);E(d,c)}});
function tf(a){A.call(this,"RAM",a);this.fa=this.b=null;this.f=+a.addr;this.g=+a.size;this.Z=a.load;this.Y=a.exec;null!=this.Z&&(this.Z=+this.Z);null!=this.Y&&(this.Y=+this.Y);this.h=!1;this.a=a.file;this.i=u(this.a);if(this.a){a=this.a;var b=sa(this.i);"json"!=b&&"hex"!=b&&(a=Ba()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Va(c.La,a,b),(a=Aa(a,b))?(c.b=a.N,c.fa=a.fa,null==c.Z&&
(c.Z=a.Z),null==c.Y&&(c.Y=a.Y)):c.a=null);uf(c)})}}n(tf,A);tf.prototype.aa=function(a,b,c,d){this.u=b;this.c=c;this.D=d;uf(this)};tf.prototype.ha=function(){this.fa&&(this.D&&this.D.a(this.id,this.f,this.g,this.fa),delete this.fa);return!0};tf.prototype.ga=function(){return!0};
function uf(a){if(a.u&&(!a.h&&a.g&&(Tb(a.u,a.f,a.g,dc)?a.h=!0:a.g=0),!$a(a))){if(!a.h)y("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;vf(a,a.b,a.Z,a.Y,a.f)?a.status('Loaded image "'+a.i+'"'):a.B('Error loading image "'+a.i+'"')}H(a)}}
tf.prototype.reset=function(){if(this.h){for(var a=this.u,b=this.f,c=this.g,d=b&a.f,b=b>>>a.h;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(bb&&e.a)for(k=d;f--&&k<e.a.length;k++)e.a[k]=g;else for(k=d;f--&&k<e.size;k++)e.j(d,g,e.Ra+d);c-=a.g;b++;d=0}this.b&&vf(this,this.b,this.Z,this.Y,this.f,!0)}};
function vf(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),x=l,w=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(w)for(;w--;)bc(a.u,t++,b[x++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)bc(a.u,c+e,b[e]);k=!0}if(k){if(null==d||g)I(a.c),f=!1;null!=d&&Xc(a.c,d,f)}return k}Na(function(){for(var a=G(document,F,"ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new tf(d);E(d,c)}});function wf(a){A.call(this,"Keyboard",a,0,1024);H(this)}n(wf,A);wf.prototype.ca=function(){return!1};wf.prototype.aa=function(a,b,c,d){this.A=a;this.c=c;this.D=d};Na(function(){for(var a=G(document,F,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new wf(d);E(d,c)}});
function Y(a){A.call(this,"SerialPort",a,0,262144);this.C=+a.adapter;this.K=+a.baudReceive||9600;this.ea=+a.baudTransmit||9600;this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.g=this.i=null;this.S=+a.tabSize;this.L=+a.charBOL;this.m=0;this.v=!0;this.H=this.F=null;this.I=this.X=-1;this.o=this.a=this.b=0;this.h=[];var b=a.binding;if("console"==b)this.i="";else{var c;a=xf;b&&(void 0===c&&(c="Panel"),(c=Ya(c,this.id))&&(b=c.j[b])&&this.ca(null,a,b))}this.f=this.s=this.G=null;this.exports=
{connect:this.yc,receiveData:this.Hb,receiveStatus:this.ue,setConnection:this.ye}}n(Y,A);h=Y.prototype;
h.da=function(a,b,c){var d=this;switch(b){case qf:return this.j[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.ic:q.Jc:46==c?b=q.ic:a.ctrlKey&&c>=q.hc&&c<=q.Uc&&(b=c-(q.hc-q.Gc));b&&(a.preventDefault&&a.preventDefault(),d.Hb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ic&&(b=q.Hc);d.Hb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
h.ca=function(a,b,c){var d=this;switch(b){case xf:return this.j[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.ic:q.Jc:46==c?b=q.ic:a.ctrlKey&&c>=q.hc&&c<=q.Uc&&(b=c-(q.hc-q.Gc));b&&(a.preventDefault&&a.preventDefault(),d.Hb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ic&&(b=q.Hc);d.Hb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Hb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.aa=function(a,b,c,d){this.A=a;this.s=b;this.c=c;this.C=d;var e=this;this.H=ec(this.c,this.D?-1:48,4,262144);this.I=ac(this.c,function(){var a;a=-1;e.h.length&&(a=e.h.shift()&255,e.w&&97<=a&&122>a&&(a-=32),cc(e.c,e.I,1E3/Math.round(e.K/10)));0<=a&&(e.o=a,e.a&128?e.o|=49152:e.a|=128,e.a&64&&bc(c,e.H))});this.F=ec(this.c,this.D?-1:52,4,262144);this.X=ac(this.c,function(){e.b|=128;e.b&64&&bc(c,e.F)});db(b,this,rf,this.D?64832+8*(this.D-1)-65392:0);fb(b,this.reset.bind(this));H(this)};
h.yc=function(a){if(!this.f){var b=Dc(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=pa(c[0]);if(d!=this.Ga)return;c=pa(c[1]);if(this.f=Qa(c)){var e=this.f.exports;if(e){var f=e.connect;f&&f.call(this.f,this.v);if(this.u=e.receiveData){this.v=a;this.G=e.receiveStatus;this.status(this.Ha+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.ba=function(a,b){if(!b)if(this.yc(this.v),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){sf(this)};h.save=function(){var a=new R(this);a.set(0,[]);return a.data()};h.restore=function(){return sf(this)};function sf(a){a.o=0;a.a=8192;a.b=128;a.h=[];return!0}
h.Hb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.h.push(b)}else this.h=this.h.concat(a);cc(this.c,this.I,1E3/Math.round(this.K/10));return!0};h.ue=function(a){var b=this.a;this.a&=-12289;a&32&&(this.a|=8192);a&256&&(this.a|=4096);b!=this.a&&(this.a|=32768,this.a&32&&bc(this.c,this.H))};h.ye=function(a,b){return this.f?!1:(this.f=a,this.u=b,!0)};
h.Pd=function(){var a=this.a&65534;this.a&=-32769;return a};h.Ye=function(a){var b=a^this.a;this.a=this.a&-112|a&111;this.G&&b&6&&(b=0,b=this.v?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.G.call(this.f,b))};h.Od=function(){this.a&=-129;return this.o};h.Xe=function(){};h.te=function(){return this.b};h.Ef=function(a){if(this.b&128)if(a&64)bc(this.c,this.F);else{var b=this.F;b&&gc(this.c,b)}this.b=this.b&-70|a&69};h.se=function(){return 0};
h.Df=function(a){a&=255;this.u&&this.u.call(this.f,a);a&=127;if(this.g)if(13==a)this.m=0;else if(8==a)this.g.value=this.g.value.slice(0,-1),0<this.m&&this.m--;else{if(a){var b;13!=a&&10!=a&&(b=qa[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.S||8,c=a-this.m%a,this.S&&(b=" ".slice(0,c)));this.L&&!this.m&&c&&(b=String.fromCharCode(this.L)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.m+=c}}else if(null!=
this.i){if(10==a||1024<=this.i.length)this.V(this.i),this.i="";10!=a&&(this.i+=String.fromCharCode(a))}cc(this.c,this.X,1E3/Math.round(this.fa/10));this.b&=-129};var qf="buffer",tf={},rf=(tf[65392]=[null,null,Y.prototype.Pd,Y.prototype.Ye,"RCSR"],tf[65394]=[null,null,Y.prototype.Od,Y.prototype.Xe,"RBUF"],tf[65396]=[null,null,Y.prototype.te,Y.prototype.Ef,"XCSR"],tf[65398]=[null,null,Y.prototype.se,Y.prototype.Df,"XBUF"],tf);
Ga(function(){for(var a=G(document,F,"serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Y(d);E(d,c)}});function lc(a){A.call(this,"PC11",a);this.D=uf(this,a.autoMount);this.b=0;this.I=+a.baudReceive||3600;this.m=this.o=this.a=0;this.i=[];this.h=vf;this.f=wf;this.w=this.g="";this.N=this.Z=this.Y=null;this.G=-1;this.F=!Aa("Mobi")&&window&&"FileReader"in window;this.u=null;this.H=-1;this.v=null}n(lc,A);
function uf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=lc.prototype;
h.da=function(a,b,c){var d=this,e=wf;switch(b){case "listTapes":return this.j[b]=c,c.onchange=function(){var a=d.j.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){y("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.j[b]=c,!0;case "readTape":e=xf;case "loadTape":return e||(e=yf),this.j[b]=c,c.onclick=
function(){var a=d.j.listTapes;a&&zf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.F){c.parentNode.removeChild(c);break}this.j[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;zf(d,u(b,!0),b,yf,a)}return!1};return!0;case Af:return this.j[b]=c,!0}return!1};
h.aa=function(a,b,c,d){this.A=a;this.s=b;this.c=c;this.C=d;this.v=Bf(a);var e=this;if(a=uf(this,Dc(this.A,"autoMount")))for(var f in a)"PTR"==f&&(this.D[f]=a[f]);this.u=ec(this.c,56,4,4096);this.H=ac(this.c,function(){1==(e.a&32769)&&!(e.a&128)&&e.m<e.i.length&&(e.o=e.i[e.m++]&255,Cf(e,e.m/e.i.length*100),e.a|=128,e.a&=-2049,e.a&64&&bc(e.c,e.u))});db(b,this,Df);fb(b,this.reset.bind(this));Ef(this,"None",vf,!0);this.F&&Ef(this,"Local Tape",Ff);Ef(this,"Remote Tape",Gf);Hf(this)||H(this)};
h.ba=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){this.a&=-2241;this.o=0};function Hf(a){a.b=0;var b=a.D.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=u(c,!0)}c&&b?If(a,b,c,yf,!0):Jf(a)}return!!a.b}
function zf(a,b,c,d,e){if(c)if(c==Ff)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Gf){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"');a.h=Gf}else a.h=c;If(a,b,c,d,!1,e)}else Kf(a,!1)}function If(a,b,c,d,e,f){var g=-1;if(a.g.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,Kf(a,!0),a.l.Pa?a.B("PC11 busy"):(e&&a.b++,Lf(a,b,c,d,f)?g++:a.l.Pa=!0);g&&Mf(a,a.w,a.g,a.f,a.N,a.Z,a.Y)}
function Lf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Mf(a,b,c,d,e),a.h=Ff);Jf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):ua()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!v(f,null,!0,function(e,f,g){var k=0>g&&!!a.A&&!a.A.l.R;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Oa(a.Ha,e,f),(e=ta(e,f))&&Mf(a,b,c,d,e.N,e.Z,e.Y));
a.l.Pa=!1;a.b&&(a.b--,a.b||H(a));Jf(a)})}function Ef(a,b,c,d){if((a=a.j.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Jf(a){var b=a.j.listTapes;if(b&&b.options){a=a.h||a.g;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function Cf(a,b){b|=0;if(b!==a.G){var c=a.j[Af];c&&(c=(c=G(c,Nf))&&c[0])&&c.style&&(c.style.width=b+"%");a.G=b}}function Mf(a,b,c,d,e,f,g){a.w=b;a.g=c;a.f=d;a.N=e;a.Z=f;a.Y=g;d==xf?a.v&&of(a.v,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.m=0,a.i=e,a.status('Loaded tape "'+b+'"'),Cf(a,0))}function Kf(a,b){if(a.g||!1===b)a.w="",a.g="",b||(a.f&&a.status(a.f==yf?"tape detached":"tape unloaded"),a.h=vf,a.f=wf,Jf(a))}h.save=function(){return(new R(this)).data()};
h.restore=function(){return!0};h.Id=function(){return this.a&65534};h.Re=function(a){a&1&&(this.a&32768?(a&=-2,this.a&64&&bc(this.c,this.u)):(this.a&=-129,this.a|=2048,this.o=0,cc(this.c,this.H,1E3/Math.round(this.I/10))));this.a=this.a&-66|a&65};h.Hd=function(){this.a&=-129;this.a|=2048;return this.o};h.Qe=function(){};
var vf="",Ff="?",Gf="??",wf=0,yf=1,xf=2,Af="readProgress",Nf="pcjs-progress-bar",Of={},Df=(Of[65384]=[null,null,lc.prototype.Id,lc.prototype.Re,"PRS"],Of[65386]=[null,null,lc.prototype.Hd,lc.prototype.Qe,"PRB"],Of);
function Pf(a,b,c){A.call(this,"Disk",{id:a.Ha+".disk"+ka(++Qf,4)},0,8192);this.controller=a;this.A=a.A;this.C=a.C;this.h=b;this.ma=b.name;this.ca=this.Ib="";this.yb=b.yb;this.J=this.O=this.M=this.U=this.mode=0;this.a=[];this.f=null;this.g=!1;Rf(this,c,b.J,b.O,b.M,b.U);this.b=this.i=null;H(this)}n(Pf,A);h=Pf.prototype;h.aa=function(a,b,c,d){this.C=d};
function Rf(a,b,c,d,e,f){a.mode=b;a.J=c;a.O=d;a.M=e;a.U=f;a.a=[];if("preload"!=a.mode){b=Array(a.J);for(c=0;c<b.length;c++){d=Array(a.O);for(e=0;e<d.length;e++){f=Array(a.M);for(var g=1;g<=f.length;g++)f[g-1]=Sf(null,c,e,g,a.U,0);d[e]=f}b[c]=d}a.a=b}a.f=null}
function Tf(a,b,c,d,e){var f=c;if(a.b)return!0;a.ma=b;a.ca=c;a.Ib=u(c);a.b=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.J=e[0];a.O=e[1];a.M=e[2];a.U=e[3]||512;c=a.U>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.J);for(d=0;d<a.a.length;d++)for(var x=a.a[d]=Array(a.O),w=0;w<x.length;w++)for(var Z=x[w]=Array(a.M),Da=0;Da<Z.length;Da++){for(var dc=Sf(null,d,w,Da+1,a.U,0),Qg=dc.data,xc=0;xc<c;xc++,f+=4)var Rg=Qg[xc]=b.getInt32(f,
!0),e=e+Rg&-1;dc.ha=c;Z[Da]=dc}a.f=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.h,c,a.ma,a.ca),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=ua()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.yb?"":e)+"&format=json"));return!!v(f,
null,!0,function(b,c,d){Uf(a,b,c,d)})}
function Uf(a,b,c,d){var e=null,f=0>d&&!!a.A&&!a.A.l.R;a.g=!1;if(d)a.controller.B('Unable to load disk "'+a.ma+'" (error '+d+": "+b+")",f);else{Oa(a.controller.Ha,b,c);try{if(0<u(a.Ib,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.ma]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)y(k[0]);else{a.J=k.length;a.O=k[0].length;a.M=k[0][0].length;var l=k[0][0][0];a.U=l&&l.length||512;for(d=c=0;d<a.J;d++)for(f=0;f<a.O;f++)for(g=0;g<a.M;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var x=l.bytes;if(void 0!==x&&x.length){for(var w=m<<2,Z=x.length;Z<w;Z++)x[Z]=p;Vf(l,x)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}Sf(l,d,f);for(w=0;w<
t.length;w++)c=c+t[w]&-1}a.a=k;a.f=c;e=a}else y("Empty disk image: "+a.ma)}catch(Da){y("Disk image error ("+b+"): "+Da.message)}}a.b&&(a.b.call(a.i,a.h,e,a.ma,a.ca),a.b=null)}function Sf(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Fg=b;a.Gg=c;a.pa=a.ha=0;a.va=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.h,g=this.a[a];if(g){var k=g[b];if(!k&&f.Xc&&b<f.O)for(k=g[b]=Array(f.uc),g=0;g<k.length;g++)k[g]=Sf(null,a,b,g+1,f.Yb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Xc&&9==f.Wb&&(d=k[g]=Sf(null,a,b,f.Wb,f.Yb,0))}}e&&e(d,!1);return d};function Vf(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.ha?f<a.pa?(a.ha+=a.pa-f,a.pa=f):f>=a.pa+a.ha&&(a.ha+=f-(a.pa+a.ha)+1):(a.pa=f,a.ha=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Wf(a,b){var c=a.O*a.M,d=b/c|0;return d<a.J?(b%=c,a.seek(d,b/a.M|0,b%a.M+1)):null}function Xf(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Yf(a){for(var b="",c=0,d;d=Wf(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Xf(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.ca,this.f,this.J,this.O,this.M,this.U];if(!this.g)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ha){for(var k=[],l=0,m=g.pa,p=g.pa+g.ha;m<p;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.pa,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?Rf(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.a.length||l>=this.a[k].length||m>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.pa=e;for(k.ha=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.B("Unable to restore disk '"+this.ma+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=Wf(this,a++);)Zf(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Zf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var Qf=0;function P(a){A.call(this,"RK11",a,0,65536);this.o=$f(this,a.autoMount);this.m=0;this.f=Array(8);this.u=!Aa("Mobi")&&window&&"FileReader"in window;this.Da=null;this.w=this.b=this.a=this.i=this.h=this.g=this.v=0}n(P,A);
function $f(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=P.prototype;
h.da=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=r(c.value);null!=a&&ag(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&bg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&r(b.value);null==b||0>b||b>=d.f.length||!(a=d.f[b])?d.B("Unable to boot the selected drive"):a.T?(Qc(d.c,0,!0),(a=d.sc(a,0,0,0,512,0,2))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.u){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.f&&((a=d.f[r(a.value)||0])?(a=a.T)?(a=Ea(Yf(a),a.Ib.replace(".json",".img")),z(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.u)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;bg(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.aa=function(a,b,c,d){this.A=a;this.s=b;this.c=c;this.C=d;if(a=$f(this,Dc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.o[e]=a[e]);cg(this);this.Da=ec(this.c,144,5,65536);db(b,this,dg);fb(b,this.reset.bind(this));eg(this,"None",fg,!0);this.u&&eg(this,"Local Disk",gg);eg(this,"Remote Disk",hg);ig(this)||H(this)};
h.ba=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.i){for(a=0;a<this.f.length;a++)jg(this,a,!0);ig(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";ag(this,0)}}return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){cg(this)};h.save=function(){return(new R(this)).data()};
h.restore=function(a){return cg(this,a[0])};function ig(a,b){b||(a.m=0);for(var c in a.o){var d=a.o[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.f.length)){!kg(a,g,f,e,!0)&&b&&H(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.m}
function bg(a,b,c,d){var e=a.j.listDrives,e=e&&r(e.value);if(void 0===e||0>e||e>=a.f.length)a.B("Unable to load the selected drive");else if(c)if(c==gg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==hg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}kg(a,e,b,c,!1,d)}else jg(a,e)}
function kg(a,b,c,d,e,f){var g=-1,k=a.f[b];k.ca.toLowerCase()!=d.toLowerCase()&&(g++,jg(a,b,!0),k.Ra?a.B("RK11 busy"):(k.Ra=!0,e&&(k.Qa=!0,a.m++),k.wa=!!f,Tf(new Pf(a,k,"preload"),c,d,f,a.Mc)&&g++));return g}h.Mc=function(a,b,c,d,e){a.Ra=!1;b&&(b.J>a.J||b.O>a.O)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Sa)),b=null);b?(a.T=b,a.ma=c,a.ca=d,this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Sa),a.Qa||e),this.A&&Kc(this.A)):a.wa=!1;a.Qa&&(a.Qa=!1,--this.m||H(this));ag(this,a.Sa)};
function eg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ag(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=r(a.value),c=c.wa?gg:c.ca,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function jg(a,b,c){var d=a.f[b];if(d.T||!1===c)d.ma="",d.ca="",d.T=null,d.wa=!1,c||(a.B("Drive RK"+b+" unloaded",c),ag(a,b))}
function cg(a,b){var c=0;b||(b=[]);a.w=b[c++]||2368;a.b=b[c++]||0;a.a=b[c++]||128;a.i=b[c++]||0;a.h=b[c++]||0;a.g=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.Sa=b;d.name=c.Ga;d.Ra=d.wa=!1;d.J=203;d.O=2;d.M=12;d.U=512;d.yb=!0;d.Yc=0;d.Wc=0;d.Wb=1;d.uc=d.M;d.Yb=d.U;d.ed=0;d.we=null;d.T||(d.ca="");d.status=2368}return!0}
h.sc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b))}var x,w;if(0>(x=a.read(p,t++))||0>(w=a.read(p,t++))){m=32;break}if(!k&&(yb(this.s,$c(this.c,f),x|w<<8),$b(this.s))){m=1024;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Nc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){var x=Ab(this.s,$c(this.c,f));if($b(this.s)){m=1024;break}if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1,!0);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b))}if(k){var w,Z;if(0>(w=a.read(p,t++))||0>(Z=a.read(p,t++))){m=32;break}if(x!=(w|Z<<8)){m=1;break}}else if(!a.write(p,t++,x&255)||!a.write(p,t++,x>>8)){m=32;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Lc=function(a,b,c,d,e,f){this.h=f&65535;this.a=this.a&-49|f>>12&48;this.i=65536-e&65535;this.g=this.g&-16|d&15;this.b|=a;lg(this);return!0};function lg(a){a.a&=-32769;a.b&&(a.b|=32768,a.a|=32768,a.b&32736&&(a.a|=16384))}h.Ud=function(){return this.w};h.cf=function(){};h.Vd=function(){return this.b};h.df=function(){};h.Rd=function(){return this.a&61438};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;var e=this;this.H=lc(this.c,this.C?-1:48,4,262144);this.I=ic(this.c,function(){var a;a=-1;e.h.length&&(a=e.h.shift()&255,e.w&&97<=a&&122>a&&(a-=32),kc(e.c,e.I,1E3/Math.round(e.K/10)));0<=a&&(e.o=a,e.a&128?e.o|=49152:e.a|=128,e.a&64&&jc(c,e.H))});this.F=lc(this.c,this.C?-1:52,4,262144);this.X=ic(this.c,function(){e.b|=128;e.b&64&&jc(c,e.F)});kb(b,this,yf,this.C?64832+8*(this.C-1)-65392:0);mb(b,this.reset.bind(this));H(this)};
h.yc=function(a){if(!this.f){var b=Kc(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=wa(c[0]);if(d!=this.Ka)return;c=wa(c[1]);if(this.f=Xa(c)){var e=this.f.exports;if(e){var f=e.connect;f&&f.call(this.f,this.v);if(this.s=e.receiveData){this.v=a;this.G=e.receiveStatus;this.status(this.La+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.ha=function(a,b){if(!b)if(this.yc(this.v),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){zf(this)};h.save=function(){var a=new K(this);a.set(0,[]);return a.data()};h.restore=function(){return zf(this)};function zf(a){a.o=0;a.a=8192;a.b=128;a.h=[];return!0}
h.Hb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.h.push(b)}else this.h=this.h.concat(a);kc(this.c,this.I,1E3/Math.round(this.K/10));return!0};h.ue=function(a){var b=this.a;this.a&=-12289;a&32&&(this.a|=8192);a&256&&(this.a|=4096);b!=this.a&&(this.a|=32768,this.a&32&&jc(this.c,this.H))};h.ye=function(a,b){return this.f?!1:(this.f=a,this.s=b,!0)};
h.Pd=function(){var a=this.a&65534;this.a&=-32769;return a};h.Ye=function(a){var b=a^this.a;this.a=this.a&-112|a&111;this.G&&b&6&&(b=0,b=this.v?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.G.call(this.f,b))};h.Od=function(){this.a&=-129;return this.o};h.Xe=function(){};h.te=function(){return this.b};h.Ef=function(a){if(this.b&128)if(a&64)jc(this.c,this.F);else{var b=this.F;b&&nc(this.c,b)}this.b=this.b&-70|a&69};h.se=function(){return 0};
h.Df=function(a){a&=255;this.s&&this.s.call(this.f,a);a&=127;if(this.g)if(13==a)this.m=0;else if(8==a)this.g.value=this.g.value.slice(0,-1),0<this.m&&this.m--;else{if(a){var b;13!=a&&10!=a&&(b=xa[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.S||8,c=a-this.m%a,this.S&&(b=" ".slice(0,c)));this.L&&!this.m&&c&&(b=String.fromCharCode(this.L)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.m+=c}}else if(null!=
this.i){if(10==a||1024<=this.i.length)this.V(this.i),this.i="";10!=a&&(this.i+=String.fromCharCode(a))}kc(this.c,this.X,1E3/Math.round(this.ea/10));this.b&=-129};var xf="buffer",Af={},yf=(Af[65392]=[null,null,Y.prototype.Pd,Y.prototype.Ye,"RCSR"],Af[65394]=[null,null,Y.prototype.Od,Y.prototype.Xe,"RBUF"],Af[65396]=[null,null,Y.prototype.te,Y.prototype.Ef,"XCSR"],Af[65398]=[null,null,Y.prototype.se,Y.prototype.Df,"XBUF"],Af);
Na(function(){for(var a=G(document,F,"serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Y(d);E(d,c)}});function sc(a){A.call(this,"PC11",a);this.C=Bf(this,a.autoMount);this.b=0;this.I=+a.baudReceive||3600;this.m=this.o=this.a=0;this.i=[];this.h=Cf;this.f=Df;this.w=this.g="";this.N=this.Z=this.Y=null;this.G=-1;this.F=!Ia("Mobi")&&window&&"FileReader"in window;this.s=null;this.H=-1;this.v=null}n(sc,A);
function Bf(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=sc.prototype;
h.ca=function(a,b,c){var d=this,e=Df;switch(b){case "listTapes":return this.j[b]=c,c.onchange=function(){var a=d.j.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){y("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.j[b]=c,!0;case "readTape":e=Ef;case "loadTape":return e||(e=Ff),this.j[b]=c,c.onclick=
function(){var a=d.j.listTapes;a&&Gf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.F){c.parentNode.removeChild(c);break}this.j[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Gf(d,u(b,!0),b,Ff,a)}return!1};return!0;case Hf:return this.j[b]=c,!0}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;this.v=If(a);var e=this;if(a=Bf(this,Kc(this.A,"autoMount")))for(var f in a)"PTR"==f&&(this.C[f]=a[f]);this.s=lc(this.c,56,4,4096);this.H=ic(this.c,function(){1==(e.a&32769)&&!(e.a&128)&&e.m<e.i.length&&(e.o=e.i[e.m++]&255,Jf(e,e.m/e.i.length*100),e.a|=128,e.a&=-2049,e.a&64&&jc(e.c,e.s))});kb(b,this,Kf);mb(b,this.reset.bind(this));Lf(this,"None",Cf,!0);this.F&&Lf(this,"Local Tape",Mf);Lf(this,"Remote Tape",Nf);Of(this)||H(this)};
h.ha=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){this.a&=-2241;this.o=0};function Of(a){a.b=0;var b=a.C.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=u(c,!0)}c&&b?Pf(a,b,c,Ff,!0):Qf(a)}return!!a.b}
function Gf(a,b,c,d,e){if(c)if(c==Mf)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Nf){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"');a.h=Nf}else a.h=c;Pf(a,b,c,d,!1,e)}else Rf(a,!1)}function Pf(a,b,c,d,e,f){var g=-1;if(a.g.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,Rf(a,!0),a.l.Sa?a.B("PC11 busy"):(e&&a.b++,Sf(a,b,c,d,f)?g++:a.l.Sa=!0);g&&Tf(a,a.w,a.g,a.f,a.N,a.Z,a.Y)}
function Sf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Tf(a,b,c,d,e),a.h=Mf);Qf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=sa(c),f="json"==e||"gz"==e?encodeURI(c):Ba()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!v(f,null,!0,function(e,f,g){var k=0>g&&!!a.A&&!a.A.l.R;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Va(a.La,e,f),(e=Aa(e,f))&&Tf(a,b,c,d,e.N,e.Z,e.Y));
a.l.Sa=!1;a.b&&(a.b--,a.b||H(a));Qf(a)})}function Lf(a,b,c,d){if((a=a.j.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Qf(a){var b=a.j.listTapes;if(b&&b.options){a=a.h||a.g;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function Jf(a,b){b|=0;if(b!==a.G){var c=a.j[Hf];c&&(c=(c=G(c,Uf))&&c[0])&&c.style&&(c.style.width=b+"%");a.G=b}}function Tf(a,b,c,d,e,f,g){a.w=b;a.g=c;a.f=d;a.N=e;a.Z=f;a.Y=g;d==Ef?a.v&&vf(a.v,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.m=0,a.i=e,a.status('Loaded tape "'+b+'"'),Jf(a,0))}function Rf(a,b){if(a.g||!1===b)a.w="",a.g="",b||(a.f&&a.status(a.f==Ff?"tape detached":"tape unloaded"),a.h=Cf,a.f=Df,Qf(a))}h.save=function(){return(new K(this)).data()};
h.restore=function(){return!0};h.Id=function(){return this.a&65534};h.Re=function(a){a&1&&(this.a&32768?(a&=-2,this.a&64&&jc(this.c,this.s)):(this.a&=-129,this.a|=2048,this.o=0,kc(this.c,this.H,1E3/Math.round(this.I/10))));this.a=this.a&-66|a&65};h.Hd=function(){this.a&=-129;this.a|=2048;return this.o};h.Qe=function(){};
var Cf="",Mf="?",Nf="??",Df=0,Ff=1,Ef=2,Hf="readProgress",Uf="pcjs-progress-bar",Vf={},Kf=(Vf[65384]=[null,null,sc.prototype.Id,sc.prototype.Re,"PRS"],Vf[65386]=[null,null,sc.prototype.Hd,sc.prototype.Qe,"PRB"],Vf);
function Wf(a,b,c){A.call(this,"Disk",{id:a.La+".disk"+ra(++Xf,4)},0,8192);this.controller=a;this.A=a.A;this.D=a.D;this.h=b;this.na=b.name;this.ba=this.Ib="";this.Ab=b.Ab;this.J=this.O=this.M=this.U=this.mode=0;this.a=[];this.f=null;this.g=!1;Yf(this,c,b.J,b.O,b.M,b.U);this.b=this.i=null;H(this)}n(Wf,A);h=Wf.prototype;h.aa=function(a,b,c,d){this.D=d};
function Yf(a,b,c,d,e,f){a.mode=b;a.J=c;a.O=d;a.M=e;a.U=f;a.a=[];if("preload"!=a.mode){b=Array(a.J);for(c=0;c<b.length;c++){d=Array(a.O);for(e=0;e<d.length;e++){f=Array(a.M);for(var g=1;g<=f.length;g++)f[g-1]=Zf(null,c,e,g,a.U,0);d[e]=f}b[c]=d}a.a=b}a.f=null}
function $f(a,b,c,d,e){var f=c;if(a.b)return!0;a.na=b;a.ba=c;a.Ib=u(c);a.b=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=pa[d];if(e){a.J=e[0];a.O=e[1];a.M=e[2];a.U=e[3]||512;c=a.U>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.J);for(d=0;d<a.a.length;d++)for(var x=a.a[d]=Array(a.O),w=0;w<x.length;w++)for(var Z=x[w]=Array(a.M),Ea=0;Ea<Z.length;Ea++){for(var gc=Zf(null,d,w,Ea+1,a.U,0),Xg=gc.data,Ac=0;Ac<c;Ac++,f+=4)var Yg=Xg[Ac]=b.getInt32(f,
!0),e=e+Yg&-1;gc.ia=c;Z[Ea]=gc}a.f=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.h,c,a.na,a.ba),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=sa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ta(c,"/")&&(d="dir"),f=Ba()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ab?"":e)+"&format=json"));return!!v(f,
null,!0,function(b,c,d){ag(a,b,c,d)})}
function ag(a,b,c,d){var e=null,f=0>d&&!!a.A&&!a.A.l.R;a.g=!1;if(d)a.controller.B('Unable to load disk "'+a.na+'" (error '+d+": "+b+")",f);else{Va(a.controller.La,b,c);try{if(0<u(a.Ib,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.na]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)y(k[0]);else{a.J=k.length;a.O=k[0].length;a.M=k[0][0].length;var l=k[0][0][0];a.U=l&&l.length||512;for(d=c=0;d<a.J;d++)for(f=0;f<a.O;f++)for(g=0;g<a.M;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var x=l.bytes;if(void 0!==x&&x.length){for(var w=m<<2,Z=x.length;Z<w;Z++)x[Z]=p;bg(l,x)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}Zf(l,d,f);for(w=0;w<
t.length;w++)c=c+t[w]&-1}a.a=k;a.f=c;e=a}else y("Empty disk image: "+a.na)}catch(Ea){y("Disk image error ("+b+"): "+Ea.message)}}a.b&&(a.b.call(a.i,a.h,e,a.na,a.ba),a.b=null)}function Zf(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Fg=b;a.Gg=c;a.ra=a.ia=0;a.xa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.h,g=this.a[a];if(g){var k=g[b];if(!k&&f.Xc&&b<f.O)for(k=g[b]=Array(f.uc),g=0;g<k.length;g++)k[g]=Zf(null,a,b,g+1,f.Yb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Xc&&9==f.Wb&&(d=k[g]=Zf(null,a,b,f.Wb,f.Yb,0))}}e&&e(d,!1);return d};function bg(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.ia?f<a.ra?(a.ia+=a.ra-f,a.ra=f):f>=a.ra+a.ia&&(a.ia+=f-(a.ra+a.ia)+1):(a.ra=f,a.ia=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function cg(a,b){var c=a.O*a.M,d=b/c|0;return d<a.J?(b%=c,a.seek(d,b/a.M|0,b%a.M+1)):null}function dg(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function eg(a){for(var b="",c=0,d;d=cg(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(dg(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.ba,this.f,this.J,this.O,this.M,this.U];if(!this.g)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ia){for(var k=[],l=0,m=g.ra,p=g.ra+g.ia;m<p;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.ra,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?Yf(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.a.length||l>=this.a[k].length||m>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.ra=e;for(k.ia=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.B("Unable to restore disk '"+this.na+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=cg(this,a++);)fg(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function fg(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var Xf=0;function Q(a){A.call(this,"RK11",a,0,65536);this.o=gg(this,a.autoMount);this.m=0;this.f=Array(8);this.s=!Ia("Mobi")&&window&&"FileReader"in window;this.Ia=null;this.w=this.b=this.a=this.i=this.h=this.g=this.v=0}n(Q,A);
function gg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Q.prototype;
h.ca=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=r(c.value);null!=a&&hg(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&ig(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&r(b.value);null==b||0>b||b>=d.f.length||!(a=d.f[b])?d.B("Unable to boot the selected drive"):a.T?(Xc(d.c,0,!0),(a=d.sc(a,0,0,0,512,0,2))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.s){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.f&&((a=d.f[r(a.value)||0])?(a=a.T)?(a=La(eg(a),a.Ib.replace(".json",".img")),z(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.s)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;ig(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;if(a=gg(this,Kc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.o[e]=a[e]);jg(this);this.Ia=lc(this.c,144,5,65536);kb(b,this,kg);mb(b,this.reset.bind(this));lg(this,"None",mg,!0);this.s&&lg(this,"Local Disk",ng);lg(this,"Remote Disk",og);pg(this)||H(this)};
h.ha=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.m){for(a=0;a<this.f.length;a++)qg(this,a,!0);pg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";hg(this,0)}}return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){jg(this)};h.save=function(){return(new K(this)).data()};
h.restore=function(a){return jg(this,a[0])};function pg(a,b){b||(a.m=0);for(var c in a.o){var d=a.o[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.f.length)){!rg(a,g,f,e,!0)&&b&&H(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.m}
function ig(a,b,c,d){var e=a.j.listDrives,e=e&&r(e.value);if(void 0===e||0>e||e>=a.f.length)a.B("Unable to load the selected drive");else if(c)if(c==ng)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==og){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}rg(a,e,b,c,!1,d)}else qg(a,e)}
function rg(a,b,c,d,e,f){var g=-1,k=a.f[b];k.ba.toLowerCase()!=d.toLowerCase()&&(g++,qg(a,b,!0),k.Ua?a.B("RK11 busy"):(k.Ua=!0,e&&(k.Ta=!0,a.m++),k.ya=!!f,$f(new Wf(a,k,"preload"),c,d,f,a.Mc)&&g++));return g}h.Mc=function(a,b,c,d,e){a.Ua=!1;b&&(b.J>a.J||b.O>a.O)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Va)),b=null);b?(a.T=b,a.na=c,a.ba=d,this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Va),a.Ta||e),this.A&&Rc(this.A)):a.ya=!1;a.Ta&&(a.Ta=!1,--this.m||H(this));hg(this,a.Va)};
function lg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function hg(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=r(a.value),c=c.ya?ng:c.ba,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function qg(a,b,c){var d=a.f[b];if(d.T||!1===c)d.na="",d.ba="",d.T=null,d.ya=!1,c||(a.B("Drive RK"+b+" unloaded",c),hg(a,b))}
function jg(a,b){var c=0;b||(b=[]);a.w=b[c++]||2368;a.b=b[c++]||0;a.a=b[c++]||128;a.i=b[c++]||0;a.h=b[c++]||0;a.g=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.Va=b;d.name=c.Ka;d.Ua=d.ya=!1;d.J=203;d.O=2;d.M=12;d.U=512;d.Ab=!0;d.Yc=0;d.Wc=0;d.Wb=1;d.uc=d.M;d.Yb=d.U;d.ed=0;d.we=null;d.T||(d.ba="");d.status=2368}return!0}
h.sc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b))}var x,w;if(0>(x=a.read(p,t++))||0>(w=a.read(p,t++))){m=32;break}if(!k&&(Fb(this.u,gd(this.c,f),x|w<<8),hc(this.u))){m=1024;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Nc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){var x=Hb(this.u,gd(this.c,f));if(hc(this.u)){m=1024;break}if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1,!0);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b))}if(k){var w,Z;if(0>(w=a.read(p,t++))||0>(Z=a.read(p,t++))){m=32;break}if(x!=(w|Z<<8)){m=1;break}}else if(!a.write(p,t++,x&255)||!a.write(p,t++,x>>8)){m=32;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Lc=function(a,b,c,d,e,f){this.h=f&65535;this.a=this.a&-49|f>>12&48;this.i=65536-e&65535;this.g=this.g&-16|d&15;this.b|=a;sg(this);return!0};function sg(a){a.a&=-32769;a.b&&(a.b|=32768,a.a|=32768,a.b&32736&&(a.a|=16384))}h.Ud=function(){return this.w};h.cf=function(){};h.Vd=function(){return this.b};h.df=function(){};h.Rd=function(){return this.a&61438};
h.$e=function(a){this.a=this.a&-3968|a&3967;if(this.a&1){a=!0;var b,c,d=(this.g&57344)>>13,e=this.f[d],f,g,k,l,m,p;this.a&=-8321;this.b&=-4;switch(c=this.a&14){case 0:this.b=this.g=0;this.a=128;break;case 10:case 4:b=this.sc;case 6:case 2:b||(b=this.Nc);f=(this.g&8160)>>5;g=(this.g&16)>>4;k=this.g&15;l=65536-this.i&65535;m=(this.a&48)<<12|this.h;p=this.a&2048?0:2;if(f>=e.J){this.b|=64;break}if(k>=e.M){this.b|=32;break}a=b.call(this,e,f,g,k,l,m,p,6<=c,this.Lc.bind(this));break;case 8:f=(this.g&8160)>>
5;f<e.J?this.a|=8192:this.b|=64;break;case 12:this.b=this.g=0,this.a=8320}this.w=e.status|(e.T?128:0)|d<<13|this.g&15;lg(this);a&&(this.a&=-2,this.a|=128,this.a&64&&bc(this.c,this.Da))}};h.Wd=function(){return this.i};h.ef=function(a){this.i=a};h.Qd=function(){return this.h};h.Ze=function(a){this.h=a};h.Sd=function(){return this.g};h.af=function(a){this.g=a};h.Td=function(){return this.v};h.bf=function(a){this.v=a};
var fg="",gg="?",hg="??",mg={},dg=(mg[65280]=[null,null,P.prototype.Ud,P.prototype.cf,"RKDS"],mg[65282]=[null,null,P.prototype.Vd,P.prototype.df,"RKER"],mg[65284]=[null,null,P.prototype.Rd,P.prototype.$e,"RKCS"],mg[65286]=[null,null,P.prototype.Wd,P.prototype.ef,"RKWC"],mg[65288]=[null,null,P.prototype.Qd,P.prototype.Ze,"RKBA"],mg[65290]=[null,null,P.prototype.Sd,P.prototype.af,"RKDA"],mg[65294]=[null,null,P.prototype.Td,P.prototype.bf,"RKDB"],mg);
function O(a){A.call(this,"RL11",a,0,131072);this.u=ng(this,a.autoMount);this.o=0;this.b=Array(4);this.v=!Aa("Mobi")&&window&&"FileReader"in window;this.Da=null;this.a=this.m=this.f=this.g=this.i=this.h=0}n(O,A);function ng(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=O.prototype;
h.da=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=r(c.value);null!=a&&og(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&pg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&r(b.value);null==b||0>b||b>=d.b.length||!(a=d.b[b])?d.B("Unable to boot the selected drive"):a.T?(Qc(d.c,0,!0),(a=d.tc(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.v){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.b&&((a=d.b[r(a.value)||0])?(a=a.T)?(a=Ea(Yf(a),a.Ib.replace(".json",".img")),z(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.v)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;pg(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.aa=function(a,b,c,d){this.A=a;this.s=b;this.c=c;this.C=d;if(a=ng(this,Dc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.u[e]=a[e]);qg(this);this.Da=ec(this.c,112,5,131072);db(b,this,rg);fb(b,this.reset.bind(this));sg(this,"None",tg,!0);this.v&&sg(this,"Local Disk",ug);sg(this,"Remote Disk",vg);wg(this)||H(this)};
h.ba=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.i){for(a=0;a<this.b.length;a++)xg(this,a,!0);wg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";og(this,0)}}return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){qg(this)};h.save=function(){return(new R(this)).data()};
h.restore=function(a){return qg(this,a[0])};function wg(a,b){b||(a.o=0);for(var c in a.u){var d=a.u[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!yg(a,g,f,e,!0)&&b&&H(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function pg(a,b,c,d){var e=a.j.listDrives,e=e&&r(e.value);if(void 0===e||0>e||e>=a.b.length)a.B("Unable to load the selected drive");else if(c)if(c==ug)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==vg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}yg(a,e,b,c,!1,d)}else xg(a,e)}
function yg(a,b,c,d,e,f){var g=-1,k=a.b[b];k.ca.toLowerCase()!=d.toLowerCase()&&(g++,xg(a,b,!0),k.Ra?a.B("RL11 busy"):(k.Ra=!0,e&&(k.Qa=!0,a.o++),k.wa=!!f,Tf(new Pf(a,k,"preload"),c,d,f,a.Pc)&&g++));return g}h.Pc=function(a,b,c,d,e){a.Ra=!1;b&&(b.J>a.J||b.O>a.O)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Sa)),b=null);b?(a.T=b,a.ma=c,a.ca=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Sa),a.Qa||e),this.A&&Kc(this.A)):a.wa=!1;a.Qa&&(a.Qa=!1,--this.o||H(this));og(this,a.Sa)};
function sg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function og(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=r(a.value),c=c.wa?ug:c.ca,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function xg(a,b,c){var d=a.b[b];if(d.T||!1===c)d.ma="",d.ca="",d.T=null,d.wa=!1,c||(a.B("Drive RL"+b+" unloaded",c),og(a,b))}
function qg(a,b){var c=0;b||(b=[]);a.a=b[c++]||129;a.m=b[c++]||0;a.f=b[c++]||0;a.g=b[c++]||0;a.i=b[c++]||0;a.h=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.Sa=b;d.name=c.Ga;d.Ra=d.wa=!1;d.J=512;d.O=2;d.M=40;d.U=256;d.yb=!0;d.Yc=0;d.Wc=0;d.Wb=1;d.uc=d.M;d.Yb=d.U;d.ed=0;d.we=null;d.T||(d.ca="");d.status=29}return!0}
h.tc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}yb(this.s,$c(this.c,f),p|t<<8);if($b(this.s)){k=8192;break}f+=2;e--;if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Qc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){var p=Ab(this.s,$c(this.c,f));if($b(this.s)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
5;f<e.J?this.a|=8192:this.b|=64;break;case 12:this.b=this.g=0,this.a=8320}this.w=e.status|(e.T?128:0)|d<<13|this.g&15;sg(this);a&&(this.a&=-2,this.a|=128,this.a&64&&jc(this.c,this.Ia))}};h.Wd=function(){return this.i};h.ef=function(a){this.i=a};h.Qd=function(){return this.h};h.Ze=function(a){this.h=a};h.Sd=function(){return this.g};h.af=function(a){this.g=a};h.Td=function(){return this.v};h.bf=function(a){this.v=a};
var mg="",ng="?",og="??",tg={},kg=(tg[65280]=[null,null,Q.prototype.Ud,Q.prototype.cf,"RKDS"],tg[65282]=[null,null,Q.prototype.Vd,Q.prototype.df,"RKER"],tg[65284]=[null,null,Q.prototype.Rd,Q.prototype.$e,"RKCS"],tg[65286]=[null,null,Q.prototype.Wd,Q.prototype.ef,"RKWC"],tg[65288]=[null,null,Q.prototype.Qd,Q.prototype.Ze,"RKBA"],tg[65290]=[null,null,Q.prototype.Sd,Q.prototype.af,"RKDA"],tg[65294]=[null,null,Q.prototype.Td,Q.prototype.bf,"RKDB"],tg);
function P(a){A.call(this,"RL11",a,0,131072);this.s=ug(this,a.autoMount);this.o=0;this.b=Array(4);this.v=!Ia("Mobi")&&window&&"FileReader"in window;this.Ia=null;this.a=this.m=this.f=this.g=this.i=this.h=0}n(P,A);function ug(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){y(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=P.prototype;
h.ca=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){y("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=r(c.value);null!=a&&vg(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&wg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&r(b.value);null==b||0>b||b>=d.b.length||!(a=d.b[b])?d.B("Unable to boot the selected drive"):a.T?(Xc(d.c,0,!0),(a=d.tc(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.v){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.b&&((a=d.b[r(a.value)||0])?(a=a.T)?(a=La(eg(a),a.Ib.replace(".json",".img")),z(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.v)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;wg(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;if(a=ug(this,Kc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.s[e]=a[e]);xg(this);this.Ia=lc(this.c,112,5,131072);kb(b,this,yg);mb(b,this.reset.bind(this));zg(this,"None",Ag,!0);this.v&&zg(this,"Local Disk",Bg);zg(this,"Remote Disk",Cg);Dg(this)||H(this)};
h.ha=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.m){for(a=0;a<this.b.length;a++)Eg(this,a,!0);Dg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";vg(this,0)}}return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){return(new K(this)).data()};
h.restore=function(a){return xg(this,a[0])};function Dg(a,b){b||(a.o=0);for(var c in a.s){var d=a.s[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!Fg(a,g,f,e,!0)&&b&&H(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function wg(a,b,c,d){var e=a.j.listDrives,e=e&&r(e.value);if(void 0===e||0>e||e>=a.b.length)a.B("Unable to load the selected drive");else if(c)if(c==Bg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Cg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}Fg(a,e,b,c,!1,d)}else Eg(a,e)}
function Fg(a,b,c,d,e,f){var g=-1,k=a.b[b];k.ba.toLowerCase()!=d.toLowerCase()&&(g++,Eg(a,b,!0),k.Ua?a.B("RL11 busy"):(k.Ua=!0,e&&(k.Ta=!0,a.o++),k.ya=!!f,$f(new Wf(a,k,"preload"),c,d,f,a.Pc)&&g++));return g}h.Pc=function(a,b,c,d,e){a.Ua=!1;b&&(b.J>a.J||b.O>a.O)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Va)),b=null);b?(a.T=b,a.na=c,a.ba=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Va),a.Ta||e),this.A&&Rc(this.A)):a.ya=!1;a.Ta&&(a.Ta=!1,--this.o||H(this));vg(this,a.Va)};
function zg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function vg(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=r(a.value),c=c.ya?Bg:c.ba,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Eg(a,b,c){var d=a.b[b];if(d.T||!1===c)d.na="",d.ba="",d.T=null,d.ya=!1,c||(a.B("Drive RL"+b+" unloaded",c),vg(a,b))}
function xg(a,b){var c=0;b||(b=[]);a.a=b[c++]||129;a.m=b[c++]||0;a.f=b[c++]||0;a.g=b[c++]||0;a.i=b[c++]||0;a.h=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.Va=b;d.name=c.Ka;d.Ua=d.ya=!1;d.J=512;d.O=2;d.M=40;d.U=256;d.Ab=!0;d.Yc=0;d.Wc=0;d.Wb=1;d.uc=d.M;d.Yb=d.U;d.ed=0;d.we=null;d.T||(d.ba="");d.status=29}return!0}
h.tc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}Fb(this.u,gd(this.c,f),p|t<<8);if(hc(this.u)){k=8192;break}f+=2;e--;if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Qc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){var p=Hb(this.u,gd(this.c,f));if(hc(this.u)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Oc=function(a,b,c,d,e,f){this.m=f&65535;this.a=this.a&-49|f>>12&48;this.h=f>>16&63;this.g=this.f=b<<7|(c?64:0)|d&63;this.i=65536-e&65535;a&&(this.a=this.a|a|32768);return!0};h.Zd=function(){return this.a&65535};
h.hf=function(a){this.a=this.a&-1023|a&1022;this.h=this.h&60|(a&48)>>4;if(!(this.a&128)){a=!0;var b,c=this.b[(this.a&768)>>8],d=c.T,e,f,g;this.a&=-2;switch(this.a&14){case 4:this.i&8&&(this.a&=63);this.i=c.status|this.g&64|(d&&512==d.J?128:0);break;case 6:1==(this.f&3)&&(b=this.f&65408,c=(this.f&16)<<2,this.g=this.f&4?this.g+b:this.g-b,this.f=this.g=this.g&65408|c);break;case 8:this.i=this.g;break;case 12:b=this.tc;case 10:b||(b=this.Qc),e=this.f>>7,f=this.f&64?1:0,g=this.f&63,!d||e>=d.J||g>=d.M?
this.a|=37888:(a=65536-this.i&65535,d=(this.h&63)<<16|this.m,a=b.call(this,c,e,f,g,a,d,this.Oc.bind(this)))}a&&(this.a|=129,this.a&64&&bc(this.c,this.Da))}};h.Xd=function(){return this.m};h.ff=function(a){this.m=a&65534};h.$d=function(){return this.f};h.jf=function(a){this.f=a};h.ae=function(){return this.i};h.kf=function(a){this.i=a};h.Yd=function(){return this.h};h.gf=function(a){this.h=a&63;this.a=this.a&-49|(this.h&3)<<4};
var tg="",ug="?",vg="??",zg={},rg=(zg[63744]=[null,null,O.prototype.Zd,O.prototype.hf,"RLCS"],zg[63746]=[null,null,O.prototype.Xd,O.prototype.ff,"RLBA"],zg[63748]=[null,null,O.prototype.$d,O.prototype.jf,"RLDA"],zg[63750]=[null,null,O.prototype.ae,O.prototype.kf,"RLMP"],zg[63752]=[null,null,O.prototype.Yd,O.prototype.gf,"RLBE"],zg);
function Ag(a,b,c){A.call(this,"Computer",a,0,33554432);this.l.R=!1;this.F=null;Bg(this,b);this.w=Dc(this,"autoPower",a,6);this.g=0;this.K=+a.busWidth||+a.buswidth;this.a=Cg;this.u=null;this.H=this.i=this.D=this.m=this.I=!1;this.h=null;this.L=Dc(this,"url")||"";(Math.random()+.1).toString(36);this.b=Dg(this);if(this.c=Ra("CPU",this.id)){this.C=Ra("Debugger",this.id);this.s=new Fb({id:this.Ha+".bus",busWidth:this.K},this.c,this.C);var d,e=C(this.id);if((this.f=Ra("Panel",this.id))&&this.f.ab)for(b=
0;b<e.length;b++)d=e[b],d.B=this.f.B,d.V=this.f.V,d.ab=this.f.ab;this.V(Wa+" v1.32.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.V("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.aa&&d.aa(this,this.s,this.c,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Dc(this,"state")||(f=!0,a.state))b=
this.G=a,f||(this.m=!0,this.a=Cg),this.a&&(this.v=new R(this,"1.32.0"),Eg(this.v)?b=null:delete this.v);!b&&this.a&&(b=Fg(this))&&(this.m=!0);if(b){var g=this;v(b,null,!0,function(a,b,c){c?(g.o=null,g.m=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.u=b,g.I=!0);H(g)})}else H(this);this.j.power||(this.w=!0);!c&&this.w&&Gg(this,this.sb)}else y("Unable to find CPU component")}n(Ag,A);
function Bg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){y(d.message+" ("+c+")")}}a.F=b}function Dc(a,b,c,d){var e=b.toLowerCase(),e=Ba(b)||Ba(e);void 0===e&&a.F&&(e=a.F[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);if("string"==typeof e&&d)switch(d){case 4:e=+e;break;case 6:e="true"==e}return e}
function Gg(a,b,c){for(var d=C(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ta(f)){Ta(f,function(){Gg(a,b,c)});return}}b.call(a,c)}function Hg(a,b){var c=new R(a,"1.32.0",Ig);if(Eg(c)&&Jg(c)){var d=c.get(Kg),e=b?b.get(Kg):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Ag.prototype;
h.sb=function(a){void 0===a&&(a=this.a||(this.u?Lg:Cg));if(!this.g){this.g++;var b=!1,c=!1;this.D=!1;var d=this.v||new R(this,"1.32.0");if(a==Mg)b=!0;else if(a>Cg){if(Eg(d,this.u)){this.h=new R(this,"1.32.0",Ng);Eg(this.h)&&(Og(this,d),a=Pg,Sg(this.h));this.h.set(Kg,sa());Tg(this.h);var e=this.a&&!this.m;if(a==Lg||va("Click OK to restore the previous "+Wa+" machine state, or CANCEL to reset the machine.")){if(c=Jg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Eg(d,g):("error"==f&&"no machine state"!=
g?(this.B("Error: "+g),"unable to verify user"==g&&(za(Ug,""),this.b=null)):this.V(f+": "+g),Sg(d),Eg(d)?(c=Jg(d),e=!0):c=!1))}e&&Hg(this,c?d:null)}else a==Pg&&d.clear()}else Hg(this);delete this.u;delete this.v}e=C(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=Vg(this,g,d,b,c));b=[d,a,c];a!=Mg?Gg(this,this.vc,b):this.vc(b)}};
function Vg(a,b,c,d,e){if(!b.l.R){b.l.R=!0;if(b.ba){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ba(f,d)&&f&&(y("Unable to restore state for "+b.type),a.G&&!a.I?(c.clear(),a.a=Cg,window&&window.location.reload()):a.D=!0,b.ba(null),e=!1)}if(!d&&b.mc)for(a=b.mc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.vc=function(a){var b=a[0],c=0>a[1];a=a[2];this.H=!0;this.l.R=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.c&&(Vg(this,this.c,b,c,a),vb(this),this.c.la());this.D&&(Og(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.g=0};
function Og(a,b){if(va("There may be a problem with your "+Wa+" machine.\n\nTo help us diagnose it, click OK to send this "+Wa+" machine state to http://www.pcjs.org.")){var c=a.L;a=a.b||"";b=b.toString();var d={};d.app=Wa;d.ver="1.32.0";d.url=c;d.user=a;d.type="bug";d.data=b;v("http://www.pcjs.org/api/v1/report",d,!0)}}
function Wg(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new R(a,"1.32.0"),g=new R(a,"1.32.0",Ig),k=sa();g.set(Kg,k);f.set(Kg,k);f.set(Xg,"1.32.0");f.set(Yg,window?window.location.href:null);f.set(Zg,window?window.navigator.userAgent:"");a.c&&a.c.ia&&(c&&I(a.c),d=a.c.ia(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.l.R=!1,!1===d&&(e=null)));for(var k=C(a.id),l=0;l<k.length;l++){var m=k[l];m.l.R&&(m.ia&&(d=m.ia(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.l.R=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.b&&$g(a,a.b,f.toString()),Tg(g)&&Tg(f)||(e=null,d=k=!0)):a.a&&(d=!0,k=a.a==ah),d&&f.clear(k)):e=f.toString());c&&(a.l.R=!1,b=a.j.power)&&(b.textContent="Power");a.g=0;return e}h.reset=function(){this.s&&this.s.reset&&this.s.reset();this.c&&this.c.reset&&this.c.reset();for(var a=C(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.c&&c.reset&&c.reset()}vb(this,-1)};
h.start=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}vb(this,-1)};h.stop=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}vb(this,-1)};
function vb(a,b){if(a.c){var c=a.c,d=b||0,e=c.j.speed;e&&(0>=d||30<=(c.ec+=d))&&(e.textContent=c.l.P?c.Ia.toFixed(2)+"Mhz":"Stopped",c.ec=0)}if(a.f&&(a=a.f,b=b||0,a.m)){c=a.c.l.P;d=!!(a.c.g&8);if(0>=b||60<=(a.i+=b)){for(e=0;e<a.c.b.length;e++)lb(a,"R"+e,a.c.b[e]);e=jc(a.c);lb(a,"PS",e);lb(a,"NF",e&8?1:0,1);lb(a,"ZF",e&4?1:0,1);lb(a,"VF",e&2?1:0,1);lb(a,"CF",e&1?1:0,1);a.i=0}Bb(a,0<b&&c&&!d?a.c.Fa:a.ja);xb(a,a.h);b=a.c;b=b.Ja?b.oa&16?1:2:4;Db(a,"B22",b&1);Db(a,"B18",b&2);Db(a,"B16",b&4)}}
h.da=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.g||(d.l.R?Wg(d,!1,!0):Gg(d,d.sb))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.l.R&&!d.g)if(d.a&&!d.o){var a=va("Click OK to save changes to this "+Wa+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Wg(d,a,!0);!a&&d.G?window&&window.location.reload():(a||(d.i=!0),d.sb(Cg),d.i=!1)}else d.reset(),d.c&&d.c.la()},!0;case "save":if(ma(ua(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.j[b]=c,c.onclick=function(){var a=Dg(d,!0);if(a){var b=!!(d.a&&!d.o||d.G),c=Wg(d,b);b?$g(d,a,c):d.B("Resume disabled, machine state not saved")}},!0}return!1};
function Dg(a,b){var c=a.b;c||((c=ya(Ug),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=bh(a,c))||a.B("The user ID is invalid.")):b&&a.B("Browser local storage is not available"));return c}
function bh(a,b){a.b=null;b=v(ua()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za(Ug,b.data),a.b=b.data)}catch(d){y(d.message+" ("+c+")")}return a.b}function Fg(a){var b=null;a.b&&(b=ua()+"/api/v1/user?req=load&user="+a.b+"&state="+ch(a,"1.32.0"));return b}
function $g(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ch(a,"1.32.0");d.data=c;b=v(ua()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.B(c),za(Ug,""),a.b=null)}}
function Bf(a){var b;a=C(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function Kc(a){if(a.ab){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ab.focus();window&&window.scrollTo(b,c)}}var Ng="failsafe",Ig="validate",Kg="timestamp",Xg="version",Yg="url",Zg="browser",Ug="user",Mg=-1,Cg=0,Lg=1,Pg=2,ah=3;
Ga(function(){for(var a=G(document,F+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=G(c,F,"computer"),e=0;e<c.length;e++){var f=c[e],g=D(f),g=new Ag(g,d,!0);E(g,f);g.w&&Gg(g,g.sb)}});Ha.show.push(function(){for(var a=G(document,F,"computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Ra("Computer",c.id))&&c.H&&!c.l.R&&c.sb(Mg)}});Ha.exit.push(function(){for(var a=G(document,F,"computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Ra("Computer",c.id))&&c.l.R&&Wg(c,!(!c.a||c.o),!0)}});
function R(a,b,c){this.id=a.id;this.a="";this.c={};this.b=this.j=!1;this.key=ch(a,b,c);Sg(this,a.Rc)}h=R.prototype;h.set=function(a,b){try{this.c[a]=b}catch(c){}};h.get=function(a){return this.c[a]||null};h.data=function(){return this.c};function Eg(a,b){return b?(a.a=b,a.b=!0,a.j=!1,!0):a.b?!0:wa()&&(b=ya(a.key))?(a.a=b,a.b=!0):!1}function Jg(a){var b=!0;if(!a.j)try{a.c=JSON.parse(a.a),a.j=!0}catch(c){y(c.message||c),b=!1}return b}
function Tg(a){var b=!0;if(wa()){var c=JSON.stringify(a.c);za(a.key,c)||(y("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.c?JSON.stringify(this.c):this.a};function Sg(a,b){a.a="";a.c={};a.b=a.j=!1;b&&a.set("parms",b)}
h.clear=function(a){Sg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function ch(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}var dh=0;
function eh(a,b,c,d,e,f){e("Loading "+a+"...");v(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):fh(k,a,b,c,d,e,f)})}
function fh(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Oa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?gh(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function gh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");v(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);gh(a,b,c)}})}else c(a,null)}
function hh(a,b,c,d){function e(a){if(void 0===k){var b=g&&G(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);l&&(--dh||Ka(!0));l=!1}var g,k,l=!0;dh++;Pa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
(c="/versions/pdpjs/1.32.0/components.xsl");m=function(d,k){k?eh(c,null,null,!1,e,function(d,l){l?(Oa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--dh||Ka(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--dh||Ka(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?eh(b,a,d,!0,e,m):fh(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return l}window.embedPDP11=function(a,b,c,d){Ka(!1);return hh(a,b,c,d)};window.enableEvents=Ka;window.sendEvent=Ma;})();//# sourceMappingURL=/tmp/pdpjs/1.32.0/pdp11.map
this.a|=37888:(a=65536-this.i&65535,d=(this.h&63)<<16|this.m,a=b.call(this,c,e,f,g,a,d,this.Oc.bind(this)))}a&&(this.a|=129,this.a&64&&jc(this.c,this.Ia))}};h.Xd=function(){return this.m};h.ff=function(a){this.m=a&65534};h.$d=function(){return this.f};h.jf=function(a){this.f=a};h.ae=function(){return this.i};h.kf=function(a){this.i=a};h.Yd=function(){return this.h};h.gf=function(a){this.h=a&63;this.a=this.a&-49|(this.h&3)<<4};
var Ag="",Bg="?",Cg="??",Gg={},yg=(Gg[63744]=[null,null,P.prototype.Zd,P.prototype.hf,"RLCS"],Gg[63746]=[null,null,P.prototype.Xd,P.prototype.ff,"RLBA"],Gg[63748]=[null,null,P.prototype.$d,P.prototype.jf,"RLDA"],Gg[63750]=[null,null,P.prototype.ae,P.prototype.kf,"RLMP"],Gg[63752]=[null,null,P.prototype.Yd,P.prototype.gf,"RLBE"],Gg);
function Hg(a,b,c){A.call(this,"Computer",a,0,33554432);this.l.R=!1;this.G=null;Ig(this,b);this.C=Kc(this,"autoPower",a,6);this.g=0;this.K=+a.busWidth||+a.buswidth;this.v=this.s=this.w=null;this.o=this.I=!1;this.i=this.h=null;this.H=this.m=this.F=!1;this.L=Kc(this,"url")||"";(Math.random()+.1).toString(36);this.b=Jg(this);if(this.c=Ya("CPU",this.id)){this.D=Ya("Debugger",this.id);this.u=new Mb({id:this.La+".bus",busWidth:this.K},this.c,this.D);var d,e=C(this.id);if((this.f=Ya("Panel",this.id))&&this.f.ab)for(b=
0;b<e.length;b++)d=e[b],d.B=this.f.B,d.V=this.f.V,d.ab=this.f.ab;this.V(cb+" v1.32.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.V("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.aa&&d.aa(this,this.u,this.c,this.D);this.a=Kc(this,"resume",a,4,Kg);var f;b=null;if(a=Kc(this,"state")||(f=!0,a.state))this.w=b=a,f||(this.o=!0,this.a=Kg),this.a&&
(this.i=new K(this,"1.32.0"),Lg(this.i)?b=null:delete this.i);!b&&this.a&&(b=Mg(this))&&(this.o=!0);if(b){var g=this;v(b,null,!0,function(a,b,c){c?(g.s=null,g.o=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+wa(b):"")+")")):(g.v=b,g.I=!0);H(g)})}else H(this);this.j.power||(this.C=!0);!c&&this.C&&Ng(this,this.ub)}else y("Unable to find CPU component")}n(Hg,A);
function Ig(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){y(d.message+" ("+c+")")}}a.G=b}function Kc(a,b,c,d,e){var f=b.toLowerCase(),f=Ja(b)||Ja(f);void 0===f&&a.G&&(f=a.G[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Ng(a,b,c){for(var d=C(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!$a(f)){$a(f,function(){Ng(a,b,c)});return}}b.call(a,c)}function Og(a,b){var c=new K(a,"1.32.0",Pg);if(Lg(c)&&Qg(c)){var d=c.get(Rg),e=b?b.get(Rg):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Hg.prototype;
h.ub=function(a){void 0===a&&(a=this.a||(this.v?Sg:Kg));if(!this.g){this.g++;var b=!1,c=!1;this.F=!1;var d=this.i||new K(this,"1.32.0");if(a==Tg)b=!0;else if(a>Kg){if(Lg(d,this.v)){this.h=new K(this,"1.32.0",Ug);Lg(this.h)&&(Vg(this,d),a=Wg,Zg(this.h));this.h.set(Rg,za());$g(this.h);var e=this.a&&!this.o;if(a==Sg||Ca("Click OK to restore the previous "+cb+" machine state, or CANCEL to reset the machine.")){if(c=Qg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lg(d,g):("error"==f&&"no machine state"!=
g?(this.B("Error: "+g),"unable to verify user"==g&&(Ha(ah,""),this.b=null)):this.V(f+": "+g),Zg(d),Lg(d)?(c=Qg(d),e=!0):c=!1))}e&&Og(this,c?d:null)}else a==Wg&&d.clear()}else Og(this);delete this.v;delete this.i}e=C(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=bh(this,g,d,b,c));b=[d,a,c];a!=Tg?Ng(this,this.vc,b):this.vc(b)}};
function bh(a,b,c,d,e){if(!b.l.R){b.l.R=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ha(f,d)&&f&&(y("Unable to restore state for "+b.type),a.w&&!a.I?(c.clear(),a.a=Kg,window&&window.location.reload()):a.F=!0,b.ha(null),e=!1),!d&&b.mc){var g=b.mc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){y("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.vc=function(a){var b=a[0],c=0>a[1];a=a[2];this.H=!0;this.l.R=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.c&&(bh(this,this.c,b,c,a),Cb(this),this.c.ma());this.F&&(Vg(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.g=0};
function Vg(a,b){if(Ca("There may be a problem with your "+cb+" machine.\n\nTo help us diagnose it, click OK to send this "+cb+" machine state to http://www.pcjs.org.")){var c=a.L;a=a.b||"";b=b.toString();var d={};d.app=cb;d.ver="1.32.0";d.url=c;d.user=a;d.type="bug";d.data=b;v("http://www.pcjs.org/api/v1/report",d,!0)}}
function ch(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.32.0"),g=new K(a,"1.32.0",Pg),k=za();g.set(Rg,k);f.set(Rg,k);f.set(dh,"1.32.0");f.set(eh,window?window.location.href:null);f.set(fh,window?window.navigator.userAgent:"");a.c&&a.c.ga&&(c&&I(a.c),d=a.c.ga(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.l.R=!1,!1===d&&(e=null)));for(var k=C(a.id),l=0;l<k.length;l++){var m=k[l];m.l.R&&(m.ga&&(d=m.ga(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.l.R=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.b&&gh(a,a.b,f.toString()),$g(g)&&$g(f)||(e=null,d=k=!0)):a.a&&(d=!0,k=a.a==hh),d&&f.clear(k)):e=f.toString());c&&(a.l.R=!1,b=a.j.power)&&(b.textContent="Power");a.g=0;return e}h.reset=function(){this.u&&this.u.reset&&this.u.reset();this.c&&this.c.reset&&this.c.reset();for(var a=C(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c!==this.c&&c.reset&&c.reset()}Cb(this,-1)};
h.start=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Cb(this,-1)};h.stop=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Cb(this,-1)};
function Cb(a,b){if(a.c){var c=a.c,d=b||0,e=c.j.speed;e&&(0>=d||30<=(c.ec+=d))&&(e.textContent=c.l.P?c.Ma.toFixed(2)+"Mhz":"Stopped",c.ec=0)}if(a.f&&(a=a.f,b=b||0,a.m)){c=a.c.l.P;d=!!(a.c.g&8);if(0>=b||60<=(a.i+=b)){for(e=0;e<a.c.b.length;e++)sb(a,"R"+e,a.c.b[e]);e=qc(a.c);sb(a,"PS",e);sb(a,"NF",e&8?1:0,1);sb(a,"ZF",e&4?1:0,1);sb(a,"VF",e&2?1:0,1);sb(a,"CF",e&1?1:0,1);a.i=0}Ib(a,0<b&&c&&!d?a.c.za:a.ja);Eb(a,a.h);b=a.c;b=b.Aa?b.la&16?1:2:4;Kb(a,"B22",b&1);Kb(a,"B18",b&2);Kb(a,"B16",b&4)}}
h.ca=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.g||(d.l.R?ch(d,!1,!0):Ng(d,d.ub))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.l.R&&!d.g)if(d.a&&!d.s){var a=Ca("Click OK to save changes to this "+cb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ch(d,a,!0);!a&&d.w?window&&window.location.reload():(a||(d.m=!0),d.ub(Kg),d.m=!1)}else d.reset(),d.c&&d.c.ma()},!0;case "save":if(ta(Ba(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.j[b]=c,c.onclick=function(){var a=Jg(d,!0);if(a){var b=!!(d.a&&!d.s||d.w),c=ch(d,b);b?gh(d,a,c):d.B("Resume disabled, machine state not saved")}},!0}return!1};
function Jg(a,b){var c=a.b;c||((c=Ga(ah),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ih(a,c))||a.B("The user ID is invalid.")):b&&a.B("Browser local storage is not available"));return c}
function ih(a,b){a.b=null;b=v(Ba()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ha(ah,b.data),a.b=b.data)}catch(d){y(d.message+" ("+c+")")}return a.b}function Mg(a){var b=null;a.b&&(b=Ba()+"/api/v1/user?req=load&user="+a.b+"&state="+jh(a,"1.32.0"));return b}
function gh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=jh(a,"1.32.0");d.data=c;b=v(Ba()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.B(c),Ha(ah,""),a.b=null)}}
function If(a){var b;a=C(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function Rc(a){if(a.ab){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ab.focus();window&&window.scrollTo(b,c)}}var Ug="failsafe",Pg="validate",Rg="timestamp",dh="version",eh="url",fh="browser",ah="user",Tg=-1,Kg=0,Sg=1,Wg=2,hh=3;
Na(function(){for(var a=G(document,F+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=G(c,F,"computer"),e=0;e<c.length;e++){var f=c[e],g=D(f),g=new Hg(g,d,!0);E(g,f);g.C&&Ng(g,g.ub)}});Oa.show.push(function(){for(var a=G(document,F,"computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Ya("Computer",c.id))&&c.H&&!c.l.R&&c.ub(Tg)}});Oa.exit.push(function(){for(var a=G(document,F,"computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Ya("Computer",c.id))&&c.l.R&&ch(c,!(!c.a||c.s),!0)}});
function K(a,b,c){this.id=a.id;this.a="";this.c={};this.b=this.j=!1;this.key=jh(a,b,c);Zg(this,a.Rc)}h=K.prototype;h.set=function(a,b){try{this.c[a]=b}catch(c){}};h.get=function(a){return this.c[a]||null};h.data=function(){return this.c};function Lg(a,b){return b?(a.a=b,a.b=!0,a.j=!1,!0):a.b?!0:Da()&&(b=Ga(a.key))?(a.a=b,a.b=!0):!1}function Qg(a){var b=!0;if(!a.j)try{a.c=JSON.parse(a.a),a.j=!0}catch(c){y(c.message||c),b=!1}return b}
function $g(a){var b=!0;if(Da()){var c=JSON.stringify(a.c);Ha(a.key,c)||(y("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.c?JSON.stringify(this.c):this.a};function Zg(a,b){a.a="";a.c={};a.b=a.j=!1;b&&a.set("parms",b)}
h.clear=function(a){Zg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function jh(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}var kh=0;
function lh(a,b,c,d,e,f){e("Loading "+a+"...");v(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):mh(k,a,b,c,d,e,f)})}
function mh(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Va(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?nh(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function nh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");v(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);nh(a,b,c)}})}else c(a,null)}
function oh(a,b,c,d){function e(a){if(void 0===k){var b=g&&G(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ua(a))}function f(a){e("Error: "+a);l&&(--kh||Ra(!0));l=!1}var g,k,l=!0;kh++;Wa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
(c="/versions/pdpjs/1.32.0/components.xsl");m=function(d,k){k?lh(c,null,null,!1,e,function(d,l){l?(Va(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--kh||Ra(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--kh||Ra(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?lh(b,a,d,!0,e,m):mh(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return l}window.embedPDP11=function(a,b,c,d){Ra(!1);return oh(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Ta;})();//# sourceMappingURL=/tmp/pdpjs/1.32.0/pdp11.map