Changed the primary means updating the PSW to setPSW(), and put some handcuffs on writePSW()

This commit is contained in:
Jeff 2016-09-21 19:02:36 -07:00 committed by Jeff Parsons
commit 0e38c6dbc7
6 changed files with 378 additions and 357 deletions

View file

@ -18,6 +18,7 @@
<control type="register" label="R5" binding="R5" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="SP" binding="R6" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="PC" binding="R7" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="register" label="PS" binding="PS" pos="left" width="60px" padright="8px" padbottom="8px">0000</control>
<control type="container" pos="left">
<control type="flag" label="N" binding="NF" width="8px" padright="4px" padbottom="8px">0</control>
<control type="flag" label="Z" binding="ZF" width="8px" padright="4px" padbottom="8px">0</control>

View file

@ -308,8 +308,8 @@ BusPDP11.prototype.initMemory = function()
}
this.afnIOPage = new Array(4);
this.afnIOPage[0] = BusPDP11.controller.readIOPageByte;
this.afnIOPage[1] = BusPDP11.controller.readIOPageShort;
this.afnIOPage[2] = BusPDP11.controller.writeIOPageByte;
this.afnIOPage[1] = BusPDP11.controller.writeIOPageByte;
this.afnIOPage[2] = BusPDP11.controller.readIOPageShort;
this.afnIOPage[3] = BusPDP11.controller.writeIOPageShort;
this.addrIOPage = this.addrTotal - BusPDP11.IOPAGE_LENGTH;
this.addMemory(this.addrIOPage, BusPDP11.IOPAGE_LENGTH, MemoryPDP11.TYPE.CONTROLLER, this);

View file

@ -271,7 +271,7 @@ CPUStatePDP11.prototype.setBinding = function(sHTMLType, sBinding, control, sVal
case "ZF":
case "VF":
case "CF":
case "PSW":
case "PS":
this.bindings[sBinding] = control;
this.cLiveRegs++;
fBound = true;
@ -300,7 +300,7 @@ CPUStatePDP11.prototype.updateStatus = function(fForce)
this.displayValue('R'+i, this.regsGen[i]);
}
var regPSW = this.getPSW();
this.displayValue("PSW", regPSW);
this.displayValue("PS", regPSW);
this.displayValue("NF", (regPSW & PDP11.PSW.NF)? 1 : 0, 1);
this.displayValue("ZF", (regPSW & PDP11.PSW.ZF)? 1 : 0, 1);
this.displayValue("VF", (regPSW & PDP11.PSW.VF)? 1 : 0, 1);
@ -583,7 +583,19 @@ CPUStatePDP11.prototype.interrupt = function(delay, priority, vector, callback)
};
/**
* writePSW(newPSW)
* readPSW()
*
* @this {CPUStatePDP11}
* @return {number}
*/
CPUStatePDP11.prototype.readPSW = function()
{
var mask = PDP11.PSW.CMODE | PDP11.PSW.PMODE | PDP11.PSW.REGSET | PDP11.PSW.PRI | PDP11.PSW.TF;
return this.PSW = (this.PSW & mask) | this.getNF() | this.getZF() | this.getVF() | this.getCF();
};
/**
* setPSW(newPSW)
*
* This updates the CPU Processor Status Word. The PSW should generally be written through
* this routine so that changes can be tracked properly, for example the correct register set,
@ -596,7 +608,7 @@ CPUStatePDP11.prototype.interrupt = function(delay, priority, vector, callback)
* @this {CPUStatePDP11}
* @param {number} newPSW
*/
CPUStatePDP11.prototype.writePSW = function(newPSW)
CPUStatePDP11.prototype.setPSW = function(newPSW)
{
this.flagN = newPSW << 12;
this.flagZ = (~newPSW) & 4;
@ -629,15 +641,17 @@ CPUStatePDP11.prototype.writePSW = function(newPSW)
};
/**
* readPSW()
* writePSW(newPSW)
*
* This is a stricter version of setPSW(), used for writes to ADDR_PSW, which preserves bits that
* should not be overwritten.
*
* @this {CPUStatePDP11}
* @return {number}
* @param {number} newPSW
*/
CPUStatePDP11.prototype.readPSW = function()
CPUStatePDP11.prototype.writePSW = function(newPSW)
{
var mask = PDP11.PSW.CMODE | PDP11.PSW.PMODE | PDP11.PSW.REGSET | PDP11.PSW.PRI | PDP11.PSW.TF;
return this.PSW = (this.PSW & mask) | this.getNF() | this.getZF() | this.getVF() | this.getCF();
this.setPSW((newPSW & 0xf8ef) | (this.PSW & 0x0710));
};
/**
@ -685,7 +699,7 @@ CPUStatePDP11.prototype.trap = function(vector, reason)
this.mmuMode = 0; // read from kernel D space
if ((newPC = this.readWordByVirtual(vector | 0x10000)) >= 0) {
if ((newPSW = this.readWordByVirtual(((vector + 2) & 0xffff) | 0x10000)) >= 0) {
this.writePSW((newPSW & 0xcfff) | ((this.trapPSW >> 2) & 0x3000)); // set new this.PSW with previous mode
this.setPSW((newPSW & 0xcfff) | ((this.trapPSW >> 2) & 0x3000)); // set new this.PSW with previous mode
if (doubleTrap) {
this.CPU_Error |= 4;
this.regsGen[6] = 4;
@ -740,10 +754,10 @@ CPUStatePDP11.prototype.mapUnibus = function(unibusAddress)
*
* When doing mapping, mmuMode is used to decide what address space is to be
* used. 0 = kernel, 1 = supervisor, 2 = illegal, 3 = user. Normally, mmuMode is
* set by the writePSW() function but there are exceptions for instructions which
* set by the setPSW() function but there are exceptions for instructions which
* move data between address spaces (MFPD, MFPI, MTPD, and MTPI) and trap(). These will
* modify mmuMode outside of writePSW() and then restore it again if all worked. If
* however something happens to cause a trap then no restore is done as writePSW()
* modify mmuMode outside of setPSW() and then restore it again if all worked. If
* however something happens to cause a trap then no restore is done as setPSW()
* will have been invoked as part of the trap, which will resynchronize mmuMode
*
* mmuMask[mmuMode] is used to control whether I/D space is active or not for
@ -2188,7 +2202,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
//case 0106400: // MTPS 1064SS
// //LOG_INSTRUCTION(instruction, 1, "MTPS");
// if ((src = this.readByteByMode(instruction)) >= 0) {
// this.writePSW((this.PSW & 0xff00) | (src & 0xef));
// this.setPSW((this.PSW & 0xff00) | (src & 0xef));
// } // Temporary PDP 11/34A
// break;
case 0x8D40: /*0106500*/ // MFPD 1065DD
@ -2351,7 +2365,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
savePSW = (savePSW & 0xf81f) | (this.PSW & 0xf8e0);
}
this.regsGen[7] = virtualAddress;
this.writePSW(savePSW);
this.setPSW(savePSW);
this.trapMask &= ~0x10; // turn off Trace trap
if (instruction === 2) this.trapMask |= this.PSW & 0x10; // RTI enables immediate trace
}

View file

@ -205,7 +205,7 @@ DevicePDP11.prototype.initBus = function(cmp, bus, cpu, dbg)
* readPSW(addr)
*
* @this {DevicePDP11}
* @param {number} addr
* @param {number} addr (ie, ADDR_PSW)
* @return {number}
*/
DevicePDP11.prototype.readPSW = function(addr)
@ -218,14 +218,19 @@ DevicePDP11.prototype.readPSW = function(addr)
*
* @this {DevicePDP11}
* @param {number} data
* @param {number} addr
* @param {number} addr (ie, ADDR_PSW)
*/
DevicePDP11.prototype.writePSW = function(data, addr)
{
/*
* TODO: Review the next line, which mimics access(), and determine if writePSW() can do this itself.
* TODO: Determine whether we need to replicate the code in access_iopage() that returns a bogus
* error when writing to ADDR_PSW, as a way of preventing instructions like CLR from updating the flags
* and potentially modifying some of the PSW bits that were just set (eg, the Z flag).
*
* If so, then we'll need to centralize the flag update logic, so that it can be skipped whenever a
* special one-time opcode flag is set. Because there are a number of arithmetic instructions besides
* CLR that could be used to modify ADDR_PSW.
*/
data = (data & 0xf8ef) | (this.cpu.readPSW() & 0x0710);
this.cpu.writePSW(data);
};
@ -706,6 +711,40 @@ DevicePDP11.prototype.getCache = function(callback, meta, block, address, count)
xhr.send(null);
};
/**
* insertData(original, physicalAddress, data, byteFlag)
*
* @this {DevicePDP11}
* @param {number} original
* @param {number} physicalAddress
* @param {number} data
* @param {number} byteFlag
* @return {number}
*/
DevicePDP11.prototype.insertData = function(original, physicalAddress, data, byteFlag)
{
if (physicalAddress & 1) {
if (!byteFlag) {
//log.push("TRAP 4 201 " + physicalAddress.toString(8) + " " + data.toString(8));
return this.cpu.trap(4, 122);
}
if (data >= 0) {
data = ((data << 8) & 0xff00) | (original & 0xff);
} else {
data = original;
}
} else {
if (data >= 0) {
if (byteFlag) {
data = (original & 0xff00) | (data & 0xff);
}
} else {
data = original;
}
}
return data;
};
/**
* readData(meta, block, address, count)
*
@ -810,8 +849,11 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
switch (physicalAddress & ~0x3F) /*077*/ {
case 0x3FFFC0: /*017777700*/ // 017777700 - 017777777
switch (physicalAddress & ~1) {
case 0x3FFFFE: /*017777776*/ // PSW
Component.assert(false); // verify that this is being handled by our new registered functions now
/*
* Superseded by UNIBUS_TABLE (much more of this code will be commented out
* as it is replaced by read/write handlers in the UNIBUS_TABLE; stay tuned).
*
case 0x3FFFFE: // 017777776 // PSW
result = cpu.readPSW();
if (data >= 0) {
if (physicalAddress & 1) {
@ -819,11 +861,11 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
} else {
if (byteFlag) data = (result & 0xff00) | (data & 0xff);
}
data = (data & 0xf8ef) | (result & 0x0710);
cpu.writePSW(data);
return -1; // KLUDGE - no trap but abort any CC updates
}
break;
*/
case 0x3FFFFC: /*017777774*/ // stack limit
if (data < 0) {
result = cpu.stackLimit & 0xff00;
@ -1391,40 +1433,6 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
return result;
};
/**
* insertData(original, physicalAddress, data, byteFlag)
*
* @this {DevicePDP11}
* @param {number} original
* @param {number} physicalAddress
* @param {number} data
* @param {number} byteFlag
* @return {number}
*/
DevicePDP11.prototype.insertData = function(original, physicalAddress, data, byteFlag)
{
if (physicalAddress & 1) {
if (!byteFlag) {
//log.push("TRAP 4 201 " + physicalAddress.toString(8) + " " + data.toString(8));
return this.cpu.trap(4, 122);
}
if (data >= 0) {
data = ((data << 8) & 0xff00) | (original & 0xff);
} else {
data = original;
}
} else {
if (data >= 0) {
if (byteFlag) {
data = (original & 0xff00) | (data & 0xff);
}
} else {
data = original;
}
}
return data;
};
DevicePDP11.UNIBUS_TABLE = {};
DevicePDP11.UNIBUS_TABLE[DevicePDP11.ADDR_PSW] = [null, null, DevicePDP11.prototype.readPSW, DevicePDP11.prototype.writePSW];

View file

@ -9,205 +9,204 @@ function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(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 Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Ka(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.nc=b.comment;this.Oc=b;b=this.id.indexOf(".");0>b?this.Db=this.id:(this.pc=this.id.substr(0,b),this.Db=this.id.substr(b+1));this[a]=d;this.A={ready:!1,mb:!1,ec:!1,ea:!1,error:!1};this.Xb=null;this.A.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.nc=b.comment;this.Oc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.pc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,mb:!1,dc:!1,ea:!1,error:!1};this.Vb=null;this.A.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function w(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},v=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ta(g.type,g.binding,h,g.value),l=k.length}}}}
function A(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ta:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.eb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
this.na=function(a){this.g(a,this.Db)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Db+": "+a)},na:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.ea=!0},Ma:function(a,b){b&&(this.A.ea=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Ic)}return!1}
function pb(a,b){if(a.A.ec)return a.A.mb&&(a.A.mb=!1),a.A.ec=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.mb=b;return a.A.mb}function qb(a,b){a.A.mb&&(b?a.A.ec=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.mb}function C(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xb;a.Xb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Xb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.na(b)}
this.na=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},na:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.ea=!0},Ma:function(a,b){b&&(this.A.ea=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Ic)}return!1}
function pb(a,b){if(a.A.dc)return a.A.mb&&(a.A.mb=!1),a.A.dc=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.mb=b;return a.A.mb}function qb(a,b){a.A.mb&&(b?a.A.dc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.mb}function C(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Vb;a.Vb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Vb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.na(b)}
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}w(ub);m=ub.prototype;m.ta=function(a,b,d,c){return this.i&&this.i.ta(a,b,d,c)||this.f&&this.f.ta(a,b,d,c)||this.H&&this.H.ta(a,b,d,c)?!0:this.parent.ta.call(this,a,b,d,c)};m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.f=d;this.H=c};
m.Na=function(a,b){b||vb();return!0};m.Ma=function(){return!0};m.wa=function(){};function vb(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new ub(f));db(e,c);a&&C(e)}}Qa(vb);
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.za=1<<this.X;this.T=this.za>>2;this.G=this.za-1;this.F=this.I/this.za|0;this.B=this.F-1;this.Sa=[];this.J=null;this.Ib=this.Ec;a=new G;xb(a,this.H);this.R=Array(this.F);for(b=0;b<this.F;b++)this.R[b]=a;this.Eb=Array(4);this.Eb[0]=yb;this.Eb[1]=zb;this.Eb[2]=Ab;this.Eb[3]=Bb;this.P=this.I-8192;Cb(this,
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Sa[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=this.controller.Sa[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Ib(b,-1,1)}
function Ab(a,b,d){var c=this.controller.Sa[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Sa[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Ib(d,b,1)}function zb(a,b){var d=this.controller.Sa[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Ib(b,-1,0)}
function Bb(a,b,d){if(a=this.controller.Sa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Ib(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Ec=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.za,n=a.za-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.D)return k.Vb+=k.D-e,k.D=e,!0;if(e>=k.D+k.Vb){n=k.size-(e-l);n>h&&(n=h);k.Vb=e-k.D+n;e=l+a.za;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.za,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.za;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
m.Jb=function(a){return this.R[(a&this.i)>>>this.X].rb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].xc(b,a):this.R[d++].rb(b,a)|this.R[d&this.B].rb(0,a+1)<<8};function Gb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].ic(d,b):a.R[c++].Qb(d,b)|a.R[c&a.B].Qb(0,b+1)<<8}m.cc=function(a,b){this.R[(a&this.i)>>>this.X].yb(a&this.G,b&255,a)};
m.kc=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Dc(d,b&65535,a):(this.R[c++].yb(d,b&255,a),this.R[c&this.B].yb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={hc:[],Ha:0,pa:128,H:127,Kc:0};this.i={data:0,fd:0,ob:20,dd:0};this.B={Kb:0,K:0};this.F={Sb:2496,ka:0,S:128,Tb:0,Rb:0,sa:0,yc:0,ma:[],bb:[406,406,406,406],Y:[12,12,12,12]};this.I={K:129,Hb:0,ca:0,Xa:0,Ta:0,$a:0,ma:[],Y:[40,40,40,40],bb:[1024,1024,512,512],Gc:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Y:[22,22,22,50],ab:[19,19,19,32],dc:[815,411,815,630],ma:[],U:2176,vb:0,tb:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,oa:[4544,4544,4544,4544,4544,
4544,4544,4544],ub:[0,0,0,0,0,0,0,0],jb:0,bd:[0,0,0,0,0,0,0,0],zc:0,Ac:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Bc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],bc:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],Za:0,jc:0}}w(Hb);
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.za=1<<this.X;this.T=this.za>>2;this.G=this.za-1;this.F=this.I/this.za|0;this.B=this.F-1;this.Sa=[];this.J=null;this.Gb=this.Ec;a=new G;xb(a,this.H);this.R=Array(this.F);for(b=0;b<this.F;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Sa[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=this.controller.Sa[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
function zb(a,b,d){var c=this.controller.Sa[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Sa[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Ab(a,b){var d=this.controller.Sa[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
function Bb(a,b,d){if(a=this.controller.Sa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Ec=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.za,n=a.za-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.D)return k.Tb+=k.D-e,k.D=e,!0;if(e>=k.D+k.Tb){n=k.size-(e-l);n>h&&(n=h);k.Tb=e-k.D+n;e=l+a.za;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.za,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.za;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].rb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].xc(b,a):this.R[d++].rb(b,a)|this.R[d&this.B].rb(0,a+1)<<8};function Gb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].hc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.B].Ob(0,b+1)<<8}m.bc=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)};
m.jc=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Dc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.B].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={gc:[],Ha:0,pa:128,H:127,Kc:0};this.i={data:0,fd:0,ob:20,dd:0};this.B={Ib:0,L:0};this.F={Qb:2496,ka:0,S:128,Rb:0,Pb:0,sa:0,yc:0,ma:[],bb:[406,406,406,406],Y:[12,12,12,12]};this.I={L:129,Fb:0,ca:0,Xa:0,Ta:0,$a:0,ma:[],Y:[40,40,40,40],bb:[1024,1024,512,512],Gc:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Y:[22,22,22,50],ab:[19,19,19,32],cc:[815,411,815,630],ma:[],U:2176,ub:0,sb:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,oa:[4544,4544,4544,4544,4544,
4544,4544,4544],tb:[0,0,0,0,0,0,0,0],jb:0,bd:[0,0,0,0,0,0,0,0],zc:0,Ac:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Bc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],ac:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],Za:0,ic:0}}w(Hb);
var Tb=[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];m=Hb.prototype;
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ub;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Sa[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Sa[n]=[h,g,k,e,!1]}}f=this.Fc.bind(this);b.J=this.reset.bind(this);b.Ib=f}C(this)};m.sb=function(){return this.f.sb()};m.Ab=function(a){a=a&63727|this.f.sb()&1808;this.f.Ab(a)};
function Vb(a){var b=a.F,d,c,f,e=b.sa>>13&7;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.bb[e]*b.Y[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Sb=2496;b.ka=0;b.S=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.bb[e]){b.ka|=32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Rb;f=65536-b.Tb&65535;Wb(a,b.ma[e],d,c,f);return;case 2:if((b.sa>>4&511)>=b.bb[e]){b.ka|=
32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Rb;f=65536-b.Tb&65535;a.ac(b.ma[e],d,c,f);return}b.Sb=e<<13|b.Sb&8176|b.sa%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.F;e.Rb=c&65535;e.S=e.S&-49|c>>12&48;e.Tb=65536-f&65535;switch(a){case 1:e.ka|=33024;e.S|=49152;break;case 2:e.ka|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
function Xb(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.bb[e]*b.Y[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Xa&8&&(b.K&=63);b.Xa=b.Gc[e]|b.$a&64;break;case 3:1==(b.ca&3)&&(b.$a=b.ca&4?b.$a+(b.ca&65408)&65408|b.ca<<2&64:b.$a-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.$a);break;case 4:b.Xa=b.$a;break;case 5:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+
(b.ca&63);c=(b.Ta&63)<<16|b.Hb;f=65536-b.Xa&65535;Wb(a,b.ma[e],d,c,f);return;case 6:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+(b.ca&63);c=(b.Ta&63)<<16|b.Hb;f=65536-b.Xa&65535;a.ac(b.ma[e],d,c,f);return}H(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
m.Wc=function(a,b,d,c,f){var e=this.I;e.Hb=c&65535;e.K=e.K&-49|c>>12&48;e.Ta=c>>16&63;e.ca=~~(d/e.Y[b.La])<<6|d%e.Y[b.La];e.$a=e.ca;e.Xa=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function Yb(a){a=a.J;a.U=2176;a.Aa=0;a.oa=[4544,4544,4544,4544,4544,4544,4544,4544];a.ub=[0,0,0,0,0,0,0,0];a.jb=a.vb=a.tb=a.Za=a.jc=0}
function Zb(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Aa&=-2049;d.oa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.ma[b]&&(d.ma[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.dc[0]*d.ab[0]*d.Y[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.bc[b]=d.Pa[b];d.U|=32896;d.oa[b]|=32896;d.jb|=1<<b;break;case 9:Yb(a);break;case 19:d.oa[b]|=64;break;case 49:if(d.Pa[b]>=d.dc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+
(d.Ba[b]&255);f=(d.Za&63)<<16|d.tb;e=65536-d.vb&65535;Wb(a,d.ma[b],c,f,e);return;case 57:if(d.Pa[b]>=d.dc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+(d.Ba[b]&255);f=(d.Za&63)<<16|d.tb;e=65536-d.vb&65535;a.ac(d.ma[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.oa[b]|=128;return!!(d.U&64)})}
m.Xc=function(a,b,d,c,f){var e=this.J;e.vb=65536-f&65535;e.tb=c&65535;e.U=e.U&-769|c>>8&768;e.Za=c>>16&63;f=~~(d/e.Y[0]);c=~~(f/e.ab[0]);e.Ba[b.La]=f%e.ab[0]<<8|d%e.Y[0];e.bc[b.La]=e.Pa[b.La]=c;e.jb|=1<<b.La;d>=b.Tc-1&&(e.oa[b.La]|=1024);switch(a){case 1:e.Aa|=512;e.U|=49152;break;case 2:e.Aa|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.oa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Qc=function(){this.B.K|=128;this.B.K&64&&H(this.f,0,192,64)};
function $b(a,b){var d=b>>13&31;31>d?a.f.Ia&32&&(b=a.f.xb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&ac(898)):b|=4186112;return b}
function bc(a,b,d,c,f,e){var h=~~((e+d.Ua-1)/d.Ua),g=new XMLHttpRequest;2048>h&&c+2048<d.Tc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Ua<<1)+"-"+(((c+h)*d.Ua<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.$b(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Ua;p++)d.cache[n][p]=q<l.length?
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Ua<<1;n++}h(d,c,f,e)}}};g.send(null)}m.ac=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){bc(this,this.ac,a,b,d,c);return}for(f=0;f<a.Ua&&0<c;f++){if(0>I(this.f,a.Sc?$b(this,d):d,a.cache[b][f])){a.$b(2,a,b,d,c);return}d+=2;--c}b++}a.$b(0,a,b,d,c)};
function Wb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Ua;e++)b.cache[d][e]=0;for(e=0;e<b.Ua&&0<f;e++){h=J(a.f,b.Sc?$b(a,c):c);if(0>h){b.$b(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.$b(0,b,d,c,f)}m.reset=function(){this.i.ob=this.i.ob&-120|20;this.N.Ha=0;this.N.pa=128;this.B.K=0;this.F.S=128;this.I.K=128;Yb(this)};
m.Fc=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194302:c=e.sb();if(0<=b)return a&1?b=b<<8|c&255:d&&(b=c&65280|b&255),e.Ab(b&63727|c&1808),-1;break;case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Zb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Zb=c;e.Oa=2}break;case 4194294:if(70!==e.fb)return K(e,4);0>b?c=e.M:c=e.M=0;break;case 4194292:if(70!==e.fb)return K(e,4);c=1;break;case 4194290:if(70!==e.fb)return K(e,
4);c=0;break;case 4194288:if(70!==e.fb)return K(e,4);c=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.fb)return K(e,4);f=a-4194272>>1;0>b?c=e.gc[f]:(c=L(this,e.gc[f],a,b,d),0<=c&&(e.gc[f]=c));break;case 4194254:return a&1?e.L>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[3]=b),c=e.ra[3]):e.L>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[1]=b),c=e.ra[1]),c;case 4194252:case 4194250:case 4194248:return f=
a&7,e.L&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Ya[f]=b),c=e.Ya[f]),c;case 4194246:return a&1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.L>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[0]=b),c=e.ra[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.L&2048?(0<=b&&(e.Ya[f]=b),c=e.Ya[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.M|=16,K(e,4)}break;case 4194176:f=a>>1&31;c=L(this,e.ja[3][f],a,b,d);0<=c&&(e.ja[3][f]=c,e.ja[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.B;switch(a&-2){case 4194174:c=
L(this,e.Cb,a,b,d);0<=c&&(e.Cb=c);break;case 4194172:c=e.Ca;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ba=e.ba&62337|e.Mb<<5|e.Yb<<1;0>b?c=e.ba:(c=L(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Mb=c>>5&3,e.Yb=c>>1&15,c&257?(f=2,e.Ia&16&&(f=1),e.Lb=c&1?6:4):(e.Lb=0,f=4),this.i.ob=this.i.ob&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=L(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:if(0<=b){if(b&=127)h.Kc=0;h.pa&=-129;H(e,100,128,52,function(){h.pa|=128;return!!(h.pa&64)})}c=
0;break;case 4194164:0>b?c=h.pa:(c=L(this,h.pa,a,b,d),0<=c&&(128==(h.pa&192)&&c&64&&H(e,8,128,52,function(){h.pa|=128;return!!(h.pa&64)}),h.pa=h.pa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.hc.length&&(c=h.hc.shift(),0<h.hc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=L(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=L(this,f.K,a,b,d),0<=c&&(c&64&&!f.Kb&&(setInterval(this.Qc.bind(this),
25),f.Kb=1),f.K=c&-129));break;default:return e.M|=16,K(e,4)}break;case 4194048:f=this.F;switch(a&-2){case 4194048:c=L(this,f.Sb,a,b,d);0<=c&&(f.Sb=c);break;case 4194050:c=L(this,f.ka,a,b,d);0<=c&&(f.ka=c);break;case 4194052:c=L(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Vb(this));break;case 4194054:c=L(this,f.Tb,a,b,d);0<=c&&(f.Tb=c);break;case 4194056:c=L(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194058:c=L(this,f.sa,a,b,d);0<=c&&(f.sa=c);break;case 4194060:break;case 4194062:c=
L(this,f.yc,a,b,d);0<=c&&(f.yc=c);break;default:return e.M|=16,K(e,4)}break;case 4193728:var g=this.J;f=g.Aa&7;switch(a&-2){case 4193728:c=L(this,g.U,a,b,d);0<=b&&0<=c&&(g.Za=g.Za&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?Zb(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=L(this,g.vb,a,b,d);0<=c&&(g.vb=c);break;case 4193732:c=L(this,g.tb,a,b,d);0<=c&&(g.tb=c&65534);break;case 4193734:c=L(this,g.Ba[f],a,b,d);0<=c&&(g.Ba[f]=c&7967);break;case 4193736:c=L(this,g.Aa,a,b,d);0<=c&&(g.Aa=
c&63|g.Aa&65472,c&128&&Yb(this));break;case 4193738:c=g.oa[f];break;case 4193740:c=g.ub[f];break;case 4193742:c=L(this,g.jb,a,b,d);0<=c&&(g.jb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=L(this,g.zc,a,b,d);0<=c&&(g.zc=c);break;case 4193748:c=L(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=L(this,g.Bc[f],a,b,d);0<=c&&(g.Bc[f]=c);break;case 4193756:c=L(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.bc[f]=
g.Pa[f];c=g.bc[f];break;case 4193760:c=g.$c[f];break;case 4193762:c=g.ad[f];break;case 4193764:c=g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=L(this,g.Za,a,b,d);0<=c&&(g.Za=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=L(this,g.jc,a,b,d);0<=c&&(g.jc=c);break;default:return e.M|=16,K(e,4)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=L(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ta=f.Ta&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||Xb(this));break;case 4192514:c=L(this,f.Hb,a,b,d);0<=c&&(f.Hb=
c&65534);break;case 4192516:c=L(this,f.ca,a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=L(this,f.Xa,a,b,d);0<=c&&(f.Xa=c);break;case 4192520:c=L(this,f.Ta,a,b,d);0<=c&&(f.Ta=c&63,f.K=f.K&-49|(f.Ta&3)<<4);break;default:return e.M|=16,K(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ia:(c=L(this,e.Ia,a,b,d),0<=c&&(70!==e.fb&&(c&=-49),e.Ia=c,e.hb[0]=c&4?15:7,e.hb[1]=c&2?15:7,e.hb[3]=c&1?15:7,e.Lb&&(f=2,e.Ia&16&&(f=1),this.i.ob=this.i.ob&-8|f)));break;default:return e.M|=16,K(e,4)}break;case 4191424:f=
a>>1&31;c=L(this,e.ja[0][f],a,b,d);0<=c&&(e.ja[0][f]=c,e.ja[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=L(this,e.ja[1][f],a,b,d);0<=c&&(e.ja[1][f]=c,e.ja[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.fb)return K(e,4);f=a>>2&31;c=e.xb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=L(this,c,a,b,d),0<=c&&(e.xb[f]=a&2?c<<16|e.xb[f]&65535:e.xb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Tb[a>>1&255];
else return e.M|=16,K(e,4);break;default:return e.M|=16,K(e,4)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===typeof c&&ac(76);return c};function L(a,b,d,c,f){if(d&1){if(!f)return K(a.f,4);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}var Ub={};Ub[4194302]=[null,null,Hb.prototype.sb,Hb.prototype.Ab];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var cc;
if(tb){var dc=new ArrayBuffer(2);(new DataView(dc)).setUint16(0,256,!0);cc=256===(new Uint16Array(dc))[0]}else cc=!1;var ec=cc;
function G(a,b,d,c,f){this.id=fc+=2;this.f=null;this.D=a;this.Vb=b;this.size=d||0;this.type=c||gc;this.O=c==hc;this.controller=null;xb(this);this.Va=this.Mc=!1;if(d)if(f)this.controller=f,this.f=null,ic(this,f.Eb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),ic(this,ec?jc:kc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;ic(this,lc)}else ic(this)}
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ub;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Sa[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Sa[n]=[h,g,k,e,!1]}}f=this.Fc.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.$b=function(){return this.f.$b()};m.lc=function(a){this.f.lc(a)};
function Vb(a){var b=a.F,d,c,f,e=b.sa>>13&7;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.bb[e]*b.Y[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.ka=0;b.S=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.bb[e]){b.ka|=32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Wb(a,b.ma[e],d,c,f);return;case 2:if((b.sa>>4&511)>=b.bb[e]){b.ka|=
32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.Zb(b.ma[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.sa%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.F;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ka|=33024;e.S|=49152;break;case 2:e.ka|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
function Xb(a){var b=a.I,d,c,f,e=b.L>>8&3;b.L&=-2;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.bb[e]*b.Y[e],url:"rl"+e+".dsk"});switch(b.L>>1&7){case 2:b.Xa&8&&(b.L&=63);b.Xa=b.Gc[e]|b.$a&64;break;case 3:1==(b.ca&3)&&(b.$a=b.ca&4?b.$a+(b.ca&65408)&65408|b.ca<<2&64:b.$a-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.$a);break;case 4:b.Xa=b.$a;break;case 5:if(b.ca>>6>=b.bb[e]){b.L|=37888;break}if((b.ca&63)>=b.Y[e]){b.L|=37888;break}d=(b.ca>>6)*b.Y[e]+
(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;Wb(a,b.ma[e],d,c,f);return;case 6:if(b.ca>>6>=b.bb[e]){b.L|=37888;break}if((b.ca&63)>=b.Y[e]){b.L|=37888;break}d=(b.ca>>6)*b.Y[e]+(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;a.Zb(b.ma[e],d,c,f);return}H(a.f,20,160,112,function(){b.L|=129;return!!(b.L&64)})}
m.Wc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.L=e.L&-49|c>>12&48;e.Ta=c>>16&63;e.ca=~~(d/e.Y[b.La])<<6|d%e.Y[b.La];e.$a=e.ca;e.Xa=65536-f&65535;switch(a){case 1:e.L|=33792;break;case 2:e.L|=40960}H(this.f,20,160,112,function(){e.L|=129;return!!(e.L&64)})};function Yb(a){a=a.J;a.U=2176;a.Aa=0;a.oa=[4544,4544,4544,4544,4544,4544,4544,4544];a.tb=[0,0,0,0,0,0,0,0];a.jb=a.ub=a.sb=a.Za=a.ic=0}
function Zb(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Aa&=-2049;d.oa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.ma[b]&&(d.ma[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.cc[0]*d.ab[0]*d.Y[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ac[b]=d.Pa[b];d.U|=32896;d.oa[b]|=32896;d.jb|=1<<b;break;case 9:Yb(a);break;case 19:d.oa[b]|=64;break;case 49:if(d.Pa[b]>=d.cc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+
(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;Wb(a,d.ma[b],c,f,e);return;case 57:if(d.Pa[b]>=d.cc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;a.Zb(d.ma[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.oa[b]|=128;return!!(d.U&64)})}
m.Xc=function(a,b,d,c,f){var e=this.J;e.ub=65536-f&65535;e.sb=c&65535;e.U=e.U&-769|c>>8&768;e.Za=c>>16&63;f=~~(d/e.Y[0]);c=~~(f/e.ab[0]);e.Ba[b.La]=f%e.ab[0]<<8|d%e.Y[0];e.ac[b.La]=e.Pa[b.La]=c;e.jb|=1<<b.La;d>=b.Tc-1&&(e.oa[b.La]|=1024);switch(a){case 1:e.Aa|=512;e.U|=49152;break;case 2:e.Aa|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.oa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Qc=function(){this.B.L|=128;this.B.L&64&&H(this.f,0,192,64)};
function $b(a,b){var d=b>>13&31;31>d?a.f.Ia&32&&(b=a.f.wb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&ac(898)):b|=4186112;return b}
function bc(a,b,d,c,f,e){var h=~~((e+d.Ua-1)/d.Ua),g=new XMLHttpRequest;2048>h&&c+2048<d.Tc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Ua<<1)+"-"+(((c+h)*d.Ua<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Yb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Ua;p++)d.cache[n][p]=q<l.length?
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Ua<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){bc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Ua&&0<c;f++){if(0>K(this.f,a.Sc?$b(this,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
function Wb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Ua;e++)b.cache[d][e]=0;for(e=0;e<b.Ua&&0<f;e++){h=L(a.f,b.Sc?$b(a,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}m.reset=function(){this.i.ob=this.i.ob&-120|20;this.N.Ha=0;this.N.pa=128;this.B.L=0;this.F.S=128;this.I.L=128;Yb(this)};
m.Fc=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Xb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Xb=c;e.Oa=2}break;case 4194294:if(70!==e.fb)return J(e,4);0>b?c=e.M:c=e.M=0;break;case 4194292:if(70!==e.fb)return J(e,4);c=1;break;case 4194290:if(70!==e.fb)return J(e,4);c=0;break;case 4194288:if(70!==e.fb)return J(e,4);c=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.fb)return J(e,4);f=a-4194272>>1;0>b?c=e.fc[f]:(c=I(this,e.fc[f],a,b,d),0<=c&&(e.fc[f]=c));break;case 4194254:return a&1?e.K>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[3]=b),c=e.ra[3]):e.K>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[1]=b),c=e.ra[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.K&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Ya[f]=b),c=e.Ya[f]),c;case 4194246:return a&
1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.K>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[0]=b),c=e.ra[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.K&2048?(0<=b&&(e.Ya[f]=b),c=e.Ya[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.M|=16,J(e,4)}break;case 4194176:f=a>>1&31;c=I(this,e.ja[3][f],a,b,d);0<=c&&(e.ja[3][f]=c,e.ja[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.B;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=e.Ca;c&65280&&(c=(c<<8|c>>8)&
65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Wb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Wb=c>>1&15,c&257?(f=2,e.Ia&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.ob=this.i.ob&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Kc=0),h.pa&=-129,H(e,100,128,52,function(){h.pa|=128;return!!(h.pa&64)}));c=0;break;case 4194164:0>b?c=h.pa:(c=I(this,h.pa,a,b,d),0<=c&&(128==(h.pa&192)&&c&
64&&H(e,8,128,52,function(){h.pa|=128;return!!(h.pa&64)}),h.pa=h.pa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.gc.length&&(c=h.gc.shift(),0<h.gc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=I(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.L,f.L&=-129):(c=I(this,f.L,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Qc.bind(this),25),f.Ib=1),f.L=c&-129));break;default:return e.M|=16,J(e,4)}break;case 4194048:f=
this.F;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.ka,a,b,d);0<=c&&(f.ka=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Vb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.sa,a,b,d);0<=c&&(f.sa=c);break;case 4194060:break;case 4194062:c=I(this,f.yc,a,b,d);0<=c&&(f.yc=c);break;default:return e.M|=16,J(e,4)}break;case 4193728:var g=
this.J;f=g.Aa&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.Za=g.Za&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?Zb(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.ub,a,b,d);0<=c&&(g.ub=c);break;case 4193732:c=I(this,g.sb,a,b,d);0<=c&&(g.sb=c&65534);break;case 4193734:c=I(this,g.Ba[f],a,b,d);0<=c&&(g.Ba[f]=c&7967);break;case 4193736:c=I(this,g.Aa,a,b,d);0<=c&&(g.Aa=c&63|g.Aa&65472,c&128&&Yb(this));break;case 4193738:c=g.oa[f];break;case 4193740:c=g.tb[f];
break;case 4193742:c=I(this,g.jb,a,b,d);0<=c&&(g.jb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=I(this,g.zc,a,b,d);0<=c&&(g.zc=c);break;case 4193748:c=I(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=I(this,g.Bc[f],a,b,d);0<=c&&(g.Bc[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.ac[f]=g.Pa[f];c=g.ac[f];break;case 4193760:c=g.$c[f];break;case 4193762:c=g.ad[f];break;case 4193764:c=
g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=I(this,g.Za,a,b,d);0<=c&&(g.Za=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.ic,a,b,d);0<=c&&(g.ic=c);break;default:return e.M|=16,J(e,4)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.L,a,b,d);0<=b&&0<=c&&(f.Ta=f.Ta&60|c>>4&3,f.L=f.L&-1023|c&1022,f.L&128||Xb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Xa,
a,b,d);0<=c&&(f.Xa=c);break;case 4192520:c=I(this,f.Ta,a,b,d);0<=c&&(f.Ta=c&63,f.L=f.L&-49|(f.Ta&3)<<4);break;default:return e.M|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ia:(c=I(this,e.Ia,a,b,d),0<=c&&(70!==e.fb&&(c&=-49),e.Ia=c,e.hb[0]=c&4?15:7,e.hb[1]=c&2?15:7,e.hb[3]=c&1?15:7,e.Jb&&(f=2,e.Ia&16&&(f=1),this.i.ob=this.i.ob&-8|f)));break;default:return e.M|=16,J(e,4)}break;case 4191424:f=a>>1&31;c=I(this,e.ja[0][f],a,b,d);0<=c&&(e.ja[0][f]=c,e.ja[0][f&15]&=65295);break;case 4191360:f=
a>>1&31;c=I(this,e.ja[1][f],a,b,d);0<=c&&(e.ja[1][f]=c,e.ja[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.fb)return J(e,4);f=a>>2&31;c=e.wb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.wb[f]=a&2?c<<16|e.wb[f]&65535:e.wb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Tb[a>>1&255];else return e.M|=16,J(e,4);break;default:return e.M|=16,J(e,4)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===
typeof c&&ac(76);return c};var Ub={};Ub[4194302]=[null,null,Hb.prototype.$b,Hb.prototype.lc];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var cc;if(tb){var dc=new ArrayBuffer(2);(new DataView(dc)).setUint16(0,256,!0);cc=256===(new Uint16Array(dc))[0]}else cc=!1;var ec=cc;
function G(a,b,d,c,f){this.id=fc+=2;this.f=null;this.D=a;this.Tb=b;this.size=d||0;this.type=c||gc;this.O=c==hc;this.controller=null;xb(this);this.Va=this.Mc=!1;if(d)if(f)this.controller=f,this.f=null,ic(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),ic(this,ec?jc:kc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;ic(this,lc)}else ic(this)}
var gc=0,hc=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],fc=0;
G.prototype={constructor:G,parent:null,Kb:function(a){this.D=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Va=!0}return!1},cb:function(a,b){b?0===this.B++&&mc(this,nc,!1):0===this.i++&&oc(this,nc,!1)},T:function(){this.H&&
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.D),!0);return 255},F:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},V:function(a,b){return this.rb(a++,b++)|this.rb(a,b)<<8},N:function(a,b,d){this.yb(a++,b&255,d++);this.yb(a,b>>8,d)},aa:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ya:function(a,
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Va=!0},Db:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Va=!0},Z:function(a,b){if(this.H&&null!=this.D){var d=this.H;pc(d,this.D+a,1,d.W)&&d.la(!0)}return this.Qb(a,b)},fa:function(a,b){if(this.H&&null!=this.D){var d=this.H;pc(d,this.D+a,2,d.W)&&d.la(!0)}return this.ic(a,b)},va:function(a,b,d){if(this.H&&null!=this.D){var c=this.H;
pc(c,this.D+a,1,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.zb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.D){var c=this.H;pc(c,this.D+a,2,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.mc(a,b,d)},W:function(a){return this.G[a]},$:function(a){return this.G[a]},da:function(a){return this.J.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},ua:function(a,b){this.G[a]=b;this.Va=!0},xa:function(a,b){this.G[a]=b;this.Va=!0},Da:function(a,b){this.J.setUint16(a,b,!0);this.Va=!0},
Ra:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Va=!0}};function xb(a,b,d){a.H=b;a.i=a.B=0;d&&((a.i=d.i)&&oc(a,nc,!1),(a.B=d.B)&&mc(a,nc,!1))}function qc(a,b){b?0===--a.B&&(a.yb=a.O?a.F:a.zb,a.Dc=a.O?a.N:a.mc):0===--a.i&&(a.rb=a.Qb,a.xc=a.ic)}function mc(a,b,d){d&&a.B||(a.yb=!a.O&&b[1]||a.F,a.Dc=!a.O&&b[3]||a.N);if(d||void 0===d)a.zb=b[1]||a.F,a.mc=b[3]||a.N}function oc(a,b,d){d&&a.i||(a.rb=b[0]||a.T,a.xc=b[2]||a.V);if(d||void 0===d)a.Qb=b[0]||a.T,a.ic=b[2]||a.V}
function ic(a,b){b||(b=rc);oc(a,b,void 0);mc(a,b,void 0)}var rc=[],lc=[G.prototype.aa,G.prototype.ya,G.prototype.qa,G.prototype.Db],nc=[G.prototype.Z,G.prototype.va,G.prototype.fa,G.prototype.Ja];if(tb)var kc=[G.prototype.W,G.prototype.ua,G.prototype.da,G.prototype.Da],jc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ra];
function sc(a,b){u.call(this,"CPU",a,sc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.ib=d;this.xa=Math.round(this.ya/1E4)/100;this.gb=this.xa*this.ib;this.A.ia=!1;this.A.lc=!1;this.A.Fb=a.autoStart;this.A.tc=!1;this.A.nb=!1;this.Nb=this.Z=0;this.Ob=a.csStart;this.pb=a.csInterval;this.qb=a.csStop;this.qa=[];this.Gb=this.kb.bind(this);C(this)}w(sc);var tc=["power","reset"];m=sc.prototype;
m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<tc.length;b++)(d=this.O[tc[b]])&&this.i.ta(null,tc[b],d);this.da=null;a=uc(a,"autoStart");null!=a&&(this.A.Fb="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){vc(this);if(!this.restore(a))return!1;Ic(this)}else this.reset();this.H?this.H.Kb():this.g("No debugger detected")}M(this);return!0};
m.Ma=function(a){return a?this.save():!0};m.Fb=function(){return this.A.Fb||!this.H&&void 0===this.O.run?(this.kb(!0),!0):!1};m.vc=function(){return 0};function Ic(a){void 0===a.Ob&&(a.Ob=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.A.nb=0<=a.Ob&&0<a.pb;a.A.nb&&(a.Nb=0,a.Z=a.Ob-a.W)}function Jc(a,b){if(a.A.nb){var d=!1;a.Nb=a.Nb+a.vc()|0;a.Z-=b;0>=a.Z&&(a.Z+=a.pb,d=!0);0<=a.qb&&a.qb<=Kc(a)&&(a.pb=a.qb=-1,Ic(a),a.la(),d=!0);d&&a.g(Kc(a)+" cycles: checksum="+r(a.Nb))}}
G.prototype={constructor:G,parent:null,Ib:function(a){this.D=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Va=!0}return!1},cb:function(a,b){b?0===this.B++&&mc(this,nc,!1):0===this.i++&&oc(this,nc,!1)},T:function(){this.H&&
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.D),!0);return 255},F:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},V:function(a,b){return this.rb(a++,b++)|this.rb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},aa:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ya:function(a,
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Va=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Va=!0},Z:function(a,b){if(this.H&&null!=this.D){var d=this.H;pc(d,this.D+a,1,d.W)&&d.la(!0)}return this.Ob(a,b)},fa:function(a,b){if(this.H&&null!=this.D){var d=this.H;pc(d,this.D+a,2,d.W)&&d.la(!0)}return this.hc(a,b)},va:function(a,b,d){if(this.H&&null!=this.D){var c=this.H;
pc(c,this.D+a,1,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.D){var c=this.H;pc(c,this.D+a,2,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.mc(a,b,d)},W:function(a){return this.G[a]},$:function(a){return this.G[a]},da:function(a){return this.J.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},ua:function(a,b){this.G[a]=b;this.Va=!0},xa:function(a,b){this.G[a]=b;this.Va=!0},Da:function(a,b){this.J.setUint16(a,b,!0);this.Va=!0},
Ra:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Va=!0}};function xb(a,b,d){a.H=b;a.i=a.B=0;d&&((a.i=d.i)&&oc(a,nc,!1),(a.B=d.B)&&mc(a,nc,!1))}function qc(a,b){b?0===--a.B&&(a.xb=a.O?a.F:a.yb,a.Dc=a.O?a.N:a.mc):0===--a.i&&(a.rb=a.Ob,a.xc=a.hc)}function mc(a,b,d){d&&a.B||(a.xb=!a.O&&b[1]||a.F,a.Dc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.F,a.mc=b[3]||a.N}function oc(a,b,d){d&&a.i||(a.rb=b[0]||a.T,a.xc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.hc=b[2]||a.V}
function ic(a,b){b||(b=rc);oc(a,b,void 0);mc(a,b,void 0)}var rc=[],lc=[G.prototype.aa,G.prototype.ya,G.prototype.qa,G.prototype.Bb],nc=[G.prototype.Z,G.prototype.va,G.prototype.fa,G.prototype.Ja];if(tb)var kc=[G.prototype.W,G.prototype.ua,G.prototype.da,G.prototype.Da],jc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ra];
function sc(a,b){u.call(this,"CPU",a,sc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.ib=d;this.xa=Math.round(this.ya/1E4)/100;this.gb=this.xa*this.ib;this.A.ia=!1;this.A.kc=!1;this.A.Db=a.autoStart;this.A.tc=!1;this.A.nb=!1;this.Lb=this.Z=0;this.Mb=a.csStart;this.pb=a.csInterval;this.qb=a.csStop;this.qa=[];this.Eb=this.kb.bind(this);C(this)}w(sc);var tc=["power","reset"];m=sc.prototype;
m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<tc.length;b++)(d=this.O[tc[b]])&&this.i.ta(null,tc[b],d);this.da=null;a=uc(a,"autoStart");null!=a&&(this.A.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){vc(this);if(!this.restore(a))return!1;wc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}M(this);return!0};
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.A.Db||!this.H&&void 0===this.O.run?(this.kb(!0),!0):!1};m.vc=function(){return 0};function wc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.A.nb=0<=a.Mb&&0<a.pb;a.A.nb&&(a.Lb=0,a.Z=a.Mb-a.W)}function Jc(a,b){if(a.A.nb){var d=!1;a.Lb=a.Lb+a.vc()|0;a.Z-=b;0>=a.Z&&(a.Z+=a.pb,d=!0);0<=a.qb&&a.qb<=Kc(a)&&(a.pb=a.qb=-1,wc(a),a.la(),d=!0);d&&a.g(Kc(a)+" cycles: checksum="+r(a.Lb))}}
function Lc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.la());var f=a.H&&a.H.va||8;d=!a.A.ia||a.A.tc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
m.ta=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.A.ea)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.ea);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ia?c.la():c.kb())};
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Mc(c,c.ib<<1,!0)},d.textContent=this.gb.toFixed(2)+"Mhz",a=!0}return a};function Nc(a,b,d){a.W+=b;d&&(a.V=a.N=0)}function Oc(a,b){var d=1;b&&1<a.ib&&a.P&&(d=a.P/a.xa);a.lb=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.Da=0}function Kc(a){return a.W+a.J+a.V-a.N}function vc(a){a.P=0;a.Bb=0;a.W=a.J=a.V=a.N=0;Ic(a);Mc(a,1)}
function Mc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.gb?b=1:c=!0;a.ib=b;b=a.xa*a.ib;if(a.gb!=b){a.gb=b;b=a.gb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Ub()}Nc(a,a.J);a.J=0;a.I=sa();a.T=0;Oc(a);return c}function Pc(a){a.V-=a.N;a.N=0}
m.kb=function(a){if(pb(this,!0)){if(!this.A.ia){Mc(this);this.i&&this.i.start(this.I,Kc(this));this.A.ia=!0;this.A.lc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Ub(!0))}this.Da>=this.ya&&Oc(this,!0);this.fa=0;this.ua=sa();this.T&&(a=this.ua-this.T,a>this.lb&&(this.I+=a,this.I>this.ua&&(this.I=this.ua)));try{do{for(var d=this.A.nb?1:this.va,c=this.qa.length-1;0<=c;c--){var f=this.qa[c];0>f[0]||d>f[0]&&(d=f[0])}this.wb(d);var e=this.V-this.N;
a=e;for(var h=this.qa.length-1;0<=h;h--){var g=this.qa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=e;this.J+=e;Nc(this,0,!0);Jc(this,e);this.$-=e;if(0>=this.$){this.$+=this.va;15<=++this.Bb&&(this.i&&this.i.wa(),this.Bb=0);break}}while(this.A.ia)}catch(k){this.la();M(this);this.i&&this.i.stop(sa(),Kc(this));pb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Gb;this.T=sa();f=this.lb;this.fa&&(f=Math.round(f*this.fa/this.va));f=f-(this.T-this.ua);if(e=this.T-this.I)this.P=
Math.round(this.J/(10*e))/100,864E5<=e&&(this.W=0,Mc(this));if(0>f||this.P<this.gb)-1E3>f&&(this.I-=f),f=0;this.Da+=this.fa;this.T+=f;d(c,f)}else M(this),this.i&&this.i.stop(sa(),Kc(this))};m.wb=function(){return 0};m.la=function(a){qb(this,!0);Pc(this);Nc(this,this.J);this.J=0;if(this.A.ia){this.A.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function M(a,b){a.i&&a.i.wa(b)}
function Qc(a){this.wc=+a.model||1170;this.Wb=a.resetAddr||0;sc.call(this,a,1E6);this.Ja=0;this.C=65536;this.u=32768;this.w=65535;this.j=32768;this.L=15;this.b=[0,0,0,0,0,0,0,this.Wb];this.Ya=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Zb=0;this.Oa=2;this.Qa=255;this.F=0;this.aa=-1;this.M=0;this.fb=70;this.Yb=this.Mb=this.Lb=this.B=this.Ia=this.Cb=this.Ca=this.ba=0;this.hb=[7,7,7,7];this.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
0,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.xb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.gc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Jc=!1}w(Qc,sc);m=Qc.prototype;
m.reset=function(){this.A.ia&&this.la();Rc(this);vc(this);this.A.error=!1;this.parent.reset.call(this)};function Rc(a){a.Qa=255;a.M=0;a.f=[];a.Zb=0;a.ba=a.Ca=a.Cb=a.Ia=a.Lb=0;a.hb[0]=a.hb[1]=a.hb[3]=7;a.Mb=0}m.vc=function(){return 0};
m.ta=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.A.ea)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.ea);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Vb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ia?c.la():c.kb())};
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Mc(c,c.ib<<1,!0)},d.textContent=this.gb.toFixed(2)+"Mhz",a=!0}return a};function Nc(a,b,d){a.W+=b;d&&(a.V=a.N=0)}function Oc(a,b){var d=1;b&&1<a.ib&&a.P&&(d=a.P/a.xa);a.lb=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.Da=0}function Kc(a){return a.W+a.J+a.V-a.N}function vc(a){a.P=0;a.zb=0;a.W=a.J=a.V=a.N=0;wc(a);Mc(a,1)}
function Mc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.gb?b=1:c=!0;a.ib=b;b=a.xa*a.ib;if(a.gb!=b){a.gb=b;b=a.gb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Sb()}Nc(a,a.J);a.J=0;a.I=sa();a.T=0;Oc(a);return c}function Pc(a){a.V-=a.N;a.N=0}
m.kb=function(a){if(pb(this,!0)){if(!this.A.ia){Mc(this);this.i&&this.i.start(this.I,Kc(this));this.A.ia=!0;this.A.kc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Sb(!0))}this.Da>=this.ya&&Oc(this,!0);this.fa=0;this.ua=sa();this.T&&(a=this.ua-this.T,a>this.lb&&(this.I+=a,this.I>this.ua&&(this.I=this.ua)));try{do{for(var d=this.A.nb?1:this.va,c=this.qa.length-1;0<=c;c--){var f=this.qa[c];0>f[0]||d>f[0]&&(d=f[0])}this.vb(d);var e=this.V-this.N;
a=e;for(var h=this.qa.length-1;0<=h;h--){var g=this.qa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=e;this.J+=e;Nc(this,0,!0);Jc(this,e);this.$-=e;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.wa(),this.zb=0);break}}while(this.A.ia)}catch(k){this.la();M(this);this.i&&this.i.stop(sa(),Kc(this));pb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Eb;this.T=sa();f=this.lb;this.fa&&(f=Math.round(f*this.fa/this.va));f=f-(this.T-this.ua);if(e=this.T-this.I)this.P=
Math.round(this.J/(10*e))/100,864E5<=e&&(this.W=0,Mc(this));if(0>f||this.P<this.gb)-1E3>f&&(this.I-=f),f=0;this.Da+=this.fa;this.T+=f;d(c,f)}else M(this),this.i&&this.i.stop(sa(),Kc(this))};m.vb=function(){return 0};m.la=function(a){qb(this,!0);Pc(this);Nc(this,this.J);this.J=0;if(this.A.ia){this.A.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function M(a,b){a.i&&a.i.wa(b)}
function Qc(a){this.wc=+a.model||1170;this.Ub=a.resetAddr||0;sc.call(this,a,1E6);this.Ja=0;this.C=65536;this.u=32768;this.w=65535;this.j=32768;this.K=15;this.b=[0,0,0,0,0,0,0,this.Ub];this.Ya=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Xb=0;this.Oa=2;this.Qa=255;this.F=0;this.aa=-1;this.M=0;this.fb=70;this.Wb=this.Kb=this.Jb=this.B=this.Ia=this.Ab=this.Ca=this.ba=0;this.hb=[7,7,7,7];this.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
0,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.fc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Jc=!1}w(Qc,sc);m=Qc.prototype;
m.reset=function(){this.A.ia&&this.la();Rc(this);vc(this);this.A.error=!1;this.parent.reset.call(this)};function Rc(a){a.Qa=255;a.M=0;a.f=[];a.Xb=0;a.ba=a.Ca=a.Ab=a.Ia=a.Jb=0;a.hb[0]=a.hb[1]=a.hb[3]=7;a.Kb=0}m.vc=function(){return 0};
m.save=function(){var a=new Sc(this);N(a,0,[]);N(a,1,[this.Ra,this.W,this.ib]);for(var b=this.G,d=0,c=[],f=0;f<b.F;f++){var e=b.R[f];if(e.Va||e.Mc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}N(a,2,c);return a.data()};
m.restore=function(a){var b=a[1];this.Ra=b[0];this.W=b[1];Mc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
m.ta=function(a,b,d){var c=!1;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 "PSW":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ta.call(this,a,b,d)}return c};
m.wa=function(a){if(this.Ja&&(a||!this.A.ia||this.A.tc)){for(a=0;a<this.b.length;a++)Lc(this,"R"+a,this.b[a]);a=Tc(this);Lc(this,"PSW",a);Lc(this,"NF",a&8?1:0,1);Lc(this,"ZF",a&4?1:0,1);Lc(this,"VF",a&2?1:0,1);Lc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.A.ia&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};function Tc(a){return a.L&-16|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.C&65536?1:0)}
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].ed===c){0<e&&(a.f[e-1].Ea+=a.f[e].Ea);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Gb,0));for(e=a.f.length;0<e--;){if(a.f[e].Ea>b){a.f[e].Ea-=b;break}b-=a.f[e].Ea}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}
m.Ab=function(a){this.j=a<<12;this.w=~a&4;this.u=a<<14;this.C=a<<16;if((a^this.L)&2048)for(var b=this.Ya.length;0<=--b;){var d=this.b[b];this.b[b]=this.Ya[b];this.Ya[b]=d}this.B=a>>14&3;b=this.L>>14&3;this.B!=b&&(this.ra[b]=this.b[6],this.b[6]=this.ra[this.B]);this.Oa=2;this.L=a};m.sb=function(){return this.L=this.L&63728|(this.j&32768?8:0)|(this.w&65535?0:4)|(this.u&32768?2:0)|(this.C&65536?1:0)};function ac(a){console.log("panic("+a+")")}
function K(a,b){var d,c,f=0;0>a.aa?a.aa=a.sb():a.B||(b=4,f=1);a.ba&57344||(a.Ca=63222,a.Cb=b);a.B=0;0<=(d=P(a,b|65536))&&0<=(c=P(a,b+2&65535|65536))&&(a.Ab(c&53247|a.aa>>2&12288),f&&(a.M|=4,a.b[6]=4),0<=Uc(a,a.aa)&&0<=Uc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.aa=-1}
function Vc(a,b,d){var c,f,e,h=0;if(d&a.Lb){c=b>>13&a.hb[a.B];f=a.ja[a.B][c];e=(a.ja[a.B][c+16]<<6)+(b&8191)&4194303;if(a.Ia&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.Ia&32&&(e=a.xb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&ac(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.M|=32,K(a,4);if(e&1&&!(d&1))return a.M|=64,K(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?
192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.ja[a.B][c]=f;if(4194170!==e||a.B)a.Mb=a.B,a.Yb=c;if(h){if(h&57344)return 0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Mb<<5|a.Yb<<1),K(a,168);a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.F|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(d&1))return a.M|=64,K(a,4);return e}function J(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ga(b):b}
function I(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.kc(b,d),d):b}function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Jb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.cc(b,d),d):b}function P(a,b){return J(a,Vc(a,b,2))}function Wc(a){var b=P(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
function Uc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Ca=a.Ca<<8|246);if(!a.B&&c<=a.Qa&&4<c){if(c<=a.Qa-32)return a.M|=4,a.b[6]=4,K(a,4);a.M|=8;a.F|=4}return 0<=(d=Vc(a,c|65536,4))?I(a,d,b):d}
function Xc(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:return K(a,4);case 1:if(6===e&&!a.B&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32||65534<=a.b[6])return a.M|=4,a.b[6]=4,K(a,4);a.M|=8;a.F|=4}return 7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=P(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
P(a,c)))return c;c|=65536;break;case 6:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=P(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Ca=a.Ca<<8|f<<3&248|e);if(6===e&&!a.B&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32)return a.M|=4,a.b[6]=4,K(a,4);a.M|=8;a.F|=4}return c}
function S(a,b,d){var c;return b&56?(0<=(c=Xc(a,b,d))&&(c=Vc(a,c,d)),c):4194304+(b&7)}function T(a,b){var d;b&56?0<=(d=S(a,b,2))&&(d=J(a,d)):d=a.b[b&7];return d}function Yc(a,b){var d;b&56?0<=(d=S(a,b,3))&&(d=Q(a,d)):d=a.b[b&7]&255;return d}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.wb=function(a){this.A.complete=!0;var b=this.A.Jc=this.H&&Zc(this.H),d=a?this.A.lc?0:1:-1;this.A.lc=!1;this.V=this.N=a;this.Ra&256?(Pc(this),a=!1):a=!0;if(a){do{if(b){if($c(this.H,this.b[7],d)){this.la();break}d=1}var c,f,e,h,g;if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Zb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Ea){this.f[a].Ea--;this.Oa=2;break}if(this.f[a].qc){if(!this.f[a].qc()){this.f.splice(a,1);g--;continue}this.f[a].qc=null}this.f[a].Uc>c&&(c=this.f[a].Uc,
g=a)}c>(this.L&224)&&(0>g?K(this,160):(K(this,this.f[g].ed),this.f.splice(g,1)))}this.ba&57344||(this.Ca=0,this.Cb=this.b[7]);this.F=this.L&16;if(0<=(a=P(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=T(this,a>>6))&&(a&56?0<=(e=S(this,a,4))&&0<=I(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=T(this,a>>6))&&0<=(f=T(this,a))&&(this.j=this.w=this.C=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=T(this,a>>6))&&0<=(f=
T(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=T(this,a>>6))&&(a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f&~c,0<=I(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=T(this,a>>6))&&(a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f|c,0<=I(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=T(this,a>>6))&&(a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=c+f,0<=I(this,e,a)&&(this.j=this.w=this.C=a,this.u=
(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.w=this.C=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=Yc(this,a>>6))&&(a&56?0<=(e=S(this,a,5))&&0<=R(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Yc(this,a>>6))&&0<=(f=Yc(this,a))&&(a=c-f,this.j=this.w=this.C=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=Yc(this,a>>6))&&0<=(f=Yc(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=
Yc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f&~c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=Yc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f|c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=T(this,a>>6))&&(a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f-c,0<=I(this,e,a)&&(this.j=this.w=this.C=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.w=this.C=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=Xc(this,
a,0))&&(g=a>>6&7,0<=Uc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.C=this.u=0,-32768>a||32767<a)&&(this.C=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.C=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.w=
m.ta=function(a,b,d){var c=!1;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.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ta.call(this,a,b,d)}return c};
m.wa=function(a){if(this.Ja&&(a||!this.A.ia||this.A.tc)){for(a=0;a<this.b.length;a++)Lc(this,"R"+a,this.b[a]);a=Tc(this);Lc(this,"PS",a);Lc(this,"NF",a&8?1:0,1);Lc(this,"ZF",a&4?1:0,1);Lc(this,"VF",a&2?1:0,1);Lc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.A.ia&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};function Tc(a){return a.K&-16|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.C&65536?1:0)}
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].ed===c){0<e&&(a.f[e-1].Ea+=a.f[e].Ea);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Ea>b){a.f[e].Ea-=b;break}b-=a.f[e].Ea}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}m.$b=function(){return this.K=this.K&63728|(this.j&32768?8:0)|(this.w&65535?0:4)|(this.u&32768?2:0)|(this.C&65536?1:0)};
function Uc(a,b){a.j=b<<12;a.w=~b&4;a.u=b<<14;a.C=b<<16;if((b^a.K)&2048)for(var d=a.Ya.length;0<=--d;){var c=a.b[d];a.b[d]=a.Ya[d];a.Ya[d]=c}a.B=b>>14&3;d=a.K>>14&3;a.B!=d&&(a.ra[d]=a.b[6],a.b[6]=a.ra[a.B]);a.Oa=2;a.K=b}m.lc=function(a){Uc(this,a&63727|this.K&1808)};function ac(a){console.log("panic("+a+")")}
function J(a,b){var d,c,f=0;0>a.aa?a.aa=a.$b():a.B||(b=4,f=1);a.ba&57344||(a.Ca=63222,a.Ab=b);a.B=0;0<=(d=P(a,b|65536))&&0<=(c=P(a,b+2&65535|65536))&&(Uc(a,c&53247|a.aa>>2&12288),f&&(a.M|=4,a.b[6]=4),0<=Vc(a,a.aa)&&0<=Vc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.aa=-1}
function Wc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.hb[a.B];f=a.ja[a.B][c];e=(a.ja[a.B][c+16]<<6)+(b&8191)&4194303;if(a.Ia&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.Ia&32&&(e=a.wb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&ac(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.M|=32,J(a,4);if(e&1&&!(d&1))return a.M|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?
192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.ja[a.B][c]=f;if(4194170!==e||a.B)a.Kb=a.B,a.Wb=c;if(h){if(h&57344)return 0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Wb<<1),J(a,168);a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.F|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(d&1))return a.M|=64,J(a,4);return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ga(b):b}
function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.jc(b,d),d):b}function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Hb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.bc(b,d),d):b}function P(a,b){return L(a,Wc(a,b,2))}function Xc(a){var b=P(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
function Vc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Ca=a.Ca<<8|246);if(!a.B&&c<=a.Qa&&4<c){if(c<=a.Qa-32)return a.M|=4,a.b[6]=4,J(a,4);a.M|=8;a.F|=4}return 0<=(d=Wc(a,c|65536,4))?K(a,d,b):d}
function Yc(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.B&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32||65534<=a.b[6])return a.M|=4,a.b[6]=4,J(a,4);a.M|=8;a.F|=4}return 7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=P(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
P(a,c)))return c;c|=65536;break;case 6:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=P(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Ca=a.Ca<<8|f<<3&248|e);if(6===e&&!a.B&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32)return a.M|=4,a.b[6]=4,J(a,4);a.M|=8;a.F|=4}return c}
function S(a,b,d){var c;return b&56?(0<=(c=Yc(a,b,d))&&(c=Wc(a,c,d)),c):4194304+(b&7)}function T(a,b){var d;b&56?0<=(d=S(a,b,2))&&(d=L(a,d)):d=a.b[b&7];return d}function Zc(a,b){var d;b&56?0<=(d=S(a,b,3))&&(d=Q(a,d)):d=a.b[b&7]&255;return d}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.vb=function(a){this.A.complete=!0;var b=this.A.Jc=this.H&&$c(this.H),d=a?this.A.kc?0:1:-1;this.A.kc=!1;this.V=this.N=a;this.Ra&256?(Pc(this),a=!1):a=!0;if(a){do{if(b){if(ad(this.H,this.b[7],d)){this.la();break}d=1}var c,f,e,h,g;if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Xb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Ea){this.f[a].Ea--;this.Oa=2;break}if(this.f[a].qc){if(!this.f[a].qc()){this.f.splice(a,1);g--;continue}this.f[a].qc=null}this.f[a].Uc>c&&(c=this.f[a].Uc,
g=a)}c>(this.K&224)&&(0>g?J(this,160):(J(this,this.f[g].ed),this.f.splice(g,1)))}this.ba&57344||(this.Ca=0,this.Ab=this.b[7]);this.F=this.K&16;if(0<=(a=P(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=T(this,a>>6))&&(a&56?0<=(e=S(this,a,4))&&0<=K(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=T(this,a>>6))&&0<=(f=T(this,a))&&(this.j=this.w=this.C=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=T(this,a>>6))&&0<=(f=
T(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&~c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.w=this.C=a,this.u=
(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.w=this.C=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=Zc(this,a>>6))&&(a&56?0<=(e=S(this,a,5))&&0<=R(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(a=c-f,this.j=this.w=this.C=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=
Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f&~c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f|c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.w=this.C=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.w=this.C=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=Yc(this,
a,0))&&(g=a>>6&7,0<=Vc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.C=this.u=0,-32768>a||32767<a)&&(this.C=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.C=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.w=
a>>16|a,this.j=a>>16):(this.u=32768,this.w=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.w=this.j=0,this.u=32768,this.C=65536));break;case 29696:0<=(c=T(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.C=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.C=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.C=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.w=a);break;case 30208:if(0<=(c=T(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|
1];this.C=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.C=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.C=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=J(this,e=S(this,a,6)))&&(f^=this.b[a>>6&7],0<=I(this,e,f)&&(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=
1];this.C=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.C=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.C=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=L(this,e=S(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=
a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=U(this.b[7],a);break;case 512:this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 768:this.w&65535||(this.b[7]=U(this.b[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1280:(this.j&32768)!==(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1536:this.w&65535&&(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1792:this.w&
65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=U(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=U(this.b[7],a));break;case 33280:!(this.C&65536)&&this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=U(this.b[7],a));break;case 33536:if(this.C&65536||!(this.w&65535))this.b[7]=U(this.b[7],a);break;case 33792:this.u&32768||(this.b[7]=U(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=U(this.b[7],a));break;case 34304:this.C&65536||(this.b[7]=U(this.b[7],
a));break;case 34560:this.C&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:K(this,24);break;case 35072:K(this,28);break;default:switch(a&65472){case 64:0<=(h=Xc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f<<8|f>>8,0<=I(this,e,a)&&(this.j=this.w=f&65280,this.u=this.C=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,this.u=this.C=0);break;case 2560:a&56?0<=(e=S(this,a,4))&&0<=I(this,e,0)&&(this.j=this.C=this.u=this.w=0):this.j=this.C=
this.u=this.w=this.b[a&7]=0;break;case 2624:0<=(f=J(this,e=S(this,a,6)))&&(a=~f,0<=I(this,e,a)&&(this.j=this.w=a,this.C=65536,this.u=0));break;case 2688:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f+1,0<=I(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f-1,0<=I(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);
break;case 2816:0<=(f=J(this,e=S(this,a,6)))&&(a=-f,0<=I(this,e,a)&&(this.C=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=J(this,e=S(this,a,6)))&&(a=f+(this.C>>16&1),0<=I(this,e,a)&&(this.C=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=J(this,e=S(this,a,6)))&&(a=f-(this.C>>16&1),0<=I(this,e,a)&&(this.C=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.j=this.w=f,this.C=this.u=0);break;case 3072:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=(this.C&65536|f)>>1,0<=I(this,
e,a)&&(this.C=f<<16,this.j=this.w=a,this.u=a^this.C>>1)):(g=a&7,f=this.b[g],a=(this.C&65536|f)>>1,this.b[g]=a&65535,this.C=f<<16,this.j=this.w=a,this.u=a^this.C>>1);break;case 3136:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f<<1|this.C>>16&1,0<=I(this,e,a)&&(this.C=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.C>>16&1,this.b[g]=a&65535,this.C=this.j=this.w=a,this.u=a^f);break;case 3200:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f&32768|f>>1,0<=I(this,e,a)&&(this.C=f<<16,this.j=this.w=a,this.u=
this.j^this.C>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.C=f<<16,this.j=this.w=a,this.u=this.j^this.C>>1);break;case 3264:a&56?0<=(f=J(this,e=S(this,a,6)))&&(a=f<<1,0<=I(this,e,a)&&(this.C=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.C=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=P(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Xc(this,a,0))&&(61440!==(this.L&61440)&&
(h&=65535),this.B=this.L>>12&3,0<=(c=P(this,h))&&(this.B=this.L>>14&3,0<=Uc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.L>>2&12288)===(this.L&12288)?this.b[g]:this.ra[this.L>>12&3],0<=Uc(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=Wc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Xc(this,a,0))&&(h&=65535,this.B=this.L>>12&3,0<=(e=Vc(this,h,4))&&(this.B=this.L>>14&3,0<=I(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.L>>2&12288)===(this.L&12288)?this.b[g]=
f:this.ra[this.L>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=S(this,a,4))&&(a=-(this.j>>15&1),0<=I(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=S(this,a,5))&&0<=R(this,e,0)&&(this.j=this.C=this.u=this.w=0):(this.b[a&7]&=65280,this.j=this.C=this.u=this.w=0);break;case 35392:0<=(f=Q(this,e=S(this,a,7)))&&(a=~f,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.C=65536,this.u=0));break;case 35456:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^
a));break;case 34560:this.C&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:J(this,24);break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(h=Yc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.w=f&65280,this.u=this.C=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,this.u=this.C=0);break;case 2560:a&56?0<=(e=S(this,a,4))&&0<=K(this,e,0)&&(this.j=this.C=this.u=this.w=0):this.j=this.C=
this.u=this.w=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=S(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.w=a,this.C=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);
break;case 2816:0<=(f=L(this,e=S(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=S(this,a,6)))&&(a=f+(this.C>>16&1),0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=S(this,a,6)))&&(a=f-(this.C>>16&1),0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.j=this.w=f,this.C=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=(this.C&65536|f)>>1,0<=K(this,
e,a)&&(this.C=f<<16,this.j=this.w=a,this.u=a^this.C>>1)):(g=a&7,f=this.b[g],a=(this.C&65536|f)>>1,this.b[g]=a&65535,this.C=f<<16,this.j=this.w=a,this.u=a^this.C>>1);break;case 3136:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1|this.C>>16&1,0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.C>>16&1,this.b[g]=a&65535,this.C=this.j=this.w=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.C=f<<16,this.j=this.w=a,this.u=
this.j^this.C>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.C=f<<16,this.j=this.w=a,this.u=this.j^this.C>>1);break;case 3264:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.C=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=P(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Yc(this,a,0))&&(61440!==(this.K&61440)&&
(h&=65535),this.B=this.K>>12&3,0<=(c=P(this,h))&&(this.B=this.K>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]:this.ra[this.K>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(h&=65535,this.B=this.K>>12&3,0<=(e=Wc(this,h,4))&&(this.B=this.K>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]=
f:this.ra[this.K>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=S(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=S(this,a,5))&&0<=R(this,e,0)&&(this.j=this.C=this.u=this.w=0):(this.b[a&7]&=65280,this.j=this.C=this.u=this.w=0);break;case 35392:0<=(f=Q(this,e=S(this,a,7)))&&(a=~f,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.C=65536,this.u=0));break;case 35456:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^
f))<<8));break;case 35520:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=Q(this,e=S(this,a,7)))&&(a=-f,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+(this.C>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.C=a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-(this.C>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.C=a<<8,this.u=((a^f)&f)<<8));break;
case 35776:0<=(f=Yc(this,a))&&(this.j=this.w=f<<8,this.C=this.u=0);break;case 35840:0<=(f=Q(this,e=S(this,a,7)))&&(a=((this.C&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.C=f<<16,this.j=this.w=a<<8,this.u=this.j^this.C>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,7)))&&(a=f<<1|this.C>>16&1,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,7)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.C=f<<16,this.j=this.w=a<<8,this.u=this.j^this.C>>1));break;case 36032:0<=
(f=Q(this,e=S(this,a,7)))&&(a=f<<1,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=Xc(this,a,0))&&(this.B=this.L>>12&3,0<=(c=P(this,h|65536))&&(this.B=this.L>>14&3,0<=Uc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.L>>2&12288)===(this.L&12288)?this.b[g]:this.ra[this.L>>12&3],0<=Uc(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=(f=Wc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Xc(this,a,0))&&(this.B=this.L>>12&3,0<=(e=Vc(this,
h|65536,4))&&(this.B=this.L>>14&3,0<=I(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.L>>2&12288)===(this.L&12288)?this.b[g]=f:this.ra[this.L>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Wc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.L&49152||(this.L=this.L&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.C=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.C=65536);a&2&&(this.u=
32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.L?(this.M|=128,K(this,4)):(this.ga=3,Pc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Ea,this.f[a].Ea=0;0===g&&0===this.ga&&(this.ga=2,Pc(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.L&49152||(Rc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=P(this,e|65536))&&(e=e+2&65535,0<=(c=P(this,e|65536))&&(this.b[6]=
e+2&65535,c&=63743,this.L&49152&&(c=c&63519|this.L&63712),this.b[7]=h,this.Ab(c),this.F&=-17,2===a&&(this.F|=this.L&16)));break;default:K(this,8)}}}}}}this.F&&(this.F&2?K(this,168):this.F&4?K(this,4):this.F&16&&K(this,12),this.F=0)}while(0<this.N)}return this.A.complete?this.V-this.N:void 0===this.A.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Qc(c);db(c,d)}});
function ad(a){u.call(this,"ROM",a,ad);this.i=null;this.J=a.addr;this.B=a.size;this.N=a.writable;this.F=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=ia(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){bd(d,a,b,e)})}}w(ad);ad.prototype.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;cd(this)};
ad.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.B,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.rc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({gd:b,D:d,Rc:c,Ka:f,oc:e})}delete this.Ka}return!0};ad.prototype.Ma=function(){return!0};
function bd(a,b,d,c){if(c)a.na("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.pc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.na("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);cd(a)}}
function cd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.G){a.B||(a.B=a.i.length);if(a.i.length!=a.B)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.G,b,a.B,a.N?1:hc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].zb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.B,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
h-=f.za;f=e.G;e=e.B;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.za}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ad(c);db(c,d)}});function dd(a){u.call(this,"RAM",a,dd);this.F=a.addr;this.B=a.size;this.i=!1}w(dd);m=dd.prototype;m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
m.reset=function(){!this.i&&this.B&&Cb(this.G,this.F,this.B,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new dd(c);db(c,d)}});function ed(a){u.call(this,"Keyboard",a,ed,65536);C(this)}w(ed);ed.prototype.ta=function(){return!1};ed.prototype.Wa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function fd(a){u.call(this,"Debugger",a,fd);this.va=a.base||16;this.Z=this.Ja=this.P=0;this.aa=!1;this.I=-1;this.F=[];this.fa={}}w(fd);var gd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function hd(a,b,d,c){if(d)if(b){0>a.I&&a.F.length&&(a.I=0);if(0>a.I||b!=a.F[a.I])a.F.splice(0,0,b),a.I=0;a.I--}else a.aa?b="end":b=a.F[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(qa(b.substring(d,e))),d=e+1}}return a}
function id(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
case 35776:0<=(f=Zc(this,a))&&(this.j=this.w=f<<8,this.C=this.u=0);break;case 35840:0<=(f=Q(this,e=S(this,a,7)))&&(a=((this.C&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.C=f<<16,this.j=this.w=a<<8,this.u=this.j^this.C>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,7)))&&(a=f<<1|this.C>>16&1,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,7)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.C=f<<16,this.j=this.w=a<<8,this.u=this.j^this.C>>1));break;case 36032:0<=
(f=Q(this,e=S(this,a,7)))&&(a=f<<1,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=Yc(this,a,0))&&(this.B=this.K>>12&3,0<=(c=P(this,h|65536))&&(this.B=this.K>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]:this.ra[this.K>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(this.B=this.K>>12&3,0<=(e=Wc(this,
h|65536,4))&&(this.B=this.K>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]=f:this.ra[this.K>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Xc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.K&49152||(this.K=this.K&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.C=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.C=65536);a&2&&(this.u=
32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.K?(this.M|=128,J(this,4)):(this.ga=3,Pc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Ea,this.f[a].Ea=0;0===g&&0===this.ga&&(this.ga=2,Pc(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.K&49152||(Rc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=P(this,e|65536))&&(e=e+2&65535,0<=(c=P(this,e|65536))&&(this.b[6]=
e+2&65535,c&=63743,this.K&49152&&(c=c&63519|this.K&63712),this.b[7]=h,Uc(this,c),this.F&=-17,2===a&&(this.F|=this.K&16)));break;default:J(this,8)}}}}}}this.F&&(this.F&2?J(this,168):this.F&4?J(this,4):this.F&16&&J(this,12),this.F=0)}while(0<this.N)}return this.A.complete?this.V-this.N:void 0===this.A.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Qc(c);db(c,d)}});
function bd(a){u.call(this,"ROM",a,bd);this.i=null;this.J=a.addr;this.B=a.size;this.N=a.writable;this.F=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=ia(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){cd(d,a,b,e)})}}w(bd);bd.prototype.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;dd(this)};
bd.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.B,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.rc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({gd:b,D:d,Rc:c,Ka:f,oc:e})}delete this.Ka}return!0};bd.prototype.Ma=function(){return!0};
function cd(a,b,d,c){if(c)a.na("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.pc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.na("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);dd(a)}}
function dd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.G){a.B||(a.B=a.i.length);if(a.i.length!=a.B)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.G,b,a.B,a.N?1:hc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.B,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
h-=f.za;f=e.G;e=e.B;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.za}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new bd(c);db(c,d)}});function ed(a){u.call(this,"RAM",a,ed);this.F=a.addr;this.B=a.size;this.i=!1}w(ed);m=ed.prototype;m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
m.reset=function(){!this.i&&this.B&&Cb(this.G,this.F,this.B,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function fd(a){u.call(this,"Keyboard",a,fd,65536);C(this)}w(fd);fd.prototype.ta=function(){return!1};fd.prototype.Wa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new fd(c);db(c,d)}});function gd(a){u.call(this,"Debugger",a,gd);this.va=a.base||16;this.Z=this.Ja=this.P=0;this.aa=!1;this.I=-1;this.F=[];this.fa={}}w(gd);var hd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function id(a,b,d,c){if(d)if(b){0>a.I&&a.F.length&&(a.I=0);if(0>a.I||b!=a.F[a.I])a.F.splice(0,0,b),a.I=0;a.I--}else a.aa?b="end":b=a.F[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(qa(b.substring(d,e))),d=e+1}}return a}
function jd(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0}
function jd(a,b,d){var c;if(b){b=kd(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=qa(n);if(!n){e=!0;break}n=ld(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&gd[n]<gd[k[k.length-1]]&&id(g,k,1);k.push(n);b=b.substr(p+q)}id(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&md(a,null,
c))}return c}function kd(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=jd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.Z-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
function ld(a,b,d,c){var f;null!=b?(f=a.fa[b],null==f&&(f=aa(b,a.va)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function md(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
function nd(a,b){if(b)return md(a,b,a.fa[b]);var d=0;for(b in a.fa)md(a,b,a.fa[b]),d++;return 0<d}function X(a,b,d){switch(a.va){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
function od(a){fd.call(this,a);this.V=Y();this.Bb=Y();this.$=Y();this.N=[];this.B=this.W=this.J=[];pd(this);this.xa=0;qd(this);this.Ra=[];rd(this,a.messages);this.lb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return sd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return sd(b,a)})}w(od,fd);
var td={"?":"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"},ud="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(" "),
vd={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 kd(a,b,d){var c;if(b){b=ld(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=qa(n);if(!n){e=!0;break}n=md(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&hd[n]<hd[k[k.length-1]]&&jd(g,k,1);k.push(n);b=b.substr(p+q)}jd(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&nd(a,null,
c))}return c}function ld(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=kd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.Z-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
function md(a,b,d,c){var f;null!=b?(f=a.fa[b],null==f&&(f=aa(b,a.va)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function nd(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
function od(a,b){if(b)return nd(a,b,a.fa[b]);var d=0;for(b in a.fa)nd(a,b,a.fa[b]),d++;return 0<d}function X(a,b,d){switch(a.va){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
function pd(a){gd.call(this,a);this.V=Y();this.zb=Y();this.$=Y();this.N=[];this.B=this.W=this.J=[];qd(this);this.xa=0;rd(this);this.Ra=[];sd(this,a.messages);this.lb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return td(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return td(b,a)})}w(pd,gd);
var ud={"?":"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"},vd="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(" "),
wd={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]}};m=od.prototype;
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=uc(a,"messages"))&&rd(this,a);this.sc=vd;wd(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(xd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.D,8)+" "+r(n.Vb,4,
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]}};m=pd.prototype;
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=uc(a,"messages"))&&sd(this,a);this.sc=wd;xd(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(yd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.D,8)+" "+r(n.Tb,4,
!0)+" "+r(n.size,4,!0)+" "+l),d!=gc&&(d=-1),l=0);a+=c.G.za;g++}}});C(this)};
m.ta=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ua=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",sd(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.F.length-1&&(b=c.F[++c.I])):40==a.keyCode&&(0<c.I?b=c.F[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Ka(d,function(){if(c.ua){var a=c.ua.value;
c.ua.value="";sd(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.wb(a?1:0),pb(c,!1));return b}),!0}return!1};m.Ub=function(){this.ua&&this.ua.focus()};function Z(a){a=a&&a.D;null==a&&(a=-1);return a}m.Jb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Qb(c&d.G,c),b&&yd(a,b));return d};m.Ga=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.G,c),b&&yd(a,b));return d};
m.cc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].zb(c&f.G,b&255,c);d&&yd(a,d);M(this.f,!0)}};m.kc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].mc(e,b&65535,c):(f.R[h++].zb(e,b&255,c),f.R[h&f.B].zb(0,b>>8&255,c+1));d&&yd(a,d);M(this.f,!0)}};function Y(a){return{D:a,Fa:!1}}function zd(a){return[a.D,a.Fa]}function Ad(a){return{D:a[0],Fa:a[1]}}
function xd(a,b,d){var c;d=(d?a.V:a.Bb).D;if(void 0!==b){c=b=kd(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=jd(a,b,void 0)}null!=d&&(c=Y(d));return c}function Bd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Hc=hd(a,b.Cc=d[2]))}function yd(a,b){null!=a.D&&(a.D+=b||1)}
function rd(a,b){a.H=a;a.ha=a.Ic=536870912;a.ya=null;a.Da=[];var d=hd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function wd(a,b){for(var d in F)if(64==F[d]){a.Ra[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).D));if(this.ha&1073741824)this.Da.push(a);else if(!this.ya||a!=this.ya)if(this.ya=a,this.ha&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Pc(d);d.$=0;M(d)}};m.Kb=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.lb){var a=this.lb;this.lb=null;sd(this,a)}};
function qd(a){var b;if(Zc(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.qa=0;a.g("instruction history buffer allocated")}if(!a.ga||!a.ga.length)for(a.ga=Array(256),b=0;b<a.ga.length;b++)a.ga[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.qa=0,a.T=[],a.ga=[]}m.kb=function(a){if(!Cd(this))return!1;this.f.kb(a);return!0};
m.wb=function(a,b,d){if(!Cd(this))return!1;this.P=0;a||Zc(this)&&$c(this,this.f.b[7],0);try{var c=this.f.wb(a);0<c&&(this.P+=c,Nc(this.f,c,!0),Jc(this.f,c),this.Z++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&M(this.f);this.wa(b||!1);return 0<this.P};m.la=function(a){this.f&&this.f.la(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.da?ae(this):be(this)};
function Cd(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.ea?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){qd(this);this.Z=this.Ja=0;this.ya=null;this.P=0;this.V=Y(this.f.b[7]);this.A.ia=!1;ce(this);a||this.wa()};
m.save=function(){var a=new Sc(this);N(a,0,zd(this.V));N(a,1,zd(this.$));N(a,2,[this.F,this.aa,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Ad(a[b++]),this.$=Ad(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.aa=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.da||this.g("running");this.A.ia=!0;this.Lc=a;this.Nc=b};
m.stop=function(a,b){if(this.A.ia){this.A.ia=!1;this.P=b-this.Nc;if(!this.da){var d="stopped";if(this.P){var c=a-this.Lc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";Zc(this)&&(d+=this.Z+" opcodes, ",this.Ja-=this.Z,this.Z=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Ub();ce(this,this.f.b[7])}};function Zc(a){return 1<a.B.length||!!a.xa}
function $c(a,b,d){var c=a.f;if(0<d&&(a.xa&&!--a.xa||pc(a,b,1,a.B)))return!0;0<=d&&a.ga.length&&(a.Z++,null!=Gb(a.G,b)&&(b=a.T[a.qa],b.D=c.b[7],b.Fa=!1,++a.qa==a.T.length&&(a.qa=0)));return!1}function pd(a){var b,d;a.B=["bp"];if(void 0!==a.W)for(b=1;b<a.W.length;b++){d=a.W[b];var c=a.G;qc(c.R[Z(d)>>>c.X],!1)}a.W=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,qc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Gb=0}
m.cb=function(a,b,d){var c=!0;d||de(this,a,b,!1,!0);if(a!=this.B){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.D)),c=!1;else{var e=this.G;e.R[f>>>e.X].cb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(ee(this,a,a.length-1,"set"),qd(this)));return c};function de(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Fa)){e=!0;g.Fa||f||ee(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.G,qc(c.R[d>>>c.X],b==a.J));g.Fa||qd(a);break}}return e}
function fe(a,b){for(var d=1;d<b.length;d++)ee(a,b,d);return b.length-1}function ee(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.D)+(c?" "+c:d.Cc?' "'+d.Cc+'"':""))}function ce(a,b){if(void 0!==b)pc(a,b,1,a.B,!0),a.da=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.Fa){if(!de(a,a.B,c,!0))break;d=0}}}
function pc(a,b,d,c,f){var e=!1;if(!a.Gb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(de(a,c,g,!0),f=!0);if(n=g.Hc){for(var e=!1,p=0;p<n.length;p++)if(!ge(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.f.A.ia||(e=!0)}if(e){f||ee(a,c,h,"hit");break}}}a.Gb--;return e}
function he(a,b,d,c){var f=Y(b.D),e=a.Ga(b,2),h,g;for(g in a.sc)if(h=a.sc[g][e&g])break;h||(h=[0]);g="";for(var k=ud[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.D+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.D-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch((y&56)>>3){case 0:x=ie(B);break;
case 1:x="@"+ie(B);break;case 2:7>B?x="("+ie(B)+")+":(D=q.Ga(p,2),x="#"+X(q,D));break;case 3:7>B?x="@("+ie(B)+")+":(D=q.Ga(p,2),x="@#"+X(q,D));break;case 4:x="-("+ie(B)+")";break;case 5:x="@-("+ie(B)+")";break;case 6:D=q.Ga(p,2);x=X(q,D)+"("+ie(B)+")";7==B&&(x=[x,X(q,D+p.D&65535)]);break;case 7:D=q.Ga(p,2),x="@"+X(q,D)+"("+ie(B)+")",7==B&&(x=[x,X(q,D+p.D&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.D)+":";
if(-1!==f.D&&-1!==b.D){do if(e+=" "+X(a,a.Ga(f,2)),null==f.D)break;while(f.D!=b.D)}h+=pa(e,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.nb?h+("cycles="+Kc(a.f).toString()+" cs="+r(a.f.Nb)):h+(null!=c?"="+c.toString():""));return h}function je(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
function ie(a){return 6>a?"R"+a:6==a?"SP":"PC"}function ke(a,b){var d="",c=a.f;8>b?(d=ie(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.ra[b-16]):20==b&&(d="PS="+X(a,Tc(c)));d&&(d+=" ");return d}m.rc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function le(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.D>>>0,g=e.Rc;if(f>=h&&f<h+g){f=ra(e.oc,[f-h],a.rc);0<=f?me(a,b,f,c):d&&(f=~f,me(a,b,f-1,c),me(a,b,f,c));break}}return c}
function me(a,b,d,c){var f={},e=a.N[b].oc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}function ne(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return nd(a)||a.g("no variables"),!0;if(!d[2])return nd(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;var c=jd(a,d[3]);return void 0!==c?(a.fa[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function oe(a,b,d){var c=null;if(b=xd(a,b,!0)){var f=le(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.D-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.D)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
function ae(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=jd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.u=
g?32768:0;break;case "CF":c.C=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}M(c);a.g("updated registers:")}e="";for(f=0;6>f;f++)e+=ke(a,f);e=e+"\n"+(ke(a,6)+ke(a,7)+ke(a,20));e+=je(a,"T")+je(a,"N")+je(a,"Z")+je(a,"V")+je(a,"C");a.g(e);d&&(a.V=Y(c.b[7]),be(a,X(a,a.V.D)))}}function pe(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):jd(a,b,!0)}
function qe(a,b,d){var c="t"!=b;d=ld(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return pb(a,!0)&&a.wb(f,c,!1)},function(){M(a.f);pb(a,!1)})}
function be(a,b,d,c){if(b=xd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=xd(a,d,!0);if(!c||c.D<b.D)return;f=c.D-b.D;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=qb(a,!1)||a.da?a.P:null;var h=null!=e?"cycles":null,g=le(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=he(a,b,h,e);a.g(e);a.V=b;f-=b.D-k;d++}}}
function ge(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.aa&&(a.g("ended assemble at "+X(a,a.$.D)),a.V=a.$,a.aa=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ya=null;if(rb(a)&&0<b.length){a.aa&&(b="a "+X(a,a.$.D)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=xd(a,e[1],!0);if(n)if(a.$=
n,void 0===e[2])a.g("begin assemble at "+X(a,n.D)),a.aa=!0,M(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.cc(n,p[q],1);a.g(he(a,a.$))}}break;case "b":a:{var D=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var B=D.charAt(1);if("l"==B){var Fa=0,Fa=Fa+fe(a,a.B),Fa=Fa+fe(a,a.W);(Fa+=fe(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.xa=ld(a,x),a.g("break after "+a.xa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=xd(a,x,!0),!V))break a;"c"==B?null==V.D?(pd(a),a.g("all breakpoints cleared")):de(a,a.B,V)||de(a,a.W,V)||de(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.D)):null!=V.D&&(Bd(a,V,y),"p"==B?a.cb(a.B,V):"r"==B?a.cb(a.W,V):"w"==B?a.cb(a.J,V):
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.eb&&(a.eb.value="");break;case "d":a:{var Ga,Ha=e[0],da=e[1],ta=e[2],Ke=e[3];if("?"==da){var ea="";for(Ga in F)a.Ra[Ga]&&(ea&&(ea+=","),ea+=Ga);ea+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ea.length&&a.g("dump extension commands:\n\t"+
ea)}else if("state"==da){var Dd=re(a.i,!0);"console"==ta?console.log(Dd):(a.eb&&(a.eb.value=""),a.g(Dd))}else if("symbols"==da)for(var wc=0;wc<a.N.length;wc++){var xc=a.N[wc],Ia;for(Ia in xc.Ka)if("."!=Ia.charAt(0)){var Ed=xc.Ka[Ia].o;if(void 0!==Ed){var Fd=xc.Ka[Ia].l;Fd&&(Ia=Fd);a.g(X(a,Ed)+" "+Ia)}}}else{if("d"==Ha){for(Ga in F)if(e[1]==Ga){var Gd=a.Ra[Ga];Gd?(e.shift(),e.shift(),Gd(e)):a.g("no dump registered for "+da);break a}da||(Ha=a.Pc||"db")}else a.Pc=Ha;if("dh"==Ha){var Hd=da,Id=ta,Jd="",
Kd=0,O=a.qa,fa=a.T;if(fa.length){var W=+Hd||a.Wb,Ja=+Id||10;isNaN(W)?W=Ja:Jd="more ";W>fa.length&&(a.g("note: only "+fa.length+" available"),W=fa.length);O-=W;0>O&&(null==fa[fa.length-1].D?(W=O+W,O=0):O+=fa.length);var yc=[];"call"==Id&&(Ja=1E5,yc=["CALL"]);for(void 0!==Hd&&a.g(W+" instructions earlier:");0<Ja&&O!=a.qa;){var Ld=fa[O++];if(null==Ld.D)break;var fb=Y(Ld.D),Le=W--,Md=he(a,fb,"history",Le);(!yc.length||0<=Md.indexOf(yc[0]))&&a.g(Md);fb.fc&&(O+=fb.fc,Ja-=fb.fc,W-=fb.fc);O>=fa.length&&(O=
0);a.Wb=W;Kd++;Ja--}}Kd||(a.g("no "+Jd+"history available"),a.Wb=void 0)}else{var Ib=xd(a,da);if(Ib){var Jb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Ke),Jb=ld(a,ta)>>>0,65536<Jb&&(Jb=65536));for(var ua="",Kb="dd"==Ha?4:"dw"==Ha?2:1,Lb=Kb*Jb||128,Me=Lb+15>>4||1;Me--&&0<Lb;){var Mb=0,zc=0,gb,hb="",Ac="",da=X(a,Ib.D);for(gb=16;0<gb&&0<Lb;gb--){var Nb=a.Jb(Ib,1),Mb=Mb|Nb<<(zc++<<3);zc==Kb&&(hb+=r(Mb,2*Kb),hb+=1==Kb?9==gb?"-":" ":" ",Mb=zc=0);Ac+=32<=Nb&&128>Nb?String.fromCharCode(Nb):".";Lb--}ua&&
(ua+="\n");ua+=da+" "+hb+(0==gb?" "+Ac:"")}ua&&a.g(ua);a.Bb=Ib}}}}break;case "e":if("else"==e[0])break;var Ob=1,Nd=255,Od=a.Jb,Pd=a.cc;"ew"==e[0]&&(Ob=2,Nd=65535,Od=a.Ga,Pd=a.kc);var Qd=Ob<<1,Rd=e[1];if(null==Rd)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Pb=xd(a,Rd);if(Pb)for(var Qb=2;Qb<e.length;Qb++){var ib=jd(a,e[Qb]);if(void 0===ib){a.g("unrecognized value: "+e[Qb]);break}ib&~Nd&&a.g("warning: "+r(ib)+" exceeds "+
Ob+"-byte value");var Ne=Od.call(a,Pb);a.g("changing "+X(a,Pb.D)+" from "+r(Ne,Qd,!0)+" to "+r(ib,Qd,!0));Pd.call(a,Pb,ib,Ob)}}break;case "g":a:{var Sd=e[1],Oe=b;if(void 0!==Sd){var Bc=xd(a,Sd,!0);if(!Bc)break a;Bd(a,Bc,Oe);a.cb(a.B,Bc,!0)}a.kb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Cc;if(a.A.ia)Cc="halting",a.la();else{if(qb(a,!0))break a;Cc="already halted"}d||a.g(Cc)}break;case "i":if("if"==e[0]){var Dc;var jb=b.substr(2),jb=qa(jb);jd(a,jb)?(d||a.g("true: "+
jb),Dc=!0):(d||a.g("false: "+jb),Dc=!1);Dc||(c=!1)}break;case "k":var Pe=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ec=0,Td=Y(),kb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,kb.D));10>Ec;){for(var va=null,Qe=256;65536>kb.D>>>0;){Td.D=a.Ga(kb,2);if(null==kb.D||!Qe--)break;for(var Re=a,Rb=Td,Ud=null,lb=Rb.D,Vd=lb,Fc=1;6>=Fc&&lb;Fc++){if(2<Fc){Rb.D=lb;var Sb=he(Re,Rb);if(0<=Sb.indexOf("JSR")){var Wd=Sb.indexOf(" ");if(lb+
(Sb.indexOf(" ",Wd+1)-Wd-1)/2==Vd){Ud=Sb;break}}}lb--}Rb.D=Vd;if(va=Ud)break}if(!va||null==va)break;var Xd=null;if("ks"==Pe){var Yd=va.match(/[0-9A-F]+$/);Yd&&(Xd=oe(a,Yd[0]))}va=pa(va,50)+" ;"+(Xd||"stack="+X(a,kb.D));a.g(va);Ec++}Ec||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){oe(a,e[1],!0);break}break;case "m":a:{var ga,ha=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var na=0;if("all"==E)na=1878917119,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==
E&&(E="key");"kbd"==E&&(E="keyboard");for(ga in F)if(E==ga){na=F[ga];ha=!!(a.ha&na);break}if(!na){a.g("unknown message category: "+E);break a}}if(na)if("on"==e[2])a.ha|=na,ha=!0;else if("off"==e[2]&&(a.ha&=~na,ha=!1,1073741824==na)){for(var Gc=0;Gc<a.Da.length;Gc++)a.g(a.Da[Gc]);a.Da=[]}}var Se=0,oa="";for(ga in F)if(!E||E==ga){var Te=!!(a.ha&F[ga]);if(null===ha||ha==Te)oa&&(oa+=","),++Se%10||(oa+="\n\t"),"key"==ga&&(ga="keys"),oa+=ga}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(oa||"none"));qd(a)}break;case "p":if("print"==e[0]){pe(a,b.substr(5));break}var Ue="pr"==e[0]?1:0;if(a.da)a.g("step in progress");else{var Zd=Y(a.f.b[7]);a.Jb(Zd);a.da?(a.cb(a.B,Zd,!0),a.kb()||(a.i&&a.i.Ub(),a.da=0)):qe(a,Ue?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}ae(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var mb=+e[2];if(8==mb||10==mb||16==mb)a.va=mb;else{a.g("invalid base: "+mb);
break}}a.g("default base: "+a.va);break;case "cs":var nb;void 0!==e[3]&&(nb=+e[3]);switch(e[2]){case "int":a.f.pb=nb;break;case "start":a.f.Ob=nb;break;case "stop":a.f.qb=nb;break;default:a.g("unknown cs option");break a}void 0!==nb&&Ic(a.f);a.g("checksums "+(a.f.A.nb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Mc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.gb.toFixed(2)+"Mhz")+" ("+a.f.ib+"x)");break;case "?":a.g("debugger options:");
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":qe(a,e[0],e[1]);break;case "u":be(a,e[1],e[2],8);break;case "v":if("var"==e[0]){ne(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.wc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){pe(a,b.substr(1));break}var ob="commands:",Hc;for(Hc in td)ob+="\n"+pa(Hc,9)+td[Hc];Zc(a)||(ob+="\nnote: history disabled if no exec breakpoints");a.g(ob);break;default:a.g("unknown command: "+b),c=!1}}}catch($d){a.g("debugger error: "+($d.stack||$d.message)),c=!1}return c}function sd(a,b,d){b=hd(a,b,d);for(var c in b)if(!ge(a,b[c]))return!1;return!0}
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new od(c);db(c,d)}});
function se(a,b,d){u.call(this,"Computer",a,se,67108864);this.A.ea=!1;te(this,b);this.W=uc(this,"autoPower",a);this.F=0;this.fa=a.busWidth||a.buswidth;this.i=ue;this.T=null;this.N=this.aa=!1;this.url=uc(this,"url")||"";(Math.random()+.1).toString(36);this.B=ve(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new wb({id:this.pc+".bus",busWidth:this.fa},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.eb)for(b=0;b<f.length;b++)c=f[b],c.na=this.I.na,c.g=
this.I.g,c.eb=this.I.eb;this.g("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.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Wa&&c.Wa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=uc(this,"state")||(e=!0,a.state))b=this.Z=a,e||(this.N=!0,this.i=ue),this.i&&
(this.V=new Sc(this,"1.30.0"),we(this.V)?b=null:delete this.V);!b&&this.i&&(b=xe(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.aa=!0);C(h)})}else C(this);this.O.power||(this.W=!0);!d&&this.W&&ye(this,this.Pb)}else t("Unable to find CPU component")}w(se);var ue=0;
function te(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function uc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function ye(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){ye(a,b,d)});return}}b.call(a,d)}
function ze(a,b){var d=new Sc(a,"1.30.0","validate");if(we(d)&&Ae(d)){var c=Be(d,"timestamp"),f=b?Be(b,"timestamp"):"unknown";c!=f&&(a.na("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=se.prototype;
m.Pb=function(a){void 0===a&&(a=this.i||(this.T?1:ue));if(!this.F){this.F++;var b=!1,d=!1;this.$=!1;var c=this.V||new Sc(this,"1.30.0");if(-1==a)b=!0;else if(a>ue){if(we(c,this.T)){this.J=new Sc(this,"1.30.0","failsafe");we(this.J)&&(Ce(this,c),a=2,De(this.J));N(this.J,"timestamp",wa());Ee(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Ae(c)){var e=Be(c,"code"),h=Be(c,"data");e&&("ok"==e?we(c,h):("error"==
e&&"no machine state"!=h?(this.na("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(e+": "+h),De(c),we(c)?(d=Ae(c),f=!0):d=!1))}f&&ze(this,d?c:null)}else 2==a&&c.clear()}else ze(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=Fe(this,h,c,b,d));b=[c,a,d];-1!=a?ye(this,this.uc,b):this.uc(b)}};
function Fe(a,b,d,c,f){if(!b.A.ea){b.A.ea=!0;if(b.Na){var e=null;f&&((e=Be(d,b.id))||(e=Be(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.Z&&!a.aa?(d.clear(),a.i=ue,window&&window.location.reload()):a.$=!0,b.Na(null),f=!1)}if(!c&&b.nc)for(a=b.nc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
m.uc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ga=!0;this.A.ea=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(Fe(this,this.f,b,d,a),this.f.Fb());this.$&&(Ce(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0};
function Ce(a,b){if(ya("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 d=a.B||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
function re(a,b,d){var c,f="none";if(a.F)return null;a.F--;var e=new Sc(a,"1.30.0"),h=new Sc(a,"1.30.0","validate"),g=wa();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.la(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.A.ea=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ea&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)),
d&&(l.A.ea=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.B&&Ge(a,a.B,e.toString()),Ee(h)&&Ee(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.A.ea=!1,b=a.O.power)&&(b.textContent="Power");a.F=0;return f}
m.ta=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ua=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",td(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.F.length-1&&(b=c.F[++c.I])):40==a.keyCode&&(0<c.I?b=c.F[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Ka(d,function(){if(c.ua){var a=c.ua.value;
c.ua.value="";td(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.vb(a?1:0),pb(c,!1));return b}),!0}return!1};m.Sb=function(){this.ua&&this.ua.focus()};function Z(a){a=a&&a.D;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Ob(c&d.G,c),b&&zd(a,b));return d};m.Ga=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.G,c),b&&zd(a,b));return d};
m.bc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&zd(a,d);M(this.f,!0)}};m.jc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].mc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.B].yb(0,b>>8&255,c+1));d&&zd(a,d);M(this.f,!0)}};function Y(a){return{D:a,Fa:!1}}function Ad(a){return[a.D,a.Fa]}function Bd(a){return{D:a[0],Fa:a[1]}}
function yd(a,b,d){var c;d=(d?a.V:a.zb).D;if(void 0!==b){c=b=ld(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=kd(a,b,void 0)}null!=d&&(c=Y(d));return c}function Cd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Hc=id(a,b.Cc=d[2]))}function zd(a,b){null!=a.D&&(a.D+=b||1)}
function sd(a,b){a.H=a;a.ha=a.Ic=536870912;a.ya=null;a.Da=[];var d=id(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function xd(a,b){for(var d in F)if(64==F[d]){a.Ra[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).D));if(this.ha&1073741824)this.Da.push(a);else if(!this.ya||a!=this.ya)if(this.ya=a,this.ha&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Pc(d);d.$=0;M(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.lb){var a=this.lb;this.lb=null;td(this,a)}};
function rd(a){var b;if($c(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.qa=0;a.g("instruction history buffer allocated")}if(!a.ga||!a.ga.length)for(a.ga=Array(256),b=0;b<a.ga.length;b++)a.ga[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.qa=0,a.T=[],a.ga=[]}m.kb=function(a){if(!Dd(this))return!1;this.f.kb(a);return!0};
m.vb=function(a,b,d){if(!Dd(this))return!1;this.P=0;a||$c(this)&&ad(this,this.f.b[7],0);try{var c=this.f.vb(a);0<c&&(this.P+=c,Nc(this.f,c,!0),Jc(this.f,c),this.Z++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&M(this.f);this.wa(b||!1);return 0<this.P};m.la=function(a){this.f&&this.f.la(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.da?be(this):ce(this)};
function Dd(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.ea?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){rd(this);this.Z=this.Ja=0;this.ya=null;this.P=0;this.V=Y(this.f.b[7]);this.A.ia=!1;de(this);a||this.wa()};
m.save=function(){var a=new Sc(this);N(a,0,Ad(this.V));N(a,1,Ad(this.$));N(a,2,[this.F,this.aa,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Bd(a[b++]),this.$=Bd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.aa=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.da||this.g("running");this.A.ia=!0;this.Lc=a;this.Nc=b};
m.stop=function(a,b){if(this.A.ia){this.A.ia=!1;this.P=b-this.Nc;if(!this.da){var d="stopped";if(this.P){var c=a-this.Lc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";$c(this)&&(d+=this.Z+" opcodes, ",this.Ja-=this.Z,this.Z=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Sb();de(this,this.f.b[7])}};function $c(a){return 1<a.B.length||!!a.xa}
function ad(a,b,d){var c=a.f;if(0<d&&(a.xa&&!--a.xa||pc(a,b,1,a.B)))return!0;0<=d&&a.ga.length&&(a.Z++,null!=Gb(a.G,b)&&(b=a.T[a.qa],b.D=c.b[7],b.Fa=!1,++a.qa==a.T.length&&(a.qa=0)));return!1}function qd(a){var b,d;a.B=["bp"];if(void 0!==a.W)for(b=1;b<a.W.length;b++){d=a.W[b];var c=a.G;qc(c.R[Z(d)>>>c.X],!1)}a.W=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,qc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
m.cb=function(a,b,d){var c=!0;d||ee(this,a,b,!1,!0);if(a!=this.B){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.D)),c=!1;else{var e=this.G;e.R[f>>>e.X].cb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(fe(this,a,a.length-1,"set"),rd(this)));return c};function ee(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Fa)){e=!0;g.Fa||f||fe(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.G,qc(c.R[d>>>c.X],b==a.J));g.Fa||rd(a);break}}return e}
function ge(a,b){for(var d=1;d<b.length;d++)fe(a,b,d);return b.length-1}function fe(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.D)+(c?" "+c:d.Cc?' "'+d.Cc+'"':""))}function de(a,b){if(void 0!==b)pc(a,b,1,a.B,!0),a.da=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.Fa){if(!ee(a,a.B,c,!0))break;d=0}}}
function pc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(ee(a,c,g,!0),f=!0);if(n=g.Hc){for(var e=!1,p=0;p<n.length;p++)if(!he(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.f.A.ia||(e=!0)}if(e){f||fe(a,c,h,"hit");break}}}a.Eb--;return e}
function ie(a,b,d,c){var f=Y(b.D),e=a.Ga(b,2),h,g;for(g in a.sc)if(h=a.sc[g][e&g])break;h||(h=[0]);g="";for(var k=vd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.D+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.D-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch((y&56)>>3){case 0:x=je(B);break;
case 1:x="@"+je(B);break;case 2:7>B?x="("+je(B)+")+":(D=q.Ga(p,2),x="#"+X(q,D));break;case 3:7>B?x="@("+je(B)+")+":(D=q.Ga(p,2),x="@#"+X(q,D));break;case 4:x="-("+je(B)+")";break;case 5:x="@-("+je(B)+")";break;case 6:D=q.Ga(p,2);x=X(q,D)+"("+je(B)+")";7==B&&(x=[x,X(q,D+p.D&65535)]);break;case 7:D=q.Ga(p,2),x="@"+X(q,D)+"("+je(B)+")",7==B&&(x=[x,X(q,D+p.D&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.D)+":";
if(-1!==f.D&&-1!==b.D){do if(e+=" "+X(a,a.Ga(f,2)),null==f.D)break;while(f.D!=b.D)}h+=pa(e,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.nb?h+("cycles="+Kc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ke(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
function je(a){return 6>a?"R"+a:6==a?"SP":"PC"}function le(a,b){var d="",c=a.f;8>b?(d=je(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.ra[b-16]):20==b&&(d="PS="+X(a,Tc(c)));d&&(d+=" ");return d}m.rc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function me(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.D>>>0,g=e.Rc;if(f>=h&&f<h+g){f=ra(e.oc,[f-h],a.rc);0<=f?ne(a,b,f,c):d&&(f=~f,ne(a,b,f-1,c),ne(a,b,f,c));break}}return c}
function ne(a,b,d,c){var f={},e=a.N[b].oc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}function oe(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return od(a)||a.g("no variables"),!0;if(!d[2])return od(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;var c=kd(a,d[3]);return void 0!==c?(a.fa[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function pe(a,b,d){var c=null;if(b=yd(a,b,!0)){var f=me(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.D-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.D)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
function be(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=kd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.u=
g?32768:0;break;case "CF":c.C=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}M(c);a.g("updated registers:")}e="";for(f=0;6>f;f++)e+=le(a,f);e=e+"\n"+(le(a,6)+le(a,7)+le(a,20));e+=ke(a,"T")+ke(a,"N")+ke(a,"Z")+ke(a,"V")+ke(a,"C");a.g(e);d&&(a.V=Y(c.b[7]),ce(a,X(a,a.V.D)))}}function qe(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):kd(a,b,!0)}
function re(a,b,d){var c="t"!=b;d=md(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return pb(a,!0)&&a.vb(f,c,!1)},function(){M(a.f);pb(a,!1)})}
function ce(a,b,d,c){if(b=yd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=yd(a,d,!0);if(!c||c.D<b.D)return;f=c.D-b.D;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=qb(a,!1)||a.da?a.P:null;var h=null!=e?"cycles":null,g=me(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=ie(a,b,h,e);a.g(e);a.V=b;f-=b.D-k;d++}}}
function he(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.aa&&(a.g("ended assemble at "+X(a,a.$.D)),a.V=a.$,a.aa=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ya=null;if(rb(a)&&0<b.length){a.aa&&(b="a "+X(a,a.$.D)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=yd(a,e[1],!0);if(n)if(a.$=
n,void 0===e[2])a.g("begin assemble at "+X(a,n.D)),a.aa=!0,M(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.bc(n,p[q],1);a.g(ie(a,a.$))}}break;case "b":a:{var D=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var B=D.charAt(1);if("l"==B){var Fa=0,Fa=Fa+ge(a,a.B),Fa=Fa+ge(a,a.W);(Fa+=ge(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.xa=md(a,x),a.g("break after "+a.xa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=yd(a,x,!0),!V))break a;"c"==B?null==V.D?(qd(a),a.g("all breakpoints cleared")):ee(a,a.B,V)||ee(a,a.W,V)||ee(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.D)):null!=V.D&&(Cd(a,V,y),"p"==B?a.cb(a.B,V):"r"==B?a.cb(a.W,V):"w"==B?a.cb(a.J,V):
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.eb&&(a.eb.value="");break;case "d":a:{var Ga,Ha=e[0],da=e[1],ta=e[2],Le=e[3];if("?"==da){var ea="";for(Ga in F)a.Ra[Ga]&&(ea&&(ea+=","),ea+=Ga);ea+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ea.length&&a.g("dump extension commands:\n\t"+
ea)}else if("state"==da){var Ed=se(a.i,!0);"console"==ta?console.log(Ed):(a.eb&&(a.eb.value=""),a.g(Ed))}else if("symbols"==da)for(var xc=0;xc<a.N.length;xc++){var yc=a.N[xc],Ia;for(Ia in yc.Ka)if("."!=Ia.charAt(0)){var Fd=yc.Ka[Ia].o;if(void 0!==Fd){var Gd=yc.Ka[Ia].l;Gd&&(Ia=Gd);a.g(X(a,Fd)+" "+Ia)}}}else{if("d"==Ha){for(Ga in F)if(e[1]==Ga){var Hd=a.Ra[Ga];Hd?(e.shift(),e.shift(),Hd(e)):a.g("no dump registered for "+da);break a}da||(Ha=a.Pc||"db")}else a.Pc=Ha;if("dh"==Ha){var Id=da,Jd=ta,Kd="",
Ld=0,O=a.qa,fa=a.T;if(fa.length){var W=+Id||a.Ub,Ja=+Jd||10;isNaN(W)?W=Ja:Kd="more ";W>fa.length&&(a.g("note: only "+fa.length+" available"),W=fa.length);O-=W;0>O&&(null==fa[fa.length-1].D?(W=O+W,O=0):O+=fa.length);var zc=[];"call"==Jd&&(Ja=1E5,zc=["CALL"]);for(void 0!==Id&&a.g(W+" instructions earlier:");0<Ja&&O!=a.qa;){var Md=fa[O++];if(null==Md.D)break;var fb=Y(Md.D),Me=W--,Nd=ie(a,fb,"history",Me);(!zc.length||0<=Nd.indexOf(zc[0]))&&a.g(Nd);fb.ec&&(O+=fb.ec,Ja-=fb.ec,W-=fb.ec);O>=fa.length&&(O=
0);a.Ub=W;Ld++;Ja--}}Ld||(a.g("no "+Kd+"history available"),a.Ub=void 0)}else{var Ib=yd(a,da);if(Ib){var Jb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Le),Jb=md(a,ta)>>>0,65536<Jb&&(Jb=65536));for(var ua="",Kb="dd"==Ha?4:"dw"==Ha?2:1,Lb=Kb*Jb||128,Ne=Lb+15>>4||1;Ne--&&0<Lb;){var Mb=0,Ac=0,gb,hb="",Bc="",da=X(a,Ib.D);for(gb=16;0<gb&&0<Lb;gb--){var Nb=a.Hb(Ib,1),Mb=Mb|Nb<<(Ac++<<3);Ac==Kb&&(hb+=r(Mb,2*Kb),hb+=1==Kb?9==gb?"-":" ":" ",Mb=Ac=0);Bc+=32<=Nb&&128>Nb?String.fromCharCode(Nb):".";Lb--}ua&&
(ua+="\n");ua+=da+" "+hb+(0==gb?" "+Bc:"")}ua&&a.g(ua);a.zb=Ib}}}}break;case "e":if("else"==e[0])break;var Ob=1,Od=255,Pd=a.Hb,Qd=a.bc;"ew"==e[0]&&(Ob=2,Od=65535,Pd=a.Ga,Qd=a.jc);var Rd=Ob<<1,Sd=e[1];if(null==Sd)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Pb=yd(a,Sd);if(Pb)for(var Qb=2;Qb<e.length;Qb++){var ib=kd(a,e[Qb]);if(void 0===ib){a.g("unrecognized value: "+e[Qb]);break}ib&~Od&&a.g("warning: "+r(ib)+" exceeds "+
Ob+"-byte value");var Oe=Pd.call(a,Pb);a.g("changing "+X(a,Pb.D)+" from "+r(Oe,Rd,!0)+" to "+r(ib,Rd,!0));Qd.call(a,Pb,ib,Ob)}}break;case "g":a:{var Td=e[1],Pe=b;if(void 0!==Td){var Cc=yd(a,Td,!0);if(!Cc)break a;Cd(a,Cc,Pe);a.cb(a.B,Cc,!0)}a.kb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Dc;if(a.A.ia)Dc="halting",a.la();else{if(qb(a,!0))break a;Dc="already halted"}d||a.g(Dc)}break;case "i":if("if"==e[0]){var Ec;var jb=b.substr(2),jb=qa(jb);kd(a,jb)?(d||a.g("true: "+
jb),Ec=!0):(d||a.g("false: "+jb),Ec=!1);Ec||(c=!1)}break;case "k":var Qe=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Fc=0,Ud=Y(),kb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,kb.D));10>Fc;){for(var va=null,Re=256;65536>kb.D>>>0;){Ud.D=a.Ga(kb,2);if(null==kb.D||!Re--)break;for(var Se=a,Rb=Ud,Vd=null,lb=Rb.D,Wd=lb,Gc=1;6>=Gc&&lb;Gc++){if(2<Gc){Rb.D=lb;var Sb=ie(Se,Rb);if(0<=Sb.indexOf("JSR")){var Xd=Sb.indexOf(" ");if(lb+
(Sb.indexOf(" ",Xd+1)-Xd-1)/2==Wd){Vd=Sb;break}}}lb--}Rb.D=Wd;if(va=Vd)break}if(!va||null==va)break;var Yd=null;if("ks"==Qe){var Zd=va.match(/[0-9A-F]+$/);Zd&&(Yd=pe(a,Zd[0]))}va=pa(va,50)+" ;"+(Yd||"stack="+X(a,kb.D));a.g(va);Fc++}Fc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){pe(a,e[1],!0);break}break;case "m":a:{var ga,ha=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var na=0;if("all"==E)na=1878917119,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==
E&&(E="key");"kbd"==E&&(E="keyboard");for(ga in F)if(E==ga){na=F[ga];ha=!!(a.ha&na);break}if(!na){a.g("unknown message category: "+E);break a}}if(na)if("on"==e[2])a.ha|=na,ha=!0;else if("off"==e[2]&&(a.ha&=~na,ha=!1,1073741824==na)){for(var Hc=0;Hc<a.Da.length;Hc++)a.g(a.Da[Hc]);a.Da=[]}}var Te=0,oa="";for(ga in F)if(!E||E==ga){var Ue=!!(a.ha&F[ga]);if(null===ha||ha==Ue)oa&&(oa+=","),++Te%10||(oa+="\n\t"),"key"==ga&&(ga="keys"),oa+=ga}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(oa||"none"));rd(a)}break;case "p":if("print"==e[0]){qe(a,b.substr(5));break}var Ve="pr"==e[0]?1:0;if(a.da)a.g("step in progress");else{var $d=Y(a.f.b[7]);a.Hb($d);a.da?(a.cb(a.B,$d,!0),a.kb()||(a.i&&a.i.Sb(),a.da=0)):re(a,Ve?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}be(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var mb=+e[2];if(8==mb||10==mb||16==mb)a.va=mb;else{a.g("invalid base: "+mb);
break}}a.g("default base: "+a.va);break;case "cs":var nb;void 0!==e[3]&&(nb=+e[3]);switch(e[2]){case "int":a.f.pb=nb;break;case "start":a.f.Mb=nb;break;case "stop":a.f.qb=nb;break;default:a.g("unknown cs option");break a}void 0!==nb&&wc(a.f);a.g("checksums "+(a.f.A.nb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Mc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.gb.toFixed(2)+"Mhz")+" ("+a.f.ib+"x)");break;case "?":a.g("debugger options:");
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":re(a,e[0],e[1]);break;case "u":ce(a,e[1],e[2],8);break;case "v":if("var"==e[0]){oe(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.wc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){qe(a,b.substr(1));break}var ob="commands:",Ic;for(Ic in ud)ob+="\n"+pa(Ic,9)+ud[Ic];$c(a)||(ob+="\nnote: history disabled if no exec breakpoints");a.g(ob);break;default:a.g("unknown command: "+b),c=!1}}}catch(ae){a.g("debugger error: "+(ae.stack||ae.message)),c=!1}return c}function td(a,b,d){b=id(a,b,d);for(var c in b)if(!he(a,b[c]))return!1;return!0}
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new pd(c);db(c,d)}});
function te(a,b,d){u.call(this,"Computer",a,te,67108864);this.A.ea=!1;ue(this,b);this.W=uc(this,"autoPower",a);this.F=0;this.fa=a.busWidth||a.buswidth;this.i=ve;this.T=null;this.N=this.aa=!1;this.url=uc(this,"url")||"";(Math.random()+.1).toString(36);this.B=we(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new wb({id:this.pc+".bus",busWidth:this.fa},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.eb)for(b=0;b<f.length;b++)c=f[b],c.na=this.I.na,c.g=
this.I.g,c.eb=this.I.eb;this.g("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.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Wa&&c.Wa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=uc(this,"state")||(e=!0,a.state))b=this.Z=a,e||(this.N=!0,this.i=ve),this.i&&
(this.V=new Sc(this,"1.30.0"),xe(this.V)?b=null:delete this.V);!b&&this.i&&(b=ye(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.aa=!0);C(h)})}else C(this);this.O.power||(this.W=!0);!d&&this.W&&ze(this,this.Nb)}else t("Unable to find CPU component")}w(te);var ve=0;
function ue(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function uc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function ze(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){ze(a,b,d)});return}}b.call(a,d)}
function Ae(a,b){var d=new Sc(a,"1.30.0","validate");if(xe(d)&&Be(d)){var c=Ce(d,"timestamp"),f=b?Ce(b,"timestamp"):"unknown";c!=f&&(a.na("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=te.prototype;
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:ve));if(!this.F){this.F++;var b=!1,d=!1;this.$=!1;var c=this.V||new Sc(this,"1.30.0");if(-1==a)b=!0;else if(a>ve){if(xe(c,this.T)){this.J=new Sc(this,"1.30.0","failsafe");xe(this.J)&&(De(this,c),a=2,Ee(this.J));N(this.J,"timestamp",wa());Fe(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Be(c)){var e=Ce(c,"code"),h=Ce(c,"data");e&&("ok"==e?xe(c,h):("error"==
e&&"no machine state"!=h?(this.na("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(e+": "+h),Ee(c),xe(c)?(d=Be(c),f=!0):d=!1))}f&&Ae(this,d?c:null)}else 2==a&&c.clear()}else Ae(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=Ge(this,h,c,b,d));b=[c,a,d];-1!=a?ze(this,this.uc,b):this.uc(b)}};
function Ge(a,b,d,c,f){if(!b.A.ea){b.A.ea=!0;if(b.Na){var e=null;f&&((e=Ce(d,b.id))||(e=Ce(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.Z&&!a.aa?(d.clear(),a.i=ve,window&&window.location.reload()):a.$=!0,b.Na(null),f=!1)}if(!c&&b.nc)for(a=b.nc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
m.uc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ga=!0;this.A.ea=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(Ge(this,this.f,b,d,a),this.f.Db());this.$&&(De(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0};
function De(a,b){if(ya("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 d=a.B||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
function se(a,b,d){var c,f="none";if(a.F)return null;a.F--;var e=new Sc(a,"1.30.0"),h=new Sc(a,"1.30.0","validate"),g=wa();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.la(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.A.ea=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ea&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)),
d&&(l.A.ea=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.B&&He(a,a.B,e.toString()),Fe(h)&&Fe(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.A.ea=!1,b=a.O.power)&&(b.textContent="Power");a.F=0;return f}
m.reset=function(){this.G&&this.G.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.G.type,void 0),this.G.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.G&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
m.ta=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.F||(c.A.ea?re(c,!1,!0):ye(c,c.Pb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.ea&&!c.F)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");re(c,a,!0);!a&&c.Z?window&&window.location.reload():c.Pb(ue)}else c.reset(),c.f&&c.f.Fb()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
d;d.onclick=function(){var a=ve(c,!0);if(a){var b=!!(c.i&&!c.P||c.Z),d=re(c,b);b?Ge(c,a,d):c.na("Resume disabled, machine state not saved")}};return!0}return!1};
function ve(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=He(a,d))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return d}
function He(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(f){t(f.message+" ("+c+")")}return a.B}function xe(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Ie(a,"1.30.0"));return b}
function Ge(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ie(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.na("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.na(d),Ca("user",""),a.B=null)}}m.Ub=function(){};
m.wa=function(a){this.f&&this.f.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new se(h,c,!0);db(h,e);h.W&&ye(h,h.Pb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ga&&!d.A.ea&&d.Pb(-1)}});
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.A.ea&&re(d,!(!d.i||d.P),!0)}});function Sc(a,b,d){this.id=a.id;this.key=Ie(a,b,d);this.H=a.H;De(this,a.Oc)}function Ie(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
Sc.prototype={constructor:Sc,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){De(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
function De(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Ee(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Ae(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function we(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function Be(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var Je=0;
function Ve(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):We(g,a,b,d,c,f,e)})}
function We(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Xe(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Xe(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);Xe(a,b,d)}})}else d(a,null)}
function Ye(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Je||Sa(!0));k=!1}var h,g,k=!0;Je++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Ve(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Je||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Je||Sa(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?Ve(b,a,c,!0,f,l):We(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return Ye(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();
m.ta=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.F||(c.A.ea?se(c,!1,!0):ze(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.ea&&!c.F)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");se(c,a,!0);!a&&c.Z?window&&window.location.reload():c.Nb(ve)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
d;d.onclick=function(){var a=we(c,!0);if(a){var b=!!(c.i&&!c.P||c.Z),d=se(c,b);b?He(c,a,d):c.na("Resume disabled, machine state not saved")}};return!0}return!1};
function we(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=Ie(a,d))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return d}
function Ie(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(f){t(f.message+" ("+c+")")}return a.B}function ye(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Je(a,"1.30.0"));return b}
function He(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Je(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.na("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.na(d),Ca("user",""),a.B=null)}}m.Sb=function(){};
m.wa=function(a){this.f&&this.f.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new te(h,c,!0);db(h,e);h.W&&ze(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ga&&!d.A.ea&&d.Nb(-1)}});
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.A.ea&&se(d,!(!d.i||d.P),!0)}});function Sc(a,b,d){this.id=a.id;this.key=Je(a,b,d);this.H=a.H;Ee(this,a.Oc)}function Je(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
Sc.prototype={constructor:Sc,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){Ee(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
function Ee(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Fe(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Be(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function xe(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function Ce(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var Ke=0;
function We(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Xe(g,a,b,d,c,f,e)})}
function Xe(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ye(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ye(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);Ye(a,b,d)}})}else d(a,null)}
function Ze(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Ke||Sa(!0));k=!1}var h,g,k=!0;Ke++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?We(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Ke||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Ke||Sa(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?We(b,a,c,!0,f,l):Xe(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return Ze(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();

View file

@ -8,147 +8,146 @@ typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encod
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(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:[]},pa=!1,qa=!1,ra=!0;function sa(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 ta(a){if(ra)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 ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ib=b.comment;this.dc=b;b=this.id.indexOf(".");0>b?this.vb=this.id:(this.Gb=this.id.substr(0,b),this.vb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,ab:!1,zb:!1,L:!1,error:!1};this.nb=null;this.h.error=!1;this.A={};this.H=null;x.push(this)}var wa=void 0,xa={};
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ib=b.comment;this.dc=b;b=this.id.indexOf(".");0>b?this.ub=this.id:(this.Gb=this.id.substr(0,b),this.ub=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,yb:!1,L:!1,error:!1};this.lb=null;this.h.error=!1;this.A={};this.H=null;x.push(this)}var wa=void 0,xa={};
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(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=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},x=[];function Da(a,b,c){Ca[a]&&b&&(Ca[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 Ea(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){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=A(h))&&g.binding&&a.aa(g.type,g.binding,h,g.value),l=k.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}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.Ab=this.A[b]=c,c.value="",this.X=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.K=function(a){this.X(a,this.vb)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.vb+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.zb)return a.h.ab&&(a.h.ab=!1),a.h.zb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.ab=b;return a.h.ab}function D(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){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.aa=function(a,b,c,d){return this.s&&this.s.aa(a,b,c,d)||this.c&&this.c.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.c=c;this.H=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=function(){};
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.zb=this.A[b]=c,c.value="",this.X=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.K=function(a){this.X(a,this.ub)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.ub+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.yb)return a.h.Za&&(a.h.Za=!1),a.h.yb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.lb;a.lb=null;b&&b()}}
function Ga(a,b){b&&(a.h.ready?b():a.lb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.aa=function(a,b,c,d){return this.s&&this.s.aa(a,b,c,d)||this.c&&this.c.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.c=c;this.H=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=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)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===e){e=x[h];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}u(Ja);
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.H=c;this.D=a.busWidth||16;this.s=Math.pow(2,this.D);this.v=this.s-1|0;this.f=(this.D>>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.j=this.s/this.g|0;this.M=this.j-1;this.oa=[];this.u=null;this.bb=this.P;a=new F;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;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;this.I=this.s-8192;Pa(this,this.I,
8192,Qa,this);D(this)}y(E);function La(a,b){var c=this.controller.oa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.oa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.bb(b,-1,1)}
function Na(a,b,c){var d=this.controller.oa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.oa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.bb(c,b,1)}function Ma(a,b){var c=this.controller.oa[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return this.controller.bb(b,-1,0)}
function Oa(a,b,c){if(a=this.controller.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}}this.controller.bb(c,b,0)}E.prototype.reset=function(){this.u&&this.u()};E.prototype.P=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Pa)return k.tb+=k.Pa-e,k.Pa=e,!0;if(e>=k.Pa+k.tb){r=k.size-(e-l);r>h&&(r=h);k.tb=e-k.Pa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.H,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.H=c;this.D=a.busWidth||16;this.s=Math.pow(2,this.D);this.v=this.s-1|0;this.f=(this.D>>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.j=this.s/this.g|0;this.M=this.j-1;this.oa=[];this.u=null;this.$a=this.P;a=new F;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=La;this.Wa[1]=Ma;this.Wa[2]=Na;this.Wa[3]=Oa;this.I=this.s-8192;Pa(this,this.I,
8192,Qa,this);D(this)}y(E);function La(a,b){var c=this.controller.oa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.oa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.$a(b,-1,1)}
function Ma(a,b,c){var d=this.controller.oa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.oa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.$a(c,b,1)}function Na(a,b){var c=this.controller.oa[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return this.controller.$a(b,-1,0)}
function Oa(a,b,c){if(a=this.controller.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}}this.controller.$a(c,b,0)}E.prototype.reset=function(){this.u&&this.u()};E.prototype.P=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Pa)return k.sb+=k.Pa-e,k.Pa=e,!0;if(e>=k.Pa+k.sb){r=k.size-(e-l);r>h&&(r=h);k.sb=e-k.Pa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.H,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function G(a){v.call(this,"Device",a,G);this.u=a.name;this.s={Db:[],fa:0,T:128,b:127,ac:0};this.b={data:0,wc:0,Qa:20,tc:0};this.f={Cb:0,l:0};this.g={ib:2496,O:0,w:128,jb:0,hb:0,U:0,Rb:0,R:[],Ea:[406,406,406,406],C:[12,12,12,12]};this.i={l:129,$a:0,G:0,sa:0,pa:0,wa:0,R:[],C:[40,40,40,40],Ea:[1024,1024,512,512],Zb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],C:[22,22,22,50],Da:[19,19,19,32],ub:[815,411,815,630],R:[],B:2176,Ua:0,Sa:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,
4544],Ta:[0,0,0,0,0,0,0,0],Ja:0,rc:[0,0,0,0,0,0,0,0],Sb:0,Tb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],sc:[1,2,3,4,5,6,7,8],Ub:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],sb:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],qc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],va:0,Eb:0}}y(G);
function G(a){v.call(this,"Device",a,G);this.u=a.name;this.s={Cb:[],fa:0,T:128,b:127,ac:0};this.b={data:0,wc:0,Qa:20,tc:0};this.f={Bb:0,m:0};this.g={gb:2496,O:0,w:128,hb:0,fb:0,U:0,Rb:0,R:[],Ea:[406,406,406,406],C:[12,12,12,12]};this.i={m:129,Ya:0,G:0,sa:0,pa:0,wa:0,R:[],C:[40,40,40,40],Ea:[1024,1024,512,512],Zb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],C:[22,22,22,50],Da:[19,19,19,32],tb:[815,411,815,630],R:[],B:2176,Ta:0,Ra:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,
4544],Sa:[0,0,0,0,0,0,0,0],Ja:0,rc:[0,0,0,0,0,0,0,0],Sb:0,Tb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],sc:[1,2,3,4,5,6,7,8],Ub:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],rb:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],qc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],va:0,Db:0}}y(G);
var Ta=[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];m=G.prototype;
m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;switch(this.u){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.I+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Yb.bind(this);b.u=this.reset.bind(this);b.bb=f}D(this)};m.Ra=function(){return this.c.Ra()};m.Wa=function(a){a=a&63727|this.c.Ra()&1808;this.c.Wa(a)};
function Va(a){var b=a.g,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.kc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.C[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.ib=2496;b.O=0;b.w=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;Wa(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;
b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;a.rb(b.R[e],c,d,f);return}b.ib=e<<13|b.ib&8176|b.U%9&15;H(a.c,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}m.kc=function(a,b,c,d,f){var e=this.g;e.hb=d&65535;e.w=e.w&-49|d>>12&48;e.jb=65536-f&65535;switch(a){case 1:e.O|=33024;e.w|=49152;break;case 2:e.O|=33792,e.w|=49152}H(this.c,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
function Xa(a){var b=a.i,c,d,f,e=b.l>>8&3;b.l&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.lc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.C[e],url:"rl"+e+".dsk"});switch(b.l>>1&7){case 2:b.sa&8&&(b.l&=63);b.sa=b.Zb[e]|b.wa&64;break;case 3:1==(b.G&3)&&(b.wa=b.G&4?b.wa+(b.G&65408)&65408|b.G<<2&64:b.wa-(b.G&65408)&65408|b.G<<2&64,b.G=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);
d=(b.pa&63)<<16|b.$a;f=65536-b.sa&65535;Wa(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);d=(b.pa&63)<<16|b.$a;f=65536-b.sa&65535;a.rb(b.R[e],c,d,f);return}H(a.c,20,160,112,function(){b.l|=129;return!!(b.l&64)})}
m.lc=function(a,b,c,d,f){var e=this.i;e.$a=d&65535;e.l=e.l&-49|d>>12&48;e.pa=d>>16&63;e.G=~~(c/e.C[b.ia])<<6|c%e.C[b.ia];e.wa=e.G;e.sa=65536-f&65535;switch(a){case 1:e.l|=33792;break;case 2:e.l|=40960}H(this.c,20,160,112,function(){e.l|=129;return!!(e.l&64)})};function Ya(a){a=a.j;a.B=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Ja=a.Ua=a.Sa=a.va=a.Eb=0}
function Za(a,b){var c=a.j,d,f,e;c.B&=-16513;c.Z&=-2049;c.S[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.mc,drive:b,blocksize:256,mapped:0,maxblock:c.ub[0]*c.Da[0]*c.C[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.sb[b]=c.ka[b];c.B|=32896;c.S[b]|=32896;c.Ja|=1<<b;break;case 9:Ya(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ka[b]>=c.ub[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Ta[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&
255);f=(c.va&63)<<16|c.Sa;e=65536-c.Ua&65535;Wa(a,c.R[b],d,f,e);return;case 57:if(c.ka[b]>=c.ub[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Ta[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&255);f=(c.va&63)<<16|c.Sa;e=65536-c.Ua&65535;a.rb(c.R[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.S[b]|=128;return!!(c.B&64)})}
m.mc=function(a,b,c,d,f){var e=this.j;e.Ua=65536-f&65535;e.Sa=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.C[0]);d=~~(f/e.Da[0]);e.$[b.ia]=f%e.Da[0]<<8|c%e.C[0];e.sb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.hc-1&&(e.S[b.ia]|=1024);switch(a){case 1:e.Z|=512;e.B|=49152;break;case 2:e.Z|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.S[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.fc=function(){this.f.l|=128;this.f.l&64&&H(this.c,0,192,64)};
function $a(a,b){var c=b>>13&31;31>c?a.c.ha&32&&(b=a.c.Va[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&ab(898)):b|=4186112;return b}
function bb(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.hc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.qb(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}m.rb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){bb(this,this.rb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>I(this.c,a.gc?$a(this,c):c,a.cache[b][f])){a.qb(2,a,b,c,d);return}c+=2;--d}b++}a.qb(0,a,b,c,d)};
function Wa(a,b,c,d,f){for(var e,h;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++){h=J(a.c,b.gc?$a(a,d):d);if(0>h){b.qb(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.qb(0,b,c,d,f)}m.reset=function(){this.b.Qa=this.b.Qa&-120|20;this.s.fa=0;this.s.T=128;this.f.l=0;this.g.w=128;this.i.l=128;Ya(this)};
m.Yb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194302:d=e.Ra();if(0<=b)return a&1?b=b<<8|d&255:c&&(b=d&65280|b&255),e.Wa(b&63727|d&1808),-1;break;case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.pb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.pb=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return L(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.Fa)return L(e,4);d=1;break;case 4194290:if(70!==e.Fa)return L(e,
4);d=0;break;case 4194288:if(70!==e.Fa)return L(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.Fa)return L(e,4);f=a-4194272>>1;0>b?d=e.Bb[f]:(d=M(this,e.Bb[f],a,b,c),0<=d&&(e.Bb[f]=d));break;case 4194254:return a&1?e.m>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.m>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=
a&7,e.m&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=e.Ia[f]),d;case 4194246:return a&1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.m>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.m&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.o|=16,L(e,4)}break;case 4194176:f=a>>1&31;d=M(this,e.N[3][f],a,b,c);0<=d&&(e.N[3][f]=d,e.N[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=
M(this,e.Xa,a,b,c);0<=d&&(e.Xa=d);break;case 4194172:d=e.da;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.F=e.F&62337|e.eb<<5|e.ob<<1;0>b?d=e.F:(d=M(this,e.F,a,b,c),0<=d&&(e.F=d&=62337,e.eb=d>>5&3,e.ob=d>>1&15,d&257?(f=2,e.ha&16&&(f=1),e.cb=d&1?6:4):(e.cb=0,f=4),this.b.Qa=this.b.Qa&-8|f));break;case 4194168:0>b?d=this.b.tc&65535:(d=M(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:if(0<=b){if(b&=127)h.ac=0;h.T&=-129;H(e,100,128,52,function(){h.T|=128;return!!(h.T&64)})}d=0;
break;case 4194164:0>b?d=h.T:(d=M(this,h.T,a,b,c),0<=d&&(128==(h.T&192)&&d&64&&H(e,8,128,52,function(){h.T|=128;return!!(h.T&64)}),h.T=h.T&128|d&-129));break;case 4194162:d=0;0>b&&(h.fa&=-129,0<h.Db.length&&(d=h.Db.shift(),0<h.Db.length&&setTimeout(function(){h.fa|=128;h.fa&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.fa:(d=M(this,h.fa,a,b,c),0<=d&&(h.fa=h.fa&128|d&-129));break;case 4194150:0>b?(d=f.l,f.l&=-129):(d=M(this,f.l,a,b,c),0<=d&&(d&64&&!f.Cb&&(setInterval(this.fc.bind(this),25),
f.Cb=1),f.l=d&-129));break;default:return e.o|=16,L(e,4)}break;case 4194048:f=this.g;switch(a&-2){case 4194048:d=M(this,f.ib,a,b,c);0<=d&&(f.ib=d);break;case 4194050:d=M(this,f.O,a,b,c);0<=d&&(f.O=d);break;case 4194052:d=M(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&Va(this));break;case 4194054:d=M(this,f.jb,a,b,c);0<=d&&(f.jb=d);break;case 4194056:d=M(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194058:d=M(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=M(this,
f.Rb,a,b,c);0<=d&&(f.Rb=d);break;default:return e.o|=16,L(e,4)}break;case 4193728:var g=this.j;f=g.Z&7;switch(a&-2){case 4193728:d=M(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?Za(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=M(this,g.Ua,a,b,c);0<=d&&(g.Ua=d);break;case 4193732:d=M(this,g.Sa,a,b,c);0<=d&&(g.Sa=d&65534);break;case 4193734:d=M(this,g.$[f],a,b,c);0<=d&&(g.$[f]=d&7967);break;case 4193736:d=M(this,g.Z,a,b,c);0<=d&&(g.Z=d&63|g.Z&
65472,d&128&&Ya(this));break;case 4193738:d=g.S[f];break;case 4193740:d=g.Ta[f];break;case 4193742:d=M(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.rc[f];break;case 4193746:d=M(this,g.Sb,a,b,c);0<=d&&(g.Sb=d);break;case 4193748:d=M(this,g.Tb[f],a,b,c);0<=d&&(g.Tb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.sc[f];break;case 4193754:d=M(this,g.Ub[f],a,b,c);0<=d&&(g.Ub[f]=d);break;case 4193756:d=M(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.sb[f]=g.ka[f];
d=g.sb[f];break;case 4193760:d=g.pc[f];break;case 4193762:d=g.qc[f];break;case 4193764:d=g.nc[f];break;case 4193766:d=g.oc[f];break;case 4193768:d=M(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=M(this,g.Eb,a,b,c);0<=d&&(g.Eb=d);break;default:return e.o|=16,L(e,4)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=M(this,f.l,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.l=f.l&-1023|d&1022,f.l&128||Xa(this));break;case 4192514:d=M(this,f.$a,a,b,c);0<=d&&(f.$a=d&65534);
break;case 4192516:d=M(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=M(this,f.sa,a,b,c);0<=d&&(f.sa=d);break;case 4192520:d=M(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.l=f.l&-49|(f.pa&3)<<4);break;default:return e.o|=16,L(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.ha:(d=M(this,e.ha,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.ha=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.cb&&(f=2,e.ha&16&&(f=1),this.b.Qa=this.b.Qa&-8|f)));break;default:return e.o|=16,L(e,4)}break;case 4191424:f=a>>
1&31;d=M(this,e.N[0][f],a,b,c);0<=d&&(e.N[0][f]=d,e.N[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=M(this,e.N[1][f],a,b,c);0<=d&&(e.N[1][f]=d,e.N[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return L(e,4);f=a>>2&31;d=e.Va[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=M(this,d,a,b,c),0<=d&&(e.Va[f]=a&2?d<<16|e.Va[f]&65535:e.Va[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=Ta[a>>1&255];else return e.o|=
16,L(e,4);break;default:return e.o|=16,L(e,4)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===typeof d&&ab(76);return d};function M(a,b,c,d,f){if(c&1){if(!f)return L(a.c,4);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}var Ua={};Ua[4194302]=[null,null,G.prototype.Ra,G.prototype.Wa];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var cb;
if(Ha){var db=new ArrayBuffer(2);(new DataView(db)).setUint16(0,256,!0);cb=256===(new Uint16Array(db))[0]}else cb=!1;var eb=cb;
function F(a,b,c,d,f){this.id=fb+=2;this.c=null;this.Pa=a;this.tb=b;this.size=c||0;this.type=d||gb;this.i=d==hb;this.controller=null;Ka(this);this.ra=this.cc=!1;if(c)if(f)this.controller=f,this.c=null,ib(this,f.Ya);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),ib(this,eb?jb:kb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;ib(this,lb)}else ib(this)}
m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;switch(this.u){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.I+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Yb.bind(this);b.u=this.reset.bind(this);b.$a=f}D(this)};m.qb=function(){return this.c.qb()};m.Fb=function(a){this.c.Fb(a)};
function Va(a){var b=a.g,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.kc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.C[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.gb=2496;b.O=0;b.w=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;Wa(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;
b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;a.pb(b.R[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.U%9&15;H(a.c,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}m.kc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.w=e.w&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.O|=33024;e.w|=49152;break;case 2:e.O|=33792,e.w|=49152}H(this.c,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
function Xa(a){var b=a.i,c,d,f,e=b.m>>8&3;b.m&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.lc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.C[e],url:"rl"+e+".dsk"});switch(b.m>>1&7){case 2:b.sa&8&&(b.m&=63);b.sa=b.Zb[e]|b.wa&64;break;case 3:1==(b.G&3)&&(b.wa=b.G&4?b.wa+(b.G&65408)&65408|b.G<<2&64:b.wa-(b.G&65408)&65408|b.G<<2&64,b.G=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.G>>6>=b.Ea[e]){b.m|=37888;break}if((b.G&63)>=b.C[e]){b.m|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Wa(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ea[e]){b.m|=37888;break}if((b.G&63)>=b.C[e]){b.m|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.pb(b.R[e],c,d,f);return}H(a.c,20,160,112,function(){b.m|=129;return!!(b.m&64)})}
m.lc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.m=e.m&-49|d>>12&48;e.pa=d>>16&63;e.G=~~(c/e.C[b.ia])<<6|c%e.C[b.ia];e.wa=e.G;e.sa=65536-f&65535;switch(a){case 1:e.m|=33792;break;case 2:e.m|=40960}H(this.c,20,160,112,function(){e.m|=129;return!!(e.m&64)})};function Ya(a){a=a.j;a.B=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ja=a.Ta=a.Ra=a.va=a.Db=0}
function Za(a,b){var c=a.j,d,f,e;c.B&=-16513;c.Z&=-2049;c.S[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.mc,drive:b,blocksize:256,mapped:0,maxblock:c.tb[0]*c.Da[0]*c.C[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.rb[b]=c.ka[b];c.B|=32896;c.S[b]|=32896;c.Ja|=1<<b;break;case 9:Ya(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ka[b]>=c.tb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&
255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;Wa(a,c.R[b],d,f,e);return;case 57:if(c.ka[b]>=c.tb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;a.pb(c.R[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.S[b]|=128;return!!(c.B&64)})}
m.mc=function(a,b,c,d,f){var e=this.j;e.Ta=65536-f&65535;e.Ra=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.C[0]);d=~~(f/e.Da[0]);e.$[b.ia]=f%e.Da[0]<<8|c%e.C[0];e.rb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.hc-1&&(e.S[b.ia]|=1024);switch(a){case 1:e.Z|=512;e.B|=49152;break;case 2:e.Z|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.S[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.fc=function(){this.f.m|=128;this.f.m&64&&H(this.c,0,192,64)};
function $a(a,b){var c=b>>13&31;31>c?a.c.ha&32&&(b=a.c.Ua[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&ab(898)):b|=4186112;return b}
function bb(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.hc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.ob(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){bb(this,this.pb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.gc?$a(this,c):c,a.cache[b][f])){a.ob(2,a,b,c,d);return}c+=2;--d}b++}a.ob(0,a,b,c,d)};
function Wa(a,b,c,d,f){for(var e,h;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++){h=M(a.c,b.gc?$a(a,d):d);if(0>h){b.ob(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.ob(0,b,c,d,f)}m.reset=function(){this.b.Qa=this.b.Qa&-120|20;this.s.fa=0;this.s.T=128;this.f.m=0;this.g.w=128;this.i.m=128;Ya(this)};
m.Yb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.nb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nb=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.Fa)return J(e,4);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4);d=0;break;case 4194288:if(70!==e.Fa)return J(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.Fa)return J(e,4);f=a-4194272>>1;0>b?d=e.Ab[f]:(d=I(this,e.Ab[f],a,b,c),0<=d&&(e.Ab[f]=d));break;case 4194254:return a&1?e.l>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.l>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.l&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=e.Ia[f]),d;case 4194246:return a&
1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.l>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.l&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.o|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.N[3][f],a,b,c);0<=d&&(e.N[3][f]=d,e.N[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=e.da;d&65280&&(d=(d<<8|d>>8)&65535);
break;case 4194170:e.F=e.F&62337|e.bb<<5|e.mb<<1;0>b?d=e.F:(d=I(this,e.F,a,b,c),0<=d&&(e.F=d&=62337,e.bb=d>>5&3,e.mb=d>>1&15,d&257?(f=2,e.ha&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Qa=this.b.Qa&-8|f));break;case 4194168:0>b?d=this.b.tc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.ac=0),h.T&=-129,H(e,100,128,52,function(){h.T|=128;return!!(h.T&64)}));d=0;break;case 4194164:0>b?d=h.T:(d=I(this,h.T,a,b,c),0<=d&&(128==(h.T&192)&&d&64&&H(e,8,128,52,
function(){h.T|=128;return!!(h.T&64)}),h.T=h.T&128|d&-129));break;case 4194162:d=0;0>b&&(h.fa&=-129,0<h.Cb.length&&(d=h.Cb.shift(),0<h.Cb.length&&setTimeout(function(){h.fa|=128;h.fa&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.fa:(d=I(this,h.fa,a,b,c),0<=d&&(h.fa=h.fa&128|d&-129));break;case 4194150:0>b?(d=f.m,f.m&=-129):(d=I(this,f.m,a,b,c),0<=d&&(d&64&&!f.Bb&&(setInterval(this.fc.bind(this),25),f.Bb=1),f.m=d&-129));break;default:return e.o|=16,J(e,4)}break;case 4194048:f=this.g;switch(a&
-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.O,a,b,c);0<=d&&(f.O=d);break;case 4194052:d=I(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&Va(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=I(this,f.Rb,a,b,c);0<=d&&(f.Rb=d);break;default:return e.o|=16,J(e,4)}break;case 4193728:var g=this.j;
f=g.Z&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?Za(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ta,a,b,c);0<=d&&(g.Ta=d);break;case 4193732:d=I(this,g.Ra,a,b,c);0<=d&&(g.Ra=d&65534);break;case 4193734:d=I(this,g.$[f],a,b,c);0<=d&&(g.$[f]=d&7967);break;case 4193736:d=I(this,g.Z,a,b,c);0<=d&&(g.Z=d&63|g.Z&65472,d&128&&Ya(this));break;case 4193738:d=g.S[f];break;case 4193740:d=g.Sa[f];break;case 4193742:d=
I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.rc[f];break;case 4193746:d=I(this,g.Sb,a,b,c);0<=d&&(g.Sb=d);break;case 4193748:d=I(this,g.Tb[f],a,b,c);0<=d&&(g.Tb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.sc[f];break;case 4193754:d=I(this,g.Ub[f],a,b,c);0<=d&&(g.Ub[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.rb[f]=g.ka[f];d=g.rb[f];break;case 4193760:d=g.pc[f];break;case 4193762:d=g.qc[f];break;case 4193764:d=g.nc[f];
break;case 4193766:d=g.oc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Db,a,b,c);0<=d&&(g.Db=d);break;default:return e.o|=16,J(e,4)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.m,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.m=f.m&-1023|d&1022,f.m&128||Xa(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=I(this,f.sa,a,b,c);
0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.m=f.m&-49|(f.pa&3)<<4);break;default:return e.o|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.ha:(d=I(this,e.ha,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.ha=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.ha&16&&(f=1),this.b.Qa=this.b.Qa&-8|f)));break;default:return e.o|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.N[0][f],a,b,c);0<=d&&(e.N[0][f]=d,e.N[0][f&15]&=65295);break;case 4191360:f=
a>>1&31;d=I(this,e.N[1][f],a,b,c);0<=d&&(e.N[1][f]=d,e.N[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4);f=a>>2&31;d=e.Ua[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Ua[f]=a&2?d<<16|e.Ua[f]&65535:e.Ua[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=Ta[a>>1&255];else return e.o|=16,J(e,4);break;default:return e.o|=16,J(e,4)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===
typeof d&&ab(76);return d};var Ua={};Ua[4194302]=[null,null,G.prototype.qb,G.prototype.Fb];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var cb;if(Ha){var db=new ArrayBuffer(2);(new DataView(db)).setUint16(0,256,!0);cb=256===(new Uint16Array(db))[0]}else cb=!1;var eb=cb;
function F(a,b,c,d,f){this.id=fb+=2;this.c=null;this.Pa=a;this.sb=b;this.size=c||0;this.type=d||gb;this.i=d==hb;this.controller=null;Ka(this);this.ra=this.cc=!1;if(c)if(f)this.controller=f,this.c=null,ib(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),ib(this,eb?jb:kb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;ib(this,lb)}else ib(this)}
var gb=0,hb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],fb=0;
F.prototype={constructor:F,parent:null,Cb:function(a){this.Pa=a},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.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},D:function(){},u:function(a,b){return this.gb(a++,b++)|this.gb(a,
b)<<8},I:function(a,b,c){this.kb(a++,b&255,c++);this.kb(a,b>>8,c)},W:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},xa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Oa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.P(a,
F.prototype={constructor:F,parent:null,Bb:function(a){this.Pa=a},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.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},D:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,
b)<<8},I:function(a,b,c){this.ib(a++,b&255,c++);this.ib(a,b>>8,c)},W:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},xa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Oa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.P(a,
b)},ca:function(a,b){return this.ma(a,b)},za:function(a,b,c){this.i||this.Xb(a,b,c)},La:function(a,b,c){this.i||this.Ma(a,b,c)},J:function(a){return this.b[a]},V:function(a){return this.b[a]},ba:function(a){return this.g.getUint16(a,!0)},na:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},ya:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ca:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Na:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
1]=b;this.ra=!0}};function Ka(a,b,c){a.H=b;a.A=a.v=0;c&&((a.A=c.A)&&mb(a,nb,!1),(a.v=c.v)&&ob(a,nb,!1))}function ob(a,b,c){c&&a.v||(a.kb=!a.i&&b[1]||a.D,a.vc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Xb=b[1]||a.D,a.Ma=b[3]||a.I}function mb(a,b,c){c&&a.A||(a.gb=b[0]||a.s,a.jc=b[2]||a.u);if(c||void 0===c)a.P=b[0]||a.s,a.ma=b[2]||a.u}function ib(a,b){b||(b=pb);mb(a,b,void 0);ob(a,b,void 0)}
1]=b;this.ra=!0}};function Ka(a,b,c){a.H=b;a.A=a.v=0;c&&((a.A=c.A)&&mb(a,nb,!1),(a.v=c.v)&&ob(a,nb,!1))}function ob(a,b,c){c&&a.v||(a.ib=!a.i&&b[1]||a.D,a.vc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Xb=b[1]||a.D,a.Ma=b[3]||a.I}function mb(a,b,c){c&&a.A||(a.eb=b[0]||a.s,a.jc=b[2]||a.u);if(c||void 0===c)a.P=b[0]||a.s,a.ma=b[2]||a.u}function ib(a,b){b||(b=pb);mb(a,b,void 0);ob(a,b,void 0)}
var pb=[],lb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa],nb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La];if(Ha)var kb=[F.prototype.J,F.prototype.ya,F.prototype.ba,F.prototype.Ca],jb=[F.prototype.V,F.prototype.Aa,F.prototype.na,F.prototype.Na];
function qb(a,b){v.call(this,"CPU",a,qb);var c=a.multiplier||1;this.xb=a.cycles||b;this.ma=c;this.wb=Math.round(this.xb/1E4)/100;this.ba=this.wb*this.ma;this.h.ga=!1;this.h.Vb=!1;this.h.Za=a.autoStart;this.h.Ob=!1;this.h.mb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Nb=this.Fb.bind(this);D(this)}y(qb);var rb=["power","reset"];m=qb.prototype;
m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.H=d;for(b=0;b<rb.length;b++)(c=this.A[rb[b]])&&this.s.aa(null,rb[b],c);this.xa=null;a=sb(a,"autoStart");null!=a&&(this.h.Za="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){tb(this);if(!this.restore(a))return!1;ub(this)}else this.reset();this.X("No debugger detected")}vb(this);return!0};m.ta=function(a){return a?this.save():!0};
m.Za=function(){return this.h.Za||void 0===this.A.run?(this.Fb(),!0):!1};m.Qb=function(){return 0};function ub(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.mb=0<=a.Oa&&0<a.ya;a.h.mb&&(a.Na=0,a.ca=a.Oa-a.W)}
function qb(a,b){v.call(this,"CPU",a,qb);var c=a.multiplier||1;this.wb=a.cycles||b;this.ma=c;this.vb=Math.round(this.wb/1E4)/100;this.ba=this.vb*this.ma;this.h.ga=!1;this.h.Vb=!1;this.h.Xa=a.autoStart;this.h.Ob=!1;this.h.kb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Nb=this.Eb.bind(this);D(this)}y(qb);var rb=["power","reset"];m=qb.prototype;
m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.H=d;for(b=0;b<rb.length;b++)(c=this.A[rb[b]])&&this.s.aa(null,rb[b],c);this.xa=null;a=sb(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){tb(this);if(!this.restore(a))return!1;ub(this)}else this.reset();this.X("No debugger detected")}vb(this);return!0};m.ta=function(a){return a?this.save():!0};
m.Xa=function(){return this.h.Xa||void 0===this.A.run?(this.Eb(),!0):!1};m.Qb=function(){return 0};function ub(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.kb=0<=a.Oa&&0<a.ya;a.h.kb&&(a.Na=0,a.ca=a.Oa-a.W)}
function N(a,b,c,d){if(a.A[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;if(!a.h.ga||a.h.Ob)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.A[b].textContent!=d&&(a.A[b].textContent=d)}}
m.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.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.ga?O(d):d.Fb())};a=!0;
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){wb(d,d.ma<<1)},c.textContent=this.ba.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.W+=b;c&&(a.V=a.J=0)}function yb(a,b){var c=1;b&&1<a.ma&&a.M&&(c=a.M/a.wb);a.Kb=Math.round(1E3/30);a.lb=Math.floor(a.xb/30*c);b||(a.Aa=a.lb);a.yb=0}function zb(a){return a.W+a.I+a.V-a.J}function tb(a){a.M=0;a.Lb=0;a.W=a.I=a.V=a.J=0;ub(a);wb(a,1)}
function wb(a,b){if(void 0!==b){.8>a.M/a.ba&&(b=1);a.ma=b;var c=a.wb*a.ma;if(a.ba!=c){a.ba=c;var c=a.ba.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}xb(a,a.I);a.I=0;a.D=ha();a.P=0;yb(a)}function Ab(a){a.V-=a.J;a.J=0}
m.Fb=function(){if(Fa(this,!0)){if(!this.h.ga){wb(this);this.s&&this.s.start(this.D,zb(this));this.h.ga=!0;this.h.Vb=!0;this.xa&&this.xa.start();var a=this.A.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.yb>=this.xb&&yb(this,!0);this.Ba=0;this.Ma=ha();this.P&&(a=this.Ma-this.P,a>this.Kb&&(this.D+=a,this.D>this.Ma&&(this.D=this.Ma)));try{do{for(var b=this.h.mb?1:this.lb,c=this.La.length-1;0<=c;c--){var d=this.La[c];0>d[0]||b>d[0]&&(b=d[0])}this.Wb(b);for(var f=this.V-this.J,a=f,e=this.La.length-
1;0<=e;e--){var h=this.La[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ba+=f;this.I+=f;xb(this,0,!0);a=f;if(this.h.mb){var g=!1;this.Na=this.Na+this.Qb()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,g=!0);0<=this.za&&this.za<=zb(this)&&(this.ya=this.za=-1,ub(this),O(this),g=!0);g&&this.X(zb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=f;if(0>=this.Aa){this.Aa+=this.lb;15<=++this.Lb&&(this.s&&this.s.Ka(),this.Lb=0);break}}while(this.h.ga)}catch(k){O(this);vb(this);this.s&&this.s.stop(ha(),
zb(this));Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Nb;this.P=ha();d=this.Kb;this.Ba&&(d=Math.round(d*this.Ba/this.lb));d=d-(this.P-this.Ma);if(f=this.P-this.D)this.M=Math.round(this.I/(10*f))/100,864E5<=f&&(this.W=0,wb(this));if(0>d||this.M<this.ba)-1E3>d&&(this.D-=d),d=0;this.yb+=this.Ba;this.P+=d;b(c,d)}else vb(this),this.s&&this.s.stop(ha(),zb(this))};m.Wb=function(){return 0};
function O(a){a.h.ab&&(a.h.zb=!0);Ab(a);xb(a,a.I);a.I=0;if(a.h.ga){a.h.ga=!1;a.xa&&a.xa.stop();var b=a.A.run;b&&(b.textContent="Run")}a.h.complete=void 0}function vb(a){a.s&&a.s.Ka(void 0)}
function Bb(a){this.bc=+a.model||1170;this.ec=a.resetAddr||0;qb.call(this,a,1E6);this.Hb=0;this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.m=15;this.a=[0,0,0,0,0,0,0,this.ec];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.pb=0;this.ja=2;this.la=255;this.u=0;this.na=-1;this.o=0;this.Fa=70;this.ob=this.eb=this.cb=this.j=this.ha=this.Xa=this.da=this.F=0;this.Ha=[7,7,7,7];this.N=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[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.Va=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Bb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.$b=!1}y(Bb,qb);m=Bb.prototype;
m.reset=function(){this.h.ga&&O(this);Cb(this);tb(this);this.h.error=!1;this.parent.reset.call(this)};function Cb(a){a.la=255;a.o=0;a.i=[];a.pb=0;a.F=a.da=a.Xa=a.ha=a.cb=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.eb=0}m.Qb=function(){return 0};
m.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.lb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?O(d):d.Eb())};a=!0;
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){wb(d,d.ma<<1)},c.textContent=this.ba.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.W+=b;c&&(a.V=a.J=0)}function yb(a,b){var c=1;b&&1<a.ma&&a.M&&(c=a.M/a.vb);a.Kb=Math.round(1E3/30);a.jb=Math.floor(a.wb/30*c);b||(a.Aa=a.jb);a.xb=0}function zb(a){return a.W+a.I+a.V-a.J}function tb(a){a.M=0;a.Lb=0;a.W=a.I=a.V=a.J=0;ub(a);wb(a,1)}
function wb(a,b){if(void 0!==b){.8>a.M/a.ba&&(b=1);a.ma=b;var c=a.vb*a.ma;if(a.ba!=c){a.ba=c;var c=a.ba.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}xb(a,a.I);a.I=0;a.D=ha();a.P=0;yb(a)}function Ab(a){a.V-=a.J;a.J=0}
m.Eb=function(){if(Fa(this,!0)){if(!this.h.ga){wb(this);this.s&&this.s.start(this.D,zb(this));this.h.ga=!0;this.h.Vb=!0;this.xa&&this.xa.start();var a=this.A.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.xb>=this.wb&&yb(this,!0);this.Ba=0;this.Ma=ha();this.P&&(a=this.Ma-this.P,a>this.Kb&&(this.D+=a,this.D>this.Ma&&(this.D=this.Ma)));try{do{for(var b=this.h.kb?1:this.jb,c=this.La.length-1;0<=c;c--){var d=this.La[c];0>d[0]||b>d[0]&&(b=d[0])}this.Wb(b);for(var f=this.V-this.J,a=f,e=this.La.length-
1;0<=e;e--){var h=this.La[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ba+=f;this.I+=f;xb(this,0,!0);a=f;if(this.h.kb){var g=!1;this.Na=this.Na+this.Qb()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,g=!0);0<=this.za&&this.za<=zb(this)&&(this.ya=this.za=-1,ub(this),O(this),g=!0);g&&this.X(zb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=f;if(0>=this.Aa){this.Aa+=this.jb;15<=++this.Lb&&(this.s&&this.s.Ka(),this.Lb=0);break}}while(this.h.ga)}catch(k){O(this);vb(this);this.s&&this.s.stop(ha(),
zb(this));Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Nb;this.P=ha();d=this.Kb;this.Ba&&(d=Math.round(d*this.Ba/this.jb));d=d-(this.P-this.Ma);if(f=this.P-this.D)this.M=Math.round(this.I/(10*f))/100,864E5<=f&&(this.W=0,wb(this));if(0>d||this.M<this.ba)-1E3>d&&(this.D-=d),d=0;this.xb+=this.Ba;this.P+=d;b(c,d)}else vb(this),this.s&&this.s.stop(ha(),zb(this))};m.Wb=function(){return 0};
function O(a){a.h.Za&&(a.h.yb=!0);Ab(a);xb(a,a.I);a.I=0;if(a.h.ga){a.h.ga=!1;a.xa&&a.xa.stop();var b=a.A.run;b&&(b.textContent="Run")}a.h.complete=void 0}function vb(a){a.s&&a.s.Ka(void 0)}
function Bb(a){this.bc=+a.model||1170;this.ec=a.resetAddr||0;qb.call(this,a,1E6);this.Hb=0;this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.l=15;this.a=[0,0,0,0,0,0,0,this.ec];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.nb=0;this.ja=2;this.la=255;this.u=0;this.na=-1;this.o=0;this.Fa=70;this.mb=this.bb=this.ab=this.j=this.ha=this.Va=this.da=this.F=0;this.Ha=[7,7,7,7];this.N=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[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.Ua=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Ab=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.$b=!1}y(Bb,qb);m=Bb.prototype;
m.reset=function(){this.h.ga&&O(this);Cb(this);tb(this);this.h.error=!1;this.parent.reset.call(this)};function Cb(a){a.la=255;a.o=0;a.i=[];a.nb=0;a.F=a.da=a.Va=a.ha=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Qb=function(){return 0};
m.save=function(){var a=new P(this);Q(a,0,[]);Q(a,1,[this.Jb,this.W,this.ma]);for(var b=this.v,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.cc){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}Q(a,2,d);return a.data()};
m.restore=function(a){var b=a[1];this.Jb=b[0];this.W=b[1];wb(this,b[3]);a:{b=this.v;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,h=Array(b.J),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.aa=function(a,b,c){var d=!1;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 "PSW":this.A[b]=c;this.Hb++;d=!0;break;default:d=this.parent.aa.call(this,a,b,c)}return d};
m.Ka=function(a){if(this.Hb&&(a||!this.h.ga||this.h.Ob)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=this.m&-16|(this.c&32768?8:0)|(this.f&65535?0:4)|(this.b&32768?2:0)|(this.g&65536?1:0);N(this,"PSW",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.A.speed)a.textContent=this.h.ga&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].uc===d){0<e&&(a.i[e-1].ea+=a.i[e].ea);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Nb,0));for(e=a.i.length;0<e--;){if(a.i[e].ea>b){a.i[e].ea-=b;break}b-=a.i[e].ea}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}
m.Wa=function(a){this.c=a<<12;this.f=~a&4;this.b=a<<14;this.g=a<<16;if((a^this.m)&2048)for(var b=this.Ia.length;0<=--b;){var c=this.a[b];this.a[b]=this.Ia[b];this.Ia[b]=c}this.j=a>>14&3;b=this.m>>14&3;this.j!=b&&(this.Y[b]=this.a[6],this.a[6]=this.Y[this.j]);this.ja=2;this.m=a};m.Ra=function(){return this.m=this.m&63728|(this.c&32768?8:0)|(this.f&65535?0:4)|(this.b&32768?2:0)|(this.g&65536?1:0)};function ab(a){console.log("panic("+a+")")}
function L(a,b){var c,d,f=0;0>a.na?a.na=a.Ra():a.j||(b=4,f=1);a.F&57344||(a.da=63222,a.Xa=b);a.j=0;0<=(c=R(a,b|65536))&&0<=(d=R(a,b+2&65535|65536))&&(a.Wa(d&53247|a.na>>2&12288),f&&(a.o|=4,a.a[6]=4),0<=S(a,a.na)&&0<=S(a,a.a[7])&&(a.a[7]=c));a.u=0;return a.na=-1}
function Db(a,b,c){var d,f,e,h=0;if(c&a.cb){d=b>>13&a.Ha[a.j];f=a.N[a.j][d];e=(a.N[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ha&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.ha&32&&(e=a.Va[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&ab(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.o|=32,L(a,4);if(e&1&&!(c&1))return a.o|=64,L(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:
128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.N[a.j][d]=f;if(4194170!==e||a.j)a.eb=a.j,a.ob=d;if(h){if(h&57344)return 0<=a.na&&(h|=128),a.F&57344||(a.F=a.F|h|a.eb<<5|a.ob<<1),L(a,168);a.F&61440||!(4191360>e||4194239<e)||(a.F|=4096,a.F&512&&(a.u|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return a.o|=64,L(a,4);return e}
function J(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.v;var d=b&c.i,f=(b&c.v)>>>c.f;c=d!=c.i?c.b[f].jc(d,b):c.b[f++].gb(d,b)|c.b[f&c.M].gb(0,b+1)<<8}else c=b;return c}function I(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.v;var d=c,f=b&a.i,e=(b&a.v)>>>a.f;f!=a.i?a.b[e].vc(f,d&65535,b):(a.b[e++].kb(f,d&255,b),a.b[e&a.M].kb(0,d>>8&255,b+1));return c}return b}
function T(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.v,c=c.b[(b&c.v)>>>c.f].gb(b&c.i,b)):c=b;return c}function U(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.v,a.b[(b&a.v)>>>a.f].kb(b&a.i,c&255,b),c):b}function R(a,b){return J(a,Db(a,b,2))}function Eb(a){var b=R(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
function S(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.F&57344||(a.da=a.da<<8|246);if(!a.j&&d<=a.la&&4<d){if(d<=a.la-32)return a.o|=4,a.a[6]=4,L(a,4);a.o|=8;a.u|=4}return 0<=(c=Db(a,d|65536,4))?I(a,c,b):c}
function V(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return L(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32||65534<=a.a[6])return a.o|=4,a.a[6]=4,L(a,4);a.o|=8;a.u|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=R(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
R(a,d)))return d;d|=65536;break;case 6:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=R(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.F&57344||(a.da=a.da<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32)return a.o|=4,a.a[6]=4,L(a,4);a.o|=8;a.u|=4}return d}
function W(a,b,c){var d;return b&56?(0<=(d=V(a,b,c))&&(d=Db(a,d,c)),d):4194304+(b&7)}function X(a,b){var c;b&56?0<=(c=W(a,b,2))&&(c=J(a,c)):c=a.a[b&7];return c}function Y(a,b){var c;b&56?0<=(c=W(a,b,3))&&(c=T(a,c)):c=a.a[b&7]&255;return c}function Z(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.Wb=function(a){this.h.complete=!0;this.h.$b=!1;this.h.Vb=!1;this.V=this.J=a;this.Jb&256?(Ab(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.pb&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].ea){this.i[a].ea--;this.ja=2;break}if(this.i[a].Mb){if(!this.i[a].Mb()){this.i.splice(a,1);e--;continue}this.i[a].Mb=null}this.i[a].ic>b&&(b=this.i[a].ic,e=a)}b>(this.m&224)&&(0>e?L(this,160):(L(this,this.i[e].uc),this.i.splice(e,1)))}this.F&57344||
(this.da=0,this.Xa=this.a[7]);this.u=this.m&16;if(0<=(a=R(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=X(this,a>>6))&&(a&56?0<=(d=W(this,a,4))&&0<=I(this,d,b)&&(this.c=this.f=b,this.b=0):(this.c=this.f=this.a[a&7]=b,this.b=0));break;case 8192:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=this.g=a=b-c,this.b=(b^c)&(b^a));break;case 12288:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=b&c,this.b=0);break;case 16384:0<=(b=X(this,a>>6))&&(a&56?0<=(c=J(this,
d=W(this,a,6)))&&(a=c&~b,0<=I(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]&=~b,this.b=0));break;case 20480:0<=(b=X(this,a>>6))&&(a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c|b,0<=I(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=X(this,a>>6))&&(a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=b+c,0<=I(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&
m.aa=function(a,b,c){var d=!1;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.A[b]=c;this.Hb++;d=!0;break;default:d=this.parent.aa.call(this,a,b,c)}return d};
m.Ka=function(a){if(this.Hb&&(a||!this.h.ga||this.h.Ob)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=this.l&-16|(this.c&32768?8:0)|(this.f&65535?0:4)|(this.b&32768?2:0)|(this.g&65536?1:0);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.A.speed)a.textContent=this.h.ga&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].uc===d){0<e&&(a.i[e-1].ea+=a.i[e].ea);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Nb,0));for(e=a.i.length;0<e--;){if(a.i[e].ea>b){a.i[e].ea-=b;break}b-=a.i[e].ea}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}m.qb=function(){return this.l=this.l&63728|(this.c&32768?8:0)|(this.f&65535?0:4)|(this.b&32768?2:0)|(this.g&65536?1:0)};
function Db(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.l)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.l>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.l=b}m.Fb=function(a){Db(this,a&63727|this.l&1808)};function ab(a){console.log("panic("+a+")")}
function J(a,b){var c,d,f=0;0>a.na?a.na=a.qb():a.j||(b=4,f=1);a.F&57344||(a.da=63222,a.Va=b);a.j=0;0<=(c=R(a,b|65536))&&0<=(d=R(a,b+2&65535|65536))&&(Db(a,d&53247|a.na>>2&12288),f&&(a.o|=4,a.a[6]=4),0<=S(a,a.na)&&0<=S(a,a.a[7])&&(a.a[7]=c));a.u=0;return a.na=-1}
function Eb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.N[a.j][d];e=(a.N[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ha&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.ha&32&&(e=a.Ua[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&ab(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.o|=32,J(a,4);if(e&1&&!(c&1))return a.o|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:
128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.N[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.mb=d;if(h){if(h&57344)return 0<=a.na&&(h|=128),a.F&57344||(a.F=a.F|h|a.bb<<5|a.mb<<1),J(a,168);a.F&61440||!(4191360>e||4194239<e)||(a.F|=4096,a.F&512&&(a.u|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return a.o|=64,J(a,4);return e}
function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.v;var d=b&c.i,f=(b&c.v)>>>c.f;c=d!=c.i?c.b[f].jc(d,b):c.b[f++].eb(d,b)|c.b[f&c.M].eb(0,b+1)<<8}else c=b;return c}function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.v;var d=c,f=b&a.i,e=(b&a.v)>>>a.f;f!=a.i?a.b[e].vc(f,d&65535,b):(a.b[e++].ib(f,d&255,b),a.b[e&a.M].ib(0,d>>8&255,b+1));return c}return b}
function T(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.v,c=c.b[(b&c.v)>>>c.f].eb(b&c.i,b)):c=b;return c}function U(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.v,a.b[(b&a.v)>>>a.f].ib(b&a.i,c&255,b),c):b}function R(a,b){return M(a,Eb(a,b,2))}function Fb(a){var b=R(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
function S(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.F&57344||(a.da=a.da<<8|246);if(!a.j&&d<=a.la&&4<d){if(d<=a.la-32)return a.o|=4,a.a[6]=4,J(a,4);a.o|=8;a.u|=4}return 0<=(c=Eb(a,d|65536,4))?L(a,c,b):c}
function V(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32||65534<=a.a[6])return a.o|=4,a.a[6]=4,J(a,4);a.o|=8;a.u|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=R(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
R(a,d)))return d;d|=65536;break;case 6:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=R(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.F&57344||(a.da=a.da<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32)return a.o|=4,a.a[6]=4,J(a,4);a.o|=8;a.u|=4}return d}
function W(a,b,c){var d;return b&56?(0<=(d=V(a,b,c))&&(d=Eb(a,d,c)),d):4194304+(b&7)}function X(a,b){var c;b&56?0<=(c=W(a,b,2))&&(c=M(a,c)):c=a.a[b&7];return c}function Y(a,b){var c;b&56?0<=(c=W(a,b,3))&&(c=T(a,c)):c=a.a[b&7]&255;return c}function Z(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.Wb=function(a){this.h.complete=!0;this.h.$b=!1;this.h.Vb=!1;this.V=this.J=a;this.Jb&256?(Ab(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.nb&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].ea){this.i[a].ea--;this.ja=2;break}if(this.i[a].Mb){if(!this.i[a].Mb()){this.i.splice(a,1);e--;continue}this.i[a].Mb=null}this.i[a].ic>b&&(b=this.i[a].ic,e=a)}b>(this.l&224)&&(0>e?J(this,160):(J(this,this.i[e].uc),this.i.splice(e,1)))}this.F&57344||
(this.da=0,this.Va=this.a[7]);this.u=this.l&16;if(0<=(a=R(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=X(this,a>>6))&&(a&56?0<=(d=W(this,a,4))&&0<=L(this,d,b)&&(this.c=this.f=b,this.b=0):(this.c=this.f=this.a[a&7]=b,this.b=0));break;case 8192:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=this.g=a=b-c,this.b=(b^c)&(b^a));break;case 12288:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=b&c,this.b=0);break;case 16384:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,
d=W(this,a,6)))&&(a=c&~b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]&=~b,this.b=0));break;case 20480:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c|b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=b+c,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&
(c^a)));break;case 36864:0<=(b=Y(this,a>>6))&&(a&56?0<=(d=W(this,a,5))&&0<=U(this,d,b)&&(this.c=this.f=b<<8,this.b=0):(b&128&&(b|=65280),this.c=this.f=this.a[a&7]=b,this.b=0));break;case 40960:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(a=b-c,this.c=this.f=this.g=a<<8,this.b=((b^c)&(b^a))<<8);break;case 45056:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(this.c=this.f=(b&c)<<8,this.b=0);break;case 49152:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c&~b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));
break;case 53248:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c|b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=X(this,a>>6))&&(a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c-b,0<=I(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=V(this,a,0))&&(e=a>>6&7,0<=S(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=
break;case 53248:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c|b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-b,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=V(this,a,0))&&(e=a>>6&7,0<=S(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=
(b=X(this,a))&&(e=a>>6&7,b&32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.c=a>>16,this.f=this.c|a,this.g=this.b=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=X(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.b=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.c=a>>16):(this.b=32768,this.f=a>>15|a,this.c=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=
this.a[e|1]=1))):(this.f=this.c=0,this.b=32768,this.g=65536));break;case 29696:0<=(b=X(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.b=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.b=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.b=32768))),this.a[e]=a&65535,this.c=this.f=a);break;case 30208:if(0<=(b=X(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.b=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&
(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.b=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.c=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=J(this,d=W(this,a,6)))&&(c^=this.a[a>>6&7],0<=I(this,d,c)&&(this.c=this.f=c,this.b=0)):(this.c=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.b=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&
(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.b=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.c=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=M(this,d=W(this,a,6)))&&(c^=this.a[a>>6&7],0<=L(this,d,c)&&(this.c=this.f=c,this.b=0)):(this.c=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.b=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&
65280){case 256:this.a[7]=Z(this.a[7],a);break;case 512:this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=Z(this.a[7],a));break;case 1024:(this.c&32768)===(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1280:(this.c&32768)!==(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1536:this.f&65535&&(this.c&32768)===(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1792:this.f&65535&&(this.c&32768)===(this.b&32768)||(this.a[7]=Z(this.a[7],a));break;case 32768:this.c&
32768||(this.a[7]=Z(this.a[7],a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 33024:this.c&32768&&(this.a[7]=Z(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=Z(this.a[7],a);break;case 33792:this.b&32768||(this.a[7]=Z(this.a[7],a));break;case 34048:this.b&32768&&(this.a[7]=Z(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=Z(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=Z(this.a[7],a));break;case 34816:L(this,24);
break;case 35072:L(this,28);break;default:switch(a&65472){case 64:0<=(f=V(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c<<8|c>>8,0<=I(this,d,a)&&(this.c=this.f=c&65280,this.b=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.c=this.f=c&65280,this.b=this.g=0);break;case 2560:a&56?0<=(d=W(this,a,4))&&0<=I(this,d,0)&&(this.c=this.g=this.b=this.f=0):this.c=this.g=this.b=this.f=this.a[a&7]=0;break;case 2624:0<=(c=J(this,d=W(this,a,6)))&&(a=~c,0<=I(this,
d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c+1,0<=I(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c-1,0<=I(this,d,a)&&(this.c=this.f=a,this.b=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=J(this,d=W(this,a,6)))&&(a=-c,0<=I(this,d,a)&&(this.g=this.c=this.f=
a,this.b=a&c));break;case 2880:0<=(c=J(this,d=W(this,a,6)))&&(a=c+(this.g>>16&1),0<=I(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=J(this,d=W(this,a,6)))&&(a=c-(this.g>>16&1),0<=I(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=X(this,a))&&(this.c=this.f=c,this.g=this.b=0);break;case 3072:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=I(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|
c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=I(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c&32768|c>>1,0<=I(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=
this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=J(this,d=W(this,a,6)))&&(a=c<<1,0<=I(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=R(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=V(this,a,0))&&(61440!==(this.m&61440)&&(f&=65535),this.j=this.m>>12&3,0<=(b=R(this,f))&&(this.j=this.m>>14&3,0<=S(this,b)&&(this.c=
this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.m>>2&12288)===(this.m&12288)?this.a[e]:this.Y[this.m>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Eb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(f&=65535,this.j=this.m>>12&3,0<=(d=Db(this,f,4))&&(this.j=this.m>>14&3,0<=I(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.m>>2&12288)===(this.m&12288)?this.a[e]=c:this.Y[this.m>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=W(this,a,4))&&(a=-(this.c>>
15&1),0<=I(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=W(this,a,5))&&0<=U(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=T(this,d=W(this,a,7)))&&(a=~c,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=(c=T(this,d=W(this,a,7)))&&(a=c+1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=T(this,d=W(this,a,7)))&&(a=c-1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=
32768||(this.a[7]=Z(this.a[7],a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 33024:this.c&32768&&(this.a[7]=Z(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=Z(this.a[7],a);break;case 33792:this.b&32768||(this.a[7]=Z(this.a[7],a));break;case 34048:this.b&32768&&(this.a[7]=Z(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=Z(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=Z(this.a[7],a));break;case 34816:J(this,24);
break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(f=V(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<8|c>>8,0<=L(this,d,a)&&(this.c=this.f=c&65280,this.b=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.c=this.f=c&65280,this.b=this.g=0);break;case 2560:a&56?0<=(d=W(this,a,4))&&0<=L(this,d,0)&&(this.c=this.g=this.b=this.f=0):this.c=this.g=this.b=this.f=this.a[a&7]=0;break;case 2624:0<=(c=M(this,d=W(this,a,6)))&&(a=~c,0<=L(this,
d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c+1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=M(this,d=W(this,a,6)))&&(a=-c,0<=L(this,d,a)&&(this.g=this.c=this.f=
a,this.b=a&c));break;case 2880:0<=(c=M(this,d=W(this,a,6)))&&(a=c+(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=M(this,d=W(this,a,6)))&&(a=c-(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=X(this,a))&&(this.c=this.f=c,this.g=this.b=0);break;case 3072:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|
c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c&32768|c>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=
this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=R(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=V(this,a,0))&&(61440!==(this.l&61440)&&(f&=65535),this.j=this.l>>12&3,0<=(b=R(this,f))&&(this.j=this.l>>14&3,0<=S(this,b)&&(this.c=
this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.l>>2&12288)===(this.l&12288)?this.a[e]:this.Y[this.l>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Fb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(f&=65535,this.j=this.l>>12&3,0<=(d=Eb(this,f,4))&&(this.j=this.l>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.l>>2&12288)===(this.l&12288)?this.a[e]=c:this.Y[this.l>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=W(this,a,4))&&(a=-(this.c>>
15&1),0<=L(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=W(this,a,5))&&0<=U(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=T(this,d=W(this,a,7)))&&(a=~c,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=(c=T(this,d=W(this,a,7)))&&(a=c+1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=T(this,d=W(this,a,7)))&&(a=c-1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=
((a^c)&c)<<8));break;case 35584:0<=(c=T(this,d=W(this,a,7)))&&(a=-c,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a&c)<<8));break;case 35648:0<=(c=T(this,d=W(this,a,7)))&&(a=c+(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=(a&(a^c))<<8));break;case 35712:0<=(c=T(this,d=W(this,a,7)))&&(a=c-(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=((a^c)&c)<<8));break;case 35776:0<=(c=Y(this,a))&&(this.c=this.f=c<<8,this.g=this.b=0);break;case 35840:0<=(c=T(this,d=W(this,
a,7)))&&(a=((this.g&65536)>>8|c)>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 35904:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 35968:0<=(c=T(this,d=W(this,a,7)))&&(a=c&128|c>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 36032:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 36160:a&
56?0<=(f=V(this,a,0))&&(this.j=this.m>>12&3,0<=(b=R(this,f|65536))&&(this.j=this.m>>14&3,0<=S(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.m>>2&12288)===(this.m&12288)?this.a[e]:this.Y[this.m>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Eb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(this.j=this.m>>12&3,0<=(d=Db(this,f|65536,4))&&(this.j=this.m>>14&3,0<=I(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.m>>2&12288)===(this.m&
12288)?this.a[e]=c:this.Y[this.m>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Eb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.m&49152||(this.m=this.m&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.m?(this.o|=128,L(this,4)):(this.Ca=3,
Ab(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].ea,this.i[a].ea=0;0===e&&0===this.Ca&&(this.Ca=2,Ab(this));break;case 3:L(this,12);break;case 4:L(this,16);break;case 5:this.m&49152||(Cb(this),this.v.reset());break;case 2:case 6:d=this.a[6];0<=(f=R(this,d|65536))&&(d=d+2&65535,0<=(b=R(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.m&49152&&(b=b&63519|this.m&63712),this.a[7]=f,this.Wa(b),this.u&=-17,2===a&&(this.u|=this.m&
16)));break;default:L(this,8)}}}}}}this.u&&(this.u&2?L(this,168):this.u&4?L(this,4):this.u&16&&L(this,12),this.u=0)}while(0<this.J)}return this.h.complete?this.V-this.J: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 Bb(d);B(d,c)}});
function Fb(a){v.call(this,"ROM",a,Fb);this.b=null;this.s=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.i=a.file;this.D=ba(this.i);if(this.i){a=this.i;var b=ca(this.D);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Gb(c,a,b,e)})}}y(Fb);Fb.prototype.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;Hb(this)};Fb.prototype.ua=function(){this.j&&(this.H&&this.H.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
Fb.prototype.ta=function(){return!0};
function Gb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Gb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.K("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]);Hb(a)}}
function Hb(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.v){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.K(b)}else{b=a.s;if(Pa(a.v,b,a.f,a.u?1:hb)){var c;for(c=0;c<a.b.length;c++){var d=a.v,f=b+c;d.b[(f&d.v)>>>d.f].Xb(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.v,h=e.f,g=[],k=e.s>>>f.f;0<h&&
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.v;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(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 Fb(d);B(d,c)}});function Ib(a){v.call(this,"RAM",a,Ib);this.g=a.addr;this.f=a.size;this.b=!1}y(Ib);m=Ib.prototype;m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.f&&Pa(this.v,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.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 Ib(d);B(d,c)}});function Jb(a){v.call(this,"Keyboard",a,Jb);D(this)}y(Jb);Jb.prototype.aa=function(){return!1};Jb.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.H=d;this.xa=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 Jb(d);B(d,c)}});
function Kb(a,b,c){v.call(this,"Computer",a,Kb);this.h.L=!1;Lb(this,b);this.J=sb(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.b=Mb;this.D=null;this.s=this.V=!1;this.url=sb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Nb(this);if(this.c=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.v=new E({id:this.Gb+".bus",busWidth:this.ba},this.c,this.H);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.Ab)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.Ab=
this.i.Ab;this.X("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.X("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.Ga&&d.Ga(this,this.v,this.c,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=sb(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.s=!0,this.b=Mb),this.b&&(this.I=
new P(this,"1.30.0"),Ob(this.I)?b=null:delete this.I);!b&&this.b&&(b=Pb(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.u=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.D=b,h.V=!0);D(h)})}else D(this);this.A.power||(this.J=!0);!c&&this.J&&Qb(this,this.fb)}else q("Unable to find CPU component")}y(Kb);var Mb=0;
function Lb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.W=b}function sb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.W&&(d=a.W[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Qb(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(){Qb(a,b,c)});return}}b.call(a,c)}
function Rb(a,b){var c=new P(a,"1.30.0","validate");if(Ob(c)&&Sb(c)){var d=Tb(c,"timestamp"),f=b?Tb(b,"timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Kb.prototype;
m.fb=function(a){void 0===a&&(a=this.b||(this.D?1:Mb));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.I||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Mb){if(Ob(d,this.D)){this.j=new P(this,"1.30.0","failsafe");Ob(this.j)&&(Ub(this,d),a=2,Vb(this.j));Q(this.j,"timestamp",ia());Wb(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Sb(d)){var e=Tb(d,"code"),h=Tb(d,"data");e&&("ok"==e?Ob(d,h):("error"==e&&
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),Vb(d),Ob(d)?(c=Sb(d),f=!0):c=!1))}f&&Rb(this,c?d:null)}else 2==a&&d.clear()}else Rb(this);delete this.D;delete this.I}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=Xb(this,h,d,b,c));b=[d,a,c];-1!=a?Qb(this,this.Pb,b):this.Pb(b)}};
function Xb(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Tb(c,b.id))||(e=Tb(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Mb,window&&window.location.reload()):a.P=!0,b.ua(null),f=!1)}if(!d&&b.Ib)for(a=b.Ib.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.h.L=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.c&&(Xb(this,this.c,b,c,a),this.c.Za());this.P&&(Ub(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
function Ub(a,b){if(ja("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||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
function Yb(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new P(a,"1.30.0"),h=new P(a,"1.30.0","validate"),g=ia();Q(h,"timestamp",g);Q(e,"timestamp",g);Q(e,"version","1.30.0");Q(e,"url",window?window.location.href:null);Q(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&O(a.c),d=a.c.ta(b,c),"object"===typeof d&&Q(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&Q(e,l.id,d)),c&&(l.h.L=
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&Zb(a,a.f,e.toString()),Wb(h)&&Wb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.A.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.v&&this.v.reset&&this.v.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c.reset&&c.reset()}};m.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)}};
56?0<=(f=V(this,a,0))&&(this.j=this.l>>12&3,0<=(b=R(this,f|65536))&&(this.j=this.l>>14&3,0<=S(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.l>>2&12288)===(this.l&12288)?this.a[e]:this.Y[this.l>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Fb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(this.j=this.l>>12&3,0<=(d=Eb(this,f|65536,4))&&(this.j=this.l>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.l>>2&12288)===(this.l&
12288)?this.a[e]=c:this.Y[this.l>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Fb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.l&49152||(this.l=this.l&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.l?(this.o|=128,J(this,4)):(this.Ca=3,
Ab(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].ea,this.i[a].ea=0;0===e&&0===this.Ca&&(this.Ca=2,Ab(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.l&49152||(Cb(this),this.v.reset());break;case 2:case 6:d=this.a[6];0<=(f=R(this,d|65536))&&(d=d+2&65535,0<=(b=R(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.l&49152&&(b=b&63519|this.l&63712),this.a[7]=f,Db(this,b),this.u&=-17,2===a&&(this.u|=this.l&
16)));break;default:J(this,8)}}}}}}this.u&&(this.u&2?J(this,168):this.u&4?J(this,4):this.u&16&&J(this,12),this.u=0)}while(0<this.J)}return this.h.complete?this.V-this.J: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 Bb(d);B(d,c)}});
function Gb(a){v.call(this,"ROM",a,Gb);this.b=null;this.s=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.i=a.file;this.D=ba(this.i);if(this.i){a=this.i;var b=ca(this.D);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Hb(c,a,b,e)})}}y(Gb);Gb.prototype.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;Ib(this)};Gb.prototype.ua=function(){this.j&&(this.H&&this.H.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
Gb.prototype.ta=function(){return!0};
function Hb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Gb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.K("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]);Ib(a)}}
function Ib(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.v){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.K(b)}else{b=a.s;if(Pa(a.v,b,a.f,a.u?1:hb)){var c;for(c=0;c<a.b.length;c++){var d=a.v,f=b+c;d.b[(f&d.v)>>>d.f].Xb(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.v,h=e.f,g=[],k=e.s>>>f.f;0<h&&
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.v;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(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 Gb(d);B(d,c)}});function Jb(a){v.call(this,"RAM",a,Jb);this.g=a.addr;this.f=a.size;this.b=!1}y(Jb);m=Jb.prototype;m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.f&&Pa(this.v,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.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 Jb(d);B(d,c)}});function Kb(a){v.call(this,"Keyboard",a,Kb);D(this)}y(Kb);Kb.prototype.aa=function(){return!1};Kb.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.H=d;this.xa=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 Kb(d);B(d,c)}});
function Lb(a,b,c){v.call(this,"Computer",a,Lb);this.h.L=!1;Mb(this,b);this.J=sb(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.b=Nb;this.D=null;this.s=this.V=!1;this.url=sb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Ob(this);if(this.c=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.v=new E({id:this.Gb+".bus",busWidth:this.ba},this.c,this.H);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.zb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.zb=
this.i.zb;this.X("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.X("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.Ga&&d.Ga(this,this.v,this.c,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=sb(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.s=!0,this.b=Nb),this.b&&(this.I=
new P(this,"1.30.0"),Pb(this.I)?b=null:delete this.I);!b&&this.b&&(b=Qb(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.u=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.D=b,h.V=!0);D(h)})}else D(this);this.A.power||(this.J=!0);!c&&this.J&&Rb(this,this.cb)}else q("Unable to find CPU component")}y(Lb);var Nb=0;
function Mb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.W=b}function sb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.W&&(d=a.W[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Rb(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(){Rb(a,b,c)});return}}b.call(a,c)}
function Sb(a,b){var c=new P(a,"1.30.0","validate");if(Pb(c)&&Tb(c)){var d=Ub(c,"timestamp"),f=b?Ub(b,"timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Lb.prototype;
m.cb=function(a){void 0===a&&(a=this.b||(this.D?1:Nb));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.I||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Nb){if(Pb(d,this.D)){this.j=new P(this,"1.30.0","failsafe");Pb(this.j)&&(Vb(this,d),a=2,Wb(this.j));Q(this.j,"timestamp",ia());Xb(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Tb(d)){var e=Ub(d,"code"),h=Ub(d,"data");e&&("ok"==e?Pb(d,h):("error"==e&&
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),Wb(d),Pb(d)?(c=Tb(d),f=!0):c=!1))}f&&Sb(this,c?d:null)}else 2==a&&d.clear()}else Sb(this);delete this.D;delete this.I}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=Yb(this,h,d,b,c));b=[d,a,c];-1!=a?Rb(this,this.Pb,b):this.Pb(b)}};
function Yb(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Ub(c,b.id))||(e=Ub(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Nb,window&&window.location.reload()):a.P=!0,b.ua(null),f=!1)}if(!d&&b.Ib)for(a=b.Ib.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.h.L=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.c&&(Yb(this,this.c,b,c,a),this.c.Xa());this.P&&(Vb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
function Vb(a,b){if(ja("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||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
function Zb(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new P(a,"1.30.0"),h=new P(a,"1.30.0","validate"),g=ia();Q(h,"timestamp",g);Q(e,"timestamp",g);Q(e,"version","1.30.0");Q(e,"url",window?window.location.href:null);Q(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&O(a.c),d=a.c.ta(b,c),"object"===typeof d&&Q(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&Q(e,l.id,d)),c&&(l.h.L=
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&$b(a,a.f,e.toString()),Xb(h)&&Xb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.A.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.v&&this.v.reset&&this.v.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c.reset&&c.reset()}};m.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)}};
m.stop=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.stop&&f.stop(a,b)}};
m.aa=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.g||(d.h.L?Yb(d,!1,!0):Qb(d,d.fb))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Yb(d,a,!0);!a&&d.M?window&&window.location.reload():d.fb(Mb)}else d.reset(),d.c&&d.c.Za()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=
c;c.onclick=function(){var a=Nb(d,!0);if(a){var b=!!(d.b&&!d.u||d.M),c=Yb(d,b);b?Zb(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
function Nb(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=$b(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
function $b(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Pb(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+ac(a,"1.30.0"));return b}
function Zb(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ac(a,"1.30.0");d.data=c;b=p(ea()+"/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.K("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.K(c),na("user",""),a.f=null)}}
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Kb(h,d,!0);B(h,e);h.J&&Qb(h,h.fb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.h.L&&c.fb(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&Yb(c,!(!c.b||c.u),!0)}});function P(a,b,c){this.id=a.id;this.key=ac(a,b,c);this.H=a.H;Vb(this,a.dc)}function ac(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}
P.prototype={constructor:P,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){Vb(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 Vb(a,b){a[a.id]={};b&&Q(a,"parms",b);a.c=!1}function Wb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Sb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Ob(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Tb(a,b){return a[a.id][b]||null}function Q(a,b,c){try{a[a.id][b]=c}catch(d){}}var bc=0;
function cc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):dc(g,a,b,c,d,f,e)})}
function dc(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?ec(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function ec(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);ec(a,b,c)}})}else c(a,null)}
function fc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--bc||ua(!0));k=!1}var h,g,k=!0;bc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?cc(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--bc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--bc||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?cc(b,a,d,!0,f,l):dc(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return fc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
m.aa=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.g||(d.h.L?Zb(d,!1,!0):Rb(d,d.cb))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Zb(d,a,!0);!a&&d.M?window&&window.location.reload():d.cb(Nb)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=
c;c.onclick=function(){var a=Ob(d,!0);if(a){var b=!!(d.b&&!d.u||d.M),c=Zb(d,b);b?$b(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
function Ob(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ac(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
function ac(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Qb(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+bc(a,"1.30.0"));return b}
function $b(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=bc(a,"1.30.0");d.data=c;b=p(ea()+"/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.K("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.K(c),na("user",""),a.f=null)}}
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Lb(h,d,!0);B(h,e);h.J&&Rb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.h.L&&c.cb(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&Zb(c,!(!c.b||c.u),!0)}});function P(a,b,c){this.id=a.id;this.key=bc(a,b,c);this.H=a.H;Wb(this,a.dc)}function bc(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}
P.prototype={constructor:P,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){Wb(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 Wb(a,b){a[a.id]={};b&&Q(a,"parms",b);a.c=!1}function Xb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Tb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Pb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Ub(a,b){return a[a.id][b]||null}function Q(a,b,c){try{a[a.id][b]=c}catch(d){}}var cc=0;
function dc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):ec(g,a,b,c,d,f,e)})}
function ec(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?fc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function fc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);fc(a,b,c)}})}else c(a,null)}
function gc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--cc||ua(!0));k=!1}var h,g,k=!0;cc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?dc(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--cc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--cc||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?dc(b,a,d,!0,f,l):ec(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return gc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();