First batch of pdp11.js code adapted but totally untested

This commit is contained in:
Jeff Parsons 2016-09-05 11:05:40 -07:00
commit 100779e30a
22 changed files with 2697 additions and 1273 deletions

View file

@ -708,7 +708,7 @@ function fr(a,b){var c=0,d=gr(a,b);if(void 0!==d)switch(b){case 0:case 1:case 2:
function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=zd(d);break; function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=zd(d);break;
case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ja)32==b&&(c=d.Za);else if(80386<=a.F.ja)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.li;break;case 34:c=d.ue;break;case 35:c=d.Qd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c} case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ja)32==b&&(c=d.Za);else if(80386<=a.F.ja)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.li;break;case 34:c=d.ue;break;case 35:c=d.Qd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c}
function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+vq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(d=e+' "'+Jq(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(Uq(a,d),d=e+ function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+vq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(d=e+' "'+Jq(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(Uq(a,d),d=e+
' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=iq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(jq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ha)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.Y.nf=0;c.fb-=c.A;c.A=0;Wc(c)}}; ' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=iq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(jq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ha)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.fb-=c.A;c.A=0;c.Y.nf=0;Wc(c)}};
function nk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>pq.indexOf(b),!d)){var g=oq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Ab[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d} function nk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>pq.indexOf(b),!d)){var g=oq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Ab[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d}
function qb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.zd+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.jh=function(){this.O("Type ? for help with PCx86 Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;nq(this,a)}}; function qb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.zd+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.jh=function(){this.O("Type ? for help with PCx86 Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;nq(this,a)}};
function lq(a,b){var c;if(Wf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=jq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.W||!a.W.length)for(a.W=Array(256),c=0;c<a.W.length;c++)a.W[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.W=[]}m.Le=function(a){if(!ir(this))return!1;this.F.Le(a);return!0}; function lq(a,b){var c;if(Wf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=jq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.W||!a.W.length)for(a.W=Array(256),c=0;c<a.W.length;c++)a.W[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.W=[]}m.Le=function(a){if(!ir(this))return!1;this.F.Le(a);return!0};

View file

@ -1035,6 +1035,17 @@ CPU8080.prototype.updateTimers = function(nCycles)
} }
}; };
/**
* endBurst()
*
* @this {CPU8080}
*/
CPU8080.prototype.endBurst = function()
{
this.nBurstCycles -= this.nStepCycles;
this.nStepCycles = 0;
};
/** /**
* runCPU(fUpdateFocus) * runCPU(fUpdateFocus)
* *
@ -1170,8 +1181,7 @@ CPU8080.prototype.stepCPU = function(nMinCycles)
CPU8080.prototype.stopCPU = function(fComplete) CPU8080.prototype.stopCPU = function(fComplete)
{ {
this.isBusy(true); this.isBusy(true);
this.nBurstCycles -= this.nStepCycles; this.endBurst();
this.nStepCycles = 0;
this.addCycles(this.nRunCycles); this.addCycles(this.nRunCycles);
this.nRunCycles = 0; this.nRunCycles = 0;
if (this.flags.fRunning) { if (this.flags.fRunning) {
@ -1212,9 +1222,8 @@ CPU8080.prototype.updateCPU = function(fForce)
*/ */
CPU8080.prototype.yieldCPU = function() CPU8080.prototype.yieldCPU = function()
{ {
this.endBurst(); // this will break us out of stepCPU()
this.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU() this.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU()
this.nBurstCycles -= this.nStepCycles;
this.nStepCycles = 0; // this will break us out of stepCPU()
// if (DEBUG) this.nSnapCycles = this.nBurstCycles; // if (DEBUG) this.nSnapCycles = this.nBurstCycles;
/* /*
* The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks * The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks

View file

@ -961,8 +961,7 @@ CPUState8080.prototype.checkINTR = function()
* current burst AND that it should not execute any more instructions until checkINTR() indicates * current burst AND that it should not execute any more instructions until checkINTR() indicates
* that a hardware interrupt has been requested. * that a hardware interrupt has been requested.
*/ */
this.nBurstCycles -= this.nStepCycles; this.endBurst();
this.nStepCycles = 0;
return false; return false;
} }
return true; return true;
@ -994,8 +993,7 @@ CPUState8080.prototype.clearINTR = function(nLevel)
CPUState8080.prototype.requestHALT = function() CPUState8080.prototype.requestHALT = function()
{ {
this.intFlags |= CPUDef8080.INTFLAG.HALT; this.intFlags |= CPUDef8080.INTFLAG.HALT;
this.nBurstCycles -= this.nStepCycles; this.endBurst();
this.nStepCycles = 0;
}; };
/** /**
@ -1015,8 +1013,7 @@ CPUState8080.prototype.requestINTR = function(nLevel)
{ {
this.intFlags |= (1 << nLevel); this.intFlags |= (1 << nLevel);
if (this.getIF()) { if (this.getIF()) {
this.nBurstCycles -= this.nStepCycles; this.endBurst();
this.nStepCycles = 0;
} }
}; };
@ -1088,9 +1085,6 @@ CPUState8080.prototype.updateStatus = function(fForce)
* they're all one continuous stream of instructions that can be stepped or run at will. Moreover, * they're all one continuous stream of instructions that can be stepped or run at will. Moreover,
* stepping vs. running should never change the behavior of the simulation. * stepping vs. running should never change the behavior of the simulation.
* *
* As a result, the Debugger's complete independence means you can run other 8086/8088 debuggers
* (eg, DEBUG) inside the simulation without interference; you can even "debug" them with the Debugger.
*
* @this {CPUState8080} * @this {CPUState8080}
* @param {number} nMinCycles (0 implies a single-step, and therefore breakpoints should be ignored) * @param {number} nMinCycles (0 implies a single-step, and therefore breakpoints should be ignored)
* @return {number} of cycles executed; 0 indicates a pre-execution condition (ie, an execution breakpoint * @return {number} of cycles executed; 0 indicates a pre-execution condition (ie, an execution breakpoint

View file

@ -939,6 +939,17 @@ CPU.prototype.calcRemainingTime = function()
return msRemainsThisRun; return msRemainsThisRun;
}; };
/**
* endBurst()
*
* @this {CPU}
*/
CPU.prototype.endBurst = function()
{
this.nBurstCycles -= this.nStepCycles;
this.nStepCycles = 0;
};
/** /**
* runCPU(fUpdateFocus) * runCPU(fUpdateFocus)
* *
@ -1089,8 +1100,7 @@ CPU.prototype.stepCPU = function(nMinCycles)
CPU.prototype.stopCPU = function(fComplete) CPU.prototype.stopCPU = function(fComplete)
{ {
this.isBusy(true); this.isBusy(true);
this.nBurstCycles -= this.nStepCycles; this.endBurst();
this.nStepCycles = 0;
this.addCycles(this.nRunCycles); this.addCycles(this.nRunCycles);
this.nRunCycles = 0; this.nRunCycles = 0;
if (this.flags.fRunning) { if (this.flags.fRunning) {
@ -1131,9 +1141,8 @@ CPU.prototype.updateCPU = function(fForce)
*/ */
CPU.prototype.yieldCPU = function() CPU.prototype.yieldCPU = function()
{ {
this.endBurst(); // this will break us out of stepCPU()
this.aCounts.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU() this.aCounts.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU()
this.nBurstCycles -= this.nStepCycles;
this.nStepCycles = 0; // this will break us out of stepCPU()
// if (DEBUG) this.nSnapCycles = this.nBurstCycles; // if (DEBUG) this.nSnapCycles = this.nBurstCycles;
/* /*
* The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks * The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks

View file

@ -17,7 +17,6 @@ PDP11 is currently comprised of the following non-shared components, as listed i
[package.json](../../package.json) (see the *pdp11Files* property): [package.json](../../package.json) (see the *pdp11Files* property):
* [defines.js](/modules/pdp11/lib/defines.js) * [defines.js](/modules/pdp11/lib/defines.js)
* [cpudef.js](/modules/pdp11/lib/cpudef.js)
* [messages.js](/modules/pdp11/lib/messages.js) * [messages.js](/modules/pdp11/lib/messages.js)
* [panel.js](/modules/pdp11/lib/panel.js) * [panel.js](/modules/pdp11/lib/panel.js)
* [bus.js](/modules/pdp11/lib/bus.js) * [bus.js](/modules/pdp11/lib/bus.js)

View file

@ -0,0 +1,64 @@
/**
* @fileoverview Converts octal constants to hex.
* @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
* @version 1.0
* Created 2016-Sep-04
*
* Copyright © 2012-2016 Jeff Parsons <Jeff@pcjs.org>
*
* This file is part of PCjs, a computer emulation software project at <http://pcjs.org/>.
*
* PCjs is free software: you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCjs. If not,
* see <http://www.gnu.org/licenses/gpl.html>.
*
* You are required to include the above copyright notice in every source code file of every
* copy or modified version of this work, and to display that copyright notice on every screen
* that loads or runs any version of this software (see COPYRIGHT in /modules/shared/lib/defines.js).
*
* Some PCjs files also attempt to load external resource files, such as character-image files,
* ROM files, and disk image files. Those external resource files are not considered part of PCjs
* for purposes of the GNU General Public License, and the author does not claim any copyright
* as to their contents.
*/
"use strict";
var fs = require("fs");
try {
var sText = fs.readFileSync(process.argv[2], "utf-8");
var asLines = sText.split('\n');
for (var iLine = 0; iLine < asLines.length; iLine++) {
var sLine = asLines[iLine];
var match, re = /([^0-9a-z_-])(0[0-7]+)([^0-9a-z_])/gi;
var iComment = sLine.indexOf("//");
while (match = re.exec(sLine)) {
if (iComment >= 0 && match.index > iComment) break;
var n = parseInt(match[2], 8);
if (n < 0) {
console.log("found negative octal value (" + match[2] + "), skipping");
continue;
}
var sReplace = match[1] + "0x" + n.toString(16).toUpperCase() + match[3] + " /*" + match[2] + "*/";
sLine = sLine.substr(0, match.index) + sReplace + sLine.substr(match.index + match[0].length);
re.lastIndex = match.index + sReplace.length;
asLines[iLine] = sLine;
}
}
sText = "";
for (var iLine = 0; iLine < asLines.length; iLine++) {
if (sText) sText += '\n';
sText += asLines[iLine];
}
console.log(sText);
} catch (err) {
console.log("error: " + err.message);
}

View file

@ -739,6 +739,40 @@ BusPDP11.prototype.restoreMemory = function(a)
return true; return true;
}; };
/**
* reset_iopage()
*
* TODO: Implement
*
* @this {BusPDP11}
*/
BusPDP11.prototype.reset_iopage = function()
{
// display.misc = (display.misc & ~0x77) | 0x14; // kernel 16 bit
// tty.rcsr = 0;
// tty.xcsr = 0x80; /*0200*/
// kw11.csr = 0;
// rk11.rkcs = 0x80; /*0200*/
// rl11.csr = 0x80;
// rp11_init();
};
/**
* access_iopage(physicalAddress, data, byteFlag)
*
* TODO: Implement
*
* @this {BusPDP11}
* @param {number} physicalAddress
* @param {number} data
* @param {number} byteFlag
* @return {number}
*/
BusPDP11.prototype.access_iopage = function(physicalAddress, data, byteFlag)
{
return -1;
};
/** /**
* reportError(op, addr, size, fQuiet) * reportError(op, addr, size, fQuiet)
* *

View file

@ -1037,6 +1037,17 @@ CPUPDP11.prototype.updateTimers = function(nCycles)
} }
}; };
/**
* endBurst()
*
* @this {CPUPDP11}
*/
CPUPDP11.prototype.endBurst = function()
{
this.nBurstCycles -= this.nStepCycles;
this.nStepCycles = 0;
};
/** /**
* runCPU(fUpdateFocus) * runCPU(fUpdateFocus)
* *
@ -1172,8 +1183,7 @@ CPUPDP11.prototype.stepCPU = function(nMinCycles)
CPUPDP11.prototype.stopCPU = function(fComplete) CPUPDP11.prototype.stopCPU = function(fComplete)
{ {
this.isBusy(true); this.isBusy(true);
this.nBurstCycles -= this.nStepCycles; this.endBurst();
this.nStepCycles = 0;
this.addCycles(this.nRunCycles); this.addCycles(this.nRunCycles);
this.nRunCycles = 0; this.nRunCycles = 0;
if (this.flags.fRunning) { if (this.flags.fRunning) {
@ -1213,9 +1223,8 @@ CPUPDP11.prototype.updateCPU = function(fForce)
*/ */
CPUPDP11.prototype.yieldCPU = function() CPUPDP11.prototype.yieldCPU = function()
{ {
this.endBurst(); // this will break us out of stepCPU()
this.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU() this.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU()
this.nBurstCycles -= this.nStepCycles;
this.nStepCycles = 0; // this will break us out of stepCPU()
// if (DEBUG) this.nSnapCycles = this.nBurstCycles; // if (DEBUG) this.nSnapCycles = this.nBurstCycles;
/* /*
* The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks * The Debugger calls yieldCPU() after every message() to ensure browser responsiveness, but it looks

View file

@ -1,115 +0,0 @@
/**
* @fileoverview Defines PDP11 CPU constants.
* @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
* @version 1.0
* Created 2016-Sep-03
*
* This file is part of PCjs, a computer emulation software project at <http://pcjs.org/>.
*
* It has been adapted from the JavaScript PDP 11/70 Emulator v1.3 written by Paul Nankervis
* (paulnank@hotmail.com) as of August 2016 from http://skn.noip.me/pdp11/pdp11.html. This code
* may be used freely provided the original author name is acknowledged in any modified source code.
*
* PCjs is free software: you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCjs. If not,
* see <http://www.gnu.org/licenses/gpl.html>.
*
* You are required to include the above copyright notice in every source code file of every
* copy or modified version of this work, and to display that copyright notice on every screen
* that loads or runs any version of this software (see COPYRIGHT in /modules/shared/lib/defines.js).
*
* Some PCjs files also attempt to load external resource files, such as character-image files,
* ROM files, and disk image files. Those external resource files are not considered part of PCjs
* for purposes of the GNU General Public License, and the author does not claim any copyright
* as to their contents.
*/
"use strict";
var CPUDefPDP11 = {
/*
* CPU model numbers (supported)
*/
MODEL_1145: 1145,
MODEL_1170: 1170,
/*
* This constant is used to mark points in the code where the physical address being returned
* is invalid and should not be used.
*
* In a 32-bit CPU, -1 (ie, 0xffffffff) could actually be a valid address, so consider changing
* ADDR_INVALID to NaN or null (which is also why all ADDR_INVALID tests should use strict equality
* operators).
*
* The main reason I'm NOT using NaN or null now is my concern that, by mixing non-numbers
* (specifically, values outside the range of signed 32-bit integers), performance may suffer.
*
* WARNING: Like many of the properties defined here, ADDR_INVALID is a common constant, which the
* Closure Compiler will happily inline (with or without @const annotations; in fact, I've yet to
* see a @const annotation EVER improve automatic inlining). However, if you don't make ABSOLUTELY
* certain that this file is included BEFORE the first reference to any of these properties, that
* automatic inlining will no longer occur.
*/
ADDR_INVALID: -1,
/*
* Processor Status flag definitions (stored in regPS)
*/
PS: {
CF: 0x0001, // bit 0: Carry Flag
BIT1: 0x0002, // bit 1: reserved, always set
PF: 0x0004, // bit 2: Parity Flag
BIT3: 0x0008, // bit 3: reserved, always clear
AF: 0x0010, // bit 4: Auxiliary Carry Flag
BIT5: 0x0020, // bit 5: reserved, always clear
ZF: 0x0040, // bit 6: Zero Flag
SF: 0x0080, // bit 7: Sign Flag
ALL: 0x00D5, // all "arithmetic" flags (CF, PF, AF, ZF, SF)
MASK: 0x00FF, //
IF: 0x0200 // bit 9: Interrupt Flag (set if interrupts enabled; Intel calls this the INTE bit)
},
/*
* Interrupt-related flags (stored in intFlags)
*/
INTFLAG: {
NONE: 0x0000,
INTR: 0x00ff, // mask for 8 bits, representing interrupt levels 0-7
HALT: 0x0100 // halt requested; see opHLT()
},
/*
* Opcode definitions
*/
OPCODE: {
HLT: 0x76, // Halt
ACI: 0xCE, // Add with Carry Immediate (affects PS.ALL)
CALL: 0xCD, // Call
RST0: 0xC7
// to be continued....
}
};
/*
* These are the internal PS bits (outside of PS.MASK) that getPS() and setPS() can get and set,
* but which cannot be seen with any of the documented instructions.
*/
CPUDefPDP11.PS.INTERNAL = (CPUDefPDP11.PS.IF);
/*
* PS "arithmetic" flags are NOT stored in regPS; they are maintained across separate result registers,
* hence the RESULT designation.
*/
CPUDefPDP11.PS.RESULT = (CPUDefPDP11.PS.CF | CPUDefPDP11.PS.PF | CPUDefPDP11.PS.AF | CPUDefPDP11.PS.ZF | CPUDefPDP11.PS.SF);
/*
* These are the "always set" PS bits for the PDP11.
*/
CPUDefPDP11.PS.SET = (CPUDefPDP11.PS.BIT1);
if (NODE) module.exports = CPUDefPDP11;

View file

@ -35,7 +35,7 @@
if (NODE) { if (NODE) {
var str = require("../../shared/lib/strlib"); var str = require("../../shared/lib/strlib");
var CPUDefPDP11 = require("./CPUDef"); var PDP11 = require("./defines");
var MessagesPDP11 = require("./messages"); var MessagesPDP11 = require("./messages");
} }
@ -44,7 +44,7 @@ if (NODE) {
* *
* @this {CPUStatePDP11} * @this {CPUStatePDP11}
*/ */
CPUDefPDP11.opNOP = function() PDP11.opNOP = function()
{ {
this.nStepCycles -= 4; this.nStepCycles -= 4;
}; };
@ -56,69 +56,69 @@ CPUDefPDP11.opNOP = function()
* but I suspect that would vary quite a bit across JavaScript engines; for now, I'm putting my * but I suspect that would vary quite a bit across JavaScript engines; for now, I'm putting my
* money on array lookup. * money on array lookup.
*/ */
CPUDefPDP11.aOpsPDP1170 = [ PDP11.aOpsPDP1170 = [
/* 0x00-0x03 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x00-0x03 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x04-0x07 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x04-0x07 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x08-0x0B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x08-0x0B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x0C-0x0F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x0C-0x0F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x10-0x13 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x10-0x13 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x14-0x17 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x14-0x17 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x18-0x1B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x18-0x1B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x1C-0x1F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x1C-0x1F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x20-0x23 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x20-0x23 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x24-0x27 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x24-0x27 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x28-0x2B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x28-0x2B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x2C-0x2F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x2C-0x2F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x30-0x33 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x30-0x33 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x34-0x37 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x34-0x37 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x38-0x3B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x38-0x3B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x3C-0x3F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x3C-0x3F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x40-0x43 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x40-0x43 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x44-0x47 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x44-0x47 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x48-0x4B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x48-0x4B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x4C-0x4F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x4C-0x4F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x50-0x53 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x50-0x53 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x54-0x57 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x54-0x57 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x58-0x5B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x58-0x5B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x5C-0x5F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x5C-0x5F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x60-0x63 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x60-0x63 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x64-0x67 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x64-0x67 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x68-0x6B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x68-0x6B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x6C-0x6F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x6C-0x6F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x70-0x73 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x70-0x73 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x74-0x77 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x74-0x77 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x78-0x7B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x78-0x7B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x7C-0x7F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x7C-0x7F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x80-0x83 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x80-0x83 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x84-0x87 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x84-0x87 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x88-0x8B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x88-0x8B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x8C-0x8F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x8C-0x8F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x90-0x93 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x90-0x93 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x94-0x97 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x94-0x97 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x98-0x9B */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x98-0x9B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0x9C-0x9F */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0x9C-0x9F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xA0-0xA3 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xA0-0xA3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xA4-0xA7 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xA4-0xA7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xA8-0xAB */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xA8-0xAB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xAC-0xAF */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xAC-0xAF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xB0-0xB3 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xB0-0xB3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xB4-0xB7 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xB4-0xB7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xB8-0xBB */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xB8-0xBB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xBC-0xBF */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xBC-0xBF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xC0-0xC3 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xC0-0xC3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xC4-0xC7 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xC4-0xC7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xC8-0xCB */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xC8-0xCB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xCC-0xCF */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xCC-0xCF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xD0-0xD3 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xD0-0xD3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xD4-0xD7 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xD4-0xD7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xD8-0xDB */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xD8-0xDB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xDC-0xDF */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xDC-0xDF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xE0-0xE3 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xE0-0xE3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xE4-0xE7 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xE4-0xE7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xE8-0xEB */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xE8-0xEB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xEC-0xEF */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xEC-0xEF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xF0-0xF3 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xF0-0xF3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xF4-0xF7 */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xF4-0xF7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xF8-0xFB */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, /* 0xF8-0xFB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
/* 0xFC-0xFF */ CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP, CPUDefPDP11.opNOP /* 0xFC-0xFF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP
]; ];

File diff suppressed because it is too large Load diff

View file

@ -41,7 +41,6 @@ if (DEBUGGER) {
var Component = require("../../shared/lib/component"); var Component = require("../../shared/lib/component");
var State = require("../../shared/lib/state"); var State = require("../../shared/lib/state");
var PDP11 = require("./defines"); var PDP11 = require("./defines");
var CPUDefPDP11 = require("./cpudef");
var CPUPDP11 = require("./cpu"); var CPUPDP11 = require("./cpu");
var KeyboardPDP11 = require("./keyboard"); var KeyboardPDP11 = require("./keyboard");
var MessagesPDP11 = require("./messages"); var MessagesPDP11 = require("./messages");
@ -485,13 +484,13 @@ if (DEBUGGER) {
* @param {DbgAddrPDP11|null|undefined} dbgAddr * @param {DbgAddrPDP11|null|undefined} dbgAddr
* @param {boolean} [fWrite] * @param {boolean} [fWrite]
* @param {number} [nb] number of bytes to check (1 or 2); default is 1 * @param {number} [nb] number of bytes to check (1 or 2); default is 1
* @return {number} is the corresponding linear address, or CPUDefPDP11.ADDR_INVALID * @return {number} is the corresponding linear address, or PDP11.ADDR_INVALID
*/ */
DebuggerPDP11.prototype.getAddr = function(dbgAddr, fWrite, nb) DebuggerPDP11.prototype.getAddr = function(dbgAddr, fWrite, nb)
{ {
var addr = dbgAddr && dbgAddr.addr; var addr = dbgAddr && dbgAddr.addr;
if (addr == null) { if (addr == null) {
addr = CPUDefPDP11.ADDR_INVALID; addr = PDP11.ADDR_INVALID;
} }
return addr; return addr;
}; };
@ -510,7 +509,7 @@ if (DEBUGGER) {
{ {
var b = 0xff; var b = 0xff;
var addr = this.getAddr(dbgAddr, false, 1); var addr = this.getAddr(dbgAddr, false, 1);
if (addr !== CPUDefPDP11.ADDR_INVALID) { if (addr !== PDP11.ADDR_INVALID) {
b = this.bus.getByteDirect(addr); b = this.bus.getByteDirect(addr);
if (inc) this.incAddr(dbgAddr, inc); if (inc) this.incAddr(dbgAddr, inc);
} }
@ -542,7 +541,7 @@ if (DEBUGGER) {
{ {
var w = 0xffff; var w = 0xffff;
var addr = this.getAddr(dbgAddr, false, 2); var addr = this.getAddr(dbgAddr, false, 2);
if (addr !== CPUDefPDP11.ADDR_INVALID) { if (addr !== PDP11.ADDR_INVALID) {
w = this.bus.getShortDirect(addr); w = this.bus.getShortDirect(addr);
if (inc) this.incAddr(dbgAddr, inc); if (inc) this.incAddr(dbgAddr, inc);
} }
@ -560,7 +559,7 @@ if (DEBUGGER) {
DebuggerPDP11.prototype.setByte = function(dbgAddr, b, inc) DebuggerPDP11.prototype.setByte = function(dbgAddr, b, inc)
{ {
var addr = this.getAddr(dbgAddr, true, 1); var addr = this.getAddr(dbgAddr, true, 1);
if (addr !== CPUDefPDP11.ADDR_INVALID) { if (addr !== PDP11.ADDR_INVALID) {
this.bus.setByteDirect(addr, b); this.bus.setByteDirect(addr, b);
if (inc) this.incAddr(dbgAddr, inc); if (inc) this.incAddr(dbgAddr, inc);
this.cpu.updateCPU(true); // we set fForce to true in case video memory was the target this.cpu.updateCPU(true); // we set fForce to true in case video memory was the target
@ -578,7 +577,7 @@ if (DEBUGGER) {
DebuggerPDP11.prototype.setShort = function(dbgAddr, w, inc) DebuggerPDP11.prototype.setShort = function(dbgAddr, w, inc)
{ {
var addr = this.getAddr(dbgAddr, true, 2); var addr = this.getAddr(dbgAddr, true, 2);
if (addr !== CPUDefPDP11.ADDR_INVALID) { if (addr !== PDP11.ADDR_INVALID) {
this.bus.setShortDirect(addr, w); this.bus.setShortDirect(addr, w);
if (inc) this.incAddr(dbgAddr, inc); if (inc) this.incAddr(dbgAddr, inc);
this.cpu.updateCPU(true); // we set fForce to true in case video memory was the target this.cpu.updateCPU(true); // we set fForce to true in case video memory was the target
@ -648,10 +647,10 @@ if (DEBUGGER) {
* parseAddr(sAddr, fCode, fNoChecks, fPrint) * parseAddr(sAddr, fCode, fNoChecks, fPrint)
* *
* Address evaluation and validation (eg, range checks) are no longer performed at this stage. That's * Address evaluation and validation (eg, range checks) are no longer performed at this stage. That's
* done later, by getAddr(), which returns CPUDefPDP11.ADDR_INVALID for invalid segments, out-of-range offsets, * done later, by getAddr(), which returns PDP11.ADDR_INVALID for invalid segments, out-of-range offsets,
* etc. The Debugger's low-level get/set memory functions verify all getAddr() results, but even if an * etc. The Debugger's low-level get/set memory functions verify all getAddr() results, but even if an
* invalid address is passed through to the Bus memory interfaces, the address will simply be masked with * invalid address is passed through to the Bus memory interfaces, the address will simply be masked with
* BusPDP11.nBusLimit; in the case of CPUDefPDP11.ADDR_INVALID, that will generally refer to the top of the physical * BusPDP11.nBusLimit; in the case of PDP11.ADDR_INVALID, that will generally refer to the top of the physical
* address space. * address space.
* *
* @this {DebuggerPDP11} * @this {DebuggerPDP11}
@ -770,7 +769,7 @@ if (DEBUGGER) {
if (sAddr) { if (sAddr) {
addr = this.getAddr(this.parseAddr(sAddr)); addr = this.getAddr(this.parseAddr(sAddr));
if (addr === CPUDefPDP11.ADDR_INVALID) { if (addr === PDP11.ADDR_INVALID) {
this.println("invalid address: " + sAddr); this.println("invalid address: " + sAddr);
return; return;
} }
@ -1709,7 +1708,7 @@ if (DEBUGGER) {
if (aBreak != this.aBreakExec) { if (aBreak != this.aBreakExec) {
var addr = this.getAddr(dbgAddr); var addr = this.getAddr(dbgAddr);
if (addr === CPUDefPDP11.ADDR_INVALID) { if (addr === PDP11.ADDR_INVALID) {
this.println("invalid address: " + this.toHexAddr(dbgAddr)); this.println("invalid address: " + this.toHexAddr(dbgAddr));
fSuccess = false; fSuccess = false;
} else { } else {
@ -2002,7 +2001,7 @@ if (DEBUGGER) {
var sBytes = ""; var sBytes = "";
var sLine = this.toHexAddr(dbgAddrIns) + ' '; var sLine = this.toHexAddr(dbgAddrIns) + ' ';
if (dbgAddrIns.addr !== CPUDefPDP11.ADDR_INVALID && dbgAddr.addr !== CPUDefPDP11.ADDR_INVALID) { if (dbgAddrIns.addr !== PDP11.ADDR_INVALID && dbgAddr.addr !== PDP11.ADDR_INVALID) {
do { do {
sBytes += str.toHex(this.getByte(dbgAddrIns, 1), 2); sBytes += str.toHex(this.getByte(dbgAddrIns, 1), 2);
if (dbgAddrIns.addr == null) break; if (dbgAddrIns.addr == null) break;
@ -2103,9 +2102,6 @@ if (DEBUGGER) {
{ {
var b; var b;
switch (sFlag) { switch (sFlag) {
case "IF":
b = this.cpu.getIF();
break;
case "SF": case "SF":
b = this.cpu.getSF(); b = this.cpu.getSF();
break; break;
@ -3236,26 +3232,6 @@ if (DEBUGGER) {
return false; return false;
}; };
/**
* doInt(sLevel)
*
* @this {DebuggerPDP11}
* @param {string} sLevel
* @return {boolean} true if success, false if error
*/
DebuggerPDP11.prototype.doInt = function(sLevel)
{
if (!this.cpu.getIF()) {
this.println("interrupts disabled (use rif=1 to enable)");
return false;
}
var nLevel = this.parseExpression(sLevel);
if (nLevel == null) return false;
this.println("requesting interrupt level " + nLevel);
this.cpu.requestINTR(nLevel);
return true;
};
/** /**
* doVar(sCmd) * doVar(sCmd)
* *
@ -3528,49 +3504,10 @@ if (DEBUGGER) {
fValid = true; fValid = true;
var sRegMatch = sReg.toUpperCase(); var sRegMatch = sReg.toUpperCase();
switch (sRegMatch) { switch (sRegMatch) {
case "A":
cpu.regA = w & 0xff;
break;
case "B":
cpu.regB = w & 0xff;
break;
case "BC":
cpu.regB = ((w >> 8) & 0xff);
/* falls through */
case "C":
cpu.regC = w & 0xff;
break;
case "D":
cpu.regD = w & 0xff;
break;
case "DE":
cpu.regD = ((w >> 8) & 0xff);
/* falls through */
case "E":
cpu.regE = w & 0xff;
break;
case "H":
cpu.regH = w & 0xff;
break;
case "HL":
cpu.regH = ((w >> 8) & 0xff);
/* falls through */
case "L":
cpu.regL = w & 0xff;
break;
case "SP":
cpu.setSP(w);
break;
case "PC": case "PC":
cpu.setPC(w); cpu.setPC(w);
this.dbgAddrNextCode = this.newAddr(cpu.getPC()); this.dbgAddrNextCode = this.newAddr(cpu.getPC());
break; break;
case "PS":
cpu.setPS(w);
break;
case "PSW":
cpu.setPSW(w);
break;
case "CF": case "CF":
if (w) cpu.setCF(); else cpu.clearCF(); if (w) cpu.setCF(); else cpu.clearCF();
break; break;
@ -3580,9 +3517,6 @@ if (DEBUGGER) {
case "SF": case "SF":
if (w) cpu.setSF(); else cpu.clearSF(); if (w) cpu.setSF(); else cpu.clearSF();
break; break;
case "IF":
if (w) cpu.setIF(); else cpu.clearIF();
break;
default: default:
this.println("unknown register: " + sReg); this.println("unknown register: " + sReg);
return; return;
@ -3668,8 +3602,9 @@ if (DEBUGGER) {
var dbgAddr = this.newAddr(this.cpu.getPC()); var dbgAddr = this.newAddr(this.cpu.getPC());
var bOpcode = this.getByte(dbgAddr); var bOpcode = this.getByte(dbgAddr);
/*
switch (bOpcode) { switch (bOpcode) {
case CPUDefPDP11.OPCODE.CALL: case PDP11.OPCODE.CALL:
if (fCallStep) { if (fCallStep) {
this.nStep = nStep; this.nStep = nStep;
this.incAddr(dbgAddr, 3); this.incAddr(dbgAddr, 3);
@ -3678,6 +3613,7 @@ if (DEBUGGER) {
default: default:
break; break;
} }
*/
if (this.nStep) { if (this.nStep) {
this.setTempBreakpoint(dbgAddr); this.setTempBreakpoint(dbgAddr);
@ -4091,13 +4027,6 @@ if (DEBUGGER) {
if (!this.doIf(sCmd.substr(2), fQuiet)) { if (!this.doIf(sCmd.substr(2), fQuiet)) {
result = false; result = false;
} }
break;
}
if (asArgs[0] == "int") {
if (!this.doInt(asArgs[1])) {
result = false;
}
break;
} }
break; break;
case 'k': case 'k':

View file

@ -93,9 +93,83 @@ var PDP11 = {
PRIVATE: PRIVATE, // shared PRIVATE: PRIVATE, // shared
TYPEDARRAYS: TYPEDARRAYS, TYPEDARRAYS: TYPEDARRAYS,
SITEHOST: SITEHOST, // shared SITEHOST: SITEHOST, // shared
XMLVERSION: XMLVERSION // shared XMLVERSION: XMLVERSION, // shared
/*
* CPU model numbers (supported)
*/
MODEL_1145: 1145,
MODEL_1170: 1170,
/*
* This constant is used to mark points in the code where the physical address being returned
* is invalid and should not be used.
*
* In a 32-bit CPU, -1 (ie, 0xffffffff) could actually be a valid address, so consider changing
* ADDR_INVALID to NaN or null (which is also why all ADDR_INVALID tests should use strict equality
* operators).
*
* The main reason I'm NOT using NaN or null now is my concern that, by mixing non-numbers
* (specifically, values outside the range of signed 32-bit integers), performance may suffer.
*
* WARNING: Like many of the properties defined here, ADDR_INVALID is a common constant, which the
* Closure Compiler will happily inline (with or without @const annotations; in fact, I've yet to
* see a @const annotation EVER improve automatic inlining). However, if you don't make ABSOLUTELY
* certain that this file is included BEFORE the first reference to any of these properties, that
* automatic inlining will no longer occur.
*/
ADDR_INVALID: -1,
/*
* Processor Status flag definitions (stored in regPS)
*/
PS: {
CF: 0x0001, // bit 0: Carry Flag
OF: 0x0002, // bit 1: Overflow Flag
ZF: 0x0004, // bit 2: Zero Flag
SF: 0x0008, // bit 3: Sign Flag
TF: 0x0010, // bit 4: Trap Flag
PRI: 0x00E0, // bits 5-7: Priority
UNUSED: 0x0700, // bits 8-10: unused
REGSET: 0x0800, // bit 11: Register Set
PMODE: 0x3000, // bits 12-13: Previous Mode
CMODE: 0xC000 // bits 14-15: Current Mode
},
/*
* Interrupt-related flags (stored in intFlags)
*/
INTFLAG: {
NONE: 0x0000,
INTR: 0x00ff, // mask for 8 bits, representing interrupt levels 0-7
HALT: 0x0100 // halt requested; see opHLT()
},
/*
* Opcode definitions
*/
OPCODE: {
// to be continued....
},
IOBASE_VIRT: 0x00E000, /*000160000*/
IOBASE_18BIT: 0x03E000, /*000760000*/
IOBASE_UNIBUS: 0x3C0000, /*017000000*/
IOBASE_22BIT: 0x3FE000, /*017760000*/
MAX_MEMORY: 0x3C0000 - 16384, // Maximum memory address (need less memory for BSD 2.9 boot)
MAX_ADDRESS: 0x400000, /*020000000*/ // Register addresses are above 22 bit addressing
BYTE_MODE: 1,
READ_MODE: 2,
WRITE_MODE: 4,
MODIFY_WORD: 2 | 4, // READ_MODE | WRITE_MODE
MODIFY_BYTE: 1 | 2 | 4 // READ_MODE | WRITE_MODE | BYTE_MODE
}; };
/*
* PS "arithmetic" flags are NOT stored in the PS register; they are maintained across separate result registers,
* hence the RESULT designation.
*/
PDP11.PS.RESULT = (PDP11.PS.CF | PDP11.PS.ZF | PDP11.PS.SF);
if (NODE) { if (NODE) {
global.APPCLASS = APPCLASS; global.APPCLASS = APPCLASS;
global.APPNAME = APPNAME; global.APPNAME = APPNAME;

View file

@ -36,7 +36,7 @@
if (NODE) { if (NODE) {
var str = require("../../shared/lib/strlib"); var str = require("../../shared/lib/strlib");
var Component = require("../../shared/lib/component"); var Component = require("../../shared/lib/component");
var CPUDefPDP11 = require("./cpudef"); var PDP11 = require("./defines");
var MessagesPDP11 = require("./messages"); var MessagesPDP11 = require("./messages");
} }

View file

@ -40,7 +40,6 @@ if (NODE) {
var Component = require("../../shared/lib/component"); var Component = require("../../shared/lib/component");
var PDP11 = require("./defines"); var PDP11 = require("./defines");
var BusPDP11 = require("./bus"); var BusPDP11 = require("./bus");
var CPUDefPDP11 = require("./cpudef");
var MemoryPDP11 = require("./memory"); var MemoryPDP11 = require("./memory");
} }

View file

@ -39,7 +39,6 @@ if (NODE) {
var DumpAPI = require("../../shared/lib/dumpapi"); var DumpAPI = require("../../shared/lib/dumpapi");
var Component = require("../../shared/lib/component"); var Component = require("../../shared/lib/component");
var PDP11 = require("./defines"); var PDP11 = require("./defines");
var CPUDefPDP11 = require("./cpudef");
var MemoryPDP11 = require("./memory"); var MemoryPDP11 = require("./memory");
} }

View file

@ -170,7 +170,6 @@
"./modules/shared/lib/weblib.js", "./modules/shared/lib/weblib.js",
"./modules/shared/lib/component.js", "./modules/shared/lib/component.js",
"./modules/pdp11/lib/defines.js", "./modules/pdp11/lib/defines.js",
"./modules/pdp11/lib/cpudef.js",
"./modules/pdp11/lib/messages.js", "./modules/pdp11/lib/messages.js",
"./modules/pdp11/lib/panel.js", "./modules/pdp11/lib/panel.js",
"./modules/pdp11/lib/bus.js", "./modules/pdp11/lib/bus.js",

View file

@ -21,225 +21,225 @@ function lb(a,b){if(a.C.Kb)return a.C.gb&&(a.C.gb=!1),a.C.Kb=!1;if(a.C.ib)return
var rb="undefined"!==typeof ArrayBuffer,sb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var rb="undefined"!==typeof ArrayBuffer,sb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){w.call(this,"Panel",a,ub)}bb(ub);m=ub.prototype; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){w.call(this,"Panel",a,ub)}bb(ub);m=ub.prototype;
m.na=function(a,b,c,d){return this.B&&this.B.na(a,b,c,d)||this.b&&this.b.na(a,b,c,d)||this.K&&this.K.na(a,b,c,d)||this.H&&this.H.na(a,b,c,d)?!0:this.parent.na.call(this,a,b,c,d)};m.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.K=vb(a,"Keyboard")};m.Da=function(a,b){b||wb();return!0};m.Ha=function(){return!0};m.Ia=function(){};function wb(){for(var a=!1,b=C(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=fb(e.id);f||(a=!0,f=new ub(e));hb(f,d);a&&E(f)}}Ma(wb); m.na=function(a,b,c,d){return this.B&&this.B.na(a,b,c,d)||this.b&&this.b.na(a,b,c,d)||this.K&&this.K.na(a,b,c,d)||this.H&&this.H.na(a,b,c,d)?!0:this.parent.na.call(this,a,b,c,d)};m.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.K=vb(a,"Keyboard")};m.Da=function(a,b){b||wb();return!0};m.Ha=function(){return!0};m.Ia=function(){};function wb(){for(var a=!1,b=C(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=fb(e.id);f||(a=!0,f=new ub(e));hb(f,d);a&&E(f)}}Ma(wb);
function xb(a,b,c){w.call(this,"Bus",a,xb);this.b=b;this.H=c;this.G=a.busWidth||16;this.L=Math.pow(2,this.G);this.w=this.L-1|0;this.qa=16>=this.G?10:20>=this.G?12:24>=this.G?14:15;this.Ga=1<<this.qa;this.M=this.Ga>>2;this.u=this.Ga-1;this.J=this.L/this.Ga|0;this.K=this.J-1;this.B=[];this.j=[];this.D=this.I=!1;this.O=[];this.P=[];a=new F;yb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;E(this)}bb(xb);m=xb.prototype;m.reset=function(){};m.Da=function(a,b){b||this.reset();return!0}; function xb(a,b,c){w.call(this,"Bus",a,xb);this.b=b;this.H=c;this.G=a.busWidth||16;this.L=Math.pow(2,this.G);this.w=this.L-1|0;this.qa=16>=this.G?10:20>=this.G?12:24>=this.G?14:15;this.Ga=1<<this.qa;this.M=this.Ga>>2;this.u=this.Ga-1;this.J=this.L/this.Ga|0;this.K=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new F;yb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;E(this)}bb(xb);m=xb.prototype;m.reset=function(){};m.Da=function(a,b){b||this.reset();return!0};
function zb(a,b,c,d){for(var e=b,f=c,h=e>>>a.qa;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ga,l=a.Ga-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.yb+=g.F-e,g.F=e,!0;if(e>=g.F+g.yb){l=g.size-(e-k);l>f&&(l=f);g.yb=e-g.F+l;e=k+a.Ga;f-=l;h++;continue}}return Ab(1,e,f)}e=new F(e,l,a.Ga,d);yb(e,a.H,g);a.X[h++]=e;e=k+a.Ga;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Bb[d]+" at "+t(b)),!0):Ab(2,b,c)}m.$=function(a){return this.X[(a&this.w)>>>this.qa].lb(a&this.u,a)}; function zb(a,b,c,d){for(var e=b,f=c,h=e>>>a.qa;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ga,l=a.Ga-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.yb+=g.F-e,g.F=e,!0;if(e>=g.F+g.yb){l=g.size-(e-k);l>f&&(l=f);g.yb=e-g.F+l;e=k+a.Ga;f-=l;h++;continue}}return Ab(1,e,f)}e=new F(e,l,a.Ga,d);yb(e,a.H,g);a.X[h++]=e;e=k+a.Ga;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Bb[d]+" at "+t(b)),!0):Ab(2,b,c)}m.$=function(a){return this.X[(a&this.w)>>>this.qa].lb(a&this.u,a)};
function Cb(a,b){return a.X[(b&a.w)>>>a.qa].wb(b&a.u,b)}m.Sa=function(a){var b=a&this.u,c=(a&this.w)>>>this.qa;return b!=this.u?this.X[c].tc(b,a):this.X[c++].lb(b,a)|this.X[c&this.K].lb(0,a+1)<<8};function Db(a,b){var c=b&a.u,d=(b&a.w)>>>a.qa;return c!=a.u?a.X[d].Ob(c,b):a.X[d++].wb(c,b)|a.X[d&a.K].wb(0,b+1)<<8}m.ua=function(a,b){this.X[(a&this.w)>>>this.qa].nb(a&this.u,b&255,a)};function Fb(a,b,c){a.X[(b&a.w)>>>a.qa].zb(b&a.u,c&255,b)} function Cb(a,b){return a.X[(b&a.w)>>>a.qa].wb(b&a.u,b)}m.Sa=function(a){var b=a&this.u,c=(a&this.w)>>>this.qa;return b!=this.u?this.X[c].tc(b,a):this.X[c++].lb(b,a)|this.X[c&this.K].lb(0,a+1)<<8};function Db(a,b){var c=b&a.u,d=(b&a.w)>>>a.qa;return c!=a.u?a.X[d].Ob(c,b):a.X[d++].wb(c,b)|a.X[d&a.K].wb(0,b+1)<<8}m.ua=function(a,b){this.X[(a&this.w)>>>this.qa].nb(a&this.u,b&255,a)};function Eb(a,b,c){a.X[(b&a.w)>>>a.qa].zb(b&a.u,c&255,b)}
m.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.qa;c!=this.u?this.X[d].yc(c,b&65535,a):(this.X[d++].nb(c,b&255,a),this.X[d&this.K].nb(0,b>>8&255,a+1))};function Gb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?v("Input port "+t(k)+" already registered"):f.B[k]=[g,!1]}} m.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.qa;c!=this.u?this.X[d].yc(c,b&65535,a):(this.X[d++].nb(c,b&255,a),this.X[d&this.K].nb(0,b>>8&255,a+1))};function Gb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?v("Input port "+t(k)+" already registered"):f.B[k]=[g,!1]}}
function Ib(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.H&&a.D!=h[1]&&Rb(a.H,b,l)):a.H&&(ib(a.H,a,b,null,c),a.D&&Rb(a.H,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Sb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]} function Ib(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.H&&a.I!=h[1]&&Jb(a.H,b,l)):a.H&&(ib(a.H,a,b,null,c),a.I&&Jb(a.H,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Sb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}
function Tb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?v("Output port "+t(k)+" already registered"):f.j[k]=[g,!1]}}function Ub(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.I!=h[1]&&Vb(a.H,b,k)}else a.H&&(ib(a.H,a,b,k,d),a.I&&Vb(a.H,b,k));f+=g<<3;b+=g;e-=g}} function Tb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?v("Output port "+t(k)+" already registered"):f.j[k]=[g,!1]}}function Ub(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.D!=h[1]&&Vb(a.H,b,k)}else a.H&&(ib(a.H,a,b,k,d),a.D&&Vb(a.H,b,k));f+=g<<3;b+=g;e-=g}}
function Ab(a,b,c){v("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Wb;if(rb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb; function Ab(a,b,c){v("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Wb;if(rb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb;
function F(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.yb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;yb(this);this.Na=this.ec=!1;if(c)if(rb)this.D=new ArrayBuffer(c),this.I=new DataView(this.D,0,c),this.u=new Uint8Array(this.D,0,c),this.K=new Uint16Array(this.D,0,c>>1),this.b=new Int32Array(this.D,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Bb=["NONE","RAM","ROM","VID","H/W"],Zb=0; function F(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.yb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;yb(this);this.Na=this.ec=!1;if(c)if(rb)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.K=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Bb=["NONE","RAM","ROM","VID","H/W"],Zb=0;
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.I.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.I.setInt32(b<<2,a[b],!0);else this.b=a;return this.Na=!0}return!1},Za:function(a,b){b?0===this.j++&&fc(this,gc,!1):0===this.B++&&hc(this,gc,!1)},J:function(){this.H&&kb(this.H,129)&&this.H.message("attempt to read invalid block %"+n(this.F),!0); F.prototype={constructor:F,parent:null,save:function(){var a,b;if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Na=!0}return!1},Za:function(a,b){b?0===this.j++&&fc(this,gc,!1):0===this.B++&&hc(this,gc,!1)},J:function(){this.H&&kb(this.H,129)&&this.H.message("attempt to read invalid block %"+n(this.F),!0);
return 255},w:function(a,b){this.H&&kb(this.H,129)&&this.H.message("attempt to write "+t(b)+" to invalid block %"+n(this.F),!0)},L:function(a,b){return this.lb(a++,b++)|this.lb(a,b)<<8},G:function(a,b,c){this.nb(a++,b&255,c++);this.nb(a,b>>8,c)},Z:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ea:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ia:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},ya:function(a, return 255},w:function(a,b){this.H&&kb(this.H,129)&&this.H.message("attempt to write "+t(b)+" to invalid block %"+n(this.F),!0)},L:function(a,b){return this.lb(a++,b++)|this.lb(a,b)<<8},G:function(a,b,c){this.nb(a++,b&255,c++);this.nb(a,b>>8,c)},Z:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ea:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ia:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},ya:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.oa(!0)}return this.wb(a,b)},ba:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.oa(!0)}return this.Ob(a,b)},ha:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.I)&&d.oa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},ra:function(a, b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.oa(!0)}return this.wb(a,b)},ba:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.oa(!0)}return this.Ob(a,b)},ha:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.D)&&d.oa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},ra:function(a,
b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,2,d.I)&&d.oa(!0)}this.N?this.w(a,b,c):this.Rb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},aa:function(a){return this.I.getUint16(a,!0)},da:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ga:function(a,b){this.u[a]=b;this.Na=!0},Ya:function(a,b){this.u[a]=b;this.Na=!0},ka:function(a,b){this.I.setUint16(a,b,!0);this.Na=!0},va:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Na=!0}}; b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.oa(!0)}this.N?this.w(a,b,c):this.Rb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},aa:function(a){return this.D.getUint16(a,!0)},da:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ga:function(a,b){this.u[a]=b;this.Na=!0},Ya:function(a,b){this.u[a]=b;this.Na=!0},ka:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},va:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Na=!0}};
function yb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?0===--a.j&&(a.nb=a.N?a.w:a.zb,a.yc=a.N?a.G:a.Rb):0===--a.B&&(a.lb=a.wb,a.tc=a.Ob)}function fc(a,b,c){c&&a.j||(a.nb=!a.N&&b[2]||a.w,a.yc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[2]||a.w,a.Rb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.lb=b[0]||a.J,a.tc=b[1]||a.L);if(c||void 0===c)a.wb=b[0]||a.J,a.Ob=b[1]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)} function yb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?0===--a.j&&(a.nb=a.N?a.w:a.zb,a.yc=a.N?a.G:a.Rb):0===--a.B&&(a.lb=a.wb,a.tc=a.Ob)}function fc(a,b,c){c&&a.j||(a.nb=!a.N&&b[2]||a.w,a.yc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[2]||a.w,a.Rb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.lb=b[0]||a.J,a.tc=b[1]||a.L);if(c||void 0===c)a.wb=b[0]||a.J,a.Ob=b[1]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)}
var kc=[],ec=[F.prototype.Z,F.prototype.ea,F.prototype.ia,F.prototype.ya],gc=[F.prototype.O,F.prototype.ba,F.prototype.ha,F.prototype.ra];if(rb)var dc=[F.prototype.M,F.prototype.aa,F.prototype.ga,F.prototype.ka],cc=[F.prototype.P,F.prototype.da,F.prototype.Ya,F.prototype.va]; var kc=[],ec=[F.prototype.Z,F.prototype.ea,F.prototype.ia,F.prototype.ya],gc=[F.prototype.O,F.prototype.ba,F.prototype.ha,F.prototype.ra];if(rb)var dc=[F.prototype.M,F.prototype.aa,F.prototype.ga,F.prototype.ka],cc=[F.prototype.P,F.prototype.da,F.prototype.Ya,F.prototype.va];
function lc(a,b){w.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Z=a.cycles||b;this.Ra=c;this.ga=Math.round(this.Z/1E4)/100;this.bb=this.ga*this.Ra;this.C.za=!1;this.C.Lb=!1;this.C.dc=a.autoStart;this.C.fc=!1;this.C.hb=!1;this.tb=this.O=0;this.ub=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.D=[];this.Ea=this.cb.bind(this);E(this)}bb(lc);var mc=["power","reset"];m=lc.prototype; function lc(a,b){w.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Z=a.cycles||b;this.Ra=c;this.ga=Math.round(this.Z/1E4)/100;this.bb=this.ga*this.Ra;this.C.za=!1;this.C.Lb=!1;this.C.dc=a.autoStart;this.C.fc=!1;this.C.hb=!1;this.tb=this.O=0;this.ub=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ea=this.cb.bind(this);E(this)}bb(lc);var mc=["power","reset"];m=lc.prototype;
m.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.na(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.dc="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1}; m.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.na(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.dc="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Da=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;Bc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ia();if(c.ya){var d=c.ya;c.ya=null;Cc(c,d)}}else this.g("No debugger detected")}Dc(this);return!0};m.Ha=function(a){return a?this.save():!0};function Ec(a){(a.C.dc||!a.H&&void 0===a.N.run)&&a.cb(!0)}m.gc=function(){return 0}; m.Da=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ia();if(c.ya){var d=c.ya;c.ya=null;Cc(c,d)}}else this.g("No debugger detected")}Dc(this);return!0};m.Ha=function(a){return a?this.save():!0};function Ec(a){(a.C.dc||!a.H&&void 0===a.N.run)&&a.cb(!0)}m.gc=function(){return 0};
function Bc(a){void 0===a.ub&&(a.ub=0);void 0===a.jb&&(a.jb=-1);void 0===a.kb&&(a.kb=-1);a.C.hb=0<=a.ub&&0<a.jb;a.C.hb&&(a.tb=0,a.O=a.ub-a.M)}function Fc(a,b){if(a.C.hb){var c=!1;a.tb=a.tb+a.gc()|0;a.O-=b;0>=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,Bc(a),a.oa(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+n(a.tb))}} function pc(a){void 0===a.ub&&(a.ub=0);void 0===a.jb&&(a.jb=-1);void 0===a.kb&&(a.kb=-1);a.C.hb=0<=a.ub&&0<a.jb;a.C.hb&&(a.tb=0,a.O=a.ub-a.M)}function Fc(a,b){if(a.C.hb){var c=!1;a.tb=a.tb+a.gc()|0;a.O-=b;0>=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,pc(a),a.oa(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+n(a.tb))}}
m.na=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.wa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.Ma);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.wa);c++);c==g.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.C.Ma?"powered yet":"ready yet"+(b.Fb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.za?d.oa():d.cb())};a=!0;break; m.na=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.wa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.Ma);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.wa);c++);c==g.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.C.Ma?"powered yet":"ready yet"+(b.Fb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.za?d.oa():d.cb())};a=!0;break;
case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Hc(d,d.Ra<<1,!0)},c.textContent=this.bb.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b,c){a.M+=b;c&&(a.j=a.b=0)}function Jc(a,b){var c=1;b&&1<a.Ra&&a.J&&(c=a.J/a.ga);a.va=Math.round(1E3/30);a.ea=Math.floor(a.Z/30*c);b||(a.P=a.ea);a.ha=0}function Gc(a){return a.M+a.K+a.j-a.b}function oc(a){a.J=0;a.ya=0;a.M=a.K=a.j=a.b=0;Bc(a);Hc(a,1)} case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Hc(d,d.Ra<<1,!0)},c.textContent=this.bb.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Jc(a,b){var c=1;b&&1<a.Ra&&a.K&&(c=a.K/a.ga);a.va=Math.round(1E3/30);a.ea=Math.floor(a.Z/30*c);b||(a.P=a.ea);a.ha=0}function Gc(a){return a.M+a.G+a.L-a.b}function oc(a){a.K=0;a.ya=0;a.M=a.G=a.L=a.b=0;pc(a);Hc(a,1)}
function Hc(a,b,c){var d=!1;if(void 0!==b){.8>a.J/a.bb?b=1:d=!0;a.Ra=b;b=a.ga*a.Ra;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Ic(a,a.K);a.K=0;a.G=pa();a.L=0;Jc(a);return d}function Kc(a,b){var c=a.D.length;a.D.push([-1,b]);return c}function Lc(a,b,c){var d=-1;0<=b&&b<a.D.length&&(d=a.Z*a.Ra/1E3*c,a.D[b][0]=d)} function Hc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.bb?b=1:d=!0;a.Ra=b;b=a.ga*a.Ra;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Ic(a,a.G);a.G=0;a.D=pa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Z*a.Ra/1E3*c,a.w[b][0]=d)}function Mc(a){a.L-=a.b;a.b=0}
m.cb=function(a){if(lb(this,!0)){if(!this.C.za){Hc(this);this.B&&this.B.start(this.G,Gc(this));this.C.za=!0;this.C.Lb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ia(!0),a&&this.B.xb(!0))}this.ha>=this.Z&&Jc(this,!0);this.aa=0;this.da=pa();this.L&&(a=this.da-this.L,a>this.va&&(this.G+=a,this.G>this.da&&(this.G=this.da)));try{do{for(var c=this.C.hb?1:this.ea,d=this.D.length-1;0<=d;d--){var e=this.D[d];0>e[0]||c>e[0]&&(c=e[0])}this.mb(c);var f=this.j-this.b;a= m.cb=function(a){if(lb(this,!0)){if(!this.C.za){Hc(this);this.B&&this.B.start(this.D,Gc(this));this.C.za=!0;this.C.Lb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ia(!0),a&&this.B.xb(!0))}this.ha>=this.Z&&Jc(this,!0);this.aa=0;this.da=pa();this.J&&(a=this.da-this.J,a>this.va&&(this.D+=a,this.D>this.da&&(this.D=this.da)));try{do{for(var c=this.C.hb?1:this.ea,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.mb(c);var f=this.L-this.b;a=
f;for(var h=this.D.length-1;0<=h;h--){var g=this.D[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.aa+=f;this.K+=f;Ic(this,0,!0);Fc(this,f);this.P-=f;if(0>=this.P){this.P+=this.ea;15<=++this.ya&&(this.B&&this.B.Ia(),this.ya=0);break}}while(this.C.za)}catch(k){this.oa();Dc(this);this.B&&this.B.stop(pa(),Gc(this));lb(this,!1);qb(this,k.stack||k.message);return}c=setTimeout;d=this.Ea;this.L=pa();e=this.va;this.aa&&(e=Math.round(e*this.aa/this.ea));e=e-(this.L-this.da);if(f=this.L-this.G)this.J=Math.round(this.K/ f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.aa+=f;this.G+=f;Ic(this,0,!0);Fc(this,f);this.P-=f;if(0>=this.P){this.P+=this.ea;15<=++this.ya&&(this.B&&this.B.Ia(),this.ya=0);break}}while(this.C.za)}catch(k){this.oa();Dc(this);this.B&&this.B.stop(pa(),Gc(this));lb(this,!1);qb(this,k.stack||k.message);return}c=setTimeout;d=this.Ea;this.J=pa();e=this.va;this.aa&&(e=Math.round(e*this.aa/this.ea));e=e-(this.J-this.da);if(f=this.J-this.D)this.K=Math.round(this.G/
(10*f))/100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.J<this.bb)-1E3>e&&(this.G-=e),e=0;this.ha+=this.aa;this.L+=e;c(d,e)}else Dc(this),this.B&&this.B.stop(pa(),Gc(this))};m.mb=function(){return 0};m.oa=function(a){mb(this,!0);this.j-=this.b;this.b=0;Ic(this,this.K);this.K=0;if(this.C.za){this.C.za=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.Eb=a};function Dc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ia(b)}} (10*f))/100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.K<this.bb)-1E3>e&&(this.D-=e),e=0;this.ha+=this.aa;this.J+=e;c(d,e)}else Dc(this),this.B&&this.B.stop(pa(),Gc(this))};m.mb=function(){return 0};m.oa=function(a){mb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.C.za){this.C.za=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.Eb=a};function Dc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Nc(c.G[d],b);a.B.Ia(b)}}
function Nc(a){this.nc=+a.model||8080;lc.call(this,a,1E6);this.ia=Oc;oc(this);this.C.Eb=this.C.hd=!1;this.ra=0;this.ba=[];this.ka=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ba.push(b)}m=Nc.prototype;m.reset=function(){this.C.za&&this.oa();Pc(this);oc(this);this.C.ib=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Y=0;a.ma=0;G(a,a.ka);Rc(a,0);a.w=0}function Sc(a,b){a.ka=b;G(a,b)} function Oc(a){this.nc=+a.model||8080;lc.call(this,a,1E6);this.ia=Pc;oc(this);this.C.Eb=this.C.hd=!1;this.ra=0;this.ba=[];this.ka=0;Qc(this)}bb(Oc,lc);function Rc(a,b){a.ba.push(b)}m=Oc.prototype;m.reset=function(){this.C.za&&this.oa();Qc(this);oc(this);this.C.ib=!1;this.parent.reset.call(this)};function Qc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Y=0;a.ma=0;G(a,a.ka);Sc(a,0);a.j=0}function Tc(a,b){a.ka=b;G(a,b)}
m.gc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Y|0;return a=a+this.ma+this.R+Tc(this)|0}; m.gc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Y|0;return a=a+this.ma+this.R+Uc(this)|0};
m.save=function(){var a=new H(this);I(a,0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Y,this.ma,this.R,Tc(this)]);I(a,1,[this.w,this.M,this.Ra]);for(var b=this.u,c=0,d=[],e=0;e<b.J;e++){var f=b.X[e];if(f.Na||f.ec){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;l[k++]=q-g;l[k++]=p;g=q}if(l.length<f.length){f=l;break a}}d[h]=f}}I(a,2,d);return a.data()}; m.save=function(){var a=new H(this);I(a,0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Y,this.ma,this.R,Uc(this)]);I(a,1,[this.j,this.M,this.Ra]);for(var b=this.u,c=0,d=[],e=0;e<b.J;e++){var f=b.X[e];if(f.Na||f.ec){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;l[k++]=q-g;l[k++]=p;g=q}if(l.length<f.length){f=l;break a}}d[h]=f}}I(a,2,d);return a.data()};
m.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Y=b[6];this.ma=b[7]&65535;G(this,b[8]);Rc(this,b[9]);b=a[1];this.w=b[0];this.M=b[1];Hc(this,b[3]);a:{b=this.u;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.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.X[d];if(!f||!f.restore(e)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; m.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Y=b[6];this.ma=b[7]&65535;G(this,b[8]);Sc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Hc(this,b[3]);a:{b=this.u;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.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.X[d];if(!f||!f.restore(e)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.na=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.N[b]=c;this.ra++;d=!0;break;default:d=this.parent.na.call(this,a,b,c)}return d};function Uc(a){return a.S<<8|a.T}function Vc(a,b){a.S=b>>8&255;a.T=b&255}function Wc(a){return a.U<<8|a.V}function Xc(a,b){a.U=b>>8&255;a.V=b&255}function J(a){return a.W<<8|a.Y} m.na=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.N[b]=c;this.ra++;d=!0;break;default:d=this.parent.na.call(this,a,b,c)}return d};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function J(a){return a.W<<8|a.Y}
function Yc(a,b){a.W=b>>8&255;a.Y=b&255}function G(a,b){a.R=b&65535}function Zc(a){return a.ca&256?1:0}function $c(a,b){a.ca=a.ca&255|b}function ad(a){return sb[a.fa&255]?4:0}function bd(a){return(a.fa^a.xa)&16?16:0}function cd(a){return a.ca&255?0:64}function dd(a){return a.fa&128?128:0}function Tc(a){return a.ta&-214|dd(a)|cd(a)|bd(a)|ad(a)|Zc(a)}function Rc(a,b){a.ca=a.fa=a.xa=0;b&1&&(a.ca|=256);b&4||(a.fa|=1);b&16&&(a.xa|=16);b&64||(a.ca|=255);b&128&&(a.fa^=192);a.ta=a.ta&-726|b&512|2} function Zc(a,b){a.W=b>>8&255;a.Y=b&255}function G(a,b){a.R=b&65535}function $c(a){return a.ca&256?1:0}function ad(a,b){a.ca=a.ca&255|b}function bd(a){return sb[a.fa&255]?4:0}function cd(a){return(a.fa^a.xa)&16?16:0}function dd(a){return a.ca&255?0:64}function ed(a){return a.fa&128?128:0}function Uc(a){return a.ta&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Sc(a,b){a.ca=a.fa=a.xa=0;b&1&&(a.ca|=256);b&4||(a.fa|=1);b&16&&(a.xa|=16);b&64||(a.ca|=255);b&128&&(a.fa^=192);a.ta=a.ta&-726|b&512|2}
function ed(a,b){a.xa=a.i^b;return a.fa=(a.ca=a.i+b)&255}function fd(a,b){a.xa=a.i^b;return a.fa=(a.ca=a.i+b+(a.ca&256?1:0))&255}function gd(a,b){a.ca=a.fa=a.xa=a.i&b;(a.i|b)&8&&(a.xa^=16);return a.ca}function hd(a,b){a.xa=b^255;b=a.fa=b+255&255;a.ca=a.ca&-256|b;return b}function id(a,b){a.xa=b;b=a.fa=b+1&255;a.ca=a.ca&-256|b;return b}function jd(a,b){return a.fa=a.ca=a.xa=a.i|b}function K(a,b){b^=255;a.xa=a.i^b;return a.fa=(a.ca=a.i+b+1^256)&255} function fd(a,b){a.xa=a.i^b;return a.fa=(a.ca=a.i+b)&255}function gd(a,b){a.xa=a.i^b;return a.fa=(a.ca=a.i+b+(a.ca&256?1:0))&255}function hd(a,b){a.ca=a.fa=a.xa=a.i&b;(a.i|b)&8&&(a.xa^=16);return a.ca}function id(a,b){a.xa=b^255;b=a.fa=b+255&255;a.ca=a.ca&-256|b;return b}function jd(a,b){a.xa=b;b=a.fa=b+1&255;a.ca=a.ca&-256|b;return b}function kd(a,b){return a.fa=a.ca=a.xa=a.i|b}function K(a,b){b^=255;a.xa=a.i^b;return a.fa=(a.ca=a.i+b+1^256)&255}
function Dd(a,b){b^=255;a.xa=a.i^b;return a.fa=(a.ca=a.i+b+(a.ca&256?0:1)^256)&255}function Ed(a,b){return a.fa=a.ca=a.xa=a.i^b}m.$=function(a){return this.u.$(a)};m.ua=function(a,b){this.u.ua(a,b)};function L(a){var b=a.$(a.R);G(a,a.R+1);return b}function M(a){var b=a.u.Sa(a.R);G(a,a.R+2);return b}function O(a){var b=a.u.Sa(a.ma);a.ma=a.ma+2&65535;return b}function P(a,b){a.ma=a.ma-2&65535;a.u.Ib(a.ma,b)} function Ed(a,b){b^=255;a.xa=a.i^b;return a.fa=(a.ca=a.i+b+(a.ca&256?0:1)^256)&255}function Fd(a,b){return a.fa=a.ca=a.xa=a.i^b}m.$=function(a){return this.u.$(a)};m.ua=function(a,b){this.u.ua(a,b)};function L(a){var b=a.$(a.R);G(a,a.R+1);return b}function M(a){var b=a.u.Sa(a.R);G(a,a.R+2);return b}function O(a){var b=a.u.Sa(a.ma);a.ma=a.ma+2&65535;return b}function P(a,b){a.ma=a.ma-2&65535;a.u.Ib(a.ma,b)}
function Fd(a){if(a.b&&a.w&255&&a.ta&512){for(var b=0;8>b&&!(a.w&1<<b);b++);a.w&=~(0>b?255:1<<b);a.ta&=-513;a.w&=-257;a.ia[199|b<<3].call(a)}return a.w&256?(a.j-=a.b,a.b=0,!1):!0}function Gd(a,b){a.w|=1<<b;a.ta&512&&(a.j-=a.b,a.b=0)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(qb(a,"Value for "+b+" is invalid"),a.oa()),c=!a.C.za||a.C.fc?n(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))} function Gd(a){if(a.b&&a.j&255&&a.ta&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ta&=-513;a.j&=-257;a.ia[199|b<<3].call(a)}return a.j&256?(Mc(a),!1):!0}function Hd(a,b){a.j|=1<<b;a.ta&512&&Mc(a)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(qb(a,"Value for "+b+" is invalid"),a.oa()),c=!a.C.za||a.C.fc?n(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
m.Ia=function(a){this.ra&&(a||!this.C.za||this.C.fc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Uc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Wc(this),4),R(this,"H",this.W),R(this,"L",this.Y),R(this,"HL",J(this),4),R(this,"SP",this.ma,4),R(this,"PC",this.R,4),a=Tc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent= m.Ia=function(a){this.ra&&(a||!this.C.za||this.C.fc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Vc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Xc(this),4),R(this,"H",this.W),R(this,"L",this.Y),R(this,"HL",J(this),4),R(this,"SP",this.ma,4),R(this,"PC",this.R,4),a=Uc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
this.C.za&&this.J?this.J.toFixed(2)+"Mhz":"Stopped"};m.mb=function(a){this.C.Eb=!0;var b=this.C.hd=this.H&&Hd(this.H),c=a?this.C.Lb?0:1:-1;this.C.Lb=!1;this.j=this.b=a;if(Fd(this)){do{if(b){if(Id(this.H,this.R,c)){this.oa();break}c=1}this.ia[L(this)].call(this)}while(0<this.b)}return this.C.Eb?this.j-this.b:void 0===this.C.Eb?0:-1};Ma(function(){for(var a=C(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Nc(d);hb(d,c)}});function Jd(){this.b-=4} this.C.za&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};m.mb=function(a){this.C.Eb=!0;var b=this.C.hd=this.H&&Id(this.H),c=a?this.C.Lb?0:1:-1;this.C.Lb=!1;this.L=this.b=a;if(Gd(this)){do{if(b){if(Jd(this.H,this.R,c)){this.oa();break}c=1}this.ia[L(this)].call(this)}while(0<this.b)}return this.C.Eb?this.L-this.b:void 0===this.C.Eb?0:-1};Ma(function(){for(var a=C(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Oc(d);hb(d,c)}});function Kd(){this.b-=4}
function Kd(){G(this,M(this));this.b-=10}function Ld(){G(this,O(this));this.b-=10}function Md(){var a=M(this);P(this,this.R);G(this,a);this.b-=17} function Ld(){G(this,M(this));this.b-=10}function Md(){G(this,O(this));this.b-=10}function Nd(){var a=M(this);P(this,this.R);G(this,a);this.b-=17}
var Oc=[Jd,function(){Vc(this,M(this));this.b-=10},function(){this.ua(Uc(this),this.i);this.b-=7},function(){Vc(this,Uc(this)+1);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=hd(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;$c(this,a&256);this.b-=4},Jd,function(){var a;Yc(this,a=J(this)+Uc(this));$c(this,a>>8&256);this.b-=10},function(){this.i=this.$(Uc(this));this.b-=7},function(){Vc(this,Uc(this)-1);this.b-= var Pc=[Kd,function(){Wc(this,M(this));this.b-=10},function(){this.ua(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.$(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-=
5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=hd(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;$c(this,a);this.b-=4},Jd,function(){Xc(this,M(this));this.b-=10},function(){this.ua(Wc(this),this.i);this.b-=7},function(){Xc(this,Wc(this)+1);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=hd(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| 5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Kd,function(){Yc(this,M(this));this.b-=10},function(){this.ua(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|
Zc(this);$c(this,a&256);this.b-=4},Jd,function(){var a;Yc(this,a=J(this)+Wc(this));$c(this,a>>8&256);this.b-=10},function(){this.i=this.$(Wc(this));this.b-=7},function(){Xc(this,Wc(this)-1);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=hd(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){var a=this.i<<8;this.i=(Zc(this)<<8|this.i)>>1;$c(this,a&256);this.b-=4},Jd,function(){Yc(this,M(this));this.b-=10},function(){var a=M(this);this.u.Ib(a,J(this)); $c(this);ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.$(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Kd,function(){Zc(this,M(this));this.b-=10},function(){var a=M(this);this.u.Ib(a,J(this));
this.b-=16},function(){Yc(this,J(this)+1);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=hd(this,this.W);this.b-=5},function(){this.W=L(this);this.b-=7},function(){var a=0,b=Zc(this);if(bd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=ed(this,a);$c(this,b?256:0);this.b-=4},Jd,function(){var a;Yc(this,a=J(this)+J(this));$c(this,a>>8&256);this.b-=10},function(){var a;a=M(this);a=this.u.Sa(a);Yc(this,a);this.b-=16},function(){Yc(this,J(this)-1);this.b-=5},function(){this.Y= this.b-=16},function(){Zc(this,J(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=L(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+J(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=M(this);a=this.u.Sa(a);Zc(this,a);this.b-=16},function(){Zc(this,J(this)-1);this.b-=5},function(){this.Y=
id(this,this.Y);this.b-=5},function(){this.Y=hd(this,this.Y);this.b-=5},function(){this.Y=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Jd,function(){this.ma=M(this)&65535;this.b-=10},function(){this.ua(M(this),this.i);this.b-=13},function(){this.ma=this.ma+1&65535;this.b-=5},function(){var a=J(this);this.ua(a,id(this,this.$(a)));this.b-=10},function(){var a=J(this);this.ua(a,hd(this,this.$(a)));this.b-=10},function(){this.ua(J(this),L(this));this.b-=10},function(){this.ca|=256;this.b-= jd(this,this.Y);this.b-=5},function(){this.Y=id(this,this.Y);this.b-=5},function(){this.Y=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Kd,function(){this.ma=M(this)&65535;this.b-=10},function(){this.ua(M(this),this.i);this.b-=13},function(){this.ma=this.ma+1&65535;this.b-=5},function(){var a=J(this);this.ua(a,jd(this,this.$(a)));this.b-=10},function(){var a=J(this);this.ua(a,id(this,this.$(a)));this.b-=10},function(){this.ua(J(this),L(this));this.b-=10},function(){this.ca|=256;this.b-=
4},Jd,function(){var a;Yc(this,a=J(this)+this.ma);$c(this,a>>8&256);this.b-=10},function(){this.i=this.$(M(this));this.b-=13},function(){this.ma=this.ma-1&65535;this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=hd(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){$c(this,Zc(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W;this.b-= 4},Kd,function(){var a;Zc(this,a=J(this)+this.ma);ad(this,a>>8&256);this.b-=10},function(){this.i=this.$(M(this));this.b-=13},function(){this.ma=this.ma-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W;this.b-=
5},function(){this.S=this.Y;this.b-=5},function(){this.S=this.$(J(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Y;this.b-=5},function(){this.T=this.$(J(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=5},function(){this.U= 5},function(){this.S=this.Y;this.b-=5},function(){this.S=this.$(J(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Y;this.b-=5},function(){this.T=this.$(J(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=5},function(){this.U=
this.V;this.b-=5},function(){this.U=this.W;this.b-=5},function(){this.U=this.Y;this.b-=5},function(){this.U=this.$(J(this));this.b-=7},function(){this.U=this.i;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.W;this.b-=5},function(){this.V=this.Y;this.b-=5},function(){this.V=this.$(J(this));this.b-=7},function(){this.V=this.i;this.b-=5},function(){this.W=this.S;this.b-=5},function(){this.W= this.V;this.b-=5},function(){this.U=this.W;this.b-=5},function(){this.U=this.Y;this.b-=5},function(){this.U=this.$(J(this));this.b-=7},function(){this.U=this.i;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.W;this.b-=5},function(){this.V=this.Y;this.b-=5},function(){this.V=this.$(J(this));this.b-=7},function(){this.V=this.i;this.b-=5},function(){this.W=this.S;this.b-=5},function(){this.W=
this.T;this.b-=5},function(){this.W=this.U;this.b-=5},function(){this.W=this.V;this.b-=5},function(){this.b-=5},function(){this.W=this.Y;this.b-=5},function(){this.W=this.$(J(this));this.b-=7},function(){this.W=this.i;this.b-=5},function(){this.Y=this.S;this.b-=5},function(){this.Y=this.T;this.b-=5},function(){this.Y=this.U;this.b-=5},function(){this.Y=this.V;this.b-=5},function(){this.Y=this.W;this.b-=5},function(){this.b-=5},function(){this.Y=this.$(J(this));this.b-=7},function(){this.Y=this.i; this.T;this.b-=5},function(){this.W=this.U;this.b-=5},function(){this.W=this.V;this.b-=5},function(){this.b-=5},function(){this.W=this.Y;this.b-=5},function(){this.W=this.$(J(this));this.b-=7},function(){this.W=this.i;this.b-=5},function(){this.Y=this.S;this.b-=5},function(){this.Y=this.T;this.b-=5},function(){this.Y=this.U;this.b-=5},function(){this.Y=this.V;this.b-=5},function(){this.Y=this.W;this.b-=5},function(){this.b-=5},function(){this.Y=this.$(J(this));this.b-=7},function(){this.Y=this.i;
this.b-=5},function(){this.ua(J(this),this.S);this.b-=7},function(){this.ua(J(this),this.T);this.b-=7},function(){this.ua(J(this),this.U);this.b-=7},function(){this.ua(J(this),this.V);this.b-=7},function(){this.ua(J(this),this.W);this.b-=7},function(){this.ua(J(this),this.Y);this.b-=7},function(){var a=this.R-1;if(this.ba.length)for(var b=0;b<this.ba.length;b++)if(this.ba[b](a))return;this.b-=7;this.w|=256;this.j-=this.b;this.b=0;this.H&&kb(this,-2147483648)?(G(this,a),this.H.oa()):this.ta&512||(this.H&& this.b-=5},function(){this.ua(J(this),this.S);this.b-=7},function(){this.ua(J(this),this.T);this.b-=7},function(){this.ua(J(this),this.U);this.b-=7},function(){this.ua(J(this),this.V);this.b-=7},function(){this.ua(J(this),this.W);this.b-=7},function(){this.ua(J(this),this.Y);this.b-=7},function(){var a=this.R-1;if(this.ba.length)for(var b=0;b<this.ba.length;b++)if(this.ba[b](a))return;this.b-=7;this.j|=256;Mc(this);this.H&&kb(this,-2147483648)?(G(this,a),this.H.oa()):this.ta&512||(this.H&&G(this,
G(this,a),this.oa())},function(){this.ua(J(this),this.i);this.b-=7},function(){this.i=this.S;this.b-=5},function(){this.i=this.T;this.b-=5},function(){this.i=this.U;this.b-=5},function(){this.i=this.V;this.b-=5},function(){this.i=this.W;this.b-=5},function(){this.i=this.Y;this.b-=5},function(){this.i=this.$(J(this));this.b-=7},function(){this.b-=5},function(){this.i=ed(this,this.S);this.b-=4},function(){this.i=ed(this,this.T);this.b-=4},function(){this.i=ed(this,this.U);this.b-=4},function(){this.i= a),this.oa())},function(){this.ua(J(this),this.i);this.b-=7},function(){this.i=this.S;this.b-=5},function(){this.i=this.T;this.b-=5},function(){this.i=this.U;this.b-=5},function(){this.i=this.V;this.b-=5},function(){this.i=this.W;this.b-=5},function(){this.i=this.Y;this.b-=5},function(){this.i=this.$(J(this));this.b-=7},function(){this.b-=5},function(){this.i=fd(this,this.S);this.b-=4},function(){this.i=fd(this,this.T);this.b-=4},function(){this.i=fd(this,this.U);this.b-=4},function(){this.i=fd(this,
ed(this,this.V);this.b-=4},function(){this.i=ed(this,this.W);this.b-=4},function(){this.i=ed(this,this.Y);this.b-=4},function(){this.i=ed(this,this.$(J(this)));this.b-=7},function(){this.i=ed(this,this.i);this.b-=4},function(){this.i=fd(this,this.S);this.b-=4},function(){this.i=fd(this,this.T);this.b-=4},function(){this.i=fd(this,this.U);this.b-=4},function(){this.i=fd(this,this.V);this.b-=4},function(){this.i=fd(this,this.W);this.b-=4},function(){this.i=fd(this,this.Y);this.b-=4},function(){this.i= this.V);this.b-=4},function(){this.i=fd(this,this.W);this.b-=4},function(){this.i=fd(this,this.Y);this.b-=4},function(){this.i=fd(this,this.$(J(this)));this.b-=7},function(){this.i=fd(this,this.i);this.b-=4},function(){this.i=gd(this,this.S);this.b-=4},function(){this.i=gd(this,this.T);this.b-=4},function(){this.i=gd(this,this.U);this.b-=4},function(){this.i=gd(this,this.V);this.b-=4},function(){this.i=gd(this,this.W);this.b-=4},function(){this.i=gd(this,this.Y);this.b-=4},function(){this.i=gd(this,
fd(this,this.$(J(this)));this.b-=7},function(){this.i=fd(this,this.i);this.b-=4},function(){this.i=K(this,this.S);this.b-=4},function(){this.i=K(this,this.T);this.b-=4},function(){this.i=K(this,this.U);this.b-=4},function(){this.i=K(this,this.V);this.b-=4},function(){this.i=K(this,this.W);this.b-=4},function(){this.i=K(this,this.Y);this.b-=4},function(){this.i=K(this,this.$(J(this)));this.b-=7},function(){this.i=K(this,this.i);this.b-=4},function(){this.i=Dd(this,this.S);this.b-=4},function(){this.i= this.$(J(this)));this.b-=7},function(){this.i=gd(this,this.i);this.b-=4},function(){this.i=K(this,this.S);this.b-=4},function(){this.i=K(this,this.T);this.b-=4},function(){this.i=K(this,this.U);this.b-=4},function(){this.i=K(this,this.V);this.b-=4},function(){this.i=K(this,this.W);this.b-=4},function(){this.i=K(this,this.Y);this.b-=4},function(){this.i=K(this,this.$(J(this)));this.b-=7},function(){this.i=K(this,this.i);this.b-=4},function(){this.i=Ed(this,this.S);this.b-=4},function(){this.i=Ed(this,
Dd(this,this.T);this.b-=4},function(){this.i=Dd(this,this.U);this.b-=4},function(){this.i=Dd(this,this.V);this.b-=4},function(){this.i=Dd(this,this.W);this.b-=4},function(){this.i=Dd(this,this.Y);this.b-=4},function(){this.i=Dd(this,this.$(J(this)));this.b-=7},function(){this.i=Dd(this,this.i);this.b-=4},function(){this.i=gd(this,this.S);this.b-=4},function(){this.i=gd(this,this.T);this.b-=4},function(){this.i=gd(this,this.U);this.b-=4},function(){this.i=gd(this,this.V);this.b-=4},function(){this.i= this.T);this.b-=4},function(){this.i=Ed(this,this.U);this.b-=4},function(){this.i=Ed(this,this.V);this.b-=4},function(){this.i=Ed(this,this.W);this.b-=4},function(){this.i=Ed(this,this.Y);this.b-=4},function(){this.i=Ed(this,this.$(J(this)));this.b-=7},function(){this.i=Ed(this,this.i);this.b-=4},function(){this.i=hd(this,this.S);this.b-=4},function(){this.i=hd(this,this.T);this.b-=4},function(){this.i=hd(this,this.U);this.b-=4},function(){this.i=hd(this,this.V);this.b-=4},function(){this.i=hd(this,
gd(this,this.W);this.b-=4},function(){this.i=gd(this,this.Y);this.b-=4},function(){this.i=gd(this,this.$(J(this)));this.b-=7},function(){this.i=gd(this,this.i);this.b-=4},function(){this.i=Ed(this,this.S);this.b-=4},function(){this.i=Ed(this,this.T);this.b-=4},function(){this.i=Ed(this,this.U);this.b-=4},function(){this.i=Ed(this,this.V);this.b-=4},function(){this.i=Ed(this,this.W);this.b-=4},function(){this.i=Ed(this,this.Y);this.b-=4},function(){this.i=Ed(this,this.$(J(this)));this.b-=7},function(){this.i= this.W);this.b-=4},function(){this.i=hd(this,this.Y);this.b-=4},function(){this.i=hd(this,this.$(J(this)));this.b-=7},function(){this.i=hd(this,this.i);this.b-=4},function(){this.i=Fd(this,this.S);this.b-=4},function(){this.i=Fd(this,this.T);this.b-=4},function(){this.i=Fd(this,this.U);this.b-=4},function(){this.i=Fd(this,this.V);this.b-=4},function(){this.i=Fd(this,this.W);this.b-=4},function(){this.i=Fd(this,this.Y);this.b-=4},function(){this.i=Fd(this,this.$(J(this)));this.b-=7},function(){this.i=
Ed(this,this.i);this.b-=4},function(){this.i=jd(this,this.S);this.b-=4},function(){this.i=jd(this,this.T);this.b-=4},function(){this.i=jd(this,this.U);this.b-=4},function(){this.i=jd(this,this.V);this.b-=4},function(){this.i=jd(this,this.W);this.b-=4},function(){this.i=jd(this,this.Y);this.b-=4},function(){this.i=jd(this,this.$(J(this)));this.b-=7},function(){this.i=jd(this,this.i);this.b-=4},function(){K(this,this.S);this.b-=4},function(){K(this,this.T);this.b-=4},function(){K(this,this.U);this.b-= Fd(this,this.i);this.b-=4},function(){this.i=kd(this,this.S);this.b-=4},function(){this.i=kd(this,this.T);this.b-=4},function(){this.i=kd(this,this.U);this.b-=4},function(){this.i=kd(this,this.V);this.b-=4},function(){this.i=kd(this,this.W);this.b-=4},function(){this.i=kd(this,this.Y);this.b-=4},function(){this.i=kd(this,this.$(J(this)));this.b-=7},function(){this.i=kd(this,this.i);this.b-=4},function(){K(this,this.S);this.b-=4},function(){K(this,this.T);this.b-=4},function(){K(this,this.U);this.b-=
4},function(){K(this,this.V);this.b-=4},function(){K(this,this.W);this.b-=4},function(){K(this,this.Y);this.b-=4},function(){K(this,this.$(J(this)));this.b-=7},function(){K(this,this.i);this.b-=4},function(){cd(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Vc(this,O(this));this.b-=10},function(){var a=M(this);cd(this)||G(this,a);this.b-=10},Kd,function(){var a=M(this);cd(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,Uc(this));this.b-=11},function(){this.i=ed(this, 4},function(){K(this,this.V);this.b-=4},function(){K(this,this.W);this.b-=4},function(){K(this,this.Y);this.b-=4},function(){K(this,this.$(J(this)));this.b-=7},function(){K(this,this.i);this.b-=4},function(){dd(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Wc(this,O(this));this.b-=10},function(){var a=M(this);dd(this)||G(this,a);this.b-=10},Ld,function(){var a=M(this);dd(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,Vc(this));this.b-=11},function(){this.i=fd(this,
L(this));this.b-=7},function(){P(this,this.R);G(this,0);this.b-=11},function(){cd(this)&&(G(this,O(this)),this.b-=6);this.b-=5},Ld,function(){var a=M(this);cd(this)&&G(this,a);this.b-=10},Kd,function(){var a=M(this);cd(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Md,function(){this.i=fd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,8);this.b-=11},function(){Zc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Xc(this,O(this));this.b-=10},function(){var a=M(this);Zc(this)|| L(this));this.b-=7},function(){P(this,this.R);G(this,0);this.b-=11},function(){dd(this)&&(G(this,O(this)),this.b-=6);this.b-=5},Md,function(){var a=M(this);dd(this)&&G(this,a);this.b-=10},Ld,function(){var a=M(this);dd(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Nd,function(){this.i=gd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,8);this.b-=11},function(){$c(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Yc(this,O(this));this.b-=10},function(){var a=M(this);$c(this)||
G(this,a);this.b-=10},function(){var a=L(this);Ub(this.u,a,this.i,this.R+-2&65535);this.b-=10},function(){var a=M(this);Zc(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,Wc(this));this.b-=11},function(){this.i=K(this,L(this));this.b-=7},function(){P(this,this.R);G(this,16);this.b-=11},function(){Zc(this)&&(G(this,O(this)),this.b-=6);this.b-=5},Ld,function(){var a=M(this);Zc(this)&&G(this,a);this.b-=10},function(){var a=L(this);this.i=Ib(this.u,a,this.R+-2&65535)&255;this.b-= G(this,a);this.b-=10},function(){var a=L(this);Ub(this.u,a,this.i,this.R+-2&65535);this.b-=10},function(){var a=M(this);$c(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,Xc(this));this.b-=11},function(){this.i=K(this,L(this));this.b-=7},function(){P(this,this.R);G(this,16);this.b-=11},function(){$c(this)&&(G(this,O(this)),this.b-=6);this.b-=5},Md,function(){var a=M(this);$c(this)&&G(this,a);this.b-=10},function(){var a=L(this);this.i=Ib(this.u,a,this.R+-2&65535)&255;this.b-=
10},function(){var a=M(this);Zc(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Md,function(){this.i=Dd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,24);this.b-=11},function(){ad(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Yc(this,O(this));this.b-=10},function(){var a=M(this);ad(this)||G(this,a);this.b-=10},function(){var a=O(this);P(this,J(this));Yc(this,a);this.b-=18},function(){var a=M(this);ad(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this, 10},function(){var a=M(this);$c(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Nd,function(){this.i=Ed(this,L(this));this.b-=7},function(){P(this,this.R);G(this,24);this.b-=11},function(){bd(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Zc(this,O(this));this.b-=10},function(){var a=M(this);bd(this)||G(this,a);this.b-=10},function(){var a=O(this);P(this,J(this));Zc(this,a);this.b-=18},function(){var a=M(this);bd(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,
J(this));this.b-=11},function(){this.i=gd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,32);this.b-=11},function(){ad(this)&&(G(this,O(this)),this.b-=6);this.b-=5},function(){G(this,J(this));this.b-=5},function(){var a=M(this);ad(this)&&G(this,a);this.b-=10},function(){var a=J(this);Yc(this,Wc(this));Xc(this,a);this.b-=5},function(){var a=M(this);ad(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Md,function(){this.i=Ed(this,L(this));this.b-=7},function(){P(this,this.R);G(this, J(this));this.b-=11},function(){this.i=hd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,32);this.b-=11},function(){bd(this)&&(G(this,O(this)),this.b-=6);this.b-=5},function(){G(this,J(this));this.b-=5},function(){var a=M(this);bd(this)&&G(this,a);this.b-=10},function(){var a=J(this);Zc(this,Xc(this));Yc(this,a);this.b-=5},function(){var a=M(this);bd(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Nd,function(){this.i=Fd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,
40);this.b-=11},function(){dd(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Rc(this,a&255|this.ta&-256);this.i=a>>8;this.b-=10},function(){var a=M(this);dd(this)||G(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=M(this);dd(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,Tc(this)&255|this.i<<8);this.b-=11},function(){this.i=jd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,48);this.b-=11},function(){dd(this)&&(G(this, 40);this.b-=11},function(){ed(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Sc(this,a&255|this.ta&-256);this.i=a>>8;this.b-=10},function(){var a=M(this);ed(this)||G(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=M(this);ed(this)||(P(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){P(this,Uc(this)&255|this.i<<8);this.b-=11},function(){this.i=kd(this,L(this));this.b-=7},function(){P(this,this.R);G(this,48);this.b-=11},function(){ed(this)&&(G(this,
O(this)),this.b-=6);this.b-=5},function(){this.ma=J(this)&65535;this.b-=5},function(){var a=M(this);dd(this)&&G(this,a);this.b-=10},function(){this.ta|=512;this.b-=4;Fd(this)},function(){var a=M(this);dd(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Md,function(){K(this,L(this));this.b-=7},function(){P(this,this.R);G(this,56);this.b-=11}]; O(this)),this.b-=6);this.b-=5},function(){this.ma=J(this)&65535;this.b-=5},function(){var a=M(this);ed(this)&&G(this,a);this.b-=10},function(){this.ta|=512;this.b-=4;Gd(this)},function(){var a=M(this);ed(this)&&(P(this,this.R),G(this,a),this.b-=6);this.b-=11},Nd,function(){K(this,L(this));this.b-=7},function(){P(this,this.R);G(this,56);this.b-=11}];
function S(a){w.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Nd[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Nd[b]||{};a.sound&&(this.ea=null,window&&(this.ea=window.AudioContext||window.webkitAudioContext),this.ea&&new this.ea);E(this)}bb(S); function S(a){w.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Od[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Od[b]||{};a.sound&&(this.ea=null,window&&(this.ea=window.AudioContext||window.webkitAudioContext),this.ea&&new this.ea);E(this)}bb(S);
var T={Aa:1978.1,cd:{Ba:0,Od:1,Sd:16,Zd:32,he:64,ge:128,ob:14},Xa:{Ba:1,Ec:1,Xc:2,Tc:4,Uc:16,Vc:32,Wc:64,ob:8},dd:{Ba:2,Nd:3,pe:4,Pd:8,ce:16,de:32,ee:64,Qd:128,ob:0},le:{Ba:3},je:{Ba:2,$d:7},ne:{Ba:3,qe:1,me:2,fe:4,Xd:8,Rd:16,Kd:32},ke:{Ba:4},oe:{Ba:5,Td:1,Ud:2,Vd:4,Wd:8,re:16}},U={Aa:100,Ja:{Ba:66,ac:1,Xb:2,Sc:4,be:8,ae:16,Zb:32,Yb:64,Ub:128},Dc:{Ba:66,INIT:0},Va:{Ba:194,Md:0,Tb:16,Yc:32,$b:48,Ic:0,Jc:32},Ab:{Ba:162,ie:0,Lc:0,Hc:0,Kc:0,Gc:0},Ka:{Yd:{Ba:98},Ua:{Ac:0,zc:1,$c:2,ed:4,Fc:5,Zc:6,ad:7}, var T={Aa:1978.1,cd:{Ba:0,Od:1,Sd:16,Zd:32,he:64,ge:128,ob:14},Xa:{Ba:1,Ec:1,Xc:2,Tc:4,Uc:16,Vc:32,Wc:64,ob:8},dd:{Ba:2,Nd:3,pe:4,Pd:8,ce:16,de:32,ee:64,Qd:128,ob:0},le:{Ba:3},je:{Ba:2,$d:7},ne:{Ba:3,qe:1,me:2,fe:4,Xd:8,Rd:16,Kd:32},ke:{Ba:4},oe:{Ba:5,Td:1,Ud:2,Vd:4,Wd:8,re:16}},U={Aa:100,Ja:{Ba:66,ac:1,Xb:2,Sc:4,be:8,ae:16,Zb:32,Yb:64,Ub:128},Dc:{Ba:66,INIT:0},Va:{Ba:194,Md:0,Tb:16,Yc:32,$b:48,Ic:0,Jc:32},Ab:{Ba:162,ie:0,Lc:0,Hc:0,Kc:0,Gc:0},Ka:{Yd:{Ba:98},Ua:{Ac:0,zc:1,$c:2,ed:4,Fc:5,Zc:6,ad:7},
Bb:16383}},Nd={SI1978:T,VT100:U};S.prototype.na=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.K=vb(a,"Keyboard");this.Ea=vb(a,"SerialPort");this.video=vb(a,"Video");Hb(b,this,this.w.Gb);Tb(b,this,this.w.Hb);if(d){var e=this;Od(d,16384,function(){for(var a="",b=0;b<e.D.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=t(e.D[b]);e.H.g(a)})}};S.prototype.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0}; Bb:16383}},Od={SI1978:T,VT100:U};S.prototype.na=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.K=vb(a,"Keyboard");this.Ea=vb(a,"SerialPort");this.video=vb(a,"Video");Hb(b,this,this.w.Gb);Tb(b,this,this.w.Hb);if(d){var e=this;Pd(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=t(e.I[b]);e.H.g(a)})}};S.prototype.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
S.prototype.Ha=function(a){return a?this.save():!0};T.INIT=[[T.cd.ob,T.Xa.ob,T.dd.ob,0,0,0,0]]; S.prototype.Ha=function(a){return a?this.save():!0};T.INIT=[[T.cd.ob,T.Xa.ob,T.dd.ob,0,0,0,0]];
U.INIT=[[U.Dc.INIT,U.Ja.Xb|U.Ja.Sc],[U.Va.Ic,U.Va.Jc],[U.Ab.Lc,U.Ab.Hc,U.Ab.Kc,U.Ab.Gc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], U.INIT=[[U.Dc.INIT,U.Ja.Xb|U.Ja.Sc],[U.Va.Ic,U.Va.Jc],[U.Ab.Lc,U.Ab.Hc,U.Ab.Kc,U.Ab.Gc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];m=S.prototype;m.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ja("reset error")}; [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];m=S.prototype;m.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ja("reset error")};
m.save=function(){var a=new H(this);switch(this.w.Aa){case T.Aa:I(a,0,[this.va,this.G,this.ya,this.Z,this.da,this.ka,this.ra]);break;case U.Aa:I(a,0,[this.ga,this.J]),I(a,1,[this.L,this.M]),I(a,2,[this.I,this.aa,this.ia,this.ha]),I(a,3,[this.P,this.j,this.O,this.ba,this.D])}return a.data()}; m.save=function(){var a=new H(this);switch(this.w.Aa){case T.Aa:I(a,0,[this.va,this.G,this.ya,this.Z,this.da,this.ka,this.ra]);break;case U.Aa:I(a,0,[this.ga,this.J]),I(a,1,[this.L,this.M]),I(a,2,[this.D,this.aa,this.ia,this.ha]),I(a,3,[this.P,this.j,this.O,this.ba,this.I])}return a.data()};
m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Aa){case T.Aa:return this.va=b[0],this.G=b[1],this.ya=b[2],this.Z=b[3],this.da=b[4],this.ka=b[5],this.ra=b[6],!0;case U.Aa:return this.ga=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.I=b[0],this.aa=b[1],this.ia=b[2],this.ha=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ba=b[3],this.D=b[4],!0}return!1};m.start=function(){};m.stop=function(){};m.md=function(a,b){var c=this.va;D(this,a,null,b,"STATUS0",c,!0);return c}; m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Aa){case T.Aa:return this.va=b[0],this.G=b[1],this.ya=b[2],this.Z=b[3],this.da=b[4],this.ka=b[5],this.ra=b[6],!0;case U.Aa:return this.ga=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.aa=b[1],this.ia=b[2],this.ha=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ba=b[3],this.I=b[4],!0}return!1};m.start=function(){};m.stop=function(){};m.md=function(a,b){var c=this.va;D(this,a,null,b,"STATUS0",c,!0);return c};
m.nd=function(a,b){var c=this.G;D(this,a,null,b,"STATUS1",c,!0);return c};m.od=function(a,b){var c=this.ya;D(this,a,null,b,"STATUS2",c,!0);return c};m.ld=function(a,b){var c=this.Z>>8-this.da&255;D(this,a,null,b,"SHIFT.RESULT",c,!0);return c};m.vd=function(a,b,c){D(this,a,b,c,"SHIFT.COUNT",null,!0);this.da=b};m.xd=function(a,b,c){D(this,a,b,c,"SOUND1",null,!0);this.ka=b};m.wd=function(a,b,c){D(this,a,b,c,"SHIFT.DATA",null,!0);this.Z=b<<8|this.Z>>8}; m.nd=function(a,b){var c=this.G;D(this,a,null,b,"STATUS1",c,!0);return c};m.od=function(a,b){var c=this.ya;D(this,a,null,b,"STATUS2",c,!0);return c};m.ld=function(a,b){var c=this.Z>>8-this.da&255;D(this,a,null,b,"SHIFT.RESULT",c,!0);return c};m.vd=function(a,b,c){D(this,a,b,c,"SHIFT.COUNT",null,!0);this.da=b};m.xd=function(a,b,c){D(this,a,b,c,"SOUND1",null,!0);this.ka=b};m.wd=function(a,b,c){D(this,a,b,c,"SHIFT.DATA",null,!0);this.Z=b<<8|this.Z>>8};
m.yd=function(a,b,c){D(this,a,b,c,"SOUND2",null,!0);this.ra=b};m.zd=function(a,b,c){D(this,a,b,c,"WATCHDOG",null,!0)};function Pd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} m.yd=function(a,b,c){D(this,a,b,c,"SOUND2",null,!0);this.ra=b};m.zd=function(a,b,c){D(this,a,b,c,"WATCHDOG",null,!0)};function Qd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
m.pd=function(a,b){var c=this.J,c=c&~U.Ja.Yb;if((Gc(this.b)&64)<<1&&(c|=U.Ja.Yb,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case U.Ka.Ua.ad:break;case U.Ka.Ua.zc:this.P=this.P<<1|d;break;case U.Ka.Ua.Fc:d=Pd(this);this.D[d]=U.Ka.Bb;jb(this,"doNVRCommand(): erase data at addr "+t(d));break;case U.Ka.Ua.Ac:this.j=this.j<<1|d;break;case U.Ka.Ua.ed:d=Pd(this);e=this.j&U.Ka.Bb;this.D[d]=e;jb(this,"doNVRCommand(): write data "+t(e)+" to addr "+t(d));break;case U.Ka.Ua.Zc:d=Pd(this);e=this.D[d]; m.pd=function(a,b){var c=this.J,c=c&~U.Ja.Yb;if((Gc(this.b)&64)<<1&&(c|=U.Ja.Yb,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case U.Ka.Ua.ad:break;case U.Ka.Ua.zc:this.P=this.P<<1|d;break;case U.Ka.Ua.Fc:d=Qd(this);this.I[d]=U.Ka.Bb;jb(this,"doNVRCommand(): erase data at addr "+t(d));break;case U.Ka.Ua.Ac:this.j=this.j<<1|d;break;case U.Ka.Ua.ed:d=Qd(this);e=this.j&U.Ka.Bb;this.I[d]=e;jb(this,"doNVRCommand(): write data "+t(e)+" to addr "+t(d));break;case U.Ka.Ua.Zc:d=Qd(this);e=this.I[d];
null==e&&(e=U.Ka.Bb);this.j=e;jb(this,"doNVRCommand(): read data "+t(e)+" from addr "+t(d));break;case U.Ka.Ua.$c:this.j<<=1;this.ba=this.j&U.Ka.Bb+1;break;default:jb(this,"doNVRCommand(): unrecognized command "+da(e))}}c&=~U.Ja.Zb;this.ba&&(c|=U.Ja.Zb);c&=~U.Ja.Ub;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Gc(d.b)>=d.J+e.Z*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=U.Ja.Ub);c&=~U.Ja.ac;this.Ea&&this.Ea.Ca&1&&(c|=U.Ja.ac);this.J=c;D(this,a,null,b,"FLAGS",c);return c}; null==e&&(e=U.Ka.Bb);this.j=e;jb(this,"doNVRCommand(): read data "+t(e)+" from addr "+t(d));break;case U.Ka.Ua.$c:this.j<<=1;this.ba=this.j&U.Ka.Bb+1;break;default:jb(this,"doNVRCommand(): unrecognized command "+da(e))}}c&=~U.Ja.Zb;this.ba&&(c|=U.Ja.Zb);c&=~U.Ja.Ub;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Gc(d.b)>=d.J+e.Z*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=U.Ja.Ub);c&=~U.Ja.ac;this.Ea&&this.Ea.Ca&1&&(c|=U.Ja.ac);this.J=c;D(this,a,null,b,"FLAGS",c);return c};
m.Ad=function(a,b,c){D(this,a,b,c,"BRIGHTNESS");this.ga=b};m.Dd=function(a,b,c){D(this,a,b,c,"NVR.LATCH");this.O=b};m.Cd=function(a,b,c){D(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.I=this.I&-4|a;break;case 1:this.I=this.I&-13|a<<2;this.video&&(b=this.video,a=this.I,jb(b,"updateScrollOffset("+a+")"),b.eb!==a&&((b.eb=a)?Mc(b,!0):b.rb=!0));break;case 2:switch(a){case 0:this.aa=~this.aa;break;case 2:case 3:this.ia=3-a}break;case 3:this.ha=a}}; m.Ad=function(a,b,c){D(this,a,b,c,"BRIGHTNESS");this.ga=b};m.Dd=function(a,b,c){D(this,a,b,c,"NVR.LATCH");this.O=b};m.Cd=function(a,b,c){D(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,jb(b,"updateScrollOffset("+a+")"),b.eb!==a&&((b.eb=a)?Nc(b,!0):b.rb=!0));break;case 2:switch(a){case 0:this.aa=~this.aa;break;case 2:case 3:this.ia=3-a}break;case 3:this.ha=a}};
m.Bd=function(a,b,c){D(this,a,b,c,"DC011");b&U.Va.Yc?(b&=U.Va.$b,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==U.Va.$b?50:60,jb(a,"updateRate("+b+")"),a.vc=b))):(b&=U.Va.Tb,this.L!=b&&(this.L=b,this.video&&(a=this.L==U.Va.Tb?132:80,b=this.video,jb(b,"updateDimensions("+a+","+(80<a&&this.J&U.Ja.Xb?14:24)+")"),b.ba=a,b.pa=b.jc,80<a&&b.pa--,Qd(b)&&Rd(b))))};T.Gb={0:S.prototype.md,1:S.prototype.nd,2:S.prototype.od,3:S.prototype.ld}; m.Bd=function(a,b,c){D(this,a,b,c,"DC011");b&U.Va.Yc?(b&=U.Va.$b,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==U.Va.$b?50:60,jb(a,"updateRate("+b+")"),a.vc=b))):(b&=U.Va.Tb,this.L!=b&&(this.L=b,this.video&&(a=this.L==U.Va.Tb?132:80,b=this.video,jb(b,"updateDimensions("+a+","+(80<a&&this.J&U.Ja.Xb?14:24)+")"),b.ba=a,b.pa=b.jc,80<a&&b.pa--,Rd(b)&&Sd(b))))};T.Gb={0:S.prototype.md,1:S.prototype.nd,2:S.prototype.od,3:S.prototype.ld};
T.Hb={2:S.prototype.vd,3:S.prototype.xd,4:S.prototype.wd,5:S.prototype.yd,6:S.prototype.zd};U.Gb={66:S.prototype.pd};U.Hb={66:S.prototype.Ad,98:S.prototype.Dd,162:S.prototype.Cd,194:S.prototype.Bd};Ma(function(){for(var a=C(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new S(d);hb(d,c)}}); T.Hb={2:S.prototype.vd,3:S.prototype.xd,4:S.prototype.wd,5:S.prototype.yd,6:S.prototype.zd};U.Gb={66:S.prototype.pd};U.Hb={66:S.prototype.Ad,98:S.prototype.Dd,162:S.prototype.Cd,194:S.prototype.Bd};Ma(function(){for(var a=C(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new S(d);hb(d,c)}});
function Sd(a){w.call(this,"ROM",a,Sd);this.B=null;this.I=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.D=a.file;this.K=ea(this.D);if(this.D){a=this.D;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Td(c,a,b,f)})}}bb(Sd);var Ud=[0,5];Sd.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Vd(this)}; function Td(a){w.call(this,"ROM",a,Td);this.B=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.I=a.file;this.K=ea(this.I);if(this.I){a=this.I;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Ud(c,a,b,f)})}}bb(Td);var Vd=[0,5];Td.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Wd(this)};
Sd.prototype.Da=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.I,d=this.j,e=this.Qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=oa(p,k,a.Ta);0>q&&p.splice(-(q+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.G.push({se:b,F:c,rd:d,Qa:e,bc:f})}delete this.Qa}return!0};Sd.prototype.Ha=function(){return!0}; Td.prototype.Da=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=oa(p,k,a.Ta);0>q&&p.splice(-(q+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.G.push({se:b,F:c,rd:d,Qa:e,bc:f})}delete this.Qa}return!0};Td.prototype.Ha=function(){return!0};
function Td(a,b,c,d){if(d)a.ja("Unable to load system ROM (error "+d+": "+b+")");else{db(a.Cb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){v("Empty ROM: "+b);return}if(1==a.B.length){v(a.B[0]);return}}catch(g){a.ja("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function Ud(a,b,c,d){if(d)a.ja("Unable to load system ROM (error "+d+": "+b+")");else{db(a.Cb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){v("Empty ROM: "+b);return}if(1==a.B.length){v(a.B[0]);return}}catch(g){a.ja("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e<b.length;e++)a.B[e]=ca(b[e],16);Vd(a)}} " ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e<b.length;e++)a.B[e]=ca(b[e],16);Wd(a)}}
function Vd(a){if(!pb(a))if(!a.D)E(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)qb(a,"ROM size (0x"+n(a.B.length)+") does not match specified size ("+("0x"+n(a.j))+")");else if(Wd(a,a.I)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.I>>>f.qa;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ga;f=d.u;d=d.j;h=0;for(e>>>=f.qa;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ga}}delete a.B}E(a)}} function Wd(a){if(!pb(a))if(!a.I)E(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)qb(a,"ROM size (0x"+n(a.B.length)+") does not match specified size ("+("0x"+n(a.j))+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.D>>>f.qa;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ga;f=d.u;d=d.j;h=0;for(e>>>=f.qa;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ga}}delete a.B}E(a)}}
function Wd(a,b){if(zb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Fb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Ud.length;c++)Fb(a.u,Ud[c],118);Qc(a.b,function(a){return function(b){if(0<=Ud.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.T){case 2:Xd(a,String.fromCharCode(h.V));break;case 9:for(var k=Wc(h),l="",p=255;p--;){var q=a.b.$(k++);if(36==q)break;l+=String.fromCharCode(q)}Xd(a,l);break;default:c=!1}c?Ld.call(h):g&&(a.g("\nCP/M vector "+t(b)),G(h,b),g.oa());b=!0}else b=!1;return b}}(a)); function Xd(a,b){if(zb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Eb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Vd.length;c++)Eb(a.u,Vd[c],118);Rc(a.b,function(a){return function(b){if(0<=Vd.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.T){case 2:Yd(a,String.fromCharCode(h.V));break;case 9:for(var k=Xc(h),l="",p=255;p--;){var q=a.b.$(k++);if(36==q)break;l+=String.fromCharCode(q)}Yd(a,l);break;default:c=!1}c?Md.call(h):g&&(a.g("\nCP/M vector "+t(b)),G(h,b),g.oa());b=!0}else b=!1;return b}}(a));
Sc(a.b,b)}return!0}return!1}function Xd(a,b){b=b.replace(/\r/g,"");a.Fa&&(a.Fa.value+=b,a.Fa.scrollTop=a.Fa.scrollHeight)}Ma(function(){for(var a=C(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Sd(d);hb(d,c)}});function Yd(a){w.call(this,"RAM",a,Yd);this.w=a.addr;this.j=a.size;this.B=!1}bb(Yd);m=Yd.prototype;m.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;E(this)};m.Da=function(a,b){b||this.reset();return!0};m.Ha=function(a){return a?this.save():!0}; Tc(a.b,b)}return!0}return!1}function Yd(a,b){b=b.replace(/\r/g,"");a.Fa&&(a.Fa.value+=b,a.Fa.scrollTop=a.Fa.scrollHeight)}Ma(function(){for(var a=C(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Td(d);hb(d,c)}});function Zd(a){w.call(this,"RAM",a,Zd);this.w=a.addr;this.j=a.size;this.B=!1}bb(Zd);m=Zd.prototype;m.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;E(this)};m.Da=function(a,b){b||this.reset();return!0};m.Ha=function(a){return a?this.save():!0};
m.reset=function(){!this.B&&this.j&&zb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||v("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ma(function(){for(var a=C(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Yd(d);hb(d,c)}});function Zd(a){w.call(this,"Keyboard",a,Zd,65536);(a=a.model)&&!$d[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=$d[a]||{};this.reset();E(this)}bb(Zd); m.reset=function(){!this.B&&this.j&&zb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||v("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ma(function(){for(var a=C(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Zd(d);hb(d,c)}});function $d(a){w.call(this,"Keyboard",a,$d,65536);(a=a.model)&&!ae[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=ae[a]||{};this.reset();E(this)}bb($d);
var ae={Aa:1978.1,A:{},Sb:{65:37,68:39,76:32},pb:{},Wa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},V={Aa:100,A:{},Sb:{},pb:{},Wa:{setup:120},Bc:{Ba:130,INIT:127},La:{Ba:130,Qc:1,Pc:2,Oc:4,Nc:8,Rc:16,Wb:32,Vb:63,bd:64,Ld:128,INIT:0},Mc:127};V.A[46]=3;V.A[80]=5;V.A[79]=6;V.A[89]=7;V.A[84]=8;V.A[87]=9;V.A[81]=10;V.A[39]=16;V.A[221]=20;V.A[219]=21;V.A[73]=22;V.A[85]=23;V.A[82]=24;V.A[69]=25;V.A[49]=26;V.A[37]=32;V.A[40]=34;V.A[117]=35;V.A[19]=35;V.A[192]=36;V.A[189]=37;V.A[57]=38;V.A[55]=39; var be={Aa:1978.1,A:{},Sb:{65:37,68:39,76:32},pb:{},Wa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},V={Aa:100,A:{},Sb:{},pb:{},Wa:{setup:120},Bc:{Ba:130,INIT:127},La:{Ba:130,Qc:1,Pc:2,Oc:4,Nc:8,Rc:16,Wb:32,Vb:63,bd:64,Ld:128,INIT:0},Mc:127};V.A[46]=3;V.A[80]=5;V.A[79]=6;V.A[89]=7;V.A[84]=8;V.A[87]=9;V.A[81]=10;V.A[39]=16;V.A[221]=20;V.A[219]=21;V.A[73]=22;V.A[85]=23;V.A[82]=24;V.A[69]=25;V.A[49]=26;V.A[37]=32;V.A[40]=34;V.A[117]=35;V.A[19]=35;V.A[192]=36;V.A[189]=37;V.A[57]=38;V.A[55]=39;
V.A[52]=40;V.A[51]=41;V.A[27]=42;V.A[38]=48;V.A[114]=49;V.A[112]=50;V.A[8]=51;V.A[187]=52;V.A[48]=53;V.A[56]=54;V.A[54]=55;V.A[53]=56;V.A[50]=57;V.A[9]=58;V.A[103]=64;V.A[115]=65;V.A[113]=66;V.A[96]=67;V.A[118]=68;V.A[220]=69;V.A[76]=70;V.A[75]=71;V.A[71]=72;V.A[70]=73;V.A[65]=74;V.A[104]=80;V.A[2013]=81;V.A[98]=82;V.A[97]=83;V.A[222]=85;V.A[186]=86;V.A[74]=87;V.A[72]=88;V.A[68]=89;V.A[83]=90;V.A[110]=96;V.A[116]=97;V.A[101]=98;V.A[100]=99;V.A[13]=100;V.A[190]=101;V.A[188]=102;V.A[78]=103; V.A[52]=40;V.A[51]=41;V.A[27]=42;V.A[38]=48;V.A[114]=49;V.A[112]=50;V.A[8]=51;V.A[187]=52;V.A[48]=53;V.A[56]=54;V.A[54]=55;V.A[53]=56;V.A[50]=57;V.A[9]=58;V.A[103]=64;V.A[115]=65;V.A[113]=66;V.A[96]=67;V.A[118]=68;V.A[220]=69;V.A[76]=70;V.A[75]=71;V.A[71]=72;V.A[70]=73;V.A[65]=74;V.A[104]=80;V.A[2013]=81;V.A[98]=82;V.A[97]=83;V.A[222]=85;V.A[186]=86;V.A[74]=87;V.A[72]=88;V.A[68]=89;V.A[83]=90;V.A[110]=96;V.A[116]=97;V.A[101]=98;V.A[100]=99;V.A[13]=100;V.A[190]=101;V.A[188]=102;V.A[78]=103;
V.A[66]=104;V.A[88]=105;V.A[119]=106;V.A[105]=112;V.A[99]=113;V.A[102]=114;V.A[109]=115;V.A[191]=117;V.A[77]=118;V.A[32]=119;V.A[86]=120;V.A[67]=121;V.A[90]=122;V.A[120]=123;V.A[17]=124;V.A[16]=125;V.A[20]=126;V.pb={l4:V.La.Qc,l3:V.La.Pc,l2:V.La.Oc,l1:V.La.Nc,locked:V.La.Rc,local:V.La.Wb,online:~V.La.Wb};var $d={SI1978:ae,VT100:V}; V.A[66]=104;V.A[88]=105;V.A[119]=106;V.A[105]=112;V.A[99]=113;V.A[102]=114;V.A[109]=115;V.A[191]=117;V.A[77]=118;V.A[32]=119;V.A[86]=120;V.A[67]=121;V.A[90]=122;V.A[120]=123;V.A[17]=124;V.A[16]=125;V.A[20]=126;V.pb={l4:V.La.Qc,l3:V.La.Pc,l2:V.La.Oc,l1:V.La.Nc,locked:V.La.Rc,local:V.La.Wb,online:~V.La.Wb};var ae={SI1978:be,VT100:V};
Zd.prototype.na=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.pb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return be(d,a,!0)},c.onkeyup=function(a){return be(d,a,!1)},!0;default:if(this.u.Wa&&void 0!==this.u.Wa[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();ce(a,b,!0)}}(this,this.u.Wa[b]),b=function(a,b){return function(){ce(a,b,!1)}}(this,this.u.Wa[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend= $d.prototype.na=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.pb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return ce(d,a,!0)},c.onkeyup=function(a){return ce(d,a,!1)},!0;default:if(this.u.Wa&&void 0!==this.u.Wa[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();de(a,b,!0)}}(this,this.u.Wa[b]),b=function(a,b){return function(){de(a,b,!1)}}(this,this.u.Wa[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};Zd.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=vb(a,"ChipSet");Hb(b,this,this.u.Gb);Tb(b,this,this.u.Hb)};Zd.prototype.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Zd.prototype.Ha=function(a){return a?this.save():!0};V.INIT=[[V.La.INIT,V.Bc.INIT,!1,0,-1]];m=Zd.prototype;m.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ja("reset error")}; b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};$d.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=vb(a,"ChipSet");Hb(b,this,this.u.Gb);Tb(b,this,this.u.Hb)};$d.prototype.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};$d.prototype.Ha=function(a){return a?this.save():!0};V.INIT=[[V.La.INIT,V.Bc.INIT,!1,0,-1]];m=$d.prototype;m.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ja("reset error")};
m.save=function(){var a=new H(this);switch(this.u.Aa){case V.Aa:I(a,0,[this.K,this.G,this.D,this.J,-1])}return a.data()};m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Aa){case ae.Aa:return!0;case V.Aa:return this.K=b[0],de(this,this.K&V.La.Vb),this.G=b[1],this.D=b[2],this.J=b[3],this.w=b[4],!0}return!1};function de(a,b){for(var c in a.u.pb){var d=a.N["led-"+c];if(d){var e=a.u.pb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}} m.save=function(){var a=new H(this);switch(this.u.Aa){case V.Aa:I(a,0,[this.K,this.G,this.D,this.J,-1])}return a.data()};m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Aa){case be.Aa:return!0;case V.Aa:return this.K=b[0],ee(this,this.K&V.La.Vb),this.G=b[1],this.D=b[2],this.J=b[3],this.w=b[4],!0}return!1};function ee(a,b){for(var c in a.u.pb){var d=a.N["led-"+c];if(d){var e=a.u.pb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function be(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Sb[e]||e,!a.u.A[e]){for(var f in a.u.Wa)if(a.u.Wa[f]===e){e=f;break a}e=null}e&&(d=ce(a,e,c),b.preventDefault());return d} function ce(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Sb[e]||e,!a.u.A[e]){for(var f in a.u.Wa)if(a.u.Wa[f]===e){e=f;break a}e=null}e&&(d=de(a,e,c),b.preventDefault());return d}
function ce(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Qb==b)break a;d=-1}if(c)0>d?a.j.push({Qb:b,Nb:Date.now(),Db:!1}):(a.j[d].Nb=Date.now(),a.j[d].Db=!1);else if(0<=d){if(!a.j[d].Db){var e=a.j[d].Nb;if(e&&100>Date.now()-e)return a.j[d].Db=!0,ee(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=T.Xa.Tc;break;case "2p":d=T.Xa.Xc;break;case "coin":d=T.Xa.Ec;break;case "left":d=T.Xa.Vc;break;case "right":d=T.Xa.Wc;break;case "fire":d=T.Xa.Uc}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0} function de(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Qb==b)break a;d=-1}if(c)0>d?a.j.push({Qb:b,Nb:Date.now(),Db:!1}):(a.j[d].Nb=Date.now(),a.j[d].Db=!1);else if(0<=d){if(!a.j[d].Db){var e=a.j[d].Nb;if(e&&100>Date.now()-e)return a.j[d].Db=!0,fe(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=T.Xa.Tc;break;case "2p":d=T.Xa.Xc;break;case "coin":d=T.Xa.Ec;break;case "left":d=T.Xa.Vc;break;case "right":d=T.Xa.Wc;break;case "fire":d=T.Xa.Uc}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0}
function ee(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Db){var d=a.j[b].Qb,e=100-(Date.now()-a.j[b].Nb);if(0<e){if(0>c||c>e)c=e}else{ce(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){ee(a)},c)}m.qd=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=V.A[c.Qb],c&128&&(c&=127)):(this.w=-1,c=V.Mc),this.G=c,Gd(this.b,1));D(this,a,null,b,"KBDUART.ADDRESS",c);return c}; function fe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Db){var d=a.j[b].Qb,e=100-(Date.now()-a.j[b].Nb);if(0<e){if(0>c||c>e)c=e}else{de(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){fe(a)},c)}m.qd=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=V.A[c.Qb],c&128&&(c&=127)):(this.w=-1,c=V.Mc),this.G=c,Hd(this.b,1));D(this,a,null,b,"KBDUART.ADDRESS",c);return c};
m.Ed=function(a,b,c){D(this,a,b,c,"KBDUART.STATUS");this.K=b;this.D=!0;this.J=Gc(this.b);de(this,b&V.La.Vb);b&V.La.bd&&(this.w=0,Gd(this.b,1))};V.Gb={130:Zd.prototype.qd};V.Hb={130:Zd.prototype.Ed};Ma(function(){for(var a=C(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Zd(d);hb(d,c)}}); m.Ed=function(a,b,c){D(this,a,b,c,"KBDUART.STATUS");this.K=b;this.D=!0;this.J=Gc(this.b);ee(this,b&V.La.Vb);b&V.La.bd&&(this.w=0,Hd(this.b,1))};V.Gb={130:$d.prototype.qd};V.Hb={130:$d.prototype.Ed};Ma(function(){for(var a=C(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new $d(d);hb(d,c)}});
function fe(a,b,c,d,e){var f=this;this.oc=Aa("Gecko/");var h=["","moz","ms","webkit"];w.call(this,"Video",a,fe,262144);this.Z=a.screenWidth;this.O=a.screenHeight;this.Ta=a.bufferAddr;this.Hd=a.bufferRAM;var g=a.bufferFormat;this.ra=g&&ge[g.toUpperCase()]||he;this.ba=a.bufferCols;this.va=a.bufferRows;this.jc=this.pa=a.cellWidth||1;this.la=a.cellHeight||1;this.ya=null;this.mc=!1;this.$a=a.bufferBits||1;this.Id=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&& function ge(a,b,c,d,e){var f=this;this.oc=Aa("Gecko/");var h=["","moz","ms","webkit"];w.call(this,"Video",a,ge,262144);this.Z=a.screenWidth;this.O=a.screenHeight;this.Ta=a.bufferAddr;this.Hd=a.bufferRAM;var g=a.bufferFormat;this.ra=g&&he[g.toUpperCase()]||ie;this.ba=a.bufferCols;this.va=a.bufferRows;this.jc=this.pa=a.cellWidth||1;this.la=a.cellHeight||1;this.ya=null;this.mc=!1;this.$a=a.bufferBits||1;this.Id=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
(this.ja("unsupported buffer rotation: "+this.w),this.w=0);this.ab=a.interruptRate;this.wc=a.refreshRate||60;this.M=b;this.D=c;this.ia=(this.Cc=d)||b||null;this.Fd=this.Z;this.Gd=this.O;this.kc=this.Z/this.ba|0;this.lc=this.O/this.va|0;1<this.la&&(this.va++,this.eb=0,this.rb=!1);b=a.smoothing;(c=Va.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.D[d]){this.D[d]=b;break}if(this.I=a.screenRotate)this.I=this.I% (this.ja("unsupported buffer rotation: "+this.w),this.w=0);this.ab=a.interruptRate;this.wc=a.refreshRate||60;this.M=b;this.I=c;this.ia=(this.Cc=d)||b||null;this.Fd=this.Z;this.Gd=this.O;this.kc=this.Z/this.ba|0;this.lc=this.O/this.va|0;1<this.la&&(this.va++,this.eb=0,this.rb=!1);b=a.smoothing;(c=Va.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D%
360,0<this.I&&(this.I-=360),-90!=this.I?(this.ja("unsupported screen rotation: "+this.I),this.I=0):(this.D.translate(0,this.O),this.D.rotate(this.I*Math.PI/180),this.D.scale(this.O/this.Z,this.Z/this.O));if(this.j=e)if(this.j.fb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.fb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ie(f,document.fullscreenElement||document.msFullscreenElement|| 360,0<this.D&&(this.D-=360),-90!=this.D?(this.ja("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Z,this.Z/this.O));if(this.j=e)if(this.j.fb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.fb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){je(f,document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){ie(f,null)},!1);break}}if(this.da=a.fontROM)"json"!=fa(this.da)&&(this.da=ha()+"/api/v1/dump?file="+this.da+"&format=bytes"),sa(this.da,null,!0,function(a,b,c){je(f,a,b,c)});this.Mb={}}bb(fe);var he=0,ge={SI1978:1,VT100:2}; document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){je(f,null)},!1);break}}if(this.da=a.fontROM)"json"!=fa(this.da)&&(this.da=ha()+"/api/v1/dump?file="+this.da+"&format=bytes"),sa(this.da,null,!0,function(a,b,c){ke(f,a,b,c)});this.Mb={}}bb(ge);var ie=0,he={SI1978:1,VT100:2};
function Qd(a){a.J=a.ba*a.pa;a.aa=a.va*a.la;var b=a.J,c=a.aa;a.w&&(b=a.aa,c=a.J);a.P=0;if(!a.Hd&&(a.P=(a.J*a.$a>>3)*a.aa,!zb(a.u,a.Ta,a.P,3)))return!1;a.P?(a.pc=a.D.createImageData(b,c),a.rc=16/a.$a|0,ke(a,a.P>>1)):ke(a,(a.ba+1)*a.va);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.qb=a.L.getContext("2d");a.ea={};a.ka=1<<a.$a;a.ga=Array(a.ka+2);a.ga[0]=[0,0,0,255];a.ga[1]=[255,255,255,255];1==a.ra&&(a.ga[a.ka+0]=[255,255,0,255],a.ga[a.ka+1]=[0,255,0,255]);2==a.ra&&(a.vc=60,a.sb=!1, function Rd(a){a.J=a.ba*a.pa;a.aa=a.va*a.la;var b=a.J,c=a.aa;a.w&&(b=a.aa,c=a.J);a.P=0;if(!a.Hd&&(a.P=(a.J*a.$a>>3)*a.aa,!zb(a.u,a.Ta,a.P,3)))return!1;a.P?(a.pc=a.I.createImageData(b,c),a.rc=16/a.$a|0,le(a,a.P>>1)):le(a,(a.ba+1)*a.va);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.qb=a.L.getContext("2d");a.ea={};a.ka=1<<a.$a;a.ga=Array(a.ka+2);a.ga[0]=[0,0,0,255];a.ga[1]=[255,255,255,255];1==a.ra&&(a.ga[a.ka+0]=[255,255,0,255],a.ga[a.ka+1]=[0,255,0,255]);2==a.ra&&(a.vc=60,a.sb=!1,
a.Ea=Array(a.ba));return!0}fe.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Qd(this);if(this.K=vb(a,"Keyboard")){for(var e in this.Mb)this.K.na("led",e,this.Mb[e]);this.M&&this.K.na(this.Cc?"textarea":"canvas","kbd",this.ia)}var f=this;this.xc=Kc(this.b,function(){Mc(f)});Lc(this.b,this.xc,1E3/Math.max(this.wc,this.ab));this.sc=0;this.da||E(this)}; a.Ea=Array(a.ba));return!0}ge.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Rd(this);if(this.K=vb(a,"Keyboard")){for(var e in this.Mb)this.K.na("led",e,this.Mb[e]);this.M&&this.K.na(this.Cc?"textarea":"canvas","kbd",this.ia)}var f=this;this.xc=Kc(this.b,function(){Nc(f)});Lc(this.b,this.xc,1E3/Math.max(this.wc,this.ab));this.sc=0;this.da||E(this)};
function je(a,b,c,d){if(d)a.ja("Unable to load font ROM (error "+d+": "+b+")");else{db(a.Cb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){v("Empty font ROM: "+b);return}if(1==f.length){v(f[0]);return}if(2048==f.length)a.ya=f,Rd(a);else{a.ja("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ja("Font ROM data error: "+h.message);return}(a.D||a.H)&&E(a)}} function ke(a,b,c,d){if(d)a.ja("Unable to load font ROM (error "+d+": "+b+")");else{db(a.Cb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){v("Empty font ROM: "+b);return}if(1==f.length){v(f[0]);return}if(2048==f.length)a.ya=f,Sd(a);else{a.ja("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ja("Font ROM data error: "+h.message);return}(a.I||a.H)&&E(a)}}
function Rd(a){a.ya&&(a.mc=2==a.ra,a.ea[96]=[le(a,a.pa,a.la),le(a,a.pa,a.la,a.sb)],a.ea[64]=[le(a,2*a.pa,a.la),le(a,2*a.pa,a.la,a.sb)],a.ea[32]=a.ea[0]=[le(a,2*a.pa,2*a.la),le(a,2*a.pa,2*a.la,a.sb)])} function Sd(a){a.ya&&(a.mc=2==a.ra,a.ea[96]=[me(a,a.pa,a.la),me(a,a.pa,a.la,a.sb)],a.ea[64]=[me(a,2*a.pa,a.la),me(a,2*a.pa,a.la,a.sb)],a.ea[32]=a.ea[0]=[me(a,2*a.pa,2*a.la),me(a,2*a.pa,2*a.la,a.sb)])}
function le(a,b,c,d){var e=8>=a.jc?8:16,f=8<e?15:0,h=a.ya.length/e,g=!1===d,k={pa:b,la:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.la;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.ya[u],r=0;r<c/a.la;r++){for(var B=0,y=0,X=y;y<a.pa;y++){for(var A=u&128>>(7<y?7:y),B=a.mc&&!A&&B?B:A,Q=0;Q<b/a.pa;Q++)g&&(B=!B),me(a,l,X,x,B?1:0),X++;B=A}x++}k.context.putImageData(l, function me(a,b,c,d){var e=8>=a.jc?8:16,f=8<e?15:0,h=a.ya.length/e,g=!1===d,k={pa:b,la:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.la;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.ya[u],r=0;r<c/a.la;r++){for(var B=0,y=0,X=y;y<a.pa;y++){for(var A=u&128>>(7<y?7:y),B=a.mc&&!A&&B?B:A,Q=0;Q<b/a.pa;Q++)g&&(B=!B),ne(a,l,X,x,B?1:0),X++;B=A}x++}k.context.putImageData(l,
(p&15)*b,(p>>4)*c)}return k}fe.prototype.Da=function(){return!0};fe.prototype.na=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Mb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.fb?c.onclick=function(){d.fb()}:c.parentNode.removeChild(c),!0}return!1}; (p&15)*b,(p>>4)*c)}return k}ge.prototype.Da=function(){return!0};ge.prototype.na=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Mb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.fb?c.onclick=function(){d.fb()}:c.parentNode.removeChild(c),!0}return!1};
fe.prototype.fb=function(){var a=!1;if(this.j){if(this.j.fb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Z/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.oc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.fb();a=!0}this.ia&&this.ia.focus()}return a}; ge.prototype.fb=function(){var a=!1;if(this.j){if(this.j.fb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Z/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.oc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.fb();a=!0}this.ia&&this.ia.focus()}return a};
function ie(a,b){!b&&a.j&&(a.oc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");jb(a,"notifyFullScreen("+b+")")}function ke(a,b){a.qc=b;a.ha=!1;if(void 0===a.G||a.G.length!=a.qc)a.G=Array(a.qc)}function me(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ra&&(208<=c&&236>c?e=a.ka+0:28<=c&&72>c&&(e=a.ka+1));a=a.ga[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function je(a,b){!b&&a.j&&(a.oc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");jb(a,"notifyFullScreen("+b+")")}function le(a,b){a.qc=b;a.ha=!1;if(void 0===a.G||a.G.length!=a.qc)a.G=Array(a.qc)}function ne(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ra&&(208<=c&&236>c?e=a.ka+0:28<=c&&72>c&&(e=a.ka+1));a=a.ga[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Mc(a,b){var c=!0;if(!b){a.ab&&(120==a.ab?a.sc&1?(Gd(a.b,2),c=!1):Gd(a.b,1):Gd(a.b,4));if(c&&a.ha&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Ta>>>d.qa;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].ec=!0),e-=d.Ga,h++;f&&(c=!1)}Lc(a.b,a.xc,1E3/Math.max(a.wc,a.ab));a.sc++}if(c)if(1<a.pa)switch(a.ra){case 2:for(var c=a.Ta,d=-1,e=0,f=60==a.vc?2:5,g=h=0,k=-1;e<a.va;){var l=0,p=c,q=d,x=a.ba;for(96!=q&&(x>>=1);;){var u=Cb(a.u,p++);if(127==(u&127)){var r=Cb(a.u,p++),d=r&96,c=(r&15)<<8|Cb(a.u,p),c=c+ function Nc(a,b){var c=!0;if(!b){a.ab&&(120==a.ab?a.sc&1?(Hd(a.b,2),c=!1):Hd(a.b,1):Hd(a.b,4));if(c&&a.ha&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Ta>>>d.qa;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].ec=!0),e-=d.Ga,h++;f&&(c=!1)}Lc(a.b,a.xc,1E3/Math.max(a.wc,a.ab));a.sc++}if(c)if(1<a.pa)switch(a.ra){case 2:for(var c=a.Ta,d=-1,e=0,f=60==a.vc?2:5,g=h=0,k=-1;e<a.va;){var l=0,p=c,q=d,x=a.ba;for(96!=q&&(x>>=1);;){var u=Cb(a.u,p++);if(127==(u&127)){var r=Cb(a.u,p++),d=r&96,c=(r&15)<<8|Cb(a.u,p),c=c+
(r&16?8192:16384);break}if(l<x)a.Ea[l++]=u;else break}if(f)f--;else{for(;l<a.Ea.length;)a.Ea[l++]=0;if(0<=q)for(p=a.ha&&a.G[h]==x,a.G[h++]=x,x=0;x<l;x++){u=a.Ea[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,B=a.qb,y=u&127;if(u=r.ea[q][u&128?1:0]){var X=(y&15)*u.pa,y=(y>>4)*u.la,A=void 0,Q=void 0,aa=void 0,Y=void 0,ua=u.pa,Eb=u.la;B?(A=x*r.pa,Q=e*r.la,aa=r.pa,Y=r.la):(A=x*r.kc,Q=e*r.lc,aa=r.kc,Y=r.lc);u.pa>r.pa&&(A*=2,aa*=2);u.la>r.la&&(0==q&&(y+=r.la),Eb=r.la);B?B.drawImage(u.canvas,X,y,ua,Eb,A,Q,aa,Y): (r&16?8192:16384);break}if(l<x)a.Ea[l++]=u;else break}if(f)f--;else{for(;l<a.Ea.length;)a.Ea[l++]=0;if(0<=q)for(p=a.ha&&a.G[h]==x,a.G[h++]=x,x=0;x<l;x++){u=a.Ea[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,B=a.qb,y=u&127;if(u=r.ea[q][u&128?1:0]){var X=(y&15)*u.pa,y=(y>>4)*u.la,A=void 0,Q=void 0,aa=void 0,Y=void 0,ua=u.pa,Fb=u.la;B?(A=x*r.pa,Q=e*r.la,aa=r.pa,Y=r.la):(A=x*r.kc,Q=e*r.lc,aa=r.kc,Y=r.lc);u.pa>r.pa&&(A*=2,aa*=2);u.la>r.la&&(0==q&&(y+=r.la),Fb=r.la);B?B.drawImage(u.canvas,X,y,ua,Fb,A,Q,aa,Y):
(A+=0,Q+=0,r.D.drawImage(u.canvas,X,y,ua,Eb,A,Q,aa,Y))}g++}h++}e++}}a.ha=!0;!b&&a.rb&&1==g&&(a.G[k]=-1,g=0);a.rb=!1;(g||b)&&a.qb&&a.D.drawImage(a.L,0,a.eb,a.J,a.aa-a.la,0,0,a.Fd,a.Gd)}else{f=a.Ta;h=f+a.P;l=k=g=0;c=a.J;q=0;d=a.aa;p=e=0;x=a.$a;r=(1<<x)-1;a.Id&&(x=-x,p=16+x);for(;f<h;){B=Db(a.u,f);if(a.ha&&B===a.G[g])k+=a.rc;else{a.G[g]=B;(u=p)&&(B=B>>8|(B&255)<<8);k<c&&(c=k);for(X=a.rc;X--;)y=B>>u&r,me(a,a.pc,k++,l,y),u+=x;k>q&&(q=k);l<d&&(d=l);l>=e&&(e=l+1)}f+=2;g++;if(k>=a.J&&(k=0,l++,l>a.aa))break}a.ha= (A+=0,Q+=0,r.I.drawImage(u.canvas,X,y,ua,Fb,A,Q,aa,Y))}g++}h++}e++}}a.ha=!0;!b&&a.rb&&1==g&&(a.G[k]=-1,g=0);a.rb=!1;(g||b)&&a.qb&&a.I.drawImage(a.L,0,a.eb,a.J,a.aa-a.la,0,0,a.Fd,a.Gd)}else{f=a.Ta;h=f+a.P;l=k=g=0;c=a.J;q=0;d=a.aa;p=e=0;x=a.$a;r=(1<<x)-1;a.Id&&(x=-x,p=16+x);for(;f<h;){B=Db(a.u,f);if(a.ha&&B===a.G[g])k+=a.rc;else{a.G[g]=B;(u=p)&&(B=B>>8|(B&255)<<8);k<c&&(c=k);for(X=a.rc;X--;)y=B>>u&r,ne(a,a.pc,k++,l,y),u+=x;k>q&&(q=k);l<d&&(d=l);l>=e&&(e=l+1)}f+=2;g++;if(k>=a.J&&(k=0,l++,l>a.aa))break}a.ha=
!0;c<a.J&&(f=q-c,e-=d,a.w&&(h=c,g=f,c=d,f=e,d=a.J-(h+g),e=g),a.qb.putImageData(a.pc,0,0,c,d,f,e),a.D.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Z,a.O))}} !0;c<a.J&&(f=q-c,e-=d,a.w&&(h=c,g=f,c=d,f=e,d=a.J-(h+g),e=g),a.qb.putImageData(a.pc,0,0,c,d,f,e),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Z,a.O))}}
Ma(function(){for(var a=C(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ta().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= Ma(function(){for(var a=C(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ta().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(La("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Aa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new fe(d,e,h,f,c);hb(d,c)}}); (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(La("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Aa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new ge(d,e,h,f,c);hb(d,c)}});
function ne(a){this.da=+a.adapter;switch(this.da){case 0:this.ea=0;this.ha=2;break;default:v("Unrecognized serial adapter #"+this.da);return}this.j=this.w=null;this.ga=a.tabSize;this.ba=a.charBOL;this.D=0;this.Z=!1;w.call(this,"SerialPort",a,ne,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=oe;b&&(void 0===c&&(c="Panel"),(c=gb(c,this.id))&&(b=c.N[b])&&this.na(null,a,b))}this.G="";this.K=this.L=null;this.exports={connect:this.ic,receiveData:this.Pb}}bb(ne); function oe(a){this.da=+a.adapter;switch(this.da){case 0:this.ea=0;this.ha=2;break;default:v("Unrecognized serial adapter #"+this.da);return}this.j=this.w=null;this.ga=a.tabSize;this.ba=a.charBOL;this.D=0;this.Z=!1;w.call(this,"SerialPort",a,oe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=pe;b&&(void 0===c&&(c="Panel"),(c=gb(c,this.id))&&(b=c.N[b])&&this.na(null,a,b))}this.G="";this.K=this.L=null;this.exports={connect:this.ic,receiveData:this.Pb}}bb(oe);
var pe=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],qe=[!1,0,0,133,142,39,238],oe="buffer";m=ne.prototype; var qe=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],re=[!1,0,0,133,142,39,238],pe="buffer";m=oe.prototype;
m.na=function(a,b,c,d){var e=this;switch(b){case oe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),re(e,b);return!0},c.onkeypress=function(a){a=a||window.event;re(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Pb(d);return!0}, m.na=function(a,b,c,d){var e=this;switch(b){case pe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),se(e,b);return!0},c.onkeypress=function(a){a=a||window.event;se(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Pb(d);return!0},
!0}return!1};m.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.ia=Kc(this.b,function(){e.Pb()});this.ka=Kc(this.b,function(){e.Ca|=5});this.I=vb(a,"ChipSet");Hb(b,this,se,this.ea);Tb(b,this,te,this.ea);E(this)}; !0}return!1};m.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.ia=Kc(this.b,function(){e.Pb()});this.ka=Kc(this.b,function(){e.Ca|=5});this.I=vb(a,"ChipSet");Hb(b,this,te,this.ea);Tb(b,this,ue,this.ea);E(this)};
m.ic=function(){if(!this.K){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.Ya)return;b=ma(b[1]);if(this.K=fb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.L=d.receiveData){this.status(this.Cb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};m.Da=function(a,b){if(!b)if(this.ic(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; m.ic=function(){if(!this.K){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.Ya)return;b=ma(b[1]);if(this.K=fb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.L=d.receiveData){this.status(this.Cb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};m.Da=function(a,b){if(!b)if(this.ic(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
m.Ha=function(a){return a?this.save():!0};m.reset=function(){ue(this)};m.save=function(){var a=new H(this),b=0,c=[];c[b++]=this.Ma;c[b++]=this.P;c[b++]=this.aa;c[b++]=this.Ca;c[b++]=this.J;c[b++]=this.O;c[b]=this.M;I(a,0,c);return a.data()};m.restore=function(a){return ue(this,a[0])};function ue(a,b){var c=0;void 0===b&&(b=qe);a.Ma=b[c++];a.P=b[c++];a.aa=b[c++];a.Ca=b[c++];a.J=b[c++];a.O=b[c++];a.M=b[c];return!0} m.Ha=function(a){return a?this.save():!0};m.reset=function(){ve(this)};m.save=function(){var a=new H(this),b=0,c=[];c[b++]=this.Ma;c[b++]=this.P;c[b++]=this.aa;c[b++]=this.Ca;c[b++]=this.J;c[b++]=this.O;c[b]=this.M;I(a,0,c);return a.data()};m.restore=function(a){return ve(this,a[0])};function ve(a,b){var c=0;void 0===b&&(b=re);a.Ma=b[c++];a.P=b[c++];a.aa=b[c++];a.Ca=b[c++];a.J=b[c++];a.O=b[c++];a.M=b[c];return!0}
function ve(a,b){var c=a.M&b;b&15||(c>>=4);var c=pe[c],d=((a.J&12)>>2)+6;a.J&16&&d++;d+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function re(a,b){jb(a,"receiveByte("+da(b)+"), status="+da(a.Ca));return a.Z||a.Ca&2?!1:(a.P=b,a.Ca|=2,Gd(a.b,a.ha),!0)}m.Pb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(re(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Lc(this.b,this.ia,ve(this,15)));return!0}; function we(a,b){var c=a.M&b;b&15||(c>>=4);var c=qe[c],d=((a.J&12)>>2)+6;a.J&16&&d++;d+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function se(a,b){jb(a,"receiveByte("+da(b)+"), status="+da(a.Ca));return a.Z||a.Ca&2?!1:(a.P=b,a.Ca|=2,Hd(a.b,a.ha),!0)}m.Pb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(se(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Lc(this.b,this.ia,we(this,15)));return!0};
m.kd=function(a,b){var c=this.P;D(this,a,null,b,"DATA",c);this.Ca&=-3;return c};m.jd=function(a,b){var c=this.Ca;D(this,a,null,b,"STATUS",c);return c}; m.kd=function(a,b){var c=this.P;D(this,a,null,b,"DATA",c);this.Ca&=-3;return c};m.jd=function(a,b){var c=this.Ca;D(this,a,null,b,"STATUS",c);return c};
m.ud=function(a,b,c){D(this,a,b,c,"DATA");this.aa=b;this.Ca&=-6;jb(this,"transmitByte("+da(b)+")");if(19==b)this.Z=!0;else if(17==b)this.Z=!1;else if(this.L&&this.L.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ga||8,c=b-this.D%b,this.ga&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ba&&!this.D&&c&&(a=String.fromCharCode(this.ba)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,this.D+= m.ud=function(a,b,c){D(this,a,b,c,"DATA");this.aa=b;this.Ca&=-6;jb(this,"transmitByte("+da(b)+")");if(19==b)this.Z=!0;else if(17==b)this.Z=!1;else if(this.L&&this.L.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ga||8,c=b-this.D%b,this.ga&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ba&&!this.D&&c&&(a=String.fromCharCode(this.ba)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,this.D+=
c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.ka,ve(this,240))};m.td=function(a,b,c){D(this,a,b,c,"CONTROL");this.Ma?(this.O=b,this.O&64&&(this.Ma=!1)):(this.J=b,this.Ma=!0)};m.sd=function(a,b,c){D(this,a,b,c,"BAUDRATES");this.M=b};var se={0:ne.prototype.kd,1:ne.prototype.jd},te={0:ne.prototype.ud,1:ne.prototype.td,2:ne.prototype.sd}; c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.ka,we(this,240))};m.td=function(a,b,c){D(this,a,b,c,"CONTROL");this.Ma?(this.O=b,this.O&64&&(this.Ma=!1)):(this.J=b,this.Ma=!0)};m.sd=function(a,b,c){D(this,a,b,c,"BAUDRATES");this.M=b};var te={0:oe.prototype.kd,1:oe.prototype.jd},ue={0:oe.prototype.ud,1:oe.prototype.td,2:oe.prototype.sd};
Ma(function(){for(var a=C(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ne(d);hb(d,c)}}); Ma(function(){for(var a=C(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new oe(d);hb(d,c)}});
function we(a){w.call(this,"Debugger",a,we);this.style=xe;this.Z=this.ra=this.J=0;this.M=W();this.$a=W();this.D=-1;this.w=[];this.ba=!1;this.aa=W();this.G=[];this.da={};this.j=this.O=this.I=[];ye(this);this.ha=0;ze(this);this.va=[];Ae(this,a.messages);this.ya=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Cc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Cc(b,a)})}bb(we); function xe(a){w.call(this,"Debugger",a,xe);this.style=ye;this.Z=this.ra=this.J=0;this.M=W();this.$a=W();this.I=-1;this.w=[];this.ba=!1;this.aa=W();this.G=[];this.da={};this.j=this.O=this.D=[];ze(this);this.ha=0;Ae(this);this.va=[];Be(this,a.messages);this.ya=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Cc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Cc(b,a)})}bb(xe);
var Be={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"}, var Ce={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
xe=8080,Ce="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),De="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "), ye=8080,De="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Ee="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
Ee="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Fe=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963, Fe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Ge=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,
2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529, 2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,
785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809], 785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],
[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66, [43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,
18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193, 18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,
785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77, 785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,
18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]];m=we.prototype; 18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]];m=xe.prototype;
m.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Ae(this,a);this.Ea=Fe;Od(this,64,function(a){a:{var b=d.u.X,c=a[0],g=a=0,k=b.length;if(c){a=Ge(He(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.u.qa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=Bb[c],p&&d.g(n(p.id)+" %"+n(g<<d.u.qa)+" %%"+n(p.F)+" "+t(p.yb)+" "+ m.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Be(this,a);this.Ea=Ge;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],g=a=0,k=b.length;if(c){a=He(Ie(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.u.qa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=Bb[c],p&&d.g(n(p.id)+" %"+n(g<<d.u.qa)+" %%"+n(p.F)+" "+t(p.yb)+" "+
t(p.size)+" "+l),c!=$b&&(c=-1),l=0);a+=d.u.Ga;g++}}});E(this)}; t(p.size)+" "+l),c!=$b&&(c=-1),l=0);a+=d.u.Ga;g++}}});E(this)};
m.na=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ga=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Cc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.D<d.w.length-1&&(b=d.w[++d.D]):40==a.keyCode&&(0<d.D?b=d.w[--d.D]:(b="",d.D=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ca(c,function(){if(d.ga){var a=d.ga.value;d.ga.value= m.na=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ga=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Cc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.I<d.w.length-1&&(b=d.w[++d.I]):40==a.keyCode&&(0<d.I?b=d.w[--d.I]:(b="",d.I=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ca(c,function(){if(d.ga){var a=d.ga.value;d.ga.value=
"";Cc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Ca(c,function(a){var b=!1;mb(d,!0)||(lb(d,!0),b=d.mb(a?1:0),lb(d,!1));return b}),!0}return!1};m.xb=function(){this.ga&&this.ga.focus()};function Ge(a){a=a&&a.F;null==a&&(a=-1);return a}m.$=function(a,b){var c=255,d=Ge(a);-1!==d&&(c=Cb(this.u,d),b&&Ie(a,b));return c};m.Sa=function(a,b){var c=65535,d=Ge(a);-1!==d&&(c=Db(this.u,d),b&&Ie(a,b));return c};m.ua=function(a,b,c){var d=Ge(a);-1!==d&&(Fb(this.u,d,b),c&&Ie(a,c),Dc(this.b,!0))}; "";Cc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Ca(c,function(a){var b=!1;mb(d,!0)||(lb(d,!0),b=d.mb(a?1:0),lb(d,!1));return b}),!0}return!1};m.xb=function(){this.ga&&this.ga.focus()};function He(a){a=a&&a.F;null==a&&(a=-1);return a}m.$=function(a,b){var c=255,d=He(a);-1!==d&&(c=Cb(this.u,d),b&&Je(a,b));return c};m.Sa=function(a,b){var c=65535,d=He(a);-1!==d&&(c=Db(this.u,d),b&&Je(a,b));return c};m.ua=function(a,b,c){var d=He(a);-1!==d&&(Eb(this.u,d,b),c&&Je(a,c),Dc(this.b,!0))};
m.Ib=function(a,b,c){var d=Ge(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.qa;f!=e.u?e.X[h].Rb(f,b&65535,d):(e.X[h++].zb(f,b&255,d),e.X[h&e.K].zb(0,b>>8&255,d+1));c&&Ie(a,c);Dc(this.b,!0)}};function W(a){return{F:a,Oa:!1}}function Je(a){return[a.F,a.Oa]}function Ke(a){return{F:a[0],Oa:a[1]}} m.Ib=function(a,b,c){var d=He(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.qa;f!=e.u?e.X[h].Rb(f,b&65535,d):(e.X[h++].zb(f,b&255,d),e.X[h&e.K].zb(0,b>>8&255,d+1));c&&Je(a,c);Dc(this.b,!0)}};function W(a){return{F:a,Oa:!1}}function Ke(a){return[a.F,a.Oa]}function Le(a){return{F:a[0],Oa:a[1]}}
function He(a,b,c){var d;c=(c?a.M:a.$a).F;if(void 0!==b){d=b=Le(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Me(a,b,void 0)}null!=c&&(d=W(c));return d}function Ne(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.fd=Oe(a,b.uc=c[2]))}function Ie(a,b){null!=a.F&&(a.F+=b||1)}function Z(a){return n(a,4)} function Ie(a,b,c){var d;c=(c?a.M:a.$a).F;if(void 0!==b){d=b=Me(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Ne(a,b,void 0)}null!=c&&(d=W(c));return d}function Oe(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.fd=Pe(a,b.uc=c[2]))}function Je(a,b){null!=a.F&&(a.F+=b||1)}function Z(a){return n(a,4)}
function Pe(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.$(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ae(a,b){a.H=a;a.sa=a.gd=536870912;a.ia=null;a.ka=[];var c=Oe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in tb)0<=ra(c,d)&&(a.sa|=tb[d],a.g(d+" messages enabled"))}function Od(a,b,c){for(var d in tb)if(b==tb[d]){a.va[d]=c;break}} function Qe(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.$(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Be(a,b){a.H=a;a.sa=a.gd=536870912;a.ia=null;a.ka=[];var c=Pe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in tb)0<=ra(c,d)&&(a.sa|=tb[d],a.g(d+" messages enabled"))}function Pd(a,b,c){for(var d in tb)if(b==tb[d]){a.va[d]=c;break}}
function Qe(a,b){var c;a=a.toUpperCase();null==b?c=ra(Ee,a):(c=ra(Ee,a.substr(b,2)),0>c&&(c=ra(Ee,a.substr(b,1))));return c}function Re(a,b){var c=0,d=Se(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"} function Re(a,b){var c;a=a.toUpperCase();null==b?c=ra(Fe,a):(c=ra(Fe,a.substr(b,2)),0>c&&(c=ra(Fe,a.substr(b,1))));return c}function Se(a,b){var c=0,d=Te(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"}
function Se(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.i;break;case 0:c=d.S;break;case 1:c=d.T;break;case 8:c=Uc(d);break;case 2:c=d.U;break;case 3:c=d.V;break;case 9:c=Wc(d);break;case 4:c=d.W;break;case 5:c=d.Y;break;case 10:c=J(d);break;case 6:c=d.$(J(d));break;case 11:c=d.ma;break;case 12:c=d.R;break;case 13:c=Tc(d);break;case 14:c=Tc(d)&255|d.i<<8}}return c} function Te(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.i;break;case 0:c=d.S;break;case 1:c=d.T;break;case 8:c=Vc(d);break;case 2:c=d.U;break;case 3:c=d.V;break;case 9:c=Xc(d);break;case 4:c=d.W;break;case 5:c=d.Y;break;case 10:c=J(d);break;case 6:c=d.$(J(d));break;case 11:c=d.ma;break;case 12:c=d.R;break;case 13:c=Uc(d);break;case 14:c=Uc(d)&255|d.i<<8}}return c}
function Te(a,b){b=Le(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Qe(b,c+1),0<=e&&(b=b.substr(0,c)+Re(a,e)+b.substr(c+1+Ee[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=He(a,e))?(d=e+' "'+Pe(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=He(a,e))?(Ie(d),d=e+' "'+ function Ue(a,b){b=Me(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Re(b,c+1),0<=e&&(b=b.substr(0,c)+Se(a,e)+b.substr(c+1+Fe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Ie(a,e))?(d=e+' "'+Qe(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Ie(a,e))?(Je(d),d=e+' "'+
Pe(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(W(this.b.R).F));if(this.sa&1073741824)this.ka.push(a);else if(!this.ia||a!=this.ia)if(this.ia=a,this.sa&-2147483648&&(this.oa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.P=0;c.j-=c.b;c.b=0;Dc(c)}}; Qe(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(W(this.b.R).F));if(this.sa&1073741824)this.ka.push(a);else if(!this.ia||a!=this.ia)if(this.ia=a,this.sa&-2147483648&&(this.oa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Mc(c);c.P=0;Dc(c)}};
function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.sa&g)!=g||a.message(b.Ya+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?","+da(d):"")+")"+(null!=h?": "+da(h):"")+(null!=e?" at "+Z(e):""))} function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.sa&g)!=g||a.message(b.Ya+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?","+da(d):"")+")"+(null!=h?": "+da(h):"")+(null!=e?" at "+Z(e):""))}
function ze(a){var b;if(Hd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.ea=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.ea=0,a.L=[],a.K=[]}m.cb=function(a){if(!Ue(this))return!1;this.b.cb(a);return!0}; function Ae(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.ea=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.ea=0,a.L=[],a.K=[]}m.cb=function(a){if(!Ve(this))return!1;this.b.cb(a);return!0};
m.mb=function(a,b,c){if(!Ue(this))return!1;this.J=0;a||Hd(this)&&Id(this,this.b.R,0);try{var d=this.b.mb(a);0<d&&(this.J+=d,Ic(this.b,d,!0),Fc(this.b,d),this.Z++)}catch(e){"number"!=typeof e&&(this.J=0,qb(this.b,e.stack||e.message))}!1!==c&&Dc(this.b);this.Ia(b||!1);return 0<this.J};m.oa=function(a){this.b&&this.b.oa(a)};m.Ia=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.P?Ve(this):uf(this)}; m.mb=function(a,b,c){if(!Ve(this))return!1;this.J=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.mb(a);0<d&&(this.J+=d,Ic(this.b,d,!0),Fc(this.b,d),this.Z++)}catch(e){"number"!=typeof e&&(this.J=0,qb(this.b,e.stack||e.message))}!1!==c&&Dc(this.b);this.Ia(b||!1);return 0<this.J};m.oa=function(a){this.b&&this.b.oa(a)};m.Ia=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.P?We(this):vf(this)};
function Ue(a){var b;if(b=a.b&&pb(a.b))b=a.b,b.C.wa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.ib?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Da=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ha=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){ze(this);this.Z=this.ra=0;this.ia=null;this.J=0;this.M=W(this.b.R);this.C.za=!1;vf(this);a||this.Ia()}; function Ve(a){var b;if(b=a.b&&pb(a.b))b=a.b,b.C.wa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.ib?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Da=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ha=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Ae(this);this.Z=this.ra=0;this.ia=null;this.J=0;this.M=W(this.b.R);this.C.za=!1;wf(this);a||this.Ia()};
m.save=function(){var a=new H(this);I(a,0,Je(this.M));I(a,1,Je(this.aa));I(a,2,[this.w,this.ba,this.sa]);I(a,3,this.G);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Ke(a[b++]),this.aa=Ke(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.ba=a[b][1],this.sa|=a[b][2]);a[3]&&(this.G=a[3]);return!0};m.start=function(a,b){this.P||this.g("running");this.C.za=!0;this.qb=a;this.rb=b}; m.save=function(){var a=new H(this);I(a,0,Ke(this.M));I(a,1,Ke(this.aa));I(a,2,[this.w,this.ba,this.sa]);I(a,3,this.G);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Le(a[b++]),this.aa=Le(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.ba=a[b][1],this.sa|=a[b][2]);a[3]&&(this.G=a[3]);return!0};m.start=function(a,b){this.P||this.g("running");this.C.za=!0;this.qb=a;this.rb=b};
m.stop=function(a,b){if(this.C.za){this.C.za=!1;this.J=b-this.rb;if(!this.P){var c="stopped";if(this.J){var d=a-this.qb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Hd(this)&&(c+=this.Z+" opcodes, ",this.ra-=this.Z,this.Z=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ia(!0);this.xb();vf(this,this.b.R)}};function Hd(a){return 1<a.j.length||!!a.ha} m.stop=function(a,b){if(this.C.za){this.C.za=!1;this.J=b-this.rb;if(!this.P){var c="stopped";if(this.J){var d=a-this.qb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Id(this)&&(c+=this.Z+" opcodes, ",this.ra-=this.Z,this.Z=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ia(!0);this.xb();wf(this,this.b.R)}};function Id(a){return 1<a.j.length||!!a.ha}
function Id(a,b,c){var d=a.b;if(0<c&&(a.ha&&!--a.ha||ic(a,b,1,a.j)))return!0;0<=c&&a.K.length&&(a.Z++,b=Cb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.ea],b.F=d.R,b.Oa=!1,++a.ea==a.L.length&&(a.ea=0)));return!1}function Rb(a,b,c){a.g("break on input from port "+t(b)+": "+n(c));a.oa(!0)}function Vb(a,b,c){a.g("break on output to port "+t(b)+": "+n(c));a.oa(!0)} function Jd(a,b,c){var d=a.b;if(0<c&&(a.ha&&!--a.ha||ic(a,b,1,a.j)))return!0;0<=c&&a.K.length&&(a.Z++,b=Cb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.ea],b.F=d.R,b.Oa=!1,++a.ea==a.L.length&&(a.ea=0)));return!1}function Jb(a,b,c){a.g("break on input from port "+t(b)+": "+n(c));a.oa(!0)}function Vb(a,b,c){a.g("break on output to port "+t(b)+": "+n(c));a.oa(!0)}
function ye(a){var b,c;a.j=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;jc(d.X[Ge(c)>>>d.qa],!1)}a.O=["br"];if(void 0!==a.I)for(b=1;b<a.I.length;b++)c=a.I[b],d=a.u,jc(d.X[Ge(c)>>>d.qa],!0);a.I=["bw"];a.ab=0}m.Za=function(a,b,c){var d=!0;c||wf(this,a,b,!1,!0);if(a!=this.j){var e=Ge(b);if(-1===e)this.g("invalid address: "+Z(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.qa].Za(e&f.u,a==this.I)}}d&&(a.push(b),c?b.Oa=!0:(xf(this,a,a.length-1,"set"),ze(this)));return d}; function ze(a){var b,c;a.j=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;jc(d.X[He(c)>>>d.qa],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,jc(d.X[He(c)>>>d.qa],!0);a.D=["bw"];a.ab=0}m.Za=function(a,b,c){var d=!0;c||xf(this,a,b,!1,!0);if(a!=this.j){var e=He(b);if(-1===e)this.g("invalid address: "+Z(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.qa].Za(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(yf(this,a,a.length-1,"set"),Ae(this)));return d};
function wf(a,b,c,d,e){var f=!1;c=Ge(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Ge(g)&&(!d||g.Oa)){f=!0;g.Oa||e||xf(a,b,h,"cleared");b.splice(h,1);b!=a.j&&(d=a.u,jc(d.X[c>>>d.qa],b==a.I));g.Oa||ze(a);break}}return f}function yf(a,b){for(var c=1;c<b.length;c++)xf(a,b,c);return b.length-1}function xf(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.F)+(d?" "+d:c.uc?' "'+c.uc+'"':""))} function xf(a,b,c,d,e){var f=!1;c=He(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==He(g)&&(!d||g.Oa)){f=!0;g.Oa||e||yf(a,b,h,"cleared");b.splice(h,1);b!=a.j&&(d=a.u,jc(d.X[c>>>d.qa],b==a.D));g.Oa||Ae(a);break}}return f}function zf(a,b){for(var c=1;c<b.length;c++)yf(a,b,c);return b.length-1}function yf(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.F)+(d?" "+d:c.uc?' "'+c.uc+'"':""))}
function vf(a,b){if(void 0!==b)ic(a,b,1,a.j,!0),a.P=0;else for(var c=1;c<a.j.length;c++){var d=a.j[c];if(d.Oa){if(!wf(a,a.j,d,!0))break;c=0}}} function wf(a,b){if(void 0!==b)ic(a,b,1,a.j,!0),a.P=0;else for(var c=1;c<a.j.length;c++){var d=a.j[c];if(d.Oa){if(!xf(a,a.j,d,!0))break;c=0}}}
function ic(a,b,c,d,e){var f=!1;if(!a.ab++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Oa)for(var k=Ge(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.Oa&&(wf(a,d,g,!0),e=!0);if(p=g.fd){for(var f=!1,q=0;q<p.length;q++)if(!zf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.za||(f=!0)}if(f){e||xf(a,d,h,"hit");break}}}a.ab--;return f} function ic(a,b,c,d,e){var f=!1;if(!a.ab++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Oa)for(var k=He(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.Oa&&(xf(a,d,g,!0),e=!0);if(p=g.fd){for(var f=!1,q=0;q<p.length;q++)if(!Af(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.za||(f=!0)}if(f){e||yf(a,d,h,"hit");break}}}a.ab--;return f}
function Af(a,b,c,d){for(var e=W(b.F),f=a.$(b,1),h=a.Ea[f],g="",k=(8086!=a.style?Ce:De)[h[0]],l=h.length-1,p=0,q,x=1;x<=l;x++){var u="";q=h[x];if(void 0!==q&&!(q&16384&&a.style==xe)){var r=q&240;if(r){var B=q&15;B?p=B:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{var u=a,r=q,B=b,y=" ";switch(r&15){case 1:y=n(u.$(B,1),2);break;case 2:y=n(u.$(B,1)<<24>>24,4);break;case 3:y=n(u.Sa(B,2),4);break;default:u="imm("+t(r)+")";break a}8086==u.style&&r&64?y="["+y+"]":r&16||(y=(u.style==xe?"$":"0x")+y);u=y}else r& function Bf(a,b,c,d){for(var e=W(b.F),f=a.$(b,1),h=a.Ea[f],g="",k=(8086!=a.style?De:Ee)[h[0]],l=h.length-1,p=0,q,x=1;x<=l;x++){var u="";q=h[x];if(void 0!==q&&!(q&16384&&a.style==ye)){var r=q&240;if(r){var B=q&15;B?p=B:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{var u=a,r=q,B=b,y=" ";switch(r&15){case 1:y=n(u.$(B,1),2);break;case 2:y=n(u.$(B,1)<<24>>24,4);break;case 3:y=n(u.Sa(B,2),4);break;default:u="imm("+t(r)+")";break a}8086==u.style&&r&64?y="["+y+"]":r&16||(y=(u.style==ye?"$":"0x")+y);u=y}else r&
16?(u=(q&3840)>>8,r=Ee[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=Z(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=n(a.$(e,1),2),null==e.F)break;while(e.F!=b.F)}h+=la(f,10);h=h+(q&32768?"*":" ")+la(k,7);g&&(h+=" "+g);c&&(h=la(h,40)+";"+c,h=a.b.C.hb?h+("cycles="+Gc(a.b).toString()+" cs="+n(a.b.tb)):h+(null!=d?"="+d.toString():""));return h} 16?(u=(q&3840)>>8,r=Fe[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=Z(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=n(a.$(e,1),2),null==e.F)break;while(e.F!=b.F)}h+=la(f,10);h=h+(q&32768?"*":" ")+la(k,7);g&&(h+=" "+g);c&&(h=la(h,40)+";"+c,h=a.b.C.hb?h+("cycles="+Gc(a.b).toString()+" cs="+n(a.b.tb)):h+(null!=d?"="+d.toString():""));return h}
function Bf(a,b){var c;switch(b){case "IF":c=a.b.ta&512;break;case "SF":c=dd(a.b);break;case "ZF":c=cd(a.b);break;case "AF":c=bd(a.b);break;case "PF":c=ad(a.b);break;case "CF":c=Zc(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function Cf(a,b){return Ee[b]+"="+Re(a,b)+" "}function Df(a){return Cf(a,7)+Cf(a,8)+Cf(a,9)+Cf(a,10)+Cf(a,11)+Bf(a,"IF")+Bf(a,"SF")+Bf(a,"ZF")+Bf(a,"AF")+Bf(a,"PF")+Bf(a,"CF")} function Cf(a,b){var c;switch(b){case "IF":c=a.b.ta&512;break;case "SF":c=ed(a.b);break;case "ZF":c=dd(a.b);break;case "AF":c=cd(a.b);break;case "PF":c=bd(a.b);break;case "CF":c=$c(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function Df(a,b){return Fe[b]+"="+Se(a,b)+" "}function Ef(a){return Df(a,7)+Df(a,8)+Df(a,9)+Df(a,10)+Df(a,11)+Cf(a,"IF")+Cf(a,"SF")+Cf(a,"ZF")+Cf(a,"AF")+Cf(a,"PF")+Cf(a,"CF")}
var Ef={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; var Ff={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Ff(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; function Gf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Me(a,b,c){var d;if(b){b=Le(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=Gf(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],x=p.length;k.length&&Ef[p]<Ef[k[k.length-1]]&&Ff(g,k,1);k.push(p);b=b.substr(q+x)}Ff(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Hf(a,null, function Ne(a,b,c){var d;if(b){b=Me(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=Hf(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],x=p.length;k.length&&Ff[p]<Ff[k[k.length-1]]&&Gf(g,k,1);k.push(p);b=b.substr(q+x)}Gf(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&If(a,null,
d))}return d}function Le(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Me(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=He(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.Sa(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.Z-a.ra}if(null==e)break;c=c.replace(d[0],e.toString())}return c} d))}return d}function Me(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Ne(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=Ie(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.Sa(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.Z-a.ra}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function Gf(a,b,c,d){var e;void 0!==b?(e=Qe(b),0<=e?e=Se(a,e):(e=a.da[b],void 0===e&&(e=ca(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e} function Hf(a,b,c,d){var e;void 0!==b?(e=Re(b),0<=e?e=Te(a,e):(e=a.da[b],void 0===e&&(e=ca(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Hf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function If(a,b){if(b)return Hf(a,b,a.da[b]);var c=0;for(b in a.da)Hf(a,b,a.da[b]),c++;return 0<c}we.prototype.Ta=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function If(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Jf(a,b){if(b)return If(a,b,a.da[b]);var c=0;for(b in a.da)If(a,b,a.da[b]),c++;return 0<c}xe.prototype.Ta=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Jf(a,b,c){var d=[],e=Ge(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.F>>>0,g=f.rd;if(e>=h&&e<h+g){e=oa(f.bc,[e-h],a.Ta);0<=e?Kf(a,b,e,d):c&&(e=~e,Kf(a,b,e-1,d),Kf(a,b,e,d));break}}return d}function Kf(a,b,c,d){var e={},f=a.G[b].bc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].Qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)} function Kf(a,b,c){var d=[],e=He(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.F>>>0,g=f.rd;if(e>=h&&e<h+g){e=oa(f.bc,[e-h],a.Ta);0<=e?Lf(a,b,e,d):c&&(e=~e,Lf(a,b,e-1,d),Lf(a,b,e,d));break}}return d}function Lf(a,b,c,d){var e={},f=a.G[b].bc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].Qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Lf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Ce:De;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Ea[h][0]]+" ").substr(0,5)+" ("+da(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}} function Mf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?De:Ee;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Ea[h][0]]+" ").substr(0,5)+" ("+da(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Mf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return If(a)||a.g("no variables"),!0;if(!c[2])return If(a,c[1]);if(!c[3])return delete a.da[c[1]],!0;var d=Me(a,c[3]);return void 0!==d?(a.da[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1} function Nf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Jf(a)||a.g("no variables"),!0;if(!c[2])return Jf(a,c[1]);if(!c[3])return delete a.da[c[1]],!0;var d=Ne(a,c[3]);return void 0!==d?(a.da[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function Nf(a,b,c){var d=null;if(b=He(a,b,!0)){var e=Jf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.F-e[1])&&(h=" + "+t(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.F)&&(h=" - "+t(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d} function Of(a,b,c){var d=null;if(b=Ie(a,b,!0)){var e=Kf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.F-e[1])&&(h=" + "+t(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.F)&&(h=" - "+t(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Of(a,b){switch(b[1]){case "8080":a.style=xe;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.jb=c;break;case "start":a.b.ub=c;break;case "stop":a.b.kb=c;break;default:a.g("unknown cs option");return}void 0!==c&&Bc(a.b);a.g("checksums "+(a.b.C.hb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Hc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.bb.toFixed(2)+"Mhz")+" ("+ function Pf(a,b){switch(b[1]){case "8080":a.style=ye;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.jb=c;break;case "start":a.b.ub=c;break;case "stop":a.b.kb=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.C.hb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Hc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.bb.toFixed(2)+"Mhz")+" ("+
a.b.Ra+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")} a.b.Ra+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
function Ve(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Me(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.i=g&255;break;case "B":d.S=g&255;break;case "BC":d.S=g>>8&255;case "C":d.T=g&255;break;case "D":d.U= function We(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Ne(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.i=g&255;break;case "B":d.S=g&255;break;case "BC":d.S=g>>8&255;case "C":d.T=g&255;break;case "D":d.U=
g&255;break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Y=g&255;break;case "SP":d.ma=g&65535;break;case "PC":G(d,g);a.M=W(d.R);break;case "PS":Rc(d,g);break;case "PSW":Rc(d,g&255|d.ta&-256);d.i=g>>8;break;case "CF":d.ca=g?d.ca|256:d.ca&255;break;case "PF":g?ad(d)||(d.fa^=1):ad(d)&&(d.fa^=1);break;case "AF":d.xa=g?~d.fa&16|d.xa&-17:d.fa&16|d.xa&-17;break;case "ZF":d.ca=g?d.ca&-256:d.ca|255;break;case "SF":g?dd(d)||(d.fa^=192):dd(d)&&(d.fa^= g&255;break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Y=g&255;break;case "SP":d.ma=g&65535;break;case "PC":G(d,g);a.M=W(d.R);break;case "PS":Sc(d,g);break;case "PSW":Sc(d,g&255|d.ta&-256);d.i=g>>8;break;case "CF":d.ca=g?d.ca|256:d.ca&255;break;case "PF":g?bd(d)||(d.fa^=1):bd(d)&&(d.fa^=1);break;case "AF":d.xa=g?~d.fa&16|d.xa&-17:d.fa&16|d.xa&-17;break;case "ZF":d.ca=g?d.ca&-256:d.ca|255;break;case "SF":g?ed(d)||(d.fa^=192):ed(d)&&(d.fa^=
192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}Dc(d);a.g("updated registers:")}a.g(Df(a));c&&(a.M=W(d.R),uf(a,Z(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Te(a,c[2])):Me(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=Gf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return lb(a,!0)&&a.mb(e,d,!1)},function(){Dc(a.b);lb(a,!1)})} 192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}Dc(d);a.g("updated registers:")}a.g(Ef(a));c&&(a.M=W(d.R),vf(a,Z(a.M.F)))}}function Qf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Ue(a,c[2])):Ne(a,b,!0)}function Rf(a,b,c){var d="t"!=b;c=Hf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return lb(a,!0)&&a.mb(e,d,!1)},function(){Dc(a.b);lb(a,!1)})}
function uf(a,b,c,d){if(b=He(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=He(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=mb(a,!1)||a.P?a.J:null;var h=null!=f?"cycles":null,g=Jf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=Af(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}} function vf(a,b,c,d){if(b=Ie(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Ie(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=mb(a,!1)||a.P?a.J:null;var h=null!=f?"cycles":null,g=Kf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=Bf(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
function Oe(a,b,c,d){if(c)if(b){0>a.D&&a.w.length&&(a.D=0);if(0>a.D||b!=a.w[a.D])a.w.splice(0,0,b),a.D=0;a.D--}else a.ba?b="end":b=a.w[a.D+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ma(b.substring(c,f))),c=f+1}}return a} function Pe(a,b,c,d){if(c)if(b){0>a.I&&a.w.length&&(a.I=0);if(0>a.I||b!=a.w[a.I])a.w.splice(0,0,b),a.I=0;a.I--}else a.ba?b="end":b=a.w[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ma(b.substring(c,f))),c=f+1}}return a}
function zf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ba&&(a.g("ended assemble at "+Z(a.aa.F)),a.M=a.aa,a.ba=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ia=null;if(pb(a)&&0<b.length){a.ba&&(b="a "+Z(a.aa.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=He(a,f[1],!0);if(p)if(a.aa= function Af(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ba&&(a.g("ended assemble at "+Z(a.aa.F)),a.M=a.aa,a.ba=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ia=null;if(pb(a)&&0<b.length){a.ba&&(b="a "+Z(a.aa.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Ie(a,f[1],!0);if(p)if(a.aa=
p,void 0===f[2])a.g("begin assemble at "+Z(p.F)),a.ba=!0,Dc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.ua(p,q[x],1);a.g(Af(a,a.aa))}}break;case "b":a:{var u=f[0],r=f[1],B=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"), p,void 0===f[2])a.g("begin assemble at "+Z(p.F)),a.ba=!0,Dc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.ua(p,q[x],1);a.g(Bf(a,a.aa))}}break;case "b":a:{var u=f[0],r=f[1],B=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var y=u.charAt(1);if("l"==y){var X=0,X=X+yf(a,a.j),X=X+yf(a,a.O);(X+=yf(a,a.I))||a.g("no breakpoints")}else if("n"==y)a.ha=Gf(a,r),a.g("break after "+a.ha+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var A=W();if("*"!=r&&(A=He(a,r,!0),!A))break a;r=t(A.F);"c"==y?null==A.F?(ye(a),a.g("all breakpoints cleared")):wf(a,a.j,A)||wf(a,a.O,A)|| a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var y=u.charAt(1);if("l"==y){var X=0,X=X+zf(a,a.j),X=X+zf(a,a.O);(X+=zf(a,a.D))||a.g("no breakpoints")}else if("n"==y)a.ha=Hf(a,r),a.g("break after "+a.ha+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var A=W();if("*"!=r&&(A=Ie(a,r,!0),!A))break a;r=t(A.F);"c"==y?null==A.F?(ze(a),a.g("all breakpoints cleared")):xf(a,a.j,A)||xf(a,a.O,A)||
wf(a,a.I,A)||a.g("breakpoint missing: "+Z(A.F)):"i"==y?a.g("breakpoint "+(Gb(a.u,A.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Sb(a.u,A.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=A.F&&(Ne(a,A,B),"p"==y?a.Za(a.j,A):"r"==y?a.Za(a.O,A):"w"==y?a.Za(a.I,A):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Fa&&(a.Fa.value="");break;case "d":a:{var Q,aa=f[0],Y=f[1],ua=f[2],Eb=f[3];if("?"==Y){var Fa="";for(Q in tb)a.va[Q]&&(Fa&&(Fa+=","),Fa+=Q);Fa+=",state,symbols"; xf(a,a.D,A)||a.g("breakpoint missing: "+Z(A.F)):"i"==y?a.g("breakpoint "+(Gb(a.u,A.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Sb(a.u,A.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=A.F&&(Oe(a,A,B),"p"==y?a.Za(a.j,A):"r"==y?a.Za(a.O,A):"w"==y?a.Za(a.D,A):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Fa&&(a.Fa.value="");break;case "d":a:{var Q,aa=f[0],Y=f[1],ua=f[2],Fb=f[3];if("?"==Y){var Fa="";for(Q in tb)a.va[Q]&&(Fa&&(Fa+=","),Fa+=Q);Fa+=",state,symbols";
a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Fa.length&&a.g("dump extension commands:\n\t"+Fa)}else if("state"==Y){var We=Rf(a.B,!0);"console"==ua?console.log(We):(a.Fa&&(a.Fa.value=""),a.g(We))}else if("symbols"==Y)for(var kd=0;kd<a.G.length;kd++){var ld=a.G[kd],nb;for(nb in ld.Qa)if("."!=nb.charAt(0)){var Xe=ld.Qa[nb].o; a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Fa.length&&a.g("dump extension commands:\n\t"+Fa)}else if("state"==Y){var Xe=Sf(a.B,!0);"console"==ua?console.log(Xe):(a.Fa&&(a.Fa.value=""),a.g(Xe))}else if("symbols"==Y)for(var ld=0;ld<a.G.length;ld++){var md=a.G[ld],nb;for(nb in md.Qa)if("."!=nb.charAt(0)){var Ye=md.Qa[nb].o;
if(void 0!==Xe){var Ye=ld.Qa[nb].l;Ye&&(nb=Ye);a.g(Z(Xe)+" "+nb)}}}else{if("d"==aa){for(Q in tb)if(f[1]==Q){var Ze=a.va[Q];Ze?(f.shift(),f.shift(),Ze(f)):a.g("no dump registered for "+Y);break a}Y||(aa=a.sb||"db")}else a.sb=aa;if("dh"==aa){var $e=Y,af=ua,bf="",cf=0,ba=a.ea,Ga=a.L;if(Ga.length){var ia=+$e||a.eb,ob=+af||10;isNaN(ia)?ia=ob:bf="more ";ia>Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ba-=ia;0>ba&&(null==Ga[Ga.length-1].F?(ia=ba+ia,ba=0):ba+=Ga.length);var md=[];"call"== if(void 0!==Ye){var Ze=md.Qa[nb].l;Ze&&(nb=Ze);a.g(Z(Ye)+" "+nb)}}}else{if("d"==aa){for(Q in tb)if(f[1]==Q){var $e=a.va[Q];$e?(f.shift(),f.shift(),$e(f)):a.g("no dump registered for "+Y);break a}Y||(aa=a.sb||"db")}else a.sb=aa;if("dh"==aa){var af=Y,bf=ua,cf="",df=0,ba=a.ea,Ga=a.L;if(Ga.length){var ia=+af||a.eb,ob=+bf||10;isNaN(ia)?ia=ob:cf="more ";ia>Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ba-=ia;0>ba&&(null==Ga[Ga.length-1].F?(ia=ba+ia,ba=0):ba+=Ga.length);var nd=[];"call"==
af&&(ob=1E5,md=["CALL"]);for(void 0!==$e&&a.g(ia+" instructions earlier:");0<ob&&ba!=a.ea;){var df=Ga[ba++];if(null==df.F)break;var Jb=W(df.F),jg=ia--,ef=Af(a,Jb,"history",jg);(!md.length||0<=ef.indexOf(md[0]))&&a.g(ef);Jb.Jb&&(ba+=Jb.Jb,ob-=Jb.Jb,ia-=Jb.Jb);ba>=Ga.length&&(ba=0);a.eb=ia;cf++;ob--}}cf||(a.g("no "+bf+"history available"),a.eb=void 0)}else{var pc=He(a,Y);if(pc){var qc=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Eb),qc=Gf(a,ua)>>>0,65536<qc&&(qc=65536));for(var Xa="",rc="dd"==aa?4:"dw"== bf&&(ob=1E5,nd=["CALL"]);for(void 0!==af&&a.g(ia+" instructions earlier:");0<ob&&ba!=a.ea;){var ef=Ga[ba++];if(null==ef.F)break;var Kb=W(ef.F),kg=ia--,ff=Bf(a,Kb,"history",kg);(!nd.length||0<=ff.indexOf(nd[0]))&&a.g(ff);Kb.Jb&&(ba+=Kb.Jb,ob-=Kb.Jb,ia-=Kb.Jb);ba>=Ga.length&&(ba=0);a.eb=ia;df++;ob--}}df||(a.g("no "+cf+"history available"),a.eb=void 0)}else{var qc=Ie(a,Y);if(qc){var rc=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Fb),rc=Hf(a,ua)>>>0,65536<rc&&(rc=65536));for(var Xa="",sc="dd"==aa?4:"dw"==
aa?2:1,sc=rc*qc||128,kg=sc+15>>4||1;kg--&&0<sc;){var tc=0,nd=0,Kb,Lb="",od="",Y=Z(pc.F);for(Kb=16;0<Kb&&0<sc;Kb--){var uc=a.$(pc,1),tc=tc|uc<<(nd++<<3);nd==rc&&(Lb+=n(tc,2*rc),Lb+=1==rc?9==Kb?"-":" ":" ",tc=nd=0);od+=32<=uc&&128>uc?String.fromCharCode(uc):".";sc--}Xa&&(Xa+="\n");Xa+=Y+" "+Lb+(0==Kb?" "+od:"")}Xa&&a.g(Xa);a.$a=pc}}}}break;case "e":if("else"==f[0])break;var vc=1,ff=255,gf=a.$,hf=a.ua;"ew"==f[0]&&(vc=2,ff=65535,gf=a.Sa,hf=a.Ib);var jf=vc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"), aa?2:1,tc=sc*rc||128,lg=tc+15>>4||1;lg--&&0<tc;){var uc=0,od=0,Lb,Mb="",pd="",Y=Z(qc.F);for(Lb=16;0<Lb&&0<tc;Lb--){var vc=a.$(qc,1),uc=uc|vc<<(od++<<3);od==sc&&(Mb+=n(uc,2*sc),Mb+=1==sc?9==Lb?"-":" ":" ",uc=od=0);pd+=32<=vc&&128>vc?String.fromCharCode(vc):".";tc--}Xa&&(Xa+="\n");Xa+=Y+" "+Mb+(0==Lb?" "+pd:"")}Xa&&a.g(Xa);a.$a=qc}}}}break;case "e":if("else"==f[0])break;var wc=1,gf=255,hf=a.$,jf=a.ua;"ew"==f[0]&&(wc=2,gf=65535,hf=a.Sa,jf=a.Ib);var kf=wc<<1,lf=f[1];if(null==lf)a.g("edit memory commands:"),
a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var wc=He(a,kf);if(wc)for(var xc=2;xc<f.length;xc++){var Mb=Me(a,f[xc]);if(void 0===Mb){a.g("unrecognized value: "+f[xc]);break}Mb&~ff&&a.g("warning: "+n(Mb)+" exceeds "+vc+"-byte value");var lg=gf.call(a,wc);a.g("changing "+Z(wc.F)+" from 0x"+n(lg,jf)+" to 0x"+n(Mb,jf));hf.call(a,wc,Mb,vc)}}break;case "f":Lf(a,f[1]);break;case "g":a:{var lf=f[1],mg=b;if(void 0!==lf){var pd=He(a,lf,!0);if(!pd)break a; a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var xc=Ie(a,lf);if(xc)for(var yc=2;yc<f.length;yc++){var Nb=Ne(a,f[yc]);if(void 0===Nb){a.g("unrecognized value: "+f[yc]);break}Nb&~gf&&a.g("warning: "+n(Nb)+" exceeds "+wc+"-byte value");var mg=hf.call(a,xc);a.g("changing "+Z(xc.F)+" from 0x"+n(mg,kf)+" to 0x"+n(Nb,kf));jf.call(a,xc,Nb,wc)}}break;case "f":Mf(a,f[1]);break;case "g":a:{var mf=f[1],ng=b;if(void 0!==mf){var qd=Ie(a,mf,!0);if(!qd)break a;
Ne(a,pd,mg);a.Za(a.j,pd,!0)}a.cb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var qd;if(a.C.za)qd="halting",a.oa();else{if(mb(a,!0))break a;qd="already halted"}c||a.g(qd)}break;case "i":if("if"==f[0]){var rd;var Nb=b.substr(2),Nb=ma(Nb);Me(a,Nb)?(c||a.g("true: "+Nb),rd=!0):(c||a.g("false: "+Nb),rd=!1);rd||(d=!1);break}if("int"==f[0]){var yc;var ng=f[1];if(a.b.ta&512){var sd=Me(a,ng);null==sd?yc=!1:(a.g("requesting interrupt level "+sd),Gd(a.b,sd),yc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"), Oe(a,qd,ng);a.Za(a.j,qd,!0)}a.cb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var rd;if(a.C.za)rd="halting",a.oa();else{if(mb(a,!0))break a;rd="already halted"}c||a.g(rd)}break;case "i":if("if"==f[0]){var sd;var Ob=b.substr(2),Ob=ma(Ob);Ne(a,Ob)?(c||a.g("true: "+Ob),sd=!0):(c||a.g("false: "+Ob),sd=!1);sd||(d=!1);break}if("int"==f[0]){var zc;var og=f[1];if(a.b.ta&512){var td=Ne(a,og);null==td?zc=!1:(a.g("requesting interrupt level "+td),Hd(a.b,td),zc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),
yc=!1;yc||(d=!1);break}var td=f[1];if(td&&"?"!=td){var ud=Gf(a,td);if(void 0!==ud){var og=Ib(a.u,ud);a.g(t(ud)+": "+da(og))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var pg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var vd=0,mf=W(),Ob=W(a.b.ma);for(a.g("stack trace for "+Z(Ob.F));10>vd;){for(var Ya=null,qg=256;65536>Ob.F>>>0;){mf.F= zc=!1;zc||(d=!1);break}var ud=f[1];if(ud&&"?"!=ud){var vd=Hf(a,ud);if(void 0!==vd){var pg=Ib(a.u,vd);a.g(t(vd)+": "+da(pg))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var qg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var wd=0,nf=W(),Pb=W(a.b.ma);for(a.g("stack trace for "+Z(Pb.F));10>wd;){for(var Ya=null,rg=256;65536>Pb.F>>>0;){nf.F=
a.Sa(Ob,2);if(null==Ob.F||!qg--)break;for(var rg=a,zc=mf,nf=null,Pb=zc.F,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2<wd){zc.F=Pb;var Ac=Af(rg,zc);if(0<=Ac.indexOf("CALL")){var pf=Ac.indexOf(" ");if(Pb+(Ac.indexOf(" ",pf+1)-pf-1)/2==of){nf=Ac;break}}}Pb--}zc.F=of;if(Ya=nf)break}if(!Ya||null==Ya)break;var qf=null;if("ks"==pg){var rf=Ya.match(/[0-9A-F]+$/);rf&&(qf=Nf(a,rf[0]))}Ya=la(Ya,50)+" ;"+(qf||"stack="+Z(Ob.F));a.g(Ya);vd++}vd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Nf(a,f[1],!0); a.Sa(Pb,2);if(null==Pb.F||!rg--)break;for(var sg=a,Ac=nf,of=null,Qb=Ac.F,pf=Qb,xd=1;6>=xd&&Qb;xd++){if(2<xd){Ac.F=Qb;var Bc=Bf(sg,Ac);if(0<=Bc.indexOf("CALL")){var qf=Bc.indexOf(" ");if(Qb+(Bc.indexOf(" ",qf+1)-qf-1)/2==pf){of=Bc;break}}}Qb--}Ac.F=pf;if(Ya=of)break}if(!Ya||null==Ya)break;var rf=null;if("ks"==qg){var sf=Ya.match(/[0-9A-F]+$/);sf&&(rf=Of(a,sf[0]))}Ya=la(Ya,50)+" ;"+(rf||"stack="+Z(Pb.F));a.g(Ya);wd++}wd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Of(a,f[1],!0);
break}break;case "m":a:{var Ha,Ia=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==N){var Ra=0;if("all"==N)Ra=1878917119,N=null;else if("on"==N)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in tb)if(N==Ha){Ra=tb[Ha];Ia=!!(a.sa&Ra);break}if(!Ra){a.g("unknown message category: "+N);break a}}if(Ra)if("on"==f[2])a.sa|=Ra,Ia=!0;else if("off"==f[2]&&(a.sa&=~Ra,Ia=!1,1073741824==Ra)){for(var xd=0;xd<a.ka.length;xd++)a.g(a.ka[xd]);a.ka=[]}}var sg=0,Sa="";for(Ha in tb)if(!N|| break}break;case "m":a:{var Ha,Ia=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==N){var Ra=0;if("all"==N)Ra=1878917119,N=null;else if("on"==N)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in tb)if(N==Ha){Ra=tb[Ha];Ia=!!(a.sa&Ra);break}if(!Ra){a.g("unknown message category: "+N);break a}}if(Ra)if("on"==f[2])a.sa|=Ra,Ia=!0;else if("off"==f[2]&&(a.sa&=~Ra,Ia=!1,1073741824==Ra)){for(var yd=0;yd<a.ka.length;yd++)a.g(a.ka[yd]);a.ka=[]}}var tg=0,Sa="";for(Ha in tb)if(!N||
N==Ha){var tg=!!(a.sa&tb[Ha]);if(null===Ia||Ia==tg)Sa&&(Sa+=","),++sg%10||(Sa+="\n\t"),"key"==Ha&&(Ha="keys"),Sa+=Ha}void 0===N&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ia?Ia?"messages on: ":"messages off: ":"message categories:\n\t")+(Sa||"none"));ze(a)}break;case "o":var yd=f[1],ug=f[2];if(yd&&"?"!=yd){var zd=Gf(a,yd,"port #"),Ad=Gf(a,ug);void 0!==zd&&void 0!==Ad&&(Ub(a.u,zd,Ad),a.g(t(zd)+": "+da(Ad)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"), N==Ha){var ug=!!(a.sa&tb[Ha]);if(null===Ia||Ia==ug)Sa&&(Sa+=","),++tg%10||(Sa+="\n\t"),"key"==Ha&&(Ha="keys"),Sa+=Ha}void 0===N&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ia?Ia?"messages on: ":"messages off: ":"message categories:\n\t")+(Sa||"none"));Ae(a)}break;case "o":var zd=f[1],vg=f[2];if(zd&&"?"!=zd){var Ad=Hf(a,zd,"port #"),Bd=Hf(a,vg);void 0!==Ad&&void 0!==Bd&&(Ub(a.u,Ad,Bd),a.g(t(Ad)+": "+da(Bd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),
a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){Pf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,vg=1+sf;if(a.P)a.g("step in progress");else{var Bd=W(a.b.R);switch(a.$(Bd)){case 205:a.P=vg,Ie(Bd,3)}a.P?(a.Za(a.j,Bd,!0),a.cb()||(a.B&&a.B.xb(),a.P=0)):Qf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Ve(a,f);break;case "s":Of(a,f);break;case "t":Qf(a,f[0],f[1]);break;case "u":uf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mf(a,b.substr(3))|| a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){Qf(a,b.substr(5));break}var tf="pr"==f[0]?1:0,wg=1+tf;if(a.P)a.g("step in progress");else{var Cd=W(a.b.R);switch(a.$(Cd)){case 205:a.P=wg,Je(Cd,3)}a.P?(a.Za(a.j,Cd,!0),a.cb()||(a.B&&a.B.xb(),a.P=0)):Rf(a,tf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}We(a,f);break;case "s":Pf(a,f);break;case "t":Rf(a,f[0],f[1]);break;case "u":vf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Nf(a,b.substr(3))||
(d=!1);break}a.g("PC8080 version 1.24.2 ("+a.b.nc+",RELEASE"+(rb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ta());break;case "?":if(f[1]){Pf(a,b.substr(1));break}var Qb="commands:",Cd;for(Cd in Be)Qb+="\n"+la(Cd,9)+Be[Cd];Hd(a)||(Qb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Qb);break;default:a.g("unknown command: "+b),d=!1}}}catch(tf){a.g("debugger error: "+(tf.stack||tf.message)),d=!1}return d}function Cc(a,b,c){b=Oe(a,b,c);for(var d in b)if(!zf(a,b[d]))return!1;return!0} (d=!1);break}a.g("PC8080 version 1.24.2 ("+a.b.nc+",RELEASE"+(rb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ta());break;case "?":if(f[1]){Qf(a,b.substr(1));break}var Rb="commands:",Dd;for(Dd in Ce)Rb+="\n"+la(Dd,9)+Ce[Dd];Id(a)||(Rb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Rb);break;default:a.g("unknown command: "+b),d=!1}}}catch(uf){a.g("debugger error: "+(uf.stack||uf.message)),d=!1}return d}function Cc(a,b,c){b=Pe(a,b,c);for(var d in b)if(!Af(a,b[d]))return!1;return!0}
Ma(function(){for(var a=C(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new we(d);hb(d,c)}}); Ma(function(){for(var a=C(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new xe(d);hb(d,c)}});
function Sf(a,b,c){w.call(this,"Computer",a,Sf,67108864);this.C.wa=!1;Tf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.da=a.busWidth||a.buswidth;this.B=Uf;this.L=null;this.K=this.aa=!1;this.ea=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Vf(this);if(this.b=gb("CPU",this.id)){this.H=gb("Debugger",this.id);this.G=[];for(b=null;b=vb(this,"Video",b);)this.G.push(b);this.u=new xb({id:this.Cb+".bus",busWidth:this.da},this.b,this.H);var d,e=eb(this.id);if((this.D=gb("Panel",this.id))&& function Tf(a,b,c){w.call(this,"Computer",a,Tf,67108864);this.C.wa=!1;Uf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.da=a.busWidth||a.buswidth;this.B=Vf;this.L=null;this.K=this.aa=!1;this.ea=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Wf(this);if(this.b=gb("CPU",this.id)){this.H=gb("Debugger",this.id);this.G=[];for(b=null;b=vb(this,"Video",b);)this.G.push(b);this.u=new xb({id:this.Cb+".bus",busWidth:this.da},this.b,this.H);var d,e=eb(this.id);if((this.I=gb("Panel",this.id))&&
this.D.Fa)for(b=0;b<e.length;b++)d=e[b],d.ja=this.D.ja,d.g=this.D.g,d.Fa=this.D.Fa;this.g("PC8080 v1.24.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.K=!0,this.B=Uf),this.B&&(this.M=new H(this,"1.24.2"),Wf(this.M)? this.I.Fa)for(b=0;b<e.length;b++)d=e[b],d.ja=this.I.ja,d.g=this.I.g,d.Fa=this.I.Fa;this.g("PC8080 v1.24.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.K=!0,this.B=Vf),this.B&&(this.M=new H(this,"1.24.2"),Xf(this.M)?
b=null:delete this.M);!b&&this.B&&(b=Xf(this))&&(this.K=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.J=null,h.K=!1,h.ja("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.aa=!0);E(h)})}else E(this);this.N.power||(this.O=!0);!c&&this.O&&Yf(this,this.vb)}else v("Unable to find CPU component")}bb(Sf);var Uf=0;function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.ba=b} b=null:delete this.M);!b&&this.B&&(b=Yf(this))&&(this.K=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.J=null,h.K=!1,h.ja("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.aa=!0);E(h)})}else E(this);this.N.power||(this.O=!0);!c&&this.O&&Zf(this,this.vb)}else v("Unable to find CPU component")}bb(Tf);var Vf=0;function Uf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.ba=b}
function nc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ba&&(d=a.ba[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Yf(a,b,c){for(var d=eb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!pb(f)){pb(f,function(){Yf(a,b,c)});return}}b.call(a,c)} function nc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ba&&(d=a.ba[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Zf(a,b,c){for(var d=eb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!pb(f)){pb(f,function(){Zf(a,b,c)});return}}b.call(a,c)}
function Zf(a,b){var c=new H(a,"1.24.2","validate");if(Wf(c)&&$f(c)){var d=ag(c,"timestamp"),e=b?ag(b,"timestamp"):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Sf.prototype; function $f(a,b){var c=new H(a,"1.24.2","validate");if(Xf(c)&&ag(c)){var d=bg(c,"timestamp"),e=b?bg(b,"timestamp"):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Tf.prototype;
m.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Uf));if(!this.w){this.w++;var b=!1,c=!1;this.Z=!1;var d=this.M||new H(this,"1.24.2");if(-1==a)b=!0;else if(a>Uf){if(Wf(d,this.L)){this.I=new H(this,"1.24.2","failsafe");Wf(this.I)&&(bg(this,d),a=2,cg(this.I));I(this.I,"timestamp",qa());dg(this.I);var e=this.B&&!this.K;if(1==a||va("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var f=ag(d,"code"),h=ag(d,"data");f&&("ok"==f?Wf(d,h):("error"==f&& m.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Vf));if(!this.w){this.w++;var b=!1,c=!1;this.Z=!1;var d=this.M||new H(this,"1.24.2");if(-1==a)b=!0;else if(a>Vf){if(Xf(d,this.L)){this.D=new H(this,"1.24.2","failsafe");Xf(this.D)&&(cg(this,d),a=2,dg(this.D));I(this.D,"timestamp",qa());eg(this.D);var e=this.B&&!this.K;if(1==a||va("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ag(d)){var f=bg(d,"code"),h=bg(d,"data");f&&("ok"==f?Xf(d,h):("error"==f&&
"no machine state"!=h?(this.ja("Error: "+h),"unable to verify user"==h&&(za("user",""),this.j=null)):this.g(f+": "+h),cg(d),Wf(d)?(c=$f(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.L;delete this.M}e=eb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=eg(this,h,d,b,c));b=[d,a,c];-1!=a?Yf(this,this.cc,b):this.cc(b)}}; "no machine state"!=h?(this.ja("Error: "+h),"unable to verify user"==h&&(za("user",""),this.j=null)):this.g(f+": "+h),dg(d),Xf(d)?(c=ag(d),e=!0):c=!1))}e&&$f(this,c?d:null)}else 2==a&&d.clear()}else $f(this);delete this.L;delete this.M}e=eb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=fg(this,h,d,b,c));b=[d,a,c];-1!=a?Zf(this,this.cc,b):this.cc(b)}};
function eg(a,b,c,d,e){if(!b.C.wa){b.C.wa=!0;if(b.Da){var f=null;e&&((f=ag(c,b.id))||(f=ag(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Da(f,d)&&f&&(v("Unable to restore state for "+b.type),a.P&&!a.aa?(c.clear(),a.B=Uf,window&&window.location.reload()):a.Z=!0,b.Da(null),e=!1)}if(!d&&b.hc)for(a=b.hc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function fg(a,b,c,d,e){if(!b.C.wa){b.C.wa=!0;if(b.Da){var f=null;e&&((f=bg(c,b.id))||(f=bg(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Da(f,d)&&f&&(v("Unable to restore state for "+b.type),a.P&&!a.aa?(c.clear(),a.B=Vf,window&&window.location.reload()):a.Z=!0,b.Da(null),e=!1)}if(!d&&b.hc)for(a=b.hc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.C.wa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(eg(this,this.b,b,c,a),Ec(this.b));this.Z&&(bg(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.w=0}; m.cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.C.wa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(fg(this,this.b,b,c,a),Ec(this.b));this.Z&&(cg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
function bg(a,b){if(va("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"",d=b.toString(),e={app:"PC8080",ver:"1.24.2"};e.url=a.ea;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",e,!0)}} function cg(a,b){if(va("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"",d=b.toString(),e={app:"PC8080",ver:"1.24.2"};e.url=a.ea;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",e,!0)}}
function Rf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new H(a,"1.24.2"),h=new H(a,"1.24.2","validate"),g=qa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.24.2");I(f,"url",window?window.location.href:null);I(f,"browser",ta());a.b&&a.b.Ha&&(c&&a.b.oa(),d=a.b.Ha(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.wa=!1,!1===d&&(e=null)));for(var g=eb(a.id),k=0;k<g.length;k++){var l=g[k];l.C.wa&&(l.Ha&&(d=l.Ha(b,c),"object"===typeof d&&I(f,l.id,d)),c&&(l.C.wa=!1,!1===d&&(e=null)))}e&& function Sf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new H(a,"1.24.2"),h=new H(a,"1.24.2","validate"),g=qa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.24.2");I(f,"url",window?window.location.href:null);I(f,"browser",ta());a.b&&a.b.Ha&&(c&&a.b.oa(),d=a.b.Ha(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.wa=!1,!1===d&&(e=null)));for(var g=eb(a.id),k=0;k<g.length;k++){var l=g[k];l.C.wa&&(l.Ha&&(d=l.Ha(b,c),"object"===typeof d&&I(f,l.id,d)),c&&(l.C.wa=!1,!1===d&&(e=null)))}e&&
(c?(g=d=!1,b?(a.j&&fg(a,a.j,f.toString()),dg(h)&&dg(f)||(e=null,d=g=!0)):a.B&&(d=!0,g=3==a.B),d&&f.clear(g)):e=f.toString());c&&(a.C.wa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}m.reset=function(){this.u&&this.u.reset&&(jb(this,"Resetting "+this.u.type),this.u.reset());for(var a=eb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(jb(this,"Resetting "+c.type),c.reset())}}; (c?(g=d=!1,b?(a.j&&gg(a,a.j,f.toString()),eg(h)&&eg(f)||(e=null,d=g=!0)):a.B&&(d=!0,g=3==a.B),d&&f.clear(g)):e=f.toString());c&&(a.C.wa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}m.reset=function(){this.u&&this.u.reset&&(jb(this,"Resetting "+this.u.type),this.u.reset());for(var a=eb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(jb(this,"Resetting "+c.type),c.reset())}};
m.start=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; m.start=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.na=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.wa?Rf(d,!1,!0):Yf(d,d.vb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.wa&&!d.w)if(d.B&&!d.J){var a=va("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rf(d,a,!0);!a&&d.P?window&&window.location.reload():d.vb(Uf)}else d.reset(),d.b&&Ec(d.b)},!0;case "save":if(ga()){c.parentNode.removeChild(c);break}this.N[b]= m.na=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.wa?Sf(d,!1,!0):Zf(d,d.vb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.wa&&!d.w)if(d.B&&!d.J){var a=va("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sf(d,a,!0);!a&&d.P?window&&window.location.reload():d.vb(Vf)}else d.reset(),d.b&&Ec(d.b)},!0;case "save":if(ga()){c.parentNode.removeChild(c);break}this.N[b]=
c;c.onclick=function(){var a=Vf(d,!0);if(a){var b=!!(d.B&&!d.J||d.P),c=Rf(d,b);b?fg(d,a,c):d.ja("Resume disabled, machine state not saved")}};return!0}return!1}; c;c.onclick=function(){var a=Wf(d,!0);if(a){var b=!!(d.B&&!d.J||d.P),c=Sf(d,b);b?gg(d,a,c):d.ja("Resume disabled, machine state not saved")}};return!0}return!1};
function Vf(a,b){var c=a.j;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=gg(a,c))||a.ja("The user ID is invalid."))):b&&a.ja("Browser local storage is not available"));return c} function Wf(a,b){var c=a.j;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=hg(a,c))||a.ja("The user ID is invalid."))):b&&a.ja("Browser local storage is not available"));return c}
function gg(a,b){a.j=null;var c=sa(ha()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(za("user",c.data),a.j=c.data)}catch(e){v(e.message+" ("+d+")")}return a.j}function Xf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+hg(a,"1.24.2"));return b} function hg(a,b){a.j=null;var c=sa(ha()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(za("user",c.data),a.j=c.data)}catch(e){v(e.message+" ("+d+")")}return a.j}function Yf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+ig(a,"1.24.2"));return b}
function fg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hg(a,"1.24.2");d.data=c;b=sa(ha()+"/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.ja("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.ja(c),za("user",""),a.j=null)}} function gg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ig(a,"1.24.2");d.data=c;b=sa(ha()+"/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.ja("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.ja(c),za("user",""),a.j=null)}}
function vb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.xb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.ia&&d.ia.focus();!a&&window&&window.scrollTo(b,c)}};m.Ia=function(a){this.b&&this.b.Ia(a);this.D&&this.D.Ia(a)}; function vb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.xb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.ia&&d.ia.focus();!a&&window&&window.scrollTo(b,c)}};m.Ia=function(a){this.b&&this.b.Ia(a);this.I&&this.I.Ia(a)};
Ma(function(){for(var a=C(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Sf(h,d,!0);hb(h,f);h.O&&Yf(h,h.vb)}});Da.show.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=gb("Computer",c.id))&&c.ga&&!c.C.wa&&c.vb(-1)}}); Ma(function(){for(var a=C(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Tf(h,d,!0);hb(h,f);h.O&&Zf(h,h.vb)}});Da.show.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=gb("Computer",c.id))&&c.ga&&!c.C.wa&&c.vb(-1)}});
Da.exit.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=gb("Computer",c.id))&&c.C.wa&&Rf(c,!(!c.B||c.J),!0)}});function H(a,b,c){this.id=a.id;this.key=hg(a,b,c);this.H=a.H;cg(this,a.Jd)}function hg(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} Da.exit.push(function(){for(var a=C(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=gb("Computer",c.id))&&c.C.wa&&Sf(c,!(!c.B||c.J),!0)}});function H(a,b,c){this.id=a.id;this.key=ig(a,b,c);this.H=a.H;dg(this,a.Jd)}function ig(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}
H.prototype={constructor:H,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){cg(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}}}; H.prototype={constructor:H,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){dg(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 cg(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function dg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function $f(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function Wf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.b=!0):!1}function ag(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}var ig=0; function dg(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function eg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ag(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function Xf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.b=!0):!1}function bg(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}var jg=0;
function wg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):xg(g,a,b,c,d,e,f)})} function xg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):yg(g,a,b,c,d,e,f)})}
function xg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){db(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2")); function yg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){db(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?yg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?zg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function yg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function zg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);yg(a,b,c)}})}else c(a,null)} "");a=a.replace(d[0],h);zg(a,b,c)}})}else c(a,null)}
function zg(a,b,c,d){function e(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ka(a))}function f(a){e("Error: "+a);k&&(--ig||Pa(!0));k=!1}var h,g,k=!0;ig++;cb[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c|| function Ag(a,b,c,d){function e(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ka(a))}function f(a){e("Error: "+a);k&&(--jg||Pa(!0));k=!1}var h,g,k=!0;jg++;cb[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c||
(c="/versions/pc8080/1.24.2/components.xsl");l=function(d,g){g?wg(c,null,null,!1,e,function(d,k){if(k)if(db(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--ig||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--ig||Pa(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.24.2/components.xsl");l=function(d,g){g?xg(c,null,null,!1,e,function(d,k){if(k)if(db(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--jg||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--jg||Pa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?wg(b,a,d,!0,e,l):xg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Pa(!1);return zg(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;})(); a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?xg(b,a,d,!0,e,l):yg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Pa(!1);return Ag(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;})();

View file

@ -7,7 +7,7 @@ typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encod
function p(a){window&&window.alert(a)}function na(a){var b=!1;window&&(b=window.confirm(a));return b}var oa=null;function pa(){if(null==oa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}oa=a}return oa}function qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} function p(a){window&&window.alert(a)}function na(a){var b=!1;window&&(b=window.confirm(a));return b}var oa=null;function pa(){if(null==oa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}oa=a}return oa}function qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function sa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var ta={init:[],show:[],exit:[]},ua=!1,va=!1,wa=!0;function xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ya(a){ta.init.push(a)} function ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function sa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var ta={init:[],show:[],exit:[]},ua=!1,va=!1,wa=!0;function xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ya(a){ta.init.push(a)}
function za(a){if(wa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Aa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ba(a){!wa&&a?(wa=!0,ua&&Da("init"),va&&Da("show")):wa=a}function Da(a){ta[a]&&za(ta[a])}xa("onload",function(){ua=!0;za(ta.init)});xa("onpageshow",function(){va=!0;za(ta.show)});xa(sa("Opera")||sa("iOS")?"onunload":"onbeforeunload",function(){za(ta.exit)}); function za(a){if(wa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Aa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ba(a){!wa&&a?(wa=!0,ua&&Da("init"),va&&Da("show")):wa=a}function Da(a){ta[a]&&za(ta[a])}xa("onload",function(){ua=!0;za(ta.init)});xa("onpageshow",function(){va=!0;za(ta.show)});xa(sa("Opera")||sa("iOS")?"onunload":"onbeforeunload",function(){za(ta.exit)});
function q(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.zb=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Ta=this.id:(this.Ua=this.id.substr(0,b),this.Ta=this.id.substr(b+1));this[a]=c;this.l={ha:!1,Ma:!1,gb:!1,Y:!1,Aa:!1};this.Za=null;this.l.Aa=!1;this.A={};this.O=null;r.push(this)}var Ea=void 0,Fa={}; function q(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.zb=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Ta=this.id:(this.Ua=this.id.substr(0,b),this.Ta=this.id.substr(b+1));this[a]=c;this.l={ha:!1,Ma:!1,gb:!1,Y:!1,Aa:!1};this.Za=null;this.l.Aa=!1;this.A={};this.N=null;r.push(this)}var Ea=void 0,Fa={};
if(window){Ea||(Ea=window.location.search.substr(1));for(var Ga,Ha=/\+/g,Ia=/([^&=]+)=?([^&]*)/g;Ga=Ia.exec(Ea);)Fa[decodeURIComponent(Ga[1].replace(Ha," "))]=decodeURIComponent(Ga[2].replace(Ha," "))}function Ja(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){Ea||(Ea=window.location.search.substr(1));for(var Ga,Ha=/\+/g,Ia=/([^&=]+)=?([^&]*)/g;Ga=Ia.exec(Ea);)Fa[decodeURIComponent(Ga[1].replace(Ha," "))]=decodeURIComponent(Ga[2].replace(Ha," "))}function Ja(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function w(a,b){b||(b=q);a.prototype=Ja(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ka=window.PCjs.Machines||(window.PCjs.Machines={}),r=window.PCjs.Components||(window.PCjs.Components=[])}else Ka={},r=[];function La(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function Aa(a,b,c){b||p((c?c+": ":"")+a)} function w(a,b){b||(b=q);a.prototype=Ja(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ka=window.PCjs.Machines||(window.PCjs.Machines={}),r=window.PCjs.Components||(window.PCjs.Components=[])}else Ka={},r=[];function La(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function Aa(a,b,c){b||p((c?c+": ":"")+a)}
function Ma(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<r.length;b++){var d=r[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Na(a){if(void 0!==a){var b;for(b=0;b<r.length;b++)if(r[b].id===a)return r[b]}return null}function Oa(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<r.length;d++)if(c)c==r[d]&&(c=null);else if(!(a!=r[d].type||b&&r[d].id.indexOf(b)))return r[d]}return null} function Ma(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<r.length;b++){var d=r[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Na(a){if(void 0!==a){var b;for(b=0;b<r.length;b++)if(r[b].id===a)return r[b]}return null}function Oa(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<r.length;d++)if(c)c==r[d]&&(c=null);else if(!(a!=r[d].type||b&&r[d].id.indexOf(b)))return r[d]}return null}
@ -17,146 +17,146 @@ q.prototype={constructor:q,parent:null,toString:function(){return this.name?this
this.M=function(a){this.ca(a,this.Ta)}),!0;default:return!1}},log:function(){},ca:function(){},status:function(a){this.ca(this.Ta+": "+a)},M:function(a,b,c){Aa(a,b,c||this.type)},fa:function(){return this.l.Y=!0},ia:function(a,b){b&&(this.l.Y=!1);return!0}};function Qa(a,b){if(a.l.gb)return a.l.Ma&&(a.l.Ma=!1),a.l.gb=!1;if(a.l.Aa)return a.ca(a.toString()+" error"),!1;a.l.Ma=b;return a.l.Ma}function C(a){if(!a.l.Aa&&(a.l.ha=!0,a.l.ha)){var b=a.Za;a.Za=null;b&&b()}} this.M=function(a){this.ca(a,this.Ta)}),!0;default:return!1}},log:function(){},ca:function(){},status:function(a){this.ca(this.Ta+": "+a)},M:function(a,b,c){Aa(a,b,c||this.type)},fa:function(){return this.l.Y=!0},ia:function(a,b){b&&(this.l.Y=!1);return!0}};function Qa(a,b){if(a.l.gb)return a.l.Ma&&(a.l.Ma=!1),a.l.gb=!1;if(a.l.Aa)return a.ca(a.toString()+" error"),!1;a.l.Ma=b;return a.l.Ma}function C(a){if(!a.l.Aa&&(a.l.ha=!0,a.l.ha)){var b=a.Za;a.Za=null;b&&b()}}
function Ra(a,b){b&&(a.l.ha?b():a.Za=b);return a.l.ha} function Ra(a,b){b&&(a.l.ha?b():a.Za=b);return a.l.ha}
var Sa="undefined"!==typeof ArrayBuffer,Ta=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var Sa="undefined"!==typeof ArrayBuffer,Ta=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ua(a){q.call(this,"Panel",a,Ua)}w(Ua);k=Ua.prototype;k.V=function(a,b,c,d){return this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d)||this.m&&this.m.V(a,b,c,d)?!0:this.parent.V.call(this,a,b,c,d)};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;this.m=Va(a,"Keyboard")};k.fa=function(a,b){b||Wa();return!0};k.ia=function(){return!0};k.Ba=function(){}; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ua(a){q.call(this,"Panel",a,Ua)}w(Ua);k=Ua.prototype;k.V=function(a,b,c,d){return this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d)||this.m&&this.m.V(a,b,c,d)?!0:this.parent.V.call(this,a,b,c,d)};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;this.m=Va(a,"Keyboard")};k.fa=function(a,b){b||Wa();return!0};k.ia=function(){return!0};k.Ba=function(){};
function Wa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Na(e.id);f||(a=!0,f=new Ua(e));Pa(f,d);a&&C(f)}}ya(Wa); function Wa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Na(e.id);f||(a=!0,f=new Ua(e));Pa(f,d);a&&C(f)}}ya(Wa);
function Xa(a,b,c){q.call(this,"Bus",a,Xa);this.a=b;this.O=c;this.i=a.busWidth||16;this.u=Math.pow(2,this.i);this.g=this.u-1|0;this.j=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.c=1<<this.j;this.w=this.c>>2;this.f=this.c-1;this.m=this.u/this.c|0;this.s=this.m-1;this.v=[];this.o=[];this.B=[];this.C=[];a=new D;Ya(a,this.O);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;C(this)}w(Xa);Xa.prototype.reset=function(){};Xa.prototype.fa=function(a,b){b||this.reset();return!0}; function Xa(a,b,c){q.call(this,"Bus",a,Xa);this.a=b;this.N=c;this.i=a.busWidth||16;this.u=Math.pow(2,this.i);this.g=this.u-1|0;this.j=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.c=1<<this.j;this.w=this.c>>2;this.f=this.c-1;this.m=this.u/this.c|0;this.s=this.m-1;this.v=[];this.o=[];this.B=[];this.C=[];a=new D;Ya(a,this.N);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;C(this)}w(Xa);Xa.prototype.reset=function(){};Xa.prototype.fa=function(a,b){b||this.reset();return!0};
function Za(a,b,c,d){for(var e=b,f=c,h=e>>>a.j;0<f&&h<a.b.length;){var g=a.b[h],l=h*a.c,n=a.c-(e-l);n>f&&(n=f);if(g&&g.size){if(g.type==d){if(e+f<=g.Ia)return g.fb+=g.Ia-e,g.Ia=e,!0;if(e>=g.Ia+g.fb){n=g.size-(e-l);n>f&&(n=f);g.fb=e-g.Ia+n;e=l+a.c;f-=n;h++;continue}}return $a(1,e,f)}e=new D(e,n,a.c,d);Ya(e,a.O,g);a.b[h++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+("0x"+m(b,4))),!0):$a(2,b,c)} function Za(a,b,c,d){for(var e=b,f=c,h=e>>>a.j;0<f&&h<a.b.length;){var g=a.b[h],l=h*a.c,n=a.c-(e-l);n>f&&(n=f);if(g&&g.size){if(g.type==d){if(e+f<=g.Ia)return g.fb+=g.Ia-e,g.Ia=e,!0;if(e>=g.Ia+g.fb){n=g.size-(e-l);n>f&&(n=f);g.fb=e-g.Ia+n;e=l+a.c;f-=n;h++;continue}}return $a(1,e,f)}e=new D(e,n,a.c,d);Ya(e,a.N,g);a.b[h++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+("0x"+m(b,4))),!0):$a(2,b,c)}
Xa.prototype.K=function(a){return this.b[(a&this.g)>>>this.j].Qa(a&this.f,a)};function bb(a,b){return a.b[(b&a.g)>>>a.j].eb(b&a.f,b)}function cb(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].Oc(c,b):a.b[d++].Qa(c,b)|a.b[d&a.s].Qa(0,b+1)<<8}Xa.prototype.$=function(a,b){this.b[(a&this.g)>>>this.j].Ra(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Gb(b&a.f,c&255,b)} Xa.prototype.L=function(a){return this.b[(a&this.g)>>>this.j].Qa(a&this.f,a)};function bb(a,b){return a.b[(b&a.g)>>>a.j].eb(b&a.f,b)}function cb(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].Oc(c,b):a.b[d++].Qa(c,b)|a.b[d&a.s].Qa(0,b+1)<<8}Xa.prototype.$=function(a,b){this.b[(a&this.g)>>>this.j].Ra(a&this.f,b&255,a)};function db(a,b,c){a.b[(b&a.g)>>>a.j].Gb(b&a.f,c&255,b)}
function fb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].Pc(d,c&65535,b):(a.b[e++].Ra(d,c&255,b),a.b[e&a.s].Ra(0,c>>8&255,b+1))}function gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.v[l]?p("Input port 0x"+m(l,4)+" already registered"):f.v[l]=[g,!1]}} function fb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].Pc(d,c&65535,b):(a.b[e++].Ra(d,c&255,b),a.b[e&a.s].Ra(0,c>>8&255,b+1))}function gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.v[l]?p("Input port 0x"+m(l,4)+" already registered"):f.v[l]=[g,!1]}}
function hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.o[l]?p("Output port 0x"+m(l,4)+" already registered"):f.o[l]=[g,!1]}}function $a(a,b,c){p("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}var ib;if(Sa){var jb=new ArrayBuffer(2);(new DataView(jb)).setUint16(0,256,!0);ib=256===(new Uint16Array(jb))[0]}else ib=!1;var kb=ib; function hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.o[l]?p("Output port 0x"+m(l,4)+" already registered"):f.o[l]=[g,!1]}}function $a(a,b,c){p("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}var ib;if(Sa){var jb=new ArrayBuffer(2);(new DataView(jb)).setUint16(0,256,!0);ib=256===(new Uint16Array(jb))[0]}else ib=!1;var kb=ib;
function D(a,b,c,d){this.id=lb+=2;this.a=null;this.Ia=a;this.fb=b;this.size=c||0;this.type=d||mb;this.c=d==nb;Ya(this);this.na=this.wb=!1;if(c)if(Sa)this.j=new ArrayBuffer(c),this.A=new DataView(this.j,0,c),this.b=new Uint8Array(this.j,0,c),this.i=new Uint16Array(this.j,0,c>>1),this.a=new Int32Array(this.j,0,c>>2),ob(this,kb?pb:qb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ob(this,rb)}else ob(this)}var mb=0,nb=2,ab=["NONE","RAM","ROM","VID","H/W"],lb=0; function D(a,b,c,d){this.id=lb+=2;this.a=null;this.Ia=a;this.fb=b;this.size=c||0;this.type=d||mb;this.c=d==nb;Ya(this);this.na=this.wb=!1;if(c)if(Sa)this.j=new ArrayBuffer(c),this.A=new DataView(this.j,0,c),this.b=new Uint8Array(this.j,0,c),this.i=new Uint16Array(this.j,0,c>>1),this.a=new Int32Array(this.j,0,c>>2),ob(this,kb?pb:qb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ob(this,rb)}else ob(this)}var mb=0,nb=2,ab=["NONE","RAM","ROM","VID","H/W"],lb=0;
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(Sa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.A.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Sa)for(b=0;b<a.length;b++)this.A.setInt32(b<<2,a[b],!0);else this.a=a;return this.na=!0}return!1},m:function(){return 255},o:function(){},v:function(a,b){return this.Qa(a++,b++)|this.Qa(a,b)<<8},s:function(a,b,c){this.Ra(a++,b&255,c++);this.Ra(a,b>>8,c)},C:function(a){return this.a[a>> D.prototype={constructor:D,parent:null,save:function(){var a,b;if(Sa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.A.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Sa)for(b=0;b<a.length;b++)this.A.setInt32(b<<2,a[b],!0);else this.a=a;return this.na=!0}return!1},m:function(){return 255},o:function(){},v:function(a,b){return this.Qa(a++,b++)|this.Qa(a,b)<<8},s:function(a,b,c){this.Ra(a++,b&255,c++);this.Ra(a,b>>8,c)},C:function(a){return this.a[a>>
2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},R:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.na=!0},da:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.na=!0},w:function(a,b){return this.eb(a,b)},H:function(a,b){return this.Eb(a,b)},N:function(a,b,c){this.c||this.Gb(a,b,c)},W:function(a, 2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},R:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.na=!0},da:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.na=!0},w:function(a,b){return this.eb(a,b)},J:function(a,b){return this.Eb(a,b)},O:function(a,b,c){this.c||this.Gb(a,b,c)},W:function(a,
b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},J:function(a,b){this.b[a]=b;this.na=!0},P:function(a,b){this.b[a]=b;this.na=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.na=!0},Z:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.na=!0}};function Ya(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&sb(a,tb,!1),(a.g=c.g)&&ub(a,tb,!1))} b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},H:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},K:function(a,b){this.b[a]=b;this.na=!0},P:function(a,b){this.b[a]=b;this.na=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.na=!0},Z:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.na=!0}};function Ya(a,b,c){a.N=b;a.f=a.g=0;c&&((a.f=c.f)&&sb(a,tb,!1),(a.g=c.g)&&ub(a,tb,!1))}
function ub(a,b,c){c&&a.g||(a.Ra=!a.c&&b[2]||a.o,a.Pc=!a.c&&b[3]||a.s);if(c||void 0===c)a.Gb=b[2]||a.o,a.X=b[3]||a.s}function sb(a,b,c){c&&a.f||(a.Qa=b[0]||a.m,a.Oc=b[1]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Eb=b[1]||a.v}function ob(a,b){b||(b=vb);sb(a,b,void 0);ub(a,b,void 0)}var vb=[],rb=[D.prototype.C,D.prototype.I,D.prototype.R,D.prototype.da],tb=[D.prototype.w,D.prototype.H,D.prototype.N,D.prototype.W]; function ub(a,b,c){c&&a.g||(a.Ra=!a.c&&b[2]||a.o,a.Pc=!a.c&&b[3]||a.s);if(c||void 0===c)a.Gb=b[2]||a.o,a.X=b[3]||a.s}function sb(a,b,c){c&&a.f||(a.Qa=b[0]||a.m,a.Oc=b[1]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Eb=b[1]||a.v}function ob(a,b){b||(b=vb);sb(a,b,void 0);ub(a,b,void 0)}var vb=[],rb=[D.prototype.C,D.prototype.I,D.prototype.R,D.prototype.da],tb=[D.prototype.w,D.prototype.J,D.prototype.O,D.prototype.W];
if(Sa)var qb=[D.prototype.u,D.prototype.G,D.prototype.J,D.prototype.U],pb=[D.prototype.B,D.prototype.L,D.prototype.P,D.prototype.Z];function wb(a,b){q.call(this,"CPU",a,wb);var c=a.multiplier||1;this.ma=a.cycles||b;this.J=c;this.Da=Math.round(this.ma/1E4)/100;this.W=this.Da*this.J;this.l.oa=!1;this.l.yb=!1;this.l.vb=a.autoStart;this.l.xb=!1;this.l.Xa=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.da=a.csStop;this.H=[];this.ab=this.jb.bind(this);C(this)}w(wb);var xb=["power","reset"]; if(Sa)var qb=[D.prototype.u,D.prototype.G,D.prototype.K,D.prototype.U],pb=[D.prototype.B,D.prototype.H,D.prototype.P,D.prototype.Z];function wb(a,b){q.call(this,"CPU",a,wb);var c=a.multiplier||1;this.ma=a.cycles||b;this.I=c;this.Da=Math.round(this.ma/1E4)/100;this.W=this.Da*this.I;this.l.oa=!1;this.l.yb=!1;this.l.vb=a.autoStart;this.l.xb=!1;this.l.Xa=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.da=a.csStop;this.G=[];this.ab=this.jb.bind(this);C(this)}w(wb);var xb=["power","reset"];
k=wb.prototype;k.qa=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;b<xb.length;b++)(c=this.A[xb[b]])&&this.v.V(null,xb[b],c);this.L=Va(a,"ChipSet");a=yb(a,"autoStart");null!=a&&(this.l.vb="true"==a?!0:"false"==a?!1:!!a);C(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.fa=function(a,b){if(!b){if(a&&this.restore){zb(this);if(!this.restore(a))return!1;Ab(this)}else this.reset();this.ca("No debugger detected")}Bb(this);return!0}; k=wb.prototype;k.qa=function(a,b,c,d){this.v=a;this.j=b;this.N=d;for(b=0;b<xb.length;b++)(c=this.A[xb[b]])&&this.v.V(null,xb[b],c);this.J=Va(a,"ChipSet");a=yb(a,"autoStart");null!=a&&(this.l.vb="true"==a?!0:"false"==a?!1:!!a);C(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.fa=function(a,b){if(!b){if(a&&this.restore){zb(this);if(!this.restore(a))return!1;Ab(this)}else this.reset();this.ca("No debugger detected")}Bb(this);return!0};
k.ia=function(a){return a?this.save():!0};function Cb(a){(a.l.vb||void 0===a.A.run)&&a.jb(!0)}k.Ab=function(){return 0};function Ab(a){void 0===a.ua&&(a.ua=0);void 0===a.Z&&(a.Z=-1);void 0===a.da&&(a.da=-1);a.l.Xa=0<=a.ua&&0<a.Z;a.l.Xa&&(a.ta=0,a.X=a.ua-a.U)} k.ia=function(a){return a?this.save():!0};function Cb(a){(a.l.vb||void 0===a.A.run)&&a.jb(!0)}k.Ab=function(){return 0};function Ab(a){void 0===a.ua&&(a.ua=0);void 0===a.Z&&(a.Z=-1);void 0===a.da&&(a.da=-1);a.l.Xa=0<=a.ua&&0<a.Z;a.l.Xa&&(a.ta=0,a.X=a.ua-a.U)}
k.V=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.l.Y)a=!0;else{var b=null,c,g=Ma(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.l.ha);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.l.Y);c++);c==g.length&&(b=a);p("The "+b.type+" component ("+b.id+") is not "+(b.l.ha?"powered yet":"ready yet"+(b.Za?" (waiting for notification)":""))+".");a=!1}a&&(d.l.oa?Db(d):d.jb())};a=!0;break; k.V=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.l.Y)a=!0;else{var b=null,c,g=Ma(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.l.ha);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.l.Y);c++);c==g.length&&(b=a);p("The "+b.type+" component ("+b.id+") is not "+(b.l.ha?"powered yet":"ready yet"+(b.Za?" (waiting for notification)":""))+".");a=!1}a&&(d.l.oa?Db(d):d.jb())};a=!0;break;
case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){Eb(d,d.J<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",a=!0}return a};function Fb(a,b,c){a.U+=b;c&&(a.C=a.a=0)}function Gb(a,b){var c=1;b&&1<a.J&&a.P&&(c=a.P/a.Da);a.Na=Math.round(1E3/30);a.wa=Math.floor(a.ma/30*c);b||(a.la=a.wa);a.Ea=0}function Hb(a){return a.U+a.N+a.C-a.a}function zb(a){a.P=0;a.Oa=0;a.U=a.N=a.C=a.a=0;Ab(a);Eb(a,1)} case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){Eb(d,d.I<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",a=!0}return a};function Fb(a,b,c){a.U+=b;c&&(a.R=a.a=0)}function Gb(a,b){var c=1;b&&1<a.I&&a.O&&(c=a.O/a.Da);a.Na=Math.round(1E3/30);a.wa=Math.floor(a.ma/30*c);b||(a.la=a.wa);a.Ea=0}function Hb(a){return a.U+a.K+a.R-a.a}function zb(a){a.O=0;a.Oa=0;a.U=a.K=a.R=a.a=0;Ab(a);Eb(a,1)}
function Eb(a,b,c){if(void 0!==b){.8>a.P/a.W&&(b=1);a.J=b;b=a.Da*a.J;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.ca("target speed: "+b)}c&&a.v&&Ib(a.v)}Fb(a,a.N);a.N=0;a.I=ja();a.R=0;Gb(a)}function Kb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function Lb(a,b,c){var d=-1;0<=b&&b<a.H.length&&(d=a.ma*a.J/1E3*c,a.H[b][0]=d)} function Eb(a,b,c){if(void 0!==b){.8>a.O/a.W&&(b=1);a.I=b;b=a.Da*a.I;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.ca("target speed: "+b)}c&&a.v&&Ib(a.v)}Fb(a,a.K);a.K=0;a.H=ja();a.P=0;Gb(a)}function Jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Lb(a,b,c){var d=-1;0<=b&&b<a.G.length&&(d=a.ma*a.I/1E3*c,a.G[b][0]=d)}function Mb(a){a.R-=a.a;a.a=0}
k.jb=function(a){if(Qa(this,!0)){if(!this.l.oa){Eb(this);this.v&&this.v.start(this.I,Hb(this));this.l.oa=!0;this.l.yb=!0;this.L&&this.L.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Ba(!0),a&&Ib(this.v,!0))}this.Ea>=this.ma&&Gb(this,!0);this.pa=0;this.sa=ja();this.R&&(a=this.sa-this.R,a>this.Na&&(this.I+=a,this.I>this.sa&&(this.I=this.sa)));try{do{for(var c=this.l.Xa?1:this.wa,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}this.Fb(c);var f=this.C-this.a; k.jb=function(a){if(Qa(this,!0)){if(!this.l.oa){Eb(this);this.v&&this.v.start(this.H,Hb(this));this.l.oa=!0;this.l.yb=!0;this.J&&this.J.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Ba(!0),a&&Ib(this.v,!0))}this.Ea>=this.ma&&Gb(this,!0);this.pa=0;this.sa=ja();this.P&&(a=this.sa-this.P,a>this.Na&&(this.H+=a,this.H>this.sa&&(this.H=this.sa)));try{do{for(var c=this.l.Xa?1:this.wa,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}this.Fb(c);var f=this.R-this.a;
a=f;for(var h=this.H.length-1;0<=h;h--){var g=this.H[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.pa+=f;this.N+=f;Fb(this,0,!0);a=f;this.l.Xa&&(b=!1,this.ta=this.ta+this.Ab()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.da&&this.da<=Hb(this)&&(this.Z=this.da=-1,Ab(this),Db(this),b=!0),b&&this.ca(Hb(this)+" cycles: checksum="+m(this.ta)));this.la-=f;if(0>=this.la){this.la+=this.wa;15<=++this.Oa&&(this.v&&this.v.Ba(),this.Oa=0);break}}while(this.l.oa)}catch(l){Db(this);Bb(this);this.v&& a=f;for(var h=this.G.length-1;0<=h;h--){var g=this.G[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.pa+=f;this.K+=f;Fb(this,0,!0);a=f;this.l.Xa&&(b=!1,this.ta=this.ta+this.Ab()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.da&&this.da<=Hb(this)&&(this.Z=this.da=-1,Ab(this),Db(this),b=!0),b&&this.ca(Hb(this)+" cycles: checksum="+m(this.ta)));this.la-=f;if(0>=this.la){this.la+=this.wa;15<=++this.Oa&&(this.v&&this.v.Ba(),this.Oa=0);break}}while(this.l.oa)}catch(l){Db(this);Bb(this);this.v&&
this.v.stop(ja(),Hb(this));Qa(this,!1);c=l.stack||l.message;this.l.Aa=!0;this.M(c);return}c=setTimeout;d=this.ab;this.R=ja();e=this.Na;this.pa&&(e=Math.round(e*this.pa/this.wa));e=e-(this.R-this.sa);if(f=this.R-this.I)this.P=Math.round(this.N/(10*f))/100,864E5<=f&&(this.U=0,Eb(this));if(0>e||this.P<this.W)-1E3>e&&(this.I-=e),e=0;this.Ea+=this.pa;this.R+=e;c(d,e)}else Bb(this),this.v&&this.v.stop(ja(),Hb(this))};k.Fb=function(){return 0}; this.v.stop(ja(),Hb(this));Qa(this,!1);c=l.stack||l.message;this.l.Aa=!0;this.M(c);return}c=setTimeout;d=this.ab;this.P=ja();e=this.Na;this.pa&&(e=Math.round(e*this.pa/this.wa));e=e-(this.P-this.sa);if(f=this.P-this.H)this.O=Math.round(this.K/(10*f))/100,864E5<=f&&(this.U=0,Eb(this));if(0>e||this.O<this.W)-1E3>e&&(this.H-=e),e=0;this.Ea+=this.pa;this.P+=e;c(d,e)}else Bb(this),this.v&&this.v.stop(ja(),Hb(this))};k.Fb=function(){return 0};
function Db(a){a.l.Ma&&(a.l.gb=!0);a.C-=a.a;a.a=0;Fb(a,a.N);a.N=0;if(a.l.oa){a.l.oa=!1;a.L&&a.L.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.Ya=void 0}function Bb(a){if(a.v){for(var b=a.v,c=0;c<b.m.length;c++)Mb(b.m[c],void 0);a.v.Ba(void 0)}}function Nb(a){this.$a=+a.model||8080;wb.call(this,a,1E6);this.Ja=Ob;zb(this);this.l.Ya=this.l.mc=!1;this.La=0;this.ra=[];this.Ka=0;Pb(this)}w(Nb,wb);function Qb(a,b){a.ra.push(b)}k=Nb.prototype; function Db(a){a.l.Ma&&(a.l.gb=!0);Mb(a);Fb(a,a.K);a.K=0;if(a.l.oa){a.l.oa=!1;a.J&&a.J.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.Ya=void 0}function Bb(a){if(a.v){for(var b=a.v,c=0;c<b.m.length;c++)Nb(b.m[c],void 0);a.v.Ba(void 0)}}function Ob(a){this.$a=+a.model||8080;wb.call(this,a,1E6);this.Ja=Pb;zb(this);this.l.Ya=this.l.mc=!1;this.La=0;this.ra=[];this.Ka=0;Qb(this)}w(Ob,wb);function Rb(a,b){a.ra.push(b)}k=Ob.prototype;
k.reset=function(){this.l.oa&&Db(this);Pb(this);zb(this);this.l.Aa=!1;this.parent.reset.call(this)};function Pb(a){a.b=0;a.c=0;a.D=0;a.f=0;a.F=0;a.g=0;a.i=0;a.u=0;E(a,a.Ka);Rb(a,0);a.B=0}function Sb(a,b){a.Ka=b;E(a,b)}k.Ab=function(){var a=this.b+this.c+this.D+this.f+this.F+this.g+this.i|0;return a=a+this.u+this.o+Tb(this)|0}; k.reset=function(){this.l.oa&&Db(this);Qb(this);zb(this);this.l.Aa=!1;this.parent.reset.call(this)};function Qb(a){a.b=0;a.c=0;a.D=0;a.f=0;a.F=0;a.g=0;a.i=0;a.u=0;E(a,a.Ka);Sb(a,0);a.B=0}function Tb(a,b){a.Ka=b;E(a,b)}k.Ab=function(){var a=this.b+this.c+this.D+this.f+this.F+this.g+this.i|0;return a=a+this.u+this.o+Ub(this)|0};
k.save=function(){var a=new F(this);G(a,0,[this.b,this.c,this.D,this.f,this.F,this.g,this.i,this.u,this.o,Tb(this)]);G(a,1,[this.B,this.U,this.J]);for(var b=this.j,c=0,d=[],e=0;e<b.m;e++){var f=b.b[e];if(f.na||f.wb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,n=[];g<f.length;){for(var x=f[g],t=g+1;t<f.length&&f[t]===x;)t++;n[l++]=t-g;n[l++]=x;g=t}if(n.length<f.length){f=n;break a}}d[h]=f}}G(a,2,d);return a.data()}; k.save=function(){var a=new F(this);G(a,0,[this.b,this.c,this.D,this.f,this.F,this.g,this.i,this.u,this.o,Ub(this)]);G(a,1,[this.B,this.U,this.I]);for(var b=this.j,c=0,d=[],e=0;e<b.m;e++){var f=b.b[e];if(f.na||f.wb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,n=[];g<f.length;){for(var x=f[g],t=g+1;t<f.length&&f[t]===x;)t++;n[l++]=t-g;n[l++]=x;g=t}if(n.length<f.length){f=n;break a}}d[h]=f}}G(a,2,d);return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.c=b[1];this.D=b[2];this.f=b[3];this.F=b[4];this.g=b[5];this.i=b[6];this.u=b[7]&65535;E(this,b[8]);Rb(this,b[9]);b=a[1];this.B=b[0];this.U=b[1];Eb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.w){for(var f=0,h=Array(b.w),g=0;g<e.length-1;)for(var l=e[g++],n=e[g++];l--;)h[f++]=n;e=h}f=b.b[d];if(!f||!f.restore(e)){p("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; k.restore=function(a){var b=a[0];this.b=b[0];this.c=b[1];this.D=b[2];this.f=b[3];this.F=b[4];this.g=b[5];this.i=b[6];this.u=b[7]&65535;E(this,b[8]);Sb(this,b[9]);b=a[1];this.B=b[0];this.U=b[1];Eb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.w){for(var f=0,h=Array(b.w),g=0;g<e.length-1;)for(var l=e[g++],n=e[g++];l--;)h[f++]=n;e=h}f=b.b[d];if(!f||!f.restore(e)){p("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.V=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.A[b]=c;this.La++;d=!0;break;default:d=this.parent.V.call(this,a,b,c)}return d};function Ub(a){return a.c<<8|a.D}function Vb(a,b){a.c=b>>8&255;a.D=b&255}function Wb(a){return a.f<<8|a.F}function Xb(a,b){a.f=b>>8&255;a.F=b&255}function I(a){return a.g<<8|a.i} k.V=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.A[b]=c;this.La++;d=!0;break;default:d=this.parent.V.call(this,a,b,c)}return d};function Vb(a){return a.c<<8|a.D}function Wb(a,b){a.c=b>>8&255;a.D=b&255}function Xb(a){return a.f<<8|a.F}function Yb(a,b){a.f=b>>8&255;a.F=b&255}function I(a){return a.g<<8|a.i}
function J(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function K(a){return a.m&256?1:0}function L(a,b){a.m=a.m&255|b}function Yb(a){return Ta[a.s&255]?4:0}function Tb(a){return a.G&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Yb(a)|K(a)}function Rb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.G=a.G&-726|b&512|2}function M(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255} function J(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function K(a){return a.m&256?1:0}function L(a,b){a.m=a.m&255|b}function Zb(a){return Ta[a.s&255]?4:0}function Ub(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Zb(a)|K(a)}function Sb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function M(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255}
function Zb(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function $b(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function ac(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function bc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function cc(a,b){return a.s=a.m=a.w=a.b|b}function N(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function dc(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function ec(a,b){return a.s=a.m=a.w=a.b^b}k.K=function(a){return this.j.K(a)}; function $b(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function ac(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function bc(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function cc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function dc(a,b){return a.s=a.m=a.w=a.b|b}function N(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function ec(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function fc(a,b){return a.s=a.m=a.w=a.b^b}k.L=function(a){return this.j.L(a)};
k.$=function(a,b){this.j.$(a,b)};function O(a){var b=a.K(a.o);E(a,a.o+1);return b}function P(a){var b=cb(a.j,a.o);E(a,a.o+2);return b}function Q(a){var b=cb(a.j,a.u);a.u=a.u+2&65535;return b}function S(a,b){a.u=a.u-2&65535;fb(a.j,a.u,b)}function fc(a){if(a.a&&a.B&255&&a.G&512){for(var b=0;8>b&&!(a.B&1<<b);b++);a.B&=~(0>b?255:1<<b);a.G&=-513;a.B&=-257;a.Ja[199|b<<3].call(a)}return a.B&256?(a.C-=a.a,a.a=0,!1):!0}function gc(a,b){a.B|=1<<b;a.G&512&&(a.C-=a.a,a.a=0)} k.$=function(a,b){this.j.$(a,b)};function O(a){var b=a.L(a.o);E(a,a.o+1);return b}function P(a){var b=cb(a.j,a.o);E(a,a.o+2);return b}function Q(a){var b=cb(a.j,a.u);a.u=a.u+2&65535;return b}function S(a,b){a.u=a.u-2&65535;fb(a.j,a.u,b)}function gc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<<b);b++);a.B&=~(0>b?255:1<<b);a.C&=-513;a.B&=-257;a.Ja[199|b<<3].call(a)}return a.B&256?(Mb(a),!1):!0}function hc(a,b){a.B|=1<<b;a.C&512&&Mb(a)}
function T(a,b,c,d){d=d||2;a.A[b]&&(void 0===c&&(a.l.Aa=!0,a.M("Value for "+b+" is invalid"),Db(a)),c=!a.l.oa||a.l.xb?m(c,d):"--------".substr(0,d),a.A[b].textContent!=c&&(a.A[b].textContent=c))} function T(a,b,c,d){d=d||2;a.A[b]&&(void 0===c&&(a.l.Aa=!0,a.M("Value for "+b+" is invalid"),Db(a)),c=!a.l.oa||a.l.xb?m(c,d):"--------".substr(0,d),a.A[b].textContent!=c&&(a.A[b].textContent=c))}
k.Ba=function(a){this.La&&(a||!this.l.oa||this.l.xb)&&(T(this,"A",this.b),T(this,"B",this.c),T(this,"C",this.D),T(this,"BC",Ub(this),4),T(this,"D",this.f),T(this,"E",this.F),T(this,"DE",Wb(this),4),T(this,"H",this.g),T(this,"L",this.i),T(this,"HL",I(this),4),T(this,"SP",this.u,4),T(this,"PC",this.o,4),a=Tb(this),T(this,"PS",a,4),T(this,"IF",a&512?1:0,1),T(this,"SF",a&128?1:0,1),T(this,"ZF",a&64?1:0,1),T(this,"AF",a&16?1:0,1),T(this,"PF",a&4?1:0,1),T(this,"CF",a&1?1:0,1));if(a=this.A.speed)a.textContent= k.Ba=function(a){this.La&&(a||!this.l.oa||this.l.xb)&&(T(this,"A",this.b),T(this,"B",this.c),T(this,"C",this.D),T(this,"BC",Vb(this),4),T(this,"D",this.f),T(this,"E",this.F),T(this,"DE",Xb(this),4),T(this,"H",this.g),T(this,"L",this.i),T(this,"HL",I(this),4),T(this,"SP",this.u,4),T(this,"PC",this.o,4),a=Ub(this),T(this,"PS",a,4),T(this,"IF",a&512?1:0,1),T(this,"SF",a&128?1:0,1),T(this,"ZF",a&64?1:0,1),T(this,"AF",a&16?1:0,1),T(this,"PF",a&4?1:0,1),T(this,"CF",a&1?1:0,1));if(a=this.A.speed)a.textContent=
this.l.oa&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};k.Fb=function(a){this.l.Ya=!0;this.l.mc=!1;this.l.yb=!1;this.C=this.a=a;if(fc(this)){do this.Ja[O(this)].call(this);while(0<this.a)}return this.l.Ya?this.C-this.a:void 0===this.l.Ya?0:-1};ya(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Nb(d);Pa(d,c)}});function hc(){this.a-=4}function ic(){E(this,P(this));this.a-=10}function jc(){E(this,Q(this));this.a-=10} this.l.oa&&this.O?this.O.toFixed(2)+"Mhz":"Stopped"};k.Fb=function(a){this.l.Ya=!0;this.l.mc=!1;this.l.yb=!1;this.R=this.a=a;if(gc(this)){do this.Ja[O(this)].call(this);while(0<this.a)}return this.l.Ya?this.R-this.a:void 0===this.l.Ya?0:-1};ya(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ob(d);Pa(d,c)}});function ic(){this.a-=4}function jc(){E(this,P(this));this.a-=10}function kc(){E(this,Q(this));this.a-=10}
function kc(){var a=P(this);S(this,this.o);E(this,a);this.a-=17} function lc(){var a=P(this);S(this,this.o);E(this,a);this.a-=17}
var Ob=[hc,function(){Vb(this,P(this));this.a-=10},function(){this.$(Ub(this),this.b);this.a-=7},function(){Vb(this,Ub(this)+1);this.a-=5},function(){this.c=bc(this,this.c);this.a-=5},function(){this.c=ac(this,this.c);this.a-=5},function(){this.c=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;L(this,a&256);this.a-=4},hc,function(){var a;J(this,a=I(this)+Ub(this));L(this,a>>8&256);this.a-=10},function(){this.b=this.K(Ub(this));this.a-=7},function(){Vb(this,Ub(this)-1);this.a-=5},function(){this.D= var Pb=[ic,function(){Wb(this,P(this));this.a-=10},function(){this.$(Vb(this),this.b);this.a-=7},function(){Wb(this,Vb(this)+1);this.a-=5},function(){this.c=cc(this,this.c);this.a-=5},function(){this.c=bc(this,this.c);this.a-=5},function(){this.c=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;L(this,a&256);this.a-=4},ic,function(){var a;J(this,a=I(this)+Vb(this));L(this,a>>8&256);this.a-=10},function(){this.b=this.L(Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5},function(){this.D=
bc(this,this.D);this.a-=5},function(){this.D=ac(this,this.D);this.a-=5},function(){this.D=O(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;L(this,a);this.a-=4},hc,function(){Xb(this,P(this));this.a-=10},function(){this.$(Wb(this),this.b);this.a-=7},function(){Xb(this,Wb(this)+1);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=ac(this,this.f);this.a-=5},function(){this.f=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|K(this);L(this,a&256); cc(this,this.D);this.a-=5},function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=O(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;L(this,a);this.a-=4},ic,function(){Yb(this,P(this));this.a-=10},function(){this.$(Xb(this),this.b);this.a-=7},function(){Yb(this,Xb(this)+1);this.a-=5},function(){this.f=cc(this,this.f);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|K(this);L(this,a&256);
this.a-=4},hc,function(){var a;J(this,a=I(this)+Wb(this));L(this,a>>8&256);this.a-=10},function(){this.b=this.K(Wb(this));this.a-=7},function(){Xb(this,Wb(this)-1);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=ac(this,this.F);this.a-=5},function(){this.F=O(this);this.a-=7},function(){var a=this.b<<8;this.b=(K(this)<<8|this.b)>>1;L(this,a&256);this.a-=4},hc,function(){J(this,P(this));this.a-=10},function(){var a=P(this);fb(this.j,a,I(this));this.a-=16},function(){J(this, this.a-=4},ic,function(){var a;J(this,a=I(this)+Xb(this));L(this,a>>8&256);this.a-=10},function(){this.b=this.L(Xb(this));this.a-=7},function(){Yb(this,Xb(this)-1);this.a-=5},function(){this.F=cc(this,this.F);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=O(this);this.a-=7},function(){var a=this.b<<8;this.b=(K(this)<<8|this.b)>>1;L(this,a&256);this.a-=4},ic,function(){J(this,P(this));this.a-=10},function(){var a=P(this);fb(this.j,a,I(this));this.a-=16},function(){J(this,
I(this)+1);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=ac(this,this.g);this.a-=5},function(){this.g=O(this);this.a-=7},function(){var a=0,b=K(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=M(this,a);L(this,b?256:0);this.a-=4},hc,function(){var a;J(this,a=I(this)+I(this));L(this,a>>8&256);this.a-=10},function(){var a;a=P(this);a=cb(this.j,a);J(this,a);this.a-=16},function(){J(this,I(this)-1);this.a-=5},function(){this.i=bc(this,this.i); I(this)+1);this.a-=5},function(){this.g=cc(this,this.g);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=O(this);this.a-=7},function(){var a=0,b=K(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=M(this,a);L(this,b?256:0);this.a-=4},ic,function(){var a;J(this,a=I(this)+I(this));L(this,a>>8&256);this.a-=10},function(){var a;a=P(this);a=cb(this.j,a);J(this,a);this.a-=16},function(){J(this,I(this)-1);this.a-=5},function(){this.i=cc(this,this.i);
this.a-=5},function(){this.i=ac(this,this.i);this.a-=5},function(){this.i=O(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},hc,function(){this.u=P(this)&65535;this.a-=10},function(){this.$(P(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=I(this);this.$(a,bc(this,this.K(a)));this.a-=10},function(){var a=I(this);this.$(a,ac(this,this.K(a)));this.a-=10},function(){this.$(I(this),O(this));this.a-=10},function(){this.m|=256;this.a-=4},hc,function(){var a; this.a-=5},function(){this.i=bc(this,this.i);this.a-=5},function(){this.i=O(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},ic,function(){this.u=P(this)&65535;this.a-=10},function(){this.$(P(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=I(this);this.$(a,cc(this,this.L(a)));this.a-=10},function(){var a=I(this);this.$(a,bc(this,this.L(a)));this.a-=10},function(){this.$(I(this),O(this));this.a-=10},function(){this.m|=256;this.a-=4},ic,function(){var a;
J(this,a=I(this)+this.u);L(this,a>>8&256);this.a-=10},function(){this.b=this.K(P(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=ac(this,this.b);this.a-=5},function(){this.b=O(this);this.a-=7},function(){L(this,K(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i; J(this,a=I(this)+this.u);L(this,a>>8&256);this.a-=10},function(){this.b=this.L(P(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=cc(this,this.b);this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=O(this);this.a-=7},function(){L(this,K(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i;
this.a-=5},function(){this.c=this.K(I(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.D=this.c;this.a-=5},function(){this.a-=5},function(){this.D=this.f;this.a-=5},function(){this.D=this.F;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.K(I(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.D;this.a-=5},function(){this.a-=5},function(){this.f=this.F;this.a-= this.a-=5},function(){this.c=this.L(I(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.D=this.c;this.a-=5},function(){this.a-=5},function(){this.D=this.f;this.a-=5},function(){this.D=this.F;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.L(I(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.D;this.a-=5},function(){this.a-=5},function(){this.f=this.F;this.a-=
5},function(){this.f=this.g;this.a-=5},function(){this.f=this.i;this.a-=5},function(){this.f=this.K(I(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.F=this.c;this.a-=5},function(){this.F=this.D;this.a-=5},function(){this.F=this.f;this.a-=5},function(){this.a-=5},function(){this.F=this.g;this.a-=5},function(){this.F=this.i;this.a-=5},function(){this.F=this.K(I(this));this.a-=7},function(){this.F=this.b;this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.D;this.a-= 5},function(){this.f=this.g;this.a-=5},function(){this.f=this.i;this.a-=5},function(){this.f=this.L(I(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.F=this.c;this.a-=5},function(){this.F=this.D;this.a-=5},function(){this.F=this.f;this.a-=5},function(){this.a-=5},function(){this.F=this.g;this.a-=5},function(){this.F=this.i;this.a-=5},function(){this.F=this.L(I(this));this.a-=7},function(){this.F=this.b;this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.D;this.a-=
5},function(){this.g=this.f;this.a-=5},function(){this.g=this.F;this.a-=5},function(){this.a-=5},function(){this.g=this.i;this.a-=5},function(){this.g=this.K(I(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.i=this.c;this.a-=5},function(){this.i=this.D;this.a-=5},function(){this.i=this.f;this.a-=5},function(){this.i=this.F;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.a-=5},function(){this.i=this.K(I(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.$(I(this), 5},function(){this.g=this.f;this.a-=5},function(){this.g=this.F;this.a-=5},function(){this.a-=5},function(){this.g=this.i;this.a-=5},function(){this.g=this.L(I(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.i=this.c;this.a-=5},function(){this.i=this.D;this.a-=5},function(){this.i=this.f;this.a-=5},function(){this.i=this.F;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.a-=5},function(){this.i=this.L(I(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.$(I(this),
this.c);this.a-=7},function(){this.$(I(this),this.D);this.a-=7},function(){this.$(I(this),this.f);this.a-=7},function(){this.$(I(this),this.F);this.a-=7},function(){this.$(I(this),this.g);this.a-=7},function(){this.$(I(this),this.i);this.a-=7},function(){var a=this.o-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.B|=256;this.C-=this.a;this.a=0;this.G&512||Db(this)},function(){this.$(I(this),this.b);this.a-=7},function(){this.b=this.c;this.a-=5},function(){this.b= this.c);this.a-=7},function(){this.$(I(this),this.D);this.a-=7},function(){this.$(I(this),this.f);this.a-=7},function(){this.$(I(this),this.F);this.a-=7},function(){this.$(I(this),this.g);this.a-=7},function(){this.$(I(this),this.i);this.a-=7},function(){var a=this.o-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.B|=256;Mb(this);this.C&512||Db(this)},function(){this.$(I(this),this.b);this.a-=7},function(){this.b=this.c;this.a-=5},function(){this.b=this.D;
this.D;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.F;this.a-=5},function(){this.b=this.g;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.K(I(this));this.a-=7},function(){this.a-=5},function(){this.b=M(this,this.c);this.a-=4},function(){this.b=M(this,this.D);this.a-=4},function(){this.b=M(this,this.f);this.a-=4},function(){this.b=M(this,this.F);this.a-=4},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b= this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.F;this.a-=5},function(){this.b=this.g;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.L(I(this));this.a-=7},function(){this.a-=5},function(){this.b=M(this,this.c);this.a-=4},function(){this.b=M(this,this.D);this.a-=4},function(){this.b=M(this,this.f);this.a-=4},function(){this.b=M(this,this.F);this.a-=4},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=
M(this,this.K(I(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=Zb(this,this.c);this.a-=4},function(){this.b=Zb(this,this.D);this.a-=4},function(){this.b=Zb(this,this.f);this.a-=4},function(){this.b=Zb(this,this.F);this.a-=4},function(){this.b=Zb(this,this.g);this.a-=4},function(){this.b=Zb(this,this.i);this.a-=4},function(){this.b=Zb(this,this.K(I(this)));this.a-=7},function(){this.b=Zb(this,this.b);this.a-=4},function(){this.b=N(this,this.c);this.a-=4},function(){this.b= M(this,this.L(I(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=$b(this,this.c);this.a-=4},function(){this.b=$b(this,this.D);this.a-=4},function(){this.b=$b(this,this.f);this.a-=4},function(){this.b=$b(this,this.F);this.a-=4},function(){this.b=$b(this,this.g);this.a-=4},function(){this.b=$b(this,this.i);this.a-=4},function(){this.b=$b(this,this.L(I(this)));this.a-=7},function(){this.b=$b(this,this.b);this.a-=4},function(){this.b=N(this,this.c);this.a-=4},function(){this.b=
N(this,this.D);this.a-=4},function(){this.b=N(this,this.f);this.a-=4},function(){this.b=N(this,this.F);this.a-=4},function(){this.b=N(this,this.g);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.K(I(this)));this.a-=7},function(){this.b=N(this,this.b);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.D);this.a-=4},function(){this.b=dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.F);this.a-=4},function(){this.b=dc(this, N(this,this.D);this.a-=4},function(){this.b=N(this,this.f);this.a-=4},function(){this.b=N(this,this.F);this.a-=4},function(){this.b=N(this,this.g);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.L(I(this)));this.a-=7},function(){this.b=N(this,this.b);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.D);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.F);this.a-=4},function(){this.b=ec(this,
this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.b=dc(this,this.K(I(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){this.b=$b(this,this.c);this.a-=4},function(){this.b=$b(this,this.D);this.a-=4},function(){this.b=$b(this,this.f);this.a-=4},function(){this.b=$b(this,this.F);this.a-=4},function(){this.b=$b(this,this.g);this.a-=4},function(){this.b=$b(this,this.i);this.a-=4},function(){this.b=$b(this,this.K(I(this)));this.a-=7},function(){this.b= this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.b=ec(this,this.L(I(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=ac(this,this.c);this.a-=4},function(){this.b=ac(this,this.D);this.a-=4},function(){this.b=ac(this,this.f);this.a-=4},function(){this.b=ac(this,this.F);this.a-=4},function(){this.b=ac(this,this.g);this.a-=4},function(){this.b=ac(this,this.i);this.a-=4},function(){this.b=ac(this,this.L(I(this)));this.a-=7},function(){this.b=
$b(this,this.b);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.D);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.F);this.a-=4},function(){this.b=ec(this,this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.b=ec(this,this.K(I(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=cc(this,this.c);this.a-=4},function(){this.b=cc(this,this.D);this.a-=4},function(){this.b= ac(this,this.b);this.a-=4},function(){this.b=fc(this,this.c);this.a-=4},function(){this.b=fc(this,this.D);this.a-=4},function(){this.b=fc(this,this.f);this.a-=4},function(){this.b=fc(this,this.F);this.a-=4},function(){this.b=fc(this,this.g);this.a-=4},function(){this.b=fc(this,this.i);this.a-=4},function(){this.b=fc(this,this.L(I(this)));this.a-=7},function(){this.b=fc(this,this.b);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.D);this.a-=4},function(){this.b=
cc(this,this.f);this.a-=4},function(){this.b=cc(this,this.F);this.a-=4},function(){this.b=cc(this,this.g);this.a-=4},function(){this.b=cc(this,this.i);this.a-=4},function(){this.b=cc(this,this.K(I(this)));this.a-=7},function(){this.b=cc(this,this.b);this.a-=4},function(){N(this,this.c);this.a-=4},function(){N(this,this.D);this.a-=4},function(){N(this,this.f);this.a-=4},function(){N(this,this.F);this.a-=4},function(){N(this,this.g);this.a-=4},function(){N(this,this.i);this.a-=4},function(){N(this, dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.F);this.a-=4},function(){this.b=dc(this,this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.b=dc(this,this.L(I(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){N(this,this.c);this.a-=4},function(){N(this,this.D);this.a-=4},function(){N(this,this.f);this.a-=4},function(){N(this,this.F);this.a-=4},function(){N(this,this.g);this.a-=4},function(){N(this,this.i);this.a-=4},function(){N(this,
this.K(I(this)));this.a-=7},function(){N(this,this.b);this.a-=4},function(){this.m&255&&(E(this,Q(this)),this.a-=6);this.a-=5},function(){Vb(this,Q(this));this.a-=10},function(){var a=P(this);this.m&255&&E(this,a);this.a-=10},ic,function(){var a=P(this);this.m&255&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,Ub(this));this.a-=11},function(){this.b=M(this,O(this));this.a-=7},function(){S(this,this.o);E(this,0);this.a-=11},function(){this.m&255||(E(this,Q(this)),this.a-=6);this.a-= this.L(I(this)));this.a-=7},function(){N(this,this.b);this.a-=4},function(){this.m&255&&(E(this,Q(this)),this.a-=6);this.a-=5},function(){Wb(this,Q(this));this.a-=10},function(){var a=P(this);this.m&255&&E(this,a);this.a-=10},jc,function(){var a=P(this);this.m&255&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,Vb(this));this.a-=11},function(){this.b=M(this,O(this));this.a-=7},function(){S(this,this.o);E(this,0);this.a-=11},function(){this.m&255||(E(this,Q(this)),this.a-=6);this.a-=
5},jc,function(){var a=P(this);this.m&255||E(this,a);this.a-=10},ic,function(){var a=P(this);this.m&255||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){this.b=Zb(this,O(this));this.a-=7},function(){S(this,this.o);E(this,8);this.a-=11},function(){K(this)||(E(this,Q(this)),this.a-=6);this.a-=5},function(){Xb(this,Q(this));this.a-=10},function(){var a=P(this);K(this)||E(this,a);this.a-=10},function(){for(var a=O(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var h=b.o[a],g=b.C[a]|| 5},kc,function(){var a=P(this);this.m&255||E(this,a);this.a-=10},jc,function(){var a=P(this);this.m&255||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=$b(this,O(this));this.a-=7},function(){S(this,this.o);E(this,8);this.a-=11},function(){K(this)||(E(this,Q(this)),this.a-=6);this.a-=5},function(){Yb(this,Q(this));this.a-=10},function(){var a=P(this);K(this)||E(this,a);this.a-=10},function(){for(var a=O(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var h=b.o[a],g=b.C[a]||
1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=P(this);K(this)||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,Wb(this));this.a-=11},function(){this.b=N(this,O(this));this.a-=7},function(){S(this,this.o);E(this,16);this.a-=11},function(){K(this)&&(E(this,Q(this)),this.a-=6);this.a-=5},jc,function(){var a=P(this);K(this)&&E(this,a);this.a-=10},function(){for(var a=O(this),b=this.j,c=this.o+-2&65535,d=1,e=0, 1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=P(this);K(this)||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,Xb(this));this.a-=11},function(){this.b=N(this,O(this));this.a-=7},function(){S(this,this.o);E(this,16);this.a-=11},function(){K(this)&&(E(this,Q(this)),this.a-=6);this.a-=5},kc,function(){var a=P(this);K(this)&&E(this,a);this.a-=10},function(){for(var a=O(this),b=this.j,c=this.o+-2&65535,d=1,e=0,
f=0;0<d;){var h=b.v[a],g=b.B[a]||1,l=1==g?255:2==g?65535:-1,n=l;void 0!==h&&h[0]&&(n=h[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=P(this);K(this)&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){this.b=dc(this,O(this));this.a-=7},function(){S(this,this.o);E(this,24);this.a-=11},function(){Yb(this)||(E(this,Q(this)),this.a-=6);this.a-=5},function(){J(this,Q(this));this.a-=10},function(){var a=P(this);Yb(this)||E(this,a);this.a-=10}, f=0;0<d;){var h=b.v[a],g=b.B[a]||1,l=1==g?255:2==g?65535:-1,n=l;void 0!==h&&h[0]&&(n=h[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=P(this);K(this)&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=ec(this,O(this));this.a-=7},function(){S(this,this.o);E(this,24);this.a-=11},function(){Zb(this)||(E(this,Q(this)),this.a-=6);this.a-=5},function(){J(this,Q(this));this.a-=10},function(){var a=P(this);Zb(this)||E(this,a);this.a-=10},
function(){var a=Q(this);S(this,I(this));J(this,a);this.a-=18},function(){var a=P(this);Yb(this)||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,I(this));this.a-=11},function(){this.b=$b(this,O(this));this.a-=7},function(){S(this,this.o);E(this,32);this.a-=11},function(){Yb(this)&&(E(this,Q(this)),this.a-=6);this.a-=5},function(){E(this,I(this));this.a-=5},function(){var a=P(this);Yb(this)&&E(this,a);this.a-=10},function(){var a=I(this);J(this,Wb(this));Xb(this,a);this.a-=5},function(){var a= function(){var a=Q(this);S(this,I(this));J(this,a);this.a-=18},function(){var a=P(this);Zb(this)||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,I(this));this.a-=11},function(){this.b=ac(this,O(this));this.a-=7},function(){S(this,this.o);E(this,32);this.a-=11},function(){Zb(this)&&(E(this,Q(this)),this.a-=6);this.a-=5},function(){E(this,I(this));this.a-=5},function(){var a=P(this);Zb(this)&&E(this,a);this.a-=10},function(){var a=I(this);J(this,Xb(this));Yb(this,a);this.a-=5},function(){var a=
P(this);Yb(this)&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){this.b=ec(this,O(this));this.a-=7},function(){S(this,this.o);E(this,40);this.a-=11},function(){this.s&128||(E(this,Q(this)),this.a-=6);this.a-=5},function(){var a=Q(this);Rb(this,a&255|this.G&-256);this.b=a>>8;this.a-=10},function(){var a=P(this);this.s&128||E(this,a);this.a-=10},function(){this.G&=-513;this.a-=4},function(){var a=P(this);this.s&128||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this, P(this);Zb(this)&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=fc(this,O(this));this.a-=7},function(){S(this,this.o);E(this,40);this.a-=11},function(){this.s&128||(E(this,Q(this)),this.a-=6);this.a-=5},function(){var a=Q(this);Sb(this,a&255|this.C&-256);this.b=a>>8;this.a-=10},function(){var a=P(this);this.s&128||E(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=P(this);this.s&128||(S(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){S(this,
Tb(this)&255|this.b<<8);this.a-=11},function(){this.b=cc(this,O(this));this.a-=7},function(){S(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,Q(this)),this.a-=6);this.a-=5},function(){this.u=I(this)&65535;this.a-=5},function(){var a=P(this);this.s&128&&E(this,a);this.a-=10},function(){this.G|=512;this.a-=4;fc(this)},function(){var a=P(this);this.s&128&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){N(this,O(this));this.a-=7},function(){S(this,this.o);E(this,56); Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=dc(this,O(this));this.a-=7},function(){S(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,Q(this)),this.a-=6);this.a-=5},function(){this.u=I(this)&65535;this.a-=5},function(){var a=P(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;gc(this)},function(){var a=P(this);this.s&128&&(S(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){N(this,O(this));this.a-=7},function(){S(this,this.o);E(this,56);
this.a-=11}];function U(a){q.call(this,"ChipSet",a,U);var b=a.model;b&&!lc[b]&&Aa("Unrecognized ChipSet model: "+b);this.c=lc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);C(this)}w(U); this.a-=11}];function U(a){q.call(this,"ChipSet",a,U);var b=a.model;b&&!mc[b]&&Aa("Unrecognized ChipSet model: "+b);this.c=mc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);C(this)}w(U);
var W={aa:1978.1,jc:{ba:0,Uc:1,Yc:16,ed:32,od:64,nd:128,Ga:14},za:{ba:1,Lb:1,ec:2,ac:4,bc:16,cc:32,dc:64,Ga:8},kc:{ba:2,Tc:3,xd:4,Vc:8,jd:16,kd:32,ld:64,Wc:128,Ga:0},sd:{ba:3},qd:{ba:2,fd:7},ud:{ba:3,yd:1,td:2,md:4,cd:8,Xc:16,Qc:32},rd:{ba:4},vd:{ba:5,Zc:1,$c:2,ad:4,bd:8,zd:16}},X={aa:100,ja:{ba:66,tb:1,Zb:2,$b:4,hd:8,gd:16,rb:32,qb:64,nb:128},Kb:{ba:66,INIT:0},xa:{ba:194,Sc:0,mb:16,fc:32,sb:48,Pb:0,Qb:32},Sa:{ba:162,pd:0,Sb:0,Ob:0,Rb:0,Nb:0},ka:{dd:{ba:98},Ca:{Ib:0,Hb:1,hc:2,lc:4,Mb:5,gc:6,wd:7}, var W={aa:1978.1,jc:{ba:0,Uc:1,Yc:16,ed:32,od:64,nd:128,Ga:14},za:{ba:1,Lb:1,ec:2,ac:4,bc:16,cc:32,dc:64,Ga:8},kc:{ba:2,Tc:3,xd:4,Vc:8,jd:16,kd:32,ld:64,Wc:128,Ga:0},sd:{ba:3},qd:{ba:2,fd:7},ud:{ba:3,yd:1,td:2,md:4,cd:8,Xc:16,Qc:32},rd:{ba:4},vd:{ba:5,Zc:1,$c:2,ad:4,bd:8,zd:16}},X={aa:100,ja:{ba:66,tb:1,Zb:2,$b:4,hd:8,gd:16,rb:32,qb:64,nb:128},Kb:{ba:66,INIT:0},xa:{ba:194,Sc:0,mb:16,fc:32,sb:48,Pb:0,Qb:32},Sa:{ba:162,pd:0,Sb:0,Ob:0,Rb:0,Nb:0},ka:{dd:{ba:98},Ca:{Ib:0,Hb:1,hc:2,lc:4,Mb:5,gc:6,wd:7},
Va:16383}},lc={SI1978:W,VT100:X};U.prototype.V=function(){return!1};U.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Va(a,"Keyboard");this.Z=Va(a,"SerialPort");this.video=Va(a,"Video");gb(b,this,this.c.bb);hb(b,this,this.c.cb)};U.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};U.prototype.ia=function(a){return a?this.save():!0};W.INIT=[[W.jc.Ga,W.za.Ga,W.kc.Ga,0,0,0,0]]; Va:16383}},mc={SI1978:W,VT100:X};U.prototype.V=function(){return!1};U.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.N=d;this.v=a;this.m=Va(a,"Keyboard");this.Z=Va(a,"SerialPort");this.video=Va(a,"Video");gb(b,this,this.c.bb);hb(b,this,this.c.cb)};U.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};U.prototype.ia=function(a){return a?this.save():!0};W.INIT=[[W.jc.Ga,W.za.Ga,W.kc.Ga,0,0,0,0]];
X.INIT=[[X.Kb.INIT,X.ja.Zb|X.ja.$b],[X.xa.Pb,X.xa.Qb],[X.Sa.Sb,X.Sa.Ob,X.Sa.Rb,X.Sa.Nb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], X.INIT=[[X.Kb.INIT,X.ja.Zb|X.ja.$b],[X.xa.Pb,X.xa.Qb],[X.Sa.Sb,X.Sa.Ob,X.Sa.Rb,X.Sa.Nb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=U.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.M("reset error")}; [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=U.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.M("reset error")};
k.save=function(){var a=new F(this);switch(this.c.aa){case W.aa:G(a,0,[this.W,this.g,this.X,this.C,this.L,this.R,this.U]);break;case X.aa:G(a,0,[this.J,this.u]),G(a,1,[this.o,this.s]),G(a,2,[this.f,this.G,this.P,this.N]),G(a,3,[this.B,this.b,this.w,this.H,this.i])}return a.data()}; k.save=function(){var a=new F(this);switch(this.c.aa){case W.aa:G(a,0,[this.W,this.g,this.X,this.C,this.H,this.R,this.U]);break;case X.aa:G(a,0,[this.K,this.u]),G(a,1,[this.o,this.s]),G(a,2,[this.f,this.G,this.P,this.O]),G(a,3,[this.B,this.b,this.w,this.J,this.i])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.aa){case W.aa:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.L=b[4],this.R=b[5],this.U=b[6],!0;case X.aa:return this.J=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.P=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.qc=function(){return this.W};k.rc=function(){return this.g};k.sc=function(){return this.X}; k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.aa){case W.aa:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.H=b[4],this.R=b[5],this.U=b[6],!0;case X.aa:return this.K=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.P=b[2],this.O=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.J=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.qc=function(){return this.W};k.rc=function(){return this.g};k.sc=function(){return this.X};
k.pc=function(){return this.C>>8-this.L&255};k.Cc=function(a,b){this.L=b};k.Ec=function(a,b){this.R=b};k.Dc=function(a,b){this.C=b<<8|this.C>>8};k.Fc=function(a,b){this.U=b};k.Gc=function(){};function mc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} k.pc=function(){return this.C>>8-this.H&255};k.Cc=function(a,b){this.H=b};k.Ec=function(a,b){this.R=b};k.Dc=function(a,b){this.C=b<<8|this.C>>8};k.Fc=function(a,b){this.U=b};k.Gc=function(){};function nc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
k.tc=function(){var a=this.u,a=a&~X.ja.qb;if((Hb(this.a)&64)<<1&&(a|=X.ja.qb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case X.ka.Ca.Hb:this.B=this.B<<1|b;break;case X.ka.Ca.Mb:b=mc(this);this.i[b]=X.ka.Va;break;case X.ka.Ca.Ib:this.b=this.b<<1|b;break;case X.ka.Ca.lc:b=mc(this);c=this.b&X.ka.Va;this.i[b]=c;break;case X.ka.Ca.gc:b=mc(this);c=this.i[b];null==c&&(c=X.ka.Va);this.b=c;break;case X.ka.Ca.hc:this.b<<=1,this.H=this.b&X.ka.Va+1}}a&=~X.ja.rb;this.H&&(a|=X.ja.rb);a&=~X.ja.nb;if(b=this.m){b= k.tc=function(){var a=this.u,a=a&~X.ja.qb;if((Hb(this.a)&64)<<1&&(a|=X.ja.qb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case X.ka.Ca.Hb:this.B=this.B<<1|b;break;case X.ka.Ca.Mb:b=nc(this);this.i[b]=X.ka.Va;break;case X.ka.Ca.Ib:this.b=this.b<<1|b;break;case X.ka.Ca.lc:b=nc(this);c=this.b&X.ka.Va;this.i[b]=c;break;case X.ka.Ca.gc:b=nc(this);c=this.i[b];null==c&&(c=X.ka.Va);this.b=c;break;case X.ka.Ca.hc:this.b<<=1,this.J=this.b&X.ka.Va+1}}a&=~X.ja.rb;this.J&&(a|=X.ja.rb);a&=~X.ja.nb;if(b=this.m){b=
this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.J/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=X.ja.nb);a&=~X.ja.tb;this.Z&&this.Z.ea&1&&(a|=X.ja.tb);return this.u=a};k.Hc=function(a,b){this.J=b};k.Kc=function(a,b){this.w=b};k.Jc=function(a,b){var c=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|c;break;case 1:this.f=this.f&-13|c<<2;if(this.video){var c=this.video,d=this.f;c.pa!==d&&((c.pa=d)?Mb(c,!0):c.sa=!0)}break;case 2:switch(c){case 0:this.G=~this.G;break;case 2:case 3:this.P=3-c}break;case 3:this.N=c}}; this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.I/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=X.ja.nb);a&=~X.ja.tb;this.Z&&this.Z.ea&1&&(a|=X.ja.tb);return this.u=a};k.Hc=function(a,b){this.K=b};k.Kc=function(a,b){this.w=b};k.Jc=function(a,b){var c=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|c;break;case 1:this.f=this.f&-13|c<<2;if(this.video){var c=this.video,d=this.f;c.pa!==d&&((c.pa=d)?Nb(c,!0):c.sa=!0)}break;case 2:switch(c){case 0:this.G=~this.G;break;case 2:case 3:this.P=3-c}break;case 3:this.O=c}};
k.Ic=function(a,b){if(b&X.xa.fc)b&=X.xa.sb,this.s!=b&&(this.s=b,this.video&&(this.video.Db=this.s==X.xa.sb?50:60));else if(b&=X.xa.mb,this.o!=b&&(this.o=b,this.video)){var c=this.video,d=this.o==X.xa.mb?132:80;c.H=d;c.T=c.wa;80<d&&c.T--;nc(c)&&oc(c)}};W.bb={0:U.prototype.qc,1:U.prototype.rc,2:U.prototype.sc,3:U.prototype.pc};W.cb={2:U.prototype.Cc,3:U.prototype.Ec,4:U.prototype.Dc,5:U.prototype.Fc,6:U.prototype.Gc};X.bb={66:U.prototype.tc}; k.Ic=function(a,b){if(b&X.xa.fc)b&=X.xa.sb,this.s!=b&&(this.s=b,this.video&&(this.video.Db=this.s==X.xa.sb?50:60));else if(b&=X.xa.mb,this.o!=b&&(this.o=b,this.video)){var c=this.video,d=this.o==X.xa.mb?132:80;c.J=d;c.T=c.wa;80<d&&c.T--;oc(c)&&pc(c)}};W.bb={0:U.prototype.qc,1:U.prototype.rc,2:U.prototype.sc,3:U.prototype.pc};W.cb={2:U.prototype.Cc,3:U.prototype.Ec,4:U.prototype.Dc,5:U.prototype.Fc,6:U.prototype.Gc};X.bb={66:U.prototype.tc};
X.cb={66:U.prototype.Hc,98:U.prototype.Kc,162:U.prototype.Jc,194:U.prototype.Ic};ya(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new U(d);Pa(d,c)}}); X.cb={66:U.prototype.Hc,98:U.prototype.Kc,162:U.prototype.Jc,194:U.prototype.Ic};ya(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new U(d);Pa(d,c)}});
function pc(a){q.call(this,"ROM",a,pc);this.b=null;this.m=a.addr;this.c=a.size;this.v=a.writable;this.f=a.alias;this.g=a.file;this.o=ba(this.g);if(this.g){a=this.g;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){qc(c,a,b,f)})}}w(pc);var rc=[0,5];pc.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;sc(this)}; function qc(a){q.call(this,"ROM",a,qc);this.b=null;this.m=a.addr;this.c=a.size;this.v=a.writable;this.f=a.alias;this.g=a.file;this.o=ba(this.g);if(this.g){a=this.g;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){rc(c,a,b,f)})}}w(qc);var sc=[0,5];qc.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.N=d;tc(this)};
pc.prototype.fa=function(){this.i&&(this.O&&this.O.a(this.id,this.m,this.c,this.i),delete this.i);return!0};pc.prototype.ia=function(){return!0}; qc.prototype.fa=function(){this.i&&(this.N&&this.N.a(this.id,this.m,this.c,this.i),delete this.i);return!0};qc.prototype.ia=function(){return!0};
function qc(a,b,c,d){if(d)a.M("Unable to load system ROM (error "+d+": "+b+")");else{La(a.Ua,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){p("Empty ROM: "+b);return}if(1==a.b.length){p(a.b[0]);return}}catch(g){a.M("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function rc(a,b,c,d){if(d)a.M("Unable to load system ROM (error "+d+": "+b+")");else{La(a.Ua,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){p("Empty ROM: "+b);return}if(1==a.b.length){p(a.b[0]);return}}catch(g){a.M("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);sc(a)}} " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);tc(a)}}
function sc(a){if(!Ra(a))if(!a.g)C(a);else if(a.b&&a.j){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+m(a.b.length)+") does not match specified size ("+("0x"+m(a.c))+")";a.l.Aa=!0;a.M(b)}else if(tc(a,a.m)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.j,h=d.c,g=[],l=d.m>>>f.j;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.c;f=d.j;d=d.c;h=0;for(e>>>=f.j;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.c}}delete a.b}C(a)}} function tc(a){if(!Ra(a))if(!a.g)C(a);else if(a.b&&a.j){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+m(a.b.length)+") does not match specified size ("+("0x"+m(a.c))+")";a.l.Aa=!0;a.M(b)}else if(uc(a,a.m)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.j,h=d.c,g=[],l=d.m>>>f.j;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.c;f=d.j;d=d.c;h=0;for(e>>>=f.j;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.c}}delete a.b}C(a)}}
function tc(a,b){if(Za(a.j,b,a.c,a.v?1:nb)){var c;for(c=0;c<a.b.length;c++)eb(a.j,b+c,a.b[c]);if(a.v&&256==b){for(c=0;c<rc.length;c++)eb(a.j,rc[c],118);Qb(a.a,function(a){return function(b){if(0<=rc.indexOf(b)){var c=!1,h=a.a,g=a.O;if(5==b)switch(c=!0,h.D){case 2:uc(a,String.fromCharCode(h.F));break;case 9:for(var l=Wb(h),n="",x=255;x--;){var t=a.a.K(l++);if(36==t)break;n+=String.fromCharCode(t)}uc(a,n);break;default:c=!1}c?jc.call(h):g&&(a.ca("\nCP/M vector 0x"+m(b,4)),E(h,b),Db(g));b=!0}else b= function uc(a,b){if(Za(a.j,b,a.c,a.v?1:nb)){var c;for(c=0;c<a.b.length;c++)db(a.j,b+c,a.b[c]);if(a.v&&256==b){for(c=0;c<sc.length;c++)db(a.j,sc[c],118);Rb(a.a,function(a){return function(b){if(0<=sc.indexOf(b)){var c=!1,h=a.a,g=a.N;if(5==b)switch(c=!0,h.D){case 2:vc(a,String.fromCharCode(h.F));break;case 9:for(var l=Xb(h),n="",x=255;x--;){var t=a.a.L(l++);if(36==t)break;n+=String.fromCharCode(t)}vc(a,n);break;default:c=!1}c?kc.call(h):g&&(a.ca("\nCP/M vector 0x"+m(b,4)),E(h,b),Db(g));b=!0}else b=
!1;return b}}(a));Sb(a.a,b)}return!0}return!1}function uc(a,b){b=b.replace(/\r/g,"");a.va&&(a.va.value+=b,a.va.scrollTop=a.va.scrollHeight)}ya(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new pc(d);Pa(d,c)}});function vc(a){q.call(this,"RAM",a,vc);this.f=a.addr;this.c=a.size;this.b=!1}w(vc);k=vc.prototype;k.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;C(this)};k.fa=function(a,b){b||this.reset();return!0};k.ia=function(a){return a?this.save():!0}; !1;return b}}(a));Tb(a.a,b)}return!0}return!1}function vc(a,b){b=b.replace(/\r/g,"");a.va&&(a.va.value+=b,a.va.scrollTop=a.va.scrollHeight)}ya(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new qc(d);Pa(d,c)}});function wc(a){q.call(this,"RAM",a,wc);this.f=a.addr;this.c=a.size;this.b=!1}w(wc);k=wc.prototype;k.qa=function(a,b,c,d){this.j=b;this.a=c;this.N=d;C(this)};k.fa=function(a,b){b||this.reset();return!0};k.ia=function(a){return a?this.save():!0};
k.reset=function(){!this.b&&this.c&&Za(this.j,this.f,this.c,1)&&(this.b=!0);this.b||p("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};ya(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vc(d);Pa(d,c)}});function Y(a){q.call(this,"Keyboard",a,Y);(a=a.model)&&!wc[a]&&Aa("Unrecognized Keyboard8080 model: "+a);this.b=wc[a]||{};this.reset();C(this)}w(Y); k.reset=function(){!this.b&&this.c&&Za(this.j,this.f,this.c,1)&&(this.b=!0);this.b||p("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};ya(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new wc(d);Pa(d,c)}});function Y(a){q.call(this,"Keyboard",a,Y);(a=a.model)&&!xc[a]&&Aa("Unrecognized Keyboard8080 model: "+a);this.b=xc[a]||{};this.reset();C(this)}w(Y);
var xc={aa:1978.1,h:{},lb:{65:37,68:39,76:32},Ha:{},ya:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Z={aa:100,h:{},lb:{},Ha:{},ya:{setup:120},Jb:{ba:130,INIT:127},ga:{ba:130,Xb:1,Wb:2,Vb:4,Ub:8,Yb:16,pb:32,ob:63,ic:64,Rc:128,INIT:0},Tb:127};Z.h[46]=3;Z.h[80]=5;Z.h[79]=6;Z.h[89]=7;Z.h[84]=8;Z.h[87]=9;Z.h[81]=10;Z.h[39]=16;Z.h[221]=20;Z.h[219]=21;Z.h[73]=22;Z.h[85]=23;Z.h[82]=24;Z.h[69]=25;Z.h[49]=26;Z.h[37]=32;Z.h[40]=34;Z.h[117]=35;Z.h[19]=35;Z.h[192]=36;Z.h[189]=37;Z.h[57]=38;Z.h[55]=39; var yc={aa:1978.1,h:{},lb:{65:37,68:39,76:32},Ha:{},ya:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Z={aa:100,h:{},lb:{},Ha:{},ya:{setup:120},Jb:{ba:130,INIT:127},ga:{ba:130,Xb:1,Wb:2,Vb:4,Ub:8,Yb:16,pb:32,ob:63,ic:64,Rc:128,INIT:0},Tb:127};Z.h[46]=3;Z.h[80]=5;Z.h[79]=6;Z.h[89]=7;Z.h[84]=8;Z.h[87]=9;Z.h[81]=10;Z.h[39]=16;Z.h[221]=20;Z.h[219]=21;Z.h[73]=22;Z.h[85]=23;Z.h[82]=24;Z.h[69]=25;Z.h[49]=26;Z.h[37]=32;Z.h[40]=34;Z.h[117]=35;Z.h[19]=35;Z.h[192]=36;Z.h[189]=37;Z.h[57]=38;Z.h[55]=39;
Z.h[52]=40;Z.h[51]=41;Z.h[27]=42;Z.h[38]=48;Z.h[114]=49;Z.h[112]=50;Z.h[8]=51;Z.h[187]=52;Z.h[48]=53;Z.h[56]=54;Z.h[54]=55;Z.h[53]=56;Z.h[50]=57;Z.h[9]=58;Z.h[103]=64;Z.h[115]=65;Z.h[113]=66;Z.h[96]=67;Z.h[118]=68;Z.h[220]=69;Z.h[76]=70;Z.h[75]=71;Z.h[71]=72;Z.h[70]=73;Z.h[65]=74;Z.h[104]=80;Z.h[2013]=81;Z.h[98]=82;Z.h[97]=83;Z.h[222]=85;Z.h[186]=86;Z.h[74]=87;Z.h[72]=88;Z.h[68]=89;Z.h[83]=90;Z.h[110]=96;Z.h[116]=97;Z.h[101]=98;Z.h[100]=99;Z.h[13]=100;Z.h[190]=101;Z.h[188]=102;Z.h[78]=103; Z.h[52]=40;Z.h[51]=41;Z.h[27]=42;Z.h[38]=48;Z.h[114]=49;Z.h[112]=50;Z.h[8]=51;Z.h[187]=52;Z.h[48]=53;Z.h[56]=54;Z.h[54]=55;Z.h[53]=56;Z.h[50]=57;Z.h[9]=58;Z.h[103]=64;Z.h[115]=65;Z.h[113]=66;Z.h[96]=67;Z.h[118]=68;Z.h[220]=69;Z.h[76]=70;Z.h[75]=71;Z.h[71]=72;Z.h[70]=73;Z.h[65]=74;Z.h[104]=80;Z.h[2013]=81;Z.h[98]=82;Z.h[97]=83;Z.h[222]=85;Z.h[186]=86;Z.h[74]=87;Z.h[72]=88;Z.h[68]=89;Z.h[83]=90;Z.h[110]=96;Z.h[116]=97;Z.h[101]=98;Z.h[100]=99;Z.h[13]=100;Z.h[190]=101;Z.h[188]=102;Z.h[78]=103;
Z.h[66]=104;Z.h[88]=105;Z.h[119]=106;Z.h[105]=112;Z.h[99]=113;Z.h[102]=114;Z.h[109]=115;Z.h[191]=117;Z.h[77]=118;Z.h[32]=119;Z.h[86]=120;Z.h[67]=121;Z.h[90]=122;Z.h[120]=123;Z.h[17]=124;Z.h[16]=125;Z.h[20]=126;Z.Ha={l4:Z.ga.Xb,l3:Z.ga.Wb,l2:Z.ga.Vb,l1:Z.ga.Ub,locked:Z.ga.Yb,local:Z.ga.pb,online:~Z.ga.pb};var wc={SI1978:xc,VT100:Z}; Z.h[66]=104;Z.h[88]=105;Z.h[119]=106;Z.h[105]=112;Z.h[99]=113;Z.h[102]=114;Z.h[109]=115;Z.h[191]=117;Z.h[77]=118;Z.h[32]=119;Z.h[86]=120;Z.h[67]=121;Z.h[90]=122;Z.h[120]=123;Z.h[17]=124;Z.h[16]=125;Z.h[20]=126;Z.Ha={l4:Z.ga.Xb,l3:Z.ga.Wb,l2:Z.ga.Vb,l1:Z.ga.Ub,locked:Z.ga.Yb,local:Z.ga.pb,online:~Z.ga.pb};var xc={SI1978:yc,VT100:Z};
Y.prototype.V=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.A[e]){if("led"==a&&this.b.Ha[b])return this.A[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return yc(d,a,!0)},c.onkeyup=function(a){return yc(d,a,!1)},!0;default:if(this.b.ya&&void 0!==this.b.ya[b])return this.A[e]=c,a=function(a,b){return function(c){c.preventDefault();Ac(a,b,!0)}}(this,this.b.ya[b]),b=function(a,b){return function(){Ac(a,b,!1)}}(this,this.b.ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend= Y.prototype.V=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.A[e]){if("led"==a&&this.b.Ha[b])return this.A[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return zc(d,a,!0)},c.onkeyup=function(a){return zc(d,a,!1)},!0;default:if(this.b.ya&&void 0!==this.b.ya[b])return this.A[e]=c,a=function(a,b){return function(c){c.preventDefault();Bc(a,b,!0)}}(this,this.b.ya[b]),b=function(a,b){return function(){Bc(a,b,!1)}}(this,this.b.ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};Y.prototype.qa=function(a,b,c,d){this.v=a;this.a=c;this.O=d;this.L=Va(a,"ChipSet");gb(b,this,this.b.bb);hb(b,this,this.b.cb)};Y.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Y.prototype.ia=function(a){return a?this.save():!0};Z.INIT=[[Z.ga.INIT,Z.Jb.INIT,!1,0,-1]];k=Y.prototype;k.reset=function(){this.j=[];this.b.INIT&&!this.restore(this.b.INIT)&&this.M("reset error")}; b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};Y.prototype.qa=function(a,b,c,d){this.v=a;this.a=c;this.N=d;this.J=Va(a,"ChipSet");gb(b,this,this.b.bb);hb(b,this,this.b.cb)};Y.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Y.prototype.ia=function(a){return a?this.save():!0};Z.INIT=[[Z.ga.INIT,Z.Jb.INIT,!1,0,-1]];k=Y.prototype;k.reset=function(){this.j=[];this.b.INIT&&!this.restore(this.b.INIT)&&this.M("reset error")};
k.save=function(){var a=new F(this);switch(this.b.aa){case Z.aa:G(a,0,[this.i,this.g,this.f,this.m,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.aa){case xc.aa:return!0;case Z.aa:return this.i=b[0],Bc(this,this.i&Z.ga.ob),this.g=b[1],this.f=b[2],this.m=b[3],this.c=b[4],!0}return!1};function Bc(a,b){for(var c in a.b.Ha){var d=a.A["led-"+c];if(d){var e=a.b.Ha[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}} k.save=function(){var a=new F(this);switch(this.b.aa){case Z.aa:G(a,0,[this.i,this.g,this.f,this.m,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.aa){case yc.aa:return!0;case Z.aa:return this.i=b[0],Cc(this,this.i&Z.ga.ob),this.g=b[1],this.f=b[2],this.m=b[3],this.c=b[4],!0}return!1};function Cc(a,b){for(var c in a.b.Ha){var d=a.A["led-"+c];if(d){var e=a.b.Ha[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function yc(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.b.lb[e]||e,!a.b.h[e]){for(var f in a.b.ya)if(a.b.ya[f]===e){e=f;break a}e=null}e&&(d=Ac(a,e,c),b.preventDefault());return d} function zc(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.b.lb[e]||e,!a.b.h[e]){for(var f in a.b.ya)if(a.b.ya[f]===e){e=f;break a}e=null}e&&(d=Bc(a,e,c),b.preventDefault());return d}
function Ac(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].kb==b)break a;d=-1}if(c)0>d?a.j.push({kb:b,hb:Date.now(),Wa:!1}):(a.j[d].hb=Date.now(),a.j[d].Wa=!1);else if(0<=d){if(!a.j[d].Wa){var e=a.j[d].hb;if(e&&100>Date.now()-e)return a.j[d].Wa=!0,Cc(a),!0}a.j.splice(d,1)}if(a.L){d=0;switch(b){case "1p":d=W.za.ac;break;case "2p":d=W.za.ec;break;case "coin":d=W.za.Lb;break;case "left":d=W.za.cc;break;case "right":d=W.za.dc;break;case "fire":d=W.za.bc}d&&(a=a.L,b=d,a.g&=~b,c&&(a.g|=b))}return!0} function Bc(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].kb==b)break a;d=-1}if(c)0>d?a.j.push({kb:b,hb:Date.now(),Wa:!1}):(a.j[d].hb=Date.now(),a.j[d].Wa=!1);else if(0<=d){if(!a.j[d].Wa){var e=a.j[d].hb;if(e&&100>Date.now()-e)return a.j[d].Wa=!0,Dc(a),!0}a.j.splice(d,1)}if(a.J){d=0;switch(b){case "1p":d=W.za.ac;break;case "2p":d=W.za.ec;break;case "coin":d=W.za.Lb;break;case "left":d=W.za.cc;break;case "right":d=W.za.dc;break;case "fire":d=W.za.bc}d&&(a=a.J,b=d,a.g&=~b,c&&(a.g|=b))}return!0}
function Cc(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Wa){var d=a.j[b].kb,e=100-(Date.now()-a.j[b].hb);if(0<e){if(0>c||c>e)c=e}else{Ac(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Cc(a)},c)}k.uc=function(){var a=this.g;0<=this.c&&(this.c<this.j.length?(a=this.j[this.c],this.c++,a=Z.h[a.kb],a&128&&(a&=127)):(this.c=-1,a=Z.Tb),this.g=a,gc(this.a,1));return a};k.Lc=function(a,b){this.i=b;this.f=!0;this.m=Hb(this.a);Bc(this,b&Z.ga.ob);b&Z.ga.ic&&(this.c=0,gc(this.a,1))};Z.bb={130:Y.prototype.uc}; function Dc(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Wa){var d=a.j[b].kb,e=100-(Date.now()-a.j[b].hb);if(0<e){if(0>c||c>e)c=e}else{Bc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Dc(a)},c)}k.uc=function(){var a=this.g;0<=this.c&&(this.c<this.j.length?(a=this.j[this.c],this.c++,a=Z.h[a.kb],a&128&&(a&=127)):(this.c=-1,a=Z.Tb),this.g=a,hc(this.a,1));return a};k.Lc=function(a,b){this.i=b;this.f=!0;this.m=Hb(this.a);Cc(this,b&Z.ga.ob);b&Z.ga.ic&&(this.c=0,hc(this.a,1))};Z.bb={130:Y.prototype.uc};
Z.cb={130:Y.prototype.Lc};ya(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Y(d);Pa(d,c)}}); Z.cb={130:Y.prototype.Lc};ya(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Y(d);Pa(d,c)}});
function Dc(a,b,c,d,e){var f=this;this.Ka=sa("Gecko/");var h=["","moz","ms","webkit"];q.call(this,"Video",a,Dc);this.C=a.screenWidth;this.w=a.screenHeight;this.da=a.bufferAddr;this.xc=a.bufferRAM;var g=a.bufferFormat;this.U=g&&Ec[g.toUpperCase()]||Fc;this.H=a.bufferCols;this.W=a.bufferRows;this.wa=this.T=a.cellWidth||1;this.S=a.cellHeight||1;this.X=null;this.Ja=!1;this.la=a.bufferBits||1;this.yc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.M("unsupported buffer rotation: "+ function Ec(a,b,c,d,e){var f=this;this.Ka=sa("Gecko/");var h=["","moz","ms","webkit"];q.call(this,"Video",a,Ec);this.C=a.screenWidth;this.w=a.screenHeight;this.da=a.bufferAddr;this.xc=a.bufferRAM;var g=a.bufferFormat;this.U=g&&Fc[g.toUpperCase()]||Gc;this.J=a.bufferCols;this.W=a.bufferRows;this.wa=this.T=a.cellWidth||1;this.S=a.cellHeight||1;this.X=null;this.Ja=!1;this.la=a.bufferBits||1;this.yc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.M("unsupported buffer rotation: "+
this.c),this.c=0);this.ma=a.interruptRate;this.ab=a.refreshRate||60;this.u=b;this.f=c;this.P=(this.Nc=d)||b||null;this.vc=this.C;this.wc=this.w;this.Da=this.C/this.H|0;this.Ea=this.w/this.W|0;1<this.S&&(this.W++,this.pa=0,this.sa=!1);b=a.smoothing;(c=Fa.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.M("unsupported screen rotation: "+ this.c),this.c=0);this.ma=a.interruptRate;this.ab=a.refreshRate||60;this.u=b;this.f=c;this.P=(this.Nc=d)||b||null;this.vc=this.C;this.wc=this.w;this.Da=this.C/this.J|0;this.Ea=this.w/this.W|0;1<this.S&&(this.W++,this.pa=0,this.sa=!1);b=a.smoothing;(c=Fa.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.M("unsupported screen rotation: "+
this.g),this.g=0):(this.f.translate(0,this.w),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.w/this.C,this.C/this.w));if(this.b=e)if(this.b.Fa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Fa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Gc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1); this.g),this.g=0):(this.f.translate(0,this.w),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.w/this.C,this.C/this.w));if(this.b=e)if(this.b.Fa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Fa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Hc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);
break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Gc(f,null)},!1);break}}if(this.L=a.fontROM)"json"!=ca(this.L)&&(this.L=ea()+"/api/v1/dump?file="+this.L+"&format=bytes"),ma(this.L,null,!0,function(a,b,c){Hc(f,a,b,c)});this.ua={}}w(Dc);var Fc=0,Ec={SI1978:1,VT100:2}; break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Hc(f,null)},!1);break}}if(this.H=a.fontROM)"json"!=ca(this.H)&&(this.H=ea()+"/api/v1/dump?file="+this.H+"&format=bytes"),ma(this.H,null,!0,function(a,b,c){Ic(f,a,b,c)});this.ua={}}w(Ec);var Gc=0,Fc={SI1978:1,VT100:2};
function nc(a){a.o=a.H*a.T;a.G=a.W*a.S;var b=a.o,c=a.G;a.c&&(b=a.G,c=a.o);a.B=0;if(!a.xc&&(a.B=(a.o*a.la>>3)*a.G,!Za(a.j,a.da,a.B,3)))return!1;a.B?(a.La=a.f.createImageData(b,c),a.Oa=16/a.la|0,Ic(a,a.B>>1)):Ic(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.ra=a.s.getContext("2d");a.I={};a.R=1<<a.la;a.J=Array(a.R+2);a.J[0]=[0,0,0,255];a.J[1]=[255,255,255,255];1==a.U&&(a.J[a.R+0]=[255,255,0,255],a.J[a.R+1]=[0,255,0,255]);2==a.U&&(a.Db=60,a.ta=!1,a.Z=Array(a.H));return!0} function oc(a){a.o=a.J*a.T;a.G=a.W*a.S;var b=a.o,c=a.G;a.c&&(b=a.G,c=a.o);a.B=0;if(!a.xc&&(a.B=(a.o*a.la>>3)*a.G,!Za(a.j,a.da,a.B,3)))return!1;a.B?(a.La=a.f.createImageData(b,c),a.Oa=16/a.la|0,Jc(a,a.B>>1)):Jc(a,(a.J+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.ra=a.s.getContext("2d");a.I={};a.R=1<<a.la;a.K=Array(a.R+2);a.K[0]=[0,0,0,255];a.K[1]=[255,255,255,255];1==a.U&&(a.K[a.R+0]=[255,255,0,255],a.K[a.R+1]=[0,255,0,255]);2==a.U&&(a.Db=60,a.ta=!1,a.Z=Array(a.J));return!0}
Dc.prototype.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;nc(this);if(this.m=Va(a,"Keyboard")){for(var e in this.ua)this.m.V("led",e,this.ua[e]);this.u&&this.m.V(this.Nc?"textarea":"canvas","kbd",this.P)}var f=this;this.Cb=Kb(this.a,function(){Mb(f)});Lb(this.a,this.Cb,1E3/Math.max(this.ab,this.ma));this.$a=0;this.L||C(this)}; Ec.prototype.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;oc(this);if(this.m=Va(a,"Keyboard")){for(var e in this.ua)this.m.V("led",e,this.ua[e]);this.u&&this.m.V(this.Nc?"textarea":"canvas","kbd",this.P)}var f=this;this.Cb=Jb(this.a,function(){Nb(f)});Lb(this.a,this.Cb,1E3/Math.max(this.ab,this.ma));this.$a=0;this.H||C(this)};
function Hc(a,b,c,d){if(d)a.M("Unable to load font ROM (error "+d+": "+b+")");else{La(a.Ua,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){p("Empty font ROM: "+b);return}if(1==f.length){p(f[0]);return}if(2048==f.length)a.X=f,oc(a);else{a.M("Unrecognized font data length ("+f.length+")");return}}catch(h){a.M("Font ROM data error: "+h.message);return}(a.f||a.O)&&C(a)}} function Ic(a,b,c,d){if(d)a.M("Unable to load font ROM (error "+d+": "+b+")");else{La(a.Ua,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){p("Empty font ROM: "+b);return}if(1==f.length){p(f[0]);return}if(2048==f.length)a.X=f,pc(a);else{a.M("Unrecognized font data length ("+f.length+")");return}}catch(h){a.M("Font ROM data error: "+h.message);return}(a.f||a.N)&&C(a)}}
function oc(a){a.X&&(a.Ja=2==a.U,a.I[96]=[Jc(a,a.T,a.S),Jc(a,a.T,a.S,a.ta)],a.I[64]=[Jc(a,2*a.T,a.S),Jc(a,2*a.T,a.S,a.ta)],a.I[32]=a.I[0]=[Jc(a,2*a.T,2*a.S),Jc(a,2*a.T,2*a.S,a.ta)])} function pc(a){a.X&&(a.Ja=2==a.U,a.I[96]=[Kc(a,a.T,a.S),Kc(a,a.T,a.S,a.ta)],a.I[64]=[Kc(a,2*a.T,a.S),Kc(a,2*a.T,a.S,a.ta)],a.I[32]=a.I[0]=[Kc(a,2*a.T,2*a.S),Kc(a,2*a.T,2*a.S,a.ta)])}
function Jc(a,b,c,d){var e=8>=a.wa?8:16,f=8<e?15:0,h=a.X.length/e,g=!1===d,l={T:b,S:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=h/16*c;l.context=l.canvas.getContext("2d");for(var n=l.context.createImageData(b,c),x=0;x<h;x++){for(var t=0,B=t;t<a.S;t++)for(var u=x*e+(f+t&e-1),u=d&&8==t?255:a.X[u],y=0;y<c/a.S;y++){for(var v=0,H=0,V=H;H<a.T;H++){for(var R=u&128>>(7<H?7:H),v=a.Ja&&!R&&v?v:R,ka=0;ka<b/a.T;ka++)g&&(v=!v),Kc(a,n,V,B,v?1:0),V++;v=R}B++}l.context.putImageData(n, function Kc(a,b,c,d){var e=8>=a.wa?8:16,f=8<e?15:0,h=a.X.length/e,g=!1===d,l={T:b,S:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=h/16*c;l.context=l.canvas.getContext("2d");for(var n=l.context.createImageData(b,c),x=0;x<h;x++){for(var t=0,B=t;t<a.S;t++)for(var u=x*e+(f+t&e-1),u=d&&8==t?255:a.X[u],y=0;y<c/a.S;y++){for(var v=0,H=0,V=H;H<a.T;H++){for(var R=u&128>>(7<H?7:H),v=a.Ja&&!R&&v?v:R,ka=0;ka<b/a.T;ka++)g&&(v=!v),Lc(a,n,V,B,v?1:0),V++;v=R}B++}l.context.putImageData(n,
(x&15)*b,(x>>4)*c)}return l}Dc.prototype.fa=function(){return!0};Dc.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ua[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Fa?c.onclick=function(){d.Fa()}:c.parentNode.removeChild(c),!0}return!1}; (x&15)*b,(x>>4)*c)}return l}Ec.prototype.fa=function(){return!0};Ec.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ua[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Fa?c.onclick=function(){d.Fa()}:c.parentNode.removeChild(c),!0}return!1};
Dc.prototype.Fa=function(){var a=!1;if(this.b){if(this.b.Fa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.Ka?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Fa();a=!0}this.P&&this.P.focus()}return a}; Ec.prototype.Fa=function(){var a=!1;if(this.b){if(this.b.Fa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.Ka?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Fa();a=!0}this.P&&this.P.focus()}return a};
function Gc(a,b){!b&&a.b&&(a.Ka?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Ic(a,b){a.Na=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Na)a.i=Array(a.Na)}function Kc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.R+0:28<=c&&72>c&&(e=a.R+1));a=a.J[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function Hc(a,b){!b&&a.b&&(a.Ka?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Jc(a,b){a.Na=b;a.O=!1;if(void 0===a.i||a.i.length!=a.Na)a.i=Array(a.Na)}function Lc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.R+0:28<=c&&72>c&&(e=a.R+1));a=a.K[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Mb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.$a&1?(gc(a.a,2),c=!1):gc(a.a,1):gc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,h=a.da>>>d.j;0<e&&h<d.b.length;)d.b[h].na&&(d.b[h].na=f=!1,d.b[h].wb=!0),e-=d.c,h++;f&&(c=!1)}Lb(a.a,a.Cb,1E3/Math.max(a.ab,a.ma));a.$a++}if(c)if(1<a.T)switch(a.U){case 2:for(var c=a.da,d=-1,e=0,f=60==a.Db?2:5,g=h=0,l=-1;e<a.W;){var n=0,x=c,t=d,B=a.H;for(96!=t&&(B>>=1);;){var u=bb(a.j,x++);if(127==(u&127)){var y=bb(a.j,x++),d=y&96,c=(y&15)<<8|bb(a.j,x),c=c+(y&16? function Nb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.$a&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.O&&a.B){for(var d=a.j,e=a.B,f=!0,h=a.da>>>d.j;0<e&&h<d.b.length;)d.b[h].na&&(d.b[h].na=f=!1,d.b[h].wb=!0),e-=d.c,h++;f&&(c=!1)}Lb(a.a,a.Cb,1E3/Math.max(a.ab,a.ma));a.$a++}if(c)if(1<a.T)switch(a.U){case 2:for(var c=a.da,d=-1,e=0,f=60==a.Db?2:5,g=h=0,l=-1;e<a.W;){var n=0,x=c,t=d,B=a.J;for(96!=t&&(B>>=1);;){var u=bb(a.j,x++);if(127==(u&127)){var y=bb(a.j,x++),d=y&96,c=(y&15)<<8|bb(a.j,x),c=c+(y&16?
8192:16384);break}if(n<B)a.Z[n++]=u;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=t)for(x=a.N&&a.i[h]==B,a.i[h++]=B,B=0;B<n;B++){u=a.Z[B];if(!x||u!==a.i[h]){a.i[l=h]=u;var y=a,v=a.ra,H=u&127;if(u=y.I[t][u&128?1:0]){var V=(H&15)*u.T,H=(H>>4)*u.S,R=void 0,ka=void 0,Ca=void 0,db=void 0,zc=u.T,Jb=u.S;v?(R=B*y.T,ka=e*y.S,Ca=y.T,db=y.S):(R=B*y.Da,ka=e*y.Ea,Ca=y.Da,db=y.Ea);u.T>y.T&&(R*=2,Ca*=2);u.S>y.S&&(0==t&&(H+=y.S),Jb=y.S);v?v.drawImage(u.canvas,V,H,zc,Jb,R,ka,Ca,db):(R+=0,ka+=0,y.f.drawImage(u.canvas, 8192:16384);break}if(n<B)a.Z[n++]=u;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=t)for(x=a.O&&a.i[h]==B,a.i[h++]=B,B=0;B<n;B++){u=a.Z[B];if(!x||u!==a.i[h]){a.i[l=h]=u;var y=a,v=a.ra,H=u&127;if(u=y.I[t][u&128?1:0]){var V=(H&15)*u.T,H=(H>>4)*u.S,R=void 0,ka=void 0,Ca=void 0,eb=void 0,Ac=u.T,Kb=u.S;v?(R=B*y.T,ka=e*y.S,Ca=y.T,eb=y.S):(R=B*y.Da,ka=e*y.Ea,Ca=y.Da,eb=y.Ea);u.T>y.T&&(R*=2,Ca*=2);u.S>y.S&&(0==t&&(H+=y.S),Kb=y.S);v?v.drawImage(u.canvas,V,H,Ac,Kb,R,ka,Ca,eb):(R+=0,ka+=0,y.f.drawImage(u.canvas,
V,H,zc,Jb,R,ka,Ca,db))}g++}h++}e++}}a.N=!0;!b&&a.sa&&1==g&&(a.i[l]=-1,g=0);a.sa=!1;(g||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.S,0,0,a.vc,a.wc)}else{f=a.da;h=f+a.B;n=l=g=0;c=a.o;t=0;d=a.G;x=e=0;B=a.la;y=(1<<B)-1;a.yc&&(B=-B,x=16+B);for(;f<h;){v=a.j;u=f;V=u&v.f;H=(u&v.g)>>>v.j;v=V!=v.f?v.b[H].Eb(V,u):v.b[H++].eb(V,u)|v.b[H&v.s].eb(0,u+1)<<8;if(a.N&&v===a.i[g])l+=a.Oa;else{a.i[g]=v;(u=x)&&(v=v>>8|(v&255)<<8);l<c&&(c=l);for(V=a.Oa;V--;)H=v>>u&y,Kc(a,a.La,l++,n,H),u+=B;l>t&&(t=l);n<d&&(d=n);n>=e&& V,H,Ac,Kb,R,ka,Ca,eb))}g++}h++}e++}}a.O=!0;!b&&a.sa&&1==g&&(a.i[l]=-1,g=0);a.sa=!1;(g||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.S,0,0,a.vc,a.wc)}else{f=a.da;h=f+a.B;n=l=g=0;c=a.o;t=0;d=a.G;x=e=0;B=a.la;y=(1<<B)-1;a.yc&&(B=-B,x=16+B);for(;f<h;){v=a.j;u=f;V=u&v.f;H=(u&v.g)>>>v.j;v=V!=v.f?v.b[H].Eb(V,u):v.b[H++].eb(V,u)|v.b[H&v.s].eb(0,u+1)<<8;if(a.O&&v===a.i[g])l+=a.Oa;else{a.i[g]=v;(u=x)&&(v=v>>8|(v&255)<<8);l<c&&(c=l);for(V=a.Oa;V--;)H=v>>u&y,Lc(a,a.La,l++,n,H),u+=B;l>t&&(t=l);n<d&&(d=n);n>=e&&
(e=n+1)}f+=2;g++;if(l>=a.o&&(l=0,n++,n>a.G))break}a.N=!0;c<a.o&&(f=t-c,e-=d,a.c&&(h=c,g=f,c=d,f=e,d=a.o-(h+g),e=g),a.ra.putImageData(a.La,0,0,c,d,f,e),a.f.drawImage(a.s,0,0,a.s.width,a.s.height,0,0,a.C,a.w))}} (e=n+1)}f+=2;g++;if(l>=a.o&&(l=0,n++,n>a.G))break}a.O=!0;c<a.o&&(f=t-c,e-=d,a.c&&(h=c,g=f,c=d,f=e,d=a.o-(h+g),e=g),a.ra.putImageData(a.La,0,0,c,d,f,e),a.f.drawImage(a.s,0,0,a.s.width,a.s.height,0,0,a.C,a.w))}}
ya(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a, ya(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa.aspect);f&&.3<=f&&3.33>=f&&(xa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");sa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Dc(d,e,h,f,c);Pa(d,c)}}); b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa.aspect);f&&.3<=f&&3.33>=f&&(xa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");sa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Ec(d,e,h,f,c);Pa(d,c)}});
function Lc(a){this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.N=2;break;default:p("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.J=a.tabSize;this.G=a.charBOL;this.f=0;this.B=!1;q.call(this,"SerialPort",a,Lc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Mc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.o=null;this.exports={connect:this.Bb,receiveData:this.ib}}w(Lc); function Mc(a){this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:p("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.K=a.tabSize;this.G=a.charBOL;this.f=0;this.B=!1;q.call(this,"SerialPort",a,Mc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Nc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.o=null;this.exports={connect:this.Bb,receiveData:this.ib}}w(Mc);
var Nc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Oc=[!1,0,0,133,142,39,238],Mc="buffer";k=Lc.prototype; var Oc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Pc=[!1,0,0,133,142,39,238],Nc="buffer";k=Mc.prototype;
k.V=function(a,b,c,d){var e=this;switch(b){case Mc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Pc(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Pc(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.A[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.ib(d);return!0}, k.V=function(a,b,c,d){var e=this;switch(b){case Nc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Qc(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Qc(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.A[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.ib(d);return!0},
!0}return!1};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;var e=this;this.P=Kb(this.a,function(){e.ib()});this.R=Kb(this.a,function(){e.ea|=5});this.L=Va(a,"ChipSet");gb(b,this,Qc,this.I);hb(b,this,Rc,this.I);C(this)}; !0}return!1};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;var e=this;this.P=Jb(this.a,function(){e.ib()});this.R=Jb(this.a,function(){e.ea|=5});this.J=Va(a,"ChipSet");gb(b,this,Rc,this.I);hb(b,this,Sc,this.I);C(this)};
k.Bb=function(){if(!this.i){var a=yb(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ha(b[0]);if(c!=this.Ta)return;b=ha(b[1]);if(this.i=Na(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.o=d.receiveData){this.status(this.Ua+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.fa=function(a,b){if(!b)if(this.Bb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; k.Bb=function(){if(!this.i){var a=yb(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ha(b[0]);if(c!=this.Ta)return;b=ha(b[1]);if(this.i=Na(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.o=d.receiveData){this.status(this.Ua+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.fa=function(a,b){if(!b)if(this.Bb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
k.ia=function(a){return a?this.save():!0};k.reset=function(){Sc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.ha;c[b++]=this.w;c[b++]=this.C;c[b++]=this.ea;c[b++]=this.m;c[b++]=this.u;c[b]=this.s;G(a,0,c);return a.data()};k.restore=function(a){return Sc(this,a[0])};function Sc(a,b){var c=0;void 0===b&&(b=Oc);a.ha=b[c++];a.w=b[c++];a.C=b[c++];a.ea=b[c++];a.m=b[c++];a.u=b[c++];a.s=b[c];return!0} k.ia=function(a){return a?this.save():!0};k.reset=function(){Tc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.ha;c[b++]=this.w;c[b++]=this.C;c[b++]=this.ea;c[b++]=this.m;c[b++]=this.u;c[b]=this.s;G(a,0,c);return a.data()};k.restore=function(a){return Tc(this,a[0])};function Tc(a,b){var c=0;void 0===b&&(b=Pc);a.ha=b[c++];a.w=b[c++];a.C=b[c++];a.ea=b[c++];a.m=b[c++];a.u=b[c++];a.s=b[c];return!0}
function Tc(a,b){var c=a.s&b;b&15||(c>>=4);var c=Nc[c],d=((a.m&12)>>2)+6;a.m&16&&d++;d+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function Pc(a,b){return a.B||a.ea&2?!1:(a.w=b,a.ea|=2,gc(a.a,a.N),!0)}k.ib=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Pc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Lb(this.a,this.P,Tc(this,15)));return!0};k.oc=function(){var a=this.w;this.ea&=-3;return a};k.nc=function(){return this.ea}; function Uc(a,b){var c=a.s&b;b&15||(c>>=4);var c=Oc[c],d=((a.m&12)>>2)+6;a.m&16&&d++;d+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function Qc(a,b){return a.B||a.ea&2?!1:(a.w=b,a.ea|=2,hc(a.a,a.O),!0)}k.ib=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Qc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Lb(this.a,this.P,Uc(this,15)));return!0};k.oc=function(){var a=this.w;this.ea&=-3;return a};k.nc=function(){return this.ea};
k.Bc=function(a,b){this.C=b;this.ea&=-6;if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.o&&this.o.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;c=(c=ia[b])?"<"+c+">":String.fromCharCode(b);var d=c.length;9==b?(d=this.J||8,d=d-this.f%d,this.J&&(c=" ".slice(0,d))):13==b&&(this.f=d=0,c="\n");this.G&&!this.f&&d&&(c=String.fromCharCode(this.G)+c);this.b.value+=c;this.b.scrollTop=this.b.scrollHeight;this.f+= k.Bc=function(a,b){this.C=b;this.ea&=-6;if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.o&&this.o.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;c=(c=ia[b])?"<"+c+">":String.fromCharCode(b);var d=c.length;9==b?(d=this.K||8,d=d-this.f%d,this.K&&(c=" ".slice(0,d))):13==b&&(this.f=d=0,c="\n");this.G&&!this.f&&d&&(c=String.fromCharCode(this.G)+c);this.b.value+=c;this.b.scrollTop=this.b.scrollHeight;this.f+=
d}else if(null!=this.c){if(10==b||1024<=this.c.length)this.ca(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Lb(this.a,this.R,Tc(this,240))};k.Ac=function(a,b){this.ha?(this.u=b,this.u&64&&(this.ha=!1)):(this.m=b,this.ha=!0)};k.zc=function(a,b){this.s=b};var Qc={0:Lc.prototype.oc,1:Lc.prototype.nc},Rc={0:Lc.prototype.Bc,1:Lc.prototype.Ac,2:Lc.prototype.zc};ya(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Lc(d);Pa(d,c)}}); d}else if(null!=this.c){if(10==b||1024<=this.c.length)this.ca(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Lb(this.a,this.R,Uc(this,240))};k.Ac=function(a,b){this.ha?(this.u=b,this.u&64&&(this.ha=!1)):(this.m=b,this.ha=!0)};k.zc=function(a,b){this.s=b};var Rc={0:Mc.prototype.oc,1:Mc.prototype.nc},Sc={0:Mc.prototype.Bc,1:Mc.prototype.Ac,2:Mc.prototype.zc};ya(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Mc(d);Pa(d,c)}});
function Uc(a,b,c){q.call(this,"Computer",a,Uc);this.l.Y=!1;Vc(this,b);this.w=yb(this,"autoPower",a);this.f=0;this.L=a.busWidth||a.buswidth;this.b=Wc;this.s=null;this.v=this.G=!1;this.I=yb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Xc(this);if(this.a=Oa("CPU",this.id)){this.O=Oa("Debugger",this.id);this.m=[];for(b=null;b=Va(this,"Video",b);)this.m.push(b);this.j=new Xa({id:this.Ua+".bus",busWidth:this.L},this.a,this.O);var d,e=Ma(this.id);if((this.g=Oa("Panel",this.id))&&this.g.va)for(b= function Vc(a,b,c){q.call(this,"Computer",a,Vc);this.l.Y=!1;Wc(this,b);this.w=yb(this,"autoPower",a);this.f=0;this.H=a.busWidth||a.buswidth;this.b=Xc;this.s=null;this.v=this.G=!1;this.I=yb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Yc(this);if(this.a=Oa("CPU",this.id)){this.N=Oa("Debugger",this.id);this.m=[];for(b=null;b=Va(this,"Video",b);)this.m.push(b);this.j=new Xa({id:this.Ua+".bus",busWidth:this.H},this.a,this.N);var d,e=Ma(this.id);if((this.g=Oa("Panel",this.id))&&this.g.va)for(b=
0;b<e.length;b++)d=e[b],d.M=this.g.M,d.ca=this.g.ca,d.va=this.g.va;this.ca("PC8080 v1.24.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.j,this.a,this.O);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.b=parseInt(d,10));var f;if(a=yb(this,"state")||(f=!0,a.state))b=this.B=a,f||(this.v=!0,this.b=Wc),this.b&&(this.u=new F(this,"1.24.2"),Yc(this.u)?b=null:delete this.u); 0;b<e.length;b++)d=e[b],d.M=this.g.M,d.ca=this.g.ca,d.va=this.g.va;this.ca("PC8080 v1.24.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.j,this.a,this.N);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.b=parseInt(d,10));var f;if(a=yb(this,"state")||(f=!0,a.state))b=this.B=a,f||(this.v=!0,this.b=Xc),this.b&&(this.u=new F(this,"1.24.2"),Zc(this.u)?b=null:delete this.u);
!b&&this.b&&(b=Zc(this))&&(this.v=!0);if(b){var h=this;ma(b,null,!0,function(a,b,c){c?(h.o=null,h.v=!1,h.M("Unable to load machine state from server (error "+c+(b?": "+ha(b):"")+")")):(h.s=b,h.G=!0);C(h)})}else C(this);this.A.power||(this.w=!0);!c&&this.w&&$c(this,this.Pa)}else p("Unable to find CPU component")}w(Uc);var Wc=0;function Vc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){p(d.message+" ("+c+")")}}a.H=b} !b&&this.b&&(b=$c(this))&&(this.v=!0);if(b){var h=this;ma(b,null,!0,function(a,b,c){c?(h.o=null,h.v=!1,h.M("Unable to load machine state from server (error "+c+(b?": "+ha(b):"")+")")):(h.s=b,h.G=!0);C(h)})}else C(this);this.A.power||(this.w=!0);!c&&this.w&&ad(this,this.Pa)}else p("Unable to find CPU component")}w(Vc);var Xc=0;function Wc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){p(d.message+" ("+c+")")}}a.J=b}
function yb(a,b,c){var d=b.toLowerCase(),d=Fa[b]||Fa[d];void 0===d&&a.H&&(d=a.H[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $c(a,b,c){for(var d=Ma(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){$c(a,b,c)});return}}b.call(a,c)} function yb(a,b,c){var d=b.toLowerCase(),d=Fa[b]||Fa[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ad(a,b,c){for(var d=Ma(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){ad(a,b,c)});return}}b.call(a,c)}
function ad(a,b){var c=new F(a,"1.24.2","validate");if(Yc(c)&&bd(c)){var d=cd(c,"timestamp"),e=b?cd(b,"timestamp"):"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())}}k=Uc.prototype; function bd(a,b){var c=new F(a,"1.24.2","validate");if(Zc(c)&&cd(c)){var d=dd(c,"timestamp"),e=b?dd(b,"timestamp"):"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())}}k=Vc.prototype;
k.Pa=function(a){void 0===a&&(a=this.b||(this.s?1:Wc));if(!this.f){this.f++;var b=!1,c=!1;this.C=!1;var d=this.u||new F(this,"1.24.2");if(-1==a)b=!0;else if(a>Wc){if(Yc(d,this.s)){this.i=new F(this,"1.24.2","failsafe");Yc(this.i)&&(dd(this,d),a=2,ed(this.i));G(this.i,"timestamp",la());fd(this.i);var e=this.b&&!this.v;if(1==a||na("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=bd(d)){var f=cd(d,"code"),h=cd(d,"data");f&&("ok"==f?Yc(d,h):("error"==f&& k.Pa=function(a){void 0===a&&(a=this.b||(this.s?1:Xc));if(!this.f){this.f++;var b=!1,c=!1;this.C=!1;var d=this.u||new F(this,"1.24.2");if(-1==a)b=!0;else if(a>Xc){if(Zc(d,this.s)){this.i=new F(this,"1.24.2","failsafe");Zc(this.i)&&(ed(this,d),a=2,fd(this.i));G(this.i,"timestamp",la());gd(this.i);var e=this.b&&!this.v;if(1==a||na("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cd(d)){var f=dd(d,"code"),h=dd(d,"data");f&&("ok"==f?Zc(d,h):("error"==f&&
"no machine state"!=h?(this.M("Error: "+h),"unable to verify user"==h&&(ra("user",""),this.c=null)):this.ca(f+": "+h),ed(d),Yc(d)?(c=bd(d),e=!0):c=!1))}e&&ad(this,c?d:null)}else 2==a&&d.clear()}else ad(this);delete this.s;delete this.u}e=Ma(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=gd(this,h,d,b,c));b=[d,a,c];-1!=a?$c(this,this.ub,b):this.ub(b)}}; "no machine state"!=h?(this.M("Error: "+h),"unable to verify user"==h&&(ra("user",""),this.c=null)):this.ca(f+": "+h),fd(d),Zc(d)?(c=cd(d),e=!0):c=!1))}e&&bd(this,c?d:null)}else 2==a&&d.clear()}else bd(this);delete this.s;delete this.u}e=Ma(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=hd(this,h,d,b,c));b=[d,a,c];-1!=a?ad(this,this.ub,b):this.ub(b)}};
function gd(a,b,c,d,e){if(!b.l.Y){b.l.Y=!0;if(b.fa){var f=null;e&&((f=cd(c,b.id))||(f=cd(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.fa(f,d)&&f&&(p("Unable to restore state for "+b.type),a.B&&!a.G?(c.clear(),a.b=Wc,window&&window.location.reload()):a.C=!0,b.fa(null),e=!1)}if(!d&&b.zb)for(a=b.zb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function hd(a,b,c,d,e){if(!b.l.Y){b.l.Y=!0;if(b.fa){var f=null;e&&((f=dd(c,b.id))||(f=dd(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.fa(f,d)&&f&&(p("Unable to restore state for "+b.type),a.B&&!a.G?(c.clear(),a.b=Xc,window&&window.location.reload()):a.C=!0,b.fa(null),e=!1)}if(!d&&b.zb)for(a=b.zb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.ub=function(a){var b=a[0],c=0>a[1];a=a[2];this.J=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(gd(this,this.a,b,c,a),Cb(this.a));this.C&&(dd(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; k.ub=function(a){var b=a[0],c=0>a[1];a=a[2];this.K=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),Cb(this.a));this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
function dd(a,b){if(na("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),e={app:"PC8080",ver:"1.24.2"};e.url=a.I;e.user=c;e.type="bug";e.data=d;ma("http://www.pcjs.org/api/v1/report",e,!0)}} function ed(a,b){if(na("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),e={app:"PC8080",ver:"1.24.2"};e.url=a.I;e.user=c;e.type="bug";e.data=d;ma("http://www.pcjs.org/api/v1/report",e,!0)}}
function hd(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.24.2"),h=new F(a,"1.24.2","validate"),g=la();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.24.2");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Db(a.a),d=a.a.ia(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.l.Y=!1,!1===d&&(e=null)));for(var g=Ma(a.id),l=0;l<g.length;l++){var n=g[l];n.l.Y&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&G(f,n.id,d)),c&& function id(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.24.2"),h=new F(a,"1.24.2","validate"),g=la();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.24.2");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Db(a.a),d=a.a.ia(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.l.Y=!1,!1===d&&(e=null)));for(var g=Ma(a.id),l=0;l<g.length;l++){var n=g[l];n.l.Y&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&G(f,n.id,d)),c&&
(n.l.Y=!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.c&&id(a,a.c,f.toString()),fd(h)&&fd(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.l.Y=!1,b=a.A.power)&&(b.textContent="Power");a.f=0;return e}k.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=Ma(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=Ma(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}}; (n.l.Y=!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.c&&jd(a,a.c,f.toString()),gd(h)&&gd(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.l.Y=!1,b=a.A.power)&&(b.textContent="Power");a.f=0;return e}k.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=Ma(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=Ma(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
k.stop=function(a,b){for(var c=Ma(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; k.stop=function(a,b){for(var c=Ma(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.V=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.f||(d.l.Y?hd(d,!1,!0):$c(d,d.Pa))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.l.Y&&!d.f)if(d.b&&!d.o){var a=na("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");hd(d,a,!0);!a&&d.B?window&&window.location.reload():d.Pa(Wc)}else d.reset(),d.a&&Cb(d.a)},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=c;c.onclick= k.V=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.f||(d.l.Y?id(d,!1,!0):ad(d,d.Pa))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.l.Y&&!d.f)if(d.b&&!d.o){var a=na("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");id(d,a,!0);!a&&d.B?window&&window.location.reload():d.Pa(Xc)}else d.reset(),d.a&&Cb(d.a)},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=c;c.onclick=
function(){var a=Xc(d,!0);if(a){var b=!!(d.b&&!d.o||d.B),c=hd(d,b);b?id(d,a,c):d.M("Resume disabled, machine state not saved")}};return!0}return!1};function Xc(a,b){var c=a.c;c||(c=qa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=jd(a,c))||a.M("The user ID is invalid."))):b&&a.M("Browser local storage is not available"));return c} function(){var a=Yc(d,!0);if(a){var b=!!(d.b&&!d.o||d.B),c=id(d,b);b?jd(d,a,c):d.M("Resume disabled, machine state not saved")}};return!0}return!1};function Yc(a,b){var c=a.c;c||(c=qa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=kd(a,c))||a.M("The user ID is invalid."))):b&&a.M("Browser local storage is not available"));return c}
function jd(a,b){a.c=null;var c=ma(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ra("user",c.data),a.c=c.data)}catch(e){p(e.message+" ("+d+")")}return a.c}function Zc(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+kd(a,"1.24.2"));return b} function kd(a,b){a.c=null;var c=ma(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ra("user",c.data),a.c=c.data)}catch(e){p(e.message+" ("+d+")")}return a.c}function $c(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+ld(a,"1.24.2"));return b}
function id(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kd(a,"1.24.2");d.data=c;b=ma(ea()+"/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),ra("user",""),a.c=null)}} function jd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ld(a,"1.24.2");d.data=c;b=ma(ea()+"/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),ra("user",""),a.c=null)}}
function Va(a,b,c){a=Ma(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Ib(a,b){if(a.m.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.m[0];e.P&&e.P.focus();!b&&window&&window.scrollTo(c,d)}}k.Ba=function(a){this.a&&this.a.Ba(a);this.g&&this.g.Ba(a)}; function Va(a,b,c){a=Ma(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Ib(a,b){if(a.m.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.m[0];e.P&&e.P.focus();!b&&window&&window.scrollTo(c,d)}}k.Ba=function(a){this.a&&this.a.Ba(a);this.g&&this.g.Ba(a)};
ya(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Uc(h,d,!0);Pa(h,f);h.w&&$c(h,h.Pa)}});ta.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.J&&!c.l.Y&&c.Pa(-1)}}); ya(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Vc(h,d,!0);Pa(h,f);h.w&&ad(h,h.Pa)}});ta.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.K&&!c.l.Y&&c.Pa(-1)}});
ta.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.l.Y&&hd(c,!(!c.b||c.o),!0)}});function F(a,b,c){this.id=a.id;this.key=kd(a,b,c);this.O=a.O;ed(this,a.Mc)}function kd(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} ta.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.l.Y&&id(c,!(!c.b||c.o),!0)}});function F(a,b,c){this.id=a.id;this.key=ld(a,b,c);this.N=a.N;fd(this,a.Mc)}function ld(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}
F.prototype={constructor:F,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ed(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}}}; F.prototype={constructor:F,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){fd(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 ed(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function fd(a){var b=!0;if(pa()){var c=JSON.stringify(a[a.id]);ra(a.key,c)||(p("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function bd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){p(c.message||c),b=!1}return b}function Yc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:pa()&&(b=qa(a.key))?(a[a.id]=b,a.a=!0):!1}function cd(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}var ld=0; function fd(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function gd(a){var b=!0;if(pa()){var c=JSON.stringify(a[a.id]);ra(a.key,c)||(p("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function cd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){p(c.message||c),b=!1}return b}function Zc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:pa()&&(b=qa(a.key))?(a[a.id]=b,a.a=!0):!1}function dd(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}var md=0;
function md(a,b,c,d,e,f){e("Loading "+a+"...");ma(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):nd(g,a,b,c,d,e,f)})} function nd(a,b,c,d,e,f){e("Loading "+a+"...");ma(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):od(g,a,b,c,d,e,f)})}
function nd(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){La(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2")); function od(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){La(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?od(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?pd(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function od(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ma(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],n,x=/( [a-z]+=)(['"])(.*?)\2/g;n=x.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function pd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ma(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],n,x=/( [a-z]+=)(['"])(.*?)\2/g;n=x.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);od(a,b,c)}})}else c(a,null)} "");a=a.replace(d[0],h);pd(a,b,c)}})}else c(a,null)}
function pd(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--ld||Ba(!0));l=!1}var h,g,l=!0;ld++;Ka[a]={};try{if(h=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var x=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));x.appendChild(t)}c|| function qd(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--md||Ba(!0));l=!1}var h,g,l=!0;md++;Ka[a]={};try{if(h=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var x=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));x.appendChild(t)}c||
(c="/versions/pc8080/1.24.2/components.xsl");n=function(d,g){g?md(c,null,null,!1,e,function(d,l){if(l)if(La(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=g.transformNode(l);n?(h.outerHTML=n,--ld||Ba(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--ld||Ba(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.24.2/components.xsl");n=function(d,g){g?nd(c,null,null,!1,e,function(d,l){if(l)if(La(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=g.transformNode(l);n?(h.outerHTML=n,--md||Ba(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--md||Ba(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?md(b,a,d,!0,e,n):nd(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(B){f(B.message)}return l}window.embedPC8080=function(a,b,c,d){Ba(!1);return pd(a,b,c,d)};window.enableEvents=Ba;window.sendEvent=Da;})(); a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?nd(b,a,d,!0,e,n):od(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(B){f(B.message)}return l}window.embedPC8080=function(a,b,c,d){Ba(!1);return qd(a,b,c,d)};window.enableEvents=Ba;window.sendEvent=Da;})();

View file

@ -708,7 +708,7 @@ function fr(a,b){var c=0,d=gr(a,b);if(void 0!==d)switch(b){case 0:case 1:case 2:
function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=zd(d);break; function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=zd(d);break;
case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ja)32==b&&(c=d.Za);else if(80386<=a.F.ja)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.li;break;case 34:c=d.ue;break;case 35:c=d.Qd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c} case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ja)32==b&&(c=d.Za);else if(80386<=a.F.ja)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.li;break;case 34:c=d.ue;break;case 35:c=d.Qd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c}
function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+vq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(d=e+' "'+Jq(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(Uq(a,d),d=e+ function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+vq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(d=e+' "'+Jq(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(Uq(a,d),d=e+
' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=iq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(jq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ha)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.Y.nf=0;c.fb-=c.A;c.A=0;Wc(c)}}; ' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=iq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(jq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ha)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.fb-=c.A;c.A=0;c.Y.nf=0;Wc(c)}};
function nk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>pq.indexOf(b),!d)){var g=oq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Ab[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d} function nk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>pq.indexOf(b),!d)){var g=oq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Ab[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d}
function qb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.zd+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.jh=function(){this.O("Type ? for help with PCx86 Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;nq(this,a)}}; function qb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.zd+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.jh=function(){this.O("Type ? for help with PCx86 Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;nq(this,a)}};
function lq(a,b){var c;if(Wf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=jq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.W||!a.W.length)for(a.W=Array(256),c=0;c<a.W.length;c++)a.W[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.W=[]}m.Le=function(a){if(!ir(this))return!1;this.F.Le(a);return!0}; function lq(a,b){var c;if(Wf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=jq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.W||!a.W.length)for(a.W=Array(256),c=0;c<a.W.length;c++)a.W[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.W=[]}m.Le=function(a){if(!ir(this))return!1;this.F.Le(a);return!0};

View file

@ -1,143 +1,169 @@
(function(){var g;function ba(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c} (function(){var m;function da(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ca(a){return"0x"+n(a,4)}function da(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ea(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ja(){var a=ka();return-1!==a.indexOf("pcjs.org",a.length-8)} function q(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ea(a){return"0x"+q(a,4)}function fa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ja(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ka(){var a=la();return-1!==a.indexOf("pcjs.org",a.length-8)}
var la={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function na(a,b){return(a+" ").slice(0,b)}function oa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function pa(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var k=d+e>>1,h;h=c(b,a[k]);0<h?d=k+1:(e=k,f=!h)}return f?d:~d}var qa=Date.now||function(){return+new Date}; var ma={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function na(a){return a.replace(/[&<>"']/g,function(a){return ma[a]})}function oa(a,b){return(a+" ").slice(0,b)}function pa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ta(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ua=Date.now||function(){return+new Date};
function ra(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}function xa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1} function va(){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 wa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function ya(a,b,c,d){var e=0,f=null,k=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)}),k;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"== function xa(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),k=[f,e]);return k}function ka(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function la(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function r(a){window&&window.alert(a)}function za(a){var b=!1;window&&(b=window.confirm(a));return b}var Aa=null;function Ba(){if(null==Aa){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}Aa=a}return Aa}function Ca(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} function r(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Fa(){if(null==za){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}za=a}return za}function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Da(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ea(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Fa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()} function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ia(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ja(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ga(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var t={init:[],show:[],exit:[]},Ha=!1,Ia=!1,Ja=!0;function Ka(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function La(a){t.init.push(a)} function Ka(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Qa(a){La.init.push(a)}
function Ma(a){if(Ja)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Na(a){!Ja&&a?(Ja=!0,Ha&&Oa("init"),Ia&&Oa("show")):Ja=a}function Oa(a){t[a]&&Ma(t[a])}Ka("onload",function(){Ha=!0;Ma(t.init)});Ka("onpageshow",function(){Ia=!0;Ma(t.show)});Ka(Ea("Opera")||Ea("iOS")?"onunload":"onbeforeunload",function(){Ma(t.exit)}); function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
function v(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ib=b.comment;this.Fb=b;b=this.id.indexOf(".");0>b?this.Ka=this.id:(this.nb=this.id.substr(0,b),this.Ka=this.id.substr(b+1));this[a]=c;this.j={Ca:!1,za:!1,eb:!1,U:!1,Ba:!1};this.Za=null;this.j.Ba=!1;this.G={};this.C=null;this.W=d||0;x.push(this)}var Pa=void 0,Qa={}; function t(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ob=b.comment;this.Jb=b;b=this.id.indexOf(".");0>b?this.Za=this.id:(this.pb=this.id.substr(0,b),this.Za=this.id.substr(b+1));this[a]=c;this.A={Ha:!1,Ea:!1,ab:!1,X:!1,Ga:!1};this.Xa=null;this.A.Ga=!1;this.K={};this.F=null;this.Y=d||0;u.push(this)}var Ua=void 0,Va={};
if(window){Pa||(Pa=window.location.search.substr(1));for(var Ra,ab=/\+/g,bb=/([^&=]+)=?([^&]*)/g;Ra=bb.exec(Pa);)Qa[decodeURIComponent(Ra[1].replace(ab," "))]=decodeURIComponent(Ra[2].replace(ab," "))}function cb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function z(a,b){b||(b=v);a.prototype=cb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var db=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else db={},x=[];function eb(a,b,c){db[a]&&b&&(db[a][b]=c)}function D(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c} function v(a,b){b||(b=t);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),u=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},u=[];function ab(a,b,c){$a[a]&&b&&($a[a][b]=c)}function bb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function fb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b} function cb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function gb(a,b){for(var c=F(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var k=e[f];if(1===k.nodeType){var h=k.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case "pdp11-binding":(h=E(k))&&h.binding&&a.ba(h.type,h.binding,k,h.value),m=l.length}}}} function mb(a,b){for(var c=y(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=w(h))&&g.binding&&a.ha(g.type,g.binding,h,g.value),l=k.length}}}}
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c} function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.ua=this.G[b]=c,c.value="",this.b=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), t.prototype={constructor:t,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ha:function(a,b,c){switch(b){case "clear":return this.K[b]||(this.K[b]=c,c.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.ya=this.K[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.aa=function(a){this.b(a,this.Ka)}),!0;default:return!1}},log:function(){},b:function(){},status:function(a){this.b(this.Ka+": "+a)},aa:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},qa:function(){return this.j.U=!0},pa:function(a,b){b&&(this.j.U=!1);return!0}};function hb(a,b){if(a.C){a===a.C?b|=0:b=b||a.W;var c=a.C.W&b;return!!b&&c===b||!!(c&a.C.Ab)}return!1} this.ea=function(a){this.u(a,this.Za)}),!0;default:return!1}},log:function(){},u:function(){},status:function(a){this.u(this.Za+": "+a)},ea:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},sa:function(){return this.A.X=!0},ra:function(a,b){b&&(this.A.X=!1);return!0}};function nb(a,b){if(a.F){a===a.F?b|=0:b=b||a.Y;var c=a.F.Y&b;return!!b&&c===b||!!(c&a.F.Db)}return!1}
function ib(a,b){if(a.j.eb)return a.j.za&&(a.j.za=!1),a.j.eb=!1;if(a.j.Ba)return a.b(a.toString()+" error"),!1;a.j.za=b;return a.j.za}function jb(a,b){a.j.za&&(b?a.j.eb=!0:void 0===b&&a.b(a.toString()+" busy"));return a.j.za}function G(a){if(!a.j.Ba&&(a.j.Ca=!0,a.j.Ca)){var b=a.Za;a.Za=null;b&&b()}}function kb(a,b){b&&(a.j.Ca?b():a.Za=b);return a.j.Ca}function lb(a,b){a.j.Ba=!0;a.aa(b)} function ob(a,b){if(a.A.ab)return a.A.Ea&&(a.A.Ea=!1),a.A.ab=!1;if(a.A.Ga)return a.u(a.toString()+" error"),!1;a.A.Ea=b;return a.A.Ea}function pb(a,b){a.A.Ea&&(b?a.A.ab=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Ea}function A(a){if(!a.A.Ga&&(a.A.Ha=!0,a.A.Ha)){var b=a.Xa;a.Xa=null;b&&b()}}function qb(a,b){b&&(a.A.Ha?b():a.Xa=b);return a.A.Ha}function rb(a,b){a.A.Ga=!0;a.ea(b)}
var mb="undefined"!==typeof ArrayBuffer,J={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function nb(a){v.call(this,"Panel",a,nb)}z(nb);g=nb.prototype;g.ba=function(a,b,c,d){return this.i&&this.i.ba(a,b,c,d)||this.g&&this.g.ba(a,b,c,d)||this.C&&this.C.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};g.va=function(a,b,c,d){this.i=a;this.A=b;this.g=c;this.C=d}; var sb="undefined"!==typeof ArrayBuffer,C={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function tb(a){t.call(this,"Panel",a,tb)}v(tb);m=tb.prototype;m.ha=function(a,b,c,d){return this.D&&this.D.ha(a,b,c,d)||this.b&&this.b.ha(a,b,c,d)||this.F&&this.F.ha(a,b,c,d)?!0:this.parent.ha.call(this,a,b,c,d)};m.za=function(a,b,c,d){this.D=a;this.H=b;this.b=c;this.F=d};
g.qa=function(a,b){b||ob();return!0};g.pa=function(){return!0};g.ea=function(){};function ob(){for(var a=!1,b=F(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=E(d),f;a:{f=e.id;if(void 0!==f)for(var k=void 0,k=0;k<x.length;k++)if(x[k].id===f){f=x[k];break a}f=null}f||(a=!0,f=new nb(e));gb(f,d);a&&G(f)}}La(ob); m.sa=function(a,b){b||ub();return!0};m.ra=function(){return!0};m.ia=function(){};function ub(){for(var a=!1,b=y(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=w(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<u.length;h++)if(u[h].id===f){f=u[h];break a}f=null}f||(a=!0,f=new tb(e));mb(f,d);a&&A(f)}}Qa(ub);
function pb(a,b,c){v.call(this,"Bus",a,pb);this.g=b;this.C=c;this.w=a.busWidth||16;this.F=Math.pow(2,this.w);this.i=this.F-1|0;this.P=16>=this.w?10:20>=this.w?12:24>=this.w?14:15;this.ga=1<<this.P;this.H=this.ga>>2;this.A=this.ga-1;this.D=this.F/this.ga|0;this.B=this.D-1;a=new K;qb(a,this.C);this.I=Array(this.D);for(b=0;b<this.D;b++)this.I[b]=a;G(this)}z(pb);g=pb.prototype;g.reset=function(){};g.qa=function(a,b){b||this.reset();return!0}; function vb(a,b,c){t.call(this,"Bus",a,vb);this.b=b;this.F=c;this.w=a.busWidth||16;this.D=Math.pow(2,this.w);this.j=this.D-1|0;this.aa=16>=this.w?10:20>=this.w?12:24>=this.w?14:15;this.la=1<<this.aa;this.C=this.la>>2;this.i=this.la-1;this.H=this.D/this.la|0;this.G=this.H-1;a=new D;wb(a,this.F);this.P=Array(this.H);for(b=0;b<this.H;b++)this.P[b]=a;A(this)}v(vb);vb.prototype.reset=function(){};vb.prototype.sa=function(a,b){b||this.reset();return!0};
function rb(a,b,c,d){for(var e=b,f=c,k=e>>>a.P;0<f&&k<a.I.length;){var h=a.I[k],l=k*a.ga,m=a.ga-(e-l);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.u)return h.Xa+=h.u-e,h.u=e,!0;if(e>=h.u+h.Xa){m=h.size-(e-l);m>f&&(m=f);h.Xa=e-h.u+m;e=l+a.ga;f-=m;k++;continue}}return Eb(1,e,f)}e=new K(e,m,a.ga,d);qb(e,a.C,h);a.I[k++]=e;e=l+a.ga;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Fb[d]+" at "+ca(b)),!0):Eb(2,b,c)}g.ca=function(a){return this.I[(a&this.i)>>>this.P].Fa(a&this.A,a)}; function xb(a,b,c,d){for(var e=b,f=c,h=e>>>a.aa;0<f&&h<a.P.length;){var g=a.P[h],k=h*a.la,l=a.la-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.B)return g.Ua+=g.B-e,g.B=e,!0;if(e>=g.B+g.Ua){l=g.size-(e-k);l>f&&(l=f);g.Ua=e-g.B+l;e=k+a.la;f-=l;h++;continue}}return yb(1,e,f)}e=new D(e,l,a.la,d);wb(e,a.F,g);a.P[h++]=e;e=k+a.la;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+zb[d]+" at "+ea(b)),!0):yb(2,b,c)}function Ab(a,b){return a.P[(b&a.j)>>>a.aa].Sa(b&a.i,b)}
function Gb(a,b){return a.I[(b&a.i)>>>a.P].Qa(b&a.A,b)}g.Ma=function(a){var b=a&this.A,c=(a&this.i)>>>this.P;return b!=this.A?this.I[c].vb(b,a):this.I[c++].Fa(b,a)|this.I[c&this.B].Fa(0,a+1)<<8};g.Va=function(a,b){this.I[(a&this.i)>>>this.P].Ia(a&this.A,b&255,a)};g.xb=function(a,b){var c=a&this.A,d=(a&this.i)>>>this.P;c!=this.A?this.I[d].yb(c,b&65535,a):(this.I[d++].Ia(c,b&255,a),this.I[d&this.B].Ia(0,b>>8&255,a+1))};function Eb(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Hb; function yb(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Bb;if(sb){var Nb=new ArrayBuffer(2);(new DataView(Nb)).setUint16(0,256,!0);Bb=256===(new Uint16Array(Nb))[0]}else Bb=!1;var Ob=Bb;
if(mb){var Ib=new ArrayBuffer(2);(new DataView(Ib)).setUint16(0,256,!0);Hb=256===(new Uint16Array(Ib))[0]}else Hb=!1;var Jb=Hb; function D(a,b,c,d){this.id=Pb+=2;this.b=null;this.B=a;this.Ua=b;this.size=c||0;this.type=d||Qb;this.C=d==Rb;wb(this);this.va=this.Fb=!1;if(c)if(sb)this.K=new ArrayBuffer(c),this.D=new DataView(this.K,0,c),this.i=new Uint8Array(this.K,0,c),this.L=new Uint16Array(this.K,0,c>>1),this.b=new Int32Array(this.K,0,c>>2),Sb(this,Ob?Tb:Ub);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Sb(this,Vb)}else Sb(this)}var Qb=0,Rb=2,zb=["NONE","RAM","ROM","VID","H/W"],Pb=0;
function K(a,b,c,d){this.id=Kb+=2;this.g=null;this.u=a;this.Xa=b;this.size=c||0;this.type=d||Lb;this.G=d==Mb;qb(this);this.ra=this.Cb=!1;if(c)if(mb)this.D=new ArrayBuffer(c),this.F=new DataView(this.D,0,c),this.A=new Uint8Array(this.D,0,c),this.J=new Uint16Array(this.D,0,c>>1),this.g=new Int32Array(this.D,0,c>>2),Nb(this,Jb?Ob:Pb);else{this.g=Array(c>>2);for(a=0;a<this.g.length;a++)this.g[a]=0;Nb(this,Qb)}else Nb(this)}var Lb=0,Mb=2,Fb=["NONE","RAM","ROM","VID","H/W"],Kb=0; D.prototype={constructor:D,parent:null,save:function(){var a,b;if(sb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(sb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.va=!0}return!1},xa:function(a,b){b?0===this.w++&&Wb(this,Xb,!1):0===this.j++&&Yb(this,Xb,!1)},M:function(){this.F&&nb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.B),!0);
K.prototype={constructor:K,parent:null,save:function(){var a,b;if(mb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.g;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(mb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.g=a;return this.ra=!0}return!1},ta:function(a,b){b?0===this.w++&&Rb(this,Sb,!1):0===this.i++&&Tb(this,Sb,!1)},K:function(){this.C&&hb(this.C,129)&&this.C.message("attempt to read invalid block %"+n(this.u),!0); return 255},H:function(a,b){this.F&&nb(this.F,129)&&this.F.message("attempt to write "+ea(b)+" to invalid block %"+q(this.B),!0)},V:function(a,b){return this.G(a++,b++)|this.G(a,b)<<8},oa:function(a,b,c){this.J(a++,b&255,c++);this.J(a,b>>8,c)},S:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},$:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ga:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.va=!0},na:function(a,b){var c=
return 255},B:function(a,b){this.C&&hb(this.C,129)&&this.C.message("attempt to write "+ca(b)+" to invalid block %"+n(this.u),!0)},L:function(a,b){return this.Fa(a++,b++)|this.Fa(a,b)<<8},H:function(a,b,c){this.Ia(a++,b&255,c++);this.Ia(a,b>>8,c)},S:function(a){return this.g[a>>2]>>>((a&3)<<3)&255},$:function(a){var b=a>>2;a=(a&3)<<3;var c=this.g[b]>>a;return 24>a?c&65535:c&255|(this.g[b+1]&255)<<8},ma:function(a,b){var c=a>>2,d=(a&3)<<3;this.g[c]=this.g[c]&~(255<<d)|b<<d;this.ra=!0},La:function(a, a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.va=!0},O:function(a,b){if(this.F&&null!=this.B){var c=this.F;Zb(c,this.B+a,1,c.O)&&c.ba(!0)}return this.Sa(a,b)},U:function(a,b){if(this.F&&null!=this.B){var c=this.F;Zb(c,this.B+a,2,c.O)&&c.ba(!0)}return this.xb(a,b)},da:function(a,b,c){if(this.F&&null!=this.B){var d=this.F;Zb(d,this.B+a,1,d.C)&&d.ba(!0)}this.C?this.H(a,b,c):this.La(a,b,c)},ka:function(a,b,c){if(this.F&&
b){var c=a>>2,d=(a&3)<<3;24>d?this.g[c]=this.g[c]&~(65535<<d)|b<<d:(this.g[c]=this.g[c]&16777215|b<<24,c++,this.g[c]=this.g[c]&-256|b>>8);this.ra=!0},N:function(a,b){if(this.C&&null!=this.u){var c=this.C;Ub(c,this.u+a,1,c.N)&&c.Y(!0)}return this.Qa(a,b)},V:function(a,b){if(this.C&&null!=this.u){var c=this.C;Ub(c,this.u+a,2,c.N)&&c.Y(!0)}return this.gb(a,b)},ja:function(a,b,c){if(this.C&&null!=this.u){var d=this.C;Ub(d,this.u+a,1,d.F)&&d.Y(!0)}this.G?this.B(a,b,c):this.Ja(a,b,c)},sa:function(a,b,c){if(this.C&& null!=this.B){var d=this.F;Zb(d,this.B+a,2,d.C)&&d.ba(!0)}this.C?this.H(a,b,c):this.Ab(a,b,c)},N:function(a){return this.i[a]},R:function(a){return this.i[a]},T:function(a){return this.D.getUint16(a,!0)},W:function(a){return a&1?this.i[a]|this.i[a+1]<<8:this.L[a>>1]},ca:function(a,b){this.i[a]=b;this.va=!0},fa:function(a,b){this.i[a]=b;this.va=!0},ja:function(a,b){this.D.setUint16(a,b,!0);this.va=!0},pa:function(a,b){a&1?(this.i[a]=b,this.i[a+1]=b>>8):this.L[a>>1]=b;this.va=!0}};
null!=this.u){var d=this.C;Ub(d,this.u+a,2,d.F)&&d.Y(!0)}this.G?this.B(a,b,c):this.hb(a,b,c)},M:function(a){return this.A[a]},O:function(a){return this.A[a]},T:function(a){return this.F.getUint16(a,!0)},Z:function(a){return a&1?this.A[a]|this.A[a+1]<<8:this.J[a>>1]},fa:function(a,b){this.A[a]=b;this.ra=!0},ka:function(a,b){this.A[a]=b;this.ra=!0},na:function(a,b){this.F.setUint16(a,b,!0);this.ra=!0},Ka:function(a,b){a&1?(this.A[a]=b,this.A[a+1]=b>>8):this.J[a>>1]=b;this.ra=!0}}; function wb(a,b,c){a.F=b;a.j=a.w=0;c&&((a.j=c.j)&&Yb(a,Xb,!1),(a.w=c.w)&&Wb(a,Xb,!1))}function $b(a,b){b?0===--a.w&&(a.J=a.C?a.H:a.La):0===--a.j&&(a.G=a.Sa)}function Wb(a,b,c){c&&a.w||(a.J=!a.C&&b[2]||a.H);if(c||void 0===c)a.La=b[2]||a.H,a.Ab=b[3]||a.oa}function Yb(a,b,c){c&&a.j||(a.G=b[0]||a.M);if(c||void 0===c)a.Sa=b[0]||a.M,a.xb=b[1]||a.V}function Sb(a,b){b||(b=ac);Yb(a,b,void 0);Wb(a,b,void 0)}
function qb(a,b,c){a.C=b;a.i=a.w=0;c&&((a.i=c.i)&&Tb(a,Sb,!1),(a.w=c.w)&&Rb(a,Sb,!1))}function Vb(a,b){b?0===--a.w&&(a.Ia=a.G?a.B:a.Ja,a.yb=a.G?a.H:a.hb):0===--a.i&&(a.Fa=a.Qa,a.vb=a.gb)}function Rb(a,b,c){c&&a.w||(a.Ia=!a.G&&b[2]||a.B,a.yb=!a.G&&b[3]||a.H);if(c||void 0===c)a.Ja=b[2]||a.B,a.hb=b[3]||a.H}function Tb(a,b,c){c&&a.i||(a.Fa=b[0]||a.K,a.vb=b[1]||a.L);if(c||void 0===c)a.Qa=b[0]||a.K,a.gb=b[1]||a.L}function Nb(a,b){b||(b=Wb);Tb(a,b,void 0);Rb(a,b,void 0)} var ac=[],Vb=[D.prototype.S,D.prototype.$,D.prototype.ga,D.prototype.na],Xb=[D.prototype.O,D.prototype.U,D.prototype.da,D.prototype.ka];if(sb)var Ub=[D.prototype.N,D.prototype.T,D.prototype.ca,D.prototype.ja],Tb=[D.prototype.R,D.prototype.W,D.prototype.fa,D.prototype.pa];
var Wb=[],Qb=[K.prototype.S,K.prototype.$,K.prototype.ma,K.prototype.La],Sb=[K.prototype.N,K.prototype.V,K.prototype.ja,K.prototype.sa];if(mb)var Pb=[K.prototype.M,K.prototype.T,K.prototype.fa,K.prototype.na],Ob=[K.prototype.O,K.prototype.Z,K.prototype.ka,K.prototype.Ka]; function bc(a,b){t.call(this,"CPU",a,bc,1);var c=a.multiplier||1;this.cb=a.cycles||b;this.Ba=c;this.Ma=Math.round(this.cb/1E4)/100;this.Aa=this.Ma*this.Ba;this.A.Z=!1;this.A.bb=!1;this.A.kb=a.autoStart;this.A.lb=!1;this.A.Fa=!1;this.Pa=this.ca=0;this.Qa=a.csStart;this.Ia=a.csInterval;this.Ja=a.csStop;this.oa=[];this.Ib=this.Ca.bind(this);A(this)}v(bc);var cc=["power","reset"];m=bc.prototype;
function Xb(a,b){v.call(this,"CPU",a,Xb,1);var c=a.multiplier||1;this.$=a.cycles||b;this.xa=c;this.Z=Math.round(this.$/1E4)/100;this.wa=this.Z*this.xa;this.j.X=!1;this.j.fb=!1;this.j.rb=a.autoStart;this.j.sb=!1;this.j.Aa=!1;this.Na=this.L=0;this.Oa=a.csStart;this.Da=a.csInterval;this.Ea=a.csStop;this.S=[];this.sa=this.ya.bind(this);G(this)}z(Xb);var Yb=["power","reset"];g=Xb.prototype; m.za=function(a,b,c,d){this.D=a;this.H=b;this.F=d;for(b=0;b<cc.length;b++)(c=this.K[cc[b]])&&this.D.ha(null,cc[b],c);this.ja=null;a=dc(a,"autoStart");null!=a&&(this.A.kb="true"==a?!0:"false"==a?!1:!!a);A(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
g.va=function(a,b,c,d){this.i=a;this.A=b;this.C=d;for(b=0;b<Yb.length;b++)(c=this.G[Yb[b]])&&this.i.ba(null,Yb[b],c);this.N=null;a=Zb(a,"autoStart");null!=a&&(this.j.rb="true"==a?!0:"false"==a?!1:!!a);G(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1}; m.sa=function(a,b){if(!b){if(a&&this.restore){ec(this);if(!this.restore(a))return!1;fc(this)}else this.reset();if(this.F){var c=this.F;c.u("Type ? for help with PDP11 Debugger commands");c.ia();if(c.ka){var d=c.ka;c.ka=null;gc(c,d)}}else this.u("No debugger detected")}F(this);return!0};m.ra=function(a){return a?this.save():!0};function hc(a){(a.A.kb||!a.F&&void 0===a.K.run)&&a.Ca(!0)}m.mb=function(){return 0};
g.qa=function(a,b){if(!b){if(a&&this.restore){$b(this);if(!this.restore(a))return!1;ac(this)}else this.reset();if(this.C){var c=this.C;c.b("Type ? for help with PDP11 Debugger commands");c.ea();if(c.La){var d=c.La;c.La=null;bc(c,d)}}else this.b("No debugger detected")}L(this);return!0};g.pa=function(a){return a?this.save():!0};function cc(a){(a.j.rb||!a.C&&void 0===a.G.run)&&a.ya(!0)}g.tb=function(){return 0}; function fc(a){void 0===a.Qa&&(a.Qa=0);void 0===a.Ia&&(a.Ia=-1);void 0===a.Ja&&(a.Ja=-1);a.A.Fa=0<=a.Qa&&0<a.Ia;a.A.Fa&&(a.Pa=0,a.ca=a.Qa-a.V)}function ic(a,b){if(a.A.Fa){var c=!1;a.Pa=a.Pa+a.mb()|0;a.ca-=b;0>=a.ca&&(a.ca+=a.Ia,c=!0);0<=a.Ja&&a.Ja<=jc(a)&&(a.Ia=a.Ja=-1,fc(a),a.ba(),c=!0);c&&a.u(jc(a)+" cycles: checksum="+q(a.Pa))}}
function ac(a){void 0===a.Oa&&(a.Oa=0);void 0===a.Da&&(a.Da=-1);void 0===a.Ea&&(a.Ea=-1);a.j.Aa=0<=a.Oa&&0<a.Da;a.j.Aa&&(a.Na=0,a.L=a.Oa-a.K)}function dc(a,b){if(a.j.Aa){var c=!1;a.Na=a.Na+a.tb()|0;a.L-=b;0>=a.L&&(a.L+=a.Da,c=!0);0<=a.Ea&&a.Ea<=sc(a)&&(a.Da=a.Ea=-1,ac(a),a.Y(),c=!0);c&&a.b(sc(a)+" cycles: checksum="+n(a.Na))}} function kc(a,b,c,d){a.K[b]&&(void 0===c&&(rb(a,"Value for "+b+" is invalid"),a.ba()),c=!a.A.Z||a.A.lb?q(c,d):"--------".substr(0,d),a.K[b].textContent!=c&&(a.K[b].textContent=c))}
function tc(a,b,c,d){a.G[b]&&(void 0===c&&(lb(a,"Value for "+b+" is invalid"),a.Y()),c=!a.j.X||a.j.sb?n(c,d):"--------".substr(0,d),a.G[b].textContent!=c&&(a.G[b].textContent=c))} m.ha=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.K[b]=c;a=!0;break;case "run":this.K[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.A.X)a=!0;else{var b=null,c,g=bb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.Ha);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.X);c++);c==g.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.Ha?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.Z?d.ba():d.Ca())};a=!0;break;
g.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.G[b]=c;a=!0;break;case "run":this.G[b]=c;c.onclick=function(){var a;if(a=d.i)if(a=d.i,a.j.U)a=!0;else{var b=null,c,h=D(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.Ca);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.U);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.j.Ca?"powered yet":"ready yet"+(b.Za?" (waiting for notification)":""))+".");a=!1}a&&(d.j.X?d.Y():d.ya())};a=!0;break; case "speed":this.K[b]=c;a=!0;break;case "setSpeed":this.K[b]=c,c.onclick=function(){lc(d,d.Ba<<1,!0)},c.textContent=this.Aa.toFixed(2)+"Mhz",a=!0}return a};function mc(a,b,c){a.V+=b;c&&(a.U=a.R=0)}function nc(a,b){var c=1;b&&1<a.Ba&&a.S&&(c=a.S/a.Ma);a.ub=Math.round(1E3/30);a.wa=Math.floor(a.cb/30*c);b||(a.da=a.wa);a.eb=0}function jc(a){return a.V+a.O+a.U-a.R}function ec(a){a.S=0;a.vb=0;a.V=a.O=a.U=a.R=0;fc(a);lc(a,1)}
case "speed":this.G[b]=c;a=!0;break;case "setSpeed":this.G[b]=c,c.onclick=function(){uc(d,d.xa<<1,!0)},c.textContent=this.wa.toFixed(2)+"Mhz",a=!0}return a};function vc(a,b,c){a.K+=b;c&&(a.w=a.g=0)}function wc(a,b){var c=1;b&&1<a.xa&&a.H&&(c=a.H/a.Z);a.ma=Math.round(1E3/30);a.V=Math.floor(a.$/30*c);b||(a.M=a.V);a.fa=0}function sc(a){return a.K+a.F+a.w-a.g}function $b(a){a.H=0;a.na=0;a.K=a.F=a.w=a.g=0;ac(a);uc(a,1)} function lc(a,b,c){var d=!1;if(void 0!==b){.8>a.S/a.Aa?b=1:d=!0;a.Ba=b;b=a.Ma*a.Ba;if(a.Aa!=b){a.Aa=b;b=a.Aa.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.D&&a.D.Ta()}mc(a,a.O);a.O=0;a.N=ua();a.T=0;nc(a);return d}function Ac(a){a.U-=a.R;a.R=0}
function uc(a,b,c){var d=!1;if(void 0!==b){.8>a.H/a.wa?b=1:d=!0;a.xa=b;b=a.Z*a.xa;if(a.wa!=b){a.wa=b;b=a.wa.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.b("target speed: "+b)}c&&a.i&&a.i.Wa()}vc(a,a.F);a.F=0;a.D=qa();a.J=0;wc(a);return d} m.Ca=function(a){if(ob(this,!0)){if(!this.A.Z){lc(this);this.D&&this.D.start(this.N,jc(this));this.A.Z=!0;this.A.bb=!0;this.ja&&this.ja.start();var b=this.K.run;b&&(b.textContent="Halt");this.D&&(this.D.ia(!0),a&&this.D.Ta(!0))}this.eb>=this.cb&&nc(this,!0);this.ka=0;this.na=ua();this.T&&(a=this.na-this.T,a>this.ub&&(this.N+=a,this.N>this.na&&(this.N=this.na)));try{do{for(var c=this.A.Fa?1:this.wa,d=this.oa.length-1;0<=d;d--){var e=this.oa[d];0>e[0]||c>e[0]&&(c=e[0])}this.Ka(c);var f=this.U-this.R;
g.ya=function(a){if(ib(this,!0)){if(!this.j.X){uc(this);this.i&&this.i.start(this.D,sc(this));this.j.X=!0;this.j.fb=!0;this.N&&this.N.start();var b=this.G.run;b&&(b.textContent="Halt");this.i&&(this.i.ea(!0),a&&this.i.Wa(!0))}this.fa>=this.$&&wc(this,!0);this.O=0;this.T=qa();this.J&&(a=this.T-this.J,a>this.ma&&(this.D+=a,this.D>this.T&&(this.D=this.T)));try{do{for(var c=this.j.Aa?1:this.V,d=this.S.length-1;0<=d;d--){var e=this.S[d];0>e[0]||c>e[0]&&(c=e[0])}this.Ha(c);var f=this.w-this.g;a=f;for(var k= a=f;for(var h=this.oa.length-1;0<=h;h--){var g=this.oa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ka+=f;this.O+=f;mc(this,0,!0);ic(this,f);this.da-=f;if(0>=this.da){this.da+=this.wa;15<=++this.vb&&(this.D&&this.D.ia(),this.vb=0);break}}while(this.A.Z)}catch(k){this.ba();F(this);this.D&&this.D.stop(ua(),jc(this));ob(this,!1);rb(this,k.stack||k.message);return}c=setTimeout;d=this.Ib;this.T=ua();e=this.ub;this.ka&&(e=Math.round(e*this.ka/this.wa));e=e-(this.T-this.na);if(f=this.T-this.N)this.S=
this.S.length-1;0<=k;k--){var h=this.S[k];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.O+=f;this.F+=f;vc(this,0,!0);dc(this,f);this.M-=f;if(0>=this.M){this.M+=this.V;15<=++this.na&&(this.i&&this.i.ea(),this.na=0);break}}while(this.j.X)}catch(l){this.Y();L(this);this.i&&this.i.stop(qa(),sc(this));ib(this,!1);lb(this,l.stack||l.message);return}c=setTimeout;d=this.sa;this.J=qa();e=this.ma;this.O&&(e=Math.round(e*this.O/this.V));e=e-(this.J-this.T);if(f=this.J-this.D)this.H=Math.round(this.F/(10* Math.round(this.O/(10*f))/100,864E5<=f&&(this.V=0,lc(this));if(0>e||this.S<this.Aa)-1E3>e&&(this.N-=e),e=0;this.eb+=this.ka;this.T+=e;c(d,e)}else F(this),this.D&&this.D.stop(ua(),jc(this))};m.Ka=function(){return 0};m.ba=function(a){pb(this,!0);Ac(this);mc(this,this.O);this.O=0;if(this.A.Z){this.A.Z=!1;this.ja&&this.ja.stop();var b=this.K.run;b&&(b.textContent="Run")}this.A.Wa=a};function F(a,b){a.D&&a.D.ia(b)}
f))/100,864E5<=f&&(this.K=0,uc(this));if(0>e||this.H<this.wa)-1E3>e&&(this.D-=e),e=0;this.fa+=this.O;this.J+=e;c(d,e)}else L(this),this.i&&this.i.stop(qa(),sc(this))};g.Ha=function(){return 0};g.Y=function(a){jb(this,!0);this.w-=this.g;this.g=0;vc(this,this.F);this.F=0;if(this.j.X){this.j.X=!1;this.N&&this.N.stop();var b=this.G.run;b&&(b.textContent="Run")}this.j.Ya=a};function L(a,b){a.i&&a.i.ea(b)} function Bc(a){this.rb=+a.model||1170;bc.call(this,a,1E6);ec(this);this.A.Wa=this.A.Eb=!1;this.nb=0;this.w=65536;this.i=this.b=32768;this.j=65535;this.I=15;this.g=[0,0,0,0,0,0,0,0];this.zb=[0,0,0,0,0,0];this.fa=[0,0,0,0];this.memory=[];this.J=[];this.fb=this.wb=0;this.W=2;this.$=255;this.G=0;this.ga=-1;this.tb=this.Na=this.sb=this.C=this.Da=this.M=this.L=0;this.pa=[7,7,7,7];this.Oa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
function xc(a){this.ub=+a.model||1170;Xb.call(this,a,1E6);this.ja=yc;$b(this);this.j.Ya=this.j.Bb=!1;this.ka=0;zc(this)}z(xc,Xb);g=xc.prototype;g.reset=function(){this.j.X&&this.Y();zc(this);$b(this);this.j.Ba=!1;this.parent.reset.call(this)};function zc(a){a.Ga=0;a.Ra=0;a.$a=0;a.Sa=0;a.ab=0;a.Ta=0;a.bb=0;a.Ua=0;a.R=0;Ac(a,0);a.B=0}g.tb=function(){var a=this.Ga+this.Ra+this.$a+this.Sa+this.ab+this.Ta+this.bb|0;return a=a+this.Ua+this.R+Bc(this)|0}; 0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Kb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}v(Bc,bc);m=Bc.prototype;m.reset=function(){this.A.Z&&this.ba();Cc(this);ec(this);this.A.Ga=!1;this.parent.reset.call(this)};
g.save=function(){var a=new M(this);N(a,0,[this.Ga,this.Ra,this.$a,this.Sa,this.ab,this.Ta,this.bb,this.Ua,this.R,Bc(this)]);N(a,1,[this.B,this.K,this.xa]);for(var b=this.A,c=0,d=[],e=0;e<b.D;e++){var f=b.I[e];if(f.ra||f.Cb){d[c++]=e;var k=c++;a:if(f=f.save()){for(var h=0,l=0,m=[];h<f.length;){for(var p=f[h],q=h+1;q<f.length&&f[q]===p;)q++;m[l++]=q-h;m[l++]=p;h=q}if(m.length<f.length){f=m;break a}}d[k]=f}}N(a,2,d);return a.data()}; function Cc(a){a.$=255;a.J=[];a.wb=0;a.L=a.M=a.Da=a.sb=0;a.pa[0]=a.pa[1]=a.pa[3]=7;a.Na=0}m.mb=function(){return 0};m.save=function(){var a=new G(this);H(a,0,[]);H(a,1,[this.qb,this.V,this.Ba]);for(var b=this.H,c=0,d=[],e=0;e<b.H;e++){var f=b.P[e];if(f.va||f.Fb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<f.length){f=l;break a}}d[h]=f}}H(a,2,d);return a.data()};
g.restore=function(a){var b=a[0];this.Ga=b[0];this.Ra=b[1];this.$a=b[2];this.Sa=b[3];this.ab=b[4];this.Ta=b[5];this.bb=b[6];this.Ua=b[7]&65535;this.R=b[8]&65535;Ac(this,b[9]);b=a[1];this.B=b[0];this.K=b[1];uc(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.H){for(var f=0,k=Array(b.H),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)k[f++]=m;e=k}f=b.I[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; m.restore=function(a){var b=a[1];this.qb=b[0];this.V=b[1];lc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.C){for(var f=0,h=Array(b.C),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.P[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
g.ba=function(a,b,c){var d=!1;switch(b){case "PC":case "PSW":case "IF":case "SF":case "ZF":case "CF":this.G[b]=c;this.ka++;d=!0;break;default:d=this.parent.ba.call(this,a,b,c)}return d};function Bc(a){return a.ha&-214|(a.ia&128?128:0)|(a.da&255?0:64)|(a.da&256?1:0)}function Ac(a,b){a.da=a.ia=0;b&1&&(a.da|=256);b&4||(a.ia|=1);b&64||(a.da|=255);b&128&&(a.ia^=192);a.ha=a.ha&-726|b&512|2}g.ca=function(a){return this.A.ca(a)};g.Va=function(a,b){this.A.Va(a,b)}; m.ha=function(a,b,c){var d=!1;switch(b){case "PC":case "PSW":case "IF":case "SF":case "ZF":case "CF":this.K[b]=c;this.nb++;d=!0;break;default:d=this.parent.ha.call(this,a,b,c)}return d};m.ia=function(a){this.nb&&(a||!this.A.Z||this.A.lb)&&(a=this.I&-14|0|(this.ta&255?0:4)|(this.ta&256?1:0),kc(this,"PSW",a,4),kc(this,"SF",a&8?1:0,1),kc(this,"ZF",a&4?1:0,1),kc(this,"CF",a&1?1:0,1));if(a=this.K.speed)a.textContent=this.A.Z&&this.S?this.S.toFixed(2)+"Mhz":"Stopped"};
function Cc(a){var b=a.ca(a.R);a.R=a.R+1&65535;return b}g.ea=function(a){this.ka&&(a||!this.j.X||this.j.sb)&&(tc(this,"PC",this.R,4),a=Bc(this),tc(this,"PSW",a,4),tc(this,"IF",a&512?1:0,1),tc(this,"SF",a&128?1:0,1),tc(this,"ZF",a&64?1:0,1),tc(this,"CF",a&1?1:0,1));if(a=this.G.speed)a.textContent=this.j.X&&this.H?this.H.toFixed(2)+"Mhz":"Stopped"}; function Dc(a,b){var c,d;a.b=b<<12;a.j=~b&4;a.i=b<<14;a.w=b<<16;if((b^a.I)&2048)for(c=0;6>c;c++)d=a.g[c],a.g[c]=a.zb[c],a.zb[c]=d;(a.C=b>>14&3)!==(d=a.I>>14&3)&&(a.fa[d]=a.g[6],a.g[6]=a.fa[a.C]);a.W=2;a.I=b}
g.Ha=function(a){this.j.Ya=!0;var b=this.j.Bb=this.C&&Dc(this.C),c=a?this.j.fb?0:1:-1;this.j.fb=!1;this.w=this.g=a;if(this.g&&this.B&255&&this.ha&512){for(a=0;8>a&&!(this.B&1<<a);a++);this.B&=~(0>a?255:1<<a);this.ha&=-513;this.B&=-257;this.ja[199|a<<3].call(this)}this.B&256?(this.w-=this.g,this.g=0,a=!1):a=!0;if(a){do{if(b){if(Ec(this.C,this.R,c)){this.Y();break}c=1}this.ja[Cc(this)].call(this)}while(0<this.g)}return this.j.Ya?this.w-this.g:void 0===this.j.Ya?0:-1}; function I(a,b){var c,d,e=0;0>a.ga?(a.I=a.I&63728|a.b>>12&8|a.i>>14&2|a.w>>16&1,a.j&65535||(a.I|=4),a.ga=a.I):a.C||(b=4,e=1);a.L&57344||(a.M=63222);a.C=0;0<=(c=L(a,b|65536))&&0<=(d=L(a,b+2&65535|65536))&&(Dc(a,d&53247|a.ga>>2&12288),e&&(a.g[6]=4),0<=Ec(a,a.ga)&&0<=Ec(a,a.g[7])&&(a.g[7]=c));a.G=0;return a.ga=-1}
La(function(){for(var a=F(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new xc(d);gb(d,c)}});function O(){this.g-=4} function Fc(a,b,c){var d,e,f,h=0;if(c&a.sb){d=b>>13&a.pa[a.C];e=a.Oa[a.C][d];f=(a.Oa[a.C][d+16]<<6)+(b&8191)&4194303;if(a.Da&16){if(3932160<=f&&4186112>f){f=f&262143;var g=f>>13&31;31>g?a.Da&32&&(f=a.Kb[g]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}}else f&=262143,253952<=f&&(f|=4186112);if(3932160>f&&(3915776<=f||f&1&&!(c&1)))return I(a,4);switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192:128;break;
var yc=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O, default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.Oa[a.C][d]=e;if(4194170!==f||a.C)a.Na=a.C,a.tb=d;if(h){if(h&57344)return 0<=a.ga&&(h|=128),a.L&57344||(a.L=a.L|h|a.Na<<5|a.tb<<1),I(a,168);a.L&61440||!(4191360>f||4194239<f)||(a.L|=4096,a.L&512&&(a.G|=2))}}else if(f=b&65535,57344<=f)f|=4186112;else if(f&1&&!(c&1))return I(a,4);return f}function M(a,b){return 4194304<=b?a.g[b-4194304]:3932160<=b?-1:0<=b?a.memory[b>>1]:b}
O,O,O,O,O,O,O,O,O];function Fc(a){v.call(this,"ROM",a,Fc);this.i=null;this.F=a.addr;this.w=a.size;this.H=a.writable;this.B=a.alias;this.D=a.file;this.J=da(this.D);if(this.D){a=this.D;var b=ea(this.J);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;ya(a,null,!0,function(a,b,f){Gc(c,a,b,f)})}}z(Fc);Fc.prototype.va=function(a,b,c,d){this.A=b;this.g=c;this.C=d;Hc(this)}; function N(a,b,c){c&=65535;return 4194304<=b?a.g[b-4194304]=c:3932160<=b?-1:0<=b?a.memory[b>>1]=c:b}function O(a,b){var c;return 4194304<=b?a.g[b-4194304]&255:3932160<=b?-1:0<=b?(c=a.memory[b>>1],b&1&&(c=c>>8),c&255):b}function R(a,b,c){c&=255;return 4194304<=b?a.g[b-4194304]=a.g[b-4194304]&65280|c:3932160<=b?-1:0<=b?b&1?a.memory[b>>1]=c<<8|a.memory[b>>1]&255:a.memory[b>>1]=a.memory[b>>1]&65280|c:b}function L(a,b){return M(a,Fc(a,b,2))}
Fc.prototype.qa=function(){if(this.oa){if(this.C){var a=this.C,b=this.id,c=this.F,d=this.w,e=this.oa,f=[],k;for(k in e){var h=e[k];"number"==typeof h&&(e[k]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var p=f,l=[l>>>0,k],q=pa(p,l,a.lb);0>q&&p.splice(-(q+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Ib:b,u:c,Hb:d,oa:e,kb:f})}delete this.oa}return!0};Fc.prototype.pa=function(){return!0}; function Gc(a){var b=L(a,a.g[6]|65536);0<=b&&(a.g[6]=a.g[6]+2&65535);return b}function Ec(a,b){var c,d;a.g[6]=d=a.g[6]-2&65535;a.L&57344||(a.M=a.M<<8|246);if(!a.C&&d<=a.$&&4<d){if(d<=a.$-32)return a.g[6]=4,I(a,4);a.G|=4}return 0<=(c=Fc(a,d|65536,4))?N(a,c,b):c}
function Gc(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{eb(a.nb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,k=e.data;if(f)a.i=f;else if(k)for(a.i=Array(4*k.length),d=c=0;c<k.length;c++)a.i[d++]=k[c]&255,a.i[d++]=k[c]>>8&255,a.i[d++]=k[c]>>16&255,a.i[d++]=k[c]>>24&255;else a.i=e;a.oa=e.symbols;if(!a.i.length){r("Empty ROM: "+b);return}if(1==a.i.length){r(a.i[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, function Hc(a,b,c){var d,e,f=b&7;switch(b>>3&7){case 0:return I(a,4);case 1:if(6===f&&!a.C&&c&4&&(a.g[6]<=a.$||65534<=a.g[6])){if(a.g[6]<=a.$-32||65534<=a.g[6])return a.g[6]=4,I(a,4);a.G|=4}return 7===f?a.g[f]:a.g[f]|65536;case 2:e=2;d=a.g[f];7!==f&&(d|=65536,6>f&&c&1&&(e=1));break;case 3:e=2;d=a.g[f];7!==f&&(d|=65536);if(0>(d=L(a,d)))return d;d|=65536;break;case 4:e=-2;6>f&&c&1&&(e=-1);d=a.g[f]+e&65535;7!==f&&(d|=65536);break;case 5:e=-2;d=a.g[f]-2&65535;7!==f&&(d|=65536);if(0>(d=L(a,d)))return d;
" ").replace(/ +$/,"").split(" "),a.i=Array(b.length),e=0;e<b.length;e++)a.i[e]=ba(b[e],16);Hc(a)}} d|=65536;break;case 6:if(0>(d=L(a,a.g[7])))return d;a.g[7]=a.g[7]+2&65535;d=d+a.g[f]&65535;return d|65536;case 7:if(0>(d=L(a,a.g[7])))return d;a.g[7]=a.g[7]+2&65535;d=d+a.g[f]&65535;return 0>(d=L(a,d|65536))?d:d|65536}a.g[f]=a.g[f]+e&65535;a.L&57344||(a.M=a.M<<8|e<<3&248|f);if(6===f&&!a.C&&c&4&&0>=e&&(a.g[6]<=a.$||65534<=a.g[6])){if(a.g[6]<=a.$-32)return a.g[6]=4,I(a,4);a.G|=4}return d}function S(a,b,c){var d;return b&56?(0<=(d=Hc(a,b,c))&&(d=Fc(a,d,c)),d):4194304+(b&7)}
function Hc(a){if(!kb(a))if(!a.D)G(a);else if(a.i&&a.A){a.w||(a.w=a.i.length);if(a.i.length!=a.w)lb(a,"ROM size (0x"+n(a.i.length)+") does not match specified size ("+("0x"+n(a.w))+")");else{var b;b=a.F;if(rb(a.A,b,a.w,a.H?1:Mb)){var c;for(c=0;c<a.i.length;c++){var d=a.A,e=b+c;d.I[(e&d.i)>>>d.P].Ja(e&d.A,a.i[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.B?b.push(a.B):null!=a.B&&a.B.length&&(b=a.B);for(c=0;c<b.length;c++){for(var f=a,d=b[c],e=f.A,k=f.w,h=[],l=f.F>>>e.P;0<k&&l<e.I.length;)h.push(e.I[l++]), function T(a,b){var c;b&56?0<=(c=S(a,b,2))&&(c=M(a,c)):c=a.g[b&7];return c}function Ic(a,b){var c;b&56?0<=(c=S(a,b,3))&&(c=O(a,c)):c=a.g[b&7]&255;return c}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
k-=e.ga;e=f.A;f=f.w;k=0;for(d>>>=e.P;0<f&&d<e.I.length;){l=h[k++];if(!l)break;e.I[d++]=l;f-=e.ga}}delete a.i}}G(a)}}La(function(){for(var a=F(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Fc(d);gb(d,c)}});function Ic(a){v.call(this,"RAM",a,Ic);this.B=a.addr;this.w=a.size;this.i=!1}z(Ic);g=Ic.prototype;g.va=function(a,b,c,d){this.A=b;this.g=c;this.C=d;G(this)};g.qa=function(a,b){b||this.reset();return!0};g.pa=function(a){return a?this.save():!0}; m.Ka=function(a){this.A.Wa=!0;var b=this.A.Eb=this.F&&Jc(this.F),c=a?this.A.bb?0:1:-1;this.A.bb=!1;this.U=this.R=a;this.qb&256?(Ac(this),a=!1):a=!0;if(a){do{if(b){if(Kc(this.F,this.g[7],c)){this.ba();break}c=1}var d,e,f,h,g;if(this.W)if(1===this.W)this.W=2;else{this.W=0;g=-1;d=this.wb&224;if(0<(a=this.J.length))for(;0<a--;){if(0<this.J[a].$a){this.J[a].$a--;this.W=2;break}if(this.J[a].ib){if(!this.J[a].ib()){this.J.splice(a,1);g--;continue}this.J[a].ib=null}this.J[a].Hb>d&&(d=this.J[a].Hb,g=a)}d>
g.reset=function(){!this.i&&this.w&&rb(this.A,this.B,this.w,1)&&(this.i=!0);this.i||r("No RAM allocated")};g.save=function(){return null};g.restore=function(){return!0};La(function(){for(var a=F(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ic(d);gb(d,c)}});function Jc(a){v.call(this,"Keyboard",a,Jc,65536);G(this)}z(Jc);Jc.prototype.ba=function(){return!1};Jc.prototype.va=function(a,b,c,d){this.i=a;this.g=c;this.C=d;this.N=null}; (this.I&224)&&(0>g?I(this,160):(I(this,this.J[g].Mb),this.J.splice(g,1)))}this.L&57344||(this.M=0);this.G=this.I&16;if(0<=(a=L(this,this.g[7])))switch(this.g[7]=this.g[7]+2&65535,a&61440){case 4096:0<=(d=T(this,a>>6))&&(a&56?0<=(f=S(this,a,4))&&0<=N(this,f,d)&&(this.b=this.j=d,this.i=0):(this.b=this.j=this.g[a&7]=d,this.i=0));break;case 8192:0<=(d=T(this,a>>6))&&0<=(e=T(this,a))&&(this.b=this.j=this.w=a=d-e,this.i=(d^e)&(d^a));break;case 12288:0<=(d=T(this,a>>6))&&0<=(e=T(this,a))&&(this.b=this.j=
La(function(){for(var a=F(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Jc(d);gb(d,c)}}); d&e,this.i=0);break;case 16384:0<=(d=T(this,a>>6))&&(a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e&~d,0<=N(this,f,a)&&(this.b=this.j=a,this.i=0)):(this.b=this.j=a=this.g[a&7]&=~d,this.i=0));break;case 20480:0<=(d=T(this,a>>6))&&(a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e|d,0<=N(this,f,a)&&(this.b=this.j=a,this.i=0)):(this.b=this.j=a=this.g[a&7]|=d,this.i=0));break;case 24576:0<=(d=T(this,a>>6))&&(a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=d+e,0<=N(this,f,a)&&(this.b=this.j=this.w=a,this.i=(d^a)&(e^a))):(g=a&7,
function Kc(a){v.call(this,"Debugger",a,Kc);this.S=this.na=this.K=0;this.M=P();this.mb=P();this.D=-1;this.B=[];this.V=!1;this.T=P();this.H=[];this.Z={};this.w=this.N=this.F=[];Lc(this);this.ja=0;Mc(this);this.sa=[];Nc(this,a.messages);this.La=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return bc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return bc(b,a)})}z(Kc); e=this.g[g],this.g[g]=(a=d+e)&65535,this.b=this.j=this.w=a,this.i=(d^a)&(e^a)));break;case 36864:0<=(d=Ic(this,a>>6))&&(a&56?0<=(f=S(this,a,5))&&0<=R(this,f,d)&&(this.b=this.j=d<<8,this.i=0):(d&128&&(d|=65280),this.b=this.j=this.g[a&7]=d,this.i=0));break;case 40960:0<=(d=Ic(this,a>>6))&&0<=(e=Ic(this,a))&&(a=d-e,this.b=this.j=this.w=a<<8,this.i=((d^e)&(d^a))<<8);break;case 45056:0<=(d=Ic(this,a>>6))&&0<=(e=Ic(this,a))&&(this.b=this.j=(d&e)<<8,this.i=0);break;case 49152:0<=(d=Ic(this,a>>6))&&0<=(e=
var Oc={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Pc=["NONE"],Qc=["PC","PSW"],Rc=[];g=Kc.prototype; O(this,f=S(this,a,7)))&&(a=e&~d,0<=R(this,f,a)&&(this.b=this.j=a<<8,this.i=0));break;case 53248:0<=(d=Ic(this,a>>6))&&0<=(e=O(this,f=S(this,a,7)))&&(a=e|d,0<=R(this,f,a)&&(this.b=this.j=a<<8,this.i=0));break;case 57344:0<=(d=T(this,a>>6))&&(a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e-d,0<=N(this,f,a)&&(this.b=this.j=this.w=a,this.i=(d^e)&(e^a))):(g=a&7,e=this.g[g],this.g[g]=(a=e-d)&65535,this.b=this.j=this.w=a,this.i=(d^e)&(e^a)));break;default:switch(a&65024){case 2048:0<=(h=Hc(this,a,0))&&(g=a>>6&7,
g.va=function(a,b,c,d){this.A=b;this.g=c;this.i=a;(a=Zb(a,"messages"))&&Nc(this,a);this.jb=Rc;Sc(this,function(a){a:{var b=d.A.I,c=a[0],h=a=0,l=b.length;if(c){a=V(W(d,c));if(-1===a){d.b("invalid address: "+c);break a}h=a>>>d.A.P;l=1}d.b("blockid physical blockaddr used size type");d.b("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var p=b[h];p.type==c?m++||d.b("..."):(c=p.type,m=Fb[c],p&&d.b(n(p.id)+" %"+n(h<<d.A.P)+" %%"+n(p.u)+" "+ca(p.Xa)+" "+ca(p.size)+ 0<=Ec(this,this.g[g])&&(this.g[g]=this.g[7],this.g[7]=h&65535));break;case 28672:0<=(d=T(this,a))&&(g=a>>6&7,d&32768&&(d|=-65536),e=this.g[g],e&32768&&(e|=-65536),a=~~(d*e),this.g[g]=a>>16&65535,this.g[g|1]=a&65535,this.b=a>>16,this.j=this.b|a,this.w=this.i=0,-32768>a||32767<a)&&(this.w=65536);break;case 29184:0<=(d=T(this,a))&&(d?(g=a>>6&7,e=this.g[g]<<16|this.g[g|1],this.w=this.i=0,d&32768&&(d|=-65536),a=~~(e/d),-32768<=a&&32767>=a?(this.g[g]=a&65535,this.g[g|1]=e-a*d&65535,this.j=a>>16|a,this.b=
" "+m),c!=Lb&&(c=-1),m=0);a+=d.A.ga;h++}}});G(this)}; a>>16):(this.i=32768,this.j=a>>15|a,this.b=e>>16,-1===d&&65534===this.g[g]&&(this.g[g]=this.g[g|1]=1))):(this.j=this.b=0,this.i=32768,this.w=65536));break;case 29696:0<=(d=T(this,a))&&(g=a>>6&7,a=this.g[g],a&32768&&(a|=4294901760),this.w=this.i=0,d&=63,d&32?(d=64-d,16<d&&(d=16),this.w=a<<17-d,a=a>>d):d&&(16<d?(this.i=a,a=0):(this.w=a=a<<d,(e=a>>15&65535)&&65535!==e&&(this.i=32768))),this.g[g]=a&65535,this.b=this.j=a);break;case 30208:if(0<=(d=T(this,a))){g=a>>6&7;e=this.g[g]<<16|this.g[g|1];this.w=
g.ba=function(a,b,c){var d=this;switch(b){case "debugInput":return this.fa=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",bc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.D<d.B.length-1&&(b=d.B[++d.D]):40==a.keyCode&&(0<d.D?b=d.B[--d.D]:(b="",d.D=-1)),null!=b){var k=b.length;c.value=b;c.setSelectionRange(k,k)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,Ga(c,function(){if(d.fa){var a=d.fa.value;d.fa.value= this.i=0;d&=63;if(d&32)d=64-d,32<d&&(d=32),a=e>>d-1,this.w=a<<16,a>>=1,e&2147483648&&(a|=4294967295<<32-d);else if(d){if(a=e<<d-1,this.w=a>>15,a<<=1,32<d&&(d=32),e>>=32-d)e|=4294967295<<d&4294967295,4294967295!==e&&(this.i=32768)}else a=e;this.g[g]=a>>16&65535;this.g[g|1]=a&65535;this.b=a>>16;this.j=a>>16|a}break;case 30720:a&56?0<=(e=M(this,f=S(this,a,6)))&&(e^=this.g[a>>6&7],0<=N(this,f,e)&&(this.b=this.j=e,this.i=0)):(this.b=this.j=e=this.g[a&7]^=this.g[a>>6&7],this.i=0);break;case 32256:g=a>>
"";bc(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,Ga(c,function(a){var b=!1;jb(d,!0)||(ib(d,!0),b=d.Ha(a?1:0),ib(d,!1));return b}),!0}return!1};g.Wa=function(){this.fa&&this.fa.focus()};function V(a){a=a&&a.u;null==a&&(a=-1);return a}g.ca=function(a,b){var c=255,d=V(a);-1!==d&&(c=Gb(this.A,d),b&&Tc(a,b));return c};g.Ma=function(a,b){var c=65535,d=V(a);if(-1!==d){var c=this.A,e=d&c.A,f=(d&c.i)>>>c.P,c=e!=c.A?c.I[f].gb(e,d):c.I[f++].Qa(e,d)|c.I[f&c.B].Qa(0,d+1)<<8;b&&Tc(a,b)}return c}; 6&7;if(this.g[g]=this.g[g]-1&65535)this.g[7]=this.g[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.g[7]=U(this.g[7],a);break;case 512:this.j&65535&&(this.g[7]=U(this.g[7],a));break;case 768:this.j&65535||(this.g[7]=U(this.g[7],a));break;case 1024:(this.b&32768)===(this.i&32768)&&(this.g[7]=U(this.g[7],a));break;case 1280:(this.b&32768)!==(this.i&32768)&&(this.g[7]=U(this.g[7],a));break;case 1536:this.j&65535&&(this.b&32768)===(this.i&32768)&&(this.g[7]=U(this.g[7],a));break;case 1792:this.j&
g.Va=function(a,b,c){var d=V(a);if(-1!==d){var e=this.A;e.I[(d&e.i)>>>e.P].Ja(d&e.A,b&255,d);c&&Tc(a,c);L(this.g,!0)}};g.xb=function(a,b,c){var d=V(a);if(-1!==d){var e=this.A,f=d&e.A,k=(d&e.i)>>>e.P;f!=e.A?e.I[k].hb(f,b&65535,d):(e.I[k++].Ja(f,b&255,d),e.I[k&e.B].Ja(0,b>>8&255,d+1));c&&Tc(a,c);L(this.g,!0)}};function P(a){return{u:a,la:!1}}function Uc(a){return[a.u,a.la]}function Vc(a){return{u:a[0],la:a[1]}} 65535&&(this.b&32768)===(this.i&32768)||(this.g[7]=U(this.g[7],a));break;case 32768:this.b&32768||(this.g[7]=U(this.g[7],a));break;case 33280:!(this.w&65536)&&this.j&65535&&(this.g[7]=U(this.g[7],a));break;case 33024:this.b&32768&&(this.g[7]=U(this.g[7],a));break;case 33536:if(this.w&65536||!(this.j&65535))this.g[7]=U(this.g[7],a);break;case 33792:this.i&32768||(this.g[7]=U(this.g[7],a));break;case 34048:this.i&32768&&(this.g[7]=U(this.g[7],a));break;case 34304:this.w&65536||(this.g[7]=U(this.g[7],
function W(a,b,c){var d;c=(c?a.M:a.mb).u;if(void 0!==b){d=b=Wc(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var f=a.H[c].oa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=P(d));break}}if(d=e)return d;c=X(a,b,void 0)}null!=c&&(d=P(c));return d}function Xc(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Yc(a,b.wb=c[2]))}function Tc(a,b){null!=a.u&&(a.u+=b||1)} a));break;case 34560:this.w&65536&&(this.g[7]=U(this.g[7],a));break;case 34816:I(this,24);break;case 35072:I(this,28);break;default:switch(a&65472){case 64:0<=(h=Hc(this,a,0))&&(this.g[7]=h&65535);break;case 192:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e<<8|e>>8,0<=N(this,f,a)&&(this.b=this.j=e&65280,this.i=this.w=0)):(g=a&7,e=this.g[g],this.g[g]=(e<<8|e>>8)&65535,this.b=this.j=e&65280,this.i=this.w=0);break;case 2560:a&56?0<=(f=S(this,a,4))&&0<=N(this,f,0)&&(this.b=this.w=this.i=this.j=0):this.b=this.w=
function Zc(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.ca(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Nc(a,b){a.C=a;a.W=a.Ab=536870912;a.ka=null;a.ma=[];var c=Yc(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in J)0<=xa(c,d)&&(a.W|=J[d],a.b(d+" messages enabled"))}function Sc(a,b){for(var c in J)if(64==J[c]){a.sa[c]=b;break}} this.i=this.j=this.g[a&7]=0;break;case 2624:0<=(e=M(this,f=S(this,a,6)))&&(a=~e,0<=N(this,f,a)&&(this.b=this.j=a,this.w=65536,this.i=0));break;case 2688:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e+1,0<=N(this,f,a)&&(this.b=this.j=a,this.i=a&(a^e))):(g=a&7,e=this.g[g],a=e+1,this.g[g]=a&65535,this.b=this.j=a,this.i=a&(a^e));break;case 2752:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e-1,0<=N(this,f,a)&&(this.b=this.j=a,this.i=(a^e)&e)):(g=a&7,e=this.g[g],a=e-1,this.g[g]=a&65535,this.b=this.j=a,this.i=(a^e)&e);
function $c(a,b){var c;a=a.toUpperCase();null==b?c=xa(Qc,a):(c=xa(Qc,a.substr(b,2)),0>c&&(c=xa(Qc,a.substr(b,1))));return c}function ad(a,b){var c;if(0<=b){var d=a.g;switch(b){case 12:c=d.R;break;case 14:c=Bc(d)&255|d.Ga<<8}}return c} break;case 2816:0<=(e=M(this,f=S(this,a,6)))&&(a=-e,0<=N(this,f,a)&&(this.w=this.b=this.j=a,this.i=a&e));break;case 2880:0<=(e=M(this,f=S(this,a,6)))&&(a=e+(this.w>>16&1),0<=N(this,f,a)&&(this.w=this.b=this.j=a,this.i=a&(a^e)));break;case 2944:0<=(e=M(this,f=S(this,a,6)))&&(a=e-(this.w>>16&1),0<=N(this,f,a)&&(this.w=this.b=this.j=a,this.i=(a^e)&e));break;case 3008:0<=(e=T(this,a))&&(this.b=this.j=e,this.w=this.i=0);break;case 3072:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=(this.w&65536|e)>>1,0<=N(this,
function bd(a,b){b=Wc(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));){e=$c(b,c+1);if(0<=e){d=0;var f=ad(a,e);if(void 0!==f)switch(e){case 12:case 14:d=4}b=b.substr(0,c)+(d?n(f,d):"??")+b.substr(c+1+Qc[e].length)}c++}for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ba(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=W(a,e))?(d=e+' "'+Zc(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c= f,a)&&(this.w=e<<16,this.b=this.j=a,this.i=a^this.w>>1)):(g=a&7,e=this.g[g],a=(this.w&65536|e)>>1,this.g[g]=a&65535,this.w=e<<16,this.b=this.j=a,this.i=a^this.w>>1);break;case 3136:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e<<1|this.w>>16&1,0<=N(this,f,a)&&(this.w=this.b=this.j=a,this.i=a^e)):(g=a&7,e=this.g[g],a=e<<1|this.w>>16&1,this.g[g]=a&65535,this.w=this.b=this.j=a,this.i=a^e);break;case 3200:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e&32768|e>>1,0<=N(this,f,a)&&(this.w=e<<16,this.b=this.j=a,this.i=
0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=W(a,e))?(Tc(d),d=e+' "'+Zc(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}g.message=function(a,b){b&&(a+=" at "+n(P(this.g.R).u,4));if(this.W&1073741824)this.ma.push(a);else if(!this.ka||a!=this.ka)if(this.ka=a,this.W&-2147483648&&(this.Y(),a+=" (cpu halted)"),this.b(a),this.g){var c=this.g;c.M=0;c.w-=c.g;c.g=0;L(c)}}; this.b^this.w>>1)):(g=a&7,e=this.g[g],a=e&32768|e>>1,this.g[g]=a&65535,this.w=e<<16,this.b=this.j=a,this.i=this.b^this.w>>1);break;case 3264:a&56?0<=(e=M(this,f=S(this,a,6)))&&(a=e<<1,0<=N(this,f,a)&&(this.w=this.b=this.j=a,this.i=a^e)):(g=a&7,e=this.g[g],a=e<<1,this.g[g]=a&65535,this.w=this.b=this.j=a,this.i=a^e);break;case 3328:h=this.g[7]+((a&63)<<1)&65535;0<=(d=L(this,h|65536))&&(this.g[7]=this.g[5],this.g[5]=d,this.g[6]=h+2&65535);break;case 3392:a&56?0<=(h=Hc(this,a,0))&&(61440!==(this.I&61440)&&
function Mc(a){var b;if(Dc(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=P();a.$=0;a.b("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.L&&a.L.length&&a.b("instruction history buffer freed"),a.$=0,a.L=[],a.J=[]}g.ya=function(a){if(!cd(this))return!1;this.g.ya(a);return!0}; (h&=65535),this.C=this.I>>12&3,0<=(d=L(this,h))&&(this.C=this.I>>14&3,0<=Ec(this,d)&&(this.b=this.j=d,this.i=0))):(g=a&7,d=6!==g||(this.I>>2&12288)===(this.I&12288)?this.g[g]:this.fa[this.I>>12&3],0<=Ec(this,d)&&(this.b=this.j=d,this.i=0));break;case 3456:0<=(e=Gc(this))&&((this.L&57344||(this.M=22),a&56)?0<=(h=Hc(this,a,0))&&(h&=65535,this.C=this.I>>12&3,0<=(f=Fc(this,h,4))&&(this.C=this.I>>14&3,0<=N(this,f,e)&&(this.b=this.j=e,this.i=0))):(g=a&7,6!==g||(this.I>>2&12288)===(this.I&12288)?this.g[g]=
g.Ha=function(a,b,c){if(!cd(this))return!1;this.K=0;a||Dc(this)&&Ec(this,this.g.R,0);try{var d=this.g.Ha(a);0<d&&(this.K+=d,vc(this.g,d,!0),dc(this.g,d),this.S++)}catch(e){"number"!=typeof e&&(this.K=0,lb(this.g,e.stack||e.message))}!1!==c&&L(this.g);this.ea(b||!1);return 0<this.K};g.Y=function(a){this.g&&this.g.Y(a)};g.ea=function(a){void 0===a&&(a=!0);this.M=P(this.g.R);a&&1!=this.O?dd(this):ed(this)}; e:this.fa[this.I>>12&3]=e,this.b=this.j=e,this.i=0));break;case 3520:0<=(f=S(this,a,4))&&(a=-(this.b>>15&1),0<=N(this,f,a)&&(this.j=a,this.i=0));break;case 35328:a&56?0<=(f=S(this,a,5))&&0<=R(this,f,0)&&(this.b=this.w=this.i=this.j=0):(this.g[a&7]&=65280,this.b=this.w=this.i=this.j=0);break;case 35392:0<=(e=O(this,f=S(this,a,7)))&&(a=~e,0<=R(this,f,a)&&(this.b=this.j=a<<8,this.w=65536,this.i=0));break;case 35456:0<=(e=O(this,f=S(this,a,7)))&&(a=e+1,0<=R(this,f,a)&&(this.b=this.j=a<<8,this.i=(a&(a^
function cd(a){var b;if(b=a.g&&kb(a.g))b=a.g,b.j.U?b=!0:(b.b(b.toString()+" not powered"),b=!1);b&&!jb(a.g)?(a=a.g,a.j.Ba?(a.b(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}g.qa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};g.pa=function(a,b){b&&this.b(a?"suspending":"shutting down");return a?this.save():!0};g.reset=function(a){Mc(this);this.S=this.na=0;this.ka=null;this.K=0;this.M=P(this.g.R);this.j.X=!1;fd(this);a||this.ea()}; e))<<8));break;case 35520:0<=(e=O(this,f=S(this,a,7)))&&(a=e-1,0<=R(this,f,a)&&(this.b=this.j=a<<8,this.i=((a^e)&e)<<8));break;case 35584:0<=(e=O(this,f=S(this,a,7)))&&(a=-e,0<=R(this,f,a)&&(this.w=this.b=this.j=a<<8,this.i=(a&e)<<8));break;case 35648:0<=(e=O(this,f=S(this,a,7)))&&(a=e+(this.w>>16&1),0<=R(this,f,a)&&(this.b=this.j=this.w=a<<8,this.i=(a&(a^e))<<8));break;case 35712:0<=(e=O(this,f=S(this,a,7)))&&(a=e-(this.w>>16&1),0<=R(this,f,a)&&(this.b=this.j=this.w=a<<8,this.i=((a^e)&e)<<8));break;
g.save=function(){var a=new M(this);N(a,0,Uc(this.M));N(a,1,Uc(this.T));N(a,2,[this.B,this.V,this.W]);N(a,3,this.H);return a.data()};g.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Vc(a[b++]),this.T=Vc(a[b++]),this.B=a[b][0],"string"==typeof this.B&&(this.B=[this.B]),this.V=a[b][1],this.W|=a[b][2]);a[3]&&(this.H=a[3]);return!0};g.start=function(a,b){this.O||this.b("running");this.j.X=!0;this.Db=a;this.Eb=b}; case 35776:0<=(e=Ic(this,a))&&(this.b=this.j=e<<8,this.w=this.i=0);break;case 35840:0<=(e=O(this,f=S(this,a,7)))&&(a=((this.w&65536)>>8|e)>>1,0<=R(this,f,a)&&(this.w=e<<16,this.b=this.j=a<<8,this.i=this.b^this.w>>1));break;case 35904:0<=(e=O(this,f=S(this,a,7)))&&(a=e<<1|this.w>>16&1,0<=R(this,f,a)&&(this.w=this.b=this.j=a<<8,this.i=(a^e)<<8));break;case 35968:0<=(e=O(this,f=S(this,a,7)))&&(a=e&128|e>>1,0<=R(this,f,a)&&(this.w=e<<16,this.b=this.j=a<<8,this.i=this.b^this.w>>1));break;case 36032:0<=
g.stop=function(a,b){if(this.j.X){this.j.X=!1;this.K=b-this.Eb;if(!this.O){var c="stopped";if(this.K){var d=a-this.Db,e=0<d?Math.round(1E3*this.K/d):0,c=c+" (";Dc(this)&&(c+=this.S+" opcodes, ",this.na-=this.S,this.S=0);c+=this.K+" cycles, "+d+" ms, "+e+" hz)"}else hb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.b(c)}this.ea(!0);this.Wa();fd(this,this.g.R)}};function Dc(a){return 1<a.w.length||!!a.ja} (e=O(this,f=S(this,a,7)))&&(a=e<<1,0<=R(this,f,a)&&(this.w=this.b=this.j=a<<8,this.i=(a^e)<<8));break;case 36160:a&56?0<=(h=Hc(this,a,0))&&(this.C=this.I>>12&3,0<=(d=L(this,h|65536))&&(this.C=this.I>>14&3,0<=Ec(this,d)&&(this.b=this.j=d,this.i=0))):(g=a&7,d=6!==g||(this.I>>2&12288)===(this.I&12288)?this.g[g]:this.fa[this.I>>12&3],0<=Ec(this,d)&&(this.b=this.j=d,this.i=0));break;case 36224:0<=(e=Gc(this))&&((this.L&57344||(this.M=22),a&56)?0<=(h=Hc(this,a,0))&&(this.C=this.I>>12&3,0<=(f=Fc(this,h|
function Ec(a,b,c){var d=a.g;if(0<c&&(a.ja&&!--a.ja||Ub(a,b,1,a.w)))return!0;0<=c&&a.J.length&&(a.S++,b=Gb(a.A,b),null!=b&&(a.J[b][1]++,b=a.L[a.$],b.u=d.R,b.la=!1,++a.$==a.L.length&&(a.$=0)));return!1}function Lc(a){var b,c;a.w=["bp"];if(void 0!==a.N)for(b=1;b<a.N.length;b++){c=a.N[b];var d=a.A;Vb(d.I[V(c)>>>d.P],!1)}a.N=["br"];if(void 0!==a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.A,Vb(d.I[V(c)>>>d.P],!0);a.F=["bw"];a.ob=0} 65536,4))&&(this.C=this.I>>14&3,0<=N(this,f,e)&&(this.b=this.j=e,this.i=0))):(g=a&7,6!==g||(this.I>>2&12288)===(this.I&12288)?this.g[g]=e:this.fa[this.I>>12&3]=e,this.b=this.j=e,this.i=0));break;default:switch(a&65528){case 128:0<=(d=Gc(this))&&(g=a&7,this.g[7]=this.g[g],this.g[g]=d);break;case 152:this.I&49152||(this.I=this.I&63519|(a&7)<<5,this.W=1);break;case 160:case 168:a&1&&(this.w=0);a&2&&(this.i=0);a&4&&(this.j=1);a&8&&(this.b=0);break;case 176:case 184:a&1&&(this.w=65536);a&2&&(this.i=32768);
g.ta=function(a,b,c){var d=!0;c||gd(this,a,b,!1,!0);if(a!=this.w){var e=V(b);if(-1===e)this.b("invalid address: "+n(b.u,4)),d=!1;else{var f=this.A;f.I[e>>>f.P].ta(e&f.A,a==this.F)}}d&&(a.push(b),c?b.la=!0:(hd(this,a,a.length-1,"set"),Mc(this)));return d};function gd(a,b,c,d,e){var f=!1;c=V(c);for(var k=1;k<b.length;k++){var h=b[k];if(c==V(h)&&(!d||h.la)){f=!0;h.la||e||hd(a,b,k,"cleared");b.splice(k,1);b!=a.w&&(d=a.A,Vb(d.I[c>>>d.P],b==a.F));h.la||Mc(a);break}}return f} a&4&&(this.j=0);a&8&&(this.b=32768);break;default:switch(a){case 0:49152&this.I?I(this,4):(this.fb=3,Ac(this),console.log("HALT at "+this.g[7].toString(8)));break;case 1:g=0;if(0<(a=this.J.length))for(;0<a--;)g+=this.J[a].$a,this.J[a].$a=0;0===g&&0===this.fb&&(this.fb=2,Ac(this));break;case 3:I(this,12);break;case 4:I(this,16);break;case 5:this.I&49152||Cc(this);break;case 2:case 6:f=this.g[6];0<=(h=L(this,f|65536))&&(f=f+2&65535,0<=(d=L(this,f|65536))&&(this.g[6]=f+2&65535,d&=63743,this.I&49152&&
function id(a,b){for(var c=1;c<b.length;c++)hd(a,b,c);return b.length-1}function hd(a,b,c,d){c=b[c];a.b(b[0]+" "+n(c.u,4)+(d?" "+d:c.wb?' "'+c.wb+'"':""))}function fd(a,b){if(void 0!==b)Ub(a,b,1,a.w,!0),a.O=0;else for(var c=1;c<a.w.length;c++){var d=a.w[c];if(d.la){if(!gd(a,a.w,d,!0))break;c=0}}} (d=d&63519|this.I&63712),this.g[7]=h,Dc(this,d),this.G&=-17,2===a&&(this.G|=this.I&16)));break;default:I(this,8)}}}}}}this.G&&(this.G&2?I(this,168):this.G&4?I(this,4):this.G&16&&I(this,12),this.G=0)}while(0<this.R)}return this.A.Wa?this.U-this.R:void 0===this.A.Wa?0:-1};Qa(function(){for(var a=y(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Bc(d);mb(d,c)}});
function Ub(a,b,c,d,e){var f=!1;if(!a.ob++)for(var k=1;!f&&k<d.length;k++){var h=d[k];if(!e||h.la)for(var l=V(h),m=0;m<c;m++)if(b+m==l){var p,f=!0;h.la&&(gd(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,q=0;q<p.length;q++)if(!jd(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var w=q+1;w<p.length&&p[w].indexOf("else");w++)q++;if(w==p.length){f=!0;break}}a.g.j.X||(f=!0)}if(f){e||hd(a,d,k,"hit");break}}}a.ob--;return f} function Lc(a){t.call(this,"ROM",a,Lc);this.i=null;this.C=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.D=a.file;this.J=fa(this.D);if(this.D){a=this.D;var b=ja(this.J);"json"!=b&&"hex"!=b&&(a=la()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;xa(a,null,!0,function(a,b,f){Mc(c,a,b,f)})}}v(Lc);Lc.prototype.za=function(a,b,c,d){this.H=b;this.b=c;this.F=d;Nc(this)};
function kd(a,b,c,d){for(var e=P(b.u),f=a.ca(b,1),k=a.jb[f],h="",l=Pc[k[0]],m=k.length-1,p=0,q,w=1;w<=m;w++){var B="";q=k[w];if(void 0!==q){var A=q&240;if(A){var Y=q&15;Y?p=Y:q|=p;q&61440||(q|=1==w?8192:4096);if(A&32)a:{var B=a,A=q,Y=b,y=" ";switch(A&15){case 1:y=n(B.ca(Y,1),2);break;case 2:y=n(B.ca(Y,1)<<24>>24,4);break;case 3:y=n(B.Ma(Y,2),4);break;default:B="imm("+ca(A)+")";break a}A&64?y="["+y+"]":A&16||(y="0x"+y);B=y}else A&16?B=Qc[(q&3840)>>8]:A&128&&(B=(f>>3&7).toString());if(!B||!B.length){h= Lc.prototype.sa=function(){if(this.qa){if(this.F){var a=this.F,b=this.id,c=this.C,d=this.j,e=this.qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=f,k=[k>>>0,h],p=ta(n,k,a.pa);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.G.push({Lb:b,B:c,Gb:d,qa:e,hb:f})}delete this.qa}return!0};Lc.prototype.ra=function(){return!0};
"INVALID";break}0<h.length&&(h+=",");h+=B||"???"}}}f="";k=n(e.u,4)+" ";if(-1!==e.u&&-1!==b.u){do if(f+=n(a.ca(e,1),2),null==e.u)break;while(e.u!=b.u)}k+=na(f,10);k=k+(q&32768?"*":" ")+na(l,7);h&&(k+=" "+h);c&&(k=na(k,40)+";"+c,k=a.g.j.Aa?k+("cycles="+sc(a.g).toString()+" cs="+n(a.g.Na)):k+(null!=d?"="+d.toString():""));return k}var ld={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; function Mc(a,b,c,d){if(d)a.ea("Unable to load system ROM (error "+d+": "+b+")");else{ab(a.pb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.i=f;else if(h)for(a.i=Array(4*h.length),d=c=0;c<h.length;c++)a.i[d++]=h[c]&255,a.i[d++]=h[c]>>8&255,a.i[d++]=h[c]>>16&255,a.i[d++]=h[c]>>24&255;else a.i=e;a.qa=e.symbols;if(!a.i.length){r("Empty ROM: "+b);return}if(1==a.i.length){r(a.i[0]);return}}catch(g){a.ea("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
function md(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; " ").replace(/ +$/,"").split(" "),a.i=Array(b.length),e=0;e<b.length;e++)a.i[e]=da(b[e],16);Nc(a)}}
function Nc(a){if(!qb(a))if(!a.D)A(a);else if(a.i&&a.H){a.j||(a.j=a.i.length);if(a.i.length!=a.j)rb(a,"ROM size (0x"+q(a.i.length)+") does not match specified size ("+("0x"+q(a.j))+")");else{var b;b=a.C;if(xb(a.H,b,a.j,a.G?1:Rb)){var c;for(c=0;c<a.i.length;c++){var d=a.H,e=b+c;d.P[(e&d.j)>>>d.aa].La(e&d.i,a.i[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var f=a,d=b[c],e=f.H,h=f.j,g=[],k=f.C>>>e.aa;0<h&&k<e.P.length;)g.push(e.P[k++]),
h-=e.la;e=f.H;f=f.j;h=0;for(d>>>=e.aa;0<f&&d<e.P.length;){k=g[h++];if(!k)break;e.P[d++]=k;f-=e.la}}delete a.i}}A(a)}}Qa(function(){for(var a=y(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Lc(d);mb(d,c)}});function Oc(a){t.call(this,"RAM",a,Oc);this.w=a.addr;this.j=a.size;this.i=!1}v(Oc);m=Oc.prototype;m.za=function(a,b,c,d){this.H=b;this.b=c;this.F=d;A(this)};m.sa=function(a,b){b||this.reset();return!0};m.ra=function(a){return a?this.save():!0};
m.reset=function(){!this.i&&this.j&&xb(this.H,this.w,this.j,1)&&(this.i=!0);this.i||r("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=y(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Oc(d);mb(d,c)}});function Pc(a){t.call(this,"Keyboard",a,Pc,65536);A(this)}v(Pc);Pc.prototype.ha=function(){return!1};Pc.prototype.za=function(a,b,c,d){this.D=a;this.b=c;this.F=d;this.ja=null};
Qa(function(){for(var a=y(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Pc(d);mb(d,c)}});
function Qc(a){t.call(this,"Debugger",a,Qc);this.R=this.ga=this.L=0;this.N=V();this.na=V();this.w=-1;this.j=[];this.T=!1;this.S=V();this.G=[];this.V={};this.i=this.O=this.C=[];Rc(this);this.ca=0;Sc(this);this.ja=[];Tc(this,a.messages);this.ka=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return gc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return gc(b,a)})}v(Qc);
var Uc={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Vc=["NONE"],Wc=["PC","PSW"],Xc=[];m=Qc.prototype;
m.za=function(a,b,c,d){this.H=b;this.b=c;this.D=a;(a=dc(a,"messages"))&&Tc(this,a);this.oa=Xc;Yc(this,function(a){a:{var b=d.H.P,c=a[0],g=a=0,k=b.length;if(c){a=W(X(d,c));if(-1===a){d.u("invalid address: "+c);break a}g=a>>>d.H.aa;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.u("..."):(c=n.type,l=zb[c],n&&d.u(q(n.id)+" %"+q(g<<d.H.aa)+" %%"+q(n.B)+" "+ea(n.Ua)+" "+
ea(n.size)+" "+l),c!=Qb&&(c=-1),l=0);a+=d.H.la;g++}}});A(this)};
m.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.$=this.K[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.w<d.j.length-1&&(b=d.j[++d.w]):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.K[b]=c,Ka(c,function(){if(d.$){var a=d.$.value;d.$.value=
"";gc(d,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=c,Ka(c,function(a){var b=!1;pb(d,!0)||(ob(d,!0),b=d.Ka(a?1:0),ob(d,!1));return b}),!0}return!1};m.Ta=function(){this.$&&this.$.focus()};function W(a){a=a&&a.B;null==a&&(a=-1);return a}m.ua=function(a,b){var c=255,d=W(a);-1!==d&&(c=Ab(this.H,d),b&&Zc(a,b));return c};m.Va=function(a,b){var c=65535,d=W(a);if(-1!==d){var c=this.H,e=d&c.i,f=(d&c.j)>>>c.aa,c=e!=c.i?c.P[f].xb(e,d):c.P[f++].Sa(e,d)|c.P[f&c.G].Sa(0,d+1)<<8;b&&Zc(a,b)}return c};
m.gb=function(a,b,c){var d=W(a);if(-1!==d){var e=this.H;e.P[(d&e.j)>>>e.aa].La(d&e.i,b&255,d);c&&Zc(a,c);F(this.b,!0)}};m.Bb=function(a,b,c){var d=W(a);if(-1!==d){var e=this.H,f=d&e.i,h=(d&e.j)>>>e.aa;f!=e.i?e.P[h].Ab(f,b&65535,d):(e.P[h++].La(f,b&255,d),e.P[h&e.G].La(0,b>>8&255,d+1));c&&Zc(a,c);F(this.b,!0)}};function V(a){return{B:a,ma:!1}}function $c(a){return[a.B,a.ma]}function ad(a){return{B:a[0],ma:a[1]}}
function X(a,b,c){var d;c=(c?a.N:a.na).B;if(void 0!==b){d=b=bd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=V(d));break}}if(d=e)return d;c=cd(a,b,void 0)}null!=c&&(d=V(c));return d}function dd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Cb=ed(a,b.yb=c[2]))}function Zc(a,b){null!=a.B&&(a.B+=b||1)}
function fd(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.ua(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Tc(a,b){a.F=a;a.Y=a.Db=536870912;a.da=null;a.fa=[];var c=ed(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in C)0<=wa(c,d)&&(a.Y|=C[d],a.u(d+" messages enabled"))}function Yc(a,b){for(var c in C)if(64==C[c]){a.ja[c]=b;break}}
function gd(a,b){var c;a=a.toUpperCase();null==b?c=wa(Wc,a):(c=wa(Wc,a.substr(b,2)),0>c&&(c=wa(Wc,a.substr(b,1))));return c}function hd(a,b){var c;if(0<=b){var d=a.b;switch(b){case 12:c=d.g[7];break;case 14:c=d.I&-14|0|(d.ta&255?0:4)|(d.ta&256?1:0)}}return c}
function id(a,b){b=bd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));){e=gd(b,c+1);if(0<=e){d=0;var f=hd(a,e);if(void 0!==f)switch(e){case 12:case 14:d=4}b=b.substr(0,c)+(d?q(f,d):"??")+b.substr(c+1+Wc[e].length)}c++}for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=da(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=X(a,e))?(d=e+' "'+fd(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=
0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=X(a,e))?(Zc(d),d=e+' "'+fd(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+q(V(this.b.g[7]).B,4));if(this.Y&1073741824)this.fa.push(a);else if(!this.da||a!=this.da)if(this.da=a,this.Y&-2147483648&&(this.ba(),a+=" (cpu halted)"),this.u(a),this.b){var c=this.b;Ac(c);c.da=0;F(c)}};
function Sc(a){var b;if(Jc(a)){if(!a.M||!a.M.length){a.M=Array(1E3);for(b=0;b<a.M.length;b++)a.M[b]=V();a.W=0;a.u("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.M&&a.M.length&&a.u("instruction history buffer freed"),a.W=0,a.M=[],a.J=[]}m.Ca=function(a){if(!jd(this))return!1;this.b.Ca(a);return!0};
m.Ka=function(a,b,c){if(!jd(this))return!1;this.L=0;a||Jc(this)&&Kc(this,this.b.g[7],0);try{var d=this.b.Ka(a);0<d&&(this.L+=d,mc(this.b,d,!0),ic(this.b,d),this.R++)}catch(e){"number"!=typeof e&&(this.L=0,rb(this.b,e.stack||e.message))}!1!==c&&F(this.b);this.ia(b||!1);return 0<this.L};m.ba=function(a){this.b&&this.b.ba(a)};m.ia=function(a){void 0===a&&(a=!0);this.N=V(this.b.g[7]);a&&1!=this.U?kd(this):ld(this)};
function jd(a){var b;if(b=a.b&&qb(a.b))b=a.b,b.A.X?b=!0:(b.u(b.toString()+" not powered"),b=!1);b&&!pb(a.b)?(a=a.b,a.A.Ga?(a.u(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.sa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.ra=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Sc(this);this.R=this.ga=0;this.da=null;this.L=0;this.N=V(this.b.g[7]);this.A.Z=!1;md(this);a||this.ia()};
m.save=function(){var a=new G(this);H(a,0,$c(this.N));H(a,1,$c(this.S));H(a,2,[this.j,this.T,this.Y]);H(a,3,this.G);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.N=ad(a[b++]),this.S=ad(a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.T=a[b][1],this.Y|=a[b][2]);a[3]&&(this.G=a[3]);return!0};m.start=function(a,b){this.U||this.u("running");this.A.Z=!0;this.Ma=a;this.Na=b};
m.stop=function(a,b){if(this.A.Z){this.A.Z=!1;this.L=b-this.Na;if(!this.U){var c="stopped";if(this.L){var d=a-this.Ma,e=0<d?Math.round(1E3*this.L/d):0,c=c+" (";Jc(this)&&(c+=this.R+" opcodes, ",this.ga-=this.R,this.R=0);c+=this.L+" cycles, "+d+" ms, "+e+" hz)"}else nb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.u(c)}this.ia(!0);this.Ta();md(this,this.b.g[7])}};function Jc(a){return 1<a.i.length||!!a.ca}
function Kc(a,b,c){var d=a.b;if(0<c&&(a.ca&&!--a.ca||Zb(a,b,1,a.i)))return!0;0<=c&&a.J.length&&(a.R++,b=Ab(a.H,b),null!=b&&(a.J[b][1]++,b=a.M[a.W],b.B=d.g[7],b.ma=!1,++a.W==a.M.length&&(a.W=0)));return!1}function Rc(a){var b,c;a.i=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.H;$b(d.P[W(c)>>>d.aa],!1)}a.O=["br"];if(void 0!==a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=a.H,$b(d.P[W(c)>>>d.aa],!0);a.C=["bw"];a.wa=0}
m.xa=function(a,b,c){var d=!0;c||nd(this,a,b,!1,!0);if(a!=this.i){var e=W(b);if(-1===e)this.u("invalid address: "+q(b.B,4)),d=!1;else{var f=this.H;f.P[e>>>f.aa].xa(e&f.i,a==this.C)}}d&&(a.push(b),c?b.ma=!0:(od(this,a,a.length-1,"set"),Sc(this)));return d};function nd(a,b,c,d,e){var f=!1;c=W(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==W(g)&&(!d||g.ma)){f=!0;g.ma||e||od(a,b,h,"cleared");b.splice(h,1);b!=a.i&&(d=a.H,$b(d.P[c>>>d.aa],b==a.C));g.ma||Sc(a);break}}return f}
function pd(a,b){for(var c=1;c<b.length;c++)od(a,b,c);return b.length-1}function od(a,b,c,d){c=b[c];a.u(b[0]+" "+q(c.B,4)+(d?" "+d:c.yb?' "'+c.yb+'"':""))}function md(a,b){if(void 0!==b)Zb(a,b,1,a.i,!0),a.U=0;else for(var c=1;c<a.i.length;c++){var d=a.i[c];if(d.ma){if(!nd(a,a.i,d,!0))break;c=0}}}
function Zb(a,b,c,d,e){var f=!1;if(!a.wa++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.ma)for(var k=W(g),l=0;l<c;l++)if(b+l==k){var n,f=!0;g.ma&&(nd(a,d,g,!0),e=!0);if(n=g.Cb){for(var f=!1,p=0;p<n.length;p++)if(!qd(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var z=p+1;z<n.length&&n[z].indexOf("else");z++)p++;if(z==n.length){f=!0;break}}a.b.A.Z||(f=!0)}if(f){e||od(a,d,h,"hit");break}}}a.wa--;return f}
function rd(a,b,c,d){for(var e=V(b.B),f=a.ua(b,1),h=a.oa[f]||[0],g="",k=Vc[h[0]],l=h.length-1,n=0,p,z=1;z<=l;z++){var J="";p=h[z];if(void 0!==p){var E=p&240;if(E){var ga=p&15;ga?n=ga:p|=n;p&61440||(p|=1==z?8192:4096);if(E&32)a:{var J=a,E=p,ga=b,B=" ";switch(E&15){case 1:B=q(J.ua(ga,1),2);break;case 2:B=q(J.ua(ga,1)<<24>>24,4);break;case 3:B=q(J.Va(ga,2),4);break;default:J="imm("+ea(E)+")";break a}E&64?B="["+B+"]":E&16||(B="0x"+B);J=B}else E&16?J=Wc[(p&3840)>>8]:E&128&&(J=(f>>3&7).toString());if(!J||
!J.length){g="INVALID";break}0<g.length&&(g+=",");g+=J||"???"}}}f="";h=q(e.B,4)+" ";if(-1!==e.B&&-1!==b.B){do if(f+=q(a.ua(e,1),2),null==e.B)break;while(e.B!=b.B)}h+=oa(f,10);h=h+(p&32768?"*":" ")+oa(k,7);g&&(h+=" "+g);c&&(h=oa(h,40)+";"+c,h=a.b.A.Fa?h+("cycles="+jc(a.b).toString()+" cs="+q(a.b.Pa)):h+(null!=d?"="+d.toString():""));return h}var sd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function td(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function X(a,b,c){var d;if(b){b=Wc(a,b);for(var e=0,f=!1,k=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],q=p.length,p=oa(p);if(!p){f=!0;break}p=Ld(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==m.length)break;var p=m[e++],w=p.length;l.length&&ld[p]<ld[l[l.length-1]]&&md(h,l,1);l.push(p);b=b.substr(q+w)}md(h,l)&&1==h.length||(f=!0);f?c&&a.b("error parsing '"+k+"' at character "+(k.length-b.length)):(d=h.pop(),c&&Md(a,null, function cd(a,b,c){var d;if(b){b=bd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var n=l[e++],p=n.length,n=pa(n);if(!n){f=!0;break}n=ud(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],z=n.length;k.length&&sd[n]<sd[k[k.length-1]]&&td(g,k,1);k.push(n);b=b.substr(p+z)}td(g,k)&&1==g.length||(f=!0);f?c&&a.u("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&vd(a,null,
d))}return d}function Wc(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=X(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=W(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.Ma(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.S-a.na}if(null==e)break;c=c.replace(d[0],e.toString())}return c} d))}return d}function bd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=cd(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=X(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Va(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.R-a.ga}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function Ld(a,b,c,d){var e;void 0!==b?(e=$c(b),0<=e?e=ad(a,e):(e=a.Z[b],void 0===e&&(e=ba(b))),void 0!==e||d||a.b("invalid "+(c?c:"value")+": "+b)):d||a.b("missing "+(c||"value"));return e} function ud(a,b,c,d){var e;void 0!==b?(e=gd(b),0<=e?e=hd(a,e):(e=a.V[b],void 0===e&&(e=da(b))),void 0!==e||d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return e}
function Md(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,k="";if(!f||4<f)f=4;for(var h=0;h<f;h++){k&&(k=","+k);var l=d&255,m=8,p="";void 0===m?m=32:32<m&&(m=32);if(null==l||isNaN(l))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(l&1?"1":"0")+p,l>>=1;k=p+"b"+k;d>>=8}d="0x"+n(c)+" "+c+". ("+k+")"}a.b((null!=b?b+": ":"")+d);return e}function Nd(a,b){if(b)return Md(a,b,a.Z[b]);var c=0;for(b in a.Z)Md(a,b,a.Z[b]),c++;return 0<c}Kc.prototype.lb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function vd(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,n="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.u((null!=b?b+": ":"")+d);return e}function Ud(a,b){if(b)return vd(a,b,a.V[b]);var c=0;for(b in a.V)vd(a,b,a.V[b]),c++;return 0<c}Qc.prototype.pa=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Od(a,b,c){var d=[],e=V(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],k=f.u>>>0,h=f.Hb;if(e>=k&&e<k+h){e=pa(f.kb,[e-k],a.lb);0<=e?Pd(a,b,e,d):c&&(e=~e,Pd(a,b,e-1,d),Pd(a,b,e,d));break}}return d}function Pd(a,b,c,d){var e={},f=a.H[b].kb,k=0,h=null;0<=c&&c<f.length&&(k=f[c][0],h=f[c][1]);h&&(e=a.H[b].oa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(k);d.push(e.a);d.push(e.c)} function Vd(a,b,c){var d=[],e=W(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.B>>>0,g=f.Gb;if(e>=h&&e<h+g){e=ta(f.hb,[e-h],a.pa);0<=e?Wd(a,b,e,d):c&&(e=~e,Wd(a,b,e-1,d),Wd(a,b,e,d));break}}return d}function Wd(a,b,c,d){var e={},f=a.G[b].hb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Qd(a,b){if("?"==b)a.b("frequency commands:"),a.b("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[c]=[c,0];a.b("frequency data cleared");d++}else if(void 0!==b)a.b("unknown frequency command: "+b),d++;else{var e=a.J.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],k=e[c][1];k&&(a.b((Pc[a.jb[f][0]]+" ").substr(0,5)+" ("+("0x"+n(f,2))+"): "+k+" times"),d++)}}d||a.b("no frequency data available")}} function Xd(a,b){if("?"==b)a.u("frequency commands:"),a.u("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[c]=[c,0];a.u("frequency data cleared");d++}else if(void 0!==b)a.u("unknown frequency command: "+b),d++;else{var e=a.J.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],h=e[c][1];h&&(a.u((Vc[a.oa[f][0]]+" ").substr(0,5)+" ("+("0x"+q(f,2))+"): "+h+" times"),d++)}}d||a.u("no frequency data available")}}
function Rd(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Nd(a)||a.b("no variables"),!0;if(!c[2])return Nd(a,c[1]);if(!c[3])return delete a.Z[c[1]],!0;var d=X(a,c[3]);return void 0!==d?(a.Z[c[1]]=d,!0):!1}a.b("invalid assignment:"+b);return!1} function Yd(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ud(a)||a.u("no variables"),!0;if(!c[2])return Ud(a,c[1]);if(!c[3])return delete a.V[c[1]],!0;var d=cd(a,c[3]);return void 0!==d?(a.V[c[1]]=d,!0):!1}a.u("invalid assignment:"+b);return!1}
function Sd(a,b,c){var d=null;if(b=W(a,b,!0)){var e=Od(a,b,!0);if(e.length){var f,k;e[0]&&(k="",(f=b.u-e[1])&&(k=" + "+ca(f)),f=e[0]+" ("+n(e[1],4)+")"+k,c&&a.b(f),d=f);4<e.length&&e[4]&&(k="",(f=e[5]-b.u)&&(k=" - "+ca(f)),f=e[4]+" ("+n(e[5],4)+")"+k,c&&a.b(f),d||(d=f))}else c&&a.b("no symbols")}return d} function Zd(a,b,c){var d=null;if(b=X(a,b,!0)){var e=Vd(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.B-e[1])&&(h=" + "+ea(f)),f=e[0]+" ("+q(e[1],4)+")"+h,c&&a.u(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.B)&&(h=" - "+ea(f)),f=e[4]+" ("+q(e[5],4)+")"+h,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function dd(a,b){var c;if(b&&"?"==b[1])a.b("register commands:"),a.b("\tr\tdump registers"),a.b("\trx [#]\tset flag or register x to [#]");else{var d=a.g;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,k=e.indexOf("=");if(0<k)f=e.substr(k+1),e=e.substr(0,k);else if(2<b.length)f=b[2];else{a.b("missing value for "+b[1]);return}var k=!1,h=X(a,f);if(void 0!==h)switch(k=!0,e.toUpperCase()){case "A":d.Ga=h&255;break;case "B":d.Ra=h&255;break;case "BC":d.Ra=h>>8&255;case "C":d.$a=h&255;break;case "D":d.Sa= function kd(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.u("missing value for "+b[1]);return}var h=!1,g=cd(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "PC":d.g[7]=g;a.N=V(d.g[7]);break;case "CF":d.ta=g?d.ta|256:d.ta&255;break;case "ZF":d.ta=g?d.ta&
h&255;break;case "DE":d.Sa=h>>8&255;case "E":d.ab=h&255;break;case "H":d.Ta=h&255;break;case "HL":d.Ta=h>>8&255;case "L":d.bb=h&255;break;case "SP":d.Ua=h&65535;break;case "PC":d.R=h&65535;a.M=P(d.R);break;case "PS":Ac(d,h);break;case "PSW":Ac(d,h&255|d.ha&-256);d.Ga=h>>8;break;case "CF":d.da=h?d.da|256:d.da&255;break;case "ZF":d.da=h?d.da&-256:d.da|255;break;case "SF":h?d.ia&128||(d.ia^=192):d.ia&128&&(d.ia^=192);break;case "IF":d.ha=h?d.ha|512:d.ha&-513;break;default:a.b("unknown register: "+e); -256:d.ta|255;break;case "SF":break;default:a.u("unknown register: "+e);return}if(!h){a.u("invalid value: "+f);return}F(d);a.u("updated registers:")}a.u("no regs");c&&(a.N=V(d.g[7]),ld(a,q(a.N.B,4)))}}function $d(a,b){b=pa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.u(id(a,c[2])):cd(a,b,!0)}function ae(a,b,c){var d="t"!=b;c=ud(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ja(c,function(){return ob(a,!0)&&a.Ka(e,d,!1)},function(){F(a.b);ob(a,!1)})}
return}if(!k){a.b("invalid value: "+f);return}L(d);a.b("updated registers:")}a.b("no regs");c&&(a.M=P(d.R),ed(a,n(a.M.u,4)))}}function Td(a,b){b=oa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.b(bd(a,c[2])):X(a,b,!0)}function Ud(a,b,c){var d="t"!=b;c=Ld(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Fa(c,function(){return ib(a,!0)&&a.Ha(e,d,!1)},function(){L(a.g);ib(a,!1)})} function ld(a,b,c,d){if(b=X(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=X(a,c,!0);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=pb(a,!1)||a.U?a.L:null;var h=null!=f?"cycles":null,g=Vd(a,b),k=b.B;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.u(l)}g[3]&&(h=g[3],f=null);f=rd(a,b,h,f);a.u(f);a.N=b;e-=b.B-k;c++}}}
function ed(a,b,c,d){if(b=W(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=W(a,c,!0);if(!d||d.u<b.u)return;e=d.u-b.u;if(256<e){a.b("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.O?a.K:null;var k=null!=f?"cycles":null,h=Od(a,b),l=b.u;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.b(m)}h[3]&&(k=h[3],f=null);f=kd(a,b,k,f);a.b(f);a.M=b;e-=b.u-l;c++}}} function ed(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.T?b="end":b=a.j[a.w+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(pa(b.substring(c,f))),c=f+1}}return a}
function Yc(a,b,c,d){if(c)if(b){0>a.D&&a.B.length&&(a.D=0);if(0>a.D||b!=a.B[a.D])a.B.splice(0,0,b),a.D=0;a.D--}else a.V?b="end":b=a.B[a.D+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var k=b.charAt(f);if('"'==k||"'"==k)e?k==e&&(e=null):e=k;else if(k==d&&!e||!k)a.push(oa(b.substring(c,f))),c=f+1}}return a} function qd(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(">> "+b):(a.T&&(a.u("ended assemble at "+q(a.S.B,4)),a.N=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.da=null;if(qb(a)&&0<b.length){a.T&&(b="a "+q(a.S.B,4)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=X(a,f[1],!0);if(n)if(a.S=
function jd(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.b(">> "+b):(a.V&&(a.b("ended assemble at "+n(a.T.u,4)),a.M=a.T,a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(kb(a)&&0<b.length){a.V&&(b="a "+n(a.T.u,4)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var k=f[0],h=k.charAt(0),l=1;l<k.length;l++){var m=k.charAt(l);if("?"==h||"r"==h||"a">m||"z"<m){f[0]=k.substr(l);f.unshift(k.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var p=W(a,f[1],!0);if(p)if(a.T= n,void 0===f[2])a.u("begin assemble at "+q(n.B,4)),a.T=!0,F(a.b);else{var p;a.u("not supported yet");p=[];if(p.length){for(var z=0;z<p.length;z++)a.gb(n,p[z],1);a.u(rd(a,a.S))}}break;case "b":a:{var J=f[0],E=f[1],ga=b;if("?"==E)a.u("breakpoint commands:"),a.u("\tbp [a]\tset exec breakpoint at addr [a]"),a.u("\tbr [a]\tset read breakpoint at addr [a]"),a.u("\tbw [a]\tset write breakpoint at addr [a]"),a.u("\tbc [a]\tclear breakpoint at addr [a]"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [n]\tbreak after [n] instruction(s)");
p,void 0===f[2])a.b("begin assemble at "+n(p.u,4)),a.V=!0,L(a.g);else{var q;a.b("not supported yet");q=[];if(q.length){for(var w=0;w<q.length;w++)a.Va(p,q[w],1);a.b(kd(a,a.T))}}break;case "b":a:{var B=f[0],A=f[1],Y=b;if("?"==A)a.b("breakpoint commands:"),a.b("\tbp [a]\tset exec breakpoint at addr [a]"),a.b("\tbr [a]\tset read breakpoint at addr [a]"),a.b("\tbw [a]\tset write breakpoint at addr [a]"),a.b("\tbc [a]\tclear breakpoint at addr [a]"),a.b("\tbl\tlist all breakpoints"),a.b("\tbn [n]\tbreak after [n] instruction(s)"); else{var B=J.charAt(1);if("l"==B){var Aa=0,Aa=Aa+pd(a,a.i),Aa=Aa+pd(a,a.O);(Aa+=pd(a,a.C))||a.u("no breakpoints")}else if("n"==B)a.ca=ud(a,E),a.u("break after "+a.ca+" instruction(s)");else if(void 0===E)a.u("missing breakpoint address");else{var P=V();if("*"!=E&&(P=X(a,E,!0),!P))break a;"c"==B?null==P.B?(Rc(a),a.u("all breakpoints cleared")):nd(a,a.i,P)||nd(a,a.O,P)||nd(a,a.C,P)||a.u("breakpoint missing: "+q(P.B,4)):null!=P.B&&(dd(a,P,ga),"p"==B?a.xa(a.i,P):"r"==B?a.xa(a.O,P):"w"==B?a.xa(a.C,P):
else{var y=B.charAt(1);if("l"==y){var sa=0,sa=sa+id(a,a.w),sa=sa+id(a,a.N);(sa+=id(a,a.F))||a.b("no breakpoints")}else if("n"==y)a.ja=Ld(a,A),a.b("break after "+a.ja+" instruction(s)");else if(void 0===A)a.b("missing breakpoint address");else{var H=P();if("*"!=A&&(H=W(a,A,!0),!H))break a;"c"==y?null==H.u?(Lc(a),a.b("all breakpoints cleared")):gd(a,a.w,H)||gd(a,a.N,H)||gd(a,a.F,H)||a.b("breakpoint missing: "+n(H.u,4)):null!=H.u&&(Xc(a,H,Y),"p"==y?a.ta(a.w,H):"r"==y?a.ta(a.N,H):"w"==y?a.ta(a.F,H):a.b("unknown breakpoint command: "+ a.u("unknown breakpoint command: "+B))}}}break;case "c":a.ya&&(a.ya.value="");break;case "d":a:{var Ba,Ca=f[0],Y=f[1],qa=f[2],ue=f[3];if("?"==Y){var Z="";for(Ba in C)a.ja[Ba]&&(Z&&(Z+=","),Z+=Ba);Z+=",state,symbols";a.u("dump memory commands:");a.u("\tdb [a] [#] dump # bytes at address a");a.u("\tdw [a] [#] dump # words at address a");a.u("\tdd [a] [#] dump # dwords at address a");a.u("\tdh [#] [#] dump # instructions from history");Z.length&&a.u("dump extension commands:\n\t"+Z)}else if("state"==
y))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ta,ua=f[0],Q=f[1],fa=f[2],ne=f[3];if("?"==Q){var R="";for(ta in J)a.sa[ta]&&(R&&(R+=","),R+=ta);R+=",state,symbols";a.b("dump memory commands:");a.b("\tdb [a] [#] dump # bytes at address a");a.b("\tdw [a] [#] dump # words at address a");a.b("\tdd [a] [#] dump # dwords at address a");a.b("\tdh [#] [#] dump # instructions from history");R.length&&a.b("dump extension commands:\n\t"+R)}else if("state"==Q){var nd=Vd(a.i,!0);"console"== Y){var wd=be(a.D,!0);"console"==qa?console.log(wd):(a.ya&&(a.ya.value=""),a.u(wd))}else if("symbols"==Y)for(var oc=0;oc<a.G.length;oc++){var pc=a.G[oc],Da;for(Da in pc.qa)if("."!=Da.charAt(0)){var xd=pc.qa[Da].o;if(void 0!==xd){var yd=pc.qa[Da].l;yd&&(Da=yd);a.u(q(xd,4)+" "+Da)}}}else{if("d"==Ca){for(Ba in C)if(f[1]==Ba){var zd=a.ja[Ba];zd?(f.shift(),f.shift(),zd(f)):a.u("no dump registered for "+Y);break a}Y||(Ca=a.Oa||"db")}else a.Oa=Ca;if("dh"==Ca){var Ad=Y,Bd=qa,Cd="",Dd=0,K=a.W,aa=a.M;if(aa.length){var Q=
fa?console.log(nd):(a.ua&&(a.ua.value=""),a.b(nd))}else if("symbols"==Q)for(var ec=0;ec<a.H.length;ec++){var fc=a.H[ec],va;for(va in fc.oa)if("."!=va.charAt(0)){var od=fc.oa[va].o;if(void 0!==od){var pd=fc.oa[va].l;pd&&(va=pd);a.b(n(od,4)+" "+va)}}}else{if("d"==ua){for(ta in J)if(f[1]==ta){var qd=a.sa[ta];qd?(f.shift(),f.shift(),qd(f)):a.b("no dump registered for "+Q);break a}Q||(ua=a.Gb||"db")}else a.Gb=ua;if("dh"==ua){var rd=Q,sd=fa,td="",ud=0,C=a.$,S=a.L;if(S.length){var I=+rd||a.qb,wa=+sd||10; +Ad||a.Da,Ea=+Bd||10;isNaN(Q)?Q=Ea:Cd="more ";Q>aa.length&&(a.u("note: only "+aa.length+" available"),Q=aa.length);K-=Q;0>K&&(null==aa[aa.length-1].B?(Q=K+Q,K=0):K+=aa.length);var qc=[];"call"==Bd&&(Ea=1E5,qc=["CALL"]);for(void 0!==Ad&&a.u(Q+" instructions earlier:");0<Ea&&K!=a.W;){var Ed=aa[K++];if(null==Ed.B)break;var db=V(Ed.B),ve=Q--,Fd=rd(a,db,"history",ve);(!qc.length||0<=Fd.indexOf(qc[0]))&&a.u(Fd);db.Ya&&(K+=db.Ya,Ea-=db.Ya,Q-=db.Ya);K>=aa.length&&(K=0);a.Da=Q;Dd++;Ea--}}Dd||(a.u("no "+Cd+
isNaN(I)?I=wa:td="more ";I>S.length&&(a.b("note: only "+S.length+" available"),I=S.length);C-=I;0>C&&(null==S[S.length-1].u?(I=C+I,C=0):C+=S.length);var gc=[];"call"==sd&&(wa=1E5,gc=["CALL"]);for(void 0!==rd&&a.b(I+" instructions earlier:");0<wa&&C!=a.$;){var vd=S[C++];if(null==vd.u)break;var Sa=P(vd.u),oe=I--,wd=kd(a,Sa,"history",oe);(!gc.length||0<=wd.indexOf(gc[0]))&&a.b(wd);Sa.cb&&(C+=Sa.cb,wa-=Sa.cb,I-=Sa.cb);C>=S.length&&(C=0);a.qb=I;ud++;wa--}}ud||(a.b("no "+td+"history available"),a.qb=void 0)}else{var sb= "history available"),a.Da=void 0)}else{var Cb=X(a,Y);if(Cb){var Db=0;qa&&("l"==qa.charAt(0)&&(qa=qa.substr(1)||ue),Db=ud(a,qa)>>>0,65536<Db&&(Db=65536));for(var ra="",Eb="dd"==Ca?4:"dw"==Ca?2:1,Fb=Eb*Db||128,we=Fb+15>>4||1;we--&&0<Fb;){var Gb=0,rc=0,eb,fb="",sc="",Y=q(Cb.B,4);for(eb=16;0<eb&&0<Fb;eb--){var Hb=a.ua(Cb,1),Gb=Gb|Hb<<(rc++<<3);rc==Eb&&(fb+=q(Gb,2*Eb),fb+=1==Eb?9==eb?"-":" ":" ",Gb=rc=0);sc+=32<=Hb&&128>Hb?String.fromCharCode(Hb):".";Fb--}ra&&(ra+="\n");ra+=Y+" "+fb+(0==eb?" "+sc:"")}ra&&
W(a,Q);if(sb){var tb=0;fa&&("l"==fa.charAt(0)&&(fa=fa.substr(1)||ne),tb=Ld(a,fa)>>>0,65536<tb&&(tb=65536));for(var ga="",ub="dd"==ua?4:"dw"==ua?2:1,vb=ub*tb||128,pe=vb+15>>4||1;pe--&&0<vb;){var wb=0,hc=0,Ta,Ua="",ic="",Q=n(sb.u,4);for(Ta=16;0<Ta&&0<vb;Ta--){var xb=a.ca(sb,1),wb=wb|xb<<(hc++<<3);hc==ub&&(Ua+=n(wb,2*ub),Ua+=1==ub?9==Ta?"-":" ":" ",wb=hc=0);ic+=32<=xb&&128>xb?String.fromCharCode(xb):".";vb--}ga&&(ga+="\n");ga+=Q+" "+Ua+(0==Ta?" "+ic:"")}ga&&a.b(ga);a.mb=sb}}}}break;case "e":if("else"== a.u(ra);a.na=Cb}}}}break;case "e":if("else"==f[0])break;var Ib=1,Gd=255,Hd=a.ua,Id=a.gb;"ew"==f[0]&&(Ib=2,Gd=65535,Hd=a.Va,Id=a.Bb);var Jd=Ib<<1,Kd=f[1];if(null==Kd)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 Jb=X(a,Kd);if(Jb)for(var Kb=2;Kb<f.length;Kb++){var gb=cd(a,f[Kb]);if(void 0===gb){a.u("unrecognized value: "+f[Kb]);break}gb&~Gd&&a.u("warning: "+q(gb)+" exceeds "+Ib+"-byte value");var xe=Hd.call(a,Jb);
f[0])break;var yb=1,xd=255,yd=a.ca,zd=a.Va;"ew"==f[0]&&(yb=2,xd=65535,yd=a.Ma,zd=a.xb);var Ad=yb<<1,Bd=f[1];if(null==Bd)a.b("edit memory commands:"),a.b("\teb [a] [...] edit bytes at address a"),a.b("\tew [a] [...] edit words at address a");else{var zb=W(a,Bd);if(zb)for(var Ab=2;Ab<f.length;Ab++){var Va=X(a,f[Ab]);if(void 0===Va){a.b("unrecognized value: "+f[Ab]);break}Va&~xd&&a.b("warning: "+n(Va)+" exceeds "+yb+"-byte value");var qe=yd.call(a,zb);a.b("changing "+n(zb.u,4)+" from 0x"+n(qe,Ad)+ a.u("changing "+q(Jb.B,4)+" from 0x"+q(xe,Jd)+" to 0x"+q(gb,Jd));Id.call(a,Jb,gb,Ib)}}break;case "f":Xd(a,f[1]);break;case "g":a:{var Ld=f[1],ye=b;if(void 0!==Ld){var tc=X(a,Ld,!0);if(!tc)break a;dd(a,tc,ye);a.xa(a.i,tc,!0)}a.Ca(!0)||c||a.u("cpu busy or unavailable, run command ignored")}break;case "h":a:{var uc;if(a.A.Z)uc="halting",a.ba();else{if(pb(a,!0))break a;uc="already halted"}c||a.u(uc)}break;case "i":if("if"==f[0]){var vc;var hb=b.substr(2),hb=pa(hb);cd(a,hb)?(c||a.u("true: "+hb),vc=!0):
" to 0x"+n(Va,Ad));zd.call(a,zb,Va,yb)}}break;case "f":Qd(a,f[1]);break;case "g":a:{var Cd=f[1],re=b;if(void 0!==Cd){var jc=W(a,Cd,!0);if(!jc)break a;Xc(a,jc,re);a.ta(a.w,jc,!0)}a.ya(!0)||c||a.b("cpu busy or unavailable, run command ignored")}break;case "h":a:{var kc;if(a.j.X)kc="halting",a.Y();else{if(jb(a,!0))break a;kc="already halted"}c||a.b(kc)}break;case "i":if("if"==f[0]){var lc;var Wa=b.substr(2),Wa=oa(Wa);X(a,Wa)?(c||a.b("true: "+Wa),lc=!0):(c||a.b("false: "+Wa),lc=!1);lc||(d=!1);break}if("int"== (c||a.u("false: "+hb),vc=!1);vc||(d=!1)}break;case "k":var ze=f[0];if("?"==f[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var wc=0,Md=V(),ib=V(a.b.g[6]);for(a.u("stack trace for "+q(ib.B,4));10>wc;){for(var sa=null,Ae=256;65536>ib.B>>>0;){Md.B=a.Va(ib,2);if(null==ib.B||!Ae--)break;for(var Be=a,Lb=Md,Nd=null,jb=Lb.B,Od=jb,xc=1;6>=xc&&jb;xc++){if(2<xc){Lb.B=jb;var Mb=rd(Be,Lb);if(0<=Mb.indexOf("CALL")){var Pd=Mb.indexOf(" ");if(jb+(Mb.indexOf(" ",
f[0]){var Bb;var se=f[1];if(a.g.ha&512){var mc=X(a,se);if(null==mc)Bb=!1;else{a.b("requesting interrupt level "+mc);var ha=a.g;ha.B|=1<<mc;ha.ha&512&&(ha.w-=ha.g,ha.g=0);Bb=!0}}else a.b("interrupts disabled (use rif=1 to enable)"),Bb=!1;Bb||(d=!1);break}break;case "k":var te=f[0];if("?"==f[1])a.b("stack trace commands:"),a.b("\tk\tshow frame addresses"),a.b("\tks\tshow symbol information");else{var nc=0,Dd=P(),Xa=P(a.g.Ua);for(a.b("stack trace for "+n(Xa.u,4));10>nc;){for(var ia=null,ue=256;65536> Pd+1)-Pd-1)/2==Od){Nd=Mb;break}}}jb--}Lb.B=Od;if(sa=Nd)break}if(!sa||null==sa)break;var Qd=null;if("ks"==ze){var Rd=sa.match(/[0-9A-F]+$/);Rd&&(Qd=Zd(a,Rd[0]))}sa=oa(sa,50)+" ;"+(Qd||"stack="+q(ib.B,4));a.u(sa);wc++}wc||a.u("no return addresses found")}break;case "l":if("ln"==f[0]){Zd(a,f[1],!0);break}break;case "m":a:{var ba,ca=null,x=f[1];"?"==x&&(x=void 0);if(void 0!==x){var ha=0;if("all"==x)ha=1878917119,x=null;else if("on"==x)ca=!0,x=null;else if("off"==x)ca=!1,x=null;else{"keys"==x&&(x="key");
Xa.u>>>0;){Dd.u=a.Ma(Xa,2);if(null==Xa.u||!ue--)break;for(var ve=a,Cb=Dd,Ed=null,Ya=Cb.u,Fd=Ya,oc=1;6>=oc&&Ya;oc++){if(2<oc){Cb.u=Ya;var Db=kd(ve,Cb);if(0<=Db.indexOf("CALL")){var Gd=Db.indexOf(" ");if(Ya+(Db.indexOf(" ",Gd+1)-Gd-1)/2==Fd){Ed=Db;break}}}Ya--}Cb.u=Fd;if(ia=Ed)break}if(!ia||null==ia)break;var Hd=null;if("ks"==te){var Id=ia.match(/[0-9A-F]+$/);Id&&(Hd=Sd(a,Id[0]))}ia=na(ia,50)+" ;"+(Hd||"stack="+n(Xa.u,4));a.b(ia);nc++}nc||a.b("no return addresses found")}break;case "l":if("ln"==f[0]){Sd(a, "kbd"==x&&(x="keyboard");for(ba in C)if(x==ba){ha=C[ba];ca=!!(a.Y&ha);break}if(!ha){a.u("unknown message category: "+x);break a}}if(ha)if("on"==f[2])a.Y|=ha,ca=!0;else if("off"==f[2]&&(a.Y&=~ha,ca=!1,1073741824==ha)){for(var yc=0;yc<a.fa.length;yc++)a.u(a.fa[yc]);a.fa=[]}}var Ce=0,ia="";for(ba in C)if(!x||x==ba){var De=!!(a.Y&C[ba]);if(null===ca||ca==De)ia&&(ia+=","),++Ce%10||(ia+="\n\t"),"key"==ba&&(ba="keys"),ia+=ba}void 0===x&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");
f[1],!0);break}break;case "m":a:{var T,U=null,u=f[1];"?"==u&&(u=void 0);if(void 0!==u){var Z=0;if("all"==u)Z=1878917119,u=null;else if("on"==u)U=!0,u=null;else if("off"==u)U=!1,u=null;else{"keys"==u&&(u="key");"kbd"==u&&(u="keyboard");for(T in J)if(u==T){Z=J[T];U=!!(a.W&Z);break}if(!Z){a.b("unknown message category: "+u);break a}}if(Z)if("on"==f[2])a.W|=Z,U=!0;else if("off"==f[2]&&(a.W&=~Z,U=!1,1073741824==Z)){for(var pc=0;pc<a.ma.length;pc++)a.b(a.ma[pc]);a.ma=[]}}var we=0,aa="";for(T in J)if(!u|| a.u((null!==ca?ca?"messages on: ":"messages off: ":"message categories:\n\t")+(ia||"none"));Sc(a)}break;case "p":if("print"==f[0]){$d(a,b.substr(5));break}var Ee="pr"==f[0]?1:0;if(a.U)a.u("step in progress");else{var Sd=V(a.b.g[7]);a.ua(Sd);a.U?(a.xa(a.i,Sd,!0),a.Ca()||(a.D&&a.D.Ta(),a.U=0)):ae(a,Ee?"tr":"t")}break;case "r":if("reset"==b){a.D&&a.D.reset();break}kd(a,f);break;case "s":a:switch(f[1]){case "cs":var kb;void 0!==f[3]&&(kb=+f[3]);switch(f[2]){case "int":a.b.Ia=kb;break;case "start":a.b.Qa=
u==T){var xe=!!(a.W&J[T]);if(null===U||U==xe)aa&&(aa+=","),++we%10||(aa+="\n\t"),"key"==T&&(T="keys"),aa+=T}void 0===u&&a.b("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.b((null!==U?U?"messages on: ":"messages off: ":"message categories:\n\t")+(aa||"none"));Mc(a)}break;case "p":if("print"==f[0]){Td(a,b.substr(5));break}var Jd="pr"==f[0]?1:0,ye=1+Jd;if(a.O)a.b("step in progress");else{var qc=P(a.g.R);switch(a.ca(qc)){case 205:a.O=ye,Tc(qc,3)}a.O?(a.ta(a.w,qc,!0),a.ya()|| kb;break;case "stop":a.b.Ja=kb;break;default:a.u("unknown cs option");break a}void 0!==kb&&fc(a.b);a.u("checksums "+(a.b.A.Fa?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(lc(a.b,+f[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.b.Aa.toFixed(2)+"Mhz")+" ("+a.b.Ba+"x)");break;case "?":a.u("debugger options:");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.i&&a.i.Wa(),a.O=0)):Ud(a,Jd?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}dd(a,f);break;case "s":a:switch(f[1]){case "cs":var Za;void 0!==f[3]&&(Za=+f[3]);switch(f[2]){case "int":a.g.Da=Za;break;case "start":a.g.Oa=Za;break;case "stop":a.g.Ea=Za;break;default:a.b("unknown cs option");break a}void 0!==Za&&ac(a.g);a.b("checksums "+(a.g.j.Aa?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(uc(a.g,+f[2])||a.b("warning: using 1x multiplier, previous target not reached"));a.b("target speed: "+ a.u("\tsp #\t\tset speed multiplier to #");break;default:f[1]&&a.u("unknown option: "+f[1])}break;case "t":ae(a,f[0],f[1]);break;case "u":ld(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Yd(a,b.substr(3))||(d=!1);break}a.u("PDP11 version 1.24.2 ("+a.b.rb+",RELEASE"+(sb?",TYPEDARRAYS":",LONGARRAYS")+")");a.u(window?window.navigator.userAgent:"");break;case "?":if(f[1]){$d(a,b.substr(1));break}var lb="commands:",zc;for(zc in Uc)lb+="\n"+oa(zc,9)+Uc[zc];Jc(a)||(lb+="\nnote: frequency/history disabled if no exec breakpoints");
(a.g.wa.toFixed(2)+"Mhz")+" ("+a.g.xa+"x)");break;case "?":a.b("debugger options:");a.b("\tcs int #\tset checksum cycle interval to #");a.b("\tcs start #\tset checksum cycle start count to #");a.b("\tcs stop #\tset checksum cycle stop count to #");a.b("\tsp #\t\tset speed multiplier to #");break;default:f[1]&&a.b("unknown option: "+f[1])}break;case "t":Ud(a,f[0],f[1]);break;case "u":ed(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Rd(a,b.substr(3))||(d=!1);break}a.b("PDP11 version 1.24.2 ("+a.g.ub+ a.u(lb);break;default:a.u("unknown command: "+b),d=!1}}}catch(Td){a.u("debugger error: "+(Td.stack||Td.message)),d=!1}return d}function gc(a,b,c){b=ed(a,b,c);for(var d in b)if(!qd(a,b[d]))return!1;return!0}Qa(function(){for(var a=y(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Qc(d);mb(d,c)}});
",RELEASE"+(mb?",TYPEDARRAYS":",LONGARRAYS")+")");a.b(window?window.navigator.userAgent:"");break;case "?":if(f[1]){Td(a,b.substr(1));break}var $a="commands:",rc;for(rc in Oc)$a+="\n"+na(rc,9)+Oc[rc];Dc(a)||($a+="\nnote: frequency/history disabled if no exec breakpoints");a.b($a);break;default:a.b("unknown command: "+b),d=!1}}}catch(Kd){a.b("debugger error: "+(Kd.stack||Kd.message)),d=!1}return d}function bc(a,b,c){b=Yc(a,b,c);for(var d in b)if(!jd(a,b[d]))return!1;return!0} function ce(a,b,c){t.call(this,"Computer",a,ce,67108864);this.A.X=!1;de(this,b);this.N=dc(this,"autoPower",a);this.w=0;this.U=a.busWidth||a.buswidth;this.i=ee;this.L=null;this.G=this.S=!1;this.V=dc(this,"url")||"";(Math.random()+.1).toString(36);this.j=fe(this);if(this.b=cb("CPU",this.id)){this.F=cb("Debugger",this.id);this.H=new vb({id:this.pb+".bus",busWidth:this.U},this.b,this.F);var d,e=bb(this.id);if((this.D=cb("Panel",this.id))&&this.D.ya)for(b=0;b<e.length;b++)d=e[b],d.ea=this.D.ea,d.u=this.D.u,
La(function(){for(var a=F(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Kc(d);gb(d,c)}}); d.ya=this.D.ya;this.u("PDP11 v1.24.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.za&&d.za(this,this.H,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.i=parseInt(d,10));var f;if(a=dc(this,"state")||(f=!0,a.state))b=this.O=a,f||(this.G=!0,this.i=ee),this.i&&(this.M=new G(this,"1.24.2"),ge(this.M)?b=null:delete this.M);!b&&this.i&&(b=he(this))&&(this.G=!0);if(b){var h=
function Wd(a,b,c){v.call(this,"Computer",a,Wd,67108864);this.j.U=!1;Xd(this,b);this.M=Zb(this,"autoPower",a);this.B=0;this.V=a.busWidth||a.buswidth;this.i=Yd;this.K=null;this.H=this.S=!1;this.Z=Zb(this,"url")||"";(Math.random()+.1).toString(36);this.w=Zd(this);if(this.g=fb("CPU",this.id)){this.C=fb("Debugger",this.id);this.A=new pb({id:this.nb+".bus",busWidth:this.V},this.g,this.C);var d,e=D(this.id);if((this.D=fb("Panel",this.id))&&this.D.ua)for(b=0;b<e.length;b++)d=e[b],d.aa=this.D.aa,d.b=this.D.b, this;xa(b,null,!0,function(a,b,c){c?(h.J=null,h.G=!1,h.ea("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(h.L=b,h.S=!0);A(h)})}else A(this);this.K.power||(this.N=!0);!c&&this.N&&ie(this,this.Ra)}else r("Unable to find CPU component")}v(ce);var ee=0;function de(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.T=b}
d.ua=this.D.ua;this.b("PDP11 v1.24.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.A,this.g,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.i=parseInt(d,10));var f;if(a=Zb(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.H=!0,this.i=Yd),this.i&&(this.L=new M(this,"1.24.2"),$d(this.L)?b=null:delete this.L);!b&&this.i&&(b=ae(this))&&(this.H=!0);if(b){var k= function dc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ie(a,b,c){for(var d=bb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!qb(f)){qb(f,function(){ie(a,b,c)});return}}b.call(a,c)}
this;ya(b,null,!0,function(a,b,c){c?(k.J=null,k.H=!1,k.aa("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(k.K=b,k.S=!0);G(k)})}else G(this);this.G.power||(this.M=!0);!c&&this.M&&be(this,this.Pa)}else r("Unable to find CPU component")}z(Wd);var Yd=0;function Xd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.T=b} function je(a,b){var c=new G(a,"1.24.2","validate");if(ge(c)&&ke(c)){var d=le(c,"timestamp"),e=b?le(b,"timestamp"):"unknown";d!=e&&(a.ea("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=ce.prototype;
function Zb(a,b,c){var d=b.toLowerCase(),d=Qa[b]||Qa[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function be(a,b,c){for(var d=D(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!kb(f)){kb(f,function(){be(a,b,c)});return}}b.call(a,c)} m.Ra=function(a){void 0===a&&(a=this.i||(this.L?1:ee));if(!this.w){this.w++;var b=!1,c=!1;this.R=!1;var d=this.M||new G(this,"1.24.2");if(-1==a)b=!0;else if(a>ee){if(ge(d,this.L)){this.C=new G(this,"1.24.2","failsafe");ge(this.C)&&(me(this,d),a=2,ne(this.C));H(this.C,"timestamp",va());oe(this.C);var e=this.i&&!this.G;if(1==a||ya("Click OK to restore the previous PDP11 machine state, or CANCEL to reset the machine.")){if(c=ke(d)){var f=le(d,"code"),h=le(d,"data");f&&("ok"==f?ge(d,h):("error"==f&&"no machine state"!=
function ce(a,b){var c=new M(a,"1.24.2","validate");if($d(c)&&de(c)){var d=ee(c,"timestamp"),e=b?ee(b,"timestamp"):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}g=Wd.prototype; h?(this.ea("Error: "+h),"unable to verify user"==h&&(Ha("user",""),this.j=null)):this.u(f+": "+h),ne(d),ge(d)?(c=ke(d),e=!0):c=!1))}e&&je(this,c?d:null)}else 2==a&&d.clear()}else je(this);delete this.L;delete this.M}e=bb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=pe(this,h,d,b,c));b=[d,a,c];-1!=a?ie(this,this.jb,b):this.jb(b)}};
g.Pa=function(a){void 0===a&&(a=this.i||(this.K?1:Yd));if(!this.B){this.B++;var b=!1,c=!1;this.O=!1;var d=this.L||new M(this,"1.24.2");if(-1==a)b=!0;else if(a>Yd){if($d(d,this.K)){this.F=new M(this,"1.24.2","failsafe");$d(this.F)&&(fe(this,d),a=2,ge(this.F));N(this.F,"timestamp",ra());he(this.F);var e=this.i&&!this.H;if(1==a||za("Click OK to restore the previous PDP11 machine state, or CANCEL to reset the machine.")){if(c=de(d)){var f=ee(d,"code"),k=ee(d,"data");f&&("ok"==f?$d(d,k):("error"==f&&"no machine state"!= function pe(a,b,c,d,e){if(!b.A.X){b.A.X=!0;if(b.sa){var f=null;e&&((f=le(c,b.id))||(f=le(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.sa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.O&&!a.S?(c.clear(),a.i=ee,window&&window.location.reload()):a.R=!0,b.sa(null),e=!1)}if(!d&&b.ob)for(a=b.ob.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k?(this.aa("Error: "+k),"unable to verify user"==k&&(Da("user",""),this.w=null)):this.b(f+": "+k),ge(d),$d(d)?(c=de(d),e=!0):c=!1))}e&&ce(this,c?d:null)}else 2==a&&d.clear()}else ce(this);delete this.K;delete this.L}e=D(this.id);for(f=0;f<e.length;f++)k=e[f],k!==this&&k!=this.g&&(c=ie(this,k,d,b,c));b=[d,a,c];-1!=a?be(this,this.pb,b):this.pb(b)}}; m.jb=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.A.X=!0;var d=this.K.power;d&&(d.textContent="Shutdown");this.b&&(pe(this,this.b,b,c,a),hc(this.b));this.R&&(me(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function ie(a,b,c,d,e){if(!b.j.U){b.j.U=!0;if(b.qa){var f=null;e&&((f=ee(c,b.id))||(f=ee(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.qa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.i=Yd,window&&window.location.reload()):a.O=!0,b.qa(null),e=!1)}if(!d&&b.ib)for(a=b.ib.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function me(a,b){if(ya("There may be a problem with your PDP11 machine.\n\nTo help us diagnose it, click OK to send this PDP11 machine state to http://www.pcjs.org.")){var c=a.j||"",d=b.toString(),e={app:"PDP11",ver:"1.24.2"};e.url=a.V;e.user=c;e.type="bug";e.data=d;xa("http://www.pcjs.org/api/v1/report",e,!0)}}
g.pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.$=!0;this.j.U=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(ie(this,this.g,b,c,a),cc(this.g));this.O&&(fe(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.B=0}; function be(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.24.2"),h=new G(a,"1.24.2","validate"),g=va();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.24.2");H(f,"url",window?window.location.href:null);H(f,"browser",window?window.navigator.userAgent:"");a.b&&a.b.ra&&(c&&a.b.ba(),d=a.b.ra(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.X=!1,!1===d&&(e=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.X&&(l.ra&&(d=l.ra(b,c),"object"===typeof d&&H(f,l.id,d)),c&&
function fe(a,b){if(za("There may be a problem with your PDP11 machine.\n\nTo help us diagnose it, click OK to send this PDP11 machine state to http://www.pcjs.org.")){var c=a.w||"",d=b.toString(),e={app:"PDP11",ver:"1.24.2"};e.url=a.Z;e.user=c;e.type="bug";e.data=d;ya("http://www.pcjs.org/api/v1/report",e,!0)}} (l.A.X=!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.j&&qe(a,a.j,f.toString()),oe(h)&&oe(f)||(e=null,d=g=!0)):a.i&&(d=!0,g=3==a.i),d&&f.clear(g)):e=f.toString());c&&(a.A.X=!1,b=a.K.power)&&(b.textContent="Power");a.w=0;return e}m.reset=function(){this.H&&this.H.reset&&(this.F&&nb(this,0)&&this.F.message("Resetting "+this.H.type,void 0),this.H.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(this.F&&nb(this,0)&&this.F.message("Resetting "+c.type,void 0),c.reset())}};
function Vd(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new M(a,"1.24.2"),k=new M(a,"1.24.2","validate"),h=ra();N(k,"timestamp",h);N(f,"timestamp",h);N(f,"version","1.24.2");N(f,"url",window?window.location.href:null);N(f,"browser",window?window.navigator.userAgent:"");a.g&&a.g.pa&&(c&&a.g.Y(),d=a.g.pa(b,c),"object"===typeof d&&N(f,a.g.id,d),c&&(a.g.j.U=!1,!1===d&&(e=null)));for(var h=D(a.id),l=0;l<h.length;l++){var m=h[l];m.j.U&&(m.pa&&(d=m.pa(b,c),"object"===typeof d&&N(f,m.id,d)),c&&(m.j.U= m.start=function(a,b){for(var c=bb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=bb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.w&&je(a,a.w,f.toString()),he(k)&&he(f)||(e=null,d=h=!0)):a.i&&(d=!0,h=3==a.i),d&&f.clear(h)):e=f.toString());c&&(a.j.U=!1,b=a.G.power)&&(b.textContent="Power");a.B=0;return e}g.reset=function(){this.A&&this.A.reset&&(this.C&&hb(this,0)&&this.C.message("Resetting "+this.A.type,void 0),this.A.reset());for(var a=D(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&(this.C&&hb(this,0)&&this.C.message("Resetting "+c.type,void 0),c.reset())}}; m.ha=function(a,b,c){var d=this;switch(b){case "power":return this.K[b]=c,c.onclick=function(){d.w||(d.A.X?be(d,!1,!0):ie(d,d.Ra))},!0;case "reset":return this.K[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.i&&!d.J){var a=ya("Click OK to save changes to this PDP11 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");be(d,a,!0);!a&&d.O?window&&window.location.reload():d.Ra(ee)}else d.reset(),d.b&&hc(d.b)},!0;case "save":if(ka()){c.parentNode.removeChild(c);break}this.K[b]=c;c.onclick=
g.start=function(a,b){for(var c=D(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};g.stop=function(a,b){for(var c=D(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; function(){var a=fe(d,!0);if(a){var b=!!(d.i&&!d.J||d.O),c=be(d,b);b?qe(d,a,c):d.ea("Resume disabled, machine state not saved")}};return!0}return!1};function fe(a,b){var c=a.j;c||(c=Ga("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=re(a,c))||a.ea("The user ID is invalid."))):b&&a.ea("Browser local storage is not available"));return c}
g.ba=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.B||(d.j.U?Vd(d,!1,!0):be(d,d.Pa))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.U&&!d.B)if(d.i&&!d.J){var a=za("Click OK to save changes to this PDP11 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Vd(d,a,!0);!a&&d.N?window&&window.location.reload():d.Pa(Yd)}else d.reset(),d.g&&cc(d.g)},!0;case "save":if(ja()){c.parentNode.removeChild(c);break}this.G[b]=c;c.onclick= function re(a,b){a.j=null;var c=xa(la()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Ha("user",c.data),a.j=c.data)}catch(e){r(e.message+" ("+d+")")}return a.j}function he(a){var b=null;a.j&&(b=la()+"/api/v1/user?req=load&user="+a.j+"&state="+se(a,"1.24.2"));return b}
function(){var a=Zd(d,!0);if(a){var b=!!(d.i&&!d.J||d.N),c=Vd(d,b);b?je(d,a,c):d.aa("Resume disabled, machine state not saved")}};return!0}return!1};function Zd(a,b){var c=a.w;c||(c=Ca("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ke(a,c))||a.aa("The user ID is invalid."))):b&&a.aa("Browser local storage is not available"));return c} function qe(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=se(a,"1.24.2");d.data=c;b=xa(la()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ea("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ea(c),Ha("user",""),a.j=null)}}m.Ta=function(){};
function ke(a,b){a.w=null;var c=ya(ka()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Da("user",c.data),a.w=c.data)}catch(e){r(e.message+" ("+d+")")}return a.w}function ae(a){var b=null;a.w&&(b=ka()+"/api/v1/user?req=load&user="+a.w+"&state="+le(a,"1.24.2"));return b} m.ia=function(a){this.b&&this.b.ia(a);this.D&&this.D.ia(a)};Qa(function(){for(var a=y(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],h=w(f),h=new ce(h,d,!0);mb(h,f);h.N&&ie(h,h.Ra)}});La.show.push(function(){for(var a=y(document,"pdp11","computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=cb("Computer",c.id))&&c.W&&!c.A.X&&c.Ra(-1)}});
function je(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=le(a,"1.24.2");d.data=c;b=ya(ka()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.aa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.aa(c),Da("user",""),a.w=null)}}g.Wa=function(){}; La.exit.push(function(){for(var a=y(document,"pdp11","computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=cb("Computer",c.id))&&c.A.X&&be(c,!(!c.i||c.J),!0)}});function G(a,b,c){this.id=a.id;this.key=se(a,b,c);this.F=a.F;ne(this,a.Jb)}function se(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}
g.ea=function(a){this.g&&this.g.ea(a);this.D&&this.D.ea(a)};La(function(){for(var a=F(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=E(c),c=F(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],k=E(f),k=new Wd(k,d,!0);gb(k,f);k.M&&be(k,k.Pa)}});t.show.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=fb("Computer",c.id))&&c.$&&!c.j.U&&c.Pa(-1)}}); G.prototype={constructor:G,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ne(this);var b=[];try{for(var 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}}};
t.exit.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=fb("Computer",c.id))&&c.j.U&&Vd(c,!(!c.i||c.J),!0)}});function M(a,b,c){this.id=a.id;this.key=le(a,b,c);this.C=a.C;ge(this,a.Fb)}function le(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a} function ne(a,b){a[a.id]={};b&&H(a,"parms",b);a.b=!1}function oe(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ke(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function ge(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Fa()&&(b=Ga(a.key))?(a[a.id]=b,a.b=!0):!1}function le(a,b){return a[a.id][b]||null}function H(a,b,c){try{a[a.id][b]=c}catch(d){}}var te=0;
M.prototype={constructor:M,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ge(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 Fe(a,b,c,d,e,f){e("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Ge(g,a,b,c,d,e,f)})}
function ge(a,b){a[a.id]={};b&&N(a,"parms",b);a.g=!1}function he(a){var b=!0;if(Ba()){var c=JSON.stringify(a[a.id]);Da(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function de(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function $d(a,b){return b?(a[a.id]=b,a.g=!0):a.g?!0:Ba()&&(b=Ca(a.key))?(a[a.id]=b,a.g=!0):!1}function ee(a,b){return a[a.id][b]||null}function N(a,b,c){try{a[a.id][b]=c}catch(d){}}var me=0; function Ge(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){ab(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));
function ze(a,b,c,d,e,f){e("Loading "+a+"...");ya(a,null,!0,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Ae(h,a,b,c,d,e,f)})} g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?He(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ae(a,b,c,d,e,f,k){function h(a,f){if(f)k(f,null);else{if(c){eb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2")); function He(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");xa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?e?Be(a,f,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)} "");a=a.replace(d[0],h);He(a,b,c)}})}else c(a,null)}
function Be(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ya(e,null,!0,function(f,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[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]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, function Ie(a,b,c,d){function e(a){if(void 0===g){var b=h&&y(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=na(a))}function f(a){e("Error: "+a);k&&(--te||Sa(!0));k=!1}var h,g,k=!0;te++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}c||
"");a=a.replace(d[0],k);Be(a,b,c)}})}else c(a,null)} (c="/versions/pdp11/1.24.2/components.xsl");l=function(d,g){g?Fe(c,null,null,!1,e,function(d,k){if(k)if(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--te||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--te||Sa(!0)):f("invalid machine element: "+
function Ce(a,b,c,d){function e(a){if(void 0===h){var b=k&&F(k,"machine-warning");h=b&&b[0]||k}h&&(h.innerHTML=ma(a))}function f(a){e("Error: "+a);l&&(--me||Na(!0));l=!1}var k,h,l=!0;me++;db[a]={};try{if(k=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));p.appendChild(q)}c|| a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Fe(b,a,d,!0,e,l):Ge(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPDP11=function(a,b,c,d){Sa(!1);return Ie(a,b,c,d)};window.enableEvents=Sa;window.sendEvent=Ta;})();
(c="/versions/pdp11/1.24.2/components.xsl");m=function(d,h){h?ze(c,null,null,!1,e,function(d,l){if(l)if(eb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(l);m?(k.outerHTML=m,--me||Na(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(h,document))?k.parentNode?(k.parentNode.replaceChild(m,k),--me||Na(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?ze(b,a,d,!0,e,m):Ae(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){Na(!1);return Ce(a,b,c,d)};window.enableEvents=Na;window.sendEvent=Oa;})();

View file

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