Got rid of runState, implemented a solution for WAIT

This commit is contained in:
Jeff 2016-09-29 11:04:33 -07:00 committed by Jeff Parsons
commit b3ba03d0a5
7 changed files with 358 additions and 338 deletions

View file

@ -1161,8 +1161,8 @@ CPUPDP11.prototype.startCPU = function(fUpdateFocus)
var controlRun = this.bindings["run"];
if (controlRun) controlRun.textContent = "Halt";
if (this.cmp) {
this.cmp.start(this.msStartRun, this.getCycles());
if (fUpdateFocus) this.cmp.updateFocus(true);
this.cmp.start(this.msStartRun, this.getCycles());
}
this.updateCPU(true);
setTimeout(this.onRunTimeout, 0);

View file

@ -1097,7 +1097,6 @@ PDP11.opHALT = function(opCode)
this.regErr |= PDP11.CPUERR.BADHALT;
this.trap(PDP11.TRAP.BUS_ERROR, PDP11.REASON.HALT);
} else {
this.runState = 3;
this.endBurst();
}
this.nStepCycles -= 1;
@ -1605,7 +1604,27 @@ PDP11.opTSTB = function(opCode)
*/
PDP11.opWAIT = function(opCode)
{
this.checkInterruptDelay();
/*
* The original PDP-11 emulation code would actually stop emulating instructions now, relying on assorted
* setTimeout() callbacks, setInterval() callbacks, device XHR (XMLHttpRequest) callbacks, etc, to eventually
* call interrupt(), which would then transition the CPU's runState from 2 to 0 and kickstart emulate() again.
*
* That approach isn't compatible with PCjs emulators, which prefer to rely on the simulated CPU clock to
* drive all simulated device updates. This means components should call the CPU's setTimer() function, which
* invokes the provided callback when the number of CPU cycles that correspond to the requested number of
* milliseconds have elapsed. This also gives us the ability to scale device response times as needed if the
* user decides to crank up CPU speed, and to freeze them along with the CPU whenever the user halts the machine.
*
* However, the PCjs approach requires the CPU to continue running. One simple solution to this dilemma:
*
* 1) opWAIT() sets a new opFlags bit (OPFLAG.WAIT)
* 2) When stepCPU() sees OPFLAG.WAIT, it checks for interrupts; if none, it rewinds the PC back to the WAIT
*
* NOTE: It's almost always a bad idea to add more checks to the inner stepCPU() loop, because every additional
* check can have a measurable (negative) impact on performance. Which is why it's important to use opFlags bits
* whenever possible, since we can test for multiple (up to 32) exceptional conditions with a single check.
*/
this.opFlags |= PDP11.OPFLAG.WAIT;
this.nStepCycles -= 1;
};

View file

@ -168,7 +168,6 @@ CPUStatePDP11.prototype.initRegs = function()
this.opFlags = 0;
this.cpuType = 70;
this.trapPSW = -1;
this.runState = 0; // 0=run, 1=step, 2=wait, 3=run
this.loopRate = 9999; // instructions we can execute in 12ms
this.resetRegs();
};
@ -568,9 +567,6 @@ CPUStatePDP11.prototype.requestHALT = function()
* is active and both the second and third are waiting for one more instruction
* execution to become active.
*
* If the current state is WAIT (runState === 2) then skip any delay and
* go into RUN state.
*
* @this {CPUStatePDP11}
* @param {number} delay
* @param {number} priority
@ -590,11 +586,6 @@ CPUStatePDP11.prototype.interrupt = function(delay, priority, vector, callback)
}
}
if (delay >= 0) {
if (this.runState === 2) { // if currently wait
delay = 0;
this.runState = 0;
setTimeout(this.onRunTimeout, 0); // TODO: Review
}
i = this.interruptQueue.length; // queue in delay 'difference' order
while (i-- > 0) {
if (this.interruptQueue[i].delay > delay) {
@ -613,24 +604,6 @@ CPUStatePDP11.prototype.interrupt = function(delay, priority, vector, callback)
this.priorityReview = 2;
};
/**
* checkInterruptDelay()
*
* @this {CPUStatePDP11}
*/
CPUStatePDP11.prototype.checkInterruptDelay = function()
{
var delay = 0;
for (var i = this.interruptQueue.length; --i >= 0;) {
delay += this.interruptQueue[i].delay;
this.interruptQueue[i].delay = 0;
}
if (!delay && this.runState === 0) {
this.runState = 2; // wait
this.endBurst();
}
};
/**
* checkInterruptQueue()
*
@ -666,6 +639,7 @@ CPUStatePDP11.prototype.checkInterruptQueue = function()
}
}
if (savePSW > (this.regPSW & 0xe0)) {
this.opFlags &= ~PDP11.OPFLAG.WAIT;
if (!interruptEvent) {
this.trap(PDP11.TRAP.PIRQ, PDP11.REASON.INTERRUPT);
} else {
@ -750,7 +724,7 @@ CPUStatePDP11.prototype.setPSW = function(newPSW)
*/
CPUStatePDP11.prototype.updateNZFlags = function(result)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = result;
this.flagV = 0;
}
@ -767,7 +741,7 @@ CPUStatePDP11.prototype.updateNZFlags = function(result)
*/
CPUStatePDP11.prototype.updateAllFlags = function(result, overflow)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = this.flagC = result;
this.flagV = overflow || 0;
}
@ -783,7 +757,7 @@ CPUStatePDP11.prototype.updateAllFlags = function(result, overflow)
*/
CPUStatePDP11.prototype.updateAddFlags = function(result, src, dst)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = this.flagC = result;
this.flagV = (src ^ result) & (dst ^ result);
}
@ -800,7 +774,7 @@ CPUStatePDP11.prototype.updateAddFlags = function(result, src, dst)
*/
CPUStatePDP11.prototype.updateDecFlags = function(result, dst)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = result;
// Because src is always 1 (with a zero sign bit), it can be optimized out of this calculation
this.flagV = (/* src ^ */ dst) & (dst ^ result);
@ -818,7 +792,7 @@ CPUStatePDP11.prototype.updateDecFlags = function(result, dst)
*/
CPUStatePDP11.prototype.updateIncFlags = function(result, dst)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = result;
// Because src is always 1 (with a zero sign bit), it can be optimized out of this calculation
this.flagV = (/* src ^ */ result) & (dst ^ result);
@ -833,10 +807,16 @@ CPUStatePDP11.prototype.updateIncFlags = function(result, dst)
*/
CPUStatePDP11.prototype.updateMulFlags = function(result)
{
this.flagN = result >> 16;
this.flagZ = this.flagN | result;
this.flagV = 0;
this.flagC = (result < -32768 || result > 32767)? 0x10000 : 0;
/*
* NOTE: Technically, the MUL instruction doesn't need to worry about NO_FLAGS, because that instruction
* doesn't write to the bus, and therefore can't modify the PSW directly. But it doesn't hurt to be consistent.
*/
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = result >> 16;
this.flagZ = this.flagN | result;
this.flagV = 0;
this.flagC = (result < -32768 || result > 32767)? 0x10000 : 0;
}
};
/**
@ -847,7 +827,7 @@ CPUStatePDP11.prototype.updateMulFlags = function(result)
*/
CPUStatePDP11.prototype.updateShiftFlags = function(result)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = this.flagC = result;
this.flagV = this.flagN ^ (this.flagC >> 1);
}
@ -866,7 +846,7 @@ CPUStatePDP11.prototype.updateShiftFlags = function(result)
*/
CPUStatePDP11.prototype.updateSubFlags = function(result, src, dst)
{
if (!(this.opFlags & PDP11.OPFLAG.SKIP_FLAGS)) {
if (!(this.opFlags & PDP11.OPFLAG.NO_FLAGS)) {
this.flagN = this.flagZ = this.flagC = result;
this.flagV = (src ^ dst) & (dst ^ result);
}
@ -1701,26 +1681,45 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
nDebugState = 1;
}
/*
* Check for any pending traps.
*
* I've moved this TRAP_MASK check BEFORE we decode the next instruction instead
* of immediately AFTER, because the last instruction may have thrown an exception,
* kicking us out before we reach the bottom of this loop.
*/
if (this.opFlags & PDP11.OPFLAG.TRAP_MASK) {
if (this.opFlags & PDP11.OPFLAG.TRAP_MMU) {
this.trap(PDP11.TRAP.MMU_FAULT, PDP11.REASON.TRAPMMU); // MMU trap has priority
} else {
if (this.opFlags & PDP11.OPFLAG.TRAP_SP) {
this.trap(PDP11.TRAP.BUS_ERROR, PDP11.REASON.TRAPSP); // then SP trap
if (this.opFlags) {
/*
* Check for any pending traps.
*
* I've moved this TRAP_MASK check BEFORE we decode the next instruction instead
* of immediately AFTER, because the last instruction may have thrown an exception,
* kicking us out before we reach the bottom of this loop.
*/
if (this.opFlags & PDP11.OPFLAG.TRAP_MASK) {
if (this.opFlags & PDP11.OPFLAG.TRAP_MMU) {
this.trap(PDP11.TRAP.MMU_FAULT, PDP11.REASON.TRAPMMU); // MMU trap has priority
} else {
if (this.opFlags & PDP11.OPFLAG.TRAP_TF) {
this.trap(PDP11.TRAP.BREAKPOINT, PDP11.REASON.TRAPTF); // and finally a TF trap
if (this.opFlags & PDP11.OPFLAG.TRAP_SP) {
this.trap(PDP11.TRAP.BUS_ERROR, PDP11.REASON.TRAPSP); // then SP trap
} else {
if (this.opFlags & PDP11.OPFLAG.TRAP_TF) {
this.trap(PDP11.TRAP.BREAKPOINT, PDP11.REASON.TRAPTF); // and finally a TF trap
}
}
}
this.opFlags &= ~PDP11.OPFLAG.TRAP_MASK;
}
/*
* If we're in WAIT state, see if any interrupts are ready to kick us out of that state.
*/
if (this.opFlags & PDP11.OPFLAG.WAIT) {
/*
* If checkInterruptQueue() found an interrupt, it will have dispatched it AND cleared
* the WAIT flag; it won't return, so we're done.
*/
this.checkInterruptQueue();
/*
* Since checkInterruptQueue() returned, we need to rewind the PC to the WAIT instruction;
* we're going to play it safe and turn off the WAIT flag, because assuming the WAIT instruction
* is still there, it will automatically re-enable it. TODO: Assert that the WAIT is still there.
*/
this.opFlags &= ~PDP11.OPFLAG.WAIT;
this.regsGen[7] = (this.regsGen[7] - 2) & 0xffff;
}
this.opFlags &= ~PDP11.OPFLAG.TRAP_MASK;
}
/*
@ -1737,10 +1736,10 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
}
/*
* Snapshot the TF bit in opFlags, while simultaneously clearing all other opFlags;
* Snapshot the TF bit in opFlags, while simultaneously clearing all other opFlags (except WAIT);
* we'll check the TRAP_TF bit in opFlags when we come back around for another opcode.
*/
this.opFlags = this.regPSW & PDP11.PSW.TF;
this.opFlags = (this.opFlags & PDP11.OPFLAG.WAIT) | (this.regPSW & PDP11.PSW.TF);
this.decode(this.getPCWord());

View file

@ -161,11 +161,12 @@ var PDP11 = {
* Internal operation state flags
*/
OPFLAG: {
WAIT: 0x01, // WAIT operation in progress
TRAP_TF: 0x10, // aka PDP11.PSW.TF
TRAP_MMU: 0x20,
TRAP_SP: 0x40,
TRAP_MASK: 0x70,
SKIP_FLAGS: 0x80 // when set, all updateXXXFlags() functions must leave flags unchanged
NO_FLAGS: 0x80 // set whenever the PSW is written directly, requiring all updateXXXFlags() functions to leave flags unchanged
},
/*
* Opcode reg (opcode bits 2-0)

View file

@ -352,7 +352,7 @@ DevicePDP11.prototype.writePSW = function(data, addr)
{
var maskDisallowed = PDP11.PSW.UNUSED | PDP11.PSW.TF;
this.cpu.setPSW((data & ~maskDisallowed) | (this.cpu.getPSW() & maskDisallowed));
this.cpu.opFlags |= PDP11.OPFLAG.SKIP_FLAGS;
this.cpu.opFlags |= PDP11.OPFLAG.NO_FLAGS;
};
/**

View file

@ -9,207 +9,208 @@ function u(a){window&&window.alert(a)}function ta(a){var b=!1;window&&(b=window.
function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(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 Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Da(a,b){function c(){b(100===d)&&(f=setTimeout(c,d),d=100)}var d=0,f=null,e=!1;a.onmousedown=function(){e||f||(d=500,c())};a.ontouchstart=function(){f||(d=500,c())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ea={init:[],show:[],exit:[]},Fa=!1,Ga=!1,Ha=!0;function Oa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Pa(a){Ea.init.push(a)}
function Qa(a){if(Ha)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 Ra(a){!Ha&&a?(Ha=!0,Fa&&Sa("init"),Ga&&Sa("show")):Ha=a}function Sa(a){Ea[a]&&Qa(Ea[a])}Oa("onload",function(){Fa=!0;Qa(Ea.init)});Oa("onpageshow",function(){Ga=!0;Qa(Ea.show)});Oa(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Qa(Ea.exit)});
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.sc=b.comment;this.Sc=b;b=this.id.indexOf(".");0>b?this.Eb=this.id:(this.uc=this.id.substr(0,b),this.Eb=this.id.substr(b+1));this[a]=c;this.u={ready:!1,Kb:!1,hc:!1,ia:!1,error:!1};this.$b=null;this.u.error=!1;this.I={};this.C=null;this.ka=d||0;x.push(this)}var Ta=void 0,Ua={};
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.sc=b.comment;this.Sc=b;b=this.id.indexOf(".");0>b?this.Eb=this.id:(this.uc=this.id.substr(0,b),this.Eb=this.id.substr(b+1));this[a]=c;this.u={ready:!1,Kb:!1,hc:!1,ia:!1,error:!1};this.$b=null;this.u.error=!1;this.J={};this.C=null;this.ka=d||0;x.push(this)}var Ta=void 0,Ua={};
if(window){Ta||(Ta=window.location.search.substr(1));for(var Va,Wa=/\+/g,Xa=/([^&=]+)=?([^&]*)/g;Va=Xa.exec(Ta);)Ua[decodeURIComponent(Va[1].replace(Wa," "))]=decodeURIComponent(Va[2].replace(Wa," "))}function Ya(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=w);a.prototype=Ya(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Za=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Za={},x=[];function $a(a,b,c){Za[a]&&b&&(Za[a][b]=c)}function ab(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 bb(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 C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
function cb(a,b){b=D(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=C(e))&&g.binding&&a.va(g.type,g.binding,e,g.value),k=h.length}}}}
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}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},va:function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.kb=this.I[b]=c,c.value="",this.f=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.qa=function(a){this.f(a,this.Eb)}),!0;default:return!1}},log:function(){},f:function(){},status:function(a){this.f(this.Eb+": "+a)},qa:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},Ra:function(){return this.u.ia=!0},Qa:function(a,b){b&&(this.u.ia=!1);return!0}};function db(a,b,c,d){a.C&&(!0===c||E(a,c|0))&&a.C.message(b,d)}function E(a,b){if(a.C){a===a.C?b|=0:b=b||a.ka;var c=a.C.ka&b;return!!b&&c===b||!!(c&a.C.Mc)}return!1}
function eb(a,b){if(a.u.hc)return a.u.Kb=!1,a.u.hc=!1;if(a.u.error)return a.f(a.toString()+" error"),!1;a.u.Kb=b;return a.u.Kb}function fb(a,b){a.u.Kb&&(b?a.u.hc=!0:void 0===b&&a.f(a.toString()+" busy"));return a.u.Kb}function F(a){if(!a.u.error&&(a.u.ready=!0,a.u.ready)){var b=a.$b;a.$b=null;b&&b()}}function sb(a,b){b&&(a.u.ready?b():a.$b=b);return a.u.ready}function tb(a){return a.u.error?(a.f(a.toString()+" error"),!0):!1}function ub(a,b){a.u.error=!0;a.qa(b)}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},va:function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.kb=this.J[b]=c,c.value="",this.f=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.pa=function(a){this.f(a,this.Eb)}),!0;default:return!1}},log:function(){},f:function(){},status:function(a){this.f(this.Eb+": "+a)},pa:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},Qa:function(){return this.u.ia=!0},Pa:function(a,b){b&&(this.u.ia=!1);return!0}};function db(a,b,c,d){a.C&&(!0===c||E(a,c|0))&&a.C.message(b,d)}function E(a,b){if(a.C){a===a.C?b|=0:b=b||a.ka;var c=a.C.ka&b;return!!b&&c===b||!!(c&a.C.Mc)}return!1}
function eb(a,b){if(a.u.hc)return a.u.Kb=!1,a.u.hc=!1;if(a.u.error)return a.f(a.toString()+" error"),!1;a.u.Kb=b;return a.u.Kb}function fb(a,b){a.u.Kb&&(b?a.u.hc=!0:void 0===b&&a.f(a.toString()+" busy"));return a.u.Kb}function F(a){if(!a.u.error&&(a.u.ready=!0,a.u.ready)){var b=a.$b;a.$b=null;b&&b()}}function sb(a,b){b&&(a.u.ready?b():a.$b=b);return a.u.ready}function tb(a){return a.u.error?(a.f(a.toString()+" error"),!0):!1}function ub(a,b){a.u.error=!0;a.pa(b)}
var vb="undefined"!==typeof ArrayBuffer,G={cpu:1,trap:16,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 wb(a){w.call(this,"Panel",a,wb)}B(wb);l=wb.prototype;l.va=function(a,b,c,d){return this.i&&this.i.va(a,b,c,d)||this.b&&this.b.va(a,b,c,d)||this.C&&this.C.va(a,b,c,d)?!0:this.parent.va.call(this,a,b,c,d)};l.Za=function(a,b,c,d){this.i=a;this.F=b;this.b=c;this.C=d};
l.Ra=function(a,b){b||xb();return!0};l.Qa=function(){return!0};l.Fa=function(){};function xb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=C(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new wb(f));cb(e,d);a&&F(e)}}Pa(xb);
function yb(a,b,c){w.call(this,"Bus",a,yb,64);this.b=b;this.C=c;this.J=a.busWidth||16;this.D=Math.pow(2,this.J);this.j=this.D-1|0;this.Y=(this.J>>1)+2;10>this.Y&&(this.Y=10);15<this.Y&&(this.Y=15);this.Ca=1<<this.Y;this.R=this.Ca>>2;this.i=this.Ca-1;this.B=this.D/this.Ca|0;this.A=this.B-1;this.Va=[];this.G=null;this.Mb=this.Ic;a=new H;zb(a,this.C);this.M=Array(this.B);for(b=0;b<this.B;b++)this.M[b]=a;this.Gb=Array(4);this.Gb[0]=Ab;this.Gb[1]=Bb;this.Gb[2]=Cb;this.Gb[3]=Db;Eb(this,this.D-8192,8192,
Fb,this);Eb(this,57344,8192,Fb,this);F(this)}B(yb);function Ab(a,b){var c=this.controller,d=c.Va[a];if(d){E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0);if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.Va[a&-2])&&(E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0),d[2]))return d[2](b&-2)>>8;c.f("warning: unconverted read access to byte @"+r(b));return c.Mb(b,-1,1)}
function Bb(a,b,c){var d=this.controller,f=d.Va[a];if(f){E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0);if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.Va[a&-2])&&(E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0),f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.f("warning: unconverted write access to byte @"+r(c));d.Mb(c,b,1)}
function Cb(a,b){var c=this.controller;if(a=c.Va[a]){E(c)&&db(c,a[5]+".readWord("+r(b)+")",0,!0);if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.f("warning: unconverted read access to word @"+r(b));return c.Mb(b,-1,0)}function Db(a,b,c){var d=this.controller;if(a=d.Va[a]){E(d)&&db(d,a[5]+".writeWord("+r(c)+","+r(b)+")",0,!0);if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.f("warning: unconverted write access to word @"+r(c));d.Mb(c,b,0)}l=yb.prototype;
l.reset=function(){this.G&&this.G()};l.Ic=function(){return 0};l.Ra=function(a,b){b||this.reset();return!0};
function Eb(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.Y;0<g&&h<a.M.length;){var k=a.M[h],m=h*a.Ca,n=a.Ca-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.w)return k.Yb+=k.w-e,k.w=e,!0;if(e>=k.w+k.Yb){n=k.size-(e-m);n>g&&(n=g);k.Yb=e-k.w+n;e=m+a.Ca;g-=n;h++;continue}}return Gb(1,e,g)}e=new H(e,n,a.Ca,d,f);zb(e,a.C,k);a.M[h++]=e;e=m+a.Ca;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+t(b,8,!0)),!0):Gb(2,b,c)}
l.sb=function(a){return this.M[(a&this.j)>>>this.Y].wb(a&this.i,a)};l.Ka=function(a){var b=a&this.i,c=(a&this.j)>>>this.Y;return b!=this.i?this.M[c].Rb(b,a):this.M[c++].wb(b,a)|this.M[c&this.A].wb(0,a+1)<<8};function Ib(a,b){var c=b&a.i,d=(b&a.j)>>>a.Y;return c!=a.i?a.M[d].mc(c,b):a.M[d++].Qb(c,b)|a.M[d&a.A].Qb(0,b+1)<<8}l.Vb=function(a,b){this.M[(a&this.j)>>>this.Y].Cb(a&this.i,b&255,a)};
l.pb=function(a,b){var c=a&this.i,d=(a&this.j)>>>this.Y;c!=this.i?this.M[d].Hc(c,b&65535,a):(this.M[d++].Cb(c,b&255,a),this.M[d&this.A].Cb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,c=[],d=0;d<a.B;d++){var f=a.M[d];if(f.Ya||f.Qc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Kb(a,b){var c=Lb,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,n=f[3]?f[3].bind(b):null,f=f[4],p=+d;p<=g;p+=2){var q=p&8191;void 0!==e.Va[q]?u("I/O address already registered: "+t(p,8,!0)):e.Va[q]=[h,k,m,n,!1,f||"unknown"]}}function Mb(a,b,c){a.G=b;a.Mb=c}function Gb(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}
function I(a){w.call(this,"Device",a,I);this.i={lc:[],ta:0,wa:128,C:127,Oc:0};this.A={data:0,xd:0,tb:20,qd:0};this.j={K:0,qc:-1};this.B={Tb:2496,ma:0,P:128,Ub:0,Sb:0,ua:0,Cc:0,pa:[],ib:[406,406,406,406],aa:[12,12,12,12]};this.D={K:129,Jb:0,fa:0,ab:0,Wa:0,gb:0,pa:[],aa:[40,40,40,40],ib:[1024,1024,512,512],Kc:[157,157,29,29]};this.G={b:[8210,8208,8210,8226],aa:[22,22,22,50],hb:[19,19,19,32],gc:[815,411,815,630],pa:[],S:2176,zb:0,xb:0,Ea:[0,0,0,0,0,0,0,0],Da:0,ra:[4544,4544,4544,4544,4544,4544,4544,
4544],yb:[0,0,0,0,0,0,0,0],ob:0,nd:[0,0,0,0,0,0,0,0],Dc:0,Ec:[0,0,0,0,0,0,0,0],I:[0,0,0,0,0,0,0,0],od:[1,2,3,4,5,6,7,8],Fc:[0,0,0,0,0,0,0,0],Ua:[0,0,0,0,0,0,0,0],fc:[0,0,0,0,0,0,0,0],ld:[0,0,0,0,0,0,0,0],md:[0,0,0,0,0,0,0,0],jd:[0,0,0,0,0,0,0,0],kd:[0,0,0,0,0,0,0,0],fb:0,oc:0}}B(I);
l.Qa=function(a,b){b||xb();return!0};l.Pa=function(){return!0};l.Ea=function(){};function xb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=C(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new wb(f));cb(e,d);a&&F(e)}}Pa(xb);
function yb(a,b,c){w.call(this,"Bus",a,yb,64);this.b=b;this.C=c;this.K=a.busWidth||16;this.D=Math.pow(2,this.K);this.j=this.D-1|0;this.Y=(this.K>>1)+2;10>this.Y&&(this.Y=10);15<this.Y&&(this.Y=15);this.Ba=1<<this.Y;this.R=this.Ba>>2;this.i=this.Ba-1;this.B=this.D/this.Ba|0;this.A=this.B-1;this.Ua=[];this.H=null;this.Mb=this.Ic;a=new H;zb(a,this.C);this.N=Array(this.B);for(b=0;b<this.B;b++)this.N[b]=a;this.Gb=Array(4);this.Gb[0]=Ab;this.Gb[1]=Bb;this.Gb[2]=Cb;this.Gb[3]=Db;Eb(this,this.D-8192,8192,
Fb,this);Eb(this,57344,8192,Fb,this);F(this)}B(yb);function Ab(a,b){var c=this.controller,d=c.Ua[a];if(d){E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0);if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.Ua[a&-2])&&(E(c)&&db(c,d[5]+".readByte("+r(b)+")",0,!0),d[2]))return d[2](b&-2)>>8;c.f("warning: unconverted read access to byte @"+r(b));return c.Mb(b,-1,1)}
function Bb(a,b,c){var d=this.controller,f=d.Ua[a];if(f){E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0);if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.Ua[a&-2])&&(E(d)&&db(d,f[5]+".writeByte("+r(c)+","+r(b)+")",0,!0),f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.f("warning: unconverted write access to byte @"+r(c));d.Mb(c,b,1)}
function Cb(a,b){var c=this.controller;if(a=c.Ua[a]){E(c)&&db(c,a[5]+".readWord("+r(b)+")",0,!0);if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.f("warning: unconverted read access to word @"+r(b));return c.Mb(b,-1,0)}function Db(a,b,c){var d=this.controller;if(a=d.Ua[a]){E(d)&&db(d,a[5]+".writeWord("+r(c)+","+r(b)+")",0,!0);if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.f("warning: unconverted write access to word @"+r(c));d.Mb(c,b,0)}l=yb.prototype;
l.reset=function(){this.H&&this.H()};l.Ic=function(){return 0};l.Qa=function(a,b){b||this.reset();return!0};
function Eb(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.Y;0<g&&h<a.N.length;){var k=a.N[h],m=h*a.Ba,n=a.Ba-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.w)return k.Yb+=k.w-e,k.w=e,!0;if(e>=k.w+k.Yb){n=k.size-(e-m);n>g&&(n=g);k.Yb=e-k.w+n;e=m+a.Ba;g-=n;h++;continue}}return Gb(1,e,g)}e=new H(e,n,a.Ba,d,f);zb(e,a.C,k);a.N[h++]=e;e=m+a.Ba;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+t(b,8,!0)),!0):Gb(2,b,c)}
l.sb=function(a){return this.N[(a&this.j)>>>this.Y].wb(a&this.i,a)};l.Ja=function(a){var b=a&this.i,c=(a&this.j)>>>this.Y;return b!=this.i?this.N[c].Rb(b,a):this.N[c++].wb(b,a)|this.N[c&this.A].wb(0,a+1)<<8};function Ib(a,b){var c=b&a.i,d=(b&a.j)>>>a.Y;return c!=a.i?a.N[d].mc(c,b):a.N[d++].Qb(c,b)|a.N[d&a.A].Qb(0,b+1)<<8}l.Vb=function(a,b){this.N[(a&this.j)>>>this.Y].Cb(a&this.i,b&255,a)};
l.pb=function(a,b){var c=a&this.i,d=(a&this.j)>>>this.Y;c!=this.i?this.N[d].Hc(c,b&65535,a):(this.N[d++].Cb(c,b&255,a),this.N[d&this.A].Cb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,c=[],d=0;d<a.B;d++){var f=a.N[d];if(f.Ya||f.Qc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Kb(a,b){var c=Lb,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,n=f[3]?f[3].bind(b):null,f=f[4],p=+d;p<=g;p+=2){var q=p&8191;void 0!==e.Ua[q]?u("I/O address already registered: "+t(p,8,!0)):e.Ua[q]=[h,k,m,n,!1,f||"unknown"]}}function Mb(a,b,c){a.H=b;a.Mb=c}function Gb(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}
function I(a){w.call(this,"Device",a,I);this.i={lc:[],ta:0,wa:128,C:127,Oc:0};this.A={data:0,xd:0,tb:20,qd:0};this.j={L:0,qc:-1};this.B={Tb:2496,ma:0,P:128,Ub:0,Sb:0,ua:0,Cc:0,oa:[],ib:[406,406,406,406],aa:[12,12,12,12]};this.D={L:129,Jb:0,fa:0,ab:0,Va:0,gb:0,oa:[],aa:[40,40,40,40],ib:[1024,1024,512,512],Kc:[157,157,29,29]};this.H={b:[8210,8208,8210,8226],aa:[22,22,22,50],hb:[19,19,19,32],gc:[815,411,815,630],oa:[],S:2176,zb:0,xb:0,Da:[0,0,0,0,0,0,0,0],Ca:0,qa:[4544,4544,4544,4544,4544,4544,4544,
4544],yb:[0,0,0,0,0,0,0,0],ob:0,nd:[0,0,0,0,0,0,0,0],Dc:0,Ec:[0,0,0,0,0,0,0,0],J:[0,0,0,0,0,0,0,0],od:[1,2,3,4,5,6,7,8],Fc:[0,0,0,0,0,0,0,0],Ta:[0,0,0,0,0,0,0,0],fc:[0,0,0,0,0,0,0,0],ld:[0,0,0,0,0,0,0,0],md:[0,0,0,0,0,0,0,0],jd:[0,0,0,0,0,0,0,0],kd:[0,0,0,0,0,0,0,0],fb:0,oc:0}}B(I);
var Nb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=I.prototype;l.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;var f=this;this.j.qc=Ob(this.b,function(){f.j.$a|=128;f.j.$a&64&&(J(f.b,0,6,64),Xb(f.b,f.j.qc))});Kb(b,this);Mb(b,this.reset.bind(this),this.Jc.bind(this));F(this)};l.ad=function(){var a=this.j.$a;this.j.$a&=-129;return a};
l.sd=function(a){this.j.$a=a;a&64&&Xb(this.b,this.j.qc);this.j.$a=a&-129};l.bd=function(){var a=this.b;return a.B&62337|a.sa<<5|a.xa<<1};l.td=function(a){var b=4,c=this.b;c.B=a&=62337;c.sa=a>>5&3;c.xa=a>>1&15;c.ac=a&257?a&1?6:4:0;Yb(c);a=c.B;a&1|256&&(b=this.b.nb&16?1:2);this.A.tb=this.A.tb&-8|b};l.dd=function(){return this.i.ta};l.vd=function(a){this.i.ta=this.i.ta&128|a&-129};l.ed=function(){return this.i.wa};
l.wd=function(a){if(128==(this.i.wa&192)&&a&64){var b=this;J(this.b,8,4,52,function(){b.i.wa|=128;return!!(b.i.wa&64)})}this.i.wa=this.i.wa&128|a&-129};l.cd=function(){return Zb(this.b)};l.ud=function(a){$b(this.b,a&-1809|Zb(this.b)&1808);this.b.N|=128};
function ac(a){var b=a.B,c,d,f,e=b.ua>>13&7;"undefined"===typeof b.pa[e]&&(b.pa[e]={cache:[],postProcess:a.fd,drive:e,blocksize:256,mapped:0,maxblock:b.ib[e]*b.aa[e],url:"rk"+e+".dsk"});b.P&=-129;switch(b.P>>1&7){case 0:b.Tb=2496;b.ma=0;b.P=128;b.ua=0;break;case 1:if((b.ua>>4&511)>=b.ib[e]){b.ma|=32832;b.P|=49152;break}if((b.ua&15)>=b.aa[e]){b.ma|=32800;b.P|=49152;break}c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;bc(a,b.pa[e],c,d,f);return;case 2:if((b.ua>>4&511)>=b.ib[e])b.ma|=
32832,b.P|=49152;else if((b.ua&15)>=b.aa[e])b.ma|=32800,b.P|=49152;else{c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;a.cc(b.pa[e],c,d,f);return}}b.Tb=e<<13|b.Tb&8176|b.ua%9&15;J(a.b,20,5,144,function(){b.P=b.P&65534|128;return!!(b.P&64)})}l.fd=function(a,b,c,d,f){var e=this.B;e.Sb=d&65535;e.P=e.P&-49|d>>12&48;e.Ub=65536-f&65535;switch(a){case 1:e.ma|=33024;e.P|=49152;break;case 2:e.ma|=33792,e.P|=49152}J(this.b,20,5,144,function(){e.P=e.P&65534|128;return!!(e.P&64)})};
function cc(a){var b=a.D,c,d,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.pa[e]&&(b.pa[e]={cache:[],postProcess:a.gd,drive:e,blocksize:128,mapped:1,maxblock:b.ib[e]*b.aa[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.ab&8&&(b.K&=63);b.ab=b.Kc[e]|b.gb&64;break;case 3:1==(b.fa&3)&&(b.gb=b.fa&4?b.gb+(b.fa&65408)&65408|b.fa<<2&64:b.gb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.gb);break;case 4:b.ab=b.gb;break;case 5:if(b.fa>>6>=b.ib[e]){b.K|=37888;break}if((b.fa&63)>=b.aa[e]){b.K|=37888;break}c=(b.fa>>6)*
b.aa[e]+(b.fa&63);d=(b.Wa&63)<<16|b.Jb;f=65536-b.ab&65535;bc(a,b.pa[e],c,d,f);return;case 6:if(b.fa>>6>=b.ib[e])b.K|=37888;else if((b.fa&63)>=b.aa[e])b.K|=37888;else{c=(b.fa>>6)*b.aa[e]+(b.fa&63);d=(b.Wa&63)<<16|b.Jb;f=65536-b.ab&65535;a.cc(b.pa[e],c,d,f);return}}J(a.b,20,5,112,function(){b.K|=129;return!!(b.K&64)})}
l.gd=function(a,b,c,d,f){var e=this.D;e.Jb=d&65535;e.K=e.K&-49|d>>12&48;e.Wa=d>>16&63;e.fa=~~(c/e.aa[b.Oa])<<6|c%e.aa[b.Oa];e.gb=e.fa;e.ab=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}J(this.b,20,5,112,function(){e.K|=129;return!!(e.K&64)})};function dc(a){a=a.G;a.S=2176;a.Da=0;a.ra=[4544,4544,4544,4544,4544,4544,4544,4544];a.yb=[0,0,0,0,0,0,0,0];a.ob=a.zb=a.xb=a.fb=a.oc=0}
function ec(a,b){var c=a.G,d,f,e;c.S&=-16513;c.Da&=-2049;c.ra[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof c.pa[b]&&(c.pa[b]={cache:[],postProcess:a.hd,drive:b,blocksize:256,mapped:0,maxblock:c.gc[0]*c.hb[0]*c.aa[0],url:"rp"+b+".dsk"});switch(c.S&63){case 5:c.fc[b]=c.Ua[b];c.S|=32896;c.ra[b]|=32896;c.ob|=1<<b;break;case 9:dc(a);break;case 19:c.ra[b]|=64;break;case 49:if(c.Ua[b]>=c.gc[0]||c.Ea[b]>>8>=c.hb[0]||(c.Ea[b]&255)>=c.aa[0]){c.yb[b]|=1024;c.S|=49152;break}d=(c.Ua[b]*c.hb[0]+(c.Ea[b]>>8))*
c.aa[0]+(c.Ea[b]&255);f=(c.fb&63)<<16|c.xb;e=65536-c.zb&65535;bc(a,c.pa[b],d,f,e);return;case 57:if(c.Ua[b]>=c.gc[0]||c.Ea[b]>>8>=c.hb[0]||(c.Ea[b]&255)>=c.aa[0])c.yb[b]|=1024,c.S|=49152;else{d=(c.Ua[b]*c.hb[0]+(c.Ea[b]>>8))*c.aa[0]+(c.Ea[b]&255);f=(c.fb&63)<<16|c.xb;e=65536-c.zb&65535;a.cc(c.pa[b],d,f,e);return}}J(a.b,3,5,172,function(){c.S=c.S&65534|128;c.ra[b]|=128;return!!(c.S&64)})}
l.hd=function(a,b,c,d,f){var e=this.G;e.zb=65536-f&65535;e.xb=d&65535;e.S=e.S&-769|d>>8&768;e.fb=d>>16&63;f=~~(c/e.aa[0]);d=~~(f/e.hb[0]);e.Ea[b.Oa]=f%e.hb[0]<<8|c%e.aa[0];e.fc[b.Oa]=e.Ua[b.Oa]=d;e.ob|=1<<b.Oa;c>=b.Yc-1&&(e.ra[b.Oa]|=1024);switch(a){case 1:e.Da|=512;e.S|=49152;break;case 2:e.Da|=2048,e.S|=49152}J(this.b,20,5,172,function(){e.ra[b.Oa]|=128;e.S=e.S&65534|128;return!!(e.S&64)})};
function fc(a,b,c,d,f,e){var g=~~((e+c.Xa-1)/c.Xa),h=new XMLHttpRequest;2048>g&&d+2048<c.Yc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Xa<<1)+"-"+(((d+g)*c.Xa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,p,q;m=h.response;if(h.status&&206!=h.status||!m)c.kc(1,c,d,f,e);else{m=new Uint8Array(m);n=d;for(q=0;q<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],p=0;p<c.Xa;p++)c.cache[n][p]=q<m.length?
m[q]&255|m[q+1]<<8&65280:0,q+=2;else q+=c.Xa<<1;n++}g(c,d,f,e)}}};h.send(null)}function K(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:a.b.L(4,122):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.cc=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){fc(this,this.cc,a,b,c,d);return}for(f=0;f<a.Xa&&0<d;f++){var e=a.Xc?gc(this.b,c):c;this.b.F.pb(e,a.cache[b][f]&65535);c+=2;--d}b++}a.kc(0,a,b,c,d)};
function bc(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.Xa;e++)b.cache[c][e]=0;for(e=0;e<b.Xa&&0<f;e++){g=a.b.dc(b.Xc?gc(a.b,d):d);if(0>g){b.kc(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.kc(0,b,c,d,f)}l.reset=function(){this.A.tb=this.A.tb&-120|20;this.i.ta=0;this.i.wa=128;this.j.$a=0;this.B.P=128;this.D.K=128;dc(this)};
l.Jc=function(a,b,c){var d,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.eb&65280:(a&1&&(b<<=8),e.eb=b|255,d=0);break;case 4194298:if(0>b)d=e.nc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nc=d;e.Sa=2}break;case 4194294:if(70!==e.lb)return e.L(4,222);0>b?d=e.H:d=e.H=0;break;case 4194292:if(70!==e.lb)return e.L(4,224);d=1;break;case 4194290:if(70!==e.lb)return e.L(4,226);d=0;break;case 4194288:if(70!==e.lb)return e.L(4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.lb)return e.L(4,232);f=a-4194272>>1;0>b?d=e.jc[f]:(d=K(this,e.jc[f],a,b,c),0<=d&&(e.jc[f]=d));break;case 4194254:return a&1?e.O>>14&1?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[3]=b),d=e.Aa[3]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[1]=b),d=e.Aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.O&2048?(0<=b&&(e.g[f]=b),d=e.g[f]):(0<=b&&(e.Ta[f]=
b),d=e.Ta[f]),d;case 4194246:return a&1?(0<=b&&(e.g[7]=b),d=e.g[7]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[0]=b),d=e.Aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.O&2048?(0<=b&&(e.Ta[f]=b),d=e.Ta[f]):(0<=b&&(e.g[f]=b),d=e.g[f]),d;default:return e.H|=16,e.L(4,124)}break;case 4194176:f=a>>1&31;d=K(this,e.la[3][f],a,b,c);0<=d&&(e.la[3][f]=d,e.la[3][f&15]&=65295);break;case 4194112:var g=this.i;switch(a&-2){case 4194174:d=K(this,e.ec,a,b,c);0<=d&&(e.ec=d);break;case 4194172:d=
e.cb;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.A.qd&65535:(d=K(this,this.A.data,a,b,c),0<=d&&(this.A.data=d));break;case 4194166:0<=b&&(b&127&&(g.Oc=0),g.wa&=-129,J(e,100,4,52,function(){g.wa|=128;return!!(g.wa&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ta&=-129,0<g.lc.length&&(d=g.lc.shift(),0<g.lc.length&&setTimeout(function(){g.ta|=128;g.ta&64&&J(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ta:(d=K(this,g.ta,a,b,c),0<=d&&(g.ta=g.ta&128|d&-129));break;default:return e.H|=16,e.L(4,
126)}break;case 4194048:f=this.B;switch(a&-2){case 4194048:d=K(this,f.Tb,a,b,c);0<=d&&(f.Tb=d);break;case 4194050:d=K(this,f.ma,a,b,c);0<=d&&(f.ma=d);break;case 4194052:d=K(this,f.P,a,b,c);0<=b&&0<=d&&(f.P=d&-36993|f.P&36992,f.P&1&&ac(this));break;case 4194054:d=K(this,f.Ub,a,b,c);0<=d&&(f.Ub=d);break;case 4194056:d=K(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;case 4194058:d=K(this,f.ua,a,b,c);0<=d&&(f.ua=d);break;case 4194060:break;case 4194062:d=K(this,f.Cc,a,b,c);0<=d&&(f.Cc=d);break;default:return e.H|=
16,e.L(4,128)}break;case 4193728:var h=this.G;f=h.Da&7;switch(a&-2){case 4193728:d=K(this,h.S,a,b,c);0<=b&&0<=d&&(h.fb=h.fb&60|d>>8&3,h.S=d&17279|h.S&34944|2048,d&1&&h.S&128?ec(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.zb,a,b,c);0<=d&&(h.zb=d);break;case 4193732:d=K(this,h.xb,a,b,c);0<=d&&(h.xb=d&65534);break;case 4193734:d=K(this,h.Ea[f],a,b,c);0<=d&&(h.Ea[f]=d&7967);break;case 4193736:d=K(this,h.Da,a,b,c);0<=d&&(h.Da=d&63|h.Da&65472,d&128&&dc(this));break;case 4193738:d=
h.ra[f];break;case 4193740:d=h.yb[f];break;case 4193742:d=K(this,h.ob,a,b,c);0<=d&&(h.ob=d&255);break;case 4193744:d=h.nd[f];break;case 4193746:d=K(this,h.Dc,a,b,c);0<=d&&(h.Dc=d);break;case 4193748:d=K(this,h.Ec[f],a,b,c);0<=d&&(h.Ec[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.od[f];break;case 4193754:d=K(this,h.Fc[f],a,b,c);0<=d&&(h.Fc[f]=d);break;case 4193756:d=K(this,h.Ua[f],a,b,c);0<=d&&(h.Ua[f]=d&511);break;case 4193758:h.fc[f]=h.Ua[f];d=h.fc[f];break;case 4193760:d=h.ld[f];
break;case 4193762:d=h.md[f];break;case 4193764:d=h.jd[f];break;case 4193766:d=h.kd[f];break;case 4193768:d=K(this,h.fb,a,b,c);0<=d&&(h.fb=d&63,h.S=h.S&-769|(d&3)<<8);break;case 4193770:d=K(this,h.oc,a,b,c);0<=d&&(h.oc=d);break;default:return e.H|=16,e.L(4,132)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=K(this,f.K,a,b,c);0<=b&&0<=d&&(f.Wa=f.Wa&60|d>>4&3,f.K=f.K&-1023|d&1022,f.K&128||cc(this));break;case 4192514:d=K(this,f.Jb,a,b,c);0<=d&&(f.Jb=d&65534);break;case 4192516:d=K(this,f.fa,
a,b,c);0<=d&&(f.fa=d);break;case 4192518:d=K(this,f.ab,a,b,c);0<=d&&(f.ab=d);break;case 4192520:d=K(this,f.Wa,a,b,c);0<=d&&(f.Wa=d&63,f.K=f.K&-49|(f.Wa&3)<<4);break;default:return e.H|=16,e.L(4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.nb:(d=K(this,e.nb,a,b,c),0<=d&&(70!==e.lb&&(d&=-49),e.nb=d,e.bc[0]=d&4?15:7,e.bc[1]=d&2?15:7,e.bc[3]=d&1?15:7,e.ac&&(f=2,e.nb&16&&(f=1),this.A.tb=this.A.tb&-8|f)));break;default:return e.H|=16,e.L(4,136)}break;case 4191424:f=a>>1&31;d=K(this,e.la[0][f],
a,b,c);0<=d&&(e.la[0][f]=d,e.la[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.la[1][f],a,b,c);0<=d&&(e.la[1][f]=d,e.la[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.lb)return e.L(4,234);f=a>>2&31;d=e.Wb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=K(this,d,a,b,c),0<=d&&(e.Wb[f]=a&2?d<<16|e.Wb[f]&65535:e.Wb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Nb[a>>1&255];else return e.H|=16,e.L(4,
138);break;default:return e.H|=16,e.L(4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var hc={},Lb=(hc[65382]=[null,null,I.prototype.ad,I.prototype.sd,"LKS"],hc[65392]=[null,null,I.prototype.dd,I.prototype.vd,"RCSR"],hc[65396]=[null,null,I.prototype.ed,I.prototype.wd,"XCSR"],hc[65402]=[null,null,I.prototype.bd,I.prototype.td,"MMR0"],hc[65534]=[null,null,I.prototype.cd,I.prototype.ud,"PSW"],hc);
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=I.prototype;l.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;var f=this;this.j.qc=Wb(this.b,function(){f.j.$a|=128;f.j.$a&64&&(J(f.b,0,6,64),Xb(f.b,f.j.qc))});Kb(b,this);Mb(b,this.reset.bind(this),this.Jc.bind(this));F(this)};l.ad=function(){var a=this.j.$a;this.j.$a&=-129;return a};
l.sd=function(a){this.j.$a=a;a&64&&Xb(this.b,this.j.qc);this.j.$a=a&-129};l.bd=function(){var a=this.b;return a.B&62337|a.ra<<5|a.sa<<1};l.td=function(a){var b=4,c=this.b;c.B=a&=62337;c.ra=a>>5&3;c.sa=a>>1&15;c.ac=a&257?a&1?6:4:0;Yb(c);a=c.B;a&1|256&&(b=this.b.nb&16?1:2);this.A.tb=this.A.tb&-8|b};l.dd=function(){return this.i.ta};l.vd=function(a){this.i.ta=this.i.ta&128|a&-129};l.ed=function(){return this.i.wa};
l.wd=function(a){if(128==(this.i.wa&192)&&a&64){var b=this;J(this.b,8,4,52,function(){b.i.wa|=128;return!!(b.i.wa&64)})}this.i.wa=this.i.wa&128|a&-129};l.cd=function(){return Zb(this.b)};l.ud=function(a){$b(this.b,a&-1809|Zb(this.b)&1808);this.b.G|=128};
function ac(a){var b=a.B,c,d,f,e=b.ua>>13&7;"undefined"===typeof b.oa[e]&&(b.oa[e]={cache:[],postProcess:a.fd,drive:e,blocksize:256,mapped:0,maxblock:b.ib[e]*b.aa[e],url:"rk"+e+".dsk"});b.P&=-129;switch(b.P>>1&7){case 0:b.Tb=2496;b.ma=0;b.P=128;b.ua=0;break;case 1:if((b.ua>>4&511)>=b.ib[e]){b.ma|=32832;b.P|=49152;break}if((b.ua&15)>=b.aa[e]){b.ma|=32800;b.P|=49152;break}c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;bc(a,b.oa[e],c,d,f);return;case 2:if((b.ua>>4&511)>=b.ib[e])b.ma|=
32832,b.P|=49152;else if((b.ua&15)>=b.aa[e])b.ma|=32800,b.P|=49152;else{c=(b.ua>>4&511)*b.aa[e]+(b.ua&15);d=(b.P&48)<<12|b.Sb;f=65536-b.Ub&65535;a.cc(b.oa[e],c,d,f);return}}b.Tb=e<<13|b.Tb&8176|b.ua%9&15;J(a.b,20,5,144,function(){b.P=b.P&65534|128;return!!(b.P&64)})}l.fd=function(a,b,c,d,f){var e=this.B;e.Sb=d&65535;e.P=e.P&-49|d>>12&48;e.Ub=65536-f&65535;switch(a){case 1:e.ma|=33024;e.P|=49152;break;case 2:e.ma|=33792,e.P|=49152}J(this.b,20,5,144,function(){e.P=e.P&65534|128;return!!(e.P&64)})};
function cc(a){var b=a.D,c,d,f,e=b.L>>8&3;b.L&=-2;"undefined"===typeof b.oa[e]&&(b.oa[e]={cache:[],postProcess:a.gd,drive:e,blocksize:128,mapped:1,maxblock:b.ib[e]*b.aa[e],url:"rl"+e+".dsk"});switch(b.L>>1&7){case 2:b.ab&8&&(b.L&=63);b.ab=b.Kc[e]|b.gb&64;break;case 3:1==(b.fa&3)&&(b.gb=b.fa&4?b.gb+(b.fa&65408)&65408|b.fa<<2&64:b.gb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.gb);break;case 4:b.ab=b.gb;break;case 5:if(b.fa>>6>=b.ib[e]){b.L|=37888;break}if((b.fa&63)>=b.aa[e]){b.L|=37888;break}c=(b.fa>>6)*
b.aa[e]+(b.fa&63);d=(b.Va&63)<<16|b.Jb;f=65536-b.ab&65535;bc(a,b.oa[e],c,d,f);return;case 6:if(b.fa>>6>=b.ib[e])b.L|=37888;else if((b.fa&63)>=b.aa[e])b.L|=37888;else{c=(b.fa>>6)*b.aa[e]+(b.fa&63);d=(b.Va&63)<<16|b.Jb;f=65536-b.ab&65535;a.cc(b.oa[e],c,d,f);return}}J(a.b,20,5,112,function(){b.L|=129;return!!(b.L&64)})}
l.gd=function(a,b,c,d,f){var e=this.D;e.Jb=d&65535;e.L=e.L&-49|d>>12&48;e.Va=d>>16&63;e.fa=~~(c/e.aa[b.Na])<<6|c%e.aa[b.Na];e.gb=e.fa;e.ab=65536-f&65535;switch(a){case 1:e.L|=33792;break;case 2:e.L|=40960}J(this.b,20,5,112,function(){e.L|=129;return!!(e.L&64)})};function dc(a){a=a.H;a.S=2176;a.Ca=0;a.qa=[4544,4544,4544,4544,4544,4544,4544,4544];a.yb=[0,0,0,0,0,0,0,0];a.ob=a.zb=a.xb=a.fb=a.oc=0}
function ec(a,b){var c=a.H,d,f,e;c.S&=-16513;c.Ca&=-2049;c.qa[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof c.oa[b]&&(c.oa[b]={cache:[],postProcess:a.hd,drive:b,blocksize:256,mapped:0,maxblock:c.gc[0]*c.hb[0]*c.aa[0],url:"rp"+b+".dsk"});switch(c.S&63){case 5:c.fc[b]=c.Ta[b];c.S|=32896;c.qa[b]|=32896;c.ob|=1<<b;break;case 9:dc(a);break;case 19:c.qa[b]|=64;break;case 49:if(c.Ta[b]>=c.gc[0]||c.Da[b]>>8>=c.hb[0]||(c.Da[b]&255)>=c.aa[0]){c.yb[b]|=1024;c.S|=49152;break}d=(c.Ta[b]*c.hb[0]+(c.Da[b]>>8))*
c.aa[0]+(c.Da[b]&255);f=(c.fb&63)<<16|c.xb;e=65536-c.zb&65535;bc(a,c.oa[b],d,f,e);return;case 57:if(c.Ta[b]>=c.gc[0]||c.Da[b]>>8>=c.hb[0]||(c.Da[b]&255)>=c.aa[0])c.yb[b]|=1024,c.S|=49152;else{d=(c.Ta[b]*c.hb[0]+(c.Da[b]>>8))*c.aa[0]+(c.Da[b]&255);f=(c.fb&63)<<16|c.xb;e=65536-c.zb&65535;a.cc(c.oa[b],d,f,e);return}}J(a.b,3,5,172,function(){c.S=c.S&65534|128;c.qa[b]|=128;return!!(c.S&64)})}
l.hd=function(a,b,c,d,f){var e=this.H;e.zb=65536-f&65535;e.xb=d&65535;e.S=e.S&-769|d>>8&768;e.fb=d>>16&63;f=~~(c/e.aa[0]);d=~~(f/e.hb[0]);e.Da[b.Na]=f%e.hb[0]<<8|c%e.aa[0];e.fc[b.Na]=e.Ta[b.Na]=d;e.ob|=1<<b.Na;c>=b.Yc-1&&(e.qa[b.Na]|=1024);switch(a){case 1:e.Ca|=512;e.S|=49152;break;case 2:e.Ca|=2048,e.S|=49152}J(this.b,20,5,172,function(){e.qa[b.Na]|=128;e.S=e.S&65534|128;return!!(e.S&64)})};
function fc(a,b,c,d,f,e){var g=~~((e+c.Wa-1)/c.Wa),h=new XMLHttpRequest;2048>g&&d+2048<c.Yc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Wa<<1)+"-"+(((d+g)*c.Wa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,p,q;m=h.response;if(h.status&&206!=h.status||!m)c.kc(1,c,d,f,e);else{m=new Uint8Array(m);n=d;for(q=0;q<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],p=0;p<c.Wa;p++)c.cache[n][p]=q<m.length?
m[q]&255|m[q+1]<<8&65280:0,q+=2;else q+=c.Wa<<1;n++}g(c,d,f,e)}}};h.send(null)}function K(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:a.b.M(4,122):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.cc=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){fc(this,this.cc,a,b,c,d);return}for(f=0;f<a.Wa&&0<d;f++){var e=a.Xc?gc(this.b,c):c;this.b.F.pb(e,a.cache[b][f]&65535);c+=2;--d}b++}a.kc(0,a,b,c,d)};
function bc(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.Wa;e++)b.cache[c][e]=0;for(e=0;e<b.Wa&&0<f;e++){g=a.b.dc(b.Xc?gc(a.b,d):d);if(0>g){b.kc(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.kc(0,b,c,d,f)}l.reset=function(){this.A.tb=this.A.tb&-120|20;this.i.ta=0;this.i.wa=128;this.j.$a=0;this.B.P=128;this.D.L=128;dc(this)};
l.Jc=function(a,b,c){var d,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.eb&65280:(a&1&&(b<<=8),e.eb=b|255,d=0);break;case 4194298:if(0>b)d=e.nc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nc=d;e.Ra=2}break;case 4194294:if(70!==e.lb)return e.M(4,222);0>b?d=e.I:d=e.I=0;break;case 4194292:if(70!==e.lb)return e.M(4,224);d=1;break;case 4194290:if(70!==e.lb)return e.M(4,226);d=0;break;case 4194288:if(70!==e.lb)return e.M(4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.lb)return e.M(4,232);f=a-4194272>>1;0>b?d=e.jc[f]:(d=K(this,e.jc[f],a,b,c),0<=d&&(e.jc[f]=d));break;case 4194254:return a&1?e.O>>14&1?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[3]=b),d=e.Aa[3]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[1]=b),d=e.Aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.O&2048?(0<=b&&(e.g[f]=b),d=e.g[f]):(0<=b&&(e.Sa[f]=
b),d=e.Sa[f]),d;case 4194246:return a&1?(0<=b&&(e.g[7]=b),d=e.g[7]):e.O>>14&0?(0<=b&&(e.g[6]=b),d=e.g[6]):(0<=b&&(e.Aa[0]=b),d=e.Aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.O&2048?(0<=b&&(e.Sa[f]=b),d=e.Sa[f]):(0<=b&&(e.g[f]=b),d=e.g[f]),d;default:return e.I|=16,e.M(4,124)}break;case 4194176:f=a>>1&31;d=K(this,e.la[3][f],a,b,c);0<=d&&(e.la[3][f]=d,e.la[3][f&15]&=65295);break;case 4194112:var g=this.i;switch(a&-2){case 4194174:d=K(this,e.ec,a,b,c);0<=d&&(e.ec=d);break;case 4194172:d=
e.cb;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.A.qd&65535:(d=K(this,this.A.data,a,b,c),0<=d&&(this.A.data=d));break;case 4194166:0<=b&&(b&127&&(g.Oc=0),g.wa&=-129,J(e,100,4,52,function(){g.wa|=128;return!!(g.wa&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ta&=-129,0<g.lc.length&&(d=g.lc.shift(),0<g.lc.length&&setTimeout(function(){g.ta|=128;g.ta&64&&J(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ta:(d=K(this,g.ta,a,b,c),0<=d&&(g.ta=g.ta&128|d&-129));break;default:return e.I|=16,e.M(4,
126)}break;case 4194048:f=this.B;switch(a&-2){case 4194048:d=K(this,f.Tb,a,b,c);0<=d&&(f.Tb=d);break;case 4194050:d=K(this,f.ma,a,b,c);0<=d&&(f.ma=d);break;case 4194052:d=K(this,f.P,a,b,c);0<=b&&0<=d&&(f.P=d&-36993|f.P&36992,f.P&1&&ac(this));break;case 4194054:d=K(this,f.Ub,a,b,c);0<=d&&(f.Ub=d);break;case 4194056:d=K(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;case 4194058:d=K(this,f.ua,a,b,c);0<=d&&(f.ua=d);break;case 4194060:break;case 4194062:d=K(this,f.Cc,a,b,c);0<=d&&(f.Cc=d);break;default:return e.I|=
16,e.M(4,128)}break;case 4193728:var h=this.H;f=h.Ca&7;switch(a&-2){case 4193728:d=K(this,h.S,a,b,c);0<=b&&0<=d&&(h.fb=h.fb&60|d>>8&3,h.S=d&17279|h.S&34944|2048,d&1&&h.S&128?ec(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.zb,a,b,c);0<=d&&(h.zb=d);break;case 4193732:d=K(this,h.xb,a,b,c);0<=d&&(h.xb=d&65534);break;case 4193734:d=K(this,h.Da[f],a,b,c);0<=d&&(h.Da[f]=d&7967);break;case 4193736:d=K(this,h.Ca,a,b,c);0<=d&&(h.Ca=d&63|h.Ca&65472,d&128&&dc(this));break;case 4193738:d=
h.qa[f];break;case 4193740:d=h.yb[f];break;case 4193742:d=K(this,h.ob,a,b,c);0<=d&&(h.ob=d&255);break;case 4193744:d=h.nd[f];break;case 4193746:d=K(this,h.Dc,a,b,c);0<=d&&(h.Dc=d);break;case 4193748:d=K(this,h.Ec[f],a,b,c);0<=d&&(h.Ec[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.od[f];break;case 4193754:d=K(this,h.Fc[f],a,b,c);0<=d&&(h.Fc[f]=d);break;case 4193756:d=K(this,h.Ta[f],a,b,c);0<=d&&(h.Ta[f]=d&511);break;case 4193758:h.fc[f]=h.Ta[f];d=h.fc[f];break;case 4193760:d=h.ld[f];
break;case 4193762:d=h.md[f];break;case 4193764:d=h.jd[f];break;case 4193766:d=h.kd[f];break;case 4193768:d=K(this,h.fb,a,b,c);0<=d&&(h.fb=d&63,h.S=h.S&-769|(d&3)<<8);break;case 4193770:d=K(this,h.oc,a,b,c);0<=d&&(h.oc=d);break;default:return e.I|=16,e.M(4,132)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=K(this,f.L,a,b,c);0<=b&&0<=d&&(f.Va=f.Va&60|d>>4&3,f.L=f.L&-1023|d&1022,f.L&128||cc(this));break;case 4192514:d=K(this,f.Jb,a,b,c);0<=d&&(f.Jb=d&65534);break;case 4192516:d=K(this,f.fa,
a,b,c);0<=d&&(f.fa=d);break;case 4192518:d=K(this,f.ab,a,b,c);0<=d&&(f.ab=d);break;case 4192520:d=K(this,f.Va,a,b,c);0<=d&&(f.Va=d&63,f.L=f.L&-49|(f.Va&3)<<4);break;default:return e.I|=16,e.M(4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.nb:(d=K(this,e.nb,a,b,c),0<=d&&(70!==e.lb&&(d&=-49),e.nb=d,e.bc[0]=d&4?15:7,e.bc[1]=d&2?15:7,e.bc[3]=d&1?15:7,e.ac&&(f=2,e.nb&16&&(f=1),this.A.tb=this.A.tb&-8|f)));break;default:return e.I|=16,e.M(4,136)}break;case 4191424:f=a>>1&31;d=K(this,e.la[0][f],
a,b,c);0<=d&&(e.la[0][f]=d,e.la[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.la[1][f],a,b,c);0<=d&&(e.la[1][f]=d,e.la[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.lb)return e.M(4,234);f=a>>2&31;d=e.Wb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=K(this,d,a,b,c),0<=d&&(e.Wb[f]=a&2?d<<16|e.Wb[f]&65535:e.Wb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Nb[a>>1&255];else return e.I|=16,e.M(4,
138);break;default:return e.I|=16,e.M(4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var hc={},Lb=(hc[65382]=[null,null,I.prototype.ad,I.prototype.sd,"LKS"],hc[65392]=[null,null,I.prototype.dd,I.prototype.vd,"RCSR"],hc[65396]=[null,null,I.prototype.ed,I.prototype.wd,"XCSR"],hc[65402]=[null,null,I.prototype.bd,I.prototype.td,"MMR0"],hc[65534]=[null,null,I.prototype.cd,I.prototype.ud,"PSW"],hc);
Pa(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new I(d);cb(d,c)}});var ic;if(vb){var jc=new ArrayBuffer(2);(new DataView(jc)).setUint16(0,256,!0);ic=256===(new Uint16Array(jc))[0]}else ic=!1;var kc=ic;
function H(a,b,c,d,f){this.id=lc+=2;this.b=null;this.w=a;this.Yb=b;this.size=c||0;this.type=d||mc;this.i=d==nc;this.controller=null;zb(this);this.Ya=this.Qc=!1;if(c)if(f)this.controller=f,this.b=null,oc(this,f.Gb);else if(vb)this.D=new ArrayBuffer(c),this.G=new DataView(this.D,0,c),this.I=new Uint8Array(this.D,0,c),this.R=new Uint16Array(this.D,0,c>>1),this.b=new Int32Array(this.D,0,c>>2),oc(this,kc?pc:qc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;oc(this,rc)}else oc(this)}
function H(a,b,c,d,f){this.id=lc+=2;this.b=null;this.w=a;this.Yb=b;this.size=c||0;this.type=d||mc;this.i=d==nc;this.controller=null;zb(this);this.Ya=this.Qc=!1;if(c)if(f)this.controller=f,this.b=null,oc(this,f.Gb);else if(vb)this.D=new ArrayBuffer(c),this.H=new DataView(this.D,0,c),this.J=new Uint8Array(this.D,0,c),this.R=new Uint16Array(this.D,0,c>>1),this.b=new Int32Array(this.D,0,c>>2),oc(this,kc?pc:qc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;oc(this,rc)}else oc(this)}
var mc=0,nc=2,Fb=4,Hb=["NONE","RAM","ROM","VID","H/W"],lc=0;
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(vb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.G.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(vb)for(b=0;b<a.length;b++)this.G.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ya=!0}return!1},jb:function(a,b){b?this.A++||sc(this,tc,!1):this.j++||uc(this,tc,!1)},T:function(){this.C&&E(this.C,129)&&this.C.message("attempt to read invalid block %"+
t(this.w),!0);return 255},B:function(a,b){this.C&&E(this.C,129)&&this.C.message("attempt to write "+t(b,4,!0)+" to invalid block %"+t(this.w),!0)},W:function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8},J:function(a,b,c){this.Cb(a++,b&255,c++);this.Cb(a,b>>8,c)},ea:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa: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},Ba:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ya=
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(vb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(vb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ya=!0}return!1},jb:function(a,b){b?this.A++||sc(this,tc,!1):this.j++||uc(this,tc,!1)},T:function(){this.C&&E(this.C,129)&&this.C.message("attempt to read invalid block %"+
t(this.w),!0);return 255},B:function(a,b){this.C&&E(this.C,129)&&this.C.message("attempt to write "+t(b,4,!0)+" to invalid block %"+t(this.w),!0)},W:function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8},K:function(a,b,c){this.Cb(a++,b&255,c++);this.Cb(a,b>>8,c)},ea:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa: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},Fa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ya=
!0},Eb:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ya=!0},ca:function(a,b){if(this.C&&null!=this.w){var c=this.C;vc(c,this.w+a,1,c.W)&&c.na(!0)}return this.Qb(a,b)},ja:function(a,b){if(this.C&&null!=this.w){var c=this.C;vc(c,this.w+a,2,c.W)&&c.na(!0)}return this.mc(a,b)},ya:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,1,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.Db(a,
b,c)},Ha:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,2,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.rc(a,b,c)},$:function(a){return this.I[a]},da:function(a){return this.I[a]},ha:function(a){return this.G.getUint16(a,!0)},oa:function(a){return a&1?this.I[a]|this.I[a+1]<<8:this.R[a>>1]},xa:function(a,b){this.I[a]=b;this.Ya=!0},za:function(a,b){this.I[a]=b;this.Ya=!0},Ga:function(a,b){this.G.setUint16(a,b,!0);this.Ya=!0},Ma:function(a,b){a&1?(this.I[a]=b,this.I[a+1]=b>>8):this.R[a>>
1]=b;this.Ya=!0}};function zb(a,b,c){a.C=b;a.j=a.A=0;c&&((a.j=c.j)&&uc(a,tc,!1),(a.A=c.A)&&sc(a,tc,!1))}function wc(a,b){b?--a.A||(a.Cb=a.i?a.B:a.Db,a.Hc=a.i?a.J:a.rc):--a.j||(a.wb=a.Qb,a.Rb=a.mc)}function sc(a,b,c){c&&a.A||(a.Cb=!a.i&&b[1]||a.B,a.Hc=!a.i&&b[3]||a.J);if(c||void 0===c)a.Db=b[1]||a.B,a.rc=b[3]||a.J}function uc(a,b,c){c&&a.j||(a.wb=b[0]||a.T,a.Rb=b[2]||a.W);if(c||void 0===c)a.Qb=b[0]||a.T,a.mc=b[2]||a.W}function oc(a,b){b||(b=xc);uc(a,b,void 0);sc(a,b,void 0)}
var xc=[],rc=[H.prototype.ea,H.prototype.Ba,H.prototype.sa,H.prototype.Eb],tc=[H.prototype.ca,H.prototype.ya,H.prototype.ja,H.prototype.Ha];if(vb)var qc=[H.prototype.$,H.prototype.xa,H.prototype.ha,H.prototype.Ga],pc=[H.prototype.da,H.prototype.za,H.prototype.oa,H.prototype.Ma];
function yc(a,b){w.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.za=a.cycles||b;this.bb=c;this.Ga=Math.round(this.za/1E4)/100;this.mb=this.Ga*this.bb;this.u.ga=!1;this.u.pc=!1;this.u.Hb=a.autoStart;this.u.xc=!1;this.u.rb=!1;this.Nb=this.ca=0;this.Ob=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.D=[];this.Ma=this.pd.bind(this);F(this)}B(yc);var zc=["power","reset"];l=yc.prototype;
l.Za=function(a,b,c,d){this.i=a;this.F=b;this.C=d;for(b=0;b<zc.length;b++)(c=this.I[zc[b]])&&this.i.va(null,zc[b],c);this.ha=null;a=Ac(a,"autoStart");null!=a&&(this.u.Hb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ra=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Vc(this)}else this.reset();this.C?(a=this.C,a.f("Type ? for help with PDP11 Debugger commands"),a.Fa(),a.qb&&(b=a.qb,a.qb=null,Wc(a,b))):this.f("No debugger detected")}L(this);return!0};l.Qa=function(a){return a?this.save():!0};l.Hb=function(){return this.u.Hb||!this.C&&void 0===this.I.run?(this.Ab(!0),!0):!1};l.zc=function(){return 0};
b,c)},Ha:function(a,b,c){if(this.C&&null!=this.w){var d=this.C;vc(d,this.w+a,2,d.D)&&d.na(!0)}this.i?this.B(a,b,c):this.rc(a,b,c)},$:function(a){return this.J[a]},da:function(a){return this.J[a]},ha:function(a){return this.H.getUint16(a,!0)},ra:function(a){return a&1?this.J[a]|this.J[a+1]<<8:this.R[a>>1]},xa:function(a,b){this.J[a]=b;this.Ya=!0},za:function(a,b){this.J[a]=b;this.Ya=!0},Ga:function(a,b){this.H.setUint16(a,b,!0);this.Ya=!0},La:function(a,b){a&1?(this.J[a]=b,this.J[a+1]=b>>8):this.R[a>>
1]=b;this.Ya=!0}};function zb(a,b,c){a.C=b;a.j=a.A=0;c&&((a.j=c.j)&&uc(a,tc,!1),(a.A=c.A)&&sc(a,tc,!1))}function wc(a,b){b?--a.A||(a.Cb=a.i?a.B:a.Db,a.Hc=a.i?a.K:a.rc):--a.j||(a.wb=a.Qb,a.Rb=a.mc)}function sc(a,b,c){c&&a.A||(a.Cb=!a.i&&b[1]||a.B,a.Hc=!a.i&&b[3]||a.K);if(c||void 0===c)a.Db=b[1]||a.B,a.rc=b[3]||a.K}function uc(a,b,c){c&&a.j||(a.wb=b[0]||a.T,a.Rb=b[2]||a.W);if(c||void 0===c)a.Qb=b[0]||a.T,a.mc=b[2]||a.W}function oc(a,b){b||(b=xc);uc(a,b,void 0);sc(a,b,void 0)}
var xc=[],rc=[H.prototype.ea,H.prototype.Fa,H.prototype.sa,H.prototype.Eb],tc=[H.prototype.ca,H.prototype.ya,H.prototype.ja,H.prototype.Ha];if(vb)var qc=[H.prototype.$,H.prototype.xa,H.prototype.ha,H.prototype.Ga],pc=[H.prototype.da,H.prototype.za,H.prototype.ra,H.prototype.La];
function yc(a,b){w.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.ya=a.cycles||b;this.bb=c;this.Fa=Math.round(this.ya/1E4)/100;this.mb=this.Fa*this.bb;this.u.ga=!1;this.u.pc=!1;this.u.Hb=a.autoStart;this.u.xc=!1;this.u.rb=!1;this.Nb=this.ca=0;this.Ob=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.D=[];this.Ha=this.pd.bind(this);F(this)}B(yc);var zc=["power","reset"];l=yc.prototype;
l.Za=function(a,b,c,d){this.i=a;this.F=b;this.C=d;for(b=0;b<zc.length;b++)(c=this.J[zc[b]])&&this.i.va(null,zc[b],c);this.ha=null;a=Ac(a,"autoStart");null!=a&&(this.u.Hb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Qa=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Vc(this)}else this.reset();this.C?(a=this.C,a.f("Type ? for help with PDP11 Debugger commands"),a.Ea(),a.qb&&(b=a.qb,a.qb=null,Wc(a,b))):this.f("No debugger detected")}L(this);return!0};l.Pa=function(a){return a?this.save():!0};l.Hb=function(){return this.u.Hb||!this.C&&void 0===this.J.run?(this.Ab(!0),!0):!1};l.zc=function(){return 0};
function Vc(a){void 0===a.Ob&&(a.Ob=0);void 0===a.ub&&(a.ub=-1);void 0===a.vb&&(a.vb=-1);a.u.rb=0<=a.Ob&&0<a.ub;a.u.rb&&(a.Nb=0,a.ca=a.Ob-a.$)}function Xc(a,b){if(a.u.rb){var c=!1;a.Nb=a.Nb+a.zc()|0;a.ca-=b;0>=a.ca&&(a.ca+=a.ub,c=!0);0<=a.vb&&a.vb<=Yc(a)&&(a.ub=a.vb=-1,Vc(a),a.na(),c=!0);c&&a.f(Yc(a)+" cycles: checksum="+t(a.Nb))}}
function Zc(a,b,c,d){if(a.I[b]){void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.na());var f=a.C&&a.C.ea||8;c=!a.u.ga||a.u.xc?8==f?r(c,d):t(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}}
l.va=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.I[b]=c;a=!0;break;case "run":this.I[b]=c;c.onclick=function(){var a;if(a=d.i)if(a=d.i,a.u.ia)a=!0;else{var b=null,c,h=ab(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.u.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.u.ia);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.u.ready?"powered yet":"ready yet"+(b.$b?" (waiting for notification)":""))+".");a=!1}a&&(d.u.ga?d.na():d.Ab())};
a=!0;break;case "speed":this.I[b]=c;a=!0;break;case "setSpeed":this.I[b]=c,c.onclick=function(){$c(d,d.bb<<1,!0)},c.textContent=this.mb.toFixed(2)+"Mhz",a=!0}return a};function ad(a,b,c){a.$+=b;c&&(a.W=a.b=0)}function bd(a,b){var c=1;b&&1<a.bb&&a.R&&(c=a.R/a.Ga);a.Ib=Math.round(1E3/30);a.Ba=Math.floor(a.za/30*c);b||(a.da=a.Ba);a.Ha=0}function Yc(a){return a.$+a.J+a.W-a.b}function Bc(a){a.R=0;a.Lb=0;a.$=a.J=a.W=a.b=0;Vc(a);$c(a,1)}
function $c(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.mb?b=1:d=!0;a.bb=b;b=a.Ga*a.bb;if(a.mb!=b){a.mb=b;b=a.mb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.f("target speed: "+b)}c&&a.i&&a.i.Xb()}ad(a,a.J);a.J=0;a.G=pa();a.T=0;bd(a);return d}function Ob(a,b){var c=a.D.length;a.D.push([-1,b]);return c}function Xb(a,b){var c;0<=b&&b<a.D.length&&0>a.D[b][0]&&(c=a.za*a.bb/1E3*(1E3/60),a.D[b][0]=c)}function cd(a){a.W-=a.b;a.b=0}
l.pd=function(){if(this.u.ga){this.Ha>=this.za&&bd(this,!0);this.ja=0;this.ya=pa();if(this.T){var a=this.ya-this.T;a>this.Ib&&(this.G+=a,this.G>this.ya&&(this.G=this.ya))}try{do{for(var b,c=this.u.rb?1:this.Ba,d=this.D.length-1;0<=d;d--){var f=this.D[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Bb(b)}catch(k){if("number"!=typeof k)throw k;}for(var e=this.W-this.b,a=e,g=this.D.length-1;0<=g;g--){var h=this.D[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ja+=e;this.J+=e;ad(this,0,!0);Xc(this,e);this.da-=
e;if(0>=this.da){this.da+=this.Ba;15<=++this.Lb&&(this.i&&this.i.Fa(),this.Lb=0);break}}while(this.u.ga)}catch(k){this.na();L(this);this.i&&this.i.stop(pa(),Yc(this));ub(this,k.stack||k.message);return}if(this.u.ga){b=setTimeout;c=this.Ma;this.T=pa();d=this.Ib;this.ja&&(d=Math.round(d*this.ja/this.Ba));d-=this.T-this.ya;if(f=this.T-this.G)this.R=Math.round(this.J/(10*f))/100,864E5<=f&&(this.$=0,$c(this));if(0>d||this.R<this.mb)-1E3>d&&(this.G-=d),d=0;this.Ha+=this.ja;this.T+=d;b(c,d)}}};
l.Ab=function(a){if(tb(this))return!1;if(this.u.ga)return this.f(this.toString()+" busy"),!1;$c(this);this.u.ga=!0;this.u.pc=!0;this.ha&&this.ha.start();var b=this.I.run;b&&(b.textContent="Halt");this.i&&(this.i.start(this.G,Yc(this)),a&&this.i.Xb(!0));L(this,!0);setTimeout(this.Ma,0);return!0};l.Bb=function(){return 0};
l.na=function(a){if(this.u.ga){cd(this);ad(this,this.J);this.J=0;this.u.ga=!1;this.ha&&this.ha.stop();var b=this.I.run;b&&(b.textContent="Run");this.i&&this.i.stop(pa(),Yc(this));L(this)}this.u.complete=a};function L(a,b){a.i&&a.i.Fa(b)}
function dd(a){this.Zc=+a.model||1170;this.Zb=a.resetAddr||0;yc.call(this,a,1E6);this.Fb=0;this.decode=ed.bind(this);this.U=65536;this.V=32768;this.Z=65535;this.X=32768;this.O=15;this.g=[0,0,0,0,0,0,0,this.Zb];this.Ta=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.xa=this.A=0;this.la=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0],[0,0,0,0,0,0,0,0,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.Wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.jc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.N=0;this.lb=70;this.ea=-1;this.oa=0;fd(this);this.u.complete=this.u.Nc=!1}B(dd,yc);l=dd.prototype;l.reset=function(){this.u.ga&&this.na();fd(this);Bc(this);this.u.error=!1;this.parent.reset.call(this)};
function fd(a){a.eb=255;a.H=0;a.nc=0;a.B=0;a.cb=0;a.ec=0;a.nb=0;a.ac=0;a.sa=0;a.bc=[7,7,7,7];a.j=[];a.Sa=2;Yb(a)}function Yb(a){a.ac?(a.qb=65536,a.ba=a.Uc,a.Rb=a.La):(a.qb=0,a.ba=a.Tc,a.Rb=a.dc)}l.zc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.$,this.bb]);a.set(2,Jb(this.F));return a.data()};
l.restore=function(a){var b=a[1];this.$=b[1];$c(this,b[3]);a:{b=this.F;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.R){for(var e=0,g=Array(b.R),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.M[d];if(!e||!e.restore(f)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.va=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.I[b]=c;this.Fb++;a=!0;break;default:a=this.parent.va.call(this,a,b,c)}return a};
l.Fa=function(a){if(this.Fb&&(a||!this.u.ga||this.u.xc)){for(a=0;a<this.g.length;a++)Zc(this,"R"+a,this.g[a]);a=Zb(this);Zc(this,"PS",a);Zc(this,"NF",a&8?1:0,1);Zc(this,"ZF",a&4?1:0,1);Zc(this,"VF",a&2?1:0,1);Zc(this,"CF",a&1?1:0,1)}if(a=this.I.speed)a.textContent=this.u.ga&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};function N(a){return a.U&65536?1:0}function gd(a){return a.V&32768?2:0}function hd(a){return a.Z&65535?0:4}l.Pa=function(){return this.X&32768?8:0};
function id(a){var b=a.La(a.g[7]);a.g[7]=a.g[7]+2&65535;return b}function J(a,b,c,d,f){for(var e=a.j.length;0<e--;)if(a.j[e].rd===d){0<e&&(a.j[e-1].Ia+=a.j[e].Ia);a.j.splice(e,1);break}if(0<=b){2===a.oa&&(b=0,a.oa=0,setTimeout(a.Ma,0));for(e=a.j.length;0<e--;){if(a.j[e].Ia>b){a.j[e].Ia-=b;break}b-=a.j[e].Ia}a.j.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.Sa=2}function Zb(a){return a.O=a.O&63728|a.Pa()|hd(a)|gd(a)|N(a)}
function $b(a,b){a.X=b<<12;a.Z=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.O)&2048)for(var c=a.Ta.length;0<=--c;){var d=a.g[c];a.g[c]=a.Ta[c];a.Ta[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Aa[c]=a.g[6],a.g[6]=a.Aa[a.A]);a.Sa=2;a.O=b}function O(a,b){a.N&128||(a.X=a.Z=b,a.V=0)}function jd(a,b,c){a.N&128||(a.X=a.Z=a.U=b,a.V=c||0)}function kd(a,b,c,d){a.N&128||(a.X=a.Z=a.U=b,a.V=(c^b)&(d^b))}function ld(a,b){a.N&128||(a.X=a.Z=a.U=b,a.V=a.X^a.U>>1)}function md(a,b,c,d){a.N&128||(a.X=a.Z=a.U=b,a.V=(c^d)&(d^b))}
l.L=function(a){var b=!1;0>this.ea?this.ea=Zb(this):this.A||(a=4,b=!0);this.B&57344||(this.cb=63222,this.ec=a);this.A=0;var c=this.La(a|65536),d=this.La(a+2&65535|65536);$b(this,d&-12289|this.ea>>2&12288);b&&(this.H|=4,this.g[6]=4);nd(this,this.ea);nd(this,this.g[7]);this.g[7]=c;this.N&=-113;this.ea=-1;throw a;};function od(a){var b=pd(a),c=pd(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);a.g[7]=b&65535;$b(a,c);a.N&=-17}
function Zc(a,b,c,d){if(a.J[b]){void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.na());var f=a.C&&a.C.ea||8;c=!a.u.ga||a.u.xc?8==f?r(c,d):t(c,d):"--------".substr(0,d||4);a.J[b].textContent!=c&&(a.J[b].textContent=c)}}
l.va=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.J[b]=c;a=!0;break;case "run":this.J[b]=c;c.onclick=function(){var a;if(a=d.i)if(a=d.i,a.u.ia)a=!0;else{var b=null,c,h=ab(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.u.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.u.ia);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.u.ready?"powered yet":"ready yet"+(b.$b?" (waiting for notification)":""))+".");a=!1}a&&(d.u.ga?d.na():d.Ab())};
a=!0;break;case "speed":this.J[b]=c;a=!0;break;case "setSpeed":this.J[b]=c,c.onclick=function(){$c(d,d.bb<<1,!0)},c.textContent=this.mb.toFixed(2)+"Mhz",a=!0}return a};function ad(a,b,c){a.$+=b;c&&(a.W=a.b=0)}function bd(a,b){var c=1;b&&1<a.bb&&a.R&&(c=a.R/a.Fa);a.Ib=Math.round(1E3/30);a.za=Math.floor(a.ya/30*c);b||(a.da=a.za);a.Ga=0}function Yc(a){return a.$+a.K+a.W-a.b}function Bc(a){a.R=0;a.Lb=0;a.$=a.K=a.W=a.b=0;Vc(a);$c(a,1)}
function $c(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.mb?b=1:d=!0;a.bb=b;b=a.Fa*a.bb;if(a.mb!=b){a.mb=b;b=a.mb.toFixed(2)+"Mhz";var f=a.J.setSpeed;f&&(f.textContent=b);a.f("target speed: "+b)}c&&a.i&&a.i.Xb()}ad(a,a.K);a.K=0;a.H=pa();a.T=0;bd(a);return d}function Wb(a,b){var c=a.D.length;a.D.push([-1,b]);return c}function Xb(a,b){var c;0<=b&&b<a.D.length&&0>a.D[b][0]&&(c=a.ya*a.bb/1E3*(1E3/60),a.D[b][0]=c)}function cd(a){a.W-=a.b;a.b=0}
l.pd=function(){if(this.u.ga){this.Ga>=this.ya&&bd(this,!0);this.ja=0;this.xa=pa();if(this.T){var a=this.xa-this.T;a>this.Ib&&(this.H+=a,this.H>this.xa&&(this.H=this.xa))}try{do{for(var b,c=this.u.rb?1:this.za,d=this.D.length-1;0<=d;d--){var f=this.D[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Bb(b)}catch(k){if("number"!=typeof k)throw k;}for(var e=this.W-this.b,a=e,g=this.D.length-1;0<=g;g--){var h=this.D[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ja+=e;this.K+=e;ad(this,0,!0);Xc(this,e);this.da-=
e;if(0>=this.da){this.da+=this.za;15<=++this.Lb&&(this.i&&this.i.Ea(),this.Lb=0);break}}while(this.u.ga)}catch(k){this.na();L(this);this.i&&this.i.stop(pa(),Yc(this));ub(this,k.stack||k.message);return}if(this.u.ga){b=setTimeout;c=this.Ha;this.T=pa();d=this.Ib;this.ja&&(d=Math.round(d*this.ja/this.za));d-=this.T-this.xa;if(f=this.T-this.H)this.R=Math.round(this.K/(10*f))/100,864E5<=f&&(this.$=0,$c(this));if(0>d||this.R<this.mb)-1E3>d&&(this.H-=d),d=0;this.Ga+=this.ja;this.T+=d;b(c,d)}}};
l.Ab=function(a){if(tb(this))return!1;if(this.u.ga)return this.f(this.toString()+" busy"),!1;$c(this);this.u.ga=!0;this.u.pc=!0;this.ha&&this.ha.start();var b=this.J.run;b&&(b.textContent="Halt");this.i&&(a&&this.i.Xb(!0),this.i.start(this.H,Yc(this)));L(this,!0);setTimeout(this.Ha,0);return!0};l.Bb=function(){return 0};
l.na=function(a){if(this.u.ga){cd(this);ad(this,this.K);this.K=0;this.u.ga=!1;this.ha&&this.ha.stop();var b=this.J.run;b&&(b.textContent="Run");this.i&&this.i.stop(pa(),Yc(this));L(this)}this.u.complete=a};function L(a,b){a.i&&a.i.Ea(b)}
function dd(a){this.Zc=+a.model||1170;this.Zb=a.resetAddr||0;yc.call(this,a,1E6);this.Fb=0;this.decode=ed.bind(this);this.U=65536;this.V=32768;this.Z=65535;this.X=32768;this.O=15;this.g=[0,0,0,0,0,0,0,this.Zb];this.Sa=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.sa=this.A=0;this.la=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0],[0,0,0,0,0,0,0,0,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.Wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.jc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.G=0;this.lb=70;this.ea=-1;this.La=0;fd(this);this.u.complete=this.u.Nc=!1}B(dd,yc);l=dd.prototype;l.reset=function(){this.u.ga&&this.na();fd(this);Bc(this);this.u.error=!1;this.parent.reset.call(this)};
function fd(a){a.eb=255;a.I=0;a.nc=0;a.B=0;a.cb=0;a.ec=0;a.nb=0;a.ac=0;a.ra=0;a.bc=[7,7,7,7];a.j=[];a.Ra=2;Yb(a)}function Yb(a){a.ac?(a.qb=65536,a.ba=a.Uc,a.Rb=a.Ka):(a.qb=0,a.ba=a.Tc,a.Rb=a.dc)}l.zc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.$,this.bb]);a.set(2,Jb(this.F));return a.data()};
l.restore=function(a){var b=a[1];this.$=b[1];$c(this,b[3]);a:{b=this.F;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.R){for(var e=0,g=Array(b.R),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.N[d];if(!e||!e.restore(f)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.va=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.J[b]=c;this.Fb++;a=!0;break;default:a=this.parent.va.call(this,a,b,c)}return a};
l.Ea=function(a){if(this.Fb&&(a||!this.u.ga||this.u.xc)){for(a=0;a<this.g.length;a++)Zc(this,"R"+a,this.g[a]);a=Zb(this);Zc(this,"PS",a);Zc(this,"NF",a&8?1:0,1);Zc(this,"ZF",a&4?1:0,1);Zc(this,"VF",a&2?1:0,1);Zc(this,"CF",a&1?1:0,1)}if(a=this.J.speed)a.textContent=this.u.ga&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};function N(a){return a.U&65536?1:0}function gd(a){return a.V&32768?2:0}function hd(a){return a.Z&65535?0:4}l.Oa=function(){return this.X&32768?8:0};
function id(a){var b=a.Ka(a.g[7]);a.g[7]=a.g[7]+2&65535;return b}function J(a,b,c,d,f){for(var e=a.j.length;0<e--;)if(a.j[e].rd===d){0<e&&(a.j[e-1].Xa+=a.j[e].Xa);a.j.splice(e,1);break}if(0<=b){2===a.La&&(b=0,a.La=0,setTimeout(a.Ha,0));for(e=a.j.length;0<e--;){if(a.j[e].Xa>b){a.j[e].Xa-=b;break}b-=a.j[e].Xa}a.j.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.Ra=2}
function jd(a){if(1==a.Ra)a.Ra=2;else{a.Ra=0;for(var b=null,c=a.nc&224,d=a.j.length;0<=--d;){if(0<a.j[d].Xa){a.j[d].Xa--;a.Ra=2;break}if(a.j[d].vc){if(!a.j[d].vc()){a.j.splice(d,1);continue}a.j[d].vc=null}a.j[d].$c>c&&(c=a.j[d].$c,b=a.j[d],a.j.splice(d,1))}c>(a.O&224)&&(a.G&=-2,b?a.M(b.rd,26):a.M(160,26))}}function Zb(a){return a.O=a.O&63728|a.Oa()|hd(a)|gd(a)|N(a)}
function $b(a,b){a.X=b<<12;a.Z=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.O)&2048)for(var c=a.Sa.length;0<=--c;){var d=a.g[c];a.g[c]=a.Sa[c];a.Sa[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Aa[c]=a.g[6],a.g[6]=a.Aa[a.A]);a.Ra=2;a.O=b}function O(a,b){a.G&128||(a.X=a.Z=b,a.V=0)}function kd(a,b,c){a.G&128||(a.X=a.Z=a.U=b,a.V=c||0)}function ld(a,b,c,d){a.G&128||(a.X=a.Z=a.U=b,a.V=(c^b)&(d^b))}function md(a,b){a.G&128||(a.X=a.Z=a.U=b,a.V=a.X^a.U>>1)}function nd(a,b,c,d){a.G&128||(a.X=a.Z=a.U=b,a.V=(c^d)&(d^b))}
l.M=function(a){var b=!1;0>this.ea?this.ea=Zb(this):this.A||(a=4,b=!0);this.B&57344||(this.cb=63222,this.ec=a);this.A=0;var c=this.Ka(a|65536),d=this.Ka(a+2&65535|65536);$b(this,d&-12289|this.ea>>2&12288);b&&(this.I|=4,this.g[6]=4);od(this,this.ea);od(this,this.g[7]);this.g[7]=c;this.G&=-113;this.ea=-1;throw a;};function pd(a){var b=qd(a),c=qd(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);a.g[7]=b&65535;$b(a,c);a.G&=-17}
function gc(a,b){var c=b>>13&31;31>c?a.nb&32&&(b=a.Wb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function qd(a,b,c){var d,f,e,g=0;if(c&a.ac){d=b>>13&a.bc[a.A];f=a.la[a.A][d];e=(a.la[a.A][d+16]<<6)+(b&8191)&4194303;a.nb&16?3932160<=e&&4186112>e&&(e=gc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.H|=32,a.L(4,12)),e&1&&!(c&1)&&(a.H|=64,a.L(4,14)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&
8128)&&(g|=16384));a.la[a.A][d]=f;if(4194170!==e||a.A)a.sa=a.A,a.xa=d;g&&(g&57344&&(0<=a.ea&&(g|=128),a.B&57344||(a.B=a.B|g|a.sa<<5|a.xa<<1),a.L(168,16)),a.B&61440||!(4191360>e||4194239<e)||(a.B|=4096,a.B&512&&(a.N|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.H|=64,a.L(4,10));return e}l.dc=function(a){return 4194304<=a?this.g[a-4194304]:0<=a?this.F.Ka(a):a};l.La=function(a){return this.dc(qd(this,a,2))};function pd(a){var b=a.La(a.g[6]|65536);a.g[6]=a.g[6]+2&65535;return b}
function nd(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.B&57344||(a.cb=a.cb<<8|246);!a.A&&c<=a.eb&&4<c&&(c<=a.eb-32?(a.H|=4,a.g[6]=4,a.L(4,18)):(a.H|=8,a.N|=4));c=qd(a,c|65536,4);a.F.pb(c,b&65535)}
function rd(a,b,c){var d,f,e=b&7,g=c&8?0:a.qb;switch(b>>3&7){case 0:a.L(4,20);break;case 1:return 6===e&&!a.A&&c&4&&(a.g[6]<=a.eb||65534<=a.g[6])&&(a.g[6]<=a.eb-32||65534<=a.g[6]?(a.H|=4,a.g[6]=4,a.L(4,22)):(a.H|=8,a.N|=64)),7===e?a.g[e]:a.g[e]|g;case 2:f=2;d=a.g[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.g[e];7!==e&&(d|=g);d=a.La(d);d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.g[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.g[e]-2&65535;7!==e&&(d|=g);d=a.La(d)|g;break;case 6:return d=
id(a),d=d+a.g[e]&65535|g;case 7:return d=id(a),d=d+a.g[e]&65535,d=a.La(d|65536)|g}a.g[e]=a.g[e]+f&65535;!g||a.B&57344||(a.cb=a.cb<<8|f<<3&248|e);6==e&&!a.A&&c&4&&0>=f&&(a.g[6]<=a.eb||65534<=a.g[6])&&(a.g[6]<=a.eb-32?(a.H|=4,a.g[6]=4,a.L(4,24)):(a.H|=8,a.N|=64));return d}l.Tc=function(a,b){return rd(this,a,b)};l.Uc=function(a,b){return qd(this,rd(this,a,b),b)};
function sd(a,b,c){b&56?(b=rd(a,b,0),c&65536||61440!==(a.O&61440)&&(b&=65535),a.A=a.O>>12&3,c=a.La(b|c&65536),a.A=a.O>>14&3):(c=b&7,c=6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]:a.Aa[a.O>>12&3]);return c}function td(a,b,c,d){a.B&57344||(a.cb=22);b&56?(b=rd(a,b,0),c&65536||(b&=65535),a.A=a.O>>12&3,b=qd(a,b|c&65536,4),a.A=a.O>>14&3,a.F.pb(b,d&65535)):(c=b&7,6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]=d:a.Aa[a.O>>12&3]=d)}function P(a,b){return b&56?a.Rb(rd(a,b,2)):a.g[b&7]}
function ud(a,b){b&56?(b=a.ba(b,3),a=a.F.sb(b)):a=a.g[b&7]&255;return a}function R(a,b,c,d){b&56?(b=a.ba(b,6),c=d.call(a,c,a.dc(b)),a.F.pb(b,c&65535)):(b&=7,a.g[b]=d.call(a,c,a.g[b]))}function S(a,b,c,d){b&56?(b=a.ba(b,7),c=d.call(a,c,a.F.sb(b)),a.F.Vb(b,c&255)):(b&=7,a.g[b]=a.g[b]&65280|d.call(a,c,a.g[b]))}function vd(a,b,c){b&56?(b=a.ba(b,4),a.F.pb(b,c&65535)):a.g[b&7]=c&65535;return c}
function wd(a,b,c,d){b&56?(d=a.ba(b,5),a.F.Vb(d,c&255)):(b&=7,a.g[b]=c?d&1?c<<24>>24&65535:a.g[b]&-256|c&255:a.g[b]&-256);return c}function T(a,b){a.g[7]=a.g[7]+(b<<24>>23)&65535}
l.Bb=function(a){this.u.complete=!0;var b=this.u.Nc=this.C&&xd(this.C),c=a?this.u.pc?0:1:-1;this.u.pc=!1;this.W=this.b=a;do{if(b){if(yd(this.C,this.g[7],c)){this.na();break}c=1}this.N&112&&(this.N&32?this.L(168,28):this.N&64?this.L(4,30):this.N&16&&this.L(12,32),this.N&=-113);if(a&&this.Sa)if(1==this.Sa)this.Sa=2;else{this.Sa=0;for(var d=null,f=this.nc&224,e=this.j.length;0<=--e;){if(0<this.j[e].Ia){this.j[e].Ia--;this.Sa=2;break}if(this.j[e].vc){if(!this.j[e].vc()){this.j.splice(e,1);continue}this.j[e].vc=
null}this.j[e].$c>f&&(f=this.j[e].$c,d=this.j[e],this.j.splice(e,1))}f>(this.O&224)&&(d?this.L(d.rd,26):this.L(160,26))}this.B&57344||(this.cb=0,this.ec=this.g[7]);this.N=this.O&16;this.decode(id(this))}while(0<this.b);return this.u.complete?this.W-this.b:void 0===this.u.complete?0:-1};Pa(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new dd(d);cb(d,c)}});function zd(a,b){var c=b+a;kd(this,c,a,b);return c&65535}
function Ad(a,b){var c=b+a;kd(this,c<<8,a<<8,b<<8);return c&255}function Bd(a,b){a=b<<1;ld(this,a);return a&65535}function Cd(a,b){a=b<<1;ld(this,a<<8);return a&255}function Dd(a,b){a=b&32768|b>>1|b<<16;ld(this,a);return a&65535}function Ed(a,b){a=b&2048|b>>1|b<<8;ld(this,a<<8);return a&255}function Fd(a,b){a=b&~a;O(this,a);return a}function Gd(a,b){a=b&~a;O(this,a<<8);return a}function Hd(a,b){a|=b;O(this,a);return a}function Id(a,b){a|=b;O(this,a<<8);return a}
function Jd(a,b){a=~b|65536;jd(this,a);return a&65535}function Kd(a,b){a=~b|256;jd(this,a<<8);return a&255}function Ld(a,b){a=b-a;this.N&128||(this.X=this.Z=a,this.V=b&(b^a));return a&65535}function Md(a,b){a=b-a;var c=a<<8;b<<=8;this.N&128||(this.X=this.Z=c,this.V=b&(b^c));return a&255}function Nd(a,b){a=b+a;this.N&128||(this.X=this.Z=a,this.V=a&(b^a));return a&65535}function Od(a,b){a=b+a;var c=a<<8;this.N&128||(this.X=this.Z=c,this.V=c&(b<<8^c));return a&255}
function Pd(a,b){a=-b;jd(this,a,a&b&32768);return a&65535}function Qd(a,b){a=-b;jd(this,a<<8,(a&b&128)<<8);return a&255}function Rd(a,b){a=b<<1|this.U>>16&1;ld(this,a);return a&65535}function Sd(a,b){a=b<<1|this.U>>16&1;ld(this,a<<8);return a&255}function Td(a,b){a=(this.U&65536|b)>>1|b<<16;ld(this,a);return a&65535}function Ud(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;ld(this,a<<8);return a&255}function Vd(a,b){var c=b-a;md(this,c,a,b);return c&65535}
function Wd(a,b){var c=b-a;md(this,c<<8,a<<8,b<<8);return c&255}function Xd(a,b){a^=b;O(this,a);return a&65535}function Yd(a){var b=P(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.U=this.V=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.U=c<<17-b,c>>=b):b&&(16<b?(this.V=c,c=0):(this.U=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.V=32768)));this.g[a]=c&65535;this.X=this.Z=c;--this.b}
function Zd(a){var b=P(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.U=this.V=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.U=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.V=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;--this.b}function U(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Z=1);a&8&&(this.X=0);--this.b}
function $d(a){var b=P(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.V=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1))}else this.Z=this.X=0,this.V=32768,this.U=65536;--this.b}function ae(a){var b=rd(this,a,8);a=a>>6&7;nd(this,this.g[a]);this.g[a]=this.g[7];this.g[7]=b;--this.b}
function be(a){var b=P(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.X=b>>16;this.Z=this.X|b;this.V=0;this.U=-32768>b||32767<b?65536:0;--this.b}function ce(){--this.b}function W(a){a&1&&(this.U=65536);a&2&&(this.V=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);--this.b}function xe(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)this.g[7]=this.g[7]-((a&63)<<1)&65535;--this.b}
function ye(a){R(this,a,P(this,(a&448)>>6),Xd);--this.b}function X(){this.L(8,6)}function ed(a){ze[a>>12].call(this,a)}
var ze=[function(a){Ae[a>>8&15].call(this,a)},function(a){O(this,vd(this,a,P(this,a>>6)));--this.b},function(a){var b=P(this,a>>6);a=P(this,a);md(this,b-a,a,b);--this.b},function(a){O(this,P(this,a>>6)&P(this,a));--this.b},function(a){R(this,a,P(this,a>>6),Fd);--this.b},function(a){R(this,a,P(this,a>>6),Hd);--this.b},function(a){R(this,a,P(this,a>>6),zd);--this.b},function(a){Be[a>>8&15].call(this,a)},function(a){Ce[a>>8&15].call(this,a)},function(a){var b=ud(this,a>>6);O(this,wd(this,a,b,1)<<8);
--this.b},function(a){var b=ud(this,a>>6)<<8;a=ud(this,a)<<8;md(this,b-a,a,b);--this.b},function(a){O(this,(ud(this,a>>6)&ud(this,a))<<8);--this.b},function(a){S(this,a,ud(this,a>>6),Gd);--this.b},function(a){S(this,a,ud(this,a>>6),Id);--this.b},function(a){R(this,a,P(this,a>>6),Vd);--this.b},X],Ae=[function(a){De[a>>4&15].call(this,a)},function(a){T(this,a);--this.b},function(a){hd(this)||T(this,a);--this.b},function(a){hd(this)&&T(this,a);--this.b},function(a){!this.Pa()==!gd(this)&&T(this,a);--this.b},
function(a){!this.Pa()!=!gd(this)&&T(this,a);--this.b},function(a){hd(this)||!this.Pa()!=!gd(this)||T(this,a);--this.b},function(a){(hd(this)||!this.Pa()!=!gd(this))&&T(this,a);--this.b},ae,ae,function(a){Ee[a>>6&3].call(this,a)},function(a){Fe[a>>6&3].call(this,a)},function(a){Ge[a>>6&3].call(this,a)},function(a){He[a>>6&3].call(this,a)},X,X],Ee=[function(a){jd(this,vd(this,a,0));--this.b},function(a){R(this,a,0,Jd);--this.b},function(a){R(this,a,1,Nd);--this.b},function(a){R(this,a,1,Ld);--this.b}],
Fe=[function(a){R(this,a,0,Pd);--this.b},function(a){R(this,a,N(this)?1:0,zd);--this.b},function(a){R(this,a,N(this)?1:0,Vd);--this.b},function(a){a=P(this,a);jd(this,a);--this.b}],Ge=[function(a){R(this,a,0,Td);--this.b},function(a){R(this,a,0,Rd);--this.b},function(a){R(this,a,0,Dd);--this.b},function(a){R(this,a,0,Bd);--this.b}],He=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.La(a|65536);this.g[7]=this.g[5]&65535;this.g[6]=a+2&65535;this.g[5]=b;--this.b},function(a){a=sd(this,a,0);nd(this,
a);O(this,a);--this.b},function(a){var b=pd(this);td(this,a,0,b);O(this,b);--this.b},function(a){O(this,vd(this,a,this.Pa?65535:0));--this.b}],De=[function(a){Ie[a&15].call(this,a)},X,X,X,X,X,X,X,function(a){var b=pd(this);a&=7;this.g[7]=this.g[a];this.g[a]=b;--this.b},function(a){this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.Sa=1);--this.b},function(a){Je[a&15].call(this,a)},function(a){Ke[a&15].call(this,a)},X,X,X,X],Je=[ce,function(){this.U=0;--this.b},function(){this.V=0;--this.b},U,function(){this.Z=
1;--this.b},U,U,U,function(){this.X=0;--this.b},U,U,U,U,U,U,U],Ke=[ce,function(){this.U=65536;--this.b},function(){this.V=32768;--this.b},W,function(){this.Z=0;--this.b},W,W,W,function(){this.X=32768;--this.b},W,W,W,W,W,W,W],Ie=[function(){this.O&49152?(this.H|=128,this.L(4,3)):(this.oa=3,cd(this));--this.b},function(){for(var a=0,b=this.j.length;0<=--b;)a+=this.j[b].Ia,this.j[b].Ia=0;a||0!==this.oa||(this.oa=2,cd(this));--this.b},function(){od(this);this.N|=this.O&16;--this.b},function(){this.L(12,
1);--this.b},function(){this.L(16,4);--this.b},function(){this.O&49152||(fd(this),this.F.reset());--this.b},function(){od(this);--this.b},X,X,X,X,X,X,X,X,X],Be=[be,be,$d,$d,Yd,Yd,Zd,Zd,ye,ye,X,X,X,X,xe,xe],Ce=[function(a){this.Pa()||T(this,a);--this.b},function(a){this.Pa()&&T(this,a);--this.b},function(a){N(this)||hd(this)||T(this,a);--this.b},function(a){(N(this)||hd(this))&&T(this,a);--this.b},function(a){gd(this)||T(this,a);--this.b},function(a){gd(this)&&T(this,a);--this.b},function(a){N(this)||
T(this,a);--this.b},function(a){N(this)&&T(this,a);--this.b},function(){this.L(24,2);--this.b},function(){this.L(28,5);--this.b},function(a){Le[a>>6&3].call(this,a)},function(a){Me[a>>6&3].call(this,a)},function(a){Ne[a>>6&3].call(this,a)},function(a){Oe[a>>6&3].call(this,a)},X,X],Le=[function(a){jd(this,wd(this,a,0));--this.b},function(a){S(this,a,0,Kd);--this.b},function(a){S(this,a,1,Od);--this.b},function(a){S(this,a,1,Md);--this.b}],Me=[function(a){S(this,a,0,Qd);--this.b},function(a){S(this,
a,N(this)?1:0,Ad);--this.b},function(a){S(this,a,N(this)?1:0,Wd);--this.b},function(a){a=ud(this,a);jd(this,a<<8);--this.b}],Ne=[function(a){S(this,a,0,Ud);--this.b},function(a){S(this,a,0,Sd);--this.b},function(a){S(this,a,0,Ed);--this.b},function(a){S(this,a,0,Cd);--this.b}],Oe=[X,function(a){a=sd(this,a,65536);nd(this,a);O(this,a);--this.b},function(a){var b=pd(this);td(this,a,65536,b);O(this,b);--this.b},X];
function Pe(a){w.call(this,"ROM",a,Pe);this.i=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.A=a.alias;this.B=a.file;this.J=ca(this.B);if(this.B){a=this.B;var b=ha(this.J);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,e){Qe(c,a,b,e)})}}B(Pe);Pe.prototype.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;Re(this)};
Pe.prototype.Ra=function(){if(this.Na){if(this.C){var a=this.C,b=this.id,c=this.D,d=this.j,f=this.Na,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],p=oa(n,k,a.wc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({yd:b,w:c,Wc:d,Na:f,tc:e})}delete this.Na}return!0};Pe.prototype.Qa=function(){return!0};
function Qe(a,b,c,d){if(d)a.qa("Unable to load system ROM (error "+d+": "+b+")");else{$a(a.uc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.i=e;else if(e=h.words)for(a.i=Array(2*e.length),g=f=0;f<e.length;f++)a.i[g++]=e[f]&255,a.i[g++]=e[f]>>8&255;else if(e=h.data)for(a.i=Array(4*e.length),g=f=0;f<e.length;f++)a.i[g++]=e[f]&255,a.i[g++]=e[f]>>8&255,a.i[g++]=e[f]>>16&255,a.i[g++]=e[f]>>24&255;else a.i=h;a.Na=h.symbols;if(!a.i.length){u("Empty ROM: "+
b);return}if(1==a.i.length){u(a.i[0]);return}}catch(k){a.qa("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=ba(b[f],16);Re(a)}}
function Re(a){if(!sb(a))if(!a.B)F(a);else if(a.i&&a.F){a.j||(a.j=a.i.length);if(a.i.length!=a.j)ub(a,"ROM size ("+t(a.i.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.D;if(Eb(a.F,b,a.j,a.G?1:nc)){var c;for(c=0;c<a.i.length;c++){var d=a.F,f=b+c;d.M[(f&d.j)>>>d.Y].Db(f&d.i,a.i[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.A?b.push(a.A):null!=a.A&&a.A.length&&(b=a.A);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.F,g=e.j,h=[],k=e.D>>>f.Y;0<g&&k<f.M.length;)h.push(f.M[k++]),
g-=f.Ca;f=e.F;e=e.j;g=0;for(d>>>=f.Y;0<e&&d<f.M.length;){k=h[g++];if(!k)break;f.M[d++]=k;e-=f.Ca}}delete a.i}}F(a)}}Pa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Pe(d);cb(d,c)}});function Se(a){w.call(this,"RAM",a,Se);this.A=a.addr;this.j=a.size;this.i=!1}B(Se);l=Se.prototype;l.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;F(this)};l.Ra=function(a,b){b||this.reset();return!0};l.Qa=function(a){return a?this.save():!0};
l.reset=function(){!this.i&&this.j&&Eb(this.F,this.A,this.j,1)&&(this.i=!0);this.i||u("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Pa(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Se(d);cb(d,c)}});function Te(a){w.call(this,"Keyboard",a,Te,65536);F(this)}B(Te);Te.prototype.va=function(){return!1};Te.prototype.Za=function(a,b,c,d){this.i=a;this.b=c;this.C=d;this.ha=null};
Pa(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Te(d);cb(d,c)}});function Ue(a){w.call(this,"Debugger",a,Ue);this.ea=a.base||16;this.Ha=!1;this.$=this.Ga=this.J=0;this.da=!1;this.B=-1;this.A=[];this.ja={}}B(Ue);var Ve={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ue.prototype.Ac=function(){return-1};Ue.prototype.Bc=function(){};
function We(a,b,c,d){if(c)if(b){0>a.B&&a.A.length&&(a.B=0);if(0>a.B||b!=a.A[a.B])a.A.splice(0,0,b),a.B=0;a.B--}else a.da?b="end":b=a.A[a.B+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(na(b.substring(c,e))),c=e+1}}return a}
function Xe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
function rd(a,b,c){var d,f,e,g=0;if(c&a.ac){d=b>>13&a.bc[a.A];f=a.la[a.A][d];e=(a.la[a.A][d+16]<<6)+(b&8191)&4194303;a.nb&16?3932160<=e&&4186112>e&&(e=gc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.I|=32,a.M(4,12)),e&1&&!(c&1)&&(a.I|=64,a.M(4,14)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&
8128)&&(g|=16384));a.la[a.A][d]=f;if(4194170!==e||a.A)a.ra=a.A,a.sa=d;g&&(g&57344&&(0<=a.ea&&(g|=128),a.B&57344||(a.B=a.B|g|a.ra<<5|a.sa<<1),a.M(168,16)),a.B&61440||!(4191360>e||4194239<e)||(a.B|=4096,a.B&512&&(a.G|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.I|=64,a.M(4,10));return e}l.dc=function(a){return 4194304<=a?this.g[a-4194304]:0<=a?this.F.Ja(a):a};l.Ka=function(a){return this.dc(rd(this,a,2))};function qd(a){var b=a.Ka(a.g[6]|65536);a.g[6]=a.g[6]+2&65535;return b}
function od(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.B&57344||(a.cb=a.cb<<8|246);!a.A&&c<=a.eb&&4<c&&(c<=a.eb-32?(a.I|=4,a.g[6]=4,a.M(4,18)):(a.I|=8,a.G|=4));c=rd(a,c|65536,4);a.F.pb(c,b&65535)}
function sd(a,b,c){var d,f,e=b&7,g=c&8?0:a.qb;switch(b>>3&7){case 0:a.M(4,20);break;case 1:return 6===e&&!a.A&&c&4&&(a.g[6]<=a.eb||65534<=a.g[6])&&(a.g[6]<=a.eb-32||65534<=a.g[6]?(a.I|=4,a.g[6]=4,a.M(4,22)):(a.I|=8,a.G|=64)),7===e?a.g[e]:a.g[e]|g;case 2:f=2;d=a.g[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.g[e];7!==e&&(d|=g);d=a.Ka(d);d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.g[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.g[e]-2&65535;7!==e&&(d|=g);d=a.Ka(d)|g;break;case 6:return d=
id(a),d=d+a.g[e]&65535|g;case 7:return d=id(a),d=d+a.g[e]&65535,d=a.Ka(d|65536)|g}a.g[e]=a.g[e]+f&65535;!g||a.B&57344||(a.cb=a.cb<<8|f<<3&248|e);6==e&&!a.A&&c&4&&0>=f&&(a.g[6]<=a.eb||65534<=a.g[6])&&(a.g[6]<=a.eb-32?(a.I|=4,a.g[6]=4,a.M(4,24)):(a.I|=8,a.G|=64));return d}l.Tc=function(a,b){return sd(this,a,b)};l.Uc=function(a,b){return rd(this,sd(this,a,b),b)};
function td(a,b,c){b&56?(b=sd(a,b,0),c&65536||61440!==(a.O&61440)&&(b&=65535),a.A=a.O>>12&3,c=a.Ka(b|c&65536),a.A=a.O>>14&3):(c=b&7,c=6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]:a.Aa[a.O>>12&3]);return c}function ud(a,b,c,d){a.B&57344||(a.cb=22);b&56?(b=sd(a,b,0),c&65536||(b&=65535),a.A=a.O>>12&3,b=rd(a,b|c&65536,4),a.A=a.O>>14&3,a.F.pb(b,d&65535)):(c=b&7,6!=c||(a.O>>2&12288)===(a.O&12288)?a.g[c]=d:a.Aa[a.O>>12&3]=d)}function P(a,b){return b&56?a.Rb(sd(a,b,2)):a.g[b&7]}
function vd(a,b){b&56?(b=a.ba(b,3),a=a.F.sb(b)):a=a.g[b&7]&255;return a}function R(a,b,c,d){b&56?(b=a.ba(b,6),c=d.call(a,c,a.dc(b)),a.F.pb(b,c&65535)):(b&=7,a.g[b]=d.call(a,c,a.g[b]))}function S(a,b,c,d){b&56?(b=a.ba(b,7),c=d.call(a,c,a.F.sb(b)),a.F.Vb(b,c&255)):(b&=7,a.g[b]=a.g[b]&65280|d.call(a,c,a.g[b]))}function wd(a,b,c){b&56?(b=a.ba(b,4),a.F.pb(b,c&65535)):a.g[b&7]=c&65535;return c}
function xd(a,b,c,d){b&56?(d=a.ba(b,5),a.F.Vb(d,c&255)):(b&=7,a.g[b]=c?d&1?c<<24>>24&65535:a.g[b]&-256|c&255:a.g[b]&-256);return c}function T(a,b){a.g[7]=a.g[7]+(b<<24>>23)&65535}
l.Bb=function(a){this.u.complete=!0;var b=this.u.Nc=this.C&&yd(this.C),c=a?this.u.pc?0:1:-1;this.u.pc=!1;this.W=this.b=a;do{if(b){if(zd(this.C,this.g[7],c)){this.na();break}c=1}this.G&&(this.G&112&&(this.G&32?this.M(168,28):this.G&64?this.M(4,30):this.G&16&&this.M(12,32),this.G&=-113),this.G&1&&(jd(this),this.G&=-2,this.g[7]=this.g[7]-2&65535));a&&this.Ra&&jd(this);this.B&57344||(this.cb=0,this.ec=this.g[7]);this.G=this.G&1|this.O&16;this.decode(id(this))}while(0<this.b);return this.u.complete?this.W-
this.b:void 0===this.u.complete?0:-1};Pa(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new dd(d);cb(d,c)}});function Ad(a,b){var c=b+a;ld(this,c,a,b);return c&65535}function Bd(a,b){var c=b+a;ld(this,c<<8,a<<8,b<<8);return c&255}function Cd(a,b){a=b<<1;md(this,a);return a&65535}function Dd(a,b){a=b<<1;md(this,a<<8);return a&255}function Ed(a,b){a=b&32768|b>>1|b<<16;md(this,a);return a&65535}function Fd(a,b){a=b&2048|b>>1|b<<8;md(this,a<<8);return a&255}
function Gd(a,b){a=b&~a;O(this,a);return a}function Hd(a,b){a=b&~a;O(this,a<<8);return a}function Id(a,b){a|=b;O(this,a);return a}function Jd(a,b){a|=b;O(this,a<<8);return a}function Kd(a,b){a=~b|65536;kd(this,a);return a&65535}function Ld(a,b){a=~b|256;kd(this,a<<8);return a&255}function Md(a,b){a=b-a;this.G&128||(this.X=this.Z=a,this.V=b&(b^a));return a&65535}function Nd(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.X=this.Z=c,this.V=b&(b^c));return a&255}
function Od(a,b){a=b+a;this.G&128||(this.X=this.Z=a,this.V=a&(b^a));return a&65535}function Pd(a,b){a=b+a;var c=a<<8;this.G&128||(this.X=this.Z=c,this.V=c&(b<<8^c));return a&255}function Qd(a,b){a=-b;kd(this,a,a&b&32768);return a&65535}function Rd(a,b){a=-b;kd(this,a<<8,(a&b&128)<<8);return a&255}function Sd(a,b){a=b<<1|this.U>>16&1;md(this,a);return a&65535}function Td(a,b){a=b<<1|this.U>>16&1;md(this,a<<8);return a&255}function Ud(a,b){a=(this.U&65536|b)>>1|b<<16;md(this,a);return a&65535}
function Vd(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;md(this,a<<8);return a&255}function Wd(a,b){var c=b-a;nd(this,c,a,b);return c&65535}function Xd(a,b){var c=b-a;nd(this,c<<8,a<<8,b<<8);return c&255}function Yd(a,b){a^=b;O(this,a);return a&65535}
function Zd(a){var b=P(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.U=this.V=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.U=c<<17-b,c>>=b):b&&(16<b?(this.V=c,c=0):(this.U=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.V=32768)));this.g[a]=c&65535;this.X=this.Z=c;--this.b}
function $d(a){var b=P(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.U=this.V=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.U=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.V=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;--this.b}function U(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Z=1);a&8&&(this.X=0);--this.b}
function ae(a){var b=P(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.V=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1))}else this.Z=this.X=0,this.V=32768,this.U=65536;--this.b}function be(a){var b=sd(this,a,8);a=a>>6&7;od(this,this.g[a]);this.g[a]=this.g[7];this.g[7]=b;--this.b}
function ce(a){var b=P(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.G&128||(this.X=b>>16,this.Z=this.X|b,this.V=0,this.U=-32768>b||32767<b?65536:0);--this.b}function de(){--this.b}function W(a){a&1&&(this.U=65536);a&2&&(this.V=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);--this.b}function ye(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)this.g[7]=this.g[7]-((a&63)<<1)&65535;--this.b}
function ze(a){R(this,a,P(this,(a&448)>>6),Yd);--this.b}function X(){this.M(8,6)}function ed(a){Ae[a>>12].call(this,a)}
var Ae=[function(a){Be[a>>8&15].call(this,a)},function(a){O(this,wd(this,a,P(this,a>>6)));--this.b},function(a){var b=P(this,a>>6);a=P(this,a);nd(this,b-a,a,b);--this.b},function(a){O(this,P(this,a>>6)&P(this,a));--this.b},function(a){R(this,a,P(this,a>>6),Gd);--this.b},function(a){R(this,a,P(this,a>>6),Id);--this.b},function(a){R(this,a,P(this,a>>6),Ad);--this.b},function(a){Ce[a>>8&15].call(this,a)},function(a){De[a>>8&15].call(this,a)},function(a){var b=vd(this,a>>6);O(this,xd(this,a,b,1)<<8);
--this.b},function(a){var b=vd(this,a>>6)<<8;a=vd(this,a)<<8;nd(this,b-a,a,b);--this.b},function(a){O(this,(vd(this,a>>6)&vd(this,a))<<8);--this.b},function(a){S(this,a,vd(this,a>>6),Hd);--this.b},function(a){S(this,a,vd(this,a>>6),Jd);--this.b},function(a){R(this,a,P(this,a>>6),Wd);--this.b},X],Be=[function(a){Ee[a>>4&15].call(this,a)},function(a){T(this,a);--this.b},function(a){hd(this)||T(this,a);--this.b},function(a){hd(this)&&T(this,a);--this.b},function(a){!this.Oa()==!gd(this)&&T(this,a);--this.b},
function(a){!this.Oa()!=!gd(this)&&T(this,a);--this.b},function(a){hd(this)||!this.Oa()!=!gd(this)||T(this,a);--this.b},function(a){(hd(this)||!this.Oa()!=!gd(this))&&T(this,a);--this.b},be,be,function(a){Fe[a>>6&3].call(this,a)},function(a){Ge[a>>6&3].call(this,a)},function(a){He[a>>6&3].call(this,a)},function(a){Ie[a>>6&3].call(this,a)},X,X],Fe=[function(a){kd(this,wd(this,a,0));--this.b},function(a){R(this,a,0,Kd);--this.b},function(a){R(this,a,1,Od);--this.b},function(a){R(this,a,1,Md);--this.b}],
Ge=[function(a){R(this,a,0,Qd);--this.b},function(a){R(this,a,N(this)?1:0,Ad);--this.b},function(a){R(this,a,N(this)?1:0,Wd);--this.b},function(a){a=P(this,a);kd(this,a);--this.b}],He=[function(a){R(this,a,0,Ud);--this.b},function(a){R(this,a,0,Sd);--this.b},function(a){R(this,a,0,Ed);--this.b},function(a){R(this,a,0,Cd);--this.b}],Ie=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.Ka(a|65536);this.g[7]=this.g[5]&65535;this.g[6]=a+2&65535;this.g[5]=b;--this.b},function(a){a=td(this,a,0);od(this,
a);O(this,a);--this.b},function(a){var b=qd(this);ud(this,a,0,b);O(this,b);--this.b},function(a){O(this,wd(this,a,this.Oa?65535:0));--this.b}],Ee=[function(a){Je[a&15].call(this,a)},X,X,X,X,X,X,X,function(a){var b=qd(this);a&=7;this.g[7]=this.g[a];this.g[a]=b;--this.b},function(a){this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.Ra=1);--this.b},function(a){Ke[a&15].call(this,a)},function(a){Le[a&15].call(this,a)},X,X,X,X],Ke=[de,function(){this.U=0;--this.b},function(){this.V=0;--this.b},U,function(){this.Z=
1;--this.b},U,U,U,function(){this.X=0;--this.b},U,U,U,U,U,U,U],Le=[de,function(){this.U=65536;--this.b},function(){this.V=32768;--this.b},W,function(){this.Z=0;--this.b},W,W,W,function(){this.X=32768;--this.b},W,W,W,W,W,W,W],Je=[function(){this.O&49152?(this.I|=128,this.M(4,3)):(this.La=3,cd(this));--this.b},function(){this.G|=1;--this.b},function(){pd(this);this.G|=this.O&16;--this.b},function(){this.M(12,1);--this.b},function(){this.M(16,4);--this.b},function(){this.O&49152||(fd(this),this.F.reset());
--this.b},function(){pd(this);--this.b},X,X,X,X,X,X,X,X,X],Ce=[ce,ce,ae,ae,Zd,Zd,$d,$d,ze,ze,X,X,X,X,ye,ye],De=[function(a){this.Oa()||T(this,a);--this.b},function(a){this.Oa()&&T(this,a);--this.b},function(a){N(this)||hd(this)||T(this,a);--this.b},function(a){(N(this)||hd(this))&&T(this,a);--this.b},function(a){gd(this)||T(this,a);--this.b},function(a){gd(this)&&T(this,a);--this.b},function(a){N(this)||T(this,a);--this.b},function(a){N(this)&&T(this,a);--this.b},function(){this.M(24,2);--this.b},
function(){this.M(28,5);--this.b},function(a){Me[a>>6&3].call(this,a)},function(a){Ne[a>>6&3].call(this,a)},function(a){Oe[a>>6&3].call(this,a)},function(a){Pe[a>>6&3].call(this,a)},X,X],Me=[function(a){kd(this,xd(this,a,0));--this.b},function(a){S(this,a,0,Ld);--this.b},function(a){S(this,a,1,Pd);--this.b},function(a){S(this,a,1,Nd);--this.b}],Ne=[function(a){S(this,a,0,Rd);--this.b},function(a){S(this,a,N(this)?1:0,Bd);--this.b},function(a){S(this,a,N(this)?1:0,Xd);--this.b},function(a){a=vd(this,
a);kd(this,a<<8);--this.b}],Oe=[function(a){S(this,a,0,Vd);--this.b},function(a){S(this,a,0,Td);--this.b},function(a){S(this,a,0,Fd);--this.b},function(a){S(this,a,0,Dd);--this.b}],Pe=[X,function(a){a=td(this,a,65536);od(this,a);O(this,a);--this.b},function(a){var b=qd(this);ud(this,a,65536,b);O(this,b);--this.b},X];
function Qe(a){w.call(this,"ROM",a,Qe);this.i=null;this.D=a.addr;this.j=a.size;this.H=a.writable;this.A=a.alias;this.B=a.file;this.K=ca(this.B);if(this.B){a=this.B;var b=ha(this.K);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,e){Re(c,a,b,e)})}}B(Qe);Qe.prototype.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;Se(this)};
Qe.prototype.Qa=function(){if(this.Ma){if(this.C){var a=this.C,b=this.id,c=this.D,d=this.j,f=this.Ma,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],p=oa(n,k,a.wc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({yd:b,w:c,Wc:d,Ma:f,tc:e})}delete this.Ma}return!0};Qe.prototype.Pa=function(){return!0};
function Re(a,b,c,d){if(d)a.pa("Unable to load system ROM (error "+d+": "+b+")");else{$a(a.uc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.i=e;else if(e=h.words)for(a.i=Array(2*e.length),g=f=0;f<e.length;f++)a.i[g++]=e[f]&255,a.i[g++]=e[f]>>8&255;else if(e=h.data)for(a.i=Array(4*e.length),g=f=0;f<e.length;f++)a.i[g++]=e[f]&255,a.i[g++]=e[f]>>8&255,a.i[g++]=e[f]>>16&255,a.i[g++]=e[f]>>24&255;else a.i=h;a.Ma=h.symbols;if(!a.i.length){u("Empty ROM: "+
b);return}if(1==a.i.length){u(a.i[0]);return}}catch(k){a.pa("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=ba(b[f],16);Se(a)}}
function Se(a){if(!sb(a))if(!a.B)F(a);else if(a.i&&a.F){a.j||(a.j=a.i.length);if(a.i.length!=a.j)ub(a,"ROM size ("+t(a.i.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.D;if(Eb(a.F,b,a.j,a.H?1:nc)){var c;for(c=0;c<a.i.length;c++){var d=a.F,f=b+c;d.N[(f&d.j)>>>d.Y].Db(f&d.i,a.i[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.A?b.push(a.A):null!=a.A&&a.A.length&&(b=a.A);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.F,g=e.j,h=[],k=e.D>>>f.Y;0<g&&k<f.N.length;)h.push(f.N[k++]),
g-=f.Ba;f=e.F;e=e.j;g=0;for(d>>>=f.Y;0<e&&d<f.N.length;){k=h[g++];if(!k)break;f.N[d++]=k;e-=f.Ba}}delete a.i}}F(a)}}Pa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Qe(d);cb(d,c)}});function Te(a){w.call(this,"RAM",a,Te);this.A=a.addr;this.j=a.size;this.i=!1}B(Te);l=Te.prototype;l.Za=function(a,b,c,d){this.F=b;this.b=c;this.C=d;F(this)};l.Qa=function(a,b){b||this.reset();return!0};l.Pa=function(a){return a?this.save():!0};
l.reset=function(){!this.i&&this.j&&Eb(this.F,this.A,this.j,1)&&(this.i=!0);this.i||u("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Pa(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Te(d);cb(d,c)}});function Ue(a){w.call(this,"Keyboard",a,Ue,65536);F(this)}B(Ue);Ue.prototype.va=function(){return!1};Ue.prototype.Za=function(a,b,c,d){this.i=a;this.b=c;this.C=d;this.ha=null};
Pa(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Ue(d);cb(d,c)}});function Ve(a){w.call(this,"Debugger",a,Ve);this.ea=a.base||16;this.Ha=!1;this.$=this.Ga=this.K=0;this.da=!1;this.B=-1;this.A=[];this.ja={}}B(Ve);var We={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ve.prototype.Ac=function(){return-1};Ve.prototype.Bc=function(){};
function Xe(a,b,c,d){if(c)if(b){0>a.B&&a.A.length&&(a.B=0);if(0>a.B||b!=a.A[a.B])a.A.splice(0,0,b),a.B=0;a.B--}else a.da?b="end":b=a.A[a.B+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(na(b.substring(c,e))),c=e+1}}return a}
function Ye(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
case "^":d=e^f;break;case "|":d=e|f;break;case "&&":d=e&&f?1:0;break;case "||":d=e||f?1:0;break;default:return!1}a.push(d|0)}return!0}
function Ye(a,b,c){var d;if(b){b=Ze(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],p=n.length,n=na(n);if(!n){e=!0;break}n=$e(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],q=n.length;k.length&&Ve[n]<Ve[k[k.length-1]]&&Xe(h,k,1);k.push(n);b=b.substr(p+q)}Xe(h,k)&&1==h.length||(e=!0);e?c&&a.f("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&af(a,null,
d))}return d}function Ze(a,b){for(var c,d=a.Ha?"(":"{",f=a.Ha?")":"}",e=new RegExp(a.Ha?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(e))&&!(0<=c[1].indexOf(d));){var g=Ye(a,c[1]);b=b.replace(d+c[1]+f,null!=g?Y(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.$-a.Ga}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function $e(a,b,c,d){var f;null!=b?(f=a.Ac(b),0<=f?f=a.Bc(f):(f=a.ja[b],null==f&&(f=ba(b,a.ea))),null!=f||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return f}
function af(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;d>>=8}d=t(c,0,!0)+" "+c+". "+r(c,0,!0)+" "+("0b"+g)}a.f((null!=b?b+": ":"")+d);return f}function bf(a,b){if(b)return af(a,b,a.ja[b]);var c=0;for(b in a.ja)af(a,b,a.ja[b]),c++;return 0<c}
function Ze(a,b,c){var d;if(b){b=$e(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],p=n.length,n=na(n);if(!n){e=!0;break}n=af(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],q=n.length;k.length&&We[n]<We[k[k.length-1]]&&Ye(h,k,1);k.push(n);b=b.substr(p+q)}Ye(h,k)&&1==h.length||(e=!0);e?c&&a.f("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&bf(a,null,
d))}return d}function $e(a,b){for(var c,d=a.Ha?"(":"{",f=a.Ha?")":"}",e=new RegExp(a.Ha?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(e))&&!(0<=c[1].indexOf(d));){var g=Ze(a,c[1]);b=b.replace(d+c[1]+f,null!=g?Y(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.$-a.Ga}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function af(a,b,c,d){var f;null!=b?(f=a.Ac(b),0<=f?f=a.Bc(f):(f=a.ja[b],null==f&&(f=ba(b,a.ea))),null!=f||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return f}
function bf(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;d>>=8}d=t(c,0,!0)+" "+c+". "+r(c,0,!0)+" "+("0b"+g)}a.f((null!=b?b+": ":"")+d);return f}function cf(a,b){if(b)return bf(a,b,a.ja[b]);var c=0;for(b in a.ja)bf(a,b,a.ja[b]),c++;return 0<c}
function Y(a,b,c,d){switch(a.ea){case 8:a=r(b,3*c);break;case 10:a=b.toString();break;default:a=t(b,2*c)}d&&"0"==a.charAt(0)&&(a=a.replace(/^0+([0-9A-F]+)$/i,"$1"));return a}
function cf(a){Ue.call(this,a);this.Ha=!0;this.T=Z();this.Fb=Z();this.ca=Z();this.G=[];this.j=this.W=this.D=[];df(this);this.ya=0;ef(this);this.Ma={};ff(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Wc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Wc(b,a)})}B(cf,Ue);
var gf={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},hf="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
jf={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
function df(a){Ve.call(this,a);this.Ha=!0;this.T=Z();this.Fb=Z();this.ca=Z();this.H=[];this.j=this.W=this.D=[];ef(this);this.ya=0;ff(this);this.La={};gf(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Wc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Wc(b,a)})}B(df,Ve);
var hf={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},jf="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
kf={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};l=cf.prototype;
l.Za=function(a,b,c,d){this.F=b;this.b=c;this.i=a;(a=Ac(a,"messages"))&&ff(this,a);this.Zb=jf;kf(this,function(a){a:{var b=d.F.M,c=a[0],f=a=0,k=b.length;if(c){a=d.ba(lf(d,c));if(-1===a){d.f("invalid address: "+c);break a}f=a>>>d.F.Y;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.f("..."):(c=n.type,m=Hb[c],n&&d.f(t(n.id,8)+" %"+t(f<<d.F.Y,8)+" %%"+t(n.w,8)+" "+t(n.Yb,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=mc&&(c=-1),m=0);a+=d.F.Ca;f++}}});F(this)};
l.va=function(a,b,c){var d=this;switch(b){case "debugInput":return this.xa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Wc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.A.length-1&&(b=d.A[++d.B])):40==a.keyCode&&(0<d.B?b=d.A[--d.B]:(b="",d.B=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Da(c,function(){if(d.xa){var a=d.xa.value;
d.xa.value="";Wc(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Da(c,function(a){var b=!1;fb(d,!0)||(eb(d,!0),b=d.Bb(a?1:0),eb(d,!1));return b}),!0}return!1};l.Xb=function(){this.xa&&this.xa.focus()};l.ba=function(a){a=a&&a.w;null==a&&(a=-1);return a};l.sb=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(c=this.F,c=c.M[(d&c.j)>>>c.Y].Qb(d&c.i,d),b&&mf(a,b));return c};l.Ka=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=Ib(this.F,d),b&&mf(a,b));return c};
l.Vb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){var f=this.F;f.M[(d&f.j)>>>f.Y].Db(d&f.i,b&255,d);c&&mf(a,c);L(this.b,!0)}};l.pb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){var f=this.F,e=d&f.i,g=(d&f.j)>>>f.Y;e!=f.i?f.M[g].rc(e,b&65535,d):(f.M[g++].Db(e,b&255,d),f.M[g&f.A].Db(0,b>>8&255,d+1));c&&mf(a,c);L(this.b,!0)}};function Z(a){return{w:a,Ja:!1}}function nf(a){return[a.w,a.Ja]}function of(a){return{w:a[0],Ja:a[1]}}
function lf(a,b,c){var d;c=(c?a.T:a.Fb).w;if(void 0!==b){d=b=Ze(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var e=a.G[c].Na[d];if(void 0!==e){d=e.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;c=Ye(a,b,void 0)}null!=c&&(d=Z(c));return d}function pf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Lc=We(a,b.Gc=c[2]))}function mf(a,b){null!=a.w&&(a.w+=b||1)}
function ff(a,b){a.C=a;a.ka=a.Mc=536870912;a.za=null;a.Ba=[];b=We(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ka|=G[c],a.f(c+" messages enabled"))}}function kf(a,b){for(var c in G)if(64==G[c]){a.Ma[c]=b;break}}
l.Ac=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function qf(a){return 6>a?"R"+a:6==a?"SP":"PC"}l.Bc=function(a){var b;0<=a&&(8>a?b=this.b.g[a]:16>a?b=this.b.Ta[a-8]:20>a?b=this.b.Aa[a-16]:20==a&&(b=Zb(this.b)));return b};
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.g[7]).w));this.ka&1073741824?this.Ba.push(a):this.za&&a==this.za||(this.za=a,this.ka&-2147483648&&(this.na(),a+=" (cpu halted)"),this.f(a),this.b&&(a=this.b,cd(a),a.da=0,L(a)))};
function ef(a){var b;if(xd(a)){if(!a.R||!a.R.length){a.R=Array(1E3);for(b=0;b<a.R.length;b++)a.R[b]=Z();a.sa=0;a.f("instruction history buffer allocated")}if(!a.oa||!a.oa.length)for(a.oa=Array(256),b=0;b<a.oa.length;b++)a.oa[b]=[b,0]}else a.R&&a.R.length&&a.f("instruction history buffer freed"),a.sa=0,a.R=[],a.oa=[]}l.Ab=function(a){if(!rf(this))return!1;this.b.Ab(a);return!0};
l.Bb=function(a,b,c){if(!rf(this))return!1;this.J=0;a||xd(this)&&yd(this,this.b.g[7],0);try{var d=this.b.Bb(a);0<d&&(this.J+=d,ad(this.b,d,!0),Xc(this.b,d),this.$++)}catch(f){"number"!=typeof f&&(this.J=0,ub(this.b,f.stack||f.message))}!1!==c&&L(this.b);this.Fa(b||!1);return 0<this.J};l.na=function(a){this.b&&this.b.na(a)};l.Fa=function(a){void 0===a&&(a=!0);this.T=Z(this.b.g[7]);a&&1!=this.ha?sf(this):tf(this)};
function rf(a){var b;if(b=a.b&&sb(a.b))b=a.b,b.u.ia?b=!0:(b.f(b.toString()+" not powered"),b=!1);return b&&!a.b.u.ga?!tb(a.b):!1}l.Ra=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Qa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ef(this);this.$=this.Ga=0;this.za=null;this.J=0;this.T=Z(this.b.g[7]);this.u.ga=!1;uf(this);a||this.Fa()};
l.save=function(){var a=new M(this);a.set(0,nf(this.T));a.set(1,nf(this.ca));a.set(2,[this.A,this.da,this.ka]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.T=of(a[b++]),this.ca=of(a[b++]),this.A=a[b][0],"string"==typeof this.A&&(this.A=[this.A]),this.da=a[b][1],this.ka|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.ha||this.f("running");this.u.ga=!0;this.Pc=a;this.Rc=b};
l.stop=function(a,b){if(this.u.ga){this.u.ga=!1;this.J=b-this.Rc;if(!this.ha){b="stopped";if(this.J){a-=this.Pc;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";xd(this)&&(b+=this.$+" opcodes, ",this.Ga-=this.$,this.$=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}this.Fa(!0);this.Xb();uf(this,this.b.g[7])}};function xd(a){return 1<a.j.length||!!a.ya}
function yd(a,b,c){var d=a.b;if(0<c&&(a.ya&&!--a.ya||vc(a,b,1,a.j)))return!0;0<=c&&a.oa.length&&(a.$++,null!=Ib(a.F,b)&&(b=a.R[a.sa],b.w=d.g[7],b.Ja=!1,++a.sa==a.R.length&&(a.sa=0)));return!1}function df(a){var b,c;a.j=["bp"];if(a.W)for(b=1;b<a.W.length;b++){c=a.W[b];var d=a.F;c=a.ba(c);wc(d.M[c>>>d.Y],!1)}a.W=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.F,c=a.ba(c),wc(d.M[c>>>d.Y],!0);a.D=["bw"];a.Ib=0}
l.jb=function(a,b,c){var d=!0;c||vf(this,a,b,!1,!0);if(a!=this.j){var f=this.ba(b);if(-1===f)this.f("invalid address: "+Y(this,b.w)),d=!1;else{var e=this.F;e.M[f>>>e.Y].jb(f&e.i,a==this.D)}}d&&(a.push(b),c?b.Ja=!0:(wf(this,a,a.length-1,"set"),ef(this)));return d};function vf(a,b,c,d,f){var e=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.Ja)){e=!0;h.Ja||f||wf(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.F,wc(d.M[c>>>d.Y],b==a.D));h.Ja||ef(a);break}}return e}
function xf(a,b){for(var c=1;c<b.length;c++)wf(a,b,c);return b.length-1}function wf(a,b,c,d){c=b[c];a.f(b[0]+" "+Y(a,c.w)+(d?" "+d:c.Gc?' "'+c.Gc+'"':""))}function uf(a,b){if(void 0!==b)vc(a,b,1,a.j,!0),a.ha=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Ja){if(!vf(a,a.j,c,!0))break;b=0}}}
function vc(a,b,c,d,f){var e=!1;if(!a.Ib++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ja)for(var k=a.ba(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ja&&(vf(a,d,h,!0),f=!0);if(n=h.Lc){for(var e=!1,p=0;p<n.length;p++)if(!yf(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.u.ga||(e=!0)}if(e){f||wf(a,d,g,"hit");break}}}a.Ib--;return e}
function zf(a,b,c,d){var f=Z(b.w),e=a.Ka(b,2),g,h;for(h in a.Zb)if(g=a.Zb[h][e&h])break;g||(g=[0]);h="";for(var k=hf[g[0]],m=g.length-1,n=1;n<=m;n++){var p=g[n];if(void 0!==p){var q;q=a;var y=p,p=b,v="",z=y&61440;if(4096==z)p=p.w+((e&255)<<24>>23)&65535,v=Y(q,p);else if(8192==z)p=p.w-((e&63)<<1)&65535,v=Y(q,p);else if(12288==z)v=Y(q,e&7,1);else if(24576==z)v=Y(q,e&63,1);else if(z=e&y,y&4032&&(z>>=6,y>>=6),y&63)switch(y=z&7,z&56){case 0:v=qf(y);break;case 8:v="@"+qf(y);break;case 16:7>y?v="("+qf(y)+
")+":(z=q.Ka(p,2),v="#"+Y(q,z,0,!0));break;case 24:7>y?v="@("+qf(y)+")+":(z=q.Ka(p,2),v="@#"+Y(q,z,0,!0));break;case 32:v="-("+qf(y)+")";break;case 40:v="@-("+qf(y)+")";break;case 48:z=q.Ka(p,2);v=Y(q,z,0,!0)+"("+qf(y)+")";7==y&&(v=[v,Y(q,z+p.w&65535)]);break;case 56:z=q.Ka(p,2),v="@"+Y(q,z)+"("+qf(y)+")",7==y&&(v=[v,Y(q,z+p.w&65535)])}q=v;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0<h.length&&(h+=",");h+=q||"???"}}e="";g=Y(a,f.w)+":";if(-1!==f.w&&-1!==b.w){do if(e+=
" "+Y(a,a.Ka(f,2)),null==f.w)break;while(f.w!=b.w)}g+=ma(e,24);g+=ma(k,5);h&&(g+=" "+h);c&&(g=ma(g,60)+";"+c,g=a.b.u.rb?g+("cycles="+Yc(a.b).toString()+" cs="+t(a.b.Nb)):g+(null!=d?"="+d.toString():""));return g}function Af(a,b){switch(b){case "N":a=a.b.Pa();break;case "Z":a=hd(a.b);break;case "V":a=gd(a.b);break;case "C":a=N(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Bf(a,b){var c="",d=a.b;8>b?(c=qf(b),c+="="+Y(a,d.g[b])):13>b?c="A"+(b-8)+"="+Y(a,d.Ta[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+Y(a,d.Aa[b-16]):20==b&&(c="PS="+Y(a,Zb(d)));c&&(c+=" ");return c}function Cf(a){var b,c="";for(b=0;6>b;b++)c+=Bf(a,b);c=c+"\n"+(Bf(a,6)+Bf(a,7)+Bf(a,20));return c+=Af(a,"T")+Af(a,"N")+Af(a,"Z")+Af(a,"V")+Af(a,"C")}l.wc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Df(a,b,c){var d=[],f=a.ba(b)>>>0;for(b=0;b<a.G.length;b++){var e=a.G[b],g=e.w>>>0,h=e.Wc;if(f>=g&&f<g+h){f=oa(e.tc,[f-g],a.wc);0<=f?Ef(a,b,f,d):c&&(f=~f,Ef(a,b,f-1,d),Ef(a,b,f,d));break}}return d}function Ef(a,b,c,d){var f={},e=a.G[b].tc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.G[b].Na[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
function Ff(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return bf(a)||a.f("no variables"),!0;if(!c[2])return bf(a,c[1]);if(!c[3])return delete a.ja[c[1]],!0;b=Ye(a,c[3]);return void 0!==b?(a.ja[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
function Gf(a,b,c){var d=null;if(b=lf(a,b,!0)){a.ba(b);var f=Df(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.w-f[1])&&(g=" + "+t(e,4,!0)),e=f[0]+" ("+Y(a,f[1])+")"+g,c&&a.f(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.w)&&(g=" - "+t(e,4,!0)),e=f[4]+" ("+Y(a,f[5])+")"+g,c&&a.f(e),d||(d=e))}else c&&a.f("no symbols")}return d}
function sf(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}e=Ye(a,b);if(void 0===e)return;b=f.toUpperCase();switch(b){case "SP":case "R6":d.g[6]=e&65535;break;case "PC":case "R7":d.g[7]=e&65535;a.T=Z(d.g[7]);break;case "N":d.X=e?32768:0;
break;case "Z":d.Z=e?0:1;break;case "V":d.V=e?32768:0;break;case "C":d.U=e?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.g[b]=e&65535;break}a.f("unknown register: "+f);return}L(d);a.f("updated registers:")}a.f(Cf(a));c&&(a.T=Z(d.g[7]),tf(a,Y(a,a.T.w)))}}function Hf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.f(c[2]):Ye(a,b,!0)}
function If(a,b,c){var d="t"!=b;c=$e(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Ca(c,function(){return eb(a,!0)&&a.Bb(f,d,!1)},function(){L(a.b);eb(a,!1)})}
function tf(a,b,c,d){if(b=lf(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=lf(a,c,!0);if(!d||d.w<b.w)return;f=d.w-b.w;if(256<f){a.f("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=fb(a,!1)||a.ha?a.J:null;var g=null!=e?"cycles":null,h=Df(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(g=h[3],e=null);e=zf(a,b,g,e);a.f(e);a.T=b;f-=b.w-k;c++}}}
function yf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(">> "+b):(a.da&&(a.f("ended assemble at "+Y(a,a.ca.w)),a.T=a.ca,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(sb(a)&&0<b.length){a.da&&(b="a "+Y(a,a.ca.w)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=lf(a,e[1],!0);
if(n)if(a.ca=n,void 0===e[2])a.f("begin assemble at "+Y(a,n.w)),a.da=!0,L(a.b);else{var p;a.f("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.Vb(n,p[q],1);a.f(zf(a,a.ca))}}break;case "b":a:{var y=e[0],v=e[1],z=b;if("?"==v)a.f("breakpoint commands:"),a.f("\tbp [a]\tset exec breakpoint at addr [a]"),a.f("\tbr [a]\tset read breakpoint at addr [a]"),a.f("\tbw [a]\tset write breakpoint at addr [a]"),a.f("\tbc [a]\tclear breakpoint at addr [a]"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [n]\tbreak after [n] instruction(s)");
else{var ua=y.charAt(1);if("l"==ua){var Cc;Cc=0+xf(a,a.j);Cc+=xf(a,a.W);(Cc+=xf(a,a.D))||a.f("no breakpoints")}else if("n"==ua)a.ya=$e(a,v),a.f("break after "+a.ya+" instruction(s)");else if(void 0===v)a.f("missing breakpoint address");else{var Q=Z();if("*"!=v&&(Q=lf(a,v,!0),!Q))break a;"c"==ua?null==Q.w?(df(a),a.f("all breakpoints cleared")):vf(a,a.j,Q)||vf(a,a.W,Q)||vf(a,a.D,Q)||a.f("breakpoint missing: "+Y(a,Q.w)):null!=Q.w&&(pf(a,Q,z),"p"==ua?a.jb(a.j,Q):"r"==ua?a.jb(a.W,Q):"w"==ua?a.jb(a.D,Q):
a.f("unknown breakpoint command: "+ua))}}}break;case "c":a.kb&&(a.kb.value="");break;case "d":a:{var Ia,Ja=e[0],da=e[1],va=e[2],ag=e[3];if("?"==da){var Ka="";for(Ia in G)a.Ma[Ia]&&(Ka&&(Ka+=","),Ka+=Ia);Ka+=",state,symbols";a.f("dump memory commands:");a.f("\tdb [a] [#] dump # bytes at address a");a.f("\tdw [a] [#] dump # words at address a");a.f("\tdd [a] [#] dump # dwords at address a");a.f("\tdh [#] [#] dump # instructions from history");Ka.length&&a.f("dump extension commands:\n\t"+
Ka)}else if("state"==da){var de=Jf(a.i,!0);"console"==va?console.log(de):(a.kb&&(a.kb.value=""),a.f(de))}else if("symbols"==da)for(var Dc=0;Dc<a.G.length;Dc++){var Ec=a.G[Dc],La;for(La in Ec.Na)if("."!=La.charAt(0)){var ee=Ec.Na[La].o;if(void 0!==ee){var fe=Ec.Na[La].l;fe&&(La=fe);a.f(Y(a,ee)+" "+La)}}}else{if("d"==Ja){for(Ia in G)if(e[1]==Ia){var ge=a.Ma[Ia];ge?(e.shift(),e.shift(),ge(e)):a.f("no dump registered for "+da);break a}da||(Ja=a.Vc||"db")}else a.Vc=Ja;if("dh"==Ja){var he=da,ie=va,je="",
ke=0,aa=a.sa,ea=a.R;if(ea.length){var V=+he||a.Lb,gb=+ie||10;isNaN(V)?V=gb:je="more ";V>ea.length&&(a.f("note: only "+ea.length+" available"),V=ea.length);aa-=V;0>aa&&(null==ea[ea.length-1].w?(V=aa+V,aa=0):aa+=ea.length);var Fc=[];"call"==ie&&(gb=1E5,Fc=["CALL"]);for(void 0!==he&&a.f(V+" instructions earlier:");0<gb&&aa!=a.sa;){var le=ea[aa++];if(null==le.w)break;var hb=Z(le.w),bg=V--,me=zf(a,hb,"history",bg);(!Fc.length||0<=me.indexOf(Fc[0]))&&a.f(me);hb.ic&&(aa+=hb.ic,gb-=hb.ic,V-=hb.ic);aa>=ea.length&&
(aa=0);a.Lb=V;ke++;gb--}}ke||(a.f("no "+je+"history available"),a.Lb=void 0)}else{var Pb=lf(a,da);if(Pb){var Qb=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||ag),Qb=$e(a,va)>>>0,65536<Qb&&(Qb=65536));for(var ib="",Ma="dd"==Ja?4:"dw"==Ja?2:1,Rb=Ma*Qb||128,cg=Rb+15>>4||1;cg--&&0<Rb;){var jb=0,Gc=0,kb,Hc="",ne="",da=Y(a,Pb.w);for(kb=4==Ma?16:a.ea;0<kb&&0<Rb;kb--){var Sb=a.sb(Pb,1),jb=jb|Sb<<(Gc++<<3);Gc==Ma&&(Hc+=8==a.ea?r(jb,3*Ma):t(jb,2*Ma),Hc+=1==Ma?9==kb?"-":" ":" ",jb=Gc=0);ne+=32<=Sb&&128>Sb?String.fromCharCode(Sb):
".";Rb--}ib&&(ib+="\n");ib+=da+" "+Hc+(0==kb?" "+ne:"")}ib&&a.f(ib);a.Fb=Pb}}}}break;case "e":if("else"==e[0])break;var Na,Ic,Jc,Kc,Lc=e[0],Mc=e[1];"eb"==Lc?(Na=1,Ic=255,Jc=a.sb,Kc=a.Vb):"e"==Lc||"ew"==Lc?(Na=2,Ic=65535,Jc=a.Ka,Kc=a.pb):Mc=null;if(null==Mc)a.f("edit memory commands:"),a.f("\teb [a] [...] edit bytes at address a"),a.f("\tew [a] [...] edit words at address a");else{var Tb=lf(a,Mc);if(Tb)for(var Ub=2;Ub<e.length;Ub++){var lb=Ye(a,e[Ub]);if(void 0===lb){a.f("unrecognized value: "+
e[Ub]);break}lb&~Ic&&a.f("warning: "+t(lb)+" exceeds "+Na+"-byte value");var dg=Jc.call(a,Tb);a.f("changing "+Y(a,Tb.w)+" from "+Y(a,dg,Na)+" to "+Y(a,lb,Na));Kc.call(a,Tb,lb,Na)}}break;case "g":a:{var oe=e[1],eg=b;if(void 0!==oe){var Nc=lf(a,oe,!0);if(!Nc)break a;pf(a,Nc,eg);a.jb(a.j,Nc,!0)}a.Ab(!0)||c||a.f("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Oc;if(a.u.ga)Oc="halting",a.na();else{if(fb(a,!0))break a;Oc="already halted"}c||a.f(Oc)}break;case "i":if("if"==e[0]){var Pc;
var mb=b.substr(2),mb=na(mb);Ye(a,mb)?(c||a.f("true: "+mb),Pc=!0):(c||a.f("false: "+mb),Pc=!1);Pc||(d=!1)}break;case "k":var fg=e[0];if("?"==e[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var Qc=0,pe=Z(),nb=Z(a.b.g[6]);for(a.f("stack trace for "+Y(a,nb.w));10>Qc;){for(var wa=null,gg=256;65536>nb.w>>>0;){pe.w=a.Ka(nb,2);if(null==nb.w||!gg--)break;for(var hg=a,Vb=pe,qe=null,ob=Vb.w,re=ob,Rc=1;6>=Rc&&ob;Rc++){if(2<Rc){Vb.w=ob;var Wb=zf(hg,
Vb);if(0<=Wb.indexOf("JSR")){var se=Wb.indexOf(" ");if(ob+(Wb.indexOf(" ",se+1)-se-1)/2==re){qe=Wb;break}}}ob--}Vb.w=re;if(wa=qe)break}if(!wa||null==wa)break;var te=null;if("ks"==fg){var ue=wa.match(/[0-9A-F]+$/);ue&&(te=Gf(a,ue[0]))}wa=ma(wa,50)+" ;"+(te||"stack="+Y(a,nb.w));a.f(wa);Qc++}Qc||a.f("no return addresses found")}break;case "l":"ln"==e[0]&&Gf(a,e[1],!0);break;case "m":a:{var fa,ga=null,A=e[1];"?"==A&&(A=void 0);if(void 0!==A){var ra=0;if("all"==A)ra=1878917119,A=null;else if("on"==A)ga=
!0,A=null;else if("off"==A)ga=!1,A=null;else{"keys"==A&&(A="key");"kbd"==A&&(A="keyboard");for(fa in G)if(A==fa){ra=G[fa];ga=!!(a.ka&ra);break}if(!ra){a.f("unknown message category: "+A);break a}}if(ra)if("on"==e[2])a.ka|=ra,ga=!0;else if("off"==e[2]&&(a.ka&=~ra,ga=!1,1073741824==ra)){for(var Sc=0;Sc<a.Ba.length;Sc++)a.f(a.Ba[Sc]);a.Ba=[]}}var ig=0,pb="";for(fa in G)if(!A||A==fa){var jg=!!(a.ka&G[fa]);if(null===ga||ga==jg)pb&&(pb+=","),++ig%10||(pb+="\n\t"),"key"==fa&&(fa="keys"),pb+=fa}void 0===
A&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==ga?ga?"messages on: ":"messages off: ":"message categories:\n\t")+(pb||"none"));ef(a)}break;case "p":if("print"==e[0]){Hf(a,b.substr(5));break}var kg="pr"==e[0]?1:0;if(a.ha)a.f("step in progress");else{var ve=Z(a.b.g[7]);a.sb(ve);a.ha?(a.jb(a.j,ve,!0),a.Ab()||(a.i&&a.i.Xb(),a.ha=0)):If(a,kg?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}sf(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var qb=
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};l=df.prototype;
l.Za=function(a,b,c,d){this.F=b;this.b=c;this.i=a;(a=Ac(a,"messages"))&&gf(this,a);this.Zb=kf;lf(this,function(a){a:{var b=d.F.N,c=a[0],f=a=0,k=b.length;if(c){a=d.ba(mf(d,c));if(-1===a){d.f("invalid address: "+c);break a}f=a>>>d.F.Y;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.f("..."):(c=n.type,m=Hb[c],n&&d.f(t(n.id,8)+" %"+t(f<<d.F.Y,8)+" %%"+t(n.w,8)+" "+t(n.Yb,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=mc&&(c=-1),m=0);a+=d.F.Ba;f++}}});F(this)};
l.va=function(a,b,c){var d=this;switch(b){case "debugInput":return this.xa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Wc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.A.length-1&&(b=d.A[++d.B])):40==a.keyCode&&(0<d.B?b=d.A[--d.B]:(b="",d.B=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Da(c,function(){if(d.xa){var a=d.xa.value;
d.xa.value="";Wc(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Da(c,function(a){var b=!1;fb(d,!0)||(eb(d,!0),b=d.Bb(a?1:0),eb(d,!1));return b}),!0}return!1};l.Xb=function(){this.xa&&this.xa.focus()};l.ba=function(a){a=a&&a.w;null==a&&(a=-1);return a};l.sb=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(c=this.F,c=c.N[(d&c.j)>>>c.Y].Qb(d&c.i,d),b&&nf(a,b));return c};l.Ja=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=Ib(this.F,d),b&&nf(a,b));return c};
l.Vb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){var f=this.F;f.N[(d&f.j)>>>f.Y].Db(d&f.i,b&255,d);c&&nf(a,c);L(this.b,!0)}};l.pb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){var f=this.F,e=d&f.i,g=(d&f.j)>>>f.Y;e!=f.i?f.N[g].rc(e,b&65535,d):(f.N[g++].Db(e,b&255,d),f.N[g&f.A].Db(0,b>>8&255,d+1));c&&nf(a,c);L(this.b,!0)}};function Z(a){return{w:a,Ia:!1}}function of(a){return[a.w,a.Ia]}function pf(a){return{w:a[0],Ia:a[1]}}
function mf(a,b,c){var d;c=(c?a.T:a.Fb).w;if(void 0!==b){d=b=$e(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var e=a.H[c].Ma[d];if(void 0!==e){d=e.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;c=Ze(a,b,void 0)}null!=c&&(d=Z(c));return d}function qf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Lc=Xe(a,b.Gc=c[2]))}function nf(a,b){null!=a.w&&(a.w+=b||1)}
function gf(a,b){a.C=a;a.ka=a.Mc=536870912;a.za=null;a.Fa=[];b=Xe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ka|=G[c],a.f(c+" messages enabled"))}}function lf(a,b){for(var c in G)if(64==G[c]){a.La[c]=b;break}}
l.Ac=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function rf(a){return 6>a?"R"+a:6==a?"SP":"PC"}l.Bc=function(a){var b;0<=a&&(8>a?b=this.b.g[a]:16>a?b=this.b.Sa[a-8]:20>a?b=this.b.Aa[a-16]:20==a&&(b=Zb(this.b)));return b};
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.g[7]).w));this.ka&1073741824?this.Fa.push(a):this.za&&a==this.za||(this.za=a,this.ka&-2147483648&&(this.na(),a+=" (cpu halted)"),this.f(a),this.b&&(a=this.b,cd(a),a.da=0,L(a)))};
function ff(a){var b;if(yd(a)){if(!a.R||!a.R.length){a.R=Array(1E3);for(b=0;b<a.R.length;b++)a.R[b]=Z();a.sa=0;a.f("instruction history buffer allocated")}if(!a.ra||!a.ra.length)for(a.ra=Array(256),b=0;b<a.ra.length;b++)a.ra[b]=[b,0]}else a.R&&a.R.length&&a.f("instruction history buffer freed"),a.sa=0,a.R=[],a.ra=[]}l.Ab=function(a){if(!sf(this))return!1;this.b.Ab(a);return!0};
l.Bb=function(a,b,c){if(!sf(this))return!1;this.K=0;a||yd(this)&&zd(this,this.b.g[7],0);try{var d=this.b.Bb(a);0<d&&(this.K+=d,ad(this.b,d,!0),Xc(this.b,d),this.$++)}catch(f){"number"!=typeof f&&(this.K=0,ub(this.b,f.stack||f.message))}!1!==c&&L(this.b);this.Ea(b||!1);return 0<this.K};l.na=function(a){this.b&&this.b.na(a)};l.Ea=function(a){void 0===a&&(a=!0);this.T=Z(this.b.g[7]);a&&1!=this.ha?tf(this):uf(this)};
function sf(a){var b;if(b=a.b&&sb(a.b))b=a.b,b.u.ia?b=!0:(b.f(b.toString()+" not powered"),b=!1);return b&&!a.b.u.ga?!tb(a.b):!1}l.Qa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Pa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ff(this);this.$=this.Ga=0;this.za=null;this.K=0;this.T=Z(this.b.g[7]);this.u.ga=!1;vf(this);a||this.Ea()};
l.save=function(){var a=new M(this);a.set(0,of(this.T));a.set(1,of(this.ca));a.set(2,[this.A,this.da,this.ka]);a.set(3,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.T=pf(a[b++]),this.ca=pf(a[b++]),this.A=a[b][0],"string"==typeof this.A&&(this.A=[this.A]),this.da=a[b][1],this.ka|=a[b][2]);a[3]&&(this.H=a[3]);return!0};l.start=function(a,b){this.ha||this.f("running");this.u.ga=!0;this.Pc=a;this.Rc=b};
l.stop=function(a,b){if(this.u.ga){this.u.ga=!1;this.K=b-this.Rc;if(!this.ha){b="stopped";if(this.K){a-=this.Pc;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";yd(this)&&(b+=this.$+" opcodes, ",this.Ga-=this.$,this.$=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}this.Ea(!0);this.Xb();vf(this,this.b.g[7])}};function yd(a){return 1<a.j.length||!!a.ya}
function zd(a,b,c){var d=a.b;if(0<c&&(a.ya&&!--a.ya||vc(a,b,1,a.j)))return!0;0<=c&&a.ra.length&&(a.$++,null!=Ib(a.F,b)&&(b=a.R[a.sa],b.w=d.g[7],b.Ia=!1,++a.sa==a.R.length&&(a.sa=0)));return!1}function ef(a){var b,c;a.j=["bp"];if(a.W)for(b=1;b<a.W.length;b++){c=a.W[b];var d=a.F;c=a.ba(c);wc(d.N[c>>>d.Y],!1)}a.W=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.F,c=a.ba(c),wc(d.N[c>>>d.Y],!0);a.D=["bw"];a.Ib=0}
l.jb=function(a,b,c){var d=!0;c||wf(this,a,b,!1,!0);if(a!=this.j){var f=this.ba(b);if(-1===f)this.f("invalid address: "+Y(this,b.w)),d=!1;else{var e=this.F;e.N[f>>>e.Y].jb(f&e.i,a==this.D)}}d&&(a.push(b),c?b.Ia=!0:(xf(this,a,a.length-1,"set"),ff(this)));return d};function wf(a,b,c,d,f){var e=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.Ia)){e=!0;h.Ia||f||xf(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.F,wc(d.N[c>>>d.Y],b==a.D));h.Ia||ff(a);break}}return e}
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.f(b[0]+" "+Y(a,c.w)+(d?" "+d:c.Gc?' "'+c.Gc+'"':""))}function vf(a,b){if(void 0!==b)vc(a,b,1,a.j,!0),a.ha=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Ia){if(!wf(a,a.j,c,!0))break;b=0}}}
function vc(a,b,c,d,f){var e=!1;if(!a.Ib++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ia)for(var k=a.ba(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ia&&(wf(a,d,h,!0),f=!0);if(n=h.Lc){for(var e=!1,p=0;p<n.length;p++)if(!zf(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.u.ga||(e=!0)}if(e){f||xf(a,d,g,"hit");break}}}a.Ib--;return e}
function Af(a,b,c,d){var f=Z(b.w),e=a.Ja(b,2),g,h;for(h in a.Zb)if(g=a.Zb[h][e&h])break;g||(g=[0]);h="";for(var k=jf[g[0]],m=g.length-1,n=1;n<=m;n++){var p=g[n];if(void 0!==p){var q;q=a;var y=p,p=b,v="",z=y&61440;if(4096==z)p=p.w+((e&255)<<24>>23)&65535,v=Y(q,p);else if(8192==z)p=p.w-((e&63)<<1)&65535,v=Y(q,p);else if(12288==z)v=Y(q,e&7,1);else if(24576==z)v=Y(q,e&63,1);else if(z=e&y,y&4032&&(z>>=6,y>>=6),y&63)switch(y=z&7,z&56){case 0:v=rf(y);break;case 8:v="@"+rf(y);break;case 16:7>y?v="("+rf(y)+
")+":(z=q.Ja(p,2),v="#"+Y(q,z,0,!0));break;case 24:7>y?v="@("+rf(y)+")+":(z=q.Ja(p,2),v="@#"+Y(q,z,0,!0));break;case 32:v="-("+rf(y)+")";break;case 40:v="@-("+rf(y)+")";break;case 48:z=q.Ja(p,2);v=Y(q,z,0,!0)+"("+rf(y)+")";7==y&&(v=[v,Y(q,z+p.w&65535)]);break;case 56:z=q.Ja(p,2),v="@"+Y(q,z)+"("+rf(y)+")",7==y&&(v=[v,Y(q,z+p.w&65535)])}q=v;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0<h.length&&(h+=",");h+=q||"???"}}e="";g=Y(a,f.w)+":";if(-1!==f.w&&-1!==b.w){do if(e+=
" "+Y(a,a.Ja(f,2)),null==f.w)break;while(f.w!=b.w)}g+=ma(e,24);g+=ma(k,5);h&&(g+=" "+h);c&&(g=ma(g,60)+";"+c,g=a.b.u.rb?g+("cycles="+Yc(a.b).toString()+" cs="+t(a.b.Nb)):g+(null!=d?"="+d.toString():""));return g}function Bf(a,b){switch(b){case "N":a=a.b.Oa();break;case "Z":a=hd(a.b);break;case "V":a=gd(a.b);break;case "C":a=N(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Cf(a,b){var c="",d=a.b;8>b?(c=rf(b),c+="="+Y(a,d.g[b])):13>b?c="A"+(b-8)+"="+Y(a,d.Sa[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+Y(a,d.Aa[b-16]):20==b&&(c="PS="+Y(a,Zb(d)));c&&(c+=" ");return c}function Df(a){var b,c="";for(b=0;6>b;b++)c+=Cf(a,b);c=c+"\n"+(Cf(a,6)+Cf(a,7)+Cf(a,20));return c+=Bf(a,"T")+Bf(a,"N")+Bf(a,"Z")+Bf(a,"V")+Bf(a,"C")}l.wc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ef(a,b,c){var d=[],f=a.ba(b)>>>0;for(b=0;b<a.H.length;b++){var e=a.H[b],g=e.w>>>0,h=e.Wc;if(f>=g&&f<g+h){f=oa(e.tc,[f-g],a.wc);0<=f?Ff(a,b,f,d):c&&(f=~f,Ff(a,b,f-1,d),Ff(a,b,f,d));break}}return d}function Ff(a,b,c,d){var f={},e=a.H[b].tc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.H[b].Ma[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
function Gf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return cf(a)||a.f("no variables"),!0;if(!c[2])return cf(a,c[1]);if(!c[3])return delete a.ja[c[1]],!0;b=Ze(a,c[3]);return void 0!==b?(a.ja[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
function Hf(a,b,c){var d=null;if(b=mf(a,b,!0)){a.ba(b);var f=Ef(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.w-f[1])&&(g=" + "+t(e,4,!0)),e=f[0]+" ("+Y(a,f[1])+")"+g,c&&a.f(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.w)&&(g=" - "+t(e,4,!0)),e=f[4]+" ("+Y(a,f[5])+")"+g,c&&a.f(e),d||(d=e))}else c&&a.f("no symbols")}return d}
function tf(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}e=Ze(a,b);if(void 0===e)return;b=f.toUpperCase();switch(b){case "SP":case "R6":d.g[6]=e&65535;break;case "PC":case "R7":d.g[7]=e&65535;a.T=Z(d.g[7]);break;case "N":d.X=e?32768:0;
break;case "Z":d.Z=e?0:1;break;case "V":d.V=e?32768:0;break;case "C":d.U=e?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.g[b]=e&65535;break}a.f("unknown register: "+f);return}L(d);a.f("updated registers:")}a.f(Df(a));c&&(a.T=Z(d.g[7]),uf(a,Y(a,a.T.w)))}}function If(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.f(c[2]):Ze(a,b,!0)}
function Jf(a,b,c){var d="t"!=b;c=af(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Ca(c,function(){return eb(a,!0)&&a.Bb(f,d,!1)},function(){L(a.b);eb(a,!1)})}
function uf(a,b,c,d){if(b=mf(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=mf(a,c,!0);if(!d||d.w<b.w)return;f=d.w-b.w;if(256<f){a.f("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=fb(a,!1)||a.ha?a.K:null;var g=null!=e?"cycles":null,h=Ef(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(g=h[3],e=null);e=Af(a,b,g,e);a.f(e);a.T=b;f-=b.w-k;c++}}}
function zf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(">> "+b):(a.da&&(a.f("ended assemble at "+Y(a,a.ca.w)),a.T=a.ca,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(sb(a)&&0<b.length){a.da&&(b="a "+Y(a,a.ca.w)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=mf(a,e[1],!0);
if(n)if(a.ca=n,void 0===e[2])a.f("begin assemble at "+Y(a,n.w)),a.da=!0,L(a.b);else{var p;a.f("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.Vb(n,p[q],1);a.f(Af(a,a.ca))}}break;case "b":a:{var y=e[0],v=e[1],z=b;if("?"==v)a.f("breakpoint commands:"),a.f("\tbp [a]\tset exec breakpoint at addr [a]"),a.f("\tbr [a]\tset read breakpoint at addr [a]"),a.f("\tbw [a]\tset write breakpoint at addr [a]"),a.f("\tbc [a]\tclear breakpoint at addr [a]"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [n]\tbreak after [n] instruction(s)");
else{var ua=y.charAt(1);if("l"==ua){var Cc;Cc=0+yf(a,a.j);Cc+=yf(a,a.W);(Cc+=yf(a,a.D))||a.f("no breakpoints")}else if("n"==ua)a.ya=af(a,v),a.f("break after "+a.ya+" instruction(s)");else if(void 0===v)a.f("missing breakpoint address");else{var Q=Z();if("*"!=v&&(Q=mf(a,v,!0),!Q))break a;"c"==ua?null==Q.w?(ef(a),a.f("all breakpoints cleared")):wf(a,a.j,Q)||wf(a,a.W,Q)||wf(a,a.D,Q)||a.f("breakpoint missing: "+Y(a,Q.w)):null!=Q.w&&(qf(a,Q,z),"p"==ua?a.jb(a.j,Q):"r"==ua?a.jb(a.W,Q):"w"==ua?a.jb(a.D,Q):
a.f("unknown breakpoint command: "+ua))}}}break;case "c":a.kb&&(a.kb.value="");break;case "d":a:{var Ia,Ja=e[0],da=e[1],va=e[2],bg=e[3];if("?"==da){var Ka="";for(Ia in G)a.La[Ia]&&(Ka&&(Ka+=","),Ka+=Ia);Ka+=",state,symbols";a.f("dump memory commands:");a.f("\tdb [a] [#] dump # bytes at address a");a.f("\tdw [a] [#] dump # words at address a");a.f("\tdd [a] [#] dump # dwords at address a");a.f("\tdh [#] [#] dump # instructions from history");Ka.length&&a.f("dump extension commands:\n\t"+
Ka)}else if("state"==da){var ee=Kf(a.i,!0);"console"==va?console.log(ee):(a.kb&&(a.kb.value=""),a.f(ee))}else if("symbols"==da)for(var Dc=0;Dc<a.H.length;Dc++){var Ec=a.H[Dc],La;for(La in Ec.Ma)if("."!=La.charAt(0)){var fe=Ec.Ma[La].o;if(void 0!==fe){var ge=Ec.Ma[La].l;ge&&(La=ge);a.f(Y(a,fe)+" "+La)}}}else{if("d"==Ja){for(Ia in G)if(e[1]==Ia){var he=a.La[Ia];he?(e.shift(),e.shift(),he(e)):a.f("no dump registered for "+da);break a}da||(Ja=a.Vc||"db")}else a.Vc=Ja;if("dh"==Ja){var ie=da,je=va,ke="",
le=0,aa=a.sa,ea=a.R;if(ea.length){var V=+ie||a.Lb,gb=+je||10;isNaN(V)?V=gb:ke="more ";V>ea.length&&(a.f("note: only "+ea.length+" available"),V=ea.length);aa-=V;0>aa&&(null==ea[ea.length-1].w?(V=aa+V,aa=0):aa+=ea.length);var Fc=[];"call"==je&&(gb=1E5,Fc=["CALL"]);for(void 0!==ie&&a.f(V+" instructions earlier:");0<gb&&aa!=a.sa;){var me=ea[aa++];if(null==me.w)break;var hb=Z(me.w),cg=V--,ne=Af(a,hb,"history",cg);(!Fc.length||0<=ne.indexOf(Fc[0]))&&a.f(ne);hb.ic&&(aa+=hb.ic,gb-=hb.ic,V-=hb.ic);aa>=ea.length&&
(aa=0);a.Lb=V;le++;gb--}}le||(a.f("no "+ke+"history available"),a.Lb=void 0)}else{var Ob=mf(a,da);if(Ob){var Pb=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||bg),Pb=af(a,va)>>>0,65536<Pb&&(Pb=65536));for(var ib="",Ma="dd"==Ja?4:"dw"==Ja?2:1,Qb=Ma*Pb||128,dg=Qb+15>>4||1;dg--&&0<Qb;){var jb=0,Gc=0,kb,Hc="",oe="",da=Y(a,Ob.w);for(kb=4==Ma?16:a.ea;0<kb&&0<Qb;kb--){var Rb=a.sb(Ob,1),jb=jb|Rb<<(Gc++<<3);Gc==Ma&&(Hc+=8==a.ea?r(jb,3*Ma):t(jb,2*Ma),Hc+=1==Ma?9==kb?"-":" ":" ",jb=Gc=0);oe+=32<=Rb&&128>Rb?String.fromCharCode(Rb):
".";Qb--}ib&&(ib+="\n");ib+=da+" "+Hc+(0==kb?" "+oe:"")}ib&&a.f(ib);a.Fb=Ob}}}}break;case "e":if("else"==e[0])break;var Na,Ic,Jc,Kc,Lc=e[0],Mc=e[1];"eb"==Lc?(Na=1,Ic=255,Jc=a.sb,Kc=a.Vb):"e"==Lc||"ew"==Lc?(Na=2,Ic=65535,Jc=a.Ja,Kc=a.pb):Mc=null;if(null==Mc)a.f("edit memory commands:"),a.f("\teb [a] [...] edit bytes at address a"),a.f("\tew [a] [...] edit words at address a");else{var Sb=mf(a,Mc);if(Sb)for(var Tb=2;Tb<e.length;Tb++){var lb=Ze(a,e[Tb]);if(void 0===lb){a.f("unrecognized value: "+
e[Tb]);break}lb&~Ic&&a.f("warning: "+t(lb)+" exceeds "+Na+"-byte value");var eg=Jc.call(a,Sb);a.f("changing "+Y(a,Sb.w)+" from "+Y(a,eg,Na)+" to "+Y(a,lb,Na));Kc.call(a,Sb,lb,Na)}}break;case "g":a:{var pe=e[1],fg=b;if(void 0!==pe){var Nc=mf(a,pe,!0);if(!Nc)break a;qf(a,Nc,fg);a.jb(a.j,Nc,!0)}a.Ab(!0)||c||a.f("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Oc;if(a.u.ga)Oc="halting",a.na();else{if(fb(a,!0))break a;Oc="already halted"}c||a.f(Oc)}break;case "i":if("if"==e[0]){var Pc;
var mb=b.substr(2),mb=na(mb);Ze(a,mb)?(c||a.f("true: "+mb),Pc=!0):(c||a.f("false: "+mb),Pc=!1);Pc||(d=!1)}break;case "k":var gg=e[0];if("?"==e[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var Qc=0,qe=Z(),nb=Z(a.b.g[6]);for(a.f("stack trace for "+Y(a,nb.w));10>Qc;){for(var wa=null,hg=256;65536>nb.w>>>0;){qe.w=a.Ja(nb,2);if(null==nb.w||!hg--)break;for(var ig=a,Ub=qe,re=null,ob=Ub.w,se=ob,Rc=1;6>=Rc&&ob;Rc++){if(2<Rc){Ub.w=ob;var Vb=Af(ig,
Ub);if(0<=Vb.indexOf("JSR")){var te=Vb.indexOf(" ");if(ob+(Vb.indexOf(" ",te+1)-te-1)/2==se){re=Vb;break}}}ob--}Ub.w=se;if(wa=re)break}if(!wa||null==wa)break;var ue=null;if("ks"==gg){var ve=wa.match(/[0-9A-F]+$/);ve&&(ue=Hf(a,ve[0]))}wa=ma(wa,50)+" ;"+(ue||"stack="+Y(a,nb.w));a.f(wa);Qc++}Qc||a.f("no return addresses found")}break;case "l":"ln"==e[0]&&Hf(a,e[1],!0);break;case "m":a:{var fa,ga=null,A=e[1];"?"==A&&(A=void 0);if(void 0!==A){var ra=0;if("all"==A)ra=1878917119,A=null;else if("on"==A)ga=
!0,A=null;else if("off"==A)ga=!1,A=null;else{"keys"==A&&(A="key");"kbd"==A&&(A="keyboard");for(fa in G)if(A==fa){ra=G[fa];ga=!!(a.ka&ra);break}if(!ra){a.f("unknown message category: "+A);break a}}if(ra)if("on"==e[2])a.ka|=ra,ga=!0;else if("off"==e[2]&&(a.ka&=~ra,ga=!1,1073741824==ra)){for(var Sc=0;Sc<a.Fa.length;Sc++)a.f(a.Fa[Sc]);a.Fa=[]}}var jg=0,pb="";for(fa in G)if(!A||A==fa){var kg=!!(a.ka&G[fa]);if(null===ga||ga==kg)pb&&(pb+=","),++jg%10||(pb+="\n\t"),"key"==fa&&(fa="keys"),pb+=fa}void 0===
A&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==ga?ga?"messages on: ":"messages off: ":"message categories:\n\t")+(pb||"none"));ff(a)}break;case "p":if("print"==e[0]){If(a,b.substr(5));break}var lg="pr"==e[0]?1:0;if(a.ha)a.f("step in progress");else{var we=Z(a.b.g[7]);a.sb(we);a.ha?(a.jb(a.j,we,!0),a.Ab()||(a.i&&a.i.Xb(),a.ha=0)):Jf(a,lg?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}tf(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var qb=
+e[2];if(8==qb||10==qb||16==qb)a.ea=qb;else{a.f("invalid base: "+qb);break}}a.f("default base: "+a.ea);break;case "cs":var rb;void 0!==e[3]&&(rb=+e[3]);switch(e[2]){case "int":a.b.ub=rb;break;case "start":a.b.Ob=rb;break;case "stop":a.b.vb=rb;break;default:a.f("unknown cs option");break a}void 0!==rb&&Vc(a.b);a.f("checksums "+(a.b.u.rb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&($c(a.b,+e[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.b.mb.toFixed(2)+
"Mhz")+" ("+a.b.bb+"x)");break;case "?":a.f("debugger options:");a.f("\tbase #\t\tset default base to #");a.f("\tcs int #\tset checksum cycle interval to #");a.f("\tcs start #\tset checksum cycle start count to #");a.f("\tcs stop #\tset checksum cycle stop count to #");a.f("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.f("unknown option: "+e[1])}break;case "t":If(a,e[0],e[1]);break;case "u":tf(a,e[1],e[2],8);break;case "v":if("var"==e[0]){Ff(a,b.substr(3))||(d=!1);break}a.f("PDP11js version 1.30.0 ("+
a.b.Zc+",RELEASE"+(vb?",TYPEDARRAYS":",LONGARRAYS")+")");a.f(window?window.navigator.userAgent:"");break;case "?":if(e[1]){Hf(a,b.substr(1));break}var Tc="commands:",Uc;for(Uc in gf)Tc+="\n"+ma(Uc,9)+gf[Uc];xd(a)||(Tc+="\nnote: history disabled if no exec breakpoints");a.f(Tc);break;default:a.f("unknown command: "+b),d=!1}}}catch(we){a.f("debugger error: "+(we.stack||we.message)),d=!1}return d}function Wc(a,b,c){b=We(a,b,c);for(var d in b)if(!yf(a,b[+d]))return!1;return!0}
Pa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new cf(d);cb(d,c)}});
function Kf(a,b,c){w.call(this,"Computer",a,Kf,67108864);this.u.ia=!1;Lf(this,b);this.W=Ac(this,"autoPower",a);this.A=0;this.ha=a.busWidth||a.buswidth;this.i=Mf;this.R=null;this.G=this.da=!1;this.url=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.j=Nf(this);if(this.b=bb("CPU",this.id)){this.C=bb("Debugger",this.id);this.F=new yb({id:this.uc+".bus",busWidth:this.ha},this.b,this.C);var d,f=ab(this.id);if((this.B=bb("Panel",this.id))&&this.B.kb)for(b=0;b<f.length;b++)d=f[b],d.qa=this.B.qa,d.f=
this.B.f,d.kb=this.B.kb;this.f("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.f("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Za&&d.Za(this,this.F,this.b,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.i=parseInt(d,10));var e;if(a=Ac(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.G=!0,this.i=Mf),this.i&&
(this.T=new M(this,"1.30.0"),Of(this.T)?b=null:delete this.T);!b&&this.i&&(b=Pf(this))&&(this.G=!0);if(b){var g=this;sa(b,null,!0,function(a,b,c){c?(g.J=null,g.G=!1,g.qa("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.R=b,g.da=!0);F(g)})}else F(this);this.I.power||(this.W=!0);!c&&this.W&&Qf(this,this.Pb)}else u("Unable to find CPU component")}B(Kf);var Mf=0;
function Lf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.ea=b}function Ac(a,b,c){var d=b.toLowerCase(),d=Ua[b]||Ua[d];void 0===d&&a.ea&&(d=a.ea[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Qf(a,b,c){for(var d=ab(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!sb(e)){sb(e,function(){Qf(a,b,c)});return}}b.call(a,c)}
function Rf(a,b){var c=new M(a,"1.30.0","validate");if(Of(c)&&Sf(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.qa("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Kf.prototype;
l.Pb=function(a){void 0===a&&(a=this.i||(this.R?1:Mf));if(!this.A){this.A++;var b=!1,c=!1;this.ca=!1;var d=this.T||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>Mf){if(Of(d,this.R)){this.D=new M(this,"1.30.0","failsafe");Of(this.D)&&(Tf(this,d),a=2,Uf(this.D));this.D.set("timestamp",qa());Vf(this.D);var f=this.i&&!this.G;if(1==a||ta("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Sf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Of(d,g):("error"==
e&&"no machine state"!=g?(this.qa("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.j=null)):this.f(e+": "+g),Uf(d),Of(d)?(c=Sf(d),f=!0):c=!1))}f&&Rf(this,c?d:null)}else 2==a&&d.clear()}else Rf(this);delete this.R;delete this.T}f=ab(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=Wf(this,g,d,b,c));b=[d,a,c];-1!=a?Qf(this,this.yc,b):this.yc(b)}};
function Wf(a,b,c,d,f){if(!b.u.ia){b.u.ia=!0;if(b.Ra){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Ra(e,d)&&e&&(u("Unable to restore state for "+b.type),a.$&&!a.da?(c.clear(),a.i=Mf,window&&window.location.reload()):a.ca=!0,b.Ra(null),f=!1)}if(!d&&b.sc)for(a=b.sc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.yc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ja=!0;this.u.ia=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Wf(this,this.b,b,c,a),this.b.Hb());this.ca&&(Tf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.A=0};
function Tf(a,b){if(ta("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;sa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Jf(a,b,c){var d,f="none";if(a.A)return null;a.A--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=qa();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Qa&&(c&&a.b.na(),d=a.b.Qa(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.u.ia=!1,!1===d&&(f=null)));for(var h=ab(a.id),k=0;k<h.length;k++){var m=h[k];m.u.ia&&(m.Qa&&(d=m.Qa(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.u.ia=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.j&&Xf(a,a.j,e.toString()),Vf(g)&&Vf(e)||(f=null,d=h=!0)):a.i&&(d=!0,h=3==a.i),d&&e.clear(h)):f=e.toString());c&&(a.u.ia=!1,b=a.I.power)&&(b.textContent="Power");a.A=0;return f}l.reset=function(){this.F&&this.F.reset&&(db(this,"Resetting "+this.F.type),this.F.reset());for(var a=ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c.reset&&(db(this,"Resetting "+c.type),c.reset())}};
"Mhz")+" ("+a.b.bb+"x)");break;case "?":a.f("debugger options:");a.f("\tbase #\t\tset default base to #");a.f("\tcs int #\tset checksum cycle interval to #");a.f("\tcs start #\tset checksum cycle start count to #");a.f("\tcs stop #\tset checksum cycle stop count to #");a.f("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.f("unknown option: "+e[1])}break;case "t":Jf(a,e[0],e[1]);break;case "u":uf(a,e[1],e[2],8);break;case "v":if("var"==e[0]){Gf(a,b.substr(3))||(d=!1);break}a.f("PDP11js version 1.30.0 ("+
a.b.Zc+",RELEASE"+(vb?",TYPEDARRAYS":",LONGARRAYS")+")");a.f(window?window.navigator.userAgent:"");break;case "?":if(e[1]){If(a,b.substr(1));break}var Tc="commands:",Uc;for(Uc in hf)Tc+="\n"+ma(Uc,9)+hf[Uc];yd(a)||(Tc+="\nnote: history disabled if no exec breakpoints");a.f(Tc);break;default:a.f("unknown command: "+b),d=!1}}}catch(xe){a.f("debugger error: "+(xe.stack||xe.message)),d=!1}return d}function Wc(a,b,c){b=Xe(a,b,c);for(var d in b)if(!zf(a,b[+d]))return!1;return!0}
Pa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new df(d);cb(d,c)}});
function Lf(a,b,c){w.call(this,"Computer",a,Lf,67108864);this.u.ia=!1;Mf(this,b);this.W=Ac(this,"autoPower",a);this.A=0;this.ha=a.busWidth||a.buswidth;this.i=Nf;this.R=null;this.H=this.da=!1;this.url=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.j=Of(this);if(this.b=bb("CPU",this.id)){this.C=bb("Debugger",this.id);this.F=new yb({id:this.uc+".bus",busWidth:this.ha},this.b,this.C);var d,f=ab(this.id);if((this.B=bb("Panel",this.id))&&this.B.kb)for(b=0;b<f.length;b++)d=f[b],d.pa=this.B.pa,d.f=
this.B.f,d.kb=this.B.kb;this.f("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.f("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Za&&d.Za(this,this.F,this.b,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.i=parseInt(d,10));var e;if(a=Ac(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.H=!0,this.i=Nf),this.i&&
(this.T=new M(this,"1.30.0"),Pf(this.T)?b=null:delete this.T);!b&&this.i&&(b=Qf(this))&&(this.H=!0);if(b){var g=this;sa(b,null,!0,function(a,b,c){c?(g.K=null,g.H=!1,g.pa("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.R=b,g.da=!0);F(g)})}else F(this);this.J.power||(this.W=!0);!c&&this.W&&Rf(this,this.Pb)}else u("Unable to find CPU component")}B(Lf);var Nf=0;
function Mf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.ea=b}function Ac(a,b,c){var d=b.toLowerCase(),d=Ua[b]||Ua[d];void 0===d&&a.ea&&(d=a.ea[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Rf(a,b,c){for(var d=ab(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!sb(e)){sb(e,function(){Rf(a,b,c)});return}}b.call(a,c)}
function Sf(a,b){var c=new M(a,"1.30.0","validate");if(Pf(c)&&Tf(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.pa("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Lf.prototype;
l.Pb=function(a){void 0===a&&(a=this.i||(this.R?1:Nf));if(!this.A){this.A++;var b=!1,c=!1;this.ca=!1;var d=this.T||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>Nf){if(Pf(d,this.R)){this.D=new M(this,"1.30.0","failsafe");Pf(this.D)&&(Uf(this,d),a=2,Vf(this.D));this.D.set("timestamp",qa());Wf(this.D);var f=this.i&&!this.H;if(1==a||ta("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Tf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Pf(d,g):("error"==
e&&"no machine state"!=g?(this.pa("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.j=null)):this.f(e+": "+g),Vf(d),Pf(d)?(c=Tf(d),f=!0):c=!1))}f&&Sf(this,c?d:null)}else 2==a&&d.clear()}else Sf(this);delete this.R;delete this.T}f=ab(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=Xf(this,g,d,b,c));b=[d,a,c];-1!=a?Rf(this,this.yc,b):this.yc(b)}};
function Xf(a,b,c,d,f){if(!b.u.ia){b.u.ia=!0;if(b.Qa){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Qa(e,d)&&e&&(u("Unable to restore state for "+b.type),a.$&&!a.da?(c.clear(),a.i=Nf,window&&window.location.reload()):a.ca=!0,b.Qa(null),f=!1)}if(!d&&b.sc)for(a=b.sc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.yc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ja=!0;this.u.ia=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Xf(this,this.b,b,c,a),this.b.Hb());this.ca&&(Uf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.A=0};
function Uf(a,b){if(ta("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;sa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Kf(a,b,c){var d,f="none";if(a.A)return null;a.A--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=qa();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Pa&&(c&&a.b.na(),d=a.b.Pa(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.u.ia=!1,!1===d&&(f=null)));for(var h=ab(a.id),k=0;k<h.length;k++){var m=h[k];m.u.ia&&(m.Pa&&(d=m.Pa(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.u.ia=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.j&&Yf(a,a.j,e.toString()),Wf(g)&&Wf(e)||(f=null,d=h=!0)):a.i&&(d=!0,h=3==a.i),d&&e.clear(h)):f=e.toString());c&&(a.u.ia=!1,b=a.J.power)&&(b.textContent="Power");a.A=0;return f}l.reset=function(){this.F&&this.F.reset&&(db(this,"Resetting "+this.F.type),this.F.reset());for(var a=ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c.reset&&(db(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=ab(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};l.stop=function(a,b){for(var c=ab(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
l.va=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.A||(d.u.ia?Jf(d,!1,!0):Qf(d,d.Pb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.u.ia&&!d.A)if(d.i&&!d.J){var a=ta("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Jf(d,a,!0);!a&&d.$?window&&window.location.reload():d.Pb(Mf)}else d.reset(),d.b&&d.b.Hb()},!0;case "save":if(ia())c.parentNode.removeChild(c);else return this.I[b]=
c,c.onclick=function(){var a=Nf(d,!0);if(a){var b=!!(d.i&&!d.J||d.$),c=Jf(d,b);b?Xf(d,a,c):d.qa("Resume disabled, machine state not saved")}},!0}return!1};
function Nf(a,b){var c=a.j;c||((c=za("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Yf(a,c))||a.qa("The user ID is invalid.")):b&&a.qa("Browser local storage is not available"));return c}
function Yf(a,b){a.j=null;b=sa(ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.j=b.data)}catch(d){u(d.message+" ("+c+")")}return a.j}function Pf(a){var b=null;a.j&&(b=ja()+"/api/v1/user?req=load&user="+a.j+"&state="+Zf(a,"1.30.0"));return b}
function Xf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zf(a,"1.30.0");d.data=c;b=sa(ja()+"/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.qa("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.qa(c),Aa("user",""),a.j=null)}}l.Xb=function(){};
l.Fa=function(a){this.b&&this.b.Fa(a);this.B&&this.B.Fa(a)};Pa(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=C(e),g=new Kf(g,d,!0);cb(g,e);g.W&&Qf(g,g.Pb)}});Ea.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.ja&&!c.u.ia&&c.Pb(-1)}});
Ea.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.u.ia&&Jf(c,!(!c.i||c.J),!0)}});function M(a,b,c){this.id=a.id;this.key=Zf(a,b,c);this.C=a.C;Uf(this,a.Sc)}function Zf(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}
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Uf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(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 Uf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function Vf(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Sf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Of(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.b=!0):!1}var $f=0;
function lg(a,b,c,d,f,e){f("Loading "+a+"...");sa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):mg(h,a,b,c,d,f,e)})}
function mg(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&($a(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?ng(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function ng(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");sa(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);ng(a,b,c)}})}else c(a,null)}
function og(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function e(a){f("Error: "+a);k&&(--$f||Ra(!0));k=!1}var g,h,k=!0;$f++;Za[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));n.appendChild(p)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?lg(c,null,null,!1,f,function(d,k){k?($a(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--$f||Ra(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--$f||Ra(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?lg(b,a,d,!0,f,m):mg(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,c,d){Ra(!1);return og(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Sa;})();
l.va=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.A||(d.u.ia?Kf(d,!1,!0):Rf(d,d.Pb))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.u.ia&&!d.A)if(d.i&&!d.K){var a=ta("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Kf(d,a,!0);!a&&d.$?window&&window.location.reload():d.Pb(Nf)}else d.reset(),d.b&&d.b.Hb()},!0;case "save":if(ia())c.parentNode.removeChild(c);else return this.J[b]=
c,c.onclick=function(){var a=Of(d,!0);if(a){var b=!!(d.i&&!d.K||d.$),c=Kf(d,b);b?Yf(d,a,c):d.pa("Resume disabled, machine state not saved")}},!0}return!1};
function Of(a,b){var c=a.j;c||((c=za("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Zf(a,c))||a.pa("The user ID is invalid.")):b&&a.pa("Browser local storage is not available"));return c}
function Zf(a,b){a.j=null;b=sa(ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.j=b.data)}catch(d){u(d.message+" ("+c+")")}return a.j}function Qf(a){var b=null;a.j&&(b=ja()+"/api/v1/user?req=load&user="+a.j+"&state="+$f(a,"1.30.0"));return b}
function Yf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=$f(a,"1.30.0");d.data=c;b=sa(ja()+"/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.pa("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.pa(c),Aa("user",""),a.j=null)}}l.Xb=function(){};
l.Ea=function(a){this.b&&this.b.Ea(a);this.B&&this.B.Ea(a)};Pa(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=C(e),g=new Lf(g,d,!0);cb(g,e);g.W&&Rf(g,g.Pb)}});Ea.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.ja&&!c.u.ia&&c.Pb(-1)}});
Ea.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=bb("Computer",c.id))&&c.u.ia&&Kf(c,!(!c.i||c.K),!0)}});function M(a,b,c){this.id=a.id;this.key=$f(a,b,c);this.C=a.C;Vf(this,a.Sc)}function $f(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}
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},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){Vf(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 Vf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function Wf(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Tf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Pf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.b=!0):!1}var ag=0;
function mg(a,b,c,d,f,e){f("Loading "+a+"...");sa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):ng(h,a,b,c,d,f,e)})}
function ng(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&($a(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?og(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function og(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");sa(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);og(a,b,c)}})}else c(a,null)}
function pg(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function e(a){f("Error: "+a);k&&(--ag||Ra(!0));k=!1}var g,h,k=!0;ag++;Za[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));n.appendChild(p)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?mg(c,null,null,!1,f,function(d,k){k?($a(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--ag||Ra(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--ag||Ra(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?mg(b,a,d,!0,f,m):ng(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,c,d){Ra(!1);return pg(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Sa;})();

View file

@ -8,123 +8,123 @@ typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encod
function q(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function ma(){if(null==la){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}la=a}return la}function na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},qa=!1,ra=!1,sa=!0;function ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
function ua(a){if(sa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function va(a){!sa&&a?(sa=!0,qa&&wa("init"),ra&&wa("show")):sa=a}function wa(a){t[a]&&ua(t[a])}ta("onload",function(){qa=!0;ua(t.init)});ta("onpageshow",function(){ra=!0;ua(t.show)});ta(pa("Opera")||pa("iOS")?"onunload":"onbeforeunload",function(){ua(t.exit)});
function w(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Kb=b.comment;this.dc=b;b=this.id.indexOf(".");0>b?this.yb=this.id:(this.Mb=this.id.substr(0,b),this.yb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Ic:!1,Jc:!1,N:!1,error:!1};this.nb=null;this.h.error=!1;this.u={};this.I=null;x.push(this)}var xa=void 0,ya={};
function w(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Kb=b.comment;this.dc=b;b=this.id.indexOf(".");0>b?this.xb=this.id:(this.Mb=this.id.substr(0,b),this.xb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Ic:!1,Jc:!1,N:!1,error:!1};this.mb=null;this.h.error=!1;this.u={};this.I=null;x.push(this)}var xa=void 0,ya={};
if(window){xa||(xa=window.location.search.substr(1));for(var za,Aa=/\+/g,Ba=/([^&=]+)=?([^&]*)/g;za=Ba.exec(xa);)ya[decodeURIComponent(za[1].replace(Aa," "))]=decodeURIComponent(za[2].replace(Aa," "))}function Ca(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function y(a,b){b||(b=w);a.prototype=Ca(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Da=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Da={},x=[];function Ea(a,b,c){Da[a]&&b&&(Da[a][b]=c)}function z(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 Fa(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 A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function B(a,b){b=C(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=A(e))&&g.binding&&a.da(g.type,g.binding,e,g.value),k=h.length}}}}
function C(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}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},da:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Bb=this.u[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.M=function(a){this.K(a,this.yb)}),!0;default:return!1}},log:function(){},K:function(){},status:function(a){this.K(this.yb+": "+a)},M:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},wa:function(){return this.h.N=!0},va:function(a,b){b&&(this.h.N=!1);return!0}};function E(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.nb;a.nb=null;b&&b()}}function Ga(a,b){b&&(a.h.ready?b():a.nb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){w.call(this,"Panel",a,Ia)}y(Ia);
l=Ia.prototype;l.da=function(a,b,c,d){return this.v&&this.v.da(a,b,c,d)||this.a&&this.a.da(a,b,c,d)?!0:this.parent.da.call(this,a,b,c,d)};l.Ka=function(a,b,c,d){this.v=a;this.B=b;this.a=c;this.I=d};l.wa=function(a,b){b||Ja();return!0};l.va=function(){return!0};l.Va=function(){};
this.M=function(a){this.K(a,this.xb)}),!0;default:return!1}},log:function(){},K:function(){},status:function(a){this.K(this.xb+": "+a)},M:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},wa:function(){return this.h.N=!0},va:function(a,b){b&&(this.h.N=!1);return!0}};function E(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.mb;a.mb=null;b&&b()}}function Ga(a,b){b&&(a.h.ready?b():a.mb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){w.call(this,"Panel",a,Ia)}y(Ia);
l=Ia.prototype;l.da=function(a,b,c,d){return this.v&&this.v.da(a,b,c,d)||this.a&&this.a.da(a,b,c,d)?!0:this.parent.da.call(this,a,b,c,d)};l.Ja=function(a,b,c,d){this.v=a;this.B=b;this.a=c;this.I=d};l.wa=function(a,b){b||Ja();return!0};l.va=function(){return!0};l.Va=function(){};
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<x.length;g++)if(x[g].id===e){e=x[g];break a}}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&E(e)}}u(Ja);
function F(a,b,c){w.call(this,"Bus",a,F);this.a=b;this.I=c;this.G=a.busWidth||16;this.v=Math.pow(2,this.G);this.j=this.v-1|0;this.f=(this.G>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.J=this.g>>2;this.i=this.g-1;this.l=this.v/this.g|0;this.L=this.l-1;this.oa=[];this.C=null;this.ab=this.T;a=new G;Ka(a,this.I);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;this.Ya=Array(4);this.Ya[0]=La;this.Ya[1]=Ma;this.Ya[2]=Na;this.Ya[3]=Oa;Pa(this,this.v-8192,8192,Qa,this);
Pa(this,57344,8192,Qa,this);E(this)}y(F);function La(a,b){var c=this.controller,d=c.oa[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.oa[a&-2])&&d[2])return d[2](b&-2)>>8;c.K("warning: unconverted read access to byte @"+ba(b));return c.ab(b,-1,1)}
function Ma(a,b,c){var d=this.controller,f=d.oa[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.oa[a&-2])&&f[3]){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.K("warning: unconverted write access to byte @"+ba(c));d.ab(c,b,1)}
function Na(a,b){var c=this.controller;if(a=c.oa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.K("warning: unconverted read access to word @"+ba(b));return c.ab(b,-1,0)}function Oa(a,b,c){var d=this.controller;if(a=d.oa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.K("warning: unconverted write access to word @"+ba(c));d.ab(c,b,0)}F.prototype.reset=function(){this.C&&this.C()};F.prototype.T=function(){return 0};
F.prototype.wa=function(a,b){b||this.reset();return!0};function Pa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.g,r=a.g-(e-m);r>g&&(r=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Xa)return k.vb+=k.Xa-e,k.Xa=e,!0;if(e>=k.Xa+k.vb){r=k.size-(e-m);r>g&&(r=g);k.vb=e-k.Xa+r;e=m+a.g;g-=r;h++;continue}}return Ra(1,e,g)}e=new G(e,r,a.g,d,f);Ka(e,a.I,k);a.b[h++]=e;e=m+a.g;g-=r}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Ta(a,b){return a.b[(b&a.j)>>>a.f].cb(b&a.i,b)}function Ua(a,b,c){var d=b&a.i,f=(b&a.j)>>>a.f;d!=a.i?a.b[f].Fc(d,c&65535,b):(a.b[f++].Wa(d,c&255,b),a.b[f&a.L].Wa(0,c>>8&255,b+1))}function Va(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.b[d];if(f.ra||f.cc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],r=g+1;r<f.length&&f[r]===m;)r++;k[h++]=r-g;k[h++]=m;g=r}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Wa(a,b){var c=Xa,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null,f=f[4],v=+d;v<=g;v+=2){var D=v&8191;void 0!==e.oa[D]?q("I/O address already registered: "+n(v,8,!0)):e.oa[D]=[h,k,m,r,!1,f||"unknown"]}}function Ya(a,b,c){a.C=b;a.ab=c}function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function H(a){w.call(this,"Device",a,H);this.b={Eb:[],U:0,W:128,b:127,bc:0};this.g={data:0,Hc:0,Ra:20,zc:0};this.f={o:0,Hb:-1};this.i={fb:2496,P:0,A:128,gb:0,eb:0,V:0,Sb:0,R:[],Ia:[406,406,406,406],F:[12,12,12,12]};this.j={o:129,$a:0,H:0,ua:0,pa:0,Aa:0,R:[],F:[40,40,40,40],Ia:[1024,1024,512,512],$b:[157,157,29,29]};this.l={a:[8210,8208,8210,8226],F:[22,22,22,50],Ha:[19,19,19,32],xb:[815,411,815,630],R:[],D:2176,Ua:0,Sa:0,ca:[0,0,0,0,0,0,0,0],ba:0,S:[4544,4544,4544,4544,4544,4544,4544,4544],Ta:[0,
0,0,0,0,0,0,0],Na:0,wc:[0,0,0,0,0,0,0,0],Tb:0,Ub:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],xc:[1,2,3,4,5,6,7,8],Vb:[0,0,0,0,0,0,0,0],ja:[0,0,0,0,0,0,0,0],ub:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],sc:[0,0,0,0,0,0,0,0],tc:[0,0,0,0,0,0,0,0],za:0,Gb:0}}y(H);
function F(a,b,c){w.call(this,"Bus",a,F);this.a=b;this.I=c;this.G=a.busWidth||16;this.v=Math.pow(2,this.G);this.j=this.v-1|0;this.f=(this.G>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.J=this.g>>2;this.i=this.g-1;this.m=this.v/this.g|0;this.L=this.m-1;this.na=[];this.C=null;this.ab=this.R;a=new G;Ka(a,this.I);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;this.Ya=Array(4);this.Ya[0]=La;this.Ya[1]=Ma;this.Ya[2]=Na;this.Ya[3]=Oa;Pa(this,this.v-8192,8192,Qa,this);
Pa(this,57344,8192,Qa,this);E(this)}y(F);function La(a,b){var c=this.controller,d=c.na[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.na[a&-2])&&d[2])return d[2](b&-2)>>8;c.K("warning: unconverted read access to byte @"+ba(b));return c.ab(b,-1,1)}
function Ma(a,b,c){var d=this.controller,f=d.na[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.na[a&-2])&&f[3]){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.K("warning: unconverted write access to byte @"+ba(c));d.ab(c,b,1)}
function Na(a,b){var c=this.controller;if(a=c.na[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.K("warning: unconverted read access to word @"+ba(b));return c.ab(b,-1,0)}function Oa(a,b,c){var d=this.controller;if(a=d.na[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.K("warning: unconverted write access to word @"+ba(c));d.ab(c,b,0)}F.prototype.reset=function(){this.C&&this.C()};F.prototype.R=function(){return 0};
F.prototype.wa=function(a,b){b||this.reset();return!0};function Pa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.g,r=a.g-(e-m);r>g&&(r=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Xa)return k.ub+=k.Xa-e,k.Xa=e,!0;if(e>=k.Xa+k.ub){r=k.size-(e-m);r>g&&(r=g);k.ub=e-k.Xa+r;e=m+a.g;g-=r;h++;continue}}return Ra(1,e,g)}e=new G(e,r,a.g,d,f);Ka(e,a.I,k);a.b[h++]=e;e=m+a.g;g-=r}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Ta(a,b){return a.b[(b&a.j)>>>a.f].cb(b&a.i,b)}function Ua(a,b,c){var d=b&a.i,f=(b&a.j)>>>a.f;d!=a.i?a.b[f].Fc(d,c&65535,b):(a.b[f++].Wa(d,c&255,b),a.b[f&a.L].Wa(0,c>>8&255,b+1))}function Va(a){for(var b=0,c=[],d=0;d<a.m;d++){var f=a.b[d];if(f.ra||f.cc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],r=g+1;r<f.length&&f[r]===m;)r++;k[h++]=r-g;k[h++]=m;g=r}k.length<f.length&&(f=k)}c[e]=f}}return c}
function Wa(a,b){var c=Xa,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null,f=f[4],v=+d;v<=g;v+=2){var D=v&8191;void 0!==e.na[D]?q("I/O address already registered: "+n(v,8,!0)):e.na[D]=[h,k,m,r,!1,f||"unknown"]}}function Ya(a,b,c){a.C=b;a.ab=c}function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function H(a){w.call(this,"Device",a,H);this.b={Eb:[],U:0,W:128,b:127,bc:0};this.g={data:0,Hc:0,Ra:20,zc:0};this.f={s:0,Hb:-1};this.i={fb:2496,P:0,A:128,gb:0,eb:0,V:0,Sb:0,S:[],Ha:[406,406,406,406],F:[12,12,12,12]};this.j={s:129,$a:0,H:0,ua:0,oa:0,Aa:0,S:[],F:[40,40,40,40],Ha:[1024,1024,512,512],$b:[157,157,29,29]};this.m={a:[8210,8208,8210,8226],F:[22,22,22,50],Ga:[19,19,19,32],wb:[815,411,815,630],S:[],D:2176,Ua:0,Sa:0,ca:[0,0,0,0,0,0,0,0],ba:0,T:[4544,4544,4544,4544,4544,4544,4544,4544],Ta:[0,
0,0,0,0,0,0,0],Ma:0,wc:[0,0,0,0,0,0,0,0],Tb:0,Ub:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],xc:[1,2,3,4,5,6,7,8],Vb:[0,0,0,0,0,0,0,0],ia:[0,0,0,0,0,0,0,0],tb:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],sc:[0,0,0,0,0,0,0,0],tc:[0,0,0,0,0,0,0,0],za:0,Gb:0}}y(H);
var Za=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=H.prototype;l.Ka=function(a,b,c,d){this.B=b;this.a=c;this.I=d;var f=this;this.f.Hb=$a(this.a,function(){f.f.ta|=128;f.f.ta&64&&(I(f.a,0,6,64),ab(f.a,f.f.Hb))});Wa(b,this);Ya(b,this.reset.bind(this),this.Zb.bind(this));E(this)};l.kc=function(){var a=this.f.ta;this.f.ta&=-129;return a};
l.Bc=function(a){this.f.ta=a;a&64&&ab(this.a,this.f.Hb);this.f.ta=a&-129};l.lc=function(){var a=this.a;return a.C&62337|a.Oa<<5|a.Pa<<1};l.Cc=function(a){var b=4,c=this.a;c.C=a&=62337;c.Oa=a>>5&3;c.Pa=a>>1&15;c.ob=a&257?a&1?6:4:0;bb(c);a=c.C;a&1|256&&(b=this.a.La&16?1:2);this.g.Ra=this.g.Ra&-8|b};l.nc=function(){return this.b.U};l.Ec=function(a){this.b.U=this.b.U&128|a&-129};l.oc=function(){return this.b.W};
l.Gc=function(a){if(128==(this.b.W&192)&&a&64){var b=this;I(this.a,8,4,52,function(){b.b.W|=128;return!!(b.b.W&64)})}this.b.W=this.b.W&128|a&-129};l.mc=function(){return cb(this.a)};l.Dc=function(a){db(this.a,a&-1809|cb(this.a)&1808);this.a.s|=128};
function eb(a){var b=a.i,c,d,f,e=b.V>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.pc,drive:e,blocksize:256,mapped:0,maxblock:b.Ia[e]*b.F[e],url:"rk"+e+".dsk"});b.A&=-129;switch(b.A>>1&7){case 0:b.fb=2496;b.P=0;b.A=128;b.V=0;break;case 1:if((b.V>>4&511)>=b.Ia[e]){b.P|=32832;b.A|=49152;break}if((b.V&15)>=b.F[e]){b.P|=32800;b.A|=49152;break}c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.eb;f=65536-b.gb&65535;fb(a,b.R[e],c,d,f);return;case 2:if((b.V>>4&511)>=b.Ia[e])b.P|=32832,
b.A|=49152;else if((b.V&15)>=b.F[e])b.P|=32800,b.A|=49152;else{c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.eb;f=65536-b.gb&65535;a.qb(b.R[e],c,d,f);return}}b.fb=e<<13|b.fb&8176|b.V%9&15;I(a.a,20,5,144,function(){b.A=b.A&65534|128;return!!(b.A&64)})}l.pc=function(a,b,c,d,f){var e=this.i;e.eb=d&65535;e.A=e.A&-49|d>>12&48;e.gb=65536-f&65535;switch(a){case 1:e.P|=33024;e.A|=49152;break;case 2:e.P|=33792,e.A|=49152}I(this.a,20,5,144,function(){e.A=e.A&65534|128;return!!(e.A&64)})};
function gb(a){var b=a.j,c,d,f,e=b.o>>8&3;b.o&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.qc,drive:e,blocksize:128,mapped:1,maxblock:b.Ia[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.o>>1&7){case 2:b.ua&8&&(b.o&=63);b.ua=b.$b[e]|b.Aa&64;break;case 3:1==(b.H&3)&&(b.Aa=b.H&4?b.Aa+(b.H&65408)&65408|b.H<<2&64:b.Aa-(b.H&65408)&65408|b.H<<2&64,b.H=b.Aa);break;case 4:b.ua=b.Aa;break;case 5:if(b.H>>6>=b.Ia[e]){b.o|=37888;break}if((b.H&63)>=b.F[e]){b.o|=37888;break}c=(b.H>>6)*b.F[e]+(b.H&63);
d=(b.pa&63)<<16|b.$a;f=65536-b.ua&65535;fb(a,b.R[e],c,d,f);return;case 6:if(b.H>>6>=b.Ia[e])b.o|=37888;else if((b.H&63)>=b.F[e])b.o|=37888;else{c=(b.H>>6)*b.F[e]+(b.H&63);d=(b.pa&63)<<16|b.$a;f=65536-b.ua&65535;a.qb(b.R[e],c,d,f);return}}I(a.a,20,5,112,function(){b.o|=129;return!!(b.o&64)})}
l.qc=function(a,b,c,d,f){var e=this.j;e.$a=d&65535;e.o=e.o&-49|d>>12&48;e.pa=d>>16&63;e.H=~~(c/e.F[b.ha])<<6|c%e.F[b.ha];e.Aa=e.H;e.ua=65536-f&65535;switch(a){case 1:e.o|=33792;break;case 2:e.o|=40960}I(this.a,20,5,112,function(){e.o|=129;return!!(e.o&64)})};function hb(a){a=a.l;a.D=2176;a.ba=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Na=a.Ua=a.Sa=a.za=a.Gb=0}
function ib(a,b){var c=a.l,d,f,e;c.D&=-16513;c.ba&=-2049;c.S[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.rc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ha[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.ub[b]=c.ja[b];c.D|=32896;c.S[b]|=32896;c.Na|=1<<b;break;case 9:hb(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ja[b]>=c.xb[0]||c.ca[b]>>8>=c.Ha[0]||(c.ca[b]&255)>=c.F[0]){c.Ta[b]|=1024;c.D|=49152;break}d=(c.ja[b]*c.Ha[0]+(c.ca[b]>>8))*c.F[0]+
(c.ca[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;fb(a,c.R[b],d,f,e);return;case 57:if(c.ja[b]>=c.xb[0]||c.ca[b]>>8>=c.Ha[0]||(c.ca[b]&255)>=c.F[0])c.Ta[b]|=1024,c.D|=49152;else{d=(c.ja[b]*c.Ha[0]+(c.ca[b]>>8))*c.F[0]+(c.ca[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;a.qb(c.R[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.S[b]|=128;return!!(c.D&64)})}
l.rc=function(a,b,c,d,f){var e=this.l;e.Ua=65536-f&65535;e.Sa=d&65535;e.D=e.D&-769|d>>8&768;e.za=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ha[0]);e.ca[b.ha]=f%e.Ha[0]<<8|c%e.F[0];e.ub[b.ha]=e.ja[b.ha]=d;e.Na|=1<<b.ha;c>=b.ic-1&&(e.S[b.ha]|=1024);switch(a){case 1:e.ba|=512;e.D|=49152;break;case 2:e.ba|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.S[b.ha]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};
function jb(a,b,c,d,f,e){var g=~~((e+c.qa-1)/c.qa),h=new XMLHttpRequest;2048>g&&d+2048<c.ic&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+g)*c.qa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,r,v,D;m=h.response;if(h.status&&206!=h.status||!m)c.Db(1,c,d,f,e);else{m=new Uint8Array(m);r=d;for(D=0;D<m.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],v=0;v<c.qa;v++)c.cache[r][v]=D<m.length?
m[D]&255|m[D+1]<<8&65280:0,D+=2;else D+=c.qa<<1;r++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:K(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.qb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){jb(this,this.qb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){var e=a.hc?kb(this.a,c):c;Ua(this.a.B,e,a.cache[b][f]&65535);c+=2;--d}b++}a.Db(0,a,b,c,d)};
function fb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){g=a.a.sb(b.hc?kb(a.a,d):d);if(0>g){b.Db(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.Db(0,b,c,d,f)}l.reset=function(){this.g.Ra=this.g.Ra&-120|20;this.b.U=0;this.b.W=128;this.f.ta=0;this.i.A=128;this.j.o=128;hb(this)};
l.Zb=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ya&65280:(a&1&&(b<<=8),e.ya=b|255,d=0);break;case 4194298:if(0>b)d=e.Fb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Fb=d;e.ia=2}break;case 4194294:if(70!==e.Ja)return K(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Ja)return K(e,4);d=1;break;case 4194290:if(70!==e.Ja)return K(e,4);d=0;break;case 4194288:if(70!==e.Ja)return K(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ja)return K(e,4);f=a-4194272>>1;0>b?d=e.Cb[f]:(d=J(this,e.Cb[f],a,b,c),0<=d&&(e.Cb[f]=d));break;case 4194254:return a&1?e.w>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ga[3]=b),d=e.ga[3]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ga[1]=b),d=e.ga[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.w&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.Ma[f]=b),d=e.Ma[f]),d;case 4194246:return a&
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ga[0]=b),d=e.ga[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.w&2048?(0<=b&&(e.Ma[f]=b),d=e.Ma[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.m|=16,K(e,4)}break;case 4194176:f=a>>1&31;d=J(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.b;switch(a&-2){case 4194174:d=J(this,e.tb,a,b,c);0<=d&&(e.tb=d);break;case 4194172:d=e.xa;d&65280&&(d=(d<<8|d>>8)&65535);break;
case 4194168:0>b?d=this.g.zc&65535:(d=J(this,this.g.data,a,b,c),0<=d&&(this.g.data=d));break;case 4194166:0<=b&&(b&127&&(g.bc=0),g.W&=-129,I(e,100,4,52,function(){g.W|=128;return!!(g.W&64)}));d=0;break;case 4194162:d=0;0>b&&(g.U&=-129,0<g.Eb.length&&(d=g.Eb.shift(),0<g.Eb.length&&setTimeout(function(){g.U|=128;g.U&64&&I(e,40,4,48)},50)));break;case 4194160:0>b?d=g.U:(d=J(this,g.U,a,b,c),0<=d&&(g.U=g.U&128|d&-129));break;default:return e.m|=16,K(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
J(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194050:d=J(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=J(this,f.A,a,b,c);0<=b&&0<=d&&(f.A=d&-36993|f.A&36992,f.A&1&&eb(this));break;case 4194054:d=J(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194056:d=J(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194058:d=J(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=J(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;default:return e.m|=16,K(e,4)}break;case 4193728:var h=this.l;f=h.ba&7;switch(a&
-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.za=h.za&60|d>>8&3,h.D=d&17279|h.D&34944|2048,d&1&&h.D&128?ib(this,f):192==(d&192)&&I(e,0,5,172));break;case 4193730:d=J(this,h.Ua,a,b,c);0<=d&&(h.Ua=d);break;case 4193732:d=J(this,h.Sa,a,b,c);0<=d&&(h.Sa=d&65534);break;case 4193734:d=J(this,h.ca[f],a,b,c);0<=d&&(h.ca[f]=d&7967);break;case 4193736:d=J(this,h.ba,a,b,c);0<=d&&(h.ba=d&63|h.ba&65472,d&128&&hb(this));break;case 4193738:d=h.S[f];break;case 4193740:d=h.Ta[f];break;case 4193742:d=J(this,
h.Na,a,b,c);0<=d&&(h.Na=d&255);break;case 4193744:d=h.wc[f];break;case 4193746:d=J(this,h.Tb,a,b,c);0<=d&&(h.Tb=d);break;case 4193748:d=J(this,h.Ub[f],a,b,c);0<=d&&(h.Ub[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.xc[f];break;case 4193754:d=J(this,h.Vb[f],a,b,c);0<=d&&(h.Vb[f]=d);break;case 4193756:d=J(this,h.ja[f],a,b,c);0<=d&&(h.ja[f]=d&511);break;case 4193758:h.ub[f]=h.ja[f];d=h.ub[f];break;case 4193760:d=h.uc[f];break;case 4193762:d=h.vc[f];break;case 4193764:d=h.sc[f];break;case 4193766:d=
h.tc[f];break;case 4193768:d=J(this,h.za,a,b,c);0<=d&&(h.za=d&63,h.D=h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Gb,a,b,c);0<=d&&(h.Gb=d);break;default:return e.m|=16,K(e,4)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=J(this,f.o,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.o=f.o&-1023|d&1022,f.o&128||gb(this));break;case 4192514:d=J(this,f.$a,a,b,c);0<=d&&(f.$a=d&65534);break;case 4192516:d=J(this,f.H,a,b,c);0<=d&&(f.H=d);break;case 4192518:d=J(this,f.ua,a,b,c);0<=d&&(f.ua=d);break;
case 4192520:d=J(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.o=f.o&-49|(f.pa&3)<<4);break;default:return e.m|=16,K(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.La:(d=J(this,e.La,a,b,c),0<=d&&(70!==e.Ja&&(d&=-49),e.La=d,e.pb[0]=d&4?15:7,e.pb[1]=d&2?15:7,e.pb[3]=d&1?15:7,e.ob&&(f=2,e.La&16&&(f=1),this.g.Ra=this.g.Ra&-8|f)));break;default:return e.m|=16,K(e,4)}break;case 4191424:f=a>>1&31;d=J(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.O[1][f],
a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ja)return K(e,4);f=a>>2&31;d=e.hb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=J(this,d,a,b,c),0<=d&&(e.hb[f]=a&2?d<<16|e.hb[f]&65535:e.hb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Za[a>>1&255];else return e.m|=16,K(e,4);break;default:return e.m|=16,K(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=H.prototype;l.Ja=function(a,b,c,d){this.B=b;this.a=c;this.I=d;var f=this;this.f.Hb=$a(this.a,function(){f.f.ta|=128;f.f.ta&64&&(I(f.a,0,6,64),ab(f.a,f.f.Hb))});Wa(b,this);Ya(b,this.reset.bind(this),this.Zb.bind(this));E(this)};l.kc=function(){var a=this.f.ta;this.f.ta&=-129;return a};
l.Bc=function(a){this.f.ta=a;a&64&&ab(this.a,this.f.Hb);this.f.ta=a&-129};l.lc=function(){var a=this.a;return a.C&62337|a.Na<<5|a.Oa<<1};l.Cc=function(a){var b=4,c=this.a;c.C=a&=62337;c.Na=a>>5&3;c.Oa=a>>1&15;c.nb=a&257?a&1?6:4:0;bb(c);a=c.C;a&1|256&&(b=this.a.Ka&16?1:2);this.g.Ra=this.g.Ra&-8|b};l.nc=function(){return this.b.U};l.Ec=function(a){this.b.U=this.b.U&128|a&-129};l.oc=function(){return this.b.W};
l.Gc=function(a){if(128==(this.b.W&192)&&a&64){var b=this;I(this.a,8,4,52,function(){b.b.W|=128;return!!(b.b.W&64)})}this.b.W=this.b.W&128|a&-129};l.mc=function(){return cb(this.a)};l.Dc=function(a){db(this.a,a&-1809|cb(this.a)&1808);this.a.l|=128};
function eb(a){var b=a.i,c,d,f,e=b.V>>13&7;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.pc,drive:e,blocksize:256,mapped:0,maxblock:b.Ha[e]*b.F[e],url:"rk"+e+".dsk"});b.A&=-129;switch(b.A>>1&7){case 0:b.fb=2496;b.P=0;b.A=128;b.V=0;break;case 1:if((b.V>>4&511)>=b.Ha[e]){b.P|=32832;b.A|=49152;break}if((b.V&15)>=b.F[e]){b.P|=32800;b.A|=49152;break}c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.eb;f=65536-b.gb&65535;fb(a,b.S[e],c,d,f);return;case 2:if((b.V>>4&511)>=b.Ha[e])b.P|=32832,
b.A|=49152;else if((b.V&15)>=b.F[e])b.P|=32800,b.A|=49152;else{c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.eb;f=65536-b.gb&65535;a.pb(b.S[e],c,d,f);return}}b.fb=e<<13|b.fb&8176|b.V%9&15;I(a.a,20,5,144,function(){b.A=b.A&65534|128;return!!(b.A&64)})}l.pc=function(a,b,c,d,f){var e=this.i;e.eb=d&65535;e.A=e.A&-49|d>>12&48;e.gb=65536-f&65535;switch(a){case 1:e.P|=33024;e.A|=49152;break;case 2:e.P|=33792,e.A|=49152}I(this.a,20,5,144,function(){e.A=e.A&65534|128;return!!(e.A&64)})};
function gb(a){var b=a.j,c,d,f,e=b.s>>8&3;b.s&=-2;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.qc,drive:e,blocksize:128,mapped:1,maxblock:b.Ha[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.s>>1&7){case 2:b.ua&8&&(b.s&=63);b.ua=b.$b[e]|b.Aa&64;break;case 3:1==(b.H&3)&&(b.Aa=b.H&4?b.Aa+(b.H&65408)&65408|b.H<<2&64:b.Aa-(b.H&65408)&65408|b.H<<2&64,b.H=b.Aa);break;case 4:b.ua=b.Aa;break;case 5:if(b.H>>6>=b.Ha[e]){b.s|=37888;break}if((b.H&63)>=b.F[e]){b.s|=37888;break}c=(b.H>>6)*b.F[e]+(b.H&63);
d=(b.oa&63)<<16|b.$a;f=65536-b.ua&65535;fb(a,b.S[e],c,d,f);return;case 6:if(b.H>>6>=b.Ha[e])b.s|=37888;else if((b.H&63)>=b.F[e])b.s|=37888;else{c=(b.H>>6)*b.F[e]+(b.H&63);d=(b.oa&63)<<16|b.$a;f=65536-b.ua&65535;a.pb(b.S[e],c,d,f);return}}I(a.a,20,5,112,function(){b.s|=129;return!!(b.s&64)})}
l.qc=function(a,b,c,d,f){var e=this.j;e.$a=d&65535;e.s=e.s&-49|d>>12&48;e.oa=d>>16&63;e.H=~~(c/e.F[b.ga])<<6|c%e.F[b.ga];e.Aa=e.H;e.ua=65536-f&65535;switch(a){case 1:e.s|=33792;break;case 2:e.s|=40960}I(this.a,20,5,112,function(){e.s|=129;return!!(e.s&64)})};function hb(a){a=a.m;a.D=2176;a.ba=0;a.T=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Ma=a.Ua=a.Sa=a.za=a.Gb=0}
function ib(a,b){var c=a.m,d,f,e;c.D&=-16513;c.ba&=-2049;c.T[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.S[b]&&(c.S[b]={cache:[],postProcess:a.rc,drive:b,blocksize:256,mapped:0,maxblock:c.wb[0]*c.Ga[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.tb[b]=c.ia[b];c.D|=32896;c.T[b]|=32896;c.Ma|=1<<b;break;case 9:hb(a);break;case 19:c.T[b]|=64;break;case 49:if(c.ia[b]>=c.wb[0]||c.ca[b]>>8>=c.Ga[0]||(c.ca[b]&255)>=c.F[0]){c.Ta[b]|=1024;c.D|=49152;break}d=(c.ia[b]*c.Ga[0]+(c.ca[b]>>8))*c.F[0]+
(c.ca[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;fb(a,c.S[b],d,f,e);return;case 57:if(c.ia[b]>=c.wb[0]||c.ca[b]>>8>=c.Ga[0]||(c.ca[b]&255)>=c.F[0])c.Ta[b]|=1024,c.D|=49152;else{d=(c.ia[b]*c.Ga[0]+(c.ca[b]>>8))*c.F[0]+(c.ca[b]&255);f=(c.za&63)<<16|c.Sa;e=65536-c.Ua&65535;a.pb(c.S[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.T[b]|=128;return!!(c.D&64)})}
l.rc=function(a,b,c,d,f){var e=this.m;e.Ua=65536-f&65535;e.Sa=d&65535;e.D=e.D&-769|d>>8&768;e.za=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ga[0]);e.ca[b.ga]=f%e.Ga[0]<<8|c%e.F[0];e.tb[b.ga]=e.ia[b.ga]=d;e.Ma|=1<<b.ga;c>=b.ic-1&&(e.T[b.ga]|=1024);switch(a){case 1:e.ba|=512;e.D|=49152;break;case 2:e.ba|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.T[b.ga]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};
function jb(a,b,c,d,f,e){var g=~~((e+c.pa-1)/c.pa),h=new XMLHttpRequest;2048>g&&d+2048<c.ic&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.pa<<1)+"-"+(((d+g)*c.pa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,r,v,D;m=h.response;if(h.status&&206!=h.status||!m)c.Db(1,c,d,f,e);else{m=new Uint8Array(m);r=d;for(D=0;D<m.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],v=0;v<c.pa;v++)c.cache[r][v]=D<m.length?
m[D]&255|m[D+1]<<8&65280:0,D+=2;else D+=c.pa<<1;r++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:K(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){jb(this,this.pb,a,b,c,d);return}for(f=0;f<a.pa&&0<d;f++){var e=a.hc?kb(this.a,c):c;Ua(this.a.B,e,a.cache[b][f]&65535);c+=2;--d}b++}a.Db(0,a,b,c,d)};
function fb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.pa;e++)b.cache[c][e]=0;for(e=0;e<b.pa&&0<f;e++){g=a.a.rb(b.hc?kb(a.a,d):d);if(0>g){b.Db(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.Db(0,b,c,d,f)}l.reset=function(){this.g.Ra=this.g.Ra&-120|20;this.b.U=0;this.b.W=128;this.f.ta=0;this.i.A=128;this.j.s=128;hb(this)};
l.Zb=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ya&65280:(a&1&&(b<<=8),e.ya=b|255,d=0);break;case 4194298:if(0>b)d=e.Fb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Fb=d;e.ha=2}break;case 4194294:if(70!==e.Ia)return K(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.Ia)return K(e,4);d=1;break;case 4194290:if(70!==e.Ia)return K(e,4);d=0;break;case 4194288:if(70!==e.Ia)return K(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ia)return K(e,4);f=a-4194272>>1;0>b?d=e.Cb[f]:(d=J(this,e.Cb[f],a,b,c),0<=d&&(e.Cb[f]=d));break;case 4194254:return a&1?e.w>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.fa[3]=b),d=e.fa[3]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.fa[1]=b),d=e.fa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.w&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.La[f]=b),d=e.La[f]),d;case 4194246:return a&
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.w>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.fa[0]=b),d=e.fa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.w&2048?(0<=b&&(e.La[f]=b),d=e.La[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.o|=16,K(e,4)}break;case 4194176:f=a>>1&31;d=J(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.b;switch(a&-2){case 4194174:d=J(this,e.sb,a,b,c);0<=d&&(e.sb=d);break;case 4194172:d=e.xa;d&65280&&(d=(d<<8|d>>8)&65535);break;
case 4194168:0>b?d=this.g.zc&65535:(d=J(this,this.g.data,a,b,c),0<=d&&(this.g.data=d));break;case 4194166:0<=b&&(b&127&&(g.bc=0),g.W&=-129,I(e,100,4,52,function(){g.W|=128;return!!(g.W&64)}));d=0;break;case 4194162:d=0;0>b&&(g.U&=-129,0<g.Eb.length&&(d=g.Eb.shift(),0<g.Eb.length&&setTimeout(function(){g.U|=128;g.U&64&&I(e,40,4,48)},50)));break;case 4194160:0>b?d=g.U:(d=J(this,g.U,a,b,c),0<=d&&(g.U=g.U&128|d&-129));break;default:return e.o|=16,K(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
J(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194050:d=J(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=J(this,f.A,a,b,c);0<=b&&0<=d&&(f.A=d&-36993|f.A&36992,f.A&1&&eb(this));break;case 4194054:d=J(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194056:d=J(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194058:d=J(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=J(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;default:return e.o|=16,K(e,4)}break;case 4193728:var h=this.m;f=h.ba&7;switch(a&
-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.za=h.za&60|d>>8&3,h.D=d&17279|h.D&34944|2048,d&1&&h.D&128?ib(this,f):192==(d&192)&&I(e,0,5,172));break;case 4193730:d=J(this,h.Ua,a,b,c);0<=d&&(h.Ua=d);break;case 4193732:d=J(this,h.Sa,a,b,c);0<=d&&(h.Sa=d&65534);break;case 4193734:d=J(this,h.ca[f],a,b,c);0<=d&&(h.ca[f]=d&7967);break;case 4193736:d=J(this,h.ba,a,b,c);0<=d&&(h.ba=d&63|h.ba&65472,d&128&&hb(this));break;case 4193738:d=h.T[f];break;case 4193740:d=h.Ta[f];break;case 4193742:d=J(this,
h.Ma,a,b,c);0<=d&&(h.Ma=d&255);break;case 4193744:d=h.wc[f];break;case 4193746:d=J(this,h.Tb,a,b,c);0<=d&&(h.Tb=d);break;case 4193748:d=J(this,h.Ub[f],a,b,c);0<=d&&(h.Ub[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.xc[f];break;case 4193754:d=J(this,h.Vb[f],a,b,c);0<=d&&(h.Vb[f]=d);break;case 4193756:d=J(this,h.ia[f],a,b,c);0<=d&&(h.ia[f]=d&511);break;case 4193758:h.tb[f]=h.ia[f];d=h.tb[f];break;case 4193760:d=h.uc[f];break;case 4193762:d=h.vc[f];break;case 4193764:d=h.sc[f];break;case 4193766:d=
h.tc[f];break;case 4193768:d=J(this,h.za,a,b,c);0<=d&&(h.za=d&63,h.D=h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Gb,a,b,c);0<=d&&(h.Gb=d);break;default:return e.o|=16,K(e,4)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=J(this,f.s,a,b,c);0<=b&&0<=d&&(f.oa=f.oa&60|d>>4&3,f.s=f.s&-1023|d&1022,f.s&128||gb(this));break;case 4192514:d=J(this,f.$a,a,b,c);0<=d&&(f.$a=d&65534);break;case 4192516:d=J(this,f.H,a,b,c);0<=d&&(f.H=d);break;case 4192518:d=J(this,f.ua,a,b,c);0<=d&&(f.ua=d);break;
case 4192520:d=J(this,f.oa,a,b,c);0<=d&&(f.oa=d&63,f.s=f.s&-49|(f.oa&3)<<4);break;default:return e.o|=16,K(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Ka:(d=J(this,e.Ka,a,b,c),0<=d&&(70!==e.Ia&&(d&=-49),e.Ka=d,e.ob[0]=d&4?15:7,e.ob[1]=d&2?15:7,e.ob[3]=d&1?15:7,e.nb&&(f=2,e.Ka&16&&(f=1),this.g.Ra=this.g.Ra&-8|f)));break;default:return e.o|=16,K(e,4)}break;case 4191424:f=a>>1&31;d=J(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.O[1][f],
a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ia)return K(e,4);f=a>>2&31;d=e.hb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=J(this,d,a,b,c),0<=d&&(e.hb[f]=a&2?d<<16|e.hb[f]&65535:e.hb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Za[a>>1&255];else return e.o|=16,K(e,4);break;default:return e.o|=16,K(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
return d};var L={},Xa=(L[65382]=[null,null,H.prototype.kc,H.prototype.Bc,"LKS"],L[65392]=[null,null,H.prototype.nc,H.prototype.Ec,"RCSR"],L[65396]=[null,null,H.prototype.oc,H.prototype.Gc,"XCSR"],L[65402]=[null,null,H.prototype.lc,H.prototype.Cc,"MMR0"],L[65534]=[null,null,H.prototype.mc,H.prototype.Dc,"PSW"],L);u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new H(d);B(d,c)}});var lb;
if(Ha){var mb=new ArrayBuffer(2);(new DataView(mb)).setUint16(0,256,!0);lb=256===(new Uint16Array(mb))[0]}else lb=!1;var nb=lb;
function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Xa=a;this.vb=b;this.size=c||0;this.type=d||pb;this.g=d==qb;this.controller=null;Ka(this);this.ra=this.cc=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Ya);else if(Ha)this.f=new ArrayBuffer(c),this.u=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.l=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;rb(this,ub)}else rb(this)}
function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Xa=a;this.ub=b;this.size=c||0;this.type=d||pb;this.g=d==qb;this.controller=null;Ka(this);this.ra=this.cc=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Ya);else if(Ha)this.f=new ArrayBuffer(c),this.u=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.m=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;rb(this,ub)}else rb(this)}
var pb=0,qb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],ob=0;
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ra=!0}return!1},v:function(){return 255},G:function(){},C:function(a,b){return this.cb(a++,b++)|this.cb(a,b)<<8},J:function(a,b,c){this.Wa(a++,
b&255,c++);this.Wa(a,b>>8,c)},$:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},na: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},Ea:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ra=!0},Qa:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ra=!0},T:function(a,b){return this.X(a,b)},ka:function(a,b){return this.la(a,
b)},Ca:function(a,b,c){this.g||this.Yb(a,b,c)},Ga:function(a,b,c){this.g||this.Oa(a,b,c)},L:function(a){return this.b[a]},Y:function(a){return this.b[a]},aa:function(a){return this.u.getUint16(a,!0)},ma:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Ba:function(a,b){this.b[a]=b;this.ra=!0},Da:function(a,b){this.b[a]=b;this.ra=!0},Fa:function(a,b){this.u.setUint16(a,b,!0);this.ra=!0},Pa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.ra=!0}};
function Ka(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&vb(a,wb,!1),(a.j=c.j)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.j||(a.Wa=!a.g&&b[1]||a.G,a.Fc=!a.g&&b[3]||a.J);if(c||void 0===c)a.Yb=b[1]||a.G,a.Oa=b[3]||a.J}function vb(a,b,c){c&&a.i||(a.cb=b[0]||a.v,a.rb=b[2]||a.C);if(c||void 0===c)a.X=b[0]||a.v,a.la=b[2]||a.C}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.$,G.prototype.Ea,G.prototype.na,G.prototype.Qa],wb=[G.prototype.T,G.prototype.Ca,G.prototype.ka,G.prototype.Ga];
if(Ha)var tb=[G.prototype.L,G.prototype.Ba,G.prototype.aa,G.prototype.Fa],sb=[G.prototype.Y,G.prototype.Da,G.prototype.ma,G.prototype.Pa];function zb(a,b){w.call(this,"CPU",a,zb);var c=a.multiplier||1;this.kb=a.cycles||b;this.$=c;this.zb=Math.round(this.kb/1E4)/100;this.la=this.zb*this.$;this.h.Z=!1;this.h.Wb=!1;this.h.Za=a.autoStart;this.h.Nb=!1;this.h.mb=!1;this.ib=this.ma=0;this.jb=a.csStart;this.Ca=a.csInterval;this.Da=a.csStop;this.G=[];this.wb=this.yc.bind(this);E(this)}y(zb);
var Ab=["power","reset"];l=zb.prototype;l.Ka=function(a,b,c,d){this.v=a;this.B=b;this.I=d;for(b=0;b<Ab.length;b++)(c=this.u[Ab[b]])&&this.v.da(null,Ab[b],c);this.Ba=null;a=Bb(a,"autoStart");null!=a&&(this.h.Za="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.wa=function(a,b){if(!b){if(a&&this.restore){Cb(this);if(!this.restore(a))return!1;Db(this)}else this.reset();this.K("No debugger detected")}Eb(this);return!0};
l.va=function(a){return a?this.save():!0};l.Za=function(){return this.h.Za||void 0===this.u.run?(Fb(this),!0):!1};l.Rb=function(){return 0};function Db(a){void 0===a.jb&&(a.jb=0);void 0===a.Ca&&(a.Ca=-1);void 0===a.Da&&(a.Da=-1);a.h.mb=0<=a.jb&&0<a.Ca;a.h.mb&&(a.ib=0,a.ma=a.jb-a.aa)}
b&255,c++);this.Wa(a,b>>8,c)},$:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ma: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},Ea:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ra=!0},Qa:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ra=!0},R:function(a,b){return this.X(a,b)},ja:function(a,b){return this.ka(a,
b)},Ca:function(a,b,c){this.g||this.Yb(a,b,c)},Na:function(a,b,c){this.g||this.Oa(a,b,c)},L:function(a){return this.b[a]},Y:function(a){return this.b[a]},aa:function(a){return this.u.getUint16(a,!0)},la:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.m[a>>1]},Ba:function(a,b){this.b[a]=b;this.ra=!0},Da:function(a,b){this.b[a]=b;this.ra=!0},Fa:function(a,b){this.u.setUint16(a,b,!0);this.ra=!0},Pa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.m[a>>1]=b;this.ra=!0}};
function Ka(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&vb(a,wb,!1),(a.j=c.j)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.j||(a.Wa=!a.g&&b[1]||a.G,a.Fc=!a.g&&b[3]||a.J);if(c||void 0===c)a.Yb=b[1]||a.G,a.Oa=b[3]||a.J}function vb(a,b,c){c&&a.i||(a.cb=b[0]||a.v,a.qb=b[2]||a.C);if(c||void 0===c)a.X=b[0]||a.v,a.ka=b[2]||a.C}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.$,G.prototype.Ea,G.prototype.ma,G.prototype.Qa],wb=[G.prototype.R,G.prototype.Ca,G.prototype.ja,G.prototype.Na];
if(Ha)var tb=[G.prototype.L,G.prototype.Ba,G.prototype.aa,G.prototype.Fa],sb=[G.prototype.Y,G.prototype.Da,G.prototype.la,G.prototype.Pa];function zb(a,b){w.call(this,"CPU",a,zb);var c=a.multiplier||1;this.jb=a.cycles||b;this.$=c;this.yb=Math.round(this.jb/1E4)/100;this.ka=this.yb*this.$;this.h.Z=!1;this.h.Wb=!1;this.h.Za=a.autoStart;this.h.Nb=!1;this.h.lb=!1;this.Qa=this.la=0;this.ib=a.csStart;this.Ca=a.csInterval;this.Da=a.csStop;this.G=[];this.Ab=this.yc.bind(this);E(this)}y(zb);
var Ab=["power","reset"];l=zb.prototype;l.Ja=function(a,b,c,d){this.v=a;this.B=b;this.I=d;for(b=0;b<Ab.length;b++)(c=this.u[Ab[b]])&&this.v.da(null,Ab[b],c);this.Ba=null;a=Bb(a,"autoStart");null!=a&&(this.h.Za="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.wa=function(a,b){if(!b){if(a&&this.restore){Cb(this);if(!this.restore(a))return!1;Db(this)}else this.reset();this.K("No debugger detected")}Eb(this);return!0};
l.va=function(a){return a?this.save():!0};l.Za=function(){return this.h.Za||void 0===this.u.run?(Fb(this),!0):!1};l.Rb=function(){return 0};function Db(a){void 0===a.ib&&(a.ib=0);void 0===a.Ca&&(a.Ca=-1);void 0===a.Da&&(a.Da=-1);a.h.lb=0<=a.ib&&0<a.Ca;a.h.lb&&(a.Qa=0,a.la=a.ib-a.aa)}
function M(a,b,c,d){if(a.u[b]){void 0===c&&(a.h.error=!0,a.M("Value for "+b+" is invalid"),Gb(a));var f=a.I&&a.I.b||8;c=!a.h.Z||a.h.Nb?8==f?ba(c,d):n(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.N)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.N);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.nb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.Z?Gb(d):Fb(d))};a=!0;break;
case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Hb(d,d.$<<1)},c.textContent=this.la.toFixed(2)+"Mhz",a=!0}return a};function Ib(a,b,c){a.aa+=b;c&&(a.Y=a.a=0)}function Jb(a,b){var c=1;b&&1<a.$&&a.T&&(c=a.T/a.zb);a.Pb=Math.round(1E3/30);a.lb=Math.floor(a.kb/30*c);b||(a.Ea=a.lb);a.Ab=0}function Kb(a){return a.aa+a.L+a.Y-a.a}function Cb(a){a.T=0;a.Qb=0;a.aa=a.L=a.Y=a.a=0;Db(a);Hb(a,1)}
function Hb(a,b){if(void 0!==b&&(.8>a.T/a.la&&(b=1),a.$=b,b=a.zb*a.$,a.la!=b)){a.la=b;b=a.la.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.K("target speed: "+b)}Ib(a,a.L);a.L=0;a.J=ia();a.X=0;Jb(a)}function $a(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function ab(a,b){var c;0<=b&&b<a.G.length&&0>a.G[b][0]&&(c=a.kb*a.$/1E3*(1E3/60),a.G[b][0]=c)}function Lb(a){a.Y-=a.a;a.a=0}
l.yc=function(){if(this.h.Z){this.Ab>=this.kb&&Jb(this,!0);this.Fa=0;this.Qa=ia();if(this.X){var a=this.Qa-this.X;a>this.Pb&&(this.J+=a,this.J>this.Qa&&(this.J=this.Qa))}try{do{for(var b,c=this.h.mb?1:this.lb,d=this.G.length-1;0<=d;d--){var f=this.G[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Xb(b)}catch(m){if("number"!=typeof m)throw m;}for(var e=this.Y-this.a,a=e,g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Fa+=e;this.L+=e;Ib(this,0,!0);a=e;if(this.h.mb){var k=
!1;this.ib=this.ib+this.Rb()|0;this.ma-=a;0>=this.ma&&(this.ma+=this.Ca,k=!0);0<=this.Da&&this.Da<=Kb(this)&&(this.Ca=this.Da=-1,Db(this),Gb(this),k=!0);k&&this.K(Kb(this)+" cycles: checksum="+n(this.ib))}this.Ea-=e;if(0>=this.Ea){this.Ea+=this.lb;15<=++this.Qb&&(this.v&&this.v.Va(),this.Qb=0);break}}while(this.h.Z)}catch(m){Gb(this);Eb(this);this.v&&this.v.stop(ia(),Kb(this));b=m.stack||m.message;this.h.error=!0;this.M(b);return}if(this.h.Z){b=setTimeout;c=this.wb;this.X=ia();d=this.Pb;this.Fa&&
(d=Math.round(d*this.Fa/this.lb));d-=this.X-this.Qa;if(f=this.X-this.J)this.T=Math.round(this.L/(10*f))/100,864E5<=f&&(this.aa=0,Hb(this));if(0>d||this.T<this.la)-1E3>d&&(this.J-=d),d=0;this.Ab+=this.Fa;this.X+=d;b(c,d)}}};function Fb(a){var b;a.h.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.Z)a.K(a.toString()+" busy");else{Hb(a);a.h.Z=!0;a.h.Wb=!0;a.Ba&&a.Ba.start();if(b=a.u.run)b.textContent="Halt";a.v&&a.v.start(a.J,Kb(a));Eb(a,!0);setTimeout(a.wb,0)}}l.Xb=function(){return 0};
function Gb(a){if(a.h.Z){Lb(a);Ib(a,a.L);a.L=0;a.h.Z=!1;a.Ba&&a.Ba.stop();var b=a.u.run;b&&(b.textContent="Run");a.v&&a.v.stop(ia(),Kb(a));Eb(a)}a.h.complete=void 0}function Eb(a,b){a.v&&a.v.Va(b)}
function Mb(a){this.gc=a.resetAddr||0;zb.call(this,a,1E6);this.Jb=0;this.decode=Nb.bind(this);this.i=65536;this.b=32768;this.f=65535;this.j=32768;this.w=15;this.c=[0,0,0,0,0,0,0,this.gc];this.Ma=[0,0,0,0,0,0];this.ga=[0,0,0,0];this.Pa=this.l=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.hb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Cb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.s=0;this.Ja=70;this.na=-1;this.Ga=0;Ob(this);this.h.complete=this.h.ac=!1}y(Mb,zb);l=Mb.prototype;l.reset=function(){this.h.Z&&Gb(this);Ob(this);Cb(this);this.h.error=!1;this.parent.reset.call(this)};
function Ob(a){a.ya=255;a.m=0;a.Fb=0;a.C=0;a.xa=0;a.tb=0;a.La=0;a.ob=0;a.Oa=0;a.pb=[7,7,7,7];a.g=[];a.ia=2;bb(a)}function bb(a){a.ob?(a.Ib=65536,a.ka=a.fc,a.rb=a.fa):(a.Ib=0,a.ka=a.ec,a.rb=a.sb)}l.Rb=function(){return 0};l.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.aa,this.$]);a.set(2,Va(this.B));return a.data()};
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.N)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.N);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.mb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.Z?Gb(d):Fb(d))};a=!0;break;
case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Hb(d,d.$<<1)},c.textContent=this.ka.toFixed(2)+"Mhz",a=!0}return a};function Ib(a,b,c){a.aa+=b;c&&(a.J=a.a=0)}function Jb(a,b){var c=1;b&&1<a.$&&a.X&&(c=a.X/a.yb);a.Pb=Math.round(1E3/30);a.kb=Math.floor(a.jb/30*c);b||(a.Ea=a.kb);a.zb=0}function Kb(a){return a.aa+a.R+a.J-a.a}function Cb(a){a.X=0;a.Qb=0;a.aa=a.R=a.J=a.a=0;Db(a);Hb(a,1)}
function Hb(a,b){if(void 0!==b&&(.8>a.X/a.ka&&(b=1),a.$=b,b=a.yb*a.$,a.ka!=b)){a.ka=b;b=a.ka.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.K("target speed: "+b)}Ib(a,a.R);a.R=0;a.L=ia();a.Y=0;Jb(a)}function $a(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function ab(a,b){var c;0<=b&&b<a.G.length&&0>a.G[b][0]&&(c=a.jb*a.$/1E3*(1E3/60),a.G[b][0]=c)}
l.yc=function(){if(this.h.Z){this.zb>=this.jb&&Jb(this,!0);this.Fa=0;this.Pa=ia();if(this.Y){var a=this.Pa-this.Y;a>this.Pb&&(this.L+=a,this.L>this.Pa&&(this.L=this.Pa))}try{do{for(var b,c=this.h.lb?1:this.kb,d=this.G.length-1;0<=d;d--){var f=this.G[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Xb(b)}catch(m){if("number"!=typeof m)throw m;}for(var e=this.J-this.a,a=e,g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Fa+=e;this.R+=e;Ib(this,0,!0);a=e;if(this.h.lb){var k=
!1;this.Qa=this.Qa+this.Rb()|0;this.la-=a;0>=this.la&&(this.la+=this.Ca,k=!0);0<=this.Da&&this.Da<=Kb(this)&&(this.Ca=this.Da=-1,Db(this),Gb(this),k=!0);k&&this.K(Kb(this)+" cycles: checksum="+n(this.Qa))}this.Ea-=e;if(0>=this.Ea){this.Ea+=this.kb;15<=++this.Qb&&(this.v&&this.v.Va(),this.Qb=0);break}}while(this.h.Z)}catch(m){Gb(this);Eb(this);this.v&&this.v.stop(ia(),Kb(this));b=m.stack||m.message;this.h.error=!0;this.M(b);return}if(this.h.Z){b=setTimeout;c=this.Ab;this.Y=ia();d=this.Pb;this.Fa&&
(d=Math.round(d*this.Fa/this.kb));d-=this.Y-this.Pa;if(f=this.Y-this.L)this.X=Math.round(this.R/(10*f))/100,864E5<=f&&(this.aa=0,Hb(this));if(0>d||this.X<this.ka)-1E3>d&&(this.L-=d),d=0;this.zb+=this.Fa;this.Y+=d;b(c,d)}}};function Fb(a){var b;a.h.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.Z)a.K(a.toString()+" busy");else{Hb(a);a.h.Z=!0;a.h.Wb=!0;a.Ba&&a.Ba.start();if(b=a.u.run)b.textContent="Halt";a.v&&a.v.start(a.L,Kb(a));Eb(a,!0);setTimeout(a.Ab,0)}}l.Xb=function(){return 0};
function Gb(a){if(a.h.Z){a.J-=a.a;a.a=0;Ib(a,a.R);a.R=0;a.h.Z=!1;a.Ba&&a.Ba.stop();var b=a.u.run;b&&(b.textContent="Run");a.v&&a.v.stop(ia(),Kb(a));Eb(a)}a.h.complete=void 0}function Eb(a,b){a.v&&a.v.Va(b)}
function Lb(a){this.gc=a.resetAddr||0;zb.call(this,a,1E6);this.Jb=0;this.decode=Mb.bind(this);this.g=65536;this.b=32768;this.f=65535;this.i=32768;this.w=15;this.c=[0,0,0,0,0,0,0,this.gc];this.La=[0,0,0,0,0,0];this.fa=[0,0,0,0];this.Oa=this.m=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.hb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Cb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.l=0;this.Ia=70;this.ma=-1;this.vb=0;Nb(this);this.h.complete=this.h.ac=!1}y(Lb,zb);l=Lb.prototype;l.reset=function(){this.h.Z&&Gb(this);Nb(this);Cb(this);this.h.error=!1;this.parent.reset.call(this)};
function Nb(a){a.ya=255;a.o=0;a.Fb=0;a.C=0;a.xa=0;a.sb=0;a.Ka=0;a.nb=0;a.Na=0;a.ob=[7,7,7,7];a.j=[];a.ha=2;bb(a)}function bb(a){a.nb?(a.Ib=65536,a.ja=a.fc,a.qb=a.ea):(a.Ib=0,a.ja=a.ec,a.qb=a.rb)}l.Rb=function(){return 0};l.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.aa,this.$]);a.set(2,Va(this.B));return a.data()};
l.restore=function(a){var b=a[1];this.aa=b[1];Hb(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.J){for(var e=0,g=Array(b.J),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.u[b]=c;this.Jb++;a=!0;break;default:a=this.parent.da.call(this,a,b,c)}return a};
l.Va=function(a){if(this.Jb&&(a||!this.h.Z||this.h.Nb)){for(a=0;a<this.c.length;a++)M(this,"R"+a,this.c[a]);a=cb(this);M(this,"PS",a);M(this,"NF",a&8?1:0,1);M(this,"ZF",a&4?1:0,1);M(this,"VF",a&2?1:0,1);M(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.h.Z&&this.T?this.T.toFixed(2)+"Mhz":"Stopped"};function O(a){return a.i&65536?1:0}l.sa=function(){return this.j&32768?8:0};function Pb(a){var b=a.fa(a.c[7]);a.c[7]=a.c[7]+2&65535;return b}
function I(a,b,c,d,f){for(var e=a.g.length;0<e--;)if(a.g[e].Ac===d){0<e&&(a.g[e-1].ea+=a.g[e].ea);a.g.splice(e,1);break}if(0<=b){2===a.Ga&&(b=0,a.Ga=0,setTimeout(a.wb,0));for(e=a.g.length;0<e--;){if(a.g[e].ea>b){a.g[e].ea-=b;break}b-=a.g[e].ea}a.g.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ia=2}function cb(a){return a.w=a.w&63728|a.sa()|(a.f&65535?0:4)|(a.b&32768?2:0)|O(a)}
function db(a,b){a.j=b<<12;a.f=~b&4;a.b=b<<14;a.i=b<<16;if((b^a.w)&2048)for(var c=a.Ma.length;0<=--c;){var d=a.c[c];a.c[c]=a.Ma[c];a.Ma[c]=d}a.l=b>>14&3;c=a.w>>14&3;a.l!=c&&(a.ga[c]=a.c[6],a.c[6]=a.ga[a.l]);a.ia=2;a.w=b}function P(a,b){a.s&128||(a.j=a.f=b,a.b=0)}function Q(a,b,c){a.s&128||(a.j=a.f=a.i=b,a.b=c||0)}function Qb(a,b,c,d){a.s&128||(a.j=a.f=a.i=b,a.b=(c^b)&(d^b))}function R(a,b){a.s&128||(a.j=a.f=a.i=b,a.b=a.j^a.i>>1)}function Rb(a,b,c,d){a.s&128||(a.j=a.f=a.i=b,a.b=(c^d)&(d^b))}
function K(a,b){var c=!1;0>a.na?a.na=cb(a):a.l||(b=4,c=!0);a.C&57344||(a.xa=63222,a.tb=b);a.l=0;var d=a.fa(b|65536),f=a.fa(b+2&65535|65536);db(a,f&-12289|a.na>>2&12288);c&&(a.m|=4,a.c[6]=4);Sb(a,a.na);Sb(a,a.c[7]);a.c[7]=d;a.s&=-113;a.na=-1;throw b;}function Tb(a){var b=Ub(a),c=Ub(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);a.c[7]=b&65535;db(a,c);a.s&=-17}function kb(a,b){var c=b>>13&31;31>c?a.La&32&&(b=a.hb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Vb(a,b,c){var d,f,e,g=0;if(c&a.ob){d=b>>13&a.pb[a.l];f=a.O[a.l][d];e=(a.O[a.l][d+16]<<6)+(b&8191)&4194303;a.La&16?3932160<=e&&4186112>e&&(e=kb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,K(a,4)),e&1&&!(c&1)&&(a.m|=64,K(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
16384));a.O[a.l][d]=f;if(4194170!==e||a.l)a.Oa=a.l,a.Pa=d;g&&(g&57344&&(0<=a.na&&(g|=128),a.C&57344||(a.C=a.C|g|a.Oa<<5|a.Pa<<1),K(a,168)),a.C&61440||!(4191360>e||4194239<e)||(a.C|=4096,a.C&512&&(a.s|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,K(a,4));return e}l.sb=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.B,c=a&b.i,d=(a&b.j)>>>b.f;a=c!=b.i?b.b[d].rb(c,a):b.b[d++].cb(c,a)|b.b[d&b.L].cb(0,a+1)<<8}return a};l.fa=function(a){return this.sb(Vb(this,a,2))};
function Ub(a){var b=a.fa(a.c[6]|65536);a.c[6]=a.c[6]+2&65535;return b}function Sb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.C&57344||(a.xa=a.xa<<8|246);!a.l&&c<=a.ya&&4<c&&(c<=a.ya-32?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=4));c=Vb(a,c|65536,4);Ua(a.B,c,b&65535)}
function Wb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Ib;switch(b>>3&7){case 0:K(a,4);break;case 1:return 6===e&&!a.l&&c&4&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);d=a.fa(d);d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);d=a.fa(d)|g;break;case 6:return d=Pb(a),
d=d+a.c[e]&65535|g;case 7:return d=Pb(a),d=d+a.c[e]&65535,d=a.fa(d|65536)|g}a.c[e]=a.c[e]+f&65535;!g||a.C&57344||(a.xa=a.xa<<8|f<<3&248|e);6==e&&!a.l&&c&4&&0>=f&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32?(a.m|=4,a.c[6]=4,K(a,4)):(a.m|=8,a.s|=64));return d}l.ec=function(a,b){return Wb(this,a,b)};l.fc=function(a,b){return Vb(this,Wb(this,a,b),b)};
function Xb(a,b,c){b&56?(b=Wb(a,b,0),c&65536||61440!==(a.w&61440)&&(b&=65535),a.l=a.w>>12&3,c=a.fa(b|c&65536),a.l=a.w>>14&3):(c=b&7,c=6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]:a.ga[a.w>>12&3]);return c}function Yb(a,b,c,d){a.C&57344||(a.xa=22);b&56?(b=Wb(a,b,0),c&65536||(b&=65535),a.l=a.w>>12&3,b=Vb(a,b|c&65536,4),a.l=a.w>>14&3,Ua(a.B,b,d&65535)):(c=b&7,6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]=d:a.ga[a.w>>12&3]=d)}function S(a,b){return b&56?a.rb(Wb(a,b,2)):a.c[b&7]}
function T(a,b){b&56?(b=a.ka(b,3),a=Ta(a.B,b)):a=a.c[b&7]&255;return a}function U(a,b,c,d){b&56?(b=a.ka(b,6),c=d.call(a,c,a.sb(b)),Ua(a.B,b,c&65535)):(b&=7,a.c[b]=d.call(a,c,a.c[b]))}function V(a,b,c,d){b&56?(b=a.ka(b,7),c=d.call(a,c,Ta(a.B,b)),a=a.B,a.b[(b&a.j)>>>a.f].Wa(b&a.i,c&255,b)):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b]))}function Zb(a,b,c){b&56?(b=a.ka(b,4),Ua(a.B,b,c&65535)):a.c[b&7]=c&65535;return c}
function $b(a,b,c,d){b&56?(d=a.ka(b,5),a=a.B,a.b[(d&a.j)>>>a.f].Wa(d&a.i,c&255,d)):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function W(a,b){a.c[7]=a.c[7]+(b<<24>>23)&65535}
l.Xb=function(a){this.h.complete=!0;this.h.ac=!1;this.h.Wb=!1;this.Y=this.a=a;do{this.s&112&&(this.s&32?K(this,168):this.s&64?K(this,4):this.s&16&&K(this,12),this.s&=-113);if(a&&this.ia)if(1==this.ia)this.ia=2;else{this.ia=0;for(var b=null,c=this.Fb&224,d=this.g.length;0<=--d;){if(0<this.g[d].ea){this.g[d].ea--;this.ia=2;break}if(this.g[d].Lb){if(!this.g[d].Lb()){this.g.splice(d,1);continue}this.g[d].Lb=null}this.g[d].jc>c&&(c=this.g[d].jc,b=this.g[d],this.g.splice(d,1))}c>(this.w&224)&&(b?K(this,
b.Ac):K(this,160))}this.C&57344||(this.xa=0,this.tb=this.c[7]);this.s=this.w&16;this.decode(Pb(this))}while(0<this.a);return this.h.complete?this.Y-this.a:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Mb(d);B(d,c)}});function ac(a,b){var c=b+a;Qb(this,c,a,b);return c&65535}function bc(a,b){var c=b+a;Qb(this,c<<8,a<<8,b<<8);return c&255}function cc(a,b){a=b<<1;R(this,a);return a&65535}
function dc(a,b){a=b<<1;R(this,a<<8);return a&255}function ec(a,b){a=b&32768|b>>1|b<<16;R(this,a);return a&65535}function fc(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function gc(a,b){a=b&~a;P(this,a);return a}function hc(a,b){a=b&~a;P(this,a<<8);return a}function ic(a,b){a|=b;P(this,a);return a}function jc(a,b){a|=b;P(this,a<<8);return a}function kc(a,b){a=~b|65536;Q(this,a);return a&65535}function lc(a,b){a=~b|256;Q(this,a<<8);return a&255}
function mc(a,b){a=b-a;this.s&128||(this.j=this.f=a,this.b=b&(b^a));return a&65535}function nc(a,b){a=b-a;var c=a<<8;b<<=8;this.s&128||(this.j=this.f=c,this.b=b&(b^c));return a&255}function oc(a,b){a=b+a;this.s&128||(this.j=this.f=a,this.b=a&(b^a));return a&65535}function pc(a,b){a=b+a;var c=a<<8;this.s&128||(this.j=this.f=c,this.b=c&(b<<8^c));return a&255}function qc(a,b){a=-b;Q(this,a,a&b&32768);return a&65535}function rc(a,b){a=-b;Q(this,a<<8,(a&b&128)<<8);return a&255}
function sc(a,b){a=b<<1|this.i>>16&1;R(this,a);return a&65535}function tc(a,b){a=b<<1|this.i>>16&1;R(this,a<<8);return a&255}function uc(a,b){a=(this.i&65536|b)>>1|b<<16;R(this,a);return a&65535}function vc(a,b){a=((this.i&65536)>>8|b)>>1|b<<8;R(this,a<<8);return a&255}function wc(a,b){var c=b-a;Rb(this,c,a,b);return c&65535}function xc(a,b){var c=b-a;Rb(this,c<<8,a<<8,b<<8);return c&255}function yc(a,b){a^=b;P(this,a);return a&65535}
function zc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a];c&32768&&(c|=4294901760);this.i=this.b=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.i=c<<17-b,c>>=b):b&&(16<b?(this.b=c,c=0):(this.i=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.b=32768)));this.c[a]=c&65535;this.j=this.f=c;--this.a}
function Ac(a){var b=S(this,a);a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.i=this.b=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.i=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.i=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.b=32768)):d=c;this.c[a]=d>>16&65535;this.c[a|1]=d&65535;this.j=d>>16;this.f=d>>16|d;--this.a}function X(a){a&1&&(this.i=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.j=0);--this.a}
function Bc(a){var b=S(this,a);if(b){a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.i=this.b=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.c[a]=d&65535,this.c[a|1]=c-d*b&65535,this.f=d>>16|d,this.j=d>>16):(this.b=32768,this.f=d>>15|d,this.j=c>>16,-1===b&&65534===this.c[a]&&(this.c[a]=this.c[a|1]=1))}else this.f=this.j=0,this.b=32768,this.i=65536;--this.a}function Cc(a){var b=Wb(this,a,8);a=a>>6&7;Sb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}
function Dc(a){var b=S(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.c[a];c&32768&&(c|=-65536);b=~~(b*c);this.c[a]=b>>16&65535;this.c[a|1]=b&65535;this.j=b>>16;this.f=this.j|b;this.b=0;this.i=-32768>b||32767<b?65536:0;--this.a}function Ec(){--this.a}function Y(a){a&1&&(this.i=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.j=32768);--this.a}function Fc(a){var b=(a&448)>>6;if(this.c[b]=this.c[b]-1&65535)this.c[7]=this.c[7]-((a&63)<<1)&65535;--this.a}
function Gc(a){U(this,a,S(this,(a&448)>>6),yc);--this.a}function Z(){K(this,8)}function Nb(a){Hc[a>>12].call(this,a)}
l.Va=function(a){if(this.Jb&&(a||!this.h.Z||this.h.Nb)){for(a=0;a<this.c.length;a++)M(this,"R"+a,this.c[a]);a=cb(this);M(this,"PS",a);M(this,"NF",a&8?1:0,1);M(this,"ZF",a&4?1:0,1);M(this,"VF",a&2?1:0,1);M(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.h.Z&&this.X?this.X.toFixed(2)+"Mhz":"Stopped"};function O(a){return a.g&65536?1:0}l.sa=function(){return this.i&32768?8:0};function Ob(a){var b=a.ea(a.c[7]);a.c[7]=a.c[7]+2&65535;return b}
function I(a,b,c,d,f){for(var e=a.j.length;0<e--;)if(a.j[e].Ac===d){0<e&&(a.j[e-1].qa+=a.j[e].qa);a.j.splice(e,1);break}if(0<=b){2===a.vb&&(b=0,a.vb=0,setTimeout(a.Ab,0));for(e=a.j.length;0<e--;){if(a.j[e].qa>b){a.j[e].qa-=b;break}b-=a.j[e].qa}a.j.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ha=2}
function Pb(a){if(1==a.ha)a.ha=2;else{a.ha=0;for(var b=null,c=a.Fb&224,d=a.j.length;0<=--d;){if(0<a.j[d].qa){a.j[d].qa--;a.ha=2;break}if(a.j[d].Lb){if(!a.j[d].Lb()){a.j.splice(d,1);continue}a.j[d].Lb=null}a.j[d].jc>c&&(c=a.j[d].jc,b=a.j[d],a.j.splice(d,1))}c>(a.w&224)&&(a.l&=-2,b?K(a,b.Ac):K(a,160))}}function cb(a){return a.w=a.w&63728|a.sa()|(a.f&65535?0:4)|(a.b&32768?2:0)|O(a)}
function db(a,b){a.i=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.w)&2048)for(var c=a.La.length;0<=--c;){var d=a.c[c];a.c[c]=a.La[c];a.La[c]=d}a.m=b>>14&3;c=a.w>>14&3;a.m!=c&&(a.fa[c]=a.c[6],a.c[6]=a.fa[a.m]);a.ha=2;a.w=b}function P(a,b){a.l&128||(a.i=a.f=b,a.b=0)}function Q(a,b,c){a.l&128||(a.i=a.f=a.g=b,a.b=c||0)}function Qb(a,b,c,d){a.l&128||(a.i=a.f=a.g=b,a.b=(c^b)&(d^b))}function R(a,b){a.l&128||(a.i=a.f=a.g=b,a.b=a.i^a.g>>1)}function Rb(a,b,c,d){a.l&128||(a.i=a.f=a.g=b,a.b=(c^d)&(d^b))}
function K(a,b){var c=!1;0>a.ma?a.ma=cb(a):a.m||(b=4,c=!0);a.C&57344||(a.xa=63222,a.sb=b);a.m=0;var d=a.ea(b|65536),f=a.ea(b+2&65535|65536);db(a,f&-12289|a.ma>>2&12288);c&&(a.o|=4,a.c[6]=4);Sb(a,a.ma);Sb(a,a.c[7]);a.c[7]=d;a.l&=-113;a.ma=-1;throw b;}function Tb(a){var b=Ub(a),c=Ub(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);a.c[7]=b&65535;db(a,c);a.l&=-17}function kb(a,b){var c=b>>13&31;31>c?a.Ka&32&&(b=a.hb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Vb(a,b,c){var d,f,e,g=0;if(c&a.nb){d=b>>13&a.ob[a.m];f=a.O[a.m][d];e=(a.O[a.m][d+16]<<6)+(b&8191)&4194303;a.Ka&16?3932160<=e&&4186112>e&&(e=kb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.o|=32,K(a,4)),e&1&&!(c&1)&&(a.o|=64,K(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
16384));a.O[a.m][d]=f;if(4194170!==e||a.m)a.Na=a.m,a.Oa=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.C&57344||(a.C=a.C|g|a.Na<<5|a.Oa<<1),K(a,168)),a.C&61440||!(4191360>e||4194239<e)||(a.C|=4096,a.C&512&&(a.l|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.o|=64,K(a,4));return e}l.rb=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.B,c=a&b.i,d=(a&b.j)>>>b.f;a=c!=b.i?b.b[d].qb(c,a):b.b[d++].cb(c,a)|b.b[d&b.L].cb(0,a+1)<<8}return a};l.ea=function(a){return this.rb(Vb(this,a,2))};
function Ub(a){var b=a.ea(a.c[6]|65536);a.c[6]=a.c[6]+2&65535;return b}function Sb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.C&57344||(a.xa=a.xa<<8|246);!a.m&&c<=a.ya&&4<c&&(c<=a.ya-32?(a.o|=4,a.c[6]=4,K(a,4)):(a.o|=8,a.l|=4));c=Vb(a,c|65536,4);Ua(a.B,c,b&65535)}
function Wb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Ib;switch(b>>3&7){case 0:K(a,4);break;case 1:return 6===e&&!a.m&&c&4&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32||65534<=a.c[6]?(a.o|=4,a.c[6]=4,K(a,4)):(a.o|=8,a.l|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);d=a.ea(d);d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);d=a.ea(d)|g;break;case 6:return d=Ob(a),
d=d+a.c[e]&65535|g;case 7:return d=Ob(a),d=d+a.c[e]&65535,d=a.ea(d|65536)|g}a.c[e]=a.c[e]+f&65535;!g||a.C&57344||(a.xa=a.xa<<8|f<<3&248|e);6==e&&!a.m&&c&4&&0>=f&&(a.c[6]<=a.ya||65534<=a.c[6])&&(a.c[6]<=a.ya-32?(a.o|=4,a.c[6]=4,K(a,4)):(a.o|=8,a.l|=64));return d}l.ec=function(a,b){return Wb(this,a,b)};l.fc=function(a,b){return Vb(this,Wb(this,a,b),b)};
function Xb(a,b,c){b&56?(b=Wb(a,b,0),c&65536||61440!==(a.w&61440)&&(b&=65535),a.m=a.w>>12&3,c=a.ea(b|c&65536),a.m=a.w>>14&3):(c=b&7,c=6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]:a.fa[a.w>>12&3]);return c}function Yb(a,b,c,d){a.C&57344||(a.xa=22);b&56?(b=Wb(a,b,0),c&65536||(b&=65535),a.m=a.w>>12&3,b=Vb(a,b|c&65536,4),a.m=a.w>>14&3,Ua(a.B,b,d&65535)):(c=b&7,6!=c||(a.w>>2&12288)===(a.w&12288)?a.c[c]=d:a.fa[a.w>>12&3]=d)}function S(a,b){return b&56?a.qb(Wb(a,b,2)):a.c[b&7]}
function T(a,b){b&56?(b=a.ja(b,3),a=Ta(a.B,b)):a=a.c[b&7]&255;return a}function U(a,b,c,d){b&56?(b=a.ja(b,6),c=d.call(a,c,a.rb(b)),Ua(a.B,b,c&65535)):(b&=7,a.c[b]=d.call(a,c,a.c[b]))}function V(a,b,c,d){b&56?(b=a.ja(b,7),c=d.call(a,c,Ta(a.B,b)),a=a.B,a.b[(b&a.j)>>>a.f].Wa(b&a.i,c&255,b)):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b]))}function Zb(a,b,c){b&56?(b=a.ja(b,4),Ua(a.B,b,c&65535)):a.c[b&7]=c&65535;return c}
function $b(a,b,c,d){b&56?(d=a.ja(b,5),a=a.B,a.b[(d&a.j)>>>a.f].Wa(d&a.i,c&255,d)):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function W(a,b){a.c[7]=a.c[7]+(b<<24>>23)&65535}
l.Xb=function(a){this.h.complete=!0;this.h.ac=!1;this.h.Wb=!1;this.J=this.a=a;do this.l&&(this.l&112&&(this.l&32?K(this,168):this.l&64?K(this,4):this.l&16&&K(this,12),this.l&=-113),this.l&1&&(Pb(this),this.l&=-2,this.c[7]=this.c[7]-2&65535)),a&&this.ha&&Pb(this),this.C&57344||(this.xa=0,this.sb=this.c[7]),this.l=this.l&1|this.w&16,this.decode(Ob(this));while(0<this.a);return this.h.complete?this.J-this.a:void 0===this.h.complete?0:-1};
u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Lb(d);B(d,c)}});function ac(a,b){var c=b+a;Qb(this,c,a,b);return c&65535}function bc(a,b){var c=b+a;Qb(this,c<<8,a<<8,b<<8);return c&255}function cc(a,b){a=b<<1;R(this,a);return a&65535}function dc(a,b){a=b<<1;R(this,a<<8);return a&255}function ec(a,b){a=b&32768|b>>1|b<<16;R(this,a);return a&65535}function fc(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function gc(a,b){a=b&~a;P(this,a);return a}
function hc(a,b){a=b&~a;P(this,a<<8);return a}function ic(a,b){a|=b;P(this,a);return a}function jc(a,b){a|=b;P(this,a<<8);return a}function kc(a,b){a=~b|65536;Q(this,a);return a&65535}function lc(a,b){a=~b|256;Q(this,a<<8);return a&255}function mc(a,b){a=b-a;this.l&128||(this.i=this.f=a,this.b=b&(b^a));return a&65535}function nc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.i=this.f=c,this.b=b&(b^c));return a&255}function oc(a,b){a=b+a;this.l&128||(this.i=this.f=a,this.b=a&(b^a));return a&65535}
function pc(a,b){a=b+a;var c=a<<8;this.l&128||(this.i=this.f=c,this.b=c&(b<<8^c));return a&255}function qc(a,b){a=-b;Q(this,a,a&b&32768);return a&65535}function rc(a,b){a=-b;Q(this,a<<8,(a&b&128)<<8);return a&255}function sc(a,b){a=b<<1|this.g>>16&1;R(this,a);return a&65535}function tc(a,b){a=b<<1|this.g>>16&1;R(this,a<<8);return a&255}function uc(a,b){a=(this.g&65536|b)>>1|b<<16;R(this,a);return a&65535}function vc(a,b){a=((this.g&65536)>>8|b)>>1|b<<8;R(this,a<<8);return a&255}
function wc(a,b){var c=b-a;Rb(this,c,a,b);return c&65535}function xc(a,b){var c=b-a;Rb(this,c<<8,a<<8,b<<8);return c&255}function yc(a,b){a^=b;P(this,a);return a&65535}function zc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a];c&32768&&(c|=4294901760);this.g=this.b=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.g=c<<17-b,c>>=b):b&&(16<b?(this.b=c,c=0):(this.g=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.b=32768)));this.c[a]=c&65535;this.i=this.f=c;--this.a}
function Ac(a){var b=S(this,a);a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.g=this.b=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.g=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.g=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.b=32768)):d=c;this.c[a]=d>>16&65535;this.c[a|1]=d&65535;this.i=d>>16;this.f=d>>16|d;--this.a}function X(a){a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.i=0);--this.a}
function Bc(a){var b=S(this,a);if(b){a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.g=this.b=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.c[a]=d&65535,this.c[a|1]=c-d*b&65535,this.f=d>>16|d,this.i=d>>16):(this.b=32768,this.f=d>>15|d,this.i=c>>16,-1===b&&65534===this.c[a]&&(this.c[a]=this.c[a|1]=1))}else this.f=this.i=0,this.b=32768,this.g=65536;--this.a}function Cc(a){var b=Wb(this,a,8);a=a>>6&7;Sb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}
function Dc(a){var b=S(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.c[a];c&32768&&(c|=-65536);b=~~(b*c);this.c[a]=b>>16&65535;this.c[a|1]=b&65535;this.l&128||(this.i=b>>16,this.f=this.i|b,this.b=0,this.g=-32768>b||32767<b?65536:0);--this.a}function Ec(){--this.a}function Y(a){a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.i=32768);--this.a}function Fc(a){var b=(a&448)>>6;if(this.c[b]=this.c[b]-1&65535)this.c[7]=this.c[7]-((a&63)<<1)&65535;--this.a}
function Gc(a){U(this,a,S(this,(a&448)>>6),yc);--this.a}function Z(){K(this,8)}function Mb(a){Hc[a>>12].call(this,a)}
var Hc=[function(a){Ic[a>>8&15].call(this,a)},function(a){P(this,Zb(this,a,S(this,a>>6)));--this.a},function(a){var b=S(this,a>>6);a=S(this,a);Rb(this,b-a,a,b);--this.a},function(a){P(this,S(this,a>>6)&S(this,a));--this.a},function(a){U(this,a,S(this,a>>6),gc);--this.a},function(a){U(this,a,S(this,a>>6),ic);--this.a},function(a){U(this,a,S(this,a>>6),ac);--this.a},function(a){Jc[a>>8&15].call(this,a)},function(a){Kc[a>>8&15].call(this,a)},function(a){var b=T(this,a>>6);P(this,$b(this,a,b,1)<<8);--this.a},
function(a){var b=T(this,a>>6)<<8;a=T(this,a)<<8;Rb(this,b-a,a,b);--this.a},function(a){P(this,(T(this,a>>6)&T(this,a))<<8);--this.a},function(a){V(this,a,T(this,a>>6),hc);--this.a},function(a){V(this,a,T(this,a>>6),jc);--this.a},function(a){U(this,a,S(this,a>>6),wc);--this.a},Z],Ic=[function(a){Lc[a>>4&15].call(this,a)},function(a){W(this,a);--this.a},function(a){this.f&65535&&W(this,a);--this.a},function(a){this.f&65535||W(this,a);--this.a},function(a){!this.sa()==!(this.b&32768)&&W(this,a);--this.a},
function(a){!this.sa()!=!(this.b&32768)&&W(this,a);--this.a},function(a){this.f&65535&&!this.sa()==!(this.b&32768)&&W(this,a);--this.a},function(a){this.f&65535&&!this.sa()==!(this.b&32768)||W(this,a);--this.a},Cc,Cc,function(a){Mc[a>>6&3].call(this,a)},function(a){Nc[a>>6&3].call(this,a)},function(a){Oc[a>>6&3].call(this,a)},function(a){Pc[a>>6&3].call(this,a)},Z,Z],Mc=[function(a){Q(this,Zb(this,a,0));--this.a},function(a){U(this,a,0,kc);--this.a},function(a){U(this,a,1,oc);--this.a},function(a){U(this,
a,1,mc);--this.a}],Nc=[function(a){U(this,a,0,qc);--this.a},function(a){U(this,a,O(this)?1:0,ac);--this.a},function(a){U(this,a,O(this)?1:0,wc);--this.a},function(a){a=S(this,a);Q(this,a);--this.a}],Oc=[function(a){U(this,a,0,uc);--this.a},function(a){U(this,a,0,sc);--this.a},function(a){U(this,a,0,ec);--this.a},function(a){U(this,a,0,cc);--this.a}],Pc=[function(a){a=this.c[7]+((a&63)<<1)&65535;var b=this.fa(a|65536);this.c[7]=this.c[5]&65535;this.c[6]=a+2&65535;this.c[5]=b;--this.a},function(a){a=
Xb(this,a,0);Sb(this,a);P(this,a);--this.a},function(a){var b=Ub(this);Yb(this,a,0,b);P(this,b);--this.a},function(a){P(this,Zb(this,a,this.sa?65535:0));--this.a}],Lc=[function(a){Qc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,function(a){var b=Ub(this);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.ia=1);--this.a},function(a){Rc[a&15].call(this,a)},function(a){Sc[a&15].call(this,a)},Z,Z,Z,Z],Rc=[Ec,function(){this.i=0;--this.a},function(){this.b=
0;--this.a},X,function(){this.f=1;--this.a},X,X,X,function(){this.j=0;--this.a},X,X,X,X,X,X,X],Sc=[Ec,function(){this.i=65536;--this.a},function(){this.b=32768;--this.a},Y,function(){this.f=0;--this.a},Y,Y,Y,function(){this.j=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],Qc=[function(){this.w&49152?(this.m|=128,K(this,4)):(this.Ga=3,Lb(this));--this.a},function(){for(var a=0,b=this.g.length;0<=--b;)a+=this.g[b].ea,this.g[b].ea=0;a||0!==this.Ga||(this.Ga=2,Lb(this));--this.a},function(){Tb(this);this.s|=this.w&16;
--this.a},function(){K(this,12);--this.a},function(){K(this,16);--this.a},function(){this.w&49152||(Ob(this),this.B.reset());--this.a},function(){Tb(this);--this.a},Z,Z,Z,Z,Z,Z,Z,Z,Z],Jc=[Dc,Dc,Bc,Bc,zc,zc,Ac,Ac,Gc,Gc,Z,Z,Z,Z,Fc,Fc],Kc=[function(a){this.sa()||W(this,a);--this.a},function(a){this.sa()&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535||W(this,a);--this.a},function(a){this.b&32768||W(this,a);--this.a},function(a){this.b&32768&&
W(this,a);--this.a},function(a){O(this)||W(this,a);--this.a},function(a){O(this)&&W(this,a);--this.a},function(){K(this,24);--this.a},function(){K(this,28);--this.a},function(a){Tc[a>>6&3].call(this,a)},function(a){Uc[a>>6&3].call(this,a)},function(a){Vc[a>>6&3].call(this,a)},function(a){Wc[a>>6&3].call(this,a)},Z,Z],Tc=[function(a){Q(this,$b(this,a,0));--this.a},function(a){V(this,a,0,lc);--this.a},function(a){V(this,a,1,pc);--this.a},function(a){V(this,a,1,nc);--this.a}],Uc=[function(a){V(this,
a,0,rc);--this.a},function(a){V(this,a,O(this)?1:0,bc);--this.a},function(a){V(this,a,O(this)?1:0,xc);--this.a},function(a){a=T(this,a);Q(this,a<<8);--this.a}],Vc=[function(a){V(this,a,0,vc);--this.a},function(a){V(this,a,0,tc);--this.a},function(a){V(this,a,0,fc);--this.a},function(a){V(this,a,0,dc);--this.a}],Wc=[Z,function(a){a=Xb(this,a,65536);Sb(this,a);P(this,a);--this.a},function(a){var b=Ub(this);Yb(this,a,65536,b);P(this,b);--this.a},Z];
function Xc(a){w.call(this,"ROM",a,Xc);this.b=null;this.l=a.addr;this.f=a.size;this.v=a.writable;this.g=a.alias;this.i=a.file;this.C=ca(this.i);if(this.i){a=this.i;var b=da(this.C);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Yc(c,a,b,e)})}}y(Xc);Xc.prototype.Ka=function(a,b,c,d){this.B=b;this.a=c;this.I=d;Zc(this)};Xc.prototype.wa=function(){this.j&&(this.I&&this.I.a(this.id,this.l,this.f,this.j),delete this.j);return!0};
a,1,mc);--this.a}],Nc=[function(a){U(this,a,0,qc);--this.a},function(a){U(this,a,O(this)?1:0,ac);--this.a},function(a){U(this,a,O(this)?1:0,wc);--this.a},function(a){a=S(this,a);Q(this,a);--this.a}],Oc=[function(a){U(this,a,0,uc);--this.a},function(a){U(this,a,0,sc);--this.a},function(a){U(this,a,0,ec);--this.a},function(a){U(this,a,0,cc);--this.a}],Pc=[function(a){a=this.c[7]+((a&63)<<1)&65535;var b=this.ea(a|65536);this.c[7]=this.c[5]&65535;this.c[6]=a+2&65535;this.c[5]=b;--this.a},function(a){a=
Xb(this,a,0);Sb(this,a);P(this,a);--this.a},function(a){var b=Ub(this);Yb(this,a,0,b);P(this,b);--this.a},function(a){P(this,Zb(this,a,this.sa?65535:0));--this.a}],Lc=[function(a){Qc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,function(a){var b=Ub(this);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.ha=1);--this.a},function(a){Rc[a&15].call(this,a)},function(a){Sc[a&15].call(this,a)},Z,Z,Z,Z],Rc=[Ec,function(){this.g=0;--this.a},function(){this.b=
0;--this.a},X,function(){this.f=1;--this.a},X,X,X,function(){this.i=0;--this.a},X,X,X,X,X,X,X],Sc=[Ec,function(){this.g=65536;--this.a},function(){this.b=32768;--this.a},Y,function(){this.f=0;--this.a},Y,Y,Y,function(){this.i=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],Qc=[function(){this.w&49152?(this.o|=128,K(this,4)):(this.vb=3,this.J-=this.a,this.a=0);--this.a},function(){this.l|=1;--this.a},function(){Tb(this);this.l|=this.w&16;--this.a},function(){K(this,12);--this.a},function(){K(this,16);--this.a},function(){this.w&
49152||(Nb(this),this.B.reset());--this.a},function(){Tb(this);--this.a},Z,Z,Z,Z,Z,Z,Z,Z,Z],Jc=[Dc,Dc,Bc,Bc,zc,zc,Ac,Ac,Gc,Gc,Z,Z,Z,Z,Fc,Fc],Kc=[function(a){this.sa()||W(this,a);--this.a},function(a){this.sa()&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535&&W(this,a);--this.a},function(a){!O(this)&&this.f&65535||W(this,a);--this.a},function(a){this.b&32768||W(this,a);--this.a},function(a){this.b&32768&&W(this,a);--this.a},function(a){O(this)||W(this,a);--this.a},function(a){O(this)&&W(this,
a);--this.a},function(){K(this,24);--this.a},function(){K(this,28);--this.a},function(a){Tc[a>>6&3].call(this,a)},function(a){Uc[a>>6&3].call(this,a)},function(a){Vc[a>>6&3].call(this,a)},function(a){Wc[a>>6&3].call(this,a)},Z,Z],Tc=[function(a){Q(this,$b(this,a,0));--this.a},function(a){V(this,a,0,lc);--this.a},function(a){V(this,a,1,pc);--this.a},function(a){V(this,a,1,nc);--this.a}],Uc=[function(a){V(this,a,0,rc);--this.a},function(a){V(this,a,O(this)?1:0,bc);--this.a},function(a){V(this,a,O(this)?
1:0,xc);--this.a},function(a){a=T(this,a);Q(this,a<<8);--this.a}],Vc=[function(a){V(this,a,0,vc);--this.a},function(a){V(this,a,0,tc);--this.a},function(a){V(this,a,0,fc);--this.a},function(a){V(this,a,0,dc);--this.a}],Wc=[Z,function(a){a=Xb(this,a,65536);Sb(this,a);P(this,a);--this.a},function(a){var b=Ub(this);Yb(this,a,65536,b);P(this,b);--this.a},Z];
function Xc(a){w.call(this,"ROM",a,Xc);this.b=null;this.m=a.addr;this.f=a.size;this.v=a.writable;this.g=a.alias;this.i=a.file;this.C=ca(this.i);if(this.i){a=this.i;var b=da(this.C);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Yc(c,a,b,e)})}}y(Xc);Xc.prototype.Ja=function(a,b,c,d){this.B=b;this.a=c;this.I=d;Zc(this)};Xc.prototype.wa=function(){this.j&&(this.I&&this.I.a(this.id,this.m,this.f,this.j),delete this.j);return!0};
Xc.prototype.va=function(){return!0};
function Yc(a,b,c,d){if(d)a.M("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Mb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.j=h.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.M("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Zc(a)}}
function Zc(a){if(!Ga(a))if(!a.i)E(a);else if(a.b&&a.B){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.M(b)}else{b=a.l;if(Pa(a.B,b,a.f,a.v?1:qb)){var c;for(c=0;c<a.b.length;c++){var d=a.B,f=b+c;d.b[(f&d.j)>>>d.f].Yb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.B,g=e.f,h=[],k=e.l>>>f.f;0<g&&
k<f.b.length;)h.push(f.b[k++]),g-=f.g;f=e.B;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}E(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Xc(d);B(d,c)}});function $c(a){w.call(this,"RAM",a,$c);this.g=a.addr;this.f=a.size;this.b=!1}y($c);l=$c.prototype;l.Ka=function(a,b,c,d){this.B=b;this.a=c;this.I=d;E(this)};l.wa=function(a,b){b||this.reset();return!0};l.va=function(a){return a?this.save():!0};
l.reset=function(){!this.b&&this.f&&Pa(this.B,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $c(d);B(d,c)}});function ad(a){w.call(this,"Keyboard",a,ad);E(this)}y(ad);ad.prototype.da=function(){return!1};ad.prototype.Ka=function(a,b,c,d){this.v=a;this.a=c;this.I=d;this.Ba=null};
function Zc(a){if(!Ga(a))if(!a.i)E(a);else if(a.b&&a.B){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.M(b)}else{b=a.m;if(Pa(a.B,b,a.f,a.v?1:qb)){var c;for(c=0;c<a.b.length;c++){var d=a.B,f=b+c;d.b[(f&d.j)>>>d.f].Yb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.B,g=e.f,h=[],k=e.m>>>f.f;0<g&&
k<f.b.length;)h.push(f.b[k++]),g-=f.g;f=e.B;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}E(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Xc(d);B(d,c)}});function $c(a){w.call(this,"RAM",a,$c);this.g=a.addr;this.f=a.size;this.b=!1}y($c);l=$c.prototype;l.Ja=function(a,b,c,d){this.B=b;this.a=c;this.I=d;E(this)};l.wa=function(a,b){b||this.reset();return!0};l.va=function(a){return a?this.save():!0};
l.reset=function(){!this.b&&this.f&&Pa(this.B,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $c(d);B(d,c)}});function ad(a){w.call(this,"Keyboard",a,ad);E(this)}y(ad);ad.prototype.da=function(){return!1};ad.prototype.Ja=function(a,b,c,d){this.v=a;this.a=c;this.I=d;this.Ba=null};
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ad(d);B(d,c)}});
function bd(a,b,c){w.call(this,"Computer",a,bd);this.h.N=!1;cd(this,b);this.J=Bb(this,"autoPower",a);this.g=0;this.$=a.busWidth||a.buswidth;this.b=dd;this.C=null;this.l=this.X=!1;this.url=Bb(this,"url")||"";(Math.random()+.1).toString(36);this.f=ed(this);if(this.a=Fa("CPU",this.id)){this.I=Fa("Debugger",this.id);this.B=new F({id:this.Mb+".bus",busWidth:this.$},this.a,this.I);var d,f=z(this.id);if((this.i=Fa("Panel",this.id))&&this.i.Bb)for(b=0;b<f.length;b++)d=f[b],d.M=this.i.M,d.K=this.i.K,d.Bb=
this.i.Bb;this.K("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.K("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ka&&d.Ka(this,this.B,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.v=d:this.b=parseInt(d,10));var e;if(a=Bb(this,"state")||(e=!0,a.state))b=this.L=a,e||(this.l=!0,this.b=dd),this.b&&(this.G=
new N(this,"1.30.0"),fd(this.G)?b=null:delete this.G);!b&&this.b&&(b=gd(this))&&(this.l=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.v=null,g.l=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.C=b,g.X=!0);E(g)})}else E(this);this.u.power||(this.J=!0);!c&&this.J&&hd(this,this.bb)}else q("Unable to find CPU component")}y(bd);var dd=0;
function bd(a,b,c){w.call(this,"Computer",a,bd);this.h.N=!1;cd(this,b);this.J=Bb(this,"autoPower",a);this.g=0;this.$=a.busWidth||a.buswidth;this.b=dd;this.C=null;this.m=this.X=!1;this.url=Bb(this,"url")||"";(Math.random()+.1).toString(36);this.f=ed(this);if(this.a=Fa("CPU",this.id)){this.I=Fa("Debugger",this.id);this.B=new F({id:this.Mb+".bus",busWidth:this.$},this.a,this.I);var d,f=z(this.id);if((this.i=Fa("Panel",this.id))&&this.i.Bb)for(b=0;b<f.length;b++)d=f[b],d.M=this.i.M,d.K=this.i.K,d.Bb=
this.i.Bb;this.K("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.K("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ja&&d.Ja(this,this.B,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.v=d:this.b=parseInt(d,10));var e;if(a=Bb(this,"state")||(e=!0,a.state))b=this.L=a,e||(this.m=!0,this.b=dd),this.b&&(this.G=
new N(this,"1.30.0"),fd(this.G)?b=null:delete this.G);!b&&this.b&&(b=gd(this))&&(this.m=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.v=null,g.m=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.C=b,g.X=!0);E(g)})}else E(this);this.u.power||(this.J=!0);!c&&this.J&&hd(this,this.bb)}else q("Unable to find CPU component")}y(bd);var dd=0;
function cd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.Y=b}function Bb(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.Y&&(d=a.Y[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function hd(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){hd(a,b,c)});return}}b.call(a,c)}
function id(a,b){var c=new N(a,"1.30.0","validate");if(fd(c)&&jd(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=bd.prototype;
l.bb=function(a){void 0===a&&(a=this.b||(this.C?1:dd));if(!this.g){this.g++;var b=!1,c=!1;this.T=!1;var d=this.G||new N(this,"1.30.0");if(-1==a)b=!0;else if(a>dd){if(fd(d,this.C)){this.j=new N(this,"1.30.0","failsafe");fd(this.j)&&(kd(this,d),a=2,ld(this.j));this.j.set("timestamp",ja());md(this.j);var f=this.b&&!this.l;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=jd(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?fd(d,g):("error"==
l.bb=function(a){void 0===a&&(a=this.b||(this.C?1:dd));if(!this.g){this.g++;var b=!1,c=!1;this.R=!1;var d=this.G||new N(this,"1.30.0");if(-1==a)b=!0;else if(a>dd){if(fd(d,this.C)){this.j=new N(this,"1.30.0","failsafe");fd(this.j)&&(kd(this,d),a=2,ld(this.j));this.j.set("timestamp",ja());md(this.j);var f=this.b&&!this.m;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=jd(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?fd(d,g):("error"==
e&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.f=null)):this.K(e+": "+g),ld(d),fd(d)?(c=jd(d),f=!0):c=!1))}f&&id(this,c?d:null)}else 2==a&&d.clear()}else id(this);delete this.C;delete this.G}f=z(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=nd(this,g,d,b,c));b=[d,a,c];-1!=a?hd(this,this.Ob,b):this.Ob(b)}};
function nd(a,b,c,d,f){if(!b.h.N){b.h.N=!0;if(b.wa){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.wa(e,d)&&e&&(q("Unable to restore state for "+b.type),a.L&&!a.X?(c.clear(),a.b=dd,window&&window.location.reload()):a.T=!0,b.wa(null),f=!1)}if(!d&&b.Kb)for(a=b.Kb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.aa=!0;this.h.N=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(nd(this,this.a,b,c,a),this.a.Za());this.T&&(kd(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
function nd(a,b,c,d,f){if(!b.h.N){b.h.N=!0;if(b.wa){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.wa(e,d)&&e&&(q("Unable to restore state for "+b.type),a.L&&!a.X?(c.clear(),a.b=dd,window&&window.location.reload()):a.R=!0,b.wa(null),f=!1)}if(!d&&b.Kb)for(a=b.Kb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.aa=!0;this.h.N=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(nd(this,this.a,b,c,a),this.a.Za());this.R&&(kd(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
function kd(a,b){if(ka("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function od(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new N(a,"1.30.0"),g=new N(a,"1.30.0","validate"),h=ja();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.va&&(c&&Gb(a.a),d=a.a.va(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.h.N=!1,!1===d&&(f=null)));for(var h=z(a.id),k=0;k<h.length;k++){var m=h[k];m.h.N&&(m.va&&(d=m.va(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.h.N=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&pd(a,a.f,e.toString()),md(g)&&md(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.h.N=!1,b=a.u.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.B&&this.B.reset&&this.B.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};