Merge branch 'master' into gh-pages

This commit is contained in:
Jeff Parsons 2017-03-17 10:21:42 -07:00
commit ea61907f02
37 changed files with 22950 additions and 46978 deletions

View file

@ -10,4 +10,5 @@ PDP-10 KLAD Diagnostic Tapes
PCjs has archived selected files from [PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html),
including:
- [KA10 BASIC INSTRUCTION DIAGNOSTIC (MAINDEC-10-DAKAD-B-D)](dakad/)
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA-B-D)](dakaa/)
- [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD-B-D)](dakad/)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,294 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #1
permalink: /apps/pdp10/tapes/diags/klad/dakaa/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 /apps/pdp10/tapes/diags/klad/dakaa/TEST.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #1
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #1* (MAINDEC-10-DAKAA-B-D) test code has been extracted from
[DAKAA.MAC](DAKAA.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaam.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
Resources for this test include:
- [Instructions](#dakaatxt)
- [History](#dakaahst)
- [Source Code](#dakaamac) [[file](DAKAA.MAC.txt)]
- [MACRO-10 Listing](#dakaalst) [[file](DAKAA.LST.txt)]
- [Additional Information](#dakaaseq)
{% include machine.html id="testka10" %}
The Debugger's assemble ("a") command can be used to test the new built-in
[MACRO-10 mini-assembler](/modules/pdp10/lib/macro10.js), which supports a subset
of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language.
This command:
a 30724 /apps/pdp10/tapes/diags/klad/dakaa/TEST.MAC
will automatically read the [TEST.MAC](TEST.MAC.txt) source file (a slightly modified copy of [DAKAA.MAC](DAKAA.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAA.TXT
---------
```
MAINDEC-10-DAKAA
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAA-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (1)
FUNCTION: BASIC INSTRUCTIONS
VERSION: 0.2
DATE RELEASED: JANUARY 1977
MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP
AUTHOR: JOHN R. KIRCHOFF
COPYRIGHT(C) 1976,1977
DIGITAL EQUIPMENT CORPORATION
MARLBORO, MASS. 01752
THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY
ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH
THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE,
OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM
AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND
OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.
DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
MAINDEC-10-DAKAA.TXT
PAGE 2
TABLE OF CONTENTS
-----------------
1.0 ABSTRACT
2.0 REQUIREMENTS
2.1 EQUIPMENT
2.2 STORAGE
2.3 PRELIMINARY PROGRAMS
3.0 PROGRAM PROCEDURES
3.1 LOADING PROCEDURE
3.2 STARTING PROCEDURE
3.3 OPERATING PROCEDURE
4.0 ERRORS
5.0 ITERATION COUNTER
6.0 CYCLE TIME
7.0 OPERATIONAL VARIATIONS
8.0 MISCELLANEOUS
9.0 LISTING
MAINDEC-10-DAKAA.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE FIRST IN A
SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. IT IS THE MOST
BASIC OF THE PROCESSOR DIAGNOSTICS. THIS DIAGNOSTIC
ASSUMES THE HALT INSTRUCTION AND THE COMPUTER CONSOLE
TO BE OPERATIVE. IT MAKES NO FURTHER ASSUMPTIONS EXCEPT
THAT IT IS LOADED INTO MEMORY CORRECTLY.
THE DIAGNOSTIC TESTS SOME OF THE MOVE AND SKIP INSTRUCTIONS.
IT ALSO TESTS THE ADDERS AND OTHER LOGIC WITH AND, XOR, EQV,
AND ALL BOOLE INSTRUCTIONS.
2.0 REQUIREMENTS
2.1 EQUIPMENT
A PDP-10 KA10 WITH A MINIMUM OF 32K OF MEMORY
PAPER TAPE READER
DECTAPE (OPTIONAL)
CONSOLE TELETYPE
2.2 STORAGE
THE PROGRAM RUNS WITHIN 32K OF MEMORY.
2.3 PRELIMINARY PROGRAMS
CONSOLE FUNCTIONS WORKING PROPERLY
PAPER TAPE OR DECTAPE READ-IN WORKING PROPERLY
MAINDEC-10-DAKAA.TXT
PAGE 4
3.0 PROGRAM PROCEDURES
3.1 LOADING PROCEDURE
PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104)
DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320)
3.2 STARTING PROCEDURE
STAND-ALONE STARTING ADDRESS IS 30000.
IF THE DIAGNOSTIC FAILS TO START CORRECTLY TRY STARTING AT THE
FIRST TEST INSTEAD OF AT THE BEGINNING OF THE CONTROL SEQUENCE.
(SEE LISTING).
3.3 OPERATING PROCEDURE
ONCE STARTED THE PROGRAM WILL CYCLE CONTINUALLY UNTIL STOPPED
OR AN ERROR OCCURS.
4.0 ERRORS
ERRORS ARE IN THE FORM OF HALT INSTRUCTIONS. THE LISTING
SHOULD BE CONSULTED TO DETERMINE THE CAUSE OF THE ERROR. A
NO OPERATION (JUMP) INSTRUCTION FOLLOWS EACH HALT. THIS
MAY BE USEFUL IN CONSTRUCTING A SCOPE LOOP TO CYCLE ON THE
FAILING INSTRUCTION.
5.0 ITERATION COUNTER
THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEM-
ORY INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND
INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION.
6.0 CYCLE TIME
THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND
IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, ETC.
MAINDEC-10-DAKAA.TXT
PAGE 5
7.0 OPERATIONAL VARIATIONS
A. DIAGNOSTIC MONITOR
THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PRO-
VIDE RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PRO-
VIDE A QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR
AREA OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN
THE PROGRAM IS USED IN THIS MANNER. THEY ARE:
1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PRO-
GRAM AND STARTS IT AT LOCATION 30002.
2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MON-
ITOR CONTROL FLAG WORD.
B. USER MODE
THE PROGRAM WILL OPERATE IN USER MODE AND AS SUCH PROVIDES
ASSURANCE THAT THE PROCESSOR IS PERFORMING ALL FUNCTIONS
CORRECTLY. USER MODE STARTING ADDRESS IS 30000.
C. SYSTEM EXERCISER
STARTING ADDRESS IS 30003. NO DATA SWITCHES ARE USED BY
THIS PROGRAM.
8.0 MISCELLANEOUS
NONE
9.0 LISTING
```
DAKAA.HST
---------
```
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAA
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAA
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #1
DATE RELEASED: JANUARY 1977
VERSION: 0.2
UPDATE AUTHOR: JOHN R. KIRCHOFF
CHANGES MADE:
1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.
************************************************************************
ORIGINAL VERSION: 0.1
ORIGINAL AUTHOR: RICHARD MALISKA
ORIGINAL RELEASE: 16-MAR-72
************************************************************************
```
DAKAA.MAC
---------
{% highlight text %}
{% include_relative DAKAA.MAC.txt %}
{% endhighlight %}
DAKAA.LST
---------
{% highlight text %}
{% include_relative DAKAA.LST.txt %}
{% endhighlight %}
DAKAA.SEQ
---------
To view the contents of **DAKAA.SEQ**, the source of all the above information, click
[here](http://archive.pcjs.org/apps/pdp10/tapes/diags/klad/dakaa/DAKAA.SEQ.txt).

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.34.2/machine.xsl"?>
<machine id="testka10" type="pdp10" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-10 Test Machine with Debugger</name>
<name pos="center">PDP-10 (Model KA10) with Debugger</name>
<computer id="computer" busWidth="18"/>
<cpu id="cpu" model="1001" cycles="1000000"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp10/tests/optest-v01.json"/>
<device id="default" type="default"/>
<serial id="serial" adapter="0" binding="print" upperCase="true"/>
<panel ref="/devices/pdp10/panel/test/debugger/terminal.xml"/>
<debugger id="debugger" base="8" messages='' commands='a 100 "/apps/pdp10/tapes/diags/klad/dakad/TEST.MAC"'/>
<panel ref="/devices/pdp10/panel/ka10/debugger/front.xml"/>
<debugger id="debugger" base="8" messages='' commands=''/>
</machine>

View file

@ -7,4 +7,5 @@ permalink: /devices/pdp11/panel/
PDP-10 Control Panels
---------------------
* [KA10 Front Panels](ka10/)
* [Terminal Test Panels](test/)

View file

@ -0,0 +1,10 @@
---
layout: page
title: "PDP-10 (Model KA10) Front Panels"
permalink: /devices/pdp10/panel/ka10/
---
PDP-10 (Model KA10) Front Panels
--------------------------------
* [Front Panel with Debugger](debugger/)

View file

@ -0,0 +1,10 @@
---
layout: page
title: "PDP-10 (Model KA10) Front Panel with Debugger"
permalink: /devices/pdp10/panel/ka10/debugger/
---
PDP-10 (Model KA10) Front Panel with Debugger
--------------------------------------------
* [Front Panel with Debugger](front.xml)

View file

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel id="panel" width="100%" padding="8px">
<name>Control Panel</name>
<control type="container" class="pcjs-panel-group" width="100%" padBottom="8px">
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">STRT</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">STEP</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">E/H</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="START" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="STEP" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="ENABLE" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">CONT</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">DEP</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">EXAM</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="CONT" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="DEP" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="EXAM" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="6.2%" pos="right">
<control type="container" class="pcjs-swlbl" width="50%" pos="right">LOAD</control>
<control type="container" class="pcjs-swlbl" width="50%" pos="right">TEST</control>
<control type="container" class="pcjs-swpad" width="50%" pos="right" style="clear:both;"><control type="switch" binding="LOAD" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="50%" pos="right"><control type="switch" binding="TEST" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">17</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">16</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">15</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S17" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S16" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S15" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">14</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">13</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">12</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S14" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S13" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S12" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">11</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">10</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">9</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S11" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S10" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S9" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">8</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">7</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">6</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S8" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S7" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S6" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">5</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">4</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">3</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S5" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S4" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S3" width="100%" container="center"/></control>
</control>
<control type="container" class="pcjs-triplet" width="9.3%" pos="right">
<control type="container" class="pcjs-swlbl" width="33%" pos="right">2</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">1</control>
<control type="container" class="pcjs-swlbl" width="33%" pos="right">0</control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S2" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S1" width="100%" container="center"/></control>
<control type="container" class="pcjs-swpad" width="33%" pos="right"><control type="switch" binding="S10" width="100%" container="center"/></control>
</control>
</control>
<control type="container" class="pcjs-textarea" width="100%" padBottom="8px">
<control type="textarea" binding="print" width="100%" height="340px" padRight="8px" pos="relative" style="resize:vertical;"/>
<control type="container" width="100%">
<control type="text" binding="debugInput" width="auto"/>
<control type="button" binding="debugEnter">Enter</control>
<control type="button" binding="clear">Clear</control>
</control>
</control>
</panel>

File diff suppressed because it is too large Load diff

View file

@ -51,7 +51,7 @@ var la={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[4
y:121,z:122,"{":123,"|":124,"}":125,"~":126,po:127},ma={};ma[173]=n["-"];ma[186]=n[";"];ma[187]=n["="];ma[189]=n["-"];ma[188]=n[","];ma[190]=n["."];ma[191]=n["/"];ma[192]=n["`"];ma[219]=n["["];ma[220]=n["\\"];ma[221]=n["]"];ma[222]=n["'"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];
p[192]=n["~"];p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"];
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function oa(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;c=c?"0x":"";var d="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));if(null==a)for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a%16,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a=Math.trunc(a/16)}return(void 0===c?"":c)+d}
function pa(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 qa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ra(a,b){return-1!==a.indexOf(b,a.length-b.length)}function sa(a){return a.replace(/[&<>"']/g,function(a){return ta[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var ta={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};

View file

@ -959,7 +959,7 @@ if (DEBUGGER) {
};
/**
* parseAddr(sAddr, fCode, fNoChecks, fPrint)
* parseAddr(sAddr, fCode, fNoChecks)
*
* Address evaluation and validation (eg, range checks) are no longer performed at this stage. That's
* done later, by getAddr(), which returns CPUDef.ADDR_INVALID for invalid segments, out-of-range offsets,
@ -972,10 +972,9 @@ if (DEBUGGER) {
* @param {string|undefined} sAddr
* @param {boolean} [fCode] (true if target is code, false if target is data)
* @param {boolean} [fNoChecks] (true when setting breakpoints that may not be valid now, but will be later)
* @param {boolean} [fPrint]
* @return {DbgAddr6502|null|undefined}
*/
Debugger6502.prototype.parseAddr = function(sAddr, fCode, fNoChecks, fPrint)
Debugger6502.prototype.parseAddr = function(sAddr, fCode, fNoChecks)
{
var dbgAddr;
var dbgAddrNext = (fCode? this.dbgAddrNextCode : this.dbgAddrNextData);
@ -984,7 +983,7 @@ if (DEBUGGER) {
sAddr = this.parseReference(sAddr);
dbgAddr = this.findSymbolAddr(sAddr);
if (dbgAddr) return dbgAddr;
addr = this.parseExpression(sAddr, fPrint);
addr = this.parseExpression(sAddr);
}
if (addr != null) {
dbgAddr = this.newAddr(addr);
@ -3801,7 +3800,7 @@ if (DEBUGGER) {
sCmd = str.trim(sCmd);
var a = sCmd.match(/^(['"])(.*?)\1$/);
if (!a) {
this.parseExpression(sCmd, true);
this.parseExpression(sCmd, false);
} else {
this.println(this.replaceRegs(a[2]));
}

View file

@ -473,7 +473,7 @@ class Debugger8080 extends Debugger {
}
/**
* parseAddr(sAddr, fCode, fNoChecks, fPrint)
* parseAddr(sAddr, fCode, fNoChecks)
*
* Address evaluation and validation (eg, range checks) are no longer performed at this stage. That's
* done later, by getAddr(), which returns CPUDef8080.ADDR_INVALID for invalid segments, out-of-range offsets,
@ -486,10 +486,9 @@ class Debugger8080 extends Debugger {
* @param {string|undefined} sAddr
* @param {boolean} [fCode] (true if target is code, false if target is data)
* @param {boolean} [fNoChecks] (true when setting breakpoints that may not be valid now, but will be later)
* @param {boolean} [fPrint]
* @return {DbgAddr8080|null|undefined}
*/
parseAddr(sAddr, fCode, fNoChecks, fPrint)
parseAddr(sAddr, fCode, fNoChecks)
{
var dbgAddr;
var dbgAddrNext = (fCode? this.dbgAddrNextCode : this.dbgAddrNextData);
@ -498,7 +497,7 @@ class Debugger8080 extends Debugger {
sAddr = this.parseReference(sAddr) || sAddr;
dbgAddr = this.findSymbolAddr(sAddr);
if (dbgAddr) return dbgAddr;
addr = this.parseExpression(sAddr, fPrint);
addr = this.parseExpression(sAddr);
}
if (addr != null) {
dbgAddr = this.newAddr(addr);
@ -3337,7 +3336,7 @@ class Debugger8080 extends Debugger {
sCmd = Str.trim(sCmd);
var a = sCmd.match(/^(['"])(.*?)\1$/);
if (!a) {
this.parseExpression(sCmd, true);
this.parseExpression(sCmd, false);
} else {
this.println(this.replaceRegs(a[2]));
}

View file

@ -1375,7 +1375,7 @@ class DebuggerX86 extends Debugger {
}
/**
* parseAddr(sAddr, fCode, fNoChecks, fPrint)
* parseAddr(sAddr, fCode, fNoChecks, fQuiet)
*
* As discussed above, dbgAddr variables contain one or more of: off, sel, and addr. They represent
* a segmented address (sel:off) when sel is defined or a linear address (addr) when sel is undefined
@ -1400,10 +1400,10 @@ class DebuggerX86 extends Debugger {
* @param {string|undefined} sAddr
* @param {boolean} [fCode] (true if target is code, false if target is data)
* @param {boolean} [fNoChecks] (true when setting breakpoints that may not be valid now, but will be later)
* @param {boolean} [fPrint]
* @param {boolean} [fQuiet]
* @return {DbgAddrX86|null|undefined}
*/
parseAddr(sAddr, fCode, fNoChecks, fPrint)
parseAddr(sAddr, fCode, fNoChecks, fQuiet)
{
var dbgAddr;
var dbgAddrNext = (fCode? this.dbgAddrNextCode : this.dbgAddrNextData);
@ -1451,16 +1451,16 @@ class DebuggerX86 extends Debugger {
if (iColon < 0) {
if (sel != null) {
off = this.parseExpression(sAddr, fPrint);
off = this.parseExpression(sAddr, fQuiet);
addr = null;
} else {
addr = this.parseExpression(sAddr, fPrint);
addr = this.parseExpression(sAddr, fQuiet);
if (addr == null) off = null;
}
}
else {
sel = this.parseExpression(sAddr.substring(0, iColon), fPrint);
off = this.parseExpression(sAddr.substring(iColon + 1), fPrint);
sel = this.parseExpression(sAddr.substring(0, iColon), fQuiet);
off = this.parseExpression(sAddr.substring(iColon + 1), fQuiet);
addr = null;
}
}
@ -1598,7 +1598,7 @@ class DebuggerX86 extends Debugger {
var sInfo = "no information";
if (BACKTRACK) {
var sAddr = asArgs[0];
var dbgAddr = this.parseAddr(sAddr, true, true, false);
var dbgAddr = this.parseAddr(sAddr, true, true, true);
if (dbgAddr) {
var addr = this.getAddr(dbgAddr);
if (dbgAddr.type != DebuggerX86.ADDRTYPE.PHYSICAL) {
@ -5907,7 +5907,7 @@ class DebuggerX86 extends Debugger {
sCmd = Str.trim(sCmd);
var a = sCmd.match(/^(['"])(.*?)\1$/);
if (!a) {
this.parseExpression(sCmd, true);
this.parseExpression(sCmd, false);
} else {
this.println(this.replaceRegs(a[2]));
}

View file

@ -18,7 +18,7 @@ The module is currently comprised of the following components, as listed in [pac
* [bus.js](/modules/pdp10/lib/bus.js)
* [computer.js](/modules/pdp10/lib/computer.js)
* [cpu.js](/modules/pdp10/lib/cpu.js)
* [cpuop.js](/modules/pdp10/lib/cpuop.js)
* [cpuops.js](/modules/pdp10/lib/cpuops.js)
* [cpustate.js](/modules/pdp10/lib/cpustate.js)
* [debugger.js](/modules/pdp10/lib/debugger.js)
* [defines.js](/modules/pdp10/lib/defines.js)

View file

@ -2232,7 +2232,31 @@ PDP10.opAOBJN = function(op, acc)
*/
PDP10.opJRST = function(op, acc)
{
this.opUndefined(op);
if (acc & 0b0001) {
/*
* Enter user mode.
*/
this.setUserMode();
}
if (acc & 0b0010) {
/*
* Restore the flags.
*/
this.setPS(this.regLA);
}
if (acc & 0b0100) {
/*
* Halt the processor.
*/
this.stopCPU();
}
if (acc & 0b1000) {
/*
* Restore interrupt channel.
*/
this.opUndefined(op);
}
this.setPC(this.regEA);
};
/**
@ -6378,8 +6402,11 @@ PDP10.split72 = function(res, ext)
PDP10.setAddFlags = function(dst, src, res)
{
/*
* Isolate the top two bits of dst, src, and res by "shifting" them into bits 0 and 1 of the following variables.
* Isolate the top two bits of dst, src, and res by "shifting" them into bits 0 and 1 of the
* following variables. Note that shifting with division only works when the values are unsigned
* (which they MUST be).
*/
Component.assert(dst >= 0 && src >= 0 && res >= 0);
var dst01 = Math.trunc(dst / PDP10.TWO_POW34);
var src01 = Math.trunc(src / PDP10.TWO_POW34);
var res01 = Math.trunc(res / PDP10.TWO_POW34);
@ -6440,7 +6467,11 @@ PDP10.AND = function(dst, src)
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
* positive.
*
* Finally, all 36-bit data within a PDP-10 machine should ALWAYS be unsigned, which we now assert,
* because the divisions below would not yield correct results with negative inputs.
*/
Component.assert(dst >= 0 && src >= 0);
return ((((dst / PDP10.TWO_POW32)|0) & ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst & src) >>> 0);
};
@ -6491,7 +6522,11 @@ PDP10.EQV = function(dst, src)
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
* positive.
*
* Finally, all 36-bit data within a PDP-10 machine should ALWAYS be unsigned, which we now assert,
* because the divisions below would not yield correct results with negative inputs.
*/
Component.assert(dst >= 0 && src >= 0);
return ((~(((dst / PDP10.TWO_POW32)|0) ^ ((src / PDP10.TWO_POW32)|0)) & 0o17) * PDP10.TWO_POW32) + (~(dst ^ src) >>> 0);
};
@ -6514,7 +6549,11 @@ PDP10.IOR = function(dst, src)
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
* positive.
*
* Finally, all 36-bit data within a PDP-10 machine should ALWAYS be unsigned, which we now assert,
* because the divisions below would not yield correct results with negative inputs.
*/
Component.assert(dst >= 0 && src >= 0);
return ((((dst / PDP10.TWO_POW32)|0) | ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst | src) >>> 0);
};
@ -6536,7 +6575,11 @@ PDP10.NOT = function(src)
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
* positive.
*
* Finally, all 36-bit data within a PDP-10 machine should ALWAYS be unsigned, which we now assert,
* because the divisions below would not yield correct results with negative inputs.
*/
Component.assert(src >= 0);
return ((~((src / PDP10.TWO_POW32)|0) & 0o17) * PDP10.TWO_POW32) + (~src >>> 0);
};
@ -6572,7 +6615,11 @@ PDP10.XOR = function(dst, src)
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
* positive.
*
* Finally, all 36-bit data within a PDP-10 machine should ALWAYS be unsigned, which we now assert,
* because the divisions below would not yield correct results with negative inputs.
*/
Component.assert(dst >= 0 && src >= 0);
return ((((dst / PDP10.TWO_POW32)|0) ^ ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst ^ src) >>> 0);
};

View file

@ -174,7 +174,12 @@ class CPUStatePDP10 extends CPUPDP10 {
*/
initCPU()
{
this.regEA = this.regRA = this.regOP = 0;
/*
* regEA is the last effective address, while regLA is the last fetch from an effective address
* calculation. regRA is the last reference address used to calculate the last effective address.
*/
this.regEA = this.regRA = 0;
this.regLA = this.regOP = 0;
this.regPC = this.lastPC = this.addrReset;
this.regXC = -1; // if >= 0 this supersedes regPC (refers to an opcode from XCT)
this.regBP = -1; // active byte pointer (-1 if none)
@ -287,6 +292,7 @@ class CPUStatePDP10 extends CPUPDP10 {
state.set(0, [
this.regEA,
this.regRA,
this.regLA,
this.regOP,
this.regPC,
this.regXC,
@ -320,6 +326,7 @@ class CPUStatePDP10 extends CPUPDP10 {
[
this.regEA,
this.regRA,
this.regLA,
this.regOP,
this.regPC,
this.regXC,
@ -355,6 +362,38 @@ class CPUStatePDP10 extends CPUPDP10 {
return (this.regPS & PDP10.HALF_MASK) * PDP10.HALF_SHIFT;
}
/**
* setPS(w)
*
* Sets the processor state flags in the format used by various program control operations (eg, JRST).
*
* @this {CPUStatePDP10}
* @param {number} w
*/
setPS(w)
{
w = (w / PDP10.HALF_SHIFT)|0;
this.regPS = (this.regPS & ~PDP10.PSFLAG.SET_MASK) | (w & PDP10.PSFLAG.SET_MASK);
this.regPS |= (w & PDP10.PSFLAG.USER_MODE);
if (!(w & PDP10.PSFLAG.USER_IO)) {
this.regPS &= ~PDP10.PSFLAG.USER_IO;
} else {
if (!(this.regPS & PDP10.PSFLAG.USER_MODE)) this.regPS |= PDP10.PSFLAG.USER_IO;
}
}
/**
* setUserMode()
*
* Sets the processor's USER_MODE flag.
*
* @this {CPUStatePDP10}
*/
setUserMode()
{
this.regPS |= PDP10.PSFLAG.USER_MODE;
}
/**
* readFlags()
*
@ -401,7 +440,7 @@ class CPUStatePDP10 extends CPUPDP10 {
getOpcode()
{
if ((this.regRA & PDP10.OPCODE.I_BIT)) {
this.regRA = this.readWord(this.regEA);
this.regRA = this.regLA = this.readWord(this.regEA);
} else if (this.regXC >= 0) {
this.regRA = this.regOP = this.readWord(this.regXC);
this.regXC = -1;
@ -429,7 +468,7 @@ class CPUStatePDP10 extends CPUPDP10 {
*/
this.regEA = this.regRA & PDP10.OPCODE.Y_MASK;
var x = (this.regRA >> PDP10.OPCODE.X_SHIFT) & PDP10.OPCODE.X_MASK;
if (x) this.regEA = (this.regEA + this.readWord(x)) & PDP10.ADDR_MASK;
if (x) this.regEA = (this.regEA + (this.regLA = this.readWord(x))) & PDP10.ADDR_MASK;
return (this.regRA & PDP10.OPCODE.I_BIT)? -1 : ((this.regOP / PDP10.OPCODE.A_SCALE)|0);
}

View file

@ -331,11 +331,17 @@ class DebuggerPDP10 extends Debugger {
this.nBusWidth = bus.getWidth();
/*
* Re-initialize Debugger message support if necessary
* Override the Debugger's message configuration if specified.
*/
var sMessages = /** @type {string|undefined} */ (cmp.getMachineParm('messages'));
if (sMessages) this.messageInit(sMessages);
/*
* Override the Debugger's initialization commands if specified.
*/
var sCommands = /** @type {string|undefined} */ (cmp.getMachineParm('commands'));
if (sCommands) this.sInitCommands = sCommands;
/*
* Update aOpReserved as appropriate for the current model
*/
@ -502,7 +508,7 @@ class DebuggerPDP10 extends Debugger {
}
/**
* parseAddr(sAddr, dbgAddr, fPrint)
* parseAddr(sAddr, dbgAddr)
*
* Address evaluation and validation (eg, range checks) are no longer performed at this stage. That's
* done later, by getAddr(), which returns PDP10.ADDR_INVALID for invalid segments, out-of-range offsets,
@ -514,10 +520,9 @@ class DebuggerPDP10 extends Debugger {
* @this {DebuggerPDP10}
* @param {string|undefined} sAddr
* @param {DbgAddrPDP10} [dbgAddr]
* @param {boolean} [fPrint]
* @return {DbgAddrPDP10|null|undefined}
*/
parseAddr(sAddr, dbgAddr, fPrint)
parseAddr(sAddr, dbgAddr)
{
var fPhysical, nBase;
if (!dbgAddr) dbgAddr = this.newAddr();
@ -538,7 +543,7 @@ class DebuggerPDP10 extends Debugger {
} else if (sAddr.indexOf('.') >= 0) {
nBase = 10;
}
addr = this.parseExpression(sAddr, fPrint);
addr = this.parseExpression(sAddr);
}
if (addr != null) {
addr = this.validateWord(addr, this.nBusWidth);
@ -1547,14 +1552,13 @@ class DebuggerPDP10 extends Debugger {
} else {
n = (opCode >> PDP10.OPCODE.A_SHIFT) & PDP10.OPCODE.A_MASK;
sOperand = this.toStrBase(n, -1);
if (n) {
for (var m = 0; m < DebuggerPDP10.ALTOPS.length; m++) {
if (opNum == DebuggerPDP10.ALTOPS[m][0]) {
var opAlt = DebuggerPDP10.ALTOPS[m][n];
if (opAlt) {
sOperation = DebuggerPDP10.OPNAMES[opAlt];
sOperand = "";
}
for (var m = 0; sOperand && m < DebuggerPDP10.ALTOPS.length; m++) {
if (opNum == DebuggerPDP10.ALTOPS[m][0]) {
var opAlt = DebuggerPDP10.ALTOPS[m][n];
if (opAlt) {
sOperation = DebuggerPDP10.OPNAMES[opAlt];
sOperand = "";
break;
}
}
}
@ -1611,19 +1615,27 @@ class DebuggerPDP10 extends Debugger {
}
/**
* parseInstruction(sOpcode, sOperands, addr)
* parseInstruction(sOpcode, sOperands, addr, fQuiet)
*
* @this {DebuggerPDP10}
* @param {string} sOpcode
* @param {string} [sOperands]
* @param {number} [addr] of memory where this instruction is being assembled
* @param {boolean} [fQuiet]
* @return {number} (opcode, or -1 if unrecognized instruction)
*/
parseInstruction(sOpcode, sOperands, addr)
parseInstruction(sOpcode, sOperands, addr, fQuiet)
{
var opCode = -1;
var opMask, opNum;
/*
* It's best to always clear sUndefined up front, because the caller won't
* necessarily know whether or not we had to call parseExpression() for this
* instruction.
*/
this.sUndefined = null;
if (!sOpcode) {
/*
* MACRO-10 permits instructions to be assembled without an explicit opcode;
@ -1700,7 +1712,7 @@ class DebuggerPDP10 extends Debugger {
var sOperand = aOperands[i].trim();
if (!sOperand) continue;
if (i > 1) {
this.println("too many operands: " + sOperand);
this.println("too many operands: " + sOperands);
opCode = -1;
break;
}
@ -1722,7 +1734,7 @@ class DebuggerPDP10 extends Debugger {
sOperand = sOperand.replace(/(^|[^0-9])\./g, "$1" + this.toStrOffset(addr));
}
}
var operand = this.parseExpression(sOperand);
var operand = this.parseExpression(sOperand, fQuiet);
if (operand == undefined) {
opCode = -1;
break;
@ -1751,7 +1763,7 @@ class DebuggerPDP10 extends Debugger {
opCode += operand;
sOperand = match[3];
if (sOperand) {
operand = this.parseExpression(sOperand);
operand = this.parseExpression(sOperand, fQuiet);
if (operand == undefined) {
opCode = -1;
break;
@ -1774,7 +1786,7 @@ class DebuggerPDP10 extends Debugger {
// }
}
if (opCode < 0 && sOperands != null) {
if (opCode < 0 && !fQuiet) {
this.println("unknown instruction: " + sOpcode + ' ' + sOperands);
}
@ -2469,20 +2481,20 @@ class DebuggerPDP10 extends Debugger {
*/
loadBin(aWords, addrLoad)
{
/*
* TODO: Decide what to do about addrLoad; either drop it or use it.
*/
var nWords = 0;
var bus = this.bus;
var dbg = this.dbg;
aWords.forEach(function(w, addr) {
bus.setWordDirect(addr, w);
if (addrLoad == null) addrLoad = addr;
nWords++;
});
if (!nWords) {
this.println("no data");
} else {
this.println(nWords + " words loaded at " + this.toStrBase(addrLoad) + '-' + this.toStrBase(addrLoad + nWords - 1));
this.cpu.setPC(addrLoad || 0);
this.updateStatus();
}
}
@ -2591,12 +2603,22 @@ class DebuggerPDP10 extends Debugger {
dbg.println("assembly already in progress");
}
else {
var sFile = match[2];
var addrLoad = dbgAddr.addr;
this.macro10 = new Macro10(match[2], addrLoad, sOptions, dbg, function doneMacro10(nErrorCode, sURL) {
this.macro10 = new Macro10(sFile, addrLoad, sOptions, dbg, function doneMacro10(nErrorCode, sURL) {
if (!nErrorCode) {
dbg.loadBin(dbg.macro10.getBin(), addrLoad);
/*
* NOTE: Most Debugger operations run in the context of doCommand(), which catches any exceptions;
* however, this callback may be running in a different context (eg, a network request callback), so
* better safe than sorry.
*/
try {
dbg.loadBin(dbg.macro10.getBin(), addrLoad);
} catch(e) {
dbg.println(e.message);
}
} else {
dbg.println("error (" + nErrorCode + ") processing " + sURL);
dbg.println("error (" + nErrorCode + ") processing " + (sURL || sFile));
}
dbg.macro10 = null;
});
@ -2834,7 +2856,7 @@ class DebuggerPDP10 extends Debugger {
var size = (sCmd == "db"? 1 : 2);
var nWords = len || 32;
var nWordsPerLine = (size == 1? 2 : 4);
var nWordsPerLine = (size == 1? 1 : 4);
var nLines = (((nWords + nWordsPerLine - 1) / nWordsPerLine)|0) || 1;
var sDump = "";
@ -2857,7 +2879,9 @@ class DebuggerPDP10 extends Debugger {
var nBits = 7;
var shift = 36 - nBits;
for (var i = 0; size == 1 && shift >= 0; i++) {
var c = ((w / Math.pow(2, shift)) % Math.pow(2, nBits)) + (nBits == 6? 0x20 : 0);
var c = ((w / Math.pow(2, shift)) % Math.pow(2, nBits));
sData += this.toStrBase(c, nBits);
c += (nBits == 6? 0x20 : 0);
sChars += (c < 0x20? '.' : String.fromCharCode(c));
shift -= nBits;
}
@ -3318,7 +3342,7 @@ class DebuggerPDP10 extends Debugger {
sCmd = Str.trim(sCmd);
var a = sCmd.match(/^(['"])(.*?)\1$/);
if (!a) {
this.parseExpression(sCmd, true);
this.parseExpression(sCmd, false);
} else {
if (a[2].length > 1) {
this.println(this.replaceRegs(a[2]));

View file

@ -201,15 +201,16 @@ var PDP10 = {
* binary, the only options you can set relate to the operating system to be run -- which seems very hacky.
*/
PSFLAG: {
OVFL: 0o400000, // Overflow
CARRY0: 0o200000, // Carry 0
CARRY1: 0o100000, // Carry 1
FP_OVFL: 0o040000, // Floating-Point Overflow
BYTE_INT: 0o020000, // Byte Interrupt
USER_MODE: 0o010000, // Processor is in User Mode
USER_IO: 0o004000, // User I/O
FP_UNFL: 0o000100, // Floating-Point Underflow
NO_DIVIDE: 0o000040, // No Divide
OVFL: 0o400000, // Overflow
CARRY0: 0o200000, // Carry 0
CARRY1: 0o100000, // Carry 1
FP_OVFL: 0o040000, // Floating-Point Overflow
BYTE_INT: 0o020000, // Byte Interrupt
USER_MODE: 0o010000, // Processor is in User Mode
USER_IO: 0o004000, // User I/O
FP_UNFL: 0o000100, // Floating-Point Underflow
NO_DIVIDE: 0o000040, // No Divide
SET_MASK: 0o760140, // the flags that are always settable/clearable
/*
* Only the low 18 bits (above) are returned by getPS(); the following (bits 18 to 31)
* are defined for internal use only.

View file

@ -67,7 +67,7 @@ var Sym;
/**
* @typedef {{
* nLocation:(number),
* aValues:(Array.<string>),
* sValue:(string)
* }}
*/
var Fixup;
@ -214,14 +214,22 @@ class Macro10 {
this.done(this.parseFile());
return;
}
var macro10 = this;
Web.getResource(this.asURLs[this.iURL++], null, true, function processMacro10(sURL, sResource, nErrorCode) {
var sURL = this.asURLs[this.iURL++];
/*
* We know that local resources ending with ".MAC" are actually stored with a ".txt" extension.
*/
if (sURL[0] == '/' && sURL.slice(-4) == ".MAC") sURL += ".txt";
Web.getResource(sURL, null, true, function processMacro10(sFile, sResource, nErrorCode) {
if (nErrorCode) {
macro10.done(nErrorCode, sURL);
macro10.done(nErrorCode, sFile);
return;
}
var sText = sResource;
if (Str.endsWith(sURL, ".html")) {
if (Str.endsWith(sFile, ".html")) {
/*
* We want to parse ONLY the text between <PRE>...</PRE> tags, and eliminate any HTML entities.
*/
@ -246,6 +254,8 @@ class Macro10 {
/**
* getBin()
*
* Service for the Debugger to obtain the data after a (hopefully) successful assembly process.
*
* @this {Macro10}
* @return {Array.<number>}
*/
@ -301,50 +311,14 @@ class Macro10 {
}
this.aFixups.forEach(function processFixup(fixup){
var value = 0;
var sValue = fixup.aValues[0];
var sOperand = fixup.aValues[1];
var nLocation = fixup.nLocation;
if (fixup.aValues.length == 1) {
if (sValue.indexOf('@') >= 0 || sValue.indexOf('(') >= 0) {
sOperand = sValue;
sValue = "";
}
var value = macro10.parseExpression(fixup.sValue, undefined, nLocation);
if (value === undefined) {
macro10.error("unable to parse expression: " + fixup.sValue);
return;
}
if (sOperand != null) {
value = macro10.dbg.parseInstruction(sValue, sOperand, nLocation);
if (value < 0) {
macro10.error("unable to parse instruction: " + fixup.aValues[0] + ' ' + fixup.aValues[1]);
}
} else {
value = macro10.parseExpression(sValue, nLocation);
if (value === undefined) {
macro10.error("unable to parse expression: " + sValue);
}
else if (macro10.aWords[nLocation] === undefined) {
macro10.error("undefined fixup location: " + Str.toOct(nLocation, 0, true));
}
else {
value += macro10.aWords[nLocation];
}
}
/*
* At the end of the day, we only want unsigned 36-bit values, and some of our internal calculations
* already adhere to that (eg, the parseExpression() concatenation of two unsigned 18-bit values).
* But in general, the expression parser is allowed to return negative values, so that signed arithmetic
* works naturally. Perhaps that decision should be revisited, but for now, this particular mix of
* behaviors means that when checking for out-of-range values, the upper bound must be the unsigned
* WORD_LIMIT, while the lower bound must be the signed INT_LIMIT.
*
* In a perfect world, the bounds would either be -INT_LIMIT,INT_LIMIT-1 or 0,WORD_LIMIT-1. In any
* event, the truncate() call will ensure everything is an unsigned 36-bit value. The warning should
* trigger only if the original value contained more than 36 significant bits.
*/
var w = macro10.dbg.truncate(value || 0, 36, true);
if (value < -PDP10.INT_LIMIT || value >= PDP10.WORD_LIMIT) {
macro10.warning("truncated value " + Str.toOct(value) + " at location " + Str.toOct(nLocation) + " to " + Str.toOct(w));
}
macro10.aWords[nLocation] = w;
value += macro10.aWords[nLocation];
macro10.aWords[nLocation] = macro10.truncate(value, nLocation);
});
} catch(err) {
@ -384,7 +358,7 @@ class Macro10 {
sLine = this.addASCII(sLine);
}
var reLine = /\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i;
var reLine = /\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;
var match = sLine.match(reLine);
if (!match || match[4] && match[4].slice(0, 1) != ';') {
this.error("failed to parse line: " + sLine);
@ -394,7 +368,9 @@ class Macro10 {
var sLabel = match[1];
var sOperator = match[2].toUpperCase();
var sOperands = match[3].trim();
var sComment = match[4].slice(1);
var sComment = match[4];
var sRemainder = match[3] + match[4];
if (sLabel) {
var chSep = sLabel.slice(-1);
sLabel = sLabel.slice(0, -1);
@ -406,8 +382,7 @@ class Macro10 {
}
}
this.sOperator = sOperator;
sOperands = sOperands.trim();
if (!sOperator && !sOperands) return true;
/*
* My initial read of the MACRO-10 specification suggested that lines may begin with EITHER
@ -418,6 +393,7 @@ class Macro10 {
sOperands = sOperands.substr(1);
sOperator = '=';
}
this.sOperator = sOperator;
/*
* Check the operands for a literal. If the line contains and/or ends with a literal
@ -440,12 +416,6 @@ class Macro10 {
if (!this.parseMacro(sOperator, sOperands)) {
switch (sOperator) {
case "":
if (sOperands) {
this.genWord(0, [sOperands]);
}
break;
case "=":
this.addAssign(sLabel, sOperands);
break;
@ -453,7 +423,7 @@ class Macro10 {
case Macro10.PSEUDO_OP.ASCII:
case Macro10.PSEUDO_OP.ASCIZ:
case Macro10.PSEUDO_OP.SIXBIT:
this.addASCII(sOperands);
this.addASCII(sRemainder);
break;
case Macro10.PSEUDO_OP.XWD:
@ -471,10 +441,7 @@ class Macro10 {
break;
default:
if (!this.parseOpcode(sOperator, sOperands)) {
this.genWord(0, [sOperator + sOperands]);
// if (DEBUG) this.println(Str.toDec(this.nLine, 5) + ": label(" + sLabel + ") operator(" + sOperator + ") operands(" + sOperands + ") comment(" + sComment + ")");
}
this.addWord(sOperator, sOperands);
break;
}
}
@ -529,24 +496,6 @@ class Macro10 {
return true;
}
/**
* parseOpcode(sOpcode, sOperands)
*
* @this {Macro10}
* @param {string} sOpcode
* @param {string} sOperands
* @return {boolean}
*/
parseOpcode(sOpcode, sOperands)
{
var opCode = this.dbg.parseInstruction(sOpcode);
if (opCode >= 0) {
this.genWord(opCode, [sOpcode, sOperands]);
return true;
}
return false;
}
/**
* isSymbolChar(ch)
*
@ -653,7 +602,7 @@ class Macro10 {
}
/**
* parseExpression(sOperand, nLocation)
* parseExpression(sOperand, fPass1, nLocation)
*
* This is a wrapper around the Debugger's parseExpression() function to take care of some
* additional requirements we have, such as interpreting a period as the current location and
@ -662,41 +611,42 @@ class Macro10 {
*
* @this {Macro10}
* @param {string} sOperand
* @param {number} [nLocation]
* @param {boolean|undefined} [fPass1]
* @param {number|undefined} [nLocation]
* @return {number|undefined}
*/
parseExpression(sOperand, nLocation)
parseExpression(sOperand, fPass1, nLocation)
{
var result;
if (nLocation === undefined) nLocation = this.nLocation;
/*
* Check for the "period" syntax that MACRO-10 uses to represent the value of the current
* location. The Debugger's parseInstruction() method understands that syntax, but its
* parseExpression() method does not.
*
* Note that the Debugger's parseInstruction() replaces any period not PRECEDED by a decimal
* digit with the current address, because our Debuggers' only other interpretation of a period
* is as the suffix of a decimal integer, whereas MACRO-10's only other interpretation of a period
* is (I think) as the decimal point within a floating-point number, so here we only replace
* periods that are not FOLLOWED by a decimal digit.
*/
sOperand = sOperand.replace(/\.([^0-9]|$)/g, this.dbg.toStrBase(nLocation, -1) + "$1");
/*
* Check for the "double comma" syntax that MACRO-10 uses to express a 36-bit value as two 18-bit halves.
* Check for the "double comma" syntax that MACRO-10 uses to express a 36-bit value as two 18-bit halves,
* and invoke ourselves recursively for each half.
*/
var match = sOperand.match(/^([^,]*),,([^,]*)$/);
if (!match) {
result = this.dbg.parseExpression(sOperand);
if (nLocation === undefined) nLocation = this.nLocation;
/*
* Check for the "period" syntax that MACRO-10 uses to represent the value of the current location.
* The Debugger's parseInstruction() method understands that syntax, but its parseExpression() method
* does not.
*
* Note that the Debugger's parseInstruction() replaces any period not PRECEDED by a decimal
* digit with the current address, because our Debuggers' only other interpretation of a period
* is as the suffix of a decimal integer, whereas MACRO-10's only other interpretation of a period
* is (I think) as the decimal point within a floating-point number, so here we only replace
* periods that are not FOLLOWED by a decimal digit.
*/
result = this.dbg.parseExpression(sOperand.replace(/\.([^0-9]|$)/g, this.dbg.toStrBase(nLocation, -1) + "$1"), fPass1);
if (result === undefined) {
this.error("error parsing expression: " + sOperand);
}
} else {
var wLeft = match[1]? this.dbg.parseExpression(match[1]) : 0;
var wLeft = match[1]? this.parseExpression(match[1]) : 0;
if (wLeft !== undefined) {
var wRight = match[2]? this.dbg.parseExpression(match[2]) : 0;
var wRight = match[2]? this.parseExpression(match[2]) : 0;
if (wRight !== undefined) {
/*
* NOTE: These must be combined as UNSIGNED values, so that's what we tell truncate().
* NOTE: These must be combined as UNSIGNED values, so that's what we tell truncate() to produce.
*/
result = this.dbg.truncate(wLeft, 18, true) * Math.pow(2, 18) + this.dbg.truncate(wRight, 18, true);
}
@ -880,6 +830,9 @@ class Macro10 {
aParms = aDefaults = [];
if (sOperator == Macro10.PSEUDO_OP.DEFINE) {
/*
* This is a DEFINE (macro) block.
*/
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);
if (!match) {
this.error("unrecognized " + sOperator + " definition: " + sOperands);
@ -902,6 +855,9 @@ class Macro10 {
iMatch = 3;
}
else if (sOperator == Macro10.PSEUDO_OP.LITERAL) {
/*
* This is a LITERAL block.
*/
this.chMacroOpen = '[';
this.chMacroClose = ']';
name = '_' + Str.toDec(this.nLocation, 5);
@ -914,6 +870,9 @@ class Macro10 {
iMatch = 0;
}
else {
/*
* This must be a REPEAT or CONDITIONAL block.
*/
var sOperand = this.getExpression(sOperands);
if (!sOperand) {
this.error("missing " + sOperator + " expression: " + sOperands);
@ -923,6 +882,10 @@ class Macro10 {
sOperand = sOperand.trim();
match = sOperands.match(/\s*(<|)(.*)/i);
name = '_' + sOperator;
/*
* The expression is either a repeat count or a condition. Either way, we must be able to
* resolve it now, so we don't set fPass1 (but that doesn't mean it's the second pass, either).
*/
nOperand = this.parseExpression(sOperand) || 0;
iMatch = 1;
}
@ -1008,6 +971,36 @@ class Macro10 {
this.dbg.setVariable(name, value);
}
/**
* addWord(sOperator, sOperands)
*
* @this {Macro10}
* @param {string} sOperator
* @param {string} sOperands
*/
addWord(sOperator, sOperands)
{
var w;
var sExp = sOperator + sOperands;
if (sExp.indexOf(",,") >= 0 || !sOperator && sExp.indexOf('@') < 0 && sExp.indexOf('(') < 0) {
w = this.parseExpression(sExp, true);
} else {
w = this.dbg.parseInstruction(sOperator, sOperands, this.nLocation, true);
if (w < 0) {
/*
* MACRO-10 also allows instructions to be assembled without an opcode (ie, just an address reference).
*/
w = this.dbg.parseInstruction("", sExp, this.nLocation, true);
if (w < 0) w = undefined;
}
}
if (w !== undefined) {
this.genWord(w, this.dbg.sUndefined);
} else {
this.error("unrecognized expression: " + sExp);
}
}
/**
* addXWD()
*
@ -1019,7 +1012,7 @@ class Macro10 {
*/
addXWD(sOperands)
{
this.genWord(0, [sOperands.replace(",", ",,")]);
this.genWord(0, sOperands.replace(",", ",,"));
}
/**
@ -1068,18 +1061,35 @@ class Macro10 {
}
/**
* genWord(w, aValues)
* genWord(value, sFixup)
*
* @this {Macro10}
* @param {number} w (default value for the current location)
* @param {Array.<string>} [aValues] (optional fixup value(s) to evaluate later)
* @param {number} value (default value for the current location)
* @param {string|null} [sFixup] (optional fixup value to evaluate later)
*/
genWord(w, aValues)
genWord(value, sFixup)
{
this.aWords[this.nLocation] = w;
if (aValues) this.aFixups.push({nLocation: this.nLocation, aValues});
this.aWords[this.nLocation] = this.truncate(value);
if (sFixup != null) this.aFixups.push({nLocation: this.nLocation, sValue: sFixup});
this.nLocation++;
}
/**
* truncate(value, nLocation)
*
* @this {Macro10}
* @param {number} value
* @param {number} [nLocation]
* @return {number}
*/
truncate(value, nLocation = this.nLocation)
{
var w = this.dbg.truncate(value || 0, 36, true);
if (value < -PDP10.INT_LIMIT || value >= PDP10.WORD_LIMIT) {
this.warning("truncated value " + Str.toOct(value) + " at location " + Str.toOct(nLocation) + " to " + Str.toOct(w));
}
return w;
}
}
Macro10.PSEUDO_OP = {

View file

@ -532,7 +532,7 @@ class DebuggerPDP11 extends Debugger {
}
/**
* parseAddr(sAddr, fCode, fNoChecks, fPrint)
* parseAddr(sAddr, fCode, fNoChecks)
*
* Address evaluation and validation (eg, range checks) are no longer performed at this stage. That's
* done later, by getAddr(), which returns PDP11.ADDR_INVALID for invalid segments, out-of-range offsets,
@ -545,10 +545,9 @@ class DebuggerPDP11 extends Debugger {
* @param {string|undefined} sAddr
* @param {boolean} [fCode] (true if target is code, false if target is data)
* @param {boolean} [fNoChecks] (true when setting breakpoints that may not be valid now, but will be later)
* @param {boolean} [fPrint]
* @return {DbgAddrPDP11|null|undefined}
*/
parseAddr(sAddr, fCode, fNoChecks, fPrint)
parseAddr(sAddr, fCode, fNoChecks)
{
var dbgAddr;
var dbgAddrNext = (fCode? this.dbgAddrNextCode : this.dbgAddrNextData);
@ -570,7 +569,7 @@ class DebuggerPDP11 extends Debugger {
} else if (sAddr.indexOf('.') >= 0) {
nBase = 10;
}
addr = this.parseExpression(sAddr, fPrint);
addr = this.parseExpression(sAddr);
}
if (addr != null) {
dbgAddr = this.newAddr(addr, fPhysical, nBase);
@ -3483,7 +3482,7 @@ class DebuggerPDP11 extends Debugger {
sCmd = Str.trim(sCmd);
var a = sCmd.match(/^(['"])(.*?)\1$/);
if (!a) {
this.parseExpression(sCmd, true);
this.parseExpression(sCmd, false);
} else {
if (a[2].length > 1) {
this.println(this.replaceRegs(a[2]));

View file

@ -77,7 +77,8 @@ var DbgAddr;
*
* @unrestricted
*/
class Debugger extends Component {
class Debugger extends Component
{
/**
* Debugger(parmsDbg)
*
@ -91,7 +92,8 @@ class Debugger extends Component {
*
* @param {Object} parmsDbg
*/
constructor(parmsDbg) {
constructor(parmsDbg)
{
if (DEBUGGER) {
super("Debugger", parmsDbg);
@ -107,6 +109,19 @@ class Debugger extends Component {
*/
this.nBits = 32;
/*
* sUndefined is set to the last unknown variable that parseExpression() encounters, if if
* is called in "quiet mode"; the value used for the variable is zero. This mode was added
* for components that need to support expressions containing "fixups" (ie, values that
* must be determined later).
*
* TODO: Only one unknown (fixup) per expression is supported, and we don't indicate what
* operation was performed with the value (callers generally assume addition). If a call
* encounters more than one undefined value, it will revert to normal error reporting and
* return an undefined value for the entire expression.
*/
this.sUndefined = null;
this.achGroup = ['{','}'];
this.achAddress = ['[',']'];
@ -163,7 +178,8 @@ class Debugger extends Component {
* @param {number} [off] optional offset into sReg
* @return {number} register index, or -1 if not found
*/
getRegIndex(sReg, off) {
getRegIndex(sReg, off)
{
return -1;
}
@ -176,7 +192,8 @@ class Debugger extends Component {
* @param {number} iReg
* @return {number|undefined}
*/
getRegValue(iReg) {
getRegValue(iReg)
{
return undefined;
}
@ -192,7 +209,8 @@ class Debugger extends Component {
* @param {string} sAddr
* @return {string}
*/
parseAddrReference(s, sAddr) {
parseAddrReference(s, sAddr)
{
return s.replace('[' + sAddr + ']', "unimplemented");
}
@ -202,7 +220,8 @@ class Debugger extends Component {
* @this {Debugger}
* @return {string}
*/
getNextCommand() {
getNextCommand()
{
var sCmd;
if (this.iPrevCmd > 0) {
sCmd = this.aPrevCmds[--this.iPrevCmd];
@ -219,7 +238,8 @@ class Debugger extends Component {
* @this {Debugger}
* @return {string|null}
*/
getPrevCommand() {
getPrevCommand()
{
var sCmd = null;
if (this.iPrevCmd < this.aPrevCmds.length - 1) {
sCmd = this.aPrevCmds[++this.iPrevCmd];
@ -236,7 +256,8 @@ class Debugger extends Component {
* @param {string} [chSep] is the command separator character (default is ';')
* @return {Array.<string>}
*/
parseCommand(sCmd, fSave, chSep) {
parseCommand(sCmd, fSave, chSep)
{
if (fSave) {
if (!sCmd) {
if (this.fAssemble) {
@ -329,6 +350,11 @@ class Debugger extends Component {
if (this.nBits <= 32) {
return dst & src;
}
/*
* Negative values don't yield correct results when dividing, so pass them through an unsigned truncate().
*/
dst = this.truncate(dst, 0, true);
src = this.truncate(src, 0, true);
return ((((dst / Debugger.TWO_POW32)|0) & ((src / Debugger.TWO_POW32)|0)) * Debugger.TWO_POW32) + ((dst & src) >>> 0);
}
@ -358,9 +384,48 @@ class Debugger extends Component {
if (this.nBits <= 32) {
return dst | src;
}
/*
* Negative values don't yield correct results when dividing, so pass them through an unsigned truncate().
*/
dst = this.truncate(dst, 0, true);
src = this.truncate(src, 0, true);
return ((((dst / Debugger.TWO_POW32)|0) | ((src / Debugger.TWO_POW32)|0)) * Debugger.TWO_POW32) + ((dst | src) >>> 0);
}
/**
* evalXOR(dst, src)
*
* Adapted from /modules/pdp10/lib/cpuops.js:PDP10.XOR().
*
* Performs the logical "exclusive-or" (XOR) of two operands > 32 bits.
*
* @this {Debugger}
* @param {number} dst
* @param {number} src
* @return {number} (dst ^ src)
*/
evalXOR(dst, src)
{
/*
* We XOR the low 32 bits separately from the higher bits, and then combine them with addition.
* Since all bits above 32 will be zero, and since 0 XOR 0 is 0, no special masking for the higher
* bits is required.
*
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
* positive.
*/
if (this.nBits <= 32) {
return dst | src;
}
/*
* Negative values don't yield correct results when dividing, so pass them through an unsigned truncate().
*/
dst = this.truncate(dst, 0, true);
src = this.truncate(src, 0, true);
return ((((dst / Debugger.TWO_POW32)|0) ^ ((src / Debugger.TWO_POW32)|0)) * Debugger.TWO_POW32) + ((dst ^ src) >>> 0);
}
/**
* truncate(v, nBits, fUnsigned)
*
@ -394,9 +459,16 @@ class Debugger extends Component {
if (nBits <= 32) {
vNew = v | 0;
} else {
/*
* For negative values, we require them to fit within nBits - 1, reserving the left-most bit
* for the sign bit, but for positive values, we can't really be sure if the caller is treating
* the left-most bit as a sign bit or not, so the upper range is based on nBits.
*/
limit = Math.pow(2, nBits - 1);
if (v < -limit || v >= limit) {
if (v < -limit) {
vNew = v % limit;
} else if (v >= limit * 2) {
vNew = v % (limit * 2);
}
}
}
@ -434,7 +506,8 @@ class Debugger extends Component {
* @param {number} [cOps] (default is -1 for all)
* @return {boolean} true if successful, false if error
*/
evalOps(aVals, aOps, cOps = -1) {
evalOps(aVals, aOps, cOps = -1)
{
while (cOps-- && aOps.length) {
var chOp = aOps.pop();
if (aVals.length < 2) return false;
@ -447,7 +520,7 @@ class Debugger extends Component {
break;
case '/':
if (!val2) return false;
valNew = val1 / val2;
valNew = Math.trunc(val1 / val2);
break;
case '%':
if (!val2) return false;
@ -494,7 +567,7 @@ class Debugger extends Component {
valNew = this.evalIOR(val1, val2);
break;
case '^^': // since MACRO-10 uses '^' for base overrides, you must now use '^^' for bitwise exclusive-or (XOR)
valNew = val1 ^ val2;
valNew = this.evalXOR(val1, val2);
break;
case '&&':
valNew = (val1 && val2? 1 : 0);
@ -502,16 +575,144 @@ class Debugger extends Component {
case '||':
valNew = (val1 || val2? 1 : 0);
break;
case '><':
valNew = val1;
val2 = 35 - (val2 & 0xff);
if (val2) {
/*
* Since binary shifting is a logical operation, and since shifting by division only works properly
* with positive numbers, we must convert a negative value to a positive value, by computing the two's
* complement.
*/
if (valNew < 0) valNew += Math.pow(2, 36);
if (val2 > 0) {
valNew *= Math.pow(2, val2);
} else {
valNew = Math.trunc(valNew / Math.pow(2, -val2));
}
}
break;
default:
return false;
}
aVals.push(this.truncate(valNew, this.nBits));
aVals.push(this.truncate(valNew));
}
return true;
}
/**
* parseExpression(sExp, fPrint)
* parseArray(asValues, iValue, iLimit, nBase, fQuiet)
*
* parseExpression() takes a complete expression and divides it into array elements, where even elements
* are values (which may be empty if two or more operators appear consecutively) and odd elements are operators.
*
* For example, if the original expression was "2*{3+{4/2}}", parseExpression() would call parseArray() with:
*
* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
* - - - - - - - - - - -- -- -- -- --
* 2 * _ { 3 + _ { 4 / 2 } _ } _
*
* This function takes care of recursively processing sub-expressions, by processing subsets of the array,
* as well as handling certain base overrides (eg, temporarily switching to base-10 for binary shift suffixes).
*
* @param {Array.<string>} asValues
* @param {number} iValue
* @param {number} iLimit
* @param {number} nBase
* @param {boolean} [fQuiet]
* @return {number|undefined}
*/
parseArray(asValues, iValue, iLimit, nBase, fQuiet)
{
var value;
var sValue, sOp;
var fError = false;
var fNegate = false;
var aVals = [], aOps = [];
var nBasePrev = this.nBase;
this.nBase = nBase;
while (iValue < iLimit) {
var v;
sValue = asValues[iValue++].trim();
sOp = (iValue < iLimit? asValues[iValue++] : "");
if (!sValue) {
if (sOp == '{') {
var cOpen = 1;
var iStart = iValue;
while (iValue < iLimit) {
sValue = asValues[iValue++].trim();
sOp = (iValue < asValues.length? asValues[iValue++] : "");
if (sOp == '{') {
cOpen++;
} else if (sOp == '}') {
if (!--cOpen) break;
}
}
v = this.parseArray(asValues, iStart, iValue-1, this.nBase, fQuiet);
sValue = (iValue < iLimit? asValues[iValue++].trim() : "");
sOp = (iValue < iLimit? asValues[iValue++] : "");
}
else {
if (sOp != '-') {
fError = true;
break;
}
fNegate = true;
continue;
}
}
else {
v = this.parseValue(sValue, null, fQuiet, fNegate);
}
if (v === undefined) {
if (this.sUndefined == null && fQuiet) {
this.sUndefined = sValue;
v = 0;
} else {
fError = true;
fQuiet = !fQuiet;
break;
}
}
aVals.push(this.truncate(v));
if (!sOp) break;
this.assert(Debugger.aBinOpPrecedence[sOp] != null);
if (aOps.length && Debugger.aBinOpPrecedence[sOp] < Debugger.aBinOpPrecedence[aOps[aOps.length - 1]]) {
this.evalOps(aVals, aOps, 1);
}
aOps.push(sOp);
/*
* The MACRO-10 binary shifting operator assumes a base-10 shift count, regardless of the current
* base, so we must override the current base to ensure the count is parsed correctly.
*/
this.nBase = (sOp == '><')? 10 : nBase;
fNegate = false;
}
if (!this.evalOps(aVals, aOps) || aVals.length != 1) {
fError = true;
}
if (!fError) {
value = aVals.pop();
} else if (fQuiet === false) {
this.println("parse error (" + (sValue || sOp) + ")");
}
this.nBase = nBasePrev;
return value;
}
/**
* parseExpression(sExp, fQuiet)
*
* A quick-and-dirty expression parser. It takes an expression like:
*
@ -527,92 +728,70 @@ class Debugger extends Component {
* ...
*
* We pop 1 "binop" from aOps and 2 values from aVals whenever a "binop" of lower priority than its
* predecessor is encountered, evaluate, and push the result back onto aVals. Unary operators like
* '~' and ternary operators like '?:' are not supported.
*
* parseReference() makes it possible to write parenthetical-style sub-expressions by using whatever
* characters achGroup contains (default is braces}. Address references are resolved using the characters
* in achAddress (default is brackets).
*
* Why not always use parentheses for sub-expressions? Because parseReference() serves multiple purposes,
* the other being reference replacement in message strings passing through replaceRegs(), and some
* Debuggers don't want parentheses taking on a new meaning in message strings.
*
* However, a Debugger can override these choices by modifying achGroup and/or achAddress, if there's no
* conflict in its replaceRegs() implementation.
* predecessor is encountered, evaluate, and push the result back onto aVals. Only selected unary
* operators are supported (eg, minus), and ternary operators like '?:' are not supported at all.
*
* @this {Debugger}
* @param {string|undefined} sExp
* @param {boolean} [fPrint] is true to print all resolved values, false for quiet parsing
* @param {boolean} [fQuiet] (true for quiet parsing)
* @return {number|undefined} numeric value, or undefined if sExp contains any undefined or invalid values
*/
parseExpression(sExp, fPrint) {
parseExpression(sExp, fQuiet)
{
var value;
/*
* First process (and eliminate) any references, aka sub-expressions.
*/
if (sExp) sExp = this.parseReference(sExp);
this.sUndefined = null;
if (sExp) {
var i = 0;
var fError = false;
var sExpOrig = sExp;
var aVals = [], aOps = [];
/*
* The default grouping characters for sub-expressions are braces; they can be changed by altering
* achGroup, but when that happens, instead of changing our regular expressions and operator tables,
* we simply replace all achGroup characters with braces in the given expression.
*
* Why not just always use parentheses for sub-expressions? Because some debuggers use parseReference()
* to perform parenthetical value replacements in message strings, and they don't want parentheses taking
* on a different meaning. And for some machines, like the PDP-10, the convention is to use parentheses
* for indexed addressing and angle brackets for sub-expressions.
*/
if (this.achGroup[0] != '{') {
sExp = sExp.split(this.achGroup[0]).join('{').split(this.achGroup[1]).join('}');
}
/*
* All browsers (including, I believe, IE9 and up) support the following idiosyncrasy of a RegExp split():
* when the RegExp uses a capturing pattern, the resulting array will include entries for all the pattern
* matches along with the non-matches. This effectively means that, in the set of expressions that we
* support, all even entries in asValues will contain "values" and all odd entries will contain "operators".
*
* Although I starting listing the operators in the RegExp in "precedential" order, that's not important;
* Although I started listing the operators in the RegExp in "precedential" order, that's not important;
* what IS important is listing operators than contain shorter operators first. For example, bitwise
* shift operators must be listed BEFORE the logical less-than or greater-than operators.
*
* Finally, to better accommodate MACRO-10 syntax, I've replaced the single '^' for XOR with '^^', since
* Also, to better accommodate MACRO-10 syntax, I've replaced the single '^' for XOR with '^^', since
* MACRO-10 uses prefixes like "^D", "^O" and "^B" with numeric constants to indicate a base override, and
* I've added '!' as an alias for '|' to perform bitwise inclusive-or.
*
* The MACRO-10 binary shifting suffix ('B') is a bit more problematic, since a capital B can also appear
* inside symbols. So I pre-scan for that operator and replace non-symbolic occurrences with an internal
* operator ('><').
*
* Note that Str.parseInt(), which parseValue() relies on, supports both the MACRO-10 base prefix overrides
* and the binary shifting suffix. But since the B suffix can also be a bracketed expression, we have to
* support it here as well.
*
* MACRO-10 supports only a subset of all the PCjs operators; for example, MACRO-10 doesn't support bitwise
* exclusive-or, shift operators, or any of the boolean logical/compare operators. But unless we run into
* conflicts, I prefer sticking with this common set of operators.
*
* WARNING: Whenever you make changes to this RegExp, make sure you update aBinOpPrecedence as needed, too.
*/
var regExp = /(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/;
var regExp = /(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/;
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2><");
var asValues = sExp.split(regExp);
while (i < asValues.length) {
var sValue = asValues[i++];
var cchValue = sValue.length;
var s = Str.trim(sValue);
if (!s) {
fError = true;
break;
}
var v = this.parseValue(s, null, fPrint === false);
if (v === undefined) {
fError = true;
fPrint = false;
break;
}
aVals.push(this.truncate(v, this.nBits));
if (i == asValues.length) break;
var sOp = asValues[i++], cchOp = sOp.length;
this.assert(Debugger.aBinOpPrecedence[sOp] != null);
if (aOps.length && Debugger.aBinOpPrecedence[sOp] < Debugger.aBinOpPrecedence[aOps[aOps.length-1]]) {
this.evalOps(aVals, aOps, 1);
}
aOps.push(sOp);
sExp = sExp.substr(cchValue + cchOp);
}
if (!this.evalOps(aVals, aOps) || aVals.length != 1) {
fError = true;
}
if (!fError) {
value = aVals.pop();
if (fPrint) this.printValue(null, value);
} else {
if (fPrint) this.println("error parsing '" + sExpOrig + "' at character " + (sExpOrig.length - sExp.length));
value = this.parseArray(asValues, 0, asValues.length, this.nBase, fQuiet);
if (value !== undefined && fQuiet === false) {
this.printValue(null, value);
}
}
return value;
@ -629,7 +808,8 @@ class Debugger extends Component {
* @param {string} s
* @return {string|undefined}
*/
parseReference(s) {
parseReference(s)
{
var a;
var chOpen = this.achGroup[0];
var chClose = this.achGroup[1];
@ -677,7 +857,8 @@ class Debugger extends Component {
* @param {string} s
* @return {string}
*/
parseSysVars(s) {
parseSysVars(s)
{
var a;
while (a = s.match(/\$([a-z]+)/i)) {
var v = null;
@ -693,15 +874,17 @@ class Debugger extends Component {
}
/**
* parseValue(sValue, sName, fQuiet)
* parseValue(sValue, sName, fQuiet, fNegate)
*
* @this {Debugger}
* @param {string|undefined} sValue
* @param {string|null} [sName] is the name of the value, if any
* @param {boolean} [fQuiet]
* @param {boolean} [fNegate]
* @return {number|undefined} numeric value, or undefined if sValue is either undefined or invalid
*/
parseValue(sValue, sName, fQuiet) {
parseValue(sValue, sName, fQuiet, fNegate)
{
var value;
if (sValue != null) {
var iReg = this.getRegIndex(sValue);
@ -710,11 +893,16 @@ class Debugger extends Component {
} else {
value = this.getVariable(sValue);
if (value == null) {
value = Str.parseInt(sValue, this.nBase);
value = Str.parseInt(fNegate? ('-' + sValue) : sValue, this.nBase);
fNegate = false;
}
}
if (value == null && !fQuiet) {
this.println("invalid " + (sName? sName : "value") + ": " + sValue);
if (value != null) {
if (fNegate) value = -value;
} else {
if (!fQuiet) {
this.println("invalid " + (sName? sName : "value") + ": " + sValue);
}
}
} else {
if (!fQuiet) {
@ -732,7 +920,8 @@ class Debugger extends Component {
* @param {number|undefined} value
* @return {boolean} true if value defined, false if not
*/
printValue(sVar, value) {
printValue(sVar, value)
{
var sValue;
var fDefined = false;
if (value !== undefined) {
@ -753,7 +942,8 @@ class Debugger extends Component {
* @this {Debugger}
* @return {Object}
*/
resetVariables() {
resetVariables()
{
var a = this.aVariables;
this.aVariables = {};
return a;
@ -765,7 +955,8 @@ class Debugger extends Component {
* @this {Debugger}
* @param {Object} a (from previous resetVariables() call)
*/
restoreVariables(a) {
restoreVariables(a)
{
this.aVariables = a;
}
@ -776,7 +967,8 @@ class Debugger extends Component {
* @param {string} [sVar]
* @return {boolean} true if all value(s) defined, false if not
*/
printVariable(sVar) {
printVariable(sVar)
{
if (sVar) {
return this.printValue(sVar, this.aVariables[sVar]);
}
@ -794,7 +986,8 @@ class Debugger extends Component {
* @this {Debugger}
* @param {string} sVar
*/
delVariable(sVar) {
delVariable(sVar)
{
delete this.aVariables[sVar];
}
@ -805,7 +998,8 @@ class Debugger extends Component {
* @param {string} sVar
* @return {number|undefined}
*/
getVariable(sVar) {
getVariable(sVar)
{
return this.aVariables[sVar];
}
@ -816,7 +1010,8 @@ class Debugger extends Component {
* @param {string} sVar
* @param {number} value
*/
setVariable(sVar, value) {
setVariable(sVar, value)
{
this.aVariables[sVar] = value;
}
@ -830,7 +1025,8 @@ class Debugger extends Component {
* @param {number} [nBits] (-1 to strip leading zeros, 0 to allow a variable number of digits)
* @return {string}
*/
toStrBase(n, nBits = 0) {
toStrBase(n, nBits = 0)
{
var s;
switch(this.nBase) {
case 8:
@ -873,7 +1069,10 @@ if (DEBUGGER) {
'+': 8, // addition
'%': 9, // remainder
'/': 9, // division
'*': 9 // multiplication
'*': 9, // multiplication
'><': 10, // internal binary shift operator (MACRO-10-style; converted from a 'B' suffix)
'{': 11, // open sub-expression (achGroup[0] default)
'}': 11 // close sub-expression (achGroup[1] default)
};
/*

View file

@ -66,8 +66,8 @@ class Str {
* allowed; we remove them all before calling the built-in parseInt().
*
* More recently, we've added support for "^D", "^O", and "^B" prefixes to accommodate the base overrides
* that the PDP-10's MACRO-10 assembly language supports. If this support turns out to adversely affect
* other debuggers, then it will have to be "conditionalized".
* that the PDP-10's MACRO-10 assembly language supports (decimal, octal, and binary, respectively).
* If this support turns out to adversely affect other debuggers, then it will have to be "conditionalized".
*
* To summarize our non-standard alternatives: a 'y' suffix indicates binary, a '#' prefix indicates
* octal, a '$' prefix indicates hex, and a "0b" prefix indicates binary IF at least one comma is present.
@ -149,13 +149,37 @@ class Str {
if (chSuffix == null) s = s.substr(0, s.length - 1);
}
}
var v;
/*
* This adds support for the MACRO-10 binary shifting (Bn) suffix, which must be stripped from the
* number before parsing, and then applied to the value after parsing. If n is omitted, 35 is assumed,
* which is a net shift of zero. If n < 35, then a left shift of (35 - n) is required; if n > 35, then
* a right shift of -(35 - n) is required.
*/
var v, shift = 0;
var match = s.match(/(-?[0-9]+)B([0-9]*)/);
if (match) {
s = match[1];
shift = 35 - ((match[2] || 35) & 0xff);
}
if (Str.isValidInt(s, base) && !isNaN(v = parseInt(s, base))) {
/*
* With the need to support larger (eg, 36-bit) integers, truncating to 32 bits is no longer helpful.
*
* value = v|0;
*/
if (shift) {
/*
* Since binary shifting is a logical operation, and since shifting by division only works properly
* with positive numbers, we must convert a negative value to a positive value, by computing the two's
* complement.
*/
if (v < 0) v += Math.pow(2, 36);
if (shift > 0) {
v *= Math.pow(2, shift);
} else {
v = Math.trunc(v / Math.pow(2, -shift));
}
}
value = v;
}
}

View file

@ -35,37 +35,38 @@ var ha=ea[ea.length-1],ia=da[ha],ka=ia?ia:function(a){a=Number(a);if(isNaN(a)||I
var m={Be:0,Ee:1,Fe:2,Ge:3,He:4,Ie:5,Je:6,Ke:7,Le:8,Me:9,Ne:10,Oe:11,Pe:12,Qe:13,Re:14,Se:15,Te:16,Ue:17,Ve:18,We:19,Xe:20,Ye:21,Ze:22,$e:23,af:24,bf:25,cf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ab:65,Ub:66,Vb:67,Fb:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Hb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87,
wc:88,xc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,ud:98,xd:99,d:100,e:101,Bd:102,Dd:103,Ed:104,Fd:105,Od:106,k:107,Pd:108,Rd:109,n:110,Sd:111,p:112,q:113,r:114,oe:115,t:116,pe:117,qe:118,re:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,df:127},la={59:186,61:187,173:189,224:91};
function ma(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function oa(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}
function pa(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return oa(a,8,b,c?"0o":"")}function n(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}function qa(a){return n(a,2,!0)}function q(a){return n(a,4,!0)}function ra(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ta(){var a=va();return-1!==a.indexOf("pcjs.org",a.length-8)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}function ya(a,b){return(a+" ").slice(0,b)}function Aa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ca={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function Da(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ea(){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 Fa(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}
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function oa(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return oa(a,8,b,c?"0o":"")}function n(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}
function qa(a){return n(a,2,!0)}function q(a){return n(a,4,!0)}function ra(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ta(){var a=va();return-1!==a.indexOf("pcjs.org",a.length-8)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}function ya(a,b){return(a+" ").slice(0,b)}
function Aa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ca={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function Da(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Ea(){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 Fa(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 Ga(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",p;for(p in b)b.hasOwnProperty(p)&&(k&&(k+="&"),k+=p+"="+encodeURIComponent(b[p]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ha(a,b){var c,d={ka:null,ra:null,Qa:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.ka=e;else if(e=g.words)for(d.ka=Array(2*e.length),f=c=0;c<e.length;c++)d.ka[f++]=e[c]&255,d.ka[f++]=e[c]>>8&255;else if(e=g.longs)for(d.ka=Array(4*e.length),f=c=0;c<e.length;c++)d.ka[f++]=
e[c]&255,d.ka[f++]=e[c]>>8&255,d.ka[f++]=e[c]>>16&255,d.ka[f++]=e[c]>>24&255;else(e=g.data)?d.Mf=e:d.ka=g;d.ka&&(d.ka.length?1==d.ka.length&&(r(d.ka[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ka=e)}return d}
function Ha(a,b){var c,d={la:null,ra:null,Qa:null,Ja:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ja=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
e[c]&255,d.la[f++]=e[c]>>8&255,d.la[f++]=e[c]>>16&255,d.la[f++]=e[c]>>24&255;else(e=g.data)?d.Mf=e:d.la=g;d.la&&(d.la.length?1==d.la.length&&(r(d.la[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.la=e)}return d}
function va(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ia(){return window?window.navigator.userAgent:""}function Ja(){if(null==Ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ka=a}return Ka}function La(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Pa(a){if(window){var b=Ia();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function Qa(a){if(!Ra){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ra=c}return Ra[a]}
function Sa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function Ta(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Ua(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}
function Va(a){Wa.init.push(a)}function Xa(a){if(Ya)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){bb("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function cb(a){!Ya&&a?(Ya=!0,db&&eb("init"),fb&&eb("show")):Ya=a}function eb(a){Wa[a]&&Xa(Wa[a])}var Ra=null,Wa={init:[],show:[],exit:[]},db=!1,fb=!1,Ya=!0,Ka=null;Ua("onload",function(){db=!0;Xa(Wa.init)});Ua("onpageshow",function(){fb=!0;Xa(Wa.show)});
Ua(Pa("Opera")||Pa("iOS")?"onunload":"onbeforeunload",function(){Xa(Wa.exit)});function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ua=null;gb.push(this)}
function hb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function jb(){return Date.now()||+new Date}function bb(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function kb(a){var b=!1;window&&(b=window.confirm(a));return b}function lb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<gb.length;b++){var d=gb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function mb(a){if(void 0!==a){var b;for(b=0;b<gb.length;b++)if(gb[b].id===a)return gb[b]}return null}
function hb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function jb(){return Date.now()||+new Date}function bb(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function kb(a){var b=!1;window&&(b=window.confirm(a));return b}function lb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<gb.length;b++){var d=gb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function nb(a){if(void 0!==a){var b;for(b=0;b<gb.length;b++)if(gb[b].id===a)return gb[b]}return null}
function ob(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<gb.length;d++)if(c)c==gb[d]&&(c=null);else if(!(a!=gb[d].type||b&&gb[d].id.indexOf(b)))return gb[d]}return null}function pb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function qb(a,b){b=rb(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=pb(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),k=h.length}}}}
function qb(a,b){b=rb(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=pb(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}
function rb(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 sb(a){for(var b=!0,c=tb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){sb(a)}}());var g=wb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=ob(d[1],a);if(h)if(g=xb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete tb[a];return b}l=t.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ua=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.da=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ua=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.cb+": "+a)};l.aa=function(a,b,c){bb(a,b,c||this.type)};function yb(a,b){a.G.error=!0;a.aa(b)}function zb(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function Ab(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function Bb(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function Cb(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
l.wa=function(){return this.G.ja=!0};l.va=function(a,b){b&&(this.G.ja=!1);return!0};function Db(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function Eb(a,b){a.K&&Db(a,0)&&a.K.message(b,void 0)}function x(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Fb(a.K,a,b,c,d,e,f,g))}
l.wa=function(){return this.G.ja=!0};l.va=function(a,b){b&&(this.G.ja=!1);return!0};function Db(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function Eb(a,b){a.K&&Db(a,0)&&a.K.message(b,void 0)}function y(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Fb(a.K,a,b,c,d,e,f,g))}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ib=window?window.PCjs.Machines:{},gb=window?window.PCjs.Components:[],tb=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],wb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},xb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Gb="undefined"!==typeof ArrayBuffer,Hb=[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],Ib={cpu:1,bus:64,mem:128,port:256,nvr:16384,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};function Jb(a){t.call(this,"Panel",a)}aa(Jb,t);
Jb.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:t.prototype.ca.call(this,a,b,c,d)};Jb.prototype.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Kb(a,"Keyboard")};Jb.prototype.wa=function(a,b){b||Lb();return!0};Jb.prototype.va=function(){return!0};
function Lb(){for(var a=!1,b=rb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=pb(d),f=mb(e.id);f||(a=!0,f=new Jb(e));qb(f,d);a&&Ab(f)}}Va(Lb);
Jb.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.u&&this.u.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:t.prototype.da.call(this,a,b,c,d)};Jb.prototype.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Kb(a,"Keyboard")};Jb.prototype.wa=function(a,b){b||Lb();return!0};Jb.prototype.va=function(){return!0};
function Lb(){for(var a=!1,b=rb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=pb(d),f=nb(e.id);f||(a=!0,f=new Jb(e));qb(f,d);a&&Ab(f)}}Va(Lb);
function Mb(a,b,c){t.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Pb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;Ab(this)}aa(Mb,t);Mb.prototype.reset=function(){};
Mb.prototype.wa=function(a,b){b||this.reset();return!0};function Qb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],k=g*a.w,p=a.w-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-k);p>f&&(p=f);h.pb=e-h.J+p;e=k+a.w;f-=p;g++;continue}}return Rb(Sb,e,f)}e=new z(e,p,a.w,d);Pb(e,a.K,h);a.b[g++]=e;e=k+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Tb[d]+" at "+q(b)),!0):Rb(Ub,b,c)}
function Vb(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Wb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.I].Ya(0,b+1)<<8}function Xb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.I].ob(0,b+1)<<8}function Yb(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Zb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.I].$a(0,c>>8&255,b+1))}
@ -77,28 +78,28 @@ function z(a,b,c,d){this.id=vc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;
l.save=function(){var a,b;if(Gb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ea=!0}return!1};function yc(a,b){b||(b=Cc);Dc(a,b,void 0);Ec(a,b,void 0)}function Dc(a,b,c){c&&a.H||(a.Ya=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.ob=b[0]||a.Gc,a.Nb=b[2]||a.Ic}
function Ec(a,b,c){c&&a.P||(a.$a=!a.u&&b[1]||a.rb,a.Kc=!a.u&&b[3]||a.Rb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Sb=b[3]||a.Rb}l.Pa=function(a,b){b?this.P++||Ec(this,Fc,!1):this.H++||Dc(this,Fc,!1)};function Gc(a,b){b?--a.P||(a.$a=a.u?a.rb:a.qb,a.Kc=a.u?a.Rb:a.Sb):--a.H||(a.Ya=a.ob,a.Hc=a.Nb)}function Pb(a,b,c){a.K=b;a.H=a.P=0;c&&((a.H=c.H)&&Dc(a,Fc,!1),(a.P=c.P)&&Ec(a,Fc,!1))}l.Gc=function(){this.K&&Db(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.rb=function(a,b){this.K&&Db(this.K,129)&&this.K.message("attempt to write "+q(b)+" to invalid block %"+n(this.J),!0)};l.Ic=function(a,b){return this.Ya(a++,b++)|this.Ya(a,b)<<8};l.Rb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(a,b>>8,c)};l.ie=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.me=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};l.ve=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ea=!0};
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,1,c.I)&&c.ea(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,2,c.I)&&c.ea(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,1,d.w)&&d.ea(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,2,d.w)&&d.ea(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ue=function(a,b){this.g[a]=b;this.Ea=!0};l.we=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ea=!0};var wc=0,xc=2,Tb=["NONE","RAM","ROM","VID","H/W"],vc=0,Cc=[],Bc=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],Fc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(Gb)var Ac=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],zc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function Ic(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.la=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Ab(this)}aa(Ic,t);l=Ic.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<Jc.length;b++)(c=this.P[Jc[b]])&&this.R.ca(null,Jc[b],c);this.W=Kb(a,"ChipSet");a=Kc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);Ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Nc(a),a.fa&&(b=a.fa,a.fa=null,Oc(a,b))):this.i("No debugger detected")}Pc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Mc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.za&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.za-a.ma)}function Qc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Rc(a)&&(a.na=a.sa=-1,Mc(a),a.da(),c=!0);c&&a.i(Rc(a)+" cycles: checksum="+n(a.xa))}}
l.ca=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=lb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.la?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Sc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Tc(a,b,c){a.ma+=b;c&&(a.fa=a.b=0)}function Uc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Vc);a.Na=Math.floor(a.Aa/Vc*c);b||(a.ta=a.Na);a.Va=0}function Rc(a){return a.ma+a.X+a.fa-a.b}function Lc(a){a.Y=0;a.kb=0;a.ma=a.X=a.fa=a.b=0;Mc(a);Sc(a,1)}
function Sc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Tc(a,a.X);a.X=0;a.V=jb();a.ea=0;Uc(a);return d}function Wc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Xc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Yc(a))}function Yc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Cb(this,!0)){if(!this.G.la){Sc(this);this.R&&this.R.start(this.V,Rc(this));this.G.la=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Zc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Uc(this,!0);this.Da=0;this.Ma=jb();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Yc(this,!0);
this.Da+=c;this.X+=c;Qc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=ld&&(this.R&&Zc(this.R),this.kb=0);break}}while(this.G.la)}catch(k){this.da();Pc(this);this.R&&this.R.stop(jb(),Rc(this));Cb(this,!1);yb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ea=jb();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ma=0,Sc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ea+=e;c(d,e)}else Pc(this),this.R&&this.R.stop(jb(),Rc(this))};l.Eb=function(){return 0};l.da=function(a){Bb(this,!0);Yc(this);Tc(this,this.X);this.X=0;if(this.G.la){this.G.la=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Pc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)md(c.A[d],b);Zc(a.R,b)}}var Vc=30,ld=15,Jc=["power","reset"];
function nd(a){var b=+a.model||8080;Ic.call(this,a,1E6);this.xb=b;this.gb=od;Lc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.La=[];this.hb=0;pd(this)}aa(nd,Ic);function qd(a,b){a.La.push(b)}l=nd.prototype;l.reset=function(){this.G.la&&this.da();pd(this);Lc(this);this.G.error=!1;Ic.prototype.reset.call(this)};function pd(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);rd(a,0);a.S=0}function sd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+td(this)|0};l.save=function(){var a=new ud(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,td(this)]);a.set(1,[this.S,this.ma,this.U]);a.set(2,$b(this.H));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);rd(this,b[9]);b=a[1];this.S=b[0];this.ma=b[1];Sc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.ca=function(a,b,c){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.P[b]=c;this.ib++;a=!0;break;default:a=Ic.prototype.ca.call(this,a,b,c)}return a};function vd(a){return a.w<<8|a.A}function wd(a,b){a.w=b>>8&255;a.A=b&255}function xd(a){return a.B<<8|a.C}function yd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function Ic(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.ma=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Ab(this)}aa(Ic,t);l=Ic.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<Jc.length;b++)(c=this.P[Jc[b]])&&this.R.da(null,Jc[b],c);this.W=Kb(a,"ChipSet");a=Kc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);Ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Nc(a),a.na&&(b=a.na,a.na=null,Oc(a,b))):this.i("No debugger detected")}Pc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Mc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.ya&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.ya-a.ka)}function Qc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Rc(a)&&(a.na=a.sa=-1,Mc(a),a.ea(),c=!0);c&&a.i(Rc(a)+" cycles: checksum="+n(a.xa))}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=lb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.ea():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Sc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Tc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Uc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Vc);a.Na=Math.floor(a.Aa/Vc*c);b||(a.ta=a.Na);a.Va=0}function Rc(a){return a.ka+a.X+a.fa-a.b}function Lc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Mc(a);Sc(a,1)}
function Sc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Tc(a,a.X);a.X=0;a.V=jb();a.ba=0;Uc(a);return d}function Wc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Xc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Yc(a))}function Yc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Cb(this,!0)){if(!this.G.ma){Sc(this);this.R&&this.R.start(this.V,Rc(this));this.G.ma=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Zc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Uc(this,!0);this.Da=0;this.Ma=jb();this.ba&&(a=this.Ma-this.ba,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Yc(this,!0);
this.Da+=c;this.X+=c;Qc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=ld&&(this.R&&Zc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.ea();Pc(this);this.R&&this.R.stop(jb(),Rc(this));Cb(this,!1);yb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ba=jb();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ba-this.Ma;if(f=this.ba-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Sc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ba+=e;c(d,e)}else Pc(this),this.R&&this.R.stop(jb(),Rc(this))};l.Eb=function(){return 0};l.ea=function(a){Bb(this,!0);Yc(this);Tc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Pc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)md(c.A[d],b);Zc(a.R,b)}}var Vc=30,ld=15,Jc=["power","reset"];
function nd(a){var b=+a.model||8080;Ic.call(this,a,1E6);this.xb=b;this.gb=od;Lc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.Ha=[];this.hb=0;pd(this)}aa(nd,Ic);function qd(a,b){a.Ha.push(b)}l=nd.prototype;l.reset=function(){this.G.ma&&this.ea();pd(this);Lc(this);this.G.error=!1;Ic.prototype.reset.call(this)};function pd(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);rd(a,0);a.S=0}function sd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+td(this)|0};l.save=function(){var a=new ud(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,td(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,$b(this.H));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);rd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Sc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=function(a,b,c){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.P[b]=c;this.ib++;a=!0;break;default:a=Ic.prototype.da.call(this,a,b,c)}return a};function vd(a){return a.w<<8|a.A}function wd(a,b){a.w=b>>8&255;a.A=b&255}function xd(a){return a.B<<8|a.C}function yd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function zd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function Ad(a){return a.I&256?1:0}function Bd(a,b){a.I=a.I&255|b}function Cd(a){return Hb[a.L&255]?4:0}function Dd(a){return(a.L^a.O)&16?16:0}function Ed(a){return a.I&255?0:64}function Fd(a){return a.L&128?128:0}function td(a){return a.N&-214|Fd(a)|Ed(a)|Dd(a)|Cd(a)|Ad(a)}function rd(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function Gd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function Hd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function Id(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function Jd(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function Kd(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function Ld(a,b){return a.L=a.I=a.O=a.g|b}function Md(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
function Nd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Od(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Pd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Wb(a.H,a.j);A(a,a.j+2);return b}function Qd(a){var b=Wb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Zb(a.H,a.M,b)}
function Rd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Yc(a),!1):!0}function Sd(a,b){a.S|=1<<b;a.N&512&&Yc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(yb(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.la||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Td(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.fa=this.b=a;if(Rd(this)){do{if(b){if(Ud(this.K,this.j,c)){this.da();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Va(function(){for(var a=rb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new nd(d);qb(d,c)}});function Vd(){this.b-=4}function Wd(){A(this,G(this));this.b-=10}
function Rd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Yc(a),!1):!0}function Sd(a,b){a.S|=1<<b;a.N&512&&Yc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(yb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.G.ma||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Td(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.fa=this.b=a;if(Rd(this)){do{if(b){if(Ud(this.K,this.j,c)){this.ea();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Va(function(){for(var a=rb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new nd(d);qb(d,c)}});function Vd(){this.b-=4}function Wd(){A(this,G(this));this.b-=10}
function Xd(){A(this,Qd(this));this.b-=10}function Yd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var od=[Vd,function(){wd(this,G(this));this.b-=10},function(){Pd(this,vd(this),this.g);this.b-=7},function(){wd(this,vd(this)+1);this.b-=5},function(){this.w=Kd(this,this.w);this.b-=5},function(){this.w=Jd(this,this.w);this.b-=5},function(){this.w=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;Bd(this,a&256);this.b-=4},Vd,function(){var a;zd(this,a=D(this)+vd(this));Bd(this,a>>8&256);this.b-=10},function(){this.g=E(this,vd(this));this.b-=7},function(){wd(this,vd(this)-1);this.b-=
5},function(){this.A=Kd(this,this.A);this.b-=5},function(){this.A=Jd(this,this.A);this.b-=5},function(){this.A=F(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;Bd(this,a);this.b-=4},Vd,function(){yd(this,G(this));this.b-=10},function(){Pd(this,xd(this),this.g);this.b-=7},function(){yd(this,xd(this)+1);this.b-=5},function(){this.B=Kd(this,this.B);this.b-=5},function(){this.B=Jd(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
@ -109,8 +110,8 @@ Kd(this,this.F);this.b-=5},function(){this.F=Jd(this,this.F);this.b-=5},function
5},function(){this.w=this.F;this.b-=5},function(){this.w=E(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.D;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=E(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.w;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B=
this.C;this.b-=5},function(){this.B=this.D;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=E(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.w;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D=
this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;this.b-=5},function(){this.F=this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;
this.b-=5},function(){Pd(this,D(this),this.w);this.b-=7},function(){Pd(this,D(this),this.A);this.b-=7},function(){Pd(this,D(this),this.B);this.b-=7},function(){Pd(this,D(this),this.C);this.b-=7},function(){Pd(this,D(this),this.D);this.b-=7},function(){Pd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Yc(this);this.K&&Db(this,-2147483648)?(A(this,a),this.K.da()):this.N&512||(this.K&&A(this,a),
this.da())},function(){Pd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Gd(this,this.w);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,
this.b-=5},function(){Pd(this,D(this),this.w);this.b-=7},function(){Pd(this,D(this),this.A);this.b-=7},function(){Pd(this,D(this),this.B);this.b-=7},function(){Pd(this,D(this),this.C);this.b-=7},function(){Pd(this,D(this),this.D);this.b-=7},function(){Pd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.Ha.length)for(var b=0;b<this.Ha.length;b++)if(this.Ha[b](a))return;this.b-=7;this.S|=256;Yc(this);this.K&&Db(this,-2147483648)?(A(this,a),this.K.ea()):this.N&512||(this.K&&A(this,a),
this.ea())},function(){Pd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Gd(this,this.w);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,
this.C);this.b-=4},function(){this.g=Gd(this,this.D);this.b-=4},function(){this.g=Gd(this,this.F);this.b-=4},function(){this.g=Gd(this,E(this,D(this)));this.b-=7},function(){this.g=Gd(this,this.g);this.b-=4},function(){this.g=Hd(this,this.w);this.b-=4},function(){this.g=Hd(this,this.A);this.b-=4},function(){this.g=Hd(this,this.B);this.b-=4},function(){this.g=Hd(this,this.C);this.b-=4},function(){this.g=Hd(this,this.D);this.b-=4},function(){this.g=Hd(this,this.F);this.b-=4},function(){this.g=Hd(this,
E(this,D(this)));this.b-=7},function(){this.g=Hd(this,this.g);this.b-=4},function(){this.g=Md(this,this.w);this.b-=4},function(){this.g=Md(this,this.A);this.b-=4},function(){this.g=Md(this,this.B);this.b-=4},function(){this.g=Md(this,this.C);this.b-=4},function(){this.g=Md(this,this.D);this.b-=4},function(){this.g=Md(this,this.F);this.b-=4},function(){this.g=Md(this,E(this,D(this)));this.b-=7},function(){this.g=Md(this,this.g);this.b-=4},function(){this.g=Nd(this,this.w);this.b-=4},function(){this.g=
Nd(this,this.A);this.b-=4},function(){this.g=Nd(this,this.B);this.b-=4},function(){this.g=Nd(this,this.C);this.b-=4},function(){this.g=Nd(this,this.D);this.b-=4},function(){this.g=Nd(this,this.F);this.b-=4},function(){this.g=Nd(this,E(this,D(this)));this.b-=7},function(){this.g=Nd(this,this.g);this.b-=4},function(){this.g=Id(this,this.w);this.b-=4},function(){this.g=Id(this,this.A);this.b-=4},function(){this.g=Id(this,this.B);this.b-=4},function(){this.g=Id(this,this.C);this.b-=4},function(){this.g=
@ -123,19 +124,19 @@ Ad(this)||A(this,a);this.b-=10},function(){var a=F(this);hc(this.H,a,this.g,this
11},function(){H(this,D(this));this.b-=11},function(){this.g=Id(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){Cd(this)&&(A(this,Qd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);Cd(this)&&A(this,a);this.b-=10},function(){var a=D(this);zd(this,xd(this));yd(this,a);this.b-=5},function(){var a=G(this);Cd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Od(this,F(this));this.b-=7},function(){H(this,
this.j);A(this,40);this.b-=11},function(){Fd(this)||(A(this,Qd(this)),this.b-=6);this.b-=5},function(){var a=Qd(this);rd(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Fd(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Fd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,td(this)&255|this.g<<8);this.b-=11},function(){this.g=Ld(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){Fd(this)&&
(A(this,Qd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Fd(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Rd(this)},function(){var a=G(this);Fd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Yd,function(){Md(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Zd(a){t.call(this,"ChipSet",a,32768);var b=a.model;b&&!$d[b]&&bb("Unrecognized ChipSet model: "+b);this.g=$d[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Ab(this)}aa(Zd,t);l=Zd.prototype;l.ca=function(){return!1};
function Zd(a){t.call(this,"ChipSet",a,32768);var b=a.model;b&&!$d[b]&&bb("Unrecognized ChipSet model: "+b);this.g=$d[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Ab(this)}aa(Zd,t);l=Zd.prototype;l.da=function(){return!1};
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=Kb(a,"Keyboard");this.C=Kb(a,"SerialPort");this.video=Kb(a,"Video");bc(b,this,this.g.Bb);gc(b,this,this.g.Cb);if(d){var e=this;ae(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(e.j[b]);e.K.i(a)})}};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
l.save=function(){var a=new ud(this);switch(this.g.pa){case be.pa:a.set(0,[this.ea,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case be.pa:return this.ea=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ea;x(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;x(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.fa;x(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;x(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){x(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){x(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){x(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){x(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){x(this,a,b,c,"WATCHDOG",null,!0)};function ce(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Md=function(a,b){var c=this.D,c=c&~J.ya.jc;if((Rc(this.u)&64)<<1&&(c|=J.ya.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ja.nd:break;case J.Ba.Ja.Lc:this.M=this.M<<1|d;break;case J.Ba.Ja.Rc:d=ce(this);this.j[d]=J.Ba.vb;Eb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ja.Mc:this.b=this.b<<1|d;break;case J.Ba.Ja.rd:d=ce(this);e=this.b&J.Ba.vb;this.j[d]=e;Eb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ja.ld:d=ce(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Eb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ja.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Eb(this,"doNVRCommand(): unrecognized command "+qa(e))}}c&=~J.ya.kc;this.S&&(c|=J.ya.kc);c&=~J.ya.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Rc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.ya.dc);c&=~J.ya.sc;this.C&&this.C.ia&de&&(c|=J.ya.sc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.W=b};l.de=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){x(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Eb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?md(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
l.be=function(a,b,c){x(this,a,b,c,"DC011");b&J.Ka.kd?(b&=J.Ka.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.Ka.oc?50:60,Eb(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ka.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.Ka.Wb?132:80,b=this.video,Eb(b,"updateDimensions("+a+","+(80<a&&this.D&J.ya.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,ee(b)&&fe(b))))};
var be={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,ya:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ka:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ja:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
l.save=function(){var a=new ud(this);switch(this.g.pa){case be.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case be.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ba;y(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;y(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.fa;y(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;y(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){y(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){y(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){y(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){y(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){y(this,a,b,c,"WATCHDOG",null,!0)};function ce(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Md=function(a,b){var c=this.D,c=c&~J.za.jc;if((Rc(this.u)&64)<<1&&(c|=J.za.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ka.nd:break;case J.Ba.Ka.Lc:this.M=this.M<<1|d;break;case J.Ba.Ka.Rc:d=ce(this);this.j[d]=J.Ba.vb;Eb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ka.Mc:this.b=this.b<<1|d;break;case J.Ba.Ka.rd:d=ce(this);e=this.b&J.Ba.vb;this.j[d]=e;Eb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ka.ld:d=ce(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Eb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ka.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Eb(this,"doNVRCommand(): unrecognized command "+qa(e))}}c&=~J.za.kc;this.S&&(c|=J.za.kc);c&=~J.za.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Rc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.za.dc);c&=~J.za.sc;this.C&&this.C.ia&de&&(c|=J.za.sc);this.D=c;y(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){y(this,a,b,c,"BRIGHTNESS");this.W=b};l.de=function(a,b,c){y(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){y(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Eb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?md(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
l.be=function(a,b,c){y(this,a,b,c,"DC011");b&J.La.kd?(b&=J.La.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.La.oc?50:60,Eb(a,"updateRate("+b+")"),a.jb=b))):(b&=J.La.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.La.Wb?132:80,b=this.video,Eb(b,"updateDimensions("+a+","+(80<a&&this.D&J.za.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,ee(b)&&fe(b))))};
var be={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,za:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},La:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ka:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},$d={SI1978:be,VT100:J};be.INIT=[[be.pd.bb,be.Oa.bb,be.qd.bb,0,0,0,0]];
J.INIT=[[J.Oc.INIT,J.ya.ic|J.ya.dd],[J.Ka.Uc,J.Ka.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
J.INIT=[[J.Oc.INIT,J.za.ic|J.za.dd],[J.La.Uc,J.La.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];be.Bb={0:Zd.prototype.Jd,1:Zd.prototype.Kd,2:Zd.prototype.Ld,3:Zd.prototype.Id};
be.Cb={2:Zd.prototype.Wd,3:Zd.prototype.Yd,4:Zd.prototype.Xd,5:Zd.prototype.Zd,6:Zd.prototype.$d};J.Bb={66:Zd.prototype.Md};J.Cb={66:Zd.prototype.ae,98:Zd.prototype.de,162:Zd.prototype.ce,194:Zd.prototype.be};Va(function(){for(var a=rb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Zd(d);qb(d,c)}});
function ge(a){t.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=ra(this.j);if(this.j){a=this.j;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){he(c,a,b,f)})}}aa(ge,t);ge.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ie(this)};
@ -144,12 +145,12 @@ function he(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")")
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ma(b[e],16);ie(a)}}
function ie(a){if(!zb(a))if(!a.j)Ab(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.g,8,!0)+")");else{var b;b=a.A;if(Qb(a.H,b,a.g,xc)){var c;for(c=0;c<a.b.length;c++)Yb(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}Ab(a)}}Va(function(){for(var a=rb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new ge(d);qb(d,c)}});
function je(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=ra(this.b);if(this.b){a=this.b;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.eb,a,b),(a=Ha(a,b))?(c.g=a.ka,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,ke(c))})}}aa(je,t);
function je(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ja=a.exec;this.j=!1;this.b=a.file;this.B=ra(this.b);if(this.b){a=this.b;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.eb,a,b),(a=Ha(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ja&&(c.Ja=a.Ja)):c.b=null,ke(c))})}}aa(je,t);
je.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ke(this)};je.prototype.wa=function(){return!0};je.prototype.va=function(){return!0};
function ke(a){!a.j&&a.A&&Qb(a.H,a.w,a.A,1)&&(a.j=!0);if(!zb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Yb(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==le){for(c=0;c<me.length;c++)Yb(a.H,me[c],118);qd(a.u,function(a){return function(b){if(0<=me.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ne)switch(c=!0,d.A){case oe:pe(a,String.fromCharCode(d.C));break;case Le:for(var k=xd(d),p="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}pe(a,p);break;default:c=!1}c?Xd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}sd(a.u,a.Ia)}delete a.g}Ab(a)}}je.prototype.reset=function(){};function pe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var ne=5,oe=2,Le=9,le=256,me=[0,ne];Va(function(){for(var a=rb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new je(d);qb(d,c)}});
function ke(a){!a.j&&a.A&&Qb(a.H,a.w,a.A,1)&&(a.j=!0);if(!zb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Yb(a.H,b+c,a.g[c]);if(null!==a.Ja){if(a.Ja==le){for(c=0;c<me.length;c++)Yb(a.H,me[c],118);qd(a.u,function(a){return function(b){if(0<=me.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ne)switch(c=!0,d.A){case oe:Ke(a,String.fromCharCode(d.C));break;case Le:for(var k=xd(d),p="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}Ke(a,p);break;default:c=!1}c?Xd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}sd(a.u,a.Ja)}delete a.g}Ab(a)}}je.prototype.reset=function(){};function Ke(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var ne=5,oe=2,Le=9,le=256,me=[0,ne];Va(function(){for(var a=rb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new je(d);qb(d,c)}});
function Me(a){t.call(this,"Keyboard",a,65536);(a=a.model)&&!Ne[a]&&bb("Unrecognized Keyboard8080 model: "+a);this.b=Ne[a]||{};this.reset();Ab(this)}aa(Me,t);l=Me.prototype;
l.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Pa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Oe(d,16,!0,!0):Oe(d,16,!1),Oe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pe(d,a,!0)},c.onkeyup=function(a){return Pe(d,a,!1)}):(c.onkeydown=function(a){return Qe(d,a,!0)},
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Pa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Oe(d,16,!0,!0):Oe(d,16,!1),Oe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pe(d,a,!0)},c.onkeyup=function(a){return Pe(d,a,!1)}):(c.onkeydown=function(a){return Qe(d,a,!0)},
c.onkeyup=function(a){return Qe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Re|Se)||(d.g|=Se,Oe(d,20,!0),Te(d)):a>=m.yc&&a<=m.z&&d.g&Se&&(d.g&=~Se,Oe(d,20,!1),Te(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ue(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ve:20==b&&(e=Se);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";We(a,b,d)}Oe(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Wc(this.u,function(){Xe(e)});this.W=Kb(a,"ChipSet");this.C=Kb(a,"SerialPort");bc(b,this,this.b.Bb);gc(b,this,this.b.Cb)};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new ud(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
@ -158,146 +159,147 @@ function We(a,b,c,d){var e=0;switch(b){case 16:e=d?Ze:$e;break;case 17:e=d?af:Ve
function Qe(a,b,c){var d=!0,e=b.keyCode,e=la[e]||e;c=We(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(ff|gf)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|gf:a.g&~gf)),d=Oe(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|hf)&&b.preventDefault&&b.preventDefault());return d}
function Pe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Sa[e],g;if(g=f){a:{for(var h in a.b.sb)if(a.b.sb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Oe(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Oe(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&Xe(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<jf)return a.j[e].yb=!0,Xe(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=be.Oa.ed;break;case "2p":d=be.Oa.jd;break;case "coin":d=be.Oa.Pc;break;case "left":d=be.Oa.gd;break;case "right":d=be.Oa.hd;break;case "fire":d=be.Oa.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function Xe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=jf-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Oe(a,d,!1);b=0;continue}}b++}0<=c&&Xc(a.u,a.L,c)}l.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Sd(this.u,1));x(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ee=function(a,b,c){x(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Rc(this.u);Te(this,b&K.Ca.ec);b&K.Ca.od&&(this.w=0,Sd(this.u,1))};var Ze=1,$e=2,Re=3,af=4,Ve=8,hf=12,bf=16,cf=32,ff=48,df=64,ef=128,Se=512,gf=4096,jf=50,kf={};kf[m.ab]=37;kf[m.Fb]=39;kf[m.Hb]=32;
b))}return!0}function Xe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=jf-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Oe(a,d,!1);b=0;continue}}b++}0<=c&&Xc(a.u,a.L,c)}l.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Sd(this.u,1));y(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ee=function(a,b,c){y(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Rc(this.u);Te(this,b&K.Ca.ec);b&K.Ca.od&&(this.w=0,Sd(this.u,1))};var Ze=1,$e=2,Re=3,af=4,Ve=8,hf=12,bf=16,cf=32,ff=48,df=64,ef=128,Se=512,gf=4096,jf=50,kf={};kf[m.ab]=37;kf[m.Fb]=39;kf[m.Hb]=32;
var Ye={pa:1978.1,Sa:{},sb:{},Tb:kf,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.mc]=5,M[m.lc]=6,M[m.xc]=7,M[m.qc]=8,M[m.uc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.ac]=22,M[m.rc]=23,M[m.nc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]=74,M[104]=80,M[2013]=81,M[98]=82,M[97]=83,M[222]=85,M[186]=86,M[m.bc]=87,M[m.$b]=88,M[m.Fb]=89,M[m.pc]=90,M[110]=96,M[116]=97,M[101]=98,M[100]=99,M[13]=100,M[190]=101,M[188]=102,M[m.hc]=103,M[m.Ub]=104,M[m.wc]=105,M[119]=106,M[105]=112,M[99]=113,M[102]=114,M[109]=115,M[191]=117,M[m.gc]=118,M[m[" "]]=119,M[m.tc]=120,M[m.Vb]=121,M[m.wb]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),sb:(N[m.p]=5,N[m.Sd]=6,N[m.y]=7,N[m.t]=
8,N[m.re]=9,N[m.q]=10,N[m["]"]]=20,N[m["["]]=21,N[m.Fd]=22,N[m.pe]=23,N[m.r]=24,N[m.e]=25,N[m["1"]]=26,N[m["`"]]=36,N[m["-"]]=37,N[m["9"]]=38,N[m["7"]]=39,N[m["4"]]=40,N[m["3"]]=41,N[m["="]]=52,N[m["0"]]=53,N[m["8"]]=54,N[m["6"]]=55,N[m["5"]]=56,N[m["2"]]=57,N[m["\\"]]=69,N[m.Pd]=70,N[m.k]=71,N[m.Dd]=72,N[m.Bd]=73,N[m.yc]=74,N[m["'"]]=85,N[m[";"]]=86,N[m.Od]=87,N[m.Ed]=88,N[m.d]=89,N[m.oe]=90,N[13]=100,N[m["."]]=101,N[m[","]]=102,N[m.n]=103,N[m.ud]=104,N[m.x]=105,N[m["/"]]=117,N[m.Rd]=118,N[m.qe]=
120,N[m.xd]=121,N[m.z]=122,N[m.mc]=133,N[m.lc]=134,N[m.xc]=135,N[m.qc]=136,N[m.uc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.ac]=150,N[m.rc]=151,N[m.nc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Fb]=217,N[m.pc]=218,N[m[">"]]=
229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ca:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ca.bd,l3:K.Ca.ad,l2:K.Ca.$c,l1:K.Ca.Zc,locked:K.Ca.cd,local:K.Ca.fc,online:~K.Ca.fc,"caps-lock":Se};var Ne={SI1978:Ye,VT100:K};
K.INIT=[[K.Ca.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:Me.prototype.Nd};K.Cb={130:Me.prototype.ee};Va(function(){for(var a=rb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Me(d);qb(d,c)}});
function lf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.ma=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.La=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Qa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
function lf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.ka=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.Ha=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Qa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){of(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){of(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=sa(this.S)&&(this.S=va()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ga(this.S,null,!0,function(a,b,c){pf(f,a,b,c)});this.Aa={}}aa(lf,t);
function ee(a){a.C=a.O*a.ga;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Qb(a.H,a.ma,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.jb=60,a.za=!1,a.fa=Array(a.O));
return!0}l=lf.prototype;l.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;ee(this);if(this.B=Kb(a,"Keyboard")){for(var e in this.Aa)this.B.ca("led",e,this.Aa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Wc(this.u,function(){md(f)});Xc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||Ab(this)};
function pf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{hb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ea=f,fe(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&Ab(a)}}
function fe(a){a.ea&&(a.Na=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ba),xf(a,a.ga,a.ba,a.za)],a.T[yf]=[xf(a,2*a.ga,a.ba),xf(a,2*a.ga,a.ba,a.za)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ba),xf(a,2*a.ga,2*a.ba,a.za)])}
function xf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,k={ga:b,ba:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,B=v;v<a.ba;v++)for(var y=u*e+(f+v&e-1),y=d&&8==v?255:a.ea[y],w=0;w<c/a.ba;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Bf(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
function ee(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Qb(a.H,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.jb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=lf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;ee(this);if(this.B=Kb(a,"Keyboard")){for(var e in this.Aa)this.B.da("led",e,this.Aa[e]);this.F&&this.B.da(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Wc(this.u,function(){md(f)});Xc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||Ab(this)};
function pf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{hb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,fe(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&Ab(a)}}
function fe(a){a.ba&&(a.Na=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ca),xf(a,a.ga,a.ca,a.ya)],a.T[yf]=[xf(a,2*a.ga,a.ca),xf(a,2*a.ga,a.ca,a.ya)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ca),xf(a,2*a.ga,2*a.ca,a.ya)])}
function xf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,B=v;v<a.ca;v++)for(var x=u*e+(f+v&e-1),x=d&&8==v?255:a.ba[x],w=0;w<c/a.ca;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=x&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Bf(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(u&15)*b,(u>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new ud(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
function of(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Eb(a,"notifyFullScreen("+b+")")}function qf(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Bf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==sf&&(208<=c&&236>c?e=a.X+tf:28<=c&&72>c&&(e=a.X+uf));a=a.U[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 md(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Sd(a.u,2),c=!1):Sd(a.u,1):Sd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.ma>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Xc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ma,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=wf&&(B>>=1);;){var y=Vb(a.H,u++);if((y&Cf)==Cf){var w=Vb(a.H,u++),d=w&Df,c=(w&Ef)<<8|Vb(a.H,u),c=c+(w&Ff?
Gf:Hf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!u||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.ga,fc=y.ba;C?(L=B*w.ga,ja=e*w.ba,ua=w.ga,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ba>w.ba&&(v==Af&&(T+=w.ba),fc=w.ba);C?C.drawImage(y.canvas,za,T,Ma,fc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,fc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.ma;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Xb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Bf(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
function md(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Sd(a.u,2),c=!1):Sd(a.u,1):Sd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Xc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=wf&&(B>>=1);;){var x=Vb(a.H,u++);if((x&Cf)==Cf){var w=Vb(a.H,u++),d=w&Df,c=(w&Ef)<<8|Vb(a.H,u),c=c+(w&Ff?
Gf:Hf);break}if(p<B)a.fa[p++]=x;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){x=a.fa[B];if(!u||x!==a.A[g]){a.A[k=g]=x;var w=a,C=a.ta,T=x&127;if(x=w.T[v][x&128?1:0]){var za=(T&15)*x.ga,T=(T>>4)*x.ca,L,ja,ua,na,Ma=x.ga,fc=x.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.Ha,ja=e*w.Ma,ua=w.Ha,na=w.Ma);x.ga>w.ga&&(L*=2,ua*=2);x.ca>w.ca&&(v==Af&&(T+=w.ca),fc=w.ca);C?C.drawImage(x.canvas,za,T,Ma,fc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(x.canvas,
za,T,Ma,fc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Xb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(x=a.hb;x--;)za=w>>C&B,Bf(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var tf=0,uf=1,rf=2,nf=0,sf=1,vf=2,mf={SI1978:sf,VT100:vf},wf=96,yf=64,zf=32,Af=0,Cf=127,Ef=15,Ff=16,Df=96,Gf=8192,Hf=16384;
Va(function(){for(var a=rb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=pb(c),e=document.createElement("canvas");if(!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<=Ia().indexOf("MSIE")&&(c.onresize=function(a,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||Qa("aspect"));f&&.3<=f&&3.33>=f&&(Ua("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");Pa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new lf(d,e,g,f,c);qb(d,c)}});
function If(a){t.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Jf;b&&(void 0===c&&(c="Panel"),(c=ob(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(If,t);l=If.prototype;l.ca=function(a,b,c,d){var e=this;switch(b){case Jf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Kf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Kf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
function If(a){t.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Jf;b&&(void 0===c&&(c="Panel"),(c=ob(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(If,t);l=If.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case Jf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Kf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Kf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Wc(this.u,function(){e.Ob()});this.Z=Wc(this.u,function(){Ue(e)});this.W=Kb(a,"ChipSet");bc(b,this,Lf,this.U);gc(b,this,Mf,this.U);Ab(this)};
l.Fc=function(a){if(!this.b){var b=Kc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Aa(c[0]);if(d!=this.cb)return;c=Aa(c[1]);if(this.b=mb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.Fc=function(a){if(!this.b){var b=Kc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Aa(c[0]);if(d!=this.cb)return;c=Aa(c[1]);if(this.b=nb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.wa=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){Nf(this)};l.save=function(){var a=new ud(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Nf(this,a[0])};
function Nf(a,b){var c=0;b||(b=Of);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Pf(a,b){var c=a.L&b;b&15||(c>>=4);b=Qf[c];c=((a.B&Rf)>>2)+6;a.B&Sf&&c++;c+=((a.B&Tf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Kf(a,b){Eb(a,"receiveByte("+qa(b)+"), status="+qa(a.ia));return a.N||a.ia&Uf?!1:(a.M=b,a.ia|=Uf,Sd(a.u,a.X),!0)}
l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Kf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Xc(this.u,this.Y,Pf(this,Vf)));return!0};l.ne=function(a){this.ia&=~Wf;a&64&&(this.ia|=Wf)};function Ue(a,b){a.ia=a.ia|de|Xf;b&&a.Ra&&a.Ra.call(a.b,b)}l.Hd=function(a,b){var c=this.M;x(this,a,null,b,"DATA",c);this.ia&=~Uf;return c};l.Gd=function(a,b){var c=this.ia;x(this,a,null,b,"STATUS",c);return c};
l.Vd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(de|Xf);Eb(this,"transmitByte("+qa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=ya("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Xc(this.u,this.Z,Pf(this,Yf))};l.Ud=function(a,b,c){x(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Zf|$f)&&(a=0,this.D?(a|=b&Zf?32:0,a|=b&$f?320:0):(a|=b&Zf?16:0,a|=b&$f?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&ag&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){x(this,a,b,c,"BAUDRATES");this.L=b};
l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Kf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Xc(this.u,this.Y,Pf(this,Vf)));return!0};l.ne=function(a){this.ia&=~Wf;a&64&&(this.ia|=Wf)};function Ue(a,b){a.ia=a.ia|de|Xf;b&&a.Ra&&a.Ra.call(a.b,b)}l.Hd=function(a,b){var c=this.M;y(this,a,null,b,"DATA",c);this.ia&=~Uf;return c};l.Gd=function(a,b){var c=this.ia;y(this,a,null,b,"STATUS",c);return c};
l.Vd=function(a,b,c){y(this,a,b,c,"DATA");this.O=b;this.ia&=~(de|Xf);Eb(this,"transmitByte("+qa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=ya("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Xc(this.u,this.Z,Pf(this,Yf))};l.Ud=function(a,b,c){y(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Zf|$f)&&(a=0,this.D?(a|=b&Zf?32:0,a|=b&$f?320:0):(a|=b&Zf?16:0,a|=b&$f?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&ag&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){y(this,a,b,c,"BAUDRATES");this.L=b};
var Rf=12,Sf=16,Tf=192,$f=2,Zf=32,ag=64,de=1,Uf=2,Xf=4,Wf=128,Vf=15,Yf=240,Qf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Of=[!1,0,0,133,142,39,238],Jf="buffer",Lf={0:If.prototype.Hd,1:If.prototype.Gd},Mf={0:If.prototype.Vd,1:If.prototype.Ud,2:If.prototype.Td};Va(function(){for(var a=rb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new If(d);qb(d,c)}});
function bg(a){t.call(this,"Debugger",a);this.sa=+a.base||16;this.na=["{","}"];this.Z=["[","]"];this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(bg,t);bg.prototype.Kb=function(){return-1};bg.prototype.Lb=function(){};
function bg(a){t.call(this,"Debugger",a);this.M=+a.base||16;this.oa=null;this.W=["{","}"];this.fa=["[","]"];this.O=this.ba=this.C=0;this.L=!1;this.b=-1;this.g=[];this.T={}}aa(bg,t);bg.prototype.Kb=function(){return-1};bg.prototype.Lb=function(){};
bg.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Aa(a.substring(d,f))),d=f+1}}return b};
function cg(a){var b,c=a;b=32;if(32>=b)c=a|0;else if(b=Math.pow(2,b-1),a<-b||a>=b)c=a%b;a!=c&&(a=c);return a}
function dg(a,b,c){for(c=void 0===c?-1:c;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 "!":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(cg(d))}return!0}
function eg(a,b,c){var d;b&&(b=fg(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],p=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,u=Aa(u);if(!u){f=!0;break}u=gg(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(cg(u));if(e==p.length)break;var u=p[e++],B=u.length;k.length&&hg[u]<hg[k[k.length-1]]&&dg(h,k,1);k.push(u);b=b.substr(v+B)}dg(h,k)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),
c&&ig(a,null,d))}return d}
function fg(a,b){var c,d=a.na[0],e=a.na[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=eg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?jg(a,g):"undefined")}if(a.Z.length)for(d=a.Z[0],e=a.Z[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.N-
a.Y}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=ma(b,a.sa))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function ig(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==k||isNaN(k),y=p=p||u;0<u--;)y||(v=","+v,y=p),v=(B?"?":k&1?"1":"0")+v,k>>=1,y--;g=v+g;d>>=8}d=n(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function kg(a,b){if(b)return ig(a,b,a.S[b]);var c=0;for(b in a.S)ig(a,b,a.S[b]),c++;return 0<c}function jg(a,b){var c;c=void 0===c?0:c;switch(a.sa){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var hg={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function lg(a){bg.call(this,a);this.style=mg;this.F=ng();this.oa=ng();this.O=ng();this.A=[];this.j=this.I=this.w=[];og(this);this.W=0;pg(this);this.ea={};qg(this,a.messages);this.fa=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Oc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Oc(b,a)})}aa(lg,bg);l=lg.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Kc(a,"messages"))&&qg(this,a);this.ma=rg;ae(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=sg(tg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Tb[c],u&&d.i(n(u.id)+" %"+n(e<<d.H.g)+" %%"+n(u.J)+" "+q(u.pb)+" "+
function cg(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function dg(a,b,c){for(c=void 0===c?-1:c;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=Math.trunc(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 "!":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;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(cg(d))}return!0}
function eg(a,b,c,d,e,f){var g,h,k,p=!1,u=!1,v=[],B=[],x=a.M;for(a.M=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)u=fg(a,h,null,f,u);else if("{"==k){h=1;for(u=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;u=eg(a,b,u,c-1,a.M,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){p=!0;break}u=!0;continue}if(void 0===u)if(null==a.oa&&f)a.oa=h,u=0;else{p=!0;f=!f;break}v.push(cg(u));if(!k)break;B.length&&gg[k]<gg[B[B.length-1]]&&dg(v,B,1);B.push(k);a.M="><"==k?10:e;u=!1}dg(v,
B)&&1==v.length||(p=!0);p?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.M=x;return g}function hg(a,b,c){var d;a.oa=null;b&&("{"!=a.W[0]&&(b=b.split(a.W[0]).join("{").split(a.W[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=eg(a,b,0,b.length,a.M,c),void 0!==d&&!1===c&&ig(a,null,d));return d}
function jg(a,b){var c,d=a.W[0],e=a.W[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=hg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?kg(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.O-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function fg(a,b,c,d,e){var f;null!=b?(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.T[b],null==f&&(f=ma(e?"-"+b:b,a.M),e=!1)),null!=f?e&&(f=-f):d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return f}
function ig(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==k||isNaN(k),x=p=p||u;0<u--;)x||(v=","+v,x=p),v=(B?"?":k&1?"1":"0")+v,k>>=1,x--;g=v+g;d>>=8}d=n(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function lg(a,b){if(b)return ig(a,b,a.T[b]);var c=0;for(b in a.T)ig(a,b,a.T[b]),c++;return 0<c}function kg(a,b){var c;c=void 0===c?0:c;switch(a.M){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var gg={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
function mg(a){bg.call(this,a);this.style=ng;this.F=og();this.ta=og();this.S=og();this.A=[];this.j=this.I=this.w=[];pg(this);this.X=0;qg(this);this.ka={};rg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Oc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Oc(b,a)})}aa(mg,bg);l=mg.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Kc(a,"messages"))&&rg(this,a);this.sa=sg;ae(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=tg(ug(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Tb[c],u&&d.i(n(u.id)+" %"+n(e<<d.H.g)+" %%"+n(u.J)+" "+q(u.pb)+" "+
q(u.size)+" "+p),c!=wc&&(c=-1),p=0);a+=d.H.w;e++}}});Ab(this)};
l.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Oc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Ta(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Oc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Bb(d,!0)||(Cb(d,!0),b=ug(d,a?1:0),Cb(d,!1));return b}),!0}return!1};l.Za=function(){this.U&&this.U.focus()};function sg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ha=function(a,b){var c=255,d=sg(a);-1!==d&&(c=Vb(this.H,d),b&&vg(a,b));return c};l.Gb=function(a,b){var c=65535,d=sg(a);-1!==d&&(c=Xb(this.H,d),b&&vg(a,b));return c};l.Xb=function(a,b,c){var d=sg(a);-1!==d&&(Yb(this.H,d,b),c&&vg(a,c),Pc(this.u,!0))};
l.Qc=function(a,b,c){var d=sg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&vg(a,c);Pc(this.u,!0)}};function ng(a){return{J:a,Fa:!1}}function wg(a){return[a.J,a.Fa]}function Ug(a){return{J:a[0],Fa:a[1]}}
function tg(a,b,c){var d;c=(c?a.F:a.oa).J;if(void 0!==b){d=b=fg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=ng(d));break}}if(d=e)return d;c=eg(a,b,void 0)}null!=c&&(d=ng(c));return d}function Wg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function vg(a,b){null!=a.J&&(a.J+=b||1)}function Xg(a){return n(a,4)}
function Yg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ha(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function qg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Ib)0<=Fa(b,c)&&(a.ha|=Ib[c],a.i(c+" messages enabled"))}function ae(a,b,c){for(var d in Ib)if(b==Ib[d]){a.ea[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Fa(Zg,a):(c=Fa(Zg,a.substr(b,2)),0>c&&(c=Fa(Zg,a.substr(b,1))));return c};function $g(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case ah:case bh:case ch:case dh:case eh:case fh:case gh:case hh:c=2;break;case ih:case jh:case kh:case lh:case mh:case nh:case oh:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case ah:b=c.g;break;case bh:b=c.w;break;case ch:b=c.A;break;case ih:b=vd(c);break;case dh:b=c.B;break;case eh:b=c.C;break;case jh:b=xd(c);break;case fh:b=c.D;break;case gh:b=c.F;break;case kh:b=D(c);break;case hh:b=E(c,D(c));break;case lh:b=c.M;break;case mh:b=c.j;break;case nh:b=td(c);break;case oh:b=td(c)&255|c.g<<8}}return b};
function ph(a,b){b=fg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+$g(a,e)+b.substr(c+1+Zg[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(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=tg(a,e))?(d=e+' "'+Yg(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=tg(a,e))?(vg(d),d=
e+' "'+Yg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Xg(ng(this.u.j).J));this.ha&1073741824?this.X.push(a):this.V&&a==this.V||(this.V=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Yc(a),a.ta=0,Pc(a)))};
function Fb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+qa(d):"")+")"+(null!=g?": "+qa(g):"")+(null!=e?" at "+Xg(e):""))}
function pg(a){var b;if(Td(a)){if(!a.D||!a.D.length){a.D=Array(qh);for(b=0;b<a.D.length;b++)a.D[b]=ng();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function rh(a,b){if(!sh(a))return!1;a.u.tb(b);return!0}
function ug(a,b,c,d){if(!sh(a))return!1;a.C=0;b||Td(a)&&Ud(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Tc(a.u,e,!0),Qc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,yb(a.u,f.stack||f.message))}!1!==d&&Pc(a.u);Nc(a,c||!1);return 0<a.C}l.da=function(a){this.u&&this.u.da(a)};function Nc(a,b){void 0===b&&(b=!0);a.F=ng(a.u.j);b&&1!=a.M?th(a):uh(a)}
function sh(a){var b;if(b=a.u&&zb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Bb(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){pg(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=ng(this.u.j);this.G.la=!1;vh(this);a||Nc(this)};
l.save=function(){var a=new ud(this);a.set(0,wg(this.F));a.set(1,wg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=Ug(a[b++]),this.O=Ug(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.M||this.i("running");this.G.la=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.G.la){this.G.la=!1;this.C=b-this.Aa;if(!this.M){b="stopped";if(this.C){a-=this.za;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Td(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Nc(this,!0);this.Za();vh(this,this.u.j)}};function Td(a){return 1<a.j.length||!!a.W}
function Ud(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||Hc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Vb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Fa=!1,++a.T==a.D.length&&(a.T=0)));return!1}function dc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.da(!0)}function ic(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.da(!0)}
function og(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;Gc(d.b[sg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,Gc(d.b[sg(c)>>>d.g],!0);a.w=["bw"];a.ta=0}l.Pa=function(a,b,c){var d=!0;c||wh(this,a,b,!1,!0);if(a!=this.j){var e=sg(b);if(-1===e)this.i("invalid address: "+Xg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Fa=!0:(xh(this,a,a.length-1,"set"),pg(this)));return d};
function wh(a,b,c,d,e){var f=!1;c=sg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==sg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||xh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,Gc(d.b[c>>>d.g],b==a.w));h.Fa||pg(a);break}}return f}function yh(a,b){for(var c=1;c<b.length;c++)xh(a,b,c);return b.length-1}function xh(a,b,c,d){c=b[c];a.i(b[0]+" "+Xg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function vh(a,b){if(void 0!==b)Hc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!wh(a,a.j,c,!0))break;b=0}}}
function Hc(a,b,c,d,e){var f=!1;if(!a.ta++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=sg(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Fa&&(wh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!zh(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.la||(f=!0)}if(f){e||xh(a,d,g,"hit");break}}}a.ta--;return f}
function Ah(a,b,c,d){for(var e=ng(b.J),f=a.Ha(b,1),g=a.ma[f],h="",k=(a.style!=Bh?Ch:Dh)[g[0]],p=g.length-1,u=Eh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==mg)){var w=v&Fh;if(w){var C=v&Gh;C?u=C:v|=u;v&Hh||(v|=1==B?Ih:Jh);if(w&P)a:{y=a;w=v;C=b;switch(w&Gh){case Q:C=n(y.Ha(C,1),2);break;case Kh:C=n(y.Ha(C,1)<<24>>24,4);break;case Lh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Bh&&w&Mh?C="["+C+"]":w&Nh||(C=(y.style==mg?"$":"0x")+C);y=C}else w&Nh?(y=(v&Oh)>>8,
w=Zg[y],a.style==Bh&&v&Mh&&(y==hh&&(w="HL"),w="["+w+"]"),y=w):w&Ph&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Xg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ha(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=ya(f,10);g+=v&Qh?"*":" ";g+=ya(k,7);h&&(g+=" "+h);c&&(g=ya(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Rc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Rh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Fd(a.u);break;case "ZF":a=Ed(a.u);break;case "AF":a=Dd(a.u);break;case "PF":a=Cd(a.u);break;case "CF":a=Ad(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Sh(a,b){return Zg[b]+"="+$g(a,b)+" "}function Th(a){return Sh(a,ah)+Sh(a,ih)+Sh(a,jh)+Sh(a,kh)+Sh(a,lh)+Rh(a,"IF")+Rh(a,"SF")+Rh(a,"ZF")+Rh(a,"AF")+Rh(a,"PF")+Rh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Uh(a,b,c){var d=[],e=sg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Da(f.zc,[e-g],a.Ac);0<=e?Vh(a,b,e,d):c&&(e=~e,Vh(a,b,e-1,d),Vh(a,b,e,d));break}}return d}function Vh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Wh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Bh?Ch:Dh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.ma[f][0]]+" ").substr(0,5)+" ("+qa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Xh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return kg(a)||a.i("no variables"),!0;if(!c[2])return kg(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=eg(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Yh(a,b,c){var d=null;if(b=tg(a,b,!0)){var e=Uh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Xg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+Xg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Zh(a,b){switch(b[1]){case "8080":a.style=mg;break;case "8086":a.style=Bh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Mc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Sc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Oc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Ta(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";Oc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Bb(d,!0)||(Cb(d,!0),b=vg(d,a?1:0),Cb(d,!1));return b}),!0}return!1};l.Za=function(){this.V&&this.V.focus()};function tg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ia=function(a,b){var c=255,d=tg(a);-1!==d&&(c=Vb(this.H,d),b&&wg(a,b));return c};l.Gb=function(a,b){var c=65535,d=tg(a);-1!==d&&(c=Xb(this.H,d),b&&wg(a,b));return c};l.Xb=function(a,b,c){var d=tg(a);-1!==d&&(Yb(this.H,d,b),c&&wg(a,c),Pc(this.u,!0))};
l.Qc=function(a,b,c){var d=tg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&wg(a,c);Pc(this.u,!0)}};function og(a){return{J:a,Fa:!1}}function xg(a){return[a.J,a.Fa]}function Vg(a){return{J:a[0],Fa:a[1]}}
function ug(a,b,c){var d;c=(c?a.F:a.ta).J;if(void 0!==b){d=b=jg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=og(d));break}}if(d=e)return d;c=hg(a,b)}null!=c&&(d=og(c));return d}function Xg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function wg(a,b){null!=a.J&&(a.J+=b||1)}function Yg(a){return n(a,4)}
function Zg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function rg(a,b){a.K=a;a.ha=a.wd=536870912;a.Y=null;a.Z=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Ib)0<=Fa(b,c)&&(a.ha|=Ib[c],a.i(c+" messages enabled"))}function ae(a,b,c){for(var d in Ib)if(b==Ib[d]){a.ka[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Fa($g,a):(c=Fa($g,a.substr(b,2)),0>c&&(c=Fa($g,a.substr(b,1))));return c};function ah(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case bh:case ch:case dh:case eh:case fh:case gh:case hh:case ih:c=2;break;case jh:case kh:case lh:case mh:case nh:case oh:case ph:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case bh:b=c.g;break;case ch:b=c.w;break;case dh:b=c.A;break;case jh:b=vd(c);break;case eh:b=c.B;break;case fh:b=c.C;break;case kh:b=xd(c);break;case gh:b=c.D;break;case hh:b=c.F;break;case lh:b=D(c);break;case ih:b=E(c,D(c));break;case mh:b=c.M;break;case nh:b=c.j;break;case oh:b=td(c);break;case ph:b=td(c)&255|c.g<<8}}return b};
function qh(a,b){b=jg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+ah(a,e)+b.substr(c+1+$g[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(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=ug(a,e))?(d=e+' "'+Zg(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=ug(a,e))?(wg(d),d=
e+' "'+Zg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Yg(og(this.u.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Yc(a),a.ta=0,Pc(a)))};
function Fb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+qa(d):"")+")"+(null!=g?": "+qa(g):"")+(null!=e?" at "+Yg(e):""))}
function qg(a){var b;if(Td(a)){if(!a.D||!a.D.length){a.D=Array(rh);for(b=0;b<a.D.length;b++)a.D[b]=og();a.U=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.U=0,a.D=[],a.B=[]}function sh(a,b){if(!th(a))return!1;a.u.tb(b);return!0}
function vg(a,b,c,d){if(!th(a))return!1;a.C=0;b||Td(a)&&Ud(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Tc(a.u,e,!0),Qc(a.u,e),a.O++)}catch(f){"number"!=typeof f&&(a.C=0,yb(a.u,f.stack||f.message))}!1!==d&&Pc(a.u);Nc(a,c||!1);return 0<a.C}l.ea=function(a){this.u&&this.u.ea(a)};function Nc(a,b){void 0===b&&(b=!0);a.F=og(a.u.j);b&&1!=a.N?uh(a):vh(a)}
function th(a){var b;if(b=a.u&&zb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Bb(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){qg(this);this.O=this.ba=0;this.Y=null;this.C=0;this.F=og(this.u.j);this.G.ma=!1;wh(this);a||Nc(this)};
l.save=function(){var a=new ud(this);a.set(0,xg(this.F));a.set(1,xg(this.S));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=Vg(a[b++]),this.S=Vg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.N||this.i("running");this.G.ma=!0;this.Aa=a;this.Da=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.C=b-this.Da;if(!this.N){b="stopped";if(this.C){a-=this.Aa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Td(this)&&(b+=this.O+" opcodes, ",this.ba-=this.O,this.O=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Nc(this,!0);this.Za();wh(this,this.u.j)}};function Td(a){return 1<a.j.length||!!a.X}
function Ud(a,b,c){var d=a.u;if(0<c&&(a.X&&!--a.X||Hc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.O++,b=Vb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.U],b.J=d.j,b.Fa=!1,++a.U==a.D.length&&(a.U=0)));return!1}function dc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function ic(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function pg(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;Gc(d.b[tg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,Gc(d.b[tg(c)>>>d.g],!0);a.w=["bw"];a.xa=0}l.Pa=function(a,b,c){var d=!0;c||xh(this,a,b,!1,!0);if(a!=this.j){var e=tg(b);if(-1===e)this.i("invalid address: "+Yg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Fa=!0:(yh(this,a,a.length-1,"set"),qg(this)));return d};
function xh(a,b,c,d,e){var f=!1;c=tg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==tg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||yh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,Gc(d.b[c>>>d.g],b==a.w));h.Fa||qg(a);break}}return f}function zh(a,b){for(var c=1;c<b.length;c++)yh(a,b,c);return b.length-1}function yh(a,b,c,d){c=b[c];a.i(b[0]+" "+Yg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function wh(a,b){if(void 0!==b)Hc(a,b,1,a.j,!0),a.N=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!xh(a,a.j,c,!0))break;b=0}}}
function Hc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=tg(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Fa&&(xh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!Ah(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||yh(a,d,g,"hit");break}}}a.xa--;return f}
function Bh(a,b,c,d){for(var e=og(b.J),f=a.Ia(b,1),g=a.sa[f],h="",k=(a.style!=Ch?Dh:Eh)[g[0]],p=g.length-1,u=Fh,v,B=1;B<=p;B++){var x="";v=g[B];if(void 0!==v&&!(v&O&&a.style==ng)){var w=v&Gh;if(w){var C=v&Hh;C?u=C:v|=u;v&Ih||(v|=1==B?Jh:Kh);if(w&P)a:{x=a;w=v;C=b;switch(w&Hh){case Q:C=n(x.Ia(C,1),2);break;case Lh:C=n(x.Ia(C,1)<<24>>24,4);break;case Mh:C=n(x.Gb(C,2),4);break;default:x="imm("+q(w)+")";break a}x.style==Ch&&w&Nh?C="["+C+"]":w&Oh||(C=(x.style==ng?"$":"0x")+C);x=C}else w&Oh?(x=(v&Ph)>>8,
w=$g[x],a.style==Ch&&v&Nh&&(x==ih&&(w="HL"),w="["+w+"]"),x=w):w&Qh&&(x=(f>>3&7).toString());if(!x||!x.length){h="INVALID";break}0<h.length&&(h+=",");h+=x||"???"}}}f="";g=Yg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ia(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=ya(f,10);g+=v&Rh?"*":" ";g+=ya(k,7);h&&(g+=" "+h);c&&(g=ya(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Rc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Sh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Fd(a.u);break;case "ZF":a=Ed(a.u);break;case "AF":a=Dd(a.u);break;case "PF":a=Cd(a.u);break;case "CF":a=Ad(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Th(a,b){return $g[b]+"="+ah(a,b)+" "}function Uh(a){return Th(a,bh)+Th(a,jh)+Th(a,kh)+Th(a,lh)+Th(a,mh)+Sh(a,"IF")+Sh(a,"SF")+Sh(a,"ZF")+Sh(a,"AF")+Sh(a,"PF")+Sh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Vh(a,b,c){var d=[],e=tg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Da(f.zc,[e-g],a.Ac);0<=e?Wh(a,b,e,d):c&&(e=~e,Wh(a,b,e-1,d),Wh(a,b,e,d));break}}return d}function Wh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Xh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Ch?Dh:Eh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.sa[f][0]]+" ").substr(0,5)+" ("+qa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Yh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return lg(a)||a.i("no variables"),!0;if(!c[2])return lg(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=hg(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Zh(a,b,c){var d=null;if(b=ug(a,b,!0)){var e=Vh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Yg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+Yg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function $h(a,b){switch(b[1]){case "8080":a.style=ng;break;case "8086":a.style=Ch;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Mc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Sc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function th(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=eg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=ng(d.j);break;case "PS":rd(d,f);break;case "PSW":rd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?Cd(d)||(d.L^=1):Cd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?Fd(d)||(d.L^=192):Fd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Pc(d);a.i("updated registers:")}a.i(Th(a));c&&(a.F=ng(d.j),uh(a,Xg(a.F.J)))}}function $h(a,b){b=Aa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(ph(a,c[2])):eg(a,b,!0)}function ai(a,b,c){var d="t"!=b;c=gg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Cb(a,!0)&&ug(a,e,d,!1)},function(){Pc(a.u);Cb(a,!1)})}
function uh(a,b,c,d){if(b=tg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=tg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Bb(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Uh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Ah(a,b,g,f);a.i(f);a.F=b;e-=b.J-k;c++}}}
function uh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=hg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=og(d.j);break;case "PS":rd(d,f);break;case "PSW":rd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?Cd(d)||(d.L^=1):Cd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?Fd(d)||(d.L^=192):Fd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Pc(d);a.i("updated registers:")}a.i(Uh(a));c&&(a.F=og(d.j),vh(a,Yg(a.F.J)))}}function ai(a,b){b=Aa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(qh(a,c[2])):hg(a,b,!1)}function bi(a,b,c){var d="t"!=b;c=fg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Cb(a,!0)&&vg(a,e,d,!1)},function(){Pc(a.u);Cb(a,!1)})}
function vh(a,b,c,d){if(b=ug(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ug(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Bb(a,!1)||a.N?a.C:null;var g=null!=f?"cycles":null,h=Vh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Bh(a,b,g,f);a.i(f);a.F=b;e-=b.J-k;c++}}}
l.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Aa(a.substring(d,f))),d=f+1}}return b};
function zh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Xg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(zb(a)&&0<b.length){a.L&&(b="a "+Xg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var u=tg(a,f[1],!0);if(u)if(a.O=
u,void 0===f[2])a.i("begin assemble at "+Xg(u.J)),a.L=!0,Pc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(Ah(a,a.O))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+yh(a,a.j);za+=yh(a,a.I);(za+=yh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=gg(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=ng();if("*"!=w&&(L=tg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(og(a),a.i("all breakpoints cleared")):wh(a,a.j,L)||wh(a,a.I,L)||wh(a,a.w,L)||a.i("breakpoint missing: "+Xg(L.J)):
"i"==T?a.i("breakpoint "+(ac(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(ec(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Wg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],fc=f[3];if("?"==na){var Nb="";for(ja in Ib)a.ea[ja]&&(Nb&&(Nb+=","),Nb+=ja);Nb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var qe=bi(a.R,!0);"console"==Ma?console.log(qe):(a.ua&&(a.ua.value=""),qe&&a.i(qe))}else if("symbols"==na)for(var re=0;re<a.A.length;re++){var se=a.A[re],Ob;for(Ob in se.ra)if("."!=Ob.charAt(0)){var xg=se.ra[Ob].o;if(void 0!==xg){var yg=se.ra[Ob].l;yg&&(Ob=yg);a.i(Xg(xg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Ib)if(f[1]==ja){var zg=a.ea[ja];zg?(f.shift(),f.shift(),zg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Da||"db")}else a.Da=ua;if("dh"==ua){var Ag=na,Bg=Ma,Cg="",Dg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+Ag||a.xa,kc=+Bg||10;isNaN(Ba)?Ba=kc:Cg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var te=[];"call"==Bg&&(kc=1E5,te=["CALL"]);for(void 0!==Ag&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.T;){var Eg=Za[Na++];if(null==Eg.J)break;var lc=ng(Eg.J),Fi=Ba--,Fg=Ah(a,lc,"history",Fi);(!te.length||0<=Fg.indexOf(te[0]))&&a.i(Fg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.xa=Ba;Dg++;kc--}}Dg||(a.i("no "+Cg+"history available"),a.xa=void 0)}else{var $c=tg(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=gg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Gi=cd+15>>4||1;Gi--&&0<
cd;){var dd=0,ue=0,nc,ve="",Gg="",na=Xg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ha($c,1),dd=dd|ed<<(ue++<<3);ue==bd&&(ve+=n(dd,2*bd),ve+=1==bd?9==nc?"-":" ":" ",dd=ue=0);Gg+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ve+(nc?"":" "+Gg)}mc&&a.i(mc);a.oa=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Hg=255,Ig=a.Ha,Jg=a.Xb;"ew"==f[0]&&(fd=2,Hg=65535,Ig=a.Gb,Jg=a.Qc);var Kg=fd<<1,Lg=f[1];if(null==Lg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var gd=tg(a,Lg);if(gd)for(var hd=2;hd<f.length;hd++){var oc=eg(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Hg&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Hi=Ig.call(a,gd);a.i("changing "+Xg(gd.J)+" from "+n(Hi,Kg,!0)+" to "+n(oc,Kg,!0));Jg.call(a,gd,oc,fd)}}break;case "f":Wh(a,f[1]);break;case "g":a:{var Mg=f[1],Ii=b;if(void 0!==Mg){var we=tg(a,Mg,!0);if(!we)break a;Wg(a,we,Ii);a.Pa(a.j,we,!0)}rh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var xe;if(a.G.la)xe="halting",a.da();else{if(Bb(a,!0))break a;xe="already halted"}c||a.i(xe)}break;case "i":if("if"==f[0]){var ye;var pc=b.substr(2),pc=Aa(pc);eg(a,pc)?(c||a.i("true: "+pc),ye=!0):(c||a.i("false: "+pc),ye=!1);ye||(d=!1);break}if("int"==f[0]){var id;var Ji=f[1];if(a.u.N&512){var ze=eg(a,Ji);null==ze?id=!1:(a.i("requesting interrupt level "+ze),Sd(a.u,ze),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Ae=f[1];if(Ae&&"?"!=Ae){var Be=
gg(a,Ae);if(void 0!==Be){var Ki=cc(a.H,Be);a.i(q(Be)+": "+qa(Ki))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Li=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ce=0,Ng=ng(),qc=ng(a.u.M);for(a.i("stack trace for "+Xg(qc.J));10>Ce;){for(var ub=null,Mi=256;65536>qc.J>>>0;){Ng.J=a.Gb(qc,2);if(null==qc.J||!Mi--)break;for(var Ni=a,jd=Ng,
Og=null,rc=jd.J,Pg=rc,De=1;6>=De&&rc;De++){if(2<De){jd.J=rc;var kd=Ah(Ni,jd);if(0<=kd.indexOf("CALL")){var Qg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Qg+1)-Qg-1)/2==Pg){Og=kd;break}}}rc--}jd.J=Pg;if(ub=Og)break}if(!ub||null==ub)break;var Rg=null;if("ks"==Li){var Sg=ub.match(/[0-9A-F]+$/);Sg&&(Rg=Yh(a,Sg[0]))}ub=ya(ub,50)+" ;"+(Rg||"stack="+Xg(qc.J));a.i(ub);Ce++}Ce||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Yh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Ib)if(ba==$a){nb=Ib[$a];ab=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,ab=!0;else if("off"==f[2]&&(a.ha&=~nb,ab=!1,1073741824==nb)){for(var Ee=0;Ee<a.X.length;Ee++)a.i(a.X[Ee]);a.X=[]}}var Oi=0,sc="";for($a in Ib)if(!ba||ba==$a){var Pi=!!(a.ha&Ib[$a]);if(null===
ab||ab==Pi)sc&&(sc+=","),++Oi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));pg(a)}break;case "o":var Fe=f[1],Qi=f[2];if(Fe&&"?"!=Fe){var Ge=gg(a,Fe,"port #"),He=gg(a,Qi);void 0!==Ge&&void 0!==He&&(hc(a.H,Ge,He),a.i(q(Ge)+": "+qa(He)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){$h(a,b.substr(5));break}var Tg="pr"==f[0]?1:0,Ri=1+Tg;if(a.M)a.i("step in progress");else{var Ie=ng(a.u.j);switch(a.Ha(Ie)){case 205:a.M=Ri,vg(Ie,3)}a.M?(a.Pa(a.j,Ie,!0),rh(a)||(a.R&&a.R.Za(),a.M=0)):ai(a,Tg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}th(a,f);break;case "s":Zh(a,f);break;case "t":ai(a,f[0],f[1]);break;case "u":uh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Gb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ia());break;case "?":if(f[1]){$h(a,b.substr(1));break}var Je="commands:",Ke;for(Ke in ci)Je+="\n"+ya(Ke,9)+ci[Ke];Td(a)||(Je+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Je);break;default:a.i("unknown command: "+b),d=!1}}}catch(Vg){a.i("debugger error: "+(Vg.stack||Vg.message)),d=!1}return d}function Oc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!zh(a,b[+d]))return!1;return!0}
var ci={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
mg=8080,Bh=8086,Ch="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(" "),Dh="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(" "),
bh=0,ch=1,dh=2,eh=3,fh=4,gh=5,hh=6,ah=7,ih=8,jh=9,kh=10,lh=11,mh=12,nh=13,oh=14,Zg="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Gh=15,Fh=240,Oh=3840,Hh=61440,Eh=0,Q=1,Kh=2,Lh=3,Nh=16,P=32,Mh=64,Ph=128,R=ah<<8|Nh|Q,S=bh<<8|Nh|Q,U=ch<<8|Nh|Q,V=dh<<8|Nh|Q,W=eh<<8|Nh|Q,X=fh<<8|Nh|Q,Y=gh<<8|Nh|Q,Z=hh<<8|Nh|Q|Mh,di=ih<<8|Nh|Lh,ei=jh<<8|Nh|Lh,fi=kh<<8|Nh|Lh,gi=lh<<8|Nh|Lh,hi=oh<<8|Nh|Lh,Jh=4096,Ih=8192,O=16384,Qh=32768,rg=[[45],[42,di,P],[71,di|Mh,R|O],[29,di],[28,S],[22,S],[44,S,P],[63],[45,Qh],[21,
fi|O,di],[40,R|O,di|Mh],[23,di],[28,U],[22,U],[44,U,P],[64],[45,Qh],[42,ei,P],[71,ei|Mh,R|O],[29,ei],[28,V],[22,V],[44,V,P],[52],[45,Qh],[21,fi|O,ei],[40,R|O,ei|Mh],[23,ei],[28,W],[22,W],[44,W,P],[53],[45,Qh],[42,fi,P],[68,51|Mh,fi|O],[29,fi],[28,X],[22,X],[44,X,P],[20],[45,Qh],[21,fi|O,fi],[41,fi|O,51|Mh],[23,fi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Qh],[42,gi,P],[70,51|Mh,R|O],[29,gi],[28,Z],[22,Z],[44,Z,P],[72],[45,Qh],[21,fi|O,gi],[39,R|O,51|Mh],[23,gi],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
function Ah(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Yg(a.S.J)),a.F=a.S,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(zb(a)&&0<b.length){a.L&&(b="a "+Yg(a.S.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var u=ug(a,f[1],!0);if(u)if(a.S=
u,void 0===f[2])a.i("begin assemble at "+Yg(u.J)),a.L=!0,Pc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(Bh(a,a.S))}}break;case "b":a:{var x=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=x.charAt(1);if("l"==T){var za;za=0+zh(a,a.j);za+=zh(a,a.I);(za+=zh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.X=fg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=og();if("*"!=w&&(L=ug(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(pg(a),a.i("all breakpoints cleared")):xh(a,a.j,L)||xh(a,a.I,L)||xh(a,a.w,L)||a.i("breakpoint missing: "+Yg(L.J)):
"i"==T?a.i("breakpoint "+(ac(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(ec(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Xg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],fc=f[3];if("?"==na){var Nb="";for(ja in Ib)a.ka[ja]&&(Nb&&(Nb+=","),Nb+=ja);Nb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var pe=ci(a.R,!0);"console"==Ma?console.log(pe):(a.ua&&(a.ua.value=""),pe&&a.i(pe))}else if("symbols"==na)for(var qe=0;qe<a.A.length;qe++){var re=a.A[qe],Ob;for(Ob in re.ra)if("."!=Ob.charAt(0)){var yg=re.ra[Ob].o;if(void 0!==yg){var zg=re.ra[Ob].l;zg&&(Ob=zg);a.i(Yg(yg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Ib)if(f[1]==ja){var Ag=a.ka[ja];Ag?(f.shift(),f.shift(),Ag(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Bg=na,Cg=Ma,Dg="",Eg=0,Na=a.U,Za=a.D;if(Za.length){var Ba=+Bg||a.ya,kc=+Cg||10;isNaN(Ba)?Ba=kc:Dg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var se=[];"call"==Cg&&(kc=1E5,se=["CALL"]);for(void 0!==Bg&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.U;){var Fg=Za[Na++];if(null==Fg.J)break;var lc=og(Fg.J),Gi=Ba--,Gg=Bh(a,lc,"history",Gi);(!se.length||0<=Gg.indexOf(se[0]))&&a.i(Gg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Eg++;kc--}}Eg||(a.i("no "+Dg+"history available"),a.ya=void 0)}else{var $c=ug(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=fg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Hi=cd+15>>4||1;Hi--&&0<
cd;){var dd=0,te=0,nc,ue="",Hg="",na=Yg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ia($c,1),dd=dd|ed<<(te++<<3);te==bd&&(ue+=n(dd,2*bd),ue+=1==bd?9==nc?"-":" ":" ",dd=te=0);Hg+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ue+(nc?"":" "+Hg)}mc&&a.i(mc);a.ta=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Ig=255,Jg=a.Ia,Kg=a.Xb;"ew"==f[0]&&(fd=2,Ig=65535,Jg=a.Gb,Kg=a.Qc);var Lg=fd<<1,Mg=f[1];if(null==Mg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var gd=ug(a,Mg);if(gd)for(var hd=2;hd<f.length;hd++){var oc=hg(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Ig&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Ii=Jg.call(a,gd);a.i("changing "+Yg(gd.J)+" from "+n(Ii,Lg,!0)+" to "+n(oc,Lg,!0));Kg.call(a,gd,oc,fd)}}break;case "f":Xh(a,f[1]);break;case "g":a:{var Ng=f[1],Ji=b;if(void 0!==Ng){var ve=ug(a,Ng,!0);if(!ve)break a;Xg(a,ve,Ji);a.Pa(a.j,ve,!0)}sh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var we;if(a.G.ma)we="halting",a.ea();else{if(Bb(a,!0))break a;we="already halted"}c||a.i(we)}break;case "i":if("if"==f[0]){var xe;var pc=b.substr(2),pc=Aa(pc);hg(a,pc)?(c||a.i("true: "+pc),xe=!0):(c||a.i("false: "+pc),xe=!1);xe||(d=!1);break}if("int"==f[0]){var id;var Ki=f[1];if(a.u.N&512){var ye=hg(a,Ki);null==ye?id=!1:(a.i("requesting interrupt level "+ye),Sd(a.u,ye),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var ze=f[1];if(ze&&"?"!=ze){var Ae=
fg(a,ze);if(void 0!==Ae){var Li=cc(a.H,Ae);a.i(q(Ae)+": "+qa(Li))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Mi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Be=0,Og=og(),qc=og(a.u.M);for(a.i("stack trace for "+Yg(qc.J));10>Be;){for(var ub=null,Ni=256;65536>qc.J>>>0;){Og.J=a.Gb(qc,2);if(null==qc.J||!Ni--)break;for(var Oi=a,jd=Og,
Pg=null,rc=jd.J,Qg=rc,Ce=1;6>=Ce&&rc;Ce++){if(2<Ce){jd.J=rc;var kd=Bh(Oi,jd);if(0<=kd.indexOf("CALL")){var Rg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Rg+1)-Rg-1)/2==Qg){Pg=kd;break}}}rc--}jd.J=Qg;if(ub=Pg)break}if(!ub||null==ub)break;var Sg=null;if("ks"==Mi){var Tg=ub.match(/[0-9A-F]+$/);Tg&&(Sg=Zh(a,Tg[0]))}ub=ya(ub,50)+" ;"+(Sg||"stack="+Yg(qc.J));a.i(ub);Be++}Be||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Zh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Ib)if(ba==$a){mb=Ib[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var De=0;De<a.Z.length;De++)a.i(a.Z[De]);a.Z=[]}}var Pi=0,sc="";for($a in Ib)if(!ba||ba==$a){var Qi=!!(a.ha&Ib[$a]);if(null===
ab||ab==Qi)sc&&(sc+=","),++Pi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));qg(a)}break;case "o":var Ee=f[1],Ri=f[2];if(Ee&&"?"!=Ee){var Fe=fg(a,Ee,"port #"),Ge=fg(a,Ri);void 0!==Fe&&void 0!==Ge&&(hc(a.H,Fe,Ge),a.i(q(Fe)+": "+qa(Ge)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){ai(a,b.substr(5));break}var Ug="pr"==f[0]?1:0,Si=1+Ug;if(a.N)a.i("step in progress");else{var He=og(a.u.j);switch(a.Ia(He)){case 205:a.N=Si,wg(He,3)}a.N?(a.Pa(a.j,He,!0),sh(a)||(a.R&&a.R.Za(),a.N=0)):bi(a,Ug?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}uh(a,f);break;case "s":$h(a,f);break;case "t":bi(a,f[0],f[1]);break;case "u":vh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Yh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Gb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ia());break;case "?":if(f[1]){ai(a,b.substr(1));break}var Ie="commands:",Je;for(Je in di)Ie+="\n"+ya(Je,9)+di[Je];Td(a)||(Ie+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ie);break;default:a.i("unknown command: "+b),d=!1}}}catch(Wg){a.i("debugger error: "+(Wg.stack||Wg.message)),d=!1}return d}function Oc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Ah(a,b[+d]))return!1;return!0}
var di={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
ng=8080,Ch=8086,Dh="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(" "),Eh="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(" "),
ch=0,dh=1,eh=2,fh=3,gh=4,hh=5,ih=6,bh=7,jh=8,kh=9,lh=10,mh=11,nh=12,oh=13,ph=14,$g="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Hh=15,Gh=240,Ph=3840,Ih=61440,Fh=0,Q=1,Lh=2,Mh=3,Oh=16,P=32,Nh=64,Qh=128,R=bh<<8|Oh|Q,S=ch<<8|Oh|Q,U=dh<<8|Oh|Q,V=eh<<8|Oh|Q,W=fh<<8|Oh|Q,X=gh<<8|Oh|Q,Y=hh<<8|Oh|Q,Z=ih<<8|Oh|Q|Nh,ei=jh<<8|Oh|Mh,fi=kh<<8|Oh|Mh,gi=lh<<8|Oh|Mh,hi=mh<<8|Oh|Mh,ii=ph<<8|Oh|Mh,Kh=4096,Jh=8192,O=16384,Rh=32768,sg=[[45],[42,ei,P],[71,ei|Nh,R|O],[29,ei],[28,S],[22,S],[44,S,P],[63],[45,Rh],[21,
gi|O,ei],[40,R|O,ei|Nh],[23,ei],[28,U],[22,U],[44,U,P],[64],[45,Rh],[42,fi,P],[71,fi|Nh,R|O],[29,fi],[28,V],[22,V],[44,V,P],[52],[45,Rh],[21,gi|O,fi],[40,R|O,fi|Nh],[23,fi],[28,W],[22,W],[44,W,P],[53],[45,Rh],[42,gi,P],[68,51|Nh,gi|O],[29,gi],[28,X],[22,X],[44,X,P],[20],[45,Rh],[21,gi|O,gi],[41,gi|O,51|Nh],[23,gi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Rh],[42,hi,P],[70,51|Nh,R|O],[29,hi],[28,Z],[22,Z],[44,Z,P],[72],[45,Rh],[21,gi|O,hi],[39,R|O,51|Nh],[23,hi],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
S,U],[43,S,V],[43,S,W],[43,S,X],[43,S,Y],[43,S,Z],[43,S,R],[43,U,S],[43,U,U],[43,U,V],[43,U,W],[43,U,X],[43,U,Y],[43,U,Z],[43,U,R],[43,V,S],[43,V,U],[43,V,V],[43,V,W],[43,V,X],[43,V,Y],[43,V,Z],[43,V,R],[43,W,S],[43,W,U],[43,W,V],[43,W,W],[43,W,X],[43,W,Y],[43,W,Z],[43,W,R],[43,X,S],[43,X,U],[43,X,V],[43,X,W],[43,X,X],[43,X,Y],[43,X,Z],[43,X,R],[43,Y,S],[43,Y,U],[43,Y,V],[43,Y,W],[43,Y,X],[43,Y,Y],[43,Y,Z],[43,Y,R],[43,Z,S],[43,Z,U],[43,Z,V],[43,Z,W],[43,Z,X],[43,Z,Y],[26],[43,Z,R],[43,R,S],[43,R,
U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,S],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,S],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,S],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,S],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,S],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,S],[76,R|O,U],[76,R|
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,di],[34,51],[30,51],[11,51],[51,di],[4,R|O,P|Q],[65,Ph],[62],[54],[38,51],[30,51|Qh],[15,51],[7,51],[1,R|O,P|Q],[65,Ph],[57],[50,ei],[33,51],[48,P|Q,R|O],[10,51],[51,ei],[74,R|O,P|Q],[65,Ph],[55],[54,Qh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Qh],[67,R|O,P|Q],[65,
Ph],[61],[50,fi],[37,51],[78,gi|Mh|O,fi|O],[14,51],[51,fi],[6,R|O,P|Q],[65,Ph],[60],[49,fi],[36,51],[75,fi|O,ei|O],[13,51],[7,51|Qh],[77,R|O,P|Q],[65,Ph],[59],[50,hi],[35,51],[24],[12,51],[51,hi],[47,R|O,P|Q],[65,Ph],[56],[69,gi|O,fi|O],[32,51],[25],[9,51],[7,51|Qh],[19,R|O,P|Q],[65,Ph]],qh=1E3;Va(function(){for(var a=rb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new lg(d);qb(d,c)}});
function ii(a,b,c){t.call(this,"Computer",a,67108864);this.G.ja=!1;ji(this,b);this.L=Kc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=ki;this.F=null;this.C=this.O=!1;this.U=Kc(this,"url")||"";(Math.random()+.1).toString(36);this.g=li(this);if(this.u=ob("CPU",this.id)){this.K=ob("Debugger",this.id);this.A=[];for(b=null;b=Kb(this,"Video",b);)this.A.push(b);this.H=new Mb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=lb(this.id);if((this.B=ob("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.2\nCopyright \u00a9 2012-2017 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.Ga&&d.Ga(this,this.H,this.u,this.K);b=null;d=Kc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Kc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=ki),this.b&&(this.I=new ud(this,"1.34.2"),mi(this.I)?
b=null:delete this.I);!b&&this.b&&(b=ni(this))&&(this.C=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Aa(b):"")+")")):(g.F=b,g.O=!0);Ab(g)})}else Ab(this);this.P.power||(this.L=!0);!c&&this.L&&oi(this,this.nb)}else r("Unable to find CPU component")}aa(ii,t);function ji(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Kc(a,b,c){var d=b.toLowerCase(),d=Qa(b)||Qa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function oi(a,b,c){for(var d=lb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!zb(f)){zb(f,function(){oi(a,b,c)});return}}b.call(a,c)}
function pi(a,b){var c=new ud(a,"1.34.2",qi);if(mi(c)&&ri(c)){var d=c.get(si),e=b?b.get(si):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=ii.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?ti:ki));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new ud(this,"1.34.2");if(a==ui)b=!0;else if(a>ki){if(mi(d,this.F)){this.w=new ud(this,"1.34.2",vi);mi(this.w)&&(wi(this,d),a=xi,yi(this.w));this.w.set(si,Ea());zi(this.w);var e=this.b&&!this.C;if(a==ti||kb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ri(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?mi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(Oa(Ai,""),this.g=null)):this.i(f+": "+g),yi(d),mi(d)?(c=ri(d),e=!0):c=!1))}e&&pi(this,c?d:null)}else a==xi&&d.clear()}else pi(this);delete this.F;delete this.I}e=lb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Bi(this,g,d,b,c));b=[d,a,c];a!=ui?oi(this,this.Cc,b):this.Cc(b)}};
function Bi(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=ki,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Bi(this,this.u,b,c,a),this.u.lb());this.N&&(wi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function wi(a,b){if(kb("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.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
function bi(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new ud(a,"1.34.2"),g=new ud(a,"1.34.2",qi),h=Ea();g.set(si,h);f.set(si,h);f.set(Ci,"1.34.2");f.set(Di,window?window.location.href:null);f.set(Ei,Ia());a.u&&a.u.va&&(c&&a.u.da(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=lb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Si(a,
a.g,f.toString()),zi(g)&&zi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ti),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.H&&this.H.reset&&(Eb(this,"Resetting "+this.H.type),this.H.reset());for(var a=lb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Eb(this,"Resetting "+c.type),c.reset())}};
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,ei],[34,51],[30,51],[11,51],[51,ei],[4,R|O,P|Q],[65,Qh],[62],[54],[38,51],[30,51|Rh],[15,51],[7,51],[1,R|O,P|Q],[65,Qh],[57],[50,fi],[33,51],[48,P|Q,R|O],[10,51],[51,fi],[74,R|O,P|Q],[65,Qh],[55],[54,Rh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Rh],[67,R|O,P|Q],[65,
Qh],[61],[50,gi],[37,51],[78,hi|Nh|O,gi|O],[14,51],[51,gi],[6,R|O,P|Q],[65,Qh],[60],[49,gi],[36,51],[75,gi|O,fi|O],[13,51],[7,51|Rh],[77,R|O,P|Q],[65,Qh],[59],[50,ii],[35,51],[24],[12,51],[51,ii],[47,R|O,P|Q],[65,Qh],[56],[69,hi|O,gi|O],[32,51],[25],[9,51],[7,51|Rh],[19,R|O,P|Q],[65,Qh]],rh=1E3;Va(function(){for(var a=rb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new mg(d);qb(d,c)}});
function ji(a,b,c){t.call(this,"Computer",a,67108864);this.G.ja=!1;ki(this,b);this.L=Kc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=li;this.F=null;this.C=this.O=!1;this.U=Kc(this,"url")||"";(Math.random()+.1).toString(36);this.g=mi(this);if(this.u=ob("CPU",this.id)){this.K=ob("Debugger",this.id);this.A=[];for(b=null;b=Kb(this,"Video",b);)this.A.push(b);this.H=new Mb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=lb(this.id);if((this.B=ob("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.2\nCopyright \u00a9 2012-2017 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.Ga&&d.Ga(this,this.H,this.u,this.K);b=null;d=Kc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Kc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=li),this.b&&(this.I=new ud(this,"1.34.2"),ni(this.I)?
b=null:delete this.I);!b&&this.b&&(b=oi(this))&&(this.C=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Aa(b):"")+")")):(g.F=b,g.O=!0);Ab(g)})}else Ab(this);this.P.power||(this.L=!0);!c&&this.L&&pi(this,this.nb)}else r("Unable to find CPU component")}aa(ji,t);function ki(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Kc(a,b,c){var d=b.toLowerCase(),d=Qa(b)||Qa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pi(a,b,c){for(var d=lb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!zb(f)){zb(f,function(){pi(a,b,c)});return}}b.call(a,c)}
function qi(a,b){var c=new ud(a,"1.34.2",ri);if(ni(c)&&si(c)){var d=c.get(ti),e=b?b.get(ti):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=ji.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?ui:li));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new ud(this,"1.34.2");if(a==vi)b=!0;else if(a>li){if(ni(d,this.F)){this.w=new ud(this,"1.34.2",wi);ni(this.w)&&(xi(this,d),a=yi,zi(this.w));this.w.set(ti,Ea());Ai(this.w);var e=this.b&&!this.C;if(a==ui||kb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=si(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ni(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(Oa(Bi,""),this.g=null)):this.i(f+": "+g),zi(d),ni(d)?(c=si(d),e=!0):c=!1))}e&&qi(this,c?d:null)}else a==yi&&d.clear()}else qi(this);delete this.F;delete this.I}e=lb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Ci(this,g,d,b,c));b=[d,a,c];a!=vi?pi(this,this.Cc,b):this.Cc(b)}};
function Ci(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=li,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Ci(this,this.u,b,c,a),this.u.lb());this.N&&(xi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function xi(a,b){if(kb("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.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
function ci(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new ud(a,"1.34.2"),g=new ud(a,"1.34.2",ri),h=Ea();g.set(ti,h);f.set(ti,h);f.set(Di,"1.34.2");f.set(Ei,window?window.location.href:null);f.set(Fi,Ia());a.u&&a.u.va&&(c&&a.u.ea(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=lb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ti(a,
a.g,f.toString()),Ai(g)&&Ai(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ui),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.H&&this.H.reset&&(Eb(this,"Resetting "+this.H.type),this.H.reset());for(var a=lb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Eb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=lb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=lb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?bi(d,!1,!0):oi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=kb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bi(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(ki)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(ta())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=li(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=bi(d,b);b?Si(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function li(a,b){var c=a.g;c||((c=La(Ai),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ui(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Ui(a,b){a.g=null;b=Ga(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa(Ai,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function ni(a){var b=null;a.g&&(b=va()+"/api/v1/user?req=load&user="+a.g+"&state="+Vi(a,"1.34.2"));return b}
function Si(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vi(a,"1.34.2");d.data=c;b=Ga(va()+"/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.aa("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.aa(c),Oa(Ai,""),a.g=null)}}
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?ci(d,!1,!0):pi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=kb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ci(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(li)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(ta())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=mi(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=ci(d,b);b?Ti(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function mi(a,b){var c=a.g;c||((c=La(Bi),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Vi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Vi(a,b){a.g=null;b=Ga(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa(Bi,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function oi(a){var b=null;a.g&&(b=va()+"/api/v1/user?req=load&user="+a.g+"&state="+Wi(a,"1.34.2"));return b}
function Ti(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wi(a,"1.34.2");d.data=c;b=Ga(va()+"/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.aa("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.aa(c),Oa(Bi,""),a.g=null)}}
function Kb(a,b,c){a=lb(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}l.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
function Zc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.la||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",vd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",xd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=td(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.la&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var vi="failsafe",qi="validate",si="timestamp",Ci="version",Di="url",Ei="browser",Ai="user",ui=-1,ki=0,ti=1,xi=2,Ti=3;Va(function(){for(var a=rb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=pb(c),c=rb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=pb(f),g=new ii(g,d,!0);qb(g,f);g.L&&oi(g,g.nb)}});Wa.show.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(ui)}});
Wa.exit.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.G.ja&&bi(c,!(!c.b||c.D),!0)}});function ud(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Vi(a,b,c);yi(this,a.Ad)}l=ud.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function mi(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Ja()&&(b=La(a.key))?(a.g=b,a.u=!0):!1}function ri(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){r(c.message||c),b=!1}return b}function zi(a){var b=!0;if(Ja()){var c=JSON.stringify(a.b);Oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function yi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
l.clear=function(a){yi(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 Vi(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Wi=0;
function Xi(a,b,c,d,e,f){e("Loading "+a+"...");Ga(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Yi(h,a,b,c,d,e,f)})}
function Yi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(hb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Zi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
function Zc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ma||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",vd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",xd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=td(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var wi="failsafe",ri="validate",ti="timestamp",Di="version",Ei="url",Fi="browser",Bi="user",vi=-1,li=0,ui=1,yi=2,Ui=3;Va(function(){for(var a=rb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=pb(c),c=rb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=pb(f),g=new ji(g,d,!0);qb(g,f);g.L&&pi(g,g.nb)}});Wa.show.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(vi)}});
Wa.exit.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.G.ja&&ci(c,!(!c.b||c.D),!0)}});function ud(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Wi(a,b,c);zi(this,a.Ad)}l=ud.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function ni(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Ja()&&(b=La(a.key))?(a.g=b,a.u=!0):!1}function si(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){r(c.message||c),b=!1}return b}function Ai(a){var b=!0;if(Ja()){var c=JSON.stringify(a.b);Oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function zi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
l.clear=function(a){zi(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 Wi(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Xi=0;
function Yi(a,b,c,d,e,f){e("Loading "+a+"...");Ga(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Zi(h,a,b,c,d,e,f)})}
function Zi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(hb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?$i(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function Zi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Zi(a,b,c)}})}else c(a,null)}
function $i(a,b,c,d){function e(a){if(void 0===h){var b=g&&rb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);k&&(--Wi||cb(!0));k=!1}var g,h,k=!0;Wi++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.2/components.xsl");p=function(d,h){h?Xi(c,null,null,!1,e,function(d,k){k?(hb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Wi||cb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Wi||cb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Xi(b,a,d,!0,e,p):Yi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){cb(!1);return $i(a,b,c,d)};window.findMachineComponent=function(a,b){return ob(b,a+".machine")};
function $i(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);$i(a,b,c)}})}else c(a,null)}
function aj(a,b,c,d){function e(a){if(void 0===h){var b=g&&rb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);k&&(--Xi||cb(!0));k=!1}var g,h,k=!0;Xi++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.2/components.xsl");p=function(d,h){h?Yi(c,null,null,!1,e,function(d,k){k?(hb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Xi||cb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Xi||cb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Yi(b,a,d,!0,e,p):Zi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){cb(!1);return aj(a,b,c,d)};window.findMachineComponent=function(a,b){return ob(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!tb[a]){for(var c=!0,d=tb,e=a,f=b.length,g=[],h=[],k="",p=null,u=0;u<f;u++){var v=b[u];if('"'==v||"'"==v)p&&v!=p?k+=v:(p?p=null:p=v,k&&(h.push(k),k=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;sb(a)||(c=!1)}return c};window.enableEvents=cb;window.sendEvent=eb;})();

View file

@ -35,7 +35,7 @@ var ga=ca[ca.length-1],ha=ba[ga],ia=ha?ha:function(a){a=Number(a);if(isNaN(a)||I
var n={Yd:0,ae:1,be:2,ce:3,de:4,ee:5,fe:6,ge:7,he:8,ie:9,je:10,ke:11,le:12,me:13,ne:14,oe:15,pe:16,qe:17,re:18,se:19,te:20,ue:21,ve:22,we:23,xe:24,ye:25,ze:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ia:65,sb:66,tb:67,kb:68,E:69,wb:70,xb:71,yb:72,zb:73,Ab:74,Bb:75,lb:76,Fb:77,Gb:78,Jb:79,Kb:80,Q:81,Lb:82,Nb:83,Ob:84,Pb:85,Rb:86,Sb:87,
Ub:88,Vb:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wb:97,Rc:98,Tc:99,d:100,e:101,Xc:102,Yc:103,Zc:104,$c:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,Kd:115,t:116,Ld:117,Md:118,Nd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ae:127},ja={59:186,61:187,173:189,224:91};
function ka(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function p(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;c=c?"0x":"";var d="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));if(null==a)for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a%16,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a=Math.trunc(a/16)}return(void 0===c?"":c)+d}function la(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function ma(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function na(){var a=oa();return-1!==a.indexOf("pcjs.org",a.length-8)}function pa(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}function ra(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var qa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},sa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};

File diff suppressed because it is too large Load diff

View file

@ -51,7 +51,7 @@ var la={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[4
y:121,z:122,"{":123,"|":124,"}":125,"~":126,po:127},ma={};ma[173]=n["-"];ma[186]=n[";"];ma[187]=n["="];ma[189]=n["-"];ma[188]=n[","];ma[190]=n["."];ma[191]=n["/"];ma[192]=n["`"];ma[219]=n["["];ma[220]=n["\\"];ma[221]=n["]"];ma[222]=n["'"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];
p[192]=n["~"];p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"];
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function oa(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;c=c?"0x":"";var d="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));if(null==a)for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a%16,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a=Math.trunc(a/16)}return(void 0===c?"":c)+d}
function pa(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 qa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ra(a,b){return-1!==a.indexOf(b,a.length-b.length)}function sa(a){return a.replace(/[&<>"']/g,function(a){return ta[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var ta={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};

View file

@ -27,89 +27,90 @@
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=fa)}var ga=0;function fa(a){return"jscomp_symbol_"+(a||"")+ga++}
function ha(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ja(this)}});ha=function(){}}function ja(a){var b=0;return ka(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ka(a){ha();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function pa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function qa(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
qa("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});qa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ra={lc:0,Db:1,nc:2,oc:3,pc:4,qc:5,rc:6,sc:7,qb:8,tc:9,Eb:10,uc:11,vc:12,Fb:13,wc:14,xc:15,yc:16,zc:17,Ac:18,Bc:19,Cc:20,Dc:21,Ec:22,Fc:23,Gc:24,Hc:25,Ic:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,pb:65,kc:66,mc:67,Jc:68,E:69,Kc:70,Lc:71,Mc:72,Nc:73,Oc:74,Pc:75,Qc:76,Rc:77,Sc:78,Tc:79,Uc:80,Q:81,Vc:82,Wc:83,Xc:84,Yc:85,Zc:86,$c:87,
ad:88,bd:89,Hb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,cd:97,dd:98,ed:99,d:100,e:101,fd:102,kd:103,ld:104,md:105,nd:106,k:107,od:108,pd:109,n:110,qd:111,p:112,q:113,r:114,rd:115,t:116,td:117,ud:118,vd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Gb:127};
function sa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function ta(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}
function m(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ta(a,8,b,c?"0o":"")}function ua(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return ta(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ta(a,16,b,c?"0x":"")}function va(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function wa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function Aa(a){return a.replace(/[&<>"']/g,function(a){return Ba[a]})}function Ca(a,b){return(a+" ").slice(0,b)}function Da(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ba={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ea(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Fa(){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 Ga(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ma(a,b){var c,d={Y:null,U:null,ua:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
e[c]&255,d.Y[f++]=e[c]>>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ja=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Y=e)}return d}
function Na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Oa(){if(null==Pa){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}Pa=a}return Pa}function Qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Sa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ta(a){if(!Ua){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ua=c}return Ua[a]}function Va(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Wa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ya(a){Za.init.push(a)}
function eb(a){if(fb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function gb(a){!fb&&a?(fb=!0,hb&&ib("init"),jb&&ib("show")):fb=a}function ib(a){Za[a]&&eb(Za[a])}var Ua=null,Za={init:[],show:[],exit:[]},hb=!1,jb=!1,fb=!0,Pa=null;Xa("onload",function(){hb=!0;eb(Za.init)});Xa("onpageshow",function(){jb=!0;eb(Za.show)});Xa(Sa("Opera")||Sa("iOS")?"onunload":"onbeforeunload",function(){eb(Za.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ob=b.comment;this.Kb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,V:!1,error:!1};this.Xa=null;this.A.error=!1;this.X=c||0;this.D=this.v=this.G=this.H=this.va=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<kb.length;b++){var d=kb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function qb(a){if(void 0!==a){var b;for(b=0;b<kb.length;b++)if(kb[b].id===a)return kb[b]}return null}
function rb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<kb.length;d++)if(c)c==kb[d]&&(c=null);else if(!(a!=kb[d].type||b&&kb[d].id.indexOf(b)))return kb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function sb(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),n=0;n<k.length;n++)switch(h=k[n],h){case c+"-binding":(h=v(g))&&h.binding&&a.ma(h.type,h.binding,g,h.value),n=k.length}}}}
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ga=0;function da(a){return"jscomp_symbol_"+(a||"")+ga++}
function ha(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return ja(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ja(a){ha();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
la("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ma={mc:0,Eb:1,oc:2,pc:3,qc:4,rc:5,sc:6,tc:7,qb:8,uc:9,Fb:10,vc:11,wc:12,Gb:13,xc:14,yc:15,zc:16,Ac:17,Bc:18,Cc:19,Dc:20,Ec:21,Fc:22,Gc:23,Hc:24,Ic:25,Jc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,pb:65,lc:66,nc:67,Kc:68,E:69,Lc:70,Mc:71,Nc:72,Oc:73,Pc:74,Qc:75,Rc:76,Sc:77,Tc:78,Uc:79,Vc:80,Q:81,Wc:82,Xc:83,Yc:84,Zc:85,$c:86,ad:87,
bd:88,cd:89,Ib:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,dd:97,ed:98,fd:99,d:100,e:101,gd:102,ld:103,md:104,nd:105,od:106,k:107,pd:108,qd:109,n:110,rd:111,p:112,q:113,r:114,sd:115,t:116,ud:117,vd:118,wd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Hb:127};
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function ta(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ua(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ta(a,8,b,c?"0o":"")}function va(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return ta(a,10,b)}
function r(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ta(a,16,b,c?"0x":"")}function wa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function xa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ya(a,b){return-1!==a.indexOf(b,a.length-b.length)}function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}
function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Fa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Ga(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ia(a,b){var c,d={Z:null,W:null,va:null,ua:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.va=g.load;d.ua=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c<e.length;c++)d.Z[f++]=e[c]&255,d.Z[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c<e.length;c++)d.Z[f++]=
e[c]&255,d.Z[f++]=e[c]>>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.Ka=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(t(d.Z[0]),d=null):(t("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){t("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){t("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Z=e)}return d}
function Ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Na(){if(null==Oa){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}Oa=a}return Oa}function Pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Sa(a){if(!Ta){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ta=c}return Ta[a]}function Ua(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Va(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Ya.init.push(a)}
function Za(a){if($a)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ab(a){!$a&&a?($a=!0,gb&&hb("init"),ib&&hb("show")):$a=a}function hb(a){Ya[a]&&Za(Ya[a])}var Ta=null,Ya={init:[],show:[],exit:[]},gb=!1,ib=!1,$a=!0,Oa=null;Wa("onload",function(){gb=!0;Za(Ya.init)});Wa("onpageshow",function(){ib=!0;Za(Ya.show)});Wa(Ra("Opera")||Ra("iOS")?"onunload":"onbeforeunload",function(){Za(Ya.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vb=b.comment;this.Nb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,X:!1,error:!1};this.Xa=null;this.A.error=!1;this.Y=c||0;this.D=this.v=this.G=this.H=this.wa=null;jb.push(this)}function kb(a,b,c){lb[a]&&b&&(lb[a][b]=c)}function mb(){return Date.now()||+new Date}
function t(a){window&&window.alert(a)}function nb(a){var b=!1;window&&(b=window.confirm(a));return b}function ob(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<jb.length;b++){var d=jb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function pb(a){if(void 0!==a){var b;for(b=0;b<jb.length;b++)if(jb[b].id===a)return jb[b]}return null}
function qb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<jb.length;d++)if(c)c==jb[d]&&(c=null);else if(!(a!=jb[d].type||b&&jb[d].id.indexOf(b)))return jb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function rb(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=v(g))&&h.binding&&a.oa(h.type,h.binding,g,h.value),m=k.length}}}}
function x(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 tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=wb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=rb(d[1],a);if(h)if(g=xb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ub[a];return b}l=u.prototype;
function sb(a){for(var b=!0,c=tb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=ub.indexOf(e)&&(f=function(){return function(){sb(a)}}());var g=vb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=qb(d[1],a);if(h)if(g=wb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){t("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete tb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ma=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.va=this.J[b]=c,c.value="",this.j=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.j(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
l.status=function(a){this.j(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function yb(a,b){a.A.error=!0;a.da(b)}function Ib(a){return a.A.error?(a.j(a.toString()+" error"),!0):!1}function Jb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Kb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Lb(a,b){a.A.Na&&(b?a.A.hb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.A.Na}
function Mb(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.j(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.wa=function(){return this.A.V=!0};l.la=function(a,b){b&&(this.A.V=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.yb)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
l.oa=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.wa=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.u(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
l.status=function(a){this.u(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)};function xb(a,b){a.A.error=!0;a.da(b)}function yb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Jb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Kb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Lb(a,b){a.A.Na&&(b?a.A.hb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Na}
function Mb(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.xa=function(){return this.A.X=!0};l.na=function(a,b){b&&(this.A.X=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.Y;var c=a.D.Y&b;return!!b&&c===b||!!(c&a.D.xb)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var mb=window?window.PCjs.Machines:{},kb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],wb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},xb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var lb=window?window.PCjs.Machines:{},jb=window?window.PCjs.Components:[],tb=window?window.PCjs.Commands:{},ub=["hold","sleep","wait"],vb={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},wb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var w="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,B=Math.pow(2,35),C=Math.pow(2,36)-1,E=Math.pow(2,36),F=Math.pow(2,32),Tb=Math.pow(2,34),Ub=Math.pow(2,36),Vb=Math.pow(2,21),Wb=Math.pow(2,26),Xb=Math.pow(2,23),Yb=Math.pow(2,30),w="pdp10",Pb="PDPjs",Zb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
var w="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,C=Math.pow(2,35),D=Math.pow(2,36)-1,E=Math.pow(2,36),F=Math.pow(2,32),Tb=Math.pow(2,34),Ub=Math.pow(2,36),Vb=Math.pow(2,21),Wb=Math.pow(2,26),Xb=Math.pow(2,23),Yb=Math.pow(2,30),w="pdp10",Pb="PDPjs",Zb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function $b(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.u=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.C={};this.b={START:[1,1,!0,!1,this.Wb],STEP:[1,1,!1,!1,this.Xb],ENABLE:[1,1,!1,!1,this.Rb],CONT:[1,1,!0,!1,this.Pb],DEP:[0,0,!0,!1,this.Qb],EXAM:[1,1,!0,!1,this.Sb],LOAD:[1,1,!0,!1,this.Ub],TEST:[0,0,!0,!1,this.Tb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Vb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Nb,toggle:this.fc,reset:this.bc,
set:this.ec};Kb(this)}pa($b,u);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)};
l.ma=function(a,b,c,d){if(this.H&&this.H.ma(a,b,c,d)||this.v&&this.v.ma(a,b,c,d)||this.D&&this.D.ma(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):u.prototype.ma.call(this,a,b,c,d)}};l.Fa=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ec(this);fc(this)};l.wa=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.la=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.bc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.C)jc(a,c,null!=b?b:a.C[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
l.Nb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.ec=function(a,b){if("SR"==a)return ic(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.fc=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1}
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Wb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Xb=function(){};l.Rb=function(a){a||this.v.W()};
l.Pb=function(a){if(!a&&!this.v.A.N)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.D)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Ra(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&yb(this.v,c.stack||c.message)}this.stop();this.H&&I(this.H)}};l.Qb=function(a){a&&!this.v.A.N&&(this.P&&uc(this),a=bc(this,this.w=this.u),this.S==ac?vc(this.G,this.i,a):this.v.g(this.i,a))};
l.Sb=function(a){if(!a&&!this.v.A.N){var b;this.R&&uc(this);this.S==ac?b=wc(this.G,this.i):b=this.v.f(this.i);bc(this,this.w=b)}};l.Ub=function(a){a||this.v.A.N||hc(this,this.u)};l.Tb=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Vb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.G.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.i&~c|a.i+b&c)}
function hc(a,b){a.i=b&a.G.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||jc(d,e,f)}}}function bc(a,b){a.I=b%E;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||jc(d,e,f)}}return a.I}function ic(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.v.i)};
function gc(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=qb(d.id);e||(e=new $b(d,!0));sb(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";Ya(gc);function xc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.u=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new yc(this);Dc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Kb(this)}pa(xc,u);l=xc.prototype;l.reset=function(){};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.la=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Ec(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Fc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,n=16384-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){n=h.size-(e-k);n>f&&(n=f);h.Pa=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Gc(Hc,e,f)}e=new yc(a,e,n,16384,d);Dc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+m(b)),!0):Gc(Jc,b,c)}
function wc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Mb=function(a){this.w||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.W())};function Gc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){u.call(this,"Device",a,256)}pa(Kc,u);l=Kc.prototype;l.Fa=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Kb(this)};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.la=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
l.restore=function(){return!0};Ya(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Kc(c),sb(c,d)}}});function yc(a,b,c,d,e){this.H=a;this.id=Lc+=2;this.B=b;this.Pa=c;this.size=d||0;this.type=e||Mc;this.G=e==Nc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Qa;this.i=this.v=0;Dc(this);this.jb=this.Lb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=yc.prototype;l.save=function(){return this.u};
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.jb=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Sc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.Ka=function(a,b){b?this.v++||Sc(this,Tc,!1):this.i++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
function Dc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Rc(a,Tc,!1),(a.v=c.v)&&Sc(a,Tc,!1))}l.nb=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+J(this.b,b),!0);this.H.Mb(b);return-1};l.Qa=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+J(this.b,a)+" to invalid addresses "+J(this.b,c),!0)};l.$b=function(a){return this.u[a]};l.ic=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.jb=!0)};
l.Yb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Vc(c,this.B+a,2,c.M)&&c.W(!1)}return this.D(a,b)};l.hc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Vc(d,this.B+b,2,d.I)&&d.W(!1)}this.G?this.Qa(a,0,c):this.w(a,b,c)};var Mc=0,Nc=2,Ic=["NONE","RAM","ROM"],Lc=0,Qc=[],Pc=[yc.prototype.$b,yc.prototype.ic],Tc=[yc.prototype.Yb,yc.prototype.hc];
function Wc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.fa=c;this.bb=Math.round(this.eb/1E4)/100;this.ba=this.bb*this.fa;this.cb=this.Da=this.ga=this.Va=0;this.A.N=this.A.$a=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.La=!1;this.Ba=this.ia=0;this.Ca=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.O=[];this.xb=this.cc.bind(this);this.T=this.M=this.R=this.S=this.L=this.Aa=this.P=this.pa=this.fb=this.aa=
0;this.Ia=null;Kb(this)}pa(Wc,u);l=Wc.prototype;l.Fa=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ia=a.u;for(a=0;a<Xc.length;a++)(b=this.J[Xc[a]])&&this.H.ma(null,Xc[a],b);Kb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){var c=Yc(this.H,"autoStart");null!=c?this.A.Z="true"==c?!0:"false"==c?!1:!!c:null==this.A.Z&&(this.A.Z=!this.D&&void 0===this.J.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.D?(a=this.D,b=this.A.Z,a.Ca=!0,a.j("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.za&&(b=a.za,a.za=null,cd(a,b))):this.status("No debugger detected");this.A.Z||this.j("CPU will not be auto-started "+(this.Ia?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.la=function(a){return a?this.save():!0};l.Z=function(){return this.A.N?!0:this.A.Z?(pc(this),!0):!1};l.Bb=function(){return 0};function $c(a){void 0===a.Ca&&(a.Ca=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.A.La=0<=a.Ca&&0<a.na;a.A.La&&(a.Ba=0,a.ia=a.Ca-a.T)}function tc(a,b){if(a.A.La){var c=!1;a.Ba=a.Ba+a.Bb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=dd(a)&&(a.na=a.oa=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+q(a.Ba))}}
l.ma=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.V)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.W():pc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){ed(d,d.fa<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function fd(a,b){var c=1;b&&1<a.fa&&a.aa&&(c=a.aa/a.bb);a.cb=Math.round(1E3/gd);a.Da=Math.floor(a.eb/gd*c);b||(a.ga=a.Da);a.Va=0}function dd(a){return a.T+a.M+a.R-a.S}function Zc(a){a.aa=0;a.fb=0;a.T=a.M=a.R=a.S=0;$c(a);ed(a,1)}
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.H&&hd(a.H)}sc(a,a.M);a.M=0;a.L=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function $b(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.U=b;this.i=this.I=this.j=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.C={};this.b={START:[1,1,!0,!1,this.Xb],STEP:[1,1,!1,!1,this.Yb],ENABLE:[1,1,!1,!1,this.Sb],CONT:[1,1,!0,!1,this.Qb],DEP:[0,0,!0,!1,this.Rb],EXAM:[1,1,!0,!1,this.Tb],LOAD:[1,1,!0,!1,this.Vb],TEST:[0,0,!0,!1,this.Ub]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Wb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Ob,toggle:this.gc,reset:this.cc,
set:this.fc};Kb(this)}n($b,u);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)};
l.oa=function(a,b,c,d){if(this.H&&this.H.oa(a,b,c,d)||this.v&&this.v.oa(a,b,c,d)||this.D&&this.D.oa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):u.prototype.oa.call(this,a,b,c,d)}};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ec(this);fc(this)};l.xa=function(a,b){if(!b)if(this.U&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.na=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.cc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.C)jc(a,c,null!=b?b:a.C[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
l.Ob=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.fc=function(a,b){if("SR"==a)return ic(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.gc=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1}
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Xb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Yb=function(){};l.Sb=function(a){a||this.v.V()};
l.Qb=function(a){if(!a&&!this.v.A.N)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.D)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Ra(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&xb(this.v,c.stack||c.message)}this.stop();this.H&&I(this.H)}};l.Rb=function(a){a&&!this.v.A.N&&(this.P&&uc(this),a=bc(this,this.w=this.j),this.S==ac?vc(this.G,this.i,a):this.v.g(this.i,a))};
l.Tb=function(a){if(!a&&!this.v.A.N){var b;this.R&&uc(this);this.S==ac?b=wc(this.G,this.i):b=this.v.f(this.i);bc(this,this.w=b)}};l.Vb=function(a){a||this.v.A.N||hc(this,this.j)};l.Ub=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Wb=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function uc(a){var b=1,c=a.G.j;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.i&~c|a.i+b&c)}
function hc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||jc(d,e,f)}}}function bc(a,b){a.I=b%E;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||jc(d,e,f)}}return a.I}function ic(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.v.i)};
function gc(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=pb(d.id);e||(e=new $b(d,!0));rb(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";Xa(gc);function xc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new yc(this);zc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Kb(this)}n(xc,u);l=xc.prototype;l.reset=function(){};
l.xa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.na=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Ec(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){t("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Fc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){m=h.size-(e-k);m>f&&(m=f);h.Pa=e-h.B+m;e=k+16384;f-=m;g++;continue}}return Gc(Hc,e,f)}e=new yc(a,e,m,16384,d);zc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+ua(b)),!0):Gc(Jc,b,c)}
function wc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Mb=function(a){this.w||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.V())};function Gc(a,b,c){t("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){u.call(this,"Device",a,256)}n(Kc,u);l=Kc.prototype;l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Kb(this)};l.xa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.na=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
l.restore=function(){return!0};Xa(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Kc(c),rb(c,d)}}});function yc(a,b,c,d,e){this.H=a;this.id=Lc+=2;this.B=b;this.Pa=c;this.size=d||0;this.type=e||Mc;this.G=e==Nc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Qa;this.i=this.v=0;zc(this);this.jb=this.Lb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=yc.prototype;l.save=function(){return this.j};
l.restore=function(a){return a&&this.size==a.length?(this.j=a,this.jb=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Sc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.La=function(a,b){b?this.v++||Sc(this,Tc,!1):this.i++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
function zc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Rc(a,Tc,!1),(a.v=c.v)&&Sc(a,Tc,!1))}l.nb=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+J(this.b,b),!0);this.H.Mb(b);return-1};l.Qa=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+J(this.b,a)+" to invalid addresses "+J(this.b,c),!0)};l.ac=function(a){return this.j[a]};l.jc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.jb=!0)};
l.Zb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Vc(c,this.B+a,2,c.M)&&c.V(!1)}return this.D(a,b)};l.ic=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Vc(d,this.B+b,2,d.I)&&d.V(!1)}this.G?this.Qa(a,0,c):this.w(a,b,c)};var Mc=0,Nc=2,Ic=["NONE","RAM","ROM"],Lc=0,Qc=[],Pc=[yc.prototype.ac,yc.prototype.jc],Tc=[yc.prototype.Zb,yc.prototype.ic];
function Wc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.fa=c;this.bb=Math.round(this.eb/1E4)/100;this.ca=this.bb*this.fa;this.cb=this.Ea=this.ga=this.Va=0;this.A.N=this.A.$a=!1;this.A.aa=a.autoStart;"string"==typeof this.A.aa&&(this.A.aa="true"==this.A.aa);this.A.Ma=!1;this.Ca=this.ia=0;this.Da=+a.csStart;this.pa=+a.csInterval;this.ja=+a.csStop;this.O=[];this.yb=this.dc.bind(this);this.U=this.M=this.R=this.S=this.L=this.Ba=this.P=this.ka=this.fb=this.ba=
0;this.Ja=null;Kb(this)}n(Wc,u);l=Wc.prototype;l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ja=a.j;for(a=0;a<Xc.length;a++)(b=this.J[Xc[a]])&&this.H.oa(null,Xc[a],b);Kb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.xa=function(a,b){var c=Yc(this.H,"autoStart");null!=c?this.A.aa="true"==c?!0:"false"==c?!1:!!c:null==this.A.aa&&(this.A.aa=!this.D&&void 0===this.J.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.D?(a=this.D,b=this.A.aa,a.Ea=!0,a.u("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.sa&&(b=a.sa,a.sa=null,cd(a,b))):this.status("No debugger detected");this.A.aa||this.u("CPU will not be auto-started "+(this.Ja?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.na=function(a){return a?this.save():!0};l.aa=function(){return this.A.N?!0:this.A.aa?(pc(this),!0):!1};l.Bb=function(){return 0};function $c(a){void 0===a.Da&&(a.Da=0);void 0===a.pa&&(a.pa=-1);void 0===a.ja&&(a.ja=-1);a.A.Ma=0<=a.Da&&0<a.pa;a.A.Ma&&(a.Ca=0,a.ia=a.Da-a.U)}function tc(a,b){if(a.A.Ma){var c=!1;a.Ca=a.Ca+a.Bb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.pa,c=!0);0<=a.ja&&a.ja<=dd(a)&&(a.pa=a.ja=-1,$c(a),a.V(),c=!0);c&&a.u(dd(a)+" cycles: checksum="+r(a.Ca))}}
l.oa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=ob(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.X);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.V():pc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){ed(d,d.fa<<1,!0)},c.textContent=this.ca.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.U+=b;c&&(a.R=a.S=0)}function fd(a,b){var c=1;b&&1<a.fa&&a.ba&&(c=a.ba/a.bb);a.cb=Math.round(1E3/gd);a.Ea=Math.floor(a.eb/gd*c);b||(a.ga=a.Ea);a.Va=0}function dd(a){return a.U+a.M+a.R-a.S}function Zc(a){a.ba=0;a.fb=0;a.U=a.M=a.R=a.S=0;$c(a);ed(a,1)}
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ca?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ca!=b){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&hd(a.H)}sc(a,a.M);a.M=0;a.L=mb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function rc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
l.cc=function(){if(this.A.N){this.Va>=this.eb&&fd(this,!0);this.pa=0;this.Aa=nb();if(this.P){var a=this.Aa-this.P;a>this.cb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=id(this,this.A.La?1:this.Da);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.pa+=b;this.M+=b;tc(this,b);rc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Da;++this.fb>=ld&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.W();this.H&&this.H.stop(nb(),dd(this));yb(this,
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.xb;this.P=nb();var c=this.cb;this.pa&&(c=Math.round(c*this.pa/this.Da));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.aa=Math.round(this.M/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.L-=c),c=0;this.Va+=this.pa;this.P+=c;a(b,c)}}};
function pc(a,b){if(!Ib(a))if(a.A.N)a.j(a.toString()+" busy");else{ed(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&hd(a.H,!0),a.H.start(a.L,dd(a)));a.D||a.status("Started");setTimeout(a.xb,0)}}l.Ra=function(){return 0};l.W=function(a){var b=!1;if(this.A.N){kd(this);sc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),dd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Jb=nd.bind(this);this.w=K.bind(this);this.ya=null;this.sb=[];this.A.complete=!1}pa(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.W();this.b=this.K=this.Ea=0;this.i=this.za=this.Sa;this.I=this.sa=-1;this.F=this.u=0;this.gb=[0,0];this.qa=[0,0];this.ha=[0,0];this.ra=[0,0];this.xa=this.i;this.C=0;this.f=this.Zb;this.g=this.jc;this.ya=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};
l.Bb=function(){return 0};l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Ea,this.i,this.sa,this.I,this.u,this.C,this.za,this.xa,this.Sa]);a.set(1,[]);a.set(2,[this.T,this.fa,this.A.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.b=b.next().value;this.K=b.next().value;this.Ea=b.next().value;this.i=b.next().value;this.sa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Sa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.sb.length;d++){var e=this.sb[d];if(e.gc===b[c]){d=e;break a}}d=
null}d&&(d.next=this.ya,this.ya=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Rb;return c}function H(a,b){a.i=b%Rb}function od(a){var b=[];for(a=a.ya;a;)b.push(a.gc),a=a.next;return b}l.Zb=function(a){var b=this.G;a=this.xa=a;return b.b[(a&b.u)>>>b.i].f(a&16383,a)};l.jc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b};
l.Ra=function(a){this.A.complete=!0;var b=this.D?qd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(rd(this.D,this.i,c)){this.W();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&rd(this.D,this.i,c)){this.W();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.f(this.b):0<=this.sa?(this.K=this.Ea=this.f(this.sa),this.sa=-1):(this.K=this.Ea=
this.f(this.za=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Qb;a=this.K&4194304?-1:this.Ea/Xb|0;0<=a&&this.Jb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Ya(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new md(d);sb(d,c)}});function nd(a){sd[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
l.dc=function(){if(this.A.N){this.Va>=this.eb&&fd(this,!0);this.ka=0;this.Ba=mb();if(this.P){var a=this.Ba-this.P;a>this.cb&&(this.L+=a,this.L>this.Ba&&(this.L=this.Ba))}try{do{var b=id(this,this.A.Ma?1:this.Ea);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.ka+=b;this.M+=b;tc(this,b);rc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Ea;++this.fb>=ld&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(mb(),dd(this));xb(this,
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.yb;this.P=mb();var c=this.cb;this.ka&&(c=Math.round(c*this.ka/this.Ea));var c=c-(this.P-this.Ba),d=this.P-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.U=0,ed(this)));if(0>c||this.ba<this.ca)-1E3>c&&(this.L-=c),c=0;this.Va+=this.ka;this.P+=c;a(b,c)}}};
function pc(a,b){if(!yb(a))if(a.A.N)a.u(a.toString()+" busy");else{ed(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&hd(a.H,!0),a.H.start(a.L,dd(a)));a.D||a.status("Started");setTimeout(a.yb,0)}}l.Ra=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){kd(this);sc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(mb(),dd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Kb=nd.bind(this);this.w=K.bind(this);this.za=null;this.ob=[];this.A.complete=!1}n(md,Wc);l=md.prototype;
l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.V();this.Fa=this.Ga=this.b=this.K=0;this.i=this.Aa=this.Sa;this.I=this.sa=-1;this.F=this.j=0;this.gb=[0,0];this.qa=[0,0];this.ha=[0,0];this.ra=[0,0];this.ya=this.i;this.C=0;this.f=this.$b;this.g=this.kc;this.za=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};l.Bb=function(){return 0};
l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Fa,this.Ga,this.i,this.sa,this.I,this.j,this.C,this.Aa,this.ya,this.Sa]);a.set(1,[]);a.set(2,[this.U,this.fa,this.A.aa]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.b=b.next().value;this.K=b.next().value;this.Fa=b.next().value;this.Ga=b.next().value;this.i=b.next().value;this.sa=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Aa=b.next().value;this.ya=b.next().value;this.Sa=b.next().value;b=a[2];this.U=b[0];ed(this,b[1]);this.A.aa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];
if(e.hc===b[c]){d=e;break a}}d=null}d&&(d.next=this.za,this.za=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Rb;return c}function H(a,b){a.i=b%Rb}function od(a){var b=[];for(a=a.za;a;)b.push(a.hc),a=a.next;return b}l.$b=function(a){var b=this.G;a=this.ya=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};l.kc=function(a,b){var c=this.G;a=this.ya=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
l.Ra=function(a){this.A.complete=!0;var b=this.D?qd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(rd(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.za||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&rd(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Fa=this.f(this.b):0<=this.sa?(this.K=this.Ga=this.f(this.sa),this.sa=-1):(this.K=
this.Ga=this.f(this.Aa=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Fa=this.f(a))&Qb;a=this.K&4194304?-1:this.Ga/Xb|0;0<=a&&this.Kb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Xa(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new md(d);rb(d,c)}});function nd(a){sd[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
function td(){var a=0,b=this.f(this.b),c=b/Yb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Yb+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.g(this.b,b)}function ud(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
function vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function wd(a,b){this.g(b,this.f(this.b))}function xd(a,b){this.g(b,this.b)}function yd(a,b){this.g(this.b,this.f(b))}function zd(a,b){this.g(b,0)}function Ad(a,b){this.g(b,C-this.f(b))}function Td(a,b){this.g(b,C)}
function Ud(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Vd(a,d,c)+(c-(c&y)))}function Wd(a,b){var c=this.f(b);this.g(b,Vd(a,c,0))}function Xd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Vd(a,c,b)+(b-(b&y)))}function Yd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Zd(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Vd(a,d,c)+c)}
function vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function wd(a,b){this.g(b,this.f(this.b))}function xd(a,b){this.g(b,this.b)}function yd(a,b){this.g(this.b,this.f(b))}function zd(a,b){this.g(b,0)}function Ad(a,b){this.g(b,D-this.f(b))}function Bd(a,b){this.g(b,D)}
function Cd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Vd(a,d,c)+(c-(c&y)))}function Wd(a,b){var c=this.f(b);this.g(b,Vd(a,c,0))}function Xd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Vd(a,c,b)+(b-(b&y)))}function Yd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Zd(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Vd(a,d,c)+c)}
function $d(a,b){var c=this.b*z,d=this.f(b);this.g(b,Vd(a,d,c)+c)}function ae(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Vd(a,c,b)+b)}function be(a,b){var c=this.f(this.b),d=(c&y)*z,c=Vd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ce(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,de(a,d,c)+c)}function ee(a,b){var c=this.f(b);this.g(b,de(a,c,this.b)+this.b)}function fe(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,de(a,c,b)+b)}
function ge(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Sb?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function he(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,de(a,d,c)+c)}function ie(a,b){var c=this.f(b);this.g(b,de(a,c,0))}function je(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,de(a,c,b)+b)}function ke(a,b){var c=this.f(this.b),d=c/z|0,c=de(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){le[a&7].call(this,a,a>>3&127)}
function me(){}function ne(){}function K(a){this.j("undefined opcode: "+m(a));pd(this,-1);this.W()}function oe(a){a>A&&(a!=B?a=Ub-a:this.u|=163840);return a}function O(a,b){var c=(a+b)%E;pe.call(this,a,b,c);return c}
function qe(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=C-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.qa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.ra;c[0]=a;for(c[1]=b;0<re(this.ra,this.ha);)se(this.ha,this.ha),se(this.qa,this.qa);do{if(0<=re(this.ra,this.ha)&&(b=this.ra,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),se(this.gb,this.qa),te(this.ra)))break;ue(this.ha);ue(this.qa)}while(!te(this.qa));
function me(){}function ne(){}function K(a){this.u("undefined opcode: "+ua(a));pd(this,-1);this.V()}function oe(a){a>A&&(a!=C?a=Ub-a:this.j|=163840);return a}function O(a,b){var c=(a+b)%E;pe.call(this,a,b,c);return c}
function qe(a,b,c){var d=!1,e=!1,f=b-b%C;a=a%C+b*C%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=D-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.qa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.ra;c[0]=a;for(c[1]=b;0<re(this.ra,this.ha);)se(this.ha,this.ha),se(this.qa,this.qa);do{if(0<=re(this.ra,this.ha)&&(b=this.ra,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),se(this.gb,this.qa),te(this.ra)))break;ue(this.ha);ue(this.qa)}while(!te(this.qa));
a=this.gb[0];this.F=this.ra[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a}
function ve(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=C-f,a=E-a):f&&(f=E-f));if(c)return(f||a>A)&&(f!=C||a<=A)&&(this.u|=131072),a;c=a;b=f;a=b-b%B;b=2*b%E+Math.trunc(c/B);c=a+c%B;d=b-b%B;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b}
function we(a){a?a==B?this.u|=163840:a=Ub-a:this.u|=98304;return a}function P(a,b){var c=a-b;0>c&&(c+=E);pe.call(this,c,b,a);return c}function pe(a,b,c){a=Math.trunc(a/Tb);b=Math.trunc(b/Tb);c=Math.trunc(c/Tb);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Q(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function R(a,b){return Q(a,(~(b/F|0)&15)*F+(~b>>>0))}function S(a,b){return(a<B?a:a-E)-(b<B?b:b-B)}
function xe(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function T(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function U(a){return a<B?a:a-E}function V(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function W(a){return(a/z|0)+(a&y)*z}function de(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Sb?y*z:0}return b}function Vd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
function ve(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=D-f,a=E-a):f&&(f=E-f));if(c)return(f||a>A)&&(f!=D||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%C;b=2*b%E+Math.trunc(c/C);c=a+c%C;d=b-b%C;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function we(a){a?a==C?this.j|=163840:a=Ub-a:this.j|=98304;return a}function Q(a,b){var c=a-b;0>c&&(c+=E);pe.call(this,c,b,a);return c}function pe(a,b,c){a=Math.trunc(a/Tb);b=Math.trunc(b/Tb);c=Math.trunc(c/Tb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function S(a,b){return R(a,(~(b/F|0)&15)*F+(~b>>>0))}function T(a,b){return(a<C?a:a-E)-(b<C?b:b-C)}
function xe(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function U(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function V(a){return a<C?a:a-E}function W(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function X(a){return(a/z|0)+(a&y)*z}function de(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Sb?y*z:0}return b}function Vd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
function se(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=E&&(a[0]%=E,a[1]++)}function re(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ue(a){a[1]%2&&(a[0]+=E);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function te(a){return!a[0]&&!a[1]}
var sd=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},td,function(a,b){0>this.I&&td.call(this);ud.call(this,0,b)},ud,function(a,b){0>this.I&&td.call(this);vd.call(this,0,b)},vd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
@ -117,162 +118,164 @@ function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a)
we.call(this,this.f(b)))},function(a,b){a=we.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,oe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,oe.call(this,this.f(b)))},function(a,b){a=oe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ve.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,ve.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,ve.call(this,this.f(b),this.f(this.b),
!0))},function(a,b){this.g(this.b,this.g(b,ve.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,ve.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,ve.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,ve.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ve.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=qe.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+
1&15,this.F))},function(a,b){a=qe.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=qe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=qe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=qe.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=qe.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))},
function(a,b){a=this.f(b);b=this.f(b+1&15);b=qe.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=qe.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(E-a):a;0<c?(35<=c?(d=0>d?B:0,c=A):(d=d*Math.pow(2,c)%B,c=B-Math.pow(2,35-c)),a<=A?a+c>A&&(this.u|=131072):a-c<=A&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d;
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<B;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<B||d>A&&
d<C)this.u|=131072;if(71<=a){if(0<e&&e<B||e>A&&e<C)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%B,c=B-Math.pow(2,70-a),f<=A?e+c>A&&(this.u|=131072):e-c<=A&&(this.u|=131072);e=0;f>A&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=A?f+c>A&&(this.u|=131072):(f-c<=A&&(this.u|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d>A?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=A?d=0:(d=C,e+=B)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+
d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=B));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
function(a,b){a=this.f(b);b=this.f(b+1&15);b=qe.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=qe.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(E-a):a;0<c?(35<=c?(d=0>d?C:0,c=A):(d=d*Math.pow(2,c)%C,c=C-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d;
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<C;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<C||d>A&&
d<D)this.j|=131072;if(71<=a){if(0<e&&e<C||e>A&&e<D)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%C,c=C-Math.pow(2,70-a),f<=A?e+c>A&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=C,e+=C)}else d=d*Math.pow(2,a)%C+Math.trunc(e%C/Math.pow(2,35-a)),e=e*Math.pow(2,a)%C,c=C-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=C,e+=C)}else-36>=a?(e=-72>=a?d>A?D:0:Math.trunc(d%C/Math.pow(2,-a-35)),d<=A?d=0:(d=D,e+=C)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%C/Math.pow(2,-a))+
d%C*Math.pow(2,35+a)%C,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=C));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%E,d=0):(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},K,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d*
z+c),a||pd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<B&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=B&&H(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,H(this,this.b))},function(){this.sa=this.b},K,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.u|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;
0>a&&(a+=E);(a/z|0)==y&&(this.u|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.u&y)*z+this.i);H(this,this.b+1)},function(a,b){this.g(b,(this.u&y)*z+this.i);H(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},
function(a,b){this.g(b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,P.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P.call(this,this.f(b),this.f(this.b))))},me,function(a,b){0>S(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){S(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=S(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=S(this.f(b),this.b)&&H(this,
this.i+1)},function(a,b){S(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<S(this.f(b),this.b)&&H(this,this.i+1)},ne,function(a,b){0>S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<S(this.f(b),this.f(this.b))&&
H(this,this.i+1)},me,function(a,b){0>U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))||H(this,this.b)},function(a,b){0>=U(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))&&H(this,this.b)},function(a,b){0<U(this.f(b))&&H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)||H(this,this.i+1);b&&this.g(b,
a)},function(a,b){a=this.f(this.b);0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,O.call(this,this.f(b),1))},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,
O.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,
b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,
b){a=this.g(this.b,O.call(this,this.f(this.b),1));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,P.call(this,this.f(b),1))},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,P.call(this,this.f(b),
1));H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));U(a)||H(this,this.i+
1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<U(a)&&H(this,this.i+
1);b&&this.g(b,a)},zd,zd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),this.b))},function(a,b){this.g(this.b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(C-this.f(b),this.b))},function(a,b){this.g(this.b,Q(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,
this.g(b,Q(C-this.f(b),this.f(this.b))))},wd,xd,ne,wd,function(a,b){this.g(b,Q(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),C-this.b))},function(a,b){this.g(this.b,Q(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(this.f(b),C-this.f(this.b))))},me,me,yd,yd,function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(this.b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(this.f(b),
this.f(this.b))))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(this.b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,Q(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,Q(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(C-this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,
xe(this.f(b),this.f(this.b)))},function(a,b){this.g(b,xe(this.f(b),this.b))},function(a,b){this.g(this.b,xe(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe(this.f(b),this.f(this.b))))},Ad,Ad,function(a,b){this.g(this.b,C-this.f(b))},function(a,b){this.g(this.b,this.g(b,C-this.f(b)))},function(a,b){this.g(b,T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(C-this.f(b),this.b))},function(a,b){this.g(this.b,T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,
T(C-this.f(b),this.f(this.b))))},function(a,b){this.g(b,C-this.f(this.b))},function(a,b){this.g(b,C-this.b)},function(){this.g(this.b,C-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.b))},function(a,b){this.g(this.b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,T(C-this.f(b),C-this.f(this.b)))},function(a,
b){this.g(b,T(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,T(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(C-this.f(b),C-this.f(this.b))))},Td,Td,function(){this.g(this.b,C)},function(a,b){this.g(this.b,this.g(b,C))},Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,ce,ee,fe,ge,he,ie,je,ke,ce,ee,fe,ge,he,ie,je,ke,ce,ee,fe,ge,he,ie,je,ke,ce,ee,fe,ge,he,ie,je,ke,me,me,function(a,b){Q(this.f(b),this.b)||H(this,this.i+1)},function(a,
b){Q(this.f(b),this.b*z)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){Q(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Q(this.f(b),this.b*z)&&H(this,this.i+1)},ne,ne,function(a,b){Q(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){Q(this.f(b),W(this.f(this.b)))||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){Q(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Q(this.f(b),W(this.f(this.b)))&&
H(this,this.i+1)},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(b,R(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||H(this,this.i+1);this.g(b,R(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)||H(this,this.i+1);this.g(b,R(a,c))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&H(this,this.i+1);this.g(b,R(a,this.b))},function(a,b){a=this.f(b);
var c=this.b*z;Q(a,c)&&H(this,this.i+1);this.g(b,R(a,c))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)||H(this,this.i+1);this.g(b,R(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,this.i+1);this.g(b,R(a,c))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),W(this.f(this.b))))},function(a,
b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,R(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,R(a,c))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(b,V(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){H(this,
this.i+1);this.g(b,V(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,
b){H(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=
this.f(b);Q(a,this.b*z)||H(this,this.i+1);this.g(b,T(a,this.b*z))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);
Q(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,
N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],le=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
function ye(a){u.call(this,"ROM",a,128);this.U=this.b=null;this.C=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=va(this.w);if(this.w){a=this.w;var b=wa(this.F);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.Ua,a,b),(a=Ma(a,b))?(c.b=a.Y,c.U=a.U):c.w=null);ze(c)})}}pa(ye,u);
ye.prototype.Fa=function(a,b,c,d){this.G=b;this.v=c;this.D=d;ze(this)};ye.prototype.wa=function(){this.U&&(this.D&&Ae(this.D,this.id,this.C,this.u,this.U),delete this.U);return!0};ye.prototype.la=function(){return!0};
function ze(a){if(!Jb(a)){if(a.w){if(!a.b||!a.G)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)yb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.u,8,!0)+")");else{var b;b=a.C;if(Fc(a.G,b,a.u,Nc)){var c;for(c=0;c<a.b.length;c++)vc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.u,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.u;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Kb(a)}}Ya(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new ye(d);sb(d,c)}});
function Be(a){u.call(this,"RAM",a);this.U=this.Ja=null;this.i=+a.addr;this.u=+a.size;this.ua=a.load;this.ta=a.exec;null!=this.ua&&(this.ua=+this.ua);null!=this.ta&&(this.ta=+this.ta);this.w=this.F=!1;this.b=a.file;this.C=va(this.b);if(this.b){a=this.b;var b=wa(this.C);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.Ua,a,b),(a=Ma(a,b))?(c.Ja=a.Ja,
c.U=a.U,null==c.ua&&(c.ua=a.ua),null==c.ta&&(c.ta=a.ta)):c.b=null);Ce(c)})}}pa(Be,u);Be.prototype.Fa=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.wa=function(a,b){this.U&&(this.D&&Ae(this.D,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Be.prototype.la=function(){return!0};
function Ce(a){if(a.G&&(!a.w&&a.u&&(Fc(a.G,a.i,a.u,1)?a.w=!0:a.u=0),!Jb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ja)return;De(a,a.Ja,a.ua,a.ta,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Kb(a)}}
Be.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ja&&De(this,this.Ja,this.ua,this.ta,this.i,!this.D)}this.F=!1};
function De(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.V?a.A.N||pc(a):a.A.Z=!0:a.D&&a.A.V?a.W()||a.H.A.reset||(ad(a.D),I(a.H,-1)):!1===f&&a.W(),!a.A.N&&a.Ia&&a.Ia.stop()));return g}Ya(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Be(d);sb(d,c)}});
function Ee(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Fe;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ma(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.ac,setConnection:this.dc}}pa(Ee,u);l=Ee.prototype;
l.ma=function(a,b,c){var d=this;switch(b){case Fe:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ra.qb:ra.Gb:46==c?b=ra.qb:a.ctrlKey&&c>=ra.pb&&c<=ra.Hb&&(b=c-(ra.pb-ra.Db));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Fb&&(b=ra.Eb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Fa=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Kb(this)};
l.Cb=function(a){if(!this.b){var b=Yc(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.Ta)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.C=e.receiveData){this.u=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Cb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.la=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.ac=function(){};l.dc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Fe="buffer";
Ya(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ee(d);sb(d,c)}});function Ge(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.fa=32;this.qa=["{","}"];this.oa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.u=[];this.K={}}pa(Ge,u);Ge.prototype.kb=function(){return-1};Ge.prototype.lb=function(){};
function He(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Da(b.substring(c,f))),c=f+1}}return a}
function Ie(a,b,c,d){var e=b;c=c||a.fa;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else if(32>=c)e=b|0;else if(a=Math.pow(2,c-1),b<-a||b>=a)e=b%a;b!=e&&(b=e);return b}
function Je(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f=b.pop(),g=b.pop();switch(e){case "*":e=g*f;break;case "/":if(!f)return!1;e=g/f;break;case "%":if(!f)return!1;e=g%f;break;case "+":e=g+f;break;case "-":e=g-f;break;case "<<":e=g<<f;break;case ">>":e=g>>f;break;case ">>>":e=g>>>f;break;case "<":e=g<f?1:0;break;case "<=":e=g<=f?1:0;break;case ">":e=g>f?1:0;break;case ">=":e=g>=f?1:0;break;case "==":e=g==f?1:0;break;case "!=":e=g!=f?1:0;break;case "&":e=
32>=a.fa?g&f:((g/Ke|0)&(f/Ke|0))*Ke+((g&f)>>>0);break;case "!":case "|":e=32>=a.fa?g|f:(g/Ke|0|f/Ke|0)*Ke+((g|f)>>>0);break;case "^^":e=g^f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;default:return!1}b.push(Ie(a,e,a.fa))}return!0}
function X(a,b,c){var d;b&&(b=Le(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var p=n[e++],t=p.length,p=Da(p);if(!p){f=!0;break}p=Me(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(Ie(a,p,a.fa));if(e==n.length)break;var p=n[e++],D=p.length;k.length&&Ne[p]<Ne[k[k.length-1]]&&Je(a,h,k,1);k.push(p);b=b.substr(t+D)}Je(a,h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):
(d=h.pop(),c&&Oe(a,null,d))}return d}
function Le(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=X(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}if(a.oa.length)for(d=a.oa[0],e=a.oa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=
0}if(null==d)break;a=a.replace(b[0],d.toString())}return a}function Me(a,b,c,d){var e;null!=b?(e=a.kb(b),0<=e?e=a.lb(e):(e=a.K[b],null==e&&(e=sa(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
function Oe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=void 0,p=8,t="";p?32<p&&(p=32):p=32;for(var D=null==k||isNaN(k),da=n=n||p;0<p--;)da||(t=","+t,da=n),t=(D?"?":k&1?"1":"0")+t,k>>=1,da--;g=t+g;d>>=8}d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Pe(a){var b=a.K;a.K={};return b}
function Qe(a,b){if(b)return Oe(a,b,a.K[b]);var c=0;for(b in a.K)Oe(a,b,a.K[b]),c++;return 0<c}function J(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=m(b,0<c?(c+2)/3|0:0);break;case 10:a=ua(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ne={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ke=Math.pow(2,32);
function Re(a){Ge.call(this,a);this.Ca=!1;this.Aa=18;this.fa=36;this.qa=["<",">"];this.oa=[];this.Ba=Y();this.L=Y(0);this.na=Y(0);this.ba=Y(0);this.F=[];this.b=this.M=this.I=[];Se(this);this.S=this.ia=0;this.i=[];this.xa=void 0;Te(this);this.D=this;this.ra={};this.X=this.yb=0;this.T=null;this.P=[];Ue(this,a.messages);this.za=a.commands;this.O=0;this.Ia=this.ya=null;this.C=this.Ea=this.Da=this.ha=this.sa=0;this.pa=this.ga=this.aa=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return cd(b,
a)}):void 0===global[w]&&(global[w]=function(a){return cd(b,a)})}pa(Re,Ge);function Ve(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,ja:!1,ca:c}}function We(a,b,c,d){a.B=b;a.Wa=c||!1;a.ja=!1;a.ca=d}function Xe(a){return[a.B,a.Wa,a.ja,a.ca,a.Za]}function Ye(a,b){var c=Y(b[0],b[1],b[2]);c.ja=b[3];b[4]&&(c.tb=He(a,c.Za=b[4]));return c}l=Re.prototype;
l.Fa=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.u;this.Aa=b.F;(a=Yc(a,"messages"))&&Ue(this,a);Ze(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ve($e(d,c,d.na));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Ic[c],p&&d.j(q(p.id,8)+" %"+q(e<<d.G.i,8)+" %"+q(p.B,8)+
" "+q(p.Pa,4,!0)+" "+q(p.size,4,!0)+" "+n),c!=Mc&&(c=-1),n=0);a+=16384;e++}}});Kb(this)};
l.ma=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Wa(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.Ha=function(a,b){var c=-1,d=Ve(a);-1!==d&&(c=wc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Ve(a);-1!==d&&(vc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
function $e(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){b=Le(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var n=a.F[k].U[f];if(null!=n){h=n.o;break}}null!=h&&(g=Y(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=X(a,b,void 0)}null!=f&&(f=af(f,a.Aa),We(c,f,d,e));return c}function bf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.tb=He(a,b.Za=c[2]))}
function af(a,b){0>a&&a>=-B&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function cf(a){return m(a/Rb,6)+" "+m(a%Rb,6)}
function Ue(a,b){a.D=a;a.X=a.yb=536870916;a.T=null;a.P=[];b=He(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=Zb[c],a.j(c+" messages enabled"))}}function Ze(a,b){for(var c in Zb)if(16==Zb[c]){a.ra[c]=b;break}}l.kb=function(a){return df.indexOf(a.toUpperCase())};
l.lb=function(a){var b,c=this.v;switch(a){case ef:b=c.i;break;case ff:b=c.K;break;case gf:b=c.b;break;case hf:b=c.u&65536?1:0;break;case jf:b=c.u&32768?1:0;break;case kf:b=c.u&131072?1:0;break;case lf:b=c.u&32?1:0;break;case mf:b=c.u&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+J(this,Y(this.v.za).B));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.N)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,kd(a),a.ga=0,a.H&&I(a.H,void 0))}};
function Te(a){var b;if(!qd(a))a.i&&a.i.length&&a.j("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(nf);for(b=0;b<a.i.length;b++)a.i[b]=Y();a.S=0;a.j("instruction history buffer allocated")}}function of(a,b,c){if(!pf(a,c))return!1;pc(a.v,b);return!0}
function qc(a,b,c,d){if(!pf(a))return!1;var e="";null===c&&(e=(c=!a.ya||"tr"==a.ya)?"tr":"t");a.C=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Ra(b);0<f&&(rc(a.v,f),a.C+=f,sc(a.v,f,!0),tc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),I(a.H,-1));ad(a,c||!1,e);return 0<a.C}l.W=function(a){this.v&&this.v.W(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Ca&&(c&&a.j(qf+c),We(a.L,a.v.i),b&&1!=a.O?rf(a):sf(a))}
function pf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Ib(a.v)}l.wa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.la=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Te(this);this.ha=0;this.T=null;this.C=0;We(this.L,this.v.i);this.A.N=!1;tf(this);a||ad(this)};
l.save=function(){var a=new G(this);a.set(0,Xe(this.L));a.set(1,Xe(this.na));a.set(2,Xe(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Ye(this,a[b++]),this.na=Ye(this,a[b++]),this.ba=Ye(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.N=!0;this.Da=a;this.Ea=b};
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Ea;if(!this.O){b="stopped";if(this.C){a-=this.Da;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";qd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ad(this,!0);bd(this);tf(this,this.v.i);this.T=null}};function qd(a){return 1<a.b.length||!!a.ia}
function rd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.za==b&&(b=pd(a.v,1)));if(0<c&&(a.ia&&!--a.ia||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&(We(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function uf(a,b,c,d){var e=Y(b.B),f=a.Ha(b,1),g,h,k,n=0,p=f/Vb|0,t;for(t in vf)if(g=vf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=wf;n=p&3;break;case 32256:k=xf;n=p&7;break;case 29248:k=yf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>zf&&(k="B");k=Af[g||0]+k;if(g){if(28700==h)h=f/Wb&127,n=J(a,h,-1);else if(h=f>>23&15,n=J(a,h,-1),h)for(p=0;p<Bf.length;p++)g==Bf[p][0]&&(t=Bf[p][h])&&(k=Af[t],n="");k=Ca(k,8)+(n?n+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,-1)+")")}else k=
Ca(k,8)+cf(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ha(e,1),g+=" "+cf(k),null==e.B)break;while(e.B!=b.B)}h+=Ca(g,16)+f;c&&(h=Ca(h,48)+";"+(c||""),h=a.v.A.La?h+("cycles="+dd(a.v).toString()+" cs="+q(a.v.Ba)):h+(null!=d?"="+d.toString():""));return h}
function Cf(a,b,c,d){var e=-1,f,g;if(b){for(var h=b.toUpperCase(),k=0;k<Bf.length;k++)for(var n in Bf[k])if(+n&&(g=Bf[k][n],h==Af[g])){h=Af[Bf[k][0]];c&&(c=J(a,+n)+","+c);break}for(var p in vf){f=+p;n=vf[p];switch(f){case 32512:k=wf;break;case 32256:k=xf;break;case 29248:k=yf;break;default:k=[""]}for(var t in n){g=n[t];for(var D=0;D<k.length;D++){var da=k[D];"S"==da&&g>zf&&(da="B");if(h==Af[g]+da){e=29248!=f?D:(D&3)<<1|(D&12)<<2;e=(t|e<<6)*Vb;break}}if(0<=e)break}if(0<=e)break}}else c&&(e=f=0);if(0<=
e&&c)for(h=c.split(","),p=0;p<h.length;p++)if(g=h[p].trim()){if(1<p){a.j("too many operands: "+g);e=-1;break}t=g.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!t){a.j("unknown operand: "+g);e=-1;break}g=t[2];if(p||1==h.length)g=g?g.replace(/(^|[^0-9])\./g,"$1"+J(a,d)):"0";g=X(a,g);if(void 0==g){e=-1;break}if(!p&&1<h.length)if(28700==f){if(0>g||127<g)g&=127;e+=g*Wb}else{if(0>g||15<g)g&=15;e+=g<<23}else{if(0>g||262143<g)g&=Qb;e+=g;if(g=t[3]){g=X(a,g);if(void 0==g){e=-1;break}if(0>g||15<g)g&=15;e+=g<<18}t[1]&&
(e+=4194304)}}0>e&&null!=c&&a.j("unknown instruction: "+b+" "+c);return e}function Se(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Ve(c);var d=a.G;Uc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Ve(c),d=a.G,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.sa=0;a.ia=0}
l.Ka=function(a,b,c){var d=!0;c||eg(this,a,b,!1,!0);if(a!=this.b){var e=Ve(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ka(e&16383,a==this.I)}}d&&(a.push(b),c?b.ja=!0:(gg(this,a,a.length-1,"set"),Te(this)));return d};function eg(a,b,c,d,e){var f=!1;c=Ve(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Ve(h)&&(!d||h.ja)){f=!0;h.ja||e||gg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Uc(d.b[c>>>d.i],b==a.I));h.ja||Te(a);break}}return f}
function hg(a,b){for(var c=1;c<b.length;c++)gg(a,b,c);return b.length-1}function gg(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function tf(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ja){if(!eg(a,a.b,c,!0))break;b=0}}}
function Vc(a,b,c,d,e){var f=!1;if(!a.sa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ja)for(var k=Ve(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.ja&&(eg(a,d,h,!0),e=!0);if(p=h.tb){for(var f=!1,t=0;t<p.length;t++)if(!ig(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var D=t+1;D<p.length&&p[D].indexOf("else");D++)t++;if(D==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.sa--;return f}
function jg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);We(e.Ba,d);f+="="+J(e,e.Ha(e.Ba),36)+" ";c+=f}if(b){b="";for(d=0;d<df.length;d++)(e=df[d]||"")&&(e+="="+J(a,a.lb(d),d>=hf?1:d==ff?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ae(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Ea(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Ob:d,U:e,ub:f})}function kg(a,b,c){var d=[],e=Ve(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ob;if(e>=g&&e<g+h){e=Ea(f.ub,[e-g],a.zb);0<=e?lg(a,b,e,d):c&&(e=~e,lg(a,b,e-1,d),lg(a,b,e,d));break}}return d}
function mg(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){vc(e,b,a);d++});d?a.j(d+" words loaded at "+J(a,c)+"-"+J(a,c+d-1)):a.j("no data")}function lg(a,b,c,d){var e={},f=a.F[b].ub,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function ng(a,b){var c=$e(a,b[1],a.ba);if(c){var d=b[2];if(void 0==d)a.j("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.pa)a.j("assembly already in progress");else{var g=c.B;a.pa=new og(f[2],g,e,a,function(b,c){b?a.j("error ("+b+") processing "+c):mg(a,a.pa.w,g);a.pa=null})}else b.shift(),b.shift(),b.shift(),b=Cf(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.j(uf(a,c)))}}}
function pg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Qe(a)||a.j("no variables"),!0;if(!c[2])return Qe(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=X(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function qg(a,b,c){var d=null;if(b=$e(a,b)){var e=kg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function rf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=X(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case ef:H(h,
g);We(a.L,h.i);break;case hf:f=65536;break;case jf:f=32768;break;case kf:f=131072;break;case lf:f=32;break;case mf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);I(a.H);a.j("updated registers:")}}a.j(jg(a,e));c&&(We(a.L,d.i),sf(a,J(a,a.L.B)))}}function rg(a,b){b=Da(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Oe(a,null,c[2].charCodeAt(0)):X(a,b,!0)}
function sg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Me(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ya=b;Va(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ga&&a.ga.stop();I(a.H,-1);Mb(a,!1)})}}
function sf(a,b,c,d){if(b=$e(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Me(a,c.substr(1)),null!=c&&(d=c);else{d=$e(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.B=n.B;h.Wa=n.Wa;h.ja=n.ja;h.ca=n.ca;a.j(uf(a,b,g,f));e-=b.B-k;c++}}}
function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(qf+b):(a.R&&(a.j("ended assemble at "+J(a,a.ba.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Jb(a)&&0<b.length){a.R&&(b="a "+J(a,a.ba.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),n=1;n<h.length;n++){var p=h.charAt(n);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(n);g.unshift(h.substr(0,n));break}}switch(g[0].charAt(0)){case "a":ng(a,g);
break;case "b":a:{var t=g[0],D=g[1],da=b;if("?"==D)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var Ha=t.charAt(1);if("l"==Ha){var Bd;Bd=0+hg(a,a.b);Bd+=hg(a,a.M);(Bd+=hg(a,a.I))||a.j("no breakpoints")}else if("n"==Ha){var Df=+D||0;D&&(a.ia=Df);a.j("break after "+Df+" instruction(s)")}else if(void 0===
D)a.j("missing breakpoint address");else{var Z=Y();if("*"!=D&&(Z=$e(a,D,a.L),!Z))break a;"c"==Ha?null==Z.B?(Se(a),a.j("all breakpoints cleared")):eg(a,a.b,Z)||eg(a,a.M,Z)||eg(a,a.I,Z)||a.j("breakpoint missing: "+J(a,Z.B)):null!=Z.B&&(bf(a,Z,da),"p"==Ha?a.Ka(a.b,Z):"r"==Ha?a.Ka(a.M,Z):"w"==Ha?a.Ka(a.I,Z):a.j("unknown breakpoint command: "+Ha))}}}break;case "c":a.va&&(a.va.value="");break;case "d":a:{var $a,ab=g[0],la=g[1],xa=g[2],kh=g[3];if("?"==la){var bb="";for($a in Zb)a.ra[$a]&&(bb&&(bb+=","),
bb+=$a);bb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");bb.length&&a.j("dump extension commands:\n\t"+bb)}else if("state"==la){var Cd=tg(a.H,!0);"console"==xa?console.log(Cd):(a.va&&(a.va.value=""),Cd&&a.j(Cd))}else if("symbols"==la)for(var Dd=0;Dd<a.F.length;Dd++){var Ed=a.F[Dd],cb;for(cb in Ed.U)if("."!=cb.charAt(0)){var Ef=
Ed.U[cb].o;if(void 0!==Ef){var Ff=Ed.U[cb].l;Ff&&(cb=Ff);a.j(J(a,Ef)+" "+cb)}}}else{if("d"==ab){for($a in Zb)if(g[1]==$a){var Gf=a.ra[$a];Gf?(g.shift(),g.shift(),Gf(g)):a.j("no dump registered for "+la);break a}la||(ab=a.Ia||"dw")}else a.Ia=ab;if("dh"==ab){var Hf=la,If=xa,Jf="",Kf=0,ia=a.S,ma=a.i;if(ma.length){var ea=+Hf||a.xa,zb=+If||10;isNaN(ea)?ea=zb:Jf="more ";ea>ma.length&&(a.j("note: only "+ma.length+" available"),ea=ma.length);ia-=ea;0>ia&&(null==ma[ma.length-1].B?(ea=ia+ea,ia=0):ia+=ma.length);
var Fd=[];"call"==If&&(zb=1E5,Fd=["CALL"]);for(void 0!==Hf&&a.j(ea+" instructions earlier:");0<zb&&ia!=a.S;){var Lf=ma[ia++];if(null==Lf.B)break;var Ab=Y(Lf.B),lh=ea--,Mf=uf(a,Ab,"history",lh);(!Fd.length||0<=Mf.indexOf(Fd[0]))&&a.j(Mf);Ab.ib&&(ia+=Ab.ib,zb-=Ab.ib,ea-=Ab.ib);ia>=ma.length&&(ia=0);a.xa=ea;Kf++;zb--}}Kf||(a.j("no "+Jf+"history available"),a.xa=void 0)}else{var db=$e(a,la,a.na);if(db){var Ia=0,Nf="ds"==ab;if(xa){if("l"==xa.charAt(0))xa=xa.substr(1)||kh,Ia=Me(a,xa);else{var Of=$e(a,xa);
Of&&(Ia=Of.B-db.B)}0>Ia&&(Ia=0);65536<Ia&&(Ia=65536)}var mh=a.ca;db.ca&&(a.ca=db.ca);for(var Pf="db"==ab?1:2,Gd=Ia||32,Hd=1==Pf?2:4,nh=(Gd+Hd-1)/Hd|0||1,Ja="";nh--&&0<Gd;){for(var Ka="",Id="",la=J(a,db.B),Qf=Hd;0<Qf--&&0<Gd--;){var Jd=a.Ha(db,1);Nf?(Ka&&(Ka+=","),Ka+=Jd):(Ka+=cf(Jd),Ka+=" ");for(var zc=29,oh=0;1==Pf&&0<=zc;oh++)var Rf=Jd/Math.pow(2,zc)%Math.pow(2,7)+0,Id=Id+(32>Rf?".":String.fromCharCode(Rf)),zc=zc-7}Ja&&(Ja+="\n");Ja=Nf?Ja+(Ka+","):Ja+(la+": "+Ka+(0>Qf?" "+Id:""))}Ja&&a.j(Ja);a.ca=
mh}}}}break;case "e":if("else"==g[0])break;var Sf,Tf,Uf=g[0],Kd=g[1];"e"==Uf||"ew"==Uf?(Sf=a.Ha,Tf=a.rb):Kd=null;if(null==Kd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Ac=$e(a,Kd,a.na);if(Ac)for(var Ld=2;Ld<g.length;Ld++){var Bb=X(a,g[Ld]);if(void 0===Bb)break;Bb=af(Bb);a.j("changing "+J(a,Ac.B)+" from "+cf(Sf.call(a,Ac))+" to "+cf(Bb));Tf.call(a,Ac,Bb,1)}}break;case "g":a:{var Vf=g[1],ph=b;if(void 0!==Vf){var Md=$e(a,Vf);if(!Md)break a;bf(a,Md,ph);a.Ka(a.b,
Md,!0)}of(a,!0,c)}break;case "h":a.A.N?(c||a.j("halting"),a.W()):Lb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Nd;var Cb=b.substr(2),Cb=Da(Cb);X(a,Cb)?(c||a.j("true: "+Cb),Nd=!0):(c||a.j("false: "+Cb),Nd=!1);Nd||(d=!1);break}f=!0;break;case "k":var qh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Od=0,Pd=Y(),Db=Y();for(a.j("stack trace for "+J(a,Db.B));10>Od;){for(var La=null,rh=256;65536>Db.B>>>
0;){Pd.B=a.Ha(Db,2);if(null==Db.B||!rh--)break;if(!(Pd.B&1)){for(var sh=a,Bc=Pd,Wf=null,Eb=Bc.B,Xf=Eb,Qd=1;6>=Qd&&Eb;Qd++){if(2<Qd){Bc.B=Eb;var Cc=uf(sh,Bc);if(0<=Cc.indexOf("JSR")){var Yf=Cc.indexOf(" ");if(Eb+(Cc.indexOf(" ",Yf+1)-Yf-1)/2==Xf){Wf=Cc;break}}}Eb-=2}Bc.B=Xf;if(La=Wf)break}}if(!La||null==La)break;var Zf=null;if("ks"==qh){var $f=La.match(/[0-9A-F]+$/);$f&&(Zf=qg(a,$f[0]))}La=Ca(La,50)+" ;"+(Zf||"stack="+J(a,Db.B));a.j(La);Od++}Od||a.j("no return addresses found")}break;case "l":if("ln"==
g[0]){qg(a,g[1],!0);break}f=!0;break;case "m":a:{var na,oa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var ya=0;if("all"==L)ya=1879046143,L=null;else if("on"==L)oa=!0,L=null;else if("off"==L)oa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(na in Zb)if(L==na){ya=Zb[na];oa=!!(a.X&ya);break}if(!ya){a.j("unknown message category: "+L);break a}}if(ya)if("on"==g[2])a.X|=ya,oa=!0;else if("off"==g[2]&&(a.X&=~ya,oa=!1,1073741824==ya)){for(var ag=1E3<=a.P.length?a.P.length-1E3:0;ag<a.P.length;)a.j(a.P[ag++]);
a.P=[]}}var th=0,Fb="";for(na in Zb)if(!L||L==na){var uh=!!(a.X&Zb[na]);if(null===oa||oa==uh)Fb&&(Fb+=","),++th%10||(Fb+="\n\t"),"key"==na&&(na="keys"),Fb+=na}void 0===L&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==oa?oa?"messages on: ":"messages off: ":"message categories:\n\t")+(Fb||"none"));Te(a)}break;case "p":if("print"==g[0]){rg(a,b.substr(5));break}var bg=g[0],cg="p"==bg?0:"pr"==bg?1:-1;if("?"==g[1]||0>cg)a.j("step commands:"),a.j("\tp\tstep over instruction"),
a.j("\tpr\tstep over instruction with register update");else if(a.O)a.j("step in progress");else{var dg=Y(a.v.i);a.Ha(dg);a.O?(a.Ka(a.b,dg,!0),of(a)||(a.H&&hd(a.H),a.O=0)):sg(a,cg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}rf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Gb=+g[2];if(8==Gb||10==Gb||16==Gb)a.ca=Gb;else{a.j("invalid base: "+Gb);break}}a.j("default base: "+a.ca);break;case "cs":var Hb;void 0!==g[3]&&(Hb=+g[3]);switch(g[2]){case "int":a.v.na=Hb;break;
case "start":a.v.Ca=Hb;break;case "stop":a.v.oa=Hb;break;default:a.j("unknown cs option");break a}void 0!==Hb&&$c(a.v);a.j("checksums "+(a.v.A.La?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),
a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":sg(a,g[0],g[1]);break;case "u":sf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){pg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){rg(a,b.substr(1));break}var Rd="commands:",Sd;for(Sd in ug)Rd+="\n"+
Ca(Sd,9)+ug[Sd];qd(a)||(Rd+="\nnote: history disabled if no exec breakpoints");a.j(Rd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(fg){a.j("Debugger "+(fg.stack||fg.message)),d=!1}return d}function cd(a,b,c){b=He(a,b,c);for(var d in b)if(!ig(a,b[+d]))return!1;return!0}
var ug={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},zf=20,Af=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
ef=0,ff=1,gf=2,hf=3,jf=4,kf=5,lf=6,mf=7,df="PC RA EA C0 C1 OV ND PD".split(" "),vg={},vf=(vg[28672]={0:101},vg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},vg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:zf,9216:53,9472:52,
z+c),a||pd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a<C&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a>=C&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Fa,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.sa=this.b},K,function(a){this.w(a)},function(a,b){a=
this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=E);(a/z|0)==y&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&y)*z+this.i);H(this,this.b+1)},function(a,b){this.g(b,(this.j&y)*z+this.i);H(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,
b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},me,function(a,b){0>T(this.f(b),this.b)&&H(this,
this.i+1)},function(a,b){T(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.b)&&H(this,this.i+1)},ne,function(a,b){0>T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},
function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.f(this.b))&&H(this,this.i+1)},me,function(a,b){0>V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))||H(this,this.b)},function(a,b){0>=V(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))&&H(this,this.b)},function(a,b){0<V(this.f(b))&&
H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);
0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,O.call(this,this.f(b),1))},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),
1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,
O.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>V(a)&&H(this,this.b)},function(a,
b){a=this.g(b,Q.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));b&&this.g(b,a)},
function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},
function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},zd,zd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},
function(a,b){this.g(b,R(D-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(D-this.f(b),this.b))},function(a,b){this.g(this.b,R(D-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(D-this.f(b),this.f(this.b))))},wd,xd,ne,wd,function(a,b){this.g(b,R(this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),D-this.b))},function(a,b){this.g(this.b,R(this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),D-this.f(this.b))))},me,me,yd,yd,function(a,b){this.g(b,
W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(this.b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,W(this.f(b),this.f(this.b))))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(this.b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,
R(D-this.f(b),D-this.b))},function(a,b){this.g(this.b,R(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(D-this.f(b),D-this.f(this.b))))},function(a,b){this.g(b,xe(this.f(b),this.f(this.b)))},function(a,b){this.g(b,xe(this.f(b),this.b))},function(a,b){this.g(this.b,xe(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe(this.f(b),this.f(this.b))))},Ad,Ad,function(a,b){this.g(this.b,D-this.f(b))},function(a,b){this.g(this.b,this.g(b,D-this.f(b)))},function(a,b){this.g(b,
U(D-this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(D-this.f(b),this.b))},function(a,b){this.g(this.b,U(D-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(D-this.f(b),this.f(this.b))))},function(a,b){this.g(b,D-this.f(this.b))},function(a,b){this.g(b,D-this.b)},function(){this.g(this.b,D-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,D-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),D-this.b))},function(a,b){this.g(this.b,
U(this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),D-this.f(this.b))))},function(a,b){this.g(b,U(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,U(D-this.f(b),D-this.b))},function(a,b){this.g(this.b,U(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(D-this.f(b),D-this.f(this.b))))},Bd,Bd,function(){this.g(this.b,D)},function(a,b){this.g(this.b,this.g(b,D))},Cd,Wd,Xd,Yd,Zd,$d,ae,be,Cd,Wd,Xd,Yd,Zd,$d,ae,be,Cd,Wd,Xd,Yd,Zd,$d,ae,be,Cd,Wd,Xd,Yd,
Zd,$d,ae,be,ce,ee,fe,ge,he,ie,je,ke,ce,ee,fe,ge,he,ie,je,ke,ce,ee,fe,ge,he,ie,je,ke,ce,ee,fe,ge,he,ie,je,ke,me,me,function(a,b){R(this.f(b),this.b)||H(this,this.i+1)},function(a,b){R(this.f(b),this.b*z)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){R(this.f(b),this.b*z)&&H(this,this.i+1)},ne,ne,function(a,b){R(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))||
H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),
this.b))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,
this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);
this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),X(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,W(a,
c))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*z)||H(this,this.i+1);this.g(b,U(a,this.b*z))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*
z;R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);
var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],le=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},
function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
function ye(a){u.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(kb(c.Ua,a,b),(a=Ia(a,b))?(c.b=a.Z,c.W=a.W):c.w=null);ze(c)})}}n(ye,u);
ye.prototype.Ha=function(a,b,c,d){this.G=b;this.v=c;this.D=d;ze(this)};ye.prototype.xa=function(){this.W&&(this.D&&Ae(this.D,this.id,this.C,this.j,this.W),delete this.W);return!0};ye.prototype.na=function(){return!0};
function ze(a){if(!Jb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)xb(a,"ROM size ("+r(a.b.length,8,!0)+") does not match specified size ("+r(a.j,8,!0)+")");else{var b;b=a.C;if(Fc(a.G,b,a.j,Nc)){var c;for(c=0;c<a.b.length;c++)vc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Kb(a)}}Xa(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new ye(d);rb(d,c)}});
function Be(a){u.call(this,"RAM",a);this.W=this.Ka=null;this.i=+a.addr;this.j=+a.size;this.va=a.load;this.ua=a.exec;null!=this.va&&(this.va=+this.va);null!=this.ua&&(this.ua=+this.ua);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(kb(c.Ua,a,b),(a=Ia(a,b))?(c.Ka=a.Ka,
c.W=a.W,null==c.va&&(c.va=a.va),null==c.ua&&(c.ua=a.ua)):c.b=null);Ce(c)})}}n(Be,u);Be.prototype.Ha=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.xa=function(a,b){this.W&&(this.D&&Ae(this.D,this.id,this.i,this.j,this.W),delete this.W);b||this.reset();return!0};Be.prototype.na=function(){return!0};
function Ce(a){if(a.G&&(!a.w&&a.j&&(Fc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Jb(a))){if(!a.w)t("No RAM allocated");else if(a.b){if(!a.Ka)return;De(a,a.Ka,a.va,a.ua,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Kb(a)}}
Be.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-C&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ka&&De(this,this.Ka,this.va,this.ua,this.i,!this.D)}this.F=!1};
function De(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.X?a.A.N||pc(a):a.A.aa=!0:a.D&&a.A.X?a.V()||a.H.A.reset||(ad(a.D),I(a.H,-1)):!1===f&&a.V(),!a.A.N&&a.Ja&&a.Ja.stop()));return g}Xa(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Be(d);rb(d,c)}});
function Ee(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Fe;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.J[b])&&this.oa(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.bc,setConnection:this.ec}}n(Ee,u);l=Ee.prototype;
l.oa=function(a,b,c){var d=this;switch(b){case Fe:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.qb:ma.Hb:46==c?b=ma.qb:a.ctrlKey&&c>=ma.pb&&c<=ma.Ib&&(b=c-(ma.pb-ma.Eb));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Gb&&(b=ma.Fb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Kb(this)};
l.Cb=function(a){if(!this.b){var b=Yc(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Ta)return;c=Ea(c[1]);if(this.b=pb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.xa=function(a,b){if(!b)if(this.Cb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.na=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.bc=function(){};l.ec=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Fe="buffer";
Xa(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ee(d);rb(d,c)}});function Ge(a){u.call(this,"Debugger",a);this.T=+a.base||16;this.ia=32;this.ka=null;this.ba=["{","}"];this.qa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.j=[];this.K={}}n(Ge,u);Ge.prototype.kb=function(){return-1};Ge.prototype.lb=function(){};
function He(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ea(b.substring(c,f))),c=f+1}}return a}
function Ie(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b}
function Je(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":e=a;32>=e.ia?f&=g:(f=Ie(e,f,0,!0),g=Ie(e,g,0,!0),f=((f/Ke|0)&(g/Ke|0))*Ke+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Ie(e,f,0,!0),g=Ie(e,g,0,!0),f=(f/Ke|0|g/Ke|0)*Ke+((f|g)>>>0));break;case "^^":e=a;32>=e.ia?f|=g:(f=Ie(e,f,0,!0),g=Ie(e,g,0,!0),f=((f/Ke|0)^(g/Ke|0))*Ke+((f^g)>>>0));break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "><":if(g=35-(g&255))0>f&&(f+=Math.pow(2,36)),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g));break;default:return!1}b.push(Ie(a,
f))}return!0}
function Le(a,b,c,d,e,f){var g,h,k,m=!1,p=!1,q=[],B=[],P=a.T;for(a.T=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Me(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Le(a,b,p,c-1,a.T,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){m=!0;break}p=!0;continue}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{m=!0;f=!f;break}q.push(Ie(a,p));if(!k)break;B.length&&Ne[k]<Ne[B[B.length-1]]&&Je(a,q,B,1);B.push(k);a.T="><"==k?10:e;
p=!1}Je(a,q,B)&&1==q.length||(m=!0);m?!1===f&&a.u("parse error ("+(h||k)+")"):g=q.pop();a.T=P;return g}function Oe(a,b,c){var d;a.ka=null;b&&("{"!=a.ba[0]&&(b=b.split(a.ba[0]).join("{").split(a.ba[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Le(a,b,0,b.length,a.T,c),void 0!==d&&!1===c&&Pe(a,null,d));return d}
function Me(a,b,c,d,e){var f;null!=b?(f=a.kb(b),0<=f?f=a.lb(f):(f=a.K[b],null==f&&(f=na(e?"-"+b:b,a.T),e=!1)),null!=f?e&&(f=-f):d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return f}
function Pe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,m=void 0,p=8,q="";p?32<p&&(p=32):p=32;for(var B=null==k||isNaN(k),P=m=m||p;0<p--;)P||(q=","+q,P=m),q=(B?"?":k&1?"1":"0")+q,k>>=1,P--;g=q+g;d>>=8}d=r(c,0,!0)+" "+c+". "+ua(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Qe(a){var b=a.K;a.K={};return b}
function Re(a,b){if(b)return Pe(a,b,a.K[b]);var c=0;for(b in a.K)Pe(a,b,a.K[b]),c++;return 0<c}function J(a,b,c){c=void 0===c?0:c;switch(a.T){case 8:a=ua(b,0<c?(c+2)/3|0:0);break;case 10:a=va(b,0<c?Math.ceil(.3*c):0);break;default:a=r(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ne={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11},Ke=Math.pow(2,32);
function Se(a){Ge.call(this,a);this.Ea=!1;this.Ca=18;this.ia=36;this.ba=["<",">"];this.qa=[];this.Da=Z();this.L=Z(0);this.pa=Z(0);this.fa=Z(0);this.F=[];this.b=this.M=this.I=[];Te(this);this.S=this.ja=0;this.i=[];this.Aa=void 0;Ue(this);this.D=this;this.ya={};this.Y=this.xb=0;this.U=null;this.P=[];Ve(this,a.messages);this.sa=a.commands;this.O=0;this.Ja=this.Ba=null;this.C=this.Ga=this.Fa=this.ha=this.za=0;this.ra=this.ga=this.ca=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return cd(b,
a)}):void 0===global[w]&&(global[w]=function(a){return cd(b,a)})}n(Se,Ge);function We(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,la:!1,T:c}}function Xe(a,b,c,d){a.B=b;a.Wa=c||!1;a.la=!1;a.T=d}function Ye(a){return[a.B,a.Wa,a.la,a.T,a.Za]}function Ze(a,b){var c=Z(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.sb=He(a,c.Za=b[4]));return c}l=Se.prototype;
l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ca=b.F;(b=Yc(a,"messages"))&&Ve(this,b);if(a=Yc(a,"commands"))this.sa=a;$e(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=We(af(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[e];p.type==c?m++||d.u("..."):(c=p.type,m=Ic[c],p&&d.u(r(p.id,8)+" %"+
r(e<<d.G.i,8)+" %"+r(p.B,8)+" "+r(p.Pa,4,!0)+" "+r(p.size,4,!0)+" "+m),c!=Mc&&(c=-1),m=0);a+=16384;e++}}});Kb(this)};
l.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Va(c,function(){if(d.ca){var a=d.ca.value;
d.ca.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}l.Ia=function(a,b){var c=-1,d=We(a);-1!==d&&(c=wc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=We(a);-1!==d&&(vc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
function af(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.ba[0],h=a.ba[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var m=Oe(a,g[1]);if(void 0===m){b=void 0;break a}b=b.replace(f+g[1]+h,null!=m?J(a,m):"undefined")}if(a.qa.length)for(f=a.qa[0],h=a.qa[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,q;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].W[f],null!=g){q=g.o;break}null!=q&&(p=Z(q));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Oe(a,b)}null!=f&&(f=bf(f,a.Ca),Xe(c,f,d,e));return c}function cf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sb=He(a,b.Za=c[2]))}
function bf(a,b){0>a&&a>=-C&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function df(a){return ua(a/Rb,6)+" "+ua(a%Rb,6)}
function Ve(a,b){a.D=a;a.Y=a.xb=536870916;a.U=null;a.P=[];b=He(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.Y|=Zb[c],a.u(c+" messages enabled"))}}function $e(a,b){for(var c in Zb)if(16==Zb[c]){a.ya[c]=b;break}}l.kb=function(a){return ef.indexOf(a.toUpperCase())};
l.lb=function(a){var b,c=this.v;switch(a){case ff:b=c.i;break;case gf:b=c.K;break;case hf:b=c.b;break;case jf:b=c.j&65536?1:0;break;case kf:b=c.j&32768?1:0;break;case lf:b=c.j&131072?1:0;break;case mf:b=c.j&32?1:0;break;case nf:b=c.j&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+J(this,Z(this.v.Aa).B));if(!this.U||a!=this.U)if(this.U=a,this.Y&1073741824)this.P.push(a);else{var c;if(this.Y&-2147483648&&this.v&&(c=this.v.A.N)||Lb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,kd(a),a.ga=0,a.H&&I(a.H,void 0))}};
function Ue(a){var b;if(!qd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(of);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.S=0;a.u("instruction history buffer allocated")}}function pf(a,b,c){if(!qf(a,c))return!1;pc(a.v,b);return!0}
function qc(a,b,c,d){if(!qf(a))return!1;var e="";null===c&&(e=(c=!a.Ba||"tr"==a.Ba)?"tr":"t");a.C=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Ra(b);0<f&&(rc(a.v,f),a.C+=f,sc(a.v,f,!0),tc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,xb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),I(a.H,-1));ad(a,c||!1,e);return 0<a.C}l.V=function(a){this.v&&this.v.V(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Ea&&(c&&a.u(rf+c),Xe(a.L,a.v.i),b&&1!=a.O?sf(a):tf(a))}
function qf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.X?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.u("cpu busy or unavailable, command ignored"),!1):!yb(a.v)}l.xa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.na=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ue(this);this.ha=0;this.U=null;this.C=0;Xe(this.L,this.v.i);this.A.N=!1;uf(this);a||ad(this)};
l.save=function(){var a=new G(this);a.set(0,Ye(this.L));a.set(1,Ye(this.pa));a.set(2,Ye(this.fa));a.set(3,[this.j,this.R,this.Y]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Ze(this,a[b++]),this.pa=Ze(this,a[b++]),this.fa=Ze(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.Y|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.u("running");this.A.N=!0;this.Fa=a;this.Ga=b};
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Ga;if(!this.O){b="stopped";if(this.C){a-=this.Fa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";qd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}ad(this,!0);bd(this);uf(this,this.v.i);this.U=null}};function qd(a){return 1<a.b.length||!!a.ja}
function rd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Aa==b&&(b=pd(a.v,1)));if(0<c&&(a.ja&&!--a.ja||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&(Xe(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function vf(a,b,c,d){var e=Z(b.B),f=a.Ia(b,1),g,h,k,m=0,p=f/Vb|0,q;for(q in wf)if(g=wf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=xf;m=p&3;break;case 32256:k=yf;m=p&7;break;case 29248:k=zf,m=(p&48)>>2|(p&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>Af&&(k="B");k=Bf[g||0]+k;if(g){if(28700==h)h=f/Wb&127,m=J(a,h,-1);else for(h=f>>23&15,m=J(a,h,-1),p=0;m&&p<Cf.length;p++)if(g==Cf[p][0]&&(q=Cf[p][h])){k=Bf[q];m="";break}k=Ba(k,8)+(m?m+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,
-1)+")")}else k=Ba(k,8)+df(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ia(e,1),g+=" "+df(k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Ma?h+("cycles="+dd(a.v).toString()+" cs="+r(a.v.Ca)):h+(null!=d?"="+d.toString():""));return h}
function Df(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),m=0;m<Cf.length;m++)for(var p in Cf[m])if(+p&&(h=Cf[m][p],k==Bf[h])){k=Bf[Cf[m][0]];c&&(c=J(a,+p)+","+c);break}for(var q in wf){g=+q;p=wf[q];switch(g){case 32512:m=xf;break;case 32256:m=yf;break;case 29248:m=zf;break;default:m=[""]}for(var B in p){h=p[B];for(var P=0;P<m.length;P++){var ea=m[P];"S"==ea&&h>Af&&(ea="B");if(k==Bf[h]+ea){f=29248!=g?P:(P&3)<<1|(P&12)<<2;f=(B|f<<6)*Vb;break}}if(0<=f)break}if(0<=f)break}}else c&&
(f=g=0);if(0<=f&&c)for(k=c.split(","),q=0;q<k.length;q++)if(h=k[q].trim()){if(1<q){a.u("too many operands: "+c);f=-1;break}B=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!B){a.u("unknown operand: "+h);f=-1;break}h=B[2];if(q||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+J(a,d)):"0";h=Oe(a,h,e);if(void 0==h){f=-1;break}if(!q&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Wb}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(0>h||262143<h)h&=Qb;f+=h;if(h=B[3]){h=Oe(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=
15;f+=h<<18}B[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Te(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=We(c);var d=a.G;Uc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=We(c),d=a.G,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.za=0;a.ja=0}
l.La=function(a,b,c){var d=!0;c||eg(this,a,b,!1,!0);if(a!=this.b){var e=We(b);if(-1===e)this.u("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].La(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(gg(this,a,a.length-1,"set"),Ue(this)));return d};function eg(a,b,c,d,e){var f=!1;c=We(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==We(h)&&(!d||h.la)){f=!0;h.la||e||gg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Uc(d.b[c>>>d.i],b==a.I));h.la||Ue(a);break}}return f}
function hg(a,b){for(var c=1;c<b.length;c++)gg(a,b,c);return b.length-1}function gg(a,b,c,d){c=b[c];a.u(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function uf(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.la){if(!eg(a,a.b,c,!0))break;b=0}}}
function Vc(a,b,c,d,e){var f=!1;if(!a.za++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.la)for(var k=We(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.la&&(eg(a,d,h,!0),e=!0);if(p=h.sb){for(var f=!1,q=0;q<p.length;q++)if(!ig(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var B=q+1;B<p.length&&p[B].indexOf("else");B++)q++;if(B==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.za--;return f}
function jg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);Xe(e.Da,d);f+="="+J(e,e.Ia(e.Da),36)+" ";c+=f}if(b){b="";for(d=0;d<ef.length;d++)(e=ef[d]||"")&&(e+="="+J(a,a.lb(d),d>=jf?1:d==gf?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ae(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],q=Fa(p,k,a.zb);0>q&&p.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({td:b,B:c,Pb:d,W:e,tb:f})}function kg(a,b,c){var d=[],e=We(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Pb;if(e>=g&&e<g+h){e=Fa(f.tb,[e-g],a.zb);0<=e?lg(a,b,e,d):c&&(e=~e,lg(a,b,e-1,d),lg(a,b,e,d));break}}return d}
function mg(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){vc(e,b,a);null==c&&(c=b);d++});d?(a.u(d+" words loaded at "+J(a,c)+"-"+J(a,c+d-1)),H(a.v,c||0),ad(a)):a.u("no data")}function lg(a,b,c,d){var e={},f=a.F[b].tb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].W[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function ng(a,b){var c=af(a,b[1],a.fa);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.ra)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.ra=new og(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{mg(a,a.ra.G,h)}catch(p){a.u(p.message)}a.ra=null})}else b.shift(),b.shift(),b.shift(),b=Df(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.u(vf(a,c)))}}}
function pg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Re(a)||a.u("no variables"),!0;if(!c[2])return Re(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Oe(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function qg(a,b,c){var d=null;if(b=af(a,b)){var e=kg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+r(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+r(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function sf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Oe(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case ff:H(h,
g);Xe(a.L,h.i);break;case jf:f=65536;break;case kf:f=32768;break;case lf:f=131072;break;case mf:f=32;break;case nf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);I(a.H);a.u("updated registers:")}}a.u(jg(a,e));c&&(Xe(a.L,d.i),tf(a,J(a,a.L.B)))}}function rg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Pe(a,null,c[2].charCodeAt(0)):Oe(a,b,!1)}
function sg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Me(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Ba=b;Ua(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ga&&a.ga.stop();I(a.H,-1);Mb(a,!1)})}}
function tf(a,b,c,d){if(b=af(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Me(a,c.substr(1)),null!=c&&(d=c);else{d=af(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.u(m)}h[3]&&(g=h[3],f=null);h=a.fa;m=b;h.B=m.B;h.Wa=m.Wa;h.la=m.la;h.T=m.T;a.u(vf(a,b,g,f));e-=b.B-k;c++}}}
function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(rf+b):(a.R&&(a.u("ended assemble at "+J(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Jb(a)&&0<b.length){a.R&&(b="a "+J(a,a.fa.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":ng(a,g);
break;case "b":a:{var q=g[0],B=g[1],P=b;if("?"==B)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var ea=q.charAt(1);if("l"==ea){var Dd;Dd=0+hg(a,a.b);Dd+=hg(a,a.M);(Dd+=hg(a,a.I))||a.u("no breakpoints")}else if("n"==ea){var Ef=+B||0;B&&(a.ja=Ef);a.u("break after "+Ef+" instruction(s)")}else if(void 0===
B)a.u("missing breakpoint address");else{var Y=Z();if("*"!=B&&(Y=af(a,B,a.L),!Y))break a;"c"==ea?null==Y.B?(Te(a),a.u("all breakpoints cleared")):eg(a,a.b,Y)||eg(a,a.M,Y)||eg(a,a.I,Y)||a.u("breakpoint missing: "+J(a,Y.B)):null!=Y.B&&(cf(a,Y,P),"p"==ea?a.La(a.b,Y):"r"==ea?a.La(a.M,Y):"w"==ea?a.La(a.I,Y):a.u("unknown breakpoint command: "+ea))}}}break;case "c":a.wa&&(a.wa.value="");break;case "d":a:{var bb,cb=g[0],oa=g[1],Ca=g[2],lh=g[3];if("?"==oa){var db="";for(bb in Zb)a.ya[bb]&&(db&&(db+=","),db+=
bb);db+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");db.length&&a.u("dump extension commands:\n\t"+db)}else if("state"==oa){var Ed=tg(a.H,!0);"console"==Ca?console.log(Ed):(a.wa&&(a.wa.value=""),Ed&&a.u(Ed))}else if("symbols"==oa)for(var Fd=0;Fd<a.F.length;Fd++){var Gd=a.F[Fd],eb;for(eb in Gd.W)if("."!=eb.charAt(0)){var Ff=Gd.W[eb].o;
if(void 0!==Ff){var Gf=Gd.W[eb].l;Gf&&(eb=Gf);a.u(J(a,Ff)+" "+eb)}}}else{if("d"==cb){for(bb in Zb)if(g[1]==bb){var Hf=a.ya[bb];Hf?(g.shift(),g.shift(),Hf(g)):a.u("no dump registered for "+oa);break a}oa||(cb=a.Ja||"dw")}else a.Ja=cb;if("dh"==cb){var If=oa,Jf=Ca,Kf="",Lf=0,ka=a.S,pa=a.i;if(pa.length){var fa=+If||a.Aa,zb=+Jf||10;isNaN(fa)?fa=zb:Kf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length);var Hd=
[];"call"==Jf&&(zb=1E5,Hd=["CALL"]);for(void 0!==If&&a.u(fa+" instructions earlier:");0<zb&&ka!=a.S;){var Mf=pa[ka++];if(null==Mf.B)break;var Ab=Z(Mf.B),mh=fa--,Nf=vf(a,Ab,"history",mh);(!Hd.length||0<=Nf.indexOf(Hd[0]))&&a.u(Nf);Ab.ib&&(ka+=Ab.ib,zb-=Ab.ib,fa-=Ab.ib);ka>=pa.length&&(ka=0);a.Aa=fa;Lf++;zb--}}Lf||(a.u("no "+Kf+"history available"),a.Aa=void 0)}else{var fb=af(a,oa,a.pa);if(fb){var Ka=0,Of="ds"==cb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||lh,Ka=Me(a,Ca);else{var Pf=af(a,Ca);Pf&&
(Ka=Pf.B-fb.B)}0>Ka&&(Ka=0);65536<Ka&&(Ka=65536)}var nh=a.T;fb.T&&(a.T=fb.T);for(var Qf="db"==cb?1:2,Id=Ka||32,Jd=1==Qf?1:4,oh=(Id+Jd-1)/Jd|0||1,La="";oh--&&0<Id;){for(var qa="",Kd="",oa=J(a,fb.B),Rf=Jd;0<Rf--&&0<Id--;){var Ld=a.Ia(fb,1);Of?(qa&&(qa+=","),qa+=Ld):(qa+=df(Ld),qa+=" ");for(var Ac=29,ph=0;1==Qf&&0<=Ac;ph++)var Bb=Ld/Math.pow(2,Ac)%Math.pow(2,7),qa=qa+J(a,Bb,7),Bb=Bb+0,Kd=Kd+(32>Bb?".":String.fromCharCode(Bb)),Ac=Ac-7}La&&(La+="\n");La=Of?La+(qa+","):La+(oa+": "+qa+(0>Rf?" "+Kd:""))}La&&
a.u(La);a.T=nh}}}}break;case "e":if("else"==g[0])break;var Sf,Tf,Uf=g[0],Md=g[1];"e"==Uf||"ew"==Uf?(Sf=a.Ia,Tf=a.rb):Md=null;if(null==Md)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Bc=af(a,Md,a.pa);if(Bc)for(var Nd=2;Nd<g.length;Nd++){var Cb=Oe(a,g[Nd]);if(void 0===Cb)break;Cb=bf(Cb);a.u("changing "+J(a,Bc.B)+" from "+df(Sf.call(a,Bc))+" to "+df(Cb));Tf.call(a,Bc,Cb,1)}}break;case "g":a:{var Vf=g[1],qh=b;if(void 0!==Vf){var Od=af(a,Vf);if(!Od)break a;cf(a,
Od,qh);a.La(a.b,Od,!0)}pf(a,!0,c)}break;case "h":a.A.N?(c||a.u("halting"),a.V()):Lb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Pd;var Db=b.substr(2),Db=Ea(Db);Oe(a,Db)?(c||a.u("true: "+Db),Pd=!0):(c||a.u("false: "+Db),Pd=!1);Pd||(d=!1);break}f=!0;break;case "k":var rh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Qd=0,Rd=Z(),Eb=Z();for(a.u("stack trace for "+J(a,Eb.B));10>Qd;){for(var Ma=null,sh=
256;65536>Eb.B>>>0;){Rd.B=a.Ia(Eb,2);if(null==Eb.B||!sh--)break;if(!(Rd.B&1)){for(var th=a,Cc=Rd,Wf=null,Fb=Cc.B,Xf=Fb,Sd=1;6>=Sd&&Fb;Sd++){if(2<Sd){Cc.B=Fb;var Dc=vf(th,Cc);if(0<=Dc.indexOf("JSR")){var Yf=Dc.indexOf(" ");if(Fb+(Dc.indexOf(" ",Yf+1)-Yf-1)/2==Xf){Wf=Dc;break}}}Fb-=2}Cc.B=Xf;if(Ma=Wf)break}}if(!Ma||null==Ma)break;var Zf=null;if("ks"==rh){var $f=Ma.match(/[0-9A-F]+$/);$f&&(Zf=qg(a,$f[0]))}Ma=Ba(Ma,50)+" ;"+(Zf||"stack="+J(a,Eb.B));a.u(Ma);Qd++}Qd||a.u("no return addresses found")}break;
case "l":if("ln"==g[0]){qg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,sa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var Da=0;if("all"==L)Da=1879046143,L=null;else if("on"==L)sa=!0,L=null;else if("off"==L)sa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(ra in Zb)if(L==ra){Da=Zb[ra];sa=!!(a.Y&Da);break}if(!Da){a.u("unknown message category: "+L);break a}}if(Da)if("on"==g[2])a.Y|=Da,sa=!0;else if("off"==g[2]&&(a.Y&=~Da,sa=!1,1073741824==Da)){for(var ag=1E3<=a.P.length?a.P.length-
1E3:0;ag<a.P.length;)a.u(a.P[ag++]);a.P=[]}}var uh=0,Gb="";for(ra in Zb)if(!L||L==ra){var vh=!!(a.Y&Zb[ra]);if(null===sa||sa==vh)Gb&&(Gb+=","),++uh%10||(Gb+="\n\t"),"key"==ra&&(ra="keys"),Gb+=ra}void 0===L&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Gb||"none"));Ue(a)}break;case "p":if("print"==g[0]){rg(a,b.substr(5));break}var bg=g[0],cg="p"==bg?0:"pr"==bg?1:-1;if("?"==g[1]||0>cg)a.u("step commands:"),
a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var dg=Z(a.v.i);a.Ia(dg);a.O?(a.La(a.b,dg,!0),pf(a)||(a.H&&hd(a.H),a.O=0)):sg(a,cg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}sf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Hb=+g[2];if(8==Hb||10==Hb||16==Hb)a.T=Hb;else{a.u("invalid base: "+Hb);break}}a.u("default base: "+a.T);break;case "cs":var Ib;void 0!==g[3]&&(Ib=+g[3]);switch(g[2]){case "int":a.v.pa=
Ib;break;case "start":a.v.Da=Ib;break;case "stop":a.v.ja=Ib;break;default:a.u("unknown cs option");break a}void 0!==Ib&&$c(a.v);a.u("checksums "+(a.v.A.Ma?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ca.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":sg(a,g[0],g[1]);break;case "u":tf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){pg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Pb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){rg(a,b.substr(1));break}var Td="commands:",Ud;for(Ud in ug)Td+="\n"+
Ba(Ud,9)+ug[Ud];qd(a)||(Td+="\nnote: history disabled if no exec breakpoints");a.u(Td);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(fg){a.u("Debugger "+(fg.stack||fg.message)),d=!1}return d}function cd(a,b,c){b=He(a,b,c);for(var d in b)if(!ig(a,b[+d]))return!1;return!0}
var ug={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Af=20,Bf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
ff=0,gf=1,hf=2,jf=3,kf=4,lf=5,mf=6,nf=7,ef="PC RA EA C0 C1 OV ND PD".split(" "),vg={},wf=(vg[28672]={0:101},vg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},vg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Af,9216:53,9472:52,
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},vg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},vg[29248]={24576:79,24640:80,25088:81,25152:82},vg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},vg),wf=["","I","M","S"],xf=" L E LE A GE N G".split(" "),yf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Bf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],nf=1E3,qf=">> ";Ya(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Re(d);sb(d,c)}});
function og(a,b,c,d,e){this.P=b||0;this.R=c||"";this.i=d;this.done=e;this.j=d.j;this.v={};this.O={};this.G=[];this.I=[];this.w=[];this.M=this.ka=0;this.Ga=this.P;this.F=null;this.b=0;this.C=null;this.J=this.H="";this.u=null;this.ea=this.D="";this.L=0;this.K=a.split(";");wg(this)}
function wg(a){a.L==a.K.length?a.done(xg(a)):Ga(a.K[a.L++],null,!0,function(b,c,d){if(d)a.done(d,b);else{d=c;if(za(b,".html")){d="";var e;for(b=/<pre>([\s\S]*?)<\/pre>/gi;e=b.exec(c);)e=e[1],0<=e.indexOf("&")&&(e=e.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),d+=e;(e=d.match(/&[a-z]+;/i))&&yg(a,"unrecognized HTML entity: "+e[0])}a.ea&&(a.ea+="\n");a.ea+=d;setTimeout(function(){wg(a)},0)}})}
function xg(a){if(0<=a.R.indexOf("p"))return a.j(a.ea),0;var b=Pe(a.i);try{var c,d=a.ea.split(/\r?\n/);for(c=0;c<d.length&&(a.ka++,zg(a,d[c]+"\r\n"));c++);a.b&&a.error("open block from line "+a.v[a.C].ka);for(c=0;c<a.G.length;c++){var e=a.G[c],f=a.v[e];f?Ag(a,f.ea):a.error("missing definition for literal: "+e)}a.I.forEach(function(b){var c,d=b.Ma[0];c=b.Ma[1];var e=b.Ga;1==b.Ma.length&&(0<=d.indexOf("@")||0<=d.indexOf("("))&&(c=d,d="");null!=c?(c=Cf(a.i,d,c,e),0>c&&a.error("unable to parse instruction: "+
b.Ma[0]+" "+b.Ma[1])):(c=Bg(a,d,e),void 0===c?a.error("unable to parse expression: "+d):void 0===a.w[e]?a.error("undefined fixup location: "+m(e,0,!0)):c+=a.w[e]);b=Ie(a.i,c||0,36,!0);(c<-B||c>=E)&&yg(a,"truncated value "+m(c)+" at location "+m(e)+" to "+m(b));a.w[e]=b})}catch(g){a.j(g.message),a.M=-1}a.i.K=b;return a.M}
function zg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.J);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.F+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.b++;else if(b[d]==a.H&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.C||"";a.v[d].ea+=b;a.b||(a.C=null,Cg(a,d));b=c}if(a.b)return!0}null!=a.u&&(b=Dg(a,b));c=b.match(/\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;d=c[1];b=c[2].toUpperCase();c=c[3].trim();if(d){var e=d.slice(-1),d=d.slice(0,-1);":"==e?Eg(a,d,a.Ga,!0):(c=b+c,b=e)}a.F=b;c=c.trim();"="==c[0]&&(d=b,c=c.substr(1),b="=");for(var e=c,f=0,g=null,h=0,k=-1;h<e.length;){var n=e[h];"["==n&&(f++||(k=h));h++;if("]"==n&&0>=--f)break}0>f&&a.error("missing bracket(s): "+e);0<=k&&(g=e.substr(k,h-k));for((e=g)&&(c=c.replace(e,Fg(a,Gg,e)));e=Hg(a,c);)c=c.replace(e,e.slice(0,-1));if(!Cg(a,b,c))switch(b){case "":c&&Ig(a,0,[c]);break;case "=":b=d;d=Bg(a,c);
void 0===d?a.error("parseExpression("+c+")"):Eg(a,b,d);break;case Jg:case Kg:case Lg:Dg(a,c);break;case Mg:Ig(a,0,[c.replace(",",",,")]);break;case Ng:case Og:case Pg:Fg(a,b,c);break;case Qg:case Rg:break;default:d=b,e=c,f=Cf(a.i,d),0<=f?(Ig(a,f,[d,e]),d=!0):d=!1,d||Ig(a,0,[b+c])}return!0}
function Cg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){b=",";"("==c[0]&&(b+=")",c=c.substr(1));for(var e=[];c;){c=c.trim();var f=Sg(a,c,b);if(!f)break;e.push(f);c=c.substr(f.length+1)}Ag(a,d.ea,d.vb,e);return!0}if("_"!=b[0])return!1;switch(b.substr(1)){case Og:d.mb||Ag(a,d.ea);break;case Pg:for(;0<d.mb--;)Ag(a,d.ea);break;default:return!1}return!0}
function Ag(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",n=0;;){var p=f.indexOf(h,n);if(0>p)break;var n=p+1,t=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&f[t].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(t),n=p+k.length)}if(!zg(a,f))break}}og.prototype.error=function(a){throw Error("error"+(this.ka?" at line "+ua(this.ka):"")+": "+a);};
function yg(a,b){a.j("warning"+(a.ka?" at line "+ua(a.ka):"")+": "+b)}function Sg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
function Bg(a,b,c){var d;void 0===c&&(c=a.Ga);b=b.replace(/\.([^0-9]|$)/g,J(a.i,c,-1)+"$1");(c=b.match(/^([^,]*),,([^,]*)$/))?(b=c[1]?X(a.i,c[1]):0,void 0!==b&&(c=c[2]?X(a.i,c[2]):0,void 0!==c&&(d=Ie(a.i,b,18,!0)*Math.pow(2,18)+Ie(a.i,c,18,!0)))):d=X(a.i,b);return d}function Hg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="_"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:Tg,vb:[],Ib:[],ea:b+": 0",ka:a.ka};a.G.push(d)}return c}
function Dg(a,b){var c=b;null==a.u&&(a.u=a.D="",b&&(a.u=b[0],c=b=b.substr(1)));if(a.u){var d=b.indexOf(a.u);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.u=null);a.D+=b}if(null==a.u){var d=b=0,e,f,g=a.D.length;a.F==Kg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.F==Lg&&(e--,f++));var k=a.D.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Ig(a,d),b=0)}b&&Ig(a,d)}return c}
function Fg(a,b,c){var d,e,f,g;a.J="<";a.H=">";e=f=[];if(b==Ng){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];a.v[b]&&a.error("macro redefined: "+b);e=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);c=Ug;g=3}else if(b==Gg)a.J="[",a.H="]",b="_"+ua(a.Ga,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],c=Vg,a.G.push(b),g=0;else{g=Sg(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+
1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="_"+b;c=Bg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;var h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.H&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,vb:e,Ib:f,ea:h,ka:a.ka};a.b?a.C=b:Cg(a,b);return b}function Eg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&a.O[b]?a.error("label "+b+" redefined"):(a.O[b]={name:b,value:c,ka:a.ka,hd:d,gd:e,jd:f},a.i.K[b]=c)}
function Ig(a,b,c){a.w[a.Ga]=b;c&&a.I.push({Ga:a.Ga,Ma:c});a.Ga++}var Jg="ASCII",Kg="ASCIZ",Ng="DEFINE",Og="IFE",Gg="LITERAL",Qg="PAGE",Pg="REPEAT",Lg="SIXBIT",Rg="SUBTTL",Mg="XWD",Ug=-1,Vg=-2,Tg=-3;
function Wg(a,b,c){u.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Xg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.T=!1;this.I=this.C=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Yg(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new xc({id:this.Ua+".bus",busWidth:this.aa},this.v,this.D);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.va)for(b=
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.va=this.u.va;this.j(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 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.G,this.v,this.D);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Zg),this.b&&(this.I=new G(this,"1.34.2"),$g(this.I)?b=null:
delete this.I);!b&&this.b&&(b=ah(this))&&(this.K=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.L=b,g.T=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&bh(this,this.Oa)}else r("Unable to find CPU component")}pa(Wg,u);function Xg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function Yc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function bh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){bh(a,b,c)});return}}b.call(a,c)}
function ch(a,b){var c=new G(a,"1.34.2",dh);if($g(c)&&eh(c)){var d=c.get(fh),e=b?b.get(fh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Wg.prototype;
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?gh:Zg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==hh)b=!0;else if(a>Zg){if($g(d,this.L)){this.C=new G(this,"1.34.2",ih);$g(this.C)&&(jh(this,d),a=vh,wh(this.C));this.C.set(fh,Fa());xh(this.C);var e=this.b&&!this.K;if(a==gh||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=eh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$g(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(yh,""),this.i=null)):this.j(f+": "+g),wh(d),$g(d)?(c=eh(d),e=!0):c=!1))}e&&ch(this,c?d:null)}else a==vh&&d.clear()}else ch(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=zh(this,g,d,b,c));b=[d,a,c];a!=hh?bh(this,this.Ab,b):this.Ab(b)}};
function zh(a,b,c,d,e){if(!b.A.V){b.A.V=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Zg,window&&window.location.reload()):a.P=!0,b.wa(null),e=!1),!d&&b.ob){var g=b.ob.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(zh(this,this.v,b,c,a),I(this,-2),this.v.Z());this.P&&(jh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function jh(a,b){if(ob("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
function tg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",dh),h=Fa();g.set(fh,h);f.set(fh,h);f.set(Ah,"1.34.2");f.set(Bh,window?window.location.href:null);f.set(Ch,window?window.navigator.userAgent:"");a.v&&a.v.la&&(c&&(b&&(a.v.A.Z=a.v.A.N),a.v.W()),d=a.v.la(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.V&&(n.la&&(d=n.la(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.V=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Dh(a,a.i,f.toString()),xh(g)&&xh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Eh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Ob(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Ob(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.aa.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.xa);hc(a,a.i);bc(a,a.w)}}
l.ma=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?tg(d,!1,!0):bh(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");tg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa(Zg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(za(Na(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Yg(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=tg(d,b);b?Dh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function Yg(a,b){var c=a.i;c||((c=Qa(yh),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Fh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function Fh(a,b){a.i=null;b=Ga(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(yh,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function ah(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+Gh(a,"1.34.2"));return b}
function Dh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gh(a,"1.34.2");d.data=c;b=Ga(Na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("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.da(c),Ra(yh,""),a.i=null)}}
function hd(a,b){if(a.va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.va.focus();!b&&window&&window.scrollTo(c,d)}}var ih="failsafe",dh="validate",fh="timestamp",Ah="version",Bh="url",Ch="browser",yh="user",hh=-1,Zg=0,gh=1,vh=2,Eh=3;Ya(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new Wg(g,d,!0);sb(g,f);g.O&&bh(g,g.Oa)}});
Za.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Oa(hh)}});Za.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=rb("Computer",c.id))&&c.A.V&&tg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=Gh(a,b,c);wh(this,a.Kb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function $g(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function eh(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function xh(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function wh(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){wh(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 Gh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Hh=0;
function Ih(a,b,c,d,e,f,g){f("Loading "+a+"...");Ga(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):Jh(k,a,b,c,d,e,f,g)})}
function Jh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Kh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Kh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Kh(a,b,c)}})}else c(a,null)}
function Lh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Aa(a))}function g(a){f("Error: "+a);n&&(--Hh||gb(!0));n=!1}var h,k,n=!0;Hh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));t.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Ih(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Hh||gb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Hh||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ih(c,b,a,e,!0,f,p):Jh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(da){g(da.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return Lh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return Lh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)n&&t!=n?k+=t:(n?n=null:n=t,k&&(h.push(k),k=""));else{if(!n){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=gb;window.sendEvent=ib;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
28692:98,28696:99,28700:100},vg),xf=["","I","M","S"],yf=" L E LE A GE N G".split(" "),zf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Cf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],of=1E3,rf=">> ";Xa(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Se(d);rb(d,c)}});
function og(a,b,c,d,e){this.P=b||0;this.R=c||"";this.i=d;this.done=e;this.u=d.u;this.v={};this.O={};this.D=[];this.I=[];this.G=[];this.M=this.ma=0;this.ta=this.P;this.F=null;this.b=0;this.C=null;this.J=this.H="";this.j=null;this.ea=this.w="";this.L=0;this.K=a.split(";");wg(this)}
function wg(a){if(a.L==a.K.length)a.done(xg(a));else{var b=a.K[a.L++];"/"==b[0]&&".MAC"==b.slice(-4)&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&yg(a,"unrecognized HTML entity: "+c[0])}a.ea&&(a.ea+="\n");a.ea+=e;setTimeout(function(){wg(a)},0)}})}}
function xg(a){if(0<=a.R.indexOf("p"))return a.u(a.ea),0;var b=Qe(a.i);try{var c,d=a.ea.split(/\r?\n/);for(c=0;c<d.length&&(a.ma++,zg(a,d[c]+"\r\n"));c++);a.b&&a.error("open block from line "+a.v[a.C].ma);for(c=0;c<a.D.length;c++){var e=a.D[c],f=a.v[e];f?Ag(a,f.ea):a.error("missing definition for literal: "+e)}a.I.forEach(function(b){var c=b.ta,d=Bg(a,b.Db,void 0,c);void 0===d?a.error("unable to parse expression: "+b.Db):(d+=a.G[c],a.G[c]=Cg(a,d,c))})}catch(g){a.u(g.message),a.M=-1}a.i.K=b;return a.M}
function zg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.J);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.F+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.b++;else if(b[d]==a.H&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.C||"";a.v[d].ea+=b;a.b||(a.C=null,Dg(a,d));b=c}if(a.b)return!0}null!=a.j&&(b=Eg(a,b));var e=b.match(/\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i);if(!e||e[4]&&";"!=e[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;c=e[1];d=e[2].toUpperCase();b=e[3].trim();e=e[3]+e[4];if(c){var f=c.slice(-1),c=c.slice(0,-1);":"==f?Fg(a,c,a.ta,!0):(b=d+b,d=f)}if(!d&&!b)return!0;"="==b[0]&&(c=d,b=b.substr(1),d="=");a.F=d;for(var f=b,g=0,h=null,k=0,m=-1;k<f.length;){var p=f[k];"["==p&&(g++||(m=k));k++;if("]"==p&&0>=--g)break}0>g&&a.error("missing bracket(s): "+f);0<=m&&(h=f.substr(m,k-m));for((f=h)&&(b=b.replace(f,Gg(a,Hg,f)));f=Ig(a,b);)b=b.replace(f,f.slice(0,-1));if(!Dg(a,d,b))switch(d){case "=":d=Bg(a,b);void 0===d?a.error("parseExpression("+
b+")"):Fg(a,c,d);break;case Jg:case Kg:case Lg:Eg(a,e);break;case Mg:Ng(a,0,b.replace(",",",,"));break;case Og:case Pg:case Qg:Gg(a,d,b);break;case Rg:case Sg:break;default:c=d,d=b,b=c+d,0<=b.indexOf(",,")||!c&&0>b.indexOf("@")&&0>b.indexOf("(")?c=Bg(a,b,!0):(c=Df(a.i,c,d,a.ta,!0),0>c&&(c=Df(a.i,"",b,a.ta,!0),0>c&&(c=void 0))),void 0!==c?Ng(a,c,a.i.ka):a.error("unrecognized expression: "+b)}return!0}
function Dg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){b=",";"("==c[0]&&(b+=")",c=c.substr(1));for(var e=[];c;){c=c.trim();var f=Tg(a,c,b);if(!f)break;e.push(f);c=c.substr(f.length+1)}Ag(a,d.ea,d.ub,e);return!0}if("_"!=b[0])return!1;switch(b.substr(1)){case Pg:d.mb||Ag(a,d.ea);break;case Qg:for(;0<d.mb--;)Ag(a,d.ea);break;default:return!1}return!0}
function Ag(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",m=0;;){var p=f.indexOf(h,m);if(0>p)break;var m=p+1,q=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(q>=f.length)&&f[q].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(q),m=p+k.length)}if(!zg(a,f))break}}og.prototype.error=function(a){throw Error("error"+(this.ma?" at line "+va(this.ma):"")+": "+a);};
function yg(a,b){a.u("warning"+(a.ma?" at line "+va(a.ma):"")+": "+b)}function Tg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
function Bg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Bg(a,f[1]):0,void 0!==b&&(f=f[2]?Bg(a,f[2]):0,void 0!==f&&(e=Ie(a.i,b,18,!0)*Math.pow(2,18)+Ie(a.i,f,18,!0)))):(void 0===d&&(d=a.ta),e=Oe(a.i,b.replace(/\.([^0-9]|$)/g,J(a.i,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Ig(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="_"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:Ug,ub:[],Jb:[],ea:b+": 0",ma:a.ma};a.D.push(d)}return c}
function Eg(a,b){var c=b;null==a.j&&(a.j=a.w="",b&&(a.j=b[0],c=b=b.substr(1)));if(a.j){var d=b.indexOf(a.j);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.j=null);a.w+=b}if(null==a.j){var d=b=0,e,f,g=a.w.length;a.F==Kg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.F==Lg&&(e--,f++));var k=a.w.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Ng(a,d),b=0)}b&&Ng(a,d)}return c}
function Gg(a,b,c){var d,e,f,g;a.J="<";a.H=">";e=f=[];if(b==Og){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];a.v[b]&&a.error("macro redefined: "+b);e=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);c=Vg;g=3}else if(b==Hg)a.J="[",a.H="]",b="_"+va(a.ta,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],c=Wg,a.D.push(b),g=0;else{g=Tg(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+
1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="_"+b;c=Bg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;var h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.H&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,ub:e,Jb:f,ea:h,ma:a.ma};a.b?a.C=b:Dg(a,b);return b}function Fg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&a.O[b]?a.error("label "+b+" redefined"):(a.O[b]={name:b,value:c,ma:a.ma,jd:d,hd:e,kd:f},a.i.K[b]=c)}
function Ng(a,b,c){a.G[a.ta]=Cg(a,b);null!=c&&a.I.push({ta:a.ta,Db:c});a.ta++}function Cg(a,b,c){c=void 0===c?a.ta:c;var d=Ie(a.i,b||0,36,!0);(b<-C||b>=E)&&yg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}var Jg="ASCII",Kg="ASCIZ",Og="DEFINE",Pg="IFE",Hg="LITERAL",Rg="PAGE",Qg="REPEAT",Lg="SIXBIT",Sg="SUBTTL",Mg="XWD",Vg=-1,Wg=-2,Ug=-3;
function Xg(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;Yg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.ba=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.S=this.P=!1;this.ca=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Zg(this);if(this.v=qb("CPU",this.id)){this.D=qb("Debugger",this.id);this.G=new xc({id:this.Ua+".bus",busWidth:this.ba},this.v,this.D);var d,e=ob(this.id);if((this.j=qb("Panel",this.id))&&this.j.wa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.j.da,d.u=this.j.u,d.wa=this.j.wa;this.u(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 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.G,this.v,this.D);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=$g),this.b&&(this.I=new G(this,"1.34.2"),ah(this.I)?b=null:
delete this.I);!b&&this.b&&(b=bh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.U=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&ch(this,this.Oa)}else t("Unable to find CPU component")}n(Xg,u);function Yg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.R=b}
function Yc(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function ch(a,b,c){for(var d=ob(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){ch(a,b,c)});return}}b.call(a,c)}
function dh(a,b){var c=new G(a,"1.34.2",eh);if(ah(c)&&fh(c)){var d=c.get(gh),e=b?b.get(gh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Xg.prototype;
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?hh:$g));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==ih)b=!0;else if(a>$g){if(ah(d,this.L)){this.C=new G(this,"1.34.2",jh);ah(this.C)&&(kh(this,d),a=wh,xh(this.C));this.C.set(gh,Ga());yh(this.C);var e=this.b&&!this.K;if(a==hh||nb("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=fh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ah(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Qa(zh,""),this.i=null)):this.u(f+": "+g),xh(d),ah(d)?(c=fh(d),e=!0):c=!1))}e&&dh(this,c?d:null)}else a==wh&&d.clear()}else dh(this);delete this.L;delete this.I}e=ob(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Ah(this,g,d,b,c));b=[d,a,c];a!=ih?ch(this,this.Ab,b):this.Ab(b)}};
function Ah(a,b,c,d,e){if(!b.A.X){b.A.X=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.xa(f,d)&&f&&(t("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=$g,window&&window.location.reload()):a.P=!0,b.xa(null),e=!1),!d&&b.vb){var g=b.vb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){t("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Ah(this,this.v,b,c,a),I(this,-2),this.v.aa());this.P&&(kh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function kh(a,b){if(nb("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function tg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",eh),h=Ga();g.set(gh,h);f.set(gh,h);f.set(Bh,"1.34.2");f.set(Ch,window?window.location.href:null);f.set(Dh,window?window.navigator.userAgent:"");a.v&&a.v.na&&(c&&(b&&(a.v.A.aa=a.v.A.N),a.v.V()),d=a.v.na(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=ob(a.id),k=0;k<h.length;k++){var m=h[k];m.A.X&&(m.na&&(d=m.na(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Eh(a,a.i,f.toString()),yh(g)&&yh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Fh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Ob(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Ob(this,"Resetting "+this.v.type),this.v.reset());for(var a=ob(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=ob(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=ob(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.ba.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?ua(e,void 0):r(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.ya);hc(a,a.i);bc(a,a.w)}}
l.oa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?tg(d,!1,!0):ch(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=nb("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");tg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa($g)}else d.reset(),d.v&&!d.D&&d.v.aa()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Zg(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=tg(d,b);b?Eh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function Zg(a,b){var c=a.i;c||((c=Pa(zh),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Gh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function Gh(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(zh,b.data),a.i=b.data)}catch(d){t(d.message+" ("+c+")")}return a.i}function bh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+Hh(a,"1.34.2"));return b}
function Eh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hh(a,"1.34.2");d.data=c;b=Ha(Ja()+"/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.da("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.da(c),Qa(zh,""),a.i=null)}}
function hd(a,b){if(a.wa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.wa.focus();!b&&window&&window.scrollTo(c,d)}}var jh="failsafe",eh="validate",gh="timestamp",Bh="version",Ch="url",Dh="browser",zh="user",ih=-1,$g=0,hh=1,wh=2,Fh=3;Xa(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new Xg(g,d,!0);rb(g,f);g.O&&ch(g,g.Oa)}});
Ya.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=qb("Computer",c.id))&&c.S&&!c.A.X&&c.Oa(ih)}});Ya.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=qb("Computer",c.id))&&c.A.X&&tg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Hh(a,b,c);xh(this,a.Nb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function ah(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Na()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function fh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){t(c.message||c),b=!1}return b}function yh(a){var b=!0;if(Na()){var c=JSON.stringify(a.b);Qa(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function xh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){xh(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 Hh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Ih=0;
function Jh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):Kh(k,a,b,c,d,e,f,g)})}
function Kh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(kb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Lh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Lh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Lh(a,b,c)}})}else c(a,null)}
function Mh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);m&&(--Ih||ab(!0));m=!1}var h,k,m=!0;Ih++;lb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));q.appendChild(B)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Jh(d,null,a,null,!1,f,function(a,e){e?(kb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ih||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Ih||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Jh(c,b,a,e,!0,f,p):Kh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(P){g(P.message)}return m}window.embedPDP10=function(a,b,c,d){ab(!1);return Mh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return Mh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return qb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!tb[a]){for(var c=!0,d=tb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var q=b[p];if('"'==q||"'"==q)m&&q!=m?k+=q:(m?m=null:m=q,k&&(h.push(k),k=""));else{if(!m){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){k&&(h.push(k),k="");";"==q&&h.length&&(g.push(h),h=[]);continue}}k+=q}}k&&h.push(k);h.length&&g.push(h);d[e]=g;sb(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=hb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map

View file

@ -31,8 +31,8 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function l(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ia(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ia("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ia("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var n={Gb:0,Za:1,Ib:2,Jb:3,Kb:4,Lb:5,Mb:6,Nb:7,Ta:8,Ob:9,$a:10,Pb:11,Qb:12,ab:13,Rb:14,Sb:15,Tb:16,Ub:17,Vb:18,Wb:19,Xb:20,Yb:21,Zb:22,$b:23,ac:24,bc:25,cc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Sa:65,Fb:66,Hb:67,dc:68,E:69,ec:70,fc:71,gc:72,hc:73,ic:74,jc:75,kc:76,lc:77,mc:78,nc:79,oc:80,Q:81,pc:82,qc:83,rc:84,sc:85,tc:86,uc:87,
vc:88,wc:89,cb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,xc:97,yc:98,zc:99,d:100,e:101,Ac:102,Bc:103,Cc:104,Dc:105,Ec:106,k:107,Fc:108,Gc:109,n:110,Hc:111,p:112,q:113,r:114,Ic:115,t:116,Jc:117,Kc:118,Lc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,bb:127};
var n={Hb:0,$a:1,Jb:2,Kb:3,Lb:4,Mb:5,Nb:6,Ob:7,Ua:8,Pb:9,ab:10,Qb:11,Rb:12,bb:13,Sb:14,Tb:15,Ub:16,Vb:17,Wb:18,Xb:19,Yb:20,Zb:21,$b:22,ac:23,bc:24,cc:25,dc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ta:65,Gb:66,Ib:67,ec:68,E:69,fc:70,gc:71,hc:72,ic:73,jc:74,kc:75,lc:76,mc:77,nc:78,oc:79,pc:80,Q:81,qc:82,rc:83,sc:84,tc:85,uc:86,vc:87,
wc:88,xc:89,eb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,zc:98,Ac:99,d:100,e:101,Bc:102,Cc:103,Dc:104,Ec:105,Fc:106,k:107,Gc:108,Hc:109,n:110,Ic:111,p:112,q:113,r:114,Jc:115,t:116,Kc:117,Lc:118,Mc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,cb:127};
function ja(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ka(a,b){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ja(a,8,b,"")}function la(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ja(a,16,b,c?"0x":"")}
function ma(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function na(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function oa(){var a=pa();return-1!==a.indexOf("pcjs.org",a.length-8)}function qa(a){return a.replace(/[&<>"']/g,function(a){return ra[a]})}function sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function ta(){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())}
@ -44,140 +44,142 @@ function pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}funct
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Aa(a){if(!Ba){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ea(a){r.init.push(a)}
function Fa(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ha(a){!Ga&&a?(Ga=!0,Ia&&Ja("init"),Ka&&Ja("show")):Ga=a}function Ja(a){r[a]&&Fa(r[a])}var Ba=null,r={init:[],show:[],exit:[]},Ia=!1,Ka=!1,Ga=!0,wa=null;Ca("onload",function(){Ia=!0;Fa(r.init)});Ca("onpageshow",function(){Ka=!0;Fa(r.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Fa(r.exit)});
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ra=b.comment;this.gb=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.ua=this.id:(this.va=this.id.substr(0,a),this.ua=this.id.substr(a+1));this.i={ready:!1,za:!1,Ma:!1,F:!1,error:!1};this.Ba=null;this.i.error=!1;this.w=this.j=this.s=this.v=this.fa=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.i={ready:!1,Aa:!1,Na:!1,F:!1,error:!1};this.Ca=null;this.i.error=!1;this.w=this.j=this.s=this.v=this.fa=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(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 Pa(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function x(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 y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function Qa(a,b){var c=z;b=A(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var m=h.split(" "),u=0;u<m.length;u++)switch(h=m[u],h){case c+"-binding":(h=y(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),u=m.length}}}}
function A(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 Ra(a){for(var b=!0,c=Sa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ta.indexOf(e)&&(f=function(){return function(){Ra(a)}}());var g=Ua[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=x(d[1],a);if(h)if(g=Va[e])b=g(h,d[2],d[3]);else{var m=h.exports;if(m&&(g=m[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Sa[a];return b}k=t.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.fa=this.m[b]=c,c.value="",this.M=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.G=function(a){this.M(a,this.ua)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
k.status=function(a){this.M(this.ua+": "+a)};k.G=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function Wa(a,b){b&&(a.i.ready?b():a.Ba=b);return a.i.ready}function B(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Ba;a.Ba=null;b&&b()}}function Xa(a,b){a.i.Ma?(a.i.za=!1,a.i.Ma=!1):a.i.error?a.M(a.toString()+" error"):a.i.za=b}k.V=function(){return this.i.F=!0};k.R=function(a,b){b&&(this.i.F=!1);return!0};
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.fa=this.m[b]=c,c.value="",this.M=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.G=function(a){this.M(a,this.va)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
k.status=function(a){this.M(this.va+": "+a)};k.G=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function Wa(a,b){b&&(a.i.ready?b():a.Ca=b);return a.i.ready}function B(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Ca;a.Ca=null;b&&b()}}function Xa(a,b){a.i.Na?(a.i.Aa=!1,a.i.Na=!1):a.i.error?a.M(a.toString()+" error"):a.i.Aa=b}k.V=function(){return this.i.F=!0};k.R=function(a,b){b&&(this.i.F=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var Ma=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Sa=window?window.PCjs.Commands:{},Ta=["hold","sleep","wait"],Ua={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Va={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var z="pdp10",Ya="PDPjs",Za=Math.pow(2,18)-1,$a=Math.pow(2,18),ab=Math.pow(2,17)-1,D=Math.pow(2,18)-1,E=Math.pow(2,18),F=Math.pow(2,35)-1,G=Math.pow(2,35),H=Math.pow(2,36)-1,J=Math.pow(2,36),K=Math.pow(2,32),bb=Math.pow(2,34),cb=Math.pow(2,36),db=Math.pow(2,23),eb=Math.pow(2,30),z="pdp10",Ya="PDPjs";
function fb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.h=0;this.D=this.I=-1;this.K=this.L=this.o=!1;this.N=gb;this.l={};this.a={START:[1,1,!0,!1,this.qb],STEP:[1,1,!1,!1,this.rb],ENABLE:[1,1,!1,!1,this.lb],CONT:[1,1,!0,!1,this.jb],DEP:[0,0,!0,!1,this.kb],EXAM:[1,1,!0,!1,this.mb],LOAD:[1,1,!0,!1,this.ob],TEST:[0,0,!0,!1,this.nb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.pb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.ib,toggle:this.Ab,reset:this.wb,
set:this.zb};B(this)}l(fb,t);k=fb.prototype;k.reset=function(a){this.stop();a&&hb(this,this.h=0)};
function fb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.h=0;this.D=this.I=-1;this.K=this.L=this.o=!1;this.N=gb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
set:this.Ab};B(this)}l(fb,t);k=fb.prototype;k.reset=function(a){this.stop();a&&hb(this,this.h=0)};
k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ib(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){jb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;kb(this);lb(this)};k.V=function(a,b){if(!b)if(this.P&&mb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.h,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])nb(this,this.f=a[0]),hb(this,this.h=a[1]),ob(this,a[2]);return!0};k.wb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}lb(this);return!0};function pb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function kb(a,b){for(var c in a.l)pb(a,c,null!=b?b:a.l[c])}function qb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function lb(a){for(var b in a.a)qb(a,b,a.a[b][1])}
k.ib=function(a,b,c){if(ib(this,b)){if(c){var d=this;setTimeout(function(){jb(d,b);a&&a()},+c);return!1}jb(this,b)}return!0};
k.zb=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,
a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return ob(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,qb(this,a,c[1]),!0):!1};k.Ab=function(a){return ib(this,a)?(jb(this,a),!0):!1};function ib(a,b){var c=a.a[b];return c?(qb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=rb&&(a.K=b==sb,a.L=b==tb),!0):!1}
function jb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(qb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}k.qb=function(a){a||this.j.i.B||(M(this.j,this.f),this.a[ub]&&this.a[ub][1]&&vb(this.j))};k.rb=function(){};k.lb=function(a){a||N(this.j)};
k.jb=function(a){if(!a&&!this.j.i.B)if(this.a[ub]&&this.a[ub][1])vb(this.j);else{a=this.w;var b;if(b=a)a.i.za&&(a.i.Ma=!0),b=!a.i.za;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Ea(1);0<c&&(wb(this.j,c),xb(this.j,c,!0),yb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.i.error=!0,c.G(a))}this.stop();this.v&&zb(this.v)}};k.kb=function(a){a&&!this.j.i.B&&(this.K&&Ab(this),a=hb(this,this.h=this.g),this.N==gb?Bb(this.s,this.f,a):this.j.c(this.f,a))};
k.mb=function(a){if(!a&&!this.j.i.B){this.L&&Ab(this);if(this.N==gb){a=this.s;var b=this.f,c=a.a[(b&a.g)>>>a.f];a.h++;b=c.h(b&16383,b);a.h--;a=b}else a=this.j.b(this.f);hb(this,this.h=a)}};k.ob=function(a){a||this.j.i.B||nb(this,this.g)};k.nb=function(a){a?(this.o=!0,kb(this,!0)):(this.o=!1,kb(this),ob(this,0))};k.pb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};function Ab(a){var b=1,c=a.s.g;a.a[rb]&&a.a[rb][1]||(b=-b);nb(a,a.f&~c|a.f+b&c)}
k.restore=function(a){if(a=a[0])nb(this,this.f=a[0]),hb(this,this.h=a[1]),ob(this,a[2]);return!0};k.xb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}lb(this);return!0};function pb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function kb(a,b){for(var c in a.l)pb(a,c,null!=b?b:a.l[c])}function qb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function lb(a){for(var b in a.a)qb(a,b,a.a[b][1])}
k.jb=function(a,b,c){if(ib(this,b)){if(c){var d=this;setTimeout(function(){jb(d,b);a&&a()},+c);return!1}jb(this,b)}return!0};
k.Ab=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,
a.length-1))));var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return ob(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,qb(this,a,c[1]),!0):!1};k.Bb=function(a){return ib(this,a)?(jb(this,a),!0):!1};
function ib(a,b){var c=a.a[b];return c?(qb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=rb&&(a.K=b==sb,a.L=b==tb),!0):!1}function jb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(qb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}k.rb=function(a){a||this.j.i.B||(M(this.j,this.f),this.a[ub]&&this.a[ub][1]&&vb(this.j))};k.sb=function(){};k.mb=function(a){a||N(this.j)};
k.kb=function(a){if(!a&&!this.j.i.B)if(this.a[ub]&&this.a[ub][1])vb(this.j);else{a=this.w;var b;if(b=a)a.i.Aa&&(a.i.Na=!0),b=!a.i.Aa;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Fa(1);0<c&&(wb(this.j,c),xb(this.j,c,!0),yb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.i.error=!0,c.G(a))}this.stop();this.v&&zb(this.v)}};k.lb=function(a){a&&!this.j.i.B&&(this.K&&Ab(this),a=hb(this,this.h=this.g),this.N==gb?Bb(this.s,this.f,a):this.j.c(this.f,a))};
k.nb=function(a){if(!a&&!this.j.i.B){this.L&&Ab(this);if(this.N==gb){a=this.s;var b=this.f,c=a.a[(b&a.g)>>>a.f];a.h++;b=c.h(b&16383,b);a.h--;a=b}else a=this.j.b(this.f);hb(this,this.h=a)}};k.pb=function(a){a||this.j.i.B||nb(this,this.g)};k.ob=function(a){a?(this.o=!0,kb(this,!0)):(this.o=!1,kb(this),ob(this,0))};k.qb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};function Ab(a){var b=1,c=a.s.g;a.a[rb]&&a.a[rb][1]||(b=-b);nb(a,a.f&~c|a.f+b&c)}
function nb(a,b){a.f=b&a.s.g;if(a.D!==a.f){a.D=a.f;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||pb(d,e,f)}}}function hb(a,b){a.u=b%J;if(a.I!==a.u){a.I=a.u;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||pb(d,e,f)}}return a.u}function ob(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;lb(a);return!0}k.stop=function(){nb(this,this.j.f)};
function mb(){for(var a=A(document,z,"panel"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=Pa(d.id);e||(e=new fb(d,!0));Qa(e,c)}}var gb=7,sb="DEP",ub="ENABLE",tb="EXAM",rb="STEP";Ea(mb);function Cb(a,b,c){t.call(this,"Bus",a);this.j=b;this.w=c;this.u=+a.busWidth||18;this.o=1<<this.u;this.g=this.o-1;this.f=Math.log2(16384);this.l=this.o/16384|0;this.h=0;this.a=[];a=new Db(this);Eb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;B(this)}l(Cb,t);k=Cb.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,Fb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],m=d[g++];h--;)f[e++]=m;d=f}e=this.a[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Gb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],m=16384*g,u=16384-(e-m);u>f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.ea)return h.Da+=h.ea-e,h.ea=e,!0;if(e>=h.ea+h.Da){u=h.size-(e-m);u>f&&(u=f);h.Da=e-h.ea+u;e=m+16384;f-=u;g++;continue}}return Hb(Ib,e,f)}e=new Db(a,e,u,16384,d);Eb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Jb[d]+" at "+ka(b)),!0):Hb(Kb,b,c)}
function Bb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.h++;d.g(c,b&16383,b);a.h--}function Fb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Na||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var u=e[g],C=g+1;C<e.length&&e[C]===u;)C++;m[h++]=C-g;m[h++]=u;g=C}m.length<e.length&&(e=m)}c[f]=e}}return c}function Hb(a,b,c){q("Memory block error ("+a+": "+la(b)+","+la(c)+")");return!1}var Ib=1,Kb=2;function Lb(a){t.call(this,"Device",a)}l(Lb,t);k=Lb.prototype;
function Gb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],m=16384*g,u=16384-(e-m);u>f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.ea)return h.Ea+=h.ea-e,h.ea=e,!0;if(e>=h.ea+h.Ea){u=h.size-(e-m);u>f&&(u=f);h.Ea=e-h.ea+u;e=m+16384;f-=u;g++;continue}}return Hb(Ib,e,f)}e=new Db(a,e,u,16384,d);Eb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Jb[d]+" at "+ka(b)),!0):Hb(Kb,b,c)}
function Bb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.h++;d.g(c,b&16383,b);a.h--}function Fb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Oa||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var u=e[g],C=g+1;C<e.length&&e[C]===u;)C++;m[h++]=C-g;m[h++]=u;g=C}m.length<e.length&&(e=m)}c[f]=e}}return c}function Hb(a,b,c){q("Memory block error ("+a+": "+la(b)+","+la(c)+")");return!1}var Ib=1,Kb=2;function Lb(a){t.call(this,"Device",a)}l(Lb,t);k=Lb.prototype;
k.Z=function(a,b,c,d){this.s=b;this.v=a;this.j=c;this.w=d;B(this)};k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new L(this)).data()};k.restore=function(){return!0};Ea(function(){for(var a=A(document,z,"device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new Lb(c),Qa(c,d)}}});
function Db(a,b,c,d,e){this.s=a;this.id=Mb+=2;this.ea=b;this.Da=c;this.size=d||0;this.type=e||Nb;this.m=e==Ob;this.b=this.h=this.Oa;this.c=this.g=this.Qa;this.f=this.j=0;Eb(this);this.Na=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pb(this,Qb)}else Pb(this)}k=Db.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Na=!0):!1};function Pb(a,b){b||(b=Rb);Sb(a,b,void 0);Tb(a,b,void 0)}
function Sb(a,b,c){c&&a.f||(a.b=b[0]||a.Oa);if(c||void 0===c)a.h=b[0]||a.Oa}function Tb(a,b,c){c&&a.j||(a.c=!a.m&&b[1]||a.Qa);if(c||void 0===c)a.g=b[1]||a.Qa}function Eb(a,b){a.f=a.j=0;b&&((a.f=b.f)&&Sb(a,Ub,!1),(a.j=b.j)&&Tb(a,Ub,!1))}k.Oa=function(){var a=this.s;a.h||N(a.j);return-1};k.Qa=function(){};k.ub=function(a){return this.a[a]};k.Db=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Na=!0)};k.sb=function(a,b){return this.h(a,b)};k.Cb=function(a,b,c){this.m||this.g(a,b,c)};
var Nb=0,Ob=2,Jb=["NONE","RAM","ROM"],Mb=0,Rb=[],Qb=[Db.prototype.ub,Db.prototype.Db],Ub=[Db.prototype.sb,Db.prototype.Cb];
function Vb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Fa=0;this.Ja=b;this.ia=c;this.Ha=Math.round(this.Ja/1E4)/100;this.ga=this.Ha*this.ia;this.Ia=this.pa=this.ja=this.ya=0;this.i.B=this.i.Pa=!1;this.i.J=a.autoStart;"string"==typeof this.i.J&&(this.i.J="true"==this.i.J);this.i.Aa=!1;this.wa=this.ha=0;this.xa=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.I=[];this.Va=this.xb.bind(this);this.P=this.D=this.L=this.N=this.C=this.ma=this.K=this.aa=this.Ka=this.W=0;this.sa=
null;B(this)}l(Vb,t);k=Vb.prototype;k.Z=function(a,b,c,d){this.v=a;this.s=b;this.w=d;this.sa=a.g;for(a=0;a<Wb.length;a++)(b=this.m[Wb[a]])&&this.v.U(null,Wb[a],b);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Xb(this.v,"autoStart");null!=c?this.i.J="true"==c?!0:"false"==c?!1:!!c:null==this.i.J&&(this.i.J=void 0===this.m.run);if(!b){if(a){Yb(this);if(!this.restore(a))return!1;Zb(this)}else this.reset();this.status("No debugger detected");this.i.J||this.M("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.i.B?!0:this.i.J?(vb(this),!0):!1};k.Xa=function(){return 0};
function Zb(a){void 0===a.xa&&(a.xa=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.i.Aa=0<=a.xa&&0<a.na;a.i.Aa&&(a.wa=0,a.ha=a.xa-a.P)}function yb(a,b){if(a.i.Aa){var c=!1;a.wa=a.wa+a.Xa()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.na,c=!0);0<=a.oa&&a.oa<=$b(a)&&(a.na=a.oa=-1,Zb(a),N(a),c=!0);c&&a.M($b(a)+" cycles: checksum="+la(a.wa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.i.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.Ba?" (waiting for notification)":""))+".");a=!1}a&&(d.i.B?N(d):vb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){ac(d,d.ia<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function xb(a,b,c){a.P+=b;c&&(a.L=a.N=0)}function bc(a,b){var c=1;b&&1<a.ia&&a.W&&(c=a.W/a.Ha);a.Ia=Math.round(1E3/cc);a.pa=Math.floor(a.Ja/cc*c);b||(a.ja=a.pa);a.ya=0}function $b(a){return a.P+a.D+a.L-a.N}function Yb(a){a.W=0;a.Ka=0;a.P=a.D=a.L=a.N=0;Zb(a);ac(a,1)}
function ac(a,b,c){if(void 0!==b){.8>a.W/a.ga&&(b=1);a.ia=b;b=a.Ha*a.ia;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.fa&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.fa.focus(),window&&window.scrollTo(b,d)))}xb(a,a.D);a.D=0;a.C=Na();a.K=0;bc(a)}function dc(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
function Db(a,b,c,d,e){this.s=a;this.id=Mb+=2;this.ea=b;this.Ea=c;this.size=d||0;this.type=e||Nb;this.m=e==Ob;this.b=this.h=this.Pa;this.c=this.g=this.Ra;this.f=this.j=0;Eb(this);this.Oa=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pb(this,Qb)}else Pb(this)}k=Db.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Oa=!0):!1};function Pb(a,b){b||(b=Rb);Sb(a,b,void 0);Tb(a,b,void 0)}
function Sb(a,b,c){c&&a.f||(a.b=b[0]||a.Pa);if(c||void 0===c)a.h=b[0]||a.Pa}function Tb(a,b,c){c&&a.j||(a.c=!a.m&&b[1]||a.Ra);if(c||void 0===c)a.g=b[1]||a.Ra}function Eb(a,b){a.f=a.j=0;b&&((a.f=b.f)&&Sb(a,Ub,!1),(a.j=b.j)&&Tb(a,Ub,!1))}k.Pa=function(){var a=this.s;a.h||N(a.j);return-1};k.Ra=function(){};k.vb=function(a){return this.a[a]};k.Eb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Oa=!0)};k.tb=function(a,b){return this.h(a,b)};k.Db=function(a,b,c){this.m||this.g(a,b,c)};
var Nb=0,Ob=2,Jb=["NONE","RAM","ROM"],Mb=0,Rb=[],Qb=[Db.prototype.vb,Db.prototype.Eb],Ub=[Db.prototype.tb,Db.prototype.Db];
function Vb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ga=0;this.Ka=b;this.ia=c;this.Ia=Math.round(this.Ka/1E4)/100;this.ga=this.Ia*this.ia;this.Ja=this.pa=this.ja=this.za=0;this.i.B=this.i.Qa=!1;this.i.J=a.autoStart;"string"==typeof this.i.J&&(this.i.J="true"==this.i.J);this.i.Ba=!1;this.xa=this.ha=0;this.ya=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.I=[];this.Wa=this.yb.bind(this);this.P=this.D=this.L=this.N=this.C=this.ma=this.K=this.aa=this.La=this.W=0;this.ta=
null;B(this)}l(Vb,t);k=Vb.prototype;k.Z=function(a,b,c,d){this.v=a;this.s=b;this.w=d;this.ta=a.g;for(a=0;a<Wb.length;a++)(b=this.m[Wb[a]])&&this.v.U(null,Wb[a],b);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Xb(this.v,"autoStart");null!=c?this.i.J="true"==c?!0:"false"==c?!1:!!c:null==this.i.J&&(this.i.J=void 0===this.m.run);if(!b){if(a){Yb(this);if(!this.restore(a))return!1;Zb(this)}else this.reset();this.status("No debugger detected");this.i.J||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.i.B?!0:this.i.J?(vb(this),!0):!1};k.Ya=function(){return 0};
function Zb(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.i.Ba=0<=a.ya&&0<a.na;a.i.Ba&&(a.xa=0,a.ha=a.ya-a.P)}function yb(a,b){if(a.i.Ba){var c=!1;a.xa=a.xa+a.Ya()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.na,c=!0);0<=a.oa&&a.oa<=$b(a)&&(a.na=a.oa=-1,Zb(a),N(a),c=!0);c&&a.M($b(a)+" cycles: checksum="+la(a.xa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.i.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.i.B?N(d):vb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){ac(d,d.ia<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function xb(a,b,c){a.P+=b;c&&(a.L=a.N=0)}function bc(a,b){var c=1;b&&1<a.ia&&a.W&&(c=a.W/a.Ia);a.Ja=Math.round(1E3/cc);a.pa=Math.floor(a.Ka/cc*c);b||(a.ja=a.pa);a.za=0}function $b(a){return a.P+a.D+a.L-a.N}function Yb(a){a.W=0;a.La=0;a.P=a.D=a.L=a.N=0;Zb(a);ac(a,1)}
function ac(a,b,c){if(void 0!==b){.8>a.W/a.ga&&(b=1);a.ia=b;b=a.Ia*a.ia;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.fa&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.fa.focus(),window&&window.scrollTo(b,d)))}xb(a,a.D);a.D=0;a.C=Na();a.K=0;bc(a)}function dc(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
function wb(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ec(a,b){var c=a.L-=a.N;a.N=0;b&&(a.L=0);return c}
k.xb=function(){if(this.i.B){this.ya>=this.Ja&&bc(this,!0);this.aa=0;this.ma=Na();if(this.K){var a=this.ma-this.K;a>this.Ia&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.i.Aa?1:this.pa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ea(b)}catch(f){if("number"!=typeof f)throw f;}b=ec(this,!0);this.aa+=b;this.D+=b;yb(this,b);wb(this,b);this.ja-=b;if(0>=this.ja){this.ja+=this.pa;++this.Ka>=fc&&(this.v&&zb(this.v,void 0),this.Ka=0);break}}while(this.i.B)}catch(f){N(this);
this.v&&this.v.stop(Na(),$b(this));a=f.stack||f.message;this.i.error=!0;this.G(a);return}if(this.i.B){a=setTimeout;b=this.Va;this.K=Na();c=this.Ia;this.aa&&(c=Math.round(c*this.aa/this.pa));c-=this.K-this.ma;if(d=this.K-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,ac(this));if(0>c||this.W<this.ga)-1E3>c&&(this.C-=c),c=0;this.ya+=this.aa;this.K+=c;a(b,c)}}};
function vb(a){var b;a.i.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.B)a.M(a.toString()+" busy");else{ac(a);a.i.B=!0;a.i.Pa=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,$b(a));a.w||a.status("Started");setTimeout(a.Va,0)}}k.Ea=function(){return 0};function N(a){var b=!1;if(a.i.B){ec(a);xb(a,a.D);a.D=0;a.i.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),$b(a));b=!0;a.w||a.status("Stopped")}a.i.complete=void 0;return b}var cc=30,fc=15,Wb=["power","reset"];
function gc(a){var b=+a.model||1001;Vb.call(this,a,1E6);this.eb=b;this.ta=+a.addrReset||0;this.fb=hc.bind(this);this.g=O.bind(this);this.la=null;this.Ua=[];this.i.complete=!1}l(gc,Vb);k=gc.prototype;k.reset=function(){this.status("Model "+this.eb);this.i.B&&N(this);this.a=this.A=this.qa=0;this.f=this.Ga=this.ta;this.u=this.da=-1;this.o=this.h=0;this.La=[0,0];this.ba=[0,0];this.X=[0,0];this.ca=[0,0];this.ka=this.f;this.l=0;this.b=this.tb;this.c=this.Eb;this.la=null;Yb(this);this.i.error=!1;Vb.prototype.reset.call(this)};
k.Xa=function(){return 0};k.save=function(){var a=new L(this);a.set(0,[this.a,this.A,this.qa,this.f,this.da,this.u,this.h,this.l,this.Ga,this.ka,this.ta]);a.set(1,[]);a.set(2,[this.P,this.ia,this.i.J]);a.set(3,ic(this));a.set(4,dc(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.A=b.next().value;this.qa=b.next().value;this.f=b.next().value;this.da=b.next().value;this.u=b.next().value;this.h=b.next().value;this.l=b.next().value;this.Ga=b.next().value;this.ka=b.next().value;this.ta=b.next().value;b=a[2];this.P=b[0];ac(this,b[1]);this.i.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ua.length;d++){var e=this.Ua[d];if(e.Bb===b[c]){d=e;break a}}d=
null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=a[b];return!0};function M(a,b){a.f=b%$a}function ic(a){var b=[];for(a=a.la;a;)b.push(a.Bb),a=a.next;return b}k.tb=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Eb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Ea=function(a){this.i.complete=!0;var b=a?this.i.Pa?0:1:-1;this.i.Pa=!1;this.L=this.N=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.h(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.A&4194304?this.A=this.b(this.a):0<=this.da?(this.A=this.qa=this.b(this.da),this.da=-1):(this.A=this.qa=this.b(this.Ga=this.f),this.f=(this.f+1)%$a);this.A&=8388607;this.a=this.A&262143;if(a=this.A>>18&15)this.a=this.a+this.b(a)&
Za;a=this.A&4194304?-1:this.qa/db|0;0<=a&&this.fb(a)}while(0<this.N);return this.i.complete?this.L-this.N:!1===this.i.complete?-1:0};Ea(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new gc(d);Qa(d,c)}});function hc(a){jc[a>>4].call(this,a,a&15)}function P(a){this.g(a)}function kc(){var a=0,b=this.b(this.a),c=b/eb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*eb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
k.yb=function(){if(this.i.B){this.za>=this.Ka&&bc(this,!0);this.aa=0;this.ma=Na();if(this.K){var a=this.ma-this.K;a>this.Ja&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.i.Ba?1:this.pa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Fa(b)}catch(f){if("number"!=typeof f)throw f;}b=ec(this,!0);this.aa+=b;this.D+=b;yb(this,b);wb(this,b);this.ja-=b;if(0>=this.ja){this.ja+=this.pa;++this.La>=fc&&(this.v&&zb(this.v,void 0),this.La=0);break}}while(this.i.B)}catch(f){N(this);
this.v&&this.v.stop(Na(),$b(this));a=f.stack||f.message;this.i.error=!0;this.G(a);return}if(this.i.B){a=setTimeout;b=this.Wa;this.K=Na();c=this.Ja;this.aa&&(c=Math.round(c*this.aa/this.pa));c-=this.K-this.ma;if(d=this.K-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,ac(this));if(0>c||this.W<this.ga)-1E3>c&&(this.C-=c),c=0;this.za+=this.aa;this.K+=c;a(b,c)}}};
function vb(a){var b;a.i.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.B)a.M(a.toString()+" busy");else{ac(a);a.i.B=!0;a.i.Qa=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,$b(a));a.w||a.status("Started");setTimeout(a.Wa,0)}}k.Fa=function(){return 0};function N(a){var b=!1;if(a.i.B){ec(a);xb(a,a.D);a.D=0;a.i.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),$b(a));b=!0;a.w||a.status("Stopped")}a.i.complete=void 0;return b}var cc=30,fc=15,Wb=["power","reset"];
function gc(a){var b=+a.model||1001;Vb.call(this,a,1E6);this.fb=b;this.ua=+a.addrReset||0;this.gb=hc.bind(this);this.h=O.bind(this);this.la=null;this.Sa=[];this.i.complete=!1}l(gc,Vb);k=gc.prototype;
k.reset=function(){this.status("Model "+this.fb);this.i.B&&N(this);this.qa=this.ra=this.a=this.A=0;this.f=this.Ha=this.ua;this.u=this.da=-1;this.o=this.g=0;this.Ma=[0,0];this.ba=[0,0];this.X=[0,0];this.ca=[0,0];this.ka=this.f;this.l=0;this.b=this.ub;this.c=this.Fb;this.la=null;Yb(this);this.i.error=!1;Vb.prototype.reset.call(this)};k.Ya=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.A,this.qa,this.ra,this.f,this.da,this.u,this.g,this.l,this.Ha,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ia,this.i.J]);a.set(3,ic(this));a.set(4,dc(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.A=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.da=b.next().value;this.u=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ha=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];ac(this,b[1]);this.i.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
if(e.Cb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=a[b];return!0};function M(a,b){a.f=b%$a}function ic(a){var b=[];for(a=a.la;a;)b.push(a.Cb),a=a.next;return b}k.ub=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Fa=function(a){this.i.complete=!0;var b=a?this.i.Qa?0:1:-1;this.i.Qa=!1;this.L=this.N=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.h(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.A&4194304?this.A=this.qa=this.b(this.a):0<=this.da?(this.A=this.ra=this.b(this.da),this.da=-1):(this.A=this.ra=this.b(this.Ha=this.f),this.f=(this.f+1)%$a);this.A&=8388607;this.a=this.A&262143;if(a=this.A>>18&15)this.a=this.a+
(this.qa=this.b(a))&Za;a=this.A&4194304?-1:this.ra/db|0;0<=a&&this.gb(a)}while(0<this.N);return this.i.complete?this.L-this.N:!1===this.i.complete?-1:0};Ea(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new gc(d);Qa(d,c)}});function hc(a){jc[a>>4].call(this,a,a&15)}function P(a){this.h(a)}function kc(){var a=0,b=this.b(this.a),c=b/eb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*eb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
function lc(a,b){a=this.b(this.a);if(0>this.u)this.u=a,this.A=this.a|4194304;else{var c=this.u/eb&63,d=this.u>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.u=-1}}function mc(a,b){a=this.b(this.a);if(0>this.u)this.u=a,this.A=this.a|4194304;else{var c=this.u/eb&63,d=this.u>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.u=-1}}function nc(a,b){this.c(b,this.b(this.a))}
function oc(a,b){this.c(b,this.a)}function pc(a,b){this.c(this.a,this.b(b))}function qc(a,b){this.c(b,0)}function rc(a,b){this.c(b,H-this.b(b))}function sc(a,b){this.c(b,H)}function tc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,uc(a,d,c)+(c-(c&D)))}function vc(a,b){var c=this.b(b);this.c(b,uc(a,c,0))}function wc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,uc(a,c,b)+(b-(b&D)))}
function xc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&D,a){case 256:d+=D;break;case 384:d+=c>F?D:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function yc(a,b){var c=(this.b(this.a)&D)*E,d=this.b(b);this.c(b,uc(a,d,c)+c)}function zc(a,b){var c=this.a*E,d=this.b(b);this.c(b,uc(a,d,c)+c)}function Ac(a,b){b=(this.b(b)&D)*E;var c=this.b(this.a);this.c(this.a,uc(a,c,b)+b)}function Bc(a,b){var c=this.b(this.a),d=(c&D)*E,c=uc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}
function Cc(a,b){var c=this.b(this.a)&D,d=this.b(b);this.c(b,Dc(a,d,c)+c)}function Ec(a,b){var c=this.b(b);this.c(b,Dc(a,c,this.a)+this.a)}function Fc(a,b){b=this.b(b)&D;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Gc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=D,a){case 256:d+=D*E;break;case 384:d+=c>ab?D*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Hc(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Dc(a,d,c)+c)}function Ic(a,b){var c=this.b(b);this.c(b,Dc(a,c,0))}
function Jc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Kc(a,b){var c=this.b(this.a),d=c/E|0,c=Dc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Lc[a&7].call(this,a,a>>3&127)}function Mc(){}function Nc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Oc(a){a>F&&(a!=G?a=cb-a:this.h|=163840);return a}function R(a,b){var c=(a+b)%J;Pc.call(this,a,b,c);return c}
function Qc(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=H-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.h|=131104,-1;f=this.La;f[0]=0;f[1]=0;f=this.ba;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ca;c[0]=a;for(c[1]=b;0<Rc(this.ca,this.X);)Sc(this.X,this.X),Sc(this.ba,this.ba);do{if(0<=Rc(this.ca,this.X)&&(b=this.ca,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Sc(this.La,this.ba),Tc(this.ca)))break;Uc(this.X);Uc(this.ba)}while(!Tc(this.ba));
a=this.La[0];this.o=this.ca[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
function Vc(a,b,c){var d=a,e=b;b=!1;var f;d>F&&(d=J-d,b=!b);e>F&&(e=J-e,b=!b);if(d<E&&e<E)a=d*e,f=0;else{a=d&D;d=Math.trunc(d/E);f=e&D;var e=Math.trunc(e/E),g=a*f,h=d*f+Math.trunc(g/E);f=Math.trunc(h/E);h=(h&D)+a*e;a=h*E+(g&D);f+=Math.trunc(h/E)+d*e}b&&(a?(f=H-f,a=J-a):f&&(f=J-f));if(c)return(f||a>F)&&(f!=H||a<=F)&&(this.h|=131072),a;c=a;b=f;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;d=b-b%G;a!=d&&(b=a+(b-d),this.h|=131072);this.o=c;return b}
function Wc(a){a?a==G?this.h|=163840:a=cb-a:this.h|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=J);Pc.call(this,c,b,a);return c}function Pc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.h=this.h|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-G)}
function Jc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Kc(a,b){var c=this.b(this.a),d=c/E|0,c=Dc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Lc[a&7].call(this,a,a>>3&127)}function Mc(){}function Nc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Oc(a){a>F&&(a!=G?a=cb-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Pc.call(this,a,b,c);return c}
function Qc(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=H-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Ma;f[0]=0;f[1]=0;f=this.ba;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ca;c[0]=a;for(c[1]=b;0<Rc(this.ca,this.X);)Sc(this.X,this.X),Sc(this.ba,this.ba);do{if(0<=Rc(this.ca,this.X)&&(b=this.ca,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Sc(this.Ma,this.ba),Tc(this.ca)))break;Uc(this.X);Uc(this.ba)}while(!Tc(this.ba));
a=this.Ma[0];this.o=this.ca[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
function Vc(a,b,c){var d=a,e=b;b=!1;var f;d>F&&(d=J-d,b=!b);e>F&&(e=J-e,b=!b);if(d<E&&e<E)a=d*e,f=0;else{a=d&D;d=Math.trunc(d/E);f=e&D;var e=Math.trunc(e/E),g=a*f,h=d*f+Math.trunc(g/E);f=Math.trunc(h/E);h=(h&D)+a*e;a=h*E+(g&D);f+=Math.trunc(h/E)+d*e}b&&(a?(f=H-f,a=J-a):f&&(f=J-f));if(c)return(f||a>F)&&(f!=H||a<=F)&&(this.g|=131072),a;c=a;b=f;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;d=b-b%G;a!=d&&(b=a+(b-d),this.g|=131072);this.o=c;return b}
function Wc(a){a?a==G?this.g|=163840:a=cb-a:this.g|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=J);Pc.call(this,c,b,a);return c}function Pc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-G)}
function Xc(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a<G?a:a-J}function Y(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function Z(a){return(a/E|0)+(a&D)*E}function Dc(a,b,c){switch(a&384){case 0:b-=b&D;break;case 128:b=0;break;case 256:b=D*E;break;case 384:b=c>ab?D*E:0}return b}function uc(a,b,c){switch(a&384){case 0:b&=D;break;case 128:b=0;break;case 256:b=D;break;case 384:b=c>F?D:0}return b}
function Sc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=J&&(a[0]%=J,a[1]++)}function Rc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Uc(a){a[1]%2&&(a[0]+=J);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Tc(a){return!a[0]&&!a[1]}
var jc=[P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},kc,function(a,b){0>this.u&&kc.call(this);lc.call(this,0,b)},lc,function(a,b){0>this.u&&kc.call(this);mc.call(this,0,b)},mc,function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},
function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},
function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},nc,oc,pc,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&D)*E;this.c(b,a)},function(a,b){this.c(b,this.a*E)},function(a,b){a=this.b(b);a=(a/E|0)+(a&D)*E;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&D)*E;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Wc.call(this,this.b(this.a)))},function(a,b){this.c(b,Wc.call(this,this.a))},function(a,b){this.c(this.a,
var jc=[P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},kc,function(a,b){0>this.u&&kc.call(this);lc.call(this,0,b)},lc,function(a,b){0>this.u&&kc.call(this);mc.call(this,0,b)},mc,function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},
function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},
function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},nc,oc,pc,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&D)*E;this.c(b,a)},function(a,b){this.c(b,this.a*E)},function(a,b){a=this.b(b);a=(a/E|0)+(a&D)*E;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&D)*E;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Wc.call(this,this.b(this.a)))},function(a,b){this.c(b,Wc.call(this,this.a))},function(a,b){this.c(this.a,
Wc.call(this,this.b(b)))},function(a,b){a=Wc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Oc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Oc.call(this,this.b(b)))},function(a,b){a=Oc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a,!0))},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a),
!0))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.o)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a));this.c(b+1&15,this.o)},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.o)},function(a,b){a=Qc.call(this,this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+
1&15,this.o))},function(a,b){a=Qc.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=Qc.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=Qc.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))},
function(a,b){a=this.b(b);b=this.b(b+1&15);b=Qc.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){var c=(this.a<<14>>14)%256;if(c){a=this.b(b);var d=a>F?-(J-a):a;0<c?(35<=c?(d=0>d?G:0,c=F):(d=d*Math.pow(2,c)%G,c=G-Math.pow(2,35-c)),a<=F?a+c>F&&(this.h|=131072):a-c<=F&&(this.h|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+J:d;
function(a,b){a=this.b(b);b=this.b(b+1&15);b=Qc.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){var c=(this.a<<14>>14)%256;if(c){a=this.b(b);var d=a>F?-(J-a):a;0<c?(35<=c?(d=0>d?G:0,c=F):(d=d*Math.pow(2,c)%G,c=G-Math.pow(2,35-c)),a<=F?a+c>F&&(this.g|=131072):a-c<=F&&(this.g|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+J:d;
this.c(b,a)}},function(a,b){if(a=(this.a<<14>>14)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%J+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),c=0<a?36<=a?0:c*Math.pow(2,a)%J:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c<G;)a++,c*=2;M(this,this.a)}this.c(b+1&15,a)},function(a,b){if(a=(this.a<<14>>14)%256){var c,d=this.b(b),e=this.b(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<G||d>F&&
d<H)this.h|=131072;if(71<=a){if(0<e&&e<G||e>F&&e<H)this.h|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=F?e+c>F&&(this.h|=131072):e-c<=F&&(this.h|=131072);e=0;f>F&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=F?f+c>F&&(this.h|=131072):(f-c<=F&&(this.h|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?H:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=H,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+
d<H)this.g|=131072;if(71<=a){if(0<e&&e<G||e>F&&e<H)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=F?e+c>F&&(this.g|=131072):e-c<=F&&(this.g|=131072);e=0;f>F&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=F?f+c>F&&(this.g|=131072):(f-c<=F&&(this.g|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?H:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=H,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+
d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=(this.a<<14>>14)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),d=this.b(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%J,d=0):(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%J,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},O,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,a)},function(a,b){a=!1;for(var c=this.b(b),d=c/E|0,c=c&D;!a;)this.c(c,this.b(d)),c==this.a&&(a=!0),d=d+1&D,c=c+1&D,this.i.B||(this.c(b,d*
E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a<G&&M(this,this.a)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a>=G&&M(this,this.a)},function(a){this.g(a)},function(a,b){a=b<<14;this.h&a&&(this.h&=~a,M(this,this.a))},function(){this.da=this.a},O,function(a){this.g(a)},function(a,b){a=this.b(b);a+=262145;this.c(a&D,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.h|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&D);this.c(this.a,c);this.a==b&&
(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==D&&(this.h|=262144);this.c(b,a)},function(a){this.g(a)},function(){this.c(this.a,(this.h&D)*E+this.f);M(this,this.a+1)},function(a,b){this.c(b,(this.h&D)*E+this.f);M(this,this.a)},function(a){this.g(a)},function(a){this.g(a)},function(a,b){this.c(b,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,R.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R.call(this,this.b(b),
this.b(this.a))))},function(a,b){this.c(b,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,S.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,S.call(this,this.b(b),this.b(this.a))))},Mc,function(a,b){0>V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.a)&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),
this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){0<V(this.b(b),this.a)&&M(this,this.f+1)},Nc,function(a,b){0>V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){0<V(this.b(b),
this.b(this.a))&&M(this,this.f+1)},Mc,function(a,b){0>X(this.b(b))&&M(this,this.a)},function(a,b){X(this.b(b))||M(this,this.a)},function(a,b){0>=X(this.b(b))&&M(this,this.a)},function(){M(this,this.a)},function(a,b){0<=X(this.b(b))&&M(this,this.a)},function(a,b){X(this.b(b))&&M(this,this.a)},function(a,b){0<X(this.b(b))&&M(this,this.a)},function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0>X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);X(a)||M(this,this.f+
1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){M(this,this.f+1);b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0<X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){this.c(b,R.call(this,this.b(b),1))},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0>X(a)&&M(this,this.a)},function(a,
b){a=this.c(b,R.call(this,this.b(b),1));X(a)||M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0>=X(a)&&M(this,this.a)},function(a,b){this.c(b,R.call(this,this.b(b),1));M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0<=X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0<X(a)&&M(this,this.a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));b&&this.c(b,a)},
function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0>X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));X(a)||M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},
function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0<X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){this.c(b,S.call(this,this.b(b),1))},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0>X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));X(a)||M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0>=X(a)&&M(this,this.a)},function(a,b){this.c(b,S.call(this,
this.b(b),1));M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0<=X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0<X(a)&&M(this,this.a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));X(a)||M(this,
this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0<X(a)&&M(this,
this.f+1);b&&this.c(b,a)},qc,qc,function(){this.c(this.a,0)},function(a,b){this.c(this.a,this.c(b,0))},function(a,b){this.c(b,T(this.b(b),this.b(this.a)))},function(a,b){this.c(b,T(this.b(b),this.a))},function(a,b){this.c(this.a,T(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(this.b(b),this.b(this.a))))},function(a,b){this.c(b,T(H-this.b(b),this.b(this.a)))},function(a,b){this.c(b,T(H-this.b(b),this.a))},function(a,b){this.c(this.a,T(H-this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,
this.c(b,T(H-this.b(b),this.b(this.a))))},nc,oc,Nc,nc,function(a,b){this.c(b,T(this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,T(this.b(b),H-this.a))},function(a,b){this.c(this.a,T(this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(this.b(b),H-this.b(this.a))))},Mc,Mc,pc,pc,function(a,b){this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Y(this.b(b),this.a))},function(a,b){this.c(this.a,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Y(this.b(b),
this.b(this.a))))},function(a,b){this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),this.a))},function(a,b){this.c(this.a,W(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(this.b(b),this.b(this.a))))},function(a,b){this.c(b,T(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,T(H-this.b(b),H-this.a))},function(a,b){this.c(this.a,T(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(H-this.b(b),H-this.b(this.a))))},function(a,b){this.c(b,
Xc(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Xc(this.b(b),this.a))},function(a,b){this.c(this.a,Xc(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Xc(this.b(b),this.b(this.a))))},rc,rc,function(a,b){this.c(this.a,H-this.b(b))},function(a,b){this.c(this.a,this.c(b,H-this.b(b)))},function(a,b){this.c(b,W(H-this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(H-this.b(b),this.a))},function(a,b){this.c(this.a,W(H-this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,
W(H-this.b(b),this.b(this.a))))},function(a,b){this.c(b,H-this.b(this.a))},function(a,b){this.c(b,H-this.a)},function(){this.c(this.a,H-this.b(this.a))},function(a,b){this.c(this.a,this.c(b,H-this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),H-this.a))},function(a,b){this.c(this.a,W(this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(this.b(b),H-this.b(this.a))))},function(a,b){this.c(b,W(H-this.b(b),H-this.b(this.a)))},function(a,
b){this.c(b,W(H-this.b(b),H-this.a))},function(a,b){this.c(this.a,W(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(H-this.b(b),H-this.b(this.a))))},sc,sc,function(){this.c(this.a,H)},function(a,b){this.c(this.a,this.c(b,H))},tc,vc,wc,xc,yc,zc,Ac,Bc,tc,vc,wc,xc,yc,zc,Ac,Bc,tc,vc,wc,xc,yc,zc,Ac,Bc,tc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Mc,Mc,function(a,b){T(this.b(b),this.a)||M(this,this.f+1)},function(a,
b){T(this.b(b),this.a*E)||M(this,this.f+1)},function(){M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){T(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){T(this.b(b),this.a*E)&&M(this,this.f+1)},Nc,Nc,function(a,b){T(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){T(this.b(b),Z(this.b(this.a)))||M(this,this.f+1)},function(){M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){T(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){T(this.b(b),Z(this.b(this.a)))&&
M(this,this.f+1)},function(a,b){this.c(b,U(this.b(b),this.a))},function(a,b){this.c(b,U(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)||M(this,this.f+1);this.c(b,U(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)||M(this,this.f+1);this.c(b,U(a,c))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),this.a))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)&&M(this,this.f+1);this.c(b,U(a,this.a))},function(a,b){a=this.b(b);
var c=this.a*E;T(a,c)&&M(this,this.f+1);this.c(b,U(a,c))},function(a,b){this.c(b,U(this.b(b),this.b(this.a)))},function(a,b){this.c(b,U(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)||M(this,this.f+1);this.c(b,U(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)||M(this,this.f+1);this.c(b,U(a,c))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),this.b(this.a)))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),Z(this.b(this.a))))},function(a,
b){a=this.b(b);var c=this.b(this.a);T(a,c)&&M(this,this.f+1);this.c(b,U(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,U(a,c))},function(a,b){this.c(b,Y(this.b(b),this.a))},function(a,b){this.c(b,Y(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)||M(this,this.f+1);this.c(b,Y(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)||M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){M(this,this.f+1);this.c(b,Y(this.b(b),this.a))},function(a,b){M(this,
this.f+1);this.c(b,Y(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)&&M(this,this.f+1);this.c(b,Y(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)&&M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Y(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)||M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)||M(this,this.f+1);this.c(b,Y(a,c))},function(a,
b){M(this,this.f+1);this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){M(this,this.f+1);this.c(b,Y(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)&&M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){this.c(b,W(this.b(b),this.a))},function(a,b){this.c(b,W(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)||M(this,this.f+1);this.c(b,W(a,this.a))},function(a,b){a=
this.b(b);T(a,this.a*E)||M(this,this.f+1);this.c(b,W(a,this.a*E))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),this.a))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)&&M(this,this.f+1);this.c(b,W(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},function(a,b){this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);
T(a,c)||M(this,this.f+1);this.c(b,W(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)||M(this,this.f+1);this.c(b,W(a,c))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,
Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],Lc=[function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a,b){switch(b){case 0:a=this.b(this.a);a&8&&(this.h&=-131073);a&131072&&(this.h&=-262145);break;default:this.g(a)}},function(a,b){switch(b){case 0:a=0;this.h&131072&&(a|=8);this.h&262144&&(a|=65536);this.c(this.a,a);break;default:this.g(a)}},function(a){this.g(a)},function(a){this.g(a)}];
function Yc(a){t.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.h=a.file;this.o=ma(this.h);if(this.h){a=this.h;var b=na(this.o);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(La(c.va,a,b),(a=ua(a,b))?(c.a=a.H,c.O=a.O):c.h=null);Zc(c)})}}l(Yc,t);
E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a<G&&M(this,this.a)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a>=G&&M(this,this.a)},function(a,b){b&1&&(this.g|=4096);if(b&2){var c=this.qa,c=c/E|0;this.g=this.g&-254049|c&254048;this.g|=c&4096;c&2048?this.g&4096||(this.g|=2048):this.g&=-2049}b&4&&N(this);b&8&&this.h(a);M(this,this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.da=this.a},O,function(a){this.h(a)},function(a,
b){a=this.b(b);a+=262145;this.c(a&D,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&D);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==D&&(this.g|=262144);this.c(b,a)},function(a){this.h(a)},function(){this.c(this.a,(this.g&D)*E+this.f);M(this,this.a+1)},function(a,b){this.c(b,(this.g&D)*E+this.f);M(this,this.a)},function(a){this.h(a)},function(a){this.h(a)},function(a,b){this.c(b,R.call(this,this.b(b),this.b(this.a)))},function(a,
b){this.c(b,R.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R.call(this,this.b(b),this.b(this.a))))},function(a,b){this.c(b,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,S.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,S.call(this,this.b(b),this.b(this.a))))},Mc,function(a,b){0>V(this.b(b),this.a)&&M(this,
this.f+1)},function(a,b){V(this.b(b),this.a)||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.a)&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){0<V(this.b(b),this.a)&&M(this,this.f+1)},Nc,function(a,b){0>V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},
function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){0<V(this.b(b),this.b(this.a))&&M(this,this.f+1)},Mc,function(a,b){0>X(this.b(b))&&M(this,this.a)},function(a,b){X(this.b(b))||M(this,this.a)},function(a,b){0>=X(this.b(b))&&M(this,this.a)},function(){M(this,this.a)},function(a,b){0<=X(this.b(b))&&M(this,this.a)},function(a,b){X(this.b(b))&&M(this,this.a)},function(a,b){0<X(this.b(b))&&
M(this,this.a)},function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0>X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);X(a)||M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){M(this,this.f+1);b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);
0<X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){this.c(b,R.call(this,this.b(b),1))},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0>X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));X(a)||M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0>=X(a)&&M(this,this.a)},function(a,b){this.c(b,R.call(this,this.b(b),1));M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0<=X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),
1));X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0<X(a)&&M(this,this.a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0>X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));X(a)||M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,
R.call(this,this.b(this.a),1));M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0<X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){this.c(b,S.call(this,this.b(b),1))},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0>X(a)&&M(this,this.a)},function(a,
b){a=this.c(b,S.call(this,this.b(b),1));X(a)||M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0>=X(a)&&M(this,this.a)},function(a,b){this.c(b,S.call(this,this.b(b),1));M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0<=X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0<X(a)&&M(this,this.a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));b&&this.c(b,a)},
function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));X(a)||M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},
function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0<X(a)&&M(this,this.f+1);b&&this.c(b,a)},qc,qc,function(){this.c(this.a,0)},function(a,b){this.c(this.a,this.c(b,0))},function(a,b){this.c(b,T(this.b(b),this.b(this.a)))},function(a,b){this.c(b,T(this.b(b),this.a))},function(a,b){this.c(this.a,T(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(this.b(b),this.b(this.a))))},
function(a,b){this.c(b,T(H-this.b(b),this.b(this.a)))},function(a,b){this.c(b,T(H-this.b(b),this.a))},function(a,b){this.c(this.a,T(H-this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(H-this.b(b),this.b(this.a))))},nc,oc,Nc,nc,function(a,b){this.c(b,T(this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,T(this.b(b),H-this.a))},function(a,b){this.c(this.a,T(this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(this.b(b),H-this.b(this.a))))},Mc,Mc,pc,pc,function(a,b){this.c(b,
Y(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Y(this.b(b),this.a))},function(a,b){this.c(this.a,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Y(this.b(b),this.b(this.a))))},function(a,b){this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),this.a))},function(a,b){this.c(this.a,W(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(this.b(b),this.b(this.a))))},function(a,b){this.c(b,T(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,
T(H-this.b(b),H-this.a))},function(a,b){this.c(this.a,T(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,T(H-this.b(b),H-this.b(this.a))))},function(a,b){this.c(b,Xc(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Xc(this.b(b),this.a))},function(a,b){this.c(this.a,Xc(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Xc(this.b(b),this.b(this.a))))},rc,rc,function(a,b){this.c(this.a,H-this.b(b))},function(a,b){this.c(this.a,this.c(b,H-this.b(b)))},function(a,b){this.c(b,
W(H-this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(H-this.b(b),this.a))},function(a,b){this.c(this.a,W(H-this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(H-this.b(b),this.b(this.a))))},function(a,b){this.c(b,H-this.b(this.a))},function(a,b){this.c(b,H-this.a)},function(){this.c(this.a,H-this.b(this.a))},function(a,b){this.c(this.a,this.c(b,H-this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),H-this.a))},function(a,b){this.c(this.a,
W(this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(this.b(b),H-this.b(this.a))))},function(a,b){this.c(b,W(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(b,W(H-this.b(b),H-this.a))},function(a,b){this.c(this.a,W(H-this.b(b),H-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,W(H-this.b(b),H-this.b(this.a))))},sc,sc,function(){this.c(this.a,H)},function(a,b){this.c(this.a,this.c(b,H))},tc,vc,wc,xc,yc,zc,Ac,Bc,tc,vc,wc,xc,yc,zc,Ac,Bc,tc,vc,wc,xc,yc,zc,Ac,Bc,tc,vc,wc,xc,
yc,zc,Ac,Bc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Cc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Mc,Mc,function(a,b){T(this.b(b),this.a)||M(this,this.f+1)},function(a,b){T(this.b(b),this.a*E)||M(this,this.f+1)},function(){M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){T(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){T(this.b(b),this.a*E)&&M(this,this.f+1)},Nc,Nc,function(a,b){T(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){T(this.b(b),Z(this.b(this.a)))||
M(this,this.f+1)},function(){M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){T(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){T(this.b(b),Z(this.b(this.a)))&&M(this,this.f+1)},function(a,b){this.c(b,U(this.b(b),this.a))},function(a,b){this.c(b,U(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)||M(this,this.f+1);this.c(b,U(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)||M(this,this.f+1);this.c(b,U(a,c))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),
this.a))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)&&M(this,this.f+1);this.c(b,U(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)&&M(this,this.f+1);this.c(b,U(a,c))},function(a,b){this.c(b,U(this.b(b),this.b(this.a)))},function(a,b){this.c(b,U(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)||M(this,this.f+1);this.c(b,U(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)||M(this,
this.f+1);this.c(b,U(a,c))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),this.b(this.a)))},function(a,b){M(this,this.f+1);this.c(b,U(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)&&M(this,this.f+1);this.c(b,U(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,U(a,c))},function(a,b){this.c(b,Y(this.b(b),this.a))},function(a,b){this.c(b,Y(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)||M(this,this.f+1);
this.c(b,Y(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)||M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){M(this,this.f+1);this.c(b,Y(this.b(b),this.a))},function(a,b){M(this,this.f+1);this.c(b,Y(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)&&M(this,this.f+1);this.c(b,Y(a,this.a))},function(a,b){a=this.b(b);var c=this.a*E;T(a,c)&&M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Y(this.b(b),Z(this.b(this.a))))},
function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)||M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)||M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){M(this,this.f+1);this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){M(this,this.f+1);this.c(b,Y(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)&&M(this,this.f+1);this.c(b,Y(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,Y(a,
c))},function(a,b){this.c(b,W(this.b(b),this.a))},function(a,b){this.c(b,W(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)||M(this,this.f+1);this.c(b,W(a,this.a))},function(a,b){a=this.b(b);T(a,this.a*E)||M(this,this.f+1);this.c(b,W(a,this.a*E))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),this.a))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),this.a*E))},function(a,b){a=this.b(b);T(a,this.a)&&M(this,this.f+1);this.c(b,W(a,this.a))},function(a,b){a=this.b(b);var c=this.a*
E;T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},function(a,b){this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);T(a,c)||M(this,this.f+1);this.c(b,W(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)||M(this,this.f+1);this.c(b,W(a,c))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){M(this,this.f+1);this.c(b,W(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);
var c=this.b(this.a);T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],Lc=[function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a){this.h(a)},function(a,b){switch(b){case 0:a=this.b(this.a);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.h(a)}},
function(a,b){switch(b){case 0:a=0;this.g&131072&&(a|=8);this.g&262144&&(a|=65536);this.c(this.a,a);break;default:this.h(a)}},function(a){this.h(a)},function(a){this.h(a)}];
function Yc(a){t.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.h=a.file;this.o=ma(this.h);if(this.h){a=this.h;var b=na(this.o);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(La(c.wa,a,b),(a=ua(a,b))?(c.a=a.H,c.O=a.O):c.h=null);Zc(c)})}}l(Yc,t);
Yc.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;Zc(this)};Yc.prototype.V=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Yc.prototype.R=function(){return!0};
function Zc(a){if(!Wa(a)){if(a.h){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+la(a.a.length,8,!0)+") does not match specified size ("+la(a.g,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.l;if(Gb(a.s,b,a.g,Ob)){var c;for(c=0;c<a.a.length;c++)Bb(a.s,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.g,h=[],m=d.l>>>f.f;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=16384;f=d.s;
d=d.g;g=0;for(e>>>=f.f;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=16384}}delete a.a}}}B(a)}}Ea(function(){for(var a=A(document,z,"rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Yc(d);Qa(d,c)}});
function $c(a){t.call(this,"RAM",a);this.O=this.Y=null;this.f=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.o=!1;this.a=a.file;this.l=ma(this.a);if(this.a){a=this.a;var b=na(this.l);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(La(c.va,a,b),(a=ua(a,b))?(c.Y=a.Y,c.O=a.O,null==
function $c(a){t.call(this,"RAM",a);this.O=this.Y=null;this.f=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.o=!1;this.a=a.file;this.l=ma(this.a);if(this.a){a=this.a;var b=na(this.l);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(La(c.wa,a,b),(a=ua(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);ad(c)})}}l($c,t);$c.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;ad(this)};$c.prototype.V=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.f,this.g,this.O),delete this.O);b||this.reset();return!0};$c.prototype.R=function(){return!0};
function ad(a){if(a.s&&(!a.h&&a.g&&(Gb(a.s,a.f,a.g,1)?a.h=!0:a.g=0),!Wa(a))){if(!a.h)q("No RAM allocated");else if(a.a){if(!a.Y)return;bd(a,a.Y,a.T,a.S,a.f)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;B(a)}}
$c.prototype.reset=function(){if(this.h&&!this.o){for(var a=this.s,b=this.f,c=this.g,d=b&16383,b=b>>>a.f;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-G&&(g+=J);for(var g=Math.trunc(Math.abs(g))%J,h=d;f--&&h<e.size;h++)e.g(g,d,e.ea+d);c-=16384;b++;d=0}this.Y&&bd(this,this.Y,this.T,this.S,this.f,!this.w)}this.o=!1};
function bd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Bb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(N(a.j),f=!1),null!=d&&(a=a.j,a.ta=d,M(a,d),f?a.i.F?a.i.B||vb(a):a.i.J=!0:a.w&&a.i.F?N(a)||a.v.i.reset||(a.w.g(),zb(a.v,-1)):!1===f&&N(a),!a.i.B&&a.sa&&a.sa.stop()));return g}Ea(function(){for(var a=A(document,z,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new $c(d);Qa(d,c)}});
function cd(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=dd;b&&(void 0===c&&(c="Panel"),(c=x(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Ya,receiveData:this.Ca,receiveStatus:this.vb,setConnection:this.yb}}l(cd,t);k=cd.prototype;
k.U=function(a,b,c){var d=this;switch(b){case dd:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Ta:n.bb:46==c?b=n.Ta:a.ctrlKey&&c>=n.Sa&&c<=n.cb&&(b=c-(n.Sa-n.Za));b&&(a.preventDefault&&a.preventDefault(),d.Ca(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.ab&&(b=n.$a);d.Ca(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ca(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
k.Ya=function(a){if(!this.a){var b=Xb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.ua)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.va+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Ya(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Ca=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};k.vb=function(){};k.yb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var dd="buffer";
function bd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Bb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(N(a.j),f=!1),null!=d&&(a=a.j,a.ua=d,M(a,d),f?a.i.F?a.i.B||vb(a):a.i.J=!0:a.w&&a.i.F?N(a)||a.v.i.reset||(a.w.g(),zb(a.v,-1)):!1===f&&N(a),!a.i.B&&a.ta&&a.ta.stop()));return g}Ea(function(){for(var a=A(document,z,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new $c(d);Qa(d,c)}});
function cd(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=dd;b&&(void 0===c&&(c="Panel"),(c=x(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Za,receiveData:this.Da,receiveStatus:this.wb,setConnection:this.zb}}l(cd,t);k=cd.prototype;
k.U=function(a,b,c){var d=this;switch(b){case dd:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Ua:n.cb:46==c?b=n.Ua:a.ctrlKey&&c>=n.Ta&&c<=n.eb&&(b=c-(n.Ta-n.$a));b&&(a.preventDefault&&a.preventDefault(),d.Da(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.bb&&(b=n.ab);d.Da(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
k.Za=function(a){if(!this.a){var b=Xb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Za(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Da=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};k.wb=function(){};k.zb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var dd="buffer";
Ea(function(){for(var a=A(document,z,"serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new cd(d);Qa(d,c)}});
function ed(a,b,c){t.call(this,"Computer",a);this.i.F=!1;this.L=null;fd(this,b);this.I=Xb(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.u=this.l=null;this.N=this.K=!1;this.X=Xb(this,"url")||"";(Math.random()+.1).toString(36);this.f=gd(this);if(this.j=x("CPU",this.id)){this.w=x("Debugger",this.id);this.s=new Cb({id:this.va+".bus",busWidth:this.W},this.j,this.w);var d,e=w(this.id);if((this.g=x("Panel",this.id))&&this.g.fa)for(b=0;b<e.length;b++)d=
function ed(a,b,c){t.call(this,"Computer",a);this.i.F=!1;this.L=null;fd(this,b);this.I=Xb(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.u=this.l=null;this.N=this.K=!1;this.X=Xb(this,"url")||"";(Math.random()+.1).toString(36);this.f=gd(this);if(this.j=x("CPU",this.id)){this.w=x("Debugger",this.id);this.s=new Cb({id:this.wa+".bus",busWidth:this.W},this.j,this.w);var d,e=w(this.id);if((this.g=x("Panel",this.id))&&this.g.fa)for(b=0;b<e.length;b++)d=
e[b],d.G=this.g.G,d.M=this.g.M,d.fa=this.g.fa;this.M(Ya+" v1.34.2\nCopyright \u00a9 2012-2017 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.Z&&d.Z(this,this.s,this.j,this.w);b=null;d=Xb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Xb(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.A=!0,this.a=hd),this.a&&(this.u=new L(this,"1.34.2"),id(this.u)?b=null:delete this.u);!b&&this.a&&
(b=jd(this))&&(this.A=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.A=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.C=b,g.P=!0);B(g)})}else B(this);this.m.power||(this.I=!0);!c&&this.I&&kd(this,this.ra)}else q("Unable to find CPU component")}l(ed,t);function fd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.L=b}
(b=jd(this))&&(this.A=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.A=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.C=b,g.P=!0);B(g)})}else B(this);this.m.power||(this.I=!0);!c&&this.I&&kd(this,this.sa)}else q("Unable to find CPU component")}l(ed,t);function fd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.L=b}
function Xb(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.L&&(e=a.L[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function kd(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Wa(f)){Wa(f,function(){kd(a,b,c)});return}}b.call(a,c)}
function ld(a,b){var c=new L(a,"1.34.2",md);if(id(c)&&nd(c)){var d=c.get(od),e=b?b.get(od):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ed.prototype;
k.ra=function(a){void 0===a&&(a=this.a||(this.C?pd:hd));if(!this.h){this.h++;var b=!1,c=!1;this.K=!1;var d=this.u||new L(this,"1.34.2");if(a==qd)b=!0;else if(a>hd){if(id(d,this.C)){this.l=new L(this,"1.34.2",rd);id(this.l)&&(sd(this,d),a=td,ud(this.l));this.l.set(od,ta());vd(this.l);var e=this.a&&!this.A;if(a==pd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=nd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?id(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(wd,""),this.f=null)):this.M(f+": "+g),ud(d),id(d)?(c=nd(d),e=!0):c=!1))}e&&ld(this,c?d:null)}else a==td&&d.clear()}else ld(this);delete this.C;delete this.u}e=w(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.j&&(c=xd(this,g,d,b,c));b=[d,a,c];a!=qd?kd(this,this.Wa,b):this.Wa(b)}};
function xd(a,b,c,d,e){if(!b.i.F){b.i.F=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=hd,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Ra){var g=b.Ra.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Wa=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(xd(this,this.j,b,c,a),zb(this,-2),this.j.J());this.K&&(sd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0};
k.sa=function(a){void 0===a&&(a=this.a||(this.C?pd:hd));if(!this.h){this.h++;var b=!1,c=!1;this.K=!1;var d=this.u||new L(this,"1.34.2");if(a==qd)b=!0;else if(a>hd){if(id(d,this.C)){this.l=new L(this,"1.34.2",rd);id(this.l)&&(sd(this,d),a=td,ud(this.l));this.l.set(od,ta());vd(this.l);var e=this.a&&!this.A;if(a==pd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=nd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?id(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(wd,""),this.f=null)):this.M(f+": "+g),ud(d),id(d)?(c=nd(d),e=!0):c=!1))}e&&ld(this,c?d:null)}else a==td&&d.clear()}else ld(this);delete this.C;delete this.u}e=w(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.j&&(c=xd(this,g,d,b,c));b=[d,a,c];a!=qd?kd(this,this.Xa,b):this.Xa(b)}};
function xd(a,b,c,d,e){if(!b.i.F){b.i.F=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=hd,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Va){var g=b.Va.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Xa=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(xd(this,this.j,b,c,a),zb(this,-2),this.j.J());this.K&&(sd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0};
function sd(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo help us diagnose it, click OK to send this "+Ya+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Ya;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function yd(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new L(a,"1.34.2"),g=new L(a,"1.34.2",md),h=ta();g.set(od,h);f.set(od,h);f.set(zd,"1.34.2");f.set(Ad,window?window.location.href:null);f.set(Bd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.i.J=a.j.i.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.i.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m<h.length;m++){var u=h[m];u.i.F&&(u.R&&(d=u.R(b,c),"object"===typeof d&&f.set(u.id,d)),c&&(u.i.F=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Cd(a,a.f,f.toString()),vd(g)&&vd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Dd),d&&f.clear(h)):e=f.toString());c&&(a.i.F=!1,b=a.m.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.i.reset=!0;this.s&&this.s.reset&&this.s.reset();this.j&&this.j.reset&&this.j.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.j&&c.reset&&c.reset()}this.i.reset=!1;zb(this,-1)};
k.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}zb(this,-1)};k.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}zb(this,-1)};
function zb(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Fa+=d))&&(e.textContent=c.i.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Fa=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.i.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);nb(a,a.f);hb(a,a.h)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.h||(d.i.F?yd(d,!1,!0):kd(d,d.ra))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.i.F&&!d.h)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+Ya+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");yd(d,a,!0);!a&&d.D?window&&window.location.reload():d.ra(hd)}else d.reset(),d.j&&!d.w&&d.j.J()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
function zb(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ga+=d))&&(e.textContent=c.i.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ga=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.i.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);nb(a,a.f);hb(a,a.h)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.h||(d.i.F?yd(d,!1,!0):kd(d,d.sa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.i.F&&!d.h)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+Ya+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");yd(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(hd)}else d.reset(),d.j&&!d.w&&d.j.J()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=gd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=yd(d,b);b?Cd(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function gd(a,b){var c=a.f;c||((c=xa(wd),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ed(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Ed(a,b){a.f=null;b=p(pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(wd,b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function jd(a){var b=null;a.f&&(b=pa()+"/api/v1/user?req=load&user="+a.f+"&state="+Fd(a,"1.34.2"));return b}
function Cd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Fd(a,"1.34.2");d.data=c;b=p(pa()+"/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.G("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.G(c),ya(wd,""),a.f=null)}}
var rd="failsafe",md="validate",od="timestamp",zd="version",Ad="url",Bd="browser",wd="user",qd=-1,hd=0,pd=1,td=2,Dd=3;Ea(function(){for(var a=A(document,z+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,z,"computer"),e=0;e<c.length;e++){var f=c[e],g=y(f),g=new ed(g,d,!0);Qa(g,f);g.I&&kd(g,g.ra)}});r.show.push(function(){for(var a=A(document,z,"computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=x("Computer",c.id))&&c.N&&!c.i.F&&c.ra(qd)}});
r.exit.push(function(){for(var a=A(document,z,"computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=x("Computer",c.id))&&c.i.F&&yd(c,!(!c.a||c.o),!0)}});function L(a,b,c){this.id=a.id;this.f="";this.a={};this.j=this.g=!1;this.key=Fd(a,b,c);ud(this,a.gb)}k=L.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function id(a,b){return b?(a.f=b,a.j=!0,a.g=!1,!0):a.j?!0:va()&&(b=xa(a.key))?(a.f=b,a.j=!0):!1}
var rd="failsafe",md="validate",od="timestamp",zd="version",Ad="url",Bd="browser",wd="user",qd=-1,hd=0,pd=1,td=2,Dd=3;Ea(function(){for(var a=A(document,z+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,z,"computer"),e=0;e<c.length;e++){var f=c[e],g=y(f),g=new ed(g,d,!0);Qa(g,f);g.I&&kd(g,g.sa)}});r.show.push(function(){for(var a=A(document,z,"computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=x("Computer",c.id))&&c.N&&!c.i.F&&c.sa(qd)}});
r.exit.push(function(){for(var a=A(document,z,"computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=x("Computer",c.id))&&c.i.F&&yd(c,!(!c.a||c.o),!0)}});function L(a,b,c){this.id=a.id;this.f="";this.a={};this.j=this.g=!1;this.key=Fd(a,b,c);ud(this,a.ib)}k=L.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function id(a,b){return b?(a.f=b,a.j=!0,a.g=!1,!0):a.j?!0:va()&&(b=xa(a.key))?(a.f=b,a.j=!0):!1}
function nd(a){var b=!0;if(!a.g)try{a.a=JSON.parse(a.f),a.g=!0}catch(c){q(c.message||c),b=!1}return b}function vd(a){var b=!0;if(va()){var c=JSON.stringify(a.a);ya(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function ud(a,b){a.f="";a.a={};a.j=a.g=!1;b&&a.set("parms",b)}
k.clear=function(a){ud(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 Fd(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Gd=0;
function Hd(a,b,c,d,e,f,g){f("Loading "+a+"...");p(a,null,!0,function(h,m,u){u?(m||(m="unable to load "+a+" ("+u+")"),g(m,null)):Id(m,a,b,c,d,e,f,g)})}

View file

@ -42,73 +42,74 @@ var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[4
"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Kd:65,wi:66,Ci:67,cj:68,E:69,ij:70,lj:71,xj:72,zj:73,Aj:74,Bj:75,Cj:76,Fj:77,Hj:78,Nj:79,Qj:80,Q:81,Sj:82,Vj:83,dk:84,fk:85,hk:86,ik:87,mk:88,nk:89,xf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pk:97,rk:98,uk:99,d:100,e:101,vk:102,wk:103,xk:104,yk:105,Ck:106,k:107,Dk:108,Ek:109,n:110,Fk:111,p:112,q:113,r:114,Gk:115,t:116,Jk:117,Kk:118,Lk:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,cc:127};
function ma(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function na(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}
function pa(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function u(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return na(a,8,b,c?"0o":"")}function qa(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return na(a,10,b)}function v(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return na(a,16,b,c?"0x":"")}function ra(a){return v(a,4,!0)}
function ta(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 ua(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function va(a,b){return-1!==a.indexOf(b,a.length-b.length)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}function ya(a,b){return(a+" ").slice(0,b)}
function za(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Aa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function Ba(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}function Da(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function na(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}
function u(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return na(a,8,b,c?"0o":"")}function qa(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return na(a,10,b)}function v(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return na(a,16,b,c?"0x":"")}function ra(a){return v(a,4,!0)}function ta(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 ua(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function va(a,b){return-1!==a.indexOf(b,a.length-b.length)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}function ya(a,b){return(a+" ").slice(0,b)}function za(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Aa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function Ba(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}
function Da(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ea(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Fa(a,b){var c,d={Z:null,ga:null,za:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.za=g.load;d.ya=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c<e.length;c++)d.Z[f++]=e[c]&255,d.Z[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c<e.length;c++)d.Z[f++]=
e[c]&255,d.Z[f++]=e[c]>>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.qk=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(w(d.Z[0]),d=null):(w("Empty resource: "+a),d=null));d.ga=g.symbols}catch(k){w("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Z=e)}return d}
function Fa(a,b){var c,d={Z:null,ia:null,Ba:null,Aa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ba=g.load;d.Aa=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c<e.length;c++)d.Z[f++]=e[c]&255,d.Z[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c<e.length;c++)d.Z[f++]=
e[c]&255,d.Z[f++]=e[c]>>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.qk=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(w(d.Z[0]),d=null):(w("Empty resource: "+a),d=null));d.ia=g.symbols}catch(k){w("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Z=e)}return d}
function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ha(){if(null==Ja){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ja=a}return Ja}function Ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function La(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ma(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Na(a){if(!Oa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Oa=c}return Oa[a]}function Pa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Qa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Sa(a){Xa.init.push(a)}
function Ya(a){if(Za)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 $a(a){!Za&&a?(Za=!0,ab&&bb("init"),cb&&bb("show")):Za=a}function bb(a){Xa[a]&&Ya(Xa[a])}var Oa=null,Xa={init:[],show:[],exit:[]},ab=!1,cb=!1,Za=!0,Ja=null;Ra("onload",function(){ab=!0;Ya(Xa.init)});Ra("onpageshow",function(){cb=!0;Ya(Xa.show)});Ra(Ma("Opera")||Ma("iOS")?"onunload":"onbeforeunload",function(){Ya(Xa.exit)});
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Vd=b.comment;this.vf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Mb=this.id:(this.vb=this.id.substr(0,a),this.Mb=this.id.substr(a+1));this.A={ready:!1,eb:!1,xd:!1,ba:!1,error:!1};this.Oc=null;this.A.error=!1;this.ha=c||0;this.D=this.f=this.F=this.J=this.Ua=null;db.push(this)}function eb(a,b,c){fb[a]&&b&&(fb[a][b]=c)}function gb(){return Date.now()||+new Date}
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Vd=b.comment;this.vf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Mb=this.id:(this.vb=this.id.substr(0,a),this.Mb=this.id.substr(a+1));this.A={ready:!1,fb:!1,xd:!1,ba:!1,error:!1};this.Oc=null;this.A.error=!1;this.ja=c||0;this.D=this.f=this.F=this.J=this.Va=null;db.push(this)}function eb(a,b,c){fb[a]&&b&&(fb[a][b]=c)}function gb(){return Date.now()||+new Date}
function w(a){window&&window.alert(a)}function hb(a){var b=!1;window&&(b=window.confirm(a));return b}function ib(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<db.length;b++){var d=db[b];a&&d.id.indexOf(a)||c.push(d)}return c}function mb(a){if(void 0!==a){var b;for(b=0;b<db.length;b++)if(db[b].id===a)return db[b]}return null}
function nb(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<db.length;d++)if(c)c==db[d]&&(c=null);else if(!(a!=db[d].type||b&&db[d].id.indexOf(b)))return db[d]}return null}function ob(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}
function pb(a,b){var c=y;b=z(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=ob(g))&&k.binding&&a.va(k.type,k.binding,g,k.value),m=l.length}}}}
function pb(a,b){var c=y;b=z(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=ob(g))&&k.binding&&a.wa(k.type,k.binding,g,k.value),m=l.length}}}}
function z(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 qb(a){for(var b=!0,c=rb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=sb.indexOf(e)&&(f=function(){return function(){qb(a)}}());var g=tb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,k=nb(d[1],a);if(k)if(g=ub[e])b=g(k,d[2],d[3]);else{var l=k.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(k,d[2],d[3]);else if(!g.call(k,f,d[2],d[3]))break}}if(!b){w("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete rb[a];return b}h=x.prototype;
function qb(a){for(var b=!0,c=rb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=sb.indexOf(e)&&(f=function(){return function(){qb(a)}}());var g=tb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,k=nb(d[1],a);if(k)if(g=vb[e])b=g(k,d[2],d[3]);else{var l=k.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(k,d[2],d[3]);else if(!g.call(k,f,d[2],d[3]))break}}if(!b){w("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete rb[a];return b}h=x.prototype;
h.toString=function(){return this.name?this.name:this.id||this.type};
h.va=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Ua=this.H[b]=c,c.value="",this.v=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.T=function(a){this.v(a,this.Mb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
h.status=function(a){this.v(this.Mb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function wb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Oc=b);return a.A.ready}function C(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Oc,a.Oc=null,b&&b()))}function Eb(a,b){a.A.eb&&(b?a.A.xd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.eb}
function Fb(a,b){if(a.A.xd)return a.A.eb=!1,a.A.xd=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.eb=b;return a.A.eb}h.Da=function(){return this.A.ba=!0};h.Ca=function(a,b){b&&(this.A.ba=!1);return!0};function E(a,b){if(a.D){a===a.D?b|=0:b=b||a.ha;var c=a.D.ha&b;return!!b&&c===b||!!(c&a.D.ke)}return!1}function F(a,b,c,d){a.D&&(!0===c||E(a,c|0))&&a.D.message(b,d)}
h.wa=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Va=this.H[b]=c,c.value="",this.v=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.T=function(a){this.v(a,this.Mb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
h.status=function(a){this.v(this.Mb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function Bb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Oc=b);return a.A.ready}function C(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Oc,a.Oc=null,b&&b()))}function Eb(a,b){a.A.fb&&(b?a.A.xd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.fb}
function Fb(a,b){if(a.A.xd)return a.A.fb=!1,a.A.xd=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.fb=b;return a.A.fb}h.Ea=function(){return this.A.ba=!0};h.Da=function(a,b){b&&(this.A.ba=!1);return!0};function E(a,b){if(a.D){a===a.D?b|=0:b=b||a.ja;var c=a.D.ja&b;return!!b&&c===b||!!(c&a.D.ke)}return!1}function F(a,b,c,d){a.D&&(!0===c||E(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var fb=window?window.PCjs.Machines:{},db=window?window.PCjs.Components:[],rb=window?window.PCjs.Commands:{},sb=["hold","sleep","wait"],tb={alert:function(a){w(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ub={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var fb=window?window.PCjs.Machines:{},db=window?window.PCjs.Components:[],rb=window?window.PCjs.Commands:{},sb=["hold","sleep","wait"],tb={alert:function(a){w(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},vb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Gb="undefined"!==typeof ArrayBuffer,y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Kb=!0,Lb=!0,Mb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Nb={rd:5,vd:144,$c:8,Ic:{pf:15,Wj:16,lk:32,$d:64,Fa:128,de:256,$j:512,gj:1024,Hc:2048,fj:4096,kd:57344,ma:{kd:13}},bf:{ge:1,Gi:2,qf:3,Kb:28,Gc:32,Fc:64,Ud:128,ek:256,Ie:512,ec:1024,Rj:2048,ce:4096,jk:8192,Pj:16384,Je:32768,ed:32736},$e:{dc:1,wa:14,Jb:48,Ib:64,$a:128,ck:256,hj:512,jj:1024,Qe:2048,td:8192,ed:16384,hb:32768,Kb:4608,
fc:61438,Ta:3967,ma:{wa:1,Jb:4}},af:{sd:15,hd:16,bc:8160,sb:57344,ma:{hd:4,bc:5,sb:13}},wa:{Ee:0,hc:2,tb:4,wd:6,Lc:8,Ue:10,Ke:12,kk:14}},Ob={rd:5,vd:112,$c:4,Te:"DY",gf:{Fa:1,wa:14,Za:48,Ib:64,$a:128,sb:768,Rd:15360,ej:16384,hb:32768,Di:16254,Zj:128,fc:65535,Ta:1022,ma:{wa:1,Za:4,sb:8}},ef:{Ta:65534},hf:{rf:1,sf:4,tf:16,Xj:65408,ae:63,Kc:64,gc:65408,Me:3,qj:8,ma:{Kc:6,gc:7}},Jc:{Pe:{Dj:0,bk:1,Bi:2,Ej:3,Lc:4,Re:5,gk:6,ak:7},Sd:8,Oe:16,nj:32,pj:64,Ne:128,oj:256,tj:512,vj:1024,sj:2048,rj:4096,wj:8192,
mj:16384,uj:32768},ff:{bb:63},Rd:{Oj:1024,dj:2048,ge:2048,yj:3072,Ie:4096,ab:5120,ec:8192,Gj:9216},wa:{Ij:0,wd:2,uf:4,Lc:6,Ye:8,wf:10,Ve:12,Tj:14}},Pb={rd:5,vd:180,$c:2,Te:"DX",kf:{dc:1,wa:14,ud:16,DONE:32,Ib:64,cb:128,INIT:16384,hb:32768,Kb:16128,fc:32992,Ta:16479},Uj:{},nf:{bb:127},mf:{bb:31},lf:{Nd:1,Xd:2,kd:4,cc:64,Fa:128},wa:{bd:0,EMPTY:2,hc:4,tb:6,Kb:8,Xe:10,Mc:12,We:14},ERROR:{fd:8,gd:16,xi:24,Se:32,kj:40,Yj:48,qd:56,Mj:72,Lj:80,Kj:88,Fi:96,zi:104,Jj:112,pd:120,Ei:128,yi:136}},Qb={48:"DL11R",
var Gb="undefined"!==typeof ArrayBuffer,y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Kb=!0,Lb=!0,Mb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Nb={rd:5,vd:144,$c:8,Ic:{pf:15,Wj:16,lk:32,$d:64,Ga:128,de:256,$j:512,gj:1024,Hc:2048,fj:4096,kd:57344,na:{kd:13}},bf:{ge:1,Gi:2,qf:3,Kb:28,Gc:32,Fc:64,Ud:128,ek:256,Ie:512,ec:1024,Rj:2048,ce:4096,jk:8192,Pj:16384,Je:32768,ed:32736},$e:{dc:1,xa:14,Jb:48,Ib:64,ab:128,ck:256,hj:512,jj:1024,Qe:2048,td:8192,ed:16384,ib:32768,Kb:4608,
fc:61438,Ua:3967,na:{xa:1,Jb:4}},af:{sd:15,hd:16,bc:8160,sb:57344,na:{hd:4,bc:5,sb:13}},xa:{Ee:0,hc:2,tb:4,wd:6,Lc:8,Ue:10,Ke:12,kk:14}},Ob={rd:5,vd:112,$c:4,Te:"DY",gf:{Ga:1,xa:14,$a:48,Ib:64,ab:128,sb:768,Rd:15360,ej:16384,ib:32768,Di:16254,Zj:128,fc:65535,Ua:1022,na:{xa:1,$a:4,sb:8}},ef:{Ua:65534},hf:{rf:1,sf:4,tf:16,Xj:65408,ae:63,Kc:64,gc:65408,Me:3,qj:8,na:{Kc:6,gc:7}},Jc:{Pe:{Dj:0,bk:1,Bi:2,Ej:3,Lc:4,Re:5,gk:6,ak:7},Sd:8,Oe:16,nj:32,pj:64,Ne:128,oj:256,tj:512,vj:1024,sj:2048,rj:4096,wj:8192,
mj:16384,uj:32768},ff:{cb:63},Rd:{Oj:1024,dj:2048,ge:2048,yj:3072,Ie:4096,bb:5120,ec:8192,Gj:9216},xa:{Ij:0,wd:2,uf:4,Lc:6,Ye:8,wf:10,Ve:12,Tj:14}},Pb={rd:5,vd:180,$c:2,Te:"DX",kf:{dc:1,xa:14,ud:16,DONE:32,Ib:64,eb:128,INIT:16384,ib:32768,Kb:16128,fc:32992,Ua:16479},Uj:{},nf:{cb:127},mf:{cb:31},lf:{Nd:1,Xd:2,kd:4,cc:64,Ga:128},xa:{bd:0,EMPTY:2,hc:4,tb:6,Kb:8,Xe:10,Mc:12,We:14},ERROR:{fd:8,gd:16,xi:24,Se:32,kj:40,Yj:48,qd:56,Mj:72,Lj:80,Kj:88,Fi:96,zi:104,Jj:112,pd:120,Ei:128,yi:136}},Qb={48:"DL11R",
52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11",180:"RX11"};Pb.jf=["DX",77,1,26,128,1,0,0,128,0];Nb.Hc=["RK",203,2,12,512,0,0,0,512,Nb.Ic.Hc|Nb.Ic.de|Nb.Ic.$d];Ob.cf=["RL",512,2,40,256,0,0,0,256,Ob.Jc.Pe.Re|Ob.Jc.Sd|Ob.Jc.Oe];
var y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Lb=Kb=!0,Rb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,rx11:262144,dl11:1048576,serial:1048576,kw11:2097152,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Sb(a,b){x.call(this,"Panel",a,512);this.j=this.u=0;this.M=b;this.fa=this.g=this.Xa=this.Eb=0;this.B=this.C=-1;this.G=this.I=this.w=!1;this.L=Tb;this.i={};this.b={START:[1,1,!0,!1,this.Tf],STEP:[1,1,!1,!1,this.Uf],ENABLE:[1,1,!1,!1,this.Of],CONT:[1,1,!0,!1,this.Mf],DEP:[0,0,!0,!1,this.Nf],EXAM:[1,1,!0,!1,this.Pf],LOAD:[1,1,!0,!1,this.Rf],TEST:[0,0,!0,!1,this.Qf]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Sf,a];this.D=this.f=this.F=this.J=null;this.exports={hold:this.Hf,toggle:this.lh,
function Sb(a,b){x.call(this,"Panel",a,512);this.j=this.u=0;this.M=b;this.ga=this.g=this.Ya=this.Eb=0;this.B=this.C=-1;this.G=this.I=this.w=!1;this.L=Tb;this.i={};this.b={START:[1,1,!0,!1,this.Tf],STEP:[1,1,!1,!1,this.Uf],ENABLE:[1,1,!1,!1,this.Of],CONT:[1,1,!0,!1,this.Mf],DEP:[0,0,!0,!1,this.Nf],EXAM:[1,1,!0,!1,this.Pf],LOAD:[1,1,!0,!1,this.Rf],TEST:[0,0,!0,!1,this.Qf]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Sf,a];this.D=this.f=this.F=this.J=null;this.exports={hold:this.Hf,toggle:this.lh,
reset:this.gh,set:this.kh};C(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Eb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
h.va=function(a,b,c,d){if(this.J&&this.J.va(a,b,c,d)||this.f&&this.f.va(a,b,c,d)||this.D&&this.D.va(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.H[b]=c,this.u++,!0;default:return"led"==a||"rled"==a?(this.H[b]=c,this.i[b]=d?1:0,this.u++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.H[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Wb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Xb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Xb(a,b)}}(this,b),!0):x.prototype.va.call(this,a,b,c,d)}};h.Aa=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;dc(b,this,ec);fc(b,this.reset.bind(this));gc(this);hc(this)};
h.Da=function(a,b){if(!b)if(this.M&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,[this.fa,this.Eb,this.Xa]);return a.data()};h.restore=function(a){if(a=a[0])jc(this,this.fa=a[0]),Ub(this,a[1]),kc(this,a[2]);return!0};h.gh=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}
function gc(a,b){for(var c in a.i)lc(a,c,null!=b?b:a.i[c])}function mc(a,b,c){if(a=a.H[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}function nc(a,b,c,d){if(a.H[b]){var e=a.D&&a.D.Ba||8;c=c||0;c=8==e?u(c,d):v(c,d);a.H[b].textContent!=c&&(a.H[b].textContent=c)}}h.Hf=function(a,b,c){if(Wb(this,b)){if(c){var d=this;setTimeout(function(){Xb(d,b);a&&a()},+c);return!1}Xb(this,b)}return!0};
h.wa=function(a,b,c,d){if(this.J&&this.J.wa(a,b,c,d)||this.f&&this.f.wa(a,b,c,d)||this.D&&this.D.wa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.H[b]=c,this.u++,!0;default:return"led"==a||"rled"==a?(this.H[b]=c,this.i[b]=d?1:0,this.u++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.H[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Wb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Xb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Xb(a,b)}}(this,b),!0):x.prototype.wa.call(this,a,b,c,d)}};h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;dc(b,this,ec);fc(b,this.reset.bind(this));gc(this);hc(this)};
h.Ea=function(a,b){if(!b)if(this.M&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,[this.ga,this.Eb,this.Ya]);return a.data()};h.restore=function(a){if(a=a[0])jc(this,this.ga=a[0]),Ub(this,a[1]),kc(this,a[2]);return!0};h.gh=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}
function gc(a,b){for(var c in a.i)lc(a,c,null!=b?b:a.i[c])}function mc(a,b,c){if(a=a.H[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}function nc(a,b,c,d){if(a.H[b]){var e=a.D&&a.D.ea||8;c=c||0;c=8==e?u(c,d):v(c,d);a.H[b].textContent!=c&&(a.H[b].textContent=c)}}h.Hf=function(a,b,c){if(Wb(this,b)){if(c){var d=this;setTimeout(function(){Xb(d,b);a&&a()},+c);return!1}Xb(this,b)}return!0};
h.kh=function(a,b){if("SR"==a)return kc(this,ma(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};h.lh=function(a){return Wb(this,a)?(Xb(this,a),!0):!1};function Wb(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.G=b==pc,a.I=b==qc),!0):!1}function Xb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
h.Tf=function(a){a||this.f.A.V||(rc(this.f,this.fa),a=this.f,a.F.reset(),sc(a),this.b[tc]&&this.b[tc][1]&&uc(this.f))};h.Uf=function(){};h.Of=function(a){a||this.f.ca()};h.Mf=function(a){if(!a&&!this.f.A.V)if(this.b[tc]&&this.b[tc][1])uc(this.f);else{if((a=this.D)&&!Eb(a,!0))Fb(a,!0),vc(a,0,null),Fb(a,!1);else try{var b=this.f.Cc(1);0<b&&(wc(this.f,b),xc(this.f,b,!0),yc(this.f,b))}catch(c){"number"!=typeof c&&wb(this.f,c.stack||c.message)}this.stop();this.J&&H(this.J)}};
h.Nf=function(a){if(a&&!this.f.A.V)if(this.G&&zc(this),a=Ub(this,this.Xa),this.L==Tb)Ac(this.F,this.fa,a);else{var b=this.f,c=this.fa;b.pa++;b.F.ac(Bc(b,c,4),a);b.pa--}};h.Pf=function(a){a||this.f.A.V||(this.I&&zc(this),a=this.L==Tb?Cc(this.F,this.fa):Dc(this.f,this.fa),Ub(this,a))};h.Rf=function(a){a||this.f.A.V||jc(this,this.Xa)};h.Qf=function(a){a?(this.w=!0,gc(this,!0)):(this.w=!1,gc(this),kc(this,0))};h.Sf=function(a,b){this.Xa=a?this.Xa|1<<b:this.Xa&~(1<<b)};
function zc(a){var b=1140>=a.f.ka?8:16,c=65472<=a.fa&&a.fa<65472+b,b=c?1:2,c=c?15:a.F.I;a.b[oc]&&a.b[oc][1]||(b=-b);jc(a,a.fa&~c|a.fa+b&c)}function jc(a,b){a.fa=b&a.F.I;if(a.B!==a.fa){a.B=a.fa;b=a.B;for(var c=0;22>c;c++)Ec(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.C!==a.g){a.C=a.g;b=a.C;for(var c=0;16>c;c++)Ec(a,"D"+c,b&1<<c)}return a.g}function Ec(a,b,c){a.i[b]=c;a.w||lc(a,b,c)}function kc(a,b){a.Xa=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.Xa&1<<b?1:0;hc(a);return!0}
h.stop=function(){jc(this,this.f.g[7])};h.Hd=function(a){this.fa=a};h.setData=function(a,b){b?this.Eb=a:this.g=a};h.Zf=function(a,b){return(b?this.Eb:this.Xa)&65535};h.rh=function(a){this.Eb=a};function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.Zf,Sb.prototype.rh,"CNSW"],Fc);Sa(ic);
function Gc(a,b,c){x.call(this,"Bus",a,16);this.f=b;this.D=c;this.U=+a.busWidth||16;this.M=1<<this.U;this.I=this.M-1;this.j=Hc;this.g=Math.log2(this.j);this.R=this.j>>2;this.i=this.j-1;this.G=this.M/this.j|0;this.S=this.G-1;this.Qa=[];this.na=0;this.C=!1;this.N=[];this.yf=[Ic,Jc,Kc,Wc];this.b=this.u=[];this.B=this.L=this.w=this.O=this.P=0;a=new I(this);Xc(a,this.D);this.b=Array(this.G);this.u=Array(this.G);for(b=0;b<this.G;b++)this.b[b]=this.u[b]=a;this.B=this.M-Hc;Yc(this,this.B,Hc,Zc,this);this.P=
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;C(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
h.Tf=function(a){a||this.f.A.V||(rc(this.f,this.ga),a=this.f,a.F.reset(),sc(a),this.b[tc]&&this.b[tc][1]&&uc(this.f))};h.Uf=function(){};h.Of=function(a){a||this.f.ca()};h.Mf=function(a){if(!a&&!this.f.A.V)if(this.b[tc]&&this.b[tc][1])uc(this.f);else{if((a=this.D)&&!Eb(a,!0))Fb(a,!0),vc(a,0,null),Fb(a,!1);else try{var b=this.f.Cc(1);0<b&&(wc(this.f,b),xc(this.f,b,!0),yc(this.f,b))}catch(c){"number"!=typeof c&&Bb(this.f,c.stack||c.message)}this.stop();this.J&&H(this.J)}};
h.Nf=function(a){if(a&&!this.f.A.V)if(this.G&&zc(this),a=Ub(this,this.Ya),this.L==Tb)Ac(this.F,this.ga,a);else{var b=this.f,c=this.ga;b.qa++;b.F.ac(Bc(b,c,4),a);b.qa--}};h.Pf=function(a){a||this.f.A.V||(this.I&&zc(this),a=this.L==Tb?Cc(this.F,this.ga):Dc(this.f,this.ga),Ub(this,a))};h.Rf=function(a){a||this.f.A.V||jc(this,this.Ya)};h.Qf=function(a){a?(this.w=!0,gc(this,!0)):(this.w=!1,gc(this),kc(this,0))};h.Sf=function(a,b){this.Ya=a?this.Ya|1<<b:this.Ya&~(1<<b)};
function zc(a){var b=1140>=a.f.ka?8:16,c=65472<=a.ga&&a.ga<65472+b,b=c?1:2,c=c?15:a.F.I;a.b[oc]&&a.b[oc][1]||(b=-b);jc(a,a.ga&~c|a.ga+b&c)}function jc(a,b){a.ga=b&a.F.I;if(a.B!==a.ga){a.B=a.ga;b=a.B;for(var c=0;22>c;c++)Ec(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.C!==a.g){a.C=a.g;b=a.C;for(var c=0;16>c;c++)Ec(a,"D"+c,b&1<<c)}return a.g}function Ec(a,b,c){a.i[b]=c;a.w||lc(a,b,c)}function kc(a,b){a.Ya=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.Ya&1<<b?1:0;hc(a);return!0}
h.stop=function(){jc(this,this.f.g[7])};h.Hd=function(a){this.ga=a};h.setData=function(a,b){b?this.Eb=a:this.g=a};h.Zf=function(a,b){return(b?this.Eb:this.Ya)&65535};h.rh=function(a){this.Eb=a};function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.Zf,Sb.prototype.rh,"CNSW"],Fc);Sa(ic);
function Gc(a,b,c){x.call(this,"Bus",a,16);this.f=b;this.D=c;this.U=+a.busWidth||16;this.M=1<<this.U;this.I=this.M-1;this.j=Hc;this.g=Math.log2(this.j);this.R=this.j>>2;this.i=this.j-1;this.G=this.M/this.j|0;this.S=this.G-1;this.Ra=[];this.oa=0;this.C=!1;this.N=[];this.yf=[Ic,Jc,Kc,Wc];this.b=this.u=[];this.B=this.L=this.w=this.O=this.P=0;a=new I(this);Xc(a,this.D);this.b=Array(this.G);this.u=Array(this.G);for(b=0;b<this.G;b++)this.b[b]=this.u[b]=a;this.B=this.M-Hc;Yc(this,this.B,Hc,Zc,this);this.P=
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;C(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.R){for(var e=0,f=Array(this.R),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.b[c];if(!e||!e.restore(d)){w("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Yc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Xb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Xb){n=l.size-(f-m);n>g&&(n=g);l.Xb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return bd(cd,f,g)}f=new I(a,f,n,a.j,d,e);Xc(f,a.D,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+dd[d]+" at "+u(b)),!0):bd(ed,b,c)}h.Ld=function(a){return this.u[(a&this.w)>>>this.g].Db(a&this.i,a)};
h.Bc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Lb||b!=this.i?this.u[c].oa(b,a):this.u[c++].Db(b,a)|this.u[c&this.S].Db(0,a+1)<<8};h.Md=function(a,b){this.u[(a&this.w)>>>this.g].Gb(a&this.i,b,a)};h.ac=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Lb||c!=this.i?this.u[d].Hb(c,b,a):(this.u[d++].Gb(c,b&255,a),this.u[d&this.S].Gb(0,b>>8&255,a+1))};function fd(a,b){return a.b[(b&a.I)>>>a.g]}
function Cc(a,b){var c;a.C=!1;a.na++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?c=e.B(d,b):c=e.J(d,b)|fd(a,b+1).J(0,b+1)<<8;a.na--;return c}function gd(a,b,c){a.C=!1;a.na++;fd(a,b).F(b&a.i,c&255,b);a.na--}function Ac(a,b,c){a.C=!1;a.na++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?e.C(d,c&65535,b):(e.F(d,c&255,b),fd(a,b+1).F(0,c>>8&255,b+1));a.na--}
function ad(a){for(var b=0,c=[],d=0;d<a.G;d++){var e=a.b[d];if(e.fb||e.Ff){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function hd(a){for(var b=id,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Xb)}return c}
function jd(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&kd;if(void 0!==a.Qa[n])return w("I/O address already registered: "+v(b,8,!0)),!1;var q=l||"unknown";q&&0<=m&&(q+=m++);a.Qa[n]=[d,e,f,g,q,k||16,!1]}return!0}
function dc(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ka)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var q=g[4],t=g[5]||1,r=0;r<t;r++,f+=2)if(q&&1<t&&(q=g[4]+r),!jd(a,f,f,k,l,m,n,g[7]||b.ha,q||b.Mb))return!1}}return!0}
function fc(a,b){a.N.push(b)}h.Oa=function(a,b,c){this.C=!0;this.na||(this.D&&E(this.D,4)&&F(this.D,"memory fault ("+c+") on "+K(this.D,a),!0,!0),b&&(this.f.P|=b),this.f.ra(4,0,a))};function ld(a){var b=a.C;a.C=!1;return b}function bd(a,b,c){w("Memory block error ("+a+": "+v(b)+","+v(c)+")");return!1}var Hc=8192,kd=Hc-1,cd=1,ed=2;
function Ic(a,b){var c=-1,d=this.controller,e=d.Qa[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Qa[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&E(this.f,16|e[5])&&F(this.f,e[4]+".readByte("+K(this.f,b)+"): "+K(this.f,c),!0,!d.na),c;d.Oa(b,16,3);c=255;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to byte @"+K(this.f,b)+": "+K(this.f,c),!0,!d.na);return c}
function Jc(a,b,c){var d=!1,e=this.controller,f=e.Qa[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Qa[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&E(this.f,16|f[5])&&F(this.f,f[4]+".writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.na):(e.Oa(c,16,5),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to byte @"+K(this.f,c)+": "+K(this.f,
b),!0,!e.na))}function Kc(a,b){var c=-1,d=this.controller;a=d.Qa[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.na),c;d.Oa(b,16,2);c=65535;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.na);return c}
function Wc(a,b,c){var d=!1,e=this.controller;a=e.Qa[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.na):(e.Oa(c,16,4),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.na))}function L(a){x.call(this,"Device",a,256);this.b={gb:128,Id:-1}}p(L,x);h=L.prototype;
h.Aa=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.D=d;var e=this;this.b.Id=md(c,function(){e.b.gb|=128;e.b.gb&64&&nd(e.f,e.b.Ra);e.J&&H(e.J,1);od(e.f,e.b.Id,1E3/60)});this.b.Ra=pd(c,64,6,2097152);dc(b,this,qd);fc(b,this.reset.bind(this));d&&rd(d,64,function(a){var b=e.f;sd(e,"KIPDR",b.B[0],0,a[0]);sd(e,"KDPDR",b.B[0],8,a[0]);sd(e,"KIPAR",b.M[0],0,a[0]);sd(e,"KDPAR",b.M[0],8,a[0],!0);sd(e,"SIPDR",b.B[1],0,a[0]);sd(e,"SDPDR",b.B[1],8,a[0]);sd(e,"SIPAR",b.M[1],0,a[0]);sd(e,"SDPAR",b.M[1],8,a[0],
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.W&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});C(this)};function sd(a,b,c,d,e,f){a=a.D;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b.gb=128;od(this.f,this.b.Id,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.gb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.gb=a.next().value;return!0};h.fg=function(){return this.b.gb};h.yh=function(a){this.b.gb=a&192;this.b.gb&64||td(this.f,this.b.Ra)};h.hg=function(){return ud(this.f)};h.Ah=function(a){vd(this.f,a&-129|this.f.S&128)};h.ig=function(){return wd(this.f)};h.jg=function(){return xd(this.f)};
h.Bc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Lb||b!=this.i?this.u[c].pa(b,a):this.u[c++].Db(b,a)|this.u[c&this.S].Db(0,a+1)<<8};h.Md=function(a,b){this.u[(a&this.w)>>>this.g].Gb(a&this.i,b,a)};h.ac=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Lb||c!=this.i?this.u[d].Hb(c,b,a):(this.u[d++].Gb(c,b&255,a),this.u[d&this.S].Gb(0,b>>8&255,a+1))};function fd(a,b){return a.b[(b&a.I)>>>a.g]}
function Cc(a,b){var c;a.C=!1;a.oa++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?c=e.B(d,b):c=e.J(d,b)|fd(a,b+1).J(0,b+1)<<8;a.oa--;return c}function gd(a,b,c){a.C=!1;a.oa++;fd(a,b).F(b&a.i,c&255,b);a.oa--}function Ac(a,b,c){a.C=!1;a.oa++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?e.C(d,c&65535,b):(e.F(d,c&255,b),fd(a,b+1).F(0,c>>8&255,b+1));a.oa--}
function ad(a){for(var b=0,c=[],d=0;d<a.G;d++){var e=a.b[d];if(e.gb||e.Ff){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function hd(a){for(var b=id,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Xb)}return c}
function jd(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&kd;if(void 0!==a.Ra[n])return w("I/O address already registered: "+v(b,8,!0)),!1;var q=l||"unknown";q&&0<=m&&(q+=m++);a.Ra[n]=[d,e,f,g,q,k||16,!1]}return!0}
function dc(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ka)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var q=g[4],t=g[5]||1,r=0;r<t;r++,f+=2)if(q&&1<t&&(q=g[4]+r),!jd(a,f,f,k,l,m,n,g[7]||b.ja,q||b.Mb))return!1}}return!0}
function fc(a,b){a.N.push(b)}h.Oa=function(a,b,c){this.C=!0;this.oa||(this.D&&E(this.D,4)&&F(this.D,"memory fault ("+c+") on "+K(this.D,a),!0,!0),b&&(this.f.P|=b),this.f.sa(4,0,a))};function ld(a){var b=a.C;a.C=!1;return b}function bd(a,b,c){w("Memory block error ("+a+": "+v(b)+","+v(c)+")");return!1}var Hc=8192,kd=Hc-1,cd=1,ed=2;
function Ic(a,b){var c=-1,d=this.controller,e=d.Ra[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ra[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&E(this.f,16|e[5])&&F(this.f,e[4]+".readByte("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,3);c=255;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to byte @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
function Jc(a,b,c){var d=!1,e=this.controller,f=e.Ra[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ra[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&E(this.f,16|f[5])&&F(this.f,f[4]+".writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,5),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to byte @"+K(this.f,c)+": "+K(this.f,
b),!0,!e.oa))}function Kc(a,b){var c=-1,d=this.controller;a=d.Ra[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,2);c=65535;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
function Wc(a,b,c){var d=!1,e=this.controller;a=e.Ra[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,4),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.oa))}function L(a){x.call(this,"Device",a,256);this.b={hb:128,Id:-1}}p(L,x);h=L.prototype;
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.D=d;var e=this;this.b.Id=md(c,function(){e.b.hb|=128;e.b.hb&64&&nd(e.f,e.b.Sa);e.J&&H(e.J,1);od(e.f,e.b.Id,1E3/60)});this.b.Sa=pd(c,64,6,2097152);dc(b,this,qd);fc(b,this.reset.bind(this));d&&rd(d,64,function(a){var b=e.f;sd(e,"KIPDR",b.B[0],0,a[0]);sd(e,"KDPDR",b.B[0],8,a[0]);sd(e,"KIPAR",b.M[0],0,a[0]);sd(e,"KDPAR",b.M[0],8,a[0],!0);sd(e,"SIPDR",b.B[1],0,a[0]);sd(e,"SDPDR",b.B[1],8,a[0]);sd(e,"SIPAR",b.M[1],0,a[0]);sd(e,"SDPAR",b.M[1],8,a[0],
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.W&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});C(this)};function sd(a,b,c,d,e,f){a=a.D;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b.hb=128;od(this.f,this.b.Id,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.hb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.hb=a.next().value;return!0};h.fg=function(){return this.b.hb};h.yh=function(a){this.b.hb=a&192;this.b.hb&64||td(this.f,this.b.Sa)};h.hg=function(){return ud(this.f)};h.Ah=function(a){vd(this.f,a&-129|this.f.S&128)};h.ig=function(){return wd(this.f)};h.jg=function(){return xd(this.f)};
h.kg=function(){return this.f.W};h.Bh=function(a){yd(this.f,a)};h.Wg=function(a){a=a>>1&63;var b=this.f.Ha[a>>1];return a&1?b>>16:b&65535};h.mi=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ha[c]=b&1?this.f.Ha[c]&65535|(a&63)<<16:this.f.Ha[c]&-65536|a&65534};h.Pg=function(a){return this.f.B[1][a>>1&7]};h.fi=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Ng=function(a){return this.f.B[1][(a>>1&7)+8]};h.di=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Og=function(a){return this.f.M[1][a>>1&7]};
h.ei=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Mg=function(a){return this.f.M[1][(a>>1&7)+8]};h.ci=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.eg=function(a){return this.f.B[0][a>>1&7]};h.xh=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.cg=function(a){return this.f.B[0][(a>>1&7)+8]};h.vh=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.dg=function(a){return this.f.M[0][a>>1&7]};h.wh=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};
h.bg=function(a){return this.f.M[0][(a>>1&7)+8]};h.uh=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.Vg=function(a){return this.f.B[3][a>>1&7]};h.li=function(a,b){this.f.B[3][b>>1&7]=a&65295};h.Tg=function(a){return this.f.B[3][(a>>1&7)+8]};h.ji=function(a,b){this.f.B[3][(b>>1&7)+8]=a&65295};h.Ug=function(a){return this.f.M[3][a>>1&7]};h.ki=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Sg=function(a){return this.f.M[3][(a>>1&7)+8]};
h.ii=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Vb=function(a){a&=7;return this.f.w&2048?this.f.ta[a]:this.f.g[a]};h.Zb=function(a,b){b&=7;this.f.w&2048?this.f.ta[b]=a:this.f.g[b]=a};h.rg=function(){return this.f.w&49152?this.f.X[0]:this.f.g[6]};h.Ih=function(a){this.f.w&49152?this.f.X[0]=a:this.f.g[6]=a};h.ug=function(){return this.f.g[7]};h.Lh=function(a){this.f.g[7]=a};h.Wb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.ta[a]};
h.$b=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.ta[b]=a};h.sg=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.X[1]};h.Jh=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.X[1]=a};h.tg=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.X[3]};h.Kh=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.X[3]=a};h.ag=function(a){return this.f.xc[a-65504>>1]};h.th=function(a,b){this.f.xc[b-65504>>1]=a};h.xe=function(a){return 65520==a?(hd(this.F)>>6)-1:0};
h.Ce=function(){};h.Rg=function(){return 1};h.hi=function(){};h.$f=function(){return this.f.P};h.sh=function(){this.f.P=0};h.gg=function(){return this.f.uc};h.zh=function(a,b){b&1||(a&=255);this.f.uc=a};h.lg=function(a,b){return b?0:this.f.ob};h.Ch=function(a){zd(this.f,a)};h.Qg=function(a,b){return b?0:this.f.Ga&65280};h.gi=function(a){this.f.Ga=a|255};h.qg=function(){return Ad(this.f)};h.Hh=function(a){Bd(this.f,a)};h.Be=function(a,b){E(this)&&F(this,"writeIgnored("+u(b)+"): "+u(a),!0,!0)};
h.ii=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Vb=function(a){a&=7;return this.f.w&2048?this.f.ua[a]:this.f.g[a]};h.Zb=function(a,b){b&=7;this.f.w&2048?this.f.ua[b]=a:this.f.g[b]=a};h.rg=function(){return this.f.w&49152?this.f.X[0]:this.f.g[6]};h.Ih=function(a){this.f.w&49152?this.f.X[0]=a:this.f.g[6]=a};h.ug=function(){return this.f.g[7]};h.Lh=function(a){this.f.g[7]=a};h.Wb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.ua[a]};
h.$b=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.ua[b]=a};h.sg=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.X[1]};h.Jh=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.X[1]=a};h.tg=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.X[3]};h.Kh=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.X[3]=a};h.ag=function(a){return this.f.xc[a-65504>>1]};h.th=function(a,b){this.f.xc[b-65504>>1]=a};h.xe=function(a){return 65520==a?(hd(this.F)>>6)-1:0};
h.Ce=function(){};h.Rg=function(){return 1};h.hi=function(){};h.$f=function(){return this.f.P};h.sh=function(){this.f.P=0};h.gg=function(){return this.f.uc};h.zh=function(a,b){b&1||(a&=255);this.f.uc=a};h.lg=function(a,b){return b?0:this.f.ob};h.Ch=function(a){zd(this.f,a)};h.Qg=function(a,b){return b?0:this.f.za&65280};h.gi=function(a){this.f.za=a|255};h.qg=function(){return Ad(this.f)};h.Hh=function(a){Bd(this.f,a)};h.Be=function(a,b){E(this)&&F(this,"writeIgnored("+u(b)+"): "+u(a),!0,!0)};
var M={},qd=(M[61568]=[null,null,L.prototype.Wg,L.prototype.mi,"UNIMAP",64,1170],M[62592]=[null,null,L.prototype.Pg,L.prototype.fi,"SIPDR",8,1145,64],M[62608]=[null,null,L.prototype.Ng,L.prototype.di,"SDPDR",8,1145,64],M[62624]=[null,null,L.prototype.Og,L.prototype.ei,"SIPAR",8,1145,64],M[62640]=[null,null,L.prototype.Mg,L.prototype.ci,"SDPAR",8,1145,64],M[62656]=[null,null,L.prototype.eg,L.prototype.xh,"KIPDR",8,1140,64],M[62672]=[null,null,L.prototype.cg,L.prototype.vh,"KDPDR",8,1145,64],M[62688]=
[null,null,L.prototype.dg,L.prototype.wh,"KIPAR",8,1140,64],M[62704]=[null,null,L.prototype.bg,L.prototype.uh,"KDPAR",8,1145,64],M[62798]=[null,null,L.prototype.kg,L.prototype.Bh,"MMR3",1,1145,64],M[65382]=[null,null,L.prototype.fg,L.prototype.yh,"LKS"],M[65402]=[null,null,L.prototype.hg,L.prototype.Ah,"MMR0",1,1140,64],M[65404]=[null,null,L.prototype.ig,L.prototype.Be,"MMR1",1,1145,64],M[65406]=[null,null,L.prototype.jg,L.prototype.Be,"MMR2",1,1140,64],M[65408]=[null,null,L.prototype.Vg,L.prototype.li,
"UIPDR",8,1140,64],M[65424]=[null,null,L.prototype.Tg,L.prototype.ji,"UDPDR",8,1145,64],M[65440]=[null,null,L.prototype.Ug,L.prototype.ki,"UIPAR",8,1140,64],M[65456]=[null,null,L.prototype.Sg,L.prototype.ii,"UDPAR",8,1145,64],M[65472]=[null,null,L.prototype.Vb,L.prototype.Zb,"R0SET0"],M[65473]=[null,null,L.prototype.Vb,L.prototype.Zb,"R1SET0"],M[65474]=[null,null,L.prototype.Vb,L.prototype.Zb,"R2SET0"],M[65475]=[null,null,L.prototype.Vb,L.prototype.Zb,"R3SET0"],M[65476]=[null,null,L.prototype.Vb,
@ -116,241 +117,240 @@ L.prototype.Zb,"R4SET0"],M[65477]=[null,null,L.prototype.Vb,L.prototype.Zb,"R5SE
L.prototype.$b,"R4SET1",1,1145],M[65485]=[null,null,L.prototype.Wb,L.prototype.$b,"R5SET1",1,1145],M[65486]=[null,null,L.prototype.sg,L.prototype.Jh,"R6SUPER",1,1145],M[65487]=[null,null,L.prototype.tg,L.prototype.Kh,"R6USER",1,1145],M[65504]=[null,null,L.prototype.ag,L.prototype.th,"CTRL",8,1170],M[65520]=[null,null,L.prototype.xe,L.prototype.Ce,"LSIZE",1,1170],M[65522]=[null,null,L.prototype.xe,L.prototype.Ce,"HSIZE",1,1170],M[65524]=[null,null,L.prototype.Rg,L.prototype.hi,"SYSID",1,1170],M[65526]=
[null,null,L.prototype.$f,L.prototype.sh,"ERR",1,1170],M[65528]=[null,null,L.prototype.gg,L.prototype.zh,"MBR",1,1170],M[65530]=[null,null,L.prototype.lg,L.prototype.Ch,"PIR"],M[65532]=[null,null,L.prototype.Qg,L.prototype.gi,"SLR"],M[65534]=[null,null,L.prototype.qg,L.prototype.Hh,"PSW"],M);
Sa(function(){for(var a=z(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=ob(d);switch(c.type){case "default":c=new L(c);pb(c,d);break;case "pc11":c=new Dd(c);pb(c,d);break;case "rl11":c=new Ed(c);pb(c,d);break;case "rk11":c=new N(c);pb(c,d);break;case "rx11":c=new Fd(c),pb(c,d)}}});
function I(a,b,c,d,e,f){this.D=a;this.id=Gd+=2;this.b=null;this.K=b;this.Xb=c;this.size=d||0;this.type=e||Hd;this.j=e==Id;this.f=this.controller=null;this.Db=this.J=this.Dd;this.oa=this.B=this.Ed;this.Gb=this.F=this.Yb;this.Hb=this.C=this.Wc;this.H=this.i=0;Xc(this);this.fb=this.Ff=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Jd(this,f.yf);else if(Gb)this.u=new ArrayBuffer(this.size),this.w=new DataView(this.u,0,this.size),this.g=new Uint8Array(this.u,0,this.size),this.G=new Uint16Array(this.u,
function I(a,b,c,d,e,f){this.D=a;this.id=Gd+=2;this.b=null;this.K=b;this.Xb=c;this.size=d||0;this.type=e||Hd;this.j=e==Id;this.f=this.controller=null;this.Db=this.J=this.Dd;this.pa=this.B=this.Ed;this.Gb=this.F=this.Yb;this.Hb=this.C=this.Wc;this.H=this.i=0;Xc(this);this.gb=this.Ff=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Jd(this,f.yf);else if(Gb)this.u=new ArrayBuffer(this.size),this.w=new DataView(this.u,0,this.size),this.g=new Uint8Array(this.u,0,this.size),this.G=new Uint16Array(this.u,
0,this.size>>1),this.b=new Int32Array(this.u,0,this.size>>2),Jd(this,Kd?Td:Ud);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Jd(this,Vd)}else Jd(this)}h=I.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Gb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.fb=!0}return!1};function Jd(a,b){b||(b=Wd);Xd(a,b,void 0);Yd(a,b,void 0)}function Xd(a,b,c){c&&a.H||(a.Db=b[0]||a.Dd,a.oa=b[2]||a.Ed);if(c||void 0===c)a.J=b[0]||a.Dd,a.B=b[2]||a.Ed}function Yd(a,b,c){c&&a.i||(a.Gb=!a.j&&b[1]||a.Yb,a.Hb=!a.j&&b[3]||a.Wc);if(c||void 0===c)a.F=b[1]||a.Yb,a.C=b[3]||a.Wc}
h.Bb=function(a,b){b?this.i++||Yd(this,Zd,!1):this.H++||Xd(this,Zd,!1)};function $d(a,b){b?--a.i||(a.Gb=a.j?a.Yb:a.F,a.Hb=a.j?a.Wc:a.C):--a.H||(a.Db=a.J,a.oa=a.B)}function Xc(a,b,c){a.f=b;a.H=a.i=0;c&&((a.H=c.H)&&Xd(a,Zd,!1),(a.i=c.i)&&Yd(a,Zd,!1))}h.Dd=function(a,b){this.f&&E(this.f,32)&&F(this.f,"attempt to read invalid address "+K(this.f,b),!0);this.D.Oa(b,32,2);return 255};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.gb=!0}return!1};function Jd(a,b){b||(b=Wd);Xd(a,b,void 0);Yd(a,b,void 0)}function Xd(a,b,c){c&&a.H||(a.Db=b[0]||a.Dd,a.pa=b[2]||a.Ed);if(c||void 0===c)a.J=b[0]||a.Dd,a.B=b[2]||a.Ed}function Yd(a,b,c){c&&a.i||(a.Gb=!a.j&&b[1]||a.Yb,a.Hb=!a.j&&b[3]||a.Wc);if(c||void 0===c)a.F=b[1]||a.Yb,a.C=b[3]||a.Wc}
h.Bb=function(a,b){b?this.i++||Yd(this,Zd,!1):this.H++||Xd(this,Zd,!1)};function $d(a,b){b?--a.i||(a.Gb=a.j?a.Yb:a.F,a.Hb=a.j?a.Wc:a.C):--a.H||(a.Db=a.J,a.pa=a.B)}function Xc(a,b,c){a.f=b;a.H=a.i=0;c&&((a.H=c.H)&&Xd(a,Zd,!1),(a.i=c.i)&&Yd(a,Zd,!1))}h.Dd=function(a,b){this.f&&E(this.f,32)&&F(this.f,"attempt to read invalid address "+K(this.f,b),!0);this.D.Oa(b,32,2);return 255};
h.Yb=function(a,b,c){this.f&&E(this.f,32)&&F(this.f,"attempt to write "+K(this.f,b)+" to invalid addresses "+K(this.f,c),!0);this.D.Oa(c,32,4)};h.Ed=function(a,b){return this.Db(a++,b++)|this.Db(a,b)<<8};h.Wc=function(a,b,c){this.Gb(a++,b&255,c++);this.Gb(a,b>>8,c)};h.Yf=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.bh=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};
h.qh=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.fb=!0};h.ri=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.fb=!0};h.Wf=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a);return this.J(a,b)};h.Yg=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a,2);return this.B(a,b)};
h.qh=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.gb=!0};h.ri=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.gb=!0};h.Wf=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a);return this.J(a,b)};h.Yg=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a,2);return this.B(a,b)};
h.oh=function(a,b,c){this.f&&null!=this.K&&be(this.f,this.K+a);this.j?this.Yb(0,b,c):this.F(a,b,c)};h.oi=function(a,b,c){this.f&&null!=this.K&&be(this.f,this.K+a,2);this.j?this.Yb(0,b,c):this.C(a,b,c)};h.Vf=function(a){return this.g[a]};h.Xf=function(a,b){a=this.g[a];this.f&&E(this.f,32)&&F(this.f,"Memory.readByte("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.Xg=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);return this.w.getUint16(a,!0)};
h.ah=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);a=!Lb&&a&1?this.g[a]|this.g[a+1]<<8:this.G[a>>1];this.f&&E(this.f,32)&&F(this.f,"Memory.readWord("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.nh=function(a,b){this.g[a]=b;this.fb=!0};h.ph=function(a,b,c){this.g[a]=b;this.fb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0)};h.ni=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);this.w.setUint16(a,b,!0);this.fb=!0};
h.pi=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);!Lb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.fb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Hd=0,id=1,Id=2,Zc=4,dd=["NONE","RAM","ROM","VID","H/W"],Gd=0,Wd=[],Vd=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri],Zd=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi];
h.ah=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);a=!Lb&&a&1?this.g[a]|this.g[a+1]<<8:this.G[a>>1];this.f&&E(this.f,32)&&F(this.f,"Memory.readWord("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.nh=function(a,b){this.g[a]=b;this.gb=!0};h.ph=function(a,b,c){this.g[a]=b;this.gb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0)};h.ni=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);this.w.setUint16(a,b,!0);this.gb=!0};
h.pi=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);!Lb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.gb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Hd=0,id=1,Id=2,Zc=4,dd=["NONE","RAM","ROM","VID","H/W"],Gd=0,Wd=[],Vd=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri],Zd=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi];
if(Gb)var Ud=[I.prototype.Vf,I.prototype.nh,I.prototype.Xg,I.prototype.ni],Td=[I.prototype.Xf,I.prototype.ph,I.prototype.ah,I.prototype.pi];var ce;if(Gb){var de=new ArrayBuffer(2);(new DataView(de)).setUint16(0,256,!0);ce=256===(new Uint16Array(de))[0]}else ce=!1;var Kd=ce;
function ee(a,b){x.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ad=0;this.Zc=b;this.mb=c;this.md=Math.round(this.Zc/1E4)/100;this.xb=this.md*this.mb;this.nd=this.qc=this.Ab=this.zc=0;this.A.V=this.A.Tc=!1;this.A.qa=a.autoStart;"string"==typeof this.A.qa&&(this.A.qa="true"==this.A.qa);this.A.Nb=!1;this.oc=this.Qb=0;this.pc=+a.csStart;this.Ob=+a.csInterval;this.Rb=+a.csStop;this.ia=[];this.Zd=this.hh.bind(this);this.nb=this.Ka=this.lb=this.b=this.la=this.Ja=this.nc=this.kb=this.Sb=
this.od=this.wb=0;this.sa=null;C(this)}p(ee,x);h=ee.prototype;h.Aa=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.sa=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.va(null,fe[a],b);C(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.Da=function(a,b){var c=ge(this.J,"autoStart");null!=c?this.A.qa="true"==c?!0:"false"==c?!1:!!c:null==this.A.qa&&(this.A.qa=!this.D&&void 0===this.H.run);if(!b){if(a){he(this);if(!this.restore(a))return!1;ie(this)}else this.reset();this.D?(a=this.D,b=this.A.qa,a.Ha=!0,a.v("Type ? for help with PDPjs Debugger commands"),je(a),b||ke(a),a.xa&&(b=a.xa,a.xa=null,le(a,b))):this.status("No debugger detected");this.A.qa||this.v("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.Ca=function(a){return a?this.save():!0};h.qa=function(){return this.A.V?!0:this.A.qa?(uc(this),!0):!1};h.qe=function(){return 0};function ie(a){void 0===a.pc&&(a.pc=0);void 0===a.Ob&&(a.Ob=-1);void 0===a.Rb&&(a.Rb=-1);a.A.Nb=0<=a.pc&&0<a.Ob;a.A.Nb&&(a.oc=0,a.Qb=a.pc-a.nb)}function yc(a,b){if(a.A.Nb){var c=!1;a.oc=a.oc+a.qe()|0;a.Qb-=b;0>=a.Qb&&(a.Qb+=a.Ob,c=!0);0<=a.Rb&&a.Rb<=me(a)&&(a.Ob=a.Rb=-1,ie(a),a.ca(),c=!0);c&&a.v(me(a)+" cycles: checksum="+v(a.oc))}}
h.va=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ba)a=!0;else{var b=null,c,k=ib(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.ba);c++);c==k.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Oc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.V?d.ca():uc(d))},!0;
case "speed":return this.H[b]=c,!0;case "setSpeed":return this.H[b]=c,c.onclick=function(){ne(d,d.mb<<1,!0)},c.textContent=this.xb.toFixed(2)+"Mhz",!0}return!1};function xc(a,b,c){a.nb+=b;c&&(a.lb=a.b=a.la=0)}function oe(a,b){var c=1;b&&1<a.mb&&a.wb&&(c=a.wb/a.md);a.nd=Math.round(1E3/pe);a.qc=Math.floor(a.Zc/pe*c);b||(a.Ab=a.qc);a.zc=0}function me(a){return a.nb+a.Ka+a.lb-a.b}function he(a){a.wb=0;a.od=0;a.nb=a.Ka=a.lb=a.b=a.la=0;ie(a);ne(a,1)}
function ne(a,b,c){var d=!1;if(void 0!==b){.8>a.wb/a.xb?b=1:d=!0;a.mb=b;b=a.md*a.mb;if(a.xb!=b){a.xb=b;b=a.xb.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.v("target speed: "+b)}c&&a.J&&qe(a.J)}xc(a,a.Ka);a.Ka=0;a.Ja=gb();a.kb=0;oe(a);return d}function md(a,b){var c=a.ia.length;a.ia.push([-1,b]);return c}function od(a,b,c,d){0<=b&&b<a.ia.length&&(d||0>a.ia[b][0])&&(c=a.Zc*a.mb/1E3*c|0,a.A.V&&(c+=re(a)),a.ia[b][0]=c)}
function se(a,b){for(var c=a.ia.length-1;0<=c;c--){var d=a.ia[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function te(a){for(var b=[],c=0;c<a.ia.length;c++)b.push(a.ia[c][0]);return b}function wc(a,b){for(var c=a.ia.length-1;0<=c;c--){var d=a.ia[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function re(a,b){var c=a.lb-=a.b;a.b=a.la=0;b&&(a.lb=0);return c}
function ee(a,b){x.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ad=0;this.Zc=b;this.mb=c;this.md=Math.round(this.Zc/1E4)/100;this.xb=this.md*this.mb;this.nd=this.qc=this.Ab=this.zc=0;this.A.V=this.A.Tc=!1;this.A.ra=a.autoStart;"string"==typeof this.A.ra&&(this.A.ra="true"==this.A.ra);this.A.Nb=!1;this.oc=this.Qb=0;this.pc=+a.csStart;this.Ob=+a.csInterval;this.Rb=+a.csStop;this.ha=[];this.Zd=this.hh.bind(this);this.nb=this.Ka=this.lb=this.b=this.ma=this.Ja=this.nc=this.kb=this.Sb=
this.od=this.wb=0;this.ta=null;C(this)}p(ee,x);h=ee.prototype;h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.ta=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.wa(null,fe[a],b);C(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.Ea=function(a,b){var c=ge(this.J,"autoStart");null!=c?this.A.ra="true"==c?!0:"false"==c?!1:!!c:null==this.A.ra&&(this.A.ra=!this.D&&void 0===this.H.run);if(!b){if(a){he(this);if(!this.restore(a))return!1;ie(this)}else this.reset();this.D?(a=this.D,b=this.A.ra,a.Ia=!0,a.v("Type ? for help with PDPjs Debugger commands"),je(a),b||ke(a),a.ya&&(b=a.ya,a.ya=null,le(a,b))):this.status("No debugger detected");this.A.ra||this.v("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.Da=function(a){return a?this.save():!0};h.ra=function(){return this.A.V?!0:this.A.ra?(uc(this),!0):!1};h.qe=function(){return 0};function ie(a){void 0===a.pc&&(a.pc=0);void 0===a.Ob&&(a.Ob=-1);void 0===a.Rb&&(a.Rb=-1);a.A.Nb=0<=a.pc&&0<a.Ob;a.A.Nb&&(a.oc=0,a.Qb=a.pc-a.nb)}function yc(a,b){if(a.A.Nb){var c=!1;a.oc=a.oc+a.qe()|0;a.Qb-=b;0>=a.Qb&&(a.Qb+=a.Ob,c=!0);0<=a.Rb&&a.Rb<=me(a)&&(a.Ob=a.Rb=-1,ie(a),a.ca(),c=!0);c&&a.v(me(a)+" cycles: checksum="+v(a.oc))}}
h.wa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ba)a=!0;else{var b=null,c,k=ib(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.ba);c++);c==k.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Oc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.V?d.ca():uc(d))},!0;
case "speed":return this.H[b]=c,!0;case "setSpeed":return this.H[b]=c,c.onclick=function(){ne(d,d.mb<<1,!0)},c.textContent=this.xb.toFixed(2)+"Mhz",!0}return!1};function xc(a,b,c){a.nb+=b;c&&(a.lb=a.b=a.ma=0)}function oe(a,b){var c=1;b&&1<a.mb&&a.wb&&(c=a.wb/a.md);a.nd=Math.round(1E3/pe);a.qc=Math.floor(a.Zc/pe*c);b||(a.Ab=a.qc);a.zc=0}function me(a){return a.nb+a.Ka+a.lb-a.b}function he(a){a.wb=0;a.od=0;a.nb=a.Ka=a.lb=a.b=a.ma=0;ie(a);ne(a,1)}
function ne(a,b,c){var d=!1;if(void 0!==b){.8>a.wb/a.xb?b=1:d=!0;a.mb=b;b=a.md*a.mb;if(a.xb!=b){a.xb=b;b=a.xb.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.v("target speed: "+b)}c&&a.J&&qe(a.J)}xc(a,a.Ka);a.Ka=0;a.Ja=gb();a.kb=0;oe(a);return d}function md(a,b){var c=a.ha.length;a.ha.push([-1,b]);return c}function od(a,b,c,d){0<=b&&b<a.ha.length&&(d||0>a.ha[b][0])&&(c=a.Zc*a.mb/1E3*c|0,a.A.V&&(c+=re(a)),a.ha[b][0]=c)}
function se(a,b){for(var c=a.ha.length-1;0<=c;c--){var d=a.ha[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function te(a){for(var b=[],c=0;c<a.ha.length;c++)b.push(a.ha[c][0]);return b}function wc(a,b){for(var c=a.ha.length-1;0<=c;c--){var d=a.ha[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function re(a,b){var c=a.lb-=a.b;a.b=a.ma=0;b&&(a.lb=0);return c}
h.hh=function(){if(this.A.V){this.zc>=this.Zc&&oe(this,!0);this.Sb=0;this.nc=gb();if(this.kb){var a=this.nc-this.kb;a>this.nd&&(this.Ja+=a,this.Ja>this.nc&&(this.Ja=this.nc))}try{do{var b=se(this,this.A.Nb?1:this.qc);try{this.Cc(b)}catch(e){if("number"!=typeof e)throw e;}b=re(this,!0);this.Sb+=b;this.Ka+=b;yc(this,b);wc(this,b);this.Ab-=b;if(0>=this.Ab){this.Ab+=this.qc;++this.od>=ue&&(this.J&&H(this.J,void 0),this.od=0);break}}while(this.A.V)}catch(e){this.ca();this.J&&this.J.stop(gb(),me(this));
wb(this,e.stack||e.message);return}if(this.A.V){a=setTimeout;b=this.Zd;this.kb=gb();var c=this.nd;this.Sb&&(c=Math.round(c*this.Sb/this.qc));var c=c-(this.kb-this.nc),d=this.kb-this.Ja;d&&(this.wb=Math.round(this.Ka/(10*d))/100,864E5<=d&&(this.nb=0,ne(this)));if(0>c||this.wb<this.xb)-1E3>c&&(this.Ja-=c),c=0;this.zc+=this.Sb;this.kb+=c;a(b,c)}}};
Bb(this,e.stack||e.message);return}if(this.A.V){a=setTimeout;b=this.Zd;this.kb=gb();var c=this.nd;this.Sb&&(c=Math.round(c*this.Sb/this.qc));var c=c-(this.kb-this.nc),d=this.kb-this.Ja;d&&(this.wb=Math.round(this.Ka/(10*d))/100,864E5<=d&&(this.nb=0,ne(this)));if(0>c||this.wb<this.xb)-1E3>c&&(this.Ja-=c),c=0;this.zc+=this.Sb;this.kb+=c;a(b,c)}}};
function uc(a,b){if(!Cb(a))if(a.A.V)a.v(a.toString()+" busy");else{ne(a);a.A.V=!0;a.A.Tc=!0;var c=a.H.run;c&&(c.textContent="Halt");a.J&&(b&&qe(a.J,!0),a.J.start(a.Ja,me(a)));a.D||a.status("Started");setTimeout(a.Zd,0)}}h.Cc=function(){return 0};h.ca=function(a){var b=!1;if(this.A.V){re(this);xc(this,this.Ka);this.Ka=0;this.A.V=!1;if(b=this.H.run)b.textContent="Run";this.J&&this.J.stop(gb(),me(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var pe=30,ue=15,fe=["power","reset"];
function ve(a){var b=+a.model||1170;ee.call(this,a,6666667);this.ka=b;this.Xc=+a.addrReset||0;this.La=this.w=this.N=this.C=this.G=this.L=this.I=0;this.g=this.ta=this.X=[];this.M=this.B=this.Ha=this.xc=[];this.ib=this.O=this.Td=this.yb=this.zb=this.rb=this.jb=this.P=this.uc=this.ob=this.Ga=this.S=this.vc=this.wc=this.W=this.i=0;this.Wd=[4,2,0,1];this.Ac=0;this.Yd=255;1120>=this.ka?(this.be=we.bind(this),this.Lb=this.Cf,this.Ac=8,this.Yd=-1,this.fe=255,this.ee=0):(this.be=xe.bind(this),this.Lb=this.Df,
this.fe=~(1792|(1140>=this.ka?2048:0))&65535,this.ee=1140<this.ka?2048:0);this.Ec=this.Dc=this.pa=0;this.R=null;this.mc=[];this.jc=this.cd=this.pe;this.kc=this.dd=this.te;this.Uc=this.jd=this.ze;this.lc=this.ld=this.Ae;this.Ia=this.ub=this.sc=this.tc=0;this.xa=this.se;this.oa=this.Fd;this.Hb=this.Jd;this.u=this.j=this.Yc=this.U=this.Y=0;this.A.complete=!1}p(ve,ee);h=ve.prototype;
h.Aa=function(a,b,c,d){ee.prototype.Aa.call(this,a,b,c,d);this.cd=b.Ld.bind(b);this.dd=b.Bc.bind(b);this.jd=b.Md.bind(b);this.ld=b.ac.bind(b)};h.Da=function(a,b){for(var c=192,d=0;d<this.mc.length;d++){var e=this.mc[d];0>e.Fb&&(e.Fb=c,c+=4)}return ee.prototype.Da.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ka);this.A.V&&this.ca();this.C=65536;this.G=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Xc,-1,-2,-3,-4,-5,-6,-7,-8];this.ta=[0,0,0,0,0,0];this.X=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.xc=[0,0,0,0,0,0,0,0];this.N=0;this.La=-1;this.u=this.j=this.Yc=this.U=this.Y=this.i=this.uc=0;sc(this);he(this);this.A.error=!1;ee.prototype.reset.call(this)};function sc(a){a.S=0;a.vc=0;a.wc=0;a.W=0;a.P=0;a.ob=0;a.Ga=255;a.yb=0;a.zb=0;a.rb=0;a.jb=262143;a.ib=a.g[7];a.O=0;a.R=null;a.F&&(ye(a),a.Td=hd(a.F))}
function ye(a){a.jc=a.cd;a.kc=a.dd;a.Uc=a.jd;a.lc=a.ld;a.sc&&(a.jc=a.pe,a.kc=a.te);a.tc&&(a.Uc=a.ze,a.lc=a.Ae);a.yb?(a.Ia=65536,a.ub=a.W&16?4186112:253952,a.xa=a.se,a.oa=a.sc?a.$g:a.Fd,a.Hb=a.tc?a.ti:a.Jd,$c(a.F,a.W&16?22:18)):(a.Ia=0,a.ub=57344,a.xa=a.Gf,a.oa=a.sc?a.Zg:a.ye,a.Hb=a.tc?a.si:a.De,$c(a.F,16))}function ud(a){var b=a.S;b&57344||(b=b&-3199|a.zb<<5|a.rb<<1);return b}
function ve(a){var b=+a.model||1170;ee.call(this,a,6666667);this.ka=b;this.Xc=+a.addrReset||0;this.La=this.w=this.N=this.C=this.G=this.L=this.I=0;this.g=this.ua=this.X=[];this.M=this.B=this.Ha=this.xc=[];this.Qa=this.O=this.Td=this.yb=this.zb=this.rb=this.jb=this.P=this.uc=this.ob=this.za=this.S=this.vc=this.wc=this.W=this.i=0;this.Wd=[4,2,0,1];this.Ac=0;this.Yd=255;1120>=this.ka?(this.be=we.bind(this),this.Lb=this.Cf,this.Ac=8,this.Yd=-1,this.fe=255,this.ee=0):(this.be=xe.bind(this),this.Lb=this.Df,
this.fe=~(1792|(1140>=this.ka?2048:0))&65535,this.ee=1140<this.ka?2048:0);this.Ec=this.Dc=this.qa=0;this.R=null;this.mc=[];this.jc=this.cd=this.pe;this.kc=this.dd=this.te;this.Uc=this.jd=this.ze;this.lc=this.ld=this.Ae;this.Ia=this.ub=this.sc=this.tc=0;this.ya=this.se;this.pa=this.Fd;this.Hb=this.Jd;this.u=this.j=this.Yc=this.U=this.Y=0;this.A.complete=!1}p(ve,ee);h=ve.prototype;
h.Ca=function(a,b,c,d){ee.prototype.Ca.call(this,a,b,c,d);this.cd=b.Ld.bind(b);this.dd=b.Bc.bind(b);this.jd=b.Md.bind(b);this.ld=b.ac.bind(b)};h.Ea=function(a,b){for(var c=192,d=0;d<this.mc.length;d++){var e=this.mc[d];0>e.Fb&&(e.Fb=c,c+=4)}return ee.prototype.Ea.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ka);this.A.V&&this.ca();this.C=65536;this.G=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Xc,-1,-2,-3,-4,-5,-6,-7,-8];this.ua=[0,0,0,0,0,0];this.X=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.xc=[0,0,0,0,0,0,0,0];this.N=0;this.La=-1;this.u=this.j=this.Yc=this.U=this.Y=this.i=this.uc=0;sc(this);he(this);this.A.error=!1;ee.prototype.reset.call(this)};function sc(a){a.S=0;a.vc=0;a.wc=0;a.W=0;a.P=0;a.ob=0;a.za=255;a.yb=0;a.zb=0;a.rb=0;a.jb=262143;a.Qa=a.g[7];a.O=0;a.R=null;a.F&&(ye(a),a.Td=hd(a.F))}
function ye(a){a.jc=a.cd;a.kc=a.dd;a.Uc=a.jd;a.lc=a.ld;a.sc&&(a.jc=a.pe,a.kc=a.te);a.tc&&(a.Uc=a.ze,a.lc=a.Ae);a.yb?(a.Ia=65536,a.ub=a.W&16?4186112:253952,a.ya=a.se,a.pa=a.sc?a.$g:a.Fd,a.Hb=a.tc?a.ti:a.Jd,$c(a.F,a.W&16?22:18)):(a.Ia=0,a.ub=57344,a.ya=a.Gf,a.pa=a.sc?a.Zg:a.ye,a.Hb=a.tc?a.si:a.De,$c(a.F,16))}function ud(a){var b=a.S;b&57344||(b=b&-3199|a.zb<<5|a.rb<<1);return b}
function vd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.vc=a.O>>16&65535,a.wc=a.O&65535);a.S=b;a.zb=(b&96)>>5;a.rb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.yb!=c&&(a.yb=c,ye(a))}}function wd(a){a.S&57344||(a.vc=a.O>>16&65535);a=a.vc;a&65280&&(a=(a<<8|a>>8)&65535);return a}function xd(a){a.S&57344||(a.wc=a.O&65535);return a.wc}function yd(a,b){1170>a.ka&&(b&=-49);a.W!=b&&(a.W=b,a.jb=b&16?4194303:262143,ye(a))}
function ze(a,b,c,d){a.Xc=b;rc(a,b);Bd(a,0);a.F.reset();sc(a);if(c){a.g[0]=d||0;for(b=1;5>=b;b++)a.g[b]=0;a.g[6]=1024;a.A.ba?a.A.V||uc(a):a.A.qa=!0}else a.D&&a.A.ba?a.ca()||a.J.A.reset||(je(a.D),H(a.J,-1)):!1===c&&a.ca();!a.A.V&&a.sa&&a.sa.stop()}h.qe=function(){return 0};
h.save=function(){var a=new G(this);a.set(0,[this.g,this.ta,this.X,this.M,this.B,this.Ha,this.xc,this.P,this.uc,this.ob,this.Ga,this.zb,this.rb,this.ib,this.i,this.O,this.La,this.Dc,this.Ec,this.Xc]);a.set(1,[Ad(this),ud(this),wd(this),xd(this),this.W]);a.set(2,[this.nb,this.mb,this.A.qa]);a.set(3,Ae(this));a.set(4,te(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.g=b.next().value;this.ta=b.next().value;this.X=b.next().value;this.M=b.next().value;this.B=b.next().value;this.Ha=b.next().value;this.xc=b.next().value;this.P=b.next().value;this.uc=b.next().value;this.ob=b.next().value;this.Ga=b.next().value;this.zb=b.next().value;this.rb=b.next().value;this.ib=b.next().value;this.i=b.next().value;this.O=b.next().value;this.La=b.next().value;this.Dc=b.next().value;this.Ec=b.next().value;this.Xc=b.next().value;b=a[1];Bd(this,
b[0]);vd(this,b[1]);this.vc=b[2];this.wc=b[3];yd(this,b[4]);b=a[2];this.nb=b[0];ne(this,b[1]);this.A.qa=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.mc.length;d++){var e=this.mc[d];if(e.Fb===b[c]){d=e;break a}}d=null}d&&(d.next=this.R,this.R=d)}a=a[4];for(b=0;b<this.ia.length&&b<a.length;b++)this.ia[b][0]=a[b];return!0};function Be(a){return a.C&65536?1:0}function Ce(a){return a.G&32768?2:0}function De(a){return a.L&65535?0:4}function Ee(a){return a.I&32768?8:0}
function ze(a,b,c,d){a.Xc=b;rc(a,b);Bd(a,0);a.F.reset();sc(a);if(c){a.g[0]=d||0;for(b=1;5>=b;b++)a.g[b]=0;a.g[6]=1024;a.A.ba?a.A.V||uc(a):a.A.ra=!0}else a.D&&a.A.ba?a.ca()||a.J.A.reset||(je(a.D),H(a.J,-1)):!1===c&&a.ca();!a.A.V&&a.ta&&a.ta.stop()}h.qe=function(){return 0};
h.save=function(){var a=new G(this);a.set(0,[this.g,this.ua,this.X,this.M,this.B,this.Ha,this.xc,this.P,this.uc,this.ob,this.za,this.zb,this.rb,this.Qa,this.i,this.O,this.La,this.Dc,this.Ec,this.Xc]);a.set(1,[Ad(this),ud(this),wd(this),xd(this),this.W]);a.set(2,[this.nb,this.mb,this.A.ra]);a.set(3,Ae(this));a.set(4,te(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.g=b.next().value;this.ua=b.next().value;this.X=b.next().value;this.M=b.next().value;this.B=b.next().value;this.Ha=b.next().value;this.xc=b.next().value;this.P=b.next().value;this.uc=b.next().value;this.ob=b.next().value;this.za=b.next().value;this.zb=b.next().value;this.rb=b.next().value;this.Qa=b.next().value;this.i=b.next().value;this.O=b.next().value;this.La=b.next().value;this.Dc=b.next().value;this.Ec=b.next().value;this.Xc=b.next().value;b=a[1];Bd(this,
b[0]);vd(this,b[1]);this.vc=b[2];this.wc=b[3];yd(this,b[4]);b=a[2];this.nb=b[0];ne(this,b[1]);this.A.ra=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.mc.length;d++){var e=this.mc[d];if(e.Fb===b[c]){d=e;break a}}d=null}d&&(d.next=this.R,this.R=d)}a=a[4];for(b=0;b<this.ha.length&&b<a.length;b++)this.ha[b][0]=a[b];return!0};function Be(a){return a.C&65536?1:0}function Ce(a){return a.G&32768?2:0}function De(a){return a.L&65535?0:4}function Ee(a){return a.I&32768?8:0}
function Fe(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function Ge(a,b,c){c&&(rc(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function rc(a,b){a.g[7]=b&65535}function pd(a,b,c,d){b={Fb:b,pb:c,message:d||0,name:Qb[b],next:null};a.mc.push(b);return b}function He(a,b){var c=a.R;if(c==b)a.R=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.R&&(a.i|=1)}
function nd(a,b){if(b){if(b!=a.R){var c=a.R;if(!c||c.pb<=b.pb)b.next=c,a.R=b;else{do{var d=c.next;if(!d||d.pb<=b.pb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&E(a,b.message|8)&&F(a,"setIRQ(vector="+u(b.Fb)+",priority="+b.pb+")",!0,!0)}}function td(a,b){b&&(He(a,b),b.message&&E(a,b.message|8)&&F(a,"clearIRQ(vector="+u(b.Fb)+",priority="+b.pb+")",!0,!0))}function Ae(a){var b=[];for(a=a.R;a;)b.push(a.Fb),a=a.next;return b}
function Ie(a){return a.i&64?(a.ra(168,64,-6),!0):a.i&32?(a.ra(4,32,-5),!0):a.i&16?(a.ra(12,16,-7),!0):!1}function Ad(a){return a.w=a.w&63728|Ee(a)|De(a)|Ce(a)|Be(a)}function Bd(a,b){b&=a.fe;a.I=b<<12;a.L=~b&4;a.G=b<<14;a.C=b<<16;if((b^a.w)&a.ee)for(var c=a.ta.length;0<=--c;){var d=a.g[c];a.g[c]=a.ta[c];a.ta[c]=d}a.N=b>>14&3;c=a.w>>14&3;a.N!=c&&(a.X[c]=a.g[6],a.g[6]=a.X[a.N]);a.w=b;a.i&=-3;a.i|=a.R?2:1}function zd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.ob=b}
h.Ea=function(a){this.I=this.L=a;this.G=0};h.qb=function(a,b){this.I=this.L=this.C=a;this.G=b||0};function Je(a,b){a.I=a.L=a.C=b;a.G=a.I^a.C>>1}function Ke(a,b,c,d){a.I=a.L=a.C=b;a.G=(c^d)&(d^b)}
h.ra=function(a,b,c){if(!this.pa){0>this.La?this.La=Ad(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.P|=4,this.g[6]=a=4);if(-1!=c){this.O=a|4143316992;this.N=0;var d=this.oa(a|this.Ia),e=this.oa(a+2&65535|this.Ia);Bd(this,e&-12289|this.La>>2&12288);Le(this,this.La);Le(this,this.g[7]);rc(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.La=-1;this.Dc=c;this.Ec=a;-1==c&&this.ca();if(-4<=c)throw a;}};
function Ie(a){return a.i&64?(a.sa(168,64,-6),!0):a.i&32?(a.sa(4,32,-5),!0):a.i&16?(a.sa(12,16,-7),!0):!1}function Ad(a){return a.w=a.w&63728|Ee(a)|De(a)|Ce(a)|Be(a)}function Bd(a,b){b&=a.fe;a.I=b<<12;a.L=~b&4;a.G=b<<14;a.C=b<<16;if((b^a.w)&a.ee)for(var c=a.ua.length;0<=--c;){var d=a.g[c];a.g[c]=a.ua[c];a.ua[c]=d}a.N=b>>14&3;c=a.w>>14&3;a.N!=c&&(a.X[c]=a.g[6],a.g[6]=a.X[a.N]);a.w=b;a.i&=-3;a.i|=a.R?2:1}function zd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.ob=b}
h.Fa=function(a){this.I=this.L=a;this.G=0};h.qb=function(a,b){this.I=this.L=this.C=a;this.G=b||0};function Je(a,b){a.I=a.L=a.C=b;a.G=a.I^a.C>>1}function Ke(a,b,c,d){a.I=a.L=a.C=b;a.G=(c^d)&(d^b)}
h.sa=function(a,b,c){if(!this.qa){0>this.La?this.La=Ad(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.P|=4,this.g[6]=a=4);if(-1!=c){this.O=a|4143316992;this.N=0;var d=this.pa(a|this.Ia),e=this.pa(a+2&65535|this.Ia);Bd(this,e&-12289|this.La>>2&12288);Le(this,this.La);Le(this,this.g[7]);rc(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.La=-1;this.Dc=c;this.Ec=a;-1==c&&this.ca();if(-4<=c)throw a;}};
function Me(a){var b=Ne(a),c=Ne(a);a.w&49152&&(c=c&-225|a.w&63712);rc(a,b);Bd(a,c);a.i&=-17}function Oe(a,b){var c=b>>13&31;31>c&&(b=a.W&32?a.Ha[c]+(b&8191)&4194303:b&-3932161);return b}
function Pe(a,b,c){var d=[];if(c){c=Oe(a,b);var e=b>>13&31;d.push(c);d.push(e);a.W&32&&(d.push(a.Ha[e]),d.push(b&8191))}else if(a.yb){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.W&a.Wd[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.jb;3932160<=c&&(c=Oe(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.jb)}else c=b&65535,57344<=c&&(c|=a.ub),d.push(c);return d}
function Bc(a,b,c){var d,e,f;if(!(c&a.yb))return f=b&65535,57344<=f&&(f|=a.ub),f;d=b>>13;a.W&a.Wd[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.jb;3932160<=f&&(f=Oe(a,f));if(a.pa)return f;f>=a.Td&&f<a.ub?(a.P|=32,a.ra(4,0,f)):f&1&&!(c&1)&&(a.P|=64,a.ra(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.jb)||a.N)a.zb=a.N,a.rb=d;g&&(g&57344&&(0<=a.La&&(g|=128),a.S&57344||(g|=a.S&4096|a.zb<<5|a.rb<<1,vd(a,a.S&-61695|g&61694)),a.ra(168,64,-2)),a.S&61440||!(f<(4191360&a.jb)||f>(4194239&a.jb))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ne(a){var b=a.oa(a.g[6]|a.Ia);a.g[6]=a.g[6]+2&65535;return b}function Le(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.O=a.O&65535|(a.O&-65536)<<8|16121856;a.i&256||a.Lb(4,-2,c);a.Hb(c,b)}
function Qe(a,b,c,d){var e,f,g=d&8?0:a.Ia;switch(b){case 0:return a.ra(4,0,-3),0;case 1:return 6==c&&a.Lb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Lb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Lb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.oa(e)|g;a.b-=8;break;case 6:return e=a.oa(Fe(a,2)),e=e+a.g[c]&65535,6==c&&a.Lb(d,
0,e),a.b-=6,e|g;case 7:return e=a.oa(Fe(a,2)),e=e+a.g[c]&65535,e=a.oa(e|a.Ia),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.O=a.O&65535|(a.O&-65536)<<8|(f<<3&248|c)<<16;return e}h.Cf=function(a,b,c){!this.N&&0>=b&&c<=this.Ga&&(this.i|=32)};h.Df=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.Ga&&(c<=this.Ga-32?this.ra(4,0,-4):(this.P|=8,this.i|=32)))};h.pe=function(a){this.D&&ae(this.D,a,1);return this.cd(a)};h.te=function(a){this.D&&ae(this.D,a,2);return this.dd(a)};
h.ze=function(a,b){this.D&&be(this.D,a,1);this.jd(a,b)};h.Ae=function(a,b){this.D&&be(this.D,a,2);this.ld(a,b)};function Dc(a,b){a.pa++;b=a.F.Bc(Bc(a,b,2));a.pa--;return b}function Re(a,b){(b?--a.tc:--a.sc)||ye(a)}h.Gf=function(a,b,c){return Qe(this,a,b,c)};h.se=function(a,b,c){return Bc(this,Qe(this,a,b,c),c)};h.ye=function(a){return this.F.Bc(this.ib=a)};h.Zg=function(a){this.D&&ae(this.D,a,2);return this.ye(a)};h.Fd=function(a){return this.F.Bc(this.ib=Bc(this,a,2))};
h.$g=function(a){this.D&&ae(this.D,a,2);return this.Fd(a)};h.De=function(a,b){this.F.ac(this.ib=a,b)};h.si=function(a,b){this.D&&be(this.D,a,2);this.De(a,b)};h.Jd=function(a,b){this.F.ac(this.ib=Bc(this,a,4),b)};h.ti=function(a,b){this.D&&be(this.D,a,2);this.Jd(a,b)};function Se(a,b,c){var d=a.j=b&7;(b=a.u=(b&56)>>3)?(d=Qe(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.oa(d|c&a.Ia),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.X[a.w>>12&3];return c}
function Te(a,b,c,d){a.O=a.O&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Qe(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Bc(a,e|c&65536,4),a.N=a.w>>14&3,a.lc(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.X[a.w>>12&3]=d}function Ue(a,b){b>>=6;var c=a.Y=b&7;return(b=a.U=(b&56)>>3)?a.jc(a.xa(b,c,3)):a.g[c+a.Ac]&a.Yd}function Ve(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.U=(b&56)>>3)?c=a.kc(a.xa(b,d,2)):c=a.g[d+a.Ac];return c}function We(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Qe(a,b,c,8)}
function Xe(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.jc(a.xa(b,c,3)):a.g[c]&255}function Ye(a,b){var c,d=a.j=b&7;(b=a.u=(b&56)>>3)?c=a.kc(a.xa(b,d,2)):c=a.g[d];return c}function Ze(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Yc=a.xa(b,e,7),c=0>c?a.g[-c-1]&255:c,a.Uc(e,d.call(a,c,a.jc(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.xa(b,e,6),a.lc(e,d.call(a,0>c?a.g[-c-1]:c,a.kc(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function $e(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.xa(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.Uc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function af(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.xa(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.lc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.Cc=function(a){this.A.complete=!0;var b=this.D?bf(this.D)?1:this.A.Tc?-1:0:0,c=a?this.A.Tc?0:1:-1;this.A.Tc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(cf(this.D,this.g[7],c)){this.ca();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Fb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Fe(this,2),this.i&=-9),this.ra(d,0,-10),e=!0):e=!1;e&&(f&&He(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.ca();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.ca();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.oa(a);this.g[7]=a+2&65535;this.be(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function Bf(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Ea(a);return a}function Gf(a,b){a=b&~a;this.Ea(a<<8);return a}
function Hf(a,b){a|=b;this.Ea(a);return a}function If(a,b){a|=b;this.Ea(a<<8);return a}function Jf(a,b){a=~b|65536;this.qb(a);return a&65535}function Kf(a,b){a=~b|256;this.qb(a<<8);return a&255}function Lf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Mf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Nf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Of(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
function Bc(a,b,c){var d,e,f;if(!(c&a.yb))return f=b&65535,57344<=f&&(f|=a.ub),f;d=b>>13;a.W&a.Wd[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.jb;3932160<=f&&(f=Oe(a,f));if(a.qa)return f;f>=a.Td&&f<a.ub?(a.P|=32,a.sa(4,0,f)):f&1&&!(c&1)&&(a.P|=64,a.sa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.jb)||a.N)a.zb=a.N,a.rb=d;g&&(g&57344&&(0<=a.La&&(g|=128),a.S&57344||(g|=a.S&4096|a.zb<<5|a.rb<<1,vd(a,a.S&-61695|g&61694)),a.sa(168,64,-2)),a.S&61440||!(f<(4191360&a.jb)||f>(4194239&a.jb))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ne(a){var b=a.pa(a.g[6]|a.Ia);a.g[6]=a.g[6]+2&65535;return b}function Le(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.O=a.O&65535|(a.O&-65536)<<8|16121856;a.i&256||a.Lb(4,-2,c);a.Hb(c,b)}
function Qe(a,b,c,d){var e,f,g=d&8?0:a.Ia;switch(b){case 0:return a.sa(4,0,-3),0;case 1:return 6==c&&a.Lb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Lb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.pa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Lb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.pa(e)|g;a.b-=8;break;case 6:return e=a.pa(Fe(a,2)),e=e+a.g[c]&65535,6==c&&a.Lb(d,
0,e),a.b-=6,e|g;case 7:return e=a.pa(Fe(a,2)),e=e+a.g[c]&65535,e=a.pa(e|a.Ia),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.O=a.O&65535|(a.O&-65536)<<8|(f<<3&248|c)<<16;return e}h.Cf=function(a,b,c){!this.N&&0>=b&&c<=this.za&&(this.i|=32)};h.Df=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.za&&(c<=this.za-32?this.sa(4,0,-4):(this.P|=8,this.i|=32)))};h.pe=function(a){this.D&&ae(this.D,a,1);return this.cd(a)};h.te=function(a){this.D&&ae(this.D,a,2);return this.dd(a)};
h.ze=function(a,b){this.D&&be(this.D,a,1);this.jd(a,b)};h.Ae=function(a,b){this.D&&be(this.D,a,2);this.ld(a,b)};function Dc(a,b){a.qa++;b=a.F.Bc(Bc(a,b,2));a.qa--;return b}function Re(a,b){(b?--a.tc:--a.sc)||ye(a)}h.Gf=function(a,b,c){return Qe(this,a,b,c)};h.se=function(a,b,c){return Bc(this,Qe(this,a,b,c),c)};h.ye=function(a){return this.F.Bc(this.Qa=a)};h.Zg=function(a){this.D&&ae(this.D,a,2);return this.ye(a)};h.Fd=function(a){return this.F.Bc(this.Qa=Bc(this,a,2))};
h.$g=function(a){this.D&&ae(this.D,a,2);return this.Fd(a)};h.De=function(a,b){this.F.ac(this.Qa=a,b)};h.si=function(a,b){this.D&&be(this.D,a,2);this.De(a,b)};h.Jd=function(a,b){this.F.ac(this.Qa=Bc(this,a,4),b)};h.ti=function(a,b){this.D&&be(this.D,a,2);this.Jd(a,b)};function Se(a,b,c){var d=a.j=b&7;(b=a.u=(b&56)>>3)?(d=Qe(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.pa(d|c&a.Ia),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.X[a.w>>12&3];return c}
function Te(a,b,c,d){a.O=a.O&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Qe(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Bc(a,e|c&65536,4),a.N=a.w>>14&3,a.lc(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.X[a.w>>12&3]=d}function Ue(a,b){b>>=6;var c=a.Y=b&7;return(b=a.U=(b&56)>>3)?a.jc(a.ya(b,c,3)):a.g[c+a.Ac]&a.Yd}function Ve(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.U=(b&56)>>3)?c=a.kc(a.ya(b,d,2)):c=a.g[d+a.Ac];return c}function We(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Qe(a,b,c,8)}
function Xe(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.jc(a.ya(b,c,3)):a.g[c]&255}function Ye(a,b){var c,d=a.j=b&7;(b=a.u=(b&56)>>3)?c=a.kc(a.ya(b,d,2)):c=a.g[d];return c}function Ze(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Yc=a.ya(b,e,7),c=0>c?a.g[-c-1]&255:c,a.Uc(e,d.call(a,c,a.jc(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,6),a.lc(e,d.call(a,0>c?a.g[-c-1]:c,a.kc(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function $e(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.ya(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.Uc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function af(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.lc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.Cc=function(a){this.A.complete=!0;var b=this.D?bf(this.D)?1:this.A.Tc?-1:0:0,c=a?this.A.Tc?0:1:-1;this.A.Tc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(cf(this.D,this.g[7],c)){this.ca();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Fb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Fe(this,2),this.i&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&He(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.ca();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.ca();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.pa(a);this.g[7]=a+2&65535;this.be(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function Bf(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Fa(a);return a}function Gf(a,b){a=b&~a;this.Fa(a<<8);return a}
function Hf(a,b){a|=b;this.Fa(a);return a}function If(a,b){a|=b;this.Fa(a<<8);return a}function Jf(a,b){a=~b|65536;this.qb(a);return a&65535}function Kf(a,b){a=~b|256;this.qb(a<<8);return a&255}function Lf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Mf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Nf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Of(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
function Pf(a,b){a=-b;this.qb(a,a&b&32768);return a&65535}function Qf(a,b){a=-b;this.qb(a<<8,(a&b&128)<<8);return a&255}function Rf(a,b){a=b<<1|this.C>>16&1;Je(this,a);return a&65535}function Sf(a,b){a=b<<1|this.C>>16&1;Je(this,a<<8);return a&255}function Tf(a,b){a=(this.C&65536|b)>>1|b<<16;Je(this,a);return a&65535}function Uf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Je(this,a<<8);return a&255}function Vf(a,b){var c=b-a;Ke(this,c,a,b);return c&65535}
function Wf(a,b){var c=b-a;Ke(this,c<<8,a<<8,b<<8);return c&255}function Xf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Yf(a,b){a^=b;this.Ea(a);return a&65535}function Zf(a){P(this,a,Ve(this,a),df);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
function Wf(a,b){var c=b-a;Ke(this,c<<8,a<<8,b<<8);return c&255}function Xf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Yf(a,b){a^=b;this.Fa(a);return a&65535}function Zf(a){P(this,a,Ve(this,a),df);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
function $f(a){var b=Ye(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.C=this.G=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.C=c<<17-b,c>>=b;else if(b)if(16<b)this.G=c,c=0;else{this.C=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.G=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.u?6:7)+b}
function ag(a){var b=Ye(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.C=this.G=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.C=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.C=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.G=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.I=d>>16;this.L=d>>16|d;this.b-=(this.u?6:7)+b}function bg(a){Ge(this,a,!Be(this))}function cg(a){Ge(this,a,Be(this))}
function dg(a){P(this,a,Ve(this,a),Ff);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function eg(a){Ze(this,a,Ue(this,a),Gf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function fg(a){P(this,a,Ve(this,a),Hf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function gg(a){Ze(this,a,Ue(this,a),If);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
function hg(a){var b=Ve(this,a);a=Ye(this,a);this.Ea((0>b?this.g[-b-1]:b)&a);this.b-=this.u?4+(this.Y&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function ig(a){var b=Ue(this,a);a=Xe(this,a);this.Ea(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.u?4+(this.Y&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function jg(a){Ge(this,a,De(this))}function kg(a){Ge(this,a,!Ee(this)==!Ce(this))}function lg(a){Ge(this,a,!De(this)&&!Ee(this)==!Ce(this))}function mg(a){Ge(this,a,!Be(this)&&!De(this))}
function ng(a){Ge(this,a,De(this)||!Ee(this)!=!Ce(this))}function og(a){Ge(this,a,Be(this)||De(this))}function pg(a){Ge(this,a,!Ee(this)!=!Ce(this))}function qg(a){Ge(this,a,Ee(this))}function rg(a){Ge(this,a,!De(this))}function sg(a){Ge(this,a,!Ee(this))}function tg(){this.ra(12,0,-9)}function ug(a){Ge(this,a,!0)}function vg(a){Ge(this,a,!Ce(this))}function wg(a){Ge(this,a,Ce(this))}function xg(a){a&1&&(this.C=0);a&2&&(this.G=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function hg(a){var b=Ve(this,a);a=Ye(this,a);this.Fa((0>b?this.g[-b-1]:b)&a);this.b-=this.u?4+(this.Y&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function ig(a){var b=Ue(this,a);a=Xe(this,a);this.Fa(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.u?4+(this.Y&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function jg(a){Ge(this,a,De(this))}function kg(a){Ge(this,a,!Ee(this)==!Ce(this))}function lg(a){Ge(this,a,!De(this)&&!Ee(this)==!Ce(this))}function mg(a){Ge(this,a,!Be(this)&&!De(this))}
function ng(a){Ge(this,a,De(this)||!Ee(this)!=!Ce(this))}function og(a){Ge(this,a,Be(this)||De(this))}function pg(a){Ge(this,a,!Ee(this)!=!Ce(this))}function qg(a){Ge(this,a,Ee(this))}function rg(a){Ge(this,a,!De(this))}function sg(a){Ge(this,a,!Ee(this))}function tg(){this.sa(12,0,-9)}function ug(a){Ge(this,a,!0)}function vg(a){Ge(this,a,!Ce(this))}function wg(a){Ge(this,a,Ce(this))}function xg(a){a&1&&(this.C=0);a&2&&(this.G=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function yg(a){var b=Ve(this,a);a=Ye(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;Ke(this,c,a,b);this.b-=this.u?4+(this.Y&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function zg(a){var b=Ue(this,a);a=Xe(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);Ke(this,c,a,b);this.b-=this.u?4+(this.Y&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}
function Ag(a){var b=Ye(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.C=this.G=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.G=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.G=32768,this.C=65536,this.b-=7}function Bg(){this.ra(24,0,-9);this.b-=20}
function Cg(){this.w&49152?(this.P|=128,this.ra(4,0,-8)):(this.sa&&1120==this.ka&&this.sa.setData(this.g[0],!0),this.D?Dg(this.D):this.ca());this.b-=7}function Eg(){this.ra(16,0,-9);this.b-=20}var Fg=[0,7,7,10,7,11,9,13];function Gg(a){this.la=this.b;rc(this,We(this,a));this.b=this.la-Fg[this.u]}var Hg=[0,14,14,17,14,18,16,20];function Ig(a){this.la=this.b;var b=We(this,a);a=a>>6&7;Le(this,this.g[a]);this.g[a]=this.g[7];rc(this,b);this.b=this.la-Hg[this.u]}
var Jg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Kg(a){var b=Ve(this,a);this.la=this.b;af(this,a,b,this.Ea);this.b=this.la-Jg[(this.U?8:0)+this.u]+(7!=this.j||this.u?0:2)}function Lg(a){var b=Ue(this,a);$e(this,a,b,65535,this.Ea);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}var Mg=[7,13,13,17,14,18,17,21];
function Ng(a){var b=Ye(this,a);a=a>>6&7;b=(b<<16>>16)*(this.g[a]<<16>>16);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;b|=0;this.I=b>>16;this.L=this.I|b;this.G=0;this.C=-32768>b||32767<b?65536:0;this.b-=23}function Og(){this.b-=5}function Pg(){this.w&49152||(this.F.reset(),sc(this),this.sa&&this.sa.setData(this.g[0],!0));this.b-=667}function Qg(a){if(a&8)Q.call(this,a);else{var b=Ne(this);a&=7;7==a?rc(this,b):(rc(this,this.g[a]),this.g[a]=b);this.b-=9}}function Rg(){Me(this);this.b-=13}
function Sg(a){a&1&&(this.C=65536);a&2&&(this.G=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Tg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)rc(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Ug(a){P(this,a,Ve(this,a),Vf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function Vg(a){P(this,a,0,Xf);this.b-=this.u?9:3+(7==this.j?2:0)}function Wg(){this.ra(28,0,-9)}
function Xg(){this.sa&&(this.sa.Hd(this.g[7],!0),this.sa.setData(this.g[0],!0));this.i|=8;Fe(this,-2);this.b-=3}function Yg(a){P(this,a,this.g[(a>>6&7)+this.Ac],Yf);this.b-=this.u?9:3+(7==this.j?2:0)}function Q(a){var b;if(b=this.D)b=this.D,E(b,1)?(F(b,"undefined opcode "+K(b,a),!0,!0),b=Dg(b)):b=!1;b||this.ra(8,0,-9)}function we(a){Zg[a>>12].call(this,a)}function $g(a){ah[a>>6&3].call(this,a)}function bh(a){ch[a>>6&3].call(this,a)}function dh(a){eh[a>>6&3].call(this,a)}
function Ag(a){var b=Ye(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.C=this.G=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.G=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.G=32768,this.C=65536,this.b-=7}function Bg(){this.sa(24,0,-9);this.b-=20}
function Cg(){this.w&49152?(this.P|=128,this.sa(4,0,-8)):(this.ta&&1120==this.ka&&this.ta.setData(this.g[0],!0),this.D?Dg(this.D):this.ca());this.b-=7}function Eg(){this.sa(16,0,-9);this.b-=20}var Fg=[0,7,7,10,7,11,9,13];function Gg(a){this.ma=this.b;rc(this,We(this,a));this.b=this.ma-Fg[this.u]}var Hg=[0,14,14,17,14,18,16,20];function Ig(a){this.ma=this.b;var b=We(this,a);a=a>>6&7;Le(this,this.g[a]);this.g[a]=this.g[7];rc(this,b);this.b=this.ma-Hg[this.u]}
var Jg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Kg(a){var b=Ve(this,a);this.ma=this.b;af(this,a,b,this.Fa);this.b=this.ma-Jg[(this.U?8:0)+this.u]+(7!=this.j||this.u?0:2)}function Lg(a){var b=Ue(this,a);$e(this,a,b,65535,this.Fa);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}var Mg=[7,13,13,17,14,18,17,21];
function Ng(a){var b=Ye(this,a);a=a>>6&7;b=(b<<16>>16)*(this.g[a]<<16>>16);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;b|=0;this.I=b>>16;this.L=this.I|b;this.G=0;this.C=-32768>b||32767<b?65536:0;this.b-=23}function Og(){this.b-=5}function Pg(){this.w&49152||(this.F.reset(),sc(this),this.ta&&this.ta.setData(this.g[0],!0));this.b-=667}function Qg(a){if(a&8)Q.call(this,a);else{var b=Ne(this);a&=7;7==a?rc(this,b):(rc(this,this.g[a]),this.g[a]=b);this.b-=9}}function Rg(){Me(this);this.b-=13}
function Sg(a){a&1&&(this.C=65536);a&2&&(this.G=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Tg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)rc(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Ug(a){P(this,a,Ve(this,a),Vf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function Vg(a){P(this,a,0,Xf);this.b-=this.u?9:3+(7==this.j?2:0)}function Wg(){this.sa(28,0,-9)}
function Xg(){this.ta&&(this.ta.Hd(this.g[7],!0),this.ta.setData(this.g[0],!0));this.i|=8;Fe(this,-2);this.b-=3}function Yg(a){P(this,a,this.g[(a>>6&7)+this.Ac],Yf);this.b-=this.u?9:3+(7==this.j?2:0)}function Q(a){var b;if(b=this.D)b=this.D,E(b,1)?(F(b,"undefined opcode "+K(b,a),!0,!0),b=Dg(b)):b=!1;b||this.sa(8,0,-9)}function we(a){Zg[a>>12].call(this,a)}function $g(a){ah[a>>6&3].call(this,a)}function bh(a){ch[a>>6&3].call(this,a)}function dh(a){eh[a>>6&3].call(this,a)}
function fh(a){gh[a&15].call(this,a)}function hh(a){ih[a&15].call(this,a)}function jh(a){kh[a>>6&3].call(this,a)}function lh(a){mh[a>>6&3].call(this,a)}function nh(a){oh[a>>6&3].call(this,a)}
var Zg=[function(a){ph[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,Q,function(a){qh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],ph=[function(a){rh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,Q,Q,Q],ah=[function(a){af(this,a,0,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Jf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Nf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Lf);this.b-=this.u?9:3+(7==this.j?2:0)}],ch=[function(a){P(this,a,0,Pf);
this.b-=this.u?11:6},function(a){P(this,a,Be(this)?1:0,df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Be(this)?1:0,Vf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Ye(this,a);this.qb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],eh=[function(a){P(this,a,0,Tf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Rf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Bf);this.b-=this.u?9:3+(7==this.j?2:0)}],rh=
[function(a){sh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,Q,fh,hh,Vg,Vg,Vg,Vg],sh=[Cg,Xg,Rg,tg,Eg,Pg,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],gh=[Og,function(){this.C=0;this.b-=5},function(){this.G=0;this.b-=5},xg,function(){this.L=1;this.b-=5},xg,xg,xg,function(){this.I=0;this.b-=5},xg,xg,xg,xg,xg,xg,xg],ih=[Og,function(){this.C=65536;this.b-=5},function(){this.G=32768;this.b-=5},Sg,function(){this.L=0;this.b-=5},Sg,Sg,Sg,function(){this.I=32768;this.b-=5},Sg,Sg,Sg,Sg,Sg,Sg,Sg],qh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,
nh,Q,Q,Q],kh=[function(a){$e(this,a,0,255,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Kf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Of);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Mf);this.b-=this.u?9:3+(7==this.j?2:0)}],mh=[function(a){Ze(this,a,0,Qf);this.b-=this.u?11:6},function(a){Ze(this,a,Be(this)?1:0,ef);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,Be(this)?1:0,Wf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Xe(this,
a);this.qb(a<<8);this.b-=this.u?4:3+(7==this.j?2:0)}],oh=[function(a){Ze(this,a,0,Uf);this.b-=this.u?9+(this.Yc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Ef);this.b-=this.u?9+(this.Yc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)}];function xe(a){th[a>>12].call(this,a)}
var th=[function(a){uh[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,function(a){vh[a>>8&15].call(this,a)},function(a){wh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],uh=[function(a){xh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,function(a){yh[a>>6&3].call(this,a)},Q,Q],yh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.oa(a|this.Ia);rc(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Se(this,a,0);this.Ea(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);
this.la=this.b;this.Ea(b);Te(this,a,0,b);this.b=this.la-Mg[this.u]},function(a){af(this,a,Ee(this)?65535:0,this.Ea);this.b-=this.u?9:3+(7==this.j?2:0)}],xh=[function(a){zh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,function(a){!(a&8)||1145>this.ka?Q.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},fh,hh,Vg,Vg,Vg,Vg],zh=[Cg,Xg,function(){Me(this);this.i|=this.w&16;this.b-=13},tg,Eg,Pg,Rg,function(a){Q.call(this,a)},Q,Q,Q,Q,Q,Q,Q,Q],vh=[Ng,Ng,Ag,Ag,$f,$f,ag,ag,
Yg,Yg,Q,Q,Q,Q,Tg,Tg],wh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,nh,function(a){1145>this.ka?Q.call(this,a):Ah[a>>6&3].call(this,a)},Q,Q],Ah=[function(a){Q.call(this,a)},function(a){a=Se(this,a,65536);this.Ea(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);this.la=this.b;this.Ea(b);Te(this,a,65536,b);this.b=this.la-Mg[this.u]},function(a){Q.call(this,a)}];
function Bh(a){x.call(this,"ROM",a,128);this.ga=this.g=null;this.u=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=ta(this.j);if(this.j){a=this.j;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.Z,c.ga=a.ga):c.j=null);Ch(c)})}}p(Bh,x);
h=Bh.prototype;h.Aa=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Ch(this)};h.Da=function(){this.ga&&(this.D&&Dh(this.D,this.id,this.u,this.b,this.ga),delete this.ga);return!0};h.Ca=function(){return!0};
function Ch(a){if(!Db(a)){if(a.j){if(!a.g||!a.F)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)wb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Hc){var c={},c=(c[b]=[Bh.prototype.Jg,Bh.prototype.$h,null,null,null,a.b>>1],c);if(dc(a.F,a,c)){a.status("Added "+a.b+"-byte ROM at "+u(b));b=a.w=!0;break a}}else if(Yc(a.F,b,a.b,Id)){for(c=0;c<a.g.length;c++)gd(a.F,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?
var th=[function(a){uh[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,function(a){vh[a>>8&15].call(this,a)},function(a){wh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],uh=[function(a){xh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,function(a){yh[a>>6&3].call(this,a)},Q,Q],yh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.pa(a|this.Ia);rc(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Se(this,a,0);this.Fa(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);
this.ma=this.b;this.Fa(b);Te(this,a,0,b);this.b=this.ma-Mg[this.u]},function(a){af(this,a,Ee(this)?65535:0,this.Fa);this.b-=this.u?9:3+(7==this.j?2:0)}],xh=[function(a){zh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,function(a){!(a&8)||1145>this.ka?Q.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},fh,hh,Vg,Vg,Vg,Vg],zh=[Cg,Xg,function(){Me(this);this.i|=this.w&16;this.b-=13},tg,Eg,Pg,Rg,function(a){Q.call(this,a)},Q,Q,Q,Q,Q,Q,Q,Q],vh=[Ng,Ng,Ag,Ag,$f,$f,ag,ag,
Yg,Yg,Q,Q,Q,Q,Tg,Tg],wh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,nh,function(a){1145>this.ka?Q.call(this,a):Ah[a>>6&3].call(this,a)},Q,Q],Ah=[function(a){Q.call(this,a)},function(a){a=Se(this,a,65536);this.Fa(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);this.ma=this.b;this.Fa(b);Te(this,a,65536,b);this.b=this.ma-Mg[this.u]},function(a){Q.call(this,a)}];
function Bh(a){x.call(this,"ROM",a,128);this.ia=this.g=null;this.u=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=ta(this.j);if(this.j){a=this.j;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.Z,c.ia=a.ia):c.j=null);Ch(c)})}}p(Bh,x);
h=Bh.prototype;h.Ca=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Ch(this)};h.Ea=function(){this.ia&&(this.D&&Dh(this.D,this.id,this.u,this.b,this.ia),delete this.ia);return!0};h.Da=function(){return!0};
function Ch(a){if(!Db(a)){if(a.j){if(!a.g||!a.F)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Bb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Hc){var c={},c=(c[b]=[Bh.prototype.Jg,Bh.prototype.$h,null,null,null,a.b>>1],c);if(dc(a.F,a,c)){a.status("Added "+a.b+"-byte ROM at "+u(b));b=a.w=!0;break a}}else if(Yc(a.F,b,a.b,Id)){for(c=0;c<a.g.length;c++)gd(a.F,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?
b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}C(a)}}h.Jg=function(a){return this.g[a-this.u]};h.$h=function(){};Sa(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
function Eh(a){x.call(this,"RAM",a);this.ga=this.g=null;this.i=+a.addr;this.j=+a.size;this.za=a.load;this.ya=a.exec;null!=this.za&&(this.za=+this.za);null!=this.ya&&(this.ya=+this.ya);this.u=this.B=!1;this.b=a.file;this.w=ta(this.b);if(this.b){a=this.b;var b=ua(this.w);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.Z,
c.ga=a.ga,null==c.za&&(c.za=a.za),null==c.ya&&(c.ya=a.ya)):c.b=null);Fh(c)})}}p(Eh,x);Eh.prototype.Aa=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Fh(this)};Eh.prototype.Da=function(a,b){this.ga&&(this.D&&Dh(this.D,this.id,this.i,this.j,this.ga),delete this.ga);b||this.reset();return!0};Eh.prototype.Ca=function(){return!0};
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.za,a.ya,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;C(a)}}
Eh.prototype.reset=function(){if(this.u&&!this.B){for(var a=this.F,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Gb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.F(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&Gh(this,this.g,this.za,this.ya,this.i,!this.D)}this.B=!1};
function Eh(a){x.call(this,"RAM",a);this.ia=this.g=null;this.i=+a.addr;this.j=+a.size;this.Ba=a.load;this.Aa=a.exec;null!=this.Ba&&(this.Ba=+this.Ba);null!=this.Aa&&(this.Aa=+this.Aa);this.u=this.B=!1;this.b=a.file;this.w=ta(this.b);if(this.b){a=this.b;var b=ua(this.w);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.Z,
c.ia=a.ia,null==c.Ba&&(c.Ba=a.Ba),null==c.Aa&&(c.Aa=a.Aa)):c.b=null);Fh(c)})}}p(Eh,x);Eh.prototype.Ca=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Fh(this)};Eh.prototype.Ea=function(a,b){this.ia&&(this.D&&Dh(this.D,this.id,this.i,this.j,this.ia),delete this.ia);b||this.reset();return!0};Eh.prototype.Da=function(){return!0};
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Ba,a.Aa,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;C(a)}}
Eh.prototype.reset=function(){if(this.u&&!this.B){for(var a=this.F,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Gb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.F(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&Gh(this,this.g,this.Ba,this.Aa,this.i,!this.D)}this.B=!1};
function Gh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){F(a,"invalid signature ("+ra(m)+") at offset "+ra(n),4096);break}if(l+6>=b.length){F(a,"invalid block at offset "+ra(n),4096);break}for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((q&255)+(q>>8)+(t&255)+(t>>8)),r=l,D=q-=6;0<q&&l<b.length;)m+=b[l++]&255,q--;if(q||l>=b.length){F(a,"insufficient data for block at offset "+ra(n),4096);
break}m+=b[l++]&255;if(m&255){F(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+ra(n),4096);break}if(D)for(F(a,"loading "+ra(D)+" bytes at "+ra(t)+"-"+ra(t+D),4096);D--;)gd(a.F,t++,b[r++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&F(a,"starting address: "+ra(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)gd(a.F,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.ca(),f=!1;null!=d&&ze(a.f,d,f)}return k}
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);C(this)}p(Hh,x);Hh.prototype.va=function(){return!1};Hh.prototype.Aa=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
function Ih(a){x.call(this,"SerialPort",a,1048576);this.M=+a.adapter;this.S=+a.baudReceive||9600;this.Y=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.u=this.w=null;this.W=+a.tabSize;this.U=+a.charBOL;this.B=0;this.I=!0;this.P=this.N=null;this.R=this.X=-1;this.C=this.b=this.g=0;this.i=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Jh;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.H[b])&&this.va(null,a,b))}this.j=this.G=this.O=null;this.exports=
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);C(this)}p(Hh,x);Hh.prototype.wa=function(){return!1};Hh.prototype.Ca=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
function Ih(a){x.call(this,"SerialPort",a,1048576);this.M=+a.adapter;this.S=+a.baudReceive||9600;this.Y=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.u=this.w=null;this.W=+a.tabSize;this.U=+a.charBOL;this.B=0;this.I=!0;this.P=this.N=null;this.R=this.X=-1;this.C=this.b=this.g=0;this.i=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Jh;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.H[b])&&this.wa(null,a,b))}this.j=this.G=this.O=null;this.exports=
{connect:this.ue,receiveData:this.Pc,receiveStatus:this.fh,setConnection:this.jh}}p(Ih,x);h=Ih.prototype;
h.va=function(a,b,c){var d=this;switch(b){case Jh:return this.H[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Od:la.cc:46==c?b=la.Od:a.ctrlKey&&c>=la.Kd&&c<=la.xf&&(b=c-(la.Kd-la.Fe));b&&(a.preventDefault&&a.preventDefault(),d.Pc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==la.He&&(b=la.Ge);d.Pc(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
h.wa=function(a,b,c){var d=this;switch(b){case Jh:return this.H[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Od:la.cc:46==c?b=la.Od:a.ctrlKey&&c>=la.Kd&&c<=la.xf&&(b=c-(la.Kd-la.Fe));b&&(a.preventDefault&&a.preventDefault(),d.Pc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==la.He&&(b=la.Ge);d.Pc(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Pc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.Aa=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;var e=this;this.P=pd(this.f,this.M?-1:48,4,1048576);this.R=md(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,F(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),od(e.f,e.R,1E3/Math.round(e.S/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&nd(c,e.P))});this.N=pd(this.f,this.M?-1:52,4,1048576);this.X=md(this.f,function(){e.g|=128;e.g&64&&nd(c,e.N)});dc(b,this,Kh,this.M?64832+8*(this.M-1)-65392:0);fc(b,this.reset.bind(this));
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;var e=this;this.P=pd(this.f,this.M?-1:48,4,1048576);this.R=md(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,F(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),od(e.f,e.R,1E3/Math.round(e.S/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&nd(c,e.P))});this.N=pd(this.f,this.M?-1:52,4,1048576);this.X=md(this.f,function(){e.g|=128;e.g&64&&nd(c,e.N)});dc(b,this,Kh,this.M?64832+8*(this.M-1)-65392:0);fc(b,this.reset.bind(this));
C(this)};h.ue=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Mb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.vb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.Da=function(a,b){if(!b)if(this.ue(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){Lh(this)};h.save=function(){var a=new G(this);a.set(0,[this.C,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Lh(this,a[0])};function Lh(a,b){b||(b=[0,8192,128,a.i]);b=ia(b);a.C=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
h.Ea=function(a,b){if(!b)if(this.ue(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){Lh(this)};h.save=function(){var a=new G(this);a.set(0,[this.C,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Lh(this,a[0])};function Lh(a,b){b||(b=[0,8192,128,a.i]);b=ia(b);a.C=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
h.Pc=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);od(this.f,this.R,1E3/Math.round(this.S/10));return!0};h.fh=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&nd(this.f,this.P))};h.jh=function(a,b){return this.j?!1:(this.j=a,this.G=b,!0)};
h.wg=function(){var a=this.b&65534;this.b&=-32769;return a};h.Nh=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.O&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.O.call(this.j,b))};h.vg=function(){this.b&=-129;return this.C};h.Mh=function(){};h.eh=function(){return this.g};h.vi=function(a){this.g&128&&(a&64?nd(this.f,this.N):td(this.f,this.N));this.g=this.g&-70|a&69};h.dh=function(){return 0};
h.ui=function(a){a&=255;this.G&&this.G.call(this.j,a);a&=127;if(this.u)if(13==a)this.B=0;else if(8==a)this.u.value=this.u.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=Aa[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.W||8,c=a-this.B%a,this.W&&(b=ya("",c)));this.U&&!this.B&&c&&(b=String.fromCharCode(this.U)+b);this.u.value+=b;this.u.scrollTop=this.u.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==a||1024<=this.w.length)this.v(this.w),
this.w="";10!=a&&(this.w+=String.fromCharCode(a))}od(this.f,this.X,1E3/Math.round(this.Y/10));this.g&=-129};var Jh="buffer",Mh={},Kh=(Mh[65392]=[null,null,Ih.prototype.wg,Ih.prototype.Nh,"RCSR"],Mh[65394]=[null,null,Ih.prototype.vg,Ih.prototype.Mh,"RBUF"],Mh[65396]=[null,null,Ih.prototype.eh,Ih.prototype.vi,"XCSR"],Mh[65398]=[null,null,Ih.prototype.dh,Ih.prototype.ui,"XBUF"],Mh);Sa(function(){for(var a=z(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Ih(d);pb(d,c)}});
function Dd(a){x.call(this,"PC11",a,4096);this.N=Nh(this,a.autoMount);this.g=0;this.U=+a.baudReceive||3600;this.w=this.b=0;this.L=32768;this.i=this.R=0;this.C=[];this.B=Oh;this.j=Ph;this.M=this.u="";this.Z=this.za=this.ya=null;this.P=-1;this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.G=null;this.S=-1;this.I=null}p(Dd,x);function Nh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Dd.prototype;
h.va=function(a,b,c){var d=this,e=Ph;switch(b){case "listTapes":return this.H[b]=c,c.onchange=function(){var a=d.H.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){w("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.H[b]=c,!0;case "readTape":e=Qh;case "loadTape":return e||(e=Rh),this.H[b]=c,c.onclick=
function Dd(a){x.call(this,"PC11",a,4096);this.N=Nh(this,a.autoMount);this.g=0;this.U=+a.baudReceive||3600;this.w=this.b=0;this.L=32768;this.i=this.R=0;this.C=[];this.B=Oh;this.j=Ph;this.M=this.u="";this.Z=this.Ba=this.Aa=null;this.P=-1;this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.G=null;this.S=-1;this.I=null}p(Dd,x);function Nh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Dd.prototype;
h.wa=function(a,b,c){var d=this,e=Ph;switch(b){case "listTapes":return this.H[b]=c,c.onchange=function(){var a=d.H.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){w("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.H[b]=c,!0;case "readTape":e=Qh;case "loadTape":return e||(e=Rh),this.H[b]=c,c.onclick=
function(){var a=d.H.listTapes;a&&Sh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Sh(d,ta(b,!0),b,Rh,a)}return!1};return!0;case Th:return this.H[b]=c,!0}return!1};
h.Aa=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;this.I=Uh(a);var e=this;if(a=Nh(this,ge(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.G=pd(this.f,56,4,4096);this.S=md(this.f,function(){1!=(e.b&32769)||e.b&128||(e.i<e.C.length?(e.w=e.C[e.i]&255,E(e)&&F(e,e.type+".advanceReader("+e.i+"): "+v(e.w,2,!0),!0),e.i++,Vh(e,e.i/e.C.length*100)):e.b|=32768,e.b|=128,e.b&=-2049,e.b&64&&nd(e.f,e.G))});dc(b,this,Wh);fc(b,this.reset.bind(this));Xh(this,"None",Oh,!0);this.O&&Xh(this,
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||C(this)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;this.I=Uh(a);var e=this;if(a=Nh(this,ge(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.G=pd(this.f,56,4,4096);this.S=md(this.f,function(){1!=(e.b&32769)||e.b&128||(e.i<e.C.length?(e.w=e.C[e.i]&255,E(e)&&F(e,e.type+".advanceReader("+e.i+"): "+v(e.w,2,!0),!0),e.i++,Vh(e,e.i/e.C.length*100)):e.b|=32768,e.b|=128,e.b&=-2049,e.b&64&&nd(e.f,e.G))});dc(b,this,Wh);fc(b,this.reset.bind(this));Xh(this,"None",Oh,!0);this.O&&Xh(this,
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||C(this)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
function Sh(a,b,c,d,e){if(c)if(c==Yh)a.T('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Zh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=ta(c);a.status("Attempting to load "+c+' as "'+b+'"');a.B=Zh}else a.B=c;ai(a,b,c,d,!1,e)}else ci(a,!1)}
function ai(a,b,c,d,e,f){var g=-1;if(a.u.toLowerCase()!=c.toLowerCase()||a.j!=d)g++,ci(a,!0),a.A.eb?a.T("PC11 busy"):(e&&(a.g++,E(a)&&F(a,"auto-loading tape: "+b)),di(a,b,c,d,f)?g++:a.A.eb=!0);g&&ei(a,a.M,a.u,a.j,a.Z,a.za,a.ya)}
function di(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),ei(a,b,c,d,e),a.B=Yh);a.A.eb=!1;bi(a)};g.readAsArrayBuffer(e);return!1}0>c.indexOf("/api/v1/dump")&&(e=ua(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ba;g?a.T('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(eb(a.vb,e,f),(e=Fa(e,f))&&ei(a,b,c,d,
e.Z,e.za,e.ya));a.A.eb=!1;a.g&&(a.g--,a.g||C(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ai(a,b,c,d,e,f){var g=-1;if(a.u.toLowerCase()!=c.toLowerCase()||a.j!=d)g++,ci(a,!0),a.A.fb?a.T("PC11 busy"):(e&&(a.g++,E(a)&&F(a,"auto-loading tape: "+b)),di(a,b,c,d,f)?g++:a.A.fb=!0);g&&ei(a,a.M,a.u,a.j,a.Z,a.Ba,a.Aa)}
function di(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),ei(a,b,c,d,e),a.B=Yh);a.A.fb=!1;bi(a)};g.readAsArrayBuffer(e);return!1}0>c.indexOf("/api/v1/dump")&&(e=ua(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ba;g?a.T('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(eb(a.vb,e,f),(e=Fa(e,f))&&ei(a,b,c,d,
e.Z,e.Ba,e.Aa));a.A.fb=!1;a.g&&(a.g--,a.g||C(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function bi(a){var b=a.H.listTapes;if(b&&b.options){a=a.B||a.u;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Vh(a,b){b|=0;if(b!==a.P){var c=a.H[Th];c&&(c=(c=z(c,fi))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function ei(a,b,c,d,e,f,g){a.M=b;a.u=c;a.j=d;a.Z=e;a.za=f;a.ya=g;d==Qh?a.I&&Gh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.T('No valid memory address for tape "'+b+'"'):(a.i=0,a.C=e,a.b&=-32769,a.status('Loaded tape "'+b+'" ('+e.length+" bytes)"),Vh(a,0))}function ci(a,b){if(a.u||!1===b)a.M="",a.u="",b||(a.j&&a.status(a.j==Rh?"tape detached":"tape unloaded"),a.B=Oh,a.j=Ph,bi(a))}h.save=function(){return(new G(this)).data()};h.restore=function(){return!0};h.pg=function(){return this.b&65534};
function ei(a,b,c,d,e,f,g){a.M=b;a.u=c;a.j=d;a.Z=e;a.Ba=f;a.Aa=g;d==Qh?a.I&&Gh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.T('No valid memory address for tape "'+b+'"'):(a.i=0,a.C=e,a.b&=-32769,a.status('Loaded tape "'+b+'" ('+e.length+" bytes)"),Vh(a,0))}function ci(a,b){if(a.u||!1===b)a.M="",a.u="",b||(a.j&&a.status(a.j==Rh?"tape detached":"tape unloaded"),a.B=Oh,a.j=Ph,bi(a))}h.save=function(){return(new G(this)).data()};h.restore=function(){return!0};h.pg=function(){return this.b&65534};
h.Gh=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&nd(this.f,this.G)):(this.b&=-129,this.b|=2048,this.w=0,od(this.f,this.S,1E3/Math.round(this.U/10))));this.b=this.b&-66|a&65};h.og=function(){this.b&=-129;this.b|=2048;return this.w};h.Fh=function(){};h.ng=function(){return this.L};h.Eh=function(a){this.L=this.L&-65|a&64};h.mg=function(){return this.R};h.Dh=function(a){this.R=a&255};
var Oh="",Yh="?",Zh="??",Ph=0,Rh=1,Qh=2,Th="readProgress",fi="pcjs-progress-bar",gi={},Wh=(gi[65384]=[null,null,Dd.prototype.pg,Dd.prototype.Gh,"PRS"],gi[65386]=[null,null,Dd.prototype.og,Dd.prototype.Fh,"PRB"],gi[65388]=[null,null,Dd.prototype.ng,Dd.prototype.Eh,"PPS"],gi[65390]=[null,null,Dd.prototype.mg,Dd.prototype.Dh,"PPB"],gi);
function hi(a,b,c){x.call(this,"Disk",{id:a.vb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Ya=b.name;this.Pa=this.Gd="";this.Ad=b.Ad;this.aa=this.ja=this.ea=this.ua=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.aa,b.ja,b.ea,b.ua);this.g=this.w=null;C(this)}p(hi,x);h=hi.prototype;h.Aa=function(a,b,c,d){this.D=d};
function ji(a,b,c,d,e,f){a.mode=b;a.aa=c;a.ja=d;a.ea=e;a.ua=f;a.b=[];if("preload"!=a.mode){b=Array(a.aa);for(c=0;c<b.length;c++){d=Array(a.ja);for(e=0;e<d.length;e++){f=Array(a.ea);for(var g=1;g<=f.length;g++)f[g-1]=ki(null,c,e,g,a.ua,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Ya=b;a.Pa=c;a.Gd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.aa=e[0];a.ja=e[1];a.ea=e[2];a.ua=e[3]||512;c=a.ua>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.aa);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ja),r=0;r<t.length;r++)for(var D=t[r]=Array(a.ea),A=0;A<D.length;A++){for(var B=ki(null,d,r,A+1,a.ua,0),J=B.data,vb=0;vb<c;vb++,f+=4)var Cd=J[vb]=b.getInt32(f,
!0),e=e+Cd&-1;B.Ma=c;D[A]=B}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Ya,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ad?"":e)+"&format=json"));return!!Ea(f,
function hi(a,b,c){x.call(this,"Disk",{id:a.vb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Za=b.name;this.Pa=this.Gd="";this.Ad=b.Ad;this.aa=this.la=this.fa=this.va=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.aa,b.la,b.fa,b.va);this.g=this.w=null;C(this)}p(hi,x);h=hi.prototype;h.Ca=function(a,b,c,d){this.D=d};
function ji(a,b,c,d,e,f){a.mode=b;a.aa=c;a.la=d;a.fa=e;a.va=f;a.b=[];if("preload"!=a.mode){b=Array(a.aa);for(c=0;c<b.length;c++){d=Array(a.la);for(e=0;e<d.length;e++){f=Array(a.fa);for(var g=1;g<=f.length;g++)f[g-1]=ki(null,c,e,g,a.va,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Za=b;a.Pa=c;a.Gd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.aa=e[0];a.la=e[1];a.fa=e[2];a.va=e[3]||512;c=a.va>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.aa);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.la),r=0;r<t.length;r++)for(var D=t[r]=Array(a.fa),A=0;A<D.length;A++){for(var B=ki(null,d,r,A+1,a.va,0),J=B.data,ub=0;ub<c;ub++,f+=4)var Cd=J[ub]=b.getInt32(f,
!0),e=e+Cd&-1;B.Ma=c;D[A]=B}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Za,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ad?"":e)+"&format=json"));return!!Ea(f,
null,!0,function(b,c,d){mi(a,b,c,d)})}
function mi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ba;a.j=!1;if(d)a.controller.T('Unable to load disk "'+a.Ya+'" (error '+d+": "+b+")",f);else{eb(a.controller.vb,b,c);try{if(0<ta(a.Gd,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Ya]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.aa=k.length;a.ja=k[0].length;a.ea=k[0][0].length;var l=k[0][0][0];a.ua=l&&l.length||512;for(d=c=0;d<a.aa;d++)for(f=0;f<a.ja;f++)for(g=0;g<a.ea;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var t=l.bytes;if(void 0!==t&&t.length){for(var r=m<<2,D=t.length;D<r;D++)t[D]=n;ni(l,t)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(r=
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Ya)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Ya,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.zk=b;a.Ak=c;a.Wa=a.Ma=0;a.fb=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.u,g=this.b[a];if(g){var k=g[b];if(!k&&f.zf&&b<f.ja)for(k=g[b]=Array(f.Af),g=0;g<k.length;g++)k[g]=ki(null,a,b,g+1,f.ve,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.zf&&9==f.je&&(d=k[g]=ki(null,a,b,f.je,f.ve,0))}}e&&e(d,!1);return d};function ni(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Wa?(a.Ma+=a.Wa-f,a.Wa=f):f>=a.Wa+a.Ma&&(a.Ma+=f-(a.Wa+a.Ma)+1):(a.Wa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function oi(a,b){var c=a.ja*a.ea,d=b/c|0;return d<a.aa?(b%=c,a.seek(d,b/a.ea|0,b%a.ea+1)):null}function pi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
h.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.i,this.aa,this.ja,this.ea,this.ua];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ma){for(var k=[],l=0,m=g.Wa,n=g.Wa+g.Ma;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Wa,k]}}return b};
function mi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ba;a.j=!1;if(d)a.controller.T('Unable to load disk "'+a.Za+'" (error '+d+": "+b+")",f);else{eb(a.controller.vb,b,c);try{if(0<ta(a.Gd,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Za]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.aa=k.length;a.la=k[0].length;a.fa=k[0][0].length;var l=k[0][0][0];a.va=l&&l.length||512;for(d=c=0;d<a.aa;d++)for(f=0;f<a.la;f++)for(g=0;g<a.fa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var t=l.bytes;if(void 0!==t&&t.length){for(var r=m<<2,D=t.length;D<r;D++)t[D]=n;ni(l,t)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(r=
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Za)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Za,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.zk=b;a.Ak=c;a.Xa=a.Ma=0;a.gb=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.u,g=this.b[a];if(g){var k=g[b];if(!k&&f.zf&&b<f.la)for(k=g[b]=Array(f.Af),g=0;g<k.length;g++)k[g]=ki(null,a,b,g+1,f.ve,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.zf&&9==f.je&&(d=k[g]=ki(null,a,b,f.je,f.ve,0))}}e&&e(d,!1);return d};function ni(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Xa?(a.Ma+=a.Xa-f,a.Xa=f):f>=a.Xa+a.Ma&&(a.Ma+=f-(a.Xa+a.Ma)+1):(a.Xa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function oi(a,b){var c=a.la*a.fa,d=b/c|0;return d<a.aa?(b%=c,a.seek(d,b/a.fa|0,b%a.fa+1)):null}function pi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
h.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.i,this.aa,this.la,this.fa,this.va];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ma){for(var k=[],l=0,m=g.Xa,n=g.Xa+g.Ma;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Xa,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?ji(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.i&&e[1]!=this.i&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.i+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.b.length||l>=this.b[k].length||m>=this.b[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Wa=e;for(k.Ma=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.T("Unable to restore disk '"+this.Ya+": "+c);return b};
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Xa=e;for(k.Ma=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.T("Unable to restore disk '"+this.Za+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=oi(this,a++);)qi(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function qi(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var ii=0;function ri(a,b,c,d,e,f){x.call(this,a,b,c);this.N=si(this,b.autoMount);this.M=0;this.R=d;this.S=e;this.U=f;this.P=d.$c;this.g=Array(this.P);this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.B=[];this.Ra=null;this.exports={bootDisk:this.le,loadDisk:this.Cd,selectDrive:this.ih,wait:this.mh}}p(ri,x);
function qi(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var ii=0;function ri(a,b,c,d,e,f){x.call(this,a,b,c);this.N=si(this,b.autoMount);this.M=0;this.R=d;this.S=e;this.U=f;this.P=d.$c;this.g=Array(this.P);this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.B=[];this.Sa=null;this.exports={bootDisk:this.le,loadDisk:this.Cd,selectDrive:this.ih,wait:this.mh}}p(ri,x);
function si(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=ri.prototype;
h.va=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Cd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.le()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
h.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Cd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.le()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
d.g[ma(a.value,10)||0])if(a=a.da){var b;b="";for(var c=0,k;k=oi(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(pi(a,k,l));b=btoa(b);a=a.Gd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
(a?" ("+a+")":"")+".");w(a)}else d.T("No disk loaded in drive.");else d.T("No disk drive selected.")};return!0;case "mountDisk":if(this.O)return this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Cd(ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.Aa=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Ra=pd(this.f,this.R.vd,this.R.rd,this.ha);dc(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
h.Da=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Rc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.Cb();Vi(this)};
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Sa=pd(this.f,this.R.vd,this.R.rd,this.ja);dc(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
h.Ea=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Rc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.Cb();Vi(this)};
h.save=function(){var a=new G(this);a.set(0,this.Sc());a.set(1,Wi(this));a.set(2,Xi(this));return a.data()};h.restore=function(a){var b=!0;this.Cb(a[0])||(b=!1);var c=a[1];c&&(this.B=c);Vi(this,a[2])||(b=!1);return b};h.Cb=function(){return!0};h.Sc=function(){return[]};
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Tb=d;f.name=e.Mb;f.Nc=f.Pb=!1;f.ic=null;f.Ad=!0;f.Rc=g[l++]+d;f.aa=g[l++];f.ja=g[l++];f.ea=g[l++];f.ua=g[l++];f.If=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Bf=g[l++];f.status=g[l++];f.tk=0;f.sk=0;f.je=1;f.Af=f.ea;f.ve=f.ua;f.Bk=0;f.Ik=null;f.da||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Pb=!0,d=new hi(e,g,"preload"),e.oe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.da&&g&&Zi(e,
l,g,f.da):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Pb,d.Ya,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.da&&$i(a,c.Pa,c.da)}return a.B}
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Tb=d;f.name=e.Mb;f.Nc=f.Pb=!1;f.ic=null;f.Ad=!0;f.Rc=g[l++]+d;f.aa=g[l++];f.la=g[l++];f.fa=g[l++];f.va=g[l++];f.If=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Bf=g[l++];f.status=g[l++];f.tk=0;f.sk=0;f.je=1;f.Af=f.fa;f.ve=f.va;f.Bk=0;f.Ik=null;f.da||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Pb=!0,d=new hi(e,g,"preload"),e.oe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.da&&g&&Zi(e,
l,g,f.da):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Pb,d.Za,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.da&&$i(a,c.Pa,c.da)}return a.B}
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&C(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
h.Cd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Ri)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
a+'"')}Yi(this,d,a,b,!1,c);return!0};h.le=function(){var a,b=this.H.listDrives,b=b&&ma(b.value,10);if(null==b||0>b||b>=this.g.length||!(a=this.g[b]))return this.T("Unable to boot the selected drive"),!1;if(!a.da)return this.T("Load a disk into the drive first"),!1;ze(this.f,0,!0,b);return(a=this.Ub(a,a.If,a.Jf,a.Kf,a.Bf,0,2))?(this.T("Unable to read the boot sector ("+a+")"),!1):!0};
function Yi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Pa.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.Nc?a.T(a.type+" busy"):(k.Nc=!0,e&&(k.zd=!0,a.M++,E(a)&&F(a,"auto-loading disk: "+c)),k.Pb=!!f,li(new hi(a,k,"preload"),c,d,f,a.oe)&&g++));return g}
h.oe=function(a,b,c,d,e){a.Nc=!1;b&&(b.aa>a.aa||b.ja>a.ja)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Tb].Rc||"---")),b=null);b?(a.da=b,a.Ya=c,a.Pa=d,this.we(a.Tb),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Tb].Rc||"---"),a.zd||e),this.J&&qe(this.J)):a.Pb=!1;a.zd&&(a.zd=!1,--this.M||C(this));ui(this,a.Tb);a.ic&&(a.ic(),a.ic=null)};
h.oe=function(a,b,c,d,e){a.Nc=!1;b&&(b.aa>a.aa||b.la>a.la)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Tb].Rc||"---")),b=null);b?(a.da=b,a.Za=c,a.Pa=d,this.we(a.Tb),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Tb].Rc||"---"),a.zd||e),this.J&&qe(this.J)):a.Pb=!1;a.zd&&(a.zd=!1,--this.M||C(this));ui(this,a.Tb);a.ic&&(a.ic(),a.ic=null)};
function vi(a,b,c,d){if((a=a.H.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Tb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Pb?Ri:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
h.ih=function(a){var b=this.H.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].textContent==a){var e=ma(b.options[d].value,10);if(0<=e)return ui(this,e,!0)}return!1};
function ti(a){var b=a.H.listDisks,c=a.H.descDisk,d=b.options&&b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){w(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}h.mh=function(a){for(var b=0;b<this.g.length;b++){var c=this.g[b];if(c&&c.Nc)return c.ic||(c.ic=a),!1}return!0};
function Ui(a,b,c){var d=a.g[b];if(d.da||!1===c)$i(a,d.Pa,d.da),d.Ya="",d.Pa="",d.da=null,d.Pb=!1,c||(a.T("Drive "+(a.g[b].Rc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.we=function(){};h.Ub=function(){return-1};h.Vc=function(){return-1};var Pi="",Ri="?",Si="??";
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Hc,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Cb=function(a){a||(a=[bj.Hc|bj.de|bj.$d,0,R.$a,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Sc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
h.Ub=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1);if(!n){m=S.ce;break}q=0;++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Gc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.ec;break}q>=a.ua&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.ec;break}if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.ce;break}q=0;++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b))}if(k){var r,D;if(0>(r=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Gc;break}if(t!=(r|D<<8)){m=S.ge;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Gc;break}q>=a.ua&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Ze=function(a,b,c,d,e,f){this.u=f&65535;this.b=this.b&~R.Jb|f>>16-R.ma.Jb&R.Jb;this.w=65536-e&65535;this.j=this.j&~cj.sd|d&cj.sd;this.i|=a;dj(this);return!0};function dj(a){a.b&=~R.hb;a.i&&(a.i|=S.Je,a.b|=R.hb,a.i&S.ed&&(a.b|=R.ed),E(a)&&F(a,a.type+": ERROR: "+u(a.i)))}h.Bg=function(){return this.G};h.Sh=function(){};h.Cg=function(){return this.i};h.Th=function(){};h.yg=function(){return this.b&R.fc};
h.Ph=function(a){this.b=this.b&~R.Ta|a&R.Ta;if(this.b&R.dc){a=!0;var b,c,d="",e=(this.j&cj.sb)>>cj.ma.sb,f=this.g[e],g,k,l,m,n,q;this.b&=~(R.$a|R.td);this.i&=~S.qf;switch(c=this.b&R.wa){case ej.Ee:E(this)&&F(this,this.type+": CRESET("+e+")",!0);this.i=this.j=0;this.b=R.$a;break;case ej.Ue:d="RCHK";case ej.tb:d||(d="READ"),b=this.Ub;case ej.wd:d||(d="WCHK");case ej.hc:d||(d="WRITE");b||(b=this.Vc);g=(this.j&cj.bc)>>cj.ma.bc;k=(this.j&cj.hd)>>cj.ma.hd;l=this.j&cj.sd;m=65536-this.w&65535;n=(this.b&R.Jb)<<
16-R.ma.Jb|this.u;q=this.b&R.Qe?0:2;E(this)&&F(this,this.type+": "+d+"("+g+":"+k+":"+l+") "+u(n)+"--"+u(n+(m<<1)),!0,!0);if(g>=f.aa){this.i|=S.Fc;break}if(l>=f.ea){this.i|=S.Gc;break}a=b.call(this,f,g,k,l,m,n,q,c>=ej.wd,this.Ze.bind(this));break;case ej.Lc:g=(this.j&cj.bc)>>cj.ma.bc;E(this)&&F(this,this.type+": SEEK("+g+")",!0);g<f.aa?this.b|=R.td:this.i|=S.Fc;break;case ej.Ke:E(this)&&F(this,this.type+": DRESET("+e+")");this.i=this.j=0;this.b=R.$a|R.td;break;default:E(this)&&F(this,this.type+": UNSUPPORTED("+
c+")")}this.G=f.status|(f.da?bj.Fa:0)|e<<bj.ma.kd|this.j&bj.pf;dj(this);a&&(this.b&=~R.dc,this.b|=R.$a,this.b&R.Ib&&nd(this.f,this.Ra))}};h.Dg=function(){return this.w};h.Uh=function(a){this.w=a};h.xg=function(){return this.u};h.Oh=function(a){this.u=a};h.zg=function(){return this.j};h.Qh=function(a){this.j=a};h.Ag=function(){return this.C};h.Rh=function(a){this.C=a};
var bj=Nb.Ic,S=Nb.bf,R=Nb.$e,cj=Nb.af,ej=Nb.wa,fj={},aj=(fj[65280]=[null,null,N.prototype.Bg,N.prototype.Sh,"RKDS"],fj[65282]=[null,null,N.prototype.Cg,N.prototype.Th,"RKER"],fj[65284]=[null,null,N.prototype.yg,N.prototype.Ph,"RKCS"],fj[65286]=[null,null,N.prototype.Dg,N.prototype.Uh,"RKWC"],fj[65288]=[null,null,N.prototype.xg,N.prototype.Oh,"RKBA"],fj[65290]=[null,null,N.prototype.zg,N.prototype.Qh,"RKDA"],fj[65294]=[null,null,N.prototype.Ag,N.prototype.Rh,"RKDB"],fj);
function Ed(a){ri.call(this,"RL11",a,131072,Ob,Ob.cf,gj);this.b=this.C=this.i=this.j=this.w=this.u=0}p(Ed,ri);h=Ed.prototype;h.Cb=function(a){a||(a=[U.Fa|U.$a,0,0,0,0,0]);a=ia(a);this.b=a.next().value;this.C=a.next().value;this.i=a.next().value;this.j=a.next().value;this.w=a.next().value;this.u=a.next().value;return!0};h.Sc=function(){return[this.b,this.C,this.i,this.j,this.w,this.u]};
h.Ub=function(a,b,c,d,e,f,g,k,l){g=0;a=a.da;k=null;var m;a||(g=hj.ab,e=0);for(;e;){if(!k){k=a.seek(b,c,d+1);if(!k){g=hj.ab;break}m=0}var n,q;if(0>(n=a.read(k,m++))||0>(q=a.read(k,m++))){g=hj.ab;break}Ac(this.F,Oe(this.f,f),n|q<<8);if(ld(this.F)){g=hj.ec;break}f+=2;e--;if(m>=a.ua&&(k=null,++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b>=a.aa)))){g=hj.ab;break}}return l?l(g,b,c,d,e,f):g};
h.Vc=function(a,b,c,d,e,f,g,k,l){g=0;a=a.da;k=null;var m;a||(g=hj.ab,e=0);for(;e;){var n=Cc(this.F,Oe(this.f,f));if(ld(this.F)){g=hj.ec;break}f+=2;e--;if(!k){k=a.seek(b,c,d+1,!0);if(!k){g=hj.ab;break}m=0}if(!a.write(k,m++,n&255)||!a.write(k,m++,n>>8)){g=hj.ab;break}if(m>=a.ua&&(k=null,++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b>=a.aa)))){g=hj.ab;break}}return l?l(g,b,c,d,e,f):g};
h.df=function(a,b,c,d,e,f){this.C=f&65535;this.b=this.b&~U.Za|f>>16-U.ma.Za&U.Za;this.u=f>>16&ij.bb;this.j=this.i=b<<jj.ma.gc|(c?jj.Kc:0)|d&jj.ae;this.w=65536-e&65535;a&&(this.b=this.b|a|U.hb);return!0};h.Gg=function(){return this.b&U.fc};
h.Xh=function(a){this.b=this.b&~U.Ta|a&U.Ta;this.u=this.u&60|(a&U.Za)>>U.ma.Za;if(!(this.b&U.$a)){a=!0;var b,c="",d=this.g[(this.b&U.sb)>>U.ma.sb],e=d.da,f,g,k;this.b&=~U.Fa;switch(this.b&U.wa){case kj.uf:this.w&lj.Sd&&(this.b&=U.Fa|U.wa|U.Za);this.w=d.status|this.j&jj.Kc|(e&&512==e.aa?lj.Ne:0);break;case kj.Lc:(this.i&jj.Me)==jj.rf&&(b=this.i&jj.gc,c=(this.i&jj.tf)<<2,this.j=this.i&jj.sf?this.j+b:this.j-b,this.i=this.j=this.j&jj.gc|c);break;case kj.Ye:this.w=this.j;break;case kj.Ve:c="READ",b=this.Ub;
case kj.wf:c||(c="WRITE"),b||(b=this.Vc),f=this.i>>jj.ma.gc,g=this.i&jj.Kc?1:0,k=this.i&jj.ae,!e||f>=e.aa||k>=e.ea?this.b=this.b|hj.ab|U.hb:(a=65536-this.w&65535,e=(this.u&ij.bb)<<16|this.C,E(this)&&F(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+u(e)+"--"+u(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,2,!1,this.df.bind(this)))}a&&(this.b=this.b|U.Fa|U.$a,this.b&U.Ib&&nd(this.f,this.Ra))}};h.Eg=function(){return this.C};h.Vh=function(a){this.C=a&mj.Ta};h.Hg=function(){return this.i};
h.Yh=function(a){this.i=a};h.Ig=function(){return this.w};h.Zh=function(a){this.w=a};h.Fg=function(){return this.u};h.Wh=function(a){this.u=a&ij.bb;this.b=this.b&~U.Za|(this.u&3)<<U.ma.Za};
var U=Ob.gf,mj=Ob.ef,jj=Ob.hf,lj=Ob.Jc,ij=Ob.ff,hj=Ob.Rd,kj=Ob.wa,nj={},gj=(nj[63744]=[null,null,Ed.prototype.Gg,Ed.prototype.Xh,"RLCS"],nj[63746]=[null,null,Ed.prototype.Eg,Ed.prototype.Vh,"RLBA"],nj[63748]=[null,null,Ed.prototype.Hg,Ed.prototype.Yh,"RLDA"],nj[63750]=[null,null,Ed.prototype.Ig,Ed.prototype.Zh,"RLMP"],nj[63752]=[null,null,Ed.prototype.Fg,Ed.prototype.Wh,"RLBE"],nj);
function Fd(a){ri.call(this,"RX11",a,262144,Pb,Pb.jf,oj);this.I=this.G=this.i=this.L=this.b=this.C=0;this.j=V.Kb;this.u=0;this.w=Array(128).fill(0)}p(Fd,ri);h=Fd.prototype;h.Cb=function(a){a?(a=ia(a),this.b=a.next().value,this.C=a.next().value,this.I=a.next().value,this.G=a.next().value,this.i=a.next().value,this.L=a.next().value,this.j=a.next().value,this.u=a.next().value,this.w=a.next().value):(this.C=this.b=0,this.G=this.I=1,this.L=this.i=0,this.j=V.tb,this.u=0,td(this.f,this.Ra),pj(this));return!0};
h.Sc=function(){return[this.b,this.C,this.I,this.G,this.i,this.L,this.j,this.u,this.w]};h.we=function(a){a||this.Cb()};function qj(a,b){b&&(a.L=b,a.C=a.i,a.b|=W.hb);a.j=V.Kb;a.b|=W.DONE;a.b&W.Ib&&nd(a.f,a.Ra)}
h.Ub=function(a,b,c,d,e,f,g,k,l){k=0;var m=a.da,n=null,q;E(this)&&F(this,this.type+".readData("+b+":"+c+":"+d+") "+u(f)+"--"+u(f+(e<<1)),!0,!0);m||(k=a.Tb?rj.gd:rj.fd,e=0);for(;e;){if(!n){if(b>=m.aa){k=rj.Se;break}n=m.seek(b,c,d+1);if(!n){k=rj.qd;break}q=0;++d>=m.ea&&(d=0,++c>=m.ja&&(c=0,++b))}var t;if(0>(a=m.read(n,q++))||0>(t=m.read(n,q++))){k=rj.pd;break}Ac(this.F,Oe(this.f,f),a|t<<8);q>=m.ua&&(n=null);f+=g;e--}return l?l(k,b,c,d,e,f):k};
function pj(a){var b=0,c=a.b&W.ud?1:0,d=a.g[c],d=d&&d.da,e=a.I&sj.bb,f=a.G&tj.bb;a.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Fa);if(d)if(a.i|=uj.Fa,E(a)&&F(a,a.type+".readSector("+e+":0:"+f+")",!0,!0),c=d.seek(e,0,f,!0)){e=0;for(f=a.w.length;e<f;){var g=d.read(c,e);if(0>g){b=rj.pd;break}a.w[e++]=g}c.Ef&&(a.i|=uj.cc)}else b=rj.qd;else b=c?rj.gd:rj.fd;qj(a,b)}
h.Kg=function(a,b){a=this.b;if(!b)switch(a&=W.fc,this.j){case V.bd:case V.EMPTY:this.u<this.w.length&&(this.b|=W.cb);break;case V.tb:case V.hc:case V.Mc:2>this.u&&(this.b|=W.cb)}return a};
h.ai=function(a){this.b=this.b&~W.Ta|a&W.Ta;if(this.b&W.INIT)this.Cb();else if(this.b&W.dc&&this.j==V.Kb)switch(this.j=this.b&W.wa,this.b&=~(W.dc|W.cb|W.DONE|W.hb),td(this.f,this.Ra),E(this)&&F(this,this.type+".processCommand("+vj[this.j>>1]+")",!0,!0),this.j){case V.bd:case V.EMPTY:case V.tb:case V.hc:case V.Mc:this.u=0;break;case V.Xe:a=this.g[this.b&W.ud?1:0];this.i&=~uj.Fa;a&&a.da&&(this.i|=uj.Fa);this.C=this.i;qj(this);break;case V.We:this.C=this.L,qj(this)}else this.b&W.Ib?this.b&W.DONE&&nd(this.f,
this.Ra):td(this.f,this.Ra)};h.Lg=function(a,b){if(!b)switch(this.j){case V.EMPTY:this.b&W.cb&&(this.b&=~W.cb,this.C=this.w[this.u]&255,E(this)&&F(this,this.type+".readByte("+this.u+"): "+v(this.C,2,!0),!0,!0),++this.u>=this.w.length&&qj(this))}return this.C};
h.bi=function(a){switch(this.j){case V.bd:this.b&W.cb&&(this.b&=~W.cb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.tb:case V.hc:case V.Mc:if(this.b&W.cb)switch(this.b&=~W.cb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.tb)pj(this);else{var b=this.j==V.Mc,c=0,d=this.b&W.ud?1:0,e=this.g[d],e=e&&e.da,f=this.I&sj.bb,g=this.G&tj.bb;this.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Fa);if(e)if(this.i|=uj.Fa,E(this)&&
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ef=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.pd;break}b++}else c=rj.qd;else c=d?rj.gd:rj.fd;qj(this,c)}}}this.C=a};var W=Pb.kf,sj=Pb.nf,tj=Pb.mf,uj=Pb.lf,V=Pb.wa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Kg,Fd.prototype.ai,"RXCS"],wj[65146]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXDB"],wj);
function xj(a){x.call(this,"Debugger",a);this.Ba=+a.base||16;this.ka=["{","}"];this.ia=["[","]"];this.w=0;this.O=!1;this.u=-1;this.j=[];this.S={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}function zj(a){var b,c=a;b=32;if(32>=b)c=a|0;else if(b=Math.pow(2,b-1),a<-b||a>=b)c=a%b;a!=c&&(a=c);return a}
function Aj(a,b,c){for(c=void 0===c?-1:c;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 "!":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(zj(d))}return!0}
function Bj(a,b,c){var d;b&&(b=Cj(a,b));if(b){for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],q=n.length,n=za(n);if(!n){f=!0;break}n=Dj(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}k.push(zj(n));if(e==m.length)break;var n=m[e++],t=n.length;l.length&&Ej[n]<Ej[l[l.length-1]]&&Aj(k,l,1);l.push(n);b=b.substr(q+t)}Aj(k,l)&&1==k.length||(f=!0);f?c&&a.v("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),
c&&Fj(a,null,d))}return d}
function Cj(a,b){var c,d=a.ka[0],e=a.ka[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=Bj(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?K(a,g):"undefined")}if(a.ia.length)for(d=a.ia[0],e=a.ia[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=0}if(null==
d)break;a=a.replace(b[0],d.toString())}return a}function Dj(a,b,c,d){var e;null!=b?(e=a.re(b),0<=e?e=a.Bd(e):(e=a.S[b],null==e&&(e=ma(b,a.Ba))),null!=e||d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return e}
function Fj(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var k=0;k<f;k++)g&&(g=","+g),g=pa(d&255,8)+g,d>>=8;d=v(c,0,!0)+" "+c+". "+u(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.v((null!=b?b+": ":"")+d);return e}function Gj(a,b){if(b)return Fj(a,b,a.S[b]);var c=0;for(b in a.S)Fj(a,b,a.S[b]),c++;return 0<c}
function K(a,b,c){c=void 0===c?0:c;switch(a.Ba){case 8:a=u(b,0<c?(c+2)/3|0:0);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ej={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Hj(a){xj.call(this,a);this.Ha=!1;this.ka=["(",")"];this.ia=[];this.G=X();this.Ga=X();this.N=X();this.B=[];this.b=this.L=this.C=[];Ij(this);this.P=this.Y=0;this.i=[];this.sa=void 0;Jj(this);this.D=this;this.la={};this.ha=this.ke=0;this.R=null;this.M=[];Kj(this,a.messages);this.xa=a.commands;this.Ka=Lj;this.W=[];this.I=0;this.La=this.ta=null;this.w=this.Ja=this.Ia=this.X=this.pa=0;this.g=this.U=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
(global[y]=function(a){return le(b,a)})}p(Hj,xj);function Mj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Va:!1,Ba:c}}h=Hj.prototype;h.Hd=function(a,b){a.K=b;a.Va=!1;a.Ba=void 0;return a};function Nj(a){return[a.K,a.Na,a.Ba,a.Va,a.Qc]}function Oj(a,b){var c=X(b[0],b[1],b[2]);c.Va=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
h.Aa=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Kj(this,a);1140>this.f.ka&&(this.W=this.W.concat(Pj));1145>this.f.ka&&(this.W=this.W.concat(Qj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Mj(Rj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
function Ui(a,b,c){var d=a.g[b];if(d.da||!1===c)$i(a,d.Pa,d.da),d.Za="",d.Pa="",d.da=null,d.Pb=!1,c||(a.T("Drive "+(a.g[b].Rc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.we=function(){};h.Ub=function(){return-1};h.Vc=function(){return-1};var Pi="",Ri="?",Si="??";
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Hc,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Cb=function(a){a||(a=[bj.Hc|bj.de|bj.$d,0,R.ab,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Sc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
h.Ub=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1);if(!n){m=S.ce;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Gc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.ec;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.ec;break}if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.ce;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}if(k){var r,D;if(0>(r=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Gc;break}if(t!=(r|D<<8)){m=S.ge;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Gc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Ze=function(a,b,c,d,e,f){this.u=f&65535;this.b=this.b&~R.Jb|f>>16-R.na.Jb&R.Jb;this.w=65536-e&65535;this.j=this.j&~cj.sd|d&cj.sd;this.i|=a;dj(this);return!0};function dj(a){a.b&=~R.ib;a.i&&(a.i|=S.Je,a.b|=R.ib,a.i&S.ed&&(a.b|=R.ed),E(a)&&F(a,a.type+": ERROR: "+u(a.i)))}h.Bg=function(){return this.G};h.Sh=function(){};h.Cg=function(){return this.i};h.Th=function(){};h.yg=function(){return this.b&R.fc};
h.Ph=function(a){this.b=this.b&~R.Ua|a&R.Ua;if(this.b&R.dc){a=!0;var b,c,d="",e=(this.j&cj.sb)>>cj.na.sb,f=this.g[e],g,k,l,m,n,q;this.b&=~(R.ab|R.td);this.i&=~S.qf;switch(c=this.b&R.xa){case ej.Ee:E(this)&&F(this,this.type+": CRESET("+e+")",!0);this.i=this.j=0;this.b=R.ab;break;case ej.Ue:d="RCHK";case ej.tb:d||(d="READ"),b=this.Ub;case ej.wd:d||(d="WCHK");case ej.hc:d||(d="WRITE");b||(b=this.Vc);g=(this.j&cj.bc)>>cj.na.bc;k=(this.j&cj.hd)>>cj.na.hd;l=this.j&cj.sd;m=65536-this.w&65535;n=(this.b&R.Jb)<<
16-R.na.Jb|this.u;q=this.b&R.Qe?0:2;E(this)&&F(this,this.type+": "+d+"("+g+":"+k+":"+l+") "+u(n)+"--"+u(n+(m<<1)),!0,!0);if(g>=f.aa){this.i|=S.Fc;break}if(l>=f.fa){this.i|=S.Gc;break}a=b.call(this,f,g,k,l,m,n,q,c>=ej.wd,this.Ze.bind(this));break;case ej.Lc:g=(this.j&cj.bc)>>cj.na.bc;E(this)&&F(this,this.type+": SEEK("+g+")",!0);g<f.aa?this.b|=R.td:this.i|=S.Fc;break;case ej.Ke:E(this)&&F(this,this.type+": DRESET("+e+")");this.i=this.j=0;this.b=R.ab|R.td;break;default:E(this)&&F(this,this.type+": UNSUPPORTED("+
c+")")}this.G=f.status|(f.da?bj.Ga:0)|e<<bj.na.kd|this.j&bj.pf;dj(this);a&&(this.b&=~R.dc,this.b|=R.ab,this.b&R.Ib&&nd(this.f,this.Sa))}};h.Dg=function(){return this.w};h.Uh=function(a){this.w=a};h.xg=function(){return this.u};h.Oh=function(a){this.u=a};h.zg=function(){return this.j};h.Qh=function(a){this.j=a};h.Ag=function(){return this.C};h.Rh=function(a){this.C=a};
var bj=Nb.Ic,S=Nb.bf,R=Nb.$e,cj=Nb.af,ej=Nb.xa,fj={},aj=(fj[65280]=[null,null,N.prototype.Bg,N.prototype.Sh,"RKDS"],fj[65282]=[null,null,N.prototype.Cg,N.prototype.Th,"RKER"],fj[65284]=[null,null,N.prototype.yg,N.prototype.Ph,"RKCS"],fj[65286]=[null,null,N.prototype.Dg,N.prototype.Uh,"RKWC"],fj[65288]=[null,null,N.prototype.xg,N.prototype.Oh,"RKBA"],fj[65290]=[null,null,N.prototype.zg,N.prototype.Qh,"RKDA"],fj[65294]=[null,null,N.prototype.Ag,N.prototype.Rh,"RKDB"],fj);
function Ed(a){ri.call(this,"RL11",a,131072,Ob,Ob.cf,gj);this.b=this.C=this.i=this.j=this.w=this.u=0}p(Ed,ri);h=Ed.prototype;h.Cb=function(a){a||(a=[U.Ga|U.ab,0,0,0,0,0]);a=ia(a);this.b=a.next().value;this.C=a.next().value;this.i=a.next().value;this.j=a.next().value;this.w=a.next().value;this.u=a.next().value;return!0};h.Sc=function(){return[this.b,this.C,this.i,this.j,this.w,this.u]};
h.Ub=function(a,b,c,d,e,f,g,k,l){g=0;a=a.da;k=null;var m;a||(g=hj.bb,e=0);for(;e;){if(!k){k=a.seek(b,c,d+1);if(!k){g=hj.bb;break}m=0}var n,q;if(0>(n=a.read(k,m++))||0>(q=a.read(k,m++))){g=hj.bb;break}Ac(this.F,Oe(this.f,f),n|q<<8);if(ld(this.F)){g=hj.ec;break}f+=2;e--;if(m>=a.va&&(k=null,++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b>=a.aa)))){g=hj.bb;break}}return l?l(g,b,c,d,e,f):g};
h.Vc=function(a,b,c,d,e,f,g,k,l){g=0;a=a.da;k=null;var m;a||(g=hj.bb,e=0);for(;e;){var n=Cc(this.F,Oe(this.f,f));if(ld(this.F)){g=hj.ec;break}f+=2;e--;if(!k){k=a.seek(b,c,d+1,!0);if(!k){g=hj.bb;break}m=0}if(!a.write(k,m++,n&255)||!a.write(k,m++,n>>8)){g=hj.bb;break}if(m>=a.va&&(k=null,++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b>=a.aa)))){g=hj.bb;break}}return l?l(g,b,c,d,e,f):g};
h.df=function(a,b,c,d,e,f){this.C=f&65535;this.b=this.b&~U.$a|f>>16-U.na.$a&U.$a;this.u=f>>16&ij.cb;this.j=this.i=b<<jj.na.gc|(c?jj.Kc:0)|d&jj.ae;this.w=65536-e&65535;a&&(this.b=this.b|a|U.ib);return!0};h.Gg=function(){return this.b&U.fc};
h.Xh=function(a){this.b=this.b&~U.Ua|a&U.Ua;this.u=this.u&60|(a&U.$a)>>U.na.$a;if(!(this.b&U.ab)){a=!0;var b,c="",d=this.g[(this.b&U.sb)>>U.na.sb],e=d.da,f,g,k;this.b&=~U.Ga;switch(this.b&U.xa){case kj.uf:this.w&lj.Sd&&(this.b&=U.Ga|U.xa|U.$a);this.w=d.status|this.j&jj.Kc|(e&&512==e.aa?lj.Ne:0);break;case kj.Lc:(this.i&jj.Me)==jj.rf&&(b=this.i&jj.gc,c=(this.i&jj.tf)<<2,this.j=this.i&jj.sf?this.j+b:this.j-b,this.i=this.j=this.j&jj.gc|c);break;case kj.Ye:this.w=this.j;break;case kj.Ve:c="READ",b=this.Ub;
case kj.wf:c||(c="WRITE"),b||(b=this.Vc),f=this.i>>jj.na.gc,g=this.i&jj.Kc?1:0,k=this.i&jj.ae,!e||f>=e.aa||k>=e.fa?this.b=this.b|hj.bb|U.ib:(a=65536-this.w&65535,e=(this.u&ij.cb)<<16|this.C,E(this)&&F(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+u(e)+"--"+u(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,2,!1,this.df.bind(this)))}a&&(this.b=this.b|U.Ga|U.ab,this.b&U.Ib&&nd(this.f,this.Sa))}};h.Eg=function(){return this.C};h.Vh=function(a){this.C=a&mj.Ua};h.Hg=function(){return this.i};
h.Yh=function(a){this.i=a};h.Ig=function(){return this.w};h.Zh=function(a){this.w=a};h.Fg=function(){return this.u};h.Wh=function(a){this.u=a&ij.cb;this.b=this.b&~U.$a|(this.u&3)<<U.na.$a};
var U=Ob.gf,mj=Ob.ef,jj=Ob.hf,lj=Ob.Jc,ij=Ob.ff,hj=Ob.Rd,kj=Ob.xa,nj={},gj=(nj[63744]=[null,null,Ed.prototype.Gg,Ed.prototype.Xh,"RLCS"],nj[63746]=[null,null,Ed.prototype.Eg,Ed.prototype.Vh,"RLBA"],nj[63748]=[null,null,Ed.prototype.Hg,Ed.prototype.Yh,"RLDA"],nj[63750]=[null,null,Ed.prototype.Ig,Ed.prototype.Zh,"RLMP"],nj[63752]=[null,null,Ed.prototype.Fg,Ed.prototype.Wh,"RLBE"],nj);
function Fd(a){ri.call(this,"RX11",a,262144,Pb,Pb.jf,oj);this.I=this.G=this.i=this.L=this.b=this.C=0;this.j=V.Kb;this.u=0;this.w=Array(128).fill(0)}p(Fd,ri);h=Fd.prototype;h.Cb=function(a){a?(a=ia(a),this.b=a.next().value,this.C=a.next().value,this.I=a.next().value,this.G=a.next().value,this.i=a.next().value,this.L=a.next().value,this.j=a.next().value,this.u=a.next().value,this.w=a.next().value):(this.C=this.b=0,this.G=this.I=1,this.L=this.i=0,this.j=V.tb,this.u=0,td(this.f,this.Sa),pj(this));return!0};
h.Sc=function(){return[this.b,this.C,this.I,this.G,this.i,this.L,this.j,this.u,this.w]};h.we=function(a){a||this.Cb()};function qj(a,b){b&&(a.L=b,a.C=a.i,a.b|=W.ib);a.j=V.Kb;a.b|=W.DONE;a.b&W.Ib&&nd(a.f,a.Sa)}
h.Ub=function(a,b,c,d,e,f,g,k,l){k=0;var m=a.da,n=null,q;E(this)&&F(this,this.type+".readData("+b+":"+c+":"+d+") "+u(f)+"--"+u(f+(e<<1)),!0,!0);m||(k=a.Tb?rj.gd:rj.fd,e=0);for(;e;){if(!n){if(b>=m.aa){k=rj.Se;break}n=m.seek(b,c,d+1);if(!n){k=rj.qd;break}q=0;++d>=m.fa&&(d=0,++c>=m.la&&(c=0,++b))}var t;if(0>(a=m.read(n,q++))||0>(t=m.read(n,q++))){k=rj.pd;break}Ac(this.F,Oe(this.f,f),a|t<<8);q>=m.va&&(n=null);f+=g;e--}return l?l(k,b,c,d,e,f):k};
function pj(a){var b=0,c=a.b&W.ud?1:0,d=a.g[c],d=d&&d.da,e=a.I&sj.cb,f=a.G&tj.cb;a.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(d)if(a.i|=uj.Ga,E(a)&&F(a,a.type+".readSector("+e+":0:"+f+")",!0,!0),c=d.seek(e,0,f,!0)){e=0;for(f=a.w.length;e<f;){var g=d.read(c,e);if(0>g){b=rj.pd;break}a.w[e++]=g}c.Ef&&(a.i|=uj.cc)}else b=rj.qd;else b=c?rj.gd:rj.fd;qj(a,b)}
h.Kg=function(a,b){a=this.b;if(!b)switch(a&=W.fc,this.j){case V.bd:case V.EMPTY:this.u<this.w.length&&(this.b|=W.eb);break;case V.tb:case V.hc:case V.Mc:2>this.u&&(this.b|=W.eb)}return a};
h.ai=function(a){this.b=this.b&~W.Ua|a&W.Ua;if(this.b&W.INIT)this.Cb();else if(this.b&W.dc&&this.j==V.Kb)switch(this.j=this.b&W.xa,this.b&=~(W.dc|W.eb|W.DONE|W.ib),td(this.f,this.Sa),E(this)&&F(this,this.type+".processCommand("+vj[this.j>>1]+")",!0,!0),this.j){case V.bd:case V.EMPTY:case V.tb:case V.hc:case V.Mc:this.u=0;break;case V.Xe:a=this.g[this.b&W.ud?1:0];this.i&=~uj.Ga;a&&a.da&&(this.i|=uj.Ga);this.C=this.i;qj(this);break;case V.We:this.C=this.L,qj(this)}else this.b&W.Ib?this.b&W.DONE&&nd(this.f,
this.Sa):td(this.f,this.Sa)};h.Lg=function(a,b){if(!b)switch(this.j){case V.EMPTY:this.b&W.eb&&(this.b&=~W.eb,this.C=this.w[this.u]&255,E(this)&&F(this,this.type+".readByte("+this.u+"): "+v(this.C,2,!0),!0,!0),++this.u>=this.w.length&&qj(this))}return this.C};
h.bi=function(a){switch(this.j){case V.bd:this.b&W.eb&&(this.b&=~W.eb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.tb:case V.hc:case V.Mc:if(this.b&W.eb)switch(this.b&=~W.eb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.tb)pj(this);else{var b=this.j==V.Mc,c=0,d=this.b&W.ud?1:0,e=this.g[d],e=e&&e.da,f=this.I&sj.cb,g=this.G&tj.cb;this.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(e)if(this.i|=uj.Ga,E(this)&&
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ef=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.pd;break}b++}else c=rj.qd;else c=d?rj.gd:rj.fd;qj(this,c)}}}this.C=a};var W=Pb.kf,sj=Pb.nf,tj=Pb.mf,uj=Pb.lf,V=Pb.xa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Kg,Fd.prototype.ai,"RXCS"],wj[65146]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXDB"],wj);
function xj(a){x.call(this,"Debugger",a);this.ea=+a.base||16;this.za=null;this.U=["{","}"];this.ka=["[","]"];this.w=0;this.O=!1;this.u=-1;this.j=[];this.S={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}function zj(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function Aj(a,b,c){for(c=void 0===c?-1:c;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=Math.trunc(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 "!":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;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(zj(d))}return!0}
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=!1,q=[],t=[],r=a.ea;for(a.ea=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.ea,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if("-"!=l){m=!0;break}n=!0;continue}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(!l)break;t.length&&Dj[l]<Dj[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.ea="><"==l?10:e;
n=!1}Aj(q,t)&&1==q.length||(m=!0);m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.ea=r;return g}function Ej(a,b,c){var d;a.za=null;b&&("{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Bj(a,b,0,b.length,a.ea,c),void 0!==d&&!1===c&&Fj(a,null,d));return d}
function Cj(a,b,c,d,e){var f;null!=b?(f=a.re(b),0<=f?f=a.Bd(f):(f=a.S[b],null==f&&(f=ma(e?"-"+b:b,a.ea),e=!1)),null!=f?e&&(f=-f):d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return f}function Fj(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var k=0;k<f;k++)g&&(g=","+g),g=pa(d&255,8)+g,d>>=8;d=v(c,0,!0)+" "+c+". "+u(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.v((null!=b?b+": ":"")+d);return e}
function Gj(a,b){if(b)return Fj(a,b,a.S[b]);var c=0;for(b in a.S)Fj(a,b,a.S[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ea){case 8:a=u(b,0<c?(c+2)/3|0:0);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Dj={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
function Hj(a){xj.call(this,a);this.Ia=!1;this.U=["(",")"];this.ka=[];this.G=X();this.Ha=X();this.N=X();this.B=[];this.b=this.L=this.C=[];Ij(this);this.P=this.ha=0;this.i=[];this.ta=void 0;Jj(this);this.D=this;this.ma={};this.ja=this.ke=0;this.R=null;this.M=[];Kj(this,a.messages);this.ya=a.commands;this.La=Lj;this.X=[];this.I=0;this.Qa=this.ua=null;this.w=this.Ka=this.Ja=this.Y=this.qa=0;this.g=this.W=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
(global[y]=function(a){return le(b,a)})}p(Hj,xj);function Mj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,ea:c}}h=Hj.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.ea=void 0;return a};function Nj(a){return[a.K,a.Na,a.ea,a.Wa,a.Qc]}function Oj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Kj(this,a);1140>this.f.ka&&(this.X=this.X.concat(Pj));1145>this.f.ka&&(this.X=this.X.concat(Qj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Mj(Rj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Xb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});C(this)};
h.va=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",le(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.u<d.j.length-1&&(b=d.j[++d.u])):40==a.keyCode&&(0<d.u?b=d.j[--d.u]:(b="",d.u=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.H[b]=c,Qa(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.U){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.U.focus();window&&window.scrollTo(b,c)}}h.Pd=function(a,b){var c=255,d=Mj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.na++,d=fd(c,d).J(d&c.i,d),c.na--):(c=this.f,c.pa++,d=c.F.Ld(Bc(c,d,3)),c.pa--),c=d,b&&Sj(a,b));return c};
h.Sa=function(a,b){var c=65535,d=Mj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Sj(a,b));return c};h.Qd=function(a,b,c){var d=Mj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.pa++;e.F.Md(Bc(e,d,5),b);e.pa--}c&&Sj(a,c);H(this.J,-1)}};h.Le=function(a,b,c){var d=Mj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.pa++;e.F.ac(Bc(e,d,4),b);e.pa--}c&&Sj(a,c);H(this.J,-1)}};
function Rj(a,b,c){var d;c=(c?a.G:a.Ga).K;var e,f;if(void 0!==b){b=Cj(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,k;a:{c=a.F;var l;l=d.toUpperCase();for(k in c.Qa){var m=+k;if(c.Qa[m][4]==l){k=c.B+m;break a}}k=null}if(null==k&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(l=a.B[c].ga[d],null!=l){k=l.o;break}null!=k&&(g=X(k));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Bj(a,b,void 0)}null!=c&&(d=X(c,e,f));return d}
h.wa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.W=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",le(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.u<d.j.length-1&&(b=d.j[++d.u])):40==a.keyCode&&(0<d.u?b=d.j[--d.u]:(b="",d.u=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.H[b]=c,Qa(c,function(){if(d.W){var a=d.W.value;d.W.value=
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.W){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.W.focus();window&&window.scrollTo(b,c)}}h.Pd=function(a,b){var c=255,d=Mj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Ld(Bc(c,d,3)),c.qa--),c=d,b&&Sj(a,b));return c};
h.Ta=function(a,b){var c=65535,d=Mj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Sj(a,b));return c};h.Qd=function(a,b,c){var d=Mj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Md(Bc(e,d,5),b);e.qa--}c&&Sj(a,c);H(this.J,-1)}};h.Le=function(a,b,c){var d=Mj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.ac(Bc(e,d,4),b);e.qa--}c&&Sj(a,c);H(this.J,-1)}};
function Rj(a,b,c){var d;c=(c?a.G:a.Ha).K;var e,f;if(void 0!==b){a:{var g;d=a.U[0];c=a.U[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Ej(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Ra)if(k=+n,c.Ra[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Ej(a,b)}null!=c&&(d=X(c,e,f));return d}
function Tj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.he=yj(a,b.Qc=c[2]))}function Sj(a,b){null!=a.K&&(a.K+=b||1)}function Uj(a,b){return(b.Na?"%":"")+K(a,b.K)}
function Kj(a,b){a.D=a;a.ha=a.ke=536870912;a.R=null;a.M=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ha|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.la[d]=c;break}}
function Kj(a,b){a.D=a;a.ja=a.ke=536870912;a.R=null;a.M=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
h.re=function(a){a=a.toUpperCase();var b=Vj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Wj(a,b){var c;if(b<Xj||a.g)c=Yj[b];return c||""}
h.Bd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ta[a-8];else if(20>a)b=this.f.X[a-16];else{var c=this.f,d=this.g;switch(a){case Zj:b=Ad(this.f);break;case ak:b=c.ob;break;case bk:b=c.P;break;case ck:b=c.Ga&65280;break;case dk:b=ud(c);break;case ek:b=wd(c);break;case fk:b=xd(c);break;case gk:b=c.W;break;case Xj:d&&(b=d.fa);break;case hk:d&&(b=d.Eb);break;case ik:d&&(b=d.Xa)}}return b};
h.message=function(a,b){b&&(a+=" @"+Uj(this,X(this.f.O&65535)));if(!this.R||a!=this.R)if(this.R=a,this.ha&1073741824)this.M.push(a);else{var c;if(this.ha&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.ca(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Ab=0,a.J&&H(a.J,void 0))}};
h.Bd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.X[a-16];else{var c=this.f,d=this.g;switch(a){case Zj:b=Ad(this.f);break;case ak:b=c.ob;break;case bk:b=c.P;break;case ck:b=c.za&65280;break;case dk:b=ud(c);break;case ek:b=wd(c);break;case fk:b=xd(c);break;case gk:b=c.W;break;case Xj:d&&(b=d.ga);break;case hk:d&&(b=d.Eb);break;case ik:d&&(b=d.Ya)}}return b};
h.message=function(a,b){b&&(a+=" @"+Uj(this,X(this.f.O&65535)));if(!this.R||a!=this.R)if(this.R=a,this.ja&1073741824)this.M.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.ca(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Ab=0,a.J&&H(a.J,void 0))}};
function Jj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.P=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(jk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.P=0;a.v("instruction history buffer allocated")}}function kk(a,b,c){if(!lk(a,c))return!1;uc(a.f,b);return!0}
function vc(a,b,c,d){if(!lk(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Cc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.X++)}catch(g){"number"!=typeof g&&(a.w=0,wb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.ca=function(a){this.f&&this.f.ca(a)};
function je(a,b,c){if(a.Ha){void 0===b&&(b=!0);c&&a.v(mk+c);c=a.f;if(c=c.i&128?c.Ec|c.Dc<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?nk(a):ok(a)}}function lk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ba?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Da=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
h.Ca=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Jj(this);this.X=0;this.R=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;pk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Nj(this.G));a.set(1,Nj(this.N));a.set(2,[this.j,this.O,this.ha]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Oj(this,a[b++]),this.N=Oj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.O=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ia=a;this.Ja=b};
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ja;if(!this.I){b="stopped";if(this.w){a-=this.Ia;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.X+" instructions, ",this.X=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);pk(this,this.f.g[7]);this.R=null}};function bf(a){return 1<a.b.length||!!a.Y}
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.Y&&!--a.Y||qk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.X++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Hd(a.i[a.P],b),++a.P==a.i.length&&(a.P=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.ca(),-1;return!1}function ae(a,b,c){qk(a,b,c||1,a.L)&&a.ca(!1)}function be(a,b,c){qk(a,b,c||1,a.C)&&a.ca(!1)}
function Ij(a){var b,c,d;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=Mj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.L=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Mj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.pa=0;a.Y=0}
h.Bb=function(a,b,c){var d=!0;c||rk(this,a,b,!1,!0);if(a!=this.b){var e=Mj(b);if(-1===e)this.v("invalid address: "+Uj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Bb(e&g.i,f)}else e=this.f,(f?e.tc++:e.sc++)||ye(e)}}d&&(a.push(b),c?b.Va=!0:(sk(this,a,a.length-1,"set"),Jj(this)));return d};
function rk(a,b,c,d,e){var f=!1;c=Mj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Mj(k)&&(!d||k.Va)){f=!0;k.Va||e||sk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Va||Jj(a);break}}return f}function tk(a,b){for(var c=1;c<b.length;c++)sk(a,b,c);return b.length-1}function sk(a,b,c,d){c=b[c];a.v(b[0]+" "+Uj(a,c)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
function pk(a,b){if(void 0!==b)qk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Va){if(!rk(a,a.b,c,!0))break;b=0}}}
function qk(a,b,c,d,e){var f=!1;if(!a.pa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Va)for(var l=Mj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Va&&(rk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!uk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||sk(a,d,g,"hit");break}}}a.pa--;return f}
function vk(a,b,c,d){var e=X(b.K),f=a.Sa(b,2),g,k;for(k in a.Ka)if(g=a.Ka[k][f&k])break;g||(g=wk);var l=g[0];0<=a.W.indexOf(l)&&(g=wk,l=g[0]);var m=k="",n=xk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&yk;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==zk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Ak)A=K(r,f&7,3);else if(B==Bk)A=K(r,f&63,6);else if(B==Ck)A=K(r,f&255,8);else if(B=f&D,D&Dk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
Ek;switch(B&Fk){case 0:A=Wj(r,J);break;case 8:A="@"+Wj(r,J);D=Gk(r,r.f.g[J]);break;case 16:7>J?A="("+Wj(r,J)+")+":(B=r.Sa(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Wj(r,J)+")+":(B=r.Sa(t,2),A="@#"+K(r,B,-1),D=Gk(r,B));break;case 32:A="-("+Wj(r,J)+")";break;case 40:A="@-("+Wj(r,J)+")";break;case 48:B=r.Sa(t,2);A=K(r,B,-1)+"("+Wj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Gk(r,B));break;case 56:B=r.Sa(t,2),A="@"+K(r,B)+"("+Wj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Gk(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Uj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Sa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Gk(a,b){b=Pe(a.f,b)[0];b>=a.f.ub&&b<a.F.B&&(b=b-a.f.ub+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Qa[b&kd])&&(a=b[4]);return a}function Hk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Ik(a,b){var c=Wj(a,b);c&&(c+="="+K(a,a.Bd(b))+" ");return c}
function vc(a,b,c,d){if(!lk(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Cc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Y++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.ca=function(a){this.f&&this.f.ca(a)};
function je(a,b,c){if(a.Ia){void 0===b&&(b=!0);c&&a.v(mk+c);c=a.f;if(c=c.i&128?c.Ec|c.Dc<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?nk(a):ok(a)}}function lk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ba?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Ea=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
h.Da=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Jj(this);this.Y=0;this.R=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;pk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Nj(this.G));a.set(1,Nj(this.N));a.set(2,[this.j,this.O,this.ja]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Oj(this,a[b++]),this.N=Oj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.O=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ja=a;this.Ka=b};
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ka;if(!this.I){b="stopped";if(this.w){a-=this.Ja;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Y+" instructions, ",this.Y=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);pk(this,this.f.g[7]);this.R=null}};function bf(a){return 1<a.b.length||!!a.ha}
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||qk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Y++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Hd(a.i[a.P],b),++a.P==a.i.length&&(a.P=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.ca(),-1;return!1}function ae(a,b,c){qk(a,b,c||1,a.L)&&a.ca(!1)}function be(a,b,c){qk(a,b,c||1,a.C)&&a.ca(!1)}
function Ij(a){var b,c,d;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=Mj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.L=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Mj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
h.Bb=function(a,b,c){var d=!0;c||rk(this,a,b,!1,!0);if(a!=this.b){var e=Mj(b);if(-1===e)this.v("invalid address: "+Uj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Bb(e&g.i,f)}else e=this.f,(f?e.tc++:e.sc++)||ye(e)}}d&&(a.push(b),c?b.Wa=!0:(sk(this,a,a.length-1,"set"),Jj(this)));return d};
function rk(a,b,c,d,e){var f=!1;c=Mj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Mj(k)&&(!d||k.Wa)){f=!0;k.Wa||e||sk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Wa||Jj(a);break}}return f}function tk(a,b){for(var c=1;c<b.length;c++)sk(a,b,c);return b.length-1}function sk(a,b,c,d){c=b[c];a.v(b[0]+" "+Uj(a,c)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
function pk(a,b){if(void 0!==b)qk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Wa){if(!rk(a,a.b,c,!0))break;b=0}}}
function qk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Wa)for(var l=Mj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Wa&&(rk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!uk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||sk(a,d,g,"hit");break}}}a.qa--;return f}
function vk(a,b,c,d){var e=X(b.K),f=a.Ta(b,2),g,k;for(k in a.La)if(g=a.La[k][f&k])break;g||(g=wk);var l=g[0];0<=a.X.indexOf(l)&&(g=wk,l=g[0]);var m=k="",n=xk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&yk;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==zk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Ak)A=K(r,f&7,3);else if(B==Bk)A=K(r,f&63,6);else if(B==Ck)A=K(r,f&255,8);else if(B=f&D,D&Dk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
Ek;switch(B&Fk){case 0:A=Wj(r,J);break;case 8:A="@"+Wj(r,J);D=Gk(r,r.f.g[J]);break;case 16:7>J?A="("+Wj(r,J)+")+":(B=r.Ta(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Wj(r,J)+")+":(B=r.Ta(t,2),A="@#"+K(r,B,-1),D=Gk(r,B));break;case 32:A="-("+Wj(r,J)+")";break;case 40:A="@-("+Wj(r,J)+")";break;case 48:B=r.Ta(t,2);A=K(r,B,-1)+"("+Wj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Gk(r,B));break;case 56:B=r.Ta(t,2),A="@"+K(r,B)+"("+Wj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Gk(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Uj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ta(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Gk(a,b){b=Pe(a.f,b)[0];b>=a.f.ub&&b<a.F.B&&(b=b-a.f.ub+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Ra[b&kd])&&(a=b[4]);return a}function Hk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Ik(a,b){var c=Wj(a,b);c&&(c+="="+K(a,a.Bd(b))+" ");return c}
function Jk(a,b){var c,d="";for(c=0;6>c;c++)d+=Ik(a,c);d=d+"\n"+(Ik(a,6)+Ik(a,7));d+=Ik(a,Zj)+Ik(a,ak)+Ik(a,ck);d+=Hk(a,"T")+Hk(a,"N")+Hk(a,"Z")+Hk(a,"V")+Hk(a,"C");b&&(b=d,c=""+(Ik(a,dk)+Ik(a,ek)),c+=Ik(a,fk)+Ik(a,gk)+Ik(a,bk),c=c+"\n"+(Ik(a,ik)+Ik(a,Xj)+Ik(a,hk)),d=b+("\n"+c));return d}h.me=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Hk:b,K:c,Lf:d,ga:e,ie:f})}function Kk(a,b,c){var d=[],e=Mj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Lf;if(e>=g&&e<g+k){e=Ba(f.ie,[e-g],a.me);0<=e?Lk(a,b,e,d):c&&(e=~e,Lk(a,b,e-1,d),Lk(a,b,e,d));break}}return d}
function Lk(a,b,c,d){var e={},f=a.B[b].ie,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ga[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Mk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Gj(a)||a.v("no variables"),!0;if(!c[2])return Gj(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Bj(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.v("invalid assignment:"+b);return!1}
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Hk:b,K:c,Lf:d,ia:e,ie:f})}function Kk(a,b,c){var d=[],e=Mj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Lf;if(e>=g&&e<g+k){e=Ba(f.ie,[e-g],a.me);0<=e?Lk(a,b,e,d):c&&(e=~e,Lk(a,b,e-1,d),Lk(a,b,e,d));break}}return d}
function Lk(a,b,c,d){var e={},f=a.B[b].ie,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Mk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Gj(a)||a.v("no variables"),!0;if(!c[2])return Gj(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Ej(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.v("invalid assignment:"+b);return!1}
function Nk(a,b,c){var d=null;if(b=Rj(a,b,!0)){var e=Kk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+ra(f)),f=e[0]+" ("+K(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+ra(f)),f=e[4]+" ("+K(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
function nk(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Bj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
g);a.G=X(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.G=g?32768:0;break;case "C":e.C=g?65536:0;break;case "PS":Bd(e,g);break;case "PI":zd(e,g);break;case "ER":e.P=g;d=!0;break;case "SL":e.Ga=g|255;break;case "M0":vd(e,g);d=!0;break;case "M3":yd(e,g);d=!0;break;case "AR":a.g&&(d=a.g,jc(d,d.fa=g));d=!0;break;case "DR":a.g&&Ub(a.g,g);d=!0;break;case "SR":a.g&&kc(a.g,g);d=!0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=g&65535;break}a.v("unknown register: "+
f);return}H(a.J);a.v("updated registers:")}}a.v(Jk(a,d));c&&(a.G=X(e.g[7]),ok(a,Uj(a,a.G)))}}function Ok(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Fj(a,null,c[2].charCodeAt(0)):Bj(a,b,!0)}
function Pk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Dj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
function ok(a,b,c,d){if(b=Rj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Dj(a,c.substr(1)),null!=c&&(d=c);else{d=Rj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Kk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=vk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
function nk(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Ej(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
g);a.G=X(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.G=g?32768:0;break;case "C":e.C=g?65536:0;break;case "PS":Bd(e,g);break;case "PI":zd(e,g);break;case "ER":e.P=g;d=!0;break;case "SL":e.za=g|255;break;case "M0":vd(e,g);d=!0;break;case "M3":yd(e,g);d=!0;break;case "AR":a.g&&(d=a.g,jc(d,d.ga=g));d=!0;break;case "DR":a.g&&Ub(a.g,g);d=!0;break;case "SR":a.g&&kc(a.g,g);d=!0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=g&65535;break}a.v("unknown register: "+
f);return}H(a.J);a.v("updated registers:")}}a.v(Jk(a,d));c&&(a.G=X(e.g[7]),ok(a,Uj(a,a.G)))}}function Ok(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Fj(a,null,c[2].charCodeAt(0)):Ej(a,b,!1)}
function Pk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Cj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ua=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
function ok(a,b,c,d){if(b=Rj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Cj(a,c.substr(1)),null!=c&&(d=c);else{d=Rj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Kk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=vk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
function uk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(mk+b):(a.O&&(a.v("ended assemble at "+Uj(a,a.N)),a.G=a.N,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.R=null;if(Db(a)&&0<b.length){a.O&&(b="a "+Uj(a,a.N)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
Rj(a,g[1],!0);if(q)if(a.N=q,void 0===g[2])a.v("begin assemble at "+Uj(a,q)),a.O=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Qd(q,t[r],1);a.v(vk(a,a.N))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
else{var J=D.charAt(1);if("l"==J){var vb;vb=0+tk(a,a.b);vb+=tk(a,a.L);(vb+=tk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Cd=+A||0;A&&(a.Y=Cd);a.v("break after "+Cd+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Rj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Ij(a),a.v("all breakpoints cleared")):rk(a,a.b,sa)||rk(a,a.L,sa)||rk(a,a.C,sa)||a.v("breakpoint missing: "+Uj(a,sa)):null!=sa.K&&(Tj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Ua&&(a.Ua.value="");break;case "d":a:{var Yb,jb=g[0],Ta=g[1],kb=g[2],ol=g[3];if("?"==Ta){var Zb="";for(Yb in Rb)a.la[Yb]&&(Zb&&(Zb+=","),Zb+=Yb);Zb+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
a.v("\tdh [p] [n] dump n instructions from history position p");Zb.length&&a.v("dump extension commands:\n\t"+Zb)}else if("state"==Ta){var ff=Qk(a.J,!0);"console"==kb?console.log(ff):(a.Ua&&(a.Ua.value=""),ff&&a.v(ff))}else if("symbols"==Ta)for(var gf=0;gf<a.B.length;gf++){var hf=a.B[gf],$b;for($b in hf.ga)if("."!=$b.charAt(0)){var wi=hf.ga[$b].o;if(void 0!==wi){var xi=hf.ga[$b].l;xi&&($b=xi);a.v(K(a,wi)+" "+$b)}}}else{if("d"==jb){for(Yb in Rb)if(g[1]==Yb){var yi=a.la[Yb];yi?(g.shift(),g.shift(),
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.La||"dw")}else a.La=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.P,Ua=a.i;if(Ua.length){var Ca=+zi||a.sa,Lc=+Ai||10;isNaN(Ca)?Ca=Lc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var jf=[];"call"==Ai&&(Lc=1E5,jf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Lc&&Ia!=a.P;){var Di=Ua[Ia++];if(null==Di.K)break;var Mc=X(Di.K),
pl=Ca--,Ei=vk(a,Mc,"history",pl);(!jf.length||0<=Ei.indexOf(jf[0]))&&a.v(Ei);Mc.yd&&(Ia+=Mc.yd,Lc-=Mc.yd,Ca-=Mc.yd);Ia>=Ua.length&&(Ia=0);a.sa=Ca;Ci++;Lc--}}Ci||(a.v("no "+Bi+"history available"),a.sa=void 0)}else{var oa=Rj(a,Ta);if(oa)if("da"==jb){var kf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,kf);a.v(ya("",kf?12:19)+pa(oa.K,kf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Rk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var xb=0,lf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ol,xb=Dj(a,kb);else{var Fi=Rj(a,kb);Fi&&(xb=Fi.K-oa.K)}0>xb&&(xb=0);65536<xb&&(xb=65536)}var rl=a.Ba;oa.Ba&&(a.Ba=oa.Ba);for(var yb="dd"==jb?4:"db"==jb?1:2,Ld=yb*xb||128,mf=
lf?16:a.Ba,sl=(Ld+mf-1)/mf|0||1,zb="";sl--&&0<Ld;){for(var Ab="",nf="",Ta=Uj(a,oa),Md=mf,Nc=0,Oc=0;0<Md&&0<Ld;){var ac=1,Nd=1==yb?a.Pd(oa,ac):a.Sa(oa,ac=2),Nc=Nc|Nd<<(Oc<<3),Oc=Oc+ac;Oc==yb&&(lf?(Ab&&(Ab+=","),Ab+="0x"+v(Nc,yb<<1)):(Ab+=K(a,Nc,yb<<3),Ab+=1==yb?9==Md?"-":" ":" "),Nc=Oc=0);Md-=ac;for(Ld-=ac;1==yb&&ac--;)var of=Nd&255,nf=nf+(32<=of&&128>of?String.fromCharCode(of):"."),Nd=Nd>>8}zb&&(zb+="\n");zb=lf?zb+(Ab+","):zb+(Ta+": "+Ab+(Md?"":" "+nf))}zb&&a.v(zb);a.Ga=oa;a.Ba=rl}}}}break;case "e":if("else"==
g[0])break;var bc,pf,qf,rf,sf=g[0],tf=g[1];"eb"==sf?(bc=1,pf=255,qf=a.Pd,rf=a.Qd):"e"==sf||"ew"==sf?(bc=2,pf=65535,qf=a.Sa,rf=a.Le):tf=null;if(null==tf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Od=Rj(a,tf);if(Od)for(var Pd=2;Pd<g.length;Pd++){var Pc=Bj(a,g[Pd]);if(void 0===Pc){a.v("unrecognized value: "+g[Pd]);break}Pc&~pf&&a.v("warning: "+v(Pc)+" exceeds "+bc+"-byte value");a.v("changing "+Uj(a,Od)+(E(a,16)?
"":" from "+K(a,qf.call(a,Od),bc<<3))+" to "+K(a,Pc,bc<<3));rf.call(a,Od,Pc,bc)}}break;case "g":a:{var Gi=g[1],tl=b;if(void 0!==Gi){var uf=Rj(a,Gi,!0);if(!uf)break a;Tj(a,uf,tl);a.Bb(a.b,uf,!0)}kk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.ca()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var vf;var Qc=b.substr(2),Qc=za(Qc);Bj(a,Qc)?(c||a.v("true: "+Qc),vf=!0):(c||a.v("false: "+Qc),vf=!1);vf||(d=!1);break}f=!0;break;case "k":var ul=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var wf=0,xf=X(),Rc=X(a.f.g[6]);for(a.v("stack trace for "+Uj(a,Rc));10>wf;){for(var Bb=null,vl=256;65536>Rc.K>>>0;){xf.K=a.Sa(Rc,2);if(null==Rc.K||!vl--)break;if(!(xf.K&1)){for(var wl=a,Qd=xf,Hi=null,Sc=Qd.K,Ii=Sc,yf=1;6>=yf&&Sc;yf++){if(2<yf){Qd.K=Sc;var Rd=vk(wl,Qd);if(0<=Rd.indexOf("JSR")){var Ji=Rd.indexOf(" ");if(Sc+(Rd.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Rd;break}}}Sc-=2}Qd.K=Ii;if(Bb=Hi)break}}if(!Bb||null==Bb)break;var Ki=
null;if("ks"==ul){var Li=Bb.match(/[0-9A-F]+$/);Li&&(Ki=Nk(a,Li[0]))}Bb=ya(Bb,50)+" ;"+(Ki||"stack="+Uj(a,Rc));a.v(Bb);wf++}wf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Nk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ha&lb);break}if(!lb){a.v("unknown message category: "+
T);break a}}if(lb)if("on"==g[2])a.ha|=lb,Wa=!0;else if("off"==g[2]&&(a.ha&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.M.length?a.M.length-1E3:0;Mi<a.M.length;)a.v(a.M[Mi++]);a.M=[]}}var xl=0,Tc="";for(Va in Rb)if(!T||T==Va){var yl=!!(a.ha&Rb[Va]);if(null===Wa||Wa==yl)Tc&&(Tc+=","),++xl%10||(Tc+="\n\t"),"key"==Va&&(Va="keys"),Tc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
(Tc||"none"));Jj(a)}break;case "p":if("print"==g[0]){Ok(a,b.substr(5));break}var zl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==zl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Sd=X(a.f.g[7]),cc=a.Sa(Sd);3==cc||4==cc||34816==(cc&65280)||32256==(cc&65024)||35072==(cc&65280)?(a.I=Oi,Sj(Sd,2)):2048==(cc&65024)&&(vk(a,Sd),a.I=Oi);a.I?(a.Bb(a.b,Sd,!0),kk(a)||(a.J&&qe(a.J),a.I=0)):Pk(a,Ni?"tr":
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}nk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Uc=+g[2];if(8==Uc||10==Uc||16==Uc)a.Ba=Uc;else{a.v("invalid base: "+Uc);break}}a.v("default base: "+a.Ba);break;case "cs":var Vc;void 0!==g[3]&&(Vc=+g[3]);switch(g[2]){case "int":a.f.Ob=Vc;break;case "start":a.f.pc=Vc;break;case "stop":a.f.Rb=Vc;break;default:a.v("unknown cs option");break a}void 0!==Vc&&ie(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+tk(a,a.b);ub+=tk(a,a.L);(ub+=tk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Cd=+A||0;A&&(a.ha=Cd);a.v("break after "+Cd+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Rj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Ij(a),a.v("all breakpoints cleared")):rk(a,a.b,sa)||rk(a,a.L,sa)||rk(a,a.C,sa)||a.v("breakpoint missing: "+Uj(a,sa)):null!=sa.K&&(Tj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Va&&(a.Va.value="");break;case "d":a:{var Yb,jb=g[0],Ta=g[1],kb=g[2],ol=g[3];if("?"==Ta){var Zb="";for(Yb in Rb)a.ma[Yb]&&(Zb&&(Zb+=","),Zb+=Yb);Zb+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
a.v("\tdh [p] [n] dump n instructions from history position p");Zb.length&&a.v("dump extension commands:\n\t"+Zb)}else if("state"==Ta){var ff=Qk(a.J,!0);"console"==kb?console.log(ff):(a.Va&&(a.Va.value=""),ff&&a.v(ff))}else if("symbols"==Ta)for(var gf=0;gf<a.B.length;gf++){var hf=a.B[gf],$b;for($b in hf.ia)if("."!=$b.charAt(0)){var wi=hf.ia[$b].o;if(void 0!==wi){var xi=hf.ia[$b].l;xi&&($b=xi);a.v(K(a,wi)+" "+$b)}}}else{if("d"==jb){for(Yb in Rb)if(g[1]==Yb){var yi=a.ma[Yb];yi?(g.shift(),g.shift(),
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.P,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Lc=+Ai||10;isNaN(Ca)?Ca=Lc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var jf=[];"call"==Ai&&(Lc=1E5,jf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Lc&&Ia!=a.P;){var Di=Ua[Ia++];if(null==Di.K)break;var Mc=X(Di.K),
pl=Ca--,Ei=vk(a,Mc,"history",pl);(!jf.length||0<=Ei.indexOf(jf[0]))&&a.v(Ei);Mc.yd&&(Ia+=Mc.yd,Lc-=Mc.yd,Ca-=Mc.yd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Ci++;Lc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Rj(a,Ta);if(oa)if("da"==jb){var kf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,kf);a.v(ya("",kf?12:19)+pa(oa.K,kf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Rk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,lf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ol,wb=Cj(a,kb);else{var Fi=Rj(a,kb);Fi&&(wb=Fi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var rl=a.ea;oa.ea&&(a.ea=oa.ea);for(var xb="dd"==jb?4:"db"==jb?1:2,Ld=xb*wb||128,mf=
lf?16:a.ea,sl=(Ld+mf-1)/mf|0||1,yb="";sl--&&0<Ld;){for(var zb="",nf="",Ta=Uj(a,oa),Md=mf,Nc=0,Oc=0;0<Md&&0<Ld;){var ac=1,Nd=1==xb?a.Pd(oa,ac):a.Ta(oa,ac=2),Nc=Nc|Nd<<(Oc<<3),Oc=Oc+ac;Oc==xb&&(lf?(zb&&(zb+=","),zb+="0x"+v(Nc,xb<<1)):(zb+=K(a,Nc,xb<<3),zb+=1==xb?9==Md?"-":" ":" "),Nc=Oc=0);Md-=ac;for(Ld-=ac;1==xb&&ac--;)var of=Nd&255,nf=nf+(32<=of&&128>of?String.fromCharCode(of):"."),Nd=Nd>>8}yb&&(yb+="\n");yb=lf?yb+(zb+","):yb+(Ta+": "+zb+(Md?"":" "+nf))}yb&&a.v(yb);a.Ha=oa;a.ea=rl}}}}break;case "e":if("else"==
g[0])break;var bc,pf,qf,rf,sf=g[0],tf=g[1];"eb"==sf?(bc=1,pf=255,qf=a.Pd,rf=a.Qd):"e"==sf||"ew"==sf?(bc=2,pf=65535,qf=a.Ta,rf=a.Le):tf=null;if(null==tf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Od=Rj(a,tf);if(Od)for(var Pd=2;Pd<g.length;Pd++){var Pc=Ej(a,g[Pd]);if(void 0===Pc){a.v("unrecognized value: "+g[Pd]);break}Pc&~pf&&a.v("warning: "+v(Pc)+" exceeds "+bc+"-byte value");a.v("changing "+Uj(a,Od)+(E(a,16)?
"":" from "+K(a,qf.call(a,Od),bc<<3))+" to "+K(a,Pc,bc<<3));rf.call(a,Od,Pc,bc)}}break;case "g":a:{var Gi=g[1],tl=b;if(void 0!==Gi){var uf=Rj(a,Gi,!0);if(!uf)break a;Tj(a,uf,tl);a.Bb(a.b,uf,!0)}kk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.ca()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var vf;var Qc=b.substr(2),Qc=za(Qc);Ej(a,Qc)?(c||a.v("true: "+Qc),vf=!0):(c||a.v("false: "+Qc),vf=!1);vf||(d=!1);break}f=!0;break;case "k":var ul=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var wf=0,xf=X(),Rc=X(a.f.g[6]);for(a.v("stack trace for "+Uj(a,Rc));10>wf;){for(var Ab=null,vl=256;65536>Rc.K>>>0;){xf.K=a.Ta(Rc,2);if(null==Rc.K||!vl--)break;if(!(xf.K&1)){for(var wl=a,Qd=xf,Hi=null,Sc=Qd.K,Ii=Sc,yf=1;6>=yf&&Sc;yf++){if(2<yf){Qd.K=Sc;var Rd=vk(wl,Qd);if(0<=Rd.indexOf("JSR")){var Ji=Rd.indexOf(" ");if(Sc+(Rd.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Rd;break}}}Sc-=2}Qd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
null;if("ks"==ul){var Li=Ab.match(/[0-9A-F]+$/);Li&&(Ki=Nk(a,Li[0]))}Ab=ya(Ab,50)+" ;"+(Ki||"stack="+Uj(a,Rc));a.v(Ab);wf++}wf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Nk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.M.length?a.M.length-1E3:0;Mi<a.M.length;)a.v(a.M[Mi++]);a.M=[]}}var xl=0,Tc="";for(Va in Rb)if(!T||T==Va){var yl=!!(a.ja&Rb[Va]);if(null===Wa||Wa==yl)Tc&&(Tc+=","),++xl%10||(Tc+="\n\t"),"key"==Va&&(Va="keys"),Tc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
(Tc||"none"));Jj(a)}break;case "p":if("print"==g[0]){Ok(a,b.substr(5));break}var zl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==zl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Sd=X(a.f.g[7]),cc=a.Ta(Sd);3==cc||4==cc||34816==(cc&65280)||32256==(cc&65024)||35072==(cc&65280)?(a.I=Oi,Sj(Sd,2)):2048==(cc&65024)&&(vk(a,Sd),a.I=Oi);a.I?(a.Bb(a.b,Sd,!0),kk(a)||(a.J&&qe(a.J),a.I=0)):Pk(a,Ni?"tr":
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}nk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Uc=+g[2];if(8==Uc||10==Uc||16==Uc)a.ea=Uc;else{a.v("invalid base: "+Uc);break}}a.v("default base: "+a.ea);break;case "cs":var Vc;void 0!==g[3]&&(Vc=+g[3]);switch(g[2]){case "int":a.f.Ob=Vc;break;case "start":a.f.pc=Vc;break;case "stop":a.f.Rb=Vc;break;default:a.v("unknown cs option");break a}void 0!==Vc&&ie(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.xb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Pk(a,
g[0],g[1]);break;case "u":ok(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Mk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.2 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Ok(a,b.substr(1));break}var zf="commands:",Af;for(Af in Sk)zf+="\n"+ya(Af,9)+Sk[Af];bf(a)||(zf+="\nnote: history disabled if no exec breakpoints");a.v(zf);break;default:f=!0}f&&(a.v("unknown command: "+
b),d=!1)}}catch(Qi){a.v("debugger error: "+(Qi.stack||Qi.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!uk(a,b[+d]))return!1;return!0}
@ -359,28 +359,28 @@ Zj=20,ak=21,bk=22,ck=23,dk=24,ek=25,fk=26,gk=27,Xj=28,hk=29,ik=30,Vj={SP:6,PC:7,
Dk,Z],45056:[19,Dk,Z],49152:[15,Dk,Z],53248:[17,Dk,Z],57344:[94,Dk,Z]},65024:{2048:[57,448,Z],28672:[100,Z,448],29184:[101,Z,448],29696:[102,Z,448],30208:[103,Z,448],30720:[104,448,Z],32256:[105,448,zk]},65280:{256:[27,Y],512:[24,Y],768:[10,Y],1024:[11,Y],1280:[22,Y],1536:[12,Y],1792:[20,Y],32768:[25,Y],33024:[23,Y],33280:[13,Y],33536:[21,Y],33792:[28,Y],34048:[29,Y],34304:[8,Y],34560:[9,Y],34816:[106,Ck],35072:[107,Ck]},65472:{64:[56,Z],192:[95,Z],2560:[39,Z],2624:[49,Z],2688:[53,Z],2752:[51,Z],
2816:[67,Z],2880:[1,Z],2944:[77,Z],3008:[97,Z],3072:[73,Z],3136:[71,Z],3200:[6,Z],3264:[4,Z],3328:[58,Bk],3392:[60,Z],3456:[65,Z],3520:[96,Z],35328:[40,Z],35392:[50,Z],35456:[54,Z],35520:[52,Z],35584:[68,Z],35648:[2,Z],35712:[78,Z],35776:[98,Z],35840:[74,Z],35904:[72,Z],35968:[7,Z],36032:[5,Z],36096:[66,Z],36160:[59,Z],36224:[64,Z],36288:[61,Z]},65528:{128:[76,Ek],152:[108,Ak]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},wk=[0],Pj=[58,60,65,96,110,100,101,102,103,104,105],Qj=[108,59,64],jk=1E3,mk=">> ";Sa(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hj(d);pb(d,c)}});
function Tk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ba=!1;this.O=null;Uk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Vk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.vb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Ua)for(b=
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Ua=this.i.Ua;this.v(Hb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Aa&&d.Aa(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
function Tk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ba=!1;this.O=null;Uk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Vk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.vb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Va)for(b=
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Va=this.i.Va;this.v(Hb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Ca&&d.Ca(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Wk),this.b&&(this.B=new G(this,"1.34.2"),Xk(this.B)?b=null:delete this.B);!b&&this.b&&(b=Yk(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.yc(this.rc)}else w("Unable to find CPU component")}p(Tk,x);
function Uk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}h=Tk.prototype;
h.yc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.yc(a,b)});return}}a.call(this,b)};function Zk(a,b){var c=new G(a,"1.34.2",$k);if(Xk(c)&&al(c)){var d=c.get(bl),e=b?b.get(bl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
h.rc=function(a){void 0===a&&(a=this.b||(this.G?cl:Wk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.2");if(a==dl)b=!0;else if(a>Wk){if(Xk(d,this.G)){this.u=new G(this,"1.34.2",el);Xk(this.u)&&(fl(this,d),a=gl,hl(this.u));this.u.set(bl,Da());il(this.u);var e=this.b&&!this.C;if(a==cl||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=al(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Xk(d,g):("error"==f&&"no machine state"!=
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(jl,""),this.g=null)):this.v(f+": "+g),hl(d),Xk(d)?(c=al(d),e=!0):c=!1))}e&&Zk(this,c?d:null)}else a==gl&&d.clear()}else Zk(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=kl(this,g,d,b,c));b=[d,a,c];a!=dl?this.yc(this.ne,b):this.ne(b)}};
function kl(a,b,c,d,e){if(!b.A.ba){b.A.ba=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Da(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Wk,window&&window.location.reload()):a.N=!0,b.Da(null),e=!1),!d&&b.Vd){var g=b.Vd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ne=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ba=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(kl(this,this.f,b,c,a),H(this,-2),this.f.qa());this.N&&(fl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function kl(a,b,c,d,e){if(!b.A.ba){b.A.ba=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Wk,window&&window.location.reload()):a.N=!0,b.Ea(null),e=!1),!d&&b.Vd){var g=b.Vd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ne=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ba=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(kl(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(fl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function fl(a,b){if(hb("There may be a problem with your "+Hb+" machine.\n\nTo help us diagnose it, click OK to send this "+Hb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Hb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function Qk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",$k),k=Da();g.set(bl,k);f.set(bl,k);f.set(ll,"1.34.2");f.set(ml,window?window.location.href:null);f.set(nl,window?window.navigator.userAgent:"");a.f&&a.f.Ca&&(c&&(b&&(a.f.A.qa=a.f.A.V),a.f.ca()),d=a.f.Ca(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ba=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ba&&(m.Ca&&(d=m.Ca(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ba=
function Qk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",$k),k=Da();g.set(bl,k);f.set(bl,k);f.set(ll,"1.34.2");f.set(ml,window?window.location.href:null);f.set(nl,window?window.navigator.userAgent:"");a.f&&a.f.Da&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.ca()),d=a.f.Da(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ba=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ba&&(m.Da&&(d=m.Da(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ba=
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&ql(a,a.g,f.toString()),il(g)&&il(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Al),d&&f.clear(k)):e=f.toString());c&&(a.A.ba=!1,b=a.H.power)&&(b.textContent="Power");a.j=0;return e}
h.reset=function(){this.A.reset=!0;this.F&&this.F.reset&&(F(this,"Resetting "+this.F.type),this.F.reset());this.f&&this.f.reset&&(F(this,"Resetting "+this.f.type),this.f.reset());for(var a=ib(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c!==this.f&&c.reset&&(F(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};h.start=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
h.stop=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}H(this,-1)};
function H(a,b){if(a.f){var c=a.f,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.ad+=d))&&(e.textContent=c.A.V?c.wb.toFixed(2)+"Mhz":"Stopped",c.ad=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.V;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)nc(a,"R"+e,a.f.g[e]);e=Ad(a.f);nc(a,"PS",e);nc(a,"NF",e&8?1:0,1);nc(a,"ZF",e&4?1:0,1);nc(a,"VF",e&2?1:0,1);nc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.fa=a.f.g[7]:0<b&&c&&!d&&(a.fa=a.f.ib);jc(a,a.fa);Vb(a,a.Eb);b=a.f;b=b.yb?b.W&16?1:2:4;Ec(a,"B22",b&1);Ec(a,"B18",b&2);
function H(a,b){if(a.f){var c=a.f,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.ad+=d))&&(e.textContent=c.A.V?c.wb.toFixed(2)+"Mhz":"Stopped",c.ad=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.V;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)nc(a,"R"+e,a.f.g[e]);e=Ad(a.f);nc(a,"PS",e);nc(a,"NF",e&8?1:0,1);nc(a,"ZF",e&4?1:0,1);nc(a,"VF",e&2?1:0,1);nc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.ga=a.f.g[7]:0<b&&c&&!d&&(a.ga=a.f.Qa);jc(a,a.ga);Vb(a,a.Eb);b=a.f;b=b.yb?b.W&16?1:2:4;Ec(a,"B22",b&1);Ec(a,"B18",b&2);
Ec(a,"B16",b&4)}}
h.va=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ba?Qk(d,!1,!0):d.yc(d.rc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ba&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Qk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.rc(Wk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.qa()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ba?Qk(d,!1,!0):d.yc(d.rc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ba&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Qk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.rc(Wk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.H[b]=c,c.onclick=function(){var a=Vk(d,!0);if(a){var b=!!(d.b&&!d.w||d.I),c=Qk(d,b);b?ql(d,a,c):d.T("Resume disabled, machine state not saved")}},!0}return!1};
function Vk(a,b){var c=a.g;c||((c=Ka(jl),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Bl(a,c))||a.T("The user ID is invalid.")):b&&a.T("Browser local storage is not available"));return c}
function Bl(a,b){a.g=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(jl,b.data),a.g=b.data)}catch(d){w(d.message+" ("+c+")")}return a.g}function Yk(a){var b=null;a.g&&(b=Ga()+"/api/v1/user?req=load&user="+a.g+"&state="+Cl(a,"1.34.2"));return b}
function ql(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cl(a,"1.34.2");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.T("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.T(c),La(jl,""),a.g=null)}}
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Ua){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Ua.focus();!b&&window&&window.scrollTo(c,d)}}var el="failsafe",$k="validate",bl="timestamp",ll="version",ml="url",nl="browser",jl="user",dl=-1,Wk=0,cl=1,gl=2,Al=3;
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Va.focus();!b&&window&&window.scrollTo(c,d)}}var el="failsafe",$k="validate",bl="timestamp",ll="version",ml="url",nl="browser",jl="user",dl=-1,Wk=0,cl=1,gl=2,Al=3;
Sa(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Tk(g,d,!0);pb(g,f);g.L&&g.yc(g.rc)}});Xa.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ba&&c.rc(dl)}});Xa.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ba&&Qk(c,!(!c.b||c.w),!0)}});
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=Cl(a,b,c);hl(this,a.vf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Xk(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function al(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
function il(a){var b=!0;if(Ha()){var c=JSON.stringify(a.f);La(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function hl(a,b){a.b="";a.f={};a.g=a.D=!1;b&&a.set("parms",b)}

View file

@ -42,9 +42,10 @@ var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[4
"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,jd:65,Lh:66,Rh:67,si:68,E:69,yi:70,Bi:71,Ni:72,Pi:73,Qi:74,Ri:75,Si:76,Vi:77,Xi:78,cj:79,fj:80,Q:81,hj:82,kj:83,tj:84,vj:85,xj:86,yj:87,Cj:88,Dj:89,Ke:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ej:97,Gj:98,Jj:99,d:100,e:101,Kj:102,Lj:103,Mj:104,Nj:105,Rj:106,k:107,Sj:108,Tj:109,n:110,Uj:111,p:112,q:113,r:114,Vj:115,t:116,Xj:117,Yj:118,Zj:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127};
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function oa(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}
function pa(a,b){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return oa(a,8,b,"")}function qa(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}function ra(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ta(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function ua(a){return a.replace(/[&<>"']/g,function(a){return va[a]})}function wa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},xa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function oa(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return oa(a,8,b,"")}function qa(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}
function ra(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ta(a,b){return-1!==a.indexOf(b,a.length-b.length)}function ua(a){return a.replace(/[&<>"']/g,function(a){return va[a]})}function wa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},xa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function ya(){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 za(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}