Bumped version to 1.32.1, since there is an interface change (addition) to support sticky machines

This commit is contained in:
Jeff Parsons 2017-01-03 17:51:18 -08:00 committed by Jeff Parsons
commit e4069e5a70
44 changed files with 13829 additions and 0 deletions

View file

@ -0,0 +1,278 @@
@CHARSET "UTF-8";
/**
@author Jeff Parsons (@jeffpar)
@website http://www.pcjs.org/
@created 2013-05-05
@modified 2014-02-23
@license http://www.gnu.org/licenses/gpl.html
*/
body {
margin: 0;
background: #202020;
}
h1, h2 {
margin-top: 0;
color: #cccccc;
}
h1, h2, h3, h4 {
word-wrap: break-word;
}
h4 a {
color: #cccccc !important;
}
p {
line-height: 1.5em;
}
img {
max-width: 100%;
}
a img {
vertical-align: bottom;
}
pre, code {
color: #000000;
background-color: #cccccc;
font-family: Monaco, Consolas, "Lucida Console", monospace;
font-size: 12px;
}
pre {
margin: 1em 2em;
padding: 1em;
border-radius: 5px;
overflow: auto;
}
code {
padding: 1px;
}
pre a, code a {
color: #006400 !important;
}
.common {
width: 100%;
margin: 0 auto;
color: #cccccc;
}
.common a {
color: #7fc07f;
text-decoration: none;
}
.common hr {
border-color: #808080;
}
.common a:hover {
text-decoration: underline;
}
.common, .machine {
font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
font-size: 15px;
}
.machine {
overflow: hidden;
}
.c1pjs {
overflow: visible;
}
.machine-placeholder {
text-align: center;
font-weight: bold;
}
.machine-floating {
position: relative;
z-index: auto;
background-color: transparent;
padding-right: 0;
}
.machine-sticky {
position: fixed !important;
z-index: 1 !important;
background-color: #404040 !important;
padding-right: 16px !important;
top: 0 !important;
}
.common-top {
background: #202020;
font-size: small;
}
.common-top-left {
float: left;
width: 60%;
}
.common-top-left ul {
line-height: 1.5em;
list-style-type: none;
margin: 0;
padding: 1em 1em 1em 9px;
overflow: hidden;
}
.common-top-left ul li {
display: block;
float: left;
}
.common-top-left ul li a {
border-right: 1px solid #6f6f6f;
padding: 2px 6px 2px 6px;
}
.common-top-left ul li:last-child a {
border-right: none;
}
.common-top-right {
float: right;
width: 40%;
}
.common-top-right p {
float: right;
margin: 0;
padding: 1em;
}
.common-middle {
clear: both;
padding: 1px 1em 1px 1em;
background: #404040;
}
.common-sidebar {
float: left;
font-size: small;
width: 140px;
padding-bottom: 20px;
overflow: hidden;
white-space: nowrap;
word-wrap: break-word;
}
.common-list {
list-style-type: none;
margin-top: 0;
margin-bottom: 0;
padding-left: 0;
}
.common-list li {
padding-bottom: 7px;
}
.common-list-data {
list-style-type: none;
margin-top: 0;
margin-bottom: 0;
padding-left: 0;
}
.common-list-data li {
line-height: 1.5em;
}
.common-list-data-items, .common-list-data-subitems {
font-size: x-small;
list-style-type: none;
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.common-list-data-items li, .common-list-data-subitems li {
padding-bottom: 0;
}
.common-main {
margin-left: 150px;
}
.common-main blockquote {
text-align: justify;
}
.common-image-gallery {
margin: 0 auto;
text-align: center;
}
.common-image-gallery:after {
content: '';
display: block;
}
.common-image-frame {
display: inline-block;
margin: 8px;
text-align: center;
}
.common-image-link {
padding: 5px;
border: 1px solid black;
border-radius: 5px;
background-color: #FAEBD7;
}
.common-image-label {
font-size: x-small;
}
.common-bottom {
clear: both;
padding-top: 1em;
}
.common-bottom:after {
content: '';
display: block;
clear: both;
}
.common-reference {
float: left;
font-size: x-small;
}
.common-reference a {
text-decoration: none;
}
.common-copyright {
float: right;
font-size: x-small;
}
.common-copyright a {
text-decoration: none;
}
.md-list {
}
.md-list li {
line-height: 1.5em;
margin-bottom: 1em;
}
.md-list li p {
padding-left: 2em;
}
.md-list-compact {
}
.md-list-compact li {
margin-bottom: 0;
}
.md-list-none {
list-style-type: none;
padding-left: 2em;
}
.md-list-none li {
margin-bottom: 0;
}
@media screen and (max-width: 900px) {
.common-sidebar {
width: 100%;
white-space: normal;
}
.common-list {
padding-left: 0;
}
.common-list-data {
padding-left: 0;
}
.common-sidebar h4, .common-list li, .common-list-data li, .common-list-data-items li {
width: 130px;
float: left;
overflow: hidden;
vertical-align: top;
padding-right: 1em;
margin-top: 0;
}
.common-list-data-subitems {
display: none;
}
.common-main {
clear: both;
margin-left: 0;
padding-left: 0;
padding-right: 0;
}
.md-list-none {
padding-left: 1em;
}
}

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;"> <!ENTITY ne "&#8800;"> <!ENTITY le "&#8804;"> <!ENTITY ge "&#8805;">
<!ENTITY times "&#215;"> <!ENTITY sdot "&#8901;"> <!ENTITY divide "&#247;">
<!ENTITY copy "&#169;"> <!ENTITY Sigma "&#931;"> <!ENTITY sigma "&#963;"> <!ENTITY sum "&#8721;"> <!ENTITY lbrace "&#123;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template name="commonStyles">
<meta charset="utf-8"/>
<link rel="apple-touch-icon" sizes="57x57" href="/versions/icons/current/pc-icon-57.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="/versions/icons/current/pc-icon-72.png"/>
<link rel="apple-touch-icon" sizes="76x76" href="/versions/icons/current/pc-icon-76.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="/versions/icons/current/pc-icon-114.png"/>
<link rel="apple-touch-icon" sizes="120x120" href="/versions/icons/current/pc-icon-120.png"/>
<link rel="apple-touch-icon" sizes="144x144" href="/versions/icons/current/pc-icon-144.png"/>
<link rel="apple-touch-icon" sizes="152x152" href="/versions/icons/current/pc-icon-152.png"/>
<link rel="apple-touch-icon" sizes="180x180" href="/versions/icons/current/pc-icon-180.png"/>
<link rel="apple-touch-icon" sizes="192x192" href="/versions/icons/current/pc-icon-192.png"/>
<link rel="apple-touch-icon" href="/versions/icons/current/apple-touch-icon.png"/>
<link rel="icon" type="image/png" sizes="192x192" href="/versions/icons/current/pc-icon-192.png"/>
<link rel="shortcut icon" type="image/x-icon" href="/versions/icons/current/favicon.ico"/>
<link rel="stylesheet" type="text/css" href="/versions/pdpjs/1.32.1/common.css"/>
</xsl:template>
<xsl:template name="commonTop">
<div class="common-top">
<div class="common-top-left">
<ul>
<li><a href="/">PCjs</a></li>
<li><a href="/devices/">Devices</a></li>
<li><a href="/docs/">Docs</a></li>
<li><a href="/apps/">Software</a></li>
<li><a href="/docs/about/">About</a></li>
</ul>
</div>
<div class="common-top-right">
<p>Powered by <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a>, <a href="http://vanilla-js.com/" target="_blank">Vanilla JS</a>, and <a href="http://github.com/jeffpar/pcjs" target="_blank">GitHub</a></p>
</div>
</div>
</xsl:template>
<xsl:template name="commonBottom">
<div class="common-bottom">
<p class="common-reference"></p>
<p class="common-copyright">
<span class="common-copyright"><a href="http://www.pcjs.org/">pcjs.org</a> © 2012-2017 by <a href="http://twitter.com/jeffpar">@jeffpar</a></span><br/>
<span class="common-copyright"><a href="http://github.com/jeffpar/pcjs">PCjs Project</a> released under <a href="http://gnu.org/licenses/gpl.html">GPLv3</a></span>
</p>
</div>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,257 @@
@CHARSET "UTF-8";
*:not(input,textarea) {
-webkit-user-select: none;
}
.pcjs-embed {
}
.pcjs-embed:after {
clear:both;
}
.pcjs-machine {
}
.pcjs-name, .pcjs-menu {
clear: both;
font-weight: bold;
padding-bottom: 4px;
}
.pcjs-menu {
float: left;
}
.pcjs-canvas {
width: 100%;
height: auto;
}
.pcjs-container {
color: #000000;
position: relative;
}
.pcjs-label {
font-size: small;
line-height: 20px;
vertical-align: middle;
float: left;
font-family: Monaco, "Lucida Console", monospace;
}
.pcjs-controls textarea {
font-family: Monaco, "Lucida Console", monospace;
font-size: x-small;
}
.pcjs-fieldset {
border: none;
margin: 0;
padding: 0;
}
.pcjs-flag {
font-family: Monaco, "Lucida Console", monospace;
font-size: small;
text-align: center;
line-height: 20px;
vertical-align: middle;
}
.pcjs-progress {
height: 20px;
width: 200px;
margin-top: 8px;
border: 1px solid black;
position: relative;
}
.pcjs-progress-bar {
height: 20px;
width: 0;
background-color: gold;
position: absolute;
top: 0;
}
.pcjs-progress-text {
height: 20px;
width: 200px;
font-size: small;
line-height: 20px;
text-align: center;
position: absolute;
top: 0;
z-index: 1;
}
.pcjs-register {
font-family: Monaco, "Lucida Console", monospace;
font-size: small;
text-align: center;
line-height: 20px;
vertical-align: middle;
border: 1px solid black;
}
.pcjs-switches {
float: left;
}
.pcjs-bitBucket {
float: left;
width: 19px;
height: 38px;
}
.pcjs-bitCell {
float: left;
width: 19px;
height: 19px;
margin-right: -1px;
margin-bottom: -1px;
border: 1px solid black;
text-align: center;
line-height: 19px;
}
.pcjs-bitCellLeft {
border-left: 1px solid black;
}
.pcjs-bitLabel {
font-size: xx-small;
text-align: center;
}
.pcjs-description, .pcjs-status {
font-size: x-small;
line-height: 2.8em;
}
.pcjs-key {
border: 1px solid black;
font-size: x-small;
text-align: center;
position: absolute;
height: 34px;
line-height: 34px;
background-color: #ffffff;
}
.pcjs-panel-group {
color: #ffffff;
background-color: #404040;
}
.pcjs-triplet {
padding: 1px;
}
.pcjs-ledlbl {
text-align: center;
font-size: 40%;
background-color: #000000;
}
.pcjs-ledlbl0 {
text-align: right;
font-size: 50%;
background-color: #8d4076;
}
.pcjs-ledlbl1 {
text-align: right;
font-size: 50%;
background-color: #d83662;
}
.pcjs-ledpad {
text-align: center;
font-size: x-small;
line-height: 32px;
background-color: #000000;
border-bottom-left-radius: 20%;
border-bottom-right-radius: 20%;
}
.pcjs-led {
float: left;
width: 8px;
height: 8px;
margin: 4px;
border: 1px solid black;
text-align: center;
vertical-align: middle;
background-color: #000000;
}
.pcjs-rled {
float: left;
width: 8px;
height: 8px;
margin: 4px;
border: 1px solid black;
border-radius: 50%;
text-align: center;
vertical-align: middle;
background-color: #ff0000;
max-width: 50%;
max-height: 50%;
}
.pcjs-swlbl {
text-align: center;
font-size: 40%;
line-height: 16px;
background-color: #000000;
border-top-left-radius: 20%;
border-top-right-radius: 20%;
}
.pcjs-swpad {
height: 32px;
background-color: #000000;
}
.pcjs-switch {
height: 10px;
width: 28px;
margin-top: 0;
max-width: 90%;
background-color: #00ff00;
}
.pcjs-screen {
clear: both;
height: auto;
position: relative;
line-height: 0;
}
.pcjs-screen textarea {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
opacity: 0;
border: 0;
padding: 0;
line-height: 0;
}
.pcjs-reference {
float: left;
font-size: x-small;
}
.pcjs-reference a {
text-decoration: none;
}
.pcjs-copyright {
float: right;
font-size: x-small;
}
.pcjs-copyright a {
text-decoration: none;
}
@media screen and (max-width: 800px) {
.pcjs-textarea {
width: 100% !important;
}
.pcjs-registers {
width: 100% !important;
max-width: none !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
.pdp11-device {
width: 98% !important;
max-width: none !important;
margin-left: 8px !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
}
@media screen and (min-width: 1200px) {
.machine-left {
max-width: 48%;
float: left;
}
.machine-right {
max-width: 48%;
float: left;
margin-left: 30px;
}
.machine-right + * {
clear: both;
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,162 @@
@CHARSET "UTF-8";
.page {
margin: 2% 2%;
padding: 2% 2%;
min-width: 30em;
overflow: auto;
font-size: large;
font-family: Helvetica, Arial, sans-serif;
background: #303030;
color: #ccc;
}
.page-header {
}
.page-header-title {
text-align: center;
}
.page a {
color: #7fc07f;
text-decoration: none;
}
a.footlink, a.paralink {
text-decoration: none;
}
a.footlink:link, a.paralink:link {
color: blue;
}
a.footlink:visited, a.paralink:visited {
color: blue;
}
.galleryitem {
float: left;
width: 200px;
}
.item {
float: left;
width: 2em;
text-indent: 1em;
}
.list {
margin-left: 3em;
text-indent: 0;
text-align: justify;
}
ul {
list-style: none;
}
div.pnumber {
float: left;
width: 2em;
text-indent: 1em;
}
div.pitem {
margin-left: 10em;
}
p.indent, .justified p {
text-indent: 2em;
text-align: justify;
line-height: 1.5em;
}
p.noindent {
text-indent: 0;
text-align: justify;
}
p.center, .center {
text-align: center;
}
li.para {
margin-top: 1em;
margin-bottom: 1em;
}
.left {
text-align: left;
}
.right {
text-align: right;
}
blockquote.tag {
font-size: small;
font-family: Monaco, Fixed, monospace;
margin-top: 0;
margin-bottom: 0;
}
.blockquote {
padding-left: 1em;
text-indent: 0;
text-align: justify;
}
.italics {
font-style: italic;
}
.medium {
font-size: medium;
}
.small {
font-size: x-small;
}
.smallcaps {
font-variant: small-caps;
}
.strike {
text-decoration: line-through;
}
.summation, .bracelist {
display: inline-block;
position: relative;
vertical-align: middle;
text-align: center;
margin-bottom: 0.5ex;
text-indent: 0;
}
.bracelist-symbol {
font-size: 3em;
vertical-align: -40%;
}
.summation .summation-lower, .summation .summation-upper, .bracelist-item {
display: block;
font-size: 75%;
text-align: center;
}
.summation .summation-upper {
margin-bottom: 0;
margin-left: 0.8ex;
font-style: italic;
}
.summation .summation-lower{
margin-bottom: -0.6ex;
font-style: italic;
}
.summation .summation-symbol {
font-size: 2em;
}
p sup {
vertical-align: baseline;
position: relative;
bottom: .5em;
font-size: small;
}
p sub {
vertical-align: baseline;
position: relative;
bottom: -.5em;
font-size: small;
}
.footnote {
font-size: medium;
text-indent: 1em;
text-align: justify;
margin-top: .5em;
}
.image-right {
float: right;
margin-left: 1em;
margin-top: 1em;
margin-bottom: 1em;
}
.image-caption {
font-size: small;
text-align: center;
}

View file

@ -0,0 +1,452 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;"> <!ENTITY ne "&#8800;"> <!ENTITY le "&#8804;"> <!ENTITY ge "&#8805;">
<!ENTITY times "&#215;"> <!ENTITY sdot "&#8901;"> <!ENTITY divide "&#247;">
<!ENTITY copy "&#169;"> <!ENTITY Sigma "&#931;"> <!ENTITY sigma "&#963;"> <!ENTITY sum "&#8721;"> <!ENTITY lbrace "&#123;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template name="documentStyles">
<link rel="stylesheet" type="text/css" href="/versions/pdpjs/1.32.1/document.css"/>
</xsl:template>
<xsl:template match="title">
<h1><xsl:apply-templates/></h1>
</xsl:template>
<xsl:template name="p">
<xsl:if test="@id">
<a name="{@id}"></a>
</xsl:if>
<xsl:choose>
<xsl:when test="not(@class)">
<p><xsl:apply-templates/></p>
</xsl:when>
<xsl:otherwise>
<p class="{@class}"><xsl:apply-templates/></p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="p">
<xsl:call-template name="p"/>
</xsl:template>
<xsl:template match="br">
<br/>
</xsl:template>
<xsl:template match="p[@number]">
<div class="pnumber">
<xsl:choose>
<xsl:when test="not(@number) or @number = ''">&nbsp;</xsl:when>
<xsl:otherwise><xsl:value-of select="@number"/></xsl:otherwise>
</xsl:choose>
</div>
<div class="pitem">
<xsl:call-template name="p"/>
</div>
</xsl:template>
<xsl:template match="span">
<xsl:choose>
<xsl:when test="not(@class)">
<span><xsl:apply-templates/></span>
</xsl:when>
<xsl:when test="@class = 'italics'">
<em><xsl:apply-templates/></em>
</xsl:when>
<xsl:otherwise>
<span class="{@class}"><xsl:apply-templates/></span>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="h2">
<h2><xsl:apply-templates/></h2>
</xsl:template>
<xsl:template match="h3">
<h3><xsl:apply-templates/></h3>
</xsl:template>
<xsl:template match="h4">
<h4><xsl:apply-templates/></h4>
</xsl:template>
<xsl:template match="h5">
<h5><xsl:apply-templates/></h5>
</xsl:template>
<xsl:template match="h6">
<h6><xsl:apply-templates/></h6>
</xsl:template>
<xsl:template match="em">
<em><xsl:apply-templates/></em>
</xsl:template>
<xsl:template match="strong">
<strong><xsl:apply-templates/></strong>
</xsl:template>
<xsl:template match="a">
<a href="{@href}" target="{@target}"><xsl:apply-templates/></a>
</xsl:template>
<xsl:template match="ol">
<blockquote><ol><xsl:apply-templates/></ol></blockquote>
</xsl:template>
<xsl:template match="ul">
<blockquote><ul><xsl:apply-templates/></ul></blockquote>
</xsl:template>
<xsl:template match="li">
<li><xsl:apply-templates/></li>
</xsl:template>
<xsl:template match="img">
<div><img src="{@src}" alt="image"/></div>
</xsl:template>
<xsl:template match="pre">
<pre><xsl:apply-templates/></pre>
</xsl:template>
<xsl:template match="figure">
<xsl:choose>
<xsl:when test="@pos">
<div class="{@pos}"><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
</xsl:when>
<xsl:otherwise>
<div><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="sub">
<sub><xsl:apply-templates/></sub>
</xsl:template>
<xsl:template match="sup">
<sup><xsl:apply-templates/></sup>
</xsl:template>
<xsl:template match="lt">&lt;</xsl:template>
<xsl:template match="gt">&gt;</xsl:template>
<xsl:template match="ne">&ne;</xsl:template>
<xsl:template match="le">&le;</xsl:template>
<xsl:template match="ge">&ge;</xsl:template>
<xsl:template match="times">&times;</xsl:template>
<xsl:template match="dot">&sdot;</xsl:template>
<xsl:template match="divide">&divide;</xsl:template>
<xsl:template match="sigma">&sigma;</xsl:template>
<xsl:template match="summation">
<span class="summation">
<span class="summation-upper"><xsl:value-of select="@upper"/></span>
<span class="summation-symbol">&sum;</span>
<span class="summation-lower"><xsl:value-of select="@lower"/></span>
</span>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bracelist">
<span class="bracelist-symbol">&lbrace;</span>
<span class="bracelist">
<xsl:for-each select="item">
<span class="bracelist-item"><xsl:apply-templates/></span>
</xsl:for-each>
</span>
</xsl:template>
<xsl:template match="footlink">
<xsl:variable name="docID" select="/document/@id"/>
<a class="footlink" id="fn{$docID}_ref{@n}" href="#fn{$docID}_{@n}"><sup><xsl:if test="@quoted"><xsl:text>[</xsl:text></xsl:if><xsl:value-of select="@n"/><xsl:if test="@quoted"><xsl:text>]</xsl:text></xsl:if></sup></a>
</xsl:template>
<xsl:template match="footnote">
<xsl:variable name="docID" select="/document/@id"/>
<div class="footnote"><a id="fn{$docID}_{@n}" href="#fn{$docID}_ref{@n}"><sup><xsl:value-of select="@n"/></sup></a><xsl:text> </xsl:text>
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template name="authors">
<xsl:for-each select="author"><xsl:if test="position() != 1"><xsl:text>, </xsl:text></xsl:if><xsl:if test="position() != 1 and position() = last()"><xsl:text>and </xsl:text></xsl:if><xsl:value-of select="."/></xsl:for-each>
</xsl:template>
<xsl:template name="formatDate">
<xsl:param name="date"/>
<xsl:param name="format">MDY</xsl:param>
<xsl:variable name="year">
<xsl:value-of select="substring-before($date,'-')"/>
</xsl:variable>
<xsl:variable name="mon-day">
<xsl:value-of select="substring-after($date,'-')"/>
</xsl:variable>
<xsl:variable name="mon">
<xsl:value-of select="substring-before($mon-day,'-')"/>
</xsl:variable>
<xsl:variable name="full-day">
<xsl:value-of select="substring-after($mon-day,'-')"/>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="substring($full-day,1,1) = '0'"><xsl:value-of select="substring($full-day,2)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$full-day"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$mon = '01'">January </xsl:when>
<xsl:when test="$mon = '02'">February </xsl:when>
<xsl:when test="$mon = '03'">March </xsl:when>
<xsl:when test="$mon = '04'">April </xsl:when>
<xsl:when test="$mon = '05'">May </xsl:when>
<xsl:when test="$mon = '06'">June </xsl:when>
<xsl:when test="$mon = '07'">July </xsl:when>
<xsl:when test="$mon = '08'">August </xsl:when>
<xsl:when test="$mon = '09'">September </xsl:when>
<xsl:when test="$mon = '10'">October </xsl:when>
<xsl:when test="$mon = '11'">November </xsl:when>
<xsl:when test="$mon = '12'">December </xsl:when>
<xsl:when test="$mon = '00'"/> </xsl:choose>
<xsl:if test="$day != '0' and $format = 'MDY'">
<xsl:value-of select="$day"/><xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="$year"/>
</xsl:template>
<xsl:template match="gallery">
<h2><xsl:value-of select="description"/></h2>
<div class="gallery">
<xsl:apply-templates select="item" mode="gallery"/>
</div>
<div style="clear:both;"></div>
</xsl:template>
<xsl:template match="item" mode="gallery">
<div class="galleryitem">
<a href="{@ref}"><img src="/versions/images/current/pdf-192.jpg" alt="{.}"/></a><br/>
<div style="font-size:small; text-align:center;"><xsl:value-of select="."/></div>
</div>
</xsl:template>
<xsl:template match="list[@type = 'timeline']">
<xsl:if test="not(description)">
<h2>Timeline</h2>
</xsl:if>
<xsl:if test="description">
<h2><xsl:value-of select="description"/></h2>
</xsl:if>
<blockquote>
<xsl:apply-templates select="item" mode="timeline"/>
</blockquote>
</xsl:template>
<xsl:template match="item" mode="timeline">
<xsl:if test="@ref">
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($documentFile)/document" mode="withDate">
<xsl:with-param name="itemRef" select="@ref"/>
</xsl:apply-templates>
</xsl:if>
<xsl:if test="not(@ref)">
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="@date"/></xsl:call-template></h3>
<blockquote>
<xsl:value-of select="."/>
</blockquote>
</xsl:if>
</xsl:template>
<xsl:template match="list[@type = 'people']">
<xsl:if test="not(description)">
<h2>People</h2>
</xsl:if>
<xsl:if test="description">
<h2><xsl:value-of select="description"/></h2>
</xsl:if>
<blockquote>
<xsl:apply-templates select="item" mode="people"/>
</blockquote>
</xsl:template>
<xsl:template match="item" mode="people">
<h3><xsl:value-of select="name"/></h3>
<xsl:apply-templates select="list"/>
</xsl:template>
<xsl:template match="list[@type = 'documents']">
<xsl:if test="description"><h2><xsl:value-of select="description"/></h2></xsl:if>
<ul>
<xsl:apply-templates select="item" mode="document"/>
</ul>
</xsl:template>
<xsl:template match="item" mode="document">
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
<xsl:apply-templates select="document($documentFile)/document">
<xsl:with-param name="itemRef" select="@ref"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="document">
<xsl:param name="itemRef"/>
<li>
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/></xsl:call-template>
</li>
</xsl:template>
<xsl:template match="document" mode="withDate">
<xsl:param name="itemRef"/>
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="date"/><xsl:with-param name="format" select="MY"/></xsl:call-template></h3>
<blockquote>
<p>
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/><xsl:with-param name="multiLine" select="'true'"/></xsl:call-template>
</p>
</blockquote>
</xsl:template>
<xsl:template name="documentSummary">
<xsl:param name="itemRef"/>
<xsl:param name="multiLine">false</xsl:param>
<xsl:choose>
<xsl:when test="content|include">
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
<xsl:if test="@ref">
<span class="small">
<xsl:text> [</xsl:text><a href="{@ref}">Original</a><xsl:text>]</xsl:text>
</span>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="copy">
<span class="small">
<xsl:text> [</xsl:text><a href="{copy/@ref}"><xsl:value-of select="copy"/></a><xsl:text>]</xsl:text>
</span>
</xsl:if>
<xsl:if test="author"><xsl:if test="$multiLine = 'true'"><br/></xsl:if><span class="medium"><xsl:text> by </xsl:text><xsl:call-template name="authors"/></span></xsl:if>
<xsl:if test="source">
<span class="small">
<br/>
<xsl:text>[Source: </xsl:text>
<xsl:if test="site">
<a href="{site/@url}"><xsl:value-of select="site"/></a>
</xsl:if>
<xsl:if test="not(site)">
<a href="{source/@url}"><xsl:value-of select="source"/></a>
</xsl:if>
<xsl:text>]</xsl:text>
</span>
</xsl:if>
</xsl:template>
<xsl:template match="list[@type = 'resources']">
<xsl:if test="not(description)">
<h2>Resources</h2>
</xsl:if>
<xsl:if test="description">
<h2><xsl:value-of select="description"/></h2>
</xsl:if>
<blockquote>
<xsl:apply-templates select="item" mode="resources"/>
</blockquote>
</xsl:template>
<xsl:template match="item" mode="resources">
<h3><xsl:value-of select="description"/></h3>
<xsl:apply-templates select="list"/>
</xsl:template>
<xsl:template match="list[@type = 'links']">
<xsl:if test="description">
<h4><xsl:value-of select="description"/></h4>
</xsl:if>
<ul>
<xsl:apply-templates select="item" mode="links"/>
</ul>
</xsl:template>
<xsl:template match="item" mode="links">
<li><a href="{@ref}"><xsl:value-of select="."/></a></li>
</xsl:template>
<xsl:template match="list[not(@type)]">
<xsl:if test="description">
<h2><xsl:value-of select="description"/></h2>
</xsl:if>
<blockquote>
<xsl:apply-templates select="item|tag" mode="outer"/>
</blockquote>
</xsl:template>
<xsl:template match="item" mode="outer">
<xsl:if test="description">
<h3><xsl:value-of select="description"/></h3>
</xsl:if>
<xsl:apply-templates select="list|item|tag" mode="inner"/>
</xsl:template>
<xsl:template match="list" mode="inner">
<xsl:if test="description">
<h4><xsl:value-of select="description"/></h4>
</xsl:if>
<ul>
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
</ul>
</xsl:template>
<xsl:template name="innerlist">
<xsl:if test="description">
<xsl:value-of select="description"/>
</xsl:if>
<ul>
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
</ul>
</xsl:template>
<xsl:template match="item" mode="inner">
<xsl:choose>
<xsl:when test="@ref">
<li><a href="{@ref}"><xsl:apply-templates/></a></li>
</xsl:when>
<xsl:when test="description">
<li><xsl:call-template name="innerlist"/></li>
</xsl:when>
<xsl:otherwise>
<li><xsl:apply-templates/></li>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="para" mode="inner">
<li class="para"><xsl:apply-templates/></li>
</xsl:template>
<xsl:template match="tag" mode="outer">
<xsl:call-template name="tag"/>
</xsl:template>
<xsl:template match="tag" mode="inner">
<xsl:call-template name="tag"/>
</xsl:template>
<xsl:template name="tag">
<blockquote class="tag">
<xsl:text>&lt;</xsl:text><xsl:if test="@href"><a href="{@href}"><xsl:value-of select="@name"/></a></xsl:if><xsl:if test="not(@href)"><xsl:value-of select="@name"/></xsl:if><xsl:for-each select="attr"><xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text>="</xsl:text><xsl:value-of select="@value"/><xsl:text>"</xsl:text></xsl:for-each>
<xsl:choose>
<xsl:when test="tag"><xsl:text>&gt;</xsl:text><xsl:apply-templates mode="inner"/><xsl:text>&lt;/</xsl:text><xsl:value-of select="@name"/><xsl:text>&gt;</xsl:text></xsl:when>
<xsl:when test="normalize-space(.) != ''"><xsl:text>&gt;</xsl:text><xsl:value-of select="."/><xsl:text>&lt;/</xsl:text><xsl:value-of select="@name"/><xsl:text>&gt;</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>/&gt;</xsl:text></xsl:otherwise>
</xsl:choose>
</blockquote>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;"> <!ENTITY sect "&#167;"> <!ENTITY copy "&#169;"> <!ENTITY para "&#182;"> <!ENTITY ndash "&#8211;"> <!ENTITY mdash "&#8212;">
<!ENTITY lsquo "&#8216;"> <!ENTITY rsquo "&#8217;"> <!ENTITY ldquo "&#8220;"> <!ENTITY rdquo "&#8221;"> <!ENTITY dagger "&#8224;"> <!ENTITY Dagger "&#8225;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="about:legacy-compat" method="html"/>
<xsl:include href="/versions/pdpjs/1.32.1/common.xsl"/>
<xsl:include href="/versions/pdpjs/1.32.1/components.xsl"/>
<xsl:template match="/machine">
<html lang="en">
<head>
<title><xsl:value-of select="$SITEHOST"/></title>
<xsl:call-template name="commonStyles"/>
<xsl:call-template name="componentStyles"/>
</head>
<body>
<div class="common">
<xsl:call-template name="commonTop"/>
<div class="common-middle">
<p></p>
<div id="{@id}" class="machine {@class}js">
<xsl:call-template name="component">
<xsl:with-param name="machine" select="@id"/>
<xsl:with-param name="component" select="'machine'"/>
<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
</xsl:call-template>
</div>
</div>
<xsl:call-template name="commonBottom"/>
</div>
<xsl:call-template name="componentScripts">
<xsl:with-param name="component">
<xsl:choose>
<xsl:when test="debugger"><xsl:value-of select="@class"/>-dbg</xsl:when>
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,247 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2014-04-10" modified="2014-04-10" license="http://www.gnu.org/licenses/gpl.html" -->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;"> <!ENTITY sect "&#167;"> <!ENTITY copy "&#169;"> <!ENTITY para "&#182;"> <!ENTITY ndash "&#8211;"> <!ENTITY mdash "&#8212;">
<!ENTITY lsquo "&#8216;"> <!ENTITY rsquo "&#8217;"> <!ENTITY ldquo "&#8220;"> <!ENTITY rdquo "&#8221;"> <!ENTITY dagger "&#8224;"> <!ENTITY Dagger "&#8225;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="about:legacy-compat" method="html"/>
<xsl:include href="/versions/pdpjs/1.32.1/common.xsl"/>
<xsl:include href="/versions/pdpjs/1.32.1/components.xsl"/>
<xsl:template match="/manifest[@type = 'document']">
<html lang="en">
<head>
<title><xsl:value-of select="$SITEHOST"/></title>
<xsl:call-template name="commonStyles"/>
<xsl:call-template name="componentStyles"/>
</head>
<body>
<div class="common">
<xsl:call-template name="commonTop"/>
<div class="common-middle">
<h4>Document Manifest</h4>
<div class="common-sidebar">
<ul class="common-list-data">
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Title'"/>
<xsl:with-param name="node" select="title"/>
<xsl:with-param name="default">None</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Version'"/>
<xsl:with-param name="node" select="version"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Source'"/>
<xsl:with-param name="node" select="source"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Documents'"/>
<xsl:with-param name="node" select="document"/>
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
</xsl:call-template>
</ul>
</div>
<div class="common-main">
<p><xsl:value-of select="desc"/></p>
<xsl:call-template name="commonBottom"/>
</div>
</div>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="/manifest[@type = 'software' or not(@type)]">
<xsl:variable name="machineClass">
<xsl:choose>
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$APPCLASS"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<html lang="en">
<head>
<title><xsl:value-of select="$SITEHOST"/></title>
<xsl:call-template name="commonStyles"/>
<xsl:call-template name="componentStyles"/>
</head>
<body>
<div class="common">
<xsl:call-template name="commonTop"/>
<div class="common-middle">
<h4>Software Manifest</h4>
<div class="common-sidebar">
<ul class="common-list-data">
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Title'"/>
<xsl:with-param name="node" select="title"/>
<xsl:with-param name="default">None</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Version'"/>
<xsl:with-param name="node" select="version"/>
<xsl:with-param name="default">Unknown</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Type'"/>
<xsl:with-param name="node" select="type"/>
<xsl:with-param name="default">None</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Category'"/>
<xsl:with-param name="node" select="category"/>
<xsl:with-param name="default">None</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Created'"/>
<xsl:with-param name="node" select="creationDate"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Creators'"/>
<xsl:with-param name="node" select="creator"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label"><xsl:if test="creationDate">Updated</xsl:if><xsl:if test="not(creationDate)">Released</xsl:if></xsl:with-param>
<xsl:with-param name="node" select="releaseDate"/>
<xsl:with-param name="default">Unknown</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Company'"/>
<xsl:with-param name="node" select="company"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Authors'"/>
<xsl:with-param name="node" select="author"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Contributors'"/>
<xsl:with-param name="node" select="contributor"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Publisher'"/>
<xsl:with-param name="node" select="publisher"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'License'"/>
<xsl:with-param name="node" select="license"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Source'"/>
<xsl:with-param name="node" select="source"/>
<xsl:with-param name="default" select="''"/>
</xsl:call-template>
<xsl:call-template name="listItem">
<xsl:with-param name="label" select="'Disks'"/>
<xsl:with-param name="node" select="disk"/>
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
</xsl:call-template>
</ul>
</div>
<div class="common-main">
<xsl:for-each select="machine[not(@type) or @type = 'default']">
<xsl:call-template name="machine">
<xsl:with-param name="href" select="@href"/>
<xsl:with-param name="state" select="@state"/>
</xsl:call-template>
</xsl:for-each>
<xsl:if test="not(machine[not(@type) or @type = 'default'])">
<p>No default machine specified for '<xsl:value-of select="title"/>' in manifest.xml</p>
</xsl:if>
<xsl:call-template name="commonBottom"/>
</div>
</div>
</div>
<xsl:call-template name="componentScripts">
<xsl:with-param name="component">
<xsl:choose>
<xsl:when test="machine/@debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</body>
</html>
</xsl:template>
<xsl:template name="listItem">
<xsl:param name="label"/>
<xsl:param name="node"/>
<xsl:param name="default">Unknown</xsl:param>
<xsl:if test="$node != '' or $default != ''">
<li><xsl:value-of select="$label"/>
<ul class="common-list-data-items">
<xsl:for-each select="$node">
<xsl:variable name="desc">
<xsl:choose>
<xsl:when test="desc"><xsl:value-of select="desc"/></xsl:when>
<xsl:when test="org"><xsl:value-of select="org"/></xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<li title="{$desc}">
<xsl:variable name="value">
<xsl:choose>
<xsl:when test="name">
<xsl:value-of select="name"/>
</xsl:when>
<xsl:when test="normalize-space(./text()) != ''">
<xsl:value-of select="normalize-space(./text())"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$default"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="href">
<xsl:if test="@href"><xsl:value-of select="@href"/></xsl:if>
</xsl:variable>
<xsl:choose>
<xsl:when test="$href != ''">
<a href="{$href}"><xsl:value-of select="$value"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="page">
<ul class="common-list-data-subitems">
<xsl:for-each select="page">
<li>
<xsl:if test="@href">
<a href="{$href}{@href}"><xsl:value-of select="."/></a>
</xsl:if>
<xsl:if test="not(@href)">
<xsl:value-of select="."/>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:if>
</li>
</xsl:for-each>
<xsl:if test="not($node)">
<xsl:if test="@href">
<a href="{@href}"><xsl:value-of select="$default"/></a>
</xsl:if>
<xsl:if test="not(@href)">
<xsl:value-of select="$default"/>
</xsl:if>
</xsl:if>
</ul>
</li>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;"> <!ENTITY sect "&#167;"> <!ENTITY copy "&#169;"> <!ENTITY para "&#182;"> <!ENTITY ndash "&#8211;"> <!ENTITY mdash "&#8212;">
<!ENTITY lsquo "&#8216;"> <!ENTITY rsquo "&#8217;"> <!ENTITY ldquo "&#8220;"> <!ENTITY rdquo "&#8221;"> <!ENTITY dagger "&#8224;"> <!ENTITY Dagger "&#8225;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="about:legacy-compat" method="html"/>
<xsl:include href="/versions/pdpjs/1.32.1/common.xsl"/>
<xsl:include href="/versions/pdpjs/1.32.1/document.xsl"/>
<xsl:include href="/versions/pdpjs/1.32.1/components.xsl"/>
<xsl:template match="/outline">
<xsl:variable name="machineClass">
<xsl:choose>
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<html lang="en">
<head>
<title><xsl:value-of select="title"/><xsl:text> | </xsl:text><xsl:value-of select="$SITEHOST"/></title>
<xsl:call-template name="commonStyles"/>
<xsl:call-template name="documentStyles"/>
<xsl:call-template name="componentStyles"/>
</head>
<body>
<div class="common">
<div class="page justified">
<xsl:apply-templates/>
</div>
</div>
<xsl:call-template name="componentScripts">
<xsl:with-param name="component">
<xsl:choose>
<xsl:when test="debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,373 @@
(function(){/*
http://pcjs.org/modules/shared/es6/diskapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/dumpapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/reportapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/userapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/keys.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/strlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/weblib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/messages.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/panel.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/device.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/cpu.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/rom.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/ram.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/keyboard.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/pc11.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/rk11.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/rl11.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/state.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/embed.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/component.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/usrlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/bus.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/memory.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/cpustate.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/cpuops.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/serial.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/disk.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/debugger.js (C) Jeff Parsons 2012-2017
*/
var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ia(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}for(var ja=ba,ka=["Math","log2"],la=0;la<ka.length-1;la++){var ma=ka[la];ma in ja||(ja[ma]={});ja=ja[ma]}var na=ka[ka.length-1],oa=ja[na],pa=oa?oa:function(a){return Math.log(a)/Math.LN2};pa!=oa&&null!=pa&&aa(ja,na,{configurable:!0,writable:!0,value:pa});
var ra={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},sa={qg:0,ud:1,sg:2,tg:3,ug:4,vg:5,wg:6,xg:7,Lc:8,yg:9,vd:10,zg:11,Ag:12,wd:13,Bg:14,Cg:15,Dg:16,Eg:17,Fg:18,Gg:19,Hg:20,Ig:21,Jg:22,Kg:23,Lg:24,Mg:25,Ng:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ic:65,pg:66,rg:67,Og:68,E:69,Pg:70,Qg:71,Rg:72,Sg:73,Tg:74,Ug:75,Vg:76,Wg:77,Xg:78,Yg:79,Zg:80,Q:81,$g:82,ah:83,bh:84,dh:85,eh:86,fh:87,gh:88,hh:89,Gd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ih:97,jh:98,kh:99,d:100,e:101,mh:102,nh:103,oh:104,ph:105,sh:106,k:107,th:108,uh:109,n:110,vh:111,p:112,q:113,r:114,wh:115,t:116,yh:117,zh:118,Ah:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,xd:127};function q(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Rc=b.comment;this.Fd=b;this.exports={};a=this.id.indexOf(".");0>a?this.kb=this.id:(this.lb=this.id.substr(0,a),this.kb=this.id.substr(a+1));this.A={ready:!1,eb:!1,zc:!1,fa:!1,error:!1};this.dc=null;this.A.error=!1;this.C={};this.ha=d||0;this.F=this.f=this.D=this.J=this.Pa=null;ta.push(this)}function ua(a,b,c){va[a]&&b&&(va[a][b]=c)}
function xa(){return Date.now()||+new Date}function v(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}function za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<ta.length;b++){var d=ta[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Aa(a){if(void 0!==a){var b;for(b=0;b<ta.length;b++)if(ta[b].id===a)return ta[b]}return null}
function Ba(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<ta.length;d++)if(c)c==ta[d]&&(c=null);else if(!(a!=ta[d].type||b&&ta[d].id.indexOf(b)))return ta[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function Ca(a,b){var c=x;b=y(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=w(g))&&k.binding&&a.pa(k.type,k.binding,g,k.value),m=l.length}}}}
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=q.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.pa=function(a,b,c){switch(b){case "clear":return this.C[b]||(this.C[b]=c,c.onclick=function(a){return function(){a.C.print&&(a.C.print.value="")}}(this)),!0;case "print":return this.C[b]||(this.Pa=this.C[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.O=function(a){this.u(a,this.kb)}),!0;default:return!1}};h.log=function(){};h.u=function(){};
h.status=function(a){this.u(this.kb+": "+a)};h.O=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Da(a,b){a.A.error=!0;a.O(b)}function Ea(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Ja(a,b){b&&(a.A.ready?b():a.dc=b);return a.A.ready}function A(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.dc,a.dc=null,b&&b()))}function Ka(a,b){a.A.eb&&(b?a.A.zc=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.eb}
function La(a,b){if(a.A.zc)return a.A.eb=!1,a.A.zc=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.eb=b;return a.A.eb}h.za=function(){return this.A.fa=!0};h.ya=function(a,b){b&&(this.A.fa=!1);return!0};function B(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.cd)}return!1}function C(a,b,c,d){a.F&&(!0===c||B(a,c|0))&&a.F.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var va=window?window.PCjs.Machines:{},ta=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
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)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function Na(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 G(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
function Oa(a){var b=2,c="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode(a%10+48)+c,a/=10;return c}function H(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function I(a){return H(a,4,!0)}
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 Wa[a]})}function Xa(a,b){return(a+" ").slice(0,b)}
function Ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Wa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Za={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 $a(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 ab(){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 bb(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 cb(a,b){var c,d={ca:null,ea:null,wa:null,va:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.wa=g.load;d.va=g.exec;if(e=g.bytes)d.ca=e;else if(e=g.words)for(d.ca=Array(2*e.length),f=c=0;c<e.length;c++)d.ca[f++]=e[c]&255,d.ca[f++]=e[c]>>8&255;else if(e=g.data)for(d.ca=Array(4*e.length),f=c=0;c<e.length;c++)d.ca[f++]=
e[c]&255,d.ca[f++]=e[c]>>8&255,d.ca[f++]=e[c]>>16&255,d.ca[f++]=e[c]>>24&255;else d.ca=g;d.ea=g.symbols;d.ca.length?1==d.ca.length&&(v(d.ca[0]),d=null):(v("Empty resource: "+a),d=null)}catch(k){v("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)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ca=e)}return d}
function db(){return"http://"+(window?window.location.host:"www.pcjs.org")}function eb(){if(null==fb){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}fb=a}return fb}function hb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function nb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ob(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 pb(a){if(!qb){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," "))}qb=c}return qb[a]}
function rb(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function sb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function tb(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 ub(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function vb(a){wb.init.push(a)}
function xb(a){if(yb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function zb(a){!yb&&a?(yb=!0,Ab&&Bb("init"),Cb&&Bb("show")):yb=a}function Bb(a){wb[a]&&xb(wb[a])}var qb=null,wb={init:[],show:[],exit:[]},Ab=!1,Cb=!1,yb=!0,fb=null;ub("onload",function(){Ab=!0;xb(wb.init)});ub("onpageshow",function(){Cb=!0;xb(wb.show)});ub(ob("Opera")||ob("iOS")?"onunload":"onbeforeunload",function(){xb(wb.exit)});
var Db="undefined"!==typeof ArrayBuffer,x="pdp11",Eb="PDPjs",Fb=!1,Gb=Db,Nb=!0,Ob=!0,Pb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Qb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},x="pdp11",Eb="PDPjs",Fb=!1,Gb=Db,Ob=Nb=!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,dl11:262144,serial:262144,
kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Sb(a,b){q.call(this,"Panel",a,0,512);this.j=this.v=0;this.I=b;this.ua=this.i=this.Ya=this.vb=0;this.B=this.G=this.w=!1;this.H=Tb;this.g={};this.b={START:[1,1,!0,!1,this.Xd],STEP:[1,1,!1,!1,this.Yd],ENABLE:[1,1,!1,!1,this.Td],CONT:[1,1,!0,!1,this.Rd],DEP:[0,0,!0,!1,this.Sd],EXAM:[1,1,!0,!1,this.Ud],LOAD:[1,1,!0,!1,this.Wd],TEST:[0,0,!0,!1,this.Vd]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Zd,a];this.F=this.f=this.D=this.J=null;A(this)}p(Sb,q);h=Sb.prototype;h.reset=function(){this.stop()};
h.pa=function(a,b,c,d){if(this.J&&this.J.pa(a,b,c,d)||this.f&&this.f.pa(a,b,c,d)||this.F&&this.F.pa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.C[b]=c,this.v++,!0;default:return"led"==a||"rled"==a?(this.C[b]=c,this.g[b]=d?1:0,this.v++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.C[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Ub(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Vb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ub(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Vb(a,b)}}(this,b),!0):q.prototype.pa.call(this,a,b,c,d)}};h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;Wb(b,this,Xb);Yb(b,this.reset.bind(this));Zb(this);$b(this)};h.za=function(a,b){b||(this.I&&ac(),this.reset());return!0};h.ya=function(){return!0};
function bc(a,b,c){if(a=a.C[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Zb(a,b){for(var c in a.g)bc(a,c,null!=b?b:a.g[c])}function cc(a,b,c){if(a=a.C[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function $b(a){for(var b in a.b)cc(a,b,a.b[b][1])}function dc(a,b,c,d){a.C[b]&&(void 0===c&&(Da(a,"Value for "+b+" is invalid"),a.f.Z()),c=8==(a.F&&a.F.xa||8)?G(c,d):H(c,d),a.C[b].textContent!=c&&(a.C[b].textContent=c))}
function Ub(a,b){var c=a.b[b];cc(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=ec&&(a.B=b==fc,a.G=b==gc)}function Vb(a,b){var c=a.b[b];c[2]&&c[3]&&(cc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Xd=function(a){a||this.f.A.U||(a=this.f,a.D.reset(),hc(a),this.b[ic]&&this.b[ic][1]&&jc(this.f))};h.Yd=function(){};h.Td=function(a){a||this.f.Z()};
h.Rd=function(a){if(!a&&!this.f.A.U)if(this.b[ic]&&this.b[ic][1])jc(this.f);else{if((a=this.F)&&!Ka(a,!0))La(a,!0),kc(a,0,null),La(a,!1);else try{var b=this.f.bc(1);0<b&&(lc(this.f,b),mc(this.f,b,!0),nc(this.f,b))}catch(c){"number"!=typeof c&&Da(this.f,c.stack||c.message)}this.stop();this.J&&J(this.J)}};h.Sd=function(a){if(a&&!this.f.A.U)if(this.B&&oc(this),a=pc(this,this.Ya),this.H==Tb)qc(this.D,this.ua,a);else{var b=this.f,c=this.ua;b.ma++;b.D.Nb(Cc(b,c,4),a);b.ma--}};
h.Ud=function(a){a||this.f.A.U||(this.G&&oc(this),a=this.H==Tb?Dc(this.D,this.ua):Ec(this.f,this.ua),pc(this,a))};h.Wd=function(a){a||this.f.A.U||Fc(this,this.Ya)};h.Vd=function(a){a?(this.w=!0,Zb(this,!0)):(this.w=!1,Zb(this),Gc(this,0))};h.Zd=function(a,b){this.Ya=a?this.Ya|1<<b:this.Ya&~(1<<b)};function oc(a){var b=1140>=a.f.ba?8:16,c=65472<=a.ua&&a.ua<65472+b,b=c?1:2,c=c?15:a.D.I;a.b[ec]&&a.b[ec][1]||(b=-b);Fc(a,a.ua&~c|a.ua+b&c)}
function Fc(a,b){a.ua=b&a.D.I;b=a.ua;for(var c=0;22>c;c++)Hc(a,"A"+c,b&1<<c)}function pc(a,b){a.i=b&65535;b=a.i;for(var c=0;16>c;c++)Hc(a,"D"+c,b&1<<c);return a.i}function Hc(a,b,c){a.g[b]=c;a.w||bc(a,b,c)}function Ic(a){return void 0!==a.C[Jc]}function Gc(a,b){if(Ic(a)){a.Ya=b;for(var c=0;22>c;c++)a.b["S"+c][1]=b&1<<c?1:0;$b(a)}}h.stop=function(){Fc(this,this.f.g[7])};h.Fc=function(a){this.ua=a};h.setData=function(a,b){b?this.vb=a:this.i=a};h.de=function(a,b){return(b?this.vb:this.Ya)&65535};
h.pf=function(a){this.vb=a};function ac(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=Aa(d.id);e||(e=new Sb(d,!0));Ca(e,c)}}var Tb=7,Jc="S0",fc="DEP",ic="ENABLE",gc="EXAM",ec="STEP",Kc={},Xb=(Kc[65400]=[null,null,Sb.prototype.de,Sb.prototype.pf,"CNSW"],Kc);vb(ac);
function Lc(a,b,c){q.call(this,"Bus",a,0,16);this.f=b;this.F=c;this.V=+a.busWidth||16;this.M=1<<this.V;this.I=this.M-1;this.j=Mc;this.g=Math.log2(this.j);this.S=this.j>>2;this.i=this.j-1;this.H=this.M/this.j|0;this.T=this.H-1;this.Ma=[];this.ja=0;this.G=!1;this.N=[];this.Hd=[Nc,Oc,Pc,Qc];this.b=this.v=[];this.B=this.L=this.w=this.P=this.R=0;a=new L(this);Rc(a,this.F);this.b=Array(this.H);this.v=Array(this.H);for(b=0;b<this.H;b++)this.b[b]=this.v[b]=a;this.B=this.M-Mc;Sc(this,this.B,Mc,Tc,this);this.R=
this.P=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;A(this)}p(Lc,q);function Uc(a,b){if(b!=a.L){for(var c=0;c<a.H;c++)a.v[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Mc,a.R=(b&a.w)>>>a.g,a.v[a.R]=a.b[a.P])}}h=Lc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();Uc(this,16)};h.za=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.ya=function(a){return a?this.save():!0};h.save=function(){var a=new M(this);a.set(0,Vc(this));return a.data()};
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.S){for(var e=0,f=Array(this.S),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Sc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Jb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Jb){n=l.size-(f-m);n>g&&(n=g);l.Jb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return Wc(Xc,f,g)}f=new L(a,f,n,a.j,d,e);Rc(f,a.F,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Yc[d]+" at "+G(b)),!0):Wc(Zc,b,c)}h.Jc=function(a){return this.v[(a&this.w)>>>this.g].ub(a&this.i,a)};
h.ac=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Ob||b!=this.i?this.v[c].ka(b,a):this.v[c++].ub(b,a)|this.v[c&this.T].ub(0,a+1)<<8};h.Kc=function(a,b){this.v[(a&this.w)>>>this.g].wb(a&this.i,b,a)};h.Nb=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Ob||c!=this.i?this.v[d].xb(c,b,a):(this.v[d++].wb(c,b&255,a),this.v[d&this.T].wb(0,b>>8&255,a+1))};function $c(a,b){return a.b[(b&a.I)>>>a.g]}
function Dc(a,b){var c;a.G=!1;a.ja++;var d=b&a.i,e=$c(a,b);Ob||d!=a.i?c=e.B(d,b):c=e.j(d,b)|$c(a,b+1).j(0,b+1)<<8;a.ja--;return c}function ad(a,b,c){a.G=!1;a.ja++;$c(a,b).D(b&a.i,c&255,b);a.ja--}function qc(a,b,c){a.G=!1;a.ja++;var d=b&a.i,e=$c(a,b);Ob||d!=a.i?e.G(d,c&65535,b):(e.D(d,c&255,b),$c(a,b+1).D(0,c>>8&255,b+1));a.ja--}
function Vc(a){for(var b=0,c=[],d=0;d<a.H;d++){var e=a.b[d];if(e.Wa||e.Nd){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function bd(a){for(var b=cd,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Jb)}return c}
function dd(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&ed;if(void 0!==a.Ma[n])return v("I/O address already registered: "+H(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ma[n]=[d,e,f,g,r,k||16,!1]}return!0}
function Wb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ba)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],u=g[5]||1,t=0;t<u;t++,f+=2)if(r&&1<u&&(r=g[4]+t),!dd(a,f,f,k,l,m,n,g[7]||b.ha,r||b.kb))return!1}}return!0}
function Yb(a,b){a.N.push(b)}h.La=function(a,b,c){this.G=!0;this.ja||(this.F&&B(this.F,4)&&C(this.F,"memory fault ("+c+") on "+O(this.F,a),!0,!0),b&&(this.f.R|=b),this.f.qa(4,0,a))};function fd(a){var b=a.G;a.G=!1;return b}function Wc(a,b,c){v("Memory block error ("+a+": "+H(b)+","+H(c)+")");return!1}var Mc=8192,ed=Mc-1,Xc=1,Zc=2;
function Nc(a,b){var c=-1,d=this.controller,e=d.Ma[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ma[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&B(this.f,16|e[5])&&C(this.f,e[4]+".readByte("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ja),c;d.La(b,16,3);c=255;this.f&&B(this.f,16)&&C(this.f,"warning: unconverted read access to byte @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ja);return c}
function Oc(a,b,c){var d=!1,e=this.controller,f=e.Ma[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ma[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&B(this.f,16|f[5])&&C(this.f,f[4]+".writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ja):(e.La(c,16,5),this.f&&B(this.f,16)&&C(this.f,"warning: unconverted write access to byte @"+O(this.f,c)+": "+O(this.f,
b),!0,!e.ja))}function Pc(a,b){var c=-1,d=this.controller;a=d.Ma[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&B(this.f,16|a[5])&&C(this.f,a[4]+".readWord("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ja),c;d.La(b,16,2);c=65535;this.f&&B(this.f,16)&&C(this.f,"warning: unconverted read access to word @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ja);return c}
function Qc(a,b,c){var d=!1,e=this.controller;a=e.Ma[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&B(this.f,16|a[5])&&C(this.f,a[4]+".writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ja):(e.La(c,16,4),this.f&&B(this.f,16)&&C(this.f,"warning: unconverted write access to word @"+O(this.f,c)+": "+O(this.f,b),!0,!e.ja))}function P(a){q.call(this,"Device",a,0,256);this.b={lh:0,Gc:-1}}p(P,q);h=P.prototype;
h.ta=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.F=d;var e=this;this.b.Gc=gd(c,function(){e.b.Gb|=128;e.b.Gb&64&&hd(e.f,e.b.fb);e.J&&J(e.J,1);id(e.f,e.b.Gc,1E3/60)});this.b.fb=jd(c,64,6,524288);Wb(b,this,kd);Yb(b,this.reset.bind(this));d&&ld(d,64,function(a){var b=e.f;md(e,"KIPDR",b.B[0],0,a[0]);md(e,"KDPDR",b.B[0],8,a[0]);md(e,"KIPAR",b.M[0],0,a[0]);md(e,"KDPAR",b.M[0],8,a[0],!0);md(e,"SIPDR",b.B[1],0,a[0]);md(e,"SDPDR",b.B[1],8,a[0]);md(e,"SIPAR",b.M[1],0,a[0]);md(e,"SDPAR",b.M[1],8,a[0],
!0);md(e,"UIPDR",b.B[3],0,a[0]);md(e,"UDPDR",b.B[3],8,a[0]);md(e,"UIPAR",b.M[3],0,a[0]);md(e,"UDPAR",b.M[3],8,a[0],!0);b.T&32&&md(e,"UNIMAP",b.Ea,-1,a[0])});A(this)};function md(a,b,c,d,e,f){a=a.F;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",k=!1,l=0,m=8;0>d&&(e=c.length,d=0,k=!0,l=3,m=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(k?"["+Oa(n)+"]":"")+":"),g+=" "+O(a,c[d+n],l);a.u(g+(f?"\n":""))}}h.reset=function(){this.b.Gb=128;id(this.f,this.b.Gc,1E3/60,!0)};h.ke=function(){return this.b.Gb};
h.wf=function(a){this.b.Gb=a&192;this.b.Gb&64||nd(this.f,this.b.fb)};h.me=function(){return od(this.f)};h.yf=function(a){pd(this.f,a&-129|this.f.S&128)};h.ne=function(){return qd(this.f)};h.oe=function(){return rd(this.f)};h.pe=function(){return this.f.T};h.zf=function(a){sd(this.f,a)};h.Xe=function(a){a=a>>1&63;var b=this.f.Ea[a>>1];return a&1?b>>16:b&65535};h.gg=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ea[c]=b&1?this.f.Ea[c]&65535|(a&63)<<16:this.f.Ea[c]&-65536|a&65534};
h.Qe=function(a){return this.f.B[1][a>>1&7]};h.$f=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Oe=function(a){return this.f.B[1][(a>>1&7)+8]};h.Yf=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Pe=function(a){return this.f.M[1][a>>1&7]};h.Zf=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Ne=function(a){return this.f.M[1][(a>>1&7)+8]};h.Xf=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.je=function(a){return this.f.B[0][a>>1&7]};
h.vf=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.he=function(a){return this.f.B[0][(a>>1&7)+8]};h.tf=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.ie=function(a){return this.f.M[0][a>>1&7]};h.uf=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.ge=function(a){return this.f.M[0][(a>>1&7)+8]};h.sf=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.We=function(a){return this.f.B[3][a>>1&7]};h.fg=function(a,b){this.f.B[3][b>>1&7]=a&65295};
h.Ue=function(a){return this.f.B[3][(a>>1&7)+8]};h.dg=function(a,b){this.f.B[3][(b>>1&7)+8]=a&65295};h.Ve=function(a){return this.f.M[3][a>>1&7]};h.eg=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Te=function(a){return this.f.M[3][(a>>1&7)+8]};h.cg=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Hb=function(a){a&=7;return this.f.w&2048?this.f.na[a]:this.f.g[a]};h.Lb=function(a,b){b&=7;this.f.w&2048?this.f.na[b]=a:this.f.g[b]=a};
h.ue=function(){return this.f.w&49152?this.f.V[0]:this.f.g[6]};h.Ef=function(a){this.f.w&49152?this.f.V[0]=a:this.f.g[6]=a};h.xe=function(){return this.f.g[7]};h.Hf=function(a){this.f.g[7]=a};h.Ib=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.na[a]};h.Mb=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.na[b]=a};h.ve=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.V[1]};h.Ff=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.V[1]=a};
h.we=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.V[3]};h.Gf=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.V[3]=a};h.fe=function(a){return this.f.Zb[a-65504>>1]};h.rf=function(a,b){this.f.Zb[b-65504>>1]=a};h.nd=function(a){return 65520==a?(bd(this.D)>>6)-1:0};h.sd=function(){};h.Se=function(){return 1};h.bg=function(){};h.ee=function(){return this.f.R};h.qf=function(){this.f.R=0};h.le=function(){return this.f.Yb};h.xf=function(a,b){b&1||(a&=255);this.f.Yb=a};
h.qe=function(a,b){return b?0:this.f.Va};h.Af=function(a){td(this.f,a)};h.Re=function(a,b){return b?0:this.f.sa&65280};h.ag=function(a){this.f.sa=a|255};h.te=function(){return ud(this.f)};h.Df=function(a){vd(this.f,a)};h.rd=function(a,b){B(this)&&C(this,"writeIgnored("+G(b)+"): "+G(a),!0,!0)};
var Q={},kd=(Q[61568]=[null,null,P.prototype.Xe,P.prototype.gg,"UNIMAP",64,1170],Q[62592]=[null,null,P.prototype.Qe,P.prototype.$f,"SIPDR",8,1145,64],Q[62608]=[null,null,P.prototype.Oe,P.prototype.Yf,"SDPDR",8,1145,64],Q[62624]=[null,null,P.prototype.Pe,P.prototype.Zf,"SIPAR",8,1145,64],Q[62640]=[null,null,P.prototype.Ne,P.prototype.Xf,"SDPAR",8,1145,64],Q[62656]=[null,null,P.prototype.je,P.prototype.vf,"KIPDR",8,1140,64],Q[62672]=[null,null,P.prototype.he,P.prototype.tf,"KDPDR",8,1145,64],Q[62688]=
[null,null,P.prototype.ie,P.prototype.uf,"KIPAR",8,1140,64],Q[62704]=[null,null,P.prototype.ge,P.prototype.sf,"KDPAR",8,1145,64],Q[62798]=[null,null,P.prototype.pe,P.prototype.zf,"MMR3",1,1145,64],Q[65382]=[null,null,P.prototype.ke,P.prototype.wf,"LKS"],Q[65402]=[null,null,P.prototype.me,P.prototype.yf,"MMR0",1,1140,64],Q[65404]=[null,null,P.prototype.ne,P.prototype.rd,"MMR1",1,1145,64],Q[65406]=[null,null,P.prototype.oe,P.prototype.rd,"MMR2",1,1140,64],Q[65408]=[null,null,P.prototype.We,P.prototype.fg,
"UIPDR",8,1140,64],Q[65424]=[null,null,P.prototype.Ue,P.prototype.dg,"UDPDR",8,1145,64],Q[65440]=[null,null,P.prototype.Ve,P.prototype.eg,"UIPAR",8,1140,64],Q[65456]=[null,null,P.prototype.Te,P.prototype.cg,"UDPAR",8,1145,64],Q[65472]=[null,null,P.prototype.Hb,P.prototype.Lb,"R0SET0"],Q[65473]=[null,null,P.prototype.Hb,P.prototype.Lb,"R1SET0"],Q[65474]=[null,null,P.prototype.Hb,P.prototype.Lb,"R2SET0"],Q[65475]=[null,null,P.prototype.Hb,P.prototype.Lb,"R3SET0"],Q[65476]=[null,null,P.prototype.Hb,
P.prototype.Lb,"R4SET0"],Q[65477]=[null,null,P.prototype.Hb,P.prototype.Lb,"R5SET0"],Q[65478]=[null,null,P.prototype.ue,P.prototype.Ef,"R6KERNEL"],Q[65479]=[null,null,P.prototype.xe,P.prototype.Hf,"R7KERNEL"],Q[65480]=[null,null,P.prototype.Ib,P.prototype.Mb,"R0SET1",1,1145],Q[65481]=[null,null,P.prototype.Ib,P.prototype.Mb,"R1SET1",1,1145],Q[65482]=[null,null,P.prototype.Ib,P.prototype.Mb,"R2SET1",1,1145],Q[65483]=[null,null,P.prototype.Ib,P.prototype.Mb,"R3SET1",1,1145],Q[65484]=[null,null,P.prototype.Ib,
P.prototype.Mb,"R4SET1",1,1145],Q[65485]=[null,null,P.prototype.Ib,P.prototype.Mb,"R5SET1",1,1145],Q[65486]=[null,null,P.prototype.ve,P.prototype.Ff,"R6SUPER",1,1145],Q[65487]=[null,null,P.prototype.we,P.prototype.Gf,"R6USER",1,1145],Q[65504]=[null,null,P.prototype.fe,P.prototype.rf,"CTRL",8,1170],Q[65520]=[null,null,P.prototype.nd,P.prototype.sd,"LSIZE",1,1170],Q[65522]=[null,null,P.prototype.nd,P.prototype.sd,"HSIZE",1,1170],Q[65524]=[null,null,P.prototype.Se,P.prototype.bg,"SYSID",1,1170],Q[65526]=
[null,null,P.prototype.ee,P.prototype.qf,"ERR",1,1170],Q[65528]=[null,null,P.prototype.le,P.prototype.xf,"MBR",1,1170],Q[65530]=[null,null,P.prototype.qe,P.prototype.Af,"PIR"],Q[65532]=[null,null,P.prototype.Re,P.prototype.ag,"SLR"],Q[65534]=[null,null,P.prototype.te,P.prototype.Df,"PSW"],Q);
vb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new P(c);Ca(c,d);break;case "pc11":c=new Ed(c);Ca(c,d);break;case "rl11":c=new Fd(c);Ca(c,d);break;case "rk11":c=new R(c),Ca(c,d)}}});
function L(a,b,c,d,e,f){this.C=a;this.id=Gd+=2;this.b=null;this.K=b;this.Jb=c;this.size=d||0;this.type=e||Hd;this.J=e==Id;this.f=this.controller=null;this.ub=this.j=this.Cc;this.ka=this.B=this.Dc;this.wb=this.D=this.Kb;this.xb=this.G=this.kc;this.F=this.i=0;Rc(this);this.Wa=this.Nd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Jd(this,f.Hd);else if(Db)this.v=new ArrayBuffer(this.size),this.w=new DataView(this.v,0,this.size),this.g=new Uint8Array(this.v,0,this.size),this.H=new Uint16Array(this.v,
0,this.size>>1),this.b=new Int32Array(this.v,0,this.size>>2),Jd(this,Kd?Ld:Md);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Jd(this,Nd)}else Jd(this)}h=L.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Db)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(Db)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.Wa=!0}return!1};function Jd(a,b){b||(b=Od);Pd(a,b,void 0);Qd(a,b,void 0)}function Pd(a,b,c){c&&a.F||(a.ub=b[0]||a.Cc,a.ka=b[2]||a.Dc);if(c||void 0===c)a.j=b[0]||a.Cc,a.B=b[2]||a.Dc}function Qd(a,b,c){c&&a.i||(a.wb=!a.J&&b[1]||a.Kb,a.xb=!a.J&&b[3]||a.kc);if(c||void 0===c)a.D=b[1]||a.Kb,a.G=b[3]||a.kc}
h.pb=function(a,b){b?this.i++||Qd(this,Rd,!1):this.F++||Pd(this,Rd,!1)};function Sd(a,b){b?--a.i||(a.wb=a.J?a.Kb:a.D,a.xb=a.J?a.kc:a.G):--a.F||(a.ub=a.j,a.ka=a.B)}function Rc(a,b,c){a.f=b;a.F=a.i=0;c&&((a.F=c.F)&&Pd(a,Rd,!1),(a.i=c.i)&&Qd(a,Rd,!1))}h.Cc=function(a,b){this.f&&B(this.f,32)&&C(this.f,"attempt to read invalid address "+O(this.f,b),!0);this.C.La(b,32,2);return 255};
h.Kb=function(a,b,c){this.f&&B(this.f,32)&&C(this.f,"attempt to write "+O(this.f,b)+" to invalid addresses "+O(this.f,c),!0);this.C.La(c,32,4)};h.Dc=function(a,b){return this.ub(a++,b++)|this.ub(a,b)<<8};h.kc=function(a,b,c){this.wb(a++,b&255,c++);this.wb(a,b>>8,c)};h.ce=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.cf=function(a,b){Nb&&a&1&&this.C.La(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};
h.nf=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Wa=!0};h.kg=function(a,b,c){Nb&&a&1&&this.C.La(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Wa=!0};h.ae=function(a,b){this.f&&null!=this.K&&Td(this.f,this.K+a);return this.j(a,b)};h.Ze=function(a,b){this.f&&null!=this.K&&Td(this.f,this.K+a,2);return this.B(a,b)};
h.lf=function(a,b,c){this.f&&null!=this.K&&Ud(this.f,this.K+a);this.J?this.Kb(0,b,c):this.D(a,b,c)};h.ig=function(a,b,c){this.f&&null!=this.K&&Ud(this.f,this.K+a,2);this.J?this.Kb(0,b,c):this.G(a,b,c)};h.$d=function(a){return this.g[a]};h.be=function(a,b){a=this.g[a];this.f&&B(this.f,32)&&C(this.f,"Memory.readByte("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.Ye=function(a,b){Nb&&a&1&&this.C.La(b,64,2);return this.w.getUint16(a,!0)};
h.bf=function(a,b){Nb&&a&1&&this.C.La(b,64,2);a=!Ob&&a&1?this.g[a]|this.g[a+1]<<8:this.H[a>>1];this.f&&B(this.f,32)&&C(this.f,"Memory.readWord("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.kf=function(a,b){this.g[a]=b;this.Wa=!0};h.mf=function(a,b,c){this.g[a]=b;this.Wa=!0;this.f&&B(this.f,32)&&C(this.f,"Memory.writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0)};h.hg=function(a,b,c){Nb&&a&1&&this.C.La(c,64,4);this.w.setUint16(a,b,!0);this.Wa=!0};
h.jg=function(a,b,c){Nb&&a&1&&this.C.La(c,64,4);!Ob&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.H[a>>1]=b;this.Wa=!0;this.f&&B(this.f,32)&&C(this.f,"Memory.writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0)};var Hd=0,cd=1,Id=2,Tc=4,Yc=["NONE","RAM","ROM","VID","H/W"],Gd=0,Od=[],Nd=[L.prototype.ce,L.prototype.nf,L.prototype.cf,L.prototype.kg],Rd=[L.prototype.ae,L.prototype.lf,L.prototype.Ze,L.prototype.ig];
if(Db)var Md=[L.prototype.$d,L.prototype.kf,L.prototype.Ye,L.prototype.hg],Ld=[L.prototype.be,L.prototype.mf,L.prototype.bf,L.prototype.jg];var Vd;if(Db){var Wd=new ArrayBuffer(2);(new DataView(Wd)).setUint16(0,256,!0);Vd=256===(new Uint16Array(Wd))[0]}else Vd=!1;var Kd=Vd;
function Xd(a,b){q.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.oc=0;this.lc=b;this.bb=c;this.vc=Math.round(this.lc/1E4)/100;this.nb=this.vc*this.bb;this.wc=this.Vb=this.qb=this.mc=0;this.A.U=!1;this.A.hc=!1;this.A.Ia=a.autoStart;"string"==typeof this.A.Ia&&(this.A.Ia="true"==this.A.Ia);this.A.zb=!1;this.Sb=this.Bb=0;this.Tb=+a.csStart;this.Ab=+a.csInterval;this.Cb=+a.csStop;this.Fa=[];this.Tc=this.gf.bind(this);this.cb=this.Ta=this.ab=this.b=this.ga=this.Sa=this.Rb=this.$a=this.Db=
this.xc=this.mb=0;this.ra=null;A(this)}p(Xd,q);h=Xd.prototype;h.ta=function(a,b,c,d){this.J=a;this.D=b;this.F=d;this.ra=a.i;for(a=0;a<Yd.length;a++)(b=this.C[Yd[a]])&&this.J.pa(null,Yd[a],b);A(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.za=function(a,b){var c=Zd(this.J,"autoStart");null!=c?this.A.Ia="true"==c?!0:"false"==c?!1:!!c:null==this.A.Ia&&(this.A.Ia=!this.F&&void 0===this.C.run);if(!b){if(a){$d(this);if(!this.restore(a))return!1;ae(this)}else this.reset();this.F?(a=this.F,b=this.A.Ia,a.Da=!0,a.u("Type ? for help with PDPjs Debugger commands"),be(a),b||ce(a),a.sa&&(b=a.sa,a.sa=null,de(a,b))):this.u("No debugger detected");this.A.Ia||this.u("CPU will not be auto-started "+(this.ra?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.ya=function(a){return a?this.save():!0};h.Ia=function(){return this.A.U?!0:this.A.Ia?(jc(this),!0):!1};h.gd=function(){return 0};function ae(a){void 0===a.Tb&&(a.Tb=0);void 0===a.Ab&&(a.Ab=-1);void 0===a.Cb&&(a.Cb=-1);a.A.zb=0<=a.Tb&&0<a.Ab;a.A.zb&&(a.Sb=0,a.Bb=a.Tb-a.cb)}function nc(a,b){if(a.A.zb){var c=!1;a.Sb=a.Sb+a.gd()|0;a.Bb-=b;0>=a.Bb&&(a.Bb+=a.Ab,c=!0);0<=a.Cb&&a.Cb<=ee(a)&&(a.Ab=a.Cb=-1,ae(a),a.Z(),c=!0);c&&a.u(ee(a)+" cycles: checksum="+H(a.Sb))}}
h.pa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.C[b]=c,!0;case "run":return this.C[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.fa)a=!0;else{var b=null,c,k=za(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.fa);c++);c==k.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.dc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.U?d.Z():jc(d))},!0;
case "speed":return this.C[b]=c,!0;case "setSpeed":return this.C[b]=c,c.onclick=function(){fe(d,d.bb<<1,!0)},c.textContent=this.nb.toFixed(2)+"Mhz",!0}return!1};function mc(a,b,c){a.cb+=b;c&&(a.ab=a.b=a.ga=0)}function ge(a,b){var c=1;b&&1<a.bb&&a.mb&&(c=a.mb/a.vc);a.wc=Math.round(1E3/he);a.Vb=Math.floor(a.lc/he*c);b||(a.qb=a.Vb);a.mc=0}function ee(a){return a.cb+a.Ta+a.ab-a.b}function $d(a){a.mb=0;a.xc=0;a.cb=a.Ta=a.ab=a.b=a.ga=0;ae(a);fe(a,1)}
function fe(a,b,c){var d=!1;if(void 0!==b){.8>a.mb/a.nb?b=1:d=!0;a.bb=b;b=a.vc*a.bb;if(a.nb!=b){a.nb=b;b=a.nb.toFixed(2)+"Mhz";var e=a.C.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.J&&ie(a.J)}mc(a,a.Ta);a.Ta=0;a.Sa=xa();a.$a=0;ge(a);return d}function gd(a,b){var c=a.Fa.length;a.Fa.push([-1,b]);return c}function id(a,b,c,d){0<=b&&b<a.Fa.length&&(d||0>a.Fa[b][0])&&(c=a.lc*a.bb/1E3*c|0,a.A.U&&(c+=je(a)),a.Fa[b][0]=c)}
function ke(a,b){for(var c=a.Fa.length-1;0<=c;c--){var d=a.Fa[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function lc(a,b){for(var c=a.Fa.length-1;0<=c;c--){var d=a.Fa[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function je(a,b){var c=a.ab-=a.b;a.b=a.ga=0;b&&(a.ab=0);return c}
h.gf=function(){if(this.A.U){this.mc>=this.lc&&ge(this,!0);this.Db=0;this.Rb=xa();if(this.$a){var a=this.Rb-this.$a;a>this.wc&&(this.Sa+=a,this.Sa>this.Rb&&(this.Sa=this.Rb))}try{do{var b=ke(this,this.A.zb?1:this.Vb);try{this.bc(b)}catch(e){if("number"!=typeof e)throw e;}b=je(this,!0);this.Db+=b;this.Ta+=b;nc(this,b);lc(this,b);this.qb-=b;if(0>=this.qb){this.qb+=this.Vb;++this.xc>=le&&(this.J&&J(this.J,void 0),this.xc=0);break}}while(this.A.U)}catch(e){this.Z();this.J&&this.J.stop(xa(),ee(this));
Da(this,e.stack||e.message);return}if(this.A.U){a=setTimeout;b=this.Tc;this.$a=xa();var c=this.wc;this.Db&&(c=Math.round(c*this.Db/this.Vb));var c=c-(this.$a-this.Rb),d=this.$a-this.Sa;d&&(this.mb=Math.round(this.Ta/(10*d))/100,864E5<=d&&(this.cb=0,fe(this)));if(0>c||this.mb<this.nb)-1E3>c&&(this.Sa-=c),c=0;this.mc+=this.Db;this.$a+=c;a(b,c)}}};
function jc(a,b){if(!Ea(a))if(a.A.U)a.u(a.toString()+" busy");else{fe(a);a.A.U=!0;a.A.hc=!0;var c=a.C.run;c&&(c.textContent="Halt");a.J&&(b&&ie(a.J,!0),a.J.start(a.Sa,ee(a)));a.F||a.status("Started");setTimeout(a.Tc,0)}}h.bc=function(){return 0};h.Z=function(a){var b=!1;if(this.A.U){je(this);mc(this,this.Ta);this.Ta=0;this.A.U=!1;if(b=this.C.run)b.textContent="Run";this.J&&this.J.stop(xa(),ee(this));b=!0;this.F||this.status("Stopped")}this.A.complete=a;return b};var he=30,le=15,Yd=["power","reset"];
function me(a){var b=+a.model||1170;Xd.call(this,a,6666667);this.ba=b;this.Qc=+a.addrReset||0;this.w=this.G=this.H=this.L=this.I=0;this.g=this.na=this.V=[];this.N=0;this.uc=[];this.B=this.M=this.Ea=this.Zb=[];this.nc=this.Za=this.P=this.Pc=this.Ha=this.ib=this.ob=this.Da=this.R=this.Va=this.sa=this.S=this.Eb=this.Fb=this.T=this.Ua=this.v=this.j=this.jc=this.W=this.Y=this.i=this.Yb=0;this.Sc=255;1120>=this.ba?(this.Oc=ne.bind(this),this.yb=this.Ld,this.nc=8,this.Sc=-1,this.Xc=255,this.Uc=0):(this.Oc=
oe.bind(this),this.yb=this.Md,this.Xc=~(1792|(1140>=this.ba?2048:0))&65535,this.Uc=1140<this.ba?2048:0);this.ma=0;this.la=null;this.tc=[];this.A.complete=!1;this.Ob=this.pc=this.fd;this.Pb=this.qc=this.ld;this.ic=this.rc=this.pd;this.Qb=this.sc=this.qd;this.Ga=this.jb=this.Wb=this.Xb=0;this.Ca=this.kd;this.ka=this.Ec;this.xb=this.Hc;this.Zc=this.Yc=0}p(me,Xd);h=me.prototype;
h.ta=function(a,b,c,d){Xd.prototype.ta.call(this,a,b,c,d);this.pc=b.Jc.bind(b);this.qc=b.ac.bind(b);this.rc=b.Kc.bind(b);this.sc=b.Nb.bind(b)};h.za=function(a,b){for(var c=192,d=0;d<this.tc.length;d++){var e=this.tc[d];0>e.$b&&(e.$b=c,c+=4)}return Xd.prototype.za.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ba);this.A.U&&this.Z();this.G=65536;this.H=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Qc,-1,-2,-3,-4,-5,-6,-7,-8];this.na=[0,0,0,0,0,0];this.V=[0,0,0,0];this.N=0;this.uc=[4,2,0,1];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ea=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Zb=[0,0,0,0,0,0,0,0];this.v=this.j=this.jc=this.W=this.Y=this.i=this.Yb=0;this.Ua=-1;hc(this);$d(this);this.A.error=!1;Xd.prototype.reset.call(this)};function hc(a){a.S=0;a.Eb=0;a.Fb=0;a.T=0;a.R=0;a.Va=0;a.sa=255;a.Ha=0;a.ib=0;a.ob=0;a.Da=262143;a.Za=a.g[7];a.P=0;a.la=null;a.D&&(pe(a),a.Pc=bd(a.D))}
function pe(a){a.Ob=a.pc;a.Pb=a.qc;a.ic=a.rc;a.Qb=a.sc;a.Wb&&(a.Ob=a.fd,a.Pb=a.ld);a.Xb&&(a.ic=a.pd,a.Qb=a.qd);a.Ha?(a.Ga=65536,a.jb=a.T&16?4186112:253952,a.Ca=a.kd,a.ka=a.Wb?a.af:a.Ec,a.xb=a.Xb?a.mg:a.Hc,Uc(a.D,a.T&16?22:18)):(a.Ga=0,a.jb=57344,a.Ca=a.Od,a.ka=a.Wb?a.$e:a.od,a.xb=a.Xb?a.lg:a.td,Uc(a.D,16))}function od(a){var b=a.S;b&57344||(b=b&-3199|a.ib<<5|a.ob<<1);return b}
function pd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.Eb=a.P>>16&65535,a.Fb=a.P&65535);a.S=b;a.ib=(b&96)>>5;a.ob=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ha!=c&&(a.Ha=c,pe(a))}}function qd(a){a.S&57344||(a.Eb=a.P>>16&65535);a=a.Eb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function rd(a){a.S&57344||(a.Fb=a.P&65535);return a.Fb}function sd(a,b){1170>a.ba&&(b&=-49);a.T!=b&&(a.T=b,a.Da=b&16?4194303:262143,pe(a))}
function qe(a,b,c){a.Qc=b;a.D.reset();hc(a);re(a,b);vd(a,0);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.A.U||jc(a)}else a.F?a.Z()||be(a.F):!1===c&&a.Z();!a.A.U&&a.ra&&a.ra.stop()}h.gd=function(){return 0};h.save=function(){var a=new M(this);a.set(0,[this.g,this.na,this.V,this.Ea,this.Zb,this.R,this.Yb,this.Va,this.sa,this.Ua,this.N,this.i,this.S,this.Eb,this.Fb,this.T,this.ib,this.ob,this.B,this.M,this.Ha,this.Da,this.Za,this.P]);a.set(1,[ud(this)]);a.set(2,[this.cb,this.bb]);return a.data()};
h.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.g=b.next().value;this.na=b.next().value;this.V=b.next().value;this.Ea=b.next().value;this.Zb=b.next().value;this.R=b.next().value;this.Yb=b.next().value;this.Va=b.next().value;this.sa=b.next().value;this.Ua=b.next().value;this.N=b.next().value;this.i=b.next().value;this.S=b.next().value;this.Eb=b.next().value;this.Fb=b.next().value;this.T=b.next().value;this.ib=b.next().value;this.ob=b.next().value;
this.B=b.next().value;this.M=b.next().value;this.Ha=b.next().value;this.Da=b.next().value;this.Za=b.next().value;this.P=b.next().value;b=a[1];vd(this,b[0]);b=a[2];this.cb=b[0];fe(this,b[1]);return!0};function se(a){return a.G&65536?1:0}function te(a){return a.H&32768?2:0}function ue(a){return a.L&65535?0:4}function ve(a){return a.I&32768?8:0}function we(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function S(a,b,c){c&&(re(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function re(a,b){a.g[7]=b&65535}
function jd(a,b,c,d){c={$b:b,gb:c,message:d||0,next:null};c.name=Qb[b];a.tc.push(c);return c}function xe(a,b){var c=a.la;if(c==b)a.la=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.la&&(a.i|=1)}function hd(a,b){if(b){if(b!=a.la){var c=a.la;if(!c||c.gb<=b.gb)b.next=c,a.la=b;else{do{var d=c.next;if(!d||d.gb<=b.gb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&B(a,b.message|8)&&C(a,"setIRQ(vector="+G(b.$b)+",priority="+b.gb+")",!0,!0)}}
function nd(a,b){b&&(xe(a,b),b.message&&B(a,b.message|8)&&C(a,"clearIRQ(vector="+G(b.$b)+",priority="+b.gb+")",!0,!0))}function ye(a){return a.i&64?(a.qa(168,64,-6),!0):a.i&32?(a.qa(4,32,-5),!0):a.i&16?(a.qa(12,16,-7),!0):!1}function ud(a){return a.w=a.w&63728|ve(a)|ue(a)|te(a)|se(a)}
function vd(a,b){b&=a.Xc;a.I=b<<12;a.L=~b&4;a.H=b<<14;a.G=b<<16;if((b^a.w)&a.Uc)for(var c=a.na.length;0<=--c;){var d=a.g[c];a.g[c]=a.na[c];a.na[c]=d}a.N=b>>14&3;c=a.w>>14&3;a.N!=c&&(a.V[c]=a.g[6],a.g[6]=a.V[a.N]);a.w=b;a.i&=-3;a.i|=a.la?2:1}function td(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.Va=b}h.Ba=function(a){this.I=this.L=a;this.H=0};h.hb=function(a,b){this.I=this.L=this.G=a;this.H=b||0};function ze(a,b){a.I=a.L=a.G=b;a.H=a.I^a.G>>1}
function Ae(a,b,c,d){a.I=a.L=a.G=b;a.H=(c^d)&(d^b)}h.qa=function(a,b,c){if(!this.ma){0>this.Ua?this.Ua=ud(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.R|=4,this.g[6]=a=4);if(-1!=c){this.P=a|4143316992;this.N=0;var d=this.ka(a|this.Ga),e=this.ka(a+2&65535|this.Ga);vd(this,e&-12289|this.Ua>>2&12288);Be(this,this.Ua);Be(this,this.g[7]);re(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.Ua=-1;this.Zc=a;this.Yc=c;-1==c&&this.Z();if(-4<=c)throw a;}};
function Ce(a){var b=De(a),c=De(a);a.w&49152&&(c=c&-225|a.w&63712);re(a,b);vd(a,c);a.i&=-17}function Ee(a,b){var c=b>>13&31;31>c&&(b=a.T&32?a.Ea[c]+(b&8191)&4194303:b&-3932161);return b}
function Fe(a,b,c){var d=[];if(c){c=Ee(a,b);var e=b>>13&31;d.push(c);d.push(e);a.T&32&&(d.push(a.Ea[e]),d.push(b&8191))}else if(a.Ha){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.T&a.uc[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.Da;3932160<=c&&(c=Ee(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.Da)}else c=b&65535,57344<=c&&(c|=a.jb),d.push(c);return d}
function Cc(a,b,c){var d,e,f;if(!(c&a.Ha))return f=b&65535,57344<=f&&(f|=a.jb),f;d=b>>13;a.T&a.uc[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.Da;3932160<=f&&(f=Ee(a,f));if(a.ma)return f;f>=a.Pc&&f<a.jb?(a.R|=32,a.qa(4,0,f)):f&1&&!(c&1)&&(a.R|=64,a.qa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.Da)||a.N)a.ib=a.N,a.ob=d;g&&(g&57344&&(0<=a.Ua&&(g|=128),a.S&57344||(g|=a.S&4096|a.ib<<5|a.ob<<1,pd(a,a.S&-61695|g&61694)),a.qa(168,64,-2)),a.S&61440||!(f<(4191360&a.Da)||f>(4194239&a.Da))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function De(a){var b=a.ka(a.g[6]|a.Ga);a.g[6]=a.g[6]+2&65535;return b}function Be(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.P=a.P&65535|(a.P&-65536)<<8|16121856;a.i&256||a.yb(4,-2,c);a.xb(c,b)}
function Ge(a,b,c,d){var e,f,g=d&8?0:a.Ga;switch(b){case 0:return a.qa(4,0,-3),0;case 1:return 6==c&&a.yb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.yb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.ka(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.yb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.ka(e)|g;a.b-=8;break;case 6:return e=a.ka(we(a,2)),e=e+a.g[c]&65535,6==c&&a.yb(d,
0,e),a.b-=6,e|g;case 7:return e=a.ka(we(a,2)),e=e+a.g[c]&65535,e=a.ka(e|a.Ga),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.P=a.P&65535|(a.P&-65536)<<8|(f<<3&248|c)<<16;return e}h.Ld=function(a,b,c){!this.N&&0>=b&&c<=this.sa&&(this.i|=32)};h.Md=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.sa&&(c<=this.sa-32?this.qa(4,0,-4):(this.R|=8,this.i|=32)))};h.fd=function(a){this.F&&Td(this.F,a,1);return this.pc(a)};h.ld=function(a){this.F&&Td(this.F,a,2);return this.qc(a)};
h.pd=function(a,b){this.F&&Ud(this.F,a,1);this.rc(a,b)};h.qd=function(a,b){this.F&&Ud(this.F,a,2);this.sc(a,b)};function Ec(a,b){a.ma++;b=a.D.ac(Cc(a,b,2));a.ma--;return b}function He(a,b){(b?--a.Xb:--a.Wb)||pe(a)}h.Od=function(a,b,c){return Ge(this,a,b,c)};h.kd=function(a,b,c){return Cc(this,Ge(this,a,b,c),c)};h.od=function(a){return this.D.ac(this.Za=a)};h.$e=function(a){this.F&&Td(this.F,a,2);return this.od(a)};h.Ec=function(a){return this.D.ac(this.Za=Cc(this,a,2))};
h.af=function(a){this.F&&Td(this.F,a,2);return this.Ec(a)};h.td=function(a,b){this.D.Nb(this.Za=a,b)};h.lg=function(a,b){this.F&&Ud(this.F,a,2);this.td(a,b)};h.Hc=function(a,b){this.D.Nb(this.Za=Cc(this,a,4),b)};h.mg=function(a,b){this.F&&Ud(this.F,a,2);this.Hc(a,b)};function Ie(a,b,c){var d=a.j=b&7;(b=a.v=(b&56)>>3)?(d=Ge(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.ka(d|c&a.Ga),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.V[a.w>>12&3];return c}
function Je(a,b,c,d){a.P=a.P&65535|1441792;var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=Ge(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Cc(a,e|c&65536,4),a.N=a.w>>14&3,a.Qb(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.V[a.w>>12&3]=d}function Ke(a,b){b>>=6;var c=a.Y=b&7;return(b=a.W=(b&56)>>3)?a.Ob(a.Ca(b,c,3)):a.g[c+a.nc]&a.Sc}function Le(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.W=(b&56)>>3)?c=a.Pb(a.Ca(b,d,2)):c=a.g[d+a.nc];return c}function Me(a,b){var c=a.j=b&7;b=a.v=(b&56)>>3;return Ge(a,b,c,8)}
function hf(a,b){var c=a.j=b&7;return(b=a.v=(b&56)>>3)?a.Ob(a.Ca(b,c,3)):a.g[c]&255}function jf(a,b){var c,d=a.j=b&7;(b=a.v=(b&56)>>3)?c=a.Pb(a.Ca(b,d,2)):c=a.g[d];return c}function kf(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.jc=a.Ca(b,e,7),c=0>c?a.g[-c-1]&255:c,a.ic(e,d.call(a,c,a.Ob(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function T(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.Ca(b,e,6),a.Qb(e,d.call(a,0>c?a.g[-c-1]:c,a.Pb(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function lf(a,b,c,d,e){var f=a.j=b&7;(b=a.v=(b&56)>>3)?(d=a.Ca(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.ic(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function mf(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.Ca(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.Qb(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.bc=function(a){this.A.complete=!0;var b=this.F?nf(this.F)?1:this.A.hc?-1:0:0,c=a?this.A.hc?0:1:-1;this.A.hc=!1;this.ab=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(of(this.F,this.g[7],c)){this.Z();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.Va&224)>>5,f=this.la&&this.la.gb>e?this.la:null;f&&(d=f.$b,e=f.gb);e>(this.w&224)>>5?(this.i&8&&(we(this,2),this.i&=-9),this.qa(d,0,-10),e=!0):e=!1;e&&(f&&xe(this,f),a=!0);this.la||this.Va||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&of(this.F,this.g[7],c)){this.Z();break}if(0>c)break}if(this.i&112&&ye(this)){if(this.i&4&&of(this.F,this.g[7],c)){this.Z();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.P=this.g[7];f=this.ka(a);this.g[7]=a+2&65535;this.Oc(f)}while(0<this.b);return this.A.complete?this.ab-this.b:void 0===this.A.complete?0:-1};vb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new me(d);Ca(d,c)}});
function pf(a,b){var c=b+a;this.I=this.L=this.G=c;this.H=(a^c)&(b^c);return c&65535}function qf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.G=d;this.H=(a<<8^d)&(b<<8^d);return c&255}function rf(a,b){a=b<<1;ze(this,a);return a&65535}function sf(a,b){a=b<<1;ze(this,a<<8);return a&255}function tf(a,b){a=b&32768|b>>1|b<<16;ze(this,a);return a&65535}function uf(a,b){a=b&128|b>>1|b<<8;ze(this,a<<8);return a&255}function vf(a,b){a=b&~a;this.Ba(a);return a}function wf(a,b){a=b&~a;this.Ba(a<<8);return a}
function xf(a,b){a|=b;this.Ba(a);return a}function yf(a,b){a|=b;this.Ba(a<<8);return a}function zf(a,b){a=~b|65536;this.hb(a);return a&65535}function Af(a,b){a=~b|256;this.hb(a<<8);return a&255}function Bf(a,b){this.I=this.L=a=b-a;this.H=b&(b^a);return a&65535}function Cf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.H=b&(b^c);return a&255}function Df(a,b){this.I=this.L=a=b+a;this.H=a&(b^a);return a&65535}function Ef(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.H=c&(b<<8^c);return a&255}
function Ff(a,b){a=-b;this.hb(a,a&b&32768);return a&65535}function Gf(a,b){a=-b;this.hb(a<<8,(a&b&128)<<8);return a&255}function Hf(a,b){a=b<<1|this.G>>16&1;ze(this,a);return a&65535}function If(a,b){a=b<<1|this.G>>16&1;ze(this,a<<8);return a&255}function Jf(a,b){a=(this.G&65536|b)>>1|b<<16;ze(this,a);return a&65535}function Kf(a,b){a=((this.G&65536)>>8|b)>>1|b<<8;ze(this,a<<8);return a&255}function Lf(a,b){var c=b-a;Ae(this,c,a,b);return c&65535}
function Mf(a,b){var c=b-a;Ae(this,c<<8,a<<8,b<<8);return c&255}function Nf(a,b){this.I=this.L=b&65280;this.H=this.G=0;return(b<<8|b>>8)&65535}function Of(a,b){a^=b;this.Ba(a);return a&65535}function Pf(a){T(this,a,Le(this,a),pf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}
function Qf(a){var b=jf(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.G=this.H=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.G=c<<17-b,c>>=b;else if(b)if(16<b)this.H=c,c=0;else{this.G=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.H=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.v?6:7)+b}
function Rf(a){var b=jf(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.G=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.G=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.H=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.I=d>>16;this.L=d>>16|d;this.b-=(this.v?6:7)+b}function Sf(a){S(this,a,!se(this))}function Tf(a){S(this,a,se(this))}
function Uf(a){T(this,a,Le(this,a),vf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Vf(a){kf(this,a,Ke(this,a),wf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Wf(a){T(this,a,Le(this,a),xf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Xf(a){kf(this,a,Ke(this,a),yf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}
function Yf(a){var b=Le(this,a);a=jf(this,a);this.Ba((0>b?this.g[-b-1]:b)&a);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}function Zf(a){var b=Ke(this,a);a=hf(this,a);this.Ba(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}function $f(a){S(this,a,ue(this))}function ag(a){S(this,a,!ve(this)==!te(this))}function bg(a){S(this,a,!ue(this)&&!ve(this)==!te(this))}function cg(a){S(this,a,!se(this)&&!ue(this))}
function dg(a){S(this,a,ue(this)||!ve(this)!=!te(this))}function eg(a){S(this,a,se(this)||ue(this))}function fg(a){S(this,a,!ve(this)!=!te(this))}function gg(a){S(this,a,ve(this))}function hg(a){S(this,a,!ue(this))}function ig(a){S(this,a,!ve(this))}function jg(){this.qa(12,0,-9)}function kg(a){S(this,a,!0)}function lg(a){S(this,a,!te(this))}function mg(a){S(this,a,te(this))}function ng(a){a&1&&(this.G=0);a&2&&(this.H=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function og(a){var b=Le(this,a);a=jf(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;Ae(this,c,a,b);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}function pg(a){var b=Ke(this,a);a=hf(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);Ae(this,c,a,b);this.b-=this.v?4+(this.Y&&6<=this.j?1:0):(this.W?4:3)+(7==this.j?2:0)}
function qg(a){var b=jf(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.H=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.H=32768,this.G=65536,this.b-=7}function rg(){this.qa(24,0,-9);this.b-=20}
function sg(){this.w&49152?(this.R|=128,this.qa(4,0,-8)):(this.ra&&1120==this.ba&&this.ra.setData(this.g[0],!0),this.F?tg(this.F):this.Z());this.b-=7}function ug(){this.qa(16,0,-9);this.b-=20}var vg=[0,7,7,10,7,11,9,13];function wg(a){this.ga=this.b;re(this,Me(this,a));this.b=this.ga-vg[this.v]}var xg=[0,14,14,17,14,18,16,20];function yg(a){this.ga=this.b;var b=Me(this,a);a=a>>6&7;Be(this,this.g[a]);this.g[a]=this.g[7];re(this,b);this.b=this.ga-xg[this.v]}
var zg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Ag(a){var b=Le(this,a);this.ga=this.b;mf(this,a,b,this.Ba);this.b=this.ga-zg[(this.W?8:0)+this.v]+(7!=this.j||this.v?0:2)}function Bg(a){var b=Ke(this,a);lf(this,a,b,65535,this.Ba);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}var Cg=[7,13,13,17,14,18,17,21];
function Dg(a){var b=jf(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.I=b>>16;this.L=this.I|b;this.H=0;this.G=-32768>b||32767<b?65536:0;this.b-=23}function Eg(){this.b-=5}function Fg(){this.w&49152||(this.D.reset(),hc(this),this.ra&&this.ra.setData(this.g[0],!0));this.b-=667}function Gg(a){if(a&8)U.call(this,a);else{var b=De(this);a&=7;7==a?re(this,b):(re(this,this.g[a]),this.g[a]=b);this.b-=9}}
function Hg(){Ce(this);this.b-=13}function Ig(a){a&1&&(this.G=65536);a&2&&(this.H=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Jg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)re(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Kg(a){T(this,a,Le(this,a),Lf);this.b-=this.v?9+(this.Y&&6<=this.j?1:0):(this.W?5:3)+(7==this.j?2:0)}function Lg(a){T(this,a,0,Nf);this.b-=this.v?9:3+(7==this.j?2:0)}function Mg(){this.qa(28,0,-9)}
function Ng(){this.ra&&(this.ra.Fc(this.g[7],!0),this.ra.setData(this.g[0],!0));this.i|=8;we(this,-2);this.b-=3}function Og(a){T(this,a,this.g[(a>>6&7)+this.nc],Of);this.b-=this.v?9:3+(7==this.j?2:0)}function U(a){var b;if(b=this.F)b=this.F,B(b,1)?(C(b,"undefined opcode "+O(b,a),!0,!0),b=tg(b)):b=!1;b||this.qa(8,0,-9)}function ne(a){Pg[a>>12].call(this,a)}function Qg(a){Rg[a>>6&3].call(this,a)}function Sg(a){Tg[a>>6&3].call(this,a)}function Ug(a){Vg[a>>6&3].call(this,a)}
function Wg(a){Xg[a&15].call(this,a)}function Yg(a){Zg[a&15].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)}
var Pg=[function(a){fh[a>>8&15].call(this,a)},Ag,og,Yf,Uf,Wf,Pf,U,function(a){gh[a>>8&15].call(this,a)},Bg,pg,Zf,Vf,Xf,Kg,U],fh=[function(a){hh[a>>4&15].call(this,a)},kg,hg,$f,ag,fg,bg,dg,yg,yg,Qg,Sg,Ug,U,U,U],Rg=[function(a){mf(this,a,0,this.hb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,zf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Df);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Bf);this.b-=this.v?9:3+(7==this.j?2:0)}],Tg=[function(a){T(this,a,0,Ff);
this.b-=this.v?11:6},function(a){T(this,a,se(this)?1:0,pf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,se(this)?1:0,Lf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=jf(this,a);this.hb(a);this.b-=this.v?4:3+(7==this.j?2:0)}],Vg=[function(a){T(this,a,0,Jf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Hf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,tf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,rf);this.b-=this.v?9:3+(7==this.j?2:0)}],hh=
[function(a){ih[a&15].call(this,a)},U,U,U,wg,wg,wg,wg,Gg,U,Wg,Yg,Lg,Lg,Lg,Lg],ih=[sg,Ng,Hg,jg,ug,Fg,U,U,U,U,U,U,U,U,U,U],Xg=[Eg,function(){this.G=0;this.b-=5},function(){this.H=0;this.b-=5},ng,function(){this.L=1;this.b-=5},ng,ng,ng,function(){this.I=0;this.b-=5},ng,ng,ng,ng,ng,ng,ng],Zg=[Eg,function(){this.G=65536;this.b-=5},function(){this.H=32768;this.b-=5},Ig,function(){this.L=0;this.b-=5},Ig,Ig,Ig,function(){this.I=32768;this.b-=5},Ig,Ig,Ig,Ig,Ig,Ig,Ig],gh=[ig,gg,cg,eg,lg,mg,Sf,Tf,rg,Mg,$g,bh,
dh,U,U,U],ah=[function(a){lf(this,a,0,255,this.hb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){kf(this,a,0,Af);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){kf(this,a,1,Ef);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){kf(this,a,1,Cf);this.b-=this.v?9:3+(7==this.j?2:0)}],ch=[function(a){kf(this,a,0,Gf);this.b-=this.v?11:6},function(a){kf(this,a,se(this)?1:0,qf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){kf(this,a,se(this)?1:0,Mf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=hf(this,
a);this.hb(a<<8);this.b-=this.v?4:3+(7==this.j?2:0)}],eh=[function(a){kf(this,a,0,Kf);this.b-=this.v?9+(this.jc&1):3+(7==this.j?2:0)},function(a){kf(this,a,0,If);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){kf(this,a,0,uf);this.b-=this.v?9+(this.jc&1):3+(7==this.j?2:0)},function(a){kf(this,a,0,sf);this.b-=this.v?9:3+(7==this.j?2:0)}];function oe(a){jh[a>>12].call(this,a)}
var jh=[function(a){kh[a>>8&15].call(this,a)},Ag,og,Yf,Uf,Wf,Pf,function(a){lh[a>>8&15].call(this,a)},function(a){mh[a>>8&15].call(this,a)},Bg,pg,Zf,Vf,Xf,Kg,U],kh=[function(a){nh[a>>4&15].call(this,a)},kg,hg,$f,ag,fg,bg,dg,yg,yg,Qg,Sg,Ug,function(a){oh[a>>6&3].call(this,a)},U,U],oh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.ka(a|this.Ga);re(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Ie(this,a,0);this.Ba(a);Be(this,a);this.b-=11},function(a){var b=De(this);
this.ga=this.b;this.Ba(b);Je(this,a,0,b);this.b=this.ga-Cg[this.v]},function(a){mf(this,a,ve(this)?65535:0,this.Ba);this.b-=this.v?9:3+(7==this.j?2:0)}],nh=[function(a){ph[a&15].call(this,a)},U,U,U,wg,wg,wg,wg,Gg,function(a){!(a&8)||1145>this.ba?U.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},Wg,Yg,Lg,Lg,Lg,Lg],ph=[sg,Ng,function(){Ce(this);this.i|=this.w&16;this.b-=13},jg,ug,Fg,Hg,function(a){U.call(this,a)},U,U,U,U,U,U,U,U],lh=[Dg,Dg,qg,qg,Qf,Qf,Rf,Rf,
Og,Og,U,U,U,U,Jg,Jg],mh=[ig,gg,cg,eg,lg,mg,Sf,Tf,rg,Mg,$g,bh,dh,function(a){1145>this.ba?U.call(this,a):qh[a>>6&3].call(this,a)},U,U],qh=[function(a){U.call(this,a)},function(a){a=Ie(this,a,65536);this.Ba(a);Be(this,a);this.b-=11},function(a){var b=De(this);this.ga=this.b;this.Ba(b);Je(this,a,65536,b);this.b=this.ga-Cg[this.v]},function(a){U.call(this,a)}];
function rh(a){q.call(this,"ROM",a,0,128);this.ea=this.g=null;this.v=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=Pa(this.j);if(this.j){a=this.j;var b=Qa(this.B);"json"!=b&&"hex"!=b&&(a=db()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;bb(a,null,!0,function(a,b,f){f?(c.O("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(ua(c.lb,a,b),(a=cb(a,b))?(c.g=a.ca,c.ea=a.ea):c.j=null);sh(c)})}}p(rh,q);
h=rh.prototype;h.ta=function(a,b,c,d){this.D=b;this.f=c;this.F=d;sh(this)};h.za=function(){this.ea&&(this.F&&th(this.F,this.id,this.v,this.b,this.ea),delete this.ea);return!0};h.ya=function(){return!0};
function sh(a){if(!Ja(a)){if(a.j){if(!a.g||!a.D)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Da(a,"ROM size ("+H(a.g.length,8,!0)+") does not match specified size ("+H(a.b,8,!0)+")");else{var b;a:{b=a.v;a.status(a.b+"-byte ROM at "+G(b));if(57344<=b&&b<57344+Mc){var c={};b=(c[b]=[rh.prototype.Me,rh.prototype.Wf,null,null,null,a.b>>1],c);if(Wb(a.D,a,b)){b=a.w=!0;break a}}else if(Sc(a.D,b,a.b,Id)){for(c=0;c<a.g.length;c++)ad(a.D,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?b.push(a.i):
null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.D,g=d.b,k=[],l=d.v>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.D;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}A(a)}}h.Me=function(a){return this.g[a-this.v]};h.Wf=function(){};vb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new rh(d);Ca(d,c)}});
function uh(a){q.call(this,"RAM",a);this.ea=this.g=null;this.i=+a.addr;this.j=+a.size;this.wa=a.load;this.va=a.exec;null!=this.wa&&(this.wa=+this.wa);null!=this.va&&(this.va=+this.va);this.v=!1;this.b=a.file;this.w=Pa(this.b);if(this.b){a=this.b;var b=Qa(this.w);"json"!=b&&"hex"!=b&&(a=db()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;bb(a,null,!0,function(a,b,f){f?(c.O("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(ua(c.lb,a,b),(a=cb(a,b))?(c.g=a.ca,c.ea=a.ea,
null==c.wa&&(c.wa=a.wa),null==c.va&&(c.va=a.va)):c.b=null);vh(c)})}}p(uh,q);uh.prototype.ta=function(a,b,c,d){this.D=b;this.f=c;this.F=d;vh(this)};uh.prototype.za=function(){this.ea&&(this.F&&th(this.F,this.id,this.i,this.j,this.ea),delete this.ea);return!0};uh.prototype.ya=function(){return!0};
function vh(a){if(a.D&&(!a.v&&a.j&&(Sc(a.D,a.i,a.j,cd)?a.v=!0:a.j=0),!Ja(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.g||!a.D)return;wh(a,a.g,a.wa,a.va,a.i)?a.status('Loaded image "'+a.w+'"'):a.O('Error loading image "'+a.w+'"')}A(a)}}
uh.prototype.reset=function(){if(this.v){for(var a=this.D,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Db&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.D(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&wh(this,this.g,this.wa,this.va,this.i,!0)}};
function wh(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){C(a,"invalid signature ("+I(m)+") at offset "+I(n),4096);break}if(l+6>=b.length){C(a,"invalid block at offset "+I(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,u=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(u&255)+(u>>8)),t=l,E=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){C(a,"insufficient data for block at offset "+I(n),4096);break}m+=
b[l++]&255;if(m&255){C(a,"invalid checksum ("+H(m,2,!0)+") for block at offset "+I(n),4096);break}if(E)for(C(a,"loading "+I(E)+" bytes at "+I(u)+"-"+I(u+E),4096);E--;)ad(a.D,u++,b[t++]&255);else u&1?g=!0:null==d&&(d=u),null!=d&&C(a,"starting address: "+I(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)ad(a.D,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.Z(),f=!1;null!=d&&qe(a.f,d,f)}return k}
vb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new uh(d);Ca(d,c)}});function xh(a){q.call(this,"Keyboard",a,0,1024);A(this)}p(xh,q);xh.prototype.pa=function(){return!1};xh.prototype.ta=function(a,b,c,d){this.J=a;this.f=c;this.F=d};vb(function(){for(var a=y(document,x,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new xh(d);Ca(d,c)}});
function yh(a){q.call(this,"SerialPort",a,0,262144);this.M=+a.adapter;this.T=+a.baudReceive||9600;this.ba=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.j=this.w=null;this.W=+a.tabSize;this.V=+a.charBOL;this.B=0;this.I=!0;this.R=this.N=null;this.S=this.Y=-1;this.G=this.b=this.g=0;this.v=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=zh;b&&(void 0===c&&(c="Panel"),(c=Ba(c,this.id))&&(b=c.C[b])&&this.pa(null,a,b))}this.i=this.H=this.P=null;
this.exports={connect:this.md,receiveData:this.ec,receiveStatus:this.ff,setConnection:this.jf}}p(yh,q);h=yh.prototype;
h.pa=function(a,b,c){var d=this;switch(b){case zh:return this.C[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?sa.Lc:sa.xd:46==c?b=sa.Lc:a.ctrlKey&&c>=sa.Ic&&c<=sa.Gd&&(b=c-(sa.Ic-sa.ud));b&&(a.preventDefault&&a.preventDefault(),d.ec(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==sa.wd&&(b=sa.vd);d.ec(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ec(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;var e=this;this.R=jd(this.f,this.M?-1:48,4,262144);this.S=gd(this.f,function(){var a;a=-1;e.v.length&&(a=e.v.shift()&255,C(e,"receiveByte("+H(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),id(e.f,e.S,1E3/Math.round(e.T/10)));0<=a&&(e.G=a,e.b&128?e.G|=49152:e.b|=128,e.b&64&&hd(c,e.R))});this.N=jd(this.f,this.M?-1:52,4,262144);this.Y=gd(this.f,function(){e.g|=128;e.g&64&&hd(c,e.N)});Wb(b,this,Ah,this.M?64832+8*(this.M-1)-65392:0);Yb(b,this.reset.bind(this));
A(this)};h.md=function(a){if(!this.i){var b=Zd(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ya(c[0]);if(d!=this.kb)return;c=Ya(c[1]);if(this.i=Aa(c)){var e=this.i.exports;if(e){var f=e.connect;f&&f.call(this.i,this.I);if(this.H=e.receiveData){this.I=a;this.P=e.receiveStatus;this.status(this.lb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.za=function(a,b){if(!b)if(this.md(this.I),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){Bh(this)};h.save=function(){var a=new M(this);a.set(0,[]);return a.data()};h.restore=function(){return Bh(this)};function Bh(a){a.G=0;a.b=8192;a.g=128;a.v=[];return!0}
h.ec=function(a){if("number"==typeof a)this.v.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.v.push(b)}else this.v=this.v.concat(a);id(this.f,this.S,1E3/Math.round(this.T/10));return!0};h.ff=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&hd(this.f,this.R))};h.jf=function(a,b){return this.i?!1:(this.i=a,this.H=b,!0)};
h.ze=function(){var a=this.b&65534;this.b&=-32769;return a};h.Jf=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.P&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.P.call(this.i,b))};h.ye=function(){this.b&=-129;return this.G};h.If=function(){};h.ef=function(){return this.g};h.og=function(a){this.g&128&&(a&64?hd(this.f,this.N):nd(this.f,this.N));this.g=this.g&-70|a&69};h.df=function(){return 0};
h.ng=function(a){a&=255;C(this,"transmitByte("+H(a,2,!0)+")");this.H&&this.H.call(this.i,a);a&=127;if(this.j)if(13==a)this.B=0;else if(8==a)this.j.value=this.j.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=Za[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=Xa("",c)));this.V&&!this.B&&c&&(b=String.fromCharCode(this.V)+b);this.j.value+=b;this.j.scrollTop=this.j.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==
a||1024<=this.w.length)this.u(this.w),this.w="";10!=a&&(this.w+=String.fromCharCode(a))}id(this.f,this.Y,1E3/Math.round(this.ba/10));this.g&=-129};var zh="buffer",Ch={},Ah=(Ch[65392]=[null,null,yh.prototype.ze,yh.prototype.Jf,"RCSR"],Ch[65394]=[null,null,yh.prototype.ye,yh.prototype.If,"RBUF"],Ch[65396]=[null,null,yh.prototype.ef,yh.prototype.og,"XCSR"],Ch[65398]=[null,null,yh.prototype.df,yh.prototype.ng,"XBUF"],Ch);
vb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new yh(d);Ca(d,c)}});function Ed(a){q.call(this,"PC11",a);this.M=Dh(this,a.autoMount);this.g=0;this.S=+a.baudReceive||3600;this.B=this.G=this.b=0;this.w=[];this.v=Eh;this.i=Fh;this.L=this.j="";this.ca=this.wa=this.va=null;this.P=-1;this.N=!ob("Mobi")&&window&&"FileReader"in window;this.H=null;this.R=-1;this.I=null}p(Ed,q);
function Dh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Ed.prototype;
h.pa=function(a,b,c){var d=this,e=Fh;switch(b){case "listTapes":return this.C[b]=c,c.onchange=function(){var a=d.C.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.C[b]=c,!0;case "readTape":e=Gh;case "loadTape":return e||(e=Hh),this.C[b]=c,c.onclick=
function(){var a=d.C.listTapes;a&&Ih(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.N){c.parentNode.removeChild(c);break}this.C[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ih(d,Pa(b,!0),b,Hh,a)}return!1};return!0;case Jh:return this.C[b]=c,!0}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;this.I=Kh(a);var e=this;if(a=Dh(this,Zd(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.M[f]=a[f]);this.H=jd(this.f,56,4,4096);this.R=gd(this.f,function(){1==(e.b&32769)&&!(e.b&128)&&e.B<e.w.length&&(e.G=e.w[e.B++]&255,Lh(e,e.B/e.w.length*100),e.b|=128,e.b&=-2049,e.b&64&&hd(e.f,e.H))});Wb(b,this,Mh);Yb(b,this.reset.bind(this));Nh(this,"None",Eh,!0);this.N&&Nh(this,"Local Tape",Oh);Nh(this,"Remote Tape",Ph);Qh(this)||A(this)};
h.za=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.G=0};function Qh(a){a.g=0;var b=a.M.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.C.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=Pa(c,!0)}c&&b?Rh(a,b,c,Hh,!0):Sh(a)}return!!a.g}
function Ih(a,b,c,d,e){if(c)if(c==Oh)a.O('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Ph){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=Pa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.v=Ph}else a.v=c;Rh(a,b,c,d,!1,e)}else Th(a,!1)}
function Rh(a,b,c,d,e,f){var g=-1;if(a.j.toLowerCase()!=c.toLowerCase()||a.i!=d)g++,Th(a,!0),a.A.eb?a.O("PC11 busy"):(e&&(a.g++,B(a)&&C(a,"auto-loading tape: "+b)),Uh(a,b,c,d,f)?g++:a.A.eb=!0);g&&Vh(a,a.L,a.j,a.i,a.ca,a.wa,a.va)}
function Uh(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),Vh(a,b,c,d,e),a.v=Oh);Sh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=Qa(c),f="json"==e||"gz"==e?encodeURI(c):db()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!bb(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.fa;g?a.O('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(ua(a.lb,e,f),(e=cb(e,f))&&Vh(a,b,c,d,e.ca,e.wa,
e.va));a.A.eb=!1;a.g&&(a.g--,a.g||A(a));Sh(a)})}function Nh(a,b,c,d){if((a=a.C.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Sh(a){var b=a.C.listTapes;if(b&&b.options){a=a.v||a.j;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Lh(a,b){b|=0;if(b!==a.P){var c=a.C[Jh];c&&(c=(c=y(c,Wh))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function Vh(a,b,c,d,e,f,g){a.L=b;a.j=c;a.i=d;a.ca=e;a.wa=f;a.va=g;d==Gh?a.I&&wh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.O('No valid memory address for tape "'+b+'"'):(a.B=0,a.w=e,a.status('Loaded tape "'+b+'"'),Lh(a,0))}function Th(a,b){if(a.j||!1===b)a.L="",a.j="",b||(a.i&&a.status(a.i==Hh?"tape detached":"tape unloaded"),a.v=Eh,a.i=Fh,Sh(a))}h.save=function(){return(new M(this)).data()};h.restore=function(){return!0};h.se=function(){return this.b&65534};
h.Cf=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&hd(this.f,this.H)):(this.b&=-129,this.b|=2048,this.G=0,id(this.f,this.R,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.re=function(){this.b&=-129;this.b|=2048;return this.G};h.Bf=function(){};var Eh="",Oh="?",Ph="??",Fh=0,Hh=1,Gh=2,Jh="readProgress",Wh="pcjs-progress-bar",Xh={},Mh=(Xh[65384]=[null,null,Ed.prototype.se,Ed.prototype.Cf,"PRS"],Xh[65386]=[null,null,Ed.prototype.re,Ed.prototype.Bf,"PRB"],Xh);
function Yh(a,b,c){q.call(this,"Disk",{id:a.lb+".disk"+H(++Zh,4)},0,8192);this.controller=a;this.J=a.J;this.F=a.F;this.v=b;this.Na=b.name;this.Aa=this.gc="";this.cc=b.cc;this.X=this.da=this.aa=this.oa=this.mode=0;this.b=[];this.i=null;this.j=!1;$h(this,c,b.X,b.da,b.aa,b.oa);this.g=this.w=null;A(this)}p(Yh,q);h=Yh.prototype;h.ta=function(a,b,c,d){this.F=d};
function $h(a,b,c,d,e,f){a.mode=b;a.X=c;a.da=d;a.aa=e;a.oa=f;a.b=[];if("preload"!=a.mode){b=Array(a.X);for(c=0;c<b.length;c++){d=Array(a.da);for(e=0;e<d.length;e++){f=Array(a.aa);for(var g=1;g<=f.length;g++)f[g-1]=ai(null,c,e,g,a.oa,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function bi(a,b,c,d,e){var f=c;if(a.g)return!0;a.Na=b;a.Aa=c;a.gc=Pa(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=ra[d];if(e){a.X=e[0];a.da=e[1];a.aa=e[2];a.oa=e[3]||512;c=a.oa>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.X);for(d=0;d<a.b.length;d++)for(var u=a.b[d]=Array(a.da),t=0;t<u.length;t++)for(var E=u[t]=Array(a.aa),z=0;z<E.length;z++){for(var D=ai(null,d,t,z+1,a.oa,0),F=D.data,gb=0;gb<c;gb++,f+=4)var W=F[gb]=b.getInt32(f,
!0),e=e+W&-1;D.Ja=c;E[z]=D}a.i=e;c=a}else a.O("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.v,c,a.Na,a.Aa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=Qa(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"):Ra(c,"/")&&(d="dir"),f=db()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.cc?"":e)+"&format=json"));return!!bb(f,
null,!0,function(b,c,d){ci(a,b,c,d)})}
function ci(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.fa;a.j=!1;if(d)a.controller.O('Unable to load disk "'+a.Na+'" (error '+d+": "+b+")",f);else{ua(a.controller.lb,b,c);try{if(0<Pa(a.gc,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Na]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)v(k[0]);else{a.X=k.length;a.da=k[0].length;a.aa=k[0][0].length;var l=k[0][0][0];a.oa=l&&l.length||512;for(d=c=0;d<a.X;d++)for(f=0;f<a.da;f++)for(g=0;g<a.aa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var u=l.bytes;if(void 0!==u&&u.length){for(var t=m<<2,E=u.length;E<t;E++)u[E]=n;di(l,u)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}ai(l,d,f);for(t=
0;t<r.length;t++)c=c+r[t]&-1}a.b=k;a.i=c;e=a}else v("Empty disk image: "+a.Na)}catch(z){v("Disk image error ("+b+"): "+z.message)}}a.g&&(a.g.call(a.w,a.v,e,a.Na,a.Aa),a.g=null)}function ai(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.qh=b;a.rh=c;a.Ra=a.Ja=0;a.Wa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var k=g[b];if(!k&&f.Jd&&b<f.da)for(k=g[b]=Array(f.bd),g=0;g<k.length;g++)k[g]=ai(null,a,b,g+1,f.Bc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Jd&&9==f.yc&&(d=k[g]=ai(null,a,b,f.yc,f.Bc,0))}}e&&e(d,!1);return d};function di(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ja?f<a.Ra?(a.Ja+=a.Ra-f,a.Ra=f):f>=a.Ra+a.Ja&&(a.Ja+=f-(a.Ra+a.Ja)+1):(a.Ra=f,a.Ja=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function ei(a,b){var c=a.da*a.aa,d=b/c|0;return d<a.X?(b%=c,a.seek(d,b/a.aa|0,b%a.aa+1)):null}function fi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function gi(a){for(var b="",c=0,d;d=ei(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(fi(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.Aa,this.i,this.X,this.da,this.aa,this.oa];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ja){for(var k=[],l=0,m=g.Ra,n=g.Ra+g.Ja;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Ra,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?$h(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.i&&e[1]!=this.i&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.i+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.b.length||l>=this.b[k].length||m>=this.b[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Ra=e;for(k.Ja=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.O("Unable to restore disk '"+this.Na+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=ei(this,a++);)hi(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 hi(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 Zh=0;function R(a){q.call(this,"RK11",a,0,65536);this.G=ii(this,a.autoMount);this.B=0;this.i=Array(8);this.H=!ob("Mobi")&&window&&"FileReader"in window;this.fb=null;this.L=this.g=this.b=this.w=this.v=this.j=this.I=0}p(R,q);
function ii(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=R.prototype;
h.pa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.C[b]=c,c.onchange=function(){var a=d.C.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.C[b]=c,c.onchange=function(){var a=Ma(c.value,10);null!=a&&Ci(d,
a)},!0;case "loadDisk":return this.C[b]=c,c.onclick=function(){var a=d.C.listDisks;a&&a.options&&Ei(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.C[b]=c,c.onclick=function(){var a,b=d.C.listDrives,b=b&&Ma(b.value,10);null==b||0>b||b>=d.i.length||!(a=d.i[b])?d.O("Unable to boot the selected drive"):a.ia?(qe(d.f,0,!0),(a=d.Vc(a,0,0,0,512,0,2))&&d.O("Unable to read the boot sector ("+a+")")):d.O("Load a disk into the drive first")},!0;case "saveDisk":if(!this.H){c.parentNode.removeChild(c);
break}this.C[b]=c;c.onclick=function(){var a=d.C.listDrives;a&&a.options&&d.i&&((a=d.i[Ma(a.value,10)||0])?(a=a.ia)?(a=rb(gi(a),a.gc.replace(".json",".img")),v(a)):d.O("No disk loaded in drive."):d.O("No disk drive selected."))};return!0;case "mountDisk":if(this.H)return this.C[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ei(d,Pa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=ii(this,Zd(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.G[e]=a[e]);Fi(this);this.fb=jd(this.f,144,5,65536);Wb(b,this,Gi);Yb(b,this.reset.bind(this));Hi(this,"None",Ii,!0);this.H&&Hi(this,"Local Disk",Ji);Hi(this,"Remote Disk",Ki);Li(this)||A(this)};
h.za=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.J.B){for(a=0;a<this.i.length;a++)Mi(this,a,!0);Li(this,!0)}}else if(!this.restore(a))return!1;if(a=this.C.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Ci(this,0)}}return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){Fi(this)};h.save=function(){return(new M(this)).data()};
h.restore=function(a){return Fi(this,a[0])};function Li(a,b){b||(a.B=0);for(var c in a.G){var d=a.G[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.C.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=Pa(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.i.length)){!Ni(a,g,f,e,!0)&&b&&A(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.B}
function Ei(a,b,c,d){var e=a.C.listDrives,e=e&&Ma(e.value,10);if(void 0===e||0>e||e>=a.i.length)a.O("Unable to load the selected drive");else if(c)if(c==Ji)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Ki){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=Pa(c);a.status("Attempting to load "+c+' as "'+b+'"')}Ni(a,e,b,c,!1,d)}else Mi(a,e)}
function Ni(a,b,c,d,e,f){var g=-1,k=a.i[b];k.Aa.toLowerCase()!=d.toLowerCase()&&(g++,Mi(a,b,!0),k.sb?a.O("RK11 busy"):(k.sb=!0,e&&(k.rb=!0,a.B++,B(a)&&C(a,"auto-loading disk: "+c)),k.Xa=!!f,bi(new Yh(a,k,"preload"),c,d,f,a.Ad)&&g++));return g}
h.Ad=function(a,b,c,d,e){a.sb=!1;b&&(b.X>a.X||b.da>a.da)&&(this.O('Disk "'+c+'" too large for drive '+("RK"+a.tb)),b=null);b?(a.ia=b,a.Na=c,a.Aa=d,this.O('Loaded disk "'+c+'" in drive '+("RK"+a.tb),a.rb||e),this.J&&ie(this.J)):a.Xa=!1;a.rb&&(a.rb=!1,--this.B||A(this));Ci(this,a.tb)};
function Hi(a,b,c,d){if((a=a.C.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Ci(a,b){if(0<=b&&b<a.i.length){var c=a.i[b],d=a.C.listDisks;a=a.C.listDrives;if(d&&a&&d.options&&a.options&&(a=Ma(a.value,10),c=c.Xa?Ji:c.Aa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Mi(a,b,c){var d=a.i[b];if(d.ia||!1===c)d.Na="",d.Aa="",d.ia=null,d.Xa=!1,c||(a.O("Drive RK"+b+" unloaded",c),Ci(a,b))}
function Fi(a,b){var c=0;b||(b=[]);a.L=b[c++]||2368;a.g=b[c++]||0;a.b=b[c++]||128;a.w=b[c++]||0;a.v=b[c++]||0;a.j=b[c++]||0;a.I=b[c]||0;for(b=0;b<a.i.length;b++){var d=a.i[b];void 0===d&&(d=a.i[b]={});c=a;d.tb=b;d.name=c.kb;d.sb=d.Xa=!1;d.X=203;d.da=2;d.aa=12;d.oa=512;d.cc=!0;d.Kd=0;d.Id=0;d.yc=1;d.bd=d.aa;d.Bc=d.oa;d.Pd=0;d.hf=null;d.ia||(d.Aa="");d.status=2368}return!0}
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ia;var n=null,r;a||(m=128,e=0);for(;e;){if(!n){if(b>=a.X){m=64;break}n=a.seek(b,c,d+1);if(!n){m=4096;break}r=0;++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b))}var u,t;if(0>(u=a.read(n,r++))||0>(t=a.read(n,r++))){m=32;break}if(!k&&(qc(this.D,Ee(this.f,f),u|t<<8),fd(this.D))){m=1024;break}r>=a.oa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Bd=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ia;var n=null,r;a||(m=128,e=0);for(;e;){var u=Dc(this.D,Ee(this.f,f));if(fd(this.D)){m=1024;break}if(!n){if(b>=a.X){m=64;break}n=a.seek(b,c,d+1,!0);if(!n){m=4096;break}r=0;++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b))}if(k){var t,E;if(0>(t=a.read(n,r++))||0>(E=a.read(n,r++))){m=32;break}if(u!=(t|E<<8)){m=1;break}}else if(!a.write(n,r++,u&255)||!a.write(n,r++,u>>8)){m=32;break}r>=a.oa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.zd=function(a,b,c,d,e,f){this.v=f&65535;this.b=this.b&-49|f>>12&48;this.w=65536-e&65535;this.j=this.j&-16|d&15;this.g|=a;Oi(this);return!0};function Oi(a){a.b&=-32769;a.g&&(a.g|=32768,a.b|=32768,a.g&32736&&(a.b|=16384),B(a)&&C(a,a.type+": ERROR: "+G(a.g)))}h.Ee=function(){return this.L};h.Of=function(){};h.Fe=function(){return this.g};h.Pf=function(){};h.Be=function(){return this.b&61438};
h.Lf=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c,d="",e=(this.j&57344)>>13,f=this.i[e],g,k,l,m,n,r;this.b&=-8321;this.g&=-4;switch(c=this.b&14){case 0:B(this)&&C(this,this.type+": CRESET("+e+")",!0);this.g=this.j=0;this.b=128;break;case 10:d="RCHK";case 4:d||(d="READ"),b=this.Vc;case 6:d||(d="WCHK");case 2:d||(d="WRITE");b||(b=this.Bd);g=(this.j&8160)>>5;k=(this.j&16)>>4;l=this.j&15;m=65536-this.w&65535;n=(this.b&48)<<12|this.v;r=this.b&2048?0:2;B(this)&&C(this,this.type+": "+
d+"("+g+":"+k+":"+l+") "+G(n)+"--"+G(n+(m<<1)),!0,!0);if(g>=f.X){this.g|=64;break}if(l>=f.aa){this.g|=32;break}a=b.call(this,f,g,k,l,m,n,r,6<=c,this.zd.bind(this));break;case 8:g=(this.j&8160)>>5;B(this)&&C(this,this.type+": SEEK("+g+")",!0);g<f.X?this.b|=8192:this.g|=64;break;case 12:B(this)&&C(this,this.type+": DRESET("+e+")");this.g=this.j=0;this.b=8320;break;default:B(this)&&C(this,this.type+": UNSUPPORTED("+c+")")}this.L=f.status|(f.ia?128:0)|e<<13|this.j&15;Oi(this);a&&(this.b&=-2,this.b|=128,
this.b&64&&hd(this.f,this.fb))}};h.Ge=function(){return this.w};h.Qf=function(a){this.w=a};h.Ae=function(){return this.v};h.Kf=function(a){this.v=a};h.Ce=function(){return this.j};h.Mf=function(a){this.j=a};h.De=function(){return this.I};h.Nf=function(a){this.I=a};
var Ii="",Ji="?",Ki="??",Pi={},Gi=(Pi[65280]=[null,null,R.prototype.Ee,R.prototype.Of,"RKDS"],Pi[65282]=[null,null,R.prototype.Fe,R.prototype.Pf,"RKER"],Pi[65284]=[null,null,R.prototype.Be,R.prototype.Lf,"RKCS"],Pi[65286]=[null,null,R.prototype.Ge,R.prototype.Qf,"RKWC"],Pi[65288]=[null,null,R.prototype.Ae,R.prototype.Kf,"RKBA"],Pi[65290]=[null,null,R.prototype.Ce,R.prototype.Mf,"RKDA"],Pi[65294]=[null,null,R.prototype.De,R.prototype.Nf,"RKDB"],Pi);
function Fd(a){q.call(this,"RL11",a,0,131072);this.H=Qi(this,a.autoMount);this.G=0;this.g=Array(4);this.I=!ob("Mobi")&&window&&"FileReader"in window;this.fb=null;this.b=this.B=this.i=this.j=this.w=this.v=0}p(Fd,q);function Qi(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Fd.prototype;
h.pa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.C[b]=c,c.onchange=function(){var a=d.C.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.C[b]=c,c.onchange=function(){var a=Ma(c.value,10);null!=a&&Ri(d,
a)},!0;case "loadDisk":return this.C[b]=c,c.onclick=function(){var a=d.C.listDisks;a&&a.options&&Si(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.C[b]=c,c.onclick=function(){var a,b=d.C.listDrives,b=b&&Ma(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.O("Unable to boot the selected drive"):a.ia?(qe(d.f,0,!0),(a=d.Wc(a,0,0,0,512,0))&&d.O("Unable to read the boot sector ("+a+")")):d.O("Load a disk into the drive first")},!0;case "saveDisk":if(!this.I){c.parentNode.removeChild(c);
break}this.C[b]=c;c.onclick=function(){var a=d.C.listDrives;a&&a.options&&d.g&&((a=d.g[Ma(a.value,10)||0])?(a=a.ia)?(a=rb(gi(a),a.gc.replace(".json",".img")),v(a)):d.O("No disk loaded in drive."):d.O("No disk drive selected."))};return!0;case "mountDisk":if(this.I)return this.C[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Si(d,Pa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ta=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=Qi(this,Zd(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.H[e]=a[e]);Ti(this);this.fb=jd(this.f,112,5,131072);Wb(b,this,Ui);Yb(b,this.reset.bind(this));Vi(this,"None",Wi,!0);this.I&&Vi(this,"Local Disk",Xi);Vi(this,"Remote Disk",Yi);Zi(this)||A(this)};
h.za=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.J.B){for(a=0;a<this.g.length;a++)$i(this,a,!0);Zi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.C.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Ri(this,0)}}return!0};h.ya=function(a){return a?this.save():!0};h.reset=function(){Ti(this)};h.save=function(){return(new M(this)).data()};
h.restore=function(a){return Ti(this,a[0])};function Zi(a,b){b||(a.G=0);for(var c in a.H){var d=a.H[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.C.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=Pa(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)){!aj(a,g,f,e,!0)&&b&&A(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.G}
function Si(a,b,c,d){var e=a.C.listDrives,e=e&&Ma(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.O("Unable to load the selected drive");else if(c)if(c==Xi)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Yi){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=Pa(c);a.status("Attempting to load "+c+' as "'+b+'"')}aj(a,e,b,c,!1,d)}else $i(a,e)}
function aj(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Aa.toLowerCase()!=d.toLowerCase()&&(g++,$i(a,b,!0),k.sb?a.O("RL11 busy"):(k.sb=!0,e&&(k.rb=!0,a.G++,B(a)&&C(a,"auto-loading disk: "+c)),k.Xa=!!f,bi(new Yh(a,k,"preload"),c,d,f,a.Dd)&&g++));return g}
h.Dd=function(a,b,c,d,e){a.sb=!1;b&&(b.X>a.X||b.da>a.da)&&(this.O('Disk "'+c+'" too large for drive '+("RL"+a.tb)),b=null);b?(a.ia=b,a.Na=c,a.Aa=d,this.O('Loaded disk "'+c+'" in drive '+("RL"+a.tb),a.rb||e),this.J&&ie(this.J)):a.Xa=!1;a.rb&&(a.rb=!1,--this.G||A(this));Ri(this,a.tb)};
function Vi(a,b,c,d){if((a=a.C.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Ri(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.C.listDisks;a=a.C.listDrives;if(d&&a&&d.options&&a.options&&(a=Ma(a.value,10),c=c.Xa?Xi:c.Aa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function $i(a,b,c){var d=a.g[b];if(d.ia||!1===c)d.Na="",d.Aa="",d.ia=null,d.Xa=!1,c||(a.O("Drive RL"+b+" unloaded",c),Ri(a,b))}
function Ti(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.B=b[c++]||0;a.i=b[c++]||0;a.j=b[c++]||0;a.w=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.tb=b;d.name=c.kb;d.sb=d.Xa=!1;d.X=512;d.da=2;d.aa=40;d.oa=256;d.cc=!0;d.Kd=0;d.Id=0;d.yc=1;d.bd=d.aa;d.Bc=d.oa;d.Pd=0;d.hf=null;d.ia||(d.Aa="");d.status=29}return!0}
h.Wc=function(a,b,c,d,e,f,g){var k=0;a=a.ia;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){k=5120;break}qc(this.D,Ee(this.f,f),n|r<<8);if(fd(this.D)){k=8192;break}f+=2;e--;if(m>=a.oa&&(l=null,++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b>=a.X)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Ed=function(a,b,c,d,e,f,g){var k=0;a=a.ia;var l=null,m;a||(k=5120,e=0);for(;e;){var n=Dc(this.D,Ee(this.f,f));if(fd(this.D)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){k=5120;break}if(m>=a.oa&&(l=null,++d>=a.aa&&(d=0,++c>=a.da&&(c=0,++b>=a.X)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Cd=function(a,b,c,d,e,f){this.B=f&65535;this.b=this.b&-49|f>>12&48;this.v=f>>16&63;this.j=this.i=b<<7|(c?64:0)|d&63;this.w=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};h.Je=function(){return this.b&65535};
h.Tf=function(a){this.b=this.b&-1023|a&1022;this.v=this.v&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c="",d=this.g[(this.b&768)>>8],e=d.ia,f,g,k;this.b&=-2;switch(this.b&14){case 4:this.w&8&&(this.b&=63);this.w=d.status|this.j&64|(e&&512==e.X?128:0);break;case 6:1==(this.i&3)&&(b=this.i&65408,c=(this.i&16)<<2,this.j=this.i&4?this.j+b:this.j-b,this.i=this.j=this.j&65408|c);break;case 8:this.w=this.j;break;case 12:c="READ",b=this.Wc;case 10:c||(c="WRITE"),b||(b=this.Ed),f=this.i>>7,g=this.i&64?1:0,k=
this.i&63,!e||f>=e.X||k>=e.aa?this.b|=37888:(a=65536-this.w&65535,e=(this.v&63)<<16|this.B,B(this)&&C(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+G(e)+"--"+G(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,this.Cd.bind(this)))}a&&(this.b|=129,this.b&64&&hd(this.f,this.fb))}};h.He=function(){return this.B};h.Rf=function(a){this.B=a&65534};h.Ke=function(){return this.i};h.Uf=function(a){this.i=a};h.Le=function(){return this.w};h.Vf=function(a){this.w=a};h.Ie=function(){return this.v};
h.Sf=function(a){this.v=a&63;this.b=this.b&-49|(this.v&3)<<4};var Wi="",Xi="?",Yi="??",bj={},Ui=(bj[63744]=[null,null,Fd.prototype.Je,Fd.prototype.Tf,"RLCS"],bj[63746]=[null,null,Fd.prototype.He,Fd.prototype.Rf,"RLBA"],bj[63748]=[null,null,Fd.prototype.Ke,Fd.prototype.Uf,"RLDA"],bj[63750]=[null,null,Fd.prototype.Le,Fd.prototype.Vf,"RLMP"],bj[63752]=[null,null,Fd.prototype.Ie,Fd.prototype.Sf,"RLBE"],bj);
function cj(a){q.call(this,"Debugger",a);this.xa=+a.base||16;this.ga=!1;this.w=0;this.P=!1;this.v=-1;this.j=[];this.T={}}p(cj,q);cj.prototype.hd=function(){return-1};cj.prototype.jd=function(){};
function dj(a,b,c,d){if(c)if(b){0>a.v&&a.j.length&&(a.v=0);if(0>a.v||b!=a.j[a.v])a.j.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.j[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ya(b.substring(c,f))),c=f+1}}return a}
function ej(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function fj(a,b,c){var d;if(b){b=gj(a,b);for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ya(n);if(!n){f=!0;break}n=hj(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}k.push(n);if(e==m.length)break;var n=m[e++],u=n.length;l.length&&ij[n]<ij[l[l.length-1]]&&ej(k,l,1);l.push(n);b=b.substr(r+u)}ej(k,l)&&1==k.length||(f=!0);f?c&&a.u("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),c&&jj(a,null,
d))}return d}function gj(a,b){for(var c,d=a.ga?"(":"{",e=a.ga?")":"}",f=new RegExp(a.ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=fj(a,c[1]);b=b.replace(d+c[1]+e,null!=g?O(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function hj(a,b,c,d){var e;null!=b?(e=a.hd(b),0<=e?e=a.jd(e):(e=a.T[b],null==e&&(e=Ma(b,a.xa))),null!=e||d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return e}function jj(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=Na(d&255,8)+g,d>>=8;d=H(c,0,!0)+" "+c+". "+G(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}
function kj(a,b){if(b)return jj(a,b,a.T[b]);var c=0;for(b in a.T)jj(a,b,a.T[b]),c++;return 0<c}function O(a,b,c,d){switch(a.xa){case 8:a=G(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=H(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}var ij={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function lj(a){cj.call(this,a);this.Da=!1;this.ga=!0;this.H=V();this.Ca=V();this.N=V();this.B=[];this.g=this.L=this.G=[];mj(this);this.R=this.ba=0;this.i=[];this.na=void 0;nj(this);this.F=this;this.la={};this.ha=this.cd=0;this.S=null;this.M=[];oj(this,a.messages);this.sa=a.commands;this.Ga=pj;this.W=[];this.I=0;this.Ha=this.ra=null;this.w=this.Fa=this.Ea=this.Y=this.ma=0;this.b=this.V=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return de(b,a)}):void 0===global[x]&&(global[x]=
function(a){return de(b,a)})}p(lj,cj);function qj(a){a=a&&a.K;null==a&&(a=-1);return a}function V(a,b,c){return{K:void 0===a?null:a,Ka:void 0===b?!1:b,Qa:!1,xa:c}}h=lj.prototype;h.Fc=function(a,b){a.K=b;a.Qa=!1;a.xa=void 0;return a};function rj(a){return[a.K,a.Ka,a.xa,a.Qa,a.fc]}function sj(a,b){var c=V(b[0],b[1],b[2]);c.Qa=b[3];b[4]&&(c.$c=dj(a,c.fc=b[4]));return c}
h.ta=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.b=a.i;(a=Zd(a,"messages"))&&oj(this,a);1140>this.f.ba&&(this.W=this.W.concat(tj));1145>this.f.ba&&(this.W=this.W.concat(uj));ld(this,16,function(a){a:{var b=d.D.b,c=a[0],e=a=0,l=b.length;if(c){a=qj(vj(d,c));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.D.g;l=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.u("..."):
(c=n.type,m=Yc[c],n&&d.u(H(n.id,8)+" %"+H(e<<d.D.g,8)+" %"+H(n.K,8)+" "+I(n.Jb)+" "+I(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.D.j;e++}}});A(this)};
h.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.C[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",de(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.j.length-1&&(b=d.j[++d.v])):40==a.keyCode&&(0<d.v?b=d.j[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.C[b]=c,tb(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";de(d,a,!0);return!0}return!1}),!0;case "step":return this.C[b]=c,tb(c,function(a){var b=!1;Ka(d,!0)||(La(d,!0),b=kc(d,a?1:0,null),La(d,!1));return b}),!0}return!1};function ce(a){if(a.V){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.V.focus();window&&window.scrollTo(b,c)}}h.Mc=function(a,b){var c=255,d=qj(a);-1!==d&&(a.Ka||65535<d?(c=this.D,d=Ee(this.f,d),c.G=!1,c.ja++,d=$c(c,d).j(d&c.i,d),c.ja--):(c=this.f,c.ma++,d=c.D.Jc(Cc(c,d,3)),c.ma--),c=d,b&&wj(a,b));return c};
h.Oa=function(a,b){var c=65535,d=qj(a);-1!==d&&(c=a.Ka||65535<d?Dc(this.D,Ee(this.f,d)):Ec(this.f,d),b&&wj(a,b));return c};h.Nc=function(a,b,c){var d=qj(a);if(-1!==d){if(a.Ka||65535<d)ad(this.D,Ee(this.f,d),b);else{var e=this.f;e.ma++;e.D.Kc(Cc(e,d,5),b);e.ma--}c&&wj(a,c);J(this.J,-1)}};h.yd=function(a,b,c){var d=qj(a);if(-1!==d){if(a.Ka||65535<d)qc(this.D,Ee(this.f,d),b);else{var e=this.f;e.ma++;e.D.Nb(Cc(e,d,4),b);e.ma--}c&&wj(a,c);J(this.J,-1)}};
function vj(a,b,c){var d;c=(c?a.H:a.Ca).K;var e,f;if(void 0!==b){b=gj(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,k;a:{c=a.D;var l;l=d.toUpperCase();for(k in c.Ma){var m=+k;if(c.Ma[m][4]==l){k=c.B+m;break a}}k=null}if(null==k&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(l=a.B[c].ea[d],null!=l){k=l.o;break}null!=k&&(g=V(k));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=fj(a,b,void 0)}null!=c&&(d=V(c,e,f));return d}
function xj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.$c=dj(a,b.fc=c[2]))}function wj(a,b){null!=a.K&&(a.K+=b||1)}function yj(a,b){return(b.Ka?"%":"")+O(a,b.K)}
function oj(a,b){a.F=a;a.ha=a.cd=536870912;a.S=null;a.M=[];b=dj(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.u(c+" messages enabled"))}}function ld(a,b,c){for(var d in Rb)if(b==Rb[d]){a.la[d]=c;break}}
h.hd=function(a){a=a.toUpperCase();var b=zj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Aj(a){return 6>a?"R"+a:6==a?"SP":"PC"}
h.jd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.na[a-8];else if(20>a)b=this.f.V[a-16];else{var c=this.f,d=this.b;switch(a){case Bj:b=ud(this.f);break;case Cj:b=c.Va;break;case Dj:b=c.R;break;case Ej:b=c.sa&65280;break;case Fj:b=od(c);break;case Gj:b=qd(c);break;case Hj:b=rd(c);break;case Ij:b=c.T;break;case Jj:d&&(b=d.ua);break;case Kj:d&&(b=d.vb);break;case Lj:d&&Ic(d)&&(b=d.Ya)}}return b};
h.message=function(a,b){b&&(a+=" @"+yj(this,V(this.f.P&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ha&1073741824)this.M.push(a);else{var c;if(this.ha&-2147483648&&this.f&&(c=this.f.A.U)||Ka(this,!0))this.Z(),c&&(a+=" (cpu halted)");this.u(a);this.f&&(a=this.f,je(a),a.qb=0,a.J&&J(a.J,void 0))}};
function nj(a){var b;if(!nf(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(Mj);for(b=0;b<a.i.length;b++)a.i[b]=V();a.R=0;a.u("instruction history buffer allocated")}}function Nj(a,b,c){if(!Oj(a,c))return!1;jc(a.f,b);return!0}
function kc(a,b,c,d){if(!Oj(a))return!1;null===c&&(c=!a.ra||"tr"==a.ra);a.w=0;b||nf(a)&&of(a,a.f.g[7],0);try{b=ke(a.f,b);var e=a.f.bc(b);0<e&&(lc(a.f,e),a.w+=e,mc(a.f,e,!0),nc(a.f,e),a.Y++)}catch(f){"number"!=typeof f&&(a.w=0,Da(a.f,f.stack||f.message))}!1!==d&&(a.b&&a.b.stop(),J(a.J,-1));be(a,c||!1);return 0<a.w}h.Z=function(a){this.f&&this.f.Z(a)};
function be(a,b){if(a.Da){void 0===b&&(b=!0);var c;c=a.f;if(c=c.i&128?c.Zc|c.Yc<<8:0){var d=c>>8;a.u("trapped to "+O(a,c&255,1)+" ("+(0>d?Pb[-d]:O(a,d))+")")}a.H=V(a.f.g[7]);b&&1!=a.I?Pj(a):Qj(a)}}function Oj(a,b){var c;(c=!a.f||!Ja(a.f))||(c=a.f,c.A.fa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.U?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ea(a.f)}h.za=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
h.ya=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){nj(this);this.Y=0;this.S=null;this.w=0;this.H=V(this.f.g[7]);this.A.U=!1;Rj(this);a||be(this)};h.save=function(){var a=new M(this);a.set(0,rj(this.H));a.set(1,rj(this.N));a.set(2,[this.j,this.P,this.ha]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.H=sj(this,a[b++]),this.N=sj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.u("running");this.A.U=!0;this.Ea=a;this.Fa=b};
h.stop=function(a,b){if(this.A.U){this.A.U=!1;this.w=b-this.Fa;if(!this.I){b="stopped";if(this.w){a-=this.Ea;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";nf(this)&&(b+=this.Y+" instructions, ",this.Y=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else B(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}be(this,!0);ce(this);Rj(this,this.f.g[7]);this.S=null}};function nf(a){return 1<a.g.length||!!a.ba}
function of(a,b,c){var d=-1;c||(d=Ec(a.f,b))||(a.f.P&65535)!=b||(b=we(a.f,2));if(0<c&&(a.ba&&!--a.ba||Sj(a,b,1,a.g)))return!0;0<=c&&a.i.length&&(a.Y++,0>d&&(d=Ec(a.f,b)),65535!=(d&65535)&&(a.Fc(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function tg(a){var b=a.f;if(b.A.U)throw re(b,a.f.P&65535),a.Z(),-1;return!1}function Td(a,b,c){Sj(a,b,c||1,a.L)&&a.Z(!0)}function Ud(a,b,c){Sj(a,b,c||1,a.G)&&a.Z(!0)}
function mj(a){var b,c,d;a.g=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=qj(c),c.Ka?(c=a.D,Sd(c.b[d>>>c.g],!1)):He(a.f,!1);a.L=["br"];if(a.G)for(b=1;b<a.G.length;b++)c=a.G[b],d=qj(c),c.Ka?(c=a.D,Sd(c.b[d>>>c.g],!0)):He(a.f,!0);a.G=["bw"];a.ma=0}
h.pb=function(a,b,c){var d=!0;c||Tj(this,a,b,!1,!0);if(a!=this.g){var e=qj(b);if(-1===e)this.u("invalid address: "+yj(this,b)),d=!1;else{var f=a==this.G;65535<e&&(b.Ka=!0);if(b.Ka){var g=this.D;g.b[e>>>g.g].pb(e&g.i,f)}else e=this.f,(f?e.Xb++:e.Wb++)||pe(e)}}d&&(a.push(b),c?b.Qa=!0:(Uj(this,a,a.length-1,"set"),nj(this)));return d};
function Tj(a,b,c,d,e){var f=!1;c=qj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==qj(k)&&(!d||k.Qa)){f=!0;k.Qa||e||Uj(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(b=b==a.G,k.Ka?(d=a.D,Sd(d.b[c>>>d.g],b)):He(a.f,b));k.Qa||nj(a);break}}return f}function Vj(a,b){for(var c=1;c<b.length;c++)Uj(a,b,c);return b.length-1}function Uj(a,b,c,d){c=b[c];a.u(b[0]+" "+yj(a,c)+(d?" "+d:c.fc?' "'+c.fc+'"':""))}
function Rj(a,b){if(void 0!==b)Sj(a,b,1,a.g,!0),a.I=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Qa){if(!Tj(a,a.g,c,!0))break;b=0}}}
function Sj(a,b,c,d,e){var f=!1;if(!a.ma++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Qa)for(var l=qj(k)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Qa&&(Tj(a,d,k,!0),e=!0);if(n=k.$c){for(var f=!1,r=0;r<n.length;r++)if(!Wj(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.f.A.U||(f=!0)}if(f){e||Uj(a,d,g,"hit");break}}}a.ma--;return f}
function Xj(a,b,c,d){var e=V(b.K),f=a.Oa(b,2),g,k;for(k in a.Ga)if(g=a.Ga[k][f&k])break;g||(g=Yj);var l=g[0];0<=a.W.indexOf(l)&&(g=Yj,l=g[0]);var m=k="",n=Zj[l],r=g.length-1;l||r||(k=O(a,f));for(l=1;l<=r;l++){var u=g[l];if(void 0!==u){var t;t=a;var E=u,u=b,z="",D=E&ak;if(D==X)u=u.K+((f&255)<<24>>23)&65535,z=O(t,u);else if(D==bk)u=u.K-((f&63)<<1)&65535,z=O(t,u);else if(D==ck)z=O(t,f&7,1);else if(D==dk)z=O(t,f&63,1);else if(D==ek)z=O(t,f&255,1);else if(D=f&E,E&fk&&(D>>=6,E>>=6),E&Y){var E=null,F=D&
gk;switch(D&hk){case 0:z=Aj(F);break;case 8:z="@"+Aj(F);E=ik(t,t.f.g[F]);break;case 16:7>F?z="("+Aj(F)+")+":(D=t.Oa(u,2),z="#"+O(t,D,0,!0));break;case 24:7>F?z="@("+Aj(F)+")+":(D=t.Oa(u,2),z="@#"+O(t,D,0,!0),E=ik(t,D));break;case 32:z="-("+Aj(F)+")";break;case 40:z="@-("+Aj(F)+")";break;case 48:D=t.Oa(u,2);z=O(t,D,0,!0)+"("+Aj(F)+")";7==F&&(z=O(t,D=D+u.K&65535),E=ik(t,D));break;case 56:D=t.Oa(u,2),z="@"+O(t,D)+"("+Aj(F)+")",7==F&&(z="@"+O(t,D=D+u.K&65535),E=ik(t,Ec(t.f,D)))}E&&(z=[z,E])}t=z;if(!t||
!t.length){k="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<k.length&&(k+=",");k+=t||"???"}}f="";g=yj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+O(a,a.Oa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=Xa(f,24);g+=Xa(n,5);k&&(g+=" "+k);if(c||m)g=Xa(g,60)+";"+(c||""),g=a.f.A.zb?g+("cycles="+ee(a.f).toString()+" cs="+H(a.f.Sb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function ik(a,b){b=Fe(a.f,b)[0];b>=a.f.jb&&b<a.D.B&&(b=b-a.f.jb+a.D.B);var c=a.D;a=null;b>=c.B&&(b=c.Ma[b&ed])&&(a=b[4]);return a}function jk(a,b){switch(b){case "N":a=ve(a.f);break;case "Z":a=ue(a.f);break;case "V":a=te(a.f);break;case "C":a=se(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.f;if(8>b)c=Aj(b),c+="="+O(a,d.g[b]);else if(13>b)c="A"+(b-8)+"="+O(a,d.na[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+O(a,d.V[b-16]);else switch(b){case Bj:c="PS="+O(a,ud(d));break;case Cj:c="PI="+O(a,d.Va);break;case Dj:c="ER="+O(a,d.R);break;case Ej:c="SL="+O(a,d.sa&65280);break;case Fj:c="M0="+O(a,od(d));break;case Gj:c="M1="+O(a,qd(d));break;case Hj:c="M2="+O(a,rd(d));break;case Ij:c="M3="+O(a,d.T);break;case Jj:a.b&&(c="AR="+O(a,a.b.ua,3));break;case Kj:a.b&&(c="DR="+
O(a,a.b.vb));break;case Lj:a.b&&Ic(a.b)&&(c="SR="+O(a,a.b.Ya,3))}c&&(c+=" ");return c}function kk(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,Bj)+Z(a,Cj)+Z(a,Ej);d+=jk(a,"T")+jk(a,"N")+jk(a,"Z")+jk(a,"V")+jk(a,"C");b&&(b=d,c=""+(Z(a,Fj)+Z(a,Gj)),c+=Z(a,Hj)+Z(a,Ij)+Z(a,Dj),c=c+"\n"+(Z(a,Lj)+Z(a,Jj)+Z(a,Kj)),d=b+("\n"+c));return d}h.dd=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function th(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=$a(n,l,a.dd);0>r&&n.splice(-(r+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({xh:b,K:c,Qd:d,ea:e,ad:f})}function lk(a,b,c){var d=[],e=qj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Qd;if(e>=g&&e<g+k){e=$a(f.ad,[e-g],a.dd);0<=e?mk(a,b,e,d):c&&(e=~e,mk(a,b,e-1,d),mk(a,b,e,d));break}}return d}
function mk(a,b,c,d){var e={},f=a.B[b].ad,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ea[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function nk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return kj(a)||a.u("no variables"),!0;if(!c[2])return kj(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=fj(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function ok(a,b,c){var d=null;if(b=vj(a,b,!0)){var e=lk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+I(f)),f=e[0]+" ("+O(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+I(f)),f=e[4]+" ("+O(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function Pj(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=fj(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":re(e,
g);a.H=V(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.H=g?32768:0;break;case "C":e.G=g?65536:0;break;case "PS":vd(e,g);break;case "PI":td(e,g);break;case "ER":e.R=g;d=!0;break;case "SL":e.sa=g|255;break;case "M0":pd(e,g);d=!0;break;case "M3":sd(e,g);d=!0;break;case "AR":a.b&&(d=a.b,Fc(d,d.ua=g));d=!0;break;case "DR":a.b&&(d=a.b,pc(d,d.vb=g));d=!0;break;case "SR":if(a.b&&Ic(a.b)){Gc(a.b,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=
g&65535;break}a.u("unknown register: "+f);return}J(a.J);a.u("updated registers:")}}a.u(kk(a,d));c&&(a.H=V(e.g[7]),Qj(a,yj(a,a.H)))}}function pk(a,b){b=Ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):jj(a,null,c[2].charCodeAt(0)):fj(a,b,!0)}
function qk(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=hj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ra=b;sb(c,function(){return La(a,!0)&&kc(a,e,d,!1)},function(){a.b&&a.b.stop();J(a.J,-1);La(a,!1)})}}
function Qj(a,b,c,d){if(b=vj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=hj(a,c.substr(1)),null!=c&&(d=c);else{d=vj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.u("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ka(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=lk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.u(m)}k[3]&&(g=k[3],f=null);f=Xj(a,b,g,f);a.u(f);a.H=b;e-=b.K-l;c++}}}
function Wj(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(">> "+b):(a.P&&(a.u("ended assemble at "+yj(a,a.N)),a.H=a.N,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Ja(a)&&0<b.length){a.P&&(b="a "+yj(a,a.N)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
vj(a,g[1],!0);if(r)if(a.N=r,void 0===g[2])a.u("begin assemble at "+yj(a,r)),a.P=!0,J(a.J);else{var u;a.u("not supported yet");u=[];if(u.length){for(var t=0;t<u.length;t++)a.Nc(r,u[t],1);a.u(Xj(a,a.N))}}break;case "b":a:{var E=g[0],z=g[1],D=b;if("?"==z)a.u("breakpoint commands:"),a.u("\tbp [#]\tset exec breakpoint at addr #"),a.u("\tbr [#]\tset read breakpoint at addr #"),a.u("\tbw [#]\tset write breakpoint at addr #"),a.u("\tbc [#]\tclear breakpoint at addr #"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");
else{var F=E.charAt(1);if("l"==F){var gb;gb=0+Vj(a,a.g);gb+=Vj(a,a.L);(gb+=Vj(a,a.G))||a.u("no breakpoints")}else if("n"==F)a.ba=hj(a,z),a.u("break after "+a.ba+" instruction(s)");else if(void 0===z)a.u("missing breakpoint address");else{var W=V();if("*"!=z&&(W=vj(a,z,!0),!W))break a;"c"==F?null==W.K?(mj(a),a.u("all breakpoints cleared")):Tj(a,a.g,W)||Tj(a,a.L,W)||Tj(a,a.G,W)||a.u("breakpoint missing: "+yj(a,W)):null!=W.K&&(xj(a,W,D),"p"==F?a.pb(a.g,W):"r"==F?a.pb(a.L,W):"w"==F?a.pb(a.G,W):a.u("unknown breakpoint command: "+
F))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var Hb,Ta=g[0],Fa=g[1],Ua=g[2],Qk=g[3];if("?"==Fa){var Ib="";for(Hb in Rb)a.la[Hb]&&(Ib&&(Ib+=","),Ib+=Hb);Ib+=",state,symbols";a.u("dump memory commands:");a.u("\tda [a] dump info for address a");a.u("\tdb [a] [n] dump n bytes at address a");a.u("\tdw [a] [n] dump n words at address a");a.u("\tdd [a] [n] dump n dwords at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");
Ib.length&&a.u("dump extension commands:\n\t"+Ib)}else if("state"==Fa){var Ne=rk(a.J,!0);"console"==Ua?console.log(Ne):(a.Pa&&(a.Pa.value=""),Ne&&a.u(Ne))}else if("symbols"==Fa)for(var Oe=0;Oe<a.B.length;Oe++){var Pe=a.B[Oe],Jb;for(Jb in Pe.ea)if("."!=Jb.charAt(0)){var ji=Pe.ea[Jb].o;if(void 0!==ji){var ki=Pe.ea[Jb].l;ki&&(Jb=ki);a.u(O(a,ji)+" "+Jb)}}}else{if("d"==Ta){for(Hb in Rb)if(g[1]==Hb){var li=a.la[Hb];li?(g.shift(),g.shift(),li(g)):a.u("no dump registered for "+Fa);break a}Fa||(Ta=a.Ha||"dw")}else a.Ha=
Ta;if("dh"==Ta){var mi=Fa,ni=Ua,oi="",pi=0,wa=a.R,Ga=a.i;if(Ga.length){var qa=+mi||a.na,rc=+ni||10;isNaN(qa)?qa=rc:oi="more ";qa>Ga.length&&(a.u("note: only "+Ga.length+" available"),qa=Ga.length);wa-=qa;0>wa&&(null==Ga[Ga.length-1].K?(qa=wa+qa,wa=0):wa+=Ga.length);var Qe=[];"call"==ni&&(rc=1E5,Qe=["CALL"]);for(void 0!==mi&&a.u(qa+" instructions earlier:");0<rc&&wa!=a.R;){var qi=Ga[wa++];if(null==qi.K)break;var sc=V(qi.K),Rk=qa--,ri=Xj(a,sc,"history",Rk);(!Qe.length||0<=ri.indexOf(Qe[0]))&&a.u(ri);
sc.Ac&&(wa+=sc.Ac,rc-=sc.Ac,qa-=sc.Ac);wa>=Ga.length&&(wa=0);a.na=qa;pi++;rc--}}pi||(a.u("no "+oi+"history available"),a.na=void 0)}else{var fa=vj(a,Fa);if(fa)if("da"==Ta){var Re=fa.Ka||65535<fa.K,K=Fe(a.f,fa.K||0,Re);a.u(Xa("",Re?12:19)+Na(fa.K,Re?22:17,3)+" "+G(fa.K,8));6>K.length?(2<K.length&&(a.u(" OFFSET: "+Na(K[3],13,3)+" "+G(K[3],8)),a.u("UNIMAP["+Oa(K[1])+"]: "+Na(K[2],22,3)+" "+G(K[2],8))),a.u(" PHYSICAL: "+Na(K[0],22,3)+" "+G(K[0],8))):(a.u(" OFFSET: "+
Na(K[1],13,3)+" "+G(K[1],8)),a.u("+ "+sk[K[2]]+"PAR"+K[3]+": "+Na(K[4],22,3)+" "+G(K[4],8)),a.u("& MMUMASK: "+Na(K[5],22,3)+" "+G(K[5],8)),a.u("= PHYSICAL: "+Na(K[0],22,3)+" "+G(K[0],8)))}else{var ib=0,Se="ds"==Ta;if(Ua){if("l"==Ua.charAt(0))Ua=Ua.substr(1)||Qk,ib=hj(a,Ua);else{var si=vj(a,Ua);si&&(ib=si.K-fa.K)}0>ib&&(ib=0);65536<ib&&(ib=65536)}var Tk=a.xa;fa.xa&&(a.xa=fa.xa);for(var jb="dd"==Ta?4:"db"==Ta?1:2,wd=jb*ib||128,Te=Se?16:a.xa,Uk=(wd+Te-1)/Te|0||1,kb="";Uk--&&0<wd;){for(var lb=
"",Ue="",Fa=yj(a,fa),xd=Te,tc=0,uc=0;0<xd&&0<wd;){var Kb=1,yd=1==jb?a.Mc(fa,Kb):a.Oa(fa,Kb=2),tc=tc|yd<<(uc<<3),uc=uc+Kb;uc==jb&&(Se?(lb&&(lb+=","),lb+="0x"+H(tc,2*jb)):(lb+=O(a,tc,jb),lb+=1==jb?9==xd?"-":" ":" "),tc=uc=0);xd-=Kb;for(wd-=Kb;1==jb&&Kb--;)var Ve=yd&255,Ue=Ue+(32<=Ve&&128>Ve?String.fromCharCode(Ve):"."),yd=yd>>8}kb&&(kb+="\n");kb=Se?kb+(lb+","):kb+(Fa+": "+lb+(xd?"":" "+Ue))}kb&&a.u(kb);a.Ca=fa;a.xa=Tk}}}}break;case "e":if("else"==g[0])break;var Lb,We,Xe,Ye,Ze=g[0],$e=g[1];"eb"==Ze?
(Lb=1,We=255,Xe=a.Mc,Ye=a.Nc):"e"==Ze||"ew"==Ze?(Lb=2,We=65535,Xe=a.Oa,Ye=a.yd):$e=null;if(null==$e)a.u("edit memory commands:"),a.u("\teb [a] [...] edit bytes at address a"),a.u("\tew [a] [...] edit words at address a");else{var zd=vj(a,$e);if(zd)for(var Ad=2;Ad<g.length;Ad++){var vc=fj(a,g[Ad]);if(void 0===vc){a.u("unrecognized value: "+g[Ad]);break}vc&~We&&a.u("warning: "+H(vc)+" exceeds "+Lb+"-byte value");a.u("changing "+yj(a,zd)+(B(a,16)?"":" from "+O(a,Xe.call(a,zd),Lb))+" to "+O(a,vc,Lb));
Ye.call(a,zd,vc,Lb)}}break;case "g":a:{var ti=g[1],Vk=b;if(void 0!==ti){var af=vj(a,ti,!0);if(!af)break a;xj(a,af,Vk);a.pb(a.g,af,!0)}Nj(a,!0,c)}break;case "h":a.A.U?(c||a.u("halting"),a.Z()):Ka(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var bf;var wc=b.substr(2),wc=Ya(wc);fj(a,wc)?(c||a.u("true: "+wc),bf=!0):(c||a.u("false: "+wc),bf=!1);bf||(d=!1);break}f=!0;break;case "k":var Wk=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");
else{var cf=0,df=V(),xc=V(a.f.g[6]);for(a.u("stack trace for "+yj(a,xc));10>cf;){for(var mb=null,Xk=256;65536>xc.K>>>0;){df.K=a.Oa(xc,2);if(null==xc.K||!Xk--)break;if(!(df.K&1)){for(var Yk=a,Bd=df,ui=null,yc=Bd.K,vi=yc,ef=1;6>=ef&&yc;ef++){if(2<ef){Bd.K=yc;var Cd=Xj(Yk,Bd);if(0<=Cd.indexOf("JSR")){var wi=Cd.indexOf(" ");if(yc+(Cd.indexOf(" ",wi+1)-wi-1)/2==vi){ui=Cd;break}}}yc-=2}Bd.K=vi;if(mb=ui)break}}if(!mb||null==mb)break;var xi=null;if("ks"==Wk){var yi=mb.match(/[0-9A-F]+$/);yi&&(xi=ok(a,yi[0]))}mb=
Xa(mb,50)+" ;"+(xi||"stack="+yj(a,xc));a.u(mb);cf++}cf||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){ok(a,g[1],!0);break}f=!0;break;case "m":a:{var Ha,Ia=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Va=0;if("all"==N)Va=1879046143,N=null;else if("on"==N)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in Rb)if(N==Ha){Va=Rb[Ha];Ia=!!(a.ha&Va);break}if(!Va){a.u("unknown message category: "+N);break a}}if(Va)if("on"==g[2])a.ha|=
Va,Ia=!0;else if("off"==g[2]&&(a.ha&=~Va,Ia=!1,1073741824==Va)){for(var zi=1E3<=a.M.length?a.M.length-1E3:0;zi<a.M.length;)a.u(a.M[zi++]);a.M=[]}}var Zk=0,zc="";for(Ha in Rb)if(!N||N==Ha){var $k=!!(a.ha&Rb[Ha]);if(null===Ia||Ia==$k)zc&&(zc+=","),++Zk%10||(zc+="\n\t"),"key"==Ha&&(Ha="keys"),zc+=Ha}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==Ia?Ia?"messages on: ":"messages off: ":"message categories:\n\t")+(zc||"none"));nj(a)}break;case "p":if("print"==
g[0]){pk(a,b.substr(5));break}var al=g[0];if("?"==g[1])a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else{var Ai="pr"==al?1:0,Bi=1+Ai;if(a.I)a.u("step in progress");else{var Dd=V(a.f.g[7]),Mb=a.Oa(Dd);3==Mb||4==Mb||34816==(Mb&65280)||32256==(Mb&65024)||35072==(Mb&65280)?(a.I=Bi,wj(Dd,2)):2048==(Mb&65024)&&(Xj(a,Dd),a.I=Bi);a.I?(a.pb(a.g,Dd,!0),Nj(a)||(a.J&&ie(a.J),a.I=0)):qk(a,Ai?"tr":"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();
break}Pj(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Ac=+g[2];if(8==Ac||10==Ac||16==Ac)a.xa=Ac;else{a.u("invalid base: "+Ac);break}}a.u("default base: "+a.xa);break;case "cs":var Bc;void 0!==g[3]&&(Bc=+g[3]);switch(g[2]){case "int":a.f.Ab=Bc;break;case "start":a.f.Tb=Bc;break;case "stop":a.f.Cb=Bc;break;default:a.u("unknown cs option");break a}void 0!==Bc&&ae(a.f);a.u("checksums "+(a.f.A.zb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(fe(a.f,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));
a.u("target speed: "+(a.f.nb.toFixed(2)+"Mhz")+" ("+a.f.bb+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":qk(a,g[0],g[1]);break;case "u":Qj(a,g[1],g[2],8);break;case "v":if("var"==g[0]){nk(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Eb||"PDP11")+" version 1.32.1 ("+a.f.ba+",RELEASE"+(Gb?",TYPEDARRAYS":Fb?",BYTEARRAYS":",LONGARRAYS")+")");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){pk(a,b.substr(1));break}var ff="commands:",gf;for(gf in tk)ff+="\n"+Xa(gf,9)+tk[gf];nf(a)||(ff+="\nnote: history disabled if no exec breakpoints");a.u(ff);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Di){a.u("debugger error: "+(Di.stack||Di.message)),
d=!1}return d}function de(a,b,c){b=dj(a,b,c);for(var d in b)if(!Wj(a,b[+d]))return!1;return!0}
var tk={"?":"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"},Zj=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
Bj=20,Cj=21,Dj=22,Ej=23,Fj=24,Gj=25,Hj=26,Ij=27,Jj=28,Kj=29,Lj=30,zj={SP:6,PC:7,PS:Bj,PI:Cj,ER:Dj,SL:Ej,M0:Fj,M1:Gj,M2:Hj,M3:Ij,AR:Jj,DR:Kj,SR:Lj},sk="KI KD SI SD ?? ?? UI UD".split(" "),gk=7,hk=56,Y=hk|gk,fk=4032,X=4096,bk=8192,ck=12288,dk=24576,ek=32768,ak=61440,pj={61440:{4096:[62,fk,Y],8192:[47,fk,Y],12288:[18,fk,Y],16384:[14,fk,Y],20480:[16,fk,Y],24576:[3,fk,Y],36864:[63,fk,Y],40960:[48,fk,Y],45056:[19,fk,Y],49152:[15,fk,Y],53248:[17,fk,Y],57344:[94,fk,Y]},65024:{2048:[57,448,Y],28672:[100,Y,
448],29184:[101,Y,448],29696:[102,Y,448],30208:[103,Y,448],30720:[104,448,Y],32256:[105,448,bk]},65280:{256:[27,X],512:[24,X],768:[10,X],1024:[11,X],1280:[22,X],1536:[12,X],1792:[20,X],32768:[25,X],33024:[23,X],33280:[13,X],33536:[21,X],33792:[28,X],34048:[29,X],34304:[8,X],34560:[9,X],34816:[106,ek],35072:[107,ek]},65472:{64:[56,Y],192:[95,Y],2560:[39,Y],2624:[49,Y],2688:[53,Y],2752:[51,Y],2816:[67,Y],2880:[1,Y],2944:[77,Y],3008:[97,Y],3072:[73,Y],3136:[71,Y],3200:[6,Y],3264:[4,Y],3328:[58,dk],3392:[60,
Y],3456:[65,Y],3520:[96,Y],35328:[40,Y],35392:[50,Y],35456:[54,Y],35520:[52,Y],35584:[68,Y],35648:[2,Y],35712:[78,Y],35776:[98,Y],35840:[74,Y],35904:[72,Y],35968:[7,Y],36032:[5,Y],36096:[66,Y],36160:[59,Y],36224:[64,Y],36288:[61,Y]},65528:{128:[76,gk],152:[108,ck]},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]}},Yj=[0],tj=[58,60,65,96,110,100,101,102,103,104,105],uj=[108,59,64],Mj=1E3;vb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new lj(d);Ca(d,c)}});
function uk(a,b,c){q.call(this,"Computer",a,0,33554432);this.A.fa=!1;this.P=null;vk(this,b);this.M=Zd(this,"autoPower",a,6);this.j=0;this.T=+a.busWidth||+a.buswidth;this.I=this.H=this.L=null;this.G=this.S=!1;this.w=this.v=null;this.R=this.B=this.N=!1;this.V=Zd(this,"url")||"";(Math.random()+.1).toString(36);this.g=wk(this);if(this.f=Ba("CPU",this.id)){this.F=Ba("Debugger",this.id);this.D=new Lc({id:this.lb+".bus",busWidth:this.T},this.f,this.F);var d,e=za(this.id);if((this.i=Ba("Panel",this.id))&&
this.i.Pa)for(b=0;b<e.length;b++)d=e[b],d.O=this.i.O,d.u=this.i.u,d.Pa=this.i.Pa;this.u(Eb+" v1.32.1\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.u("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ta&&d.ta(this,this.D,this.f,this.F);this.b=Zd(this,"resume",a,4,xk);var f;b=null;if(a=Zd(this,"state")||(f=!0,a.state))this.L=b=a,f||(this.G=
!0,this.b=xk),this.b&&(this.w=new M(this,"1.32.1"),yk(this.w)?b=null:delete this.w);!b&&this.b&&(b=zk(this))&&(this.G=!0);if(b){var g=this;bb(b,null,!0,function(a,b,c){c?(g.H=null,g.G=!1,g.O("Unable to load machine state from server (error "+c+(b?": "+Ya(b):"")+")")):(g.I=b,g.S=!0);A(g)})}else A(this);this.C.power||(this.M=!0);!c&&this.M&&Ak(this,this.Ub)}else v("Unable to find CPU component")}p(uk,q);
function vk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.P=b}function Zd(a,b,c,d,e){var f=b.toLowerCase(),f=pb(b)||pb(f);void 0===f&&a.P&&(f=a.P[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Ak(a,b,c){for(var d=za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ja(f)){Ja(f,function(){Ak(a,b,c)});return}}b.call(a,c)}function Bk(a,b){var c=new M(a,"1.32.1",Ck);if(yk(c)&&Dk(c)){var d=c.get(Ek),e=b?b.get(Ek):"unknown";d!=e&&(a.O("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=uk.prototype;
h.Ub=function(a){void 0===a&&(a=this.b||(this.I?Fk:xk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.w||new M(this,"1.32.1");if(a==Gk)b=!0;else if(a>xk){if(yk(d,this.I)){this.v=new M(this,"1.32.1",Hk);yk(this.v)&&(Ik(this,d),a=Jk,Kk(this.v));this.v.set(Ek,ab());Lk(this.v);var e=this.b&&!this.G;if(a==Fk||ya("Click OK to restore the previous "+Eb+" machine state, or CANCEL to reset the machine.")){if(c=Dk(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?yk(d,g):("error"==f&&"no machine state"!=
g?(this.O("Error: "+g),"unable to verify user"==g&&(nb(Mk,""),this.g=null)):this.u(f+": "+g),Kk(d),yk(d)?(c=Dk(d),e=!0):c=!1))}e&&Bk(this,c?d:null)}else a==Jk&&d.clear()}else Bk(this);delete this.I;delete this.w}e=za(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Nk(this,g,d,b,c));b=[d,a,c];a!=Gk?Ak(this,this.ed,b):this.ed(b)}};
function Nk(a,b,c,d,e){if(!b.A.fa){b.A.fa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.za(f,d)&&f&&(v("Unable to restore state for "+b.type),a.L&&!a.S?(c.clear(),a.b=xk,window&&window.location.reload()):a.N=!0,b.za(null),e=!1),!d&&b.Rc){var g=b.Rc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ed=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.A.fa=!0;var d=this.C.power;d&&(d.textContent="Shutdown");this.f&&(Nk(this,this.f,b,c,a),J(this),this.f.Ia());this.N&&(Ik(this,b),b.clear());!c&&this.v&&(this.v.clear(),delete this.v);this.j=0};
function Ik(a,b){if(ya("There may be a problem with your "+Eb+" machine.\n\nTo help us diagnose it, click OK to send this "+Eb+" machine state to http://www.pcjs.org.")){var c=a.V;a=a.g||"";b=b.toString();var d={};d.app=Eb;d.ver="1.32.1";d.url=c;d.user=a;d.type="bug";d.data=b;bb("http://www.pcjs.org/api/v1/report",d,!0)}}
function rk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new M(a,"1.32.1"),g=new M(a,"1.32.1",Ck),k=ab();g.set(Ek,k);f.set(Ek,k);f.set(Ok,"1.32.1");f.set(Pk,window?window.location.href:null);f.set(Sk,window?window.navigator.userAgent:"");a.f&&a.f.ya&&(c&&a.f.Z(),d=a.f.ya(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.fa=!1,!1===d&&(e=null)));for(var k=za(a.id),l=0;l<k.length;l++){var m=k[l];m.A.fa&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.fa=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.g&&bl(a,a.g,f.toString()),Lk(g)&&Lk(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==cl),d&&f.clear(k)):e=f.toString());c&&(a.A.fa=!1,b=a.C.power)&&(b.textContent="Power");a.j=0;return e}h.reset=function(){this.D&&this.D.reset&&(C(this,"Resetting "+this.D.type),this.D.reset());this.f&&this.f.reset&&(C(this,"Resetting "+this.f.type),this.f.reset());for(var a=za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.f&&c.reset&&(C(this,"Resetting "+c.type),c.reset())}J(this,-1)};
h.start=function(a,b){for(var c=za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};h.stop=function(a,b){for(var c=za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
function J(a,b){if(a.f){var c=a.f,d=b||0,e=c.C.speed;e&&(0>=d||30<=(c.oc+=d))&&(e.textContent=c.A.U?c.mb.toFixed(2)+"Mhz":"Stopped",c.oc=0)}if(a.i&&(a=a.i,b=b||0,a.v)){c=a.f.A.U;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)dc(a,"R"+e,a.f.g[e]);e=ud(a.f);dc(a,"PS",e);dc(a,"NF",e&8?1:0,1);dc(a,"ZF",e&4?1:0,1);dc(a,"VF",e&2?1:0,1);dc(a,"CF",e&1?1:0,1);a.j=0}Fc(a,0<b&&c&&!d?a.f.Za:a.ua);pc(a,a.vb);b=a.f;b=b.Ha?b.T&16?1:2:4;Hc(a,"B22",b&1);Hc(a,"B18",b&2);Hc(a,"B16",b&4)}}
h.pa=function(a,b,c){var d=this;switch(b){case "power":return this.C[b]=c,c.onclick=function(){d.j||(d.A.fa?rk(d,!1,!0):Ak(d,d.Ub))},!0;case "reset":return this.C[b]=c,c.onclick=function(){if(d.A.fa&&!d.j)if(d.b&&!d.H){var a=ya("Click OK to save changes to this "+Eb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");rk(d,a,!0);!a&&d.L?window&&window.location.reload():(a||(d.B=!0),d.Ub(xk),d.B=!1)}else d.reset(),d.f&&d.f.Ia()},!0;case "save":if(Ra(db(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.C[b]=c,c.onclick=function(){var a=wk(d,!0);if(a){var b=!!(d.b&&!d.H||d.L),c=rk(d,b);b?bl(d,a,c):d.O("Resume disabled, machine state not saved")}},!0}return!1};
function wk(a,b){var c=a.g;c||((c=hb(Mk),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=dl(a,c))||a.O("The user ID is invalid.")):b&&a.O("Browser local storage is not available"));return c}
function dl(a,b){a.g=null;b=bb(db()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(nb(Mk,b.data),a.g=b.data)}catch(d){v(d.message+" ("+c+")")}return a.g}function zk(a){var b=null;a.g&&(b=db()+"/api/v1/user?req=load&user="+a.g+"&state="+el(a,"1.32.1"));return b}
function bl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=el(a,"1.32.1");d.data=c;b=bb(db()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.O("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.O(c),nb(Mk,""),a.g=null)}}
function Kh(a){var b;a=za(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 ie(a,b){if(a.Pa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Pa.focus();!b&&window&&window.scrollTo(c,d)}}var Hk="failsafe",Ck="validate",Ek="timestamp",Ok="version",Pk="url",Sk="browser",Mk="user",Gk=-1,xk=0,Fk=1,Jk=2,cl=3;
vb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new uk(g,d,!0);Ca(g,f);g.M&&Ak(g,g.Ub)}});wb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Ba("Computer",c.id))&&c.R&&!c.A.fa&&c.Ub(Gk)}});wb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Ba("Computer",c.id))&&c.A.fa&&rk(c,!(!c.b||c.H),!0)}});
function M(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.C=!1;this.key=el(a,b,c);Kk(this,a.Fd)}h=M.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function yk(a,b){return b?(a.b=b,a.g=!0,a.C=!1,!0):a.g?!0:eb()&&(b=hb(a.key))?(a.b=b,a.g=!0):!1}function Dk(a){var b=!0;if(!a.C)try{a.f=JSON.parse(a.b),a.C=!0}catch(c){v(c.message||c),b=!1}return b}
function Lk(a){var b=!0;if(eb()){var c=JSON.stringify(a.f);nb(a.key,c)||(v("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 Kk(a,b){a.b="";a.f={};a.g=a.C=!1;b&&a.set("parms",b)}
h.clear=function(a){Kk(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 el(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 fl=0;
function gl(a,b,c,d,e,f){e("Loading "+a+"...");bb(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):hl(k,a,b,c,d,e,f)})}
function hl(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(ua(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?il(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function il(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");bb(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);il(a,b,c)}})}else c(a,null)}
function jl(a,b,c,d){function e(a){if(void 0===k){var b=g&&y(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=Sa(a))}function f(a){e("Error: "+a);l&&(--fl||zb(!0));l=!1}var g,k,l=!0;fl++;va[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.32.1/components.xsl");m=function(d,k){k?gl(c,null,null,!1,e,function(d,l){l?(ua(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--fl||zb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--fl||zb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?gl(b,a,d,!0,e,m):hl(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPDP11=function(a,b,c,d){zb(!1);return jl(a,b,c,d)};window.findMachineComponent=function(a,b){return Ba(b,a+".machine")};window.enableEvents=zb;window.sendEvent=Bb;})();//# sourceMappingURL=/tmp/pdpjs/1.32.1/pdp11-dbg.map

View file

@ -0,0 +1,283 @@
(function(){/*
http://pcjs.org/modules/shared/es6/diskapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/dumpapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/reportapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/userapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/keys.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/strlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/weblib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/messages.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/panel.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/device.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/cpu.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/rom.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/ram.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/keyboard.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/pc11.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/rk11.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/rl11.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/state.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/embed.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/component.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/usrlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/bus.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/memory.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/cpustate.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/cpuops.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/serial.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/disk.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/es6/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp11/lib/debugger.js (C) Jeff Parsons 2012-2017
*/
var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}for(var ia=ba,ja=["Math","log2"],ka=0;ka<ja.length-1;ka++){var la=ja[ka];la in ia||(ia[la]={});ia=ia[la]}var ma=ja[ja.length-1],na=ia[ma],oa=na?na:function(a){return Math.log(a)/Math.LN2};oa!=na&&null!=oa&&aa(ia,ma,{configurable:!0,writable:!0,value:oa});
var pa={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},q={Gf:0,Gc:1,If:2,Jf:3,Kf:4,Lf:5,Mf:6,Nf:7,ic:8,Of:9,Hc:10,Pf:11,Qf:12,Ic:13,Rf:14,Sf:15,Tf:16,Uf:17,Vf:18,Wf:19,Xf:20,Yf:21,Zf:22,$f:23,ag:24,bg:25,cg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,hc:65,Ff:66,Hf:67,dg:68,E:69,eg:70,fg:71,gg:72,hg:73,ig:74,jg:75,kg:76,lg:77,mg:78,ng:79,og:80,Q:81,pg:82,qg:83,rg:84,sg:85,tg:86,ug:87,vg:88,wg:89,Uc:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,xg:97,yg:98,zg:99,d:100,e:101,Bg:102,Cg:103,Dg:104,Eg:105,Hg:106,k:107,Ig:108,Jg:109,n:110,Kg:111,p:112,q:113,r:114,Lg:115,t:116,Mg:117,Ng:118,Og:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,Jc:127};function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Rc=b;this.exports={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.l={ready:!1,Sa:!1,Xb:!1,R:!1,error:!1};this.Bb=null;this.l.error=!1;this.j={};this.Kc=d||0;this.D=this.c=this.u=this.A=this.ab=null;u.push(this)}function qa(a,b,c){ra[a]&&b&&(ra[a][b]=c)}
function sa(){return Date.now()||+new Date}function v(a){window&&window.alert(a)}function ta(a){var b=!1;window&&(b=window.confirm(a));return b}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ua(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
function va(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<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function A(a,b){var c=B;b=C(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=z(g))&&k.binding&&a.ca(k.type,k.binding,g,k.value),m=l.length}}}}
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=r.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.ca=function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.ab=this.j[b]=c,c.value="",this.V=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.B=function(a){this.V(a,this.Ka)}),!0;default:return!1}};h.log=function(){};h.V=function(){};
h.status=function(a){this.V(this.Ka+": "+a)};h.B=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function wa(a,b){a.l.error=!0;a.B(b)}function xa(a,b){b&&(a.l.ready?b():a.Bb=b);return a.l.ready}function D(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.Bb,a.Bb=null,b&&b()))}function ya(a,b){a.l.Xb?(a.l.Sa=!1,a.l.Xb=!1):a.l.error?a.V(a.toString()+" error"):a.l.Sa=b}h.ha=function(){return this.l.R=!0};h.ga=function(a,b){b&&(this.l.R=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var ra=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
function E(a){var b=10,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==
e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function za(a,b){var c="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return""+c}function Aa(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function F(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 Ba(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Ca(a,b){return-1!==a.indexOf(b,a.length-b.length)}function Ea(a){return a.replace(/[&<>"']/g,function(a){return Fa[a]})}function Ga(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var Fa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ha={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 Ia(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function G(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 Ja(a,b){var c,d={N:null,fa:null,Z:null,Y:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Z=g.load;d.Y=g.exec;if(e=g.bytes)d.N=e;else if(e=g.words)for(d.N=Array(2*e.length),f=c=0;c<e.length;c++)d.N[f++]=e[c]&255,d.N[f++]=e[c]>>8&255;else if(e=g.data)for(d.N=Array(4*e.length),f=c=0;c<e.length;c++)d.N[f++]=e[c]&255,
d.N[f++]=e[c]>>8&255,d.N[f++]=e[c]>>16&255,d.N[f++]=e[c]>>24&255;else d.N=g;d.fa=g.symbols;d.N.length?1==d.N.length&&(v(d.N[0]),d=null):(v("Empty resource: "+a),d=null)}catch(k){v("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)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.N=e)}return d}
function Ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}function La(){if(null==Ma){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}Ma=a}return Ma}function Na(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=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 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){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}
function Ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ua(a){Va.init.push(a)}function Wa(a){if(Xa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ya(a){!Xa&&a?(Xa=!0,Za&&$a("init"),ab&&$a("show")):Xa=a}function $a(a){Va[a]&&Wa(Va[a])}var Ra=null,Va={init:[],show:[],exit:[]},Za=!1,ab=!1,Xa=!0,Ma=null;
Ta("onload",function(){Za=!0;Wa(Va.init)});Ta("onpageshow",function(){ab=!0;Wa(Va.show)});Ta(Pa("Opera")||Pa("iOS")?"onunload":"onbeforeunload",function(){Wa(Va.exit)});var bb="undefined"!==typeof ArrayBuffer,B="pdp11",cb="PDPjs",db=!0,eb=!0,fb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},B="pdp11",cb="PDPjs",eb=db=!0;
function gb(a,b){r.call(this,"Panel",a,0,512);this.i=this.m=0;this.C=b;this.ja=this.g=this.b=this.h=0;this.s=this.v=this.o=!1;this.w=hb;this.f={};this.a={START:[1,1,!0,!1,this.md],STEP:[1,1,!1,!1,this.nd],ENABLE:[1,1,!1,!1,this.hd],CONT:[1,1,!0,!1,this.fd],DEP:[0,0,!0,!1,this.gd],EXAM:[1,1,!0,!1,this.jd],LOAD:[1,1,!0,!1,this.ld],TEST:[0,0,!0,!1,this.kd]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.od,a];this.D=this.c=this.u=this.A=null;D(this)}n(gb,r);h=gb.prototype;h.reset=function(){this.stop()};
h.ca=function(a,b,c,d){if(this.A&&this.A.ca(a,b,c,d)||this.c&&this.c.ca(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.j[b]=c,this.m++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.f[b]=d?1:0,this.m++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ib(a,
b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){jb(a,b)}}(this,b),!0):r.prototype.ca.call(this,a,b,c,d)}};h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;kb(b,this,lb);mb(b,this.reset.bind(this));nb(this);ob(this)};h.ha=function(a,b){b||(this.C&&pb(),this.reset());return!0};h.ga=function(){return!0};
function qb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function nb(a,b){for(var c in a.f)qb(a,c,null!=b?b:a.f[c])}function rb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ob(a){for(var b in a.a)rb(a,b,a.a[b][1])}function sb(a,b,c,d){a.j[b]&&(void 0===c&&(wa(a,"Value for "+b+" is invalid"),H(a.c)),c=8==(a.D&&a.D.h||8)?za(c,d):Aa(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
function ib(a,b){var c=a.a[b];rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=tb&&(a.s=b==ub,a.v=b==vb)}function jb(a,b){var c=a.a[b];c[2]&&c[3]&&(rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.md=function(a){a||this.c.l.P||(a=this.c,a.u.reset(),wb(a),this.a[xb]&&this.a[xb][1]&&yb(this.c))};h.nd=function(){};h.hd=function(a){a||H(this.c)};
h.fd=function(a){if(!a&&!this.c.l.P)if(this.a[xb]&&this.a[xb][1])yb(this.c);else{a=this.D;var b;if(b=a)a.l.Sa&&(a.l.Xb=!0),b=!a.l.Sa;if(b)ya(a,!0),a.f(0,null),ya(a,!1);else try{var c=this.c.Qb(1);0<c&&(zb(this.c,c),Ab(this.c,c,!0),Bb(this.c,c))}catch(d){"number"!=typeof d&&wa(this.c,d.stack||d.message)}this.stop();this.A&&Cb(this.A)}};h.gd=function(a){if(a&&!this.c.l.P)if(this.s&&Db(this),a=Eb(this,this.b),this.w==hb)Fb(this.u,this.ja,a);else{var b=this.c,c=this.ja;b.bb++;b.u.yb(Gb(b,c,4),a);b.bb--}};
h.jd=function(a){if(!a&&!this.c.l.P){this.v&&Db(this);if(this.w==hb)a=Hb(this.u,this.ja);else{a=this.c;var b=this.ja;a.bb++;b=a.u.xb(Gb(a,b,2));a.bb--;a=b}Eb(this,a)}};h.ld=function(a){a||this.c.l.P||Ib(this,this.b)};h.kd=function(a){if(a)this.o=!0,nb(this,!0);else if(this.o=!1,nb(this),void 0!==this.j[Jb]){for(a=this.b=0;22>a;a++)this.a["S"+a][1]=0&1<<a?1:0;ob(this)}};h.od=function(a,b){this.b=a?this.b|1<<b:this.b&~(1<<b)};
function Db(a){var b=1140>=a.c.pa?8:16,c=65472<=a.ja&&a.ja<65472+b,b=c?1:2,c=c?15:a.u.v;a.a[tb]&&a.a[tb][1]||(b=-b);Ib(a,a.ja&~c|a.ja+b&c)}function Ib(a,b){a.ja=b&a.u.v;b=a.ja;for(var c=0;22>c;c++)Kb(a,"A"+c,b&1<<c)}function Eb(a,b){a.g=b&65535;b=a.g;for(var c=0;16>c;c++)Kb(a,"D"+c,b&1<<c);return a.g}function Kb(a,b,c){a.f[b]=c;a.o||qb(a,b,c)}h.stop=function(){Ib(this,this.c.b[7])};h.setData=function(a,b){b?this.h=a:this.g=a};h.td=function(a,b){return(b?this.h:this.b)&65535};
h.Ee=function(a){this.h=a};function pb(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=ua(d.id);e||(e=new gb(d,!0));A(e,c)}}var hb=7,Jb="S0",ub="DEP",xb="ENABLE",vb="EXAM",tb="STEP",Lb={},lb=(Lb[65400]=[null,null,gb.prototype.td,gb.prototype.Ee,"CNSW"],Lb);Ua(pb);
function Mb(a,b,c){r.call(this,"Bus",a,0,16);this.c=b;this.D=c;this.S=+a.busWidth||16;this.F=1<<this.S;this.v=this.F-1;this.g=Nb;this.h=Math.log2(this.g);this.K=this.g>>2;this.f=this.g-1;this.s=this.F/this.g|0;this.L=this.s-1;this.Ha=[];this.m=0;this.o=!1;this.G=[];this.Vc=[Ob,Pb,Qb,Rb];this.a=this.b=[];this.C=this.w=this.i=this.H=this.I=0;a=new I(this);Sb(a);this.a=Array(this.s);this.b=Array(this.s);for(b=0;b<this.s;b++)this.a[b]=this.b[b]=a;this.C=this.F-Nb;Tb(this,this.C,Nb,Ub,this);this.I=this.H=
(this.C&this.v)>>>this.h;this.w=0;this.i=this.v;D(this)}n(Mb,r);function Vb(a,b){if(b!=a.w){for(var c=0;c<a.s;c++)a.b[c]=a.a[c];a.w=0;a.i=a.v;b&&(a.w=b,b=1<<b,a.i=b-1,b-=Nb,a.I=(b&a.i)>>>a.h,a.b[a.I]=a.a[a.H])}}h=Mb.prototype;h.reset=function(){for(var a=0;a<this.G.length;a++)this.G[a]();Vb(this,16)};h.ha=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.ga=function(a){return a?this.save():!0};h.save=function(){var a=new J(this);a.set(0,Wb(this));return a.data()};
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.K){for(var e=0,f=Array(this.K),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Tb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.h;0<g&&k<a.a.length;){var l=a.a[k],m=k*a.g,p=a.g-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ra)return l.vb+=l.Ra-f,l.Ra=f,!0;if(f>=l.Ra+l.vb){p=l.size-(f-m);p>g&&(p=g);l.vb=f-l.Ra+p;f=m+a.g;g-=p;k++;continue}}return Xb(Yb,f,g)}f=new I(a,f,p,a.g,d,e);Sb(f,l);a.a[k++]=f;f=m+a.g;g-=p}return 0>=g?(a.status((c>>10)+"Kb "+Zb[d]+" at "+za(b)),!0):Xb($b,b,c)}h.Ec=function(a){return this.b[(a&this.i)>>>this.h].hb(a&this.f,a)};
h.xb=function(a){var b=a&this.f,c=(a&this.i)>>>this.h;return eb||b!=this.f?this.b[c].W(b,a):this.b[c++].hb(b,a)|this.b[c&this.L].hb(0,a+1)<<8};h.Fc=function(a,b){this.b[(a&this.i)>>>this.h].kb(a&this.f,b,a)};h.yb=function(a,b){var c=a&this.f,d=(a&this.i)>>>this.h;eb||c!=this.f?this.b[d].nb(c,b,a):(this.b[d++].kb(c,b&255,a),this.b[d&this.L].kb(0,b>>8&255,a+1))};function ac(a,b){return a.a[(b&a.v)>>>a.h]}
function Hb(a,b){var c;a.o=!1;a.m++;var d=b&a.f,e=ac(a,b);eb||d!=a.f?c=e.D(d,b):c=e.i(d,b)|ac(a,b+1).i(0,b+1)<<8;a.m--;return c}function bc(a,b,c){a.o=!1;a.m++;ac(a,b).j(b&a.f,c&255,b);a.m--}function Fb(a,b,c){a.o=!1;a.m++;var d=b&a.f,e=ac(a,b);eb||d!=a.f?e.m(d,c&65535,b):(e.j(d,c&255,b),ac(a,b+1).j(0,c>>8&255,b+1));a.m--}
function Wb(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.a[d];if(e.xa||e.ad){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function cc(a){for(var b=dc,c=0,d=0;d<a.a.length;d++){var e=a.a[d];e.type==b&&(c=e.Ra+e.vb)}return c}
function ec(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&gc;if(void 0!==a.Ha[p])return v("I/O address already registered: "+Aa(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Ha[p]=[d,e,f,g,t,k||16,!1]}return!0}
function kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.pa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],x=g[5]||1,w=0;w<x;w++,f+=2)if(t&&1<x&&(t=g[4]+w),!ec(a,f,f,k,l,m,p,g[7]||b.Kc,t||b.Ka))return!1}}return!0}
function mb(a,b){a.G.push(b)}function K(a,b,c){a.o=!0;a.m||(c&&(a.c.G|=c),L(a.c,4,0,b))}function hc(a){var b=a.o;a.o=!1;return b}function Xb(a,b,c){v("Memory block error ("+a+": "+Aa(b)+","+Aa(c)+")");return!1}var Nb=8192,gc=Nb-1,Yb=1,$b=2;function Ob(a,b){var c=-1,d=this.controller,e=d.Ha[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ha[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;K(d,b,16);return 255}
function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ha[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d||K(e,c,16)}function Qb(a,b){var c=-1,d=this.controller;a=d.Ha[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return c;K(d,b,16);return 65535}
function Rb(a,b,c){var d=!1,e=this.controller;a=e.Ha[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d||K(e,c,16)}function M(a){r.call(this,"Device",a,0,256);this.a={Ag:0,bc:-1}}n(M,r);h=M.prototype;h.aa=function(a,b,c,d){this.u=b;this.A=a;this.c=c;this.D=d;var e=this;this.a.bc=ic(c,function(){e.a.fb|=128;e.a.fb&64&&N(e.c,e.a.Ia);e.A&&Cb(e.A,1);jc(e.c,e.a.bc,1E3/60)});this.a.Ia=kc(c,64,6,524288);kb(b,this,lc);mb(b,this.reset.bind(this));D(this)};
h.reset=function(){this.a.fb=128;jc(this.c,this.a.bc,1E3/60,!0)};h.Ad=function(){return this.a.fb};h.Le=function(a){this.a.fb=a&192;this.a.fb&64||(a=this.a.Ia)&&mc(this.c,a)};h.Cd=function(){var a=this.c,b=a.H;b&57344||(b=b&-3199|a.Na<<5|a.Oa<<1);return b};h.Ne=function(a){nc(this.c,a&-129|this.c.H&128)};h.Dd=function(){var a=this.c;a.H&57344||(a.cb=a.F>>16&65535);a=a.cb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ed=function(){var a=this.c;a.H&57344||(a.eb=a.F&65535);return a.eb};h.Fd=function(){return this.c.la};
h.Oe=function(a){var b=this.c;1170>b.pa&&(a&=-49);b.la!=a&&(b.la=a,b.Ba=a&16?4194303:262143,oc(b))};h.me=function(a){a=a>>1&63;var b=this.c.Ga[a>>1];return a&1?b>>16:b&65535};h.xf=function(a,b){b=b>>1&63;var c=b>>1;this.c.Ga[c]=b&1?this.c.Ga[c]&65535|(a&63)<<16:this.c.Ga[c]&-65536|a&65534};h.fe=function(a){return this.c.s[1][a>>1&7]};h.qf=function(a,b){this.c.s[1][b>>1&7]=a&65295};h.de=function(a){return this.c.s[1][(a>>1&7)+8]};h.nf=function(a,b){this.c.s[1][(b>>1&7)+8]=a&65295};
h.ee=function(a){return this.c.I[1][a>>1&7]};h.pf=function(a,b){b=b>>1&7;this.c.I[1][b]=a;this.c.s[1][b]&=65295};h.ce=function(a){return this.c.I[1][(a>>1&7)+8]};h.mf=function(a,b){b=(b>>1&7)+8;this.c.I[1][b]=a;this.c.s[1][b]&=65295};h.zd=function(a){return this.c.s[0][a>>1&7]};h.Ke=function(a,b){this.c.s[0][b>>1&7]=a&65295};h.xd=function(a){return this.c.s[0][(a>>1&7)+8]};h.Ie=function(a,b){this.c.s[0][(b>>1&7)+8]=a&65295};h.yd=function(a){return this.c.I[0][a>>1&7]};
h.Je=function(a,b){b=b>>1&7;this.c.I[0][b]=a;this.c.s[0][b]&=65295};h.wd=function(a){return this.c.I[0][(a>>1&7)+8]};h.He=function(a,b){b=(b>>1&7)+8;this.c.I[0][b]=a;this.c.s[0][b]&=65295};h.le=function(a){return this.c.s[3][a>>1&7]};h.wf=function(a,b){this.c.s[3][b>>1&7]=a&65295};h.je=function(a){return this.c.s[3][(a>>1&7)+8]};h.uf=function(a,b){this.c.s[3][(b>>1&7)+8]=a&65295};h.ke=function(a){return this.c.I[3][a>>1&7]};h.vf=function(a,b){b=b>>1&7;this.c.I[3][b]=a;this.c.s[3][b]&=65295};
h.ie=function(a){return this.c.I[3][(a>>1&7)+8]};h.tf=function(a,b){b=(b>>1&7)+8;this.c.I[3][b]=a;this.c.s[3][b]&=65295};h.ib=function(a){a&=7;return this.c.i&2048?this.c.qa[a]:this.c.b[a]};h.lb=function(a,b){b&=7;this.c.i&2048?this.c.qa[b]=a:this.c.b[b]=a};h.Kd=function(){return this.c.i&49152?this.c.X[0]:this.c.b[6]};h.Te=function(a){this.c.i&49152?this.c.X[0]=a:this.c.b[6]=a};h.Nd=function(){return this.c.b[7]};h.We=function(a){this.c.b[7]=a};
h.jb=function(a){a&=7;return this.c.i&2048?this.c.b[a]:this.c.qa[a]};h.mb=function(a,b){b&=7;this.c.i&2048?this.c.b[b]=a:this.c.qa[b]=a};h.Ld=function(){return 1==(this.c.i&49152)>>14?this.c.b[6]:this.c.X[1]};h.Ue=function(a){1==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.X[1]=a};h.Md=function(){return 3==(this.c.i&49152)>>14?this.c.b[6]:this.c.X[3]};h.Ve=function(a){3==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.X[3]=a};h.vd=function(a){return this.c.tb[a-65504>>1]};
h.Ge=function(a,b){this.c.tb[b-65504>>1]=a};h.zc=function(a){return 65520==a?(cc(this.u)>>6)-1:0};h.Cc=function(){};h.he=function(){return 1};h.sf=function(){};h.ud=function(){return this.c.G};h.Fe=function(){this.c.G=0};h.Bd=function(){return this.c.sb};h.Me=function(a,b){b&1||(a&=255);this.c.sb=a};h.Gd=function(a,b){return b?0:this.c.Qa};h.Pe=function(a){var b=this.c;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.g|=1}b.Qa=a};h.ge=function(a,b){return b?0:this.c.Fa&65280};
h.rf=function(a){this.c.Fa=a|255};h.Jd=function(){return pc(this.c)};h.Se=function(a){qc(this.c,a)};h.Bc=function(){};
var O={},lc=(O[61568]=[null,null,M.prototype.me,M.prototype.xf,"UNIMAP",64,1170],O[62592]=[null,null,M.prototype.fe,M.prototype.qf,"SIPDR",8,1145,64],O[62608]=[null,null,M.prototype.de,M.prototype.nf,"SDPDR",8,1145,64],O[62624]=[null,null,M.prototype.ee,M.prototype.pf,"SIPAR",8,1145,64],O[62640]=[null,null,M.prototype.ce,M.prototype.mf,"SDPAR",8,1145,64],O[62656]=[null,null,M.prototype.zd,M.prototype.Ke,"KIPDR",8,1140,64],O[62672]=[null,null,M.prototype.xd,M.prototype.Ie,"KDPDR",8,1145,64],O[62688]=
[null,null,M.prototype.yd,M.prototype.Je,"KIPAR",8,1140,64],O[62704]=[null,null,M.prototype.wd,M.prototype.He,"KDPAR",8,1145,64],O[62798]=[null,null,M.prototype.Fd,M.prototype.Oe,"MMR3",1,1145,64],O[65382]=[null,null,M.prototype.Ad,M.prototype.Le,"LKS"],O[65402]=[null,null,M.prototype.Cd,M.prototype.Ne,"MMR0",1,1140,64],O[65404]=[null,null,M.prototype.Dd,M.prototype.Bc,"MMR1",1,1145,64],O[65406]=[null,null,M.prototype.Ed,M.prototype.Bc,"MMR2",1,1140,64],O[65408]=[null,null,M.prototype.le,M.prototype.wf,
"UIPDR",8,1140,64],O[65424]=[null,null,M.prototype.je,M.prototype.uf,"UDPDR",8,1145,64],O[65440]=[null,null,M.prototype.ke,M.prototype.vf,"UIPAR",8,1140,64],O[65456]=[null,null,M.prototype.ie,M.prototype.tf,"UDPAR",8,1145,64],O[65472]=[null,null,M.prototype.ib,M.prototype.lb,"R0SET0"],O[65473]=[null,null,M.prototype.ib,M.prototype.lb,"R1SET0"],O[65474]=[null,null,M.prototype.ib,M.prototype.lb,"R2SET0"],O[65475]=[null,null,M.prototype.ib,M.prototype.lb,"R3SET0"],O[65476]=[null,null,M.prototype.ib,
M.prototype.lb,"R4SET0"],O[65477]=[null,null,M.prototype.ib,M.prototype.lb,"R5SET0"],O[65478]=[null,null,M.prototype.Kd,M.prototype.Te,"R6KERNEL"],O[65479]=[null,null,M.prototype.Nd,M.prototype.We,"R7KERNEL"],O[65480]=[null,null,M.prototype.jb,M.prototype.mb,"R0SET1",1,1145],O[65481]=[null,null,M.prototype.jb,M.prototype.mb,"R1SET1",1,1145],O[65482]=[null,null,M.prototype.jb,M.prototype.mb,"R2SET1",1,1145],O[65483]=[null,null,M.prototype.jb,M.prototype.mb,"R3SET1",1,1145],O[65484]=[null,null,M.prototype.jb,
M.prototype.mb,"R4SET1",1,1145],O[65485]=[null,null,M.prototype.jb,M.prototype.mb,"R5SET1",1,1145],O[65486]=[null,null,M.prototype.Ld,M.prototype.Ue,"R6SUPER",1,1145],O[65487]=[null,null,M.prototype.Md,M.prototype.Ve,"R6USER",1,1145],O[65504]=[null,null,M.prototype.vd,M.prototype.Ge,"CTRL",8,1170],O[65520]=[null,null,M.prototype.zc,M.prototype.Cc,"LSIZE",1,1170],O[65522]=[null,null,M.prototype.zc,M.prototype.Cc,"HSIZE",1,1170],O[65524]=[null,null,M.prototype.he,M.prototype.sf,"SYSID",1,1170],O[65526]=
[null,null,M.prototype.ud,M.prototype.Fe,"ERR",1,1170],O[65528]=[null,null,M.prototype.Bd,M.prototype.Me,"MBR",1,1170],O[65530]=[null,null,M.prototype.Gd,M.prototype.Pe,"PIR"],O[65532]=[null,null,M.prototype.ge,M.prototype.rf,"SLR"],O[65534]=[null,null,M.prototype.Jd,M.prototype.Se,"PSW"],O);
Ua(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new M(c);A(c,d);break;case "pc11":c=new rc(c);A(c,d);break;case "rl11":c=new P(c);A(c,d);break;case "rk11":c=new Q(c),A(c,d)}}});
function I(a,b,c,d,e,f){this.b=a;this.id=sc+=2;this.c=null;this.Ra=b;this.vb=c;this.size=d||0;this.type=e||tc;this.A=e==uc;this.controller=null;this.hb=this.i=this.Zb;this.W=this.D=this.$b;this.kb=this.j=this.wb;this.nb=this.m=this.dc;this.g=this.h=0;Sb(this);this.xa=this.ad=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.c=a[0],vc(this,f.Vc);else if(bb)this.f=new ArrayBuffer(this.size),this.u=new DataView(this.f,0,this.size),this.a=new Uint8Array(this.f,0,this.size),this.o=new Uint16Array(this.f,
0,this.size>>1),this.c=new Int32Array(this.f,0,this.size>>2),vc(this,wc?xc:yc);else{a=this.c=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;vc(this,Ac)}else vc(this)}h=I.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(bb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.c;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(bb)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.c=a;return this.xa=!0}return!1};function vc(a,b){b||(b=Bc);Cc(a,b,void 0);Dc(a,b,void 0)}function Cc(a,b,c){c&&a.g||(a.hb=b[0]||a.Zb,a.W=b[2]||a.$b);if(c||void 0===c)a.i=b[0]||a.Zb,a.D=b[2]||a.$b}function Dc(a,b,c){c&&a.h||(a.kb=!a.A&&b[1]||a.wb,a.nb=!a.A&&b[3]||a.dc);if(c||void 0===c)a.j=b[1]||a.wb,a.m=b[3]||a.dc}
function Sb(a,b){a.g=a.h=0;b&&((a.g=b.g)&&Cc(a,Ec,!1),(a.h=b.h)&&Dc(a,Ec,!1))}h.Zb=function(a,b){K(this.b,b,32);return 255};h.wb=function(a,b,c){K(this.b,c,32)};h.$b=function(a,b){return this.hb(a++,b++)|this.hb(a,b)<<8};h.dc=function(a,b,c){this.kb(a++,b&255,c++);this.kb(a,b>>8,c)};h.sd=function(a){return this.c[a>>2]>>>((a&3)<<3)&255};h.re=function(a,b){db&&a&1&&K(this.b,b,64);b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8};
h.De=function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.xa=!0};h.Bf=function(a,b,c){db&&a&1&&K(this.b,c,64);c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.xa=!0};h.qd=function(a,b){return this.i(a,b)};h.oe=function(a,b){return this.D(a,b)};h.Be=function(a,b,c){this.A?this.wb(0,0,c):this.j(a,b,c)};h.zf=function(a,b,c){this.A?this.wb(0,0,c):this.m(a,b,c)};h.pd=function(a){return this.a[a]};
h.rd=function(a){return this.a[a]};h.ne=function(a,b){db&&a&1&&K(this.b,b,64);return this.u.getUint16(a,!0)};h.qe=function(a,b){db&&a&1&&K(this.b,b,64);return!eb&&a&1?this.a[a]|this.a[a+1]<<8:this.o[a>>1]};h.Ae=function(a,b){this.a[a]=b;this.xa=!0};h.Ce=function(a,b){this.a[a]=b;this.xa=!0};h.yf=function(a,b,c){db&&a&1&&K(this.b,c,64);this.u.setUint16(a,b,!0);this.xa=!0};h.Af=function(a,b,c){db&&a&1&&K(this.b,c,64);!eb&&a&1?(this.a[a]=b,this.a[a+1]=b>>8):this.o[a>>1]=b;this.xa=!0};
var tc=0,dc=1,uc=2,Ub=4,Zb=["NONE","RAM","ROM","VID","H/W"],sc=0,Bc=[],Ac=[I.prototype.sd,I.prototype.De,I.prototype.re,I.prototype.Bf],Ec=[I.prototype.qd,I.prototype.Be,I.prototype.oe,I.prototype.zf];if(bb)var yc=[I.prototype.pd,I.prototype.Ae,I.prototype.ne,I.prototype.yf],xc=[I.prototype.rd,I.prototype.Ce,I.prototype.qe,I.prototype.Af];var Fc;if(bb){var Gc=new ArrayBuffer(2);(new DataView(Gc)).setUint16(0,256,!0);Fc=256===(new Uint16Array(Gc))[0]}else Fc=!1;var wc=Fc;
function Hc(a,b){r.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ec=0;this.Lb=b;this.Pa=c;this.Tb=Math.round(this.Lb/1E4)/100;this.Wa=this.Tb*this.Pa;this.Ub=this.rb=this.Za=this.Mb=0;this.l.P=!1;this.l.ac=!1;this.l.ma=a.autoStart;"string"==typeof this.l.ma&&(this.l.ma="true"==this.l.ma);this.l.zb=!1;this.Jb=this.Ya=0;this.Kb=+a.csStart;this.pb=+a.csInterval;this.qb=+a.csStop;this.sa=[];this.pc=this.ve.bind(this);this.Ea=this.va=this.Da=this.a=this.S=this.ua=this.ob=this.Ca=this.$a=
this.Vb=this.Ma=0;this.ka=null;D(this)}n(Hc,r);h=Hc.prototype;h.aa=function(a,b,c,d){this.A=a;this.u=b;this.D=d;this.ka=a.f;for(a=0;a<Ic.length;a++)(b=this.j[Ic[a]])&&this.A.ca(null,Ic[a],b);D(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ha=function(a,b){var c=Jc(this.A,"autoStart");null!=c?this.l.ma="true"==c?!0:"false"==c?!1:!!c:null==this.l.ma&&(this.l.ma=void 0===this.j.run);if(!b){if(a){Kc(this);if(!this.restore(a))return!1;Lc(this)}else this.reset();this.V("No debugger detected");this.l.ma||this.V("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};h.ga=function(a){return a?this.save():!0};h.ma=function(){return this.l.P?!0:this.l.ma?(yb(this),!0):!1};h.wc=function(){return 0};
function Lc(a){void 0===a.Kb&&(a.Kb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.l.zb=0<=a.Kb&&0<a.pb;a.l.zb&&(a.Jb=0,a.Ya=a.Kb-a.Ea)}function Bb(a,b){if(a.l.zb){var c=!1;a.Jb=a.Jb+a.wc()|0;a.Ya-=b;0>=a.Ya&&(a.Ya+=a.pb,c=!0);0<=a.qb&&a.qb<=Mc(a)&&(a.pb=a.qb=-1,Lc(a),H(a),c=!0);c&&a.V(Mc(a)+" cycles: checksum="+Aa(a.Jb))}}
h.ca=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.l.R)a=!0;else{var b=null,c,k=y(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.R);c++);c==k.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.Bb?" (waiting for notification)":""))+".");a=!1}a&&(d.l.P?H(d):yb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Nc(d,d.Pa<<1,!0)},c.textContent=this.Wa.toFixed(2)+"Mhz",!0}return!1};function Ab(a,b,c){a.Ea+=b;c&&(a.Da=a.a=a.S=0)}function Oc(a,b){var c=1;b&&1<a.Pa&&a.Ma&&(c=a.Ma/a.Tb);a.Ub=Math.round(1E3/Pc);a.rb=Math.floor(a.Lb/Pc*c);b||(a.Za=a.rb);a.Mb=0}function Mc(a){return a.Ea+a.va+a.Da-a.a}function Kc(a){a.Ma=0;a.Vb=0;a.Ea=a.va=a.Da=a.a=a.S=0;Lc(a);Nc(a,1)}
function Nc(a,b,c){if(void 0!==b){.8>a.Ma/a.Wa&&(b=1);a.Pa=b;b=a.Tb*a.Pa;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.V("target speed: "+b)}c&&a.A&&Qc(a.A)}Ab(a,a.va);a.va=0;a.ua=sa();a.Ca=0;Oc(a)}function ic(a,b){var c=a.sa.length;a.sa.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&b<a.sa.length&&(d||0>a.sa[b][0])&&(c=a.Lb*a.Pa/1E3*c|0,a.l.P&&(c+=Rc(a)),a.sa[b][0]=c)}
function zb(a,b){for(var c=a.sa.length-1;0<=c;c--){var d=a.sa[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Rc(a,b){var c=a.Da-=a.a;a.a=a.S=0;b&&(a.Da=0);return c}
h.ve=function(){if(this.l.P){this.Mb>=this.Lb&&Oc(this,!0);this.$a=0;this.ob=sa();if(this.Ca){var a=this.ob-this.Ca;a>this.Ub&&(this.ua+=a,this.ua>this.ob&&(this.ua=this.ob))}try{do{for(var b,c=this.l.zb?1:this.rb,d=this.sa.length-1;0<=d;d--){var e=this.sa[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Qb(b)}catch(f){if("number"!=typeof f)throw f;}b=Rc(this,!0);this.$a+=b;this.va+=b;Bb(this,b);zb(this,b);this.Za-=b;if(0>=this.Za){this.Za+=this.rb;++this.Vb>=Sc&&(this.A&&Cb(this.A,void 0),this.Vb=0);break}}while(this.l.P)}catch(f){H(this);
this.A&&this.A.stop(sa(),Mc(this));wa(this,f.stack||f.message);return}if(this.l.P){a=setTimeout;b=this.pc;this.Ca=sa();c=this.Ub;this.$a&&(c=Math.round(c*this.$a/this.rb));c-=this.Ca-this.ob;if(d=this.Ca-this.ua)this.Ma=Math.round(this.va/(10*d))/100,864E5<=d&&(this.Ea=0,Nc(this));if(0>c||this.Ma<this.Wa)-1E3>c&&(this.ua-=c),c=0;this.Mb+=this.$a;this.Ca+=c;a(b,c)}}};
function yb(a){var b;a.l.error?(a.V(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.P)a.V(a.toString()+" busy");else{Nc(a);a.l.P=!0;a.l.ac=!0;if(b=a.j.run)b.textContent="Halt";a.A&&a.A.start(a.ua,Mc(a));a.D||a.status("Started");setTimeout(a.pc,0)}}h.Qb=function(){return 0};function H(a){var b=!1;if(a.l.P){Rc(a);Ab(a,a.va);a.va=0;a.l.P=!1;if(b=a.j.run)b.textContent="Run";a.A&&a.A.stop(sa(),Mc(a));b=!0;a.D||a.status("Stopped")}a.l.complete=void 0;return b}var Pc=30,Sc=15,Ic=["power","reset"];
function Tc(a){var b=+a.model||1170;Hc.call(this,a,6666667);this.pa=b;this.lc=+a.addrReset||0;this.i=this.v=this.m=this.o=this.w=0;this.b=this.qa=this.X=[];this.C=0;this.nc=[];this.s=this.I=this.Ga=this.tb=[];this.Nb=this.za=this.F=this.kc=this.Aa=this.Na=this.Oa=this.Ba=this.G=this.Qa=this.Fa=this.H=this.cb=this.eb=this.la=this.wa=this.h=this.f=this.Gb=this.K=this.L=this.g=this.sb=0;this.oc=255;1120>=this.pa?(this.jc=Uc.bind(this),this.Xa=this.Zc,this.Nb=8,this.oc=-1,this.rc=255,this.qc=0):(this.jc=
Vc.bind(this),this.Xa=this.$c,this.rc=~(1792|(1140>=this.pa?2048:0))&65535,this.qc=1140<this.pa?2048:0);this.bb=0;this.ea=null;this.Sb=[];this.l.complete=!1;this.Db=this.fc=this.bd;this.Eb=this.gc=this.dd;this.Ob=this.Pb=this.xe;this.Fb=this.Rb=this.ze;this.ta=this.Cb=0;this.oa=this.xc;this.W=this.Ac;this.nb=this.Dc;this.Tc=this.Sc=0}n(Tc,Hc);h=Tc.prototype;h.aa=function(a,b,c,d){Hc.prototype.aa.call(this,a,b,c,d);this.fc=b.Ec.bind(b);this.gc=b.xb.bind(b);this.Pb=b.Fc.bind(b);this.Rb=b.yb.bind(b)};
h.ha=function(a,b){for(var c=192,d=0;d<this.Sb.length;d++){var e=this.Sb[d];0>e.cc&&(e.cc=c,c+=4)}return Hc.prototype.ha.call(this,a,b)};
h.reset=function(){this.status("Model "+this.pa);this.l.P&&H(this);this.v=65536;this.m=32768;this.o=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.lc,-1,-2,-3,-4,-5,-6,-7,-8];this.qa=[0,0,0,0,0,0];this.X=[0,0,0,0];this.C=0;this.nc=[4,2,0,1];this.s=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.I=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ga=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.tb=[0,0,0,0,0,0,0,0];this.h=this.f=this.Gb=this.K=this.L=this.g=this.sb=0;this.wa=-1;wb(this);Kc(this);this.l.error=!1;Hc.prototype.reset.call(this)};function wb(a){a.H=0;a.cb=0;a.eb=0;a.la=0;a.G=0;a.Qa=0;a.Fa=255;a.Aa=0;a.Na=0;a.Oa=0;a.Ba=262143;a.za=a.b[7];a.F=0;a.ea=null;a.u&&(oc(a),a.kc=cc(a.u))}
function oc(a){a.Db=a.fc;a.Eb=a.gc;a.Ob=a.Pb;a.Fb=a.Rb;a.Aa?(a.ta=65536,a.Cb=a.la&16?4186112:253952,a.oa=a.xc,a.W=a.Ac,a.nb=a.Dc,Vb(a.u,a.la&16?22:18)):(a.ta=0,a.Cb=57344,a.oa=a.cd,a.W=a.pe,a.nb=a.Cf,Vb(a.u,16))}function nc(a,b){b&=-3073;if(a.H!=b){b&57344&&!(a.H&57344)&&(a.cb=a.F>>16&65535,a.eb=a.F&65535);a.H=b;a.Na=(b&96)>>5;a.Oa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Aa!=c&&(a.Aa=c,oc(a))}}
function Wc(a,b,c){a.lc=b;a.u.reset();wb(a);R(a,b);qc(a,0);if(c){for(b=2;5>=b;b++)a.b[b]=0;a.l.P||yb(a)}else a.D?H(a)||a.D.g():!1===c&&H(a);!a.l.P&&a.ka&&a.ka.stop()}h.wc=function(){return 0};h.save=function(){var a=new J(this);a.set(0,[this.b,this.qa,this.X,this.Ga,this.tb,this.G,this.sb,this.Qa,this.Fa,this.wa,this.C,this.g,this.H,this.cb,this.eb,this.la,this.Na,this.Oa,this.s,this.I,this.Aa,this.Ba,this.za,this.F]);a.set(1,[pc(this)]);a.set(2,[this.Ea,this.Pa]);return a.data()};
h.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.b=b.next().value;this.qa=b.next().value;this.X=b.next().value;this.Ga=b.next().value;this.tb=b.next().value;this.G=b.next().value;this.sb=b.next().value;this.Qa=b.next().value;this.Fa=b.next().value;this.wa=b.next().value;this.C=b.next().value;this.g=b.next().value;this.H=b.next().value;this.cb=b.next().value;this.eb=b.next().value;this.la=b.next().value;this.Na=b.next().value;this.Oa=b.next().value;
this.s=b.next().value;this.I=b.next().value;this.Aa=b.next().value;this.Ba=b.next().value;this.za=b.next().value;this.F=b.next().value;b=a[1];qc(this,b[0]);b=a[2];this.Ea=b[0];Nc(this,b[1]);return!0};function Xc(a){return a.v&65536?1:0}function Yc(a){return a.w&32768?8:0}function Zc(a,b){var c=a.b[7];a.b[7]=c+b&65535;return c}function S(a,b,c){c&&(R(a,a.b[7]+(b<<24>>23)),a.a-=2);a.a-=3}function R(a,b){a.b[7]=b&65535}
function kc(a,b,c,d){c={cc:b,gb:c,message:d||0,next:null};c.name=fb[b];a.Sb.push(c);return c}function mc(a,b){var c=a.ea;if(c==b)a.ea=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.ea&&(a.g|=1)}function N(a,b){if(b){if(b!=a.ea){var c=a.ea;if(!c||c.gb<=b.gb)b.next=c,a.ea=b;else{do{var d=c.next;if(!d||d.gb<=b.gb){b.next=d;c.next=b;break}c=d}while(c)}}a.g|=1}}function $c(a){return a.g&64?(L(a,168,64,-6),!0):a.g&32?(L(a,4,32,-5),!0):a.g&16?(L(a,12,16,-7),!0):!1}
function pc(a){return a.i=a.i&63728|Yc(a)|(a.o&65535?0:4)|(a.m&32768?2:0)|Xc(a)}function qc(a,b){b&=a.rc;a.w=b<<12;a.o=~b&4;a.m=b<<14;a.v=b<<16;if((b^a.i)&a.qc)for(var c=a.qa.length;0<=--c;){var d=a.b[c];a.b[c]=a.qa[c];a.qa[c]=d}a.C=b>>14&3;c=a.i>>14&3;a.C!=c&&(a.X[c]=a.b[6],a.b[6]=a.X[a.C]);a.i=b;a.g&=-3;a.g|=a.ea?2:1}h.da=function(a){this.w=this.o=a;this.m=0};h.Ja=function(a,b){this.w=this.o=this.v=a;this.m=b||0};function ad(a,b){a.w=a.o=a.v=b;a.m=a.w^a.v>>1}
function bd(a,b,c,d){a.w=a.o=a.v=b;a.m=(c^d)&(d^b)}function L(a,b,c,d){if(!a.bb){0>a.wa?a.wa=pc(a):a.C||(d=-4);-4==d&&(a.g&256&&(d=-1),a.g|=256,a.G|=4,a.b[6]=b=4);if(-1!=d){a.F=b|4143316992;a.C=0;var e=a.W(b|a.ta),f=a.W(b+2&65535|a.ta);qc(a,f&-12289|a.wa>>2&12288);cd(a,a.wa);cd(a,a.b[7]);R(a,e)}a.a-=5;a.g&=~(c|19);a.g|=129;a.wa=-1;a.Tc=b;a.Sc=d;-1==d&&H(a);if(-4<=d)throw b;}}function dd(a){var b=ed(a),c=ed(a);a.i&49152&&(c=c&-225|a.i&63712);R(a,b);qc(a,c);a.g&=-17}
function fd(a,b){var c=b>>13&31;31>c&&(b=a.la&32?a.Ga[c]+(b&8191)&4194303:b&-3932161);return b}
function Gb(a,b,c){var d,e,f;if(!(c&a.Aa))return f=b&65535,57344<=f&&(f|=a.Cb),f;d=b>>13;a.la&a.nc[a.C]||(d&=7);e=a.s[a.C][d];f=(a.I[a.C][d]<<6)+(b&8191)&a.Ba;3932160<=f&&(f=fd(a,f));if(a.bb)return f;f>=a.kc&&f<a.Cb?(a.G|=32,L(a,4,0,f)):f&1&&!(c&1)&&(a.G|=64,L(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.s[a.C][d]=e;if(f!=(4194170&a.Ba)||a.C)a.Na=a.C,a.Oa=d;g&&(g&57344&&(0<=a.wa&&(g|=128),a.H&57344||(g|=a.H&4096|a.Na<<5|a.Oa<<1,nc(a,a.H&-61695|g&61694)),L(a,168,64,-2)),a.H&61440||!(f<(4191360&a.Ba)||f>(4194239&a.Ba))||(a.H|=4096,a.H&512&&(a.g|=64)));return f}function ed(a){var b=a.W(a.b[6]|a.ta);a.b[6]=a.b[6]+2&65535;return b}function cd(a,b){var c=a.b[6]-2&65535;a.b[6]=c;a.F=a.F&65535|(a.F&-65536)<<8|16121856;a.g&256||a.Xa(4,-2,c);a.nb(c,b)}
function gd(a,b,c,d){var e,f,g=d&8?0:a.ta;switch(b){case 0:return L(a,4,0,-3),0;case 1:return 6==c&&a.Xa(d,0,a.b[6]),a.a-=3,7==c?a.b[c]:a.b[c]|g;case 2:f=2;e=a.b[c];6==c&&a.Xa(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.b[c];7!=c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.b[c]+f&65535;6==c&&a.Xa(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.b[c]-2&65535;7!=c&&(e|=g);e=a.W(e)|g;a.a-=8;break;case 6:return e=a.W(Zc(a,2)),e=e+a.b[c]&65535,6==c&&a.Xa(d,0,
e),a.a-=6,e|g;case 7:return e=a.W(Zc(a,2)),e=e+a.b[c]&65535,e=a.W(e|a.ta),a.a-=10,e|g}a.b[c]=a.b[c]+f&65535;a.F=a.F&65535|(a.F&-65536)<<8|(f<<3&248|c)<<16;return e}h.Zc=function(a,b,c){!this.C&&0>=b&&c<=this.Fa&&(this.g|=32)};h.$c=function(a,b,c){this.C||(65534<=c&&(c|=-65536),a&4&&c<=this.Fa&&(c<=this.Fa-32?L(this,4,0,-4):(this.G|=8,this.g|=32)))};h.bd=function(a){return this.fc(a)};h.dd=function(a){return this.gc(a)};h.xe=function(a,b){this.Pb(a,b)};h.ze=function(a,b){this.Rb(a,b)};
h.cd=function(a,b,c){return gd(this,a,b,c)};h.xc=function(a,b,c){return Gb(this,gd(this,a,b,c),c)};h.pe=function(a){return this.u.xb(this.za=a)};h.Ac=function(a){return this.u.xb(this.za=Gb(this,a,2))};h.Cf=function(a,b){this.u.yb(this.za=a,b)};h.Dc=function(a,b){this.u.yb(this.za=Gb(this,a,4),b)};
function hd(a,b,c){var d=a.f=b&7;(b=a.h=(b&56)>>3)?(d=gd(a,b,d,2),c&65536||61440!==(a.i&61440)&&(d&=65535),a.C=a.i>>12&3,c=a.W(d|c&a.ta),a.C=a.i>>14&3):c=6!=d||(a.i>>2&12288)===(a.i&12288)?a.b[d]:a.X[a.i>>12&3];return c}function id(a,b,c,d){a.F=a.F&65535|1441792;var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=gd(a,b,e,4),c&65536||(e&=65535),a.C=a.i>>12&3,e=Gb(a,e|c&65536,4),a.C=a.i>>14&3,a.Fb(e,d)):6!=e||(a.i>>2&12288)===(a.i&12288)?a.b[e]=d:a.X[a.i>>12&3]=d}
function jd(a,b){b>>=6;var c=a.L=b&7;return(b=a.K=(b&56)>>3)?a.Db(a.oa(b,c,3)):a.b[c+a.Nb]&a.oc}function kd(a,b){var c;b>>=6;var d=a.L=b&7;(b=a.K=(b&56)>>3)?c=a.Eb(a.oa(b,d,2)):c=a.b[d+a.Nb];return c}function ld(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return gd(a,b,c,8)}function md(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.Db(a.oa(b,c,3)):a.b[c]&255}function nd(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.Eb(a.oa(b,d,2)):c=a.b[d];return c}
function T(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.Gb=a.oa(b,e,7),c=0>c?a.b[-c-1]&255:c,a.Ob(e,d.call(a,c,a.Db(e))),e&1&&a.a--):(b=a.b[e],c=0>c?a.b[-c-1]&255:c,a.b[e]=b&65280|d.call(a,c,b&255))}function U(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.oa(b,e,6),a.Fb(e,d.call(a,0>c?a.b[-c-1]:c,a.Eb(e)))):a.b[e]=d.call(a,0>c?a.b[-c-1]:c,a.b[e])}
function od(a,b,c,d,e){var f=a.f=b&7;(b=a.h=(b&56)>>3)?(d=a.oa(b,f,5),e.call(a,(c=0>c?a.b[-c-1]&255:c)<<8),a.Ob(d,c),d&1&&a.a--):(c?(c=0>c?a.b[-c-1]&255:c,a.b[f]=a.b[f]&~d|c<<24>>24&d):a.b[f]&=~d,e.call(a,c<<8))}function pd(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.oa(b,e,4),d.call(a,c=0>c?a.b[-c-1]:c),a.Fb(e,c)):(a.b[e]=c=0>c?a.b[-c-1]:c,d.call(a,c))}
h.Qb=function(a){this.l.complete=!0;var b=a?this.l.ac?0:1:-1;this.l.ac=!1;this.Da=this.a=a;this.g=this.g&-5|0;do{if(this.g){if(a=this.g&11)if(a=!1,this.g&2){var c=160,d=(this.Qa&224)>>5,e=this.ea&&this.ea.gb>d?this.ea:null;e&&(c=e.cc,d=e.gb);d>(this.i&224)>>5?(this.g&8&&(Zc(this,2),this.g&=-9),L(this,c,0,-10),d=!0):d=!1;d&&(e&&mc(this,e),a=!0);this.ea||this.Qa||(this.g&=-3)}else this.g&1&&this.g++;if(a){if(this.g&4&&this.D.b(this.b[7],b)){H(this);break}if(0>b)break}if(this.g&112&&$c(this)){if(this.g&
4&&this.D.b(this.b[7],b)){H(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.F=this.b[7];e=this.W(a);this.b[7]=a+2&65535;this.jc(e)}while(0<this.a);return this.l.complete?this.Da-this.a:void 0===this.l.complete?0:-1};Ua(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Tc(d);A(d,c)}});function qd(a,b){var c=b+a;this.w=this.o=this.v=c;this.m=(a^c)&(b^c);return c&65535}
function rd(a,b){var c=b+a,d=c<<8;this.w=this.o=this.v=d;this.m=(a<<8^d)&(b<<8^d);return c&255}function sd(a,b){a=b<<1;ad(this,a);return a&65535}function td(a,b){a=b<<1;ad(this,a<<8);return a&255}function ud(a,b){a=b&32768|b>>1|b<<16;ad(this,a);return a&65535}function vd(a,b){a=b&128|b>>1|b<<8;ad(this,a<<8);return a&255}function wd(a,b){a=b&~a;this.da(a);return a}function xd(a,b){a=b&~a;this.da(a<<8);return a}function yd(a,b){a|=b;this.da(a);return a}function zd(a,b){a|=b;this.da(a<<8);return a}
function Ad(a,b){a=~b|65536;this.Ja(a);return a&65535}function Bd(a,b){a=~b|256;this.Ja(a<<8);return a&255}function Cd(a,b){this.w=this.o=a=b-a;this.m=b&(b^a);return a&65535}function Dd(a,b){a=b-a;var c=a<<8;b<<=8;this.w=this.o=c;this.m=b&(b^c);return a&255}function Ed(a,b){this.w=this.o=a=b+a;this.m=a&(b^a);return a&65535}function Fd(a,b){a=b+a;var c=a<<8;this.w=this.o=c;this.m=c&(b<<8^c);return a&255}function Gd(a,b){a=-b;this.Ja(a,a&b&32768);return a&65535}
function Hd(a,b){a=-b;this.Ja(a<<8,(a&b&128)<<8);return a&255}function Id(a,b){a=b<<1|this.v>>16&1;ad(this,a);return a&65535}function Jd(a,b){a=b<<1|this.v>>16&1;ad(this,a<<8);return a&255}function Kd(a,b){a=(this.v&65536|b)>>1|b<<16;ad(this,a);return a&65535}function Ld(a,b){a=((this.v&65536)>>8|b)>>1|b<<8;ad(this,a<<8);return a&255}function Md(a,b){var c=b-a;bd(this,c,a,b);return c&65535}function Nd(a,b){var c=b-a;bd(this,c<<8,a<<8,b<<8);return c&255}
function Od(a,b){this.w=this.o=b&65280;this.m=this.v=0;return(b<<8|b>>8)&65535}function Pd(a,b){a^=b;this.da(a);return a&65535}function Qd(a){U(this,a,kd(this,a),qd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}
function Rd(a){var b=nd(this,a);a=a>>6&7;var c=this.b[a];c&32768&&(c|=4294901760);this.v=this.m=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.v=c<<17-b,c>>=b;else if(b)if(16<b)this.m=c,c=0;else{this.v=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.m=32768)}this.b[a]=c&65535;this.w=this.o=c;this.a-=(this.h?6:7)+b}
function Sd(a){var b=nd(this,a);a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.v=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.v=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.m=32768)):d=c;this.b[a]=d>>16&65535;this.b[a|1]=d&65535;this.w=d>>16;this.o=d>>16|d;this.a-=(this.h?6:7)+b}function Td(a){S(this,a,!Xc(this))}function Ud(a){S(this,a,Xc(this))}
function Vd(a){U(this,a,kd(this,a),wd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Wd(a){T(this,a,jd(this,a),xd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Xd(a){U(this,a,kd(this,a),yd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Yd(a){T(this,a,jd(this,a),zd);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}
function Zd(a){var b=kd(this,a);a=nd(this,a);this.da((0>b?this.b[-b-1]:b)&a);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function $d(a){var b=jd(this,a);a=md(this,a);this.da(((0>b?this.b[-b-1]&255:b)&a)<<8);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function ae(a){S(this,a,this.o&65535?0:4)}function be(a){S(this,a,!Yc(this)==!(this.m&32768))}function ce(a){S(this,a,!!(this.o&65535)&&!Yc(this)==!(this.m&32768))}
function de(a){S(this,a,!Xc(this)&&!!(this.o&65535))}function ee(a){S(this,a,(this.o&65535?0:4)||!Yc(this)!=!(this.m&32768))}function fe(a){S(this,a,Xc(this)||(this.o&65535?0:4))}function ge(a){S(this,a,!Yc(this)!=!(this.m&32768))}function he(a){S(this,a,Yc(this))}function ie(a){S(this,a,!!(this.o&65535))}function je(a){S(this,a,!Yc(this))}function ke(){L(this,12,0,-9)}function le(a){S(this,a,!0)}function me(a){S(this,a,!(this.m&32768))}function ne(a){S(this,a,this.m&32768?2:0)}
function V(a){a&1&&(this.v=0);a&2&&(this.m=0);a&4&&(this.o=1);a&8&&(this.w=0);this.a-=5}function oe(a){var b=kd(this,a);a=nd(this,a);var c=(b=0>b?this.b[-b-1]:b)-a;bd(this,c,a,b);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}function pe(a){var b=jd(this,a);a=md(this,a);var c=(b=(0>b?this.b[-b-1]&255:b)<<8)-(a<<=8);bd(this,c,a,b);this.a-=this.h?4+(this.L&&6<=this.f?1:0):(this.K?4:3)+(7==this.f?2:0)}
function qe(a){var b=nd(this,a);if(b){a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.b[a]=d&65535,this.b[a|1]=c-d*b&65535,this.o=d>>16|d,this.w=d>>16):(this.m=32768,this.o=d>>15|d,this.w=c>>16,-1===b&&65534===this.b[a]&&(this.b[a]=this.b[a|1]=1));this.a-=53}else this.o=this.w=0,this.m=32768,this.v=65536,this.a-=7}function re(){L(this,24,0,-9);this.a-=20}
function se(){this.i&49152?(this.G|=128,L(this,4,0,-8)):(this.ka&&1120==this.pa&&this.ka.setData(this.b[0],!0),this.D?this.D.i():H(this));this.a-=7}function te(){L(this,16,0,-9);this.a-=20}var ue=[0,7,7,10,7,11,9,13];function ve(a){this.S=this.a;R(this,ld(this,a));this.a=this.S-ue[this.h]}var we=[0,14,14,17,14,18,16,20];function xe(a){this.S=this.a;var b=ld(this,a);a=a>>6&7;cd(this,this.b[a]);this.b[a]=this.b[7];R(this,b);this.a=this.S-we[this.h]}var ye=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function ze(a){var b=kd(this,a);this.S=this.a;pd(this,a,b,this.da);this.a=this.S-ye[(this.K?8:0)+this.h]+(7!=this.f||this.h?0:2)}function Ae(a){var b=jd(this,a);od(this,a,b,65535,this.da);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}var Be=[7,13,13,17,14,18,17,21];
function Ce(a){var b=nd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.b[a];c&32768&&(c|=-65536);b=~~(b*c);this.b[a]=b>>16&65535;this.b[a|1]=b&65535;this.w=b>>16;this.o=this.w|b;this.m=0;this.v=-32768>b||32767<b?65536:0;this.a-=23}function De(){this.a-=5}function Ee(){this.i&49152||(this.u.reset(),wb(this),this.ka&&this.ka.setData(this.b[0],!0));this.a-=667}function Fe(a){if(a&8)L(this,8,0,-9);else{var b=ed(this);a&=7;7==a?R(this,b):(R(this,this.b[a]),this.b[a]=b);this.a-=9}}
function Ge(){dd(this);this.a-=13}function W(a){a&1&&(this.v=65536);a&2&&(this.m=32768);a&4&&(this.o=0);a&8&&(this.w=32768);this.a-=5}function He(a){var b=(a&448)>>6;if(this.b[b]=this.b[b]-1&65535)R(this,this.b[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Ie(a){U(this,a,kd(this,a),Md);this.a-=this.h?9+(this.L&&6<=this.f?1:0):(this.K?5:3)+(7==this.f?2:0)}function Je(a){U(this,a,0,Od);this.a-=this.h?9:3+(7==this.f?2:0)}function Ke(){L(this,28,0,-9)}
function Le(){this.ka&&(this.ka.ja=this.b[7],this.ka.setData(this.b[0],!0));this.g|=8;Zc(this,-2);this.a-=3}function Me(a){U(this,a,this.b[(a>>6&7)+this.Nb],Pd);this.a-=this.h?9:3+(7==this.f?2:0)}function X(){L(this,8,0,-9)}function Uc(a){Ne[a>>12].call(this,a)}function Oe(a){Pe[a>>6&3].call(this,a)}function Qe(a){Re[a>>6&3].call(this,a)}function Se(a){Te[a>>6&3].call(this,a)}function Ue(a){Ve[a&15].call(this,a)}function We(a){Xe[a&15].call(this,a)}function Ye(a){Ze[a>>6&3].call(this,a)}
function $e(a){af[a>>6&3].call(this,a)}function bf(a){cf[a>>6&3].call(this,a)}
var Ne=[function(a){df[a>>8&15].call(this,a)},ze,oe,Zd,Vd,Xd,Qd,X,function(a){ef[a>>8&15].call(this,a)},Ae,pe,$d,Wd,Yd,Ie,X],df=[function(a){ff[a>>4&15].call(this,a)},le,ie,ae,be,ge,ce,ee,xe,xe,Oe,Qe,Se,X,X,X],Pe=[function(a){pd(this,a,0,this.Ja);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Ad);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Ed);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Cd);this.a-=this.h?9:3+(7==this.f?2:0)}],Re=[function(a){U(this,a,0,Gd);
this.a-=this.h?11:6},function(a){U(this,a,Xc(this)?1:0,qd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,Xc(this)?1:0,Md);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=nd(this,a);this.Ja(a);this.a-=this.h?4:3+(7==this.f?2:0)}],Te=[function(a){U(this,a,0,Kd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Id);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,ud);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,sd);this.a-=this.h?9:3+(7==this.f?2:0)}],ff=
[function(a){gf[a&15].call(this,a)},X,X,X,ve,ve,ve,ve,Fe,X,Ue,We,Je,Je,Je,Je],gf=[se,Le,Ge,ke,te,Ee,X,X,X,X,X,X,X,X,X,X],Ve=[De,function(){this.v=0;this.a-=5},function(){this.m=0;this.a-=5},V,function(){this.o=1;this.a-=5},V,V,V,function(){this.w=0;this.a-=5},V,V,V,V,V,V,V],Xe=[De,function(){this.v=65536;this.a-=5},function(){this.m=32768;this.a-=5},W,function(){this.o=0;this.a-=5},W,W,W,function(){this.w=32768;this.a-=5},W,W,W,W,W,W,W],ef=[je,he,de,fe,me,ne,Td,Ud,re,Ke,Ye,$e,bf,X,X,X],Ze=[function(a){od(this,
a,0,255,this.Ja);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,Bd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Fd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Dd);this.a-=this.h?9:3+(7==this.f?2:0)}],af=[function(a){T(this,a,0,Hd);this.a-=this.h?11:6},function(a){T(this,a,Xc(this)?1:0,rd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,Xc(this)?1:0,Nd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=md(this,a);this.Ja(a<<8);this.a-=this.h?4:3+
(7==this.f?2:0)}],cf=[function(a){T(this,a,0,Ld);this.a-=this.h?9+(this.Gb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,Jd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,vd);this.a-=this.h?9+(this.Gb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,td);this.a-=this.h?9:3+(7==this.f?2:0)}];function Vc(a){hf[a>>12].call(this,a)}
var hf=[function(a){jf[a>>8&15].call(this,a)},ze,oe,Zd,Vd,Xd,Qd,function(a){kf[a>>8&15].call(this,a)},function(a){lf[a>>8&15].call(this,a)},Ae,pe,$d,Wd,Yd,Ie,X],jf=[function(a){mf[a>>4&15].call(this,a)},le,ie,ae,be,ge,ce,ee,xe,xe,Oe,Qe,Se,function(a){nf[a>>6&3].call(this,a)},X,X],nf=[function(a){a=this.b[7]+((a&63)<<1)&65535;var b=this.W(a|this.ta);R(this,this.b[5]);this.b[6]=a+2&65535;this.b[5]=b;this.a-=8},function(a){a=hd(this,a,0);this.da(a);cd(this,a);this.a-=11},function(a){var b=ed(this);this.S=
this.a;this.da(b);id(this,a,0,b);this.a=this.S-Be[this.h]},function(a){pd(this,a,Yc(this)?65535:0,this.da);this.a-=this.h?9:3+(7==this.f?2:0)}],mf=[function(a){of[a&15].call(this,a)},X,X,X,ve,ve,ve,ve,Fe,function(a){!(a&8)||1145>this.pa?L(this,8,0,-9):(this.i&49152||(this.i=this.i&-225|(a&7)<<5,this.g|=1,this.g&=-3),this.a-=5)},Ue,We,Je,Je,Je,Je],of=[se,Le,function(){dd(this);this.g|=this.i&16;this.a-=13},ke,te,Ee,Ge,function(){L(this,8,0,-9)},X,X,X,X,X,X,X,X],kf=[Ce,Ce,qe,qe,Rd,Rd,Sd,Sd,Me,Me,X,
X,X,X,He,He],lf=[je,he,de,fe,me,ne,Td,Ud,re,Ke,Ye,$e,bf,function(a){1145>this.pa?L(this,8,0,-9):pf[a>>6&3].call(this,a)},X,X],pf=[function(){L(this,8,0,-9)},function(a){a=hd(this,a,65536);this.da(a);cd(this,a);this.a-=11},function(a){var b=ed(this);this.S=this.a;this.da(b);id(this,a,65536,b);this.a=this.S-Be[this.h]},function(){L(this,8,0,-9)}];
function qf(a){r.call(this,"ROM",a,0,128);this.fa=this.b=null;this.h=+a.addr;this.a=+a.size;this.i=!1;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.g=a.file;this.m=F(this.g);if(this.g){a=this.g;var b=Ba(this.m);"json"!=b&&"hex"!=b&&(a=Ka()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;G(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(qa(c.La,a,b),(a=Ja(a,b))?(c.b=a.N,c.fa=a.fa):c.g=null);rf(c)})}}n(qf,r);
h=qf.prototype;h.aa=function(a,b,c,d){this.u=b;this.c=c;this.D=d;rf(this)};h.ha=function(){this.fa&&(this.D&&this.D.a(this.id,this.h,this.a,this.fa),delete this.fa);return!0};h.ga=function(){return!0};
function rf(a){if(!xa(a)){if(a.g){if(!a.b||!a.u)return;a.a||(a.a=a.b.length);if(a.b.length!=a.a)wa(a,"ROM size ("+Aa(a.b.length,8,!0)+") does not match specified size ("+Aa(a.a,8,!0)+")");else{var b;a:{b=a.h;a.status(a.a+"-byte ROM at "+za(b));if(57344<=b&&b<57344+Nb){var c={};b=(c[b]=[qf.prototype.be,qf.prototype.lf,null,null,null,a.a>>1],c);if(kb(a.u,a,b)){b=a.i=!0;break a}}else if(Tb(a.u,b,a.a,uc)){for(c=0;c<a.b.length;c++)bc(a.u,b+c,a.b[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?b.push(a.f):
null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.a,k=[],l=d.h>>>f.h;0<g&&l<f.a.length;)k.push(f.a[l++]),g-=f.g;f=d.u;d=d.a;g=0;for(e>>>=f.h;0<d&&e<f.a.length;){l=k[g++];if(!l)break;f.a[e++]=l;d-=f.g}}a.i||delete a.b}}}D(a)}}h.be=function(a){return this.b[a-this.h]};h.lf=function(){};Ua(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new qf(d);A(d,c)}});
function sf(a){r.call(this,"RAM",a);this.fa=this.b=null;this.f=+a.addr;this.g=+a.size;this.Z=a.load;this.Y=a.exec;null!=this.Z&&(this.Z=+this.Z);null!=this.Y&&(this.Y=+this.Y);this.h=!1;this.a=a.file;this.i=F(this.a);if(this.a){a=this.a;var b=Ba(this.i);"json"!=b&&"hex"!=b&&(a=Ka()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;G(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(qa(c.La,a,b),(a=Ja(a,b))?(c.b=a.N,c.fa=a.fa,null==c.Z&&
(c.Z=a.Z),null==c.Y&&(c.Y=a.Y)):c.a=null);tf(c)})}}n(sf,r);sf.prototype.aa=function(a,b,c,d){this.u=b;this.c=c;this.D=d;tf(this)};sf.prototype.ha=function(){this.fa&&(this.D&&this.D.a(this.id,this.f,this.g,this.fa),delete this.fa);return!0};sf.prototype.ga=function(){return!0};
function tf(a){if(a.u&&(!a.h&&a.g&&(Tb(a.u,a.f,a.g,dc)?a.h=!0:a.g=0),!xa(a))){if(!a.h)v("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;uf(a,a.b,a.Z,a.Y,a.f)?a.status('Loaded image "'+a.i+'"'):a.B('Error loading image "'+a.i+'"')}D(a)}}
sf.prototype.reset=function(){if(this.h){for(var a=this.u,b=this.f,c=this.g,d=b&a.f,b=b>>>a.h;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(bb&&e.a)for(k=d;f--&&k<e.a.length;k++)e.a[k]=g;else for(k=d;f--&&k<e.size;k++)e.j(d,g,e.Ra+d);c-=a.g;b++;d=0}this.b&&uf(this,this.b,this.Z,this.Y,this.f,!0)}};
function uf(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),x=l,w=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(w)for(;w--;)bc(a.u,t++,b[x++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)bc(a.u,c+e,b[e]);k=!0}if(k){if(null==d||g)H(a.c),f=!1;null!=d&&Wc(a.c,d,f)}return k}Ua(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new sf(d);A(d,c)}});function vf(a){r.call(this,"Keyboard",a,0,1024);D(this)}n(vf,r);vf.prototype.ca=function(){return!1};vf.prototype.aa=function(a,b,c,d){this.A=a;this.c=c;this.D=d};Ua(function(){for(var a=C(document,B,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vf(d);A(d,c)}});
function Z(a){r.call(this,"SerialPort",a,0,262144);this.C=+a.adapter;this.K=+a.baudReceive||9600;this.ea=+a.baudTransmit||9600;this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.g=this.i=null;this.S=+a.tabSize;this.L=+a.charBOL;this.m=0;this.v=!0;this.H=this.F=null;this.I=this.X=-1;this.o=this.a=this.b=0;this.h=[];var b=a.binding;if("console"==b)this.i="";else{var c;a=wf;b&&(void 0===c&&(c="Panel"),(c=va(c,this.id))&&(b=c.j[b])&&this.ca(null,a,b))}this.f=this.s=this.G=null;this.exports=
{connect:this.yc,receiveData:this.Hb,receiveStatus:this.ue,setConnection:this.ye}}n(Z,r);h=Z.prototype;
h.ca=function(a,b,c){var d=this;switch(b){case wf:return this.j[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.ic:q.Jc:46==c?b=q.ic:a.ctrlKey&&c>=q.hc&&c<=q.Uc&&(b=c-(q.hc-q.Gc));b&&(a.preventDefault&&a.preventDefault(),d.Hb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ic&&(b=q.Hc);d.Hb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Hb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;var e=this;this.H=kc(this.c,this.C?-1:48,4,262144);this.I=ic(this.c,function(){var a;a=-1;e.h.length&&(a=e.h.shift()&255,e.w&&97<=a&&122>a&&(a-=32),jc(e.c,e.I,1E3/Math.round(e.K/10)));0<=a&&(e.o=a,e.a&128?e.o|=49152:e.a|=128,e.a&64&&N(c,e.H))});this.F=kc(this.c,this.C?-1:52,4,262144);this.X=ic(this.c,function(){e.b|=128;e.b&64&&N(c,e.F)});kb(b,this,xf,this.C?64832+8*(this.C-1)-65392:0);mb(b,this.reset.bind(this));D(this)};
h.yc=function(a){if(!this.f){var b=Jc(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ga(c[0]);if(d!=this.Ka)return;c=Ga(c[1]);if(this.f=ua(c)){var e=this.f.exports;if(e){var f=e.connect;f&&f.call(this.f,this.v);if(this.s=e.receiveData){this.v=a;this.G=e.receiveStatus;this.status(this.La+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.ha=function(a,b){if(!b)if(this.yc(this.v),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){yf(this)};h.save=function(){var a=new J(this);a.set(0,[]);return a.data()};h.restore=function(){return yf(this)};function yf(a){a.o=0;a.a=8192;a.b=128;a.h=[];return!0}
h.Hb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.h.push(b)}else this.h=this.h.concat(a);jc(this.c,this.I,1E3/Math.round(this.K/10));return!0};h.ue=function(a){var b=this.a;this.a&=-12289;a&32&&(this.a|=8192);a&256&&(this.a|=4096);b!=this.a&&(this.a|=32768,this.a&32&&N(this.c,this.H))};h.ye=function(a,b){return this.f?!1:(this.f=a,this.s=b,!0)};
h.Pd=function(){var a=this.a&65534;this.a&=-32769;return a};h.Ye=function(a){var b=a^this.a;this.a=this.a&-112|a&111;this.G&&b&6&&(b=0,b=this.v?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.G.call(this.f,b))};h.Od=function(){this.a&=-129;return this.o};h.Xe=function(){};h.te=function(){return this.b};h.Ef=function(a){if(this.b&128)if(a&64)N(this.c,this.F);else{var b=this.F;b&&mc(this.c,b)}this.b=this.b&-70|a&69};h.se=function(){return 0};
h.Df=function(a){a&=255;this.s&&this.s.call(this.f,a);a&=127;if(this.g)if(13==a)this.m=0;else if(8==a)this.g.value=this.g.value.slice(0,-1),0<this.m&&this.m--;else{if(a){var b;13!=a&&10!=a&&(b=Ha[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.S||8,c=a-this.m%a,this.S&&(b=" ".slice(0,c)));this.L&&!this.m&&c&&(b=String.fromCharCode(this.L)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.m+=c}}else if(null!=
this.i){if(10==a||1024<=this.i.length)this.V(this.i),this.i="";10!=a&&(this.i+=String.fromCharCode(a))}jc(this.c,this.X,1E3/Math.round(this.ea/10));this.b&=-129};var wf="buffer",zf={},xf=(zf[65392]=[null,null,Z.prototype.Pd,Z.prototype.Ye,"RCSR"],zf[65394]=[null,null,Z.prototype.Od,Z.prototype.Xe,"RBUF"],zf[65396]=[null,null,Z.prototype.te,Z.prototype.Ef,"XCSR"],zf[65398]=[null,null,Z.prototype.se,Z.prototype.Df,"XBUF"],zf);
Ua(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Z(d);A(d,c)}});function rc(a){r.call(this,"PC11",a);this.C=Af(this,a.autoMount);this.b=0;this.I=+a.baudReceive||3600;this.m=this.o=this.a=0;this.i=[];this.h=Bf;this.f=Cf;this.w=this.g="";this.N=this.Z=this.Y=null;this.G=-1;this.F=!Pa("Mobi")&&window&&"FileReader"in window;this.s=null;this.H=-1;this.v=null}n(rc,r);
function Af(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=rc.prototype;
h.ca=function(a,b,c){var d=this,e=Cf;switch(b){case "listTapes":return this.j[b]=c,c.onchange=function(){var a=d.j.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.j[b]=c,!0;case "readTape":e=Df;case "loadTape":return e||(e=Ef),this.j[b]=c,c.onclick=
function(){var a=d.j.listTapes;a&&Ff(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.F){c.parentNode.removeChild(c);break}this.j[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ff(d,F(b,!0),b,Ef,a)}return!1};return!0;case Gf:return this.j[b]=c,!0}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;this.v=Hf(a);var e=this;if(a=Af(this,Jc(this.A,"autoMount")))for(var f in a)"PTR"==f&&(this.C[f]=a[f]);this.s=kc(this.c,56,4,4096);this.H=ic(this.c,function(){1==(e.a&32769)&&!(e.a&128)&&e.m<e.i.length&&(e.o=e.i[e.m++]&255,If(e,e.m/e.i.length*100),e.a|=128,e.a&=-2049,e.a&64&&N(e.c,e.s))});kb(b,this,Jf);mb(b,this.reset.bind(this));Kf(this,"None",Bf,!0);this.F&&Kf(this,"Local Tape",Lf);Kf(this,"Remote Tape",Mf);Nf(this)||D(this)};
h.ha=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){this.a&=-2241;this.o=0};function Nf(a){a.b=0;var b=a.C.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=F(c,!0)}c&&b?Of(a,b,c,Ef,!0):Pf(a)}return!!a.b}
function Ff(a,b,c,d,e){if(c)if(c==Lf)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Mf){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"');a.h=Mf}else a.h=c;Of(a,b,c,d,!1,e)}else Qf(a,!1)}function Of(a,b,c,d,e,f){var g=-1;if(a.g.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,Qf(a,!0),a.l.Sa?a.B("PC11 busy"):(e&&a.b++,Rf(a,b,c,d,f)?g++:a.l.Sa=!0);g&&Sf(a,a.w,a.g,a.f,a.N,a.Z,a.Y)}
function Rf(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),Sf(a,b,c,d,e),a.h=Lf);Pf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=Ba(c),f="json"==e||"gz"==e?encodeURI(c):Ka()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!G(f,null,!0,function(e,f,g){var k=0>g&&!!a.A&&!a.A.l.R;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(qa(a.La,e,f),(e=Ja(e,f))&&Sf(a,b,c,d,e.N,e.Z,e.Y));
a.l.Sa=!1;a.b&&(a.b--,a.b||D(a));Pf(a)})}function Kf(a,b,c,d){if((a=a.j.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Pf(a){var b=a.j.listTapes;if(b&&b.options){a=a.h||a.g;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function If(a,b){b|=0;if(b!==a.G){var c=a.j[Gf];c&&(c=(c=C(c,Tf))&&c[0])&&c.style&&(c.style.width=b+"%");a.G=b}}function Sf(a,b,c,d,e,f,g){a.w=b;a.g=c;a.f=d;a.N=e;a.Z=f;a.Y=g;d==Df?a.v&&uf(a.v,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.m=0,a.i=e,a.status('Loaded tape "'+b+'"'),If(a,0))}function Qf(a,b){if(a.g||!1===b)a.w="",a.g="",b||(a.f&&a.status(a.f==Ef?"tape detached":"tape unloaded"),a.h=Bf,a.f=Cf,Pf(a))}h.save=function(){return(new J(this)).data()};
h.restore=function(){return!0};h.Id=function(){return this.a&65534};h.Re=function(a){a&1&&(this.a&32768?(a&=-2,this.a&64&&N(this.c,this.s)):(this.a&=-129,this.a|=2048,this.o=0,jc(this.c,this.H,1E3/Math.round(this.I/10))));this.a=this.a&-66|a&65};h.Hd=function(){this.a&=-129;this.a|=2048;return this.o};h.Qe=function(){};
var Bf="",Lf="?",Mf="??",Cf=0,Ef=1,Df=2,Gf="readProgress",Tf="pcjs-progress-bar",Uf={},Jf=(Uf[65384]=[null,null,rc.prototype.Id,rc.prototype.Re,"PRS"],Uf[65386]=[null,null,rc.prototype.Hd,rc.prototype.Qe,"PRB"],Uf);
function Vf(a,b,c){r.call(this,"Disk",{id:a.La+".disk"+Aa(++Wf,4)},0,8192);this.controller=a;this.A=a.A;this.D=a.D;this.h=b;this.na=b.name;this.ba=this.Ib="";this.Ab=b.Ab;this.J=this.O=this.M=this.U=this.mode=0;this.a=[];this.f=null;this.g=!1;Xf(this,c,b.J,b.O,b.M,b.U);this.b=this.i=null;D(this)}n(Vf,r);h=Vf.prototype;h.aa=function(a,b,c,d){this.D=d};
function Xf(a,b,c,d,e,f){a.mode=b;a.J=c;a.O=d;a.M=e;a.U=f;a.a=[];if("preload"!=a.mode){b=Array(a.J);for(c=0;c<b.length;c++){d=Array(a.O);for(e=0;e<d.length;e++){f=Array(a.M);for(var g=1;g<=f.length;g++)f[g-1]=Yf(null,c,e,g,a.U,0);d[e]=f}b[c]=d}a.a=b}a.f=null}
function Zf(a,b,c,d,e){var f=c;if(a.b)return!0;a.na=b;a.ba=c;a.Ib=F(c);a.b=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=pa[d];if(e){a.J=e[0];a.O=e[1];a.M=e[2];a.U=e[3]||512;c=a.U>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.J);for(d=0;d<a.a.length;d++)for(var x=a.a[d]=Array(a.O),w=0;w<x.length;w++)for(var Y=x[w]=Array(a.M),Da=0;Da<Y.length;Da++){for(var fc=Yf(null,d,w,Da+1,a.U,0),Wg=fc.data,zc=0;zc<c;zc++,f+=4)var Xg=Wg[zc]=b.getInt32(f,
!0),e=e+Xg&-1;fc.ia=c;Y[Da]=fc}a.f=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.h,c,a.na,a.ba),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=Ba(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"):Ca(c,"/")&&(d="dir"),f=Ka()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ab?"":e)+"&format=json"));return!!G(f,
null,!0,function(b,c,d){$f(a,b,c,d)})}
function $f(a,b,c,d){var e=null,f=0>d&&!!a.A&&!a.A.l.R;a.g=!1;if(d)a.controller.B('Unable to load disk "'+a.na+'" (error '+d+": "+b+")",f);else{qa(a.controller.La,b,c);try{if(0<F(a.Ib,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.na]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)v(k[0]);else{a.J=k.length;a.O=k[0].length;a.M=k[0][0].length;var l=k[0][0][0];a.U=l&&l.length||512;for(d=c=0;d<a.J;d++)for(f=0;f<a.O;f++)for(g=0;g<a.M;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var x=l.bytes;if(void 0!==x&&x.length){for(var w=m<<2,Y=x.length;Y<w;Y++)x[Y]=p;ag(l,x)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}Yf(l,d,f);for(w=0;w<
t.length;w++)c=c+t[w]&-1}a.a=k;a.f=c;e=a}else v("Empty disk image: "+a.na)}catch(Da){v("Disk image error ("+b+"): "+Da.message)}}a.b&&(a.b.call(a.i,a.h,e,a.na,a.ba),a.b=null)}function Yf(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Fg=b;a.Gg=c;a.ra=a.ia=0;a.xa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.h,g=this.a[a];if(g){var k=g[b];if(!k&&f.Xc&&b<f.O)for(k=g[b]=Array(f.uc),g=0;g<k.length;g++)k[g]=Yf(null,a,b,g+1,f.Yb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Xc&&9==f.Wb&&(d=k[g]=Yf(null,a,b,f.Wb,f.Yb,0))}}e&&e(d,!1);return d};function ag(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.ia?f<a.ra?(a.ia+=a.ra-f,a.ra=f):f>=a.ra+a.ia&&(a.ia+=f-(a.ra+a.ia)+1):(a.ra=f,a.ia=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function bg(a,b){var c=a.O*a.M,d=b/c|0;return d<a.J?(b%=c,a.seek(d,b/a.M|0,b%a.M+1)):null}function cg(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function dg(a){for(var b="",c=0,d;d=bg(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(cg(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.ba,this.f,this.J,this.O,this.M,this.U];if(!this.g)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ia){for(var k=[],l=0,m=g.ra,p=g.ra+g.ia;m<p;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.ra,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?Xf(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.a.length||l>=this.a[k].length||m>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.ra=e;for(k.ia=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.B("Unable to restore disk '"+this.na+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=bg(this,a++);)eg(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function eg(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 Wf=0;function Q(a){r.call(this,"RK11",a,0,65536);this.o=fg(this,a.autoMount);this.m=0;this.f=Array(8);this.s=!Pa("Mobi")&&window&&"FileReader"in window;this.Ia=null;this.w=this.b=this.a=this.i=this.h=this.g=this.v=0}n(Q,r);
function fg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Q.prototype;
h.ca=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=E(c.value);null!=a&&gg(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&hg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&E(b.value);null==b||0>b||b>=d.f.length||!(a=d.f[b])?d.B("Unable to boot the selected drive"):a.T?(Wc(d.c,0,!0),(a=d.sc(a,0,0,0,512,0,2))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.s){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.f&&((a=d.f[E(a.value)||0])?(a=a.T)?(a=Sa(dg(a),a.Ib.replace(".json",".img")),v(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.s)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;hg(d,F(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;if(a=fg(this,Jc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.o[e]=a[e]);ig(this);this.Ia=kc(this.c,144,5,65536);kb(b,this,jg);mb(b,this.reset.bind(this));kg(this,"None",lg,!0);this.s&&kg(this,"Local Disk",mg);kg(this,"Remote Disk",ng);og(this)||D(this)};
h.ha=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.m){for(a=0;a<this.f.length;a++)pg(this,a,!0);og(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";gg(this,0)}}return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){ig(this)};h.save=function(){return(new J(this)).data()};
h.restore=function(a){return ig(this,a[0])};function og(a,b){b||(a.m=0);for(var c in a.o){var d=a.o[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=F(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.f.length)){!qg(a,g,f,e,!0)&&b&&D(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.m}
function hg(a,b,c,d){var e=a.j.listDrives,e=e&&E(e.value);if(void 0===e||0>e||e>=a.f.length)a.B("Unable to load the selected drive");else if(c)if(c==mg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==ng){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"')}qg(a,e,b,c,!1,d)}else pg(a,e)}
function qg(a,b,c,d,e,f){var g=-1,k=a.f[b];k.ba.toLowerCase()!=d.toLowerCase()&&(g++,pg(a,b,!0),k.Ua?a.B("RK11 busy"):(k.Ua=!0,e&&(k.Ta=!0,a.m++),k.ya=!!f,Zf(new Vf(a,k,"preload"),c,d,f,a.Mc)&&g++));return g}h.Mc=function(a,b,c,d,e){a.Ua=!1;b&&(b.J>a.J||b.O>a.O)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Va)),b=null);b?(a.T=b,a.na=c,a.ba=d,this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Va),a.Ta||e),this.A&&Qc(this.A)):a.ya=!1;a.Ta&&(a.Ta=!1,--this.m||D(this));gg(this,a.Va)};
function kg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function gg(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=E(a.value),c=c.ya?mg:c.ba,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function pg(a,b,c){var d=a.f[b];if(d.T||!1===c)d.na="",d.ba="",d.T=null,d.ya=!1,c||(a.B("Drive RK"+b+" unloaded",c),gg(a,b))}
function ig(a,b){var c=0;b||(b=[]);a.w=b[c++]||2368;a.b=b[c++]||0;a.a=b[c++]||128;a.i=b[c++]||0;a.h=b[c++]||0;a.g=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.Va=b;d.name=c.Ka;d.Ua=d.ya=!1;d.J=203;d.O=2;d.M=12;d.U=512;d.Ab=!0;d.Yc=0;d.Wc=0;d.Wb=1;d.uc=d.M;d.Yb=d.U;d.ed=0;d.we=null;d.T||(d.ba="");d.status=2368}return!0}
h.sc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b))}var x,w;if(0>(x=a.read(p,t++))||0>(w=a.read(p,t++))){m=32;break}if(!k&&(Fb(this.u,fd(this.c,f),x|w<<8),hc(this.u))){m=1024;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Nc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){var x=Hb(this.u,fd(this.c,f));if(hc(this.u)){m=1024;break}if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1,!0);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b))}if(k){var w,Y;if(0>(w=a.read(p,t++))||0>(Y=a.read(p,t++))){m=32;break}if(x!=(w|Y<<8)){m=1;break}}else if(!a.write(p,t++,x&255)||!a.write(p,t++,x>>8)){m=32;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Lc=function(a,b,c,d,e,f){this.h=f&65535;this.a=this.a&-49|f>>12&48;this.i=65536-e&65535;this.g=this.g&-16|d&15;this.b|=a;rg(this);return!0};function rg(a){a.a&=-32769;a.b&&(a.b|=32768,a.a|=32768,a.b&32736&&(a.a|=16384))}h.Ud=function(){return this.w};h.cf=function(){};h.Vd=function(){return this.b};h.df=function(){};h.Rd=function(){return this.a&61438};
h.$e=function(a){this.a=this.a&-3968|a&3967;if(this.a&1){a=!0;var b,c,d=(this.g&57344)>>13,e=this.f[d],f,g,k,l,m,p;this.a&=-8321;this.b&=-4;switch(c=this.a&14){case 0:this.b=this.g=0;this.a=128;break;case 10:case 4:b=this.sc;case 6:case 2:b||(b=this.Nc);f=(this.g&8160)>>5;g=(this.g&16)>>4;k=this.g&15;l=65536-this.i&65535;m=(this.a&48)<<12|this.h;p=this.a&2048?0:2;if(f>=e.J){this.b|=64;break}if(k>=e.M){this.b|=32;break}a=b.call(this,e,f,g,k,l,m,p,6<=c,this.Lc.bind(this));break;case 8:f=(this.g&8160)>>
5;f<e.J?this.a|=8192:this.b|=64;break;case 12:this.b=this.g=0,this.a=8320}this.w=e.status|(e.T?128:0)|d<<13|this.g&15;rg(this);a&&(this.a&=-2,this.a|=128,this.a&64&&N(this.c,this.Ia))}};h.Wd=function(){return this.i};h.ef=function(a){this.i=a};h.Qd=function(){return this.h};h.Ze=function(a){this.h=a};h.Sd=function(){return this.g};h.af=function(a){this.g=a};h.Td=function(){return this.v};h.bf=function(a){this.v=a};
var lg="",mg="?",ng="??",sg={},jg=(sg[65280]=[null,null,Q.prototype.Ud,Q.prototype.cf,"RKDS"],sg[65282]=[null,null,Q.prototype.Vd,Q.prototype.df,"RKER"],sg[65284]=[null,null,Q.prototype.Rd,Q.prototype.$e,"RKCS"],sg[65286]=[null,null,Q.prototype.Wd,Q.prototype.ef,"RKWC"],sg[65288]=[null,null,Q.prototype.Qd,Q.prototype.Ze,"RKBA"],sg[65290]=[null,null,Q.prototype.Sd,Q.prototype.af,"RKDA"],sg[65294]=[null,null,Q.prototype.Td,Q.prototype.bf,"RKDB"],sg);
function P(a){r.call(this,"RL11",a,0,131072);this.s=tg(this,a.autoMount);this.o=0;this.b=Array(4);this.v=!Pa("Mobi")&&window&&"FileReader"in window;this.Ia=null;this.a=this.m=this.f=this.g=this.i=this.h=0}n(P,r);function tg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=P.prototype;
h.ca=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=E(c.value);null!=a&&ug(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&vg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&E(b.value);null==b||0>b||b>=d.b.length||!(a=d.b[b])?d.B("Unable to boot the selected drive"):a.T?(Wc(d.c,0,!0),(a=d.tc(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.v){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.b&&((a=d.b[E(a.value)||0])?(a=a.T)?(a=Sa(dg(a),a.Ib.replace(".json",".img")),v(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.v)return this.j[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;vg(d,F(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.aa=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;if(a=tg(this,Jc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.s[e]=a[e]);wg(this);this.Ia=kc(this.c,112,5,131072);kb(b,this,xg);mb(b,this.reset.bind(this));yg(this,"None",zg,!0);this.v&&yg(this,"Local Disk",Ag);yg(this,"Remote Disk",Bg);Cg(this)||D(this)};
h.ha=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.m){for(a=0;a<this.b.length;a++)Dg(this,a,!0);Cg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";ug(this,0)}}return!0};h.ga=function(a){return a?this.save():!0};h.reset=function(){wg(this)};h.save=function(){return(new J(this)).data()};
h.restore=function(a){return wg(this,a[0])};function Cg(a,b){b||(a.o=0);for(var c in a.s){var d=a.s[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=F(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!Eg(a,g,f,e,!0)&&b&&D(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function vg(a,b,c,d){var e=a.j.listDrives,e=e&&E(e.value);if(void 0===e||0>e||e>=a.b.length)a.B("Unable to load the selected drive");else if(c)if(c==Ag)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Bg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"')}Eg(a,e,b,c,!1,d)}else Dg(a,e)}
function Eg(a,b,c,d,e,f){var g=-1,k=a.b[b];k.ba.toLowerCase()!=d.toLowerCase()&&(g++,Dg(a,b,!0),k.Ua?a.B("RL11 busy"):(k.Ua=!0,e&&(k.Ta=!0,a.o++),k.ya=!!f,Zf(new Vf(a,k,"preload"),c,d,f,a.Pc)&&g++));return g}h.Pc=function(a,b,c,d,e){a.Ua=!1;b&&(b.J>a.J||b.O>a.O)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Va)),b=null);b?(a.T=b,a.na=c,a.ba=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Va),a.Ta||e),this.A&&Qc(this.A)):a.ya=!1;a.Ta&&(a.Ta=!1,--this.o||D(this));ug(this,a.Va)};
function yg(a,b,c,d){if((a=a.j.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ug(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=E(a.value),c=c.ya?Ag:c.ba,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Dg(a,b,c){var d=a.b[b];if(d.T||!1===c)d.na="",d.ba="",d.T=null,d.ya=!1,c||(a.B("Drive RL"+b+" unloaded",c),ug(a,b))}
function wg(a,b){var c=0;b||(b=[]);a.a=b[c++]||129;a.m=b[c++]||0;a.f=b[c++]||0;a.g=b[c++]||0;a.i=b[c++]||0;a.h=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.Va=b;d.name=c.Ka;d.Ua=d.ya=!1;d.J=512;d.O=2;d.M=40;d.U=256;d.Ab=!0;d.Yc=0;d.Wc=0;d.Wb=1;d.uc=d.M;d.Yb=d.U;d.ed=0;d.we=null;d.T||(d.ba="");d.status=29}return!0}
h.tc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}Fb(this.u,fd(this.c,f),p|t<<8);if(hc(this.u)){k=8192;break}f+=2;e--;if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Qc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){var p=Hb(this.u,fd(this.c,f));if(hc(this.u)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.O&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Oc=function(a,b,c,d,e,f){this.m=f&65535;this.a=this.a&-49|f>>12&48;this.h=f>>16&63;this.g=this.f=b<<7|(c?64:0)|d&63;this.i=65536-e&65535;a&&(this.a=this.a|a|32768);return!0};h.Zd=function(){return this.a&65535};
h.hf=function(a){this.a=this.a&-1023|a&1022;this.h=this.h&60|(a&48)>>4;if(!(this.a&128)){a=!0;var b,c=this.b[(this.a&768)>>8],d=c.T,e,f,g;this.a&=-2;switch(this.a&14){case 4:this.i&8&&(this.a&=63);this.i=c.status|this.g&64|(d&&512==d.J?128:0);break;case 6:1==(this.f&3)&&(b=this.f&65408,c=(this.f&16)<<2,this.g=this.f&4?this.g+b:this.g-b,this.f=this.g=this.g&65408|c);break;case 8:this.i=this.g;break;case 12:b=this.tc;case 10:b||(b=this.Qc),e=this.f>>7,f=this.f&64?1:0,g=this.f&63,!d||e>=d.J||g>=d.M?
this.a|=37888:(a=65536-this.i&65535,d=(this.h&63)<<16|this.m,a=b.call(this,c,e,f,g,a,d,this.Oc.bind(this)))}a&&(this.a|=129,this.a&64&&N(this.c,this.Ia))}};h.Xd=function(){return this.m};h.ff=function(a){this.m=a&65534};h.$d=function(){return this.f};h.jf=function(a){this.f=a};h.ae=function(){return this.i};h.kf=function(a){this.i=a};h.Yd=function(){return this.h};h.gf=function(a){this.h=a&63;this.a=this.a&-49|(this.h&3)<<4};
var zg="",Ag="?",Bg="??",Fg={},xg=(Fg[63744]=[null,null,P.prototype.Zd,P.prototype.hf,"RLCS"],Fg[63746]=[null,null,P.prototype.Xd,P.prototype.ff,"RLBA"],Fg[63748]=[null,null,P.prototype.$d,P.prototype.jf,"RLDA"],Fg[63750]=[null,null,P.prototype.ae,P.prototype.kf,"RLMP"],Fg[63752]=[null,null,P.prototype.Yd,P.prototype.gf,"RLBE"],Fg);
function Gg(a,b,c){r.call(this,"Computer",a,0,33554432);this.l.R=!1;this.G=null;Hg(this,b);this.C=Jc(this,"autoPower",a,6);this.g=0;this.K=+a.busWidth||+a.buswidth;this.v=this.s=this.w=null;this.o=this.I=!1;this.i=this.h=null;this.H=this.m=this.F=!1;this.L=Jc(this,"url")||"";(Math.random()+.1).toString(36);this.b=Ig(this);if(this.c=va("CPU",this.id)){this.D=va("Debugger",this.id);this.u=new Mb({id:this.La+".bus",busWidth:this.K},this.c,this.D);var d,e=y(this.id);if((this.f=va("Panel",this.id))&&this.f.ab)for(b=
0;b<e.length;b++)d=e[b],d.B=this.f.B,d.V=this.f.V,d.ab=this.f.ab;this.V(cb+" v1.32.1\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.V("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.aa&&d.aa(this,this.u,this.c,this.D);this.a=Jc(this,"resume",a,4,Jg);var f;b=null;if(a=Jc(this,"state")||(f=!0,a.state))this.w=b=a,f||(this.o=!0,this.a=Jg),this.a&&
(this.i=new J(this,"1.32.1"),Kg(this.i)?b=null:delete this.i);!b&&this.a&&(b=Lg(this))&&(this.o=!0);if(b){var g=this;G(b,null,!0,function(a,b,c){c?(g.s=null,g.o=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+Ga(b):"")+")")):(g.v=b,g.I=!0);D(g)})}else D(this);this.j.power||(this.C=!0);!c&&this.C&&Mg(this,this.ub)}else v("Unable to find CPU component")}n(Gg,r);
function Hg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.G=b}function Jc(a,b,c,d,e){var f=b.toLowerCase(),f=Qa(b)||Qa(f);void 0===f&&a.G&&(f=a.G[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Mg(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!xa(f)){xa(f,function(){Mg(a,b,c)});return}}b.call(a,c)}function Ng(a,b){var c=new J(a,"1.32.1",Og);if(Kg(c)&&Pg(c)){var d=c.get(Qg),e=b?b.get(Qg):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Gg.prototype;
h.ub=function(a){void 0===a&&(a=this.a||(this.v?Rg:Jg));if(!this.g){this.g++;var b=!1,c=!1;this.F=!1;var d=this.i||new J(this,"1.32.1");if(a==Sg)b=!0;else if(a>Jg){if(Kg(d,this.v)){this.h=new J(this,"1.32.1",Tg);Kg(this.h)&&(Ug(this,d),a=Vg,Yg(this.h));this.h.set(Qg,Ia());Zg(this.h);var e=this.a&&!this.o;if(a==Rg||ta("Click OK to restore the previous "+cb+" machine state, or CANCEL to reset the machine.")){if(c=Pg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Kg(d,g):("error"==f&&"no machine state"!=
g?(this.B("Error: "+g),"unable to verify user"==g&&(Oa($g,""),this.b=null)):this.V(f+": "+g),Yg(d),Kg(d)?(c=Pg(d),e=!0):c=!1))}e&&Ng(this,c?d:null)}else a==Vg&&d.clear()}else Ng(this);delete this.v;delete this.i}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=ah(this,g,d,b,c));b=[d,a,c];a!=Sg?Mg(this,this.vc,b):this.vc(b)}};
function ah(a,b,c,d,e){if(!b.l.R){b.l.R=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ha(f,d)&&f&&(v("Unable to restore state for "+b.type),a.w&&!a.I?(c.clear(),a.a=Jg,window&&window.location.reload()):a.F=!0,b.ha(null),e=!1),!d&&b.mc){var g=b.mc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.vc=function(a){var b=a[0],c=0>a[1];a=a[2];this.H=!0;this.l.R=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.c&&(ah(this,this.c,b,c,a),Cb(this),this.c.ma());this.F&&(Ug(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.g=0};
function Ug(a,b){if(ta("There may be a problem with your "+cb+" machine.\n\nTo help us diagnose it, click OK to send this "+cb+" machine state to http://www.pcjs.org.")){var c=a.L;a=a.b||"";b=b.toString();var d={};d.app=cb;d.ver="1.32.1";d.url=c;d.user=a;d.type="bug";d.data=b;G("http://www.pcjs.org/api/v1/report",d,!0)}}
function bh(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new J(a,"1.32.1"),g=new J(a,"1.32.1",Og),k=Ia();g.set(Qg,k);f.set(Qg,k);f.set(ch,"1.32.1");f.set(dh,window?window.location.href:null);f.set(eh,window?window.navigator.userAgent:"");a.c&&a.c.ga&&(c&&H(a.c),d=a.c.ga(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.l.R=!1,!1===d&&(e=null)));for(var k=y(a.id),l=0;l<k.length;l++){var m=k[l];m.l.R&&(m.ga&&(d=m.ga(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.l.R=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.b&&fh(a,a.b,f.toString()),Zg(g)&&Zg(f)||(e=null,d=k=!0)):a.a&&(d=!0,k=a.a==gh),d&&f.clear(k)):e=f.toString());c&&(a.l.R=!1,b=a.j.power)&&(b.textContent="Power");a.g=0;return e}h.reset=function(){this.u&&this.u.reset&&this.u.reset();this.c&&this.c.reset&&this.c.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c!==this.c&&c.reset&&c.reset()}Cb(this,-1)};
h.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Cb(this,-1)};h.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Cb(this,-1)};
function Cb(a,b){if(a.c){var c=a.c,d=b||0,e=c.j.speed;e&&(0>=d||30<=(c.ec+=d))&&(e.textContent=c.l.P?c.Ma.toFixed(2)+"Mhz":"Stopped",c.ec=0)}if(a.f&&(a=a.f,b=b||0,a.m)){c=a.c.l.P;d=!!(a.c.g&8);if(0>=b||60<=(a.i+=b)){for(e=0;e<a.c.b.length;e++)sb(a,"R"+e,a.c.b[e]);e=pc(a.c);sb(a,"PS",e);sb(a,"NF",e&8?1:0,1);sb(a,"ZF",e&4?1:0,1);sb(a,"VF",e&2?1:0,1);sb(a,"CF",e&1?1:0,1);a.i=0}Ib(a,0<b&&c&&!d?a.c.za:a.ja);Eb(a,a.h);b=a.c;b=b.Aa?b.la&16?1:2:4;Kb(a,"B22",b&1);Kb(a,"B18",b&2);Kb(a,"B16",b&4)}}
h.ca=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.g||(d.l.R?bh(d,!1,!0):Mg(d,d.ub))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.l.R&&!d.g)if(d.a&&!d.s){var a=ta("Click OK to save changes to this "+cb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bh(d,a,!0);!a&&d.w?window&&window.location.reload():(a||(d.m=!0),d.ub(Jg),d.m=!1)}else d.reset(),d.c&&d.c.ma()},!0;case "save":if(Ca(Ka(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.j[b]=c,c.onclick=function(){var a=Ig(d,!0);if(a){var b=!!(d.a&&!d.s||d.w),c=bh(d,b);b?fh(d,a,c):d.B("Resume disabled, machine state not saved")}},!0}return!1};
function Ig(a,b){var c=a.b;c||((c=Na($g),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=hh(a,c))||a.B("The user ID is invalid.")):b&&a.B("Browser local storage is not available"));return c}
function hh(a,b){a.b=null;b=G(Ka()+"/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($g,b.data),a.b=b.data)}catch(d){v(d.message+" ("+c+")")}return a.b}function Lg(a){var b=null;a.b&&(b=Ka()+"/api/v1/user?req=load&user="+a.b+"&state="+ih(a,"1.32.1"));return b}
function fh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ih(a,"1.32.1");d.data=c;b=G(Ka()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.B(c),Oa($g,""),a.b=null)}}
function Hf(a){var b;a=y(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 Qc(a){if(a.ab){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ab.focus();window&&window.scrollTo(b,c)}}var Tg="failsafe",Og="validate",Qg="timestamp",ch="version",dh="url",eh="browser",$g="user",Sg=-1,Jg=0,Rg=1,Vg=2,gh=3;
Ua(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Gg(g,d,!0);A(g,f);g.C&&Mg(g,g.ub)}});Va.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=va("Computer",c.id))&&c.H&&!c.l.R&&c.ub(Sg)}});Va.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=va("Computer",c.id))&&c.l.R&&bh(c,!(!c.a||c.s),!0)}});
function J(a,b,c){this.id=a.id;this.a="";this.c={};this.b=this.j=!1;this.key=ih(a,b,c);Yg(this,a.Rc)}h=J.prototype;h.set=function(a,b){try{this.c[a]=b}catch(c){}};h.get=function(a){return this.c[a]||null};h.data=function(){return this.c};function Kg(a,b){return b?(a.a=b,a.b=!0,a.j=!1,!0):a.b?!0:La()&&(b=Na(a.key))?(a.a=b,a.b=!0):!1}function Pg(a){var b=!0;if(!a.j)try{a.c=JSON.parse(a.a),a.j=!0}catch(c){v(c.message||c),b=!1}return b}
function Zg(a){var b=!0;if(La()){var c=JSON.stringify(a.c);Oa(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.c?JSON.stringify(this.c):this.a};function Yg(a,b){a.a="";a.c={};a.b=a.j=!1;b&&a.set("parms",b)}
h.clear=function(a){Yg(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 ih(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 jh=0;
function kh(a,b,c,d,e,f){e("Loading "+a+"...");G(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):lh(k,a,b,c,d,e,f)})}
function lh(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(qa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?mh(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function mh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");G(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);mh(a,b,c)}})}else c(a,null)}
function nh(a,b,c,d){function e(a){if(void 0===k){var b=g&&C(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=Ea(a))}function f(a){e("Error: "+a);l&&(--jh||Ya(!0));l=!1}var g,k,l=!0;jh++;ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
(c="/versions/pdpjs/1.32.1/components.xsl");m=function(d,k){k?kh(c,null,null,!1,e,function(d,l){l?(qa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--jh||Ya(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--jh||Ya(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?kh(b,a,d,!0,e,m):lh(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return l}window.embedPDP11=function(a,b,c,d){Ya(!1);return nh(a,b,c,d)};window.findMachineComponent=function(a,b){return va(b,a+".machine")};window.enableEvents=Ya;window.sendEvent=$a;})();//# sourceMappingURL=/tmp/pdpjs/1.32.1/pdp11.map