v1.32.0: The New Year Release

This commit is contained in:
Jeff Parsons 2016-12-30 15:56:00 -08:00 committed by Jeff Parsons
commit f87161f5d6
452 changed files with 14307 additions and 542 deletions

View file

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

View file

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