New PDP11 Device component can now register read/write handlers for selected I/O addresses

This commit is contained in:
Jeff Parsons 2016-09-20 14:53:09 -07:00 committed by Jeff Parsons
commit 1c9ea6445b
12 changed files with 666 additions and 376 deletions

View file

@ -7,6 +7,7 @@
<ram id="ram" addr="0x0000" size="0xC000"/> <ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" size="0x0570" file="/devices/pdp11/rom/custom/bootcode.json"/> <rom id="rom" addr="0xC000" size="0x0570" file="/devices/pdp11/rom/custom/bootcode.json"/>
<ram id="ram" addr="0x10000" size="0x34000"/> <ram id="ram" addr="0x10000" size="0x34000"/>
<device id="unibus" name="unibus"/>
<panel ref="/devices/pdp11/panel/1170/wide.xml"/> <panel ref="/devices/pdp11/panel/1170/wide.xml"/>
<debugger id="debugger" base="8"/> <debugger id="debugger" base="8"/>
</machine> </machine>

View file

@ -702,6 +702,27 @@
</xsl:call-template> </xsl:call-template>
</xsl:template> </xsl:template>
<xsl:template match="device[@ref]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($componentFile)/device"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
</xsl:template>
<xsl:template match="device[not(@ref)]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="name">
<xsl:choose>
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="component">
<xsl:with-param name="machine" select="$machine"/>
<xsl:with-param name="class">device</xsl:with-param>
<xsl:with-param name="parms">,name:'<xsl:value-of select="$name"/>'</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="keyboard[@ref]"> <xsl:template match="keyboard[@ref]">
<xsl:param name="machine" select="''"/> <xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable> <xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>

View file

@ -57,11 +57,6 @@ if (NODE) {
* addMemory(). If the component needs something more than simple read/write storage, * addMemory(). If the component needs something more than simple read/write storage,
* it must provide a custom controller. * it must provide a custom controller.
* *
* All port (I/O) operations are defined by external handlers; they register with us,
* and we manage those registrations and provide support for I/O breakpoints, but the
* only default I/O behavior we provide is ignoring writes to any unregistered output
* ports and returning 0xff from any unregistered input ports.
*
* @constructor * @constructor
* @extends Component * @extends Component
* @param {Object} parmsBus * @param {Object} parmsBus
@ -130,37 +125,26 @@ function BusPDP11(parmsBus, cpu, dbg)
this.assert(this.nBlockMask <= BusPDP11.BlockInfo.num.mask); this.assert(this.nBlockMask <= BusPDP11.BlockInfo.num.mask);
/* /*
* Lists of I/O notification functions: aPortInputNotify and aPortOutputNotify are arrays, indexed by * Lists of I/O notification functions: aIONotify are arrays, indexed by address, where each entry
* port, of sub-arrays which contain: * contains an array:
* *
* [0]: registered function to call for every I/O access * [0]: registered function to call for read
* [1]: registered function to call for write
* *
* The registered function is called with the port address, and if the access was triggered by the CPU, * The registered function is called with the address, and if the access was triggered by the CPU,
* the instruction pointer (IP) at the point of access. * the program counter (PC) at the point of access.
* *
* WARNING: Unlike the (old) read and write memory notification functions, these support only one * UPDATE: The Debugger now piggy-backs on these arrays to indicate addresses for which it wants
* pair of input/output functions per port. A more sophisticated architecture could support a list * notification. In those cases, the registered component/function elements may or may not be set,
* of chained functions across multiple components, but I doubt that will be necessary here. * but the following additional element will be set:
* *
* UPDATE: The Debugger now piggy-backs on these arrays to indicate ports for which it wants notification * [2]: true to break on I/O, false to ignore I/O
* of I/O. In those cases, the registered component/function elements may or may not be set, but the
* following additional element will be set:
* *
* [1]: true to break on I/O, false to ignore I/O * The false case is important if fIOBreakAll is set, because it allows the Debugger to selectively
* * ignore specific addresses.
* The false case is important if fPortInputBreakAll and/or fPortOutputBreakAll is set, because it allows the
* Debugger to selectively ignore specific ports.
*/ */
this.aPortInputNotify = []; this.aIONotify = [];
this.aPortOutputNotify = []; this.fIOBreakAll = false;
this.fPortInputBreakAll = this.fPortOutputBreakAll = false;
/*
* By default, all I/O ports are 1 byte wide; ports that are wider must add themselves to one or both of
* these lists, using addPortInputWidth() and/or addPortOutputWidth().
*/
this.aPortInputWidth = [];
this.aPortOutputWidth = [];
/* /*
* Allocate empty Memory blocks to span the entire physical address space. * Allocate empty Memory blocks to span the entire physical address space.
@ -172,19 +156,20 @@ function BusPDP11(parmsBus, cpu, dbg)
Component.subclass(BusPDP11); Component.subclass(BusPDP11);
BusPDP11.IOBASE_VIRT = 0xE000; /*000160000*/ BusPDP11.IOPAGE_VIRT = 0xE000; /*000160000*/
BusPDP11.IOBASE_18BIT = 0x3E000; /*000760000*/ BusPDP11.IOPAGE_18BIT = 0x3E000; /*000760000*/ // eg, PDP-11/45
BusPDP11.IOBASE_UNIBUS = 0x3C0000; /*017000000*/ BusPDP11.IOPAGE_UNIBUS = 0x3C0000; /*017000000*/
BusPDP11.IOBASE_22BIT = 0x3FE000; /*017760000*/ BusPDP11.IOPAGE_22BIT = 0x3FE000; /*017760000*/ // eg, PDP-11/70
BusPDP11.MAX_MEMORY = BusPDP11.IOBASE_UNIBUS - 16384; // Maximum memory address (need less memory for BSD 2.9 boot) BusPDP11.IOPAGE_LENGTH = 0x2000; // ie, 8Kb
BusPDP11.MAX_ADDRESS = 0x400000; /*020000000*/ // Register addresses are above 22 bit addressing BusPDP11.MAX_MEMORY = BusPDP11.IOPAGE_UNIBUS - 16384; // Maximum memory address (need less memory for BSD 2.9 boot)
BusPDP11.MAX_ADDRESS = 0x400000; /*020000000*/ // Register addresses are above 22 bit addressing
BusPDP11.ERROR = { BusPDP11.ERROR = {
ADD_MEM_INUSE: 1, RANGE_INUSE: 1,
ADD_MEM_BADRANGE: 2, RANGE_INVALID: 2,
SET_MEM_NOCTRL: 3, NO_CONTROLLER: 3,
SET_MEM_BADRANGE: 4, SETACC_INVALID: 4,
REM_MEM_BADRANGE: 5 REMOVE_INVALID: 5
}; };
/** /**
@ -219,6 +204,62 @@ BusPDP11.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
*/ */
var BusInfoPDP11; var BusInfoPDP11;
BusPDP11.controller = {
/**
* readIOPageByte(off, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
readIOPageByte: function(off, addr)
{
return 0;
},
/**
* readIOPageWord(off, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
readIOPageWord: function(off, addr)
{
var afn = this.controller.aIONotify[off];
return afn? afn[0](addr) : 0;
},
/**
* writeIOPageByte(off, b, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} b (which should already be pre-masked to 8 bits)
* @param {number} [addr]
*/
writeIOPageByte: function(off, b, addr)
{
},
/**
* writeIOPageWord(off, w, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} w (which should already be pre-masked to 16 bits)
* @param {number} [addr]
*/
writeIOPageWord: function(off, w, addr)
{
var afn = this.controller.aIONotify[off];
return afn? afn[1](w, addr) : 0;
}
};
/** /**
* initMemory() * initMemory()
* *
@ -234,16 +275,17 @@ BusPDP11.prototype.initMemory = function()
for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) { for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
this.aMemBlocks[iBlock] = block; this.aMemBlocks[iBlock] = block;
} }
this.afnCtrl = new Array(4); this.afnIOPage = new Array(4);
this.afnCtrl[0] = this.readCtrlByte; this.afnIOPage[0] = BusPDP11.controller.readIOPageByte;
this.afnCtrl[1] = this.readCtrlWord; this.afnIOPage[1] = BusPDP11.controller.readIOPageWord;
this.afnCtrl[2] = this.writeCtrlByte; this.afnIOPage[2] = BusPDP11.controller.writeIOPageByte;
this.afnCtrl[3] = this.writeCtrlWord; this.afnIOPage[3] = BusPDP11.controller.writeIOPageWord;
this.addMemory(BusPDP11.IOBASE_22BIT, 8192, MemoryPDP11.TYPE.CTRL, this); this.addrIOPage = this.addrTotal - BusPDP11.IOPAGE_LENGTH;
this.addMemory(this.addrIOPage, BusPDP11.IOPAGE_LENGTH, MemoryPDP11.TYPE.CONTROLLER, this);
}; };
/** /**
* getMemoryBuffer(addr) * getControllerBuffer(addr)
* *
* Our Bus component also acts as custom memory controller, so it must also provide this function. * Our Bus component also acts as custom memory controller, so it must also provide this function.
* *
@ -251,72 +293,22 @@ BusPDP11.prototype.initMemory = function()
* @param {number} addr * @param {number} addr
* @return {Array} containing the buffer (and the offset within that buffer that corresponds to the requested block) * @return {Array} containing the buffer (and the offset within that buffer that corresponds to the requested block)
*/ */
BusPDP11.prototype.getMemoryBuffer = function(addr) BusPDP11.prototype.getControllerBuffer = function(addr)
{ {
return [null, 0]; return [null, 0];
}; };
/** /**
* getMemoryAccess() * getControllerAccess()
* *
* Our Bus component also acts as custom memory controller, so it must also provide this function. * Our Bus component also acts as custom memory controller, so it must also provide this function.
* *
* @this {BusPDP11} * @this {BusPDP11}
* @return {Array.<function()>} * @return {Array.<function()>}
*/ */
BusPDP11.prototype.getMemoryAccess = function() BusPDP11.prototype.getControllerAccess = function()
{
return this.afnCtrl;
};
/**
* readCtrlByte(off, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
BusPDP11.prototype.readCtrlByte = function(off, addr)
{
return 0;
};
/**
* readCtrlWord(off, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
BusPDP11.prototype.readCtrlWord = function(off, addr)
{
return 0;
};
/**
* writeCtrlByte(off, b, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} b (which should already be pre-masked to 8 bits)
* @param {number} [addr]
*/
BusPDP11.prototype.writeCtrlByte = function(off, b, addr)
{
};
/**
* writeCtrlWord(off, w, addr)
*
* @this {BusPDP11}
* @param {number} off
* @param {number} w (which should already be pre-masked to 16 bits)
* @param {number} [addr]
*/
BusPDP11.prototype.writeCtrlWord = function(off, w, addr)
{ {
return this.afnIOPage;
}; };
/** /**
@ -417,7 +409,7 @@ BusPDP11.prototype.addMemory = function(addr, size, type, controller)
continue; continue;
} }
} }
return this.reportError(BusPDP11.ERROR.ADD_MEM_INUSE, addrNext, sizeLeft); return this.reportError(BusPDP11.ERROR.RANGE_INUSE, addrNext, sizeLeft);
} }
var blockNew = new MemoryPDP11(addrNext, sizeBlock, this.nBlockSize, type, controller); var blockNew = new MemoryPDP11(addrNext, sizeBlock, this.nBlockSize, type, controller);
@ -433,7 +425,7 @@ BusPDP11.prototype.addMemory = function(addr, size, type, controller)
return true; return true;
} }
return this.reportError(BusPDP11.ERROR.ADD_MEM_BADRANGE, addr, size); return this.reportError(BusPDP11.ERROR.RANGE_INVALID, addr, size);
}; };
/** /**
@ -530,7 +522,7 @@ BusPDP11.prototype.removeMemory = function(addr, size)
} }
return true; return true;
} }
return this.reportError(BusPDP11.ERROR.REM_MEM_BADRANGE, addr, size); return this.reportError(BusPDP11.ERROR.REMOVE_INVALID, addr, size);
}; };
/** /**
@ -573,7 +565,7 @@ BusPDP11.prototype.setMemoryAccess = function(addr, size, afn, fQuiet)
while (size > 0) { while (size > 0) {
var block = this.aMemBlocks[iBlock]; var block = this.aMemBlocks[iBlock];
if (!block.controller) { if (!block.controller) {
return this.reportError(BusPDP11.ERROR.SET_MEM_NOCTRL, addr, size, fQuiet); return this.reportError(BusPDP11.ERROR.NO_CONTROLLER, addr, size, fQuiet);
} }
block.setAccess(afn, true); block.setAccess(afn, true);
size -= this.nBlockSize; size -= this.nBlockSize;
@ -581,7 +573,7 @@ BusPDP11.prototype.setMemoryAccess = function(addr, size, afn, fQuiet)
} }
return true; return true;
} }
return this.reportError(BusPDP11.ERROR.SET_MEM_BADRANGE, addr, size); return this.reportError(BusPDP11.ERROR.SETACC_INVALID, addr, size);
}; };
/** /**
@ -867,6 +859,54 @@ BusPDP11.prototype.restoreMemory = function(a)
return true; return true;
}; };
/**
* addIOHandlers(start, end, fnRead, fnWrite)
*
* Add I/O notification handlers to the list of such handlers. The start and end addresses are typically
* relative to the starting IOPAGE address, but they can also be absolute.
*
* @this {BusPDP11}
* @param {number} start address
* @param {number} end address
* @param {function(number)|null|undefined} fnRead is called with the read address whenever a read occurs
* @param {function(number,number)|null|undefined} fnWrite is called with the data and write address whenever a write occurs
*/
BusPDP11.prototype.addIOHandlers = function(start, end, fnRead, fnWrite)
{
for (var addr = start; addr <= end; addr += 2) {
var off = addr & (BusPDP11.IOPAGE_LENGTH - 1);
if (off < 0 || off >= BusPDP11.IOPAGE_LENGTH) {
Component.warning("I/O address out of bounds: " + str.toHexLong(this.addrIOPage + off));
break;
}
if (this.aIONotify[off] !== undefined) {
Component.warning("I/O address already registered: " + str.toHexLong(this.addrIOPage + off));
continue;
}
this.aIONotify[off] = [fnRead, fnWrite, false];
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(this.addrIOPage + off) + ")");
}
};
/**
* addIOTable(component, table)
*
* Add I/O notification handlers from the specified table (a batch version of addIOHandlers)
*
* @this {BusPDP11}
* @param {Component} component
* @param {Object} table
*/
BusPDP11.prototype.addIOTable = function(component, table)
{
for (var port in table) {
var afn = table[port];
var fnRead = afn[0]? afn[0].bind(component) : null;
var fnWrite = afn[1]? afn[1].bind(component) : null;
this.addIOHandlers(+port, +port, fnRead, fnWrite);
}
};
/** /**
* reset_iopage() * reset_iopage()
* *
@ -902,18 +942,18 @@ BusPDP11.prototype.access_iopage = function(physicalAddress, data, byteFlag)
}; };
/** /**
* reportError(op, addr, size, fQuiet) * reportError(errNum, addr, size, fQuiet)
* *
* @this {BusPDP11} * @this {BusPDP11}
* @param {number} op * @param {number} errNum
* @param {number} addr * @param {number} addr
* @param {number} size * @param {number} size
* @param {boolean} [fQuiet] (true if any error should be quietly logged) * @param {boolean} [fQuiet] (true if any error should be quietly logged)
* @return {boolean} false * @return {boolean} false
*/ */
BusPDP11.prototype.reportError = function(op, addr, size, fQuiet) BusPDP11.prototype.reportError = function(errNum, addr, size, fQuiet)
{ {
var sError = "Memory block error (" + op + ": " + str.toHex(addr) + "," + str.toHex(size) + ")"; var sError = "Memory block error (" + errNum + ": " + str.toHex(addr) + "," + str.toHex(size) + ")";
if (fQuiet) { if (fQuiet) {
if (this.dbg) { if (this.dbg) {
this.dbg.message(sError); this.dbg.message(sError);

139
modules/pdp11/lib/device.js Normal file
View file

@ -0,0 +1,139 @@
/**
* @fileoverview Implements the PDP11 device support.
* @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
* @version 1.0
* Created 2016-Sep-20
*
* This file is part of PCjs, a computer emulation software project at <http://pcjs.org/>.
*
* It has been adapted from the JavaScript PDP 11/70 Emulator v1.3 written by Paul Nankervis
* (paulnank@hotmail.com) as of August 2016 from http://skn.noip.me/pdp11/pdp11.html. This code
* may be used freely provided the original author name is acknowledged in any modified source code.
*
* PCjs is free software: you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCjs. If not,
* see <http://www.gnu.org/licenses/gpl.html>.
*
* You are required to include the above copyright notice in every source code file of every
* copy or modified version of this work, and to display that copyright notice on every screen
* that loads or runs any version of this software (see COPYRIGHT in /modules/shared/lib/defines.js).
*
* Some PCjs files also attempt to load external resource files, such as character-image files,
* ROM files, and disk image files. Those external resource files are not considered part of PCjs
* for purposes of the GNU General Public License, and the author does not claim any copyright
* as to their contents.
*/
"use strict";
if (NODE) {
var web = require("../../shared/lib/weblib");
var Component = require("../../shared/lib/component");
var State = require("../../shared/lib/state");
var BusPDP11 = require("./memory");
}
/**
* DevicePDP11(parmsDevice)
*
* The DevicePDP11 component supports the following (parmsDevice) properties:
*
* name: the name of the device to be supported (eg, "unibus" for generic UNIBUS support)
*
* @constructor
* @extends Component
* @param {Object} parmsDevice
*/
function DevicePDP11(parmsDevice)
{
Component.call(this, "Device", parmsDevice, DevicePDP11);
this.sDeviceName = parmsDevice['name'];
}
Component.subclass(DevicePDP11);
DevicePDP11.UNIBUS_NAME = "unibus";
DevicePDP11.ADDR_PSW = 0x3FFFFE; /*017777776*/ // PSW
/**
* initBus(cmp, bus, cpu, dbg)
*
* @this {DevicePDP11}
* @param {ComputerPDP11} cmp
* @param {BusPDP11} bus
* @param {CPUStatePDP11} cpu
* @param {DebuggerPDP11} dbg
*/
DevicePDP11.prototype.initBus = function(cmp, bus, cpu, dbg)
{
this.bus = bus;
this.cpu = cpu;
this.dbg = dbg;
switch(this.sDeviceName) {
case DevicePDP11.UNIBUS_NAME:
default:
bus.addIOTable(this, DevicePDP11.UNIBUS_TABLE);
break;
}
this.setReady();
};
/**
* readPSW(addr)
*
* @this {DevicePDP11}
* @param {number} [addr]
* @return {number}
*/
DevicePDP11.prototype.readPSW = function(addr)
{
return this.cpu.readPSW();
};
/**
* writePSW(data, addr)
*
* @this {DevicePDP11}
* @param {number} data
* @param {number} [addr]
*/
DevicePDP11.prototype.writePSW = function(data, addr)
{
this.cpu.writePSW(data);
};
DevicePDP11.UNIBUS_TABLE = {};
DevicePDP11.UNIBUS_TABLE[DevicePDP11.ADDR_PSW] = [DevicePDP11.prototype.readPSW, DevicePDP11.prototype.writePSW];
/**
* DevicePDP11.init()
*
* This function operates on every HTML element of class "device", extracting the
* JSON-encoded parameters for the DevicePDP11 constructor from the element's "data-value"
* attribute, invoking the constructor to create a DevicePDP11 component, and then binding
* any associated HTML controls to the new component.
*/
DevicePDP11.init = function()
{
var aeDevice = Component.getElementsByClass(document, PDP11.APPCLASS, "device");
for (var iDevice = 0; iDevice < aeDevice.length; iDevice++) {
var eDevice = aeDevice[iDevice];
var parmsDevice = Component.getComponentParms(eDevice);
var device = new DevicePDP11(parmsDevice);
Component.bindComponentControls(device, eDevice, PDP11.APPCLASS);
}
};
/*
* Initialize all the DevicePDP11 modules on the page.
*/
web.onInit(DevicePDP11.init);
if (NODE) module.exports = DevicePDP11;

View file

@ -132,15 +132,15 @@ function MemoryPDP11(addr, used, size, type, controller)
} }
/* /*
* When a controller is specified, the controller must provide a buffer, * When a controller is specified, the controller must provide a buffer, via getControllerBuffer(),
* via getMemoryBuffer(), and memory access functions, via getMemoryAccess(). * and memory access functions, via getControllerAccess().
*/ */
if (controller) { if (controller) {
this.controller = controller; this.controller = controller;
var a = controller.getMemoryBuffer(addr); var a = controller.getControllerBuffer(addr);
this.adw = a[0]; this.adw = a[0];
this.offset = a[1]; this.offset = a[1];
this.setAccess(controller.getMemoryAccess()); this.setAccess(controller.getControllerAccess());
return; return;
} }
@ -189,8 +189,8 @@ function MemoryPDP11(addr, used, size, type, controller)
* disabling writes. VIDEO is treated exactly like RAM, unless a controller is provided. Both RAM and * disabling writes. VIDEO is treated exactly like RAM, unless a controller is provided. Both RAM and
* VIDEO memory are always considered writable, and even ROM can be written using the Bus setByteDirect() * VIDEO memory are always considered writable, and even ROM can be written using the Bus setByteDirect()
* interface (which in turn uses the MemoryPDP11 writeByteDirect() interface), allowing the ROM component to * interface (which in turn uses the MemoryPDP11 writeByteDirect() interface), allowing the ROM component to
* initialize its own memory. The CTRL type is used to identify memory-mapped devices that do not need * initialize its own memory. The CONTROLLER type is used to identify memory-mapped devices that do not
* any default storage and always provide their own controller. * need any default storage and always provide their own controller.
* *
* Unallocated regions of the address space contain a special memory block of type NONE that contains * Unallocated regions of the address space contain a special memory block of type NONE that contains
* no storage. Mapping every addressible location to a memory block allows all accesses to be routed in * no storage. Mapping every addressible location to a memory block allows all accesses to be routed in
@ -198,8 +198,8 @@ function MemoryPDP11(addr, used, size, type, controller)
* *
* These types are not mutually exclusive. For example, VIDEO memory could be allocated as RAM, with or * These types are not mutually exclusive. For example, VIDEO memory could be allocated as RAM, with or
* without a custom controller (the original Monochrome and CGA video cards used read/write storage that * without a custom controller (the original Monochrome and CGA video cards used read/write storage that
* was indistinguishable from RAM), and CTRL memory could be allocated as an empty block of any type, with * was indistinguishable from RAM), and CONTROLLER memory could be allocated as an empty block of any type,
* a custom controller. A few types are required for certain features (eg, ROM is required if you want * with a custom controller. A few types are required for certain features (eg, ROM is required if you want
* read-only memory), but the larger purpose of these types is to help document the caller's intent and to * read-only memory), but the larger purpose of these types is to help document the caller's intent and to
* provide the Control Panel with the ability to highlight memory regions accordingly. * provide the Control Panel with the ability to highlight memory regions accordingly.
*/ */
@ -208,7 +208,7 @@ MemoryPDP11.TYPE = {
RAM: 1, RAM: 1,
ROM: 2, ROM: 2,
VIDEO: 3, VIDEO: 3,
CTRL: 4, CONTROLLER: 4,
COLORS: ["black", "blue", "green", "cyan"], COLORS: ["black", "blue", "green", "cyan"],
NAMES: ["NONE", "RAM", "ROM", "VID", "H/W"] NAMES: ["NONE", "RAM", "ROM", "VID", "H/W"]
}; };

View file

@ -704,6 +704,27 @@
</xsl:call-template> </xsl:call-template>
</xsl:template> </xsl:template>
<xsl:template match="device[@ref]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($componentFile)/device"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
</xsl:template>
<xsl:template match="device[not(@ref)]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="name">
<xsl:choose>
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="component">
<xsl:with-param name="machine" select="$machine"/>
<xsl:with-param name="class">device</xsl:with-param>
<xsl:with-param name="parms">,name:'<xsl:value-of select="$name"/>'</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="keyboard[@ref]"> <xsl:template match="keyboard[@ref]">
<xsl:param name="machine" select="''"/> <xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable> <xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>

View file

@ -188,6 +188,7 @@
"./modules/pdp11/lib/messages.js", "./modules/pdp11/lib/messages.js",
"./modules/pdp11/lib/panel.js", "./modules/pdp11/lib/panel.js",
"./modules/pdp11/lib/bus.js", "./modules/pdp11/lib/bus.js",
"./modules/pdp11/lib/device.js",
"./modules/pdp11/lib/memory.js", "./modules/pdp11/lib/memory.js",
"./modules/pdp11/lib/cpu.js", "./modules/pdp11/lib/cpu.js",
"./modules/pdp11/lib/cpustate.js", "./modules/pdp11/lib/cpustate.js",

View file

@ -702,6 +702,27 @@
</xsl:call-template> </xsl:call-template>
</xsl:template> </xsl:template>
<xsl:template match="device[@ref]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($componentFile)/device"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
</xsl:template>
<xsl:template match="device[not(@ref)]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="name">
<xsl:choose>
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="component">
<xsl:with-param name="machine" select="$machine"/>
<xsl:with-param name="class">device</xsl:with-param>
<xsl:with-param name="parms">,name:'<xsl:value-of select="$name"/>'</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="keyboard[@ref]"> <xsl:template match="keyboard[@ref]">
<xsl:param name="machine" select="''"/> <xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable> <xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>

View file

@ -702,6 +702,27 @@
</xsl:call-template> </xsl:call-template>
</xsl:template> </xsl:template>
<xsl:template match="device[@ref]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($componentFile)/device"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
</xsl:template>
<xsl:template match="device[not(@ref)]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="name">
<xsl:choose>
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="component">
<xsl:with-param name="machine" select="$machine"/>
<xsl:with-param name="class">device</xsl:with-param>
<xsl:with-param name="parms">,name:'<xsl:value-of select="$name"/>'</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="keyboard[@ref]"> <xsl:template match="keyboard[@ref]">
<xsl:param name="machine" select="''"/> <xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable> <xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>

View file

@ -702,6 +702,27 @@
</xsl:call-template> </xsl:call-template>
</xsl:template> </xsl:template>
<xsl:template match="device[@ref]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($componentFile)/device"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
</xsl:template>
<xsl:template match="device[not(@ref)]">
<xsl:param name="machine" select="''"/>
<xsl:variable name="name">
<xsl:choose>
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="component">
<xsl:with-param name="machine" select="$machine"/>
<xsl:with-param name="class">device</xsl:with-param>
<xsl:with-param name="parms">,name:'<xsl:value-of select="$name"/>'</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="keyboard[@ref]"> <xsl:template match="keyboard[@ref]">
<xsl:param name="machine" select="''"/> <xsl:param name="machine" select="''"/>
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable> <xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>

View file

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

View file

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