Added LED support to VT100 keyboard

This commit is contained in:
Jeff Parsons 2016-08-02 14:44:31 -07:00 committed by Jeff Parsons
commit 999828da4e
4 changed files with 640 additions and 409 deletions

View file

@ -14,10 +14,15 @@ VT100 Terminal
This is where we'll be testing another 8080-based machine: the VT100 Terminal. Unlike other VT100 emulations, This is where we'll be testing another 8080-based machine: the VT100 Terminal. Unlike other VT100 emulations,
this will simulate a VT100 by running the terminal's original firmware inside the [PC8080](/modules/pc8080/) CPU emulator. this will simulate a VT100 by running the terminal's original firmware inside the [PC8080](/modules/pc8080/) CPU emulator.
{% include machine.html id="vt100" %}
VT100 Memory Usage
------------------
As described in the [Technical Manual (July 1982)](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-TM-003_VT100_Technical_Manual_Jul82.pdf), As described in the [Technical Manual (July 1982)](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-TM-003_VT100_Technical_Manual_Jul82.pdf),
p. 4-15, 8Kb (0x2000) of ROM is located at 0x0000, and 3Kb (0x0C00) of RAM immediately follows it at 0x2000. The ROM at p. 4-15, 8Kb (0x2000) of ROM is located at 0x0000, and 3Kb (0x0C00) of RAM immediately follows it at 0x2000. The ROM at
0x0000 contains all the VT100's 8080 code. The VT100 also contains a 2Kb character generator ROM, but it is not 0x0000 contains all the VT100's 8080 code. The VT100 also contains a 2Kb character generator ROM, but that ROM is not
mapped into the 8080's address space. addressable by the CPU; it is used directly by the Video Processor.
[vt100romhax](http://vt100romhax.tumblr.com/post/90697428973/the-vt100-memory-map-and-8080-disassembly) [vt100romhax](http://vt100romhax.tumblr.com/post/90697428973/the-vt100-memory-map-and-8080-disassembly)
(aka [phooky](https://github.com/phooky)) further explains VT100 memory usage: (aka [phooky](https://github.com/phooky)) further explains VT100 memory usage:
@ -29,18 +34,47 @@ mapped into the 8080's address space.
0x204f 0x22d0 641B Scratch Pad/Setup Area(?) 0x204f 0x22d0 641B Scratch Pad/Setup Area(?)
0x22d0 0x2c00 2352B Screen RAM 0x22d0 0x2c00 2352B Screen RAM
VT100 I/O Ports
---------------
From p. 4-17 of the Technical Manual:
READ OR WRITE
00H PUSART data bus
01H PUSART command port
WRITE ONLY (Decoded with I/O WR L)
02H Baud rate generator
42H Brightness D/A latch
62H NVR latch
82H Keyboard UART data input
A2H Video processor DC012
C2H Video processor DC011
E2H Graphics port
READ ONLY (Decoded with I/O RD L)
22H Modem buffer
42H Flags buffer
82H Keyboard UART data output
The PC8080 ChipSet component deals with the ER1400's Non-volatile RAM (NVR) ports, while the Keyboard component
deals with the Keyboard UART ports.
VT100 Video Processor
---------------------
Normally, the PC8080 Video component allocates its own video buffer, based on the specified buffer address Normally, the PC8080 Video component allocates its own video buffer, based on the specified buffer address
(*bufferAddr*) and other dimensions (eg, *bufferCols* and *bufferRows*), but the VT100 is a little unusual: (*bufferAddr*) and other dimensions (eg, *bufferCols* and *bufferRows*), but the VT100 is a little unusual:
it has a custom Video Processor that uses DMA to request character data from any region of RAM, one line at a time. it has a custom Video Processor that uses DMA to request character data from any region of RAM, one line at a time.
It always defaults to address 0x2000 for the first line of character data, but each line terminates with 3 bytes It always defaults to address 0x2000 for the first line of character data, but each line terminates with 3 bytes
containing line attributes and the address of the next line, so the location of subsequent lines will vary, containing the attributes and address of the next line, so the location of subsequent lines will vary, depending
depending on the following line attributes: on the type of line:
- Single-width characters (80 or 132 columns) - Single-wide characters (80 or 132 columns)
- Double-width characters (40 or 66 columns) - Double-wide characters (40 or 66 columns)
In addition to single-width vs. double-width, line attributes can also specify double-height, along with whether the In addition to single-wide vs. double-wide, line attributes can also specify double-high, along with whether the
top or bottom halves of the double-high characters should be displayed. Also, double-high always implies double-wide top or bottom halves of the double-high characters should be displayed, because double-high always implies double-wide
(ie, there is no support for double-high, single-wide characters). (ie, there is no support for double-high, single-wide characters).
Conssequently, a VT100 [machine XML file](machine.xml) must set the Video component's *bufferRAM* property Conssequently, a VT100 [machine XML file](machine.xml) must set the Video component's *bufferRAM* property
@ -50,6 +84,9 @@ enabling support for the VT100's line data format; eg:
<ram id="ram" addr="0x2000" size="0x0C00"/> <ram id="ram" addr="0x2000" size="0x0C00"/>
<video id="video" screenWidth="1600" screenHeight="960" bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" ...> <video id="video" screenWidth="1600" screenHeight="960" bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" ...>
VT100 Screen and Character Dimensions
-------------------------------------
Ordinarily, the VT100 screen displays 800 dots per horizontal scan, and a total of 240 horizontal scans, and by default, Ordinarily, the VT100 screen displays 800 dots per horizontal scan, and a total of 240 horizontal scans, and by default,
it uses a 10x10 character cell, for a total of 80 columns and 24 rows of characters. However, in 132-column mode, it it uses a 10x10 character cell, for a total of 80 columns and 24 rows of characters. However, in 132-column mode, it
uses a 9x10 character cell instead, implying a total of 1188 dots displayed per horizontal scan. This means we will have uses a 9x10 character cell instead, implying a total of 1188 dots displayed per horizontal scan. This means we will have
@ -64,9 +101,7 @@ measure 2.0mm x 3.35mm (in 132-column mode, they measure 1.3mm x 3.35mm), which
roughly 160mm x 80mm, implying a screen aspect ratio of 2.0. However, after visually comparing the Technical Manual's SET-UP roughly 160mm x 80mm, implying a screen aspect ratio of 2.0. However, after visually comparing the Technical Manual's SET-UP
screenshots to our test screens, 1.67 appears to be closer to reality than 2.0. I'll revisit this issue at a later date. screenshots to our test screens, 1.67 appears to be closer to reality than 2.0. I'll revisit this issue at a later date.
{% include machine.html id="vt100" %} Additional VT100 Resources
--------------------------
VT100 Resources
---------------
[VT100 Publications](/pubs/dec/vt100/) [VT100 Publications](/pubs/dec/vt100/)

View file

@ -57,6 +57,20 @@ function Keyboard(parmsKbd)
Component.subclass(Keyboard); Component.subclass(Keyboard);
Keyboard.VT100 = {
STATUS: {
PORT: 0x82, // write-only
LED4: 0x01,
LED3: 0x02,
LED2: 0x04,
LED1: 0x08,
LOCKED: 0x10,
ONLINE: 0x20,
START: 0x40,
CLICK: 0x80
}
};
/** /**
* Alphanumeric and other common (printable) ASCII codes. * Alphanumeric and other common (printable) ASCII codes.
* *
@ -234,6 +248,8 @@ Keyboard.SOFTCODES = {
'fire': Keyboard.KEYCODE.SPACE 'fire': Keyboard.KEYCODE.SPACE
}; };
Keyboard.MINPRESSTIME = 100; // 100ms
/** /**
* Alternate keyCode mappings (to support the popular WASD directional mappings) * Alternate keyCode mappings (to support the popular WASD directional mappings)
* *
@ -246,44 +262,13 @@ Keyboard.ALTCODES[Keyboard.ASCII.D] = Keyboard.KEYCODE.RIGHT;
Keyboard.ALTCODES[Keyboard.ASCII.L] = Keyboard.KEYCODE.SPACE; Keyboard.ALTCODES[Keyboard.ASCII.L] = Keyboard.KEYCODE.SPACE;
Keyboard.LEDSTATES = { Keyboard.LEDSTATES = {
'l1': 0x01, 'l4': Keyboard.VT100.STATUS.LED4,
'l2': 0x02, 'l3': Keyboard.VT100.STATUS.LED3,
'l3': 0x04, 'l2': Keyboard.VT100.STATUS.LED2,
'l4': 0x08, 'l1': Keyboard.VT100.STATUS.LED1,
'locked': 0x10, 'locked': Keyboard.VT100.STATUS.LOCKED,
'local': 0x20, 'online': Keyboard.VT100.STATUS.ONLINE,
'online': 0x40 'local': ~Keyboard.VT100.STATUS.ONLINE
};
/**
* getSoftCode(keyCode)
*
* @this {Keyboard}
* @return {string|null}
*/
Keyboard.prototype.getSoftCode = function(keyCode)
{
keyCode = Keyboard.ALTCODES[keyCode] || keyCode;
for (var sSoftCode in Keyboard.SOFTCODES) {
if (Keyboard.SOFTCODES[sSoftCode] === keyCode) {
return sSoftCode;
}
}
return null;
};
/**
* reset()
*
* @this {Keyboard}
*/
Keyboard.prototype.reset = function()
{
/*
* As SOFTCODE keyDown events are encountered, a corresponding property is set to true in
* keysPressed, and as SOFTCODE keyUp events are encountered, the property is set to false.
*/
this.keysPressed = {};
}; };
/** /**
@ -372,6 +357,138 @@ Keyboard.prototype.setBinding = function(sHTMLType, sBinding, control, sValue)
return false; return false;
}; };
/**
* initBus(cmp, bus, cpu, dbg)
*
* @this {Keyboard}
* @param {Computer} cmp
* @param {Bus} bus
* @param {CPUState} cpu
* @param {Debugger} dbg
*/
Keyboard.prototype.initBus = function(cmp, bus, cpu, dbg)
{
this.dbg = dbg; // NOTE: The "dbg" property must be set for the message functions to work
this.chipset = cmp.getMachineComponent("ChipSet");
this.model = this.chipset.model;
switch(this.model) {
case ChipSet.VT100.MODEL:
this.config = Keyboard.VT100;
break;
}
if (this.config) {
bus.addPortInputTable(this, this.config.portsInput);
bus.addPortOutputTable(this, this.config.portsOutput);
}
};
/**
* powerUp(data, fRepower)
*
* @this {Keyboard}
* @param {Object|null} data
* @param {boolean} [fRepower]
* @return {boolean} true if successful, false if failure
*/
Keyboard.prototype.powerUp = function(data, fRepower)
{
if (!fRepower) {
if (!data) {
this.reset();
} else {
if (!this.restore(data)) return false;
}
}
return true;
};
/**
* powerDown(fSave, fShutdown)
*
* @this {Keyboard}
* @param {boolean} [fSave]
* @param {boolean} [fShutdown]
* @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure
*/
Keyboard.prototype.powerDown = function(fSave, fShutdown)
{
return fSave? this.save() : true;
};
Keyboard.VT100.init = [
[
0
]
];
/**
* reset()
*
* @this {Keyboard}
*/
Keyboard.prototype.reset = function()
{
/*
* As keyDown events are encountered, a corresponding "softcode" property in keysPressed
* is set to the timestamp of the keyDown event. When the corresponding keyUp event occurs,
* we look at the elapsed time: if it is less than MINPRESSTIME, then we move the key
* to keysToRelease and set a timeout handler to release the key later; otherwise, we process
* the keyUp event immediately.
*/
this.keysPressed = {};
this.keysToRelease = {};
if (this.config && !this.restore(this.config.init)) {
this.notice("reset error");
}
};
/**
* save()
*
* This implements save support for the Keyboard component.
*
* @this {Keyboard}
* @return {Object}
*/
Keyboard.prototype.save = function()
{
var state = new State(this);
switch(this.model) {
case ChipSet.SI1978.MODEL:
break;
case ChipSet.VT100.MODEL:
state.set(0, [this.bLEDs]);
break;
}
return state.data();
};
/**
* restore(data)
*
* This implements restore support for the Keyboard component.
*
* @this {Keyboard}
* @param {Object} data
* @return {boolean} true if successful, false if failure
*/
Keyboard.prototype.restore = function(data)
{
var a;
if (data && (a = data[0]) && a.length) {
switch(this.model) {
case ChipSet.SI1978.MODEL:
return true;
case ChipSet.VT100.MODEL:
this.bLEDs = a[0];
this.updateLEDs();
return true;
}
}
return false;
};
/** /**
* setLED(control, f) * setLED(control, f)
* *
@ -388,36 +505,41 @@ Keyboard.prototype.setLED = function(control, f)
}; };
/** /**
* updateLEDs(bitState) * updateLEDs()
* *
* @this {Keyboard} * @this {Keyboard}
* @param {number} [bitState] is the bit in bitsStateSim that may have changed, if known; undefined if not
*/ */
Keyboard.prototype.updateLEDs = function(bitState) Keyboard.prototype.updateLEDs = function()
{ {
var control;
for (var sBinding in Keyboard.LEDSTATES) { for (var sBinding in Keyboard.LEDSTATES) {
var id = "led-" + sBinding; var id = "led-" + sBinding;
var bitLED = Keyboard.LEDSTATES[sBinding]; var control = this.bindings[id];
if ((!bitState || bitState == bitLED) && (control = this.bindings[id])) { if (control) {
this.setLED(control, !!bitLED); // !!(this.bKeyboardState & bitLED) var bitLED = Keyboard.LEDSTATES[sBinding];
var fOn = !!(this.bLEDs & bitLED);
if (bitLED & (bitLED-1)) {
fOn = !(this.bLEDs & ~bitLED);
}
this.setLED(control, fOn);
} }
} }
}; };
/** /**
* initBus(cmp, bus, cpu, dbg) * getSoftCode(keyCode)
* *
* @this {Keyboard} * @this {Keyboard}
* @param {Computer} cmp * @return {string|null}
* @param {Bus} bus
* @param {CPUState} cpu
* @param {Debugger} dbg
*/ */
Keyboard.prototype.initBus = function(cmp, bus, cpu, dbg) Keyboard.prototype.getSoftCode = function(keyCode)
{ {
this.dbg = dbg; // NOTE: The "dbg" property must be set for the message functions to work keyCode = Keyboard.ALTCODES[keyCode] || keyCode;
this.chipset = cmp.getMachineComponent("ChipSet"); for (var sSoftCode in Keyboard.SOFTCODES) {
if (Keyboard.SOFTCODES[sSoftCode] === keyCode) {
return sSoftCode;
}
}
return null;
}; };
/** /**
@ -425,7 +547,7 @@ Keyboard.prototype.initBus = function(cmp, bus, cpu, dbg)
* *
* @this {Keyboard} * @this {Keyboard}
* @param {Object} event * @param {Object} event
* @param {boolean} fDown is true for a keyDown event, false for a keyUp event * @param {boolean} fDown is true for a keyDown event, false for up
* @return {boolean} true to pass the event along, false to consume it * @return {boolean} true to pass the event along, false to consume it
*/ */
Keyboard.prototype.onKeyDown = function(event, fDown) Keyboard.prototype.onKeyDown = function(event, fDown)
@ -454,12 +576,27 @@ Keyboard.prototype.onKeyDown = function(event, fDown)
* *
* @this {Keyboard} * @this {Keyboard}
* @param {string} sSoftCode * @param {string} sSoftCode
* @param {boolean} fDown is true for a down event, false for an up event * @param {boolean} fDown is true for a down event, false for up
* @return {boolean} true to pass the event along, false to consume it * @return {boolean} true to pass the event along, false to consume it
*/ */
Keyboard.prototype.onSoftKeyDown = function(sSoftCode, fDown) Keyboard.prototype.onSoftKeyDown = function(sSoftCode, fDown)
{ {
this.keysPressed[sSoftCode] = fDown; if (fDown) {
this.keysPressed[sSoftCode] = Date.now();
delete this.keysToRelease[sSoftCode];
} else {
var msDown = this.keysPressed[sSoftCode];
this.assert(msDown);
if (msDown) {
var msElapsed = Date.now() - msDown;
if (msElapsed < Keyboard.MINPRESSTIME) {
this.keysToRelease[sSoftCode] = msDown;
this.checkSoftKeysToRelease();
return true;
}
}
delete this.keysPressed[sSoftCode];
}
if (this.chipset) { if (this.chipset) {
switch(sSoftCode) { switch(sSoftCode) {
@ -488,7 +625,60 @@ Keyboard.prototype.onSoftKeyDown = function(sSoftCode, fDown)
break; break;
} }
} }
return false; return true;
};
/**
* checkSoftKeysToRelease()
*
* @this {Keyboard}
*/
Keyboard.prototype.checkSoftKeysToRelease = function()
{
var msDelayMin = -1;
var asSoftCodes = Object.keys(this.keysToRelease);
for (var sSoftCode in asSoftCodes) {
var msDown = this.keysToRelease[sSoftCode];
var msElapsed = Date.now() - msDown;
var msDelay = Keyboard.MINPRESSTIME - msElapsed;
if (msDelay > 0) {
if (msDelayMin < 0 || msDelayMin > msDelay) {
msDelayMin = msDelay;
}
} else {
delete this.keysToRelease[sSoftCode];
this.onSoftKeyDown(sSoftCode, false);
}
}
if (msDelayMin >= 0) {
var kbd = this;
setTimeout(function() { kbd.checkSoftKeysToRelease(); }, msDelayMin);
}
};
/**
* outVT100UARTStatus(port, b, addrFrom)
*
* @this {Keyboard}
* @param {number} port (0x82)
* @param {number} b
* @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
*/
Keyboard.prototype.outVT100UARTStatus = function(port, b, addrFrom)
{
this.printMessageIO(port, b, addrFrom, "KBDUART.STATUS", null, true);
this.bLEDs = b;
this.updateLEDs();
};
/*
* Port notification tables
*/
Keyboard.VT100.portsInput = {
};
Keyboard.VT100.portsOutput = {
0x82: Keyboard.prototype.outVT100UARTStatus
}; };
/** /**

View file

@ -1,224 +1,227 @@
(function(){var m;function aa(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c} (function(){var m;function aa(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
function q(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function t(a){return"0x"+q(a,4)}function ca(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function da(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b} function q(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function t(a){return"0x"+q(a,4)}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ea(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(a,b){return(a+" ").slice(0,b)}function ia(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(a,b){return(a+" ").slice(0,b)}function ia(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
function ja(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ka=Date.now||function(){return+new Date};function la(){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 ja(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ka=Date.now||function(){return+new Date};function la(){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 ma(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1} function ma(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function na(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(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),d&&d(a,f,e))});if(b&&"object"== function na(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(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),d&&d(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,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function qa(){return window?window.navigator.userAgent:""}function w(a){window&&window.alert(a)}function ra(a){var b=!1;window&&(b=window.confirm(a));return b}var sa=null;function ta(){if(null==sa){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}sa=a}return sa} function pa(){return window?window.navigator.userAgent:""}function w(a){window&&window.alert(a)}function qa(a){var b=!1;window&&(b=window.confirm(a));return b}var sa=null;function ta(){if(null==sa){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}sa=a}return sa}
function ua(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function va(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function wa(a){if(window){var b=qa();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 xa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()} function ua(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function va(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function wa(a){if(window){var b=pa();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 xa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ca(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Da={init:[],show:[],exit:[]},Ea=!1,Fa=!0;function Ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ha(a){Da.init.push(a)} function ya(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var za={init:[],show:[],exit:[]},Aa=!1,Fa=!0;function Ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ha(a){za.init.push(a)}
function Ka(a){if(Fa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){w(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function La(a){!Fa&&a?(Fa=!0,Ea&&Ma("init")):Fa=a}function Ma(a){Da[a]&&Ka(Da[a])}Ga("onload",function(){Ea=!0;Ka(Da.init)});Ga("onpageshow",function(){Ka(Da.show)});Ga(wa("Opera")||wa("iOS")?"onunload":"onbeforeunload",function(){Ka(Da.exit)}); function Ia(a){if(Fa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){w(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ja(a){!Fa&&a?(Fa=!0,Aa&&Ka("init")):Fa=a}function Ka(a){za[a]&&Ia(za[a])}Ga("onload",function(){Aa=!0;Ia(za.init)});Ga("onpageshow",function(){Ia(za.show)});Ga(wa("Opera")||wa("iOS")?"onunload":"onbeforeunload",function(){Ia(za.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Yb=b.comment;this.hc=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Mb=this.id.substr(0,b),this.Xa=this.id.substr(b+1)):this.Xa=this.id;this[a]=c;this.A={eb:!1,ab:!1,Kb:!1,oa:!1,cb:!1};this.Eb=null;this.A.cb=!1;this.L={};this.G=null;this.ka=d||0;Na.push(this)}var Oa=void 0,Ra={}; function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.bc=b.comment;this.lc=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Pb=this.id.substr(0,b),this.$a=this.id.substr(b+1)):this.$a=this.id;this[a]=c;this.B={hb:!1,eb:!1,Nb:!1,oa:!1,gb:!1};this.Fb=null;this.B.gb=!1;this.K={};this.G=null;this.ka=d||0;Na.push(this)}var Oa=void 0,Pa={};
if(window){Oa||(Oa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Oa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(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){Oa||(Oa=window.location.search.substr(1));for(var Qa,Ra=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Qa=Ua.exec(Oa);)Pa[decodeURIComponent(Qa[1].replace(Ra," "))]=decodeURIComponent(Qa[2].replace(Ra," "))}function Va(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 Wa(a,b){b||(b=z);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Na=[],Xa={};function Ya(a,b,c){Xa[a]&&b&&(Xa[a][b]=c)}function Za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Na.length;b++){var d=Na[b];a&&d.id.indexOf(a)||c.push(d)}return c} function Wa(a,b){b||(b=z);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Na=[],Xa={};function Ya(a,b,c){Xa[a]&&b&&(Xa[a][b]=c)}function Za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Na.length;b++){var d=Na[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function $a(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<Na.length;d++)if(c)c==Na[d]&&(c=null);else if(!(a!=Na[d].type||b&&Na[d].id.indexOf(b)))return Na[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b} function $a(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<Na.length;d++)if(c)c==Na[d]&&(c=null);else if(!(a!=Na[d].type||b&&Na[d].id.indexOf(b)))return Na[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}
function ab(a,b){for(var c=C(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.ma(g.type,g.binding,h,g.value),l=k.length}}}} function ab(a,b){for(var c=C(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.ma(g.type,g.binding,h,g.value),l=k.length}}}}
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.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 e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ma:function(a,b,c){switch(b){case "clear":return this.L[b]||(this.L[b]=c,c.onclick=function(a){return function(){a.L.print&&(a.L.print.value="")}}(this)),!0;case "print":return this.L[b]||(this.za=this.L[b]=c,c.value="",this.g=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), z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ma:function(a,b,c){switch(b){case "clear":return this.K[b]||(this.K[b]=c,c.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.za=this.K[b]=c,c.value="",this.g=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.ea=function(a){this.g(a,this.Xa)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Xa+": "+a)},ea:function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)},Ea:function(){return this.A.oa=!0},Ha:function(a,b){b&&(this.A.oa=!1);return!0}};function bb(a,b,c,d,e,f){var h=!0;a.G&&(!0===h?h=0:null==h&&(h=a.ka),cb(a.G,a,b,c,d,e,f,h))}function db(a,b,c){a.G&&(!0===c||eb(a,c|0))&&a.G.message(b,void 0)} this.ca=function(a){this.g(a,this.$a)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.$a+": "+a)},ca:function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)},Ba:function(){return this.B.oa=!0},Ha:function(a,b){b&&(this.B.oa=!1);return!0}};function D(a,b,c,d,e,f){var h=!0;a.G&&(!0===h?h=0:null==h&&(h=a.ka),bb(a.G,a,b,c,d,e,f,h))}function cb(a,b,c){a.G&&(!0===c||db(a,c|0))&&a.G.message(b,void 0)}
function eb(a,b){if(a.G){a===a.G?b|=0:b=b||a.ka;var c=a.G.ka&b;return!!b&&c===b||!!(c&a.G.wc)}return!1}function fb(a,b){if(a.A.Kb)return a.A.ab&&(a.A.ab=!1),a.A.Kb=!1;if(a.A.cb)return a.g(a.toString()+" error"),!1;a.A.ab=b;return a.A.ab}function gb(a,b){a.A.ab&&(b?a.A.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.ab}function D(a){if(!a.A.cb&&(a.A.eb=!0,a.A.eb)){var b=a.Eb;a.Eb=null;b&&b()}}function jb(a,b){b&&(a.A.eb?b():a.Eb=b);return a.A.eb}function kb(a,b){a.A.cb=!0;a.ea(b)} function db(a,b){if(a.G){a===a.G?b|=0:b=b||a.ka;var c=a.G.ka&b;return!!b&&c===b||!!(c&a.G.Dc)}return!1}function eb(a,b){if(a.B.Nb)return a.B.eb&&(a.B.eb=!1),a.B.Nb=!1;if(a.B.gb)return a.g(a.toString()+" error"),!1;a.B.eb=b;return a.B.eb}function fb(a,b){a.B.eb&&(b?a.B.Nb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.B.eb}function F(a){if(!a.B.gb&&(a.B.hb=!0,a.B.hb)){var b=a.Fb;a.Fb=null;b&&b()}}function gb(a,b){b&&(a.B.hb?b():a.Fb=b);return a.B.hb}function hb(a,b){a.B.gb=!0;a.ca(b)}
var lb="undefined"!==typeof ArrayBuffer,mb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var kb="undefined"!==typeof ArrayBuffer,lb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function nb(a){z.call(this,"Panel",a,nb)}Wa(nb);m=nb.prototype;m.ma=function(a,b,c,d){return this.u&&this.u.ma(a,b,c,d)||this.b&&this.b.ma(a,b,c,d)||this.ca&&this.ca.ma(a,b,c,d)||this.G&&this.G.ma(a,b,c,d)?!0:this.parent.ma.call(this,a,b,c,d)};m.Ka=function(a,b,c,d){this.u=a;this.B=b;this.b=c;this.G=d;this.ca=ob(a,"Keyboard")};m.Ea=function(a,b){b||pb();return!0};m.Ha=function(){return!0};m.Ba=function(){}; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function mb(a){z.call(this,"Panel",a,mb)}Wa(mb);m=mb.prototype;m.ma=function(a,b,c,d){return this.u&&this.u.ma(a,b,c,d)||this.b&&this.b.ma(a,b,c,d)||this.da&&this.da.ma(a,b,c,d)||this.G&&this.G.ma(a,b,c,d)?!0:this.parent.ma.call(this,a,b,c,d)};m.Ma=function(a,b,c,d){this.u=a;this.A=b;this.b=c;this.G=d;this.da=nb(a,"Keyboard")};m.Ba=function(a,b){b||ob();return!0};m.Ha=function(){return!0};m.Ca=function(){};
function pb(){for(var a=!1,b=C(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<Na.length;h++)if(Na[h].id===f){f=Na[h];break a}f=null}f||(a=!0,f=new nb(e));ab(f,d);a&&D(f)}}Ha(pb); function ob(){for(var a=!1,b=C(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<Na.length;h++)if(Na[h].id===f){f=Na[h];break a}f=null}f||(a=!0,f=new mb(e));ab(f,d);a&&F(f)}}Ha(ob);
function qb(a,b,c){z.call(this,"Bus",a,qb);this.b=b;this.G=c;this.I=a.busWidth||16;this.T=Math.pow(2,this.I);this.w=this.T-1|0;this.ja=16>=this.I?10:20>=this.I?12:24>=this.I?14:15;this.Aa=1<<this.ja;this.W=this.Aa>>2;this.B=this.Aa-1;this.K=this.T/this.Aa|0;this.J=this.K-1;this.u=[];this.C=[];this.F=this.H=!1;this.Y=[];this.aa=[];a=new F;rb(a,this.G);this.U=Array(this.K);for(b=0;b<this.K;b++)this.U[b]=a;D(this)}Wa(qb);m=qb.prototype;m.reset=function(){};m.Ea=function(a,b){b||this.reset();return!0}; function pb(a,b,c){z.call(this,"Bus",a,pb);this.b=b;this.G=c;this.I=a.busWidth||16;this.T=Math.pow(2,this.I);this.w=this.T-1|0;this.ja=16>=this.I?10:20>=this.I?12:24>=this.I?14:15;this.Aa=1<<this.ja;this.W=this.Aa>>2;this.A=this.Aa-1;this.L=this.T/this.Aa|0;this.J=this.L-1;this.u=[];this.C=[];this.F=this.H=!1;this.Y=[];this.aa=[];a=new G;qb(a,this.G);this.U=Array(this.L);for(b=0;b<this.L;b++)this.U[b]=a;F(this)}Wa(pb);m=pb.prototype;m.reset=function(){};m.Ba=function(a,b){b||this.reset();return!0};
function sb(a,b,c,d){for(var e=b,f=c,h=e>>>a.ja;0<f&&h<a.U.length;){var g=a.U[h],k=h*a.Aa,l=a.Aa-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.D)return g.Bb+=g.D-e,g.D=e,!0;if(e>=g.D+g.Bb){l=g.size-(e-k);l>f&&(l=f);g.Bb=e-g.D+l;e=k+a.Aa;f-=l;h++;continue}}return tb(1,e,f)}e=new F(e,l,a.Aa,d);rb(e,a.G,g);a.U[h++]=e;e=k+a.Aa;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ub[d]+" at "+t(b)),!0):tb(2,b,c)}m.X=function(a){return this.U[(a&this.w)>>>this.ja].mb(a&this.B,a)}; function rb(a,b,c,d){for(var e=b,f=c,h=e>>>a.ja;0<f&&h<a.U.length;){var g=a.U[h],k=h*a.Aa,l=a.Aa-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.D)return g.Cb+=g.D-e,g.D=e,!0;if(e>=g.D+g.Cb){l=g.size-(e-k);l>f&&(l=f);g.Cb=e-g.D+l;e=k+a.Aa;f-=l;h++;continue}}return sb(1,e,f)}e=new G(e,l,a.Aa,d);qb(e,a.G,g);a.U[h++]=e;e=k+a.Aa;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+tb[d]+" at "+t(b)),!0):sb(2,b,c)}m.X=function(a){return this.U[(a&this.w)>>>this.ja].ob(a&this.A,a)};
function vb(a,b){return a.U[(b&a.w)>>>a.ja].zb(b&a.B,b)}m.La=function(a){var b=a&this.B,c=(a&this.w)>>>this.ja;return b!=this.B?this.U[c].kc(b,a):this.U[c++].mb(b,a)|this.U[c&this.J].mb(0,a+1)<<8};function wb(a,b){var c=b&a.B,d=(b&a.w)>>>a.ja;return c!=a.B?a.U[d].Qb(c,b):a.U[d++].zb(c,b)|a.U[d&a.J].zb(0,b+1)<<8}m.na=function(a,b){this.U[(a&this.w)>>>this.ja].ob(a&this.B,b&255,a)};function xb(a,b,c){a.U[(b&a.w)>>>a.ja].Cb(b&a.B,c&255,b)} function ub(a,b){return a.U[(b&a.w)>>>a.ja].Ab(b&a.A,b)}m.Na=function(a){var b=a&this.A,c=(a&this.w)>>>this.ja;return b!=this.A?this.U[c].mc(b,a):this.U[c++].ob(b,a)|this.U[c&this.J].ob(0,a+1)<<8};function vb(a,b){var c=b&a.A,d=(b&a.w)>>>a.ja;return c!=a.A?a.U[d].Tb(c,b):a.U[d++].Ab(c,b)|a.U[d&a.J].Ab(0,b+1)<<8}m.na=function(a,b){this.U[(a&this.w)>>>this.ja].qb(a&this.A,b&255,a)};function wb(a,b,c){a.U[(b&a.w)>>>a.ja].Db(b&a.A,c&255,b)}
m.Ib=function(a,b){var c=a&this.B,d=(a&this.w)>>>this.ja;c!=this.B?this.U[d].mc(c,b&65535,a):(this.U[d++].ob(c,b&255,a),this.U[d&this.J].ob(0,b>>8&255,a+1))};function yb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]} m.Lb=function(a,b){var c=a&this.A,d=(a&this.w)>>>this.ja;c!=this.A?this.U[d].oc(c,b&65535,a):(this.U[d++].qb(c,b&255,a),this.U[d&this.J].qb(0,b>>8&255,a+1))};function xb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}function yb(a,b,c){var d;void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.u[k]?w("Input port "+t(k)+" already registered"):f.u[k]=[g,!1]}}
function zb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.u[b],g=a.Y[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.G&&a.F!=h[1]&&Ab(a.G,b,l)):a.G&&(cb(a.G,a,b,null,c),a.F&&Ab(a.G,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Bb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]} function zb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.u[b],g=a.Y[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.G&&a.F!=h[1]&&Ab(a.G,b,l)):a.G&&(bb(a.G,a,b,null,c),a.F&&Ab(a.G,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Bb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}
function Cb(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.C[b],g=a.aa[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.G&&a.H!=h[1]&&Db(a.G,b,k)}else a.G&&(cb(a.G,a,b,k,d),a.H&&Db(a.G,b,k));f+=g<<3;b+=g;e-=g}}function tb(a,b,c){w("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Eb;if(lb){var Fb=new ArrayBuffer(2);(new DataView(Fb)).setUint16(0,256,!0);Eb=256===(new Uint16Array(Fb))[0]}else Eb=!1;var Pb=Eb; function Cb(a,b,c){var d;void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.C[k]?w("Output port "+t(k)+" already registered"):f.C[k]=[g,!1]}}function Db(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.C[b],g=a.aa[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.G&&a.H!=h[1]&&Eb(a.G,b,k)}else a.G&&(bb(a.G,a,b,k,d),a.H&&Eb(a.G,b,k));f+=g<<3;b+=g;e-=g}}
function F(a,b,c,d){this.id=Qb+=2;this.b=null;this.D=a;this.Bb=b;this.size=c||0;this.type=d||Rb;this.L=d==Sb;rb(this);this.Fa=this.Vb=!1;if(c)if(lb)this.F=new ArrayBuffer(c),this.H=new DataView(this.F,0,c),this.B=new Uint8Array(this.F,0,c),this.J=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Tb(this,Pb?Ub:Vb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Tb(this,Wb)}else Tb(this)}var Rb=0,Sb=2,ub=["NONE","RAM","ROM","VID","H/W"],Qb=0; function sb(a,b,c){w("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Fb;if(kb){var Gb=new ArrayBuffer(2);(new DataView(Gb)).setUint16(0,256,!0);Fb=256===(new Uint16Array(Gb))[0]}else Fb=!1;var Qb=Fb;
F.prototype={constructor:F,parent:null,sb:function(a){this.D=a},save:function(){var a,b;if(lb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(lb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.Fa=!0}return!1},Qa:function(a,b){b?0===this.C++&&Xb(this,Yb,!1):0===this.u++&&Zb(this,Yb,!1)},K:function(){this.G&&eb(this.G,129)&&this.G.message("attempt to read invalid block %"+ function G(a,b,c,d){this.id=Rb+=2;this.b=null;this.D=a;this.Cb=b;this.size=c||0;this.type=d||Sb;this.K=d==Tb;qb(this);this.Ja=this.Zb=!1;if(c)if(kb)this.F=new ArrayBuffer(c),this.H=new DataView(this.F,0,c),this.A=new Uint8Array(this.F,0,c),this.J=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Ub(this,Qb?Vb:Wb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Ub(this,Xb)}else Ub(this)}var Sb=0,Tb=2,tb=["NONE","RAM","ROM","VID","H/W"],Rb=0;
q(this.D),!0);return 255},w:function(a,b){this.G&&eb(this.G,129)&&this.G.message("attempt to write "+t(b)+" to invalid block %"+q(this.D),!0)},T:function(a,b){return this.mb(a++,b++)|this.mb(a,b)<<8},I:function(a,b,c){this.ob(a++,b&255,c++);this.ob(a,b>>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Fa=!0}, G.prototype={constructor:G,parent:null,Ua:function(a){this.D=a},save:function(){var a,b;if(kb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(kb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ja=!0}return!1},Sa:function(a,b){b?0===this.C++&&Yb(this,Zb,!1):0===this.u++&&$b(this,Zb,!1)},L:function(){this.G&&db(this.G,129)&&this.G.message("attempt to read invalid block %"+
Xa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Fa=!0},Y:function(a,b){if(this.G&&null!=this.D){var c=this.G;$b(c,this.D+a,1,c.Y)&&c.ga(!0)}return this.zb(a,b)},ia:function(a,b){if(this.G&&null!=this.D){var c=this.G;$b(c,this.D+a,2,c.Y)&&c.ga(!0)}return this.Qb(a,b)},va:function(a,b,c){if(this.G&&null!=this.D){var d=this.G;$b(d,this.D+a,1,d.H)&&d.ga(!0)}this.L?this.w(a,b,c):this.Cb(a,b,c)}, q(this.D),!0);return 255},w:function(a,b){this.G&&db(this.G,129)&&this.G.message("attempt to write "+t(b)+" to invalid block %"+q(this.D),!0)},T:function(a,b){return this.ob(a++,b++)|this.ob(a,b)<<8},I:function(a,b,c){this.qb(a++,b&255,c++);this.qb(a,b>>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Ja=!0},
Ca:function(a,b,c){if(this.G&&null!=this.D){var d=this.G;$b(d,this.D+a,2,d.H)&&d.ga(!0)}this.L?this.w(a,b,c):this.Rb(a,b,c)},W:function(a){return this.B[a]},aa:function(a){return this.B[a]},ha:function(a){return this.H.getUint16(a,!0)},qa:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.J[a>>1]},ua:function(a,b){this.B[a]=b;this.Fa=!0},wa:function(a,b){this.B[a]=b;this.Fa=!0},ya:function(a,b){this.H.setUint16(a,b,!0);this.Fa=!0},Da:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.J[a>>1]= $a:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ja=!0},Y:function(a,b){if(this.G&&null!=this.D){var c=this.G;ac(c,this.D+a,1,c.Y)&&c.ga(!0)}return this.Ab(a,b)},ia:function(a,b){if(this.G&&null!=this.D){var c=this.G;ac(c,this.D+a,2,c.Y)&&c.ga(!0)}return this.Tb(a,b)},va:function(a,b,c){if(this.G&&null!=this.D){var d=this.G;ac(d,this.D+a,1,d.H)&&d.ga(!0)}this.K?this.w(a,b,c):this.Db(a,b,c)},
b;this.Fa=!0}};function rb(a,b,c){a.G=b;a.u=a.C=0;c&&((a.u=c.u)&&Zb(a,Yb,!1),(a.C=c.C)&&Xb(a,Yb,!1))}function ac(a,b){b?0===--a.C&&(a.ob=a.L?a.w:a.Cb,a.mc=a.L?a.I:a.Rb):0===--a.u&&(a.mb=a.zb,a.kc=a.Qb)}function Xb(a,b,c){c&&a.C||(a.ob=!a.L&&b[2]||a.w,a.mc=!a.L&&b[3]||a.I);if(c||void 0===c)a.Cb=b[2]||a.w,a.Rb=b[3]||a.I}function Zb(a,b,c){c&&a.u||(a.mb=b[0]||a.K,a.kc=b[1]||a.T);if(c||void 0===c)a.zb=b[0]||a.K,a.Qb=b[1]||a.T}function Tb(a,b){b||(b=bc);Zb(a,b,void 0);Xb(a,b,void 0)} Ea:function(a,b,c){if(this.G&&null!=this.D){var d=this.G;ac(d,this.D+a,2,d.H)&&d.ga(!0)}this.K?this.w(a,b,c):this.Ub(a,b,c)},W:function(a){return this.A[a]},aa:function(a){return this.A[a]},ha:function(a){return this.H.getUint16(a,!0)},qa:function(a){return a&1?this.A[a]|this.A[a+1]<<8:this.J[a>>1]},ua:function(a,b){this.A[a]=b;this.Ja=!0},wa:function(a,b){this.A[a]=b;this.Ja=!0},ya:function(a,b){this.H.setUint16(a,b,!0);this.Ja=!0},Fa:function(a,b){a&1?(this.A[a]=b,this.A[a+1]=b>>8):this.J[a>>1]=
var bc=[],Wb=[F.prototype.ca,F.prototype.ra,F.prototype.xa,F.prototype.Xa],Yb=[F.prototype.Y,F.prototype.ia,F.prototype.va,F.prototype.Ca];if(lb)var Vb=[F.prototype.W,F.prototype.ha,F.prototype.ua,F.prototype.ya],Ub=[F.prototype.aa,F.prototype.qa,F.prototype.wa,F.prototype.Da]; b;this.Ja=!0}};function qb(a,b,c){a.G=b;a.u=a.C=0;c&&((a.u=c.u)&&$b(a,Zb,!1),(a.C=c.C)&&Yb(a,Zb,!1))}function bc(a,b){b?0===--a.C&&(a.qb=a.K?a.w:a.Db,a.oc=a.K?a.I:a.Ub):0===--a.u&&(a.ob=a.Ab,a.mc=a.Tb)}function Yb(a,b,c){c&&a.C||(a.qb=!a.K&&b[2]||a.w,a.oc=!a.K&&b[3]||a.I);if(c||void 0===c)a.Db=b[2]||a.w,a.Ub=b[3]||a.I}function $b(a,b,c){c&&a.u||(a.ob=b[0]||a.L,a.mc=b[1]||a.T);if(c||void 0===c)a.Ab=b[0]||a.L,a.Tb=b[1]||a.T}function Ub(a,b){b||(b=cc);$b(a,b,void 0);Yb(a,b,void 0)}
function cc(a,b){z.call(this,"CPU",a,cc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.lb=c;this.i.Hb=0;this.i.Va=d;this.i.Nb=Math.round(this.i.lb/1E4)/100;this.i.Ta=this.i.Nb*this.i.Va;this.A.sa=!1;this.A.Lb=!1;this.A.Ub=a.autoStart;this.A.Wb=!1;this.A.bb=!1;this.i.tb=this.i.ib=0;this.i.ub=a.csStart;this.i.hb=a.csInterval;this.i.jb=a.csStop;this.aa=this.Wa.bind(this);D(this)}Wa(cc);var dc=["power","reset"];m=cc.prototype; var cc=[],Xb=[G.prototype.da,G.prototype.ra,G.prototype.xa,G.prototype.$a],Zb=[G.prototype.Y,G.prototype.ia,G.prototype.va,G.prototype.Ea];if(kb)var Wb=[G.prototype.W,G.prototype.ha,G.prototype.ua,G.prototype.ya],Vb=[G.prototype.aa,G.prototype.qa,G.prototype.wa,G.prototype.Fa];
m.Ka=function(a,b,c,d){this.u=a;this.B=b;this.G=d;for(b=0;b<dc.length;b++)(c=this.L[dc[b]])&&this.u.ma(null,dc[b],c);this.K=(b=ob(a,"Video"))&&Math.max(b.Rc,b.gc)||60;this.C=ob(a,"ChipSet");a=ec(a,"autoStart");null!=a&&(this.A.Ub="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){this.i.Hb=0};m.save=function(){return null};m.restore=function(){return!1}; function dc(a,b){z.call(this,"CPU",a,dc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.nb=c;this.i.Ib=0;this.i.Ya=d;this.i.Qb=Math.round(this.i.nb/1E4)/100;this.i.Wa=this.i.Qb*this.i.Ya;this.B.sa=!1;this.B.Ob=!1;this.B.Yb=a.autoStart;this.B.$b=!1;this.B.fb=!1;this.i.ub=this.i.kb=0;this.i.vb=a.csStart;this.i.jb=a.csInterval;this.i.lb=a.csStop;this.aa=this.Za.bind(this);F(this)}Wa(dc);var ec=["power","reset"];m=dc.prototype;
m.Ea=function(a,b){if(!b){if(a&&this.restore){fc(this);if(!this.restore(a))return!1;gc(this)}else this.reset();this.G?this.G.sb():this.g("No debugger detected")}hc(this);return!0};m.Ha=function(a){return a?this.save():!0};function ic(a){(a.A.Ub||!a.G&&void 0===a.L.run)&&a.Wa(!0)}m.Xb=function(){return 0};function gc(a){void 0===a.i.ub&&(a.i.ub=0);void 0===a.i.hb&&(a.i.hb=-1);void 0===a.i.jb&&(a.i.jb=-1);a.A.bb=0<=a.i.ub&&0<a.i.hb;a.A.bb&&(a.i.tb=0,a.i.ib=a.i.ub-a.I)} m.Ma=function(a,b,c,d){this.u=a;this.A=b;this.G=d;for(b=0;b<ec.length;b++)(c=this.K[ec[b]])&&this.u.ma(null,ec[b],c);this.L=(b=nb(a,"Video"))&&Math.max(b.Yc,b.kc)||60;this.C=nb(a,"ChipSet");a=fc(a,"autoStart");null!=a&&(this.B.Yb="true"==a?!0:"false"==a?!1:!!a);F(this)};m.reset=function(){this.i.Ib=0};m.save=function(){return null};m.restore=function(){return!1};
function uc(a,b){if(a.A.bb){var c=!1;a.i.tb=a.i.tb+a.Xb()|0;a.i.ib-=b;0>=a.i.ib&&(a.i.ib+=a.i.hb,c=!0);0<=a.i.jb&&a.i.jb<=vc(a)&&(a.i.hb=a.i.jb=-1,gc(a),a.ga(),c=!0);c&&a.g(vc(a)+" cycles: checksum="+q(a.i.tb))}} m.Ba=function(a,b){if(!b){if(a&&this.restore){gc(this);if(!this.restore(a))return!1;hc(this)}else this.reset();this.G?this.G.Ua():this.g("No debugger detected")}ic(this);return!0};m.Ha=function(a){return a?this.save():!0};function jc(a){(a.B.Yb||!a.G&&void 0===a.K.run)&&a.Za(!0)}m.ac=function(){return 0};function hc(a){void 0===a.i.vb&&(a.i.vb=0);void 0===a.i.jb&&(a.i.jb=-1);void 0===a.i.lb&&(a.i.lb=-1);a.B.fb=0<=a.i.vb&&0<a.i.jb;a.B.fb&&(a.i.ub=0,a.i.kb=a.i.vb-a.I)}
m.ma=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.L[b]=c;a=!0;break;case "run":this.L[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.A.oa)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.eb);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.oa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.eb?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.sa?d.ga(!0):d.Wa(!0))};a= function kc(a,b){if(a.B.fb){var c=!1;a.i.ub=a.i.ub+a.ac()|0;a.i.kb-=b;0>=a.i.kb&&(a.i.kb+=a.i.jb,c=!0);0<=a.i.lb&&a.i.lb<=wc(a)&&(a.i.jb=a.i.lb=-1,hc(a),a.ga(),c=!0);c&&a.g(wc(a)+" cycles: checksum="+q(a.i.ub))}}
!0;break;case "speed":this.L[b]=c;a=!0;break;case "setSpeed":this.L[b]=c,c.onclick=function(){wc(d,d.i.Va<<1,!0)},c.textContent=this.i.Ta.toFixed(2)+"Mhz",a=!0}return a};function xc(a,b,c){a.I+=b;c&&(a.F=a.b=0)} m.ma=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.K[b]=c;a=!0;break;case "run":this.K[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.B.oa)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.B.hb);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.B.oa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.B.hb?"powered yet":"ready yet"+(b.Fb?" (waiting for notification)":""))+".");a=!1}a&&(d.B.sa?d.ga(!0):d.Za(!0))};a=
function yc(a,b){var c=30;c<a.K&&(c=a.K);2>c&&(c=2);var d=1;b&&1<a.i.Va&&a.i.Sa&&(d=a.i.Sa/a.i.Nb);a.i.cc=Math.round(1E3/30);a.i.Dc=Math.floor(a.i.lb/c*d);a.i.Ob=Math.floor(a.i.lb/30*d);a.i.ec=Math.floor(a.i.lb/a.K*d);a.i.dc=Math.floor(a.i.lb/2*d);b||(a.i.kb=a.i.Ob,a.i.wb=a.i.ec,a.i.vb=a.i.dc);a.i.Pb=0}function vc(a){return a.I+a.H+a.F-a.b}function fc(a){a.i.Sa=0;a.I=a.H=a.F=a.b=0;gc(a);wc(a,1)} !0;break;case "speed":this.K[b]=c;a=!0;break;case "setSpeed":this.K[b]=c,c.onclick=function(){xc(d,d.i.Ya<<1,!0)},c.textContent=this.i.Wa.toFixed(2)+"Mhz",a=!0}return a};function yc(a,b,c){a.I+=b;c&&(a.F=a.b=0)}
function wc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Sa/a.i.Ta?b=1:d=!0;a.i.Va=b;b=a.i.Nb*a.i.Va;if(a.i.Ta!=b){a.i.Ta=b;b=a.i.Ta.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Ab()}xc(a,a.H);a.H=0;a.i.gb=ka();a.i.Ua=0;yc(a);return d} function zc(a,b){var c=30;c<a.L&&(c=a.L);2>c&&(c=2);var d=1;b&&1<a.i.Ya&&a.i.Va&&(d=a.i.Va/a.i.Qb);a.i.gc=Math.round(1E3/30);a.i.Kc=Math.floor(a.i.nb/c*d);a.i.Rb=Math.floor(a.i.nb/30*d);a.i.ic=Math.floor(a.i.nb/a.L*d);a.i.hc=Math.floor(a.i.nb/2*d);b||(a.i.mb=a.i.Rb,a.i.xb=a.i.ic,a.i.wb=a.i.hc);a.i.Sb=0}function wc(a){return a.I+a.H+a.F-a.b}function gc(a){a.i.Va=0;a.I=a.H=a.F=a.b=0;hc(a);xc(a,1)}
m.Wa=function(a){if(fb(this,!0)){if(!this.A.sa){wc(this);this.u&&this.u.start(this.i.gb,vc(this));this.A.sa=!0;this.A.Lb=!0;this.C&&this.C.start();var b=this.L.run;b&&(b.textContent="Halt");this.u&&(this.u.Ba(!0),a&&this.u.Ab(!0))}this.i.Pb>=this.i.lb&&yc(this,!0);this.i.xb=0;this.i.Gb=ka();this.i.Ua&&(a=this.i.Gb-this.i.Ua,a>this.i.cc&&(this.i.gb+=a,this.i.gb>this.i.Gb&&(this.i.gb=this.i.Gb)));try{do{this.nb(this.A.bb?1:this.i.Dc);var c=this.F-this.b;this.H+=c;this.i.xb+=c;xc(this,0,!0);uc(this, function xc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Va/a.i.Wa?b=1:d=!0;a.i.Ya=b;b=a.i.Qb*a.i.Ya;if(a.i.Wa!=b){a.i.Wa=b;b=a.i.Wa.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Bb()}yc(a,a.H);a.H=0;a.i.ib=ka();a.i.Xa=0;zc(a);return d}
c);this.i.wb-=c;0>=this.i.wb&&(this.i.wb+=this.i.ec,this.u&&zc(this.u,this.i.Hb++),this.i.Hb>this.K&&(this.i.Hb=0));this.i.vb-=c;0>=this.i.vb&&(this.i.vb+=this.i.dc,this.u&&this.u.Ba());this.i.kb-=c;if(0>=this.i.kb){this.i.kb+=this.i.Ob;break}}while(this.A.sa)}catch(e){this.ga();hc(this);this.u&&this.u.stop(ka(),vc(this));fb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;a=this.aa;this.i.Ua=ka();b=this.i.cc;this.i.xb&&(b=Math.round(b*this.i.xb/this.i.Ob));var b=b-(this.i.Ua-this.i.Gb),d= m.Za=function(a){if(eb(this,!0)){if(!this.B.sa){xc(this);this.u&&this.u.start(this.i.ib,wc(this));this.B.sa=!0;this.B.Ob=!0;this.C&&this.C.start();var b=this.K.run;b&&(b.textContent="Halt");this.u&&(this.u.Ca(!0),a&&this.u.Bb(!0))}this.i.Sb>=this.i.nb&&zc(this,!0);this.i.yb=0;this.i.Hb=ka();this.i.Xa&&(a=this.i.Hb-this.i.Xa,a>this.i.gc&&(this.i.ib+=a,this.i.ib>this.i.Hb&&(this.i.ib=this.i.Hb)));try{do{this.pb(this.B.fb?1:this.i.Kc);var c=this.F-this.b;this.H+=c;this.i.yb+=c;yc(this,0,!0);kc(this,
this.i.Ua-this.i.gb;d&&(this.i.Sa=Math.round(this.H/(10*d))/100,864E5<=d&&(this.I=0,wc(this)));if(0>b||this.i.Sa<this.i.Ta)b=0;this.i.Pb+=this.i.xb;this.i.Ua+=b;c(a,b)}else hc(this),this.u&&this.u.stop(ka(),vc(this))};m.nb=function(){return 0};m.ga=function(a){gb(this,!0);this.F-=this.b;this.b=0;xc(this,this.H);this.H=0;if(this.A.sa){this.A.sa=!1;this.C&&this.C.stop();var b=this.L.run;b&&(b.textContent="Run")}this.A.Db=a};function hc(a,b){a.u&&(zc(a.u,-1),a.u.Ba(b))} c);this.i.xb-=c;0>=this.i.xb&&(this.i.xb+=this.i.ic,this.u&&Ac(this.u,this.i.Ib++),this.i.Ib>this.L&&(this.i.Ib=0));this.i.wb-=c;0>=this.i.wb&&(this.i.wb+=this.i.hc,this.u&&this.u.Ca());this.i.mb-=c;if(0>=this.i.mb){this.i.mb+=this.i.Rb;break}}while(this.B.sa)}catch(e){this.ga();ic(this);this.u&&this.u.stop(ka(),wc(this));eb(this,!1);hb(this,e.stack||e.message);return}c=setTimeout;a=this.aa;this.i.Xa=ka();b=this.i.gc;this.i.yb&&(b=Math.round(b*this.i.yb/this.i.Rb));var b=b-(this.i.Xa-this.i.Hb),d=
function Ac(a){this.fb=+a.model||8080;cc.call(this,a,1E6);this.T=Bc;fc(this);this.A.Db=this.A.xc=!1;this.Y=0;this.J=[];this.W=0;Cc(this)}Wa(Ac,cc);function Dc(a,b){a.J.push(b)}m=Ac.prototype;m.reset=function(){this.A.sa&&this.ga();Cc(this);fc(this);this.A.cb=!1;this.parent.reset.call(this)};function Cc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.V=0;a.fa=0;G(a,a.W);Ec(a,0);a.w=0}function Fc(a,b){a.W=b;G(a,b)} this.i.Xa-this.i.ib;d&&(this.i.Va=Math.round(this.H/(10*d))/100,864E5<=d&&(this.I=0,xc(this)));if(0>b||this.i.Va<this.i.Wa)b=0;this.i.Sb+=this.i.yb;this.i.Xa+=b;c(a,b)}else ic(this),this.u&&this.u.stop(ka(),wc(this))};m.pb=function(){return 0};m.ga=function(a){fb(this,!0);this.F-=this.b;this.b=0;yc(this,this.H);this.H=0;if(this.B.sa){this.B.sa=!1;this.C&&this.C.stop();var b=this.K.run;b&&(b.textContent="Run")}this.B.Eb=a};function ic(a,b){a.u&&(Ac(a.u,-1),a.u.Ca(b))}
m.Xb=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.V|0;return a=a+this.fa+this.M+Gc(this)|0}; function Bc(a){this.Ga=+a.model||8080;dc.call(this,a,1E6);this.T=Cc;gc(this);this.B.Eb=this.B.Ec=!1;this.Y=0;this.J=[];this.W=0;Dc(this)}Wa(Bc,dc);function Ec(a,b){a.J.push(b)}m=Bc.prototype;m.reset=function(){this.B.sa&&this.ga();Dc(this);gc(this);this.B.gb=!1;this.parent.reset.call(this)};function Dc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.V=0;a.fa=0;H(a,a.W);Fc(a,0);a.w=0}function Gc(a,b){a.W=b;H(a,b)}
m.save=function(){var a=new Hc(this);H(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.V,this.fa,this.M,Gc(this)]);H(a,1,[this.w,this.I,this.i.Va]);for(var b=this.B,c=0,d=[],e=0;e<b.K;e++){var f=b.U[e];if(f.Fa||f.Vb){d[c++]=e;var h=c++;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}}d[h]=f}}H(a,2,d);return a.data()}; m.ac=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.V|0;return a=a+this.fa+this.M+Hc(this)|0};
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.V=b[6];this.fa=b[7]&65535;G(this,b[8]);Ec(this,b[9]);b=a[1];this.w=b[0];this.I=b[1];wc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.W){for(var f=0,h=Array(b.W),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.U[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; m.save=function(){var a=new I(this);J(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.V,this.fa,this.M,Hc(this)]);J(a,1,[this.w,this.I,this.i.Ya]);for(var b=this.A,c=0,d=[],e=0;e<b.L;e++){var f=b.U[e];if(f.Ja||f.Zb){d[c++]=e;var h=c++;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}}d[h]=f}}J(a,2,d);return a.data()};
m.ma=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.L[b]=c;this.Y++;d=!0;break;default:d=this.parent.ma.call(this,a,b,c)}return d};function Ic(a){return a.N<<8|a.O}function Jc(a,b){a.N=b>>8&255;a.O=b&255}function Kc(a){return a.P<<8|a.R}function Lc(a,b){a.P=b>>8&255;a.R=b&255}function I(a){return a.S<<8|a.V} m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.V=b[6];this.fa=b[7]&65535;H(this,b[8]);Fc(this,b[9]);b=a[1];this.w=b[0];this.I=b[1];xc(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.W){for(var f=0,h=Array(b.W),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.U[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
function Mc(a,b){a.S=b>>8&255;a.V=b&255}function G(a,b){a.M=b&65535}function J(a){return a.Z&256?1:0}function Nc(a,b){a.Z=a.Z&255|b}function Oc(a){return mb[a.ba&255]?4:0}function Pc(a){return(a.ba^a.pa)&16?16:0}function Qc(a){return a.Z&255?0:64}function Rc(a){return a.ba&128?128:0}function Gc(a){return a.ta&-214|Rc(a)|Qc(a)|Pc(a)|Oc(a)|J(a)}function Ec(a,b){a.Z=a.ba=a.pa=0;b&1&&(a.Z|=256);b&4||(a.ba|=1);b&16&&(a.pa|=16);b&64||(a.Z|=255);b&128&&(a.ba^=192);a.ta=a.ta&-726|b&512|2} m.ma=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.K[b]=c;this.Y++;d=!0;break;default:d=this.parent.ma.call(this,a,b,c)}return d};function Ic(a){return a.N<<8|a.O}function Jc(a,b){a.N=b>>8&255;a.O=b&255}function Kc(a){return a.P<<8|a.R}function Lc(a,b){a.P=b>>8&255;a.R=b&255}function K(a){return a.S<<8|a.V}
function Sc(a,b){a.pa=a.j^b;return a.ba=(a.Z=a.j+b)&255}function Tc(a,b){a.pa=a.j^b;return a.ba=(a.Z=a.j+b+(a.Z&256?1:0))&255}function Uc(a,b){a.Z=a.ba=a.pa=a.j&b;(a.j|b)&8&&(a.pa^=16);return a.Z}function Vc(a,b){a.pa=b^255;b=a.ba=b+255&255;a.Z=a.Z&-256|b;return b}function Wc(a,b){a.pa=b;b=a.ba=b+1&255;a.Z=a.Z&-256|b;return b}function Xc(a,b){return a.ba=a.Z=a.pa=a.j|b}function L(a,b){b^=255;a.pa=a.j^b;return a.ba=(a.Z=a.j+b+1^256)&255} function Mc(a,b){a.S=b>>8&255;a.V=b&255}function H(a,b){a.M=b&65535}function Nc(a){return a.Z&256?1:0}function Oc(a,b){a.Z=a.Z&255|b}function Pc(a){return lb[a.ba&255]?4:0}function Qc(a){return(a.ba^a.pa)&16?16:0}function Rc(a){return a.Z&255?0:64}function Sc(a){return a.ba&128?128:0}function Hc(a){return a.ta&-214|Sc(a)|Rc(a)|Qc(a)|Pc(a)|Nc(a)}function Fc(a,b){a.Z=a.ba=a.pa=0;b&1&&(a.Z|=256);b&4||(a.ba|=1);b&16&&(a.pa|=16);b&64||(a.Z|=255);b&128&&(a.ba^=192);a.ta=a.ta&-726|b&512|2}
function Yc(a,b){b^=255;a.pa=a.j^b;return a.ba=(a.Z=a.j+b+(a.Z&256?0:1)^256)&255}function Zc(a,b){return a.ba=a.Z=a.pa=a.j^b}m.X=function(a){return this.B.X(a)};m.na=function(a,b){this.B.na(a,b)};function M(a){var b=a.X(a.M);G(a,a.M+1);return b}function N(a){var b=a.B.La(a.M);G(a,a.M+2);return b}function O(a){var b=a.B.La(a.fa);a.fa=a.fa+2&65535;return b}function Q(a,b){a.fa=a.fa-2&65535;a.B.Ib(a.fa,b)} function Tc(a,b){a.pa=a.j^b;return a.ba=(a.Z=a.j+b)&255}function Uc(a,b){a.pa=a.j^b;return a.ba=(a.Z=a.j+b+(a.Z&256?1:0))&255}function Vc(a,b){a.Z=a.ba=a.pa=a.j&b;(a.j|b)&8&&(a.pa^=16);return a.Z}function Wc(a,b){a.pa=b^255;b=a.ba=b+255&255;a.Z=a.Z&-256|b;return b}function Xc(a,b){a.pa=b;b=a.ba=b+1&255;a.Z=a.Z&-256|b;return b}function Yc(a,b){return a.ba=a.Z=a.pa=a.j|b}function M(a,b){b^=255;a.pa=a.j^b;return a.ba=(a.Z=a.j+b+1^256)&255}
function R(a,b,c,d){d=d||2;a.L[b]&&(void 0===c&&(kb(a,"Value for "+b+" is invalid"),a.ga()),c=!a.A.sa||a.A.Wb?q(c,d):"--------".substr(0,d),a.L[b].textContent!=c&&(a.L[b].textContent=c))} function Zc(a,b){b^=255;a.pa=a.j^b;return a.ba=(a.Z=a.j+b+(a.Z&256?0:1)^256)&255}function $c(a,b){return a.ba=a.Z=a.pa=a.j^b}m.X=function(a){return this.A.X(a)};m.na=function(a,b){this.A.na(a,b)};function N(a){var b=a.X(a.M);H(a,a.M+1);return b}function O(a){var b=a.A.Na(a.M);H(a,a.M+2);return b}function Q(a){var b=a.A.Na(a.fa);a.fa=a.fa+2&65535;return b}function R(a,b){a.fa=a.fa-2&65535;a.A.Lb(a.fa,b)}
m.Ba=function(a){this.Y&&(a||!this.A.sa||this.A.Wb)&&(R(this,"A",this.j),R(this,"B",this.N),R(this,"C",this.O),R(this,"BC",Ic(this),4),R(this,"D",this.P),R(this,"E",this.R),R(this,"DE",Kc(this),4),R(this,"H",this.S),R(this,"L",this.V),R(this,"HL",I(this),4),R(this,"SP",this.fa,4),R(this,"PC",this.M,4),a=Gc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.L.speed)a.textContent= function S(a,b,c,d){d=d||2;a.K[b]&&(void 0===c&&(hb(a,"Value for "+b+" is invalid"),a.ga()),c=!a.B.sa||a.B.$b?q(c,d):"--------".substr(0,d),a.K[b].textContent!=c&&(a.K[b].textContent=c))}
this.A.sa&&this.i.Sa?this.i.Sa.toFixed(2)+"Mhz":"Stopped"}; m.Ca=function(a){this.Y&&(a||!this.B.sa||this.B.$b)&&(S(this,"A",this.j),S(this,"B",this.N),S(this,"C",this.O),S(this,"BC",Ic(this),4),S(this,"D",this.P),S(this,"E",this.R),S(this,"DE",Kc(this),4),S(this,"H",this.S),S(this,"L",this.V),S(this,"HL",K(this),4),S(this,"SP",this.fa,4),S(this,"PC",this.M,4),a=Hc(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.K.speed)a.textContent=
m.nb=function(a){this.A.Db=!0;var b=this.A.xc=this.G&&$c(this.G),c=a?this.A.Lb?0:1:-1;this.A.Lb=!1;this.F=this.b=a;do{if(this.w){var d;this.w&8&&this.ta&512?(d=199|(this.w&7)<<3,this.w&=-16,this.ta&=-513,this.T[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.w&16){this.b=0;break}}if(b){if(sd(this.G,this.M,c)){this.ga();break}c=1}this.T[M(this)].call(this)}while(0<this.b);return this.A.Db?this.F-this.b:void 0===this.A.Db?0:-1}; this.B.sa&&this.i.Va?this.i.Va.toFixed(2)+"Mhz":"Stopped"};
Ha(function(){for(var a=C(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ac(d);ab(d,c)}});function td(){this.b-=4}function ud(){G(this,N(this));this.b-=10}function vd(){G(this,O(this));this.b-=10}function wd(){var a=N(this);Q(this,this.M);G(this,a);this.b-=17} m.pb=function(a){this.B.Eb=!0;var b=this.B.Ec=this.G&&ad(this.G),c=a?this.B.Ob?0:1:-1;this.B.Ob=!1;this.F=this.b=a;do{if(this.w){var d;this.w&8&&this.ta&512?(d=199|(this.w&7)<<3,this.w&=-16,this.ta&=-513,this.T[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.w&16){this.b=0;break}}if(b){if(bd(this.G,this.M,c)){this.ga();break}c=1}this.T[N(this)].call(this)}while(0<this.b);return this.B.Eb?this.F-this.b:void 0===this.B.Eb?0:-1};
var Bc=[td,function(){Jc(this,N(this));this.b-=10},function(){this.na(Ic(this),this.j);this.b-=7},function(){Jc(this,Ic(this)+1);this.b-=5},function(){this.N=Wc(this,this.N);this.b-=5},function(){this.N=Vc(this,this.N);this.b-=5},function(){this.N=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;Nc(this,a&256);this.b-=4},td,function(){var a;Mc(this,a=I(this)+Ic(this));Nc(this,a>>8&256);this.b-=10},function(){this.j=this.X(Ic(this));this.b-=7},function(){Jc(this,Ic(this)-1);this.b-= Ha(function(){for(var a=C(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Bc(d);ab(d,c)}});function ud(){this.b-=4}function vd(){H(this,O(this));this.b-=10}function wd(){H(this,Q(this));this.b-=10}function xd(){var a=O(this);R(this,this.M);H(this,a);this.b-=17}
5},function(){this.O=Wc(this,this.O);this.b-=5},function(){this.O=Vc(this,this.O);this.b-=5},function(){this.O=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Nc(this,a);this.b-=4},td,function(){Lc(this,N(this));this.b-=10},function(){this.na(Kc(this),this.j);this.b-=7},function(){Lc(this,Kc(this)+1);this.b-=5},function(){this.P=Wc(this,this.P);this.b-=5},function(){this.P=Vc(this,this.P);this.b-=5},function(){this.P=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255| var Cc=[ud,function(){Jc(this,O(this));this.b-=10},function(){this.na(Ic(this),this.j);this.b-=7},function(){Jc(this,Ic(this)+1);this.b-=5},function(){this.N=Xc(this,this.N);this.b-=5},function(){this.N=Wc(this,this.N);this.b-=5},function(){this.N=N(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;Oc(this,a&256);this.b-=4},ud,function(){var a;Mc(this,a=K(this)+Ic(this));Oc(this,a>>8&256);this.b-=10},function(){this.j=this.X(Ic(this));this.b-=7},function(){Jc(this,Ic(this)-1);this.b-=
J(this);Nc(this,a&256);this.b-=4},td,function(){var a;Mc(this,a=I(this)+Kc(this));Nc(this,a>>8&256);this.b-=10},function(){this.j=this.X(Kc(this));this.b-=7},function(){Lc(this,Kc(this)-1);this.b-=5},function(){this.R=Wc(this,this.R);this.b-=5},function(){this.R=Vc(this,this.R);this.b-=5},function(){this.R=M(this);this.b-=7},function(){var a=this.j<<8;this.j=(J(this)<<8|this.j)>>1;Nc(this,a&256);this.b-=4},td,function(){Mc(this,N(this));this.b-=10},function(){var a=N(this);this.B.Ib(a,I(this));this.b-= 5},function(){this.O=Xc(this,this.O);this.b-=5},function(){this.O=Wc(this,this.O);this.b-=5},function(){this.O=N(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Oc(this,a);this.b-=4},ud,function(){Lc(this,O(this));this.b-=10},function(){this.na(Kc(this),this.j);this.b-=7},function(){Lc(this,Kc(this)+1);this.b-=5},function(){this.P=Xc(this,this.P);this.b-=5},function(){this.P=Wc(this,this.P);this.b-=5},function(){this.P=N(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|
16},function(){Mc(this,I(this)+1);this.b-=5},function(){this.S=Wc(this,this.S);this.b-=5},function(){this.S=Vc(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=0,b=J(this);if(Pc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Sc(this,a);Nc(this,b?256:0);this.b-=4},td,function(){var a;Mc(this,a=I(this)+I(this));Nc(this,a>>8&256);this.b-=10},function(){var a;a=N(this);a=this.B.La(a);Mc(this,a);this.b-=16},function(){Mc(this,I(this)-1);this.b-=5},function(){this.V= Nc(this);Oc(this,a&256);this.b-=4},ud,function(){var a;Mc(this,a=K(this)+Kc(this));Oc(this,a>>8&256);this.b-=10},function(){this.j=this.X(Kc(this));this.b-=7},function(){Lc(this,Kc(this)-1);this.b-=5},function(){this.R=Xc(this,this.R);this.b-=5},function(){this.R=Wc(this,this.R);this.b-=5},function(){this.R=N(this);this.b-=7},function(){var a=this.j<<8;this.j=(Nc(this)<<8|this.j)>>1;Oc(this,a&256);this.b-=4},ud,function(){Mc(this,O(this));this.b-=10},function(){var a=O(this);this.A.Lb(a,K(this));
Wc(this,this.V);this.b-=5},function(){this.V=Vc(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},td,function(){this.fa=N(this)&65535;this.b-=10},function(){this.na(N(this),this.j);this.b-=13},function(){this.fa=this.fa+1&65535;this.b-=5},function(){var a=I(this);this.na(a,Wc(this,this.X(a)));this.b-=10},function(){var a=I(this);this.na(a,Vc(this,this.X(a)));this.b-=10},function(){this.na(I(this),M(this));this.b-=10},function(){this.Z|=256;this.b-= this.b-=16},function(){Mc(this,K(this)+1);this.b-=5},function(){this.S=Xc(this,this.S);this.b-=5},function(){this.S=Wc(this,this.S);this.b-=5},function(){this.S=N(this);this.b-=7},function(){var a=0,b=Nc(this);if(Qc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Tc(this,a);Oc(this,b?256:0);this.b-=4},ud,function(){var a;Mc(this,a=K(this)+K(this));Oc(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.A.Na(a);Mc(this,a);this.b-=16},function(){Mc(this,K(this)-1);this.b-=5},function(){this.V=
4},td,function(){var a;Mc(this,a=I(this)+this.fa);Nc(this,a>>8&256);this.b-=10},function(){this.j=this.X(N(this));this.b-=13},function(){this.fa=this.fa-1&65535;this.b-=5},function(){this.j=Wc(this,this.j);this.b-=5},function(){this.j=Vc(this,this.j);this.b-=5},function(){this.j=M(this);this.b-=7},function(){Nc(this,J(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-= Xc(this,this.V);this.b-=5},function(){this.V=Wc(this,this.V);this.b-=5},function(){this.V=N(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},ud,function(){this.fa=O(this)&65535;this.b-=10},function(){this.na(O(this),this.j);this.b-=13},function(){this.fa=this.fa+1&65535;this.b-=5},function(){var a=K(this);this.na(a,Xc(this,this.X(a)));this.b-=10},function(){var a=K(this);this.na(a,Wc(this,this.X(a)));this.b-=10},function(){this.na(K(this),N(this));this.b-=10},function(){this.Z|=256;this.b-=
5},function(){this.N=this.V;this.b-=5},function(){this.N=this.X(I(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.V;this.b-=5},function(){this.O=this.X(I(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P= 4},ud,function(){var a;Mc(this,a=K(this)+this.fa);Oc(this,a>>8&256);this.b-=10},function(){this.j=this.X(O(this));this.b-=13},function(){this.fa=this.fa-1&65535;this.b-=5},function(){this.j=Xc(this,this.j);this.b-=5},function(){this.j=Wc(this,this.j);this.b-=5},function(){this.j=N(this);this.b-=7},function(){Oc(this,Nc(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-=
this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.X(I(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.X(I(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S= 5},function(){this.N=this.V;this.b-=5},function(){this.N=this.X(K(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.V;this.b-=5},function(){this.O=this.X(K(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=
this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.X(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.V=this.N;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.b-=5},function(){this.V=this.X(I(this));this.b-=7},function(){this.V=this.j; this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.X(K(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.X(K(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=
this.b-=5},function(){this.na(I(this),this.N);this.b-=7},function(){this.na(I(this),this.O);this.b-=7},function(){this.na(I(this),this.P);this.b-=7},function(){this.na(I(this),this.R);this.b-=7},function(){this.na(I(this),this.S);this.b-=7},function(){this.na(I(this),this.V);this.b-=7},function(){var a=this.M-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.w|=16;this.b-=7;this.G&&eb(this,-2147483648)?(G(this,a),this.G.ga()):this.ta&512||(this.G&&G(this,a),this.ga())}, this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.X(K(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.V=this.N;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.b-=5},function(){this.V=this.X(K(this));this.b-=7},function(){this.V=this.j;
function(){this.na(I(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.X(I(this));this.b-=7},function(){this.b-=5},function(){this.j=Sc(this,this.N);this.b-=4},function(){this.j=Sc(this,this.O);this.b-=4},function(){this.j=Sc(this,this.P);this.b-=4},function(){this.j=Sc(this,this.R);this.b-= this.b-=5},function(){this.na(K(this),this.N);this.b-=7},function(){this.na(K(this),this.O);this.b-=7},function(){this.na(K(this),this.P);this.b-=7},function(){this.na(K(this),this.R);this.b-=7},function(){this.na(K(this),this.S);this.b-=7},function(){this.na(K(this),this.V);this.b-=7},function(){var a=this.M-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.w|=16;this.b-=7;this.G&&db(this,-2147483648)?(H(this,a),this.G.ga()):this.ta&512||(this.G&&H(this,a),this.ga())},
4},function(){this.j=Sc(this,this.S);this.b-=4},function(){this.j=Sc(this,this.V);this.b-=4},function(){this.j=Sc(this,this.X(I(this)));this.b-=7},function(){this.j=Sc(this,this.j);this.b-=4},function(){this.j=Tc(this,this.N);this.b-=4},function(){this.j=Tc(this,this.O);this.b-=4},function(){this.j=Tc(this,this.P);this.b-=4},function(){this.j=Tc(this,this.R);this.b-=4},function(){this.j=Tc(this,this.S);this.b-=4},function(){this.j=Tc(this,this.V);this.b-=4},function(){this.j=Tc(this,this.X(I(this))); function(){this.na(K(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.X(K(this));this.b-=7},function(){this.b-=5},function(){this.j=Tc(this,this.N);this.b-=4},function(){this.j=Tc(this,this.O);this.b-=4},function(){this.j=Tc(this,this.P);this.b-=4},function(){this.j=Tc(this,this.R);this.b-=
this.b-=7},function(){this.j=Tc(this,this.j);this.b-=4},function(){this.j=L(this,this.N);this.b-=4},function(){this.j=L(this,this.O);this.b-=4},function(){this.j=L(this,this.P);this.b-=4},function(){this.j=L(this,this.R);this.b-=4},function(){this.j=L(this,this.S);this.b-=4},function(){this.j=L(this,this.V);this.b-=4},function(){this.j=L(this,this.X(I(this)));this.b-=7},function(){this.j=L(this,this.j);this.b-=4},function(){this.j=Yc(this,this.N);this.b-=4},function(){this.j=Yc(this,this.O);this.b-= 4},function(){this.j=Tc(this,this.S);this.b-=4},function(){this.j=Tc(this,this.V);this.b-=4},function(){this.j=Tc(this,this.X(K(this)));this.b-=7},function(){this.j=Tc(this,this.j);this.b-=4},function(){this.j=Uc(this,this.N);this.b-=4},function(){this.j=Uc(this,this.O);this.b-=4},function(){this.j=Uc(this,this.P);this.b-=4},function(){this.j=Uc(this,this.R);this.b-=4},function(){this.j=Uc(this,this.S);this.b-=4},function(){this.j=Uc(this,this.V);this.b-=4},function(){this.j=Uc(this,this.X(K(this)));
4},function(){this.j=Yc(this,this.P);this.b-=4},function(){this.j=Yc(this,this.R);this.b-=4},function(){this.j=Yc(this,this.S);this.b-=4},function(){this.j=Yc(this,this.V);this.b-=4},function(){this.j=Yc(this,this.X(I(this)));this.b-=7},function(){this.j=Yc(this,this.j);this.b-=4},function(){this.j=Uc(this,this.N);this.b-=4},function(){this.j=Uc(this,this.O);this.b-=4},function(){this.j=Uc(this,this.P);this.b-=4},function(){this.j=Uc(this,this.R);this.b-=4},function(){this.j=Uc(this,this.S);this.b-= this.b-=7},function(){this.j=Uc(this,this.j);this.b-=4},function(){this.j=M(this,this.N);this.b-=4},function(){this.j=M(this,this.O);this.b-=4},function(){this.j=M(this,this.P);this.b-=4},function(){this.j=M(this,this.R);this.b-=4},function(){this.j=M(this,this.S);this.b-=4},function(){this.j=M(this,this.V);this.b-=4},function(){this.j=M(this,this.X(K(this)));this.b-=7},function(){this.j=M(this,this.j);this.b-=4},function(){this.j=Zc(this,this.N);this.b-=4},function(){this.j=Zc(this,this.O);this.b-=
4},function(){this.j=Uc(this,this.V);this.b-=4},function(){this.j=Uc(this,this.X(I(this)));this.b-=7},function(){this.j=Uc(this,this.j);this.b-=4},function(){this.j=Zc(this,this.N);this.b-=4},function(){this.j=Zc(this,this.O);this.b-=4},function(){this.j=Zc(this,this.P);this.b-=4},function(){this.j=Zc(this,this.R);this.b-=4},function(){this.j=Zc(this,this.S);this.b-=4},function(){this.j=Zc(this,this.V);this.b-=4},function(){this.j=Zc(this,this.X(I(this)));this.b-=7},function(){this.j=Zc(this,this.j); 4},function(){this.j=Zc(this,this.P);this.b-=4},function(){this.j=Zc(this,this.R);this.b-=4},function(){this.j=Zc(this,this.S);this.b-=4},function(){this.j=Zc(this,this.V);this.b-=4},function(){this.j=Zc(this,this.X(K(this)));this.b-=7},function(){this.j=Zc(this,this.j);this.b-=4},function(){this.j=Vc(this,this.N);this.b-=4},function(){this.j=Vc(this,this.O);this.b-=4},function(){this.j=Vc(this,this.P);this.b-=4},function(){this.j=Vc(this,this.R);this.b-=4},function(){this.j=Vc(this,this.S);this.b-=
this.b-=4},function(){this.j=Xc(this,this.N);this.b-=4},function(){this.j=Xc(this,this.O);this.b-=4},function(){this.j=Xc(this,this.P);this.b-=4},function(){this.j=Xc(this,this.R);this.b-=4},function(){this.j=Xc(this,this.S);this.b-=4},function(){this.j=Xc(this,this.V);this.b-=4},function(){this.j=Xc(this,this.X(I(this)));this.b-=7},function(){this.j=Xc(this,this.j);this.b-=4},function(){L(this,this.N);this.b-=4},function(){L(this,this.O);this.b-=4},function(){L(this,this.P);this.b-=4},function(){L(this, 4},function(){this.j=Vc(this,this.V);this.b-=4},function(){this.j=Vc(this,this.X(K(this)));this.b-=7},function(){this.j=Vc(this,this.j);this.b-=4},function(){this.j=$c(this,this.N);this.b-=4},function(){this.j=$c(this,this.O);this.b-=4},function(){this.j=$c(this,this.P);this.b-=4},function(){this.j=$c(this,this.R);this.b-=4},function(){this.j=$c(this,this.S);this.b-=4},function(){this.j=$c(this,this.V);this.b-=4},function(){this.j=$c(this,this.X(K(this)));this.b-=7},function(){this.j=$c(this,this.j);
this.R);this.b-=4},function(){L(this,this.S);this.b-=4},function(){L(this,this.V);this.b-=4},function(){L(this,this.X(I(this)));this.b-=7},function(){L(this,this.j);this.b-=4},function(){Qc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Jc(this,O(this));this.b-=10},function(){var a=N(this);Qc(this)||G(this,a);this.b-=10},ud,function(){var a=N(this);Qc(this)||(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},function(){Q(this,Ic(this));this.b-=11},function(){this.j=Sc(this,M(this));this.b-= this.b-=4},function(){this.j=Yc(this,this.N);this.b-=4},function(){this.j=Yc(this,this.O);this.b-=4},function(){this.j=Yc(this,this.P);this.b-=4},function(){this.j=Yc(this,this.R);this.b-=4},function(){this.j=Yc(this,this.S);this.b-=4},function(){this.j=Yc(this,this.V);this.b-=4},function(){this.j=Yc(this,this.X(K(this)));this.b-=7},function(){this.j=Yc(this,this.j);this.b-=4},function(){M(this,this.N);this.b-=4},function(){M(this,this.O);this.b-=4},function(){M(this,this.P);this.b-=4},function(){M(this,
7},function(){Q(this,this.M);G(this,0);this.b-=11},function(){Qc(this)&&(G(this,O(this)),this.b-=6);this.b-=5},vd,function(){var a=N(this);Qc(this)&&G(this,a);this.b-=10},ud,function(){var a=N(this);Qc(this)&&(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},wd,function(){this.j=Tc(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,8);this.b-=11},function(){J(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Lc(this,O(this));this.b-=10},function(){var a=N(this);J(this)||G(this,a);this.b-= this.R);this.b-=4},function(){M(this,this.S);this.b-=4},function(){M(this,this.V);this.b-=4},function(){M(this,this.X(K(this)));this.b-=7},function(){M(this,this.j);this.b-=4},function(){Rc(this)||(H(this,Q(this)),this.b-=6);this.b-=5},function(){Jc(this,Q(this));this.b-=10},function(){var a=O(this);Rc(this)||H(this,a);this.b-=10},vd,function(){var a=O(this);Rc(this)||(R(this,this.M),H(this,a),this.b-=6);this.b-=11},function(){R(this,Ic(this));this.b-=11},function(){this.j=Tc(this,N(this));this.b-=
10},function(){var a=M(this);Cb(this.B,a,this.j,this.M+-2&65535);this.b-=10},function(){var a=N(this);J(this)||(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},function(){Q(this,Kc(this));this.b-=11},function(){this.j=L(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,16);this.b-=11},function(){J(this)&&(G(this,O(this)),this.b-=6);this.b-=5},vd,function(){var a=N(this);J(this)&&G(this,a);this.b-=10},function(){var a=M(this);this.j=zb(this.B,a,this.M+-2&65535)&255;this.b-=10},function(){var a= 7},function(){R(this,this.M);H(this,0);this.b-=11},function(){Rc(this)&&(H(this,Q(this)),this.b-=6);this.b-=5},wd,function(){var a=O(this);Rc(this)&&H(this,a);this.b-=10},vd,function(){var a=O(this);Rc(this)&&(R(this,this.M),H(this,a),this.b-=6);this.b-=11},xd,function(){this.j=Uc(this,N(this));this.b-=7},function(){R(this,this.M);H(this,8);this.b-=11},function(){Nc(this)||(H(this,Q(this)),this.b-=6);this.b-=5},function(){Lc(this,Q(this));this.b-=10},function(){var a=O(this);Nc(this)||H(this,a);this.b-=
N(this);J(this)&&(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},wd,function(){this.j=Yc(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,24);this.b-=11},function(){Oc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Mc(this,O(this));this.b-=10},function(){var a=N(this);Oc(this)||G(this,a);this.b-=10},function(){var a=O(this);Q(this,I(this));Mc(this,a);this.b-=18},function(){var a=N(this);Oc(this)||(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},function(){Q(this,I(this));this.b-= 10},function(){var a=N(this);Db(this.A,a,this.j,this.M+-2&65535);this.b-=10},function(){var a=O(this);Nc(this)||(R(this,this.M),H(this,a),this.b-=6);this.b-=11},function(){R(this,Kc(this));this.b-=11},function(){this.j=M(this,N(this));this.b-=7},function(){R(this,this.M);H(this,16);this.b-=11},function(){Nc(this)&&(H(this,Q(this)),this.b-=6);this.b-=5},wd,function(){var a=O(this);Nc(this)&&H(this,a);this.b-=10},function(){var a=N(this);this.j=zb(this.A,a,this.M+-2&65535)&255;this.b-=10},function(){var a=
11},function(){this.j=Uc(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,32);this.b-=11},function(){Oc(this)&&(G(this,O(this)),this.b-=6);this.b-=5},function(){G(this,I(this));this.b-=5},function(){var a=N(this);Oc(this)&&G(this,a);this.b-=10},function(){var a=I(this);Mc(this,Kc(this));Lc(this,a);this.b-=5},function(){var a=N(this);Oc(this)&&(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},wd,function(){this.j=Zc(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,40);this.b-=11}, O(this);Nc(this)&&(R(this,this.M),H(this,a),this.b-=6);this.b-=11},xd,function(){this.j=Zc(this,N(this));this.b-=7},function(){R(this,this.M);H(this,24);this.b-=11},function(){Pc(this)||(H(this,Q(this)),this.b-=6);this.b-=5},function(){Mc(this,Q(this));this.b-=10},function(){var a=O(this);Pc(this)||H(this,a);this.b-=10},function(){var a=Q(this);R(this,K(this));Mc(this,a);this.b-=18},function(){var a=O(this);Pc(this)||(R(this,this.M),H(this,a),this.b-=6);this.b-=11},function(){R(this,K(this));this.b-=
function(){Rc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Ec(this,a&255|this.ta&-256);this.j=a>>8;this.b-=10},function(){var a=N(this);Rc(this)||G(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=N(this);Rc(this)||(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},function(){Q(this,Gc(this)&255|this.j<<8);this.b-=11},function(){this.j=Xc(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,48);this.b-=11},function(){Rc(this)&&(G(this,O(this)), 11},function(){this.j=Vc(this,N(this));this.b-=7},function(){R(this,this.M);H(this,32);this.b-=11},function(){Pc(this)&&(H(this,Q(this)),this.b-=6);this.b-=5},function(){H(this,K(this));this.b-=5},function(){var a=O(this);Pc(this)&&H(this,a);this.b-=10},function(){var a=K(this);Mc(this,Kc(this));Lc(this,a);this.b-=5},function(){var a=O(this);Pc(this)&&(R(this,this.M),H(this,a),this.b-=6);this.b-=11},xd,function(){this.j=$c(this,N(this));this.b-=7},function(){R(this,this.M);H(this,40);this.b-=11},
this.b-=6);this.b-=5},function(){this.fa=I(this)&65535;this.b-=5},function(){var a=N(this);Rc(this)&&G(this,a);this.b-=10},function(){this.ta|=512;this.b-=4},function(){var a=N(this);Rc(this)&&(Q(this,this.M),G(this,a),this.b-=6);this.b-=11},wd,function(){L(this,M(this));this.b-=7},function(){Q(this,this.M);G(this,56);this.b-=11}]; function(){Sc(this)||(H(this,Q(this)),this.b-=6);this.b-=5},function(){var a=Q(this);Fc(this,a&255|this.ta&-256);this.j=a>>8;this.b-=10},function(){var a=O(this);Sc(this)||H(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=O(this);Sc(this)||(R(this,this.M),H(this,a),this.b-=6);this.b-=11},function(){R(this,Hc(this)&255|this.j<<8);this.b-=11},function(){this.j=Yc(this,N(this));this.b-=7},function(){R(this,this.M);H(this,48);this.b-=11},function(){Sc(this)&&(H(this,Q(this)),
function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!xd[b]&&w("Unrecognized ChipSet model: "+b);this.w=xd[b]||U;this.fb=this.w.Ma;a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);D(this)}Wa(S); this.b-=6);this.b-=5},function(){this.fa=K(this)&65535;this.b-=5},function(){var a=O(this);Sc(this)&&H(this,a);this.b-=10},function(){this.ta|=512;this.b-=4},function(){var a=O(this);Sc(this)&&(R(this,this.M),H(this,a),this.b-=6);this.b-=11},xd,function(){M(this,N(this));this.b-=7},function(){R(this,this.M);H(this,56);this.b-=11}];
var U={Ma:1978.1,tc:{Ia:0,Wc:1,$c:16,fd:32,od:64,nd:128,pb:14},Na:{Ia:1,nc:1,sc:2,oc:4,pc:16,qc:32,rc:64,pb:8},uc:{Ia:2,Vc:3,vd:4,Xc:8,jd:16,kd:32,ld:64,Yc:128,pb:0},rd:{Ia:3},pd:{Ia:2,gd:7},td:{Ia:3,wd:1,sd:2,md:4,ed:8,Zc:16,Tc:32},qd:{Ia:4},ud:{Ia:5,ad:1,bd:2,cd:4,dd:8,xd:16}},yd={Ma:100,Uc:{Ia:66},hd:{Ia:98}},xd={SI1978:U,VT100:yd};S.prototype.ma=function(){return!1}; function U(a){z.call(this,"ChipSet",a,U,32768);var b=a.model;b&&!yd[b]&&w("Unrecognized ChipSet model: "+b);this.w=yd[b]||V;this.Ga=this.w.Da;a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);F(this)}Wa(U);
S.prototype.Ka=function(a,b,c,d){this.B=b;this.b=c;this.G=d;this.u=a;a=this.w.ic;var e;void 0===e&&(e=0);if(a)for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.u[g]?w("Input port "+t(g)+" already registered"):c.u[g]=[h,!1]}e=this.w.jc;var k;void 0===k&&(k=0);if(e)for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.C[d]?w("Output port "+t(d)+" already registered"):f.C[d]=[c,!1]}; var V={Da:1978.1,Ac:{Ia:0,dd:1,hd:16,od:32,wd:64,vd:128,rb:14},Pa:{Ia:1,pc:1,zc:2,vc:4,wc:16,xc:32,yc:64,rb:8},Bc:{Ia:2,cd:3,Ed:4,ed:8,rd:16,sd:32,td:64,fd:128,rb:0},zd:{Ia:3},xd:{Ia:2,pd:7},Bd:{Ia:3,Fd:1,Ad:2,ud:4,nd:8,gd:16,$c:32},yd:{Ia:4},Cd:{Ia:5,jd:1,kd:2,ld:4,md:8,Gd:16}},zd={Da:100,ad:{Ia:66},qd:{Ia:98}},yd={SI1978:V,VT100:zd};U.prototype.ma=function(){return!1};U.prototype.Ma=function(a,b,c,d){this.A=b;this.b=c;this.G=d;this.u=a;yb(b,this,this.w.Jb);Cb(b,this,this.w.Kb)};
S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};S.prototype.Ha=function(a){return a?this.save():!0};U.sb=[[U.tc.pb,U.Na.pb,U.uc.pb,0,0,0,0]];yd.sb=[[0,0]];m=S.prototype;m.reset=function(){this.restore(this.w.sb)||this.ea("reset error")};m.save=function(){var a=new Hc(this);switch(this.fb){case U.Ma:H(a,0,[this.Y,this.C,this.aa,this.F,this.H,this.T,this.W]);break;case yd.Ma:H(a,0,[this.J,this.K])}return a.data()}; U.prototype.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};U.prototype.Ha=function(a){return a?this.save():!0};V.Ua=[[V.Ac.rb,V.Pa.rb,V.Bc.rb,0,0,0,0]];zd.Ua=[[0,0]];m=U.prototype;m.reset=function(){this.restore(this.w.Ua)||this.ca("reset error")};m.save=function(){var a=new I(this);switch(this.Ga){case V.Da:J(a,0,[this.Y,this.C,this.aa,this.F,this.H,this.T,this.W]);break;case zd.Da:J(a,0,[this.J,this.L])}return a.data()};
m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.fb){case U.Ma:return this.Y=b[0],this.C=b[1],this.aa=b[2],this.F=b[3],this.H=b[4],this.T=b[5],this.W=b[6],!0;case yd.Ma:return this.J=b[0],this.K=b[1],!0}return!1};m.start=function(){};m.stop=function(){};function zd(a,b,c){a.C&=~b;c&&(a.C|=b)}m.zc=function(a,b){var c=this.Y;bb(this,a,null,b,"STATUS0",c);return c};m.Ac=function(a,b){var c=this.C;bb(this,a,null,b,"STATUS1",c);return c}; m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.Ga){case V.Da:return this.Y=b[0],this.C=b[1],this.aa=b[2],this.F=b[3],this.H=b[4],this.T=b[5],this.W=b[6],!0;case zd.Da:return this.J=b[0],this.L=b[1],!0}return!1};m.start=function(){};m.stop=function(){};function Ad(a,b,c){a.C&=~b;c&&(a.C|=b)}m.Gc=function(a,b){var c=this.Y;D(this,a,null,b,"STATUS0",c);return c};m.Hc=function(a,b){var c=this.C;D(this,a,null,b,"STATUS1",c);return c};
m.Bc=function(a,b){var c=this.aa;bb(this,a,null,b,"STATUS2",c);return c};m.yc=function(a,b){var c=this.F>>8-this.H&255;bb(this,a,null,b,"SHIFT.RESULT",c);return c};m.Ec=function(a,b,c){bb(this,a,b,c,"SHIFT.COUNT",null);this.H=b};m.Gc=function(a,b,c){bb(this,a,b,c,"SOUND1",null);this.T=b};m.Fc=function(a,b,c){bb(this,a,b,c,"SHIFT.DATA",null);this.F=b<<8|this.F>>8};m.Hc=function(a,b,c){bb(this,a,b,c,"SOUND2",null);this.W=b};m.Ic=function(a,b,c){bb(this,a,b,c,"WATCHDOG",null)}; m.Ic=function(a,b){var c=this.aa;D(this,a,null,b,"STATUS2",c);return c};m.Fc=function(a,b){var c=this.F>>8-this.H&255;D(this,a,null,b,"SHIFT.RESULT",c);return c};m.Lc=function(a,b,c){D(this,a,b,c,"SHIFT.COUNT",null);this.H=b};m.Nc=function(a,b,c){D(this,a,b,c,"SOUND1",null);this.T=b};m.Mc=function(a,b,c){D(this,a,b,c,"SHIFT.DATA",null);this.F=b<<8|this.F>>8};m.Oc=function(a,b,c){D(this,a,b,c,"SOUND2",null);this.W=b};m.Pc=function(a,b,c){D(this,a,b,c,"WATCHDOG",null)};
m.Jc=function(a,b,c){bb(this,a,b,c,"BRIGHTNESS.LATCH",null);this.J=b};m.Kc=function(a,b,c){bb(this,a,b,c,"NVR.LATCH",null);this.K=b};U.ic={0:S.prototype.zc,1:S.prototype.Ac,2:S.prototype.Bc,3:S.prototype.yc};U.jc={2:S.prototype.Ec,3:S.prototype.Gc,4:S.prototype.Fc,5:S.prototype.Hc,6:S.prototype.Ic};yd.ic={};yd.jc={66:S.prototype.Jc,98:S.prototype.Kc};Ha(function(){for(var a=C(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new S(d);ab(d,c)}}); m.Qc=function(a,b,c){D(this,a,b,c,"BRIGHTNESS.LATCH",null);this.J=b};m.Rc=function(a,b,c){D(this,a,b,c,"NVR.LATCH",null);this.L=b};V.Jb={0:U.prototype.Gc,1:U.prototype.Hc,2:U.prototype.Ic,3:U.prototype.Fc};V.Kb={2:U.prototype.Lc,3:U.prototype.Nc,4:U.prototype.Mc,5:U.prototype.Oc,6:U.prototype.Pc};zd.Jb={};zd.Kb={66:U.prototype.Qc,98:U.prototype.Rc};Ha(function(){for(var a=C(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new U(d);ab(d,c)}});
function Ad(a){z.call(this,"ROM",a,Ad);this.u=null;this.H=a.addr;this.C=a.size;this.I=a.writable;this.w=a.alias;this.F=a.file;this.J=ca(this.F);if(this.F){a=this.F;var b=da(this.J);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.F+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Bd(c,a,b,f)})}}Wa(Ad);var Cd=[0,5];Ad.prototype.Ka=function(a,b,c,d){this.B=b;this.b=c;this.G=d;Dd(this)}; function Bd(a){z.call(this,"ROM",a,Bd);this.u=null;this.H=a.addr;this.C=a.size;this.I=a.writable;this.w=a.alias;this.F=a.file;this.J=ba(this.F);if(this.F){a=this.F;var b=ca(this.J);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.F+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Cd(c,a,b,f)})}}Wa(Bd);var Dd=[0,5];Bd.prototype.Ma=function(a,b,c,d){this.A=b;this.b=c;this.G=d;Ed(this)};
Ad.prototype.Ea=function(){if(this.Ja){if(this.G){var a=this.G,b=this.id,c=this.H,d=this.C,e=this.Ja,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=ja(n,k,a.Pa);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.I.push({yd:b,D:c,Cc:d,Ja:e,Sb:f})}delete this.Ja}return!0};Ad.prototype.Ha=function(){return!0}; Bd.prototype.Ba=function(){if(this.La){if(this.G){var a=this.G,b=this.id,c=this.H,d=this.C,e=this.La,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=ja(n,k,a.Ra);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.I.push({Hd:b,D:c,Jc:d,La:e,Wb:f})}delete this.La}return!0};Bd.prototype.Ha=function(){return!0};
function Bd(a,b,c,d){if(d)a.ea("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Mb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c<h.length;c++)a.u[d++]=h[c]&255,a.u[d++]=h[c]>>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.Ja=e.symbols;if(!a.u.length){w("Empty ROM: "+b);return}if(1==a.u.length){w(a.u[0]);return}}catch(g){a.ea("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function Cd(a,b,c,d){if(d)a.ca("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Pb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c<h.length;c++)a.u[d++]=h[c]&255,a.u[d++]=h[c]>>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.La=e.symbols;if(!a.u.length){w("Empty ROM: "+b);return}if(1==a.u.length){w(a.u[0]);return}}catch(g){a.ca("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e<b.length;e++)a.u[e]=aa(b[e],16);Dd(a)}} " ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e<b.length;e++)a.u[e]=aa(b[e],16);Ed(a)}}
function Dd(a){if(!jb(a))if(!a.F)D(a);else if(a.u&&a.B){a.C||(a.C=a.u.length);if(a.u.length!=a.C)kb(a,"ROM size (0x"+q(a.u.length)+") does not match specified size ("+("0x"+q(a.C))+")");else if(Ed(a,a.H)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.C,g=[],k=d.H>>>f.ja;0<h&&k<f.U.length;)g.push(f.U[k++]),h-=f.Aa;f=d.B;d=d.C;h=0;for(e>>>=f.ja;0<d&&e<f.U.length;){k=g[h++];if(!k)break;f.U[e++]=k;d-=f.Aa}}delete a.u}D(a)}} function Ed(a){if(!gb(a))if(!a.F)F(a);else if(a.u&&a.A){a.C||(a.C=a.u.length);if(a.u.length!=a.C)hb(a,"ROM size (0x"+q(a.u.length)+") does not match specified size ("+("0x"+q(a.C))+")");else if(Fd(a,a.H)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.A,h=d.C,g=[],k=d.H>>>f.ja;0<h&&k<f.U.length;)g.push(f.U[k++]),h-=f.Aa;f=d.A;d=d.C;h=0;for(e>>>=f.ja;0<d&&e<f.U.length;){k=g[h++];if(!k)break;f.U[e++]=k;d-=f.Aa}}delete a.u}F(a)}}
function Ed(a,b){if(sb(a.B,b,a.C,a.I?1:Sb)){var c;for(c=0;c<a.u.length;c++)xb(a.B,b+c,a.u[c]);if(a.I&&256==b){for(c=0;c<Cd.length;c++)xb(a.B,Cd[c],118);Dc(a.b,function(a){return function(b){if(0<=Cd.indexOf(b)){var c=!1,h=a.b,g=a.G;if(5==b)switch(c=!0,h.O){case 2:Fd(a,String.fromCharCode(h.R));break;case 9:for(var k=Kc(h),l="",n=255;n--;){var p=a.b.X(k++);if(36==p)break;l+=String.fromCharCode(p)}Fd(a,l);break;default:c=!1}c?vd.call(h):g&&(a.g("\nCP/M vector "+t(b)),G(h,b),g.ga());b=!0}else b=!1;return b}}(a)); function Fd(a,b){if(rb(a.A,b,a.C,a.I?1:Tb)){var c;for(c=0;c<a.u.length;c++)wb(a.A,b+c,a.u[c]);if(a.I&&256==b){for(c=0;c<Dd.length;c++)wb(a.A,Dd[c],118);Ec(a.b,function(a){return function(b){if(0<=Dd.indexOf(b)){var c=!1,h=a.b,g=a.G;if(5==b)switch(c=!0,h.O){case 2:Gd(a,String.fromCharCode(h.R));break;case 9:for(var k=Kc(h),l="",n=255;n--;){var p=a.b.X(k++);if(36==p)break;l+=String.fromCharCode(p)}Gd(a,l);break;default:c=!1}c?wd.call(h):g&&(a.g("\nCP/M vector "+t(b)),H(h,b),g.ga());b=!0}else b=!1;return b}}(a));
Fc(a.b,b)}return!0}return!1}function Fd(a,b){b=b.replace(/\r/g,"");a.za&&(a.za.value+=b,a.za.scrollTop=a.za.scrollHeight)}Ha(function(){for(var a=C(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ad(d);ab(d,c)}});function Gd(a){z.call(this,"RAM",a,Gd);this.w=a.addr;this.C=a.size;this.u=!1}Wa(Gd);m=Gd.prototype;m.Ka=function(a,b,c,d){this.B=b;this.b=c;this.G=d;D(this)};m.Ea=function(a,b){b||this.reset();return!0};m.Ha=function(a){return a?this.save():!0}; Gc(a.b,b)}return!0}return!1}function Gd(a,b){b=b.replace(/\r/g,"");a.za&&(a.za.value+=b,a.za.scrollTop=a.za.scrollHeight)}Ha(function(){for(var a=C(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Bd(d);ab(d,c)}});function Hd(a){z.call(this,"RAM",a,Hd);this.w=a.addr;this.C=a.size;this.u=!1}Wa(Hd);m=Hd.prototype;m.Ma=function(a,b,c,d){this.A=b;this.b=c;this.G=d;F(this)};m.Ba=function(a,b){b||this.reset();return!0};m.Ha=function(a){return a?this.save():!0};
m.reset=function(){!this.u&&this.C&&sb(this.B,this.w,this.C,1)&&(this.u=!0);this.u||w("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ha(function(){for(var a=C(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Gd(d);ab(d,c)}});function Hd(a){z.call(this,"Keyboard",a,Hd,65536);this.reset();D(this)}Wa(Hd);var Id={"1p":49,"2p":50,coin:51,left:37,right:39,fire:32},Jd={65:37,68:39,76:32},Kd={l1:1,l2:2,l3:4,l4:8,locked:16,local:32,online:64}; m.reset=function(){!this.u&&this.C&&rb(this.A,this.w,this.C,1)&&(this.u=!0);this.u||w("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ha(function(){for(var a=C(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Hd(d);ab(d,c)}});function Id(a){z.call(this,"Keyboard",a,Id,65536);this.reset();F(this)}Wa(Id);
Hd.prototype.reset=function(){this.b={}}; var Jd={Oa:{Ia:130,tc:1,sc:2,rc:4,qc:8,uc:16,Vb:32,Dd:64,bd:128}},Kd={"1p":49,"2p":50,coin:51,left:37,right:39,fire:32},Ld={65:37,68:39,76:32},Md={l4:Jd.Oa.tc,l3:Jd.Oa.sc,l2:Jd.Oa.rc,l1:Jd.Oa.qc,locked:Jd.Oa.uc,online:Jd.Oa.Vb,local:~Jd.Oa.Vb};
Hd.prototype.ma=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.L[e]){if("led"==a&&Kd[b])return this.L[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Ld(d,a,!0)},c.onkeyup=function(a){return Ld(d,a,!1)},!0;default:if(void 0!==Id[b])return this.L[e]=c,a=function(a,b){return function(){Md(a,b,!0)}}(this,b),b=function(a,b){return function(){Md(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1}; Id.prototype.ma=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.K[e]){if("led"==a&&Md[b])return this.K[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Nd(d,a,!0)},c.onkeyup=function(a){return Nd(d,a,!1)},!0;default:if(void 0!==Kd[b])return this.K[e]=c,a=function(a,b){return function(){Od(a,b,!0)}}(this,b),b=function(a,b){return function(){Od(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};
Hd.prototype.Ka=function(a,b,c,d){this.G=d;this.C=ob(a,"ChipSet")};function Ld(a,b,c){var d=!0,e;a:{e=b.keyCode;e=Jd[e]||e;for(var f in Id)if(Id[f]===e){e=f;break a}e=null}e&&(d=Md(a,e,c));d||b.preventDefault();return d}function Md(a,b,c){a.b[b]=c;if(a.C)switch(b){case "1p":zd(a.C,U.Na.oc,c);break;case "2p":zd(a.C,U.Na.sc,c);break;case "coin":zd(a.C,U.Na.nc,c);break;case "left":zd(a.C,U.Na.qc,c);break;case "right":zd(a.C,U.Na.rc,c);break;case "fire":zd(a.C,U.Na.pc,c)}return!1} Id.prototype.Ma=function(a,b,c,d){this.G=d;this.C=nb(a,"ChipSet");this.Ga=this.C.Ga;switch(this.Ga){case zd.Da:this.w=Jd}this.w&&(yb(b,this,this.w.Jb),Cb(b,this,this.w.Kb))};Id.prototype.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Id.prototype.Ha=function(a){return a?this.save():!0};Jd.Ua=[[0]];Id.prototype.reset=function(){this.u={};this.b={};this.w&&!this.restore(this.w.Ua)&&this.ca("reset error")};
Ha(function(){for(var a=C(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Hd(d);ab(d,c)}}); Id.prototype.save=function(){var a=new I(this);switch(this.Ga){case zd.Da:J(a,0,[this.A])}return a.data()};Id.prototype.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.Ga){case V.Da:return!0;case zd.Da:return this.A=b[0],Pd(this),!0}return!1};function Pd(a){for(var b in Md){var c=a.K["led-"+b];if(c){var d=Md[b],e=!!(a.A&d);d&d-1&&(e=!(a.A&~d));c.style.backgroundColor=e?"#ff0000":"#000000"}}}
function Nd(a,b,c,d,e){var f=this;this.$b=wa("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,Nd,262144);this.Y=a.screenWidth;this.W=a.screenHeight;this.wa=a.bufferAddr;this.Oc=a.bufferRAM;var g=a.bufferFormat;this.ha=g&&Od[g.toLowerCase()]||Pd;this.Pa=a.bufferCols;this.Da=a.bufferRows;this.Lc=this.la=a.cellWidth||1;this.da=a.cellHeight||1;this.Ya=null;this.Oa=a.bufferBits||1;this.Pc=a.bufferLeft||0;if(this.F=a.bufferRotate)this.F=this.F%360,0<this.F&&(this.F-=360),-90!=this.F&&(this.ea("unsupported buffer rotation: "+ function Nd(a,b,c){var d=!0,e;a:{e=b.keyCode;e=Ld[e]||e;for(var f in Kd)if(Kd[f]===e){e=f;break a}e=null}e&&(d=Od(a,e,c));d||b.preventDefault();return d}
this.F),this.F=0);this.gc=a.interruptRate;this.Rc=a.refreshRate||60;this.T=b;this.H=c;this.ya=(this.Sc=d)||b||null;this.Mc=this.Y;this.Nc=this.W;this.Fb=this.Y/this.Pa|0;this.Zb=this.W/this.Da|0;1<this.da&&this.Da++;b=a.smoothing;(c=Ra.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.H[d]){this.H[d]=b;break}if(this.I=a.screenRotate)this.I=this.I%360,0<this.I&&(this.I-=360),-90!=this.I?(this.ea("unsupported screen rotation: "+ function Od(a,b,c){if(c)a.u[b]=Date.now(),delete a.b[b];else{var d=a.u[b];if(d&&100>Date.now()-d)return a.b[b]=d,Qd(a),!0;delete a.u[b]}if(a.C)switch(b){case "1p":Ad(a.C,V.Pa.vc,c);break;case "2p":Ad(a.C,V.Pa.zc,c);break;case "coin":Ad(a.C,V.Pa.pc,c);break;case "left":Ad(a.C,V.Pa.xc,c);break;case "right":Ad(a.C,V.Pa.yc,c);break;case "fire":Ad(a.C,V.Pa.wc,c)}return!0}
this.I),this.I=0):(this.H.translate(0,this.W),this.H.rotate(this.I*Math.PI/180),this.H.scale(this.W/this.Y,this.Y/this.W));if(this.w=e)if(this.w.$a=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.w.$a){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Qd(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1); function Qd(a){var b=-1,c=Object.keys(a.b),d;for(d in c)if(c=100-(Date.now()-a.b[d]),0<c){if(0>b||b>c)b=c}else delete a.b[d],Od(a,d,!1);0<=b&&setTimeout(function(){Qd(a)},b)}Id.prototype.F=function(a,b,c){D(this,a,b,c,"KBDUART.STATUS",null);this.A=b;Pd(this)};Jd.Jb={};Jd.Kb={130:Id.prototype.F};Ha(function(){for(var a=C(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Id(d);ab(d,c)}});
break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Qd(f,null)},!1);break}}if(this.ia=a.fontROM)"json"!=da(this.ia)&&(this.ia=oa()+"/api/v1/dump?file="+this.ia+"&format=bytes"),na(this.ia,null,!0,function(a,b,c){Rd(f,a,b,c)});this.rb={}}Wa(Nd);var Pd=0,Od={vt100:2}; function Rd(a,b,c,d,e){var f=this;this.dc=wa("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,Rd,262144);this.Y=a.screenWidth;this.W=a.screenHeight;this.wa=a.bufferAddr;this.Vc=a.bufferRAM;var g=a.bufferFormat;this.ha=g&&Sd[g.toLowerCase()]||Td;this.Ra=a.bufferCols;this.Fa=a.bufferRows;this.Sc=this.la=a.cellWidth||1;this.ea=a.cellHeight||1;this.ab=null;this.Qa=a.bufferBits||1;this.Wc=a.bufferLeft||0;if(this.F=a.bufferRotate)this.F=this.F%360,0<this.F&&(this.F-=360),-90!=this.F&&(this.ca("unsupported buffer rotation: "+
Nd.prototype.Ka=function(a,b,c,d){this.u=a;this.B=b;this.b=c;this.G=d;this.ha||(this.C=ob(a,"ChipSet"))&&this.C.fb==U.Ma&&(this.ha=1);this.J=this.Pa*this.la;this.aa=this.Da*this.da;b=this.J;c=this.aa;this.F&&(b=this.aa,c=this.J);this.Ra=(this.J*this.Oa>>3)*this.aa;if(this.Oc||sb(this.B,this.wa,this.Ra,3))1<this.la?Sd(this,this.Pa*this.Da):(this.ac=this.H.createImageData(b,c),this.fc=16/this.Oa|0,Sd(this,this.Ra>>1)),this.K=document.createElement("canvas"),this.K.width=b,this.K.height=c,this.Za=this.K.getContext("2d"), this.F),this.F=0);this.kc=a.interruptRate;this.Yc=a.refreshRate||60;this.T=b;this.H=c;this.ya=(this.Zc=d)||b||null;this.Tc=this.Y;this.Uc=this.W;this.Gb=this.Y/this.Ra|0;this.cc=this.W/this.Fa|0;1<this.ea&&this.Fa++;b=a.smoothing;(c=Pa.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.H[d]){this.H[d]=b;break}if(this.I=a.screenRotate)this.I=this.I%360,0<this.I&&(this.I-=360),-90!=this.I?(this.ca("unsupported screen rotation: "+
this.ra={},this.Ca=1<<this.Oa,this.ua=Array(this.Ca+2),this.ua[0]=[0,0,0,255],this.ua[1]=[255,255,255,255],1==this.ha&&(this.ua[this.Ca+0]=[255,255,0,255],this.ua[this.Ca+1]=[0,255,0,255]),2==this.ha&&(this.Qc=60,this.qb=!1,this.va=Array(this.Pa));if(this.ca=ob(a,"Keyboard")){for(var e in this.rb)this.ca.ma("led",e,this.rb[e]);this.T&&this.ca.ma(this.Sc?"textarea":"canvas","kbd",this.ya)}this.ia||D(this)}; this.I),this.I=0):(this.H.translate(0,this.W),this.H.rotate(this.I*Math.PI/180),this.H.scale(this.W/this.Y,this.Y/this.W));if(this.w=e)if(this.w.cb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.w.cb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Ud(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);
function Rd(a,b,c,d){if(d)a.ea("Unable to load font ROM (error "+d+": "+b+")");else{Ya(a.Mb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)Td(a,f);else{a.ea("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ea("Font ROM data error: "+h.message);return}(a.H||a.G)&&D(a)}} break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Ud(f,null)},!1);break}}if(this.ia=a.fontROM)"json"!=ca(this.ia)&&(this.ia=oa()+"/api/v1/dump?file="+this.ia+"&format=bytes"),na(this.ia,null,!0,function(a,b,c){Vd(f,a,b,c)});this.tb={}}Wa(Rd);var Td=0,Sd={vt100:2};
function Td(a,b){a.Ya=b;a.ra[96]=[Ud(a,a.la,a.da),Ud(a,a.la,a.da,a.qb)];a.ra[64]=[Ud(a,2*a.la,a.da),Ud(a,2*a.la,a.da,a.qb)];a.ra[32]=a.ra[0]=[Ud(a,2*a.la,2*a.da),Ud(a,2*a.la,2*a.da,a.qb)]} Rd.prototype.Ma=function(a,b,c,d){this.u=a;this.A=b;this.b=c;this.G=d;this.ha||(this.C=nb(a,"ChipSet"))&&this.C.Ga==V.Da&&(this.ha=1);this.J=this.Ra*this.la;this.aa=this.Fa*this.ea;b=this.J;c=this.aa;this.F&&(b=this.aa,c=this.J);this.Ta=(this.J*this.Qa>>3)*this.aa;if(this.Vc||rb(this.A,this.wa,this.Ta,3))1<this.la?Wd(this,this.Ra*this.Fa):(this.ec=this.H.createImageData(b,c),this.jc=16/this.Qa|0,Wd(this,this.Ta>>1)),this.L=document.createElement("canvas"),this.L.width=b,this.L.height=c,this.bb=this.L.getContext("2d"),
function Ud(a,b,c,d){var e=8>=a.Lc?8:16,f=8<e?15:0,h=a.Ya.length/e,g=!1===d,k={la:b,da:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),n=0;n<h;n++){for(var p=0,v=p;p<a.da;p++)for(var u=n*e+(f+p&e-1),u=d&&8==p?255:a.Ya[u],r=0;r<c/a.da;r++){for(var B=0,x=B;B<a.la;B++)for(var E=u&128>>(7<B?7:B),y=0;y<b/a.la;y++)g&&(E=!E),Vd(a,l,x,v,E?1:0),x++;v++}k.context.putImageData(l,(n&15)*b,(n>> this.ra={},this.Ea=1<<this.Qa,this.ua=Array(this.Ea+2),this.ua[0]=[0,0,0,255],this.ua[1]=[255,255,255,255],1==this.ha&&(this.ua[this.Ea+0]=[255,255,0,255],this.ua[this.Ea+1]=[0,255,0,255]),2==this.ha&&(this.Xc=60,this.sb=!1,this.va=Array(this.Ra));if(this.da=nb(a,"Keyboard")){for(var e in this.tb)this.da.ma("led",e,this.tb[e]);this.T&&this.da.ma(this.Zc?"textarea":"canvas","kbd",this.ya)}this.ia||F(this)};
4)*c)}return k}Nd.prototype.Ea=function(){return!0};Nd.prototype.ma=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.rb[b]=c,!0;switch(b){case "fullScreen":return this.L[b]=c,this.w&&this.w.$a?c.onclick=function(){d.$a()}:c.parentNode.removeChild(c),!0}return!1}; function Vd(a,b,c,d){if(d)a.ca("Unable to load font ROM (error "+d+": "+b+")");else{Ya(a.Pb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)Xd(a,f);else{a.ca("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ca("Font ROM data error: "+h.message);return}(a.H||a.G)&&F(a)}}
Nd.prototype.$a=function(){var a=!1;if(this.w){if(this.w.$a){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.W;b>c&&(a=Math.round(c/b*100)+"%")}this.$b?(this.T.style.width=a,this.T.style.width=a,this.T.style.display="block",this.T.style.margin="auto"):(this.w.style.width=a,this.w.style.height="auto");this.w.style.backgroundColor="black";this.w.$a();a=!0}this.ya&&this.ya.focus()}return a}; function Xd(a,b){a.ab=b;a.ra[96]=[Yd(a,a.la,a.ea),Yd(a,a.la,a.ea,a.sb)];a.ra[64]=[Yd(a,2*a.la,a.ea),Yd(a,2*a.la,a.ea,a.sb)];a.ra[32]=a.ra[0]=[Yd(a,2*a.la,2*a.ea),Yd(a,2*a.la,2*a.ea,a.sb)]}
function Qd(a,b){!b&&a.w&&(a.$b?a.T.style.width=a.T.style.height="":a.w.style.width=a.w.style.height="");db(a,"notifyFullScreen("+b+")",!0)}function Sd(a,b){a.bc=b;a.xa=!1;if(void 0===a.qa||a.qa.length!=a.bc)a.qa=Array(a.bc)}function Vd(a,b,c,d,e){d=a.F?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ha&&(208<=c&&236>c?e=a.Ca+0:28<=c&&72>c&&(e=a.Ca+1));a=a.ua[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function Yd(a,b,c,d){var e=8>=a.Sc?8:16,f=8<e?15:0,h=a.ab.length/e,g=!1===d,k={la:b,ea:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),n=0;n<h;n++){for(var p=0,v=p;p<a.ea;p++)for(var u=n*e+(f+p&e-1),u=d&&8==p?255:a.ab[u],r=0;r<c/a.ea;r++){for(var B=0,x=B;B<a.la;B++)for(var E=u&128>>(7<B?7:B),y=0;y<b/a.la;y++)g&&(E=!E),Zd(a,l,x,v,E?1:0),x++;v++}k.context.putImageData(l,(n&15)*b,(n>>
Ha(function(){for(var a=C(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=qa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= 4)*c)}return k}Rd.prototype.Ba=function(){return!0};Rd.prototype.ma=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.tb[b]=c,!0;switch(b){case "fullScreen":return this.K[b]=c,this.w&&this.w.cb?c.onclick=function(){d.cb()}:c.parentNode.removeChild(c),!0}return!1};
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ga("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");wa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Nd(d,e,h,f,c);ab(d,c)}}); Rd.prototype.cb=function(){var a=!1;if(this.w){if(this.w.cb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.W;b>c&&(a=Math.round(c/b*100)+"%")}this.dc?(this.T.style.width=a,this.T.style.width=a,this.T.style.display="block",this.T.style.margin="auto"):(this.w.style.width=a,this.w.style.height="auto");this.w.style.backgroundColor="black";this.w.cb();a=!0}this.ya&&this.ya.focus()}return a};
function Wd(a){z.call(this,"Debugger",a,Wd);this.style=Xd;this.ca=this.ya=this.K=0;this.W=V();this.Ra=V();this.F=-1;this.w=[];this.ia=!1;this.ha=V();this.I=[];this.qa={};this.C=this.Y=this.H=[];Yd(this);this.va=0;Zd(this);this.Ca=[];$d(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return ae(b,a)}):void 0===global.$&&(global.$=function(a){return ae(b,a)})}Wa(Wd); function Ud(a,b){!b&&a.w&&(a.dc?a.T.style.width=a.T.style.height="":a.w.style.width=a.w.style.height="");cb(a,"notifyFullScreen("+b+")",!0)}function Wd(a,b){a.fc=b;a.xa=!1;if(void 0===a.qa||a.qa.length!=a.fc)a.qa=Array(a.fc)}function Zd(a,b,c,d,e){d=a.F?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ha&&(208<=c&&236>c?e=a.Ea+0:28<=c&&72>c&&(e=a.Ea+1));a=a.ua[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
var be={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Xd=8080,ce="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "), Ha(function(){for(var a=C(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=pa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
de="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),ee="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),fe=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768], (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Pa.aspect);f&&.3<=f&&3.33>=f&&(Ga("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");wa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Rd(d,e,h,f,c);ab(d,c)}});
function $d(a){z.call(this,"Debugger",a,$d);this.style=ae;this.da=this.ya=this.L=0;this.W=Y();this.Ta=Y();this.F=-1;this.w=[];this.ia=!1;this.ha=Y();this.I=[];this.qa={};this.C=this.Y=this.H=[];be(this);this.va=0;ce(this);this.Ea=[];de(this,a.messages);this.Fa=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return ee(b,a)}):void 0===global.$&&(global.$=function(a){return ee(b,a)})}Wa($d);
var fe={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},ae=8080,ge="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
he="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),ie="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),je=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617], [21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43, [44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,
785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273], 785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],
[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785], [3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62], [5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19, [54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
18193,33],[65,128]],ge={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};m=Wd.prototype; 18193,33],[65,128]],ke={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};m=$d.prototype;
m.Ka=function(a,b,c,d){this.B=b;this.b=c;this.u=a;(a=ec(a,"messages"))&&$d(this,a);this.Oa=fe;he(this,function(a){a:{var b=d.B.U,c=a[0],g=a=0,k=b.length;if(c){a=Y(ie(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ja;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.g("..."):(c=n.type,l=ub[c],n&&d.g(q(n.id)+" %"+q(g<<d.B.ja)+" %%"+q(n.D)+" "+t(n.Bb)+" "+ m.Ma=function(a,b,c,d){this.A=b;this.b=c;this.u=a;(a=fc(a,"messages"))&&de(this,a);this.Qa=je;le(this,function(a){a:{var b=d.A.U,c=a[0],g=a=0,k=b.length;if(c){a=me(ne(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.A.ja;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.g("..."):(c=n.type,l=tb[c],n&&d.g(q(n.id)+" %"+q(g<<d.A.ja)+" %%"+q(n.D)+" "+t(n.Cb)+" "+
t(n.size)+" "+l),c!=Rb&&(c=-1),l=0);a+=d.B.Aa;g++}}});D(this)}; t(n.size)+" "+l),c!=Sb&&(c=-1),l=0);a+=d.A.Aa;g++}}});F(this)};
m.ma=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ua=this.L[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ae(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.F<d.w.length-1&&(b=d.w[++d.F]):40==a.keyCode&&(0<d.F?b=d.w[--d.F]:(b="",d.F=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.L[b]=c,Ca(c,function(){if(d.ua){var a=d.ua.value;d.ua.value= m.ma=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ua=this.K[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ee(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.F<d.w.length-1&&(b=d.w[++d.F]):40==a.keyCode&&(0<d.F?b=d.w[--d.F]:(b="",d.F=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.K[b]=c,ya(c,function(){if(d.ua){var a=d.ua.value;d.ua.value=
"";ae(d,a,!0);return!0}return!1}),!0;case "step":return this.L[b]=c,Ca(c,function(a){var b=!1;gb(d,!0)||(fb(d,!0),b=d.nb(a?1:0),fb(d,!1));return b}),!0}return!1};m.Ab=function(){this.ua&&this.ua.focus()};function Y(a){a=a&&a.D;null==a&&(a=-1);return a}m.X=function(a,b){var c=255,d=Y(a);-1!==d&&(c=vb(this.B,d),b&&je(a,b));return c};m.La=function(a,b){var c=65535,d=Y(a);-1!==d&&(c=wb(this.B,d),b&&je(a,b));return c};m.na=function(a,b,c){var d=Y(a);-1!==d&&(xb(this.B,d,b),c&&je(a,c),hc(this.b,!0))}; "";ee(d,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=c,ya(c,function(a){var b=!1;fb(d,!0)||(eb(d,!0),b=d.pb(a?1:0),eb(d,!1));return b}),!0}return!1};m.Bb=function(){this.ua&&this.ua.focus()};function me(a){a=a&&a.D;null==a&&(a=-1);return a}m.X=function(a,b){var c=255,d=me(a);-1!==d&&(c=ub(this.A,d),b&&oe(a,b));return c};m.Na=function(a,b){var c=65535,d=me(a);-1!==d&&(c=vb(this.A,d),b&&oe(a,b));return c};m.na=function(a,b,c){var d=me(a);-1!==d&&(wb(this.A,d,b),c&&oe(a,c),ic(this.b,!0))};
m.Ib=function(a,b,c){var d=Y(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.w)>>>e.ja;f!=e.B?e.U[h].Rb(f,b&65535,d):(e.U[h++].Cb(f,b&255,d),e.U[h&e.J].Cb(0,b>>8&255,d+1));c&&je(a,c);hc(this.b,!0)}};function V(a){return{D:a,Ga:!1}}function ke(a){return[a.D,a.Ga]}function le(a){return{D:a[0],Ga:a[1]}} m.Lb=function(a,b,c){var d=me(a);if(-1!==d){var e=this.A,f=d&e.A,h=(d&e.w)>>>e.ja;f!=e.A?e.U[h].Ub(f,b&65535,d):(e.U[h++].Db(f,b&255,d),e.U[h&e.J].Db(0,b>>8&255,d+1));c&&oe(a,c);ic(this.b,!0)}};function Y(a){return{D:a,Ka:!1}}function pe(a){return[a.D,a.Ka]}function qe(a){return{D:a[0],Ka:a[1]}}
function ie(a,b,c){var d;c=(c?a.W:a.Ra).D;if(void 0!==b){d=b=me(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.I.length;c++){var f=a.I[c].Ja[d];if(void 0!==f){d=f.o;void 0!==d&&(e=V(d));break}}if(d=e)return d;c=ne(a,b,void 0)}null!=c&&(d=V(c));return d}function oe(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.vc=pe(a,b.lc=c[2]))}function je(a,b){null!=a.D&&(a.D+=b||1)}function Z(a){return q(a,4)} function ne(a,b,c){var d;c=(c?a.W:a.Ta).D;if(void 0!==b){d=b=re(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.I.length;c++){var f=a.I[c].La[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Y(d));break}}if(d=e)return d;c=se(a,b,void 0)}null!=c&&(d=Y(c));return d}function te(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Cc=ue(a,b.nc=c[2]))}function oe(a,b){null!=a.D&&(a.D+=b||1)}function Z(a){return q(a,4)}
function qe(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.X(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function $d(a,b){a.G=a;a.ka=a.wc=536870912;a.wa=null;a.xa=[];var c=pe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in ge)0<=ma(c,d)&&(a.ka|=ge[d],a.g(d+" messages enabled"))}function he(a,b){for(var c in ge)if(64==ge[c]){a.Ca[c]=b;break}} function ve(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.X(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function de(a,b){a.G=a;a.ka=a.Dc=536870912;a.wa=null;a.xa=[];var c=ue(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in ke)0<=ma(c,d)&&(a.ka|=ke[d],a.g(d+" messages enabled"))}function le(a,b){for(var c in ke)if(64==ke[c]){a.Ea[c]=b;break}}
function re(a,b){var c;a=a.toUpperCase();null==b?c=ma(ee,a):(c=ma(ee,a.substr(b,2)),0>c&&(c=ma(ee,a.substr(b,1))));return c}function se(a,b){var c=0,d=te(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?q(d,c):"??"} function we(a,b){var c;a=a.toUpperCase();null==b?c=ma(ie,a):(c=ma(ie,a.substr(b,2)),0>c&&(c=ma(ie,a.substr(b,1))));return c}function xe(a,b){var c=0,d=ye(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?q(d,c):"??"}
function te(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Ic(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Kc(d);break;case 4:c=d.S;break;case 5:c=d.V;break;case 10:c=I(d);break;case 6:c=d.X(I(d));break;case 11:c=d.fa;break;case 12:c=d.M;break;case 13:c=Gc(d);break;case 14:c=Gc(d)&255|d.j<<8}}return c} function ye(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Ic(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Kc(d);break;case 4:c=d.S;break;case 5:c=d.V;break;case 10:c=K(d);break;case 6:c=d.X(K(d));break;case 11:c=d.fa;break;case 12:c=d.M;break;case 13:c=Hc(d);break;case 14:c=Hc(d)&255|d.j<<8}}return c}
function ue(a,b){b=me(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=re(b,c+1),0<=e&&(b=b.substr(0,c)+se(a,e)+b.substr(c+1+ee[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=ie(a,e))?(d=e+' "'+qe(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=ie(a,e))?(je(d),d=e+' "'+ function ze(a,b){b=re(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=we(b,c+1),0<=e&&(b=b.substr(0,c)+xe(a,e)+b.substr(c+1+ie[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=ne(a,e))?(d=e+' "'+ve(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=ne(a,e))?(oe(d),d=e+' "'+
qe(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(V(this.b.M).D));if(this.ka&1073741824)this.xa.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.ka&-2147483648&&(this.ga(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.kb=0;c.F-=c.b;c.b=0;hc(c)}}; ve(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.M).D));if(this.ka&1073741824)this.xa.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.ka&-2147483648&&(this.ga(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.mb=0;c.F-=c.b;c.b=0;ic(c)}};
function cb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ka&g)!=g||a.message(b.Xa+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}m.sb=function(){this.g("Type ? for help with PC8080 Debugger commands");this.Ba();if(this.Da){var a=this.Da;this.Da=null;ae(this,a)}}; function bb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ka&g)!=g||a.message(b.$a+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}m.Ua=function(){this.g("Type ? for help with PC8080 Debugger commands");this.Ca();if(this.Fa){var a=this.Fa;this.Fa=null;ee(this,a)}};
function Zd(a){var b;if($c(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=V();a.ra=0;a.g("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.ra=0,a.T=[],a.J=[]}m.Wa=function(a){if(!ve(this))return!1;this.b.Wa(a);return!0}; function ce(a){var b;if(ad(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.ra=0;a.g("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.ra=0,a.T=[],a.J=[]}m.Za=function(a){if(!Ae(this))return!1;this.b.Za(a);return!0};
m.nb=function(a,b,c){if(!ve(this))return!1;this.K=0;a||$c(this)&&sd(this,this.b.M,0);try{var d=this.b.nb(a);0<d&&(this.K+=d,xc(this.b,d,!0),uc(this.b,d),this.ca++)}catch(e){"number"!=typeof e&&(this.K=0,kb(this.b,e.stack||e.message))}!1!==c&&hc(this.b);this.Ba(b||!1);return 0<this.K};m.ga=function(a){this.b&&this.b.ga(a)};m.Ba=function(a){void 0===a&&(a=!0);this.W=V(this.b.M);a&&1!=this.aa?we(this):xe(this)}; m.pb=function(a,b,c){if(!Ae(this))return!1;this.L=0;a||ad(this)&&bd(this,this.b.M,0);try{var d=this.b.pb(a);0<d&&(this.L+=d,yc(this.b,d,!0),kc(this.b,d),this.da++)}catch(e){"number"!=typeof e&&(this.L=0,hb(this.b,e.stack||e.message))}!1!==c&&ic(this.b);this.Ca(b||!1);return 0<this.L};m.ga=function(a){this.b&&this.b.ga(a)};m.Ca=function(a){void 0===a&&(a=!0);this.W=Y(this.b.M);a&&1!=this.aa?Be(this):Ce(this)};
function ve(a){var b;if(b=a.b&&jb(a.b))b=a.b,b.A.oa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!gb(a.b)?(a=a.b,a.A.cb?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ha=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Zd(this);this.ca=this.ya=0;this.wa=null;this.K=0;this.W=V(this.b.M);this.A.sa=!1;ye(this);a||this.Ba()}; function Ae(a){var b;if(b=a.b&&gb(a.b))b=a.b,b.B.oa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!fb(a.b)?(a=a.b,a.B.gb?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Ba=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ha=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){ce(this);this.da=this.ya=0;this.wa=null;this.L=0;this.W=Y(this.b.M);this.B.sa=!1;De(this);a||this.Ca()};
m.save=function(){var a=new Hc(this);H(a,0,ke(this.W));H(a,1,ke(this.ha));H(a,2,[this.w,this.ia,this.ka]);H(a,3,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.W=le(a[b++]),this.ha=le(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.ia=a[b][1],this.ka|=a[b][2]);a[3]&&(this.I=a[3]);return!0};m.start=function(a,b){this.aa||this.g("running");this.A.sa=!0;this.qb=a;this.rb=b}; m.save=function(){var a=new I(this);J(a,0,pe(this.W));J(a,1,pe(this.ha));J(a,2,[this.w,this.ia,this.ka]);J(a,3,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.W=qe(a[b++]),this.ha=qe(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.ia=a[b][1],this.ka|=a[b][2]);a[3]&&(this.I=a[3]);return!0};m.start=function(a,b){this.aa||this.g("running");this.B.sa=!0;this.sb=a;this.tb=b};
m.stop=function(a,b){if(this.A.sa){this.A.sa=!1;this.K=b-this.rb;if(!this.aa){var c="stopped";if(this.K){var d=a-this.qb,e=0<d?Math.round(1E3*this.K/d):0,c=c+" (";$c(this)&&(c+=this.ca+" opcodes, ",this.ya-=this.ca,this.ca=0);c+=this.K+" cycles, "+d+" ms, "+e+" hz)"}else eb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ba(!0);this.Ab();ye(this,this.b.M)}};function $c(a){return 1<a.C.length||!!a.va} m.stop=function(a,b){if(this.B.sa){this.B.sa=!1;this.L=b-this.tb;if(!this.aa){var c="stopped";if(this.L){var d=a-this.sb,e=0<d?Math.round(1E3*this.L/d):0,c=c+" (";ad(this)&&(c+=this.da+" opcodes, ",this.ya-=this.da,this.da=0);c+=this.L+" cycles, "+d+" ms, "+e+" hz)"}else db(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ca(!0);this.Bb();De(this,this.b.M)}};function ad(a){return 1<a.C.length||!!a.va}
function sd(a,b,c){var d=a.b;if(0<c&&(a.va&&!--a.va||$b(a,b,1,a.C)))return!0;0<=c&&a.J.length&&(a.ca++,b=vb(a.B,b),null!=b&&(a.J[b][1]++,b=a.T[a.ra],b.D=d.M,b.Ga=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function Ab(a,b,c){a.g("break on input from port "+t(b)+": "+q(c));a.ga(!0)}function Db(a,b,c){a.g("break on output to port "+t(b)+": "+q(c));a.ga(!0)} function bd(a,b,c){var d=a.b;if(0<c&&(a.va&&!--a.va||ac(a,b,1,a.C)))return!0;0<=c&&a.J.length&&(a.da++,b=ub(a.A,b),null!=b&&(a.J[b][1]++,b=a.T[a.ra],b.D=d.M,b.Ka=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function Ab(a,b,c){a.g("break on input from port "+t(b)+": "+q(c));a.ga(!0)}function Eb(a,b,c){a.g("break on output to port "+t(b)+": "+q(c));a.ga(!0)}
function Yd(a){var b,c;a.C=["bp"];if(void 0!==a.Y)for(b=1;b<a.Y.length;b++){c=a.Y[b];var d=a.B;ac(d.U[Y(c)>>>d.ja],!1)}a.Y=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.B,ac(d.U[Y(c)>>>d.ja],!0);a.H=["bw"];a.Ya=0}m.Qa=function(a,b,c){var d=!0;c||ze(this,a,b,!1,!0);if(a!=this.C){var e=Y(b);if(-1===e)this.g("invalid address: "+Z(b.D)),d=!1;else{var f=this.B;f.U[e>>>f.ja].Qa(e&f.B,a==this.H)}}d&&(a.push(b),c?b.Ga=!0:(Ye(this,a,a.length-1,"set"),Zd(this)));return d}; function be(a){var b,c;a.C=["bp"];if(void 0!==a.Y)for(b=1;b<a.Y.length;b++){c=a.Y[b];var d=a.A;bc(d.U[me(c)>>>d.ja],!1)}a.Y=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.A,bc(d.U[me(c)>>>d.ja],!0);a.H=["bw"];a.ab=0}m.Sa=function(a,b,c){var d=!0;c||Ee(this,a,b,!1,!0);if(a!=this.C){var e=me(b);if(-1===e)this.g("invalid address: "+Z(b.D)),d=!1;else{var f=this.A;f.U[e>>>f.ja].Sa(e&f.A,a==this.H)}}d&&(a.push(b),c?b.Ka=!0:(Fe(this,a,a.length-1,"set"),ce(this)));return d};
function ze(a,b,c,d,e){var f=!1;c=Y(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Y(g)&&(!d||g.Ga)){f=!0;g.Ga||e||Ye(a,b,h,"cleared");b.splice(h,1);b!=a.C&&(d=a.B,ac(d.U[c>>>d.ja],b==a.H));g.Ga||Zd(a);break}}return f}function Ze(a,b){for(var c=1;c<b.length;c++)Ye(a,b,c);return b.length-1}function Ye(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.D)+(d?" "+d:c.lc?' "'+c.lc+'"':""))} function Ee(a,b,c,d,e){var f=!1;c=me(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==me(g)&&(!d||g.Ka)){f=!0;g.Ka||e||Fe(a,b,h,"cleared");b.splice(h,1);b!=a.C&&(d=a.A,bc(d.U[c>>>d.ja],b==a.H));g.Ka||ce(a);break}}return f}function df(a,b){for(var c=1;c<b.length;c++)Fe(a,b,c);return b.length-1}function Fe(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.D)+(d?" "+d:c.nc?' "'+c.nc+'"':""))}
function ye(a,b){if(void 0!==b)$b(a,b,1,a.C,!0),a.aa=0;else for(var c=1;c<a.C.length;c++){var d=a.C[c];if(d.Ga){if(!ze(a,a.C,d,!0))break;c=0}}} function De(a,b){if(void 0!==b)ac(a,b,1,a.C,!0),a.aa=0;else for(var c=1;c<a.C.length;c++){var d=a.C[c];if(d.Ka){if(!Ee(a,a.C,d,!0))break;c=0}}}
function $b(a,b,c,d,e){var f=!1;if(!a.Ya++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Ga)for(var k=Y(g),l=0;l<c;l++)if(b+l==k){var n,f=!0;g.Ga&&(ze(a,d,g,!0),e=!0);if(n=g.vc){for(var f=!1,p=0;p<n.length;p++)if(!$e(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var v=p+1;v<n.length&&n[v].indexOf("else");v++)p++;if(v==n.length){f=!0;break}}a.b.A.sa||(f=!0)}if(f){e||Ye(a,d,h,"hit");break}}}a.Ya--;return f} function ac(a,b,c,d,e){var f=!1;if(!a.ab++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Ka)for(var k=me(g),l=0;l<c;l++)if(b+l==k){var n,f=!0;g.Ka&&(Ee(a,d,g,!0),e=!0);if(n=g.Cc){for(var f=!1,p=0;p<n.length;p++)if(!ef(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var v=p+1;v<n.length&&n[v].indexOf("else");v++)p++;if(v==n.length){f=!0;break}}a.b.B.sa||(f=!0)}if(f){e||Fe(a,d,h,"hit");break}}}a.ab--;return f}
function af(a,b,c,d){for(var e=V(b.D),f=a.X(b,1),h=a.Oa[f],g="",k=(8086!=a.style?ce:de)[h[0]],l=h.length-1,n=0,p,v=1;v<=l;v++){var u="";p=h[v];if(void 0!==p&&!(p&16384&&a.style==Xd)){var r=p&240;if(r){var B=p&15;B?n=B:p|=n;p&61440||(p|=1==v?8192:4096);if(r&32)a:{var u=a,r=p,B=b,x=" ";switch(r&15){case 1:x=q(u.X(B,1),2);break;case 2:x=q(u.X(B,1)<<24>>24,4);break;case 3:x=q(u.La(B,2),4);break;default:u="imm("+t(r)+")";break a}8086==u.style&&r&64?x="["+x+"]":r&16||(x=(u.style==Xd?"$":"0x")+x);u=x}else r& function ff(a,b,c,d){for(var e=Y(b.D),f=a.X(b,1),h=a.Qa[f],g="",k=(8086!=a.style?ge:he)[h[0]],l=h.length-1,n=0,p,v=1;v<=l;v++){var u="";p=h[v];if(void 0!==p&&!(p&16384&&a.style==ae)){var r=p&240;if(r){var B=p&15;B?n=B:p|=n;p&61440||(p|=1==v?8192:4096);if(r&32)a:{var u=a,r=p,B=b,x=" ";switch(r&15){case 1:x=q(u.X(B,1),2);break;case 2:x=q(u.X(B,1)<<24>>24,4);break;case 3:x=q(u.Na(B,2),4);break;default:u="imm("+t(r)+")";break a}8086==u.style&&r&64?x="["+x+"]":r&16||(x=(u.style==ae?"$":"0x")+x);u=x}else r&
16?(u=(p&3840)>>8,r=ee[u],8086==a.style&&p&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=Z(e.D)+" ";if(-1!==e.D&&-1!==b.D){do if(f+=q(a.X(e,1),2),null==e.D)break;while(e.D!=b.D)}h+=ha(f,10);h=h+(p&32768?"*":" ")+ha(k,7);g&&(h+=" "+g);c&&(h=ha(h,40)+";"+c,h=a.b.A.bb?h+("cycles="+vc(a.b).toString()+" cs="+q(a.b.i.tb)):h+(null!=d?"="+d.toString():""));return h} 16?(u=(p&3840)>>8,r=ie[u],8086==a.style&&p&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=Z(e.D)+" ";if(-1!==e.D&&-1!==b.D){do if(f+=q(a.X(e,1),2),null==e.D)break;while(e.D!=b.D)}h+=ha(f,10);h=h+(p&32768?"*":" ")+ha(k,7);g&&(h+=" "+g);c&&(h=ha(h,40)+";"+c,h=a.b.B.fb?h+("cycles="+wc(a.b).toString()+" cs="+q(a.b.i.ub)):h+(null!=d?"="+d.toString():""));return h}
function bf(a,b){var c;switch(b){case "IF":c=a.b.ta&512;break;case "SF":c=Rc(a.b);break;case "ZF":c=Qc(a.b);break;case "AF":c=Pc(a.b);break;case "PF":c=Oc(a.b);break;case "CF":c=J(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function cf(a,b){return ee[b]+"="+se(a,b)+" "}function df(a){return cf(a,7)+cf(a,8)+cf(a,9)+cf(a,10)+cf(a,11)+bf(a,"IF")+bf(a,"SF")+bf(a,"ZF")+bf(a,"AF")+bf(a,"PF")+bf(a,"CF")} function gf(a,b){var c;switch(b){case "IF":c=a.b.ta&512;break;case "SF":c=Sc(a.b);break;case "ZF":c=Rc(a.b);break;case "AF":c=Qc(a.b);break;case "PF":c=Pc(a.b);break;case "CF":c=Nc(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function hf(a,b){return ie[b]+"="+xe(a,b)+" "}function jf(a){return hf(a,7)+hf(a,8)+hf(a,9)+hf(a,10)+hf(a,11)+gf(a,"IF")+gf(a,"SF")+gf(a,"ZF")+gf(a,"AF")+gf(a,"PF")+gf(a,"CF")}
var ef={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; var kf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function ff(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; function lf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function ne(a,b,c){var d;if(b){b=me(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=ia(n);if(!n){f=!0;break}n=gf(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],v=n.length;k.length&&ef[n]<ef[k[k.length-1]]&&ff(g,k,1);k.push(n);b=b.substr(p+v)}ff(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&hf(a,null, function se(a,b,c){var d;if(b){b=re(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=ia(n);if(!n){f=!0;break}n=mf(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],v=n.length;k.length&&kf[n]<kf[k[k.length-1]]&&lf(g,k,1);k.push(n);b=b.substr(p+v)}lf(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&nf(a,null,
d))}return d}function me(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=ne(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=ie(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.La(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ca-a.ya}if(null==e)break;c=c.replace(d[0],e.toString())}return c} d))}return d}function re(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=se(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=ne(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Na(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.da-a.ya}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function gf(a,b,c,d){var e;void 0!==b?(e=re(b),0<=e?e=te(a,e):(e=a.qa[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e} function mf(a,b,c,d){var e;void 0!==b?(e=we(b),0<=e?e=ye(a,e):(e=a.qa[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function hf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,n="";void 0===l?l=32:32<l&&(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+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function jf(a,b){if(b)return hf(a,b,a.qa[b]);var c=0;for(b in a.qa)hf(a,b,a.qa[b]),c++;return 0<c}Wd.prototype.Pa=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function nf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,n="";void 0===l?l=32:32<l&&(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+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function of(a,b){if(b)return nf(a,b,a.qa[b]);var c=0;for(b in a.qa)nf(a,b,a.qa[b]),c++;return 0<c}$d.prototype.Ra=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function kf(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],h=f.D>>>0,g=f.Cc;if(e>=h&&e<h+g){e=ja(f.Sb,[e-h],a.Pa);0<=e?lf(a,b,e,d):c&&(e=~e,lf(a,b,e-1,d),lf(a,b,e,d));break}}return d}function lf(a,b,c,d){var e={},f=a.I[b].Sb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.I[b].Ja[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)} function pf(a,b,c){var d=[],e=me(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],h=f.D>>>0,g=f.Jc;if(e>=h&&e<h+g){e=ja(f.Wb,[e-h],a.Ra);0<=e?qf(a,b,e,d):c&&(e=~e,qf(a,b,e-1,d),qf(a,b,e,d));break}}return d}function qf(a,b,c,d){var e={},f=a.I[b].Wb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.I[b].La[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function mf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.J.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?ce:de;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Oa[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}} function rf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.J.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?ge:he;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Qa[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function nf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return jf(a)||a.g("no variables"),!0;if(!c[2])return jf(a,c[1]);if(!c[3])return delete a.qa[c[1]],!0;var d=ne(a,c[3]);return void 0!==d?(a.qa[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1} function sf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return of(a)||a.g("no variables"),!0;if(!c[2])return of(a,c[1]);if(!c[3])return delete a.qa[c[1]],!0;var d=se(a,c[3]);return void 0!==d?(a.qa[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function of(a,b,c){var d=null;if(b=ie(a,b,!0)){var e=kf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.D-e[1])&&(h=" + "+t(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.D)&&(h=" - "+t(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d} function tf(a,b,c){var d=null;if(b=ne(a,b,!0)){var e=pf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.D-e[1])&&(h=" + "+t(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.D)&&(h=" - "+t(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function pf(a,b){switch(b[1]){case "8080":a.style=Xd;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.hb=c;break;case "start":a.b.i.ub=c;break;case "stop":a.b.i.jb=c;break;default:a.g("unknown cs option");return}void 0!==c&&gc(a.b);a.g("checksums "+(a.b.A.bb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(wc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Ta.toFixed(2)+"Mhz")+ function uf(a,b){switch(b[1]){case "8080":a.style=ae;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.jb=c;break;case "start":a.b.i.vb=c;break;case "stop":a.b.i.lb=c;break;default:a.g("unknown cs option");return}void 0!==c&&hc(a.b);a.g("checksums "+(a.b.B.fb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(xc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Wa.toFixed(2)+"Mhz")+
" ("+a.b.i.Va+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");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:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")} " ("+a.b.i.Ya+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");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:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
function we(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!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=ne(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P= function Be(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!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=se(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P=
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.V=g&255;break;case "SP":d.fa=g&65535;break;case "PC":G(d,g);a.W=V(d.M);break;case "PS":Ec(d,g);break;case "PSW":Ec(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.Z=g?d.Z|256:d.Z&255;break;case "PF":g?Oc(d)||(d.ba^=1):Oc(d)&&(d.ba^=1);break;case "AF":d.pa=g?~d.ba&16|d.pa&-17:d.ba&16|d.pa&-17;break;case "ZF":d.Z=g?d.Z&-256:d.Z|255;break;case "SF":g?Rc(d)||(d.ba^=192):Rc(d)&&(d.ba^=192); g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.V=g&255;break;case "SP":d.fa=g&65535;break;case "PC":H(d,g);a.W=Y(d.M);break;case "PS":Fc(d,g);break;case "PSW":Fc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.Z=g?d.Z|256:d.Z&255;break;case "PF":g?Pc(d)||(d.ba^=1):Pc(d)&&(d.ba^=1);break;case "AF":d.pa=g?~d.ba&16|d.pa&-17:d.ba&16|d.pa&-17;break;case "ZF":d.Z=g?d.Z&-256:d.Z|255;break;case "SF":g?Sc(d)||(d.ba^=192):Sc(d)&&(d.ba^=192);
break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}hc(d);a.g("updated registers:")}a.g(df(a));c&&(a.W=V(d.M),xe(a,Z(a.W.D)))}}function qf(a,b){b=ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ue(a,c[2])):ne(a,b,!0)}function rf(a,b,c){var d="t"!=b;c=gf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);xa(c,function(){return fb(a,!0)&&a.nb(e,d,!1)},function(){hc(a.b);fb(a,!1)})} break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}ic(d);a.g("updated registers:")}a.g(jf(a));c&&(a.W=Y(d.M),Ce(a,Z(a.W.D)))}}function vf(a,b){b=ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ze(a,c[2])):se(a,b,!0)}function wf(a,b,c){var d="t"!=b;c=mf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);xa(c,function(){return eb(a,!0)&&a.pb(e,d,!1)},function(){ic(a.b);eb(a,!1)})}
function xe(a,b,c,d){if(b=ie(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ie(a,c,!0);if(!d||d.D<b.D)return;e=d.D-b.D;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=gb(a,!1)||a.aa?a.K:null;var h=null!=f?"cycles":null,g=kf(a,b),k=b.D;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=af(a,b,h,f);a.g(f);a.W=b;e-=b.D-k;c++}}} function Ce(a,b,c,d){if(b=ne(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ne(a,c,!0);if(!d||d.D<b.D)return;e=d.D-b.D;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=fb(a,!1)||a.aa?a.L:null;var h=null!=f?"cycles":null,g=pf(a,b),k=b.D;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=ff(a,b,h,f);a.g(f);a.W=b;e-=b.D-k;c++}}}
function pe(a,b,c,d){if(c)if(b){0>a.F&&a.w.length&&(a.F=0);if(0>a.F||b!=a.w[a.F])a.w.splice(0,0,b),a.F=0;a.F--}else a.ia?b="end":b=a.w[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";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==d&&!e||!h)a.push(ia(b.substring(c,f))),c=f+1}}return a} function ue(a,b,c,d){if(c)if(b){0>a.F&&a.w.length&&(a.F=0);if(0>a.F||b!=a.w[a.F])a.w.splice(0,0,b),a.F=0;a.F--}else a.ia?b="end":b=a.w[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";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==d&&!e||!h)a.push(ia(b.substring(c,f))),c=f+1}}return a}
function $e(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ia&&(a.g("ended assemble at "+Z(a.ha.D)),a.W=a.ha,a.ia=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(jb(a)&&0<b.length){a.ia&&(b="a "+Z(a.ha.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=ie(a,f[1],!0);if(n)if(a.ha= function ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ia&&(a.g("ended assemble at "+Z(a.ha.D)),a.W=a.ha,a.ia=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(gb(a)&&0<b.length){a.ia&&(b="a "+Z(a.ha.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=ne(a,f[1],!0);if(n)if(a.ha=
n,void 0===f[2])a.g("begin assemble at "+Z(n.D)),a.ia=!0,hc(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var v=0;v<p.length;v++)a.na(n,p[v],1);a.g(af(a,a.ha))}}break;case "b":a:{var u=f[0],r=f[1],B=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),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]"), n,void 0===f[2])a.g("begin assemble at "+Z(n.D)),a.ia=!0,ic(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var v=0;v<p.length;v++)a.na(n,p[v],1);a.g(ff(a,a.ha))}}break;case "b":a:{var u=f[0],r=f[1],B=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),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 x=u.charAt(1);if("l"==x){var E=0,E=E+Ze(a,a.C),E=E+Ze(a,a.Y);(E+=Ze(a,a.H))||a.g("no breakpoints")}else if("n"==x)a.va=gf(a,r),a.g("break after "+a.va+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var y=V();if("*"!=r&&(y=ie(a,r,!0),!y))break a;r=t(y.D);"c"==x?null==y.D?(Yd(a),a.g("all breakpoints cleared")):ze(a,a.C,y)||ze(a,a.Y,y)|| 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 x=u.charAt(1);if("l"==x){var E=0,E=E+df(a,a.C),E=E+df(a,a.Y);(E+=df(a,a.H))||a.g("no breakpoints")}else if("n"==x)a.va=mf(a,r),a.g("break after "+a.va+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var y=Y();if("*"!=r&&(y=ne(a,r,!0),!y))break a;r=t(y.D);"c"==x?null==y.D?(be(a),a.g("all breakpoints cleared")):Ee(a,a.C,y)||Ee(a,a.Y,y)||
ze(a,a.H,y)||a.g("breakpoint missing: "+Z(y.D)):"i"==x?a.g("breakpoint "+(yb(a.B,y.D)?"enabled":"cleared")+": port "+r+" (input)"):"o"==x?a.g("breakpoint "+(Bb(a.B,y.D)?"enabled":"cleared")+": port "+r+" (output)"):null!=y.D&&(oe(a,y,B),"p"==x?a.Qa(a.C,y):"r"==x?a.Qa(a.Y,y):"w"==x?a.Qa(a.H,y):a.g("unknown breakpoint command: "+x))}}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var P,W=f[0],T=f[1],pa=f[2],Gb=f[3];if("?"==T){var ya="";for(P in ge)a.Ca[P]&&(ya&&(ya+=","),ya+=P);ya+=",state,symbols"; Ee(a,a.H,y)||a.g("breakpoint missing: "+Z(y.D)):"i"==x?a.g("breakpoint "+(xb(a.A,y.D)?"enabled":"cleared")+": port "+r+" (input)"):"o"==x?a.g("breakpoint "+(Bb(a.A,y.D)?"enabled":"cleared")+": port "+r+" (output)"):null!=y.D&&(te(a,y,B),"p"==x?a.Sa(a.C,y):"r"==x?a.Sa(a.Y,y):"w"==x?a.Sa(a.H,y):a.g("unknown breakpoint command: "+x))}}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var P,W=f[0],T=f[1],ra=f[2],Hb=f[3];if("?"==T){var Ba="";for(P in ke)a.Ea[P]&&(Ba&&(Ba+=","),Ba+=P);Ba+=",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");ya.length&&a.g("dump extension commands:\n\t"+ya)}else if("state"==T){var Ae=sf(a.u,!0);"console"==pa?console.log(Ae):(a.za&&(a.za.value=""),a.g(Ae))}else if("symbols"==T)for(var ad=0;ad<a.I.length;ad++){var bd=a.I[ad],hb;for(hb in bd.Ja)if("."!=hb.charAt(0)){var Be=bd.Ja[hb].o; 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");Ba.length&&a.g("dump extension commands:\n\t"+Ba)}else if("state"==T){var Ge=xf(a.u,!0);"console"==ra?console.log(Ge):(a.za&&(a.za.value=""),a.g(Ge))}else if("symbols"==T)for(var cd=0;cd<a.I.length;cd++){var dd=a.I[cd],ib;for(ib in dd.La)if("."!=ib.charAt(0)){var He=dd.La[ib].o;
if(void 0!==Be){var Ce=bd.Ja[hb].l;Ce&&(hb=Ce);a.g(Z(Be)+" "+hb)}}}else{if("d"==W){for(P in ge)if(f[1]==P){var De=a.Ca[P];De?(f.shift(),f.shift(),De(f)):a.g("no dump registered for "+T);break a}T||(W=a.Fb||"db")}else a.Fb=W;if("dh"==W){var Ee=T,Fe=pa,Ge="",He=0,X=a.ra,za=a.T;if(za.length){var ba=+Ee||a.Za,ib=+Fe||10;isNaN(ba)?ba=ib:Ge="more ";ba>za.length&&(a.g("note: only "+za.length+" available"),ba=za.length);X-=ba;0>X&&(null==za[za.length-1].D?(ba=X+ba,X=0):X+=za.length);var cd=[];"call"==Fe&& if(void 0!==He){var Ie=dd.La[ib].l;Ie&&(ib=Ie);a.g(Z(He)+" "+ib)}}}else{if("d"==W){for(P in ke)if(f[1]==P){var Je=a.Ea[P];Je?(f.shift(),f.shift(),Je(f)):a.g("no dump registered for "+T);break a}T||(W=a.Gb||"db")}else a.Gb=W;if("dh"==W){var Ke=T,Le=ra,Me="",Ne=0,X=a.ra,Ca=a.T;if(Ca.length){var ea=+Ke||a.bb,jb=+Le||10;isNaN(ea)?ea=jb:Me="more ";ea>Ca.length&&(a.g("note: only "+Ca.length+" available"),ea=Ca.length);X-=ea;0>X&&(null==Ca[Ca.length-1].D?(ea=X+ea,X=0):X+=Ca.length);var ed=[];"call"==Le&&
(ib=1E5,cd=["CALL"]);for(void 0!==Ee&&a.g(ba+" instructions earlier:");0<ib&&X!=a.ra;){var Ie=za[X++];if(null==Ie.D)break;var Hb=V(Ie.D),Mf=ba--,Je=af(a,Hb,"history",Mf);(!cd.length||0<=Je.indexOf(cd[0]))&&a.g(Je);Hb.Jb&&(X+=Hb.Jb,ib-=Hb.Jb,ba-=Hb.Jb);X>=za.length&&(X=0);a.Za=ba;He++;ib--}}He||(a.g("no "+Ge+"history available"),a.Za=void 0)}else{var jc=ie(a,T);if(jc){var kc=0;pa&&("l"==pa.charAt(0)&&(pa=pa.substr(1)||Gb),kc=gf(a,pa)>>>0,65536<kc&&(kc=65536));for(var Pa="",lc="dd"==W?4:"dw"==W?2:1, (jb=1E5,ed=["CALL"]);for(void 0!==Ke&&a.g(ea+" instructions earlier:");0<jb&&X!=a.ra;){var Oe=Ca[X++];if(null==Oe.D)break;var Ib=Y(Oe.D),Rf=ea--,Pe=ff(a,Ib,"history",Rf);(!ed.length||0<=Pe.indexOf(ed[0]))&&a.g(Pe);Ib.Mb&&(X+=Ib.Mb,jb-=Ib.Mb,ea-=Ib.Mb);X>=Ca.length&&(X=0);a.bb=ea;Ne++;jb--}}Ne||(a.g("no "+Me+"history available"),a.bb=void 0)}else{var lc=ne(a,T);if(lc){var mc=0;ra&&("l"==ra.charAt(0)&&(ra=ra.substr(1)||Hb),mc=mf(a,ra)>>>0,65536<mc&&(mc=65536));for(var Sa="",nc="dd"==W?4:"dw"==W?2:1,
mc=lc*kc||128,Nf=mc+15>>4||1;Nf--&&0<mc;){var nc=0,dd=0,Ib,Jb="",ed="",T=Z(jc.D);for(Ib=16;0<Ib&&0<mc;Ib--){var oc=a.X(jc,1),nc=nc|oc<<(dd++<<3);dd==lc&&(Jb+=q(nc,2*lc),Jb+=1==lc?9==Ib?"-":" ":" ",nc=dd=0);ed+=32<=oc&&128>oc?String.fromCharCode(oc):".";mc--}Pa&&(Pa+="\n");Pa+=T+" "+Jb+(0==Ib?" "+ed:"")}Pa&&a.g(Pa);a.Ra=jc}}}}break;case "e":if("else"==f[0])break;var pc=1,Ke=255,Le=a.X,Me=a.na;"ew"==f[0]&&(pc=2,Ke=65535,Le=a.La,Me=a.Ib);var Ne=pc<<1,Oe=f[1];if(null==Oe)a.g("edit memory commands:"), oc=nc*mc||128,Sf=oc+15>>4||1;Sf--&&0<oc;){var pc=0,fd=0,Jb,Kb="",gd="",T=Z(lc.D);for(Jb=16;0<Jb&&0<oc;Jb--){var qc=a.X(lc,1),pc=pc|qc<<(fd++<<3);fd==nc&&(Kb+=q(pc,2*nc),Kb+=1==nc?9==Jb?"-":" ":" ",pc=fd=0);gd+=32<=qc&&128>qc?String.fromCharCode(qc):".";oc--}Sa&&(Sa+="\n");Sa+=T+" "+Kb+(0==Jb?" "+gd:"")}Sa&&a.g(Sa);a.Ta=lc}}}}break;case "e":if("else"==f[0])break;var rc=1,Qe=255,Re=a.X,Se=a.na;"ew"==f[0]&&(rc=2,Qe=65535,Re=a.Na,Se=a.Lb);var Te=rc<<1,Ue=f[1];if(null==Ue)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 qc=ie(a,Oe);if(qc)for(var rc=2;rc<f.length;rc++){var Kb=ne(a,f[rc]);if(void 0===Kb){a.g("unrecognized value: "+f[rc]);break}Kb&~Ke&&a.g("warning: "+q(Kb)+" exceeds "+pc+"-byte value");var Of=Le.call(a,qc);a.g("changing "+Z(qc.D)+" from 0x"+q(Of,Ne)+" to 0x"+q(Kb,Ne));Me.call(a,qc,Kb,pc)}}break;case "f":mf(a,f[1]);break;case "g":a:{var Pe=f[1],Pf=b;if(void 0!==Pe){var fd=ie(a,Pe,!0);if(!fd)break a; a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var sc=ne(a,Ue);if(sc)for(var tc=2;tc<f.length;tc++){var Lb=se(a,f[tc]);if(void 0===Lb){a.g("unrecognized value: "+f[tc]);break}Lb&~Qe&&a.g("warning: "+q(Lb)+" exceeds "+rc+"-byte value");var Tf=Re.call(a,sc);a.g("changing "+Z(sc.D)+" from 0x"+q(Tf,Te)+" to 0x"+q(Lb,Te));Se.call(a,sc,Lb,rc)}}break;case "f":rf(a,f[1]);break;case "g":a:{var Ve=f[1],Uf=b;if(void 0!==Ve){var hd=ne(a,Ve,!0);if(!hd)break a;
oe(a,fd,Pf);a.Qa(a.C,fd,!0)}a.Wa(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var gd;if(a.A.sa)gd="halting",a.ga();else{if(gb(a,!0))break a;gd="already halted"}c||a.g(gd)}break;case "i":if("if"==f[0]){var hd;var Lb=b.substr(2),Lb=ia(Lb);ne(a,Lb)?(c||a.g("true: "+Lb),hd=!0):(c||a.g("false: "+Lb),hd=!1);hd||(d=!1);break}var id=f[1];if(id&&"?"!=id){var jd=gf(a,id);if(void 0!==jd){var Qf=zb(a.B,jd);a.g(t(jd)+": "+("0x"+q(Qf,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"), te(a,hd,Uf);a.Sa(a.C,hd,!0)}a.Za(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var id;if(a.B.sa)id="halting",a.ga();else{if(fb(a,!0))break a;id="already halted"}c||a.g(id)}break;case "i":if("if"==f[0]){var jd;var Mb=b.substr(2),Mb=ia(Mb);se(a,Mb)?(c||a.g("true: "+Mb),jd=!0):(c||a.g("false: "+Mb),jd=!1);jd||(d=!1);break}var kd=f[1];if(kd&&"?"!=kd){var ld=mf(a,kd);if(void 0!==ld){var Vf=zb(a.A,ld);a.g(t(ld)+": "+("0x"+q(Vf,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),
a.g("warning: port accesses can affect hardware state");break;case "k":var Rf=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var kd=0,Qe=V(),Mb=V(a.b.fa);for(a.g("stack trace for "+Z(Mb.D));10>kd;){for(var Qa=null,Sf=256;65536>Mb.D>>>0;){Qe.D=a.La(Mb,2);if(null==Mb.D||!Sf--)break;for(var Tf=a,sc=Qe,Re=null,Nb=sc.D,Se=Nb,ld=1;6>=ld&&Nb;ld++){if(2<ld){sc.D=Nb;var tc=af(Tf,sc);if(0<=tc.indexOf("CALL")){var Te=tc.indexOf(" "); a.g("warning: port accesses can affect hardware state");break;case "k":var Wf=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var md=0,We=Y(),Nb=Y(a.b.fa);for(a.g("stack trace for "+Z(Nb.D));10>md;){for(var Ta=null,Xf=256;65536>Nb.D>>>0;){We.D=a.Na(Nb,2);if(null==Nb.D||!Xf--)break;for(var Yf=a,uc=We,Xe=null,Ob=uc.D,Ye=Ob,nd=1;6>=nd&&Ob;nd++){if(2<nd){uc.D=Ob;var vc=ff(Yf,uc);if(0<=vc.indexOf("CALL")){var Ze=vc.indexOf(" ");
if(Nb+(tc.indexOf(" ",Te+1)-Te-1)/2==Se){Re=tc;break}}}Nb--}sc.D=Se;if(Qa=Re)break}if(!Qa||null==Qa)break;var Ue=null;if("ks"==Rf){var Ve=Qa.match(/[0-9A-F]+$/);Ve&&(Ue=of(a,Ve[0]))}Qa=ha(Qa,50)+" ;"+(Ue||"stack="+Z(Mb.D));a.g(Qa);kd++}kd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){of(a,f[1],!0);break}break;case "m":a:{var Aa,Ba=null,K=f[1];"?"==K&&(K=void 0);if(void 0!==K){var Ia=0;if("all"==K)Ia=1878917119,K=null;else if("on"==K)Ba=!0,K=null;else if("off"==K)Ba=!1,K=null;else{"keys"== if(Ob+(vc.indexOf(" ",Ze+1)-Ze-1)/2==Ye){Xe=vc;break}}}Ob--}uc.D=Ye;if(Ta=Xe)break}if(!Ta||null==Ta)break;var $e=null;if("ks"==Wf){var af=Ta.match(/[0-9A-F]+$/);af&&($e=tf(a,af[0]))}Ta=ha(Ta,50)+" ;"+($e||"stack="+Z(Nb.D));a.g(Ta);md++}md||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){tf(a,f[1],!0);break}break;case "m":a:{var Da,Ea=null,L=f[1];"?"==L&&(L=void 0);if(void 0!==L){var La=0;if("all"==L)La=1878917119,L=null;else if("on"==L)Ea=!0,L=null;else if("off"==L)Ea=!1,L=null;else{"keys"==
K&&(K="key");"kbd"==K&&(K="keyboard");for(Aa in ge)if(K==Aa){Ia=ge[Aa];Ba=!!(a.ka&Ia);break}if(!Ia){a.g("unknown message category: "+K);break a}}if(Ia)if("on"==f[2])a.ka|=Ia,Ba=!0;else if("off"==f[2]&&(a.ka&=~Ia,Ba=!1,1073741824==Ia)){for(var md=0;md<a.xa.length;md++)a.g(a.xa[md]);a.xa=[]}}var Uf=0,Ja="";for(Aa in ge)if(!K||K==Aa){var Vf=!!(a.ka&ge[Aa]);if(null===Ba||Ba==Vf)Ja&&(Ja+=","),++Uf%10||(Ja+="\n\t"),"key"==Aa&&(Aa="keys"),Ja+=Aa}void 0===K&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off"); L&&(L="key");"kbd"==L&&(L="keyboard");for(Da in ke)if(L==Da){La=ke[Da];Ea=!!(a.ka&La);break}if(!La){a.g("unknown message category: "+L);break a}}if(La)if("on"==f[2])a.ka|=La,Ea=!0;else if("off"==f[2]&&(a.ka&=~La,Ea=!1,1073741824==La)){for(var od=0;od<a.xa.length;od++)a.g(a.xa[od]);a.xa=[]}}var Zf=0,Ma="";for(Da in ke)if(!L||L==Da){var $f=!!(a.ka&ke[Da]);if(null===Ea||Ea==$f)Ma&&(Ma+=","),++Zf%10||(Ma+="\n\t"),"key"==Da&&(Da="keys"),Ma+=Da}void 0===L&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==Ba?Ba?"messages on: ":"messages off: ":"message categories:\n\t")+(Ja||"none"));Zd(a)}break;case "o":var nd=f[1],Wf=f[2];if(nd&&"?"!=nd){var od=gf(a,nd,"port #"),pd=gf(a,Wf);void 0!==od&&void 0!==pd&&(Cb(a.B,od,pd),a.g(t(od)+": "+("0x"+q(pd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){qf(a,b.substr(5));break}var We="pr"==f[0]?1:0,Xf=1+We;if(a.aa)a.g("step in progress"); a.g((null!==Ea?Ea?"messages on: ":"messages off: ":"message categories:\n\t")+(Ma||"none"));ce(a)}break;case "o":var pd=f[1],ag=f[2];if(pd&&"?"!=pd){var qd=mf(a,pd,"port #"),rd=mf(a,ag);void 0!==qd&&void 0!==rd&&(Db(a.A,qd,rd),a.g(t(qd)+": "+("0x"+q(rd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){vf(a,b.substr(5));break}var bf="pr"==f[0]?1:0,bg=1+bf;if(a.aa)a.g("step in progress");
else{var qd=V(a.b.M);switch(a.X(qd)){case 205:a.aa=Xf,je(qd,3)}a.aa?(a.Qa(a.C,qd,!0),a.Wa()||(a.u&&a.u.Ab(),a.aa=0)):rf(a,We?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}we(a,f);break;case "s":pf(a,f);break;case "t":rf(a,f[0],f[1]);break;case "u":xe(a,f[1],f[2],8);break;case "v":if("var"==f[0]){nf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.23.3 ("+a.b.fb+",RELEASE"+(lb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(qa());break;case "?":if(f[1]){qf(a,b.substr(1));break}var Ob="commands:", else{var sd=Y(a.b.M);switch(a.X(sd)){case 205:a.aa=bg,oe(sd,3)}a.aa?(a.Sa(a.C,sd,!0),a.Za()||(a.u&&a.u.Bb(),a.aa=0)):wf(a,bf?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}Be(a,f);break;case "s":uf(a,f);break;case "t":wf(a,f[0],f[1]);break;case "u":Ce(a,f[1],f[2],8);break;case "v":if("var"==f[0]){sf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.23.3 ("+a.b.Ga+",RELEASE"+(kb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){vf(a,b.substr(1));break}var Pb="commands:",
rd;for(rd in be)Ob+="\n"+ha(rd,7)+be[rd];$c(a)||(Ob+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Ob);break;default:a.g("unknown command: "+b),d=!1}}}catch(Xe){a.g("debugger error: "+(Xe.stack||Xe.message)),d=!1}return d}function ae(a,b,c){b=pe(a,b,c);for(var d in b)if(!$e(a,b[d]))return!1;return!0}Ha(function(){for(var a=C(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Wd(d);ab(d,c)}}); td;for(td in fe)Pb+="\n"+ha(td,7)+fe[td];ad(a)||(Pb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Pb);break;default:a.g("unknown command: "+b),d=!1}}}catch(cf){a.g("debugger error: "+(cf.stack||cf.message)),d=!1}return d}function ee(a,b,c){b=ue(a,b,c);for(var d in b)if(!ef(a,b[d]))return!1;return!0}Ha(function(){for(var a=C(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $d(d);ab(d,c)}});
function Hc(a,b,c){this.id=a.id;this.key=tf(a,b,c);this.G=a.G;uf(this,a.hc)}function tf(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} function I(a,b,c){this.id=a.id;this.key=yf(a,b,c);this.G=a.G;zf(this,a.lc)}function yf(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}
Hc.prototype={constructor:Hc,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){uf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}}; 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){zf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
function uf(a,b){a[a.id]={};b&&H(a,"parms",b);a.b=!1}function vf(a){var b=!0;if(ta()){var c=JSON.stringify(a[a.id]);va(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function wf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function xf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ta()&&(b=ua(a.key))?(a[a.id]=b,a.b=!0):!1}function yf(a,b){return a[a.id][b]||null}function H(a,b,c){try{a[a.id][b]=c}catch(d){}} function zf(a,b){a[a.id]={};b&&J(a,"parms",b);a.b=!1}function Af(a){var b=!0;if(ta()){var c=JSON.stringify(a[a.id]);va(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Bf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Cf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ta()&&(b=ua(a.key))?(a[a.id]=b,a.b=!0):!1}function Df(a,b){return a[a.id][b]||null}function J(a,b,c){try{a[a.id][b]=c}catch(d){}}
function zf(a,b,c){z.call(this,"Computer",a,zf,67108864);this.A.oa=!1;Af(this,b);this.aa=ec(this,"autoPower",a);this.w=0;this.qa=a.busWidth||a.buswidth;this.u=Bf;this.W=null;this.J=this.ia=!1;this.ra=ec(this,"url")||"";(Math.random()+.1).toString(36);this.C=Cf(this);if(this.b=$a("CPU",this.id)){this.G=$a("Debugger",this.id);this.I=[];for(b=null;b=ob(this,"Video",b);)this.I.push(b);this.B=new qb({id:this.Mb+".bus",busWidth:this.qa},this.b,this.G);var d,e=Za(this.id);if((this.F=$a("Panel",this.id))&& function Ef(a,b,c){z.call(this,"Computer",a,Ef,67108864);this.B.oa=!1;Ff(this,b);this.aa=fc(this,"autoPower",a);this.w=0;this.qa=a.busWidth||a.buswidth;this.u=Gf;this.W=null;this.J=this.ia=!1;this.ra=fc(this,"url")||"";(Math.random()+.1).toString(36);this.C=Hf(this);if(this.b=$a("CPU",this.id)){this.G=$a("Debugger",this.id);this.I=[];for(b=null;b=nb(this,"Video",b);)this.I.push(b);this.A=new pb({id:this.Pb+".bus",busWidth:this.qa},this.b,this.G);var d,e=Za(this.id);if((this.F=$a("Panel",this.id))&&
this.F.za)for(b=0;b<e.length;b++)d=e[b],d.ea=this.F.ea,d.g=this.F.g,d.za=this.F.za;this.g("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ka&&d.Ka(this,this.B,this.b,this.G);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.T=d:this.u=parseInt(d,10));var f;if(a=ec(this,"state")||(f=!0,a.state))b=this.ca=a,f||(this.J=!0,this.u=Bf),this.u&&(this.Y=new Hc(this,"1.23.3"),xf(this.Y)? this.F.za)for(b=0;b<e.length;b++)d=e[b],d.ca=this.F.ca,d.g=this.F.g,d.za=this.F.za;this.g("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ma&&d.Ma(this,this.A,this.b,this.G);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.T=d:this.u=parseInt(d,10));var f;if(a=fc(this,"state")||(f=!0,a.state))b=this.da=a,f||(this.J=!0,this.u=Gf),this.u&&(this.Y=new I(this,"1.23.3"),Cf(this.Y)?
b=null:delete this.Y);!b&&this.u&&(b=Df(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.T=null,h.J=!1,h.ea("Unable to load machine state from server (error "+c+(b?": "+ia(b):"")+")")):(h.W=b,h.ia=!0);D(h)})}else D(this);this.L.power||(this.aa=!0);!c&&this.aa&&Ef(this,this.yb)}else w("Unable to find CPU component")}Wa(zf);var Bf=0;function Af(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.K=b} b=null:delete this.Y);!b&&this.u&&(b=If(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.T=null,h.J=!1,h.ca("Unable to load machine state from server (error "+c+(b?": "+ia(b):"")+")")):(h.W=b,h.ia=!0);F(h)})}else F(this);this.K.power||(this.aa=!0);!c&&this.aa&&Jf(this,this.zb)}else w("Unable to find CPU component")}Wa(Ef);var Gf=0;function Ff(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.L=b}
function ec(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Ef(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!jb(f)){jb(f,function(){Ef(a,b,c)});return}}b.call(a,c)} function fc(a,b,c){var d=b.toLowerCase(),d=Pa[b]||Pa[d];void 0===d&&a.L&&(d=a.L[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Jf(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!gb(f)){gb(f,function(){Jf(a,b,c)});return}}b.call(a,c)}
function Ff(a,b){var c=new Hc(a,"1.23.3","validate");if(xf(c)&&wf(c)){var d=yf(c,"timestamp"),e=b?yf(b,"timestamp"):"unknown";d!=e&&(a.ea("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=zf.prototype; function Kf(a,b){var c=new I(a,"1.23.3","validate");if(Cf(c)&&Bf(c)){var d=Df(c,"timestamp"),e=b?Df(b,"timestamp"):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Ef.prototype;
m.yb=function(a){void 0===a&&(a=this.u||(this.W?1:Bf));if(!this.w){this.w++;var b=!1,c=!1;this.ha=!1;var d=this.Y||new Hc(this,"1.23.3");if(-1==a)b=!0;else if(a>Bf){if(xf(d,this.W)){this.H=new Hc(this,"1.23.3","failsafe");xf(this.H)&&(Gf(this,d),a=2,uf(this.H));H(this.H,"timestamp",la());vf(this.H);var e=this.u&&!this.J;if(1==a||ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=wf(d)){var f=yf(d,"code"),h=yf(d,"data");f&&("ok"==f?xf(d,h):("error"== m.zb=function(a){void 0===a&&(a=this.u||(this.W?1:Gf));if(!this.w){this.w++;var b=!1,c=!1;this.ha=!1;var d=this.Y||new I(this,"1.23.3");if(-1==a)b=!0;else if(a>Gf){if(Cf(d,this.W)){this.H=new I(this,"1.23.3","failsafe");Cf(this.H)&&(Lf(this,d),a=2,zf(this.H));J(this.H,"timestamp",la());Af(this.H);var e=this.u&&!this.J;if(1==a||qa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Bf(d)){var f=Df(d,"code"),h=Df(d,"data");f&&("ok"==f?Cf(d,h):("error"==f&&
f&&"no machine state"!=h?(this.ea("Error: "+h),"unable to verify user"==h&&(va("user",""),this.C=null)):this.g(f+": "+h),uf(d),xf(d)?(c=wf(d),e=!0):c=!1))}e&&Ff(this,c?d:null)}else 2==a&&d.clear()}else Ff(this);delete this.W;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=Hf(this,h,d,b,c));b=[d,a,c];-1!=a?Ef(this,this.Tb,b):this.Tb(b)}}; "no machine state"!=h?(this.ca("Error: "+h),"unable to verify user"==h&&(va("user",""),this.C=null)):this.g(f+": "+h),zf(d),Cf(d)?(c=Bf(d),e=!0):c=!1))}e&&Kf(this,c?d:null)}else 2==a&&d.clear()}else Kf(this);delete this.W;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=Mf(this,h,d,b,c));b=[d,a,c];-1!=a?Jf(this,this.Xb,b):this.Xb(b)}};
function Hf(a,b,c,d,e){if(!b.A.oa){b.A.oa=!0;if(b.Ea){var f=null;e&&((f=yf(c,b.id))||(f=yf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.ca&&!a.ia?(c.clear(),a.u=Bf,window&&window.location.reload()):a.ha=!0,b.Ea(null),e=!1)}if(!d&&b.Yb)for(a=b.Yb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function Mf(a,b,c,d,e){if(!b.B.oa){b.B.oa=!0;if(b.Ba){var f=null;e&&((f=Df(c,b.id))||(f=Df(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ba(f,d)&&f&&(w("Unable to restore state for "+b.type),a.da&&!a.ia?(c.clear(),a.u=Gf,window&&window.location.reload()):a.ha=!0,b.Ba(null),e=!1)}if(!d&&b.bc)for(a=b.bc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.Tb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ua=!0;this.A.oa=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Hf(this,this.b,b,c,a),ic(this.b));this.ha&&(Gf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.w=0}; m.Xb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ua=!0;this.B.oa=!0;var d=this.K.power;d&&(d.textContent="Shutdown");this.b&&(Mf(this,this.b,b,c,a),jc(this.b));this.ha&&(Lf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.w=0};
function Gf(a,b){if(ra("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.C||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ra;e.user=c;e.type="bug";e.data=d;na("http://www.pcjs.org/api/v1/report",e,!0)}} function Lf(a,b){if(qa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.C||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ra;e.user=c;e.type="bug";e.data=d;na("http://www.pcjs.org/api/v1/report",e,!0)}}
function sf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Hc(a,"1.23.3"),h=new Hc(a,"1.23.3","validate"),g=la();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.23.3");H(f,"url",window?window.location.href:null);H(f,"browser",qa());a.b&&a.b.Ha&&(c&&a.b.ga(),d=a.b.Ha(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.oa=!1,!1===d&&(e=null)));for(var g=Za(a.id),k=0;k<g.length;k++){var l=g[k];l.A.oa&&(l.Ha&&(d=l.Ha(b,c),"object"===typeof d&&H(f,l.id,d)),c&&(l.A.oa=!1,!1===d&&(e=null)))}e&& function xf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new I(a,"1.23.3"),h=new I(a,"1.23.3","validate"),g=la();J(h,"timestamp",g);J(f,"timestamp",g);J(f,"version","1.23.3");J(f,"url",window?window.location.href:null);J(f,"browser",pa());a.b&&a.b.Ha&&(c&&a.b.ga(),d=a.b.Ha(b,c),"object"===typeof d&&J(f,a.b.id,d),c&&(a.b.B.oa=!1,!1===d&&(e=null)));for(var g=Za(a.id),k=0;k<g.length;k++){var l=g[k];l.B.oa&&(l.Ha&&(d=l.Ha(b,c),"object"===typeof d&&J(f,l.id,d)),c&&(l.B.oa=!1,!1===d&&(e=null)))}e&&
(c?(g=d=!1,b?(a.C&&If(a,a.C,f.toString()),vf(h)&&vf(f)||(e=null,d=g=!0)):a.u&&(d=!0,g=3==a.u),d&&f.clear(g)):e=f.toString());c&&(a.A.oa=!1,b=a.L.power)&&(b.textContent="Power");a.w=0;return e}m.reset=function(){this.B&&this.B.reset&&(db(this,"Resetting "+this.B.type),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(db(this,"Resetting "+c.type),c.reset())}}; (c?(g=d=!1,b?(a.C&&Nf(a,a.C,f.toString()),Af(h)&&Af(f)||(e=null,d=g=!0)):a.u&&(d=!0,g=3==a.u),d&&f.clear(g)):e=f.toString());c&&(a.B.oa=!1,b=a.K.power)&&(b.textContent="Power");a.w=0;return e}m.reset=function(){this.A&&this.A.reset&&(cb(this,"Resetting "+this.A.type),this.A.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&(cb(this,"Resetting "+c.type),c.reset())}};
m.start=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; m.start=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.ma=function(a,b,c){var d=this;switch(b){case "power":return this.L[b]=c,c.onclick=function(){d.w||(d.A.oa?sf(d,!1,!0):Ef(d,d.yb))},!0;case "reset":return this.L[b]=c,c.onclick=function(){if(d.A.oa&&!d.w)if(d.u&&!d.T){var a=ra("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sf(d,a,!0);!a&&d.ca?window&&window.location.reload():d.yb(Bf)}else d.reset(),d.b&&ic(d.b)},!0;case "save":if(ea(oa(),"pcjs.org")){c.parentNode.removeChild(c); m.ma=function(a,b,c){var d=this;switch(b){case "power":return this.K[b]=c,c.onclick=function(){d.w||(d.B.oa?xf(d,!1,!0):Jf(d,d.zb))},!0;case "reset":return this.K[b]=c,c.onclick=function(){if(d.B.oa&&!d.w)if(d.u&&!d.T){var a=qa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");xf(d,a,!0);!a&&d.da?window&&window.location.reload():d.zb(Gf)}else d.reset(),d.b&&jc(d.b)},!0;case "save":if(da(oa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.L[b]=c;c.onclick=function(){var a=Cf(d,!0);if(a){var b=!!(d.u&&!d.T||d.ca),c=sf(d,b);b?If(d,a,c):d.ea("Resume disabled, machine state not saved")}};return!0}return!1}; break}this.K[b]=c;c.onclick=function(){var a=Hf(d,!0);if(a){var b=!!(d.u&&!d.T||d.da),c=xf(d,b);b?Nf(d,a,c):d.ca("Resume disabled, machine state not saved")}};return!0}return!1};
function Cf(a,b){var c=a.C;c||(c=ua("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=Jf(a,c))||a.ea("The user ID is invalid."))):b&&a.ea("Browser local storage is not available"));return c} function Hf(a,b){var c=a.C;c||(c=ua("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=Of(a,c))||a.ca("The user ID is invalid."))):b&&a.ca("Browser local storage is not available"));return c}
function Jf(a,b){a.C=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(va("user",c.data),a.C=c.data)}catch(e){w(e.message+" ("+d+")")}return a.C}function Df(a){var b=null;a.C&&(b=oa()+"/api/v1/user?req=load&user="+a.C+"&state="+tf(a,"1.23.3"));return b} function Of(a,b){a.C=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(va("user",c.data),a.C=c.data)}catch(e){w(e.message+" ("+d+")")}return a.C}function If(a){var b=null;a.C&&(b=oa()+"/api/v1/user?req=load&user="+a.C+"&state="+yf(a,"1.23.3"));return b}
function If(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=tf(a,"1.23.3");d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ea("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.ea(c),va("user",""),a.C=null)}} function Nf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=yf(a,"1.23.3");d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ca("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.ca(c),va("user",""),a.C=null)}}
function ob(a,b,c){a=Za(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.Ab=function(a){if(this.I.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.I[0];d.ya&&d.ya.focus();a&&window&&window.scrollTo(b,c)}};m.Ba=function(a){this.b&&this.b.Ba(a);this.F&&this.F.Ba(a)}; function nb(a,b,c){a=Za(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.Bb=function(a){if(this.I.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.I[0];d.ya&&d.ya.focus();a&&window&&window.scrollTo(b,c)}};m.Ca=function(a){this.b&&this.b.Ca(a);this.F&&this.F.Ca(a)};
function zc(a,b){for(var c=0;c<a.I.length;c++){var d=a.I[c],e=!0;if(0<=b){if(d.gc)if(b&1)e=d.b,e.w=e.w&-8|10,e=!1;else{var f=d.b;f.w=f.w&-8|9}if(f=e&&d.xa){for(var f=d.B,h=d.Ra,g=!0,k=d.wa>>>f.ja;0<h&&k<f.U.length;)f.U[k].Fa&&(f.U[k].Fa=g=!1,f.U[k].Vb=!0),h-=f.Aa,k++;f=g}f&&(e=!1)}if(e)if(1<d.la)switch(d.ha){case 2:for(var l=d.wa,e=-1,f=0,h=60==d.Qc?2:5,k=g=0;f<d.Da;){for(var n=0,p=l,v=e;;){var u=vb(d.B,p++);if(127==(u&127)){l=vb(d.B,p++);e=l&96;l=d.wa|(l&31)<<8|vb(d.B,p);break}if(n<d.va.length)d.va[n++]= function Ac(a,b){for(var c=0;c<a.I.length;c++){var d=a.I[c],e=!0;if(0<=b){if(d.kc)if(b&1)e=d.b,e.w=e.w&-8|10,e=!1;else{var f=d.b;f.w=f.w&-8|9}if(f=e&&d.xa){for(var f=d.A,h=d.Ta,g=!0,k=d.wa>>>f.ja;0<h&&k<f.U.length;)f.U[k].Ja&&(f.U[k].Ja=g=!1,f.U[k].Zb=!0),h-=f.Aa,k++;f=g}f&&(e=!1)}if(e)if(1<d.la)switch(d.ha){case 2:for(var l=d.wa,e=-1,f=0,h=60==d.Xc?2:5,k=g=0;f<d.Fa;){for(var n=0,p=l,v=e;;){var u=ub(d.A,p++);if(127==(u&127)){l=ub(d.A,p++);e=l&96;l=d.wa|(l&31)<<8|ub(d.A,p);break}if(n<d.va.length)d.va[n++]=
u;else break}if(h)h--;else{for(;n<d.va.length;)d.va[n++]=0;for(p=0;p<n;p++){u=d.va[p];if(!d.xa||u!==d.qa[g]){var r=d,B=d.Za,x=u&127;if(u=r.ra[v][u&128?1:0]){var E=(x&15)*u.la,x=(x>>4)*u.da,y=void 0,P=void 0,W=void 0,T=void 0,pa=u.la,Gb=u.da;B?(y=p*r.la,P=f*r.da,W=r.la,T=r.da):(y=p*r.Fb,P=f*r.Zb,W=r.Fb,T=r.Zb);u.la>r.la&&(y*=2,W*=2);u.da>r.da&&(0==v&&(x+=r.da),Gb=r.da);B?B.drawImage(u.canvas,E,x,pa,Gb,y,P,W,T):(y+=0,P+=0,r.H.drawImage(u.canvas,E,x,pa,Gb,y,P,W,T))}k++}g++}f++}}d.xa=!0;k&&d.Za&&d.H.drawImage(d.K, u;else break}if(h)h--;else{for(;n<d.va.length;)d.va[n++]=0;for(p=0;p<n;p++){u=d.va[p];if(!d.xa||u!==d.qa[g]){var r=d,B=d.bb,x=u&127;if(u=r.ra[v][u&128?1:0]){var E=(x&15)*u.la,x=(x>>4)*u.ea,y=void 0,P=void 0,W=void 0,T=void 0,ra=u.la,Hb=u.ea;B?(y=p*r.la,P=f*r.ea,W=r.la,T=r.ea):(y=p*r.Gb,P=f*r.cc,W=r.Gb,T=r.cc);u.la>r.la&&(y*=2,W*=2);u.ea>r.ea&&(0==v&&(x+=r.ea),Hb=r.ea);B?B.drawImage(u.canvas,E,x,ra,Hb,y,P,W,T):(y+=0,P+=0,r.H.drawImage(u.canvas,E,x,ra,Hb,y,P,W,T))}k++}g++}f++}}d.xa=!0;k&&d.bb&&d.H.drawImage(d.L,
0,0,d.J,d.aa-d.da,0,0,d.Mc,d.Nc)}else{g=d.wa;k=g+d.Ra;l=v=n=0;e=d.J;p=0;f=d.aa;r=h=0;B=d.Oa;u=(1<<B)-1;d.Pc&&(B=-B,r=16+B);for(;g<k;){E=wb(d.B,g);if(d.xa&&E===d.qa[n])v+=d.fc;else{d.qa[n]=E;(x=r)&&(E=E>>8|(E&255)<<8);v<e&&(e=v);for(y=d.fc;y--;)P=E>>x&u,Vd(d,d.ac,v++,l,P),x+=B;v>p&&(p=v);l<f&&(f=l);l>=h&&(h=l+1)}g+=2;n++;if(v>=d.J&&(v=0,l++,l>d.aa))break}d.xa=!0;e<d.J&&(g=p-e,h-=f,d.F&&(k=e,n=g,e=f,g=h,f=d.J-(k+n),h=n),d.Za.putImageData(d.ac,0,0,e,f,g,h),d.H.drawImage(d.K,0,0,d.K.width,d.K.height, 0,0,d.J,d.aa-d.ea,0,0,d.Tc,d.Uc)}else{g=d.wa;k=g+d.Ta;l=v=n=0;e=d.J;p=0;f=d.aa;r=h=0;B=d.Qa;u=(1<<B)-1;d.Wc&&(B=-B,r=16+B);for(;g<k;){E=vb(d.A,g);if(d.xa&&E===d.qa[n])v+=d.jc;else{d.qa[n]=E;(x=r)&&(E=E>>8|(E&255)<<8);v<e&&(e=v);for(y=d.jc;y--;)P=E>>x&u,Zd(d,d.ec,v++,l,P),x+=B;v>p&&(p=v);l<f&&(f=l);l>=h&&(h=l+1)}g+=2;n++;if(v>=d.J&&(v=0,l++,l>d.aa))break}d.xa=!0;e<d.J&&(g=p-e,h-=f,d.F&&(k=e,n=g,e=f,g=h,f=d.J-(k+n),h=n),d.bb.putImageData(d.ec,0,0,e,f,g,h),d.H.drawImage(d.L,0,0,d.L.width,d.L.height,
0,0,d.Y,d.W))}}}Ha(function(){for(var a=C(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new zf(h,d,!0);ab(h,f);h.aa&&Ef(h,h.yb)}});Da.show.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=$a("Computer",c.id))&&c.ua&&!c.A.oa&&c.yb(-1)}}); 0,0,d.Y,d.W))}}}Ha(function(){for(var a=C(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new Ef(h,d,!0);ab(h,f);h.aa&&Jf(h,h.zb)}});za.show.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=$a("Computer",c.id))&&c.ua&&!c.B.oa&&c.zb(-1)}});
Da.exit.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=$a("Computer",c.id))&&c.A.oa&&sf(c,!(!c.u||c.T),!0)}});var Kf=0;function Lf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Yf(g,a,b,c,d,e,f)})} za.exit.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=$a("Computer",c.id))&&c.B.oa&&xf(c,!(!c.u||c.T),!0)}});var Pf=0;function Qf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):cg(g,a,b,c,d,e,f)})}
function Yf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2")); function cg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$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?Zf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} 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?dg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Zf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[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{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function dg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[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{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Zf(a,b,c)}})}else c(a,null)} "");a=a.replace(d[0],h);dg(a,b,c)}})}else c(a,null)}
function $f(a,b,c,d){function e(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);k&&(--Kf||La(!0));k=!1}var h,g,k=!0;Kf++;Xa[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)}c|| function eg(a,b,c,d){function e(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);k&&(--Pf||Ja(!0));k=!1}var h,g,k=!0;Pf++;Xa[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)}c||
(c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?Lf(c,null,null,!1,e,function(d,l){if(l)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--Kf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--Kf||La(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?Qf(c,null,null,!1,e,function(d,k){if(k)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Pf||Ja(!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),--Pf||Ja(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Lf(b,a,d,!0,e,l):Yf(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(v){f(v.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return $f(a,b,c,d)};window.enableEvents=La;window.sendEvent=Ma; a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Qf(b,a,d,!0,e,l):cg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(v){f(v.message)}return k}window.embedPC8080=function(a,b,c,d){Ja(!1);return eg(a,b,c,d)};window.enableEvents=Ja;window.sendEvent=Ka;
function ag(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){bg(b,d)}):bg(null,d)}else w("Error ("+c+") requesting "+a)} function fg(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){gg(b,d)}):gg(null,d)}else w("Error ("+c+") requesting "+a)}
function bg(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],k={},l;for(l in g){var n=g[l],p=da(l);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var v=d[2];v&&(g[v]||(n=n.replace(d[0],"")))}d=l=ca(l)}else"xsl"==p&&(e=l=ca(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, function gg(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],k={},l;for(l in g){var n=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var v=d[2];v&&(g[v]||(n=n.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),l=h,g=null,k="data:application/javascript,",k=wa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', "&#xA9;"),l=h,g=null,k="data:application/javascript,",k=wa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",w(c)):w("Missing XML/XSL resources")} c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",w(c)):w("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=sf(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,hc:h}))return!0;na(b,null,!0,function(c,d,e){ag(c,d,e,[a,ca(b,!0),h,f])});return!0}w("Unable to identify machine '"+a+"'");return!1};})(); window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=xf(d,!0),h=d.L?JSON.stringify(d.L):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,lc:h}))return!0;na(b,null,!0,function(c,d,e){fg(c,d,e,[a,ba(b,!0),h,f])});return!0}w("Unable to identify machine '"+a+"'");return!1};})();

View file

@ -6,140 +6,143 @@ typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encod
function t(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 t(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var pa={init:[],show:[],exit:[]},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 ta(a){pa.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 pa={init:[],show:[],exit:[]},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 ta(a){pa.init.push(a)}
function ua(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function va(a){!ra&&a?(ra=!0,qa&&wa("init")):ra=a}function wa(a){pa[a]&&ua(pa[a])}sa("onload",function(){qa=!0;ua(pa.init)});sa("onpageshow",function(){ua(pa.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ua(pa.exit)}); function ua(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function va(a){!ra&&a?(ra=!0,qa&&wa("init")):ra=a}function wa(a){pa[a]&&ua(pa[a])}sa("onload",function(){qa=!0;ua(pa.init)});sa("onpageshow",function(){ua(pa.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ua(pa.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.fb=b.comment;this.vb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Wa=this.id.substr(0,b),this.Va=this.id.substr(b+1)):this.Va=this.id;this[a]=c;this.h={qa:!1,xa:!1,Ya:!1,P:!1,ja:!1};this.La=null;this.h.ja=!1;this.B={};this.K=null;v.push(this)}var xa=void 0,ya={}; function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.jb=b.comment;this.zb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.$a=this.id.substr(0,b),this.Za=this.id.substr(b+1)):this.Za=this.id;this[a]=c;this.h={ra:!1,ya:!1,bb:!1,P:!1,ka:!1};this.Na=null;this.h.ka=!1;this.w={};this.K=null;v.push(this)}var xa=void 0,ya={};
if(window){xa||(xa=window.location.search.substr(1));for(var za,Aa=/\+/g,Ba=/([^&=]+)=?([^&]*)/g;za=Ba.exec(xa);)ya[decodeURIComponent(za[1].replace(Aa," "))]=decodeURIComponent(za[2].replace(Aa," "))}function Da(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){xa||(xa=window.location.search.substr(1));for(var za,Aa=/\+/g,Ba=/([^&=]+)=?([^&]*)/g;za=Ba.exec(xa);)ya[decodeURIComponent(za[1].replace(Aa," "))]=decodeURIComponent(za[2].replace(Aa," "))}function Ca(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=u);a.prototype=Da(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var v=[],Ea={};function Fa(a,b,c){Ea[a]&&b&&(Ea[a][b]=c)}function C(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c} function y(a,b){b||(b=u);a.prototype=Ca(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var v=[],Ea={};function Fa(a,b,c){Ea[a]&&b&&(Ea[a][b]=c)}function Ga(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ga(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<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b} function Ha(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<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function Ha(a,b){for(var c=E(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=D(h))&&g.binding&&a.R(g.type,g.binding,h,g.value),l=k.length}}}} function Ia(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=C(h))&&g.binding&&a.R(g.type,g.binding,h,g.value),l=k.length}}}}
function E(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c} function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},R:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.ea=this.B[b]=c,c.value="",this.V=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c), u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},R:function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.ga=this.w[b]=c,c.value="",this.W=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.I=function(a){this.V(a,this.Va)}),!0;default:return!1}},log:function(){},V:function(){},status:function(a){this.V(this.Va+": "+a)},I:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},aa:function(){return this.h.P=!0},da:function(a,b){b&&(this.h.P=!1);return!0}};function Ia(a,b){if(a.h.Ya)return a.h.xa&&(a.h.xa=!1),a.h.Ya=!1;if(a.h.ja)return a.V(a.toString()+" error"),!1;a.h.xa=b;return a.h.xa}function F(a){if(!a.h.ja&&(a.h.qa=!0,a.h.qa)){var b=a.La;a.La=null;b&&b()}} this.I=function(a){this.W(a,this.Za)}),!0;default:return!1}},log:function(){},W:function(){},status:function(a){this.W(this.Za+": "+a)},I:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},Y:function(){return this.h.P=!0},ea:function(a,b){b&&(this.h.P=!1);return!0}};function Ja(a,b){if(a.h.bb)return a.h.ya&&(a.h.ya=!1),a.h.bb=!1;if(a.h.ka)return a.W(a.toString()+" error"),!1;a.h.ya=b;return a.h.ya}function E(a){if(!a.h.ka&&(a.h.ra=!0,a.h.ra)){var b=a.Na;a.Na=null;b&&b()}}
function Ja(a,b){b&&(a.h.qa?b():a.La=b);return a.h.qa} function Ka(a,b){b&&(a.h.ra?b():a.Na=b);return a.h.ra}
var Ka="undefined"!==typeof ArrayBuffer,La=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var La="undefined"!==typeof ArrayBuffer,Ma=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ma(a){u.call(this,"Panel",a,Ma)}y(Ma);m=Ma.prototype;m.R=function(a,b,c,d){return this.u&&this.u.R(a,b,c,d)||this.a&&this.a.R(a,b,c,d)||this.C&&this.C.R(a,b,c,d)?!0:this.parent.R.call(this,a,b,c,d)};m.fa=function(a,b,c,d){this.u=a;this.m=b;this.a=c;this.K=d;this.C=Na(a,"Keyboard")};m.aa=function(a,b){b||Oa();return!0};m.da=function(){return!0};m.ma=function(){}; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Na(a){u.call(this,"Panel",a,Na)}y(Na);m=Na.prototype;m.R=function(a,b,c,d){return this.u&&this.u.R(a,b,c,d)||this.a&&this.a.R(a,b,c,d)||this.C&&this.C.R(a,b,c,d)?!0:this.parent.R.call(this,a,b,c,d)};m.ha=function(a,b,c,d){this.u=a;this.l=b;this.a=c;this.K=d;this.C=Oa(a,"Keyboard")};m.Y=function(a,b){b||Pa();return!0};m.ea=function(){return!0};m.na=function(){};
function Oa(){for(var a=!1,b=E(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===f){f=v[h];break a}f=null}f||(a=!0,f=new Ma(e));Ha(f,d);a&&F(f)}}ta(Oa); function Pa(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=C(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===f){f=v[h];break a}f=null}f||(a=!0,f=new Na(e));Ia(f,d);a&&E(f)}}ta(Pa);
function Pa(a,b,c){u.call(this,"Bus",a,Pa);this.a=b;this.K=c;this.i=a.busWidth||16;this.s=Math.pow(2,this.i);this.g=this.s-1|0;this.c=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.m=1<<this.c;this.v=this.m>>2;this.f=this.m-1;this.j=this.s/this.m|0;this.u=this.j-1;this.l=[];this.o=[];this.D=[];this.C=[];a=new G;Qa(a,this.K);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;F(this)}y(Pa);Pa.prototype.reset=function(){};Pa.prototype.aa=function(a,b){b||this.reset();return!0}; function Qa(a,b,c){u.call(this,"Bus",a,Qa);this.a=b;this.K=c;this.i=a.busWidth||16;this.s=Math.pow(2,this.i);this.g=this.s-1|0;this.c=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.l=1<<this.c;this.v=this.l>>2;this.f=this.l-1;this.j=this.s/this.l|0;this.u=this.j-1;this.m=[];this.o=[];this.D=[];this.C=[];a=new F;Ra(a,this.K);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;E(this)}y(Qa);Qa.prototype.reset=function(){};Qa.prototype.Y=function(a,b){b||this.reset();return!0};
function Ra(a,b,c,d){for(var e=b,f=c,h=e>>>a.c;0<f&&h<a.b.length;){var g=a.b[h],k=h*a.m,l=a.m-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.oa)return g.Ra+=g.oa-e,g.oa=e,!0;if(e>=g.oa+g.Ra){l=g.size-(e-k);l>f&&(l=f);g.Ra=e-g.oa+l;e=k+a.m;f-=l;h++;continue}}return Sa(1,e,f)}e=new G(e,l,a.m,d);Qa(e,a.K,g);a.b[h++]=e;e=k+a.m;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ta[d]+" at "+("0x"+n(b,4))),!0):Sa(2,b,c)} function Sa(a,b,c,d){for(var e=b,f=c,h=e>>>a.c;0<f&&h<a.b.length;){var g=a.b[h],k=h*a.l,l=a.l-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.pa)return g.Va+=g.pa-e,g.pa=e,!0;if(e>=g.pa+g.Va){l=g.size-(e-k);l>f&&(l=f);g.Va=e-g.pa+l;e=k+a.l;f-=l;h++;continue}}return Ta(1,e,f)}e=new F(e,l,a.l,d);Ra(e,a.K,g);a.b[h++]=e;e=k+a.l;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ua[d]+" at "+("0x"+n(b,4))),!0):Ta(2,b,c)}
Pa.prototype.G=function(a){return this.b[(a&this.g)>>>this.c].Fa(a&this.f,a)};function Ua(a,b){return a.b[(b&a.g)>>>a.c].Qa(b&a.f,b)}function Va(a,b){var c=b&a.f,d=(b&a.g)>>>a.c;return c!=a.f?a.b[d].dc(c,b):a.b[d++].Fa(c,b)|a.b[d&a.u].Fa(0,b+1)<<8}Pa.prototype.S=function(a,b){this.b[(a&this.g)>>>this.c].Ga(a&this.f,b&255,a)};function Wa(a,b,c){a.b[(b&a.g)>>>a.c].Ab(b&a.f,c&255,b)} Qa.prototype.G=function(a){return this.b[(a&this.g)>>>this.c].Ha(a&this.f,a)};function Va(a,b){return a.b[(b&a.g)>>>a.c].Ua(b&a.f,b)}function Wa(a,b){var c=b&a.f,d=(b&a.g)>>>a.c;return c!=a.f?a.b[d].kc(c,b):a.b[d++].Ha(c,b)|a.b[d&a.u].Ha(0,b+1)<<8}Qa.prototype.S=function(a,b){this.b[(a&this.g)>>>this.c].Ia(a&this.f,b&255,a)};function Xa(a,b,c){a.b[(b&a.g)>>>a.c].Cb(b&a.f,c&255,b)}
function Xa(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.c;d!=a.f?a.b[e].ec(d,c&65535,b):(a.b[e++].Ga(d,c&255,b),a.b[e&a.u].Ga(0,c>>8&255,b+1))}function Sa(a,b,c){t("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Ya;if(Ka){var Za=new ArrayBuffer(2);(new DataView(Za)).setUint16(0,256,!0);Ya=256===(new Uint16Array(Za))[0]}else Ya=!1;var $a=Ya; function Ya(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.c;d!=a.f?a.b[e].lc(d,c&65535,b):(a.b[e++].Ia(d,c&255,b),a.b[e&a.u].Ia(0,c>>8&255,b+1))}function Za(a,b,c){var d;void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.m[k]?t("Input port 0x"+n(k,4)+" already registered"):f.m[k]=[g,!1]}}
function G(a,b,c,d){this.id=ab+=2;this.a=null;this.oa=a;this.Ra=b;this.size=c||0;this.type=d||bb;this.f=d==db;Qa(this);this.Z=this.nb=!1;if(c)if(Ka)this.c=new ArrayBuffer(c),this.m=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),eb(this,$a?fb:gb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;eb(this,hb)}else eb(this)}var bb=0,db=2,Ta=["NONE","RAM","ROM","VID","H/W"],ab=0; function $a(a,b,c){var d;void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.o[k]?t("Output port 0x"+n(k,4)+" already registered"):f.o[k]=[g,!1]}}function Ta(a,b,c){t("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var ab;if(La){var bb=new ArrayBuffer(2);(new DataView(bb)).setUint16(0,256,!0);ab=256===(new Uint16Array(bb))[0]}else ab=!1;var cb=ab;
G.prototype={constructor:G,parent:null,Za:function(a){this.oa=a},save:function(){var a,b;if(Ka)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.m.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Ka)for(b=0;b<a.length;b++)this.m.setInt32(b<<2,a[b],!0);else this.a=a;return this.Z=!0}return!1},B:function(){return 255},o:function(){},l:function(a,b){return this.Fa(a++,b++)|this.Fa(a,b)<<8},u:function(a,b,c){this.Ga(a++,b&255,c++);this.Ga(a,b>> function F(a,b,c,d){this.id=db+=2;this.a=null;this.pa=a;this.Va=b;this.size=c||0;this.type=d||fb;this.f=d==gb;Ra(this);this.ca=this.rb=!1;if(c)if(La)this.c=new ArrayBuffer(c),this.l=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),hb(this,cb?ib:jb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;hb(this,kb)}else hb(this)}var fb=0,gb=2,Ua=["NONE","RAM","ROM","VID","H/W"],db=0;
8,c)},C:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},N: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},W:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.Z=!0},na: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.Z=!0},v:function(a,b){return this.Qa(a,b)},H:function(a,b){return this.yb(a,b)},T:function(a,b,c){this.f|| F.prototype={constructor:F,parent:null,za:function(a){this.pa=a},save:function(){var a,b;if(La)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.l.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(La)for(b=0;b<a.length;b++)this.l.setInt32(b<<2,a[b],!0);else this.a=a;return this.ca=!0}return!1},w:function(){return 255},o:function(){},m:function(a,b){return this.Ha(a++,b++)|this.Ha(a,b)<<8},u:function(a,b,c){this.Ia(a++,b&255,c++);this.Ia(a,b>>
this.Ab(a,b,c)},ga:function(a,b,c){this.f||this.Y(a,b,c)},s:function(a){return this.b[a]},D:function(a){return this.b[a]},F:function(a){return this.m.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},O:function(a,b){this.b[a]=b;this.Z=!0},U:function(a,b){this.b[a]=b;this.Z=!0},X:function(a,b){this.m.setUint16(a,b,!0);this.Z=!0},ba:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.Z=!0}}; 8,c)},C:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},L: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},V:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.ca=!0},oa: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.ca=!0},v:function(a,b){return this.Ua(a,b)},H:function(a,b){return this.Ab(a,b)},O:function(a,b,c){this.f||
function Qa(a,b,c){a.K=b;a.g=a.i=0;c&&((a.g=c.g)&&ib(a,jb,!1),(a.i=c.i)&&kb(a,jb,!1))}function kb(a,b,c){c&&a.i||(a.Ga=!a.f&&b[2]||a.o,a.ec=!a.f&&b[3]||a.u);if(c||void 0===c)a.Ab=b[2]||a.o,a.Y=b[3]||a.u}function ib(a,b,c){c&&a.g||(a.Fa=b[0]||a.B,a.dc=b[1]||a.l);if(c||void 0===c)a.Qa=b[0]||a.B,a.yb=b[1]||a.l}function eb(a,b){b||(b=lb);ib(a,b,void 0);kb(a,b,void 0)}var lb=[],hb=[G.prototype.C,G.prototype.N,G.prototype.W,G.prototype.na],jb=[G.prototype.v,G.prototype.H,G.prototype.T,G.prototype.ga]; this.Cb(a,b,c)},$:function(a,b,c){this.f||this.aa(a,b,c)},s:function(a){return this.b[a]},D:function(a){return this.b[a]},F:function(a){return this.l.getUint16(a,!0)},T:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},N:function(a,b){this.b[a]=b;this.ca=!0},U:function(a,b){this.b[a]=b;this.ca=!0},Z:function(a,b){this.l.setUint16(a,b,!0);this.ca=!0},fa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.ca=!0}};
if(Ka)var gb=[G.prototype.s,G.prototype.F,G.prototype.O,G.prototype.X],fb=[G.prototype.D,G.prototype.L,G.prototype.U,G.prototype.ba]; function Ra(a,b,c){a.K=b;a.g=a.i=0;c&&((a.g=c.g)&&lb(a,mb,!1),(a.i=c.i)&&nb(a,mb,!1))}function nb(a,b,c){c&&a.i||(a.Ia=!a.f&&b[2]||a.o,a.lc=!a.f&&b[3]||a.u);if(c||void 0===c)a.Cb=b[2]||a.o,a.aa=b[3]||a.u}function lb(a,b,c){c&&a.g||(a.Ha=b[0]||a.w,a.kc=b[1]||a.m);if(c||void 0===c)a.Ua=b[0]||a.w,a.Ab=b[1]||a.m}function hb(a,b){b||(b=ob);lb(a,b,void 0);nb(a,b,void 0)}var ob=[],kb=[F.prototype.C,F.prototype.L,F.prototype.V,F.prototype.oa],mb=[F.prototype.v,F.prototype.H,F.prototype.O,F.prototype.$];
function mb(a,b){u.call(this,"CPU",a,mb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.va=c;this.c.Pa=0;this.c.ua=d;this.c.$a=Math.round(this.c.va/1E4)/100;this.c.ra=this.c.$a*this.c.ua;this.h.$=!1;this.h.pb=!1;this.h.mb=a.autoStart;this.h.ob=!1;this.h.Ja=!1;this.c.Na=this.c.ta=0;this.c.Oa=a.csStart;this.c.ya=a.csInterval;this.c.za=a.csStop;this.ba=this.cb.bind(this);F(this)}y(mb);var nb=["power","reset"];m=mb.prototype; if(La)var jb=[F.prototype.s,F.prototype.F,F.prototype.N,F.prototype.Z],ib=[F.prototype.D,F.prototype.T,F.prototype.U,F.prototype.fa];
m.fa=function(a,b,c,d){this.u=a;this.m=b;this.K=d;for(b=0;b<nb.length;b++)(c=this.B[nb[b]])&&this.u.R(null,nb[b],c);this.U=(b=Na(a,"Video"))&&Math.max(b.Ub,b.qb)||60;this.D=Na(a,"ChipSet");a=ob(a,"autoStart");null!=a&&(this.h.mb="true"==a?!0:"false"==a?!1:!!a);F(this)};m.reset=function(){this.c.Pa=0};m.save=function(){return null};m.restore=function(){return!1}; function pb(a,b){u.call(this,"CPU",a,pb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.wa=c;this.c.Ra=0;this.c.va=d;this.c.cb=Math.round(this.c.wa/1E4)/100;this.c.sa=this.c.cb*this.c.va;this.h.da=!1;this.h.tb=!1;this.h.qb=a.autoStart;this.h.sb=!1;this.h.La=!1;this.c.Pa=this.c.ua=0;this.c.Qa=a.csStart;this.c.Aa=a.csInterval;this.c.Ba=a.csStop;this.fa=this.gb.bind(this);E(this)}y(pb);var qb=["power","reset"];m=pb.prototype;
m.aa=function(a,b){if(!b){if(a&&this.restore){pb(this);if(!this.restore(a))return!1;qb(this)}else this.reset();this.V("No debugger detected")}rb(this);return!0};m.da=function(a){return a?this.save():!0};function sb(a){(a.h.mb||void 0===a.B.run)&&a.cb(!0)}m.rb=function(){return 0};function qb(a){void 0===a.c.Oa&&(a.c.Oa=0);void 0===a.c.ya&&(a.c.ya=-1);void 0===a.c.za&&(a.c.za=-1);a.h.Ja=0<=a.c.Oa&&0<a.c.ya;a.h.Ja&&(a.c.Na=0,a.c.ta=a.c.Oa-a.O)} m.ha=function(a,b,c,d){this.u=a;this.l=b;this.K=d;for(b=0;b<qb.length;b++)(c=this.w[qb[b]])&&this.u.R(null,qb[b],c);this.V=(b=Oa(a,"Video"))&&Math.max(b.ac,b.ub)||60;this.D=Oa(a,"ChipSet");a=rb(a,"autoStart");null!=a&&(this.h.qb="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){this.c.Ra=0};m.save=function(){return null};m.restore=function(){return!1};
m.R=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.P)a=!0;else{var b=null,c,g=C(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.qa);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.P);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.qa?"powered yet":"ready yet"+(b.La?" (waiting for notification)":""))+".");a=!1}a&&(d.h.$?tb(d,!0):d.cb(!0))};a=!0;break; m.Y=function(a,b){if(!b){if(a&&this.restore){sb(this);if(!this.restore(a))return!1;tb(this)}else this.reset();this.W("No debugger detected")}ub(this);return!0};m.ea=function(a){return a?this.save():!0};function vb(a){(a.h.qb||void 0===a.w.run)&&a.gb(!0)}m.vb=function(){return 0};function tb(a){void 0===a.c.Qa&&(a.c.Qa=0);void 0===a.c.Aa&&(a.c.Aa=-1);void 0===a.c.Ba&&(a.c.Ba=-1);a.h.La=0<=a.c.Qa&&0<a.c.Aa;a.h.La&&(a.c.Pa=0,a.c.ua=a.c.Qa-a.O)}
case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){ub(d,d.c.ua<<1,!0)},c.textContent=this.c.ra.toFixed(2)+"Mhz",a=!0}return a};function vb(a,b,c){a.O+=b;c&&(a.N=a.a=0)} m.R=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.P)a=!0;else{var b=null,c,g=Ga(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ra);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.P);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.ra?"powered yet":"ready yet"+(b.Na?" (waiting for notification)":""))+".");a=!1}a&&(d.h.da?wb(d,!0):d.gb(!0))};a=!0;
function wb(a,b){var c=30;c<a.U&&(c=a.U);2>c&&(c=2);var d=1;b&&1<a.c.ua&&a.c.ka&&(d=a.c.ka/a.c.$a);a.c.sb=Math.round(1E3/30);a.c.Vb=Math.floor(a.c.va/c*d);a.c.ab=Math.floor(a.c.va/30*d);a.c.ub=Math.floor(a.c.va/a.U*d);a.c.tb=Math.floor(a.c.va/2*d);b||(a.c.Ca=a.c.ab,a.c.Ba=a.c.ub,a.c.Aa=a.c.tb);a.c.bb=0}function xb(a){return a.O+a.L+a.N-a.a}function pb(a){a.c.ka=0;a.O=a.L=a.N=a.a=0;qb(a);ub(a,1)} break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){xb(d,d.c.va<<1,!0)},c.textContent=this.c.sa.toFixed(2)+"Mhz",a=!0}return a};function yb(a,b,c){a.O+=b;c&&(a.N=a.a=0)}
function ub(a,b,c){if(void 0!==b){.8>a.c.ka/a.c.ra&&(b=1);a.c.ua=b;b=a.c.$a*a.c.ua;if(a.c.ra!=b){a.c.ra=b;b=a.c.ra.toFixed(2)+"Mhz";var d=a.B.setSpeed;d&&(d.textContent=b);a.V("target speed: "+b)}c&&a.u&&yb(a.u)}vb(a,a.L);a.L=0;a.c.sa=ga();a.c.la=0;wb(a)} function zb(a,b){var c=30;c<a.V&&(c=a.V);2>c&&(c=2);var d=1;b&&1<a.c.va&&a.c.la&&(d=a.c.la/a.c.cb);a.c.wb=Math.round(1E3/30);a.c.bc=Math.floor(a.c.wa/c*d);a.c.eb=Math.floor(a.c.wa/30*d);a.c.yb=Math.floor(a.c.wa/a.V*d);a.c.xb=Math.floor(a.c.wa/2*d);b||(a.c.Ea=a.c.eb,a.c.Da=a.c.yb,a.c.Ca=a.c.xb);a.c.fb=0}function Ab(a){return a.O+a.L+a.N-a.a}function sb(a){a.c.la=0;a.O=a.L=a.N=a.a=0;tb(a);xb(a,1)}
m.cb=function(a){if(Ia(this,!0)){if(!this.h.$){ub(this);this.u&&this.u.start(this.c.sa,xb(this));this.h.$=!0;this.h.pb=!0;this.D&&this.D.start();var b=this.B.run;b&&(b.textContent="Halt");this.u&&(this.u.ma(!0),a&&yb(this.u,!0))}this.c.bb>=this.c.va&&wb(this,!0);this.c.Da=0;this.c.Ma=ga();this.c.la&&(a=this.c.Ma-this.c.la,a>this.c.sb&&(this.c.sa+=a,this.c.sa>this.c.Ma&&(this.c.sa=this.c.Ma)));try{do{this.zb(this.h.Ja?1:this.c.Vb);var c=this.N-this.a;this.L+=c;this.c.Da+=c;vb(this,0,!0);a=c;this.h.Ja&& function xb(a,b,c){if(void 0!==b){.8>a.c.la/a.c.sa&&(b=1);a.c.va=b;b=a.c.cb*a.c.va;if(a.c.sa!=b){a.c.sa=b;b=a.c.sa.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.W("target speed: "+b)}c&&a.u&&Bb(a.u)}yb(a,a.L);a.L=0;a.c.ta=ga();a.c.ma=0;zb(a)}
(b=!1,this.c.Na=this.c.Na+this.rb()|0,this.c.ta-=a,0>=this.c.ta&&(this.c.ta+=this.c.ya,b=!0),0<=this.c.za&&this.c.za<=xb(this)&&(this.c.ya=this.c.za=-1,qb(this),tb(this),b=!0),b&&this.V(xb(this)+" cycles: checksum="+n(this.c.Na)));this.c.Ba-=c;0>=this.c.Ba&&(this.c.Ba+=this.c.ub,this.u&&zb(this.u,this.c.Pa++),this.c.Pa>this.U&&(this.c.Pa=0));this.c.Aa-=c;0>=this.c.Aa&&(this.c.Aa+=this.c.tb,this.u&&this.u.ma());this.c.Ca-=c;if(0>=this.c.Ca){this.c.Ca+=this.c.ab;break}}while(this.h.$)}catch(e){tb(this); m.gb=function(a){if(Ja(this,!0)){if(!this.h.da){xb(this);this.u&&this.u.start(this.c.ta,Ab(this));this.h.da=!0;this.h.tb=!0;this.D&&this.D.start();var b=this.w.run;b&&(b.textContent="Halt");this.u&&(this.u.na(!0),a&&Bb(this.u,!0))}this.c.fb>=this.c.wa&&zb(this,!0);this.c.Fa=0;this.c.Oa=ga();this.c.ma&&(a=this.c.Oa-this.c.ma,a>this.c.wb&&(this.c.ta+=a,this.c.ta>this.c.Oa&&(this.c.ta=this.c.Oa)));try{do{this.Bb(this.h.La?1:this.c.bc);var c=this.N-this.a;this.L+=c;this.c.Fa+=c;yb(this,0,!0);a=c;this.h.La&&
rb(this);this.u&&this.u.stop(ga(),xb(this));Ia(this,!1);c=e.stack||e.message;this.h.ja=!0;this.I(c);return}c=setTimeout;a=this.ba;this.c.la=ga();b=this.c.sb;this.c.Da&&(b=Math.round(b*this.c.Da/this.c.ab));var b=b-(this.c.la-this.c.Ma),d=this.c.la-this.c.sa;d&&(this.c.ka=Math.round(this.L/(10*d))/100,864E5<=d&&(this.O=0,ub(this)));if(0>b||this.c.ka<this.c.ra)b=0;this.c.bb+=this.c.Da;this.c.la+=b;c(a,b)}else rb(this),this.u&&this.u.stop(ga(),xb(this))};m.zb=function(){return 0}; (b=!1,this.c.Pa=this.c.Pa+this.vb()|0,this.c.ua-=a,0>=this.c.ua&&(this.c.ua+=this.c.Aa,b=!0),0<=this.c.Ba&&this.c.Ba<=Ab(this)&&(this.c.Aa=this.c.Ba=-1,tb(this),wb(this),b=!0),b&&this.W(Ab(this)+" cycles: checksum="+n(this.c.Pa)));this.c.Da-=c;0>=this.c.Da&&(this.c.Da+=this.c.yb,this.u&&Cb(this.u,this.c.Ra++),this.c.Ra>this.V&&(this.c.Ra=0));this.c.Ca-=c;0>=this.c.Ca&&(this.c.Ca+=this.c.xb,this.u&&this.u.na());this.c.Ea-=c;if(0>=this.c.Ea){this.c.Ea+=this.c.eb;break}}while(this.h.da)}catch(e){wb(this);
function tb(a,b){a.h.xa&&(a.h.Ya=!0);a.N-=a.a;a.a=0;vb(a,a.L);a.L=0;if(a.h.$){a.h.$=!1;a.D&&a.D.stop();var c=a.B.run;c&&(c.textContent="Run")}a.h.Ka=b}function rb(a){a.u&&(zb(a.u,-1),a.u.ma(void 0))}function Ab(a){this.ga=+a.model||8080;mb.call(this,a,1E6);this.W=Bb;pb(this);this.h.Ka=this.h.Jb=!1;this.Y=0;this.T=[];this.X=0;Cb(this)}y(Ab,mb);function Db(a,b){a.T.push(b)}m=Ab.prototype;m.reset=function(){this.h.$&&tb(this);Cb(this);pb(this);this.h.ja=!1;this.parent.reset.call(this)}; ub(this);this.u&&this.u.stop(ga(),Ab(this));Ja(this,!1);c=e.stack||e.message;this.h.ka=!0;this.I(c);return}c=setTimeout;a=this.fa;this.c.ma=ga();b=this.c.wb;this.c.Fa&&(b=Math.round(b*this.c.Fa/this.c.eb));var b=b-(this.c.ma-this.c.Oa),d=this.c.ma-this.c.ta;d&&(this.c.la=Math.round(this.L/(10*d))/100,864E5<=d&&(this.O=0,xb(this)));if(0>b||this.c.la<this.c.sa)b=0;this.c.fb+=this.c.Fa;this.c.ma+=b;c(a,b)}else ub(this),this.u&&this.u.stop(ga(),Ab(this))};m.Bb=function(){return 0};
function Cb(a){a.b=0;a.f=0;a.w=0;a.g=0;a.A=0;a.i=0;a.j=0;a.v=0;J(a,a.X);Fb(a,0);a.F=0}function Gb(a,b){a.X=b;J(a,b)}m.rb=function(){var a=this.b+this.f+this.w+this.g+this.A+this.i+this.j|0;return a=a+this.v+this.o+Hb(this)|0}; function wb(a,b){a.h.ya&&(a.h.bb=!0);a.N-=a.a;a.a=0;yb(a,a.L);a.L=0;if(a.h.da){a.h.da=!1;a.D&&a.D.stop();var c=a.w.run;c&&(c.textContent="Run")}a.h.Ma=b}function ub(a){a.u&&(Cb(a.u,-1),a.u.na(void 0))}function Db(a){this.T=+a.model||8080;pb.call(this,a,1E6);this.Z=Eb;sb(this);this.h.Ma=this.h.Qb=!1;this.aa=0;this.U=[];this.$=0;Fb(this)}y(Db,pb);function Hb(a,b){a.U.push(b)}m=Db.prototype;m.reset=function(){this.h.da&&wb(this);Fb(this);sb(this);this.h.ka=!1;this.parent.reset.call(this)};
m.save=function(){var a=new K(this);L(a,0,[this.b,this.f,this.w,this.g,this.A,this.i,this.j,this.v,this.o,Hb(this)]);L(a,1,[this.F,this.O,this.c.ua]);for(var b=this.m,c=0,d=[],e=0;e<b.j;e++){var f=b.b[e];if(f.Z||f.nb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var r=f[g],p=g+1;p<f.length&&f[p]===r;)p++;l[k++]=p-g;l[k++]=r;g=p}if(l.length<f.length){f=l;break a}}d[h]=f}}L(a,2,d);return a.data()}; function Fb(a){a.b=0;a.f=0;a.A=0;a.g=0;a.B=0;a.i=0;a.j=0;a.v=0;G(a,a.$);Ib(a,0);a.F=0}function Jb(a,b){a.$=b;G(a,b)}m.vb=function(){var a=this.b+this.f+this.A+this.g+this.B+this.i+this.j|0;return a=a+this.v+this.o+Kb(this)|0};
m.restore=function(a){var b=a[0];this.b=b[0];this.f=b[1];this.w=b[2];this.g=b[3];this.A=b[4];this.i=b[5];this.j=b[6];this.v=b[7]&65535;J(this,b[8]);Fb(this,b[9]);b=a[1];this.F=b[0];this.O=b[1];ub(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.v){for(var f=0,h=Array(b.v),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.b[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; m.save=function(){var a=new I(this);K(a,0,[this.b,this.f,this.A,this.g,this.B,this.i,this.j,this.v,this.o,Kb(this)]);K(a,1,[this.F,this.O,this.c.va]);for(var b=this.l,c=0,d=[],e=0;e<b.j;e++){var f=b.b[e];if(f.ca||f.rb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var r=f[g],p=g+1;p<f.length&&f[p]===r;)p++;l[k++]=p-g;l[k++]=r;g=p}if(l.length<f.length){f=l;break a}}d[h]=f}}K(a,2,d);return a.data()};
m.R=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.B[b]=c;this.Y++;d=!0;break;default:d=this.parent.R.call(this,a,b,c)}return d};function Ib(a){return a.f<<8|a.w}function Jb(a,b){a.f=b>>8&255;a.w=b&255}function Kb(a){return a.g<<8|a.A}function Lb(a,b){a.g=b>>8&255;a.A=b&255}function M(a){return a.i<<8|a.j} m.restore=function(a){var b=a[0];this.b=b[0];this.f=b[1];this.A=b[2];this.g=b[3];this.B=b[4];this.i=b[5];this.j=b[6];this.v=b[7]&65535;G(this,b[8]);Ib(this,b[9]);b=a[1];this.F=b[0];this.O=b[1];xb(this,b[3]);a:{b=this.l;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.v){for(var f=0,h=Array(b.v),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.b[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
function N(a,b){a.i=b>>8&255;a.j=b&255}function J(a,b){a.o=b&65535}function O(a){return a.l&256?1:0}function Q(a,b){a.l=a.l&255|b}function Mb(a){return La[a.s&255]?4:0}function Hb(a){return a.H&-214|(a.s&128?128:0)|(a.l&255?0:64)|((a.s^a.C)&16?16:0)|Mb(a)|O(a)}function Fb(a,b){a.l=a.s=a.C=0;b&1&&(a.l|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.l|=255);b&128&&(a.s^=192);a.H=a.H&-726|b&512|2}function R(a,b){a.C=a.b^b;return a.s=(a.l=a.b+b)&255} m.R=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.aa++;d=!0;break;default:d=this.parent.R.call(this,a,b,c)}return d};function Lb(a){return a.f<<8|a.A}function Mb(a,b){a.f=b>>8&255;a.A=b&255}function Nb(a){return a.g<<8|a.B}function Ob(a,b){a.g=b>>8&255;a.B=b&255}function L(a){return a.i<<8|a.j}
function Nb(a,b){a.C=a.b^b;return a.s=(a.l=a.b+b+(a.l&256?1:0))&255}function Ob(a,b){a.l=a.s=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.l}function Pb(a,b){a.C=b^255;b=a.s=b+255&255;a.l=a.l&-256|b;return b}function Qb(a,b){a.C=b;b=a.s=b+1&255;a.l=a.l&-256|b;return b}function Rb(a,b){return a.s=a.l=a.C=a.b|b}function S(a,b){b^=255;a.C=a.b^b;return a.s=(a.l=a.b+b+1^256)&255}function Sb(a,b){b^=255;a.C=a.b^b;return a.s=(a.l=a.b+b+(a.l&256?0:1)^256)&255}function Tb(a,b){return a.s=a.l=a.C=a.b^b}m.G=function(a){return this.m.G(a)}; function M(a,b){a.i=b>>8&255;a.j=b&255}function G(a,b){a.o=b&65535}function N(a){return a.m&256?1:0}function O(a,b){a.m=a.m&255|b}function Pb(a){return Ma[a.s&255]?4:0}function Kb(a){return a.H&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.C)&16?16:0)|Pb(a)|N(a)}function Ib(a,b){a.m=a.s=a.C=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.H=a.H&-726|b&512|2}function Qb(a,b){a.C=a.b^b;return a.s=(a.m=a.b+b)&255}
m.S=function(a,b){this.m.S(a,b)};function T(a){var b=a.G(a.o);J(a,a.o+1);return b}function U(a){var b=Va(a.m,a.o);J(a,a.o+2);return b}function V(a){var b=Va(a.m,a.v);a.v=a.v+2&65535;return b}function W(a,b){a.v=a.v-2&65535;Xa(a.m,a.v,b)}function X(a,b,c,d){d=d||2;a.B[b]&&(void 0===c&&(a.h.ja=!0,a.I("Value for "+b+" is invalid"),tb(a)),c=!a.h.$||a.h.ob?n(c,d):"--------".substr(0,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))} function Rb(a,b){a.C=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function Sb(a,b){a.m=a.s=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.m}function Tb(a,b){a.C=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function Ub(a,b){a.C=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function Vb(a,b){return a.s=a.m=a.C=a.b|b}function P(a,b){b^=255;a.C=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function Wb(a,b){b^=255;a.C=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function Xb(a,b){return a.s=a.m=a.C=a.b^b}m.G=function(a){return this.l.G(a)};
m.ma=function(a){this.Y&&(a||!this.h.$||this.h.ob)&&(X(this,"A",this.b),X(this,"B",this.f),X(this,"C",this.w),X(this,"BC",Ib(this),4),X(this,"D",this.g),X(this,"E",this.A),X(this,"DE",Kb(this),4),X(this,"H",this.i),X(this,"L",this.j),X(this,"HL",M(this),4),X(this,"SP",this.v,4),X(this,"PC",this.o,4),a=Hb(this),X(this,"PS",a,4),X(this,"IF",a&512?1:0,1),X(this,"SF",a&128?1:0,1),X(this,"ZF",a&64?1:0,1),X(this,"AF",a&16?1:0,1),X(this,"PF",a&4?1:0,1),X(this,"CF",a&1?1:0,1));if(a=this.B.speed)a.textContent= m.S=function(a,b){this.l.S(a,b)};function R(a){var b=a.G(a.o);G(a,a.o+1);return b}function S(a){var b=Wa(a.l,a.o);G(a,a.o+2);return b}function T(a){var b=Wa(a.l,a.v);a.v=a.v+2&65535;return b}function U(a,b){a.v=a.v-2&65535;Ya(a.l,a.v,b)}function V(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.h.ka=!0,a.I("Value for "+b+" is invalid"),wb(a)),c=!a.h.da||a.h.sb?n(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}
this.h.$&&this.c.ka?this.c.ka.toFixed(2)+"Mhz":"Stopped"};m.zb=function(a){this.h.Ka=!0;this.h.Jb=!1;this.h.pb=!1;this.N=this.a=a;do{if(a=this.F)this.F&8&&this.H&512?(a=199|(this.F&7)<<3,this.F&=-16,this.H&=-513,this.W[a].call(this),a=!0):a=!1,a=!a;if(a&&this.F&16){this.a=0;break}this.W[T(this)].call(this)}while(0<this.a);return this.h.Ka?this.N-this.a:void 0===this.h.Ka?0:-1};ta(function(){for(var a=E(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ab(d);Ha(d,c)}}); m.na=function(a){this.aa&&(a||!this.h.da||this.h.sb)&&(V(this,"A",this.b),V(this,"B",this.f),V(this,"C",this.A),V(this,"BC",Lb(this),4),V(this,"D",this.g),V(this,"E",this.B),V(this,"DE",Nb(this),4),V(this,"H",this.i),V(this,"L",this.j),V(this,"HL",L(this),4),V(this,"SP",this.v,4),V(this,"PC",this.o,4),a=Kb(this),V(this,"PS",a,4),V(this,"IF",a&512?1:0,1),V(this,"SF",a&128?1:0,1),V(this,"ZF",a&64?1:0,1),V(this,"AF",a&16?1:0,1),V(this,"PF",a&4?1:0,1),V(this,"CF",a&1?1:0,1));if(a=this.w.speed)a.textContent=
function Ub(){this.a-=4}function Vb(){J(this,U(this));this.a-=10}function Wb(){J(this,V(this));this.a-=10}function Xb(){var a=U(this);W(this,this.o);J(this,a);this.a-=17} this.h.da&&this.c.la?this.c.la.toFixed(2)+"Mhz":"Stopped"};m.Bb=function(a){this.h.Ma=!0;this.h.Qb=!1;this.h.tb=!1;this.N=this.a=a;do{if(a=this.F)this.F&8&&this.H&512?(a=199|(this.F&7)<<3,this.F&=-16,this.H&=-513,this.Z[a].call(this),a=!0):a=!1,a=!a;if(a&&this.F&16){this.a=0;break}this.Z[R(this)].call(this)}while(0<this.a);return this.h.Ma?this.N-this.a:void 0===this.h.Ma?0:-1};ta(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Db(d);Ia(d,c)}});
var Bb=[Ub,function(){Jb(this,U(this));this.a-=10},function(){this.S(Ib(this),this.b);this.a-=7},function(){Jb(this,Ib(this)+1);this.a-=5},function(){this.f=Qb(this,this.f);this.a-=5},function(){this.f=Pb(this,this.f);this.a-=5},function(){this.f=T(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;Q(this,a&256);this.a-=4},Ub,function(){var a;N(this,a=M(this)+Ib(this));Q(this,a>>8&256);this.a-=10},function(){this.b=this.G(Ib(this));this.a-=7},function(){Jb(this,Ib(this)-1);this.a-=5},function(){this.w= function Yb(){this.a-=4}function Zb(){G(this,S(this));this.a-=10}function $b(){G(this,T(this));this.a-=10}function ac(){var a=S(this);U(this,this.o);G(this,a);this.a-=17}
Qb(this,this.w);this.a-=5},function(){this.w=Pb(this,this.w);this.a-=5},function(){this.w=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;Q(this,a);this.a-=4},Ub,function(){Lb(this,U(this));this.a-=10},function(){this.S(Kb(this),this.b);this.a-=7},function(){Lb(this,Kb(this)+1);this.a-=5},function(){this.g=Qb(this,this.g);this.a-=5},function(){this.g=Pb(this,this.g);this.a-=5},function(){this.g=T(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|O(this);Q(this,a&256); var Eb=[Yb,function(){Mb(this,S(this));this.a-=10},function(){this.S(Lb(this),this.b);this.a-=7},function(){Mb(this,Lb(this)+1);this.a-=5},function(){this.f=Ub(this,this.f);this.a-=5},function(){this.f=Tb(this,this.f);this.a-=5},function(){this.f=R(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;O(this,a&256);this.a-=4},Yb,function(){var a;M(this,a=L(this)+Lb(this));O(this,a>>8&256);this.a-=10},function(){this.b=this.G(Lb(this));this.a-=7},function(){Mb(this,Lb(this)-1);this.a-=5},function(){this.A=
this.a-=4},Ub,function(){var a;N(this,a=M(this)+Kb(this));Q(this,a>>8&256);this.a-=10},function(){this.b=this.G(Kb(this));this.a-=7},function(){Lb(this,Kb(this)-1);this.a-=5},function(){this.A=Qb(this,this.A);this.a-=5},function(){this.A=Pb(this,this.A);this.a-=5},function(){this.A=T(this);this.a-=7},function(){var a=this.b<<8;this.b=(O(this)<<8|this.b)>>1;Q(this,a&256);this.a-=4},Ub,function(){N(this,U(this));this.a-=10},function(){var a=U(this);Xa(this.m,a,M(this));this.a-=16},function(){N(this, Ub(this,this.A);this.a-=5},function(){this.A=Tb(this,this.A);this.a-=5},function(){this.A=R(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;O(this,a);this.a-=4},Yb,function(){Ob(this,S(this));this.a-=10},function(){this.S(Nb(this),this.b);this.a-=7},function(){Ob(this,Nb(this)+1);this.a-=5},function(){this.g=Ub(this,this.g);this.a-=5},function(){this.g=Tb(this,this.g);this.a-=5},function(){this.g=R(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|N(this);O(this,a&256);
M(this)+1);this.a-=5},function(){this.i=Qb(this,this.i);this.a-=5},function(){this.i=Pb(this,this.i);this.a-=5},function(){this.i=T(this);this.a-=7},function(){var a=0,b=O(this);if((this.s^this.C)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=R(this,a);Q(this,b?256:0);this.a-=4},Ub,function(){var a;N(this,a=M(this)+M(this));Q(this,a>>8&256);this.a-=10},function(){var a;a=U(this);a=Va(this.m,a);N(this,a);this.a-=16},function(){N(this,M(this)-1);this.a-=5},function(){this.j=Qb(this,this.j); this.a-=4},Yb,function(){var a;M(this,a=L(this)+Nb(this));O(this,a>>8&256);this.a-=10},function(){this.b=this.G(Nb(this));this.a-=7},function(){Ob(this,Nb(this)-1);this.a-=5},function(){this.B=Ub(this,this.B);this.a-=5},function(){this.B=Tb(this,this.B);this.a-=5},function(){this.B=R(this);this.a-=7},function(){var a=this.b<<8;this.b=(N(this)<<8|this.b)>>1;O(this,a&256);this.a-=4},Yb,function(){M(this,S(this));this.a-=10},function(){var a=S(this);Ya(this.l,a,L(this));this.a-=16},function(){M(this,
this.a-=5},function(){this.j=Pb(this,this.j);this.a-=5},function(){this.j=T(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Ub,function(){this.v=U(this)&65535;this.a-=10},function(){this.S(U(this),this.b);this.a-=13},function(){this.v=this.v+1&65535;this.a-=5},function(){var a=M(this);this.S(a,Qb(this,this.G(a)));this.a-=10},function(){var a=M(this);this.S(a,Pb(this,this.G(a)));this.a-=10},function(){this.S(M(this),T(this));this.a-=10},function(){this.l|=256;this.a-=4},Ub,function(){var a; L(this)+1);this.a-=5},function(){this.i=Ub(this,this.i);this.a-=5},function(){this.i=Tb(this,this.i);this.a-=5},function(){this.i=R(this);this.a-=7},function(){var a=0,b=N(this);if((this.s^this.C)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=Qb(this,a);O(this,b?256:0);this.a-=4},Yb,function(){var a;M(this,a=L(this)+L(this));O(this,a>>8&256);this.a-=10},function(){var a;a=S(this);a=Wa(this.l,a);M(this,a);this.a-=16},function(){M(this,L(this)-1);this.a-=5},function(){this.j=Ub(this,this.j);
N(this,a=M(this)+this.v);Q(this,a>>8&256);this.a-=10},function(){this.b=this.G(U(this));this.a-=13},function(){this.v=this.v-1&65535;this.a-=5},function(){this.b=Qb(this,this.b);this.a-=5},function(){this.b=Pb(this,this.b);this.a-=5},function(){this.b=T(this);this.a-=7},function(){Q(this,O(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.f=this.w;this.a-=5},function(){this.f=this.g;this.a-=5},function(){this.f=this.A;this.a-=5},function(){this.f=this.i;this.a-=5},function(){this.f=this.j; this.a-=5},function(){this.j=Tb(this,this.j);this.a-=5},function(){this.j=R(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Yb,function(){this.v=S(this)&65535;this.a-=10},function(){this.S(S(this),this.b);this.a-=13},function(){this.v=this.v+1&65535;this.a-=5},function(){var a=L(this);this.S(a,Ub(this,this.G(a)));this.a-=10},function(){var a=L(this);this.S(a,Tb(this,this.G(a)));this.a-=10},function(){this.S(L(this),R(this));this.a-=10},function(){this.m|=256;this.a-=4},Yb,function(){var a;
this.a-=5},function(){this.f=this.G(M(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.w=this.f;this.a-=5},function(){this.a-=5},function(){this.w=this.g;this.a-=5},function(){this.w=this.A;this.a-=5},function(){this.w=this.i;this.a-=5},function(){this.w=this.j;this.a-=5},function(){this.w=this.G(M(this));this.a-=7},function(){this.w=this.b;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.w;this.a-=5},function(){this.a-=5},function(){this.g=this.A;this.a-= M(this,a=L(this)+this.v);O(this,a>>8&256);this.a-=10},function(){this.b=this.G(S(this));this.a-=13},function(){this.v=this.v-1&65535;this.a-=5},function(){this.b=Ub(this,this.b);this.a-=5},function(){this.b=Tb(this,this.b);this.a-=5},function(){this.b=R(this);this.a-=7},function(){O(this,N(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.f=this.A;this.a-=5},function(){this.f=this.g;this.a-=5},function(){this.f=this.B;this.a-=5},function(){this.f=this.i;this.a-=5},function(){this.f=this.j;
5},function(){this.g=this.i;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=this.G(M(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.A=this.f;this.a-=5},function(){this.A=this.w;this.a-=5},function(){this.A=this.g;this.a-=5},function(){this.a-=5},function(){this.A=this.i;this.a-=5},function(){this.A=this.j;this.a-=5},function(){this.A=this.G(M(this));this.a-=7},function(){this.A=this.b;this.a-=5},function(){this.i=this.f;this.a-=5},function(){this.i=this.w;this.a-= this.a-=5},function(){this.f=this.G(L(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.A=this.f;this.a-=5},function(){this.a-=5},function(){this.A=this.g;this.a-=5},function(){this.A=this.B;this.a-=5},function(){this.A=this.i;this.a-=5},function(){this.A=this.j;this.a-=5},function(){this.A=this.G(L(this));this.a-=7},function(){this.A=this.b;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.A;this.a-=5},function(){this.a-=5},function(){this.g=this.B;this.a-=
5},function(){this.i=this.g;this.a-=5},function(){this.i=this.A;this.a-=5},function(){this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.G(M(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.j=this.f;this.a-=5},function(){this.j=this.w;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=this.A;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.a-=5},function(){this.j=this.G(M(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.S(M(this), 5},function(){this.g=this.i;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=this.G(L(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.B=this.f;this.a-=5},function(){this.B=this.A;this.a-=5},function(){this.B=this.g;this.a-=5},function(){this.a-=5},function(){this.B=this.i;this.a-=5},function(){this.B=this.j;this.a-=5},function(){this.B=this.G(L(this));this.a-=7},function(){this.B=this.b;this.a-=5},function(){this.i=this.f;this.a-=5},function(){this.i=this.A;this.a-=
this.f);this.a-=7},function(){this.S(M(this),this.w);this.a-=7},function(){this.S(M(this),this.g);this.a-=7},function(){this.S(M(this),this.A);this.a-=7},function(){this.S(M(this),this.i);this.a-=7},function(){this.S(M(this),this.j);this.a-=7},function(){var a=this.o-1;if(this.T.length)for(var b=0;b<this.T.length;b++)if(this.T[b](a))return;this.F|=16;this.a-=7;this.H&512||tb(this)},function(){this.S(M(this),this.b);this.a-=7},function(){this.b=this.f;this.a-=5},function(){this.b=this.w;this.a-=5}, 5},function(){this.i=this.g;this.a-=5},function(){this.i=this.B;this.a-=5},function(){this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.G(L(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.j=this.f;this.a-=5},function(){this.j=this.A;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=this.B;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.a-=5},function(){this.j=this.G(L(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.S(L(this),
function(){this.b=this.g;this.a-=5},function(){this.b=this.A;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.G(M(this));this.a-=7},function(){this.a-=5},function(){this.b=R(this,this.f);this.a-=4},function(){this.b=R(this,this.w);this.a-=4},function(){this.b=R(this,this.g);this.a-=4},function(){this.b=R(this,this.A);this.a-=4},function(){this.b=R(this,this.i);this.a-=4},function(){this.b=R(this,this.j);this.a-=4},function(){this.b=R(this,this.G(M(this))); this.f);this.a-=7},function(){this.S(L(this),this.A);this.a-=7},function(){this.S(L(this),this.g);this.a-=7},function(){this.S(L(this),this.B);this.a-=7},function(){this.S(L(this),this.i);this.a-=7},function(){this.S(L(this),this.j);this.a-=7},function(){var a=this.o-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;this.F|=16;this.a-=7;this.H&512||wb(this)},function(){this.S(L(this),this.b);this.a-=7},function(){this.b=this.f;this.a-=5},function(){this.b=this.A;this.a-=5},
this.a-=7},function(){this.b=R(this,this.b);this.a-=4},function(){this.b=Nb(this,this.f);this.a-=4},function(){this.b=Nb(this,this.w);this.a-=4},function(){this.b=Nb(this,this.g);this.a-=4},function(){this.b=Nb(this,this.A);this.a-=4},function(){this.b=Nb(this,this.i);this.a-=4},function(){this.b=Nb(this,this.j);this.a-=4},function(){this.b=Nb(this,this.G(M(this)));this.a-=7},function(){this.b=Nb(this,this.b);this.a-=4},function(){this.b=S(this,this.f);this.a-=4},function(){this.b=S(this,this.w); function(){this.b=this.g;this.a-=5},function(){this.b=this.B;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.G(L(this));this.a-=7},function(){this.a-=5},function(){this.b=Qb(this,this.f);this.a-=4},function(){this.b=Qb(this,this.A);this.a-=4},function(){this.b=Qb(this,this.g);this.a-=4},function(){this.b=Qb(this,this.B);this.a-=4},function(){this.b=Qb(this,this.i);this.a-=4},function(){this.b=Qb(this,this.j);this.a-=4},function(){this.b=Qb(this,
this.a-=4},function(){this.b=S(this,this.g);this.a-=4},function(){this.b=S(this,this.A);this.a-=4},function(){this.b=S(this,this.i);this.a-=4},function(){this.b=S(this,this.j);this.a-=4},function(){this.b=S(this,this.G(M(this)));this.a-=7},function(){this.b=S(this,this.b);this.a-=4},function(){this.b=Sb(this,this.f);this.a-=4},function(){this.b=Sb(this,this.w);this.a-=4},function(){this.b=Sb(this,this.g);this.a-=4},function(){this.b=Sb(this,this.A);this.a-=4},function(){this.b=Sb(this,this.i);this.a-= this.G(L(this)));this.a-=7},function(){this.b=Qb(this,this.b);this.a-=4},function(){this.b=Rb(this,this.f);this.a-=4},function(){this.b=Rb(this,this.A);this.a-=4},function(){this.b=Rb(this,this.g);this.a-=4},function(){this.b=Rb(this,this.B);this.a-=4},function(){this.b=Rb(this,this.i);this.a-=4},function(){this.b=Rb(this,this.j);this.a-=4},function(){this.b=Rb(this,this.G(L(this)));this.a-=7},function(){this.b=Rb(this,this.b);this.a-=4},function(){this.b=P(this,this.f);this.a-=4},function(){this.b=
4},function(){this.b=Sb(this,this.j);this.a-=4},function(){this.b=Sb(this,this.G(M(this)));this.a-=7},function(){this.b=Sb(this,this.b);this.a-=4},function(){this.b=Ob(this,this.f);this.a-=4},function(){this.b=Ob(this,this.w);this.a-=4},function(){this.b=Ob(this,this.g);this.a-=4},function(){this.b=Ob(this,this.A);this.a-=4},function(){this.b=Ob(this,this.i);this.a-=4},function(){this.b=Ob(this,this.j);this.a-=4},function(){this.b=Ob(this,this.G(M(this)));this.a-=7},function(){this.b=Ob(this,this.b); P(this,this.A);this.a-=4},function(){this.b=P(this,this.g);this.a-=4},function(){this.b=P(this,this.B);this.a-=4},function(){this.b=P(this,this.i);this.a-=4},function(){this.b=P(this,this.j);this.a-=4},function(){this.b=P(this,this.G(L(this)));this.a-=7},function(){this.b=P(this,this.b);this.a-=4},function(){this.b=Wb(this,this.f);this.a-=4},function(){this.b=Wb(this,this.A);this.a-=4},function(){this.b=Wb(this,this.g);this.a-=4},function(){this.b=Wb(this,this.B);this.a-=4},function(){this.b=Wb(this,
this.a-=4},function(){this.b=Tb(this,this.f);this.a-=4},function(){this.b=Tb(this,this.w);this.a-=4},function(){this.b=Tb(this,this.g);this.a-=4},function(){this.b=Tb(this,this.A);this.a-=4},function(){this.b=Tb(this,this.i);this.a-=4},function(){this.b=Tb(this,this.j);this.a-=4},function(){this.b=Tb(this,this.G(M(this)));this.a-=7},function(){this.b=Tb(this,this.b);this.a-=4},function(){this.b=Rb(this,this.f);this.a-=4},function(){this.b=Rb(this,this.w);this.a-=4},function(){this.b=Rb(this,this.g); this.i);this.a-=4},function(){this.b=Wb(this,this.j);this.a-=4},function(){this.b=Wb(this,this.G(L(this)));this.a-=7},function(){this.b=Wb(this,this.b);this.a-=4},function(){this.b=Sb(this,this.f);this.a-=4},function(){this.b=Sb(this,this.A);this.a-=4},function(){this.b=Sb(this,this.g);this.a-=4},function(){this.b=Sb(this,this.B);this.a-=4},function(){this.b=Sb(this,this.i);this.a-=4},function(){this.b=Sb(this,this.j);this.a-=4},function(){this.b=Sb(this,this.G(L(this)));this.a-=7},function(){this.b=
this.a-=4},function(){this.b=Rb(this,this.A);this.a-=4},function(){this.b=Rb(this,this.i);this.a-=4},function(){this.b=Rb(this,this.j);this.a-=4},function(){this.b=Rb(this,this.G(M(this)));this.a-=7},function(){this.b=Rb(this,this.b);this.a-=4},function(){S(this,this.f);this.a-=4},function(){S(this,this.w);this.a-=4},function(){S(this,this.g);this.a-=4},function(){S(this,this.A);this.a-=4},function(){S(this,this.i);this.a-=4},function(){S(this,this.j);this.a-=4},function(){S(this,this.G(M(this))); Sb(this,this.b);this.a-=4},function(){this.b=Xb(this,this.f);this.a-=4},function(){this.b=Xb(this,this.A);this.a-=4},function(){this.b=Xb(this,this.g);this.a-=4},function(){this.b=Xb(this,this.B);this.a-=4},function(){this.b=Xb(this,this.i);this.a-=4},function(){this.b=Xb(this,this.j);this.a-=4},function(){this.b=Xb(this,this.G(L(this)));this.a-=7},function(){this.b=Xb(this,this.b);this.a-=4},function(){this.b=Vb(this,this.f);this.a-=4},function(){this.b=Vb(this,this.A);this.a-=4},function(){this.b=
this.a-=7},function(){S(this,this.b);this.a-=4},function(){this.l&255&&(J(this,V(this)),this.a-=6);this.a-=5},function(){Jb(this,V(this));this.a-=10},function(){var a=U(this);this.l&255&&J(this,a);this.a-=10},Vb,function(){var a=U(this);this.l&255&&(W(this,this.o),J(this,a),this.a-=6);this.a-=11},function(){W(this,Ib(this));this.a-=11},function(){this.b=R(this,T(this));this.a-=7},function(){W(this,this.o);J(this,0);this.a-=11},function(){this.l&255||(J(this,V(this)),this.a-=6);this.a-=5},Wb,function(){var a= Vb(this,this.g);this.a-=4},function(){this.b=Vb(this,this.B);this.a-=4},function(){this.b=Vb(this,this.i);this.a-=4},function(){this.b=Vb(this,this.j);this.a-=4},function(){this.b=Vb(this,this.G(L(this)));this.a-=7},function(){this.b=Vb(this,this.b);this.a-=4},function(){P(this,this.f);this.a-=4},function(){P(this,this.A);this.a-=4},function(){P(this,this.g);this.a-=4},function(){P(this,this.B);this.a-=4},function(){P(this,this.i);this.a-=4},function(){P(this,this.j);this.a-=4},function(){P(this,
U(this);this.l&255||J(this,a);this.a-=10},Vb,function(){var a=U(this);this.l&255||(W(this,this.o),J(this,a),this.a-=6);this.a-=11},Xb,function(){this.b=Nb(this,T(this));this.a-=7},function(){W(this,this.o);J(this,8);this.a-=11},function(){O(this)||(J(this,V(this)),this.a-=6);this.a-=5},function(){Lb(this,V(this));this.a-=10},function(){var a=U(this);O(this)||J(this,a);this.a-=10},function(){for(var a=T(this),b=this.m,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var h=b.o[a],g=b.C[a]||1,k=1==g?255:2== this.G(L(this)));this.a-=7},function(){P(this,this.b);this.a-=4},function(){this.m&255&&(G(this,T(this)),this.a-=6);this.a-=5},function(){Mb(this,T(this));this.a-=10},function(){var a=S(this);this.m&255&&G(this,a);this.a-=10},Zb,function(){var a=S(this);this.m&255&&(U(this,this.o),G(this,a),this.a-=6);this.a-=11},function(){U(this,Lb(this));this.a-=11},function(){this.b=Qb(this,R(this));this.a-=7},function(){U(this,this.o);G(this,0);this.a-=11},function(){this.m&255||(G(this,T(this)),this.a-=6);this.a-=
g?65535:-1,k=(c>>>=f)&k;if(void 0!==h&&h[0])h[0](a,k,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=U(this);O(this)||(W(this,this.o),J(this,a),this.a-=6);this.a-=11},function(){W(this,Kb(this));this.a-=11},function(){this.b=S(this,T(this));this.a-=7},function(){W(this,this.o);J(this,16);this.a-=11},function(){O(this)&&(J(this,V(this)),this.a-=6);this.a-=5},Wb,function(){var a=U(this);O(this)&&J(this,a);this.a-=10},function(){for(var a=T(this),b=this.m,c=this.o+-2&65535,d=1,e=0,f=0;0<d;){var h= 5},$b,function(){var a=S(this);this.m&255||G(this,a);this.a-=10},Zb,function(){var a=S(this);this.m&255||(U(this,this.o),G(this,a),this.a-=6);this.a-=11},ac,function(){this.b=Rb(this,R(this));this.a-=7},function(){U(this,this.o);G(this,8);this.a-=11},function(){N(this)||(G(this,T(this)),this.a-=6);this.a-=5},function(){Ob(this,T(this));this.a-=10},function(){var a=S(this);N(this)||G(this,a);this.a-=10},function(){for(var a=R(this),b=this.l,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var h=b.o[a],g=b.C[a]||
b.l[a],g=b.D[a]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h&&h[0]&&(l=h[0](a,c),void 0===l?l=k:l&=k);e|=l<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=U(this);O(this)&&(W(this,this.o),J(this,a),this.a-=6);this.a-=11},Xb,function(){this.b=Sb(this,T(this));this.a-=7},function(){W(this,this.o);J(this,24);this.a-=11},function(){Mb(this)||(J(this,V(this)),this.a-=6);this.a-=5},function(){N(this,V(this));this.a-=10},function(){var a=U(this);Mb(this)||J(this,a);this.a-=10},function(){var a= 1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h&&h[0])h[0](a,k,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=S(this);N(this)||(U(this,this.o),G(this,a),this.a-=6);this.a-=11},function(){U(this,Nb(this));this.a-=11},function(){this.b=P(this,R(this));this.a-=7},function(){U(this,this.o);G(this,16);this.a-=11},function(){N(this)&&(G(this,T(this)),this.a-=6);this.a-=5},$b,function(){var a=S(this);N(this)&&G(this,a);this.a-=10},function(){for(var a=R(this),b=this.l,c=this.o+-2&65535,d=1,e=0,
V(this);W(this,M(this));N(this,a);this.a-=18},function(){var a=U(this);Mb(this)||(W(this,this.o),J(this,a),this.a-=6);this.a-=11},function(){W(this,M(this));this.a-=11},function(){this.b=Ob(this,T(this));this.a-=7},function(){W(this,this.o);J(this,32);this.a-=11},function(){Mb(this)&&(J(this,V(this)),this.a-=6);this.a-=5},function(){J(this,M(this));this.a-=5},function(){var a=U(this);Mb(this)&&J(this,a);this.a-=10},function(){var a=M(this);N(this,Kb(this));Lb(this,a);this.a-=5},function(){var a=U(this); f=0;0<d;){var h=b.m[a],g=b.D[a]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h&&h[0]&&(l=h[0](a,c),void 0===l?l=k:l&=k);e|=l<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=S(this);N(this)&&(U(this,this.o),G(this,a),this.a-=6);this.a-=11},ac,function(){this.b=Wb(this,R(this));this.a-=7},function(){U(this,this.o);G(this,24);this.a-=11},function(){Pb(this)||(G(this,T(this)),this.a-=6);this.a-=5},function(){M(this,T(this));this.a-=10},function(){var a=S(this);Pb(this)||G(this,a);this.a-=10},
Mb(this)&&(W(this,this.o),J(this,a),this.a-=6);this.a-=11},Xb,function(){this.b=Tb(this,T(this));this.a-=7},function(){W(this,this.o);J(this,40);this.a-=11},function(){this.s&128||(J(this,V(this)),this.a-=6);this.a-=5},function(){var a=V(this);Fb(this,a&255|this.H&-256);this.b=a>>8;this.a-=10},function(){var a=U(this);this.s&128||J(this,a);this.a-=10},function(){this.H&=-513;this.a-=4},function(){var a=U(this);this.s&128||(W(this,this.o),J(this,a),this.a-=6);this.a-=11},function(){W(this,Hb(this)& function(){var a=T(this);U(this,L(this));M(this,a);this.a-=18},function(){var a=S(this);Pb(this)||(U(this,this.o),G(this,a),this.a-=6);this.a-=11},function(){U(this,L(this));this.a-=11},function(){this.b=Sb(this,R(this));this.a-=7},function(){U(this,this.o);G(this,32);this.a-=11},function(){Pb(this)&&(G(this,T(this)),this.a-=6);this.a-=5},function(){G(this,L(this));this.a-=5},function(){var a=S(this);Pb(this)&&G(this,a);this.a-=10},function(){var a=L(this);M(this,Nb(this));Ob(this,a);this.a-=5},function(){var a=
255|this.b<<8);this.a-=11},function(){this.b=Rb(this,T(this));this.a-=7},function(){W(this,this.o);J(this,48);this.a-=11},function(){this.s&128&&(J(this,V(this)),this.a-=6);this.a-=5},function(){this.v=M(this)&65535;this.a-=5},function(){var a=U(this);this.s&128&&J(this,a);this.a-=10},function(){this.H|=512;this.a-=4},function(){var a=U(this);this.s&128&&(W(this,this.o),J(this,a),this.a-=6);this.a-=11},Xb,function(){S(this,T(this));this.a-=7},function(){W(this,this.o);J(this,56);this.a-=11}]; S(this);Pb(this)&&(U(this,this.o),G(this,a),this.a-=6);this.a-=11},ac,function(){this.b=Xb(this,R(this));this.a-=7},function(){U(this,this.o);G(this,40);this.a-=11},function(){this.s&128||(G(this,T(this)),this.a-=6);this.a-=5},function(){var a=T(this);Ib(this,a&255|this.H&-256);this.b=a>>8;this.a-=10},function(){var a=S(this);this.s&128||G(this,a);this.a-=10},function(){this.H&=-513;this.a-=4},function(){var a=S(this);this.s&128||(U(this,this.o),G(this,a),this.a-=6);this.a-=11},function(){U(this,
function Y(a){u.call(this,"ChipSet",a,Y);var b=a.model;b&&!Yb[b]&&t("Unrecognized ChipSet model: "+b);this.c=Yb[b]||Z;this.ga=this.c.ha;a.sound&&(this.i=null,window&&(this.i=window.AudioContext||window.webkitAudioContext),this.i&&new this.i);F(this)}y(Y); Kb(this)&255|this.b<<8);this.a-=11},function(){this.b=Vb(this,R(this));this.a-=7},function(){U(this,this.o);G(this,48);this.a-=11},function(){this.s&128&&(G(this,T(this)),this.a-=6);this.a-=5},function(){this.v=L(this)&65535;this.a-=5},function(){var a=S(this);this.s&128&&G(this,a);this.a-=10},function(){this.H|=512;this.a-=4},function(){var a=S(this);this.s&128&&(U(this,this.o),G(this,a),this.a-=6);this.a-=11},ac,function(){P(this,R(this));this.a-=7},function(){U(this,this.o);G(this,56);this.a-=
var Z={ha:1978.1,Hb:{ca:0,ic:1,mc:16,sc:32,Ac:64,zc:128,wa:14},ia:{ca:1,Bb:1,Gb:2,Cb:4,Db:16,Eb:32,Fb:64,wa:8},Ib:{ca:2,hc:3,Hc:4,jc:8,vc:16,wc:32,xc:64,kc:128,wa:0},Dc:{ca:3},Bc:{ca:2,tc:7},Fc:{ca:3,Ic:1,Ec:2,yc:4,rc:8,lc:16,fc:32},Cc:{ca:4},Gc:{ca:5,nc:1,oc:2,pc:4,qc:8,Jc:16}},Zb={ha:100,gc:{ca:66},uc:{ca:98}},Yb={SI1978:Z,VT100:Zb};Y.prototype.R=function(){return!1}; 11}];function W(a){u.call(this,"ChipSet",a,W);var b=a.model;b&&!bc[b]&&t("Unrecognized ChipSet model: "+b);this.b=bc[b]||X;this.T=this.b.X;a.sound&&(this.i=null,window&&(this.i=window.AudioContext||window.webkitAudioContext),this.i&&new this.i);E(this)}y(W);
Y.prototype.fa=function(a,b,c,d){this.m=b;this.a=c;this.K=d;this.u=a;a=this.c.wb;var e;void 0===e&&(e=0);if(a)for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.l[g]?t("Input port 0x"+n(g,4)+" already registered"):c.l[g]=[h,!1]}e=this.c.xb;var k;void 0===k&&(k=0);if(e)for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.o[d]?t("Output port 0x"+n(d,4)+" already registered"):f.o[d]=[c,!1]}; var X={X:1978.1,Ob:{ba:0,qc:1,uc:16,Ac:32,Ic:64,Hc:128,xa:14},ja:{ba:1,Db:1,Nb:2,Jb:4,Kb:16,Lb:32,Mb:64,xa:8},Pb:{ba:2,pc:3,Qc:4,rc:8,Dc:16,Ec:32,Fc:64,sc:128,xa:0},Lc:{ba:3},Jc:{ba:2,Bc:7},Nc:{ba:3,Rc:1,Mc:2,Gc:4,zc:8,tc:16,mc:32},Kc:{ba:4},Oc:{ba:5,vc:1,wc:2,xc:4,yc:8,Sc:16}},cc={X:100,nc:{ba:66},Cc:{ba:98}},bc={SI1978:X,VT100:cc};W.prototype.R=function(){return!1};W.prototype.ha=function(a,b,c,d){this.l=b;this.a=c;this.K=d;this.u=a;Za(b,this,this.b.Sa);$a(b,this,this.b.Ta)};
Y.prototype.aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Y.prototype.da=function(a){return a?this.save():!0};Z.Za=[[Z.Hb.wa,Z.ia.wa,Z.Ib.wa,0,0,0,0]];Zb.Za=[[0,0]];m=Y.prototype;m.reset=function(){this.restore(this.c.Za)||this.I("reset error")};m.save=function(){var a=new K(this);switch(this.ga){case Z.ha:L(a,0,[this.v,this.b,this.D,this.f,this.g,this.o,this.s]);break;case Zb.ha:L(a,0,[this.j,this.l])}return a.data()}; W.prototype.Y=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};W.prototype.ea=function(a){return a?this.save():!0};X.za=[[X.Ob.xa,X.ja.xa,X.Pb.xa,0,0,0,0]];cc.za=[[0,0]];m=W.prototype;m.reset=function(){this.restore(this.b.za)||this.I("reset error")};m.save=function(){var a=new I(this);switch(this.T){case X.X:K(a,0,[this.v,this.c,this.D,this.f,this.g,this.o,this.s]);break;case cc.X:K(a,0,[this.j,this.m])}return a.data()};
m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.ga){case Z.ha:return this.v=b[0],this.b=b[1],this.D=b[2],this.f=b[3],this.g=b[4],this.o=b[5],this.s=b[6],!0;case Zb.ha:return this.j=b[0],this.l=b[1],!0}return!1};m.start=function(){};m.stop=function(){};function $b(a,b,c){a.b&=~b;c&&(a.b|=b)}m.Ob=function(){return this.v};m.Pb=function(){return this.b};m.Qb=function(){return this.D};m.Nb=function(){return this.f>>8-this.g&255};m.Xb=function(a,b){this.g=b}; m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.T){case X.X:return this.v=b[0],this.c=b[1],this.D=b[2],this.f=b[3],this.g=b[4],this.o=b[5],this.s=b[6],!0;case cc.X:return this.j=b[0],this.m=b[1],!0}return!1};m.start=function(){};m.stop=function(){};function dc(a,b,c){a.c&=~b;c&&(a.c|=b)}m.Vb=function(){return this.v};m.Wb=function(){return this.c};m.Xb=function(){return this.D};m.Ub=function(){return this.f>>8-this.g&255};m.dc=function(a,b){this.g=b};m.fc=function(a,b){this.o=b};
m.Zb=function(a,b){this.o=b};m.Yb=function(a,b){this.f=b<<8|this.f>>8};m.$b=function(a,b){this.s=b};m.ac=function(){};m.bc=function(a,b){this.j=b};m.cc=function(a,b){this.l=b};Z.wb={0:Y.prototype.Ob,1:Y.prototype.Pb,2:Y.prototype.Qb,3:Y.prototype.Nb};Z.xb={2:Y.prototype.Xb,3:Y.prototype.Zb,4:Y.prototype.Yb,5:Y.prototype.$b,6:Y.prototype.ac};Zb.wb={};Zb.xb={66:Y.prototype.bc,98:Y.prototype.cc}; m.ec=function(a,b){this.f=b<<8|this.f>>8};m.gc=function(a,b){this.s=b};m.hc=function(){};m.ic=function(a,b){this.j=b};m.jc=function(a,b){this.m=b};X.Sa={0:W.prototype.Vb,1:W.prototype.Wb,2:W.prototype.Xb,3:W.prototype.Ub};X.Ta={2:W.prototype.dc,3:W.prototype.fc,4:W.prototype.ec,5:W.prototype.gc,6:W.prototype.hc};cc.Sa={};cc.Ta={66:W.prototype.ic,98:W.prototype.jc};ta(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new W(d);Ia(d,c)}});
ta(function(){for(var a=E(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Y(d);Ha(d,c)}});function ac(a){u.call(this,"ROM",a,ac);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.o=ba(this.g);if(this.g){a=this.g;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ia()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,f){bc(c,a,b,f)})}}y(ac);var cc=[0,5]; function ec(a){u.call(this,"ROM",a,ec);this.b=null;this.j=a.addr;this.c=a.size;this.m=a.writable;this.f=a.alias;this.g=a.file;this.o=ba(this.g);if(this.g){a=this.g;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ia()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,f){fc(c,a,b,f)})}}y(ec);var gc=[0,5];ec.prototype.ha=function(a,b,c,d){this.l=b;this.a=c;this.K=d;hc(this)};
ac.prototype.fa=function(a,b,c,d){this.m=b;this.a=c;this.K=d;dc(this)};ac.prototype.aa=function(){this.i&&(this.K&&this.K.a(this.id,this.j,this.c,this.i),delete this.i);return!0};ac.prototype.da=function(){return!0}; ec.prototype.Y=function(){this.i&&(this.K&&this.K.a(this.id,this.j,this.c,this.i),delete this.i);return!0};ec.prototype.ea=function(){return!0};
function bc(a,b,c,d){if(d)a.I("Unable to load system ROM (error "+d+": "+b+")");else{Fa(a.Wa,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){t("Empty ROM: "+b);return}if(1==a.b.length){t(a.b[0]);return}}catch(g){a.I("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function fc(a,b,c,d){if(d)a.I("Unable to load system ROM (error "+d+": "+b+")");else{Fa(a.$a,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){t("Empty ROM: "+b);return}if(1==a.b.length){t(a.b[0]);return}}catch(g){a.I("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);dc(a)}} " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);hc(a)}}
function dc(a){if(!Ja(a))if(!a.g)F(a);else if(a.b&&a.m){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.ja=!0;a.I(b)}else if(ec(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.m,h=d.c,g=[],k=d.j>>>f.c;0<h&&k<f.b.length;)g.push(f.b[k++]),h-=f.m;f=d.m;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){k=g[h++];if(!k)break;f.b[e++]=k;d-=f.m}}delete a.b}F(a)}} function hc(a){if(!Ka(a))if(!a.g)E(a);else if(a.b&&a.l){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.ka=!0;a.I(b)}else if(ic(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,h=d.c,g=[],k=d.j>>>f.c;0<h&&k<f.b.length;)g.push(f.b[k++]),h-=f.l;f=d.l;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){k=g[h++];if(!k)break;f.b[e++]=k;d-=f.l}}delete a.b}E(a)}}
function ec(a,b){if(Ra(a.m,b,a.c,a.l?1:db)){var c;for(c=0;c<a.b.length;c++)Wa(a.m,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<cc.length;c++)Wa(a.m,cc[c],118);Db(a.a,function(a){return function(b){if(0<=cc.indexOf(b)){var c=!1,h=a.a,g=a.K;if(5==b)switch(c=!0,h.w){case 2:fc(a,String.fromCharCode(h.A));break;case 9:for(var k=Kb(h),l="",r=255;r--;){var p=a.a.G(k++);if(36==p)break;l+=String.fromCharCode(p)}fc(a,l);break;default:c=!1}c?Wb.call(h):g&&(a.V("\nCP/M vector 0x"+n(b,4)),J(h,b),tb(g));b=!0}else b=!1; function ic(a,b){if(Sa(a.l,b,a.c,a.m?1:gb)){var c;for(c=0;c<a.b.length;c++)Xa(a.l,b+c,a.b[c]);if(a.m&&256==b){for(c=0;c<gc.length;c++)Xa(a.l,gc[c],118);Hb(a.a,function(a){return function(b){if(0<=gc.indexOf(b)){var c=!1,h=a.a,g=a.K;if(5==b)switch(c=!0,h.A){case 2:jc(a,String.fromCharCode(h.B));break;case 9:for(var k=Nb(h),l="",r=255;r--;){var p=a.a.G(k++);if(36==p)break;l+=String.fromCharCode(p)}jc(a,l);break;default:c=!1}c?$b.call(h):g&&(a.W("\nCP/M vector 0x"+n(b,4)),G(h,b),wb(g));b=!0}else b=!1;
return b}}(a));Gb(a.a,b)}return!0}return!1}function fc(a,b){b=b.replace(/\r/g,"");a.ea&&(a.ea.value+=b,a.ea.scrollTop=a.ea.scrollHeight)}ta(function(){for(var a=E(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ac(d);Ha(d,c)}});function gc(a){u.call(this,"RAM",a,gc);this.f=a.addr;this.c=a.size;this.b=!1}y(gc);m=gc.prototype;m.fa=function(a,b,c,d){this.m=b;this.a=c;this.K=d;F(this)};m.aa=function(a,b){b||this.reset();return!0};m.da=function(a){return a?this.save():!0}; return b}}(a));Jb(a.a,b)}return!0}return!1}function jc(a,b){b=b.replace(/\r/g,"");a.ga&&(a.ga.value+=b,a.ga.scrollTop=a.ga.scrollHeight)}ta(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new ec(d);Ia(d,c)}});function kc(a){u.call(this,"RAM",a,kc);this.f=a.addr;this.c=a.size;this.b=!1}y(kc);m=kc.prototype;m.ha=function(a,b,c,d){this.l=b;this.a=c;this.K=d;E(this)};m.Y=function(a,b){b||this.reset();return!0};m.ea=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.c&&Ra(this.m,this.f,this.c,1)&&(this.b=!0);this.b||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};ta(function(){for(var a=E(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new gc(d);Ha(d,c)}});function hc(a){u.call(this,"Keyboard",a,hc);this.reset();F(this)}y(hc);var ic={"1p":49,"2p":50,coin:51,left:37,right:39,fire:32},jc={65:37,68:39,76:32},kc={l1:1,l2:2,l3:4,l4:8,locked:16,local:32,online:64}; m.reset=function(){!this.b&&this.c&&Sa(this.l,this.f,this.c,1)&&(this.b=!0);this.b||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};ta(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new kc(d);Ia(d,c)}});function Y(a){u.call(this,"Keyboard",a,Y);this.reset();E(this)}y(Y);
hc.prototype.reset=function(){this.a={}}; var Z={ia:{ba:130,Hb:1,Gb:2,Fb:4,Eb:8,Ib:16,ib:32,Pc:64,oc:128}},lc={"1p":49,"2p":50,coin:51,left:37,right:39,fire:32},mc={65:37,68:39,76:32},nc={l4:Z.ia.Hb,l3:Z.ia.Gb,l2:Z.ia.Fb,l1:Z.ia.Eb,locked:Z.ia.Ib,online:Z.ia.ib,local:~Z.ia.ib};
hc.prototype.R=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.B[e]){if("led"==a&&kc[b])return this.B[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return lc(d,a,!0)},c.onkeyup=function(a){return lc(d,a,!1)},!0;default:if(void 0!==ic[b])return this.B[e]=c,a=function(a,b){return function(){mc(a,b,!0)}}(this,b),b=function(a,b){return function(){mc(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1}; Y.prototype.R=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&nc[b])return this.w[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return oc(d,a,!0)},c.onkeyup=function(a){return oc(d,a,!1)},!0;default:if(void 0!==lc[b])return this.w[e]=c,a=function(a,b){return function(){pc(a,b,!0)}}(this,b),b=function(a,b){return function(){pc(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};
hc.prototype.fa=function(a,b,c,d){this.K=d;this.D=Na(a,"ChipSet")};function lc(a,b,c){var d=!0,e;a:{e=b.keyCode;e=jc[e]||e;for(var f in ic)if(ic[f]===e){e=f;break a}e=null}e&&(d=mc(a,e,c));d||b.preventDefault();return d}function mc(a,b,c){a.a[b]=c;if(a.D)switch(b){case "1p":$b(a.D,Z.ia.Cb,c);break;case "2p":$b(a.D,Z.ia.Gb,c);break;case "coin":$b(a.D,Z.ia.Bb,c);break;case "left":$b(a.D,Z.ia.Eb,c);break;case "right":$b(a.D,Z.ia.Fb,c);break;case "fire":$b(a.D,Z.ia.Db,c)}return!1} Y.prototype.ha=function(a,b,c,d){this.K=d;this.D=Oa(a,"ChipSet");this.T=this.D.T;switch(this.T){case cc.X:this.b=Z}this.b&&(Za(b,this,this.b.Sa),$a(b,this,this.b.Ta))};Y.prototype.Y=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Y.prototype.ea=function(a){return a?this.save():!0};Z.za=[[0]];Y.prototype.reset=function(){this.l={};this.a={};this.b&&!this.restore(this.b.za)&&this.I("reset error")};
ta(function(){for(var a=E(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new hc(d);Ha(d,c)}}); Y.prototype.save=function(){var a=new I(this);switch(this.T){case cc.X:K(a,0,[this.c])}return a.data()};Y.prototype.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.T){case X.X:return!0;case cc.X:return this.c=b[0],qc(this),!0}return!1};function qc(a){for(var b in nc){var c=a.w["led-"+b];if(c){var d=nc[b],e=!!(a.c&d);d&d-1&&(e=!(a.c&~d));c.style.backgroundColor=e?"#ff0000":"#000000"}}}
function nc(a,b,c,d,e){var f=this;this.hb=oa("Gecko/");var h=["","moz","ms","webkit"];u.call(this,"Video",a,nc);this.s=a.screenWidth;this.o=a.screenHeight;this.U=a.bufferAddr;this.Rb=a.bufferRAM;var g=a.bufferFormat;this.F=g&&pc[g.toLowerCase()]||qc;this.Ha=a.bufferCols;this.ba=a.bufferRows;this.Kb=this.M=a.cellWidth||1;this.J=a.cellHeight||1;this.Sa=null;this.na=a.bufferBits||1;this.Sb=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.I("unsupported buffer rotation: "+ function oc(a,b,c){var d=!0,e;a:{e=b.keyCode;e=mc[e]||e;for(var f in lc)if(lc[f]===e){e=f;break a}e=null}e&&(d=pc(a,e,c));d||b.preventDefault();return d}
this.c),this.c=0);this.qb=a.interruptRate;this.Ub=a.refreshRate||60;this.l=b;this.f=c;this.X=(this.Wb=d)||b||null;this.Lb=this.s;this.Mb=this.o;this.eb=this.s/this.Ha|0;this.gb=this.o/this.ba|0;1<this.J&&this.ba++;b=a.smoothing;(c=ya.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.I("unsupported screen rotation: "+ function pc(a,b,c){if(c)a.l[b]=Date.now(),delete a.a[b];else{var d=a.l[b];if(d&&100>Date.now()-d)return a.a[b]=d,rc(a),!0;delete a.l[b]}if(a.D)switch(b){case "1p":dc(a.D,X.ja.Jb,c);break;case "2p":dc(a.D,X.ja.Nb,c);break;case "coin":dc(a.D,X.ja.Db,c);break;case "left":dc(a.D,X.ja.Lb,c);break;case "right":dc(a.D,X.ja.Mb,c);break;case "fire":dc(a.D,X.ja.Kb,c)}return!0}
this.g),this.g=0):(this.f.translate(0,this.o),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.o/this.s,this.s/this.o));if(this.b=e)if(this.b.pa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.pa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){rc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1); function rc(a){var b=-1,c=Object.keys(a.a),d;for(d in c)if(c=100-(Date.now()-a.a[d]),0<c){if(0>b||b>c)b=c}else delete a.a[d],pc(a,d,!1);0<=b&&setTimeout(function(){rc(a)},b)}Y.prototype.f=function(a,b){this.c=b;qc(this)};Z.Sa={};Z.Ta={130:Y.prototype.f};ta(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Y(d);Ia(d,c)}});
break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){rc(f,null)},!1);break}}if(this.H=a.fontROM)"json"!=ca(this.H)&&(this.H=ia()+"/api/v1/dump?file="+this.H+"&format=bytes"),q(this.H,null,!0,function(a,b,c){sc(f,a,b,c)});this.Xa={}}y(nc);var qc=0,pc={vt100:2}; function sc(a,b,c,d,e){var f=this;this.lb=oa("Gecko/");var h=["","moz","ms","webkit"];u.call(this,"Video",a,sc);this.s=a.screenWidth;this.o=a.screenHeight;this.V=a.bufferAddr;this.Yb=a.bufferRAM;var g=a.bufferFormat;this.F=g&&tc[g.toLowerCase()]||vc;this.Ja=a.bufferCols;this.fa=a.bufferRows;this.Rb=this.M=a.cellWidth||1;this.J=a.cellHeight||1;this.Wa=null;this.oa=a.bufferBits||1;this.Zb=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.I("unsupported buffer rotation: "+
nc.prototype.fa=function(a,b,c,d){this.u=a;this.m=b;this.a=c;this.K=d;this.F||(this.D=Na(a,"ChipSet"))&&this.D.ga==Z.ha&&(this.F=1);this.i=this.Ha*this.M;this.v=this.ba*this.J;b=this.i;c=this.v;this.c&&(b=this.v,c=this.i);this.Ia=(this.i*this.na>>3)*this.v;if(this.Rb||Ra(this.m,this.U,this.Ia,3))1<this.M?tc(this,this.Ha*this.ba):(this.ib=this.f.createImageData(b,c),this.lb=16/this.na|0,tc(this,this.Ia>>1)),this.j=document.createElement("canvas"),this.j.width=b,this.j.height=c,this.Ta=this.j.getContext("2d"), this.c),this.c=0);this.ub=a.interruptRate;this.ac=a.refreshRate||60;this.m=b;this.f=c;this.$=(this.cc=d)||b||null;this.Sb=this.s;this.Tb=this.o;this.hb=this.s/this.Ja|0;this.kb=this.o/this.fa|0;1<this.J&&this.fa++;b=a.smoothing;(c=ya.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.I("unsupported screen rotation: "+
this.N={},this.Y=1<<this.na,this.O=Array(this.Y+2),this.O[0]=[0,0,0,255],this.O[1]=[255,255,255,255],1==this.F&&(this.O[this.Y+0]=[255,255,0,255],this.O[this.Y+1]=[0,255,0,255]),2==this.F&&(this.Tb=60,this.Ua=!1,this.T=Array(this.Ha));if(this.C=Na(a,"Keyboard")){for(var e in this.Xa)this.C.R("led",e,this.Xa[e]);this.l&&this.C.R(this.Wb?"textarea":"canvas","kbd",this.X)}this.H||F(this)}; this.g),this.g=0):(this.f.translate(0,this.o),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.o/this.s,this.s/this.o));if(this.b=e)if(this.b.qa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.qa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){wc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);
function sc(a,b,c,d){if(d)a.I("Unable to load font ROM (error "+d+": "+b+")");else{Fa(a.Wa,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)uc(a,f);else{a.I("Unrecognized font data length ("+f.length+")");return}}catch(h){a.I("Font ROM data error: "+h.message);return}(a.f||a.K)&&F(a)}} break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){wc(f,null)},!1);break}}if(this.H=a.fontROM)"json"!=ca(this.H)&&(this.H=ia()+"/api/v1/dump?file="+this.H+"&format=bytes"),q(this.H,null,!0,function(a,b,c){xc(f,a,b,c)});this.ab={}}y(sc);var vc=0,tc={vt100:2};
function uc(a,b){a.Sa=b;a.N[96]=[vc(a,a.M,a.J),vc(a,a.M,a.J,a.Ua)];a.N[64]=[vc(a,2*a.M,a.J),vc(a,2*a.M,a.J,a.Ua)];a.N[32]=a.N[0]=[vc(a,2*a.M,2*a.J),vc(a,2*a.M,2*a.J,a.Ua)]} sc.prototype.ha=function(a,b,c,d){this.u=a;this.l=b;this.a=c;this.K=d;this.F||(this.D=Oa(a,"ChipSet"))&&this.D.T==X.X&&(this.F=1);this.i=this.Ja*this.M;this.v=this.fa*this.J;b=this.i;c=this.v;this.c&&(b=this.v,c=this.i);this.Ka=(this.i*this.oa>>3)*this.v;if(this.Yb||Sa(this.l,this.V,this.Ka,3))1<this.M?yc(this,this.Ja*this.fa):(this.mb=this.f.createImageData(b,c),this.pb=16/this.oa|0,yc(this,this.Ka>>1)),this.j=document.createElement("canvas"),this.j.width=b,this.j.height=c,this.Xa=this.j.getContext("2d"),
function vc(a,b,c,d){var e=8>=a.Kb?8:16,f=8<e?15:0,h=a.Sa.length/e,g=!1===d,k={M:b,J:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),r=0;r<h;r++){for(var p=0,z=p;p<a.J;p++)for(var x=r*e+(f+p&e-1),x=d&&8==p?255:a.Sa[x],A=0;A<c/a.J;A++){for(var I=0,B=I;I<a.M;I++)for(var w=x&128>>(7<I?7:I),H=0;H<b/a.M;H++)g&&(w=!w),wc(a,l,B,z,w?1:0),B++;z++}k.context.putImageData(l,(r&15)*b,(r>>4)*c)}return k} this.N={},this.aa=1<<this.oa,this.O=Array(this.aa+2),this.O[0]=[0,0,0,255],this.O[1]=[255,255,255,255],1==this.F&&(this.O[this.aa+0]=[255,255,0,255],this.O[this.aa+1]=[0,255,0,255]),2==this.F&&(this.$b=60,this.Ya=!1,this.U=Array(this.Ja));if(this.C=Oa(a,"Keyboard")){for(var e in this.ab)this.C.R("led",e,this.ab[e]);this.m&&this.C.R(this.cc?"textarea":"canvas","kbd",this.$)}this.H||E(this)};
nc.prototype.aa=function(){return!0};nc.prototype.R=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Xa[b]=c,!0;switch(b){case "fullScreen":return this.B[b]=c,this.b&&this.b.pa?c.onclick=function(){d.pa()}:c.parentNode.removeChild(c),!0}return!1}; function xc(a,b,c,d){if(d)a.I("Unable to load font ROM (error "+d+": "+b+")");else{Fa(a.$a,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)zc(a,f);else{a.I("Unrecognized font data length ("+f.length+")");return}}catch(h){a.I("Font ROM data error: "+h.message);return}(a.f||a.K)&&E(a)}}
nc.prototype.pa=function(){var a=!1;if(this.b){if(this.b.pa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.s/this.o;b>c&&(a=Math.round(c/b*100)+"%")}this.hb?(this.l.style.width=a,this.l.style.width=a,this.l.style.display="block",this.l.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.pa();a=!0}this.X&&this.X.focus()}return a}; function zc(a,b){a.Wa=b;a.N[96]=[Ac(a,a.M,a.J),Ac(a,a.M,a.J,a.Ya)];a.N[64]=[Ac(a,2*a.M,a.J),Ac(a,2*a.M,a.J,a.Ya)];a.N[32]=a.N[0]=[Ac(a,2*a.M,2*a.J),Ac(a,2*a.M,2*a.J,a.Ya)]}
function rc(a,b){!b&&a.b&&(a.hb?a.l.style.width=a.l.style.height="":a.b.style.width=a.b.style.height="")}function tc(a,b){a.jb=b;a.W=!1;if(void 0===a.L||a.L.length!=a.jb)a.L=Array(a.jb)}function wc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.F&&(208<=c&&236>c?e=a.Y+0:28<=c&&72>c&&(e=a.Y+1));a=a.O[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function Ac(a,b,c,d){var e=8>=a.Rb?8:16,f=8<e?15:0,h=a.Wa.length/e,g=!1===d,k={M:b,J:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),r=0;r<h;r++){for(var p=0,z=p;p<a.J;p++)for(var x=r*e+(f+p&e-1),x=d&&8==p?255:a.Wa[x],A=0;A<c/a.J;A++){for(var J=0,B=J;J<a.M;J++)for(var w=x&128>>(7<J?7:J),H=0;H<b/a.M;H++)g&&(w=!w),Bc(a,l,B,z,w?1:0),B++;z++}k.context.putImageData(l,(r&15)*b,(r>>4)*c)}return k}
ta(function(){for(var a=E(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a, sc.prototype.Y=function(){return!0};sc.prototype.R=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ab[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.b&&this.b.qa?c.onclick=function(){d.qa()}:c.parentNode.removeChild(c),!0}return!1};
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||ya.aspect);f&&.3<=f&&3.33>=f&&(sa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new nc(d,e,h,f,c);Ha(d,c)}}); sc.prototype.qa=function(){var a=!1;if(this.b){if(this.b.qa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.s/this.o;b>c&&(a=Math.round(c/b*100)+"%")}this.lb?(this.m.style.width=a,this.m.style.width=a,this.m.style.display="block",this.m.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.qa();a=!0}this.$&&this.$.focus()}return a};
function K(a,b,c){this.id=a.id;this.key=xc(a,b,c);this.K=a.K;yc(this,a.vb)}function xc(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} function wc(a,b){!b&&a.b&&(a.lb?a.m.style.width=a.m.style.height="":a.b.style.width=a.b.style.height="")}function yc(a,b){a.nb=b;a.Z=!1;if(void 0===a.L||a.L.length!=a.nb)a.L=Array(a.nb)}function Bc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.F&&(208<=c&&236>c?e=a.aa+0:28<=c&&72>c&&(e=a.aa+1));a=a.O[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
K.prototype={constructor:K,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){yc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}}; ta(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=C(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
function yc(a,b){a[a.id]={};b&&L(a,"parms",b);a.a=!1}function zc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ac(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Bc(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 Cc(a,b){return a[a.id][b]||null}function L(a,b,c){try{a[a.id][b]=c}catch(d){}} b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||ya.aspect);f&&.3<=f&&3.33>=f&&(sa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new sc(d,e,h,f,c);Ia(d,c)}});
function Dc(a,b,c){u.call(this,"Computer",a,Dc);this.h.P=!1;Ec(this,b);this.D=ob(this,"autoPower",a);this.f=0;this.L=a.busWidth||a.buswidth;this.b=Fc;this.s=null;this.l=this.H=!1;this.N=ob(this,"url")||"";(Math.random()+.1).toString(36);this.c=Gc(this);if(this.a=Ga("CPU",this.id)){this.K=Ga("Debugger",this.id);this.j=[];for(b=null;b=Na(this,"Video",b);)this.j.push(b);this.m=new Pa({id:this.Wa+".bus",busWidth:this.L},this.a,this.K);var d,e=C(this.id);if((this.g=Ga("Panel",this.id))&&this.g.ea)for(b= function I(a,b,c){this.id=a.id;this.key=Cc(a,b,c);this.K=a.K;Dc(this,a.zb)}function Cc(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}
0;b<e.length;b++)d=e[b],d.I=this.g.I,d.V=this.g.V,d.ea=this.g.ea;this.V("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.fa&&d.fa(this,this.m,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var f;if(a=ob(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.l=!0,this.b=Fc),this.b&&(this.v=new K(this,"1.23.3"),Bc(this.v)?b=null:delete this.v); 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){Dc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
!b&&this.b&&(b=Hc(this))&&(this.l=!0);if(b){var h=this;q(b,null,!0,function(a,b,c){c?(h.u=null,h.l=!1,h.I("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.s=b,h.H=!0);F(h)})}else F(this);this.B.power||(this.D=!0);!c&&this.D&&Ic(this,this.Ea)}else t("Unable to find CPU component")}y(Dc);var Fc=0; function Dc(a,b){a[a.id]={};b&&K(a,"parms",b);a.a=!1}function Ec(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Fc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Gc(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 Hc(a,b){return a[a.id][b]||null}function K(a,b,c){try{a[a.id][b]=c}catch(d){}}
function Ec(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.o=b}function ob(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.o&&(d=a.o[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Ic(a,b,c){for(var d=C(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ja(f)){Ja(f,function(){Ic(a,b,c)});return}}b.call(a,c)} function Ic(a,b,c){u.call(this,"Computer",a,Ic);this.h.P=!1;Jc(this,b);this.D=rb(this,"autoPower",a);this.f=0;this.L=a.busWidth||a.buswidth;this.b=Kc;this.s=null;this.m=this.H=!1;this.N=rb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Lc(this);if(this.a=Ha("CPU",this.id)){this.K=Ha("Debugger",this.id);this.j=[];for(b=null;b=Oa(this,"Video",b);)this.j.push(b);this.l=new Qa({id:this.$a+".bus",busWidth:this.L},this.a,this.K);var d,e=Ga(this.id);if((this.g=Ha("Panel",this.id))&&this.g.ga)for(b=
function Jc(a,b){var c=new K(a,"1.23.3","validate");if(Bc(c)&&Ac(c)){var d=Cc(c,"timestamp"),e=b?Cc(b,"timestamp"):"unknown";d!=e&&(a.I("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Dc.prototype; 0;b<e.length;b++)d=e[b],d.I=this.g.I,d.W=this.g.W,d.ga=this.g.ga;this.W("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.ha&&d.ha(this,this.l,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var f;if(a=rb(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.m=!0,this.b=Kc),this.b&&(this.v=new I(this,"1.23.3"),Gc(this.v)?b=null:delete this.v);
m.Ea=function(a){void 0===a&&(a=this.b||(this.s?1:Fc));if(!this.f){this.f++;var b=!1,c=!1;this.F=!1;var d=this.v||new K(this,"1.23.3");if(-1==a)b=!0;else if(a>Fc){if(Bc(d,this.s)){this.i=new K(this,"1.23.3","failsafe");Bc(this.i)&&(Kc(this,d),a=2,yc(this.i));L(this.i,"timestamp",ha());zc(this.i);var e=this.b&&!this.l;if(1==a||ja("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Ac(d)){var f=Cc(d,"code"),h=Cc(d,"data");f&&("ok"==f?Bc(d,h):("error"==f&& !b&&this.b&&(b=Mc(this))&&(this.m=!0);if(b){var h=this;q(b,null,!0,function(a,b,c){c?(h.u=null,h.m=!1,h.I("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.s=b,h.H=!0);E(h)})}else E(this);this.w.power||(this.D=!0);!c&&this.D&&Nc(this,this.Ga)}else t("Unable to find CPU component")}y(Ic);var Kc=0;
"no machine state"!=h?(this.I("Error: "+h),"unable to verify user"==h&&(na("user",""),this.c=null)):this.V(f+": "+h),yc(d),Bc(d)?(c=Ac(d),e=!0):c=!1))}e&&Jc(this,c?d:null)}else 2==a&&d.clear()}else Jc(this);delete this.s;delete this.v}e=C(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=Lc(this,h,d,b,c));b=[d,a,c];-1!=a?Ic(this,this.kb,b):this.kb(b)}}; function Jc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.o=b}function rb(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.o&&(d=a.o[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Nc(a,b,c){for(var d=Ga(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ka(f)){Ka(f,function(){Nc(a,b,c)});return}}b.call(a,c)}
function Lc(a,b,c,d,e){if(!b.h.P){b.h.P=!0;if(b.aa){var f=null;e&&((f=Cc(c,b.id))||(f=Cc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.aa(f,d)&&f&&(t("Unable to restore state for "+b.type),a.C&&!a.H?(c.clear(),a.b=Fc,window&&window.location.reload()):a.F=!0,b.aa(null),e=!1)}if(!d&&b.fb)for(a=b.fb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function Oc(a,b){var c=new I(a,"1.23.3","validate");if(Gc(c)&&Fc(c)){var d=Hc(c,"timestamp"),e=b?Hc(b,"timestamp"):"unknown";d!=e&&(a.I("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Ic.prototype;
m.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.h.P=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.a&&(Lc(this,this.a,b,c,a),sb(this.a));this.F&&(Kc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; m.Ga=function(a){void 0===a&&(a=this.b||(this.s?1:Kc));if(!this.f){this.f++;var b=!1,c=!1;this.F=!1;var d=this.v||new I(this,"1.23.3");if(-1==a)b=!0;else if(a>Kc){if(Gc(d,this.s)){this.i=new I(this,"1.23.3","failsafe");Gc(this.i)&&(Pc(this,d),a=2,Dc(this.i));K(this.i,"timestamp",ha());Ec(this.i);var e=this.b&&!this.m;if(1==a||ja("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Fc(d)){var f=Hc(d,"code"),h=Hc(d,"data");f&&("ok"==f?Gc(d,h):("error"==f&&
function Kc(a,b){if(ja("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.N;e.user=c;e.type="bug";e.data=d;q("http://www.pcjs.org/api/v1/report",e,!0)}} "no machine state"!=h?(this.I("Error: "+h),"unable to verify user"==h&&(na("user",""),this.c=null)):this.W(f+": "+h),Dc(d),Gc(d)?(c=Fc(d),e=!0):c=!1))}e&&Oc(this,c?d:null)}else 2==a&&d.clear()}else Oc(this);delete this.s;delete this.v}e=Ga(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=Qc(this,h,d,b,c));b=[d,a,c];-1!=a?Nc(this,this.ob,b):this.ob(b)}};
function Mc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new K(a,"1.23.3"),h=new K(a,"1.23.3","validate"),g=ha();L(h,"timestamp",g);L(f,"timestamp",g);L(f,"version","1.23.3");L(f,"url",window?window.location.href:null);L(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.da&&(c&&tb(a.a),d=a.a.da(b,c),"object"===typeof d&&L(f,a.a.id,d),c&&(a.a.h.P=!1,!1===d&&(e=null)));for(var g=C(a.id),k=0;k<g.length;k++){var l=g[k];l.h.P&&(l.da&&(d=l.da(b,c),"object"===typeof d&&L(f,l.id,d)),c&&(l.h.P= function Qc(a,b,c,d,e){if(!b.h.P){b.h.P=!0;if(b.Y){var f=null;e&&((f=Hc(c,b.id))||(f=Hc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Y(f,d)&&f&&(t("Unable to restore state for "+b.type),a.C&&!a.H?(c.clear(),a.b=Kc,window&&window.location.reload()):a.F=!0,b.Y(null),e=!1)}if(!d&&b.jb)for(a=b.jb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.c&&Nc(a,a.c,f.toString()),zc(h)&&zc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.P=!1,b=a.B.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.m&&this.m.reset&&this.m.reset();for(var a=C(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}}; m.ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.h.P=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.a&&(Qc(this,this.a,b,c,a),vb(this.a));this.F&&(Pc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
m.stop=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; function Pc(a,b){if(ja("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.N;e.user=c;e.type="bug";e.data=d;q("http://www.pcjs.org/api/v1/report",e,!0)}}
m.R=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.f||(d.h.P?Mc(d,!1,!0):Ic(d,d.Ea))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.P&&!d.f)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Mc(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ea(Fc)}else d.reset(),d.a&&sb(d.a)},!0;case "save":if(da(ia(),"pcjs.org")){c.parentNode.removeChild(c);break}this.B[b]= function Rc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new I(a,"1.23.3"),h=new I(a,"1.23.3","validate"),g=ha();K(h,"timestamp",g);K(f,"timestamp",g);K(f,"version","1.23.3");K(f,"url",window?window.location.href:null);K(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.ea&&(c&&wb(a.a),d=a.a.ea(b,c),"object"===typeof d&&K(f,a.a.id,d),c&&(a.a.h.P=!1,!1===d&&(e=null)));for(var g=Ga(a.id),k=0;k<g.length;k++){var l=g[k];l.h.P&&(l.ea&&(d=l.ea(b,c),"object"===typeof d&&K(f,l.id,d)),c&&
c;c.onclick=function(){var a=Gc(d,!0);if(a){var b=!!(d.b&&!d.u||d.C),c=Mc(d,b);b?Nc(d,a,c):d.I("Resume disabled, machine state not saved")}};return!0}return!1}; (l.h.P=!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.c&&Sc(a,a.c,f.toString()),Ec(h)&&Ec(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.P=!1,b=a.w.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=Ga(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=Ga(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
function Gc(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=Oc(a,c))||a.I("The user ID is invalid."))):b&&a.I("Browser local storage is not available"));return c} m.stop=function(a,b){for(var c=Ga(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
function Oc(a,b){a.c=null;var c=q(ia()+"/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(e){t(e.message+" ("+d+")")}return a.c}function Hc(a){var b=null;a.c&&(b=ia()+"/api/v1/user?req=load&user="+a.c+"&state="+xc(a,"1.23.3"));return b} m.R=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.f||(d.h.P?Rc(d,!1,!0):Nc(d,d.Ga))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.h.P&&!d.f)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rc(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ga(Kc)}else d.reset(),d.a&&vb(d.a)},!0;case "save":if(da(ia(),"pcjs.org")){c.parentNode.removeChild(c);break}this.w[b]=
function Nc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=xc(a,"1.23.3");d.data=c;b=q(ia()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.I("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.I(c),na("user",""),a.c=null)}} c;c.onclick=function(){var a=Lc(d,!0);if(a){var b=!!(d.b&&!d.u||d.C),c=Rc(d,b);b?Sc(d,a,c):d.I("Resume disabled, machine state not saved")}};return!0}return!1};
function Na(a,b,c){a=C(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function yb(a,b){if(a.j.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.j[0];e.X&&e.X.focus();b&&window&&window.scrollTo(c,d)}}m.ma=function(a){this.a&&this.a.ma(a);this.g&&this.g.ma(a)}; function Lc(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=Tc(a,c))||a.I("The user ID is invalid."))):b&&a.I("Browser local storage is not available"));return c}
function zb(a,b){for(var c=0;c<a.j.length;c++){var d=a.j[c],e=!0;if(0<=b){if(d.qb)if(b&1)e=d.a,e.F=e.F&-8|10,e=!1;else{var f=d.a;f.F=f.F&-8|9}if(f=e&&d.W){for(var f=d.m,h=d.Ia,g=!0,k=d.U>>>f.c;0<h&&k<f.b.length;)f.b[k].Z&&(f.b[k].Z=g=!1,f.b[k].nb=!0),h-=f.m,k++;f=g}f&&(e=!1)}if(e)if(1<d.M)switch(d.F){case 2:for(var l=d.U,e=-1,f=0,h=60==d.Tb?2:5,k=g=0;f<d.ba;){for(var r=0,p=l,z=e;;){var x=Ua(d.m,p++);if(127==(x&127)){l=Ua(d.m,p++);e=l&96;l=d.U|(l&31)<<8|Ua(d.m,p);break}if(r<d.T.length)d.T[r++]=x;else break}if(h)h--; function Tc(a,b){a.c=null;var c=q(ia()+"/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(e){t(e.message+" ("+d+")")}return a.c}function Mc(a){var b=null;a.c&&(b=ia()+"/api/v1/user?req=load&user="+a.c+"&state="+Cc(a,"1.23.3"));return b}
else{for(;r<d.T.length;)d.T[r++]=0;for(p=0;p<r;p++){x=d.T[p];if(!d.W||x!==d.L[g]){var A=d,I=d.Ta,B=x&127;if(x=A.N[z][x&128?1:0]){var w=(B&15)*x.M,B=(B>>4)*x.J,H=void 0,P=void 0,Ca=void 0,cb=void 0,oc=x.M,Eb=x.J;I?(H=p*A.M,P=f*A.J,Ca=A.M,cb=A.J):(H=p*A.eb,P=f*A.gb,Ca=A.eb,cb=A.gb);x.M>A.M&&(H*=2,Ca*=2);x.J>A.J&&(0==z&&(B+=A.J),Eb=A.J);I?I.drawImage(x.canvas,w,B,oc,Eb,H,P,Ca,cb):(H+=0,P+=0,A.f.drawImage(x.canvas,w,B,oc,Eb,H,P,Ca,cb))}k++}g++}f++}}d.W=!0;k&&d.Ta&&d.f.drawImage(d.j,0,0,d.i,d.v-d.J,0, function Sc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cc(a,"1.23.3");d.data=c;b=q(ia()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.I("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.I(c),na("user",""),a.c=null)}}
0,d.Lb,d.Mb)}else{g=d.U;k=g+d.Ia;l=z=r=0;e=d.i;p=0;f=d.v;A=h=0;I=d.na;x=(1<<I)-1;d.Sb&&(I=-I,A=16+I);for(;g<k;){w=d.m;B=g;H=B&w.f;P=(B&w.g)>>>w.c;w=H!=w.f?w.b[P].yb(H,B):w.b[P++].Qa(H,B)|w.b[P&w.u].Qa(0,B+1)<<8;if(d.W&&w===d.L[r])z+=d.lb;else{d.L[r]=w;(B=A)&&(w=w>>8|(w&255)<<8);z<e&&(e=z);for(H=d.lb;H--;)P=w>>B&x,wc(d,d.ib,z++,l,P),B+=I;z>p&&(p=z);l<f&&(f=l);l>=h&&(h=l+1)}g+=2;r++;if(z>=d.i&&(z=0,l++,l>d.v))break}d.W=!0;e<d.i&&(g=p-e,h-=f,d.c&&(k=e,r=g,e=f,g=h,f=d.i-(k+r),h=r),d.Ta.putImageData(d.ib, function Oa(a,b,c){a=Ga(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Bb(a,b){if(a.j.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.j[0];e.$&&e.$.focus();b&&window&&window.scrollTo(c,d)}}m.na=function(a){this.a&&this.a.na(a);this.g&&this.g.na(a)};
0,0,e,f,g,h),d.f.drawImage(d.j,0,0,d.j.width,d.j.height,0,0,d.s,d.o))}}}ta(function(){for(var a=E(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=E(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=D(f),h=new Dc(h,d,!0);Ha(h,f);h.D&&Ic(h,h.Ea)}});pa.show.push(function(){for(var a=E(document,"pc8080","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Ga("Computer",c.id))&&c.O&&!c.h.P&&c.Ea(-1)}}); function Cb(a,b){for(var c=0;c<a.j.length;c++){var d=a.j[c],e=!0;if(0<=b){if(d.ub)if(b&1)e=d.a,e.F=e.F&-8|10,e=!1;else{var f=d.a;f.F=f.F&-8|9}if(f=e&&d.Z){for(var f=d.l,h=d.Ka,g=!0,k=d.V>>>f.c;0<h&&k<f.b.length;)f.b[k].ca&&(f.b[k].ca=g=!1,f.b[k].rb=!0),h-=f.l,k++;f=g}f&&(e=!1)}if(e)if(1<d.M)switch(d.F){case 2:for(var l=d.V,e=-1,f=0,h=60==d.$b?2:5,k=g=0;f<d.fa;){for(var r=0,p=l,z=e;;){var x=Va(d.l,p++);if(127==(x&127)){l=Va(d.l,p++);e=l&96;l=d.V|(l&31)<<8|Va(d.l,p);break}if(r<d.U.length)d.U[r++]=x;
pa.exit.push(function(){for(var a=E(document,"pc8080","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=Ga("Computer",c.id))&&c.h.P&&Mc(c,!(!c.b||c.u),!0)}});var Pc=0;function Qc(a,b,c,d,e,f){e("Loading "+a+"...");q(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Rc(g,a,b,c,d,e,f)})} else break}if(h)h--;else{for(;r<d.U.length;)d.U[r++]=0;for(p=0;p<r;p++){x=d.U[p];if(!d.Z||x!==d.L[g]){var A=d,J=d.Xa,B=x&127;if(x=A.N[z][x&128?1:0]){var w=(B&15)*x.M,B=(B>>4)*x.J,H=void 0,Q=void 0,Da=void 0,eb=void 0,uc=x.M,Gb=x.J;J?(H=p*A.M,Q=f*A.J,Da=A.M,eb=A.J):(H=p*A.hb,Q=f*A.kb,Da=A.hb,eb=A.kb);x.M>A.M&&(H*=2,Da*=2);x.J>A.J&&(0==z&&(B+=A.J),Gb=A.J);J?J.drawImage(x.canvas,w,B,uc,Gb,H,Q,Da,eb):(H+=0,Q+=0,A.f.drawImage(x.canvas,w,B,uc,Gb,H,Q,Da,eb))}k++}g++}f++}}d.Z=!0;k&&d.Xa&&d.f.drawImage(d.j,
function Rc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Fa(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2")); 0,0,d.i,d.v-d.J,0,0,d.Sb,d.Tb)}else{g=d.V;k=g+d.Ka;l=z=r=0;e=d.i;p=0;f=d.v;A=h=0;J=d.oa;x=(1<<J)-1;d.Zb&&(J=-J,A=16+J);for(;g<k;){w=d.l;B=g;H=B&w.f;Q=(B&w.g)>>>w.c;w=H!=w.f?w.b[Q].Ab(H,B):w.b[Q++].Ua(H,B)|w.b[Q&w.u].Ua(0,B+1)<<8;if(d.Z&&w===d.L[r])z+=d.pb;else{d.L[r]=w;(B=A)&&(w=w>>8|(w&255)<<8);z<e&&(e=z);for(H=d.pb;H--;)Q=w>>B&x,Bc(d,d.mb,z++,l,Q),B+=J;z>p&&(p=z);l<f&&(f=l);l>=h&&(h=l+1)}g+=2;r++;if(z>=d.i&&(z=0,l++,l>d.v))break}d.Z=!0;e<d.i&&(g=p-e,h-=f,d.c&&(k=e,r=g,e=f,g=h,f=d.i-(k+r),h=r),d.Xa.putImageData(d.mb,
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?Sc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} 0,0,e,f,g,h),d.f.drawImage(d.j,0,0,d.j.width,d.j.height,0,0,d.s,d.o))}}}ta(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=C(f),h=new Ic(h,d,!0);Ia(h,f);h.D&&Nc(h,h.Ga)}});pa.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Ha("Computer",c.id))&&c.O&&!c.h.P&&c.Ga(-1)}});
function Sc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.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{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, pa.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Ha("Computer",c.id))&&c.h.P&&Rc(c,!(!c.b||c.u),!0)}});var Uc=0;function Vc(a,b,c,d,e,f){e("Loading "+a+"...");q(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Wc(g,a,b,c,d,e,f)})}
"");a=a.replace(d[0],h);Sc(a,b,c)}})}else c(a,null)} function Wc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Fa(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
function Tc(a,b,c,d){function e(a){if(void 0===g){var b=h&&E(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--Pc||va(!0));k=!1}var h,g,k=!0;Pc++;Ea[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=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));r.appendChild(p)}c|| 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?Xc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
(c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?Qc(c,null,null,!1,e,function(d,l){if(l)if(Fa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--Pc||va(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--Pc||va(!0)):f("invalid machine element: "+ function Xc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.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{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Qc(b,a,d,!0,e,l):Rc(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){va(!1);return Tc(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa; "");a=a.replace(d[0],h);Xc(a,b,c)}})}else c(a,null)}
function Uc(a,b,c,d){if(!c&&b){d.push(b);a=Ea[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?q(b,null,!0,function(a,b){Vc(b,d)}):Vc(null,d)}else t("Error ("+c+") requesting "+a)} function Yc(a,b,c,d){function e(a){if(void 0===g){var b=h&&D(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--Uc||va(!0));k=!1}var h,g,k=!0;Uc++;Ea[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=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));r.appendChild(p)}c||
function Vc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ea[f],k={},l;for(l in g){var r=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var z=d[2];z&&(g[z]||(r=r.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=r}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, (c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?Vc(c,null,null,!1,e,function(d,k){if(k)if(Fa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Uc||va(!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),--Uc||va(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Vc(b,a,d,!0,e,l):Wc(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){va(!1);return Yc(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa;
function Zc(a,b,c,d){if(!c&&b){d.push(b);a=Ea[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?q(b,null,!0,function(a,b){$c(b,d)}):$c(null,d)}else t("Error ("+c+") requesting "+a)}
function $c(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ea[f],k={},l;for(l in g){var r=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var z=d[2];z&&(g[z]||(r=r.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=r}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),l=h,g=null,k="data:application/javascript,",k=oa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', "&#xA9;"),l=h,g=null,k="data:application/javascript,",k=oa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")} c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=Ga("Computer",a),e=Ga("Debugger",a);if(d){var f=Mc(d,!0),h=d.o?JSON.stringify(d.o):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,vb:h}))return!0;q(b,null,!0,function(c,d,e){Uc(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})(); window.savePC=function(a,b,c){var d=Ha("Computer",a),e=Ha("Debugger",a);if(d){var f=Rc(d,!0),h=d.o?JSON.stringify(d.o):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,zb:h}))return!0;q(b,null,!0,function(c,d,e){Zc(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();