Enable the Debugger to get/set front panel switches as register SW

This commit is contained in:
Jeff 2016-11-02 19:41:29 -07:00 committed by Jeff Parsons
commit b3bf213cd9
8 changed files with 563 additions and 454 deletions

View file

@ -709,7 +709,8 @@ case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d
function pq(a,b,c){var d;if(b){b=qq(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=qa(n);if(!n){f=!0;break}n=rq(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],q=n.length;k.length&&nq[n]<nq[k[k.length-1]]&&oq(h,k,1);k.push(n);b=b.substr(t+q)}oq(h,k)&&1==h.length||(f=!0);f?c&&a.O("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&sq(a,null,
d))}return d}function qq(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=pq(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?tq(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=a.Pk(b,c[1]);for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.pa-a.Ca}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function rq(a,b,c,d){var e;null!=b?(e=a.oh(b),0<=e?e=a.ph(e):(e=a.ya[b],null==e&&(e=ea(b,a.Ya))),null!=e||d||a.O("invalid "+(c?c:"value")+": "+b)):d||a.O("missing "+(c||"value"));return e}function sq(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=r(c,0,!0)+" "+c+". "+ia(c,0,!0)+" "+ha(c,0,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.O((null!=b?b+": ":"")+d);return e}function uq(a,b){if(b)return sq(a,b,a.ya[b]);var c=0;for(b in a.ya)sq(a,b,a.ya[b]),c++;return 0<c}
function tq(a,b){switch(a.Ya){case 8:a=ia(b,NaN);break;case 10:a=b.toString();break;default:a=r(b,NaN)}return a}function vq(a){mq.call(this,a);this.Ja=4;this.Da=5;this.Ba=1048575;this.aa=wq(this);this.Db=wq(this);this.ua=wq(this);this.N=[];this.B=this.ra=this.fa=[];xq(this);this.Oa=0;yq(this);this.cb={};zq(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return Aq(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return Aq(b,a)})}jb(vq,mq);
function tq(a,b){switch(a.Ya){case 8:a=ia(b,Math.round(8/3*NaN));break;case 10:a=b.toString();break;default:a=r(b,NaN)}return a}
function vq(a){mq.call(this,a);this.Ja=4;this.Da=5;this.Ba=1048575;this.aa=wq(this);this.Db=wq(this);this.ua=wq(this);this.N=[];this.B=this.ra=this.fa=[];xq(this);this.Oa=0;yq(this);this.cb={};zq(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return Aq(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return Aq(b,a)})}jb(vq,mq);
var Bq={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Cq=[26,28,40,42,109],Dq={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Eq="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
Fq="FLD FST FSTP FXCH FILD FIST FISTP FBLD FBSTP FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FSQRT FSCALE FPREM FRNDINT FXTRACT FABS FCHS FCOM FCOMP FCOMPP FICOM FICOMP FTST FXAM FPTAN FPATAN F2XM1 FYL2X FYL2XP1 FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 FINIT FNINIT FDISI FNDISI FENI FNENI FLDCW FSTCW FNSTCW FSTSW FNSTSW FCLEX FNCLEX FSTENV FNSTENV FLDENV FSAVE FNSAVE FRSTOR FINCSTP FDECSTP FFREE FFREEP FNOP FWAIT FSETPM FSINCOS FSTSWAX".split(" "),

View file

@ -266,6 +266,7 @@ if (DEBUGGER) {
* Register numbers 0-7 are reserved for cpu.regsGen, 8-15 are reserved for cpu.regsAlt, and 16-19 for cpu.regsStack.
*/
DebuggerPDP11.REG_PSW = 20;
DebuggerPDP11.REG_SW = 21;
/*
* Operand type masks; anything that's not covered by OP_SRC or OP_DST must be a OP_OTHER value.
@ -465,6 +466,7 @@ if (DEBUGGER) {
this.bus = bus;
this.cpu = cpu;
this.cmp = cmp;
this.panel = cmp.panel;
/*
* Re-initialize Debugger message support if necessary
@ -1125,6 +1127,9 @@ if (DEBUGGER) {
case "PC":
iReg = 7;
break;
case "SW":
iReg = 21;
break;
default:
if (sReg.charAt(0) == "R") {
iReg = +sReg.charAt(1);
@ -1139,7 +1144,7 @@ if (DEBUGGER) {
* getRegName(iReg)
*
* @this {DebuggerPDP11}
* @param {number} iReg
* @param {number} iReg (0-7; not used for other registers)
* @return {string}
*/
DebuggerPDP11.prototype.getRegName = function(iReg)
@ -1151,7 +1156,7 @@ if (DEBUGGER) {
* getRegValue(iReg)
*
* Register numbers 0-7 are reserved for cpu.regsGen, 8-15 are reserved for cpu.regsAlt,
* 16-19 for cpu.regsAltStack, and 20 for regPSW.
* 16-19 for cpu.regsAltStack, 20 for regPSW, and 21 for regSW.
*
* @this {DebuggerPDP11}
* @param {number} iReg
@ -1173,6 +1178,9 @@ if (DEBUGGER) {
else if (iReg == DebuggerPDP11.REG_PSW) {
value = this.cpu.getPSW();
}
else if (iReg == DebuggerPDP11.REG_SW && this.panel && this.panel.hasSwitches()) {
value = this.panel.getSW();
}
}
return value;
};
@ -1362,7 +1370,7 @@ if (DEBUGGER) {
/*
* Make an effort to keep any Front Panel in sync with us.
*/
if (this.cmp.panel && this.cmp.panel.stop) this.cmp.panel.stop();
if (this.panel && this.panel.stop) this.panel.stop();
this.cmp.updateStatus();
}
@ -2390,6 +2398,9 @@ if (DEBUGGER) {
else if (iReg == DebuggerPDP11.REG_PSW) {
sReg = "PS=" + this.toStrBase(cpu.getPSW());
}
else if (iReg == DebuggerPDP11.REG_SW && this.panel && this.panel.hasSwitches()) {
sReg = "SW=" + this.toStrBase(this.panel.getSW(), 3);
}
if (sReg) sReg += ' ';
return sReg;
};
@ -2413,7 +2424,8 @@ if (DEBUGGER) {
sDump += this.getRegOutput(i);
}
sDump += '\n';
sDump += this.getRegOutput(PDP11.REG.SP) + this.getRegOutput(PDP11.REG.PC) + this.getRegOutput(DebuggerPDP11.REG_PSW);
sDump += this.getRegOutput(PDP11.REG.SP) + this.getRegOutput(PDP11.REG.PC);
sDump += this.getRegOutput(DebuggerPDP11.REG_PSW) + this.getRegOutput(DebuggerPDP11.REG_SW);
sDump += this.getFlagOutput('T') + this.getFlagOutput('N') + this.getFlagOutput('Z') + this.getFlagOutput('V') + this.getFlagOutput('C');
return sDump;
};
@ -3406,6 +3418,12 @@ if (DEBUGGER) {
case "C":
if (w) cpu.setCF(); else cpu.clearCF();
break;
case "SW":
if (this.panel && this.panel.hasSwitches()) {
this.panel.setSW(w);
break;
}
/* falls through */
default:
if (sRegMatch.charAt(0) == 'R') {
var iReg = +sRegMatch.charAt(1);
@ -3666,7 +3684,7 @@ if (DEBUGGER) {
* with displayLiveRegs enabled, so once the repeat count has been exhausted, we must
* perform a final updateStatus().
*/
if (dbg.cmp.panel && dbg.cmp.panel.stop) dbg.cmp.panel.stop();
if (dbg.panel && dbg.panel.stop) dbg.panel.stop();
dbg.cmp.updateStatus();
dbg.setBusy(false);
}

View file

@ -57,30 +57,40 @@ function PanelPDP11(parmsPanel)
/*
* If there are any live registers, LEDs, etc, to display, this will provide a count.
*
* TODO: Add some UI for fDisplayLiveRegs (either an XML property, or a UI checkbox, or both).
*/
this.cLiveRegs = 0;
this.fDisplayLiveRegs = true;
this.fLampTest = false;
this.fExamine = this.fDeposit = false;
/*
* regCNSW contains the Console (Front Panel) Switch Register, which is also available as a
* regSwitches contains the Console (Front Panel) Switch Register, which is also available as a
* read-only register at 177570 (but only the low 16 bits).
*
* regAddr is an internal register containing the contents of the Front Panel's ADDRESS display,
* and regData corresponds to the DATA display. They are updated by setAddr() and setData(),
* which in turn take care of calling setLEDArray().
*/
this.regCNSW = 0;
this.regSwitches = 0;
this.regAddr = this.regData = 0;
this.regMisc = 0x14;
/*
* The panel hardware has the following additional (supported) state; note that there are several
* settings on a real Front Panel that we don't support (eg, stepping one cycle vs. one instruction).
*
* While my initial intent is to eventually support all the ADDRSEL switch settings, I probably
* won't bother with any DATASEL switch settings; instead, I will automatically display the data
* register (regData) [the equivalent of selecting 'DISPLAY REGISTER'] except when data is being
* examined or deposited [the equivalent of selecting 'DATA PATHS'].
*/
this.fLampTest = false; // lamp (LED) test in progress
this.fExamine = false; // true if the previously pressed switch was the 'EXAM' switch
this.fDeposit = false; // true if the previously pressed switch was the 'DEP' switch
this.nAddrSel = PanelPDP11.ADDRSEL.CONS_PHY;
/*
* Every LED has a simple numeric value, assigned when setBinding() is called:
*
* 0 if off, 1 if on
* zero if "off", non-zero if "on"
*
* initBus() will call displayLEDs() to ensure that every LED is set to its initial value.
*/
@ -122,6 +132,17 @@ function PanelPDP11(parmsPanel)
Component.subclass(PanelPDP11);
PanelPDP11.ADDRSEL = {
KERNEL_I: 0, // use a 16-bit virtual address where bits 16 to 21 are always OFF
KERNEL_D: 1, // use a 16-bit virtual address where bits 16 to 21 are always OFF
SUPER_I: 2, // use a 16-bit virtual address where bits 16 to 21 are always OFF
SUPER_D: 3, // use a 16-bit virtual address where bits 16 to 21 are always OFF
USER_I: 4, // use a 16-bit virtual address where bits 16 to 21 are always OFF
USER_D: 5, // use a 16-bit virtual address where bits 16 to 21 are always OFF
PROG_PHY: 6, // display the 22-bit physical address of the current bus cycle generated by the MMU
CONS_PHY: 7 // use a 22-bit physical address to perform console operations (e.g., LOAD ADRS, EXAM, & DEP)
};
/*
* To get the current state of a switch; eg::
*
@ -132,6 +153,7 @@ Component.subclass(PanelPDP11);
* "step" behavior when pressed more than once in a row). Ditto for the LED table.
*/
PanelPDP11.SWITCH = {
S0: 'S0',
DEP: 'DEP',
ENABLE: 'ENABLE',
EXAM: 'EXAM',
@ -144,6 +166,28 @@ PanelPDP11.LED = {
B22: 'B22'
};
/**
* getSW()
*
* @this {PanelPDP11}
* @return {number}
*/
PanelPDP11.prototype.getSW = function()
{
return this.regSwitches;
};
/**
* setSW(value)
*
* @this {PanelPDP11}
* @param {number} value
*/
PanelPDP11.prototype.setSW = function(value)
{
this.setSwitches(value);
};
/**
* getSwitch(name)
*
@ -163,7 +207,6 @@ PanelPDP11.prototype.getSwitch = function(name)
*/
PanelPDP11.prototype.reset = function()
{
this.regMisc = (this.regMisc & ~0x77) | 0x14; // kernel 16 bit
};
/**
@ -639,7 +682,15 @@ PanelPDP11.prototype.processDeposit = function(value, index)
if (this.fDeposit) {
this.setAddr(this.regAddr + 2);
}
this.bus.setWordDirect(this.regAddr, this.setData(this.regCNSW));
var w = this.setData(this.regSwitches);
if (this.nAddrSel == PanelPDP11.ADDRSEL.CONS_PHY) {
this.bus.setWordDirect(this.regAddr, w);
} else {
/*
* TODO: This code is obviously incomplete, since it doesn't take into account the precise ADDRSEL mode.
*/
this.cpu.setWordDirect(this.regAddr, w);
}
}
};
@ -656,7 +707,16 @@ PanelPDP11.prototype.processExamine = function(value, index)
if (this.fExamine) {
this.setAddr(this.regAddr + 2);
}
this.setData(this.bus.getWordDirect(this.regAddr));
var w;
if (this.nAddrSel == PanelPDP11.ADDRSEL.CONS_PHY) {
w = this.bus.getWordDirect(this.regAddr);
} else {
/*
* TODO: This code is obviously incomplete, since it doesn't take into account the precise ADDRSEL mode.
*/
w = this.cpu.getWordDirect(this.regAddr);
}
this.setData(w);
}
};
@ -670,7 +730,7 @@ PanelPDP11.prototype.processExamine = function(value, index)
PanelPDP11.prototype.processLoadAddr = function(value, index)
{
if (!value && !this.cpu.isRunning()) {
this.setAddr(this.regCNSW);
this.setAddr(this.regSwitches);
}
};
@ -696,9 +756,9 @@ PanelPDP11.prototype.processLampTest = function(value, index)
PanelPDP11.prototype.processSwitchReg = function(value, index)
{
if (value) {
this.regCNSW |= 1 << index;
this.regSwitches |= 1 << index;
} else {
this.regCNSW &= ~(1 << index);
this.regSwitches &= ~(1 << index);
}
};
@ -746,18 +806,46 @@ PanelPDP11.prototype.setLED = function(sBinding, value)
};
/**
* setLEDArray(sPrefix, data, nLEDs)
* setLEDArray(sPrefix, value, nLEDs)
*
* @this {PanelPDP11}
* @param {string} sPrefix
* @param {number} data
* @param {number} value
* @param {number} nLEDs
*/
PanelPDP11.prototype.setLEDArray = function(sPrefix, data, nLEDs)
PanelPDP11.prototype.setLEDArray = function(sPrefix, value, nLEDs)
{
for (var i = 0; i < nLEDs; i++) {
var sBinding = sPrefix + i;
this.setLED(sBinding, data & (1 << i));
this.setLED(sBinding, value & (1 << i));
}
};
/**
* hasSwitches(value)
*
* @this {PanelPDP11}
* @return {boolean}
*/
PanelPDP11.prototype.hasSwitches = function()
{
return this.bindings[PanelPDP11.SWITCH.S0] !== undefined;
};
/**
* setSwitches(value)
*
* @this {PanelPDP11}
* @param {number} value
*/
PanelPDP11.prototype.setSwitches = function(value)
{
if (this.hasSwitches()) {
this.regSwitches = value;
for (var i = 0; i < 22; i++) {
this.switches['S'+i][0] = (value & (1 << i))? 1 : 0;
}
this.displaySwitches();
}
};
@ -817,7 +905,7 @@ PanelPDP11.prototype.updateStatus = function(fForce)
* readCNSW(addr)
*
* If addr is set, then this a normal read, so we should return normal results (ie, switches);
* if addr is NOT set, then this is a read-before-write, so we must return the value being updated (ie, data).
* if addr is NOT set, then this is a read-before-write, so we must return the value being updated.
*
* @this {PanelPDP11}
* @param {number} addr (eg, PDP11.UNIBUS.CNSW or 177570)
@ -825,19 +913,19 @@ PanelPDP11.prototype.updateStatus = function(fForce)
*/
PanelPDP11.prototype.readCNSW = function(addr)
{
return (addr? this.regCNSW : this.regData) & 0xffff;
return (addr? this.regSwitches : this.regData) & 0xffff;
};
/**
* writeCNSW(data, addr)
* writeCNSW(value, addr)
*
* @this {PanelPDP11}
* @param {number} data
* @param {number} value
* @param {number} addr (eg, PDP11.UNIBUS.CNSW or 177570)
*/
PanelPDP11.prototype.writeCNSW = function(data, addr)
PanelPDP11.prototype.writeCNSW = function(value, addr)
{
this.regData = data;
this.regData = value;
};
PanelPDP11.UNIBUS_IOTABLE = {

View file

@ -681,7 +681,7 @@ if (DEBUGGER) {
var s;
switch(this.nBase) {
case 8:
s = str.toOct(n, nBytes * 3);
s = str.toOct(n, Math.round((8/3) * nBytes));
break;
case 10:
s = n.toString();

View file

@ -191,7 +191,7 @@ function Ce(a,b,c){var d;if(b){b=De(a,b);for(var e=0,f=!1,g=b,h=[],k=[],n=b.spli
d))}return d}function De(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Ce(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Ge(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.ba-a.na}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Ee(a,b,c,d){var e;null!=b?(e=a.Pb(b),0<=e?e=a.Qb(e):(e=a.ea[b],null==e&&(e=aa(b,a.Xa))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Fe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=8,p="";n?32<n&&(n=32):n=32;if(null==k||isNaN(k))for(;0<n--;)p="?"+p;else for(;0<n--;)p=(k&1?"1":"0")+p,k>>=1;g=p+g;d>>=8}d=t(c,0,!0)+" "+c+". "+ba(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function He(a,b){if(b)return Fe(a,b,a.ea[b]);var c=0;for(b in a.ea)Fe(a,b,a.ea[b]),c++;return 0<c}
function Ge(a,b){switch(a.Xa){case 8:a=ba(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}function Ie(a){ze.call(this,a);this.style=Je;this.M=Y();this.Wa=Y();this.ca=Y();this.H=[];this.F=this.O=this.D=[];Ke(this);this.ja=0;Le(this);this.wa={};Me(this,a.messages);this.Ba=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Dc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Dc(b,a)})}A(Ie,ze);
function Ge(a,b){switch(a.Xa){case 8:a=ba(b,Math.round(8/3*NaN));break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}function Ie(a){ze.call(this,a);this.style=Je;this.M=Y();this.Wa=Y();this.ca=Y();this.H=[];this.F=this.O=this.D=[];Ke(this);this.ja=0;Le(this);this.wa={};Me(this,a.messages);this.Ba=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Dc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Dc(b,a)})}A(Ie,ze);
var Ne={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
Je=8080,Oe="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Pe="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
Qe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Re=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,

View file

@ -709,7 +709,8 @@ case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d
function pq(a,b,c){var d;if(b){b=qq(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=qa(n);if(!n){f=!0;break}n=rq(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],q=n.length;k.length&&nq[n]<nq[k[k.length-1]]&&oq(h,k,1);k.push(n);b=b.substr(t+q)}oq(h,k)&&1==h.length||(f=!0);f?c&&a.O("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&sq(a,null,
d))}return d}function qq(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=pq(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?tq(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=a.Pk(b,c[1]);for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.pa-a.Ca}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function rq(a,b,c,d){var e;null!=b?(e=a.oh(b),0<=e?e=a.ph(e):(e=a.ya[b],null==e&&(e=ea(b,a.Ya))),null!=e||d||a.O("invalid "+(c?c:"value")+": "+b)):d||a.O("missing "+(c||"value"));return e}function sq(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=r(c,0,!0)+" "+c+". "+ia(c,0,!0)+" "+ha(c,0,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.O((null!=b?b+": ":"")+d);return e}function uq(a,b){if(b)return sq(a,b,a.ya[b]);var c=0;for(b in a.ya)sq(a,b,a.ya[b]),c++;return 0<c}
function tq(a,b){switch(a.Ya){case 8:a=ia(b,NaN);break;case 10:a=b.toString();break;default:a=r(b,NaN)}return a}function vq(a){mq.call(this,a);this.Ja=4;this.Da=5;this.Ba=1048575;this.aa=wq(this);this.Db=wq(this);this.ua=wq(this);this.N=[];this.B=this.ra=this.fa=[];xq(this);this.Oa=0;yq(this);this.cb={};zq(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return Aq(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return Aq(b,a)})}jb(vq,mq);
function tq(a,b){switch(a.Ya){case 8:a=ia(b,Math.round(8/3*NaN));break;case 10:a=b.toString();break;default:a=r(b,NaN)}return a}
function vq(a){mq.call(this,a);this.Ja=4;this.Da=5;this.Ba=1048575;this.aa=wq(this);this.Db=wq(this);this.ua=wq(this);this.N=[];this.B=this.ra=this.fa=[];xq(this);this.Oa=0;yq(this);this.cb={};zq(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return Aq(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return Aq(b,a)})}jb(vq,mq);
var Bq={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Cq=[26,28,40,42,109],Dq={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Eq="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
Fq="FLD FST FSTP FXCH FILD FIST FISTP FBLD FBSTP FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FSQRT FSCALE FPREM FRNDINT FXTRACT FABS FCHS FCOM FCOMP FCOMPP FICOM FICOMP FTST FXAM FPTAN FPATAN F2XM1 FYL2X FYL2XP1 FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 FINIT FNINIT FDISI FNDISI FENI FNENI FLDCW FSTCW FNSTCW FSTSW FNSTSW FCLEX FNCLEX FSTENV FNSTENV FLDENV FSAVE FNSAVE FRSTOR FINCSTP FDECSTP FFREE FFREEP FNOP FWAIT FSETPM FSINCOS FSTSWAX".split(" "),

View file

@ -46,272 +46,273 @@ function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}funct
function Na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Pa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Qa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ra(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Sa={init:[],show:[],exit:[]},Ta=!1,Ua=!1,Va=!0;function Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Sa.init.push(a)}
function Ya(a){if(Va)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 Za(a){!Va&&a?(Va=!0,Ta&&$a("init"),Ua&&$a("show")):Va=a}function $a(a){Sa[a]&&Ya(Sa[a])}Wa("onload",function(){Ta=!0;Ya(Sa.init)});Wa("onpageshow",function(){Ua=!0;Ya(Sa.show)});Wa(Pa("Opera")||Pa("iOS")?"onunload":"onbeforeunload",function(){Ya(Sa.exit)});
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.oc=b.comment;this.Rc=b;b=this.id.indexOf(".");0>b?this.ib=this.id:(this.Pa=this.id.substr(0,b),this.ib=this.id.substr(b+1));this[a]=c;this.B={ready:!1,Xa:!1,Zb:!1,ja:!1,error:!1};this.Rb=null;this.B.error=!1;this.G={};this.i=null;this.na=d||0;v.push(this)}var ab=void 0,bb={};
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pc=b.comment;this.Rc=b;b=this.id.indexOf(".");0>b?this.kb=this.id:(this.Oa=this.id.substr(0,b),this.kb=this.id.substr(b+1));this[a]=c;this.B={ready:!1,Ya:!1,$b:!1,ja:!1,error:!1};this.Rb=null;this.B.error=!1;this.G={};this.i=null;this.na=d||0;v.push(this)}var ab=void 0,bb={};
if(window){ab||(ab=window.location.search.substr(1));for(var cb,jb=/\+/g,kb=/([^&=]+)=?([^&]*)/g;cb=kb.exec(ab);)bb[decodeURIComponent(cb[1].replace(jb," "))]=decodeURIComponent(cb[2].replace(jb," "))}function lb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function z(a,b){b||(b=u);a.prototype=lb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var mb=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else mb={},v=[];function nb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function ob(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function pb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}function qb(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<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function C(a,b){b=D(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pdp11-binding":(g=B(f))&&g.binding&&a.sa(g.type,g.binding,f,g.value),l=h.length}}}}
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},sa:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.Qa=this.G[b]=c,c.value="",this.j=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.O=function(a){this.j(a,this.ib)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.ib+": "+a)},O:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},Ga:function(){return this.B.ja=!0},Fa:function(a,b){b&&(this.B.ja=!1);return!0}};function E(a,b,c,d){a.i&&(!0===c||F(a,c|0))&&a.i.message(b,d)}function F(a,b){if(a.i){a===a.i?b|=0:b=b||a.na;var c=a.i.na&b;return!!b&&c===b||!!(c&a.i.Kc)}return!1}
function rb(a,b){if(a.B.Zb)return a.B.Xa=!1,a.B.Zb=!1;if(a.B.error)return a.j(a.toString()+" error"),!1;a.B.Xa=b;return a.B.Xa}function sb(a,b){a.B.Xa&&(b?a.B.Zb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.B.Xa}function H(a,b){a.B.error||(a.B.ready=!1!==b,a.B.ready&&(b=a.Rb,a.Rb=null,b&&b()))}function tb(a,b){b&&(a.B.ready?b():a.Rb=b);return a.B.ready}function ub(a){return a.B.error?(a.j(a.toString()+" error"),!0):!1}function vb(a,b){a.B.error=!0;a.O(b)}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},sa:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.Pa=this.G[b]=c,c.value="",this.j=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.O=function(a){this.j(a,this.kb)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.kb+": "+a)},O:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},Fa:function(){return this.B.ja=!0},Ea:function(a,b){b&&(this.B.ja=!1);return!0}};function E(a,b,c,d){a.i&&(!0===c||F(a,c|0))&&a.i.message(b,d)}function F(a,b){if(a.i){a===a.i?b|=0:b=b||a.na;var c=a.i.na&b;return!!b&&c===b||!!(c&a.i.Kc)}return!1}
function rb(a,b){if(a.B.$b)return a.B.Ya=!1,a.B.$b=!1;if(a.B.error)return a.j(a.toString()+" error"),!1;a.B.Ya=b;return a.B.Ya}function sb(a,b){a.B.Ya&&(b?a.B.$b=!0:void 0===b&&a.j(a.toString()+" busy"));return a.B.Ya}function H(a,b){a.B.error||(a.B.ready=!1!==b,a.B.ready&&(b=a.Rb,a.Rb=null,b&&b()))}function tb(a,b){b&&(a.B.ready?b():a.Rb=b);return a.B.ready}function ub(a){return a.B.error?(a.j(a.toString()+" error"),!0):!1}function vb(a,b){a.B.error=!0;a.O(b)}
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var wb="undefined"!==typeof ArrayBuffer,xb={cpu:1,trap:16,fault:32,bus:64,memory:128,device:256,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function yb(a){u.call(this,"Panel",a,yb);this.H=0;this.K=this.J=!1;this.g=this.C=this.w=0;this.L=20;this.D={};this.f={START:[1,!0,!1,this.ad],STEP:[1,!1,!1,this.bd],ENABLE:[1,!1,!1,this.Xc],CONT:[1,!0,!1,this.Vc],DEP:[0,!0,!1,this.Wc],EXAM:[1,!0,!1,this.Yc],LOAD:[1,!0,!1,this.$c],TEST:[0,!0,!1,this.Zc]};for(a=0;22>a;a++)this.f["S"+a]=[0,!1,!1,this.cd,a]}z(yb);k=yb.prototype;k.reset=function(){this.L=this.L&-120|20};
k.sa=function(a,b,c,d){if(this.u&&this.u.sa(a,b,c,d)||this.b&&this.b.sa(a,b,c,d)||this.i&&this.i.sa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.G[b]=c,this.H++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.D[b]=d?1:0,this.H++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){var c=
a.f[b];zb(a,b,c[0]=1-c[0]);c[2]=!0;c[3]&&c[3].call(a,c[0],c[4]);a.J="DEP"==b;a.K="EXAM"==b}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){var c=a.f[b];c[1]&&c[2]&&(zb(a,b,c[0]=1-c[0]),c[3]&&c[3].call(a,c[0],c[4]));c[2]=!1}}(this,b),!0):this.parent.sa.call(this,a,b,c,d)}};k.Ea=function(a,b,c,d){this.u=a;this.A=b;this.b=c;this.i=d;Ab(b,this,Bb);Cb(b,this.reset.bind(this));Db(this);for(var e in this.f)zb(this,e,this.f[e][0])};k.Ga=function(a,b){b||(Eb(),this.stop());return!0};
k.Fa=function(){return!0};function Fb(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Db(a,b){for(var c in a.D)Fb(a,c,null!=b?b:a.D[c])}function zb(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Tb(a,b,c,d){a.G[b]&&(void 0===c&&(vb(a,"Value for "+b+" is invalid"),a.b.ha()),c=8==(a.i&&a.i.$||8)?ra(c,d):p(c,d),a.G[b].textContent!=c&&(a.G[b].textContent=c))}
k.ad=function(a){a||this.b.B.Z||(this.A.reset(),Ub(this.b),this.f.ENABLE&&this.f.ENABLE[0]&&this.b.fb())};k.bd=function(){};k.Xc=function(a){a||this.b.ha()};k.Vc=function(a){if(!a&&!this.b.B.Z)if(this.f.ENABLE&&this.f.ENABLE[0])this.b.fb();else{if((a=this.i)&&!sb(a,!0))rb(a,!0),a.gb(0),rb(a,!1);else try{var b=this.b.gb(1);0<b&&(Vb(this.b,b),Wb(this.b,b,!0),Xb(this.b,b))}catch(c){"number"!=typeof c&&vb(this.b,c.stack||c.message)}this.stop();this.u&&this.u.ca()}};
k.Wc=function(a){a&&!this.b.B.Z&&(this.J&&Yb(this,this.g+2),this.A.Jb(this.g,Zb(this,this.w)))};k.Yc=function(a){a||this.b.B.Z||(this.K&&Yb(this,this.g+2),Zb(this,this.A.mb(this.g)))};k.$c=function(a){a||this.b.B.Z||Yb(this,this.w)};k.Zc=function(a){Db(this,a||null)};k.cd=function(a,b){this.w=a?this.w|1<<b:this.w&~(1<<b)};function Yb(a,b){a.g=b&a.A.Ta;$b(a,"A",a.g,22)}function Zb(a,b){a.C=b&65535;$b(a,"D",a.C,16);return a.C}function ac(a,b,c){a.D[b]=c;Fb(a,b,c)}
function $b(a,b,c,d){for(var e=0;e<d;e++)ac(a,b+e,c&1<<e)}k.stop=function(){Yb(this,this.b.v[7])};k.ca=function(){if(this.H){for(var a=0;a<this.b.v.length;a++)Tb(this,"R"+a,this.b.v[a]);a=bc(this.b);Tb(this,"PS",a);Tb(this,"NF",a&8?1:0,1);Tb(this,"ZF",a&4?1:0,1);Tb(this,"VF",a&2?1:0,1);Tb(this,"CF",a&1?1:0,1);$b(this,"D",this.C,16);$b(this,"A",this.g,22);a=this.b.Za?this.b.ob&16?1:2:4;ac(this,"B22",a&1);ac(this,"B18",a&2);ac(this,"B16",a&4)}};k.dd=function(a){return(a?this.w:this.C)&65535};
k.Yd=function(a){this.C=a};var cc={},Bb=(cc[65400]=[null,null,yb.prototype.dd,yb.prototype.Yd,"CNSW"],cc);function Eb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=pb(e.id);f||(a=!0,f=new yb(e));C(f,d);a&&H(f)}}Xa(Eb);
function dc(a,b,c){u.call(this,"Bus",a,dc,64);this.b=b;this.i=c;this.L=a.busWidth||16;this.g=0;this.K=[];this.D=null;this.H=Math.pow(2,this.L);this.Ta=this.H-1|0;this.xa=ec;this.ka=Math.log2(this.xa);this.J=this.xa>>2;this.A=this.xa-1;this.C=this.H/this.xa|0;this.Wa=[];this.u=0;this.f=!1;this.w=[];this.Hc=[fc,gc,hc,ic];a=new I(this);jc(a,this.i);this.W=Array(this.C);for(b=0;b<this.C;b++)this.W[b]=a;H(this)}z(dc);var ec=8192,kc=ec-1;
function fc(a,b){var c=-1,d=this.controller,e=d.Wa[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.Wa[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&F(this.i,e[5])&&E(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Da(b,16,3);c=255;this.i&&F(this.i,e[5])&&E(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
function gc(a,b,c){var d=!1,e=this.controller,f=e.Wa[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Wa[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&F(this.i,f[5])&&E(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Da(c,16,5),this.i&&F(this.i,f[5])&&E(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
function hc(a,b){var c=-1,d=this.controller;(a=d.Wa[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&F(this.i,a[5])&&E(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Da(b,16,2);c=65535;this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
function ic(a,b,c){var d=!1,e=this.controller;if(a=e.Wa[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&F(this.i,a[5])&&E(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Da(c,16,4),this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
function lc(a,b){if(b!=a.g){var c;a.g&&(c=(1<<a.g)-ec,mc(a,c,ec,a.K),a.g=0);b&&(a.g=b,c=(1<<b)-ec,a.K=nc(a,c,ec),a.D?mc(a,c,ec,a.D):(oc(a,c,ec,pc,a),a.D=nc(a,c,ec)))}}k=dc.prototype;k.reset=function(){for(var a=0;a<this.w.length;a++)this.w[a]();lc(this,16)};k.Ga=function(a,b){b||this.reset();return!0};
function oc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ka;0<g&&h<a.W.length;){var l=a.W[h],m=h*a.xa,n=a.xa-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.F)return l.Lb+=l.F-f,l.F=f,!0;if(f>=l.F+l.Lb){n=l.size-(f-m);n>g&&(n=g);l.Lb=f-l.F+n;f=m+a.xa;g-=n;h++;continue}}return qc(1,f,g)}f=new I(a,f,n,a.xa,d,e);jc(f,a.i,l);a.W[h++]=f;f=m+a.xa;g-=n}if(0>=g){c/=1024;var r;e="";r?10<r&&(r=10):r=c&-65536?10:5;if(null==c||isNaN(c))for(;0<r--;)e="?"+e;else for(;0<r--;)e=String.fromCharCode(c%10+48)+e,c/=
10;a.status(e+"Kb "+rc[d]+" at "+ra(b));return!0}return qc(2,b,c)}function nc(a,b,c){var d=[];for(b>>>=a.ka;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.xa;return d}function mc(a,b,c,d){var e=0;for(b>>>=a.ka;0<c&&b<a.W.length;){var f=d[e++];if(!f)break;a.W[b++]=f;c-=a.xa}}k.Eb=function(a){3932160<=a&&(a=sc(this.b,a));return this.W[(a&this.Ta)>>>this.ka].Ub(a&this.A,a)};k.Tb=function(a){this.f=!1;this.u++;a=this.W[(a&this.Ta)>>>this.ka].ec(a&this.A,a);this.u--;return a};
k.oa=function(a){3932160<=a&&(a=sc(this.b,a));return this.W[(a&this.Ta)>>>this.ka].ra(a&this.A,a)};k.mb=function(a){var b=a&this.A,c=(a&this.Ta)>>>this.ka;this.f=!1;this.u++;a=this.W[c].fc(b,a);this.u--;return a};k.Vb=function(a,b){3932160<=a&&(a=sc(this.b,a));this.W[(a&this.Ta)>>>this.ka].Xb(a&this.A,b&255,a)};k.pb=function(a,b){this.f=!1;this.u++;this.W[(a&this.Ta)>>>this.ka].Yb(a&this.A,b&255,a);this.u--};
k.eb=function(a,b){3932160<=a&&(a=sc(this.b,a));this.W[(a&this.Ta)>>>this.ka].Mb(a&this.A,b&65535,a)};k.Jb=function(a,b){var c=a&this.A,d=(a&this.Ta)>>>this.ka;this.f=!1;this.u++;this.W[d].jc(c,b&65535,a);this.u--};function tc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.W[d];if(e.Ra||e.Nc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}
function uc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&kc;void 0!==a.Wa[m]?q("I/O address already registered: "+p(b,8,!0)):a.Wa[m]=[d,e,f,g,h||"unknown",l,!1]}}
function Ab(a,b,c,d){for(var e in c){var f=+e,g=c[e];if(!(g[6]&&g[6]>a.b.vb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null,r=g[5]||1;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var t=g[4],w=0;w<r;w++,f+=2)t&&1<r&&(t=g[4]+w),uc(a,f,f,h,l,m,n,t,d||64)}}}function Cb(a,b){a.w.push(b)}
k.Da=function(a,b,c){this.f=!0;this.u||(this.i&&F(this.i,32)&&E(this.i,"memory fault ("+c+") on address "+J(this.i,a),!0,!0),b&&(this.b.ga|=b),this.b.pa(4,a))};function vc(a){var b=a.f;a.f=!1;return b}function qc(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}function K(a){u.call(this,"Device",a,K,256);this.u={fa:0,ic:-1}}z(K);k=K.prototype;
k.Ea=function(a,b,c,d){this.A=b;this.b=c;this.i=d;var e=this;this.u.ic=wc(c,function(){e.u.Ya|=128;e.u.Ya&64&&(xc(e.b,e.u.Wd),yc(e.b,e.u.ic,1E3/60))});this.u.Wd=Ic(64,6);Ab(b,this,L);Cb(b,this.reset.bind(this));H(this)};k.reset=function(){this.u.Ya=0};k.md=function(){var a=this.u.Ya;this.u.Ya&=-129;return a};k.fe=function(a){this.u.Ya=a;a&64&&yc(this.b,this.u.ic,1E3/60);this.u.Ya=a&-129};k.od=function(){var a=this.b;return a.C&62337|a.La<<5|a.Ma<<1};
k.he=function(a){var b=this.b;a&=62337;if(b.C!=a){b.C=a;b.La=a>>5&3;b.Ma=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Za!=c&&(b.Za=c,Jc(b))}};k.pd=function(){var a=this.b.ab;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.qd=function(){return this.b.Ib};k.rd=function(){return this.b.ob};k.ie=function(a){var b=this.b;1170>b.vb&&(a&=-49);b.ob!=a&&(b.ob=a,b.Qb=a&16?4194303:262143,Jc(b))};k.Rd=function(a){a=a>>1&63;var b=this.b.Kb[a>>1];return a&1?b>>16:b&65535};
k.Ie=function(a,b){b=b>>1&63;var c=b>>1;this.b.Kb[c]=b&1?this.b.Kb[c]&65535|(a&63)<<16:this.b.Kb[c]&-65536|a&65534};k.Kd=function(a){return this.b.U[1][a>>1&7]};k.Be=function(a,b){this.b.U[1][b>>1&7]=a&65295};k.Id=function(a){return this.b.U[1][(a>>1&7)+8]};k.ze=function(a,b){this.b.U[1][(b>>1&7)+8]=a&65295};k.Jd=function(a){return this.b.wa[1][a>>1&7]};k.Ae=function(a,b){b=b>>1&7;this.b.wa[1][b]=a;this.b.U[1][b]&=65295};k.Hd=function(a){return this.b.wa[1][(a>>1&7)+8]};
k.ye=function(a,b){b=(b>>1&7)+8;this.b.wa[1][b]=a;this.b.U[1][b]&=65295};k.ld=function(a){return this.b.U[0][a>>1&7]};k.ee=function(a,b){this.b.U[0][b>>1&7]=a&65295};k.jd=function(a){return this.b.U[0][(a>>1&7)+8]};k.ce=function(a,b){this.b.U[0][(b>>1&7)+8]=a&65295};k.kd=function(a){return this.b.wa[0][a>>1&7]};k.de=function(a,b){b=b>>1&7;this.b.wa[0][b]=a;this.b.U[0][b]&=65295};k.hd=function(a){return this.b.wa[0][(a>>1&7)+8]};k.be=function(a,b){b=(b>>1&7)+8;this.b.wa[0][b]=a;this.b.U[0][b]&=65295};
k.Qd=function(a){return this.b.U[3][a>>1&7]};k.He=function(a,b){this.b.U[3][b>>1&7]=a&65295};k.Od=function(a){return this.b.U[3][(a>>1&7)+8]};k.Fe=function(a,b){this.b.U[3][(b>>1&7)+8]=a&65295};k.Pd=function(a){return this.b.wa[3][a>>1&7]};k.Ge=function(a,b){b=b>>1&7;this.b.wa[3][b]=a;this.b.U[3][b]&=65295};k.Nd=function(a){return this.b.wa[3][(a>>1&7)+8]};k.Ee=function(a,b){b=(b>>1&7)+8;this.b.wa[3][b]=a;this.b.U[3][b]&=65295};k.zb=function(a){a&=7;return this.b.M&2048?this.b.Ua[a]:this.b.v[a]};
k.Bb=function(a,b){b&=7;this.b.M&2048?this.b.Ua[b]=a:this.b.v[b]=a};k.wd=function(){return this.b.M&49152?this.b.Ha[0]:this.b.v[6]};k.ne=function(a){this.b.M&49152?this.b.Ha[0]=a:this.b.v[6]=a};k.zd=function(){return this.b.v[7]};k.qe=function(a){this.b.v[7]=a};k.Ab=function(a){a&=7;return this.b.M&2048?this.b.v[a]:this.b.Ua[a]};k.Cb=function(a,b){b&=7;this.b.M&2048?this.b.v[b]=a:this.b.Ua[b]=a};k.xd=function(){return 1==(this.b.M&49152)>>14?this.b.v[6]:this.b.Ha[1]};
k.oe=function(a){1==(this.b.M&49152)>>14?this.b.v[6]=a:this.b.Ha[1]=a};k.yd=function(){return 3==(this.b.M&49152)>>14?this.b.v[6]:this.b.Ha[3]};k.pe=function(a){3==(this.b.M&49152)>>14?this.b.v[6]=a:this.b.Ha[3]=a};k.fd=function(a){return this.b.Ac[a-65504>>1]};k.$d=function(a,b){this.b.Ac[b-65504>>1]=a};k.xc=function(a){return 65520==a?61183:0};k.Ec=function(){};k.Md=function(){return 1};k.De=function(){};k.ed=function(){return this.b.ga};k.Zd=function(){this.b.ga=0};k.nd=function(){return this.b.zc};
k.ge=function(a,b){b&1||(a&=255);this.b.zc=a};k.sd=function(a){return a?this.b.hc:0};k.je=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hc=a;b.I|=2};k.Ld=function(a){return a?this.b.bb&65280:0};k.Ce=function(a){this.b.bb=a|255};k.vd=function(){return bc(this.b)};k.me=function(a){Kc(this.b,a&-1809|bc(this.b)&1808);this.b.I|=128};k.Dc=function(a,b){F(this)&&E(this,"writeIgnored("+ra(b)+"): "+ra(a),!0,!0)};
function yb(a){u.call(this,"Panel",a,yb);this.g=this.v=this.Ta=this.D=0;this.H=this.J=!1;this.K=zb;this.C={};this.f={START:[1,!0,!1,this.ad],STEP:[1,!1,!1,this.bd],ENABLE:[1,!1,!1,this.Xc],CONT:[1,!0,!1,this.Vc],DEP:[0,!0,!1,this.Wc],EXAM:[1,!0,!1,this.Yc],LOAD:[1,!0,!1,this.$c],TEST:[0,!0,!1,this.Zc]};for(a=0;22>a;a++)this.f["S"+a]=[0,!1,!1,this.cd,a]}z(yb);var zb=7;k=yb.prototype;k.reset=function(){};
k.sa=function(a,b,c,d){if(this.A&&this.A.sa(a,b,c,d)||this.b&&this.b.sa(a,b,c,d)||this.i&&this.i.sa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.G[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.C[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){var c=
a.f[b];Ab(a,b,c[0]=1-c[0]);c[2]=!0;c[3]&&c[3].call(a,c[0],c[4]);a.H="DEP"==b;a.J="EXAM"==b}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){var c=a.f[b];c[1]&&c[2]&&(Ab(a,b,c[0]=1-c[0]),c[3]&&c[3].call(a,c[0],c[4]));c[2]=!1}}(this,b),!0):this.parent.sa.call(this,a,b,c,d)}};k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;Bb(b,this,Cb);Db(b,this.reset.bind(this));Eb(this);Fb(this)};k.Fa=function(a,b){b||(Gb(),this.stop());return!0};k.Ea=function(){return!0};
function Ub(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Eb(a,b){for(var c in a.C)Ub(a,c,null!=b?b:a.C[c])}function Ab(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Fb(a){for(var b in a.f)Ab(a,b,a.f[b][0])}function Vb(a,b,c,d){a.G[b]&&(void 0===c&&(vb(a,"Value for "+b+" is invalid"),a.b.ha()),c=8==(a.i&&a.i.da||8)?ra(c,d):p(c,d),a.G[b].textContent!=c&&(a.G[b].textContent=c))}
k.ad=function(a){a||this.b.B.Z||(this.w.reset(),Wb(this.b),this.f.ENABLE&&this.f.ENABLE[0]&&this.b.hb())};k.bd=function(){};k.Xc=function(a){a||this.b.ha()};k.Vc=function(a){if(!a&&!this.b.B.Z)if(this.f.ENABLE&&this.f.ENABLE[0])this.b.hb();else{if((a=this.i)&&!sb(a,!0))rb(a,!0),a.ib(0),rb(a,!1);else try{var b=this.b.ib(1);0<b&&(Xb(this.b,b),Yb(this.b,b,!0),Zb(this.b,b))}catch(c){"number"!=typeof c&&vb(this.b,c.stack||c.message)}this.stop();this.A&&this.A.ca()}};
k.Wc=function(a){a&&!this.b.B.Z&&(this.H&&$b(this,this.g+2),a=ac(this,this.Ta),this.K==zb?this.w.Cb(this.g,a):this.b.Cb(this.g,a))};k.Yc=function(a){a||this.b.B.Z||(this.J&&$b(this,this.g+2),a=this.K==zb?this.w.Za(this.g):this.b.Za(this.g),ac(this,a))};k.$c=function(a){a||this.b.B.Z||$b(this,this.Ta)};k.Zc=function(a){Eb(this,a||null)};k.cd=function(a,b){this.Ta=a?this.Ta|1<<b:this.Ta&~(1<<b)};function $b(a,b){a.g=b&a.w.Sa;bc(a,"A",a.g,22)}
function ac(a,b){a.v=b&65535;bc(a,"D",a.v,16);return a.v}function cc(a,b,c){a.C[b]=c;Ub(a,b,c)}function bc(a,b,c,d){for(var e=0;e<d;e++)cc(a,b+e,c&1<<e)}function dc(a){return void 0!==a.G.S0}k.stop=function(){$b(this,this.b.u[7])};
k.ca=function(){if(this.D){for(var a=0;a<this.b.u.length;a++)Vb(this,"R"+a,this.b.u[a]);a=ec(this.b);Vb(this,"PS",a);Vb(this,"NF",a&8?1:0,1);Vb(this,"ZF",a&4?1:0,1);Vb(this,"VF",a&2?1:0,1);Vb(this,"CF",a&1?1:0,1);bc(this,"D",this.v,16);bc(this,"A",this.g,22);a=this.b.ab?this.b.ob&16?1:2:4;cc(this,"B22",a&1);cc(this,"B18",a&2);cc(this,"B16",a&4)}};k.dd=function(a){return(a?this.Ta:this.v)&65535};k.Yd=function(a){this.v=a};var fc={},Cb=(fc[65400]=[null,null,yb.prototype.dd,yb.prototype.Yd,"CNSW"],fc);
function Gb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=pb(e.id);f||(a=!0,f=new yb(e));C(f,d);a&&H(f)}}Xa(Gb);
function gc(a,b,c){u.call(this,"Bus",a,gc,64);this.b=b;this.i=c;this.L=a.busWidth||16;this.A=0;this.K=[];this.D=null;this.H=Math.pow(2,this.L);this.Sa=this.H-1|0;this.xa=hc;this.la=Math.log2(this.xa);this.J=this.xa>>2;this.w=this.xa-1;this.C=this.H/this.xa|0;this.Xa=[];this.f=0;this.g=!1;this.v=[];this.Hc=[ic,jc,kc,lc];a=new I(this);mc(a,this.i);this.W=Array(this.C);for(b=0;b<this.C;b++)this.W[b]=a;H(this)}z(gc);var hc=8192,nc=hc-1;
function ic(a,b){var c=-1,d=this.controller,e=d.Xa[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.Xa[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&F(this.i,e[5])&&E(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Ca(b,16,3);c=255;this.i&&F(this.i,e[5])&&E(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
function jc(a,b,c){var d=!1,e=this.controller,f=e.Xa[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Xa[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&F(this.i,f[5])&&E(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Ca(c,16,5),this.i&&F(this.i,f[5])&&E(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
function kc(a,b){var c=-1,d=this.controller;(a=d.Xa[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&F(this.i,a[5])&&E(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Ca(b,16,2);c=65535;this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
function lc(a,b,c){var d=!1,e=this.controller;if(a=e.Xa[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&F(this.i,a[5])&&E(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Ca(c,16,4),this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
function oc(a,b){if(b!=a.A){var c;a.A&&(c=(1<<a.A)-hc,pc(a,c,hc,a.K),a.A=0);b&&(a.A=b,c=(1<<b)-hc,a.K=qc(a,c,hc),a.D?pc(a,c,hc,a.D):(rc(a,c,hc,sc,a),a.D=qc(a,c,hc)))}}k=gc.prototype;k.reset=function(){for(var a=0;a<this.v.length;a++)this.v[a]();oc(this,16)};k.Fa=function(a,b){b||this.reset();return!0};
function rc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.la;0<g&&h<a.W.length;){var l=a.W[h],m=h*a.xa,n=a.xa-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.F)return l.Lb+=l.F-f,l.F=f,!0;if(f>=l.F+l.Lb){n=l.size-(f-m);n>g&&(n=g);l.Lb=f-l.F+n;f=m+a.xa;g-=n;h++;continue}}return tc(1,f,g)}f=new I(a,f,n,a.xa,d,e);mc(f,a.i,l);a.W[h++]=f;f=m+a.xa;g-=n}if(0>=g){c/=1024;var r;e="";r?10<r&&(r=10):r=c&-65536?10:5;if(null==c||isNaN(c))for(;0<r--;)e="?"+e;else for(;0<r--;)e=String.fromCharCode(c%10+48)+e,c/=
10;a.status(e+"Kb "+uc[d]+" at "+ra(b));return!0}return tc(2,b,c)}function qc(a,b,c){var d=[];for(b>>>=a.la;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.xa;return d}function pc(a,b,c,d){var e=0;for(b>>>=a.la;0<c&&b<a.W.length;){var f=d[e++];if(!f)break;a.W[b++]=f;c-=a.xa}}k.Fb=function(a){3932160<=a&&(a=vc(this.b,a));return this.W[(a&this.Sa)>>>this.la].Vb(a&this.w,a)};k.Tb=function(a){this.g=!1;this.f++;a=this.W[(a&this.Sa)>>>this.la].fc(a&this.w,a);this.f--;return a};
k.oa=function(a){3932160<=a&&(a=vc(this.b,a));return this.W[(a&this.Sa)>>>this.la].ra(a&this.w,a)};k.Za=function(a){var b=a&this.w,c=(a&this.Sa)>>>this.la;this.g=!1;this.f++;a=this.W[c].gc(b,a);this.f--;return a};k.Wb=function(a,b){3932160<=a&&(a=vc(this.b,a));this.W[(a&this.Sa)>>>this.la].Yb(a&this.w,b&255,a)};k.pb=function(a,b){this.g=!1;this.f++;this.W[(a&this.Sa)>>>this.la].Zb(a&this.w,b&255,a);this.f--};
k.gb=function(a,b){3932160<=a&&(a=vc(this.b,a));this.W[(a&this.Sa)>>>this.la].Mb(a&this.w,b&65535,a)};k.Cb=function(a,b){var c=a&this.w,d=(a&this.Sa)>>>this.la;this.g=!1;this.f++;this.W[d].kc(c,b&65535,a);this.f--};function wc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.W[d];if(e.Qa||e.Nc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}
function xc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&nc;void 0!==a.Xa[m]?q("I/O address already registered: "+p(b,8,!0)):a.Xa[m]=[d,e,f,g,h||"unknown",l,!1]}}
function Bb(a,b,c,d){for(var e in c){var f=+e,g=c[e];if(!(g[6]&&g[6]>a.b.wb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null,r=g[5]||1;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var t=g[4],w=0;w<r;w++,f+=2)t&&1<r&&(t=g[4]+w),xc(a,f,f,h,l,m,n,t,d||64)}}}function Db(a,b){a.v.push(b)}
k.Ca=function(a,b,c){this.g=!0;this.f||(this.i&&F(this.i,32)&&E(this.i,"memory fault ("+c+") on address "+J(this.i,a),!0,!0),b&&(this.b.ga|=b),this.b.pa(4,a))};function yc(a){var b=a.g;a.g=!1;return b}function tc(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}function K(a){u.call(this,"Device",a,K,256);this.f={fa:0,jc:-1}}z(K);k=K.prototype;
k.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.jc=zc(c,function(){e.f.$a|=128;e.f.$a&64&&(Jc(e.b,e.f.Wd),Kc(e.b,e.f.jc,1E3/60))});this.f.Wd=Lc(64,6);Bb(b,this,L);Db(b,this.reset.bind(this));H(this)};k.reset=function(){this.f.$a=0};k.md=function(){var a=this.f.$a;this.f.$a&=-129;return a};k.fe=function(a){this.f.$a=a;a&64&&Kc(this.b,this.f.jc,1E3/60);this.f.$a=a&-129};k.od=function(){var a=this.b;return a.C&62337|a.Ha<<5|a.La<<1};
k.he=function(a){var b=this.b;a&=62337;if(b.C!=a){b.C=a;b.Ha=a>>5&3;b.La=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.ab!=c&&(b.ab=c,Mc(b))}};k.pd=function(){var a=this.b.cb;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.qd=function(){return this.b.Jb};k.rd=function(){return this.b.ob};k.ie=function(a){var b=this.b;1170>b.wb&&(a&=-49);b.ob!=a&&(b.ob=a,b.Qb=a&16?4194303:262143,Mc(b))};k.Rd=function(a){a=a>>1&63;var b=this.b.Kb[a>>1];return a&1?b>>16:b&65535};
k.Ie=function(a,b){b=b>>1&63;var c=b>>1;this.b.Kb[c]=b&1?this.b.Kb[c]&65535|(a&63)<<16:this.b.Kb[c]&-65536|a&65534};k.Kd=function(a){return this.b.V[1][a>>1&7]};k.Be=function(a,b){this.b.V[1][b>>1&7]=a&65295};k.Id=function(a){return this.b.V[1][(a>>1&7)+8]};k.ze=function(a,b){this.b.V[1][(b>>1&7)+8]=a&65295};k.Jd=function(a){return this.b.wa[1][a>>1&7]};k.Ae=function(a,b){b=b>>1&7;this.b.wa[1][b]=a;this.b.V[1][b]&=65295};k.Hd=function(a){return this.b.wa[1][(a>>1&7)+8]};
k.ye=function(a,b){b=(b>>1&7)+8;this.b.wa[1][b]=a;this.b.V[1][b]&=65295};k.ld=function(a){return this.b.V[0][a>>1&7]};k.ee=function(a,b){this.b.V[0][b>>1&7]=a&65295};k.jd=function(a){return this.b.V[0][(a>>1&7)+8]};k.ce=function(a,b){this.b.V[0][(b>>1&7)+8]=a&65295};k.kd=function(a){return this.b.wa[0][a>>1&7]};k.de=function(a,b){b=b>>1&7;this.b.wa[0][b]=a;this.b.V[0][b]&=65295};k.hd=function(a){return this.b.wa[0][(a>>1&7)+8]};k.be=function(a,b){b=(b>>1&7)+8;this.b.wa[0][b]=a;this.b.V[0][b]&=65295};
k.Qd=function(a){return this.b.V[3][a>>1&7]};k.He=function(a,b){this.b.V[3][b>>1&7]=a&65295};k.Od=function(a){return this.b.V[3][(a>>1&7)+8]};k.Fe=function(a,b){this.b.V[3][(b>>1&7)+8]=a&65295};k.Pd=function(a){return this.b.wa[3][a>>1&7]};k.Ge=function(a,b){b=b>>1&7;this.b.wa[3][b]=a;this.b.V[3][b]&=65295};k.Nd=function(a){return this.b.wa[3][(a>>1&7)+8]};k.Ee=function(a,b){b=(b>>1&7)+8;this.b.wa[3][b]=a;this.b.V[3][b]&=65295};k.Ab=function(a){a&=7;return this.b.M&2048?this.b.Ua[a]:this.b.u[a]};
k.Db=function(a,b){b&=7;this.b.M&2048?this.b.Ua[b]=a:this.b.u[b]=a};k.wd=function(){return this.b.M&49152?this.b.Ga[0]:this.b.u[6]};k.ne=function(a){this.b.M&49152?this.b.Ga[0]=a:this.b.u[6]=a};k.zd=function(){return this.b.u[7]};k.qe=function(a){this.b.u[7]=a};k.Bb=function(a){a&=7;return this.b.M&2048?this.b.u[a]:this.b.Ua[a]};k.Eb=function(a,b){b&=7;this.b.M&2048?this.b.u[b]=a:this.b.Ua[b]=a};k.xd=function(){return 1==(this.b.M&49152)>>14?this.b.u[6]:this.b.Ga[1]};
k.oe=function(a){1==(this.b.M&49152)>>14?this.b.u[6]=a:this.b.Ga[1]=a};k.yd=function(){return 3==(this.b.M&49152)>>14?this.b.u[6]:this.b.Ga[3]};k.pe=function(a){3==(this.b.M&49152)>>14?this.b.u[6]=a:this.b.Ga[3]=a};k.fd=function(a){return this.b.Ac[a-65504>>1]};k.$d=function(a,b){this.b.Ac[b-65504>>1]=a};k.xc=function(a){return 65520==a?61183:0};k.Ec=function(){};k.Md=function(){return 1};k.De=function(){};k.ed=function(){return this.b.ga};k.Zd=function(){this.b.ga=0};k.nd=function(){return this.b.zc};
k.ge=function(a,b){b&1||(a&=255);this.b.zc=a};k.sd=function(a){return a?this.b.ic:0};k.je=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.ic=a;b.I|=2};k.Ld=function(a){return a?this.b.eb&65280:0};k.Ce=function(a){this.b.eb=a|255};k.vd=function(){return ec(this.b)};k.me=function(a){Nc(this.b,a&-1809|ec(this.b)&1808);this.b.I|=128};k.Dc=function(a,b){F(this)&&E(this,"writeIgnored("+ra(b)+"): "+ra(a),!0,!0)};
var M={},L=(M[61568]=[null,null,K.prototype.Rd,K.prototype.Ie,"UNIMAP",64,1170],M[62592]=[null,null,K.prototype.Kd,K.prototype.Be,"SISDR",8,1145],M[62608]=[null,null,K.prototype.Id,K.prototype.ze,"SDSDR",8,1145],M[62624]=[null,null,K.prototype.Jd,K.prototype.Ae,"SISAR",8,1145],M[62640]=[null,null,K.prototype.Hd,K.prototype.ye,"SDSAR",8,1145],M[62656]=[null,null,K.prototype.ld,K.prototype.ee,"KISDR",8,1145],M[62672]=[null,null,K.prototype.jd,K.prototype.ce,"KDSDR",8,1145],M[62688]=[null,null,K.prototype.kd,
K.prototype.de,"KISAR",8,1145],M[62704]=[null,null,K.prototype.hd,K.prototype.be,"KDSAR",8,1145],M[62798]=[null,null,K.prototype.rd,K.prototype.ie,"MMR3",1,1145],M[65382]=[null,null,K.prototype.md,K.prototype.fe,"LKS"],M[65402]=[null,null,K.prototype.od,K.prototype.he,"MMR0",1,1145],M[65404]=[null,null,K.prototype.pd,K.prototype.Dc,"MMR1",1,1145],M[65406]=[null,null,K.prototype.qd,K.prototype.Dc,"MMR2",1,1145],M[65408]=[null,null,K.prototype.Qd,K.prototype.He,"UISDR",8,1145],M[65424]=[null,null,K.prototype.Od,
K.prototype.Fe,"UDSDR",8,1145],M[65440]=[null,null,K.prototype.Pd,K.prototype.Ge,"UISAR",8,1145],M[65456]=[null,null,K.prototype.Nd,K.prototype.Ee,"UDSAR",8,1145],M[65472]=[null,null,K.prototype.zb,K.prototype.Bb,"R0SET0"],M[65473]=[null,null,K.prototype.zb,K.prototype.Bb,"R1SET0"],M[65474]=[null,null,K.prototype.zb,K.prototype.Bb,"R2SET0"],M[65475]=[null,null,K.prototype.zb,K.prototype.Bb,"R3SET0"],M[65476]=[null,null,K.prototype.zb,K.prototype.Bb,"R4SET0"],M[65477]=[null,null,K.prototype.zb,K.prototype.Bb,
"R5SET0"],M[65478]=[null,null,K.prototype.wd,K.prototype.ne,"R6KERNEL"],M[65479]=[null,null,K.prototype.zd,K.prototype.qe,"R7KERNEL"],M[65480]=[null,null,K.prototype.Ab,K.prototype.Cb,"R0SET1",1,1145],M[65481]=[null,null,K.prototype.Ab,K.prototype.Cb,"R1SET1",1,1145],M[65482]=[null,null,K.prototype.Ab,K.prototype.Cb,"R2SET1",1,1145],M[65483]=[null,null,K.prototype.Ab,K.prototype.Cb,"R3SET1",1,1145],M[65484]=[null,null,K.prototype.Ab,K.prototype.Cb,"R4SET1",1,1145],M[65485]=[null,null,K.prototype.Ab,
K.prototype.Cb,"R5SET1",1,1145],M[65486]=[null,null,K.prototype.xd,K.prototype.oe,"R6SUPER",1,1145],M[65487]=[null,null,K.prototype.yd,K.prototype.pe,"R6USER",1,1145],M[65504]=[null,null,K.prototype.fd,K.prototype.$d,"CTRL",1,1170],M[65520]=[null,null,K.prototype.xc,K.prototype.Ec,"LSIZE",1,1170],M[65522]=[null,null,K.prototype.xc,K.prototype.Ec,"HSIZE",1,1170],M[65524]=[null,null,K.prototype.Md,K.prototype.De,"SYSID",1,1170],M[65526]=[null,null,K.prototype.ed,K.prototype.Zd,"CPUERR",1,1170],M[65528]=
K.prototype.Fe,"UDSDR",8,1145],M[65440]=[null,null,K.prototype.Pd,K.prototype.Ge,"UISAR",8,1145],M[65456]=[null,null,K.prototype.Nd,K.prototype.Ee,"UDSAR",8,1145],M[65472]=[null,null,K.prototype.Ab,K.prototype.Db,"R0SET0"],M[65473]=[null,null,K.prototype.Ab,K.prototype.Db,"R1SET0"],M[65474]=[null,null,K.prototype.Ab,K.prototype.Db,"R2SET0"],M[65475]=[null,null,K.prototype.Ab,K.prototype.Db,"R3SET0"],M[65476]=[null,null,K.prototype.Ab,K.prototype.Db,"R4SET0"],M[65477]=[null,null,K.prototype.Ab,K.prototype.Db,
"R5SET0"],M[65478]=[null,null,K.prototype.wd,K.prototype.ne,"R6KERNEL"],M[65479]=[null,null,K.prototype.zd,K.prototype.qe,"R7KERNEL"],M[65480]=[null,null,K.prototype.Bb,K.prototype.Eb,"R0SET1",1,1145],M[65481]=[null,null,K.prototype.Bb,K.prototype.Eb,"R1SET1",1,1145],M[65482]=[null,null,K.prototype.Bb,K.prototype.Eb,"R2SET1",1,1145],M[65483]=[null,null,K.prototype.Bb,K.prototype.Eb,"R3SET1",1,1145],M[65484]=[null,null,K.prototype.Bb,K.prototype.Eb,"R4SET1",1,1145],M[65485]=[null,null,K.prototype.Bb,
K.prototype.Eb,"R5SET1",1,1145],M[65486]=[null,null,K.prototype.xd,K.prototype.oe,"R6SUPER",1,1145],M[65487]=[null,null,K.prototype.yd,K.prototype.pe,"R6USER",1,1145],M[65504]=[null,null,K.prototype.fd,K.prototype.$d,"CTRL",1,1170],M[65520]=[null,null,K.prototype.xc,K.prototype.Ec,"LSIZE",1,1170],M[65522]=[null,null,K.prototype.xc,K.prototype.Ec,"HSIZE",1,1170],M[65524]=[null,null,K.prototype.Md,K.prototype.De,"SYSID",1,1170],M[65526]=[null,null,K.prototype.ed,K.prototype.Zd,"CPUERR",1,1170],M[65528]=
[null,null,K.prototype.nd,K.prototype.ge,"MB",1,1170],M[65530]=[null,null,K.prototype.sd,K.prototype.je,"PIR"],M[65532]=[null,null,K.prototype.Ld,K.prototype.Ce,"SL"],M[65534]=[null,null,K.prototype.vd,K.prototype.me,"PSW"],M);L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];
Xa(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=B(d);switch(c.type){case "default":c=new K(c);C(c,d);break;case "pc11":c=new Lc(c);C(c,d);break;case "rl11":c=new N(c),C(c,d)}}});var Mc;if(wb){var Nc=new ArrayBuffer(2);(new DataView(Nc)).setUint16(0,256,!0);Mc=256===(new Uint16Array(Nc))[0]}else Mc=!1;var Oc=Mc;
function I(a,b,c,d,e,f){this.A=a;this.id=Pc+=2;this.b=null;this.F=b;this.Lb=c;this.size=d||0;this.type=e||Qc;this.u=e==Rc;this.controller=null;jc(this);this.Ra=this.Nc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Sc(this,f.Hc);else if(wb)this.C=new ArrayBuffer(this.size),this.D=new DataView(this.C,0,this.size),this.G=new Uint8Array(this.C,0,this.size),this.J=new Uint16Array(this.C,0,this.size>>1),this.b=new Int32Array(this.C,0,this.size>>2),Sc(this,Oc?Tc:Uc);else{a=this.b=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;Sc(this,Vc)}else Sc(this)}var Qc=0,Rc=2,pc=4,rc=["NONE","RAM","ROM","VID","H/W"],Pc=0;
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(wb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(wb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ra=!0}return!1},lb:function(a,b){b?this.g++||Wc(this,Xc,!1):this.f++||Yc(this,Xc,!1)},K:function(a,b){this.i&&F(this.i,128)&&E(this.i,
"attempt to read invalid address "+J(this.i,b),!0);this.A.Da(b,32,2);return 255},w:function(a,b,c){this.i&&F(this.i,128)&&E(this.i,"attempt to write "+J(this.i,b)+" to invalid addresses "+J(this.i,c),!0);this.A.Da(c,32,4)},L:function(a,b){return this.Ub(a++,b++)|this.Ub(a,b)<<8},H:function(a,b,c){this.Xb(a++,b&255,c++);this.Xb(a,b>>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},da:function(a,b){a&1&&this.A.Da(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+
1]&255)<<8},va:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ra=!0},Ma:function(a,b,c){a&1&&this.A.Da(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ra=!0},P:function(a,b){if(this.i&&null!=this.F){var c=this.i;Zc(c,this.F+a,1,c.L)&&c.ha(!0)}return this.ec(a,b)},Y:function(a,b){if(this.i&&null!=this.F){var c=this.i;Zc(c,this.F+a,2,c.L)&&c.ha(!0)}return this.fc(a,b)},ma:function(a,
b,c){if(this.i&&null!=this.F){var d=this.i;Zc(d,this.F+a,1,d.C)&&d.ha(!0)}this.u?this.w(a,b,c):this.Yb(a,b,c)},Aa:function(a,b,c){if(this.i&&null!=this.F){var d=this.i;Zc(d,this.F+a,2,d.C)&&d.ha(!0)}this.u?this.w(a,b,c):this.jc(a,b,c)},N:function(a){return this.G[a]},R:function(a,b){a=this.G[a];this.i&&F(this.i,128)&&E(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},Pa:function(a,b){a&1&&this.A.Da(b,64,2);return this.D.getUint16(a,!0)},$:function(a,b){a&1&&this.A.Da(b,64,2);
a=this.J[a>>1];this.i&&F(this.i,128)&&E(this.i,"Memory.readWord("+J(this.i,b)+"): "+J(this.i,a),!0);return a},la:function(a,b){this.G[a]=b;this.Ra=!0},ua:function(a,b,c){this.G[a]=b;this.Ra=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},ib:function(a,b,c){a&1&&this.A.Da(c,64,4);this.D.setUint16(a,b,!0);this.Ra=!0},La:function(a,b,c){a&1&&this.A.Da(c,64,4);this.J[a>>1]=b;this.Ra=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,
b)+")",!0)}};function jc(a,b,c){a.i=b;a.f=a.g=0;c&&((a.f=c.f)&&Yc(a,Xc,!1),(a.g=c.g)&&Wc(a,Xc,!1))}function $c(a,b){b?--a.g||(a.Xb=a.u?a.w:a.Yb,a.Mb=a.u?a.H:a.jc):--a.f||(a.Ub=a.ec,a.ra=a.fc)}function Wc(a,b,c){c&&a.g||(a.Xb=!a.u&&b[1]||a.w,a.Mb=!a.u&&b[3]||a.H);if(c||void 0===c)a.Yb=b[1]||a.w,a.jc=b[3]||a.H}function Yc(a,b,c){c&&a.f||(a.Ub=b[0]||a.K,a.ra=b[2]||a.L);if(c||void 0===c)a.ec=b[0]||a.K,a.fc=b[2]||a.L}function Sc(a,b){b||(b=ad);Yc(a,b,void 0);Wc(a,b,void 0)}
var ad=[],Vc=[I.prototype.V,I.prototype.va,I.prototype.da,I.prototype.Ma],Xc=[I.prototype.P,I.prototype.ma,I.prototype.Y,I.prototype.Aa];if(wb)var Uc=[I.prototype.N,I.prototype.la,I.prototype.Pa,I.prototype.ib],Tc=[I.prototype.R,I.prototype.ua,I.prototype.$,I.prototype.La];
function bd(a,b){u.call(this,"CPU",a,bd,1);var c=a.multiplier||1;this.kb=a.cycles||b;this.$a=c;this.tb=Math.round(this.kb/1E4)/100;this.nb=this.tb*this.$a;this.B.Z=!1;this.B.Wb=!1;this.B.sb=a.autoStart;this.B.ub=!1;this.Fb=this.ma=0;this.Gb=a.csStart;this.wb=a.csInterval;this.xb=a.csStop;this.K=[];this.uc=this.Vd.bind(this);H(this)}z(bd);var cd=["power","reset"];k=bd.prototype;
k.Ea=function(a,b,c,d){this.u=a;this.A=b;this.i=d;for(b=0;b<cd.length;b++)(c=this.G[cd[b]])&&this.u.sa(null,cd[b],c);a=dd(a,"autoStart");null!=a&&(this.B.sb="true"==a?!0:"false"==a?!1:!!a);H(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.Ga=function(a,b){if(!b){if(a&&this.restore){ed(this);if(!this.restore(a))return!1;fd(this)}else this.reset();this.i?(a=this.i,b=this.B.sb,a.kb=!0,a.j("Type ? for help with PDPjs Debugger commands"),a.ca(),b||a.qb(),a.Ma&&(b=a.Ma,a.Ma=null,gd(a,b))):this.j("No debugger detected")}this.u.ca();return!0};k.Fa=function(a){return a?this.save():!0};k.sb=function(){return this.B.sb||!this.i&&void 0===this.G.run?(this.fb(),!0):!1};k.qc=function(){return 0};
function fd(a){void 0===a.Gb&&(a.Gb=0);void 0===a.wb&&(a.wb=-1);void 0===a.xb&&(a.xb=-1);a.B.ub=0<=a.Gb&&0<a.wb;a.B.ub&&(a.Fb=0,a.ma=a.Gb-a.la)}function Xb(a,b){if(a.B.ub){var c=!1;a.Fb=a.Fb+a.qc()|0;a.ma-=b;0>=a.ma&&(a.ma+=a.wb,c=!0);0<=a.xb&&a.xb<=hd(a)&&(a.wb=a.xb=-1,fd(a),a.ha(),c=!0);c&&a.j(hd(a)+" cycles: checksum="+p(a.Fb))}}
k.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.B.ja)a=!0;else{var b=null,c,h=ob(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.B.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.B.ja);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.B.ready?"powered yet":"ready yet"+(b.Rb?" (waiting for notification)":""))+".");a=!1}a&&(d.B.Z?d.ha():d.fb())},
!0;case "speed":return this.G[b]=c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){id(d,d.$a<<1,!0)},c.textContent=this.nb.toFixed(2)+"Mhz",!0}return!1};k.ca=function(){var a=this.G.speed;a&&(a.textContent=this.B.Z&&this.Y?this.Y.toFixed(2)+"Mhz":"Stopped")};function Wb(a,b,c){a.la+=b;c&&(a.da=a.b=a.J=0)}function jd(a,b){var c=1;b&&1<a.$a&&a.Y&&(c=a.Y/a.tb);a.Sb=Math.round(1E3/30);a.hb=Math.floor(a.kb/30*c);b||(a.ua=a.hb);a.Db=0}function hd(a){return a.la+a.V+a.da-a.b}
function ed(a){a.Y=0;a.tc=0;a.la=a.V=a.da=a.b=a.J=0;fd(a);id(a,1)}function id(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.nb?b=1:d=!0;a.$a=b;b=a.tb*a.$a;if(a.nb!=b){a.nb=b;b=a.nb.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.u&&a.u.qb()}Wb(a,a.V);a.V=0;a.R=Ba();a.$=0;jd(a);return d}function wc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function yc(a,b,c){0<=b&&b<a.K.length&&0>a.K[b][0]&&(c=a.kb*a.$a/1E3*c|0,a.K[b][0]=c+kd(a))}
function ld(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Vb(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.da-=a.b;a.b=a.J=0;b&&(a.da=0);return c}
k.Vd=function(){if(this.B.Z){this.Db>=this.kb&&jd(this,!0);this.Aa=0;this.jb=Ba();if(this.$){var a=this.jb-this.$;a>this.Sb&&(this.R+=a,this.R>this.jb&&(this.R=this.jb))}try{do{var b=ld(this,this.B.ub?1:this.hb);try{this.gb(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.Aa+=b;this.V+=b;Xb(this,b);Vb(this,b);this.ua-=b;if(0>=this.ua){this.ua+=this.hb;15<=++this.tc&&(this.u&&this.u.ca(),this.tc=0);break}}while(this.B.Z)}catch(e){this.ha();this.u&&this.u.stop(Ba(),hd(this));vb(this,e.stack||
e.message);return}if(this.B.Z){a=setTimeout;b=this.uc;this.$=Ba();var c=this.Sb;this.Aa&&(c=Math.round(c*this.Aa/this.hb));var c=c-(this.$-this.jb),d=this.$-this.R;d&&(this.Y=Math.round(this.V/(10*d))/100,864E5<=d&&(this.la=0,id(this)));if(0>c||this.Y<this.nb)-1E3>c&&(this.R-=c),c=0;this.Db+=this.Aa;this.$+=c;a(b,c)}}};
k.fb=function(a){if(ub(this))return!1;if(this.B.Z)return this.j(this.toString()+" busy"),!1;id(this);this.B.Z=!0;this.B.Wb=!0;var b=this.G.run;b&&(b.textContent="Halt");this.u&&(a&&this.u.qb(!0),this.u.start(this.R,hd(this)));setTimeout(this.uc,0);return!0};k.gb=function(){return 0};k.ha=function(a){var b=!1;if(this.B.Z){kd(this);Wb(this,this.V);this.V=0;this.B.Z=!1;if(b=this.G.run)b.textContent="Run";this.u&&this.u.stop(Ba(),hd(this));b=!0}this.B.complete=a;return b};
function md(a){this.vb=+a.model||1170;this.Nb=a.addrReset||0;bd.call(this,a,6666667);this.decode=1120==this.vb?nd.bind(this):od.bind(this);pd(this);this.L=0;this.N=null;this.B.complete=!1}z(md,bd);k=md.prototype;k.reset=function(){this.status("model "+this.vb);this.B.Z&&this.ha();pd(this);ed(this);this.B.error=!1;this.parent.reset.call(this)};
function pd(a){a.S=65536;a.T=32768;a.aa=65535;a.X=32768;a.M=15;a.v=[0,0,0,0,0,0,0,a.Nb];a.Ua=[0,0,0,0,0,0];a.Ha=[0,0,0,0];a.w=0;a.Ma=0;a.Qc=[4,2,0,1];a.U=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.wa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Kb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0];a.Ac=[0,0,0,0,0,0,0,0];a.zc=0;a.I=0;a.D=a.H=0;a.g=a.f=a.rb=0;a.va=-1;Ub(a)}function Ub(a){a.bb=255;a.ga=0;a.hc=0;a.C=0;a.ab=0;a.Ib=0;a.ob=0;a.Za=0;a.La=0;a.Qb=262143;a.N=null;a.A&&Jc(a)}function Jc(a){a.Za?(a.P=65536,a.ba=a.Pc,a.ra=a.Sd,a.Mb=a.Je,lc(a.A,a.ob&16?22:18)):(a.P=0,a.ba=a.Oc,a.ra=a.yc,a.Mb=a.Fc,lc(a.A,16))}function qd(a,b,c){a.Nb=b;O(a,b);!c&&a.i&&(a.ha()||a.i.ca())}k.qc=function(){return 0};
k.save=function(){var a=new P(this);a.set(0,[]);a.set(1,[this.la,this.$a]);a.set(2,tc(this.A));return a.data()};k.restore=function(a){var b=a[1];this.la=b[1];id(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.J){for(var f=0,g=Array(b.J),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.W[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function rd(a){return a.S&65536?1:0}
function sd(a){return a.T&32768?2:0}function td(a){return a.aa&65535?0:4}k.Sa=function(){return this.X&32768?8:0};function ud(a){var b=a.v[7];a.C&57344||(a.ab=0,a.Ib=b);a.v[7]=b+2&65535;return a.ra(b)}function vd(a,b){var c=a.v[7];a.v[7]=c+b&65535;return c}function O(a,b){a.v[7]=b&65535}function Ic(a,b){return{Xd:a,yb:b,next:null}}function xc(a,b){if(b!=a.N){var c=a.N;if(!c||c.yb<=b.yb)b.next=c,a.N=b;else{do{var d=c.next;if(!d||d.yb<=b.yb){b.next=d;c.next=b;break}c=d}while(c)}}a.I|=2}
function bc(a){return a.M=a.M&63728|a.Sa()|td(a)|sd(a)|rd(a)}function Kc(a,b){a.X=b<<12;a.aa=~b&4;a.T=b<<14;a.S=b<<16;if((b^a.M)&2048)for(var c=a.Ua.length;0<=--c;){var d=a.v[c];a.v[c]=a.Ua[c];a.Ua[c]=d}a.w=b>>14&3;c=a.M>>14&3;a.w!=c&&(a.Ha[c]=a.v[6],a.v[6]=a.Ha[a.w]);a.M=b;a.I|=2}function R(a,b){a.I&128||(a.X=a.aa=b,a.T=0)}function wd(a,b,c){a.I&128||(a.X=a.aa=a.S=b,a.T=c||0)}function xd(a,b,c,d){a.I&128||(a.X=a.aa=a.S=b,a.T=(c^b)&(d^b))}
function yd(a,b){a.I&128||(a.X=a.aa=a.S=b,a.T=a.X^a.S>>1)}function zd(a,b,c,d){a.I&128||(a.X=a.aa=a.S=b,a.T=(c^d)&(d^b))}k.pa=function(a,b){if(!this.L){var c=!1;0>this.va?this.va=bc(this):this.w||(a=4,c=!0);this.C&57344||(this.ab=63222,this.Ib=a);this.w=0;var d=this.ra(a|this.P),e=this.ra(a+2&65535|this.P);Kc(this,e&-12289|this.va>>2&12288);c&&(this.ga|=4,this.v[6]=4);Ad(this,this.va);Ad(this,this.v[7]);O(this,d);this.I&=-113;this.va=-1;this.I|=8;this.Uc=a;this.Sc=b;if(26!=b)throw a;}};
function Bd(a){var b=Td(a),c=Td(a)&-1793;a.M&49152&&(c=c&-225|a.M&63712);O(a,b);Kc(a,c);a.I&=-17}function sc(a,b){var c=b>>13&31;31>c&&a.ob&32&&(b=a.Kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
function Ud(a,b,c){var d,e,f,g=0;d=b>>13;a.ob&a.Qc[a.w]||(d&=7);e=a.U[a.w][d];f=(a.wa[a.w][d]<<6)+(b&8191)&a.Qb;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.U[a.w][d]=e;if(4194170!==f||a.w)a.La=a.w,a.Ma=d;b=!1;g&&(g&57344&&(0<=a.va&&(g|=128),a.C&57344||(a.C=a.C|g|a.La<<5|a.Ma<<1),b=!0),a.C&61440||!(4191360>
f||4194239<f)||(a.C|=4096,a.C&512&&(a.I|=32)),b&&a.pa(168,16));return f}function Vd(a,b){return a.A.Eb(b)}function Wd(a,b,c){b&1&&a.b--;a.A.Vb(b,c&255)}function Td(a){var b=a.ra(a.v[6]|a.P);a.v[6]=a.v[6]+2&65535;return b}function Ad(a,b){var c=a.v[6]-2&65535;a.v[6]=c;a.C&57344||(a.ab=a.ab<<8|246);!a.w&&c<=a.bb&&4<c&&(c<=a.bb-32?(a.ga|=4,a.v[6]=4,a.pa(4,18)):(a.ga|=8,a.I|=4));a.Mb(c,b)}
function Xd(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.pa(4,20),0;case 1:return 6===c&&!a.w&&d&4&&(a.v[6]<=a.bb||65534<=a.v[6])&&(a.v[6]<=a.bb-32||65534<=a.v[6]?(a.ga|=4,a.v[6]=4,a.pa(4,22)):(a.ga|=8,a.I|=64)),a.b-=3,7===c?a.v[c]:a.v[c]|g;case 2:f=2;e=a.v[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.v[c];7!==c&&(e|=g);e=a.ra(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.v[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.v[c]-2&65535;7!==c&&(e|=g);e=a.ra(e)|
g;a.b-=8;break;case 6:return e=a.ra(vd(a,2)),e=e+a.v[c]&65535|g,a.b-=6,e;case 7:return e=a.ra(vd(a,2)),e=e+a.v[c]&65535,e=a.ra(e|a.P)|g,a.b-=10,e}a.v[c]=a.v[c]+f&65535;!g||a.C&57344||(a.ab=a.ab<<8|f<<3&248|c);6==c&&!a.w&&d&4&&0>=f&&(a.v[6]<=a.bb||65534<=a.v[6])&&(a.v[6]<=a.bb-32?(a.ga|=4,a.v[6]=4,a.pa(4,24)):(a.ga|=8,a.I|=64));return e}k.Tb=function(a){if(!this.Za)return this.A.Tb(a);this.L++;a=Vd(this,Ud(this,a,3));this.L--;return a};
k.mb=function(a){if(!this.Za)return this.A.mb(a);this.L++;a=this.yc(Ud(this,a,2));this.L--;return a};k.pb=function(a,b){this.Za?(this.L++,Wd(this,Ud(this,a,5),b),this.L--):this.A.pb(a,b)};k.Jb=function(a,b){this.Za?(this.L++,this.Fc(Ud(this,a,4),b),this.L--):this.A.Jb(a,b)};k.Oc=function(a,b,c){return Xd(this,a,b,c)};k.Pc=function(a,b,c){return Ud(this,Xd(this,a,b,c),c)};k.yc=function(a){return this.A.oa(a)};k.Sd=function(a){return this.A.oa(Ud(this,a,2))};k.Fc=function(a,b){this.A.eb(a,b&65535)};
k.Je=function(a,b){this.A.eb(Ud(this,a,4),b)};function Yd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Xd(a,b,d,2),c&65536||61440!==(a.M&61440)&&(d&=65535),a.w=a.M>>12&3,c=a.ra(d|c&a.P),a.w=a.M>>14&3):c=6!=d||(a.M>>2&12288)===(a.M&12288)?a.v[d]:a.Ha[a.M>>12&3];return c}function Zd(a,b,c,d){a.C&57344||(a.ab=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Xd(a,b,e,4),c&65536||(e&=65535),a.w=a.M>>12&3,e=Ud(a,e|c&65536,4),a.w=a.M>>14&3,a.A.eb(e,d)):6!=e||(a.M>>2&12288)===(a.M&12288)?a.v[e]=d:a.Ha[a.M>>12&3]=d}
function $d(a,b){b>>=6;var c=a.H=b&7;return(b=a.D=(b&56)>>3)?Vd(a,a.ba(b,c,3)):a.v[c]&255}function ae(a,b){b>>=6;var c=a.H=b&7;return(b=a.D=(b&56)>>3)?a.A.oa(a.ba(b,c,2)):a.v[c]}function be(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Xd(a,b,c,8)}function ce(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Vd(a,a.ba(b,c,3)):a.v[c]&255}function de(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.A.oa(a.ba(b,c,2)):a.v[c]}
function S(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.rb=a.ba(b,e,7),Wd(a,e,d.call(a,c,Vd(a,e)))):a.v[e]=a.v[e]&65280|d.call(a,c,a.v[e])}function T(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,6),a.A.eb(e,d.call(a,c,a.A.oa(e)))):a.v[e]=d.call(a,c,a.v[e])}function ee(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Wd(a,a.ba(b,e,5),c):a.v[e]=c?d&1?c<<24>>24&65535:a.v[e]&-256|c&255:a.v[e]&-256;return c}
function fe(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.A.eb(a.ba(b,d,4),c):a.v[d]=c&65535;return c}function U(a,b,c){c&&(O(a,a.v[7]+(b<<24>>23)),a.b-=2);a.b-=3}
k.gb=function(a){this.B.complete=!0;var b=this.i&&ge(this.i)?1:this.B.Wb?-1:0,c=a?this.B.Wb?0:1:-1;this.B.Wb=!1;this.da=this.b=a;do{if(b){if(this.i&&he(this.i,this.v[7],c)){this.ha();break}c||c++;b++}if(this.I){this.I&112&&(this.I&32?this.pa(168,28):this.I&64?this.pa(4,30):this.I&16&&this.pa(12,32),this.I&=-113);if(a=this.I&7){a=!1;if(this.I&2){this.I&=-3;var d=160,e=(this.hc&224)>>5,f=this.N&&this.N.yb>e?this.N:null;f&&(d=f.Xd,e=f.yb);e>(this.M&224)>>5?(this.I&4&&(vd(this,2),this.I&=-5),this.pa(d,
26),e=!0):e=!1;if(e){if(f)if(a=f,f=this.N,f==a)this.N=a.next;else for(;f;){e=f.next;if(e==a){f.next=e.next;break}f=e}a=!0}}else this.I&1&&this.I++;a=a&&0>c}if(a)break}this.I=this.I&7|this.M&16;this.decode(ud(this))}while(0<this.b);return this.B.complete?this.da-this.b:void 0===this.B.complete?0:-1};Xa(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new md(d);C(d,c)}});function ie(a,b){var c=b+a;xd(this,c,a,b);return c&65535}
function je(a,b){var c=b+a;xd(this,c<<8,a<<8,b<<8);return c&255}function ke(a,b){a=b<<1;yd(this,a);return a&65535}function le(a,b){a=b<<1;yd(this,a<<8);return a&255}function me(a,b){a=b&32768|b>>1|b<<16;yd(this,a);return a&65535}function ne(a,b){a=b&2048|b>>1|b<<8;yd(this,a<<8);return a&255}function oe(a,b){a=b&~a;R(this,a);return a}function pe(a,b){a=b&~a;R(this,a<<8);return a}function qe(a,b){a|=b;R(this,a);return a}function re(a,b){a|=b;R(this,a<<8);return a}
function se(a,b){a=~b|65536;wd(this,a);return a&65535}function te(a,b){a=~b|256;wd(this,a<<8);return a&255}function ue(a,b){a=b-a;this.I&128||(this.X=this.aa=a,this.T=b&(b^a));return a&65535}function ve(a,b){a=b-a;var c=a<<8;b<<=8;this.I&128||(this.X=this.aa=c,this.T=b&(b^c));return a&255}function we(a,b){a=b+a;this.I&128||(this.X=this.aa=a,this.T=a&(b^a));return a&65535}function xe(a,b){a=b+a;var c=a<<8;this.I&128||(this.X=this.aa=c,this.T=c&(b<<8^c));return a&255}
function ye(a,b){a=-b;wd(this,a,a&b&32768);return a&65535}function ze(a,b){a=-b;wd(this,a<<8,(a&b&128)<<8);return a&255}function Ae(a,b){a=b<<1|this.S>>16&1;yd(this,a);return a&65535}function Be(a,b){a=b<<1|this.S>>16&1;yd(this,a<<8);return a&255}function Ce(a,b){a=(this.S&65536|b)>>1|b<<16;yd(this,a);return a&65535}function De(a,b){a=((this.S&65536)>>8|b)>>1|b<<8;yd(this,a<<8);return a&255}function Ee(a,b){var c=b-a;zd(this,c,a,b);return c&65535}
function Fe(a,b){var c=b-a;zd(this,c<<8,a<<8,b<<8);return c&255}function Ge(a,b){this.I&128||(this.X=this.aa=b&65280,this.T=this.S=0);return(b<<8|b>>8)&65535}function He(a,b){a^=b;R(this,a);return a&65535}function Ie(a){T(this,a,ae(this,a),ie);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
function Je(a){var b=de(this,a);a=a>>6&7;var c=this.v[a];c&32768&&(c|=4294901760);this.S=this.T=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.S=c<<17-b,c>>=b;else if(b)if(16<b)this.T=c,c=0;else{this.S=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.T=32768)}this.v[a]=c&65535;this.X=this.aa=c;this.b-=(this.g?6:7)+b}
function Ke(a){var b=de(this,a);a=a>>6&7;var c=this.v[a]<<16|this.v[a|1];this.S=this.T=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.S=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.S=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.T=32768)):d=c;this.v[a]=d>>16&65535;this.v[a|1]=d&65535;this.X=d>>16;this.aa=d>>16|d;this.b-=(this.g?6:7)+b}function Le(a){U(this,a,!rd(this))}function Me(a){U(this,a,rd(this))}
function Ne(a){T(this,a,ae(this,a),oe);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Oe(a){S(this,a,$d(this,a),pe);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Pe(a){T(this,a,ae(this,a),qe);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Qe(a){S(this,a,$d(this,a),re);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
function Re(a){R(this,ae(this,a)&de(this,a));this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function Se(a){R(this,($d(this,a)&ce(this,a))<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function Te(a){U(this,a,td(this))}function Ue(a){U(this,a,!this.Sa()==!sd(this))}function Ve(a){U(this,a,!td(this)&&!this.Sa()==!sd(this))}function We(a){U(this,a,!rd(this)&&!td(this))}function Xe(a){U(this,a,td(this)||!this.Sa()!=!sd(this))}
function Ye(a){U(this,a,rd(this)||td(this))}function Ze(a){U(this,a,!this.Sa()!=!sd(this))}function $e(a){U(this,a,this.Sa())}function af(a){U(this,a,!td(this))}function bf(a){U(this,a,!this.Sa())}function cf(){this.pa(12,1);this.b-=5}function df(a){U(this,a,!0)}function ef(a){U(this,a,!sd(this))}function ff(a){U(this,a,sd(this))}function V(a){a&1&&(this.S=0);a&2&&(this.T=0);a&4&&(this.aa=1);a&8&&(this.X=0);this.b-=5}
function gf(a){var b=ae(this,a);a=de(this,a);zd(this,b-a,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function hf(a){var b=$d(this,a)<<8;a=ce(this,a)<<8;zd(this,b-a,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}
function jf(a){var b=de(this,a);if(b){a=a>>6&7;var c=this.v[a]<<16|this.v[a|1];this.S=this.T=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.v[a]=d&65535,this.v[a|1]=c-d*b&65535,this.aa=d>>16|d,this.X=d>>16):(this.T=32768,this.aa=d>>15|d,this.X=c>>16,-1===b&&65534===this.v[a]&&(this.v[a]=this.v[a|1]=1));this.b-=53}else this.aa=this.X=0,this.T=32768,this.S=65536,this.b-=7}function kf(){this.pa(24,2);this.b-=25}
function lf(){this.M&49152?(this.ga|=128,this.pa(4,3)):this.i?mf(this.i):this.ha();this.b-=7}function nf(){this.pa(16,4);this.b-=25}var of=[0,7,7,10,7,11,9,13];function pf(a){this.J=this.b;O(this,be(this,a));this.b=this.J-of[this.g]}var qf=[0,14,14,17,14,18,16,20];function rf(a){this.J=this.b;var b=be(this,a);a=a>>6&7;Ad(this,this.v[a]);this.v[a]=this.v[7];O(this,b);this.b=this.J-qf[this.g]}var sf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function tf(a){var b=ae(this,a);this.J=this.b;R(this,fe(this,a,b));this.b=this.J-sf[(this.D?8:0)+this.g]+(7!=this.f||this.g?0:2)}function uf(a){var b=$d(this,a);R(this,ee(this,a,b,1)<<8);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}var vf=[7,13,13,17,14,18,17,21];
function wf(a){var b=de(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.v[a];c&32768&&(c|=-65536);b=~~(b*c);this.v[a]=b>>16&65535;this.v[a|1]=b&65535;this.I&128||(this.X=b>>16,this.aa=this.X|b,this.T=0,this.S=-32768>b||32767<b?65536:0);this.b-=23}function xf(){this.b-=5}function yf(){this.M&49152||(this.A.reset(),Ub(this));this.b-=667}function zf(){Bd(this);this.I|=this.M&16;this.b-=13}
function Af(a){if(a&8)W.call(this,a);else{var b=Td(this);a&=7;7==a?O(this,b):(O(this,this.v[a]),this.v[a]=b);this.b-=9}}function X(a){a&1&&(this.S=65536);a&2&&(this.T=32768);a&4&&(this.aa=0);a&8&&(this.X=32768);this.b-=5}function Bf(a){var b=(a&448)>>6;if(this.v[b]=this.v[b]-1&65535)O(this,this.v[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Cf(a){T(this,a,ae(this,a),Ee);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
function Df(a){T(this,a,0,Ge);this.b-=this.g?9:3+(7==this.f?2:0)}function Ef(){this.pa(28,5);this.b-=5}function Ff(){this.I&4||this.u&&this.u.ca();this.I|=4;vd(this,-2);this.b-=3}function Gf(a){T(this,a,ae(this,a),He);this.b-=this.g?9:3+(7==this.f?2:0)}function W(a){var b;if(b=this.i)b=this.i,E(b,"undefined opcode "+J(b,a),!0,!0),b=mf(b);b||this.pa(8,6)}function nd(a){Hf[a>>12].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function Kf(a){Lf[a>>6&3].call(this,a)}
function Mf(a){Nf[a>>6&3].call(this,a)}function Of(a){Pf[a&15].call(this,a)}function Qf(a){Rf[a&15].call(this,a)}function Sf(a){Tf[a>>6&3].call(this,a)}function Uf(a){Vf[a>>6&3].call(this,a)}function Wf(a){Xf[a>>6&3].call(this,a)}
var Hf=[function(a){Yf[a>>8&15].call(this,a)},tf,gf,Re,Ne,Pe,Ie,W,function(a){Zf[a>>8&15].call(this,a)},uf,hf,Se,Oe,Qe,Cf,W],Yf=[function(a){$f[a>>4&15].call(this,a)},df,af,Te,Ue,Ze,Ve,Xe,rf,rf,If,Kf,Mf,W,W,W],Jf=[function(a){wd(this,fe(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,1,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,1,ue);this.b-=this.g?9:3+(7==this.f?2:0)}],Lf=[function(a){T(this,a,0,
ye);this.b-=this.g?11:6},function(a){T(this,a,rd(this)?1:0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,rd(this)?1:0,Ee);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=de(this,a);wd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Nf=[function(a){T(this,a,0,Ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,Ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],
$f=[function(a){ag[a&15].call(this,a)},W,W,W,pf,pf,pf,pf,Af,W,Of,Qf,Df,Df,Df,Df],ag=[lf,Ff,zf,cf,nf,yf,W,W,W,W,W,W,W,W,W,W],Pf=[xf,function(){this.S=0;this.b-=5},function(){this.T=0;this.b-=5},V,function(){this.aa=1;this.b-=5},V,V,V,function(){this.X=0;this.b-=5},V,V,V,V,V,V,V],Rf=[xf,function(){this.S=65536;this.b-=5},function(){this.T=32768;this.b-=5},X,function(){this.aa=0;this.b-=5},X,X,X,function(){this.X=32768;this.b-=5},X,X,X,X,X,X,X],Zf=[bf,$e,We,Ye,ef,ff,Le,Me,kf,Ef,Sf,Uf,Wf,W,W,W],Tf=[function(a){wd(this,
ee(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,1,xe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,1,ve);this.b-=this.g?9:3+(7==this.f?2:0)}],Vf=[function(a){S(this,a,0,ze);this.b-=this.g?11:6},function(a){S(this,a,rd(this)?1:0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,rd(this)?1:0,Fe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=ce(this,a);wd(this,a<<8);this.b-=this.g?4:3+(7==
this.f?2:0)}],Xf=[function(a){S(this,a,0,De);this.b-=this.g?9+(this.rb&1):3+(7==this.f?2:0)},function(a){S(this,a,0,Be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,0,ne);this.b-=this.g?9+(this.rb&1):3+(7==this.f?2:0)},function(a){S(this,a,0,le);this.b-=this.g?9:3+(7==this.f?2:0)}];function od(a){bg[a>>12].call(this,a)}
var bg=[function(a){cg[a>>8&15].call(this,a)},tf,gf,Re,Ne,Pe,Ie,function(a){dg[a>>8&15].call(this,a)},function(a){eg[a>>8&15].call(this,a)},uf,hf,Se,Oe,Qe,Cf,W],cg=[function(a){fg[a>>4&15].call(this,a)},df,af,Te,Ue,Ze,Ve,Xe,rf,rf,If,Kf,Mf,function(a){gg[a>>6&3].call(this,a)},W,W],gg=[function(a){a=this.v[7]+((a&63)<<1)&65535;var b=this.ra(a|this.P);O(this,this.v[5]);this.v[6]=a+2&65535;this.v[5]=b;this.b-=8},function(a){a=Yd(this,a,0);Ad(this,a);R(this,a);this.b-=11},function(a){var b=Td(this);this.J=
this.b;Zd(this,a,0,b);R(this,b);this.b=this.J-vf[this.g]},function(a){R(this,fe(this,a,this.Sa?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],fg=[function(a){hg[a&15].call(this,a)},W,W,W,pf,pf,pf,pf,Af,function(a){a&8?(this.M&49152||(this.M=this.M&-2017|(a&7)<<5,this.I|=1),this.b-=5):W.call(this,a)},Of,Qf,Df,Df,Df,Df],hg=[lf,Ff,zf,cf,nf,yf,function(){Bd(this);this.b-=13},W,W,W,W,W,W,W,W,W],dg=[wf,wf,jf,jf,Je,Je,Ke,Ke,Gf,Gf,W,W,W,W,Bf,Bf],eg=[bf,$e,We,Ye,ef,ff,Le,Me,kf,Ef,Sf,Uf,Wf,function(a){ig[a>>
6&3].call(this,a)},W,W],ig=[W,function(a){a=Yd(this,a,65536);Ad(this,a);R(this,a);this.b-=11},function(a){var b=Td(this);this.J=this.b;Zd(this,a,65536,b);R(this,b);this.b=this.J-vf[this.g]},W];
function jg(a){u.call(this,"ROM",a,jg);this.ia=this.u=null;this.C=a.addr;this.f=a.size;this.w=a.alias;this.g=a.file;this.D=sa(this.g);if(this.g){a=this.g;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(nb(c.Pa,a,b),(a=Fa(a,b))?(c.u=a.ea,c.ia=a.ia):c.g=null);kg(c)})}}z(jg);jg.prototype.Ea=function(a,b,c,d){this.A=b;this.b=c;this.i=d;kg(this)};
jg.prototype.Ga=function(){this.ia&&(this.i&&lg(this.i,this.id,this.C,this.f,this.ia),delete this.ia);return!0};jg.prototype.Fa=function(){return!0};
function kg(a){if(!tb(a)){if(a.g){if(!a.u||!a.A)return;a.f||(a.f=a.u.length);if(a.u.length!=a.f)vb(a,"ROM size ("+p(a.u.length,8,!0)+") does not match specified size ("+p(a.f,8,!0)+")");else{var b;b=a.C;if(oc(a.A,b,a.f,Rc)){var c;for(c=0;c<a.u.length;c++)a.A.pb(b+c,a.u[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){var d=a,e=b[c],f=nc(d.A,d.C,d.f);mc(d.A,e,d.f,f)}delete a.u}}}H(a)}}
Xa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new jg(d);C(d,c)}});
function mg(a){u.call(this,"RAM",a,mg);this.ia=this.f=null;this.g=a.addr;this.C=a.size;this.Ja=a.load;this.Ia=a.exec;this.w=!1;this.u=a.file;this.D=sa(this.u);if(this.u){a=this.u;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.u+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load RAM resource (error "+f+": "+a+")"),c.u=null):(nb(c.Pa,a,b),(a=Fa(a,b))?(c.f=a.ea,c.ia=a.ia,null==c.Ja&&(c.Ja=a.Ja),null==c.Ia&&(c.Ia=a.Ia)):c.u=null);ng(c)})}}
z(mg);mg.prototype.Ea=function(a,b,c,d){this.A=b;this.b=c;this.i=d;ng(this)};mg.prototype.Ga=function(){this.ia&&(this.i&&lg(this.i,this.id,this.g,this.C,this.ia),delete this.ia);return!0};mg.prototype.Fa=function(){return!0};function ng(a){if(a.A&&(!a.w&&a.C&&oc(a.A,a.g,a.C,1)&&(a.w=!0),!tb(a))){if(!a.w)q("No RAM allocated");else if(a.u){if(!a.f||!a.A)return;Hg(a,a.f,a.Ja,a.Ia,a.g)}H(a)}}
mg.prototype.reset=function(){if(this.w){for(var a=this.A,b=this.g,c=this.C,d=b&a.A,b=b>>>a.ka;0<c&&b<a.W.length;){var e=a.W[b],f=c,g,d=d||0;void 0===f&&(f=e.size);if(wb)for(g=d;f--&&g<e.G.length;g++)e.G[g]=0;else for(g=d;f--&&g<e.size;g++)e.Yb(d,0,e.F+d);c-=a.xa;b++;d=0}this.f&&Hg(this,this.f,this.Ja,this.Ia,this.g,!0)}};
function Hg(a,b,c,d,e,f){var g=!1;if(null==c)for(var h=0;h<b.length-1;){var l=b[h]&255|(b[h+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(h+6>=b.length)break;for(var h=h+2,m=b[h++]&255|(b[h++]&255)<<8,n=b[h++]&255|(b[h++]&255)<<8,l=l+((m&255)+(m>>8)+(n&255)+(n>>8)),r=h,t=m-=6;0<m&&h<b.length;)l+=b[h++]&255,m--;if(m||h>=b.length)break;l+=b[h++]&255;if(l&255)break;if(t)for(;t--;)a.b.pb(n++,b[r++]&255);else n&1?a.b.ha():qd(a.b,n,f);g=!0}else h++;else h+=2}if(!g&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.b.pb(c+
e,b[e]);null!=d&&qd(a.b,d,f);g=!0}return g}Xa(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new mg(d);C(d,c)}});function Ig(a){u.call(this,"Keyboard",a,Ig,65536);H(this)}z(Ig);Ig.prototype.sa=function(){return!1};Ig.prototype.Ea=function(a,b,c,d){this.u=a;this.b=c;this.i=d};Xa(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ig(d);C(d,c)}});
function Y(a){this.N=a.baudReceive||9600;this.R=a.baudTransmit||9600;this.da=a.upperCase;this.w=this.D=null;this.V=a.tabSize;this.P=a.charBOL;this.H=0;u.call(this,"SerialPort",a,Y,8388608);var b=a.binding;if("console"==b)this.D="";else{var c;a=Jg;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.G[b])&&this.sa(null,a,b))}this.J=this.L=null;this.exports={connect:this.vc,receiveData:this.gc}}z(Y);var Jg="buffer";k=Y.prototype;
k.sa=function(a,b,c){var d=this;switch(b){case Jg:return this.G[b]=this.w=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.gc(b);return!0},c.onkeypress=function(a){a=a||window.event;d.gc(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
k.Ea=function(a,b,c,d){this.u=a;this.A=b;this.b=c;this.i=d;var e=this;this.la=Ic(48,4);this.Y=wc(this.b,function(){e.f&128||!e.C.length||(e.K=e.C.shift()&255,e.da&&97<=e.K&&122>e.K&&(e.K-=32),e.f|=128,e.f&64&&xc(e.b,e.la))});this.ma=Ic(52,4);this.$=wc(this.b,function(){e.g|=128;e.g&64&&xc(e.b,e.ma)});Ab(b,this,Kg);H(this)};
k.vc=function(){if(!this.J){var a=dd(this.u,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ya(b[0]);if(c!=this.ib)return;b=ya(b[1]);if(this.J=pb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.L=d.receiveData){this.status(this.Pa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Ga=function(a,b){if(!b)if(this.vc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
k.Fa=function(a){return a?this.save():!0};k.reset=function(){Lg(this)};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return Lg(this)};function Lg(a){a.K=0;a.f=0;a.g=128;a.C=[];return!0}k.gc=function(a){if("number"==typeof a)this.C.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.C.push(a.charCodeAt(b));else this.C=this.C.concat(a);yc(this.b,this.Y,1E3/Math.round(this.N/10));return!0};k.Bd=function(){return this.f&65534};
k.se=function(a){this.f=this.f&-112|a&111};k.Ad=function(){this.f&=-129;0<this.C.length&&yc(this.b,this.Y,1E3/Math.round(this.N/10));return this.K};k.re=function(){};k.Ud=function(){return this.g};k.Le=function(a){128==(this.g&192)&&a&64&&yc(this.b,this.$,1E3/Math.round(this.R/10));this.g=this.g&-70|a&69};k.Td=function(){return 0};
k.Ke=function(a){if(a&=255){E(this,"transmitByte("+p(a,2,!0)+")");this.L&&this.L.call(this.J,a);if(this.w)if(13==a)this.H=0;else if(8==a)this.w.value=this.w.value.slice(0,-1),0<this.H&&this.H--;else{var b;b=(b=za[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.V||8,c=a-this.H%a,this.V&&(b=xa("",c)));this.P&&!this.H&&c&&(b=String.fromCharCode(this.P)+b);this.w.value+=b;this.w.scrollTop=this.w.scrollHeight;this.H+=c}else if(null!=this.D){if(10==a||1024<=this.D.length)this.j(this.D),
this.D="";10!=a&&(this.D+=String.fromCharCode(a))}this.g&=-129;yc(this.b,this.$,1E3/Math.round(this.R/10))}};var Mg={},Kg=(Mg[65392]=[null,null,Y.prototype.Bd,Y.prototype.se,"RCSR"],Mg[65394]=[null,null,Y.prototype.Ad,Y.prototype.re,"RBUF"],Mg[65396]=[null,null,Y.prototype.Ud,Y.prototype.Le,"XCSR"],Mg[65398]=[null,null,Y.prototype.Td,Y.prototype.Ke,"XBUF"],Mg);Xa(function(){for(var a=D(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Y(d);C(d,c)}});
function Lc(a){u.call(this,"PC11",a,Lc);this.g=a.autoMount||null;this.D=0;this.$=a.baudReceive||3600;this.K=this.L=this.f=0;this.J=[];this.H=Ng;this.w=Og;this.N=this.C="";this.ea=this.Ja=this.Ia=null;this.R=-1;this.P=!Pa("Mobi")&&window&&"FileReader"in window}z(Lc);var Ng="",Og=0;k=Lc.prototype;
k.sa=function(a,b,c){var d=this,e=Og;switch(b){case "listTapes":return this.G[b]=c,c.onchange=function(){var a=d.G.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){q("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.G[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.G[b]=c,c.onclick=
function(){var a=d.G.listTapes;a&&Pg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.G[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Pg(d,sa(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.G[b]=c,!0}return!1};
k.Ea=function(a,b,c,d){this.u=a;this.A=b;this.b=c;this.i=d;this.V=Qg(a);var e=this;if((this.g=dd(this.u,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){q("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.Y=Ic(56,4);this.da=wc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.K<e.J.length&&(e.L=e.J[e.K++]&255,Rg(e,e.K/e.J.length*100),e.f|=128,e.f&=-2049,e.f&64&&xc(e.b,e.Y))});Ab(b,this,Sg);Tg(this,"None",Ng,!0);this.P&&Tg(this,"Local Tape",
"?");Tg(this,"Remote Tape","??");Ug(this)||H(this)};k.Ga=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Fa=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.L=0};function Ug(a){a.D=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.G.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=sa(b,!0)}b&&c?Vg(a,c,b,1,!0):Wg(a)}return!!a.D}
function Pg(a,b,c,d,e){if(c)if("?"==c)a.O('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=sa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.H="??"}else a.H=c;Vg(a,b,c,d,!1,e)}else Xg(a,!1)}
function Vg(a,b,c,d,e,f){var g=-1;if(a.C.toLowerCase()!=c.toLowerCase()||a.w!=d)g++,Xg(a,!0),a.B.Xa?a.O("PC11 busy"):(e&&(a.D++,F(a)&&E(a,"auto-loading tape: "+b)),Yg(a,b,c,d,f)?g++:a.B.Xa=!0);g&&Zg(a,a.N,a.C,a.w,a.ea,a.Ja,a.Ia)}
function Yg(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Zg(a,b,c,d,e),a.H="?");Wg(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=ta(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var h=0>g&&a.u&&!a.u.B.ja;g?a.O('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.Pa,e,f),(e=Fa(e,f))&&Zg(a,b,c,d,e.ea,e.Ja,
e.Ia));a.B.Xa=!1;a.D&&(a.D--,a.D||H(a));Wg(a)})}function Tg(a,b,c,d){if((a=a.G.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Wg(a){var b=a.G.listTapes;if(b&&b.options){a=a.H||a.C;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Rg(a,b){b|=0;if(b!==a.R){var c=a.G.readProgress;c&&(c=(c=D(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.R=b}}
function Zg(a,b,c,d,e,f,g){a.N=b;a.C=c;a.w=d;a.ea=e;a.Ja=f;a.Ia=g;2==d?a.V&&Hg(a.V,e,f,g)?a.status("tape loaded: "+b):(a.N="",a.C="",a.H=Ng,a.w=Og,a.O("No load address available for tape: "+b)):(a.K=0,a.J=e,a.status("tape attached: "+b),Rg(a,0))}function Xg(a,b){if(a.C||!1===b)a.N="",a.C="",b||(a.w&&a.status(1==a.w?"tape detached":"tape unloaded"),a.H=Ng,a.w=Og,Wg(a))}k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};k.ud=function(){return this.f&65534};
k.le=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&xc(this.b,this.Y)):(this.f&=-129,this.f|=2048,this.L=0,yc(this.b,this.da,1E3/Math.round(this.$/10))));this.f=this.f&-66|a&65};k.td=function(){this.f&=-129;this.f|=2048;return this.L};k.ke=function(){};var $g={},Sg=($g[65384]=[null,null,Lc.prototype.ud,Lc.prototype.le,"PRS"],$g[65386]=[null,null,Lc.prototype.td,Lc.prototype.ke,"PRB"],$g);
function ah(a,b,c){u.call(this,"Disk",{id:a.Pa+".disk"+p(++bh,4)},ah,2097152);this.controller=a;this.u=a.u;this.i=a.i;this.w=b;this.Va=b.name;this.cc=b.cc;ch(this,c,b.ta,b.ya,b.qa,b.Ka);H(this)}var bh=0;z(ah);k=ah.prototype;k.Ea=function(a,b,c,d){this.i=d};
function ch(a,b,c,d,e,f){a.mode=b;a.ta=c;a.ya=d;a.qa=e;a.Ka=f;a.b=[];if("preload"!=a.mode){b=Array(a.ta);for(c=0;c<b.length;c++){d=Array(a.ya);for(e=0;e<d.length;e++){f=Array(a.qa);for(var g=1;g<=f.length;g++)f[g-1]=dh(null,c,e,g,a.Ka,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
function eh(a,b,c,d,e){var f=c;if(a.A)return!0;a.Va=b;a.cb=c;a.Cc=sa(c);a.A=e;a.C=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=la[d];if(e){a.ta=e[0];a.ya=e[1];a.qa=e[2];a.Ka=e[3]||512;c=a.Ka>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ta);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ya),w=0;w<t.length;w++)for(var y=t[w]=Array(a.qa),x=0;x<y.length;x++){for(var A=dh(null,d,w,x+1,a.Ka,0),ja=A.data,Ia=0;Ia<c;Ia++,f+=4)var Q=ja[Ia]=b.getInt32(f,
!0),e=e+Q&-1;A.Ba=c;y[x]=A}a.f=e;c=a}else a.O("Unrecognized disk format ("+d+" bytes)");a.A&&(a.A.call(a.controller,a.w,c,a.Va,a.cb),a.A=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ta(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ua(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.cc?"":e)+"&format=json"));return!!Ea(f,
null,!0,function(b,c,d){fh(a,b,c,d)})}
function fh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.u&&!a.u.B.ja;if(d)a.controller.O('Unable to load disk "'+a.Va+'" (error '+d+": "+b+")",f);else{nb(a.controller.Pa,b,c);try{if(0<sa(a.Cc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Va]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(h.length)if(1==h.length)q(h[0]);else{a.ta=h.length;a.ya=h[0].length;a.qa=h[0][0].length;var l=h[0][0][0];a.Ka=l&&l.length||512;for(d=c=0;d<a.ta;d++)for(f=0;f<a.ya;f++)for(g=0;g<a.qa;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var t=l.bytes;if(void 0!==t&&t.length){for(var w=m<<2,y=t.length;y<w;y++)t[y]=n;gh(l,t)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}dh(l,d,f);for(w=
0;w<r.length;w++)c=c+r[w]&-1}a.b=h;a.f=c;e=a}else q("Empty disk image: "+a.Va)}catch(x){q("Disk image error ("+b+"): "+x.message)}}a.A&&(a.A.call(a.C,a.w,e,a.Va,a.cb),a.A=null)}function dh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Oe=b;a.Pe=c;a.Oa=a.Ba=0;a.Ra=!1;return a}
k.seek=function(a,b,c,d,e){d=null;var f=this.w,g=this.b[a];if(g){var h=g[b];if(!h&&f.Ic&&b<f.ya)for(h=g[b]=Array(f.Jc),g=0;g<h.length;g++)h[g]=dh(null,a,b,g+1,f.wc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.Ic&&9==f.lc&&(d=h[g]=dh(null,a,b,f.lc,f.wc,0))}}e&&e(d,!1);return d};function gh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ba?f<a.Oa?(a.Ba+=a.Oa-f,a.Oa=f):f>=a.Oa+a.Ba&&(a.Ba+=f-(a.Oa+a.Ba)+1):(a.Oa=f,a.Ba=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function hh(a,b){var c=a.ya*a.qa,d=b/c|0;return d<a.ta?(b%=c,a.seek(d,b/a.qa|0,b%a.qa+1)):null}function ih(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
k.save=function(){var a=0,b=[];b[a++]=[this.cb,this.f,this.ta,this.ya,this.qa,this.Ka];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ba){for(var h=[],l=0,m=g.Oa,n=g.Oa+g.Ba;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.Oa,h]}}return b};
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?ch(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Oa=e;for(h.Ba=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.O("Unable to restore disk '"+this.Va+": "+c);return b};
k.toJSON=function(){var a;a=0;for(var b;b=hh(this,a++);)jh(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function jh(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function N(a){u.call(this,"RL11",a,N,2097152);this.w=a.autoMount||null;this.H=0;this.f=Array(4);this.L=!Pa("Mobi")&&window&&"FileReader"in window}z(N);k=N.prototype;
k.sa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.G[b]=c,c.onchange=function(){var a=d.G.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){q("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.G[b]=c,c.onchange=function(){var a=qa(c.value,10);null!=a&&kh(d,a)},!0;case "loadDrive":return this.G[b]=
c,c.onclick=function(){var a=d.G.listDisks;a&&lh(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.L){c.parentNode.removeChild(c);break}this.G[b]=c;c.onclick=function(){var a=d.G.listDrives;if(a&&a.options&&d.f)if(a=d.f[qa(a.value,10)||0])if(a=a.Ca){var b;b="";for(var c=0,h;h=hh(a,c++);)for(var l=0,m=h.length;l<m;l++)b+=String.fromCharCode(ih(a,h,l));b=btoa(b);a=a.Cc.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),
Xa(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=B(d);switch(c.type){case "default":c=new K(c);C(c,d);break;case "pc11":c=new Oc(c);C(c,d);break;case "rl11":c=new N(c),C(c,d)}}});var Pc;if(wb){var Qc=new ArrayBuffer(2);(new DataView(Qc)).setUint16(0,256,!0);Pc=256===(new Uint16Array(Qc))[0]}else Pc=!1;var Rc=Pc;
function I(a,b,c,d,e,f){this.w=a;this.id=Sc+=2;this.b=null;this.F=b;this.Lb=c;this.size=d||0;this.type=e||Tc;this.f=e==Uc;this.controller=null;mc(this);this.Qa=this.Nc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Vc(this,f.Hc);else if(wb)this.C=new ArrayBuffer(this.size),this.D=new DataView(this.C,0,this.size),this.G=new Uint8Array(this.C,0,this.size),this.J=new Uint16Array(this.C,0,this.size>>1),this.b=new Int32Array(this.C,0,this.size>>2),Vc(this,Rc?Wc:Xc);else{a=this.b=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;Vc(this,Yc)}else Vc(this)}var Tc=0,Uc=2,sc=4,uc=["NONE","RAM","ROM","VID","H/W"],Sc=0;
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(wb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(wb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Qa=!0}return!1},mb:function(a,b){b?this.A++||Zc(this,$c,!1):this.g++||ad(this,$c,!1)},K:function(a,b){this.i&&F(this.i,128)&&E(this.i,
"attempt to read invalid address "+J(this.i,b),!0);this.w.Ca(b,32,2);return 255},v:function(a,b,c){this.i&&F(this.i,128)&&E(this.i,"attempt to write "+J(this.i,b)+" to invalid addresses "+J(this.i,c),!0);this.w.Ca(c,32,4)},L:function(a,b){return this.Vb(a++,b++)|this.Vb(a,b)<<8},H:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a,b>>8,c)},S:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},da:function(a,b){a&1&&this.w.Ca(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+
1]&255)<<8},va:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Qa=!0},La:function(a,b,c){a&1&&this.w.Ca(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Qa=!0},P:function(a,b){if(this.i&&null!=this.F){var c=this.i;bd(c,this.F+a,1,c.N)&&c.ha(!0)}return this.fc(a,b)},Y:function(a,b){if(this.i&&null!=this.F){var c=this.i;bd(c,this.F+a,2,c.N)&&c.ha(!0)}return this.gc(a,b)},ma:function(a,
b,c){if(this.i&&null!=this.F){var d=this.i;bd(d,this.F+a,1,d.D)&&d.ha(!0)}this.f?this.v(a,b,c):this.Zb(a,b,c)},za:function(a,b,c){if(this.i&&null!=this.F){var d=this.i;bd(d,this.F+a,2,d.D)&&d.ha(!0)}this.f?this.v(a,b,c):this.kc(a,b,c)},N:function(a){return this.G[a]},R:function(a,b){a=this.G[a];this.i&&F(this.i,128)&&E(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},Oa:function(a,b){a&1&&this.w.Ca(b,64,2);return this.D.getUint16(a,!0)},$:function(a,b){a&1&&this.w.Ca(b,64,2);
a=this.J[a>>1];this.i&&F(this.i,128)&&E(this.i,"Memory.readWord("+J(this.i,b)+"): "+J(this.i,a),!0);return a},ka:function(a,b){this.G[a]=b;this.Qa=!0},ta:function(a,b,c){this.G[a]=b;this.Qa=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},kb:function(a,b,c){a&1&&this.w.Ca(c,64,4);this.D.setUint16(a,b,!0);this.Qa=!0},Ha:function(a,b,c){a&1&&this.w.Ca(c,64,4);this.J[a>>1]=b;this.Qa=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,
b)+")",!0)}};function mc(a,b,c){a.i=b;a.g=a.A=0;c&&((a.g=c.g)&&ad(a,$c,!1),(a.A=c.A)&&Zc(a,$c,!1))}function cd(a,b){b?--a.A||(a.Yb=a.f?a.v:a.Zb,a.Mb=a.f?a.H:a.kc):--a.g||(a.Vb=a.fc,a.ra=a.gc)}function Zc(a,b,c){c&&a.A||(a.Yb=!a.f&&b[1]||a.v,a.Mb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Zb=b[1]||a.v,a.kc=b[3]||a.H}function ad(a,b,c){c&&a.g||(a.Vb=b[0]||a.K,a.ra=b[2]||a.L);if(c||void 0===c)a.fc=b[0]||a.K,a.gc=b[2]||a.L}function Vc(a,b){b||(b=dd);ad(a,b,void 0);Zc(a,b,void 0)}
var dd=[],Yc=[I.prototype.S,I.prototype.va,I.prototype.da,I.prototype.La],$c=[I.prototype.P,I.prototype.ma,I.prototype.Y,I.prototype.za];if(wb)var Xc=[I.prototype.N,I.prototype.ka,I.prototype.Oa,I.prototype.kb],Wc=[I.prototype.R,I.prototype.ta,I.prototype.$,I.prototype.Ha];
function ed(a,b){u.call(this,"CPU",a,ed,1);var c=a.multiplier||1;this.lb=a.cycles||b;this.bb=c;this.tb=Math.round(this.lb/1E4)/100;this.nb=this.tb*this.bb;this.B.Z=!1;this.B.Xb=!1;this.B.sb=a.autoStart;this.B.vb=!1;this.Gb=this.ma=0;this.Hb=a.csStart;this.xb=a.csInterval;this.yb=a.csStop;this.K=[];this.uc=this.Vd.bind(this);H(this)}z(ed);var fd=["power","reset"];k=ed.prototype;
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.i=d;for(b=0;b<fd.length;b++)(c=this.G[fd[b]])&&this.A.sa(null,fd[b],c);a=gd(a,"autoStart");null!=a&&(this.B.sb="true"==a?!0:"false"==a?!1:!!a);H(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.Fa=function(a,b){if(!b){if(a&&this.restore){hd(this);if(!this.restore(a))return!1;id(this)}else this.reset();this.i?(a=this.i,b=this.B.sb,a.jb=!0,a.j("Type ? for help with PDPjs Debugger commands"),a.ca(),b||a.qb(),a.Wa&&(b=a.Wa,a.Wa=null,jd(a,b))):this.j("No debugger detected")}this.A.ca();return!0};k.Ea=function(a){return a?this.save():!0};k.sb=function(){return this.B.sb||!this.i&&void 0===this.G.run?(this.hb(),!0):!1};k.rc=function(){return 0};
function id(a){void 0===a.Hb&&(a.Hb=0);void 0===a.xb&&(a.xb=-1);void 0===a.yb&&(a.yb=-1);a.B.vb=0<=a.Hb&&0<a.xb;a.B.vb&&(a.Gb=0,a.ma=a.Hb-a.ka)}function Zb(a,b){if(a.B.vb){var c=!1;a.Gb=a.Gb+a.rc()|0;a.ma-=b;0>=a.ma&&(a.ma+=a.xb,c=!0);0<=a.yb&&a.yb<=kd(a)&&(a.xb=a.yb=-1,id(a),a.ha(),c=!0);c&&a.j(kd(a)+" cycles: checksum="+p(a.Gb))}}
k.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.B.ja)a=!0;else{var b=null,c,h=ob(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.B.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.B.ja);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.B.ready?"powered yet":"ready yet"+(b.Rb?" (waiting for notification)":""))+".");a=!1}a&&(d.B.Z?d.ha():d.hb())},
!0;case "speed":return this.G[b]=c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){ld(d,d.bb<<1,!0)},c.textContent=this.nb.toFixed(2)+"Mhz",!0}return!1};k.ca=function(){var a=this.G.speed;a&&(a.textContent=this.B.Z&&this.Y?this.Y.toFixed(2)+"Mhz":"Stopped")};function Yb(a,b,c){a.ka+=b;c&&(a.da=a.b=a.J=0)}function md(a,b){var c=1;b&&1<a.bb&&a.Y&&(c=a.Y/a.tb);a.Sb=Math.round(1E3/30);a.jb=Math.floor(a.lb/30*c);b||(a.ta=a.jb);a.ub=0}function kd(a){return a.ka+a.S+a.da-a.b}
function hd(a){a.Y=0;a.Ub=0;a.ka=a.S=a.da=a.b=a.J=0;id(a);ld(a,1)}function ld(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.nb?b=1:d=!0;a.bb=b;b=a.tb*a.bb;if(a.nb!=b){a.nb=b;b=a.nb.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.A&&a.A.qb()}Yb(a,a.S);a.S=0;a.R=Ba();a.$=0;md(a);return d}function zc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function Kc(a,b,c){0<=b&&b<a.K.length&&0>a.K[b][0]&&(c=a.lb*a.bb/1E3*c|0,a.K[b][0]=c+nd(a))}
function od(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Xb(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function nd(a,b){var c=a.da-=a.b;a.b=a.J=0;b&&(a.da=0);return c}
k.Vd=function(){if(this.B.Z){this.ub>=this.lb&&md(this,!0);this.za=0;this.Wa=Ba();if(this.$){var a=this.Wa-this.$;a>this.Sb&&(this.R+=a,this.R>this.Wa&&(this.R=this.Wa))}try{do{var b=od(this,this.B.vb?1:this.jb);try{this.ib(b)}catch(e){if("number"!=typeof e)throw e;}b=nd(this,!0);this.za+=b;this.S+=b;Zb(this,b);Xb(this,b);this.ta-=b;if(0>=this.ta){this.ta+=this.jb;15<=++this.Ub&&(this.A&&this.A.ca(),this.Ub=0);break}}while(this.B.Z)}catch(e){this.ha();this.A&&this.A.stop(Ba(),kd(this));vb(this,e.stack||
e.message);return}if(this.B.Z){a=setTimeout;b=this.uc;this.$=Ba();var c=this.Sb;this.za&&(c=Math.round(c*this.za/this.jb));var c=c-(this.$-this.Wa),d=this.$-this.R;d&&(this.Y=Math.round(this.S/(10*d))/100,864E5<=d&&(this.ka=0,ld(this)));if(0>c||this.Y<this.nb)-1E3>c&&(this.R-=c),c=0;this.ub+=this.za;this.$+=c;a(b,c)}}};
k.hb=function(a){if(ub(this))return!1;if(this.B.Z)return this.j(this.toString()+" busy"),!1;ld(this);this.B.Z=!0;this.B.Xb=!0;var b=this.G.run;b&&(b.textContent="Halt");this.A&&(a&&this.A.qb(!0),this.A.start(this.R,kd(this)));setTimeout(this.uc,0);return!0};k.ib=function(){return 0};k.ha=function(a){var b=!1;if(this.B.Z){nd(this);Yb(this,this.S);this.S=0;this.B.Z=!1;if(b=this.G.run)b.textContent="Run";this.A&&this.A.stop(Ba(),kd(this));b=!0}this.B.complete=a;return b};
function pd(a){this.wb=+a.model||1170;this.Nb=a.addrReset||0;ed.call(this,a,6666667);this.decode=1120==this.wb?qd.bind(this):rd.bind(this);sd(this);this.L=0;this.N=null;this.B.complete=!1}z(pd,ed);k=pd.prototype;k.reset=function(){this.status("model "+this.wb);this.B.Z&&this.ha();sd(this);hd(this);this.B.error=!1;this.parent.reset.call(this)};
function sd(a){a.T=65536;a.U=32768;a.aa=65535;a.X=32768;a.M=15;a.u=[0,0,0,0,0,0,0,a.Nb];a.Ua=[0,0,0,0,0,0];a.Ga=[0,0,0,0];a.v=0;a.La=0;a.Qc=[4,2,0,1];a.V=[[0,0,0,0,0,0,0,0,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]];a.wa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Kb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0];a.Ac=[0,0,0,0,0,0,0,0];a.zc=0;a.I=0;a.D=a.H=0;a.g=a.f=a.rb=0;a.va=-1;Wb(a)}function Wb(a){a.eb=255;a.ga=0;a.ic=0;a.C=0;a.cb=0;a.Jb=0;a.ob=0;a.ab=0;a.Ha=0;a.Qb=262143;a.N=null;a.w&&Mc(a)}function Mc(a){a.ab?(a.P=65536,a.ba=a.Pc,a.ra=a.Sd,a.Mb=a.Je,oc(a.w,a.ob&16?22:18)):(a.P=0,a.ba=a.Oc,a.ra=a.yc,a.Mb=a.Fc,oc(a.w,16))}function td(a,b,c){a.Nb=b;O(a,b);!c&&a.i&&(a.ha()||a.i.ca())}k.rc=function(){return 0};
k.save=function(){var a=new P(this);a.set(0,[]);a.set(1,[this.ka,this.bb]);a.set(2,wc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.ka=b[1];ld(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.J){for(var f=0,g=Array(b.J),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.W[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function ud(a){return a.T&65536?1:0}
function vd(a){return a.U&32768?2:0}function wd(a){return a.aa&65535?0:4}k.Ra=function(){return this.X&32768?8:0};function xd(a){var b=a.u[7];a.C&57344||(a.cb=0,a.Jb=b);a.u[7]=b+2&65535;return a.ra(b)}function yd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function O(a,b){a.u[7]=b&65535}function Lc(a,b){return{Xd:a,zb:b,next:null}}function Jc(a,b){if(b!=a.N){var c=a.N;if(!c||c.zb<=b.zb)b.next=c,a.N=b;else{do{var d=c.next;if(!d||d.zb<=b.zb){b.next=d;c.next=b;break}c=d}while(c)}}a.I|=2}
function ec(a){return a.M=a.M&63728|a.Ra()|wd(a)|vd(a)|ud(a)}function Nc(a,b){a.X=b<<12;a.aa=~b&4;a.U=b<<14;a.T=b<<16;if((b^a.M)&2048)for(var c=a.Ua.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ua[c];a.Ua[c]=d}a.v=b>>14&3;c=a.M>>14&3;a.v!=c&&(a.Ga[c]=a.u[6],a.u[6]=a.Ga[a.v]);a.M=b;a.I|=2}function R(a,b){a.I&128||(a.X=a.aa=b,a.U=0)}function zd(a,b,c){a.I&128||(a.X=a.aa=a.T=b,a.U=c||0)}function Ad(a,b,c,d){a.I&128||(a.X=a.aa=a.T=b,a.U=(c^b)&(d^b))}
function Bd(a,b){a.I&128||(a.X=a.aa=a.T=b,a.U=a.X^a.T>>1)}function Cd(a,b,c,d){a.I&128||(a.X=a.aa=a.T=b,a.U=(c^d)&(d^b))}k.pa=function(a,b){if(!this.L){var c=!1;0>this.va?this.va=ec(this):this.v||(a=4,c=!0);this.C&57344||(this.cb=63222,this.Jb=a);this.v=0;var d=this.ra(a|this.P),e=this.ra(a+2&65535|this.P);Nc(this,e&-12289|this.va>>2&12288);c&&(this.ga|=4,this.u[6]=4);Dd(this,this.va);Dd(this,this.u[7]);O(this,d);this.I&=-113;this.va=-1;this.I|=8;this.Uc=a;this.Sc=b;if(26!=b)throw a;}};
function Vd(a){var b=Wd(a),c=Wd(a)&-1793;a.M&49152&&(c=c&-225|a.M&63712);O(a,b);Nc(a,c);a.I&=-17}function vc(a,b){var c=b>>13&31;31>c&&a.ob&32&&(b=a.Kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
function Xd(a,b,c){var d,e,f,g=0;d=b>>13;a.ob&a.Qc[a.v]||(d&=7);e=a.V[a.v][d];f=(a.wa[a.v][d]<<6)+(b&8191)&a.Qb;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.V[a.v][d]=e;if(4194170!==f||a.v)a.Ha=a.v,a.La=d;b=!1;g&&(g&57344&&(0<=a.va&&(g|=128),a.C&57344||(a.C=a.C|g|a.Ha<<5|a.La<<1),b=!0),a.C&61440||!(4191360>
f||4194239<f)||(a.C|=4096,a.C&512&&(a.I|=32)),b&&a.pa(168,16));return f}function Yd(a,b){return a.w.Fb(b)}function Zd(a,b,c){b&1&&a.b--;a.w.Wb(b,c&255)}function Wd(a){var b=a.ra(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}function Dd(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.C&57344||(a.cb=a.cb<<8|246);!a.v&&c<=a.eb&&4<c&&(c<=a.eb-32?(a.ga|=4,a.u[6]=4,a.pa(4,18)):(a.ga|=8,a.I|=4));a.Mb(c,b)}
function $d(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.pa(4,20),0;case 1:return 6===c&&!a.v&&d&4&&(a.u[6]<=a.eb||65534<=a.u[6])&&(a.u[6]<=a.eb-32||65534<=a.u[6]?(a.ga|=4,a.u[6]=4,a.pa(4,22)):(a.ga|=8,a.I|=64)),a.b-=3,7===c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ra(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ra(e)|
g;a.b-=8;break;case 6:return e=a.ra(yd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.ra(yd(a,2)),e=e+a.u[c]&65535,e=a.ra(e|a.P)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.C&57344||(a.cb=a.cb<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.u[6]<=a.eb||65534<=a.u[6])&&(a.u[6]<=a.eb-32?(a.ga|=4,a.u[6]=4,a.pa(4,24)):(a.ga|=8,a.I|=64));return e}k.Tb=function(a){if(!this.ab)return this.w.Tb(a);this.L++;a=Yd(this,Xd(this,a,3));this.L--;return a};
k.Za=function(a){if(!this.ab)return this.w.Za(a);this.L++;a=this.yc(Xd(this,a,2));this.L--;return a};k.pb=function(a,b){this.ab?(this.L++,Zd(this,Xd(this,a,5),b),this.L--):this.w.pb(a,b)};k.Cb=function(a,b){this.ab?(this.L++,this.Fc(Xd(this,a,4),b),this.L--):this.w.Cb(a,b)};k.Oc=function(a,b,c){return $d(this,a,b,c)};k.Pc=function(a,b,c){return Xd(this,$d(this,a,b,c),c)};k.yc=function(a){return this.w.oa(a)};k.Sd=function(a){return this.w.oa(Xd(this,a,2))};k.Fc=function(a,b){this.w.gb(a,b&65535)};
k.Je=function(a,b){this.w.gb(Xd(this,a,4),b)};function ae(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=$d(a,b,d,2),c&65536||61440!==(a.M&61440)&&(d&=65535),a.v=a.M>>12&3,c=a.ra(d|c&a.P),a.v=a.M>>14&3):c=6!=d||(a.M>>2&12288)===(a.M&12288)?a.u[d]:a.Ga[a.M>>12&3];return c}function be(a,b,c,d){a.C&57344||(a.cb=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=$d(a,b,e,4),c&65536||(e&=65535),a.v=a.M>>12&3,e=Xd(a,e|c&65536,4),a.v=a.M>>14&3,a.w.gb(e,d)):6!=e||(a.M>>2&12288)===(a.M&12288)?a.u[e]=d:a.Ga[a.M>>12&3]=d}
function ce(a,b){b>>=6;var c=a.H=b&7;return(b=a.D=(b&56)>>3)?Yd(a,a.ba(b,c,3)):a.u[c]&255}function de(a,b){b>>=6;var c=a.H=b&7;return(b=a.D=(b&56)>>3)?a.w.oa(a.ba(b,c,2)):a.u[c]}function ee(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return $d(a,b,c,8)}function fe(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Yd(a,a.ba(b,c,3)):a.u[c]&255}function ge(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.oa(a.ba(b,c,2)):a.u[c]}
function S(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.rb=a.ba(b,e,7),Zd(a,e,d.call(a,c,Yd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function T(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,6),a.w.gb(e,d.call(a,c,a.w.oa(e)))):a.u[e]=d.call(a,c,a.u[e])}function he(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Zd(a,a.ba(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}
function ie(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.gb(a.ba(b,d,4),c):a.u[d]=c&65535;return c}function U(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
k.ib=function(a){this.B.complete=!0;var b=this.i&&je(this.i)?1:this.B.Xb?-1:0,c=a?this.B.Xb?0:1:-1;this.B.Xb=!1;this.da=this.b=a;do{if(b){if(this.i&&ke(this.i,this.u[7],c)){this.ha();break}c||c++;b++}if(this.I){this.I&112&&(this.I&32?this.pa(168,28):this.I&64?this.pa(4,30):this.I&16&&this.pa(12,32),this.I&=-113);if(a=this.I&7){a=!1;if(this.I&2){this.I&=-3;var d=160,e=(this.ic&224)>>5,f=this.N&&this.N.zb>e?this.N:null;f&&(d=f.Xd,e=f.zb);e>(this.M&224)>>5?(this.I&4&&(yd(this,2),this.I&=-5),this.pa(d,
26),e=!0):e=!1;if(e){if(f)if(a=f,f=this.N,f==a)this.N=a.next;else for(;f;){e=f.next;if(e==a){f.next=e.next;break}f=e}a=!0}}else this.I&1&&this.I++;a=a&&0>c}if(a)break}this.I=this.I&7|this.M&16;this.decode(xd(this))}while(0<this.b);return this.B.complete?this.da-this.b:void 0===this.B.complete?0:-1};Xa(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new pd(d);C(d,c)}});function le(a,b){var c=b+a;Ad(this,c,a,b);return c&65535}
function me(a,b){var c=b+a;Ad(this,c<<8,a<<8,b<<8);return c&255}function ne(a,b){a=b<<1;Bd(this,a);return a&65535}function oe(a,b){a=b<<1;Bd(this,a<<8);return a&255}function pe(a,b){a=b&32768|b>>1|b<<16;Bd(this,a);return a&65535}function qe(a,b){a=b&2048|b>>1|b<<8;Bd(this,a<<8);return a&255}function re(a,b){a=b&~a;R(this,a);return a}function se(a,b){a=b&~a;R(this,a<<8);return a}function te(a,b){a|=b;R(this,a);return a}function ue(a,b){a|=b;R(this,a<<8);return a}
function ve(a,b){a=~b|65536;zd(this,a);return a&65535}function we(a,b){a=~b|256;zd(this,a<<8);return a&255}function xe(a,b){a=b-a;this.I&128||(this.X=this.aa=a,this.U=b&(b^a));return a&65535}function ye(a,b){a=b-a;var c=a<<8;b<<=8;this.I&128||(this.X=this.aa=c,this.U=b&(b^c));return a&255}function ze(a,b){a=b+a;this.I&128||(this.X=this.aa=a,this.U=a&(b^a));return a&65535}function Ae(a,b){a=b+a;var c=a<<8;this.I&128||(this.X=this.aa=c,this.U=c&(b<<8^c));return a&255}
function Be(a,b){a=-b;zd(this,a,a&b&32768);return a&65535}function Ce(a,b){a=-b;zd(this,a<<8,(a&b&128)<<8);return a&255}function De(a,b){a=b<<1|this.T>>16&1;Bd(this,a);return a&65535}function Ee(a,b){a=b<<1|this.T>>16&1;Bd(this,a<<8);return a&255}function Fe(a,b){a=(this.T&65536|b)>>1|b<<16;Bd(this,a);return a&65535}function Ge(a,b){a=((this.T&65536)>>8|b)>>1|b<<8;Bd(this,a<<8);return a&255}function He(a,b){var c=b-a;Cd(this,c,a,b);return c&65535}
function Ie(a,b){var c=b-a;Cd(this,c<<8,a<<8,b<<8);return c&255}function Je(a,b){this.I&128||(this.X=this.aa=b&65280,this.U=this.T=0);return(b<<8|b>>8)&65535}function Ke(a,b){a^=b;R(this,a);return a&65535}function Le(a){T(this,a,de(this,a),le);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
function Me(a){var b=ge(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.T=this.U=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.T=c<<17-b,c>>=b;else if(b)if(16<b)this.U=c,c=0;else{this.T=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.U=32768)}this.u[a]=c&65535;this.X=this.aa=c;this.b-=(this.g?6:7)+b}
function Ne(a){var b=ge(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.T=this.U=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.T=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.T=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.U=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.X=d>>16;this.aa=d>>16|d;this.b-=(this.g?6:7)+b}function Oe(a){U(this,a,!ud(this))}function Pe(a){U(this,a,ud(this))}
function Qe(a){T(this,a,de(this,a),re);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Re(a){S(this,a,ce(this,a),se);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Se(a){T(this,a,de(this,a),te);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Te(a){S(this,a,ce(this,a),ue);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
function Ue(a){R(this,de(this,a)&ge(this,a));this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function Ve(a){R(this,(ce(this,a)&fe(this,a))<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function We(a){U(this,a,wd(this))}function Xe(a){U(this,a,!this.Ra()==!vd(this))}function Ye(a){U(this,a,!wd(this)&&!this.Ra()==!vd(this))}function Ze(a){U(this,a,!ud(this)&&!wd(this))}function $e(a){U(this,a,wd(this)||!this.Ra()!=!vd(this))}
function af(a){U(this,a,ud(this)||wd(this))}function bf(a){U(this,a,!this.Ra()!=!vd(this))}function cf(a){U(this,a,this.Ra())}function df(a){U(this,a,!wd(this))}function ef(a){U(this,a,!this.Ra())}function ff(){this.pa(12,1);this.b-=5}function gf(a){U(this,a,!0)}function hf(a){U(this,a,!vd(this))}function jf(a){U(this,a,vd(this))}function V(a){a&1&&(this.T=0);a&2&&(this.U=0);a&4&&(this.aa=1);a&8&&(this.X=0);this.b-=5}
function kf(a){var b=de(this,a);a=ge(this,a);Cd(this,b-a,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function lf(a){var b=ce(this,a)<<8;a=fe(this,a)<<8;Cd(this,b-a,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}
function mf(a){var b=ge(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.T=this.U=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.aa=d>>16|d,this.X=d>>16):(this.U=32768,this.aa=d>>15|d,this.X=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.aa=this.X=0,this.U=32768,this.T=65536,this.b-=7}function nf(){this.pa(24,2);this.b-=25}
function of(){this.M&49152?(this.ga|=128,this.pa(4,3)):this.i?pf(this.i):this.ha();this.b-=7}function qf(){this.pa(16,4);this.b-=25}var rf=[0,7,7,10,7,11,9,13];function sf(a){this.J=this.b;O(this,ee(this,a));this.b=this.J-rf[this.g]}var tf=[0,14,14,17,14,18,16,20];function uf(a){this.J=this.b;var b=ee(this,a);a=a>>6&7;Dd(this,this.u[a]);this.u[a]=this.u[7];O(this,b);this.b=this.J-tf[this.g]}var vf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function wf(a){var b=de(this,a);this.J=this.b;R(this,ie(this,a,b));this.b=this.J-vf[(this.D?8:0)+this.g]+(7!=this.f||this.g?0:2)}function xf(a){var b=ce(this,a);R(this,he(this,a,b,1)<<8);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}var yf=[7,13,13,17,14,18,17,21];
function zf(a){var b=ge(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.I&128||(this.X=b>>16,this.aa=this.X|b,this.U=0,this.T=-32768>b||32767<b?65536:0);this.b-=23}function Af(){this.b-=5}function Bf(){this.M&49152||(this.w.reset(),Wb(this));this.b-=667}function Cf(){Vd(this);this.I|=this.M&16;this.b-=13}
function Df(a){if(a&8)W.call(this,a);else{var b=Wd(this);a&=7;7==a?O(this,b):(O(this,this.u[a]),this.u[a]=b);this.b-=9}}function X(a){a&1&&(this.T=65536);a&2&&(this.U=32768);a&4&&(this.aa=0);a&8&&(this.X=32768);this.b-=5}function Ef(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Ff(a){T(this,a,de(this,a),He);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
function Gf(a){T(this,a,0,Je);this.b-=this.g?9:3+(7==this.f?2:0)}function Hf(){this.pa(28,5);this.b-=5}function If(){this.I&4||this.A&&this.A.ca();this.I|=4;yd(this,-2);this.b-=3}function Jf(a){T(this,a,de(this,a),Ke);this.b-=this.g?9:3+(7==this.f?2:0)}function W(a){var b;if(b=this.i)b=this.i,E(b,"undefined opcode "+J(b,a),!0,!0),b=pf(b);b||this.pa(8,6)}function qd(a){Kf[a>>12].call(this,a)}function Lf(a){Mf[a>>6&3].call(this,a)}function Nf(a){Of[a>>6&3].call(this,a)}
function Pf(a){Qf[a>>6&3].call(this,a)}function Rf(a){Sf[a&15].call(this,a)}function Tf(a){Uf[a&15].call(this,a)}function Vf(a){Wf[a>>6&3].call(this,a)}function Xf(a){Yf[a>>6&3].call(this,a)}function Zf(a){$f[a>>6&3].call(this,a)}
var Kf=[function(a){ag[a>>8&15].call(this,a)},wf,kf,Ue,Qe,Se,Le,W,function(a){bg[a>>8&15].call(this,a)},xf,lf,Ve,Re,Te,Ff,W],ag=[function(a){cg[a>>4&15].call(this,a)},gf,df,We,Xe,bf,Ye,$e,uf,uf,Lf,Nf,Pf,W,W,W],Mf=[function(a){zd(this,ie(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,1,ze);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,1,xe);this.b-=this.g?9:3+(7==this.f?2:0)}],Of=[function(a){T(this,a,0,
Be);this.b-=this.g?11:6},function(a){T(this,a,ud(this)?1:0,le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,ud(this)?1:0,He);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=ge(this,a);zd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Qf=[function(a){T(this,a,0,Fe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,De);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){T(this,a,0,ne);this.b-=this.g?9:3+(7==this.f?2:0)}],
cg=[function(a){dg[a&15].call(this,a)},W,W,W,sf,sf,sf,sf,Df,W,Rf,Tf,Gf,Gf,Gf,Gf],dg=[of,If,Cf,ff,qf,Bf,W,W,W,W,W,W,W,W,W,W],Sf=[Af,function(){this.T=0;this.b-=5},function(){this.U=0;this.b-=5},V,function(){this.aa=1;this.b-=5},V,V,V,function(){this.X=0;this.b-=5},V,V,V,V,V,V,V],Uf=[Af,function(){this.T=65536;this.b-=5},function(){this.U=32768;this.b-=5},X,function(){this.aa=0;this.b-=5},X,X,X,function(){this.X=32768;this.b-=5},X,X,X,X,X,X,X],bg=[ef,cf,Ze,af,hf,jf,Oe,Pe,nf,Hf,Vf,Xf,Zf,W,W,W],Wf=[function(a){zd(this,
he(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,1,Ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,1,ye);this.b-=this.g?9:3+(7==this.f?2:0)}],Yf=[function(a){S(this,a,0,Ce);this.b-=this.g?11:6},function(a){S(this,a,ud(this)?1:0,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,ud(this)?1:0,Ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=fe(this,a);zd(this,a<<8);this.b-=this.g?4:3+(7==
this.f?2:0)}],$f=[function(a){S(this,a,0,Ge);this.b-=this.g?9+(this.rb&1):3+(7==this.f?2:0)},function(a){S(this,a,0,Ee);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,0,qe);this.b-=this.g?9+(this.rb&1):3+(7==this.f?2:0)},function(a){S(this,a,0,oe);this.b-=this.g?9:3+(7==this.f?2:0)}];function rd(a){eg[a>>12].call(this,a)}
var eg=[function(a){fg[a>>8&15].call(this,a)},wf,kf,Ue,Qe,Se,Le,function(a){gg[a>>8&15].call(this,a)},function(a){hg[a>>8&15].call(this,a)},xf,lf,Ve,Re,Te,Ff,W],fg=[function(a){ig[a>>4&15].call(this,a)},gf,df,We,Xe,bf,Ye,$e,uf,uf,Lf,Nf,Pf,function(a){jg[a>>6&3].call(this,a)},W,W],jg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ra(a|this.P);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=ae(this,a,0);Dd(this,a);R(this,a);this.b-=11},function(a){var b=Wd(this);this.J=
this.b;be(this,a,0,b);R(this,b);this.b=this.J-yf[this.g]},function(a){R(this,ie(this,a,this.Ra?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ig=[function(a){kg[a&15].call(this,a)},W,W,W,sf,sf,sf,sf,Df,function(a){a&8?(this.M&49152||(this.M=this.M&-2017|(a&7)<<5,this.I|=1),this.b-=5):W.call(this,a)},Rf,Tf,Gf,Gf,Gf,Gf],kg=[of,If,Cf,ff,qf,Bf,function(){Vd(this);this.b-=13},W,W,W,W,W,W,W,W,W],gg=[zf,zf,mf,mf,Me,Me,Ne,Ne,Jf,Jf,W,W,W,W,Ef,Ef],hg=[ef,cf,Ze,af,hf,jf,Oe,Pe,nf,Hf,Vf,Xf,Zf,function(a){lg[a>>
6&3].call(this,a)},W,W],lg=[W,function(a){a=ae(this,a,65536);Dd(this,a);R(this,a);this.b-=11},function(a){var b=Wd(this);this.J=this.b;be(this,a,65536,b);R(this,b);this.b=this.J-yf[this.g]},W];
function mg(a){u.call(this,"ROM",a,mg);this.ia=this.f=null;this.C=a.addr;this.g=a.size;this.v=a.alias;this.A=a.file;this.D=sa(this.A);if(this.A){a=this.A;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(nb(c.Oa,a,b),(a=Fa(a,b))?(c.f=a.ea,c.ia=a.ia):c.A=null);ng(c)})}}z(mg);mg.prototype.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;ng(this)};
mg.prototype.Fa=function(){this.ia&&(this.i&&og(this.i,this.id,this.C,this.g,this.ia),delete this.ia);return!0};mg.prototype.Ea=function(){return!0};
function ng(a){if(!tb(a)){if(a.A){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)vb(a,"ROM size ("+p(a.f.length,8,!0)+") does not match specified size ("+p(a.g,8,!0)+")");else{var b;b=a.C;if(rc(a.w,b,a.g,Uc)){var c;for(c=0;c<a.f.length;c++)a.w.pb(b+c,a.f[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.v?b.push(a.v):null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){var d=a,e=b[c],f=qc(d.w,d.C,d.g);pc(d.w,e,d.g,f)}delete a.f}}}H(a)}}
Xa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new mg(d);C(d,c)}});
function pg(a){u.call(this,"RAM",a,pg);this.ia=this.g=null;this.A=a.addr;this.C=a.size;this.Ja=a.load;this.Ia=a.exec;this.v=!1;this.f=a.file;this.D=sa(this.f);if(this.f){a=this.f;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(nb(c.Oa,a,b),(a=Fa(a,b))?(c.g=a.ea,c.ia=a.ia,null==c.Ja&&(c.Ja=a.Ja),null==c.Ia&&(c.Ia=a.Ia)):c.f=null);qg(c)})}}
z(pg);pg.prototype.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;qg(this)};pg.prototype.Fa=function(){this.ia&&(this.i&&og(this.i,this.id,this.A,this.C,this.ia),delete this.ia);return!0};pg.prototype.Ea=function(){return!0};function qg(a){if(a.w&&(!a.v&&a.C&&rc(a.w,a.A,a.C,1)&&(a.v=!0),!tb(a))){if(!a.v)q("No RAM allocated");else if(a.f){if(!a.g||!a.w)return;Kg(a,a.g,a.Ja,a.Ia,a.A)}H(a)}}
pg.prototype.reset=function(){if(this.v){for(var a=this.w,b=this.A,c=this.C,d=b&a.w,b=b>>>a.la;0<c&&b<a.W.length;){var e=a.W[b],f=c,g,d=d||0;void 0===f&&(f=e.size);if(wb)for(g=d;f--&&g<e.G.length;g++)e.G[g]=0;else for(g=d;f--&&g<e.size;g++)e.Zb(d,0,e.F+d);c-=a.xa;b++;d=0}this.g&&Kg(this,this.g,this.Ja,this.Ia,this.A,!0)}};
function Kg(a,b,c,d,e,f){var g=!1;if(null==c)for(var h=0;h<b.length-1;){var l=b[h]&255|(b[h+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(h+6>=b.length)break;for(var h=h+2,m=b[h++]&255|(b[h++]&255)<<8,n=b[h++]&255|(b[h++]&255)<<8,l=l+((m&255)+(m>>8)+(n&255)+(n>>8)),r=h,t=m-=6;0<m&&h<b.length;)l+=b[h++]&255,m--;if(m||h>=b.length)break;l+=b[h++]&255;if(l&255)break;if(t)for(;t--;)a.b.pb(n++,b[r++]&255);else n&1?a.b.ha():td(a.b,n,f);g=!0}else h++;else h+=2}if(!g&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.b.pb(c+
e,b[e]);null!=d&&td(a.b,d,f);g=!0}return g}Xa(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new pg(d);C(d,c)}});function Lg(a){u.call(this,"Keyboard",a,Lg,65536);H(this)}z(Lg);Lg.prototype.sa=function(){return!1};Lg.prototype.Da=function(a,b,c,d){this.A=a;this.b=c;this.i=d};Xa(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Lg(d);C(d,c)}});
function Y(a){this.N=a.baudReceive||9600;this.R=a.baudTransmit||9600;this.da=a.upperCase;this.v=this.D=null;this.S=a.tabSize;this.P=a.charBOL;this.H=0;u.call(this,"SerialPort",a,Y,8388608);var b=a.binding;if("console"==b)this.D="";else{var c;a=Mg;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.G[b])&&this.sa(null,a,b))}this.J=this.L=null;this.exports={connect:this.vc,receiveData:this.hc}}z(Y);var Mg="buffer";k=Y.prototype;
k.sa=function(a,b,c){var d=this;switch(b){case Mg:return this.G[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.hc(b);return!0},c.onkeypress=function(a){a=a||window.event;d.hc(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;var e=this;this.ka=Lc(48,4);this.Y=zc(this.b,function(){e.f&128||!e.C.length||(e.K=e.C.shift()&255,e.da&&97<=e.K&&122>e.K&&(e.K-=32),e.f|=128,e.f&64&&Jc(e.b,e.ka))});this.ma=Lc(52,4);this.$=zc(this.b,function(){e.g|=128;e.g&64&&Jc(e.b,e.ma)});Bb(b,this,Ng);H(this)};
k.vc=function(){if(!this.J){var a=gd(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ya(b[0]);if(c!=this.kb)return;b=ya(b[1]);if(this.J=pb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.L=d.receiveData){this.status(this.Oa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Fa=function(a,b){if(!b)if(this.vc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
k.Ea=function(a){return a?this.save():!0};k.reset=function(){Og(this)};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return Og(this)};function Og(a){a.K=0;a.f=0;a.g=128;a.C=[];return!0}k.hc=function(a){if("number"==typeof a)this.C.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.C.push(a.charCodeAt(b));else this.C=this.C.concat(a);Kc(this.b,this.Y,1E3/Math.round(this.N/10));return!0};k.Bd=function(){return this.f&65534};
k.se=function(a){this.f=this.f&-112|a&111};k.Ad=function(){this.f&=-129;0<this.C.length&&Kc(this.b,this.Y,1E3/Math.round(this.N/10));return this.K};k.re=function(){};k.Ud=function(){return this.g};k.Le=function(a){128==(this.g&192)&&a&64&&Kc(this.b,this.$,1E3/Math.round(this.R/10));this.g=this.g&-70|a&69};k.Td=function(){return 0};
k.Ke=function(a){if(a&=255){E(this,"transmitByte("+p(a,2,!0)+")");this.L&&this.L.call(this.J,a);if(this.v)if(13==a)this.H=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.H&&this.H--;else{var b;b=(b=za[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.S||8,c=a-this.H%a,this.S&&(b=xa("",c)));this.P&&!this.H&&c&&(b=String.fromCharCode(this.P)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}else if(null!=this.D){if(10==a||1024<=this.D.length)this.j(this.D),
this.D="";10!=a&&(this.D+=String.fromCharCode(a))}this.g&=-129;Kc(this.b,this.$,1E3/Math.round(this.R/10))}};var Pg={},Ng=(Pg[65392]=[null,null,Y.prototype.Bd,Y.prototype.se,"RCSR"],Pg[65394]=[null,null,Y.prototype.Ad,Y.prototype.re,"RBUF"],Pg[65396]=[null,null,Y.prototype.Ud,Y.prototype.Le,"XCSR"],Pg[65398]=[null,null,Y.prototype.Td,Y.prototype.Ke,"XBUF"],Pg);Xa(function(){for(var a=D(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Y(d);C(d,c)}});
function Oc(a){u.call(this,"PC11",a,Oc);this.g=a.autoMount||null;this.D=0;this.$=a.baudReceive||3600;this.K=this.L=this.f=0;this.J=[];this.H=Qg;this.v=Rg;this.N=this.C="";this.ea=this.Ja=this.Ia=null;this.R=-1;this.P=!Pa("Mobi")&&window&&"FileReader"in window}z(Oc);var Qg="",Rg=0;k=Oc.prototype;
k.sa=function(a,b,c){var d=this,e=Rg;switch(b){case "listTapes":return this.G[b]=c,c.onchange=function(){var a=d.G.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){q("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.G[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.G[b]=c,c.onclick=
function(){var a=d.G.listTapes;a&&Sg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.G[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Sg(d,sa(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.G[b]=c,!0}return!1};
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;this.S=Tg(a);var e=this;if((this.g=gd(this.A,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){q("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.Y=Lc(56,4);this.da=zc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.K<e.J.length&&(e.L=e.J[e.K++]&255,Ug(e,e.K/e.J.length*100),e.f|=128,e.f&=-2049,e.f&64&&Jc(e.b,e.Y))});Bb(b,this,Vg);Wg(this,"None",Qg,!0);this.P&&Wg(this,"Local Tape",
"?");Wg(this,"Remote Tape","??");Xg(this)||H(this)};k.Fa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ea=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.L=0};function Xg(a){a.D=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.G.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=sa(b,!0)}b&&c?Yg(a,c,b,1,!0):Zg(a)}return!!a.D}
function Sg(a,b,c,d,e){if(c)if("?"==c)a.O('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=sa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.H="??"}else a.H=c;Yg(a,b,c,d,!1,e)}else $g(a,!1)}
function Yg(a,b,c,d,e,f){var g=-1;if(a.C.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,$g(a,!0),a.B.Ya?a.O("PC11 busy"):(e&&(a.D++,F(a)&&E(a,"auto-loading tape: "+b)),ah(a,b,c,d,f)?g++:a.B.Ya=!0);g&&bh(a,a.N,a.C,a.v,a.ea,a.Ja,a.Ia)}
function ah(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),bh(a,b,c,d,e),a.H="?");Zg(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=ta(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var h=0>g&&a.A&&!a.A.B.ja;g?a.O('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.Oa,e,f),(e=Fa(e,f))&&bh(a,b,c,d,e.ea,e.Ja,
e.Ia));a.B.Ya=!1;a.D&&(a.D--,a.D||H(a));Zg(a)})}function Wg(a,b,c,d){if((a=a.G.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Zg(a){var b=a.G.listTapes;if(b&&b.options){a=a.H||a.C;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Ug(a,b){b|=0;if(b!==a.R){var c=a.G.readProgress;c&&(c=(c=D(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.R=b}}
function bh(a,b,c,d,e,f,g){a.N=b;a.C=c;a.v=d;a.ea=e;a.Ja=f;a.Ia=g;2==d?a.S&&Kg(a.S,e,f,g)?a.status("tape loaded: "+b):(a.N="",a.C="",a.H=Qg,a.v=Rg,a.O("No load address available for tape: "+b)):(a.K=0,a.J=e,a.status("tape attached: "+b),Ug(a,0))}function $g(a,b){if(a.C||!1===b)a.N="",a.C="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.H=Qg,a.v=Rg,Zg(a))}k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};k.ud=function(){return this.f&65534};
k.le=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Jc(this.b,this.Y)):(this.f&=-129,this.f|=2048,this.L=0,Kc(this.b,this.da,1E3/Math.round(this.$/10))));this.f=this.f&-66|a&65};k.td=function(){this.f&=-129;this.f|=2048;return this.L};k.ke=function(){};var ch={},Vg=(ch[65384]=[null,null,Oc.prototype.ud,Oc.prototype.le,"PRS"],ch[65386]=[null,null,Oc.prototype.td,Oc.prototype.ke,"PRB"],ch);
function dh(a,b,c){u.call(this,"Disk",{id:a.Oa+".disk"+p(++eh,4)},dh,2097152);this.controller=a;this.A=a.A;this.i=a.i;this.v=b;this.Va=b.name;this.dc=b.dc;fh(this,c,b.ua,b.ya,b.qa,b.Ka);H(this)}var eh=0;z(dh);k=dh.prototype;k.Da=function(a,b,c,d){this.i=d};
function fh(a,b,c,d,e,f){a.mode=b;a.ua=c;a.ya=d;a.qa=e;a.Ka=f;a.b=[];if("preload"!=a.mode){b=Array(a.ua);for(c=0;c<b.length;c++){d=Array(a.ya);for(e=0;e<d.length;e++){f=Array(a.qa);for(var g=1;g<=f.length;g++)f[g-1]=gh(null,c,e,g,a.Ka,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
function hh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Va=b;a.fb=c;a.Cc=sa(c);a.w=e;a.C=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=la[d];if(e){a.ua=e[0];a.ya=e[1];a.qa=e[2];a.Ka=e[3]||512;c=a.Ka>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ua);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ya),w=0;w<t.length;w++)for(var y=t[w]=Array(a.qa),x=0;x<y.length;x++){for(var A=gh(null,d,w,x+1,a.Ka,0),ja=A.data,Ia=0;Ia<c;Ia++,f+=4)var Q=ja[Ia]=b.getInt32(f,
!0),e=e+Q&-1;A.Aa=c;y[x]=A}a.f=e;c=a}else a.O("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Va,a.fb),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ta(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ua(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.dc?"":e)+"&format=json"));return!!Ea(f,
null,!0,function(b,c,d){ih(a,b,c,d)})}
function ih(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.A&&!a.A.B.ja;if(d)a.controller.O('Unable to load disk "'+a.Va+'" (error '+d+": "+b+")",f);else{nb(a.controller.Oa,b,c);try{if(0<sa(a.Cc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Va]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(h.length)if(1==h.length)q(h[0]);else{a.ua=h.length;a.ya=h[0].length;a.qa=h[0][0].length;var l=h[0][0][0];a.Ka=l&&l.length||512;for(d=c=0;d<a.ua;d++)for(f=0;f<a.ya;f++)for(g=0;g<a.qa;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var t=l.bytes;if(void 0!==t&&t.length){for(var w=m<<2,y=t.length;y<w;y++)t[y]=n;jh(l,t)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}gh(l,d,f);for(w=
0;w<r.length;w++)c=c+r[w]&-1}a.b=h;a.f=c;e=a}else q("Empty disk image: "+a.Va)}catch(x){q("Disk image error ("+b+"): "+x.message)}}a.w&&(a.w.call(a.C,a.v,e,a.Va,a.fb),a.w=null)}function gh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Oe=b;a.Pe=c;a.Na=a.Aa=0;a.Qa=!1;return a}
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.Ic&&b<f.ya)for(h=g[b]=Array(f.Jc),g=0;g<h.length;g++)h[g]=gh(null,a,b,g+1,f.wc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.Ic&&9==f.mc&&(d=h[g]=gh(null,a,b,f.mc,f.wc,0))}}e&&e(d,!1);return d};function jh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Aa?f<a.Na?(a.Aa+=a.Na-f,a.Na=f):f>=a.Na+a.Aa&&(a.Aa+=f-(a.Na+a.Aa)+1):(a.Na=f,a.Aa=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function kh(a,b){var c=a.ya*a.qa,d=b/c|0;return d<a.ua?(b%=c,a.seek(d,b/a.qa|0,b%a.qa+1)):null}function lh(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
k.save=function(){var a=0,b=[];b[a++]=[this.fb,this.f,this.ua,this.ya,this.qa,this.Ka];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Aa){for(var h=[],l=0,m=g.Na,n=g.Na+g.Aa;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.Na,h]}}return b};
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?fh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Na=e;for(h.Aa=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.O("Unable to restore disk '"+this.Va+": "+c);return b};
k.toJSON=function(){var a;a=0;for(var b;b=kh(this,a++);)mh(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function mh(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function N(a){u.call(this,"RL11",a,N,2097152);this.v=a.autoMount||null;this.H=0;this.f=Array(4);this.L=!Pa("Mobi")&&window&&"FileReader"in window}z(N);k=N.prototype;
k.sa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.G[b]=c,c.onchange=function(){var a=d.G.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){q("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.G[b]=c,c.onchange=function(){var a=qa(c.value,10);null!=a&&nh(d,a)},!0;case "loadDrive":return this.G[b]=
c,c.onclick=function(){var a=d.G.listDisks;a&&oh(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.L){c.parentNode.removeChild(c);break}this.G[b]=c;c.onclick=function(){var a=d.G.listDrives;if(a&&a.options&&d.f)if(a=d.f[qa(a.value,10)||0])if(a=a.Ba){var b;b="";for(var c=0,h;h=kh(a,c++);)for(var l=0,m=h.length;l<m;l++)b+=String.fromCharCode(lh(a,h,l));b=btoa(b);a=a.Cc.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),
"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+(a?" ("+a+")":"")+".");q(a)}else d.O("No disk loaded in drive.");else d.O("No disk drive selected.")};return!0;case "mountDrive":if(this.L)return this.G[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=
!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;lh(d,sa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ea=function(a,b,c,d){this.u=a;this.A=b;this.b=c;this.i=d;if((this.w=dd(this.u,"autoMount")||this.w)&&"string"==typeof this.w)try{this.w=eval("("+this.w+")")}catch(e){q("RL11 auto-mount error: "+e.message+" ("+this.w+")"),this.w=null}mh(this);this.P=Ic(112,5);Ab(b,this,nh,2097152);oh(this,"None","",!0);this.L&&oh(this,"Local Disk","?");oh(this,"Remote Disk","??");ph(this)||H(this)};
k.Ga=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.u.pc){for(a=0;a<this.f.length;a++)qh(this,a,!0);ph(this,!0)}}else if(!this.restore(a))return!1;if(a=this.G.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";kh(this,0)}}return!0};k.Fa=function(a){return a?this.save():!0};k.reset=function(){mh(this)};k.save=function(){return(new P(this)).data()};
k.restore=function(a){return mh(this,a[0])};function ph(a,b){b||(a.H=0);if(a.w)for(var c in a.w){var d=a.w[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.G.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=sa(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.f.length)){!rh(a,g,f,e,!0)&&b&&H(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.H}
function lh(a,b,c,d){var e=a.G.listDrives,e=e&&qa(e.value,10);if(void 0===e||0>e||e>=a.f.length)a.O("Unable to load the selected drive");else if(c)if("?"==c)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=sa(c);a.status("Attempting to load "+c+' as "'+b+'"')}rh(a,e,b,c,!1,d)}else qh(a,e)}
function rh(a,b,c,d,e,f){var g=-1,h=a.f[b];h.cb.toLowerCase()!=d.toLowerCase()&&(g++,qh(a,b,!0),h.bc?a.O("RL11 busy"):(h.bc=!0,e&&(h.ac=!0,a.H++,F(a)&&E(a,"auto-loading disk: "+c)),h.Ob=!!f,eh(new ah(a,h,"preload"),c,d,f,a.Lc)&&g++));return g}
k.Lc=function(a,b,c,d,e){var f;a.bc=!1;b&&(f=b.b.length?[b.b.length,b.b[0].length,b.b[0][0].length,b.b[0][0][0].length]:[0,0,0,0],b&&f[0]>a.ta||f[1]>a.ya)&&(this.O('Disk "'+c+'" too large for drive '+("RL"+a.dc)),b=null);b?(a.Ca=b,a.Va=c,a.cb=d,this.O('Mounted disk "'+c+'" in drive '+("RL"+a.dc),a.ac||e),this.u&&this.u.qb()):a.Ob=!1;a.ac&&(a.ac=!1,--this.H||H(this));kh(this,a.dc)};
function oh(a,b,c,d){if((a=a.G.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function kh(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.G.listDisks;a=a.G.listDrives;if(d&&a&&d.options&&a.options&&(a=qa(a.value,10),c=c.Ob?"?":c.cb,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function qh(a,b,c){var d=a.f[b];if(d.Ca||!1===c)d.Va="",d.cb="",d.Ca=null,d.Ob=!1,c||(a.O("Drive RL"+b+" unloaded",c),kh(a,b))}
function mh(a,b){var c=0;b||(b=[]);a.fa=b[c++]||0;a.J=b[c++]||0;a.g=b[c++]||0;a.C=b[c++]||0;a.D=b[c++]||0;a.K=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.dc=b;d.bc=d.Ob=!1;d.name=c.ib;d.ta=512;d.ya=2;d.qa=40;d.Ka=256;d.cc=!0;d.Ne=0;d.Me=0;d.lc=1;d.Jc=d.qa;d.wc=d.Ka;d.Qe=0;d.Se=null;d.Ca||(d.cb="");d.status=29|(512==d.ta?128:0)}return!0}
!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;oh(d,sa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;if((this.v=gd(this.A,"autoMount")||this.v)&&"string"==typeof this.v)try{this.v=eval("("+this.v+")")}catch(e){q("RL11 auto-mount error: "+e.message+" ("+this.v+")"),this.v=null}ph(this);this.P=Lc(112,5);Bb(b,this,qh,2097152);rh(this,"None","",!0);this.L&&rh(this,"Local Disk","?");rh(this,"Remote Disk","??");sh(this)||H(this)};
k.Fa=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.qc){for(a=0;a<this.f.length;a++)th(this,a,!0);sh(this,!0)}}else if(!this.restore(a))return!1;if(a=this.G.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";nh(this,0)}}return!0};k.Ea=function(a){return a?this.save():!0};k.reset=function(){ph(this)};k.save=function(){return(new P(this)).data()};
k.restore=function(a){return ph(this,a[0])};function sh(a,b){b||(a.H=0);if(a.v)for(var c in a.v){var d=a.v[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.G.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=sa(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.f.length)){!uh(a,g,f,e,!0)&&b&&H(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.H}
function oh(a,b,c,d){var e=a.G.listDrives,e=e&&qa(e.value,10);if(void 0===e||0>e||e>=a.f.length)a.O("Unable to load the selected drive");else if(c)if("?"==c)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=sa(c);a.status("Attempting to load "+c+' as "'+b+'"')}uh(a,e,b,c,!1,d)}else th(a,e)}
function uh(a,b,c,d,e,f){var g=-1,h=a.f[b];h.fb.toLowerCase()!=d.toLowerCase()&&(g++,th(a,b,!0),h.cc?a.O("RL11 busy"):(h.cc=!0,e&&(h.bc=!0,a.H++,F(a)&&E(a,"auto-loading disk: "+c)),h.Ob=!!f,hh(new dh(a,h,"preload"),c,d,f,a.Lc)&&g++));return g}
k.Lc=function(a,b,c,d,e){var f;a.cc=!1;b&&(f=b.b.length?[b.b.length,b.b[0].length,b.b[0][0].length,b.b[0][0][0].length]:[0,0,0,0],b&&f[0]>a.ua||f[1]>a.ya)&&(this.O('Disk "'+c+'" too large for drive '+("RL"+a.ec)),b=null);b?(a.Ba=b,a.Va=c,a.fb=d,this.O('Mounted disk "'+c+'" in drive '+("RL"+a.ec),a.bc||e),this.A&&this.A.qb()):a.Ob=!1;a.bc&&(a.bc=!1,--this.H||H(this));nh(this,a.ec)};
function rh(a,b,c,d){if((a=a.G.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function nh(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.G.listDisks;a=a.G.listDrives;if(d&&a&&d.options&&a.options&&(a=qa(a.value,10),c=c.Ob?"?":c.fb,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function th(a,b,c){var d=a.f[b];if(d.Ba||!1===c)d.Va="",d.fb="",d.Ba=null,d.Ob=!1,c||(a.O("Drive RL"+b+" unloaded",c),nh(a,b))}
function ph(a,b){var c=0;b||(b=[]);a.fa=b[c++]||0;a.J=b[c++]||0;a.g=b[c++]||0;a.C=b[c++]||0;a.D=b[c++]||0;a.K=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.ec=b;d.cc=d.Ob=!1;d.name=c.kb;d.ua=512;d.ya=2;d.qa=40;d.Ka=256;d.dc=!0;d.Ne=0;d.Me=0;d.mc=1;d.Jc=d.qa;d.wc=d.Ka;d.Qe=0;d.Se=null;d.Ba||(d.fb="");d.status=29|(512==d.ua?128:0)}return!0}
k.Mc=function(a,b,c,d,e,f){this.J=f&65535;this.fa=this.fa&-49|f>>12&48;this.K=f>>16&63;this.C=this.g=b<<7|(c?64:0)|d&63;this.D=65536-e&65535;a&&(this.fa=this.fa|a|32768);return!0};
k.gd=function(a,b,c,d,e,f,g){for(var h=0,l=a.Ca,m=null,n;e--;){if(!m){m=a.Ca.seek(b,c,d+1);if(!m){h=5120;break}n=0}var r,t;if(0>(r=a.Ca.read(m,n++))||0>(t=a.Ca.read(m,n++))){h=5120;break}this.A.eb(f,r|t<<8);if(vc(this.A)){h=8192;break}f+=2;if(n>=l.Ka&&(m=null,++d>=l.qa&&(d=0,++c>=l.ya&&(c=0,++b>=l.ta)))){h=5120;break}}return g(h,b,c,d,e,f)};
k.ae=function(a,b,c,d,e,f,g){for(var h=0,l=a.Ca,m=null,n;e--;){var r=this.A.oa(f);if(vc(this.A)){h=8192;break}f+=2;if(!m){m=a.Ca.seek(b,c,d+1,!0);if(!m){h=5120;break}n=0}if(!a.Ca.write(m,n++,r&255)||!a.Ca.write(m,n++,r>>8)){h=5120;break}if(n>=l.Ka&&(m=null,++d>=l.qa&&(d=0,++c>=l.ya&&(c=0,++b>=l.ta)))){h=5120;break}}return g(h,b,c,d,e,f)};k.Ed=function(){return this.fa&65535};
k.ve=function(a){this.fa=this.fa&-1023|a&1022;this.N=this.N&-4|(a&48)>>4;if(!(this.fa&128)){var b;a=!0;var c=this.f[(this.fa&768)>>8],d,e,f,g;this.fa&=-2;switch(this.fa&14){case 4:this.g&8&&(this.fa&=63);this.D=c.status|this.C&64;break;case 6:1==(this.g&3)&&(b=this.g&65408,c=(this.g&16)<<2,this.C=this.g&4?this.C+b:this.C-b,this.g=this.C=this.C&65408|c);break;case 8:this.D=this.C;break;case 12:b=this.gd;case 10:b||(b=this.ae),d=this.g>>7,e=this.g&64?0:1,f=this.g&63,d>=c.ta||f>=c.qa?this.fa|=37888:
(g=(this.K&63)<<16|this.J,a=65536-this.D&65535,a=b.call(this,c,d,e,f,a,g,this.Mc.bind(this)))}a&&(this.fa|=129,this.fa&64&&xc(this.b,this.P))}};k.Cd=function(){return this.J};k.te=function(a){this.J=a&65534};k.Fd=function(){return this.g};k.we=function(a){this.g=a};k.Gd=function(){return this.D};k.xe=function(a){this.D=a};k.Dd=function(){return this.K};k.ue=function(a){this.K=a&63};
var sh={},nh=(sh[63744]=[null,null,N.prototype.Ed,N.prototype.ve,"RLCS"],sh[63746]=[null,null,N.prototype.Cd,N.prototype.te,"RLBA"],sh[65284]=[null,null,N.prototype.Fd,N.prototype.we,"RLDA"],sh[65286]=[null,null,N.prototype.Gd,N.prototype.xe,"RLMP"],sh[65288]=[null,null,N.prototype.Dd,N.prototype.ue,"RLBE"],sh);function th(a){u.call(this,"Debugger",a,th);this.$=a.base||16;this.Aa=!1;this.J=0;this.P=!1;this.w=-1;this.g=[];this.V={}}z(th);
var uh={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};th.prototype.rc=function(){return-1};th.prototype.sc=function(){};
function vh(a,b,c,d){if(c)if(b){0>a.w&&a.g.length&&(a.w=0);if(0>a.w||b!=a.g[a.w])a.g.splice(0,0,b),a.w=0;a.w--}else a.P?b="end":b=a.g[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ya(b.substring(c,f))),c=f+1}}return a}
function wh(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
k.gd=function(a,b,c,d,e,f,g){for(var h=0,l=a.Ba,m=null,n;e--;){if(!m){m=a.Ba.seek(b,c,d+1);if(!m){h=5120;break}n=0}var r,t;if(0>(r=a.Ba.read(m,n++))||0>(t=a.Ba.read(m,n++))){h=5120;break}this.w.gb(f,r|t<<8);if(yc(this.w)){h=8192;break}f+=2;if(n>=l.Ka&&(m=null,++d>=l.qa&&(d=0,++c>=l.ya&&(c=0,++b>=l.ua)))){h=5120;break}}return g(h,b,c,d,e,f)};
k.ae=function(a,b,c,d,e,f,g){for(var h=0,l=a.Ba,m=null,n;e--;){var r=this.w.oa(f);if(yc(this.w)){h=8192;break}f+=2;if(!m){m=a.Ba.seek(b,c,d+1,!0);if(!m){h=5120;break}n=0}if(!a.Ba.write(m,n++,r&255)||!a.Ba.write(m,n++,r>>8)){h=5120;break}if(n>=l.Ka&&(m=null,++d>=l.qa&&(d=0,++c>=l.ya&&(c=0,++b>=l.ua)))){h=5120;break}}return g(h,b,c,d,e,f)};k.Ed=function(){return this.fa&65535};
k.ve=function(a){this.fa=this.fa&-1023|a&1022;this.N=this.N&-4|(a&48)>>4;if(!(this.fa&128)){var b;a=!0;var c=this.f[(this.fa&768)>>8],d,e,f,g;this.fa&=-2;switch(this.fa&14){case 4:this.g&8&&(this.fa&=63);this.D=c.status|this.C&64;break;case 6:1==(this.g&3)&&(b=this.g&65408,c=(this.g&16)<<2,this.C=this.g&4?this.C+b:this.C-b,this.g=this.C=this.C&65408|c);break;case 8:this.D=this.C;break;case 12:b=this.gd;case 10:b||(b=this.ae),d=this.g>>7,e=this.g&64?0:1,f=this.g&63,d>=c.ua||f>=c.qa?this.fa|=37888:
(g=(this.K&63)<<16|this.J,a=65536-this.D&65535,a=b.call(this,c,d,e,f,a,g,this.Mc.bind(this)))}a&&(this.fa|=129,this.fa&64&&Jc(this.b,this.P))}};k.Cd=function(){return this.J};k.te=function(a){this.J=a&65534};k.Fd=function(){return this.g};k.we=function(a){this.g=a};k.Gd=function(){return this.D};k.xe=function(a){this.D=a};k.Dd=function(){return this.K};k.ue=function(a){this.K=a&63};
var vh={},qh=(vh[63744]=[null,null,N.prototype.Ed,N.prototype.ve,"RLCS"],vh[63746]=[null,null,N.prototype.Cd,N.prototype.te,"RLBA"],vh[65284]=[null,null,N.prototype.Fd,N.prototype.we,"RLDA"],vh[65286]=[null,null,N.prototype.Gd,N.prototype.xe,"RLMP"],vh[65288]=[null,null,N.prototype.Dd,N.prototype.ue,"RLBE"],vh);function wh(a){u.call(this,"Debugger",a,wh);this.da=a.base||16;this.Ha=!1;this.K=0;this.R=!1;this.C=-1;this.v=[];this.Y={}}z(wh);
var xh={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};wh.prototype.sc=function(){return-1};wh.prototype.tc=function(){};
function yh(a,b,c,d){if(c)if(b){0>a.C&&a.v.length&&(a.C=0);if(0>a.C||b!=a.v[a.C])a.v.splice(0,0,b),a.C=0;a.C--}else a.R?b="end":b=a.v[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ya(b.substring(c,f))),c=f+1}}return a}
function zh(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function xh(a,b,c){var d;if(b){b=yh(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=ya(n);if(!n){f=!0;break}n=zh(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],t=n.length;l.length&&uh[n]<uh[l[l.length-1]]&&wh(h,l,1);l.push(n);b=b.substr(r+t)}wh(h,l)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ah(a,null,
d))}return d}function yh(a,b){for(var c,d=a.Aa?"(":"{",e=a.Aa?")":"}",f=new RegExp(a.Aa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=xh(a,c[1]);b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function zh(a,b,c,d){var e;null!=b?(e=a.rc(b),0<=e?e=a.sc(e):(e=a.V[b],null==e&&(e=qa(b,a.$))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
function Ah(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==l||isNaN(l))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(l&1?"1":"0")+n,l>>=1;g=n+g;d>>=8}d=p(c,0,!0)+" "+c+". "+ra(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Bh(a,b){if(b)return Ah(a,b,a.V[b]);var c=0;for(b in a.V)Ah(a,b,a.V[b]),c++;return 0<c}
function J(a,b,c,d){switch(a.$){case 8:a=ra(b,3*c);break;case 10:a=b.toString();break;default:a=p(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
function Ch(a){th.call(this,a);this.kb=!1;this.Aa=!0;this.K=Z(0);this.jb=Z(0);this.N=Z(0);this.H=[];this.f=this.L=this.C=[];Dh(this);this.ma=0;Eh(this);this.La={};Fh(this,a.messages);this.Ma=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return gd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return gd(b,a)})}z(Ch,th);
var Gh={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Hh=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
Ih={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 Ah(a,b,c){var d;if(b){b=Bh(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=ya(n);if(!n){f=!0;break}n=Ch(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],t=n.length;l.length&&xh[n]<xh[l[l.length-1]]&&zh(h,l,1);l.push(n);b=b.substr(r+t)}zh(h,l)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Dh(a,null,
d))}return d}function Bh(a,b){for(var c,d=a.Ha?"(":"{",e=a.Ha?")":"}",f=new RegExp(a.Ha?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Ah(a,c[1]);b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Ch(a,b,c,d){var e;null!=b?(e=a.sc(b),0<=e?e=a.tc(e):(e=a.Y[b],null==e&&(e=qa(b,a.da))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
function Dh(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==l||isNaN(l))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(l&1?"1":"0")+n,l>>=1;g=n+g;d>>=8}d=p(c,0,!0)+" "+c+". "+ra(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Eh(a,b){if(b)return Dh(a,b,a.Y[b]);var c=0;for(b in a.Y)Dh(a,b,a.Y[b]),c++;return 0<c}
function J(a,b,c,d){switch(a.da){case 8:a=ra(b,Math.round(8/3*c));break;case 10:a=b.toString();break;default:a=p(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
function Fh(a){wh.call(this,a);this.jb=!1;this.Ha=!0;this.L=Z(0);this.lb=Z(0);this.P=Z(0);this.J=[];this.g=this.N=this.D=[];Gh(this);this.ta=0;Hh(this);this.La={};Ih(this,a.messages);this.Wa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return jd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return jd(b,a)})}z(Fh,wh);
var Jh={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Kh=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
Lh={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,32768],35072:[107,32768]},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]}},Jh=[0],Kh=
[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=Ch.prototype;
k.Ea=function(a,b,c,d){this.A=b;this.b=c;this.u=a;(a=dd(a,"messages"))&&Fh(this,a);this.tb=Ih;this.Db=1145>this.b.vb?Kh:[];Lh(this,function(a){a:{var b=d.A.W,c=a[0],e=a=0,l=b.length;if(c){a=d.ba(Mh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.A.ka;l=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=rc[c],n&&d.j(p(n.id,8)+" %"+p(e<<d.A.ka,
8)+" %%"+p(n.F,8)+" "+p(n.Lb,4,!0)+" "+p(n.size,4,!0)+" "+m),c!=Qc&&(c=-1),m=0);a+=d.A.xa;e++}}});H(this)};
k.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.la=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.g.length-1&&(b=d.g[++d.w])):40==a.keyCode&&(0<d.w?b=d.g[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,Ra(c,function(){if(d.la){var a=d.la.value;
d.la.value="";gd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,Ra(c,function(a){var b=!1;sb(d,!0)||(rb(d,!0),b=d.gb(a?1:0),rb(d,!1));return b}),!0}return!1};k.qb=function(a){if(this.la){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.la.focus();!a&&window&&window.scrollTo(b,c)}};k.ba=function(a){a=a&&a.F;null==a&&(a=-1);return a};k.Eb=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(c=a.Pb?this.A.Tb(d):this.b.Tb(d),b&&Nh(a,b));return c};
k.oa=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=a.Pb?this.A.mb(d):this.b.mb(d),b&&Nh(a,b));return c};k.Vb=function(a,b,c){var d=this.ba(a,!0,1);-1!==d&&(a.Pb?this.A.pb(d,b):this.b.pb(d,b),c&&Nh(a,c),this.u.ca(!0))};k.eb=function(a,b,c){var d=this.ba(a,!0,2);-1!==d&&(a.Pb?this.A.Jb(d,b):this.b.Jb(d,b),c&&Nh(a,c),this.u.ca(!0))};function Z(a,b){return{F:a,Pb:b,Na:!1}}function Oh(a){return[a.F,a.Na]}function Ph(a){return{F:a[0],Na:a[1]}}
function Mh(a,b,c){var d,e=(c?a.K:a.jb).F;c=!1;if(void 0!==b){b=yh(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.H.length;e++){var g=a.H[e].ia[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;e=xh(a,b,void 0)}null!=e&&(d=Z(e,c));return d}function Qh(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Gc=vh(a,b.Bc=c[2]))}function Nh(a,b){null!=a.F&&(a.F+=b||1)}
function Fh(a,b){a.i=a;a.na=a.Kc=536870912;a.da=null;a.ua=[];b=vh(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in xb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.na|=xb[c],a.j(c+" messages enabled"))}}function Lh(a,b){for(var c in xb)if(64==xb[c]){a.La[c]=b;break}}
k.rc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Rh(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.sc=function(a){var b;0<=a&&(8>a?b=this.b.v[a]:16>a?b=this.b.Ua[a-8]:20>a?b=this.b.Ha[a-16]:20==a&&(b=bc(this.b)));return b};
k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.Ib).F));this.na&1073741824?this.ua.push(a):this.da&&a==this.da||(this.da=a,this.na&-2147483648&&this.b&&this.b.B.Z&&(this.ha(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,kd(a),a.ua=0,a.u&&a.u.ca()))};function Eh(a){var b;if(!ge(a))a.D&&a.D.length&&a.j("instruction history buffer freed"),a.Y=0,a.D=[];else if(!a.D||!a.D.length){a.D=Array(1E3);for(b=0;b<a.D.length;b++)a.D[b]=Z();a.Y=0;a.j("instruction history buffer allocated")}}
k.fb=function(a,b){if(!Sh(this,b))return!1;this.b.fb(a);return!0};k.gb=function(a,b,c){if(!Sh(this))return!1;this.J=0;a||ge(this)&&he(this,this.b.v[7],0);try{a=ld(this.b,a);var d=this.b.gb(a);0<d&&(Vb(this.b,d),this.J+=d,Wb(this.b,d,!0),Xb(this.b,d),this.va++)}catch(e){"number"!=typeof e&&(this.J=0,vb(this.b,e.stack||e.message))}!1!==c&&(this.u.za&&this.u.za.stop&&this.u.za.stop(),this.u.ca());this.ca(b||!1);return 0<this.J};k.ha=function(a){this.b&&this.b.ha(a)};
k.ca=function(a){if(this.kb){void 0===a&&(a=!0);var b;b=this.b;if(b=b.I&8?b.Uc|b.Sc<<8:0){var c=b>>8;this.j("trapped to "+J(this,b&255,1)+(c?" ("+J(this,c)+")":""))}this.K=Z(this.b.v[7]);a&&1!=this.R?Th(this):Uh(this)}};function Sh(a,b){var c;(c=!a.b||!tb(a.b))||(c=a.b,c.B.ja?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.B.Z?(b||a.j("cpu busy or unavailable, command ignored"),!1):!ub(a.b)}k.Ga=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.Fa=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Eh(this);this.va=0;this.da=null;this.J=0;this.K=Z(this.b.v[7]);this.B.Z=!1;Vh(this);a||this.ca()};k.save=function(){var a=new P(this);a.set(0,Oh(this.K));a.set(1,Oh(this.N));a.set(2,[this.g,this.P,this.na]);a.set(3,this.H);return a.data()};
k.restore=function(a){var b=0;void 0!==a[2]&&(this.K=Ph(a[b++]),this.N=Ph(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.P=a[b][1],this.na|=a[b][2]);a[3]&&(this.H=a[3]);return!0};k.start=function(a,b){this.R||this.j("running");this.B.Z=!0;this.Nb=a;this.Qb=b};
k.stop=function(a,b){if(this.B.Z){this.B.Z=!1;this.J=b-this.Qb;if(!this.R){b="stopped";if(this.J){a-=this.Nb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";ge(this)&&(b+=this.va+" instructions, ",this.va=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else F(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}this.ca(!0);this.qb();Vh(this,this.b.v[7]);this.da=null}};function ge(a){return 1<a.f.length||!!a.ma}
function he(a,b,c){var d=-1;c||(d=a.b.mb(b),0==d&&(b=vd(a.b,2)));if(0<c&&(a.ma&&!--a.ma||Zc(a,b,1,a.f)))return!0;0<=c&&a.D.length&&(a.va++,0>d&&(d=a.b.mb(b)),65535!=(d&65535)&&(c=a.D[a.Y],c.F=b,c.Na=!1,++a.Y==a.D.length&&(a.Y=0)));return!1}function mf(a){var b=a.b;if(b.B.Z)throw O(b,a.b.Ib),a.ha(),-1;return!1}
function Dh(a){var b,c;a.f=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];var d=a.A;c=a.ba(c);$c(d.W[c>>>d.ka],!1)}a.L=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=a.A,c=a.ba(c),$c(d.W[c>>>d.ka],!0);a.C=["bw"];a.hb=0}k.lb=function(a,b,c){var d=!0;c||Wh(this,a,b,!1,!0);if(a!=this.f){var e=this.ba(b);if(-1===e)this.j("invalid address: "+J(this,b.F)),d=!1;else{var f=this.A;f.W[e>>>f.ka].lb(e&f.A,a==this.C)}}d&&(a.push(b),c?b.Na=!0:(Xh(this,a,a.length-1,"set"),Eh(this)));return d};
function Wh(a,b,c,d,e){var f=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.Na)){f=!0;h.Na||e||Xh(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.A,$c(d.W[c>>>d.ka],b==a.C));h.Na||Eh(a);break}}return f}function Yh(a,b){for(var c=1;c<b.length;c++)Xh(a,b,c);return b.length-1}function Xh(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.F)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))}
function Vh(a,b){if(void 0!==b)Zc(a,b,1,a.f,!0),a.R=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Na){if(!Wh(a,a.f,c,!0))break;b=0}}}
function Zc(a,b,c,d,e){var f=!1;if(!a.hb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Na)for(var l=a.ba(h),m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Na&&(Wh(a,d,h,!0),e=!0);if(n=h.Gc){for(var f=!1,r=0;r<n.length;r++)if(!Zh(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var t=r+1;t<n.length&&n[t].indexOf("else");t++)r++;if(t==n.length){f=!0;break}}a.b.B.Z||(f=!0)}if(f){e||Xh(a,d,g,"hit");break}}}a.hb--;return f}
function $h(a,b,c,d){var e=Z(b.F),f=a.oa(b,2),g,h;for(h in a.tb)if(g=a.tb[h][f&h])break;g||(g=Jh);var l=g[0];0<=a.Db.indexOf(l)&&(g=Jh,l=g[0]);var m=h="",n=Hh[l],r=g.length-1;l||r||(h=J(a,f));for(l=1;l<=r;l++){var t=g[l];if(void 0!==t){var w;w=a;var y=t,t=b,x="",A=y&61440;if(4096==A)t=t.F+((f&255)<<24>>23)&65535,x=J(w,t);else if(8192==A)t=t.F-((f&63)<<1)&65535,x=J(w,t);else if(12288==A)x=J(w,f&7,1);else if(24576==A)x=J(w,f&63,1);else if(32768==A)x=J(w,f&255,1);else if(A=f&y,y&4032&&(A>>=6,y>>=6),
y&63)switch(y=A&7,A&56){case 0:x=Rh(y);break;case 8:x="@"+Rh(y);break;case 16:7>y?x="("+Rh(y)+")+":(A=w.oa(t,2),x="#"+J(w,A,0,!0));break;case 24:7>y?x="@("+Rh(y)+")+":(A=w.oa(t,2),x="@#"+J(w,A,0,!0));break;case 32:x="-("+Rh(y)+")";break;case 40:x="@-("+Rh(y)+")";break;case 48:A=w.oa(t,2);x=J(w,A,0,!0)+"("+Rh(y)+")";7==y&&(x=J(w,A+t.F&65535));break;case 56:A=w.oa(t,2),x="@"+J(w,A)+"("+Rh(y)+")",7==y&&(x="@"+J(w,A+t.F&65535))}w=x;if(!w||!w.length){h="INVALID";break}"string"!=typeof w&&(m=w[1],w=w[0]);
0<h.length&&(h+=",");h+=w||"???"}}f="";g=J(a,e.F)+":";if(-1!==e.F&&-1!==b.F){do if(f+=" "+J(a,a.oa(e,2)),null==e.F)break;while(e.F!=b.F)}g+=xa(f,24);g+=xa(n,5);h&&(g+=" "+h);if(c||m)g=xa(g,60)+";"+(c||""),g=a.b.B.ub?g+("cycles="+hd(a.b).toString()+" cs="+p(a.b.Fb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function ai(a,b){switch(b){case "N":a=a.b.Sa();break;case "Z":a=td(a.b);break;case "V":a=sd(a.b);break;case "C":a=rd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function bi(a,b){var c="",d=a.b;8>b?(c=Rh(b),c+="="+J(a,d.v[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ua[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.Ha[b-16]):20==b&&(c="PS="+J(a,bc(d)));c&&(c+=" ");return c}function ci(a){var b,c="";for(b=0;6>b;b++)c+=bi(a,b);c=c+"\n"+(bi(a,6)+bi(a,7)+bi(a,20));return c+=ai(a,"T")+ai(a,"N")+ai(a,"Z")+ai(a,"V")+ai(a,"C")}k.mc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function lg(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Aa(n,l,a.mc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Re:b,F:c,Tc:d,ia:e,kc:f})}function di(a,b,c){var d=[],e=a.ba(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.F>>>0,h=f.Tc;if(e>=g&&e<g+h){e=Aa(f.kc,[e-g],a.mc);0<=e?ei(a,b,e,d):c&&(e=~e,ei(a,b,e-1,d),ei(a,b,e,d));break}}return d}
function ei(a,b,c,d){var e={},f=a.H[b].kc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.H[b].ia[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function fi(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Bh(a)||a.j("no variables"),!0;if(!c[2])return Bh(a,c[1]);if(!c[3])return delete a.V[c[1]],!0;b=xh(a,c[3]);return void 0!==b?(a.V[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function gi(a,b,c){var d=null;if(b=Mh(a,b,!0)){a.ba(b);var e=di(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.F-e[1])&&(g=" + "+p(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.F)&&(g=" - "+p(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function Th(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}f=xh(a,b);if(void 0===f)return;b=e.toUpperCase();switch(b){case "SP":case "R6":d.v[6]=f&65535;break;case "PC":case "R7":O(d,f);a.K=Z(d.v[7]);break;case "N":d.X=f?32768:0;break;case "Z":d.aa=
f?0:1;break;case "V":d.T=f?32768:0;break;case "C":d.S=f?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.v[b]=f&65535;break}a.j("unknown register: "+e);return}a.u.ca();a.j("updated registers:")}a.j(ci(a));c&&(a.K=Z(d.v[7]),Uh(a,J(a,a.K.F)))}}function hi(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ah(a,null,c[2].charCodeAt(0)):xh(a,b,!0)}
function ii(a,b,c){var d="t"!=b;c=zh(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Qa(c,function(){return rb(a,!0)&&a.gb(e,d,!1)},function(){a.u.za&&a.u.za.stop&&a.u.za.stop();a.u.ca();rb(a,!1)})}
function Uh(a,b,c,d){if(b=Mh(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=zh(a,c.substr(1)),null!=c&&(d=c);else{d=Mh(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=sb(a,!1)||a.R?a.J:null;var g=null!=f?"cycles":null,h=di(a,b),l=b.F;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);f=$h(a,b,g,f);a.j(f);a.K=b;e-=b.F-l;c++}}}
function Zh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.N.F)),a.K=a.N,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.da=null;if(tb(a)&&0<b.length){a.P&&(b="a "+J(a,a.N.F)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
Mh(a,g[1],!0);if(r)if(a.N=r,void 0===g[2])a.j("begin assemble at "+J(a,r.F)),a.P=!0,a.u.ca();else{var t;a.j("not supported yet");t=[];if(t.length){for(var w=0;w<t.length;w++)a.Vb(r,t[w],1);a.j($h(a,a.N))}}break;case "b":a:{var y=g[0],x=g[1],A=b;if("?"==x)a.j("breakpoint commands:"),a.j("\tbp [a]\tset exec breakpoint at addr [a]"),a.j("\tbr [a]\tset read breakpoint at addr [a]"),a.j("\tbw [a]\tset write breakpoint at addr [a]"),a.j("\tbc [a]\tclear breakpoint at addr [a]"),a.j("\tbl\tlist all breakpoints"),
a.j("\tbn [n]\tbreak after [n] instruction(s)");else{var ja=y.charAt(1);if("l"==ja){var Ia;Ia=0+Yh(a,a.f);Ia+=Yh(a,a.L);(Ia+=Yh(a,a.C))||a.j("no breakpoints")}else if("n"==ja)a.ma=zh(a,x),a.j("break after "+a.ma+" instruction(s)");else if(void 0===x)a.j("missing breakpoint address");else{var Q=Z();if("*"!=x&&(Q=Mh(a,x,!0),!Q))break a;"c"==ja?null==Q.F?(Dh(a),a.j("all breakpoints cleared")):Wh(a,a.f,Q)||Wh(a,a.L,Q)||Wh(a,a.C,Q)||a.j("breakpoint missing: "+J(a,Q.F)):null!=Q.F&&(Qh(a,Q,A),"p"==ja?a.lb(a.f,
Q):"r"==ja?a.lb(a.L,Q):"w"==ja?a.lb(a.C,Q):a.j("unknown breakpoint command: "+ja))}}}break;case "c":a.Qa&&(a.Qa.value="");break;case "d":a:{var db,eb=g[0],ma=g[1],Ka=g[2],Bi=g[3];if("?"==ma){var fb="";for(db in xb)a.La[db]&&(fb&&(fb+=","),fb+=db);fb+=",state,symbols";a.j("dump memory commands:");a.j("\tdb [a] [#] dump # bytes at address a");a.j("\tdw [a] [#] dump # words at address a");a.j("\tdd [a] [#] dump # dwords at address a");a.j("\tdh [#] [#] dump # instructions from history");
fb.length&&a.j("dump extension commands:\n\t"+fb)}else if("state"==ma){var og=ji(a.u,!0);"console"==Ka?console.log(og):(a.Qa&&(a.Qa.value=""),a.j(og))}else if("symbols"==ma)for(var Cd=0;Cd<a.H.length;Cd++){var Dd=a.H[Cd],gb;for(gb in Dd.ia)if("."!=gb.charAt(0)){var pg=Dd.ia[gb].o;if(void 0!==pg){var qg=Dd.ia[gb].l;qg&&(gb=qg);a.j(J(a,pg)+" "+gb)}}}else{if("d"==eb){for(db in xb)if(g[1]==db){var rg=a.La[db];rg?(g.shift(),g.shift(),rg(g)):a.j("no dump registered for "+ma);break a}ma||(eb=a.Sb||"db")}else a.Sb=
eb;if("dh"==eb){var sg=ma,tg=Ka,ug="",vg=0,fa=a.Y,na=a.D;if(na.length){var aa=+sg||a.rb,Gb=+tg||10;isNaN(aa)?aa=Gb:ug="more ";aa>na.length&&(a.j("note: only "+na.length+" available"),aa=na.length);fa-=aa;0>fa&&(null==na[na.length-1].F?(aa=fa+aa,fa=0):fa+=na.length);var Ed=[];"call"==tg&&(Gb=1E5,Ed=["CALL"]);for(void 0!==sg&&a.j(aa+" instructions earlier:");0<Gb&&fa!=a.Y;){var wg=na[fa++];if(null==wg.F)break;var Hb=Z(wg.F),Ci=aa--,xg=$h(a,Hb,"history",Ci);(!Ed.length||0<=xg.indexOf(Ed[0]))&&a.j(xg);
Hb.$b&&(fa+=Hb.$b,Gb-=Hb.$b,aa-=Hb.$b);fa>=na.length&&(fa=0);a.rb=aa;vg++;Gb--}}vg||(a.j("no "+ug+"history available"),a.rb=void 0)}else{var Ib=Mh(a,ma);if(Ib){var zc=0;Ka&&("l"==Ka.charAt(0)&&(Ka=Ka.substr(1)||Bi),zc=zh(a,Ka)>>>0,65536<zc&&(zc=65536));for(var Jb="",hb="dd"==eb?4:"dw"==eb?2:1,Ac=hb*zc||128,Di=Ac+15>>4||1;Di--&&0<Ac;){var Bc=0,Kb=0,Lb,Fd="",yg="",ma=J(a,Ib.F);for(Lb=4==hb?16:a.$;0<Lb&&0<Ac;Lb--){var Cc=1,Dc=1==hb?a.Eb(Ib,Cc):a.oa(Ib,Cc=2),Bc=Bc|Dc<<(Kb<<3),Kb=Kb+Cc;Kb==hb&&(Fd+=J(a,
Bc,hb),Fd+=1==hb?9==Lb?"-":" ":" ",Bc=Kb=0);yg+=32<=Dc&&128>Dc?String.fromCharCode(Dc):".";Ac-=Cc}Jb&&(Jb+="\n");Jb+=ma+" "+Fd+(0==Lb?" "+yg:"")}Jb&&a.j(Jb);a.jb=Ib}}}}break;case "e":if("else"==g[0])break;var ib,Gd,Hd,Id,Jd=g[0],Kd=g[1];"eb"==Jd?(ib=1,Gd=255,Hd=a.Eb,Id=a.Vb):"e"==Jd||"ew"==Jd?(ib=2,Gd=65535,Hd=a.oa,Id=a.eb):Kd=null;if(null==Kd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var Ec=Mh(a,Kd);if(Ec)for(var Fc=
2;Fc<g.length;Fc++){var Mb=xh(a,g[Fc]);if(void 0===Mb){a.j("unrecognized value: "+g[Fc]);break}Mb&~Gd&&a.j("warning: "+p(Mb)+" exceeds "+ib+"-byte value");var Ei=Hd.call(a,Ec);a.j("changing "+J(a,Ec.F)+" from "+J(a,Ei,ib)+" to "+J(a,Mb,ib));Id.call(a,Ec,Mb,ib)}}break;case "g":a:{var zg=g[1],Fi=b;if(void 0!==zg){var Ld=Mh(a,zg,!0);if(!Ld)break a;Qh(a,Ld,Fi);a.lb(a.f,Ld,!0)}a.fb(!0,c)}break;case "h":a.B.Z?(c||a.j("halting"),a.ha()):sb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Md;
var Nb=b.substr(2),Nb=ya(Nb);xh(a,Nb)?(c||a.j("true: "+Nb),Md=!0):(c||a.j("false: "+Nb),Md=!1);Md||(d=!1);break}f=!0;break;case "k":var Gi=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Nd=0,Od=Z(),Ob=Z(a.b.v[6]);for(a.j("stack trace for "+J(a,Ob.F));10>Nd;){for(var La=null,Hi=256;65536>Ob.F>>>0;){Od.F=a.oa(Ob,2);if(null==Ob.F||!Hi--)break;if(!(Od.F&1)){for(var Ii=a,Gc=Od,Ag=null,Pb=Gc.F,Bg=Pb,Pd=1;6>=Pd&&Pb;Pd++){if(2<
Pd){Gc.F=Pb;var Hc=$h(Ii,Gc);if(0<=Hc.indexOf("JSR")){var Cg=Hc.indexOf(" ");if(Pb+(Hc.indexOf(" ",Cg+1)-Cg-1)/2==Bg){Ag=Hc;break}}}Pb-=2}Gc.F=Bg;if(La=Ag)break}}if(!La||null==La)break;var Dg=null;if("ks"==Gi){var Eg=La.match(/[0-9A-F]+$/);Eg&&(Dg=gi(a,Eg[0]))}La=xa(La,50)+" ;"+(Dg||"stack="+J(a,Ob.F));a.j(La);Nd++}Nd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){gi(a,g[1],!0);break}f=!0;break;case "m":a:{var oa,pa=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var Ca=0;if("all"==
G)Ca=1878917119,G=null;else if("on"==G)pa=!0,G=null;else if("off"==G)pa=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(oa in xb)if(G==oa){Ca=xb[oa];pa=!!(a.na&Ca);break}if(!Ca){a.j("unknown message category: "+G);break a}}if(Ca)if("on"==g[2])a.na|=Ca,pa=!0;else if("off"==g[2]&&(a.na&=~Ca,pa=!1,1073741824==Ca)){for(var Qd=0;Qd<a.ua.length;Qd++)a.j(a.ua[Qd]);a.ua=[]}}var Ji=0,Qb="";for(oa in xb)if(!G||G==oa){var Ki=!!(a.na&xb[oa]);if(null===pa||pa==Ki)Qb&&(Qb+=","),++Ji%10||(Qb+="\n\t"),
"key"==oa&&(oa="keys"),Qb+=oa}void 0===G&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==pa?pa?"messages on: ":"messages off: ":"message categories:\n\t")+(Qb||"none"));Eh(a)}break;case "p":if("print"==g[0]){hi(a,b.substr(5));break}var Li="pr"==g[0]?1:0;if(a.R)a.j("step in progress");else{var Fg=Z(a.b.v[7]);a.Eb(Fg);a.R?(a.lb(a.f,Fg,!0),a.fb()||(a.u&&a.u.qb(),a.R=0)):ii(a,Li?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}Th(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Rb=
+g[2];if(8==Rb||10==Rb||16==Rb)a.$=Rb;else{a.j("invalid base: "+Rb);break}}a.j("default base: "+a.$);break;case "cs":var Sb;void 0!==g[3]&&(Sb=+g[3]);switch(g[2]){case "int":a.b.wb=Sb;break;case "start":a.b.Gb=Sb;break;case "stop":a.b.xb=Sb;break;default:a.j("unknown cs option");break a}void 0!==Sb&&fd(a.b);a.j("checksums "+(a.b.B.ub?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(id(a.b,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.b.nb.toFixed(2)+
"Mhz")+" ("+a.b.$a+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":ii(a,g[0],g[1]);break;case "u":Uh(a,g[1],g[2],8);break;case "v":if("var"==g[0]){fi(a,b.substr(3))||(d=!1);break}if("ver"==
g[0]){a.j("PDPjs version 1.30.2 ("+a.b.vb+",RELEASE"+(wb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){hi(a,b.substr(1));break}var Rd="commands:",Sd;for(Sd in Gh)Rd+="\n"+xa(Sd,9)+Gh[Sd];ge(a)||(Rd+="\nnote: history disabled if no exec breakpoints");a.j(Rd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(Gg){a.j("debugger error: "+(Gg.stack||Gg.message)),d=!1}return d}
function gd(a,b,c){b=vh(a,b,c);for(var d in b)if(!Zh(a,b[+d]))return!1;return!0}Xa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ch(d);C(d,c)}});
function ki(a,b,c){u.call(this,"Computer",a,ki,67108864);this.B.ja=!1;li(this,b);this.K=dd(this,"autoPower",a);this.g=0;this.V=a.busWidth||a.buswidth;this.u=mi;this.H=null;this.C=this.P=!1;this.Y=dd(this,"url")||"";(Math.random()+.1).toString(36);this.f=ni(this);if(this.b=qb("CPU",this.id)){this.i=qb("Debugger",this.id);this.A=new dc({id:this.Pa+".bus",busWidth:this.V},this.b,this.i);var d,e=ob(this.id);if((this.za=qb("Panel",this.id))&&this.za.Qa)for(b=0;b<e.length;b++)d=e[b],d.O=this.za.O,d.j=this.za.j,
d.Qa=this.za.Qa;this.j("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.A,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.D=d:this.u=parseInt(d,10));var f;if(a=dd(this,"state")||(f=!0,a.state))b=this.L=a,f||(this.C=!0,this.u=mi),this.u&&(this.J=
new P(this,"1.30.2"),oi(this.J)?b=null:delete this.J);!b&&this.u&&(b=pi(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.O("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.H=b,g.P=!0);H(g)})}else H(this);this.G.power||(this.K=!0);!c&&this.K&&qi(this,this.Hb)}else q("Unable to find CPU component")}z(ki);var mi=0;
function li(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}function dd(a,b,c){var d=b.toLowerCase(),d=bb[b]||bb[d];void 0===d&&a.R&&(d=a.R[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function qi(a,b,c){for(var d=ob(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!tb(f)){tb(f,function(){qi(a,b,c)});return}}b.call(a,c)}
function ri(a,b){var c=new P(a,"1.30.2","validate");if(oi(c)&&si(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.O("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ki.prototype;
k.Hb=function(a){void 0===a&&(a=this.u||(this.H?1:mi));if(!this.g){this.g++;var b=!1,c=!1;this.N=!1;var d=this.J||new P(this,"1.30.2");if(-1==a)b=!0;else if(a>mi){if(oi(d,this.H)){this.w=new P(this,"1.30.2","failsafe");oi(this.w)&&(ti(this,d),a=2,ui(this.w));this.w.set("timestamp",Da());vi(this.w);var e=this.u&&!this.C;if(1==a||Ha("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=si(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?oi(d,g):("error"==
f&&"no machine state"!=g?(this.O("Error: "+g),"unable to verify user"==g&&(Oa("user",""),this.f=null)):this.j(f+": "+g),ui(d),oi(d)?(c=si(d),e=!0):c=!1))}e&&ri(this,c?d:null)}else 2==a&&d.clear()}else ri(this);delete this.H;delete this.J}e=ob(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=wi(this,g,d,b,c));b=[d,a,c];-1!=a?qi(this,this.nc,b):this.nc(b)}};
function wi(a,b,c,d,e){if(!b.B.ja){b.B.ja=!0;if(b.Ga){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ga(f,d)&&f&&(q("Unable to restore state for "+b.type),a.L&&!a.P?(c.clear(),a.u=mi,window&&window.location.reload()):a.N=!0,b.Ga(null),e=!1)}if(!d&&b.oc)for(a=b.oc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.nc=function(a){var b=a[0],c=0>a[1];a=a[2];this.$=!0;this.B.ja=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.b&&(wi(this,this.b,b,c,a),this.b.sb());this.N&&(ti(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.g=0};
function ti(a,b){if(Ha("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.2"};d.url=a.Y;d.user=c;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function ji(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new P(a,"1.30.2"),g=new P(a,"1.30.2","validate"),h=Da();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Fa&&(c&&a.b.ha(),d=a.b.Fa(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.B.ja=!1,!1===d&&(e=null)));for(var h=ob(a.id),l=0;l<h.length;l++){var m=h[l];m.B.ja&&(m.Fa&&(d=m.Fa(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.B.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&xi(a,a.f,f.toString()),vi(g)&&vi(f)||(e=null,d=h=!0)):a.u&&(d=!0,h=3==a.u),d&&f.clear(h)):e=f.toString());c&&(a.B.ja=!1,b=a.G.power)&&(b.textContent="Power");a.g=0;return e}k.reset=function(){this.A&&this.A.reset&&(E(this,"Resetting "+this.A.type),this.A.reset());for(var a=ob(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&(E(this,"Resetting "+c.type),c.reset())}};
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]}},Mh=[0],Nh=
[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=Fh.prototype;
k.Da=function(a,b,c,d){this.w=b;this.b=c;this.A=a;this.f=a.f;(a=gd(a,"messages"))&&Ih(this,a);this.ub=Lh;this.Nb=1145>this.b.wb?Nh:[];Oh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,l=b.length;if(c){a=d.ba(Ph(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.la;l=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=uc[c],n&&d.j(p(n.id,8)+" %"+
p(e<<d.w.la,8)+" %%"+p(n.F,8)+" "+p(n.Lb,4,!0)+" "+p(n.size,4,!0)+" "+m),c!=Tc&&(c=-1),m=0);a+=d.w.xa;e++}}});H(this)};
k.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ma=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",jd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.v.length-1&&(b=d.v[++d.C])):40==a.keyCode&&(0<d.C?b=d.v[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,Ra(c,function(){if(d.ma){var a=d.ma.value;
d.ma.value="";jd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,Ra(c,function(a){var b=!1;sb(d,!0)||(rb(d,!0),b=d.ib(a?1:0),rb(d,!1));return b}),!0}return!1};k.qb=function(a){if(this.ma){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.ma.focus();!a&&window&&window.scrollTo(b,c)}};k.ba=function(a){a=a&&a.F;null==a&&(a=-1);return a};k.Fb=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(c=a.Pb?this.w.Tb(d):this.b.Tb(d),b&&Qh(a,b));return c};
k.oa=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=a.Pb?this.w.Za(d):this.b.Za(d),b&&Qh(a,b));return c};k.Wb=function(a,b,c){var d=this.ba(a,!0,1);-1!==d&&(a.Pb?this.w.pb(d,b):this.b.pb(d,b),c&&Qh(a,c),this.A.ca(!0))};k.gb=function(a,b,c){var d=this.ba(a,!0,2);-1!==d&&(a.Pb?this.w.Cb(d,b):this.b.Cb(d,b),c&&Qh(a,c),this.A.ca(!0))};function Z(a,b){return{F:a,Pb:b,Ma:!1}}function Rh(a){return[a.F,a.Ma]}function Sh(a){return{F:a[0],Ma:a[1]}}
function Ph(a,b,c){var d,e=(c?a.L:a.lb).F;c=!1;if(void 0!==b){b=Bh(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.J.length;e++){var g=a.J[e].ia[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;e=Ah(a,b,void 0)}null!=e&&(d=Z(e,c));return d}function Th(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Gc=yh(a,b.Bc=c[2]))}function Qh(a,b){null!=a.F&&(a.F+=b||1)}
function Ih(a,b){a.i=a;a.na=a.Kc=536870912;a.ka=null;a.va=[];b=yh(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in xb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.na|=xb[c],a.j(c+" messages enabled"))}}function Oh(a,b){for(var c in xb)if(64==xb[c]){a.La[c]=b;break}}
k.sc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;case "SW":b=21;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Uh(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.tc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ua[a-8]:20>a?b=this.b.Ga[a-16]:20==a?b=ec(this.b):21==a&&this.f&&dc(this.f)&&(b=this.f.Ta));return b};
k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.Jb).F));this.na&1073741824?this.va.push(a):this.ka&&a==this.ka||(this.ka=a,this.na&-2147483648&&this.b&&this.b.B.Z&&(this.ha(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,nd(a),a.ta=0,a.A&&a.A.ca()))};function Hh(a){var b;if(!je(a))a.H&&a.H.length&&a.j("instruction history buffer freed"),a.$=0,a.H=[];else if(!a.H||!a.H.length){a.H=Array(1E3);for(b=0;b<a.H.length;b++)a.H[b]=Z();a.$=0;a.j("instruction history buffer allocated")}}
k.hb=function(a,b){if(!Vh(this,b))return!1;this.b.hb(a);return!0};k.ib=function(a,b,c){if(!Vh(this))return!1;this.K=0;a||je(this)&&ke(this,this.b.u[7],0);try{a=od(this.b,a);var d=this.b.ib(a);0<d&&(Xb(this.b,d),this.K+=d,Yb(this.b,d,!0),Zb(this.b,d),this.za++)}catch(e){"number"!=typeof e&&(this.K=0,vb(this.b,e.stack||e.message))}!1!==c&&(this.f&&this.f.stop&&this.f.stop(),this.A.ca());this.ca(b||!1);return 0<this.K};k.ha=function(a){this.b&&this.b.ha(a)};
k.ca=function(a){if(this.jb){void 0===a&&(a=!0);var b;b=this.b;if(b=b.I&8?b.Uc|b.Sc<<8:0){var c=b>>8;this.j("trapped to "+J(this,b&255,1)+(c?" ("+J(this,c)+")":""))}this.L=Z(this.b.u[7]);a&&1!=this.S?Wh(this):Xh(this)}};function Vh(a,b){var c;(c=!a.b||!tb(a.b))||(c=a.b,c.B.ja?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.B.Z?(b||a.j("cpu busy or unavailable, command ignored"),!1):!ub(a.b)}k.Fa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.Ea=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Hh(this);this.za=0;this.ka=null;this.K=0;this.L=Z(this.b.u[7]);this.B.Z=!1;Yh(this);a||this.ca()};k.save=function(){var a=new P(this);a.set(0,Rh(this.L));a.set(1,Rh(this.P));a.set(2,[this.v,this.R,this.na]);a.set(3,this.J);return a.data()};
k.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Sh(a[b++]),this.P=Sh(a[b++]),this.v=a[b][0],"string"==typeof this.v&&(this.v=[this.v]),this.R=a[b][1],this.na|=a[b][2]);a[3]&&(this.J=a[3]);return!0};k.start=function(a,b){this.S||this.j("running");this.B.Z=!0;this.Qb=a;this.Sb=b};
k.stop=function(a,b){if(this.B.Z){this.B.Z=!1;this.K=b-this.Sb;if(!this.S){b="stopped";if(this.K){a-=this.Qb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";je(this)&&(b+=this.za+" instructions, ",this.za=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else F(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}this.ca(!0);this.qb();Yh(this,this.b.u[7]);this.ka=null}};function je(a){return 1<a.g.length||!!a.ta}
function ke(a,b,c){var d=-1;c||(d=a.b.Za(b),0==d&&(b=yd(a.b,2)));if(0<c&&(a.ta&&!--a.ta||bd(a,b,1,a.g)))return!0;0<=c&&a.H.length&&(a.za++,0>d&&(d=a.b.Za(b)),65535!=(d&65535)&&(c=a.H[a.$],c.F=b,c.Ma=!1,++a.$==a.H.length&&(a.$=0)));return!1}function pf(a){var b=a.b;if(b.B.Z)throw O(b,a.b.Jb),a.ha(),-1;return!1}
function Gh(a){var b,c;a.g=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];var d=a.w;c=a.ba(c);cd(d.W[c>>>d.la],!1)}a.N=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.w,c=a.ba(c),cd(d.W[c>>>d.la],!0);a.D=["bw"];a.rb=0}k.mb=function(a,b,c){var d=!0;c||Zh(this,a,b,!1,!0);if(a!=this.g){var e=this.ba(b);if(-1===e)this.j("invalid address: "+J(this,b.F)),d=!1;else{var f=this.w;f.W[e>>>f.la].mb(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Ma=!0:($h(this,a,a.length-1,"set"),Hh(this)));return d};
function Zh(a,b,c,d,e){var f=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.Ma)){f=!0;h.Ma||e||$h(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(d=a.w,cd(d.W[c>>>d.la],b==a.D));h.Ma||Hh(a);break}}return f}function ai(a,b){for(var c=1;c<b.length;c++)$h(a,b,c);return b.length-1}function $h(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.F)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))}
function Yh(a,b){if(void 0!==b)bd(a,b,1,a.g,!0),a.S=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Ma){if(!Zh(a,a.g,c,!0))break;b=0}}}
function bd(a,b,c,d,e){var f=!1;if(!a.rb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ma)for(var l=a.ba(h),m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Ma&&(Zh(a,d,h,!0),e=!0);if(n=h.Gc){for(var f=!1,r=0;r<n.length;r++)if(!bi(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var t=r+1;t<n.length&&n[t].indexOf("else");t++)r++;if(t==n.length){f=!0;break}}a.b.B.Z||(f=!0)}if(f){e||$h(a,d,g,"hit");break}}}a.rb--;return f}
function ci(a,b,c,d){var e=Z(b.F),f=a.oa(b,2),g,h;for(h in a.ub)if(g=a.ub[h][f&h])break;g||(g=Mh);var l=g[0];0<=a.Nb.indexOf(l)&&(g=Mh,l=g[0]);var m=h="",n=Kh[l],r=g.length-1;l||r||(h=J(a,f));for(l=1;l<=r;l++){var t=g[l];if(void 0!==t){var w;w=a;var y=t,t=b,x="",A=y&61440;if(4096==A)t=t.F+((f&255)<<24>>23)&65535,x=J(w,t);else if(8192==A)t=t.F-((f&63)<<1)&65535,x=J(w,t);else if(12288==A)x=J(w,f&7,1);else if(24576==A)x=J(w,f&63,1);else if(32768==A)x=J(w,f&255,1);else if(A=f&y,y&4032&&(A>>=6,y>>=6),
y&63)switch(y=A&7,A&56){case 0:x=Uh(y);break;case 8:x="@"+Uh(y);break;case 16:7>y?x="("+Uh(y)+")+":(A=w.oa(t,2),x="#"+J(w,A,0,!0));break;case 24:7>y?x="@("+Uh(y)+")+":(A=w.oa(t,2),x="@#"+J(w,A,0,!0));break;case 32:x="-("+Uh(y)+")";break;case 40:x="@-("+Uh(y)+")";break;case 48:A=w.oa(t,2);x=J(w,A,0,!0)+"("+Uh(y)+")";7==y&&(x=J(w,A+t.F&65535));break;case 56:A=w.oa(t,2),x="@"+J(w,A)+"("+Uh(y)+")",7==y&&(x="@"+J(w,A+t.F&65535))}w=x;if(!w||!w.length){h="INVALID";break}"string"!=typeof w&&(m=w[1],w=w[0]);
0<h.length&&(h+=",");h+=w||"???"}}f="";g=J(a,e.F)+":";if(-1!==e.F&&-1!==b.F){do if(f+=" "+J(a,a.oa(e,2)),null==e.F)break;while(e.F!=b.F)}g+=xa(f,24);g+=xa(n,5);h&&(g+=" "+h);if(c||m)g=xa(g,60)+";"+(c||""),g=a.b.B.vb?g+("cycles="+kd(a.b).toString()+" cs="+p(a.b.Gb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function di(a,b){switch(b){case "N":a=a.b.Ra();break;case "Z":a=wd(a.b);break;case "V":a=vd(a.b);break;case "C":a=ud(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function ei(a,b){var c="",d=a.b;8>b?(c=Uh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ua[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.Ga[b-16]):20==b?c="PS="+J(a,ec(d)):21==b&&a.f&&dc(a.f)&&(c="SW="+J(a,a.f.Ta,3));c&&(c+=" ");return c}function fi(a){var b,c="";for(b=0;6>b;b++)c+=ei(a,b);c=c+"\n"+(ei(a,6)+ei(a,7));c+=ei(a,20)+ei(a,21);return c+=di(a,"T")+di(a,"N")+di(a,"Z")+di(a,"V")+di(a,"C")}k.nc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function og(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Aa(n,l,a.nc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.J.push({Re:b,F:c,Tc:d,ia:e,lc:f})}function gi(a,b,c){var d=[],e=a.ba(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],g=f.F>>>0,h=f.Tc;if(e>=g&&e<g+h){e=Aa(f.lc,[e-g],a.nc);0<=e?hi(a,b,e,d):c&&(e=~e,hi(a,b,e-1,d),hi(a,b,e,d));break}}return d}
function hi(a,b,c,d){var e={},f=a.J[b].lc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.J[b].ia[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function ii(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Eh(a)||a.j("no variables"),!0;if(!c[2])return Eh(a,c[1]);if(!c[3])return delete a.Y[c[1]],!0;b=Ah(a,c[3]);return void 0!==b?(a.Y[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function ji(a,b,c){var d=null;if(b=Ph(a,b,!0)){a.ba(b);var e=gi(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.F-e[1])&&(g=" + "+p(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.F)&&(g=" - "+p(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function Wh(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}f=Ah(a,b);if(void 0===f)return;b=e.toUpperCase();switch(b){case "SP":case "R6":d.u[6]=f&65535;break;case "PC":case "R7":O(d,f);a.L=Z(d.u[7]);break;case "N":d.X=f?32768:0;break;case "Z":d.aa=
f?0:1;break;case "V":d.U=f?32768:0;break;case "C":d.T=f?65536:0;break;case "SW":if(a.f&&dc(a.f)){e=a.f;if(dc(e)){e.Ta=f;for(b=0;22>b;b++)e.f["S"+b][0]=f&1<<b?1:0;Fb(e)}break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.A.ca();a.j("updated registers:")}a.j(fi(a));c&&(a.L=Z(d.u[7]),Xh(a,J(a,a.L.F)))}}function ki(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Dh(a,null,c[2].charCodeAt(0)):Ah(a,b,!0)}
function li(a,b,c){var d="t"!=b;c=Ch(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Qa(c,function(){return rb(a,!0)&&a.ib(e,d,!1)},function(){a.f&&a.f.stop&&a.f.stop();a.A.ca();rb(a,!1)})}
function Xh(a,b,c,d){if(b=Ph(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ch(a,c.substr(1)),null!=c&&(d=c);else{d=Ph(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=sb(a,!1)||a.S?a.K:null;var g=null!=f?"cycles":null,h=gi(a,b),l=b.F;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);f=ci(a,b,g,f);a.j(f);a.L=b;e-=b.F-l;c++}}}
function bi(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.R&&(a.j("ended assemble at "+J(a,a.P.F)),a.L=a.P,a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(tb(a)&&0<b.length){a.R&&(b="a "+J(a,a.P.F)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
Ph(a,g[1],!0);if(r)if(a.P=r,void 0===g[2])a.j("begin assemble at "+J(a,r.F)),a.R=!0,a.A.ca();else{var t;a.j("not supported yet");t=[];if(t.length){for(var w=0;w<t.length;w++)a.Wb(r,t[w],1);a.j(ci(a,a.P))}}break;case "b":a:{var y=g[0],x=g[1],A=b;if("?"==x)a.j("breakpoint commands:"),a.j("\tbp [a]\tset exec breakpoint at addr [a]"),a.j("\tbr [a]\tset read breakpoint at addr [a]"),a.j("\tbw [a]\tset write breakpoint at addr [a]"),a.j("\tbc [a]\tclear breakpoint at addr [a]"),a.j("\tbl\tlist all breakpoints"),
a.j("\tbn [n]\tbreak after [n] instruction(s)");else{var ja=y.charAt(1);if("l"==ja){var Ia;Ia=0+ai(a,a.g);Ia+=ai(a,a.N);(Ia+=ai(a,a.D))||a.j("no breakpoints")}else if("n"==ja)a.ta=Ch(a,x),a.j("break after "+a.ta+" instruction(s)");else if(void 0===x)a.j("missing breakpoint address");else{var Q=Z();if("*"!=x&&(Q=Ph(a,x,!0),!Q))break a;"c"==ja?null==Q.F?(Gh(a),a.j("all breakpoints cleared")):Zh(a,a.g,Q)||Zh(a,a.N,Q)||Zh(a,a.D,Q)||a.j("breakpoint missing: "+J(a,Q.F)):null!=Q.F&&(Th(a,Q,A),"p"==ja?a.mb(a.g,
Q):"r"==ja?a.mb(a.N,Q):"w"==ja?a.mb(a.D,Q):a.j("unknown breakpoint command: "+ja))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var db,eb=g[0],ma=g[1],Ka=g[2],Ei=g[3];if("?"==ma){var fb="";for(db in xb)a.La[db]&&(fb&&(fb+=","),fb+=db);fb+=",state,symbols";a.j("dump memory commands:");a.j("\tdb [a] [#] dump # bytes at address a");a.j("\tdw [a] [#] dump # words at address a");a.j("\tdd [a] [#] dump # dwords at address a");a.j("\tdh [#] [#] dump # instructions from history");
fb.length&&a.j("dump extension commands:\n\t"+fb)}else if("state"==ma){var rg=mi(a.A,!0);"console"==Ka?console.log(rg):(a.Pa&&(a.Pa.value=""),a.j(rg))}else if("symbols"==ma)for(var Ed=0;Ed<a.J.length;Ed++){var Fd=a.J[Ed],gb;for(gb in Fd.ia)if("."!=gb.charAt(0)){var sg=Fd.ia[gb].o;if(void 0!==sg){var tg=Fd.ia[gb].l;tg&&(gb=tg);a.j(J(a,sg)+" "+gb)}}}else{if("d"==eb){for(db in xb)if(g[1]==db){var ug=a.La[db];ug?(g.shift(),g.shift(),ug(g)):a.j("no dump registered for "+ma);break a}ma||(eb=a.Ub||"db")}else a.Ub=
eb;if("dh"==eb){var vg=ma,wg=Ka,xg="",yg=0,fa=a.$,na=a.H;if(na.length){var aa=+vg||a.tb,Hb=+wg||10;isNaN(aa)?aa=Hb:xg="more ";aa>na.length&&(a.j("note: only "+na.length+" available"),aa=na.length);fa-=aa;0>fa&&(null==na[na.length-1].F?(aa=fa+aa,fa=0):fa+=na.length);var Gd=[];"call"==wg&&(Hb=1E5,Gd=["CALL"]);for(void 0!==vg&&a.j(aa+" instructions earlier:");0<Hb&&fa!=a.$;){var zg=na[fa++];if(null==zg.F)break;var Ib=Z(zg.F),Fi=aa--,Ag=ci(a,Ib,"history",Fi);(!Gd.length||0<=Ag.indexOf(Gd[0]))&&a.j(Ag);
Ib.ac&&(fa+=Ib.ac,Hb-=Ib.ac,aa-=Ib.ac);fa>=na.length&&(fa=0);a.tb=aa;yg++;Hb--}}yg||(a.j("no "+xg+"history available"),a.tb=void 0)}else{var Jb=Ph(a,ma);if(Jb){var Ac=0;Ka&&("l"==Ka.charAt(0)&&(Ka=Ka.substr(1)||Ei),Ac=Ch(a,Ka)>>>0,65536<Ac&&(Ac=65536));for(var Kb="",hb="dd"==eb?4:"dw"==eb?2:1,Bc=hb*Ac||128,Gi=Bc+15>>4||1;Gi--&&0<Bc;){var Cc=0,Lb=0,Mb,Hd="",Bg="",ma=J(a,Jb.F);for(Mb=4==hb?16:a.da;0<Mb&&0<Bc;Mb--){var Dc=1,Ec=1==hb?a.Fb(Jb,Dc):a.oa(Jb,Dc=2),Cc=Cc|Ec<<(Lb<<3),Lb=Lb+Dc;Lb==hb&&(Hd+=J(a,
Cc,hb),Hd+=1==hb?9==Mb?"-":" ":" ",Cc=Lb=0);Bg+=32<=Ec&&128>Ec?String.fromCharCode(Ec):".";Bc-=Dc}Kb&&(Kb+="\n");Kb+=ma+" "+Hd+(0==Mb?" "+Bg:"")}Kb&&a.j(Kb);a.lb=Jb}}}}break;case "e":if("else"==g[0])break;var ib,Id,Jd,Kd,Ld=g[0],Md=g[1];"eb"==Ld?(ib=1,Id=255,Jd=a.Fb,Kd=a.Wb):"e"==Ld||"ew"==Ld?(ib=2,Id=65535,Jd=a.oa,Kd=a.gb):Md=null;if(null==Md)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var Fc=Ph(a,Md);if(Fc)for(var Gc=
2;Gc<g.length;Gc++){var Nb=Ah(a,g[Gc]);if(void 0===Nb){a.j("unrecognized value: "+g[Gc]);break}Nb&~Id&&a.j("warning: "+p(Nb)+" exceeds "+ib+"-byte value");var Hi=Jd.call(a,Fc);a.j("changing "+J(a,Fc.F)+" from "+J(a,Hi,ib)+" to "+J(a,Nb,ib));Kd.call(a,Fc,Nb,ib)}}break;case "g":a:{var Cg=g[1],Ii=b;if(void 0!==Cg){var Nd=Ph(a,Cg,!0);if(!Nd)break a;Th(a,Nd,Ii);a.mb(a.g,Nd,!0)}a.hb(!0,c)}break;case "h":a.B.Z?(c||a.j("halting"),a.ha()):sb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Od;
var Ob=b.substr(2),Ob=ya(Ob);Ah(a,Ob)?(c||a.j("true: "+Ob),Od=!0):(c||a.j("false: "+Ob),Od=!1);Od||(d=!1);break}f=!0;break;case "k":var Ji=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Pd=0,Qd=Z(),Pb=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Pb.F));10>Pd;){for(var La=null,Ki=256;65536>Pb.F>>>0;){Qd.F=a.oa(Pb,2);if(null==Pb.F||!Ki--)break;if(!(Qd.F&1)){for(var Li=a,Hc=Qd,Dg=null,Qb=Hc.F,Eg=Qb,Rd=1;6>=Rd&&Qb;Rd++){if(2<
Rd){Hc.F=Qb;var Ic=ci(Li,Hc);if(0<=Ic.indexOf("JSR")){var Fg=Ic.indexOf(" ");if(Qb+(Ic.indexOf(" ",Fg+1)-Fg-1)/2==Eg){Dg=Ic;break}}}Qb-=2}Hc.F=Eg;if(La=Dg)break}}if(!La||null==La)break;var Gg=null;if("ks"==Ji){var Hg=La.match(/[0-9A-F]+$/);Hg&&(Gg=ji(a,Hg[0]))}La=xa(La,50)+" ;"+(Gg||"stack="+J(a,Pb.F));a.j(La);Pd++}Pd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){ji(a,g[1],!0);break}f=!0;break;case "m":a:{var oa,pa=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var Ca=0;if("all"==
G)Ca=1878917119,G=null;else if("on"==G)pa=!0,G=null;else if("off"==G)pa=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(oa in xb)if(G==oa){Ca=xb[oa];pa=!!(a.na&Ca);break}if(!Ca){a.j("unknown message category: "+G);break a}}if(Ca)if("on"==g[2])a.na|=Ca,pa=!0;else if("off"==g[2]&&(a.na&=~Ca,pa=!1,1073741824==Ca)){for(var Sd=0;Sd<a.va.length;Sd++)a.j(a.va[Sd]);a.va=[]}}var Mi=0,Rb="";for(oa in xb)if(!G||G==oa){var Ni=!!(a.na&xb[oa]);if(null===pa||pa==Ni)Rb&&(Rb+=","),++Mi%10||(Rb+="\n\t"),
"key"==oa&&(oa="keys"),Rb+=oa}void 0===G&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==pa?pa?"messages on: ":"messages off: ":"message categories:\n\t")+(Rb||"none"));Hh(a)}break;case "p":if("print"==g[0]){ki(a,b.substr(5));break}var Oi="pr"==g[0]?1:0;if(a.S)a.j("step in progress");else{var Ig=Z(a.b.u[7]);a.Fb(Ig);a.S?(a.mb(a.g,Ig,!0),a.hb()||(a.A&&a.A.qb(),a.S=0)):li(a,Oi?"tr":"t")}break;case "r":if("reset"==b){a.A&&a.A.reset();break}Wh(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Sb=
+g[2];if(8==Sb||10==Sb||16==Sb)a.da=Sb;else{a.j("invalid base: "+Sb);break}}a.j("default base: "+a.da);break;case "cs":var Tb;void 0!==g[3]&&(Tb=+g[3]);switch(g[2]){case "int":a.b.xb=Tb;break;case "start":a.b.Hb=Tb;break;case "stop":a.b.yb=Tb;break;default:a.j("unknown cs option");break a}void 0!==Tb&&id(a.b);a.j("checksums "+(a.b.B.vb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ld(a.b,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.b.nb.toFixed(2)+
"Mhz")+" ("+a.b.bb+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":li(a,g[0],g[1]);break;case "u":Xh(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ii(a,b.substr(3))||(d=!1);break}if("ver"==
g[0]){a.j("PDPjs version 1.30.2 ("+a.b.wb+",RELEASE"+(wb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){ki(a,b.substr(1));break}var Td="commands:",Ud;for(Ud in Jh)Td+="\n"+xa(Ud,9)+Jh[Ud];je(a)||(Td+="\nnote: history disabled if no exec breakpoints");a.j(Td);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(Jg){a.j("debugger error: "+(Jg.stack||Jg.message)),d=!1}return d}
function jd(a,b,c){b=yh(a,b,c);for(var d in b)if(!bi(a,b[+d]))return!1;return!0}Xa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Fh(d);C(d,c)}});
function ni(a,b,c){u.call(this,"Computer",a,ni,67108864);this.B.ja=!1;oi(this,b);this.L=gd(this,"autoPower",a);this.v=0;this.Y=a.busWidth||a.buswidth;this.g=pi;this.J=null;this.D=this.R=!1;this.$=gd(this,"url")||"";(Math.random()+.1).toString(36);this.A=qi(this);if(this.b=qb("CPU",this.id)){this.i=qb("Debugger",this.id);this.w=new gc({id:this.Oa+".bus",busWidth:this.Y},this.b,this.i);var d,e=ob(this.id);if((this.f=qb("Panel",this.id))&&this.f.Pa)for(b=0;b<e.length;b++)d=e[b],d.O=this.f.O,d.j=this.f.j,
d.Pa=this.f.Pa;this.j("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Da&&d.Da(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.g=parseInt(d,10));var f;if(a=gd(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.D=!0,this.g=pi),this.g&&(this.K=
new P(this,"1.30.2"),ri(this.K)?b=null:delete this.K);!b&&this.g&&(b=si(this))&&(this.D=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.H=null,g.D=!1,g.O("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.J=b,g.R=!0);H(g)})}else H(this);this.G.power||(this.L=!0);!c&&this.L&&ti(this,this.Ib)}else q("Unable to find CPU component")}z(ni);var pi=0;
function oi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}function gd(a,b,c){var d=b.toLowerCase(),d=bb[b]||bb[d];void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ti(a,b,c){for(var d=ob(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!tb(f)){tb(f,function(){ti(a,b,c)});return}}b.call(a,c)}
function ui(a,b){var c=new P(a,"1.30.2","validate");if(ri(c)&&vi(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.O("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ni.prototype;
k.Ib=function(a){void 0===a&&(a=this.g||(this.J?1:pi));if(!this.v){this.v++;var b=!1,c=!1;this.P=!1;var d=this.K||new P(this,"1.30.2");if(-1==a)b=!0;else if(a>pi){if(ri(d,this.J)){this.C=new P(this,"1.30.2","failsafe");ri(this.C)&&(wi(this,d),a=2,xi(this.C));this.C.set("timestamp",Da());yi(this.C);var e=this.g&&!this.D;if(1==a||Ha("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=vi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ri(d,g):("error"==
f&&"no machine state"!=g?(this.O("Error: "+g),"unable to verify user"==g&&(Oa("user",""),this.A=null)):this.j(f+": "+g),xi(d),ri(d)?(c=vi(d),e=!0):c=!1))}e&&ui(this,c?d:null)}else 2==a&&d.clear()}else ui(this);delete this.J;delete this.K}e=ob(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=zi(this,g,d,b,c));b=[d,a,c];-1!=a?ti(this,this.oc,b):this.oc(b)}};
function zi(a,b,c,d,e){if(!b.B.ja){b.B.ja=!0;if(b.Fa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Fa(f,d)&&f&&(q("Unable to restore state for "+b.type),a.N&&!a.R?(c.clear(),a.g=pi,window&&window.location.reload()):a.P=!0,b.Fa(null),e=!1)}if(!d&&b.pc)for(a=b.pc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.oc=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.B.ja=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.b&&(zi(this,this.b,b,c,a),this.b.sb());this.P&&(wi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.v=0};
function wi(a,b){if(Ha("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.A||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.2"};d.url=a.$;d.user=c;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function mi(a,b,c){var d,e="none";if(a.v)return null;a.v--;var f=new P(a,"1.30.2"),g=new P(a,"1.30.2","validate"),h=Da();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ea&&(c&&a.b.ha(),d=a.b.Ea(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.B.ja=!1,!1===d&&(e=null)));for(var h=ob(a.id),l=0;l<h.length;l++){var m=h[l];m.B.ja&&(m.Ea&&(d=m.Ea(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.B.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.A&&Ai(a,a.A,f.toString()),yi(g)&&yi(f)||(e=null,d=h=!0)):a.g&&(d=!0,h=3==a.g),d&&f.clear(h)):e=f.toString());c&&(a.B.ja=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}k.reset=function(){this.w&&this.w.reset&&(E(this,"Resetting "+this.w.type),this.w.reset());for(var a=ob(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&(E(this,"Resetting "+c.type),c.reset())}};
k.start=function(a,b){for(var c=ob(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ca(!0)};k.stop=function(a,b){for(var c=ob(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.ca(!0)};
k.sa=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.g||(d.B.ja?ji(d,!1,!0):qi(d,d.Hb))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.B.ja&&!d.g)if(d.u&&!d.D){var a=Ha("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ji(d,a,!0);!a&&d.L?window&&window.location.reload():(a||(d.pc=!0),d.Hb(mi),d.pc=!1)}else d.reset(),d.b&&d.b.sb()},!0;case "save":if(ua(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.G[b]=c,c.onclick=function(){var a=ni(d,!0);if(a){var b=!!(d.u&&!d.D||d.L),c=ji(d,b);b?xi(d,a,c):d.O("Resume disabled, machine state not saved")}},!0}return!1};
function ni(a,b){var c=a.f;c||((c=Na("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=yi(a,c))||a.O("The user ID is invalid.")):b&&a.O("Browser local storage is not available"));return c}
function yi(a,b){a.f=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa("user",b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function pi(a){var b=null;a.f&&(b=Ga()+"/api/v1/user?req=load&user="+a.f+"&state="+zi(a,"1.30.2"));return b}
function xi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=zi(a,"1.30.2");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.O("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.O(c),Oa("user",""),a.f=null)}}
function Qg(a){var b;a=ob(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.qb=function(a){if(this.Qa){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.Qa.focus();!a&&window&&window.scrollTo(b,c)}};k.ca=function(a){this.b&&this.b.ca(a);this.za&&this.za.ca(a)};
Xa(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new ki(g,d,!0);C(g,f);g.K&&qi(g,g.Hb)}});Sa.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=qb("Computer",c.id))&&c.$&&!c.B.ja&&c.Hb(-1)}});Sa.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=qb("Computer",c.id))&&c.B.ja&&ji(c,!(!c.u||c.D),!0)}});
function P(a,b,c){this.id=a.id;this.key=zi(a,b,c);this.i=a.i;ui(this,a.Rc)}function zi(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,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ui(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function ui(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function vi(a){var b=!0;if(Ma()){var c=JSON.stringify(a[a.id]);Oa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function si(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function oi(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ma()&&(b=Na(a.key))?(a[a.id]=b,a.b=!0):!1}var Ai=0;
function Mi(a,b,c,d,e,f){e("Loading "+a+"...");Ea(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Ni(h,a,b,c,d,e,f)})}
function Ni(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(nb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Oi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Oi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Oi(a,b,c)}})}else c(a,null)}
function Pi(a,b,c,d){function e(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);l&&(--Ai||Za(!0));l=!1}var g,h,l=!0;Ai++;mb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.30.2/components.xsl");m=function(d,h){h?Mi(c,null,null,!1,e,function(d,l){l?(nb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Ai||Za(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Ai||Za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Mi(b,a,d,!0,e,m):Ni(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(t){f(t.message)}return l}window.embedPDP11=function(a,b,c,d){Za(!1);return Pi(a,b,c,d)};window.enableEvents=Za;window.sendEvent=$a;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11-dbg.map
k.sa=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.B.ja?mi(d,!1,!0):ti(d,d.Ib))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.B.ja&&!d.v)if(d.g&&!d.H){var a=Ha("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");mi(d,a,!0);!a&&d.N?window&&window.location.reload():(a||(d.qc=!0),d.Ib(pi),d.qc=!1)}else d.reset(),d.b&&d.b.sb()},!0;case "save":if(ua(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.G[b]=c,c.onclick=function(){var a=qi(d,!0);if(a){var b=!!(d.g&&!d.H||d.N),c=mi(d,b);b?Ai(d,a,c):d.O("Resume disabled, machine state not saved")}},!0}return!1};
function qi(a,b){var c=a.A;c||((c=Na("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Bi(a,c))||a.O("The user ID is invalid.")):b&&a.O("Browser local storage is not available"));return c}
function Bi(a,b){a.A=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa("user",b.data),a.A=b.data)}catch(d){q(d.message+" ("+c+")")}return a.A}function si(a){var b=null;a.A&&(b=Ga()+"/api/v1/user?req=load&user="+a.A+"&state="+Ci(a,"1.30.2"));return b}
function Ai(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ci(a,"1.30.2");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.O("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.O(c),Oa("user",""),a.A=null)}}
function Tg(a){var b;a=ob(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.qb=function(a){if(this.Pa){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.Pa.focus();!a&&window&&window.scrollTo(b,c)}};k.ca=function(a){this.b&&this.b.ca(a);this.f&&this.f.ca(a)};
Xa(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new ni(g,d,!0);C(g,f);g.L&&ti(g,g.Ib)}});Sa.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=qb("Computer",c.id))&&c.da&&!c.B.ja&&c.Ib(-1)}});
Sa.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=qb("Computer",c.id))&&c.B.ja&&mi(c,!(!c.g||c.H),!0)}});function P(a,b,c){this.id=a.id;this.key=Ci(a,b,c);this.i=a.i;xi(this,a.Rc)}function Ci(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,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){xi(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function xi(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function yi(a){var b=!0;if(Ma()){var c=JSON.stringify(a[a.id]);Oa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function vi(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function ri(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ma()&&(b=Na(a.key))?(a[a.id]=b,a.b=!0):!1}var Di=0;
function Pi(a,b,c,d,e,f){e("Loading "+a+"...");Ea(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Qi(h,a,b,c,d,e,f)})}
function Qi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(nb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Ri(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Ri(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Ri(a,b,c)}})}else c(a,null)}
function Si(a,b,c,d){function e(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);l&&(--Di||Za(!0));l=!1}var g,h,l=!0;Di++;mb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.30.2/components.xsl");m=function(d,h){h?Pi(c,null,null,!1,e,function(d,l){l?(nb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Di||Za(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Di||Za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Pi(b,a,d,!0,e,m):Qi(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(t){f(t.message)}return l}window.embedPDP11=function(a,b,c,d){Za(!1);return Si(a,b,c,d)};window.enableEvents=Za;window.sendEvent=$a;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11-dbg.map

View file

@ -45,198 +45,198 @@ d.K[f++]=e[c]>>8&255,d.K[f++]=e[c]>>16&255,d.K[f++]=e[c]>>24&255;else d.K=g;d.X=
function v(){return"http://"+(window?window.location.host:"www.pcjs.org")}function u(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}var xa=null;function ya(){if(null==xa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}xa=a}return xa}
function za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var Ca={init:[],show:[],exit:[]},Da=!1,Ea=!1,Fa=!0;
function Ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ha(a){Ca.init.push(a)}function Ia(a){if(Fa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ja(a){!Fa&&a?(Fa=!0,Da&&Ka("init"),Ea&&Ka("show")):Fa=a}function Ka(a){Ca[a]&&Ia(Ca[a])}Ga("onload",function(){Da=!0;Ia(Ca.init)});Ga("onpageshow",function(){Ea=!0;Ia(Ca.show)});
Ga(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ia(Ca.exit)});function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.jc=b;b=this.id.indexOf(".");0>b?this.Pa=this.id:(this.na=this.id.substr(0,b),this.Pa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ea:!1,nb:!1,O:!1,error:!1};this.jb=null;this.l.error=!1;this.o={};this.C=null;y.push(this)}var La=void 0,Ma={};
Ga(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ia(Ca.exit)});function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.jc=b;b=this.id.indexOf(".");0>b?this.Pa=this.id:(this.na=this.id.substr(0,b),this.Pa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ea:!1,pb:!1,O:!1,error:!1};this.jb=null;this.l.error=!1;this.o={};this.C=null;y.push(this)}var La=void 0,Ma={};
if(window){La||(La=window.location.search.substr(1));for(var Na,Oa=/\+/g,Pa=/([^&=]+)=?([^&]*)/g;Na=Pa.exec(La);)Ma[decodeURIComponent(Na[1].replace(Oa," "))]=decodeURIComponent(Na[2].replace(Oa," "))}function Qa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function z(a,b){b||(b=x);a.prototype=Qa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ra=window.PCjs.Machines||(window.PCjs.Machines={}),y=window.PCjs.Components||(window.PCjs.Components=[])}else Ra={},y=[];function Sa(a,b,c){Ra[a]&&b&&(Ra[a][b]=c)}function A(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ta(a){if(void 0!==a){var b;for(b=0;b<y.length;b++)if(y[b].id===a)return y[b]}return null}function Ua(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<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
function C(a,b){b=D(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=B(f))&&g.binding&&a.$(g.type,g.binding,f,g.value),l=k.length}}}}
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},$:function(a,b,c){switch(b){case "clear":return this.o[b]||(this.o[b]=c,c.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[b]||(this.Va=this.o[b]=c,c.value="",this.T=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.F=function(a){this.T(a,this.Pa)}),!0;default:return!1}},log:function(){},T:function(){},status:function(a){this.T(this.Pa+": "+a)},F:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},ja:function(){return this.l.O=!0},ia:function(a,b){b&&(this.l.O=!1);return!0}};function Va(a,b){a.l.nb?(a.l.Ea=!1,a.l.nb=!1):a.l.error?a.T(a.toString()+" error"):a.l.Ea=b}function F(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.jb,a.jb=null,b&&b()))}
this.F=function(a){this.T(a,this.Pa)}),!0;default:return!1}},log:function(){},T:function(){},status:function(a){this.T(this.Pa+": "+a)},F:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},ja:function(){return this.l.O=!0},ia:function(a,b){b&&(this.l.O=!1);return!0}};function Va(a,b){a.l.pb?(a.l.Ea=!1,a.l.pb=!1):a.l.error?a.T(a.toString()+" error"):a.l.Ea=b}function F(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.jb,a.jb=null,b&&b()))}
function Wa(a,b){b&&(a.l.ready?b():a.jb=b);return a.l.ready}function Xa(a,b){a.l.error=!0;a.F(b)}Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});var Ya="undefined"!==typeof ArrayBuffer;
function Za(a){x.call(this,"Panel",a,Za);this.s=0;this.w=this.v=!1;this.c=this.i=this.f=0;this.A=20;this.m={};this.b={START:[1,!0,!1,this.qc],STEP:[1,!1,!1,this.rc],ENABLE:[1,!1,!1,this.mc],CONT:[1,!0,!1,this.kc],DEP:[0,!0,!1,this.lc],EXAM:[1,!0,!1,this.nc],LOAD:[1,!0,!1,this.pc],TEST:[0,!0,!1,this.oc]};for(a=0;22>a;a++)this.b["S"+a]=[0,!1,!1,this.sc,a]}z(Za);h=Za.prototype;h.reset=function(){this.A=this.A&-120|20};
h.$=function(a,b,c,d){if(this.j&&this.j.$(a,b,c,d)||this.a&&this.a.$(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.o[b]=c,this.s++,!0;default:return"led"==a||"rled"==a?(this.o[b]=c,this.m[b]=d?1:0,this.s++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0]),this.o[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){var c=a.b[b];$a(a,
b,c[0]=1-c[0]);c[2]=!0;c[3]&&c[3].call(a,c[0],c[4]);a.v="DEP"==b;a.w="EXAM"==b}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){var c=a.b[b];c[1]&&c[2]&&($a(a,b,c[0]=1-c[0]),c[3]&&c[3].call(a,c[0],c[4]));c[2]=!1}}(this,b),!0):this.parent.$.call(this,a,b,c,d)}};h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;ab(b,this,bb);cb(b,this.reset.bind(this));db(this);for(var e in this.b)$a(this,e,this.b[e][0])};h.ja=function(a,b){b||(eb(),this.stop());return!0};h.ia=function(){return!0};
function fb(a,b,c){if(a=a.o[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function db(a,b){for(var c in a.m)fb(a,c,null!=b?b:a.m[c])}function $a(a,b,c){if(a=a.o[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function gb(a,b,c,d){a.o[b]&&(void 0===c&&(Xa(a,"Value for "+b+" is invalid"),G(a.a)),c=8==(a.C&&a.C.h||8)?ka(c,d):m(c,d),a.o[b].textContent!=c&&(a.o[b].textContent=c))}
h.qc=function(a){a||this.a.l.U||(this.h.reset(),hb(this.a),this.b.ENABLE&&this.b.ENABLE[0]&&ib(this.a))};h.rc=function(){};h.mc=function(a){a||G(this.a)};h.kc=function(a){if(!a&&!this.a.l.U)if(this.b.ENABLE&&this.b.ENABLE[0])ib(this.a);else{a=this.C;var b;if(b=a)a.l.Ea&&(a.l.nb=!0),b=!a.l.Ea;if(b)Va(a,!0),a.kb(0),Va(a,!1);else try{var c=this.a.kb(1);0<c&&(jb(this.a,c),kb(this.a,c,!0),lb(this.a,c))}catch(d){"number"!=typeof d&&Xa(this.a,d.stack||d.message)}this.stop();this.j&&this.j.ka()}};
h.lc=function(a){a&&!this.a.l.U&&(this.v&&mb(this,this.c+2),this.h.Ab(this.c,nb(this,this.f)))};h.nc=function(a){a||this.a.l.U||(this.w&&mb(this,this.c+2),nb(this,this.h.tb(this.c)))};h.pc=function(a){a||this.a.l.U||mb(this,this.f)};h.oc=function(a){db(this,a||null)};h.sc=function(a,b){this.f=a?this.f|1<<b:this.f&~(1<<b)};function mb(a,b){a.c=b&a.h.Aa;ob(a,"A",a.c,22)}function nb(a,b){a.i=b&65535;ob(a,"D",a.i,16);return a.i}function pb(a,b,c){a.m[b]=c;fb(a,b,c)}
function ob(a,b,c,d){for(var e=0;e<d;e++)pb(a,b+e,c&1<<e)}h.stop=function(){mb(this,this.a.g[7])};h.ka=function(){if(this.s){for(var a=0;a<this.a.g.length;a++)gb(this,"R"+a,this.a.g[a]);a=qb(this.a);gb(this,"PS",a);gb(this,"NF",a&8?1:0,1);gb(this,"ZF",a&4?1:0,1);gb(this,"VF",a&2?1:0,1);gb(this,"CF",a&1?1:0,1);ob(this,"D",this.i,16);ob(this,"A",this.c,22);a=this.a.Fa?this.a.Ga&16?1:2:4;pb(this,"B22",a&1);pb(this,"B18",a&2);pb(this,"B16",a&4)}};h.tc=function(a){return(a?this.f:this.i)&65535};
h.nd=function(a){this.i=a};var rb={},bb=(rb[65400]=[null,null,Za.prototype.tc,Za.prototype.nd,"CNSW"],rb);function eb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=Ta(e.id);f||(a=!0,f=new Za(e));C(f,d);a&&F(f)}}Ha(eb);
function sb(a,b,c){x.call(this,"Bus",a,sb);this.a=b;this.C=c;this.I=a.busWidth||16;this.m=0;this.G=[];this.w=null;this.A=Math.pow(2,this.I);this.Aa=this.A-1|0;this.b=H;this.c=Math.log2(this.b);this.D=this.b>>2;this.j=this.b-1;this.v=this.A/this.b|0;this.xa=[];this.f=0;this.i=!1;this.s=[];this.ac=[tb,ub,vb,wb];a=new I(this);xb(a,this.C);this.h=Array(this.v);for(b=0;b<this.v;b++)this.h[b]=a;F(this)}z(sb);var H=8192,yb=H-1;
function tb(a,b){var c=-1,d=this.controller,e=d.xa[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.xa[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return c;J(d,b,16);return 255}function ub(a,b,c){var d=!1,e=this.controller,f=e.xa[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.xa[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||J(e,c,16)}
function vb(a,b){var c=-1,d=this.controller;(a=d.xa[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return c;J(d,b,16);return 65535}function wb(a,b,c){var d=!1,e=this.controller;if(a=e.xa[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||J(e,c,16)}function zb(a,b){if(b!=a.m){var c;a.m&&(c=(1<<a.m)-H,Ab(a,c,H,a.G),a.m=0);b&&(a.m=b,c=(1<<b)-H,a.G=Bb(a,c,H),a.w?Ab(a,c,H,a.w):(Cb(a,c,H,Db,a),a.w=Bb(a,c,H)))}}h=sb.prototype;
h.reset=function(){for(var a=0;a<this.s.length;a++)this.s[a]();zb(this,16)};h.ja=function(a,b){b||this.reset();return!0};
function Cb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.c;0<g&&k<a.h.length;){var l=a.h[k],n=k*a.b,p=a.b-(f-n);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ja)return l.lb+=l.Ja-f,l.Ja=f,!0;if(f>=l.Ja+l.lb){p=l.size-(f-n);p>g&&(p=g);l.lb=f-l.Ja+p;f=n+a.b;g-=p;k++;continue}}return Eb(1,f,g)}f=new I(a,f,p,a.b,d,e);xb(f,a.C,l);a.h[k++]=f;f=n+a.b;g-=p}if(0>=g){c/=1024;var t;e="";t?10<t&&(t=10):t=c&-65536?10:5;if(null==c||isNaN(c))for(;0<t--;)e="?"+e;else for(;0<t--;)e=String.fromCharCode(c%10+48)+e,c/=
10;a.status(e+"Kb "+Fb[d]+" at "+ka(b));return!0}return Eb(2,b,c)}function Bb(a,b,c){var d=[];for(b>>>=a.c;0<c&&b<a.h.length;)d.push(a.h[b++]),c-=a.b;return d}function Ab(a,b,c,d){var e=0;for(b>>>=a.c;0<c&&b<a.h.length;){var f=d[e++];if(!f)break;a.h[b++]=f;c-=a.b}}function Gb(a,b){3932160<=b&&(b=Hb(a.a,b));return a.h[(b&a.Aa)>>>a.c].wb(b&a.j,b)}function Ib(a,b){3932160<=b&&(b=Hb(a.a,b));return a.h[(b&a.Aa)>>>a.c].W(b&a.j,b)}
h.tb=function(a){var b=a&this.j,c=(a&this.Aa)>>>this.c;this.i=!1;this.f++;a=this.h[c].Sb(b,a);this.f--;return a};h.Xa=function(a,b){this.i=!1;this.f++;this.h[(a&this.Aa)>>>this.c].Eb(a&this.j,b&255,a);this.f--};function Jb(a,b,c){3932160<=b&&(b=Hb(a.a,b));a.h[(b&a.Aa)>>>a.c].mb(b&a.j,c&65535,b)}h.Ab=function(a,b){var c=a&this.j,d=(a&this.Aa)>>>this.c;this.i=!1;this.f++;this.h[d].Zb(c,b&65535,a);this.f--};
function Kb(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.h[d];if(e.ta||e.fc){c[b++]=d;var f=b++;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}l.length<e.length&&(e=l)}c[f]=e}}return c}function Lb(a,b,c,d,e,f,g,k,l){for(;b<=c;b+=2){var n=b&yb;void 0!==a.xa[n]?u("I/O address already registered: "+m(b,8,!0)):a.xa[n]=[d,e,f,g,k||"unknown",l,!1]}}
function ab(a,b,c,d){for(var e in c){var f=+e,g=c[e];if(!(g[6]&&g[6]>a.a.Za)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,n=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null,t=g[5]||1;65472<=f&&65487>=f&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var w=g[4],E=0;E<t;E++,f+=2)w&&1<t&&(w=g[4]+E),Lb(a,f,f,k,l,n,p,w,d||64)}}}function cb(a,b){a.s.push(b)}
function J(a,b,c){a.i=!0;a.f||(c&&(a.a.M|=c),K(a.a,4,b))}function Mb(a){var b=a.i;a.i=!1;return b}function Eb(a,b,c){u("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}function L(a){x.call(this,"Device",a,L);this.b={L:0,Cb:-1}}z(L);h=L.prototype;h.ha=function(a,b,c,d){this.h=b;this.a=c;this.C=d;var e=this;this.b.Cb=Nb(c,function(){e.b.za|=128;e.b.za&64&&(Ob(e.a,e.b.ld),Pb(e.a,e.b.Cb,1E3/60))});this.b.ld=Qb(64,6);ab(b,this,M);cb(b,this.reset.bind(this));F(this)};
h.reset=function(){this.b.za=0};h.Bc=function(){var a=this.b.za;this.b.za&=-129;return a};h.vd=function(a){this.b.za=a;a&64&&Pb(this.a,this.b.Cb,1E3/60);this.b.za=a&-129};h.Dc=function(){var a=this.a;return a.w&62337|a.$a<<5|a.ab<<1};h.xd=function(a){var b=this.a;a&=62337;if(b.w!=a){b.w=a;b.$a=a>>5&3;b.ab=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Fa!=c&&(b.Fa=c,Sb(b))}};h.Ec=function(){var a=this.a.Ba;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Fc=function(){return this.a.yb};h.Gc=function(){return this.a.Ga};
h.yd=function(a){var b=this.a;1170>b.Za&&(a&=-49);b.Ga!=a&&(b.Ga=a,b.Mb=a&16?4194303:262143,Sb(b))};h.fd=function(a){a=a>>1&63;var b=this.a.Ya[a>>1];return a&1?b>>16:b&65535};h.Yd=function(a,b){b=b>>1&63;var c=b>>1;this.a.Ya[c]=b&1?this.a.Ya[c]&65535|(a&63)<<16:this.a.Ya[c]&-65536|a&65534};h.Zc=function(a){return this.a.H[1][a>>1&7]};h.Rd=function(a,b){this.a.H[1][b>>1&7]=a&65295};h.Xc=function(a){return this.a.H[1][(a>>1&7)+8]};h.Pd=function(a,b){this.a.H[1][(b>>1&7)+8]=a&65295};
function Za(a){x.call(this,"Panel",a,Za);this.c=this.f=this.i=this.s=0;this.v=this.w=!1;this.A=$a;this.m={};this.b={START:[1,!0,!1,this.qc],STEP:[1,!1,!1,this.rc],ENABLE:[1,!1,!1,this.mc],CONT:[1,!0,!1,this.kc],DEP:[0,!0,!1,this.lc],EXAM:[1,!0,!1,this.nc],LOAD:[1,!0,!1,this.pc],TEST:[0,!0,!1,this.oc]};for(a=0;22>a;a++)this.b["S"+a]=[0,!1,!1,this.sc,a]}z(Za);var $a=7;h=Za.prototype;h.reset=function(){};
h.$=function(a,b,c,d){if(this.j&&this.j.$(a,b,c,d)||this.a&&this.a.$(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.o[b]=c,this.s++,!0;default:return"led"==a||"rled"==a?(this.o[b]=c,this.m[b]=d?1:0,this.s++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0]),this.o[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){var c=a.b[b];ab(a,
b,c[0]=1-c[0]);c[2]=!0;c[3]&&c[3].call(a,c[0],c[4]);a.v="DEP"==b;a.w="EXAM"==b}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){var c=a.b[b];c[1]&&c[2]&&(ab(a,b,c[0]=1-c[0]),c[3]&&c[3].call(a,c[0],c[4]));c[2]=!1}}(this,b),!0):this.parent.$.call(this,a,b,c,d)}};h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;bb(b,this,cb);db(b,this.reset.bind(this));eb(this);for(var e in this.b)ab(this,e,this.b[e][0])};h.ja=function(a,b){b||(fb(),this.stop());return!0};h.ia=function(){return!0};
function gb(a,b,c){if(a=a.o[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function eb(a,b){for(var c in a.m)gb(a,c,null!=b?b:a.m[c])}function ab(a,b,c){if(a=a.o[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hb(a,b,c,d){a.o[b]&&(void 0===c&&(Xa(a,"Value for "+b+" is invalid"),G(a.a)),c=8==(a.C&&a.C.h||8)?ka(c,d):m(c,d),a.o[b].textContent!=c&&(a.o[b].textContent=c))}
h.qc=function(a){a||this.a.l.U||(this.h.reset(),ib(this.a),this.b.ENABLE&&this.b.ENABLE[0]&&jb(this.a))};h.rc=function(){};h.mc=function(a){a||G(this.a)};h.kc=function(a){if(!a&&!this.a.l.U)if(this.b.ENABLE&&this.b.ENABLE[0])jb(this.a);else{a=this.C;var b;if(b=a)a.l.Ea&&(a.l.pb=!0),b=!a.l.Ea;if(b)Va(a,!0),a.mb(0),Va(a,!1);else try{var c=this.a.mb(1);0<c&&(kb(this.a,c),lb(this.a,c,!0),mb(this.a,c))}catch(d){"number"!=typeof d&&Xa(this.a,d.stack||d.message)}this.stop();this.j&&this.j.ka()}};
h.lc=function(a){a&&!this.a.l.U&&(this.v&&nb(this,this.c+2),a=ob(this,this.i),this.A==$a?this.h.lb(this.c,a):this.a.lb(this.c,a))};h.nc=function(a){a||this.a.l.U||(this.w&&nb(this,this.c+2),a=this.A==$a?this.h.kb(this.c):this.a.kb(this.c),ob(this,a))};h.pc=function(a){a||this.a.l.U||nb(this,this.i)};h.oc=function(a){eb(this,a||null)};h.sc=function(a,b){this.i=a?this.i|1<<b:this.i&~(1<<b)};function nb(a,b){a.c=b&a.h.Aa;pb(a,"A",a.c,22)}function ob(a,b){a.f=b&65535;pb(a,"D",a.f,16);return a.f}
function qb(a,b,c){a.m[b]=c;gb(a,b,c)}function pb(a,b,c,d){for(var e=0;e<d;e++)qb(a,b+e,c&1<<e)}h.stop=function(){nb(this,this.a.g[7])};h.ka=function(){if(this.s){for(var a=0;a<this.a.g.length;a++)hb(this,"R"+a,this.a.g[a]);a=rb(this.a);hb(this,"PS",a);hb(this,"NF",a&8?1:0,1);hb(this,"ZF",a&4?1:0,1);hb(this,"VF",a&2?1:0,1);hb(this,"CF",a&1?1:0,1);pb(this,"D",this.f,16);pb(this,"A",this.c,22);a=this.a.Fa?this.a.Ga&16?1:2:4;qb(this,"B22",a&1);qb(this,"B18",a&2);qb(this,"B16",a&4)}};
h.tc=function(a){return(a?this.i:this.f)&65535};h.nd=function(a){this.f=a};var sb={},cb=(sb[65400]=[null,null,Za.prototype.tc,Za.prototype.nd,"CNSW"],sb);function fb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=Ta(e.id);f||(a=!0,f=new Za(e));C(f,d);a&&F(f)}}Ha(fb);
function tb(a,b,c){x.call(this,"Bus",a,tb);this.a=b;this.C=c;this.I=a.busWidth||16;this.m=0;this.G=[];this.w=null;this.A=Math.pow(2,this.I);this.Aa=this.A-1|0;this.b=H;this.c=Math.log2(this.b);this.D=this.b>>2;this.j=this.b-1;this.v=this.A/this.b|0;this.xa=[];this.f=0;this.i=!1;this.s=[];this.ac=[ub,vb,wb,xb];a=new I(this);yb(a,this.C);this.h=Array(this.v);for(b=0;b<this.v;b++)this.h[b]=a;F(this)}z(tb);var H=8192,zb=H-1;
function ub(a,b){var c=-1,d=this.controller,e=d.xa[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.xa[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return c;J(d,b,16);return 255}function vb(a,b,c){var d=!1,e=this.controller,f=e.xa[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.xa[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||J(e,c,16)}
function wb(a,b){var c=-1,d=this.controller;(a=d.xa[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return c;J(d,b,16);return 65535}function xb(a,b,c){var d=!1,e=this.controller;if(a=e.xa[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||J(e,c,16)}function Ab(a,b){if(b!=a.m){var c;a.m&&(c=(1<<a.m)-H,Bb(a,c,H,a.G),a.m=0);b&&(a.m=b,c=(1<<b)-H,a.G=Cb(a,c,H),a.w?Bb(a,c,H,a.w):(Db(a,c,H,Eb,a),a.w=Cb(a,c,H)))}}h=tb.prototype;
h.reset=function(){for(var a=0;a<this.s.length;a++)this.s[a]();Ab(this,16)};h.ja=function(a,b){b||this.reset();return!0};
function Db(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.c;0<g&&k<a.h.length;){var l=a.h[k],n=k*a.b,p=a.b-(f-n);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ja)return l.nb+=l.Ja-f,l.Ja=f,!0;if(f>=l.Ja+l.nb){p=l.size-(f-n);p>g&&(p=g);l.nb=f-l.Ja+p;f=n+a.b;g-=p;k++;continue}}return Fb(1,f,g)}f=new I(a,f,p,a.b,d,e);yb(f,a.C,l);a.h[k++]=f;f=n+a.b;g-=p}if(0>=g){c/=1024;var t;e="";t?10<t&&(t=10):t=c&-65536?10:5;if(null==c||isNaN(c))for(;0<t--;)e="?"+e;else for(;0<t--;)e=String.fromCharCode(c%10+48)+e,c/=
10;a.status(e+"Kb "+Gb[d]+" at "+ka(b));return!0}return Fb(2,b,c)}function Cb(a,b,c){var d=[];for(b>>>=a.c;0<c&&b<a.h.length;)d.push(a.h[b++]),c-=a.b;return d}function Bb(a,b,c,d){var e=0;for(b>>>=a.c;0<c&&b<a.h.length;){var f=d[e++];if(!f)break;a.h[b++]=f;c-=a.b}}function Hb(a,b){3932160<=b&&(b=Ib(a.a,b));return a.h[(b&a.Aa)>>>a.c].xb(b&a.j,b)}function Jb(a,b){3932160<=b&&(b=Ib(a.a,b));return a.h[(b&a.Aa)>>>a.c].W(b&a.j,b)}
h.kb=function(a){var b=a&this.j,c=(a&this.Aa)>>>this.c;this.i=!1;this.f++;a=this.h[c].Sb(b,a);this.f--;return a};h.Xa=function(a,b){this.i=!1;this.f++;this.h[(a&this.Aa)>>>this.c].Eb(a&this.j,b&255,a);this.f--};function Kb(a,b,c){3932160<=b&&(b=Ib(a.a,b));a.h[(b&a.Aa)>>>a.c].ob(b&a.j,c&65535,b)}h.lb=function(a,b){var c=a&this.j,d=(a&this.Aa)>>>this.c;this.i=!1;this.f++;this.h[d].Zb(c,b&65535,a);this.f--};
function Lb(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.h[d];if(e.ta||e.fc){c[b++]=d;var f=b++;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}l.length<e.length&&(e=l)}c[f]=e}}return c}function Mb(a,b,c,d,e,f,g,k,l){for(;b<=c;b+=2){var n=b&zb;void 0!==a.xa[n]?u("I/O address already registered: "+m(b,8,!0)):a.xa[n]=[d,e,f,g,k||"unknown",l,!1]}}
function bb(a,b,c,d){for(var e in c){var f=+e,g=c[e];if(!(g[6]&&g[6]>a.a.Za)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,n=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null,t=g[5]||1;65472<=f&&65487>=f&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var w=g[4],E=0;E<t;E++,f+=2)w&&1<t&&(w=g[4]+E),Mb(a,f,f,k,l,n,p,w,d||64)}}}function db(a,b){a.s.push(b)}
function J(a,b,c){a.i=!0;a.f||(c&&(a.a.M|=c),K(a.a,4,b))}function Nb(a){var b=a.i;a.i=!1;return b}function Fb(a,b,c){u("Memory block error ("+a+": "+m(b)+","+m(c)+")");return!1}function L(a){x.call(this,"Device",a,L);this.b={L:0,Cb:-1}}z(L);h=L.prototype;h.ha=function(a,b,c,d){this.h=b;this.a=c;this.C=d;var e=this;this.b.Cb=Ob(c,function(){e.b.za|=128;e.b.za&64&&(Pb(e.a,e.b.ld),Qb(e.a,e.b.Cb,1E3/60))});this.b.ld=Rb(64,6);bb(b,this,M);db(b,this.reset.bind(this));F(this)};
h.reset=function(){this.b.za=0};h.Bc=function(){var a=this.b.za;this.b.za&=-129;return a};h.vd=function(a){this.b.za=a;a&64&&Qb(this.a,this.b.Cb,1E3/60);this.b.za=a&-129};h.Dc=function(){var a=this.a;return a.w&62337|a.$a<<5|a.ab<<1};h.xd=function(a){var b=this.a;a&=62337;if(b.w!=a){b.w=a;b.$a=a>>5&3;b.ab=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Fa!=c&&(b.Fa=c,Tb(b))}};h.Ec=function(){var a=this.a.Ba;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Fc=function(){return this.a.zb};h.Gc=function(){return this.a.Ga};
h.yd=function(a){var b=this.a;1170>b.Za&&(a&=-49);b.Ga!=a&&(b.Ga=a,b.Mb=a&16?4194303:262143,Tb(b))};h.fd=function(a){a=a>>1&63;var b=this.a.Ya[a>>1];return a&1?b>>16:b&65535};h.Yd=function(a,b){b=b>>1&63;var c=b>>1;this.a.Ya[c]=b&1?this.a.Ya[c]&65535|(a&63)<<16:this.a.Ya[c]&-65536|a&65534};h.Zc=function(a){return this.a.H[1][a>>1&7]};h.Rd=function(a,b){this.a.H[1][b>>1&7]=a&65295};h.Xc=function(a){return this.a.H[1][(a>>1&7)+8]};h.Pd=function(a,b){this.a.H[1][(b>>1&7)+8]=a&65295};
h.Yc=function(a){return this.a.Y[1][a>>1&7]};h.Qd=function(a,b){b=b>>1&7;this.a.Y[1][b]=a;this.a.H[1][b]&=65295};h.Wc=function(a){return this.a.Y[1][(a>>1&7)+8]};h.Od=function(a,b){b=(b>>1&7)+8;this.a.Y[1][b]=a;this.a.H[1][b]&=65295};h.Ac=function(a){return this.a.H[0][a>>1&7]};h.ud=function(a,b){this.a.H[0][b>>1&7]=a&65295};h.yc=function(a){return this.a.H[0][(a>>1&7)+8]};h.sd=function(a,b){this.a.H[0][(b>>1&7)+8]=a&65295};h.zc=function(a){return this.a.Y[0][a>>1&7]};
h.td=function(a,b){b=b>>1&7;this.a.Y[0][b]=a;this.a.H[0][b]&=65295};h.xc=function(a){return this.a.Y[0][(a>>1&7)+8]};h.rd=function(a,b){b=(b>>1&7)+8;this.a.Y[0][b]=a;this.a.H[0][b]&=65295};h.ed=function(a){return this.a.H[3][a>>1&7]};h.Xd=function(a,b){this.a.H[3][b>>1&7]=a&65295};h.cd=function(a){return this.a.H[3][(a>>1&7)+8]};h.Vd=function(a,b){this.a.H[3][(b>>1&7)+8]=a&65295};h.dd=function(a){return this.a.Y[3][a>>1&7]};h.Wd=function(a,b){b=b>>1&7;this.a.Y[3][b]=a;this.a.H[3][b]&=65295};
h.bd=function(a){return this.a.Y[3][(a>>1&7)+8]};h.Ud=function(a,b){b=(b>>1&7)+8;this.a.Y[3][b]=a;this.a.H[3][b]&=65295};h.La=function(a){a&=7;return this.a.B&2048?this.a.Ha[a]:this.a.g[a]};h.Na=function(a,b){b&=7;this.a.B&2048?this.a.Ha[b]=a:this.a.g[b]=a};h.Lc=function(){return this.a.B&49152?this.a.ma[0]:this.a.g[6]};h.Dd=function(a){this.a.B&49152?this.a.ma[0]=a:this.a.g[6]=a};h.Oc=function(){return this.a.g[7]};h.Gd=function(a){this.a.g[7]=a};
h.Ma=function(a){a&=7;return this.a.B&2048?this.a.g[a]:this.a.Ha[a]};h.Oa=function(a,b){b&=7;this.a.B&2048?this.a.g[b]=a:this.a.Ha[b]=a};h.Mc=function(){return 1==(this.a.B&49152)>>14?this.a.g[6]:this.a.ma[1]};h.Ed=function(a){1==(this.a.B&49152)>>14?this.a.g[6]=a:this.a.ma[1]=a};h.Nc=function(){return 3==(this.a.B&49152)>>14?this.a.g[6]:this.a.ma[3]};h.Fd=function(a){3==(this.a.B&49152)>>14?this.a.g[6]=a:this.a.ma[3]=a};h.vc=function(a){return this.a.Vb[a-65504>>1]};
h.pd=function(a,b){this.a.Vb[b-65504>>1]=a};h.Rb=function(a){return 65520==a?61183:0};h.Yb=function(){};h.ad=function(){return 1};h.Td=function(){};h.uc=function(){return this.a.M};h.od=function(){this.a.M=0};h.Cc=function(){return this.a.Ub};h.wd=function(a,b){b&1||(a&=255);this.a.Ub=a};h.Hc=function(a){return a?this.a.zb:0};h.zd=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.zb=a;b.u|=2};h.$c=function(a){return a?this.a.Ca&65280:0};h.Sd=function(a){this.a.Ca=a|255};
h.Kc=function(){return qb(this.a)};h.Cd=function(a){Tb(this.a,a&-1809|qb(this.a)&1808);this.a.u|=128};h.Xb=function(){};
h.pd=function(a,b){this.a.Vb[b-65504>>1]=a};h.Rb=function(a){return 65520==a?61183:0};h.Yb=function(){};h.ad=function(){return 1};h.Td=function(){};h.uc=function(){return this.a.M};h.od=function(){this.a.M=0};h.Cc=function(){return this.a.Ub};h.wd=function(a,b){b&1||(a&=255);this.a.Ub=a};h.Hc=function(a){return a?this.a.Ab:0};h.zd=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Ab=a;b.u|=2};h.$c=function(a){return a?this.a.Ca&65280:0};h.Sd=function(a){this.a.Ca=a|255};
h.Kc=function(){return rb(this.a)};h.Cd=function(a){Ub(this.a,a&-1809|rb(this.a)&1808);this.a.u|=128};h.Xb=function(){};
var N={},M=(N[61568]=[null,null,L.prototype.fd,L.prototype.Yd,"UNIMAP",64,1170],N[62592]=[null,null,L.prototype.Zc,L.prototype.Rd,"SISDR",8,1145],N[62608]=[null,null,L.prototype.Xc,L.prototype.Pd,"SDSDR",8,1145],N[62624]=[null,null,L.prototype.Yc,L.prototype.Qd,"SISAR",8,1145],N[62640]=[null,null,L.prototype.Wc,L.prototype.Od,"SDSAR",8,1145],N[62656]=[null,null,L.prototype.Ac,L.prototype.ud,"KISDR",8,1145],N[62672]=[null,null,L.prototype.yc,L.prototype.sd,"KDSDR",8,1145],N[62688]=[null,null,L.prototype.zc,
L.prototype.td,"KISAR",8,1145],N[62704]=[null,null,L.prototype.xc,L.prototype.rd,"KDSAR",8,1145],N[62798]=[null,null,L.prototype.Gc,L.prototype.yd,"MMR3",1,1145],N[65382]=[null,null,L.prototype.Bc,L.prototype.vd,"LKS"],N[65402]=[null,null,L.prototype.Dc,L.prototype.xd,"MMR0",1,1145],N[65404]=[null,null,L.prototype.Ec,L.prototype.Xb,"MMR1",1,1145],N[65406]=[null,null,L.prototype.Fc,L.prototype.Xb,"MMR2",1,1145],N[65408]=[null,null,L.prototype.ed,L.prototype.Xd,"UISDR",8,1145],N[65424]=[null,null,L.prototype.cd,
L.prototype.Vd,"UDSDR",8,1145],N[65440]=[null,null,L.prototype.dd,L.prototype.Wd,"UISAR",8,1145],N[65456]=[null,null,L.prototype.bd,L.prototype.Ud,"UDSAR",8,1145],N[65472]=[null,null,L.prototype.La,L.prototype.Na,"R0SET0"],N[65473]=[null,null,L.prototype.La,L.prototype.Na,"R1SET0"],N[65474]=[null,null,L.prototype.La,L.prototype.Na,"R2SET0"],N[65475]=[null,null,L.prototype.La,L.prototype.Na,"R3SET0"],N[65476]=[null,null,L.prototype.La,L.prototype.Na,"R4SET0"],N[65477]=[null,null,L.prototype.La,L.prototype.Na,
"R5SET0"],N[65478]=[null,null,L.prototype.Lc,L.prototype.Dd,"R6KERNEL"],N[65479]=[null,null,L.prototype.Oc,L.prototype.Gd,"R7KERNEL"],N[65480]=[null,null,L.prototype.Ma,L.prototype.Oa,"R0SET1",1,1145],N[65481]=[null,null,L.prototype.Ma,L.prototype.Oa,"R1SET1",1,1145],N[65482]=[null,null,L.prototype.Ma,L.prototype.Oa,"R2SET1",1,1145],N[65483]=[null,null,L.prototype.Ma,L.prototype.Oa,"R3SET1",1,1145],N[65484]=[null,null,L.prototype.Ma,L.prototype.Oa,"R4SET1",1,1145],N[65485]=[null,null,L.prototype.Ma,
L.prototype.Oa,"R5SET1",1,1145],N[65486]=[null,null,L.prototype.Mc,L.prototype.Ed,"R6SUPER",1,1145],N[65487]=[null,null,L.prototype.Nc,L.prototype.Fd,"R6USER",1,1145],N[65504]=[null,null,L.prototype.vc,L.prototype.pd,"CTRL",1,1170],N[65520]=[null,null,L.prototype.Rb,L.prototype.Yb,"LSIZE",1,1170],N[65522]=[null,null,L.prototype.Rb,L.prototype.Yb,"HSIZE",1,1170],N[65524]=[null,null,L.prototype.ad,L.prototype.Td,"SYSID",1,1170],N[65526]=[null,null,L.prototype.uc,L.prototype.od,"CPUERR",1,1170],N[65528]=
[null,null,L.prototype.Cc,L.prototype.wd,"MB",1,1170],N[65530]=[null,null,L.prototype.Hc,L.prototype.zd,"PIR"],N[65532]=[null,null,L.prototype.$c,L.prototype.Sd,"SL"],N[65534]=[null,null,L.prototype.Kc,L.prototype.Cd,"PSW"],N);M[65506]=M[65504];M[65508]=M[65504];M[65510]=M[65504];M[65512]=M[65504];M[65514]=M[65504];M[65516]=M[65504];M[65518]=M[65504];
Ha(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=B(d);switch(c.type){case "default":c=new L(c);C(c,d);break;case "pc11":c=new Ub(c);C(c,d);break;case "rl11":c=new O(c),C(c,d)}}});var Vb;if(Ya){var Wb=new ArrayBuffer(2);(new DataView(Wb)).setUint16(0,256,!0);Vb=256===(new Uint16Array(Wb))[0]}else Vb=!1;var Xb=Vb;
function I(a,b,c,d,e,f){this.h=a;this.id=Yb+=2;this.a=null;this.Ja=b;this.lb=c;this.size=d||0;this.type=e||Zb;this.j=e==$b;this.controller=null;xb(this);this.ta=this.fc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.a=a[0],ac(this,f.ac);else if(Ya)this.b=new ArrayBuffer(this.size),this.c=new DataView(this.b,0,this.size),this.o=new Uint8Array(this.b,0,this.size),this.s=new Uint16Array(this.b,0,this.size>>1),this.a=new Int32Array(this.b,0,this.size>>2),ac(this,Xb?bc:cc);else{a=this.a=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;ac(this,dc)}else ac(this)}var Zb=0,$b=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],Yb=0;
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ya)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.c.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ya)for(b=0;b<a.length;b++)this.c.setInt32(b<<2,a[b],!0);else this.a=a;return this.ta=!0}return!1},v:function(a,b){J(this.h,b,32);return 255},f:function(a,b,c){J(this.h,c,32)},w:function(a,b){return this.wb(a++,b++)|
this.wb(a,b)<<8},A:function(a,b,c){this.Db(a++,b&255,c++);this.Db(a,b>>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},na:function(a,b){a&1&&J(this.h,b,64);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ta=!0},wa:function(a,b,c){a&1&&J(this.h,c,64);c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|
Ha(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=B(d);switch(c.type){case "default":c=new L(c);C(c,d);break;case "pc11":c=new Vb(c);C(c,d);break;case "rl11":c=new O(c),C(c,d)}}});var Wb;if(Ya){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb;
function I(a,b,c,d,e,f){this.h=a;this.id=Zb+=2;this.a=null;this.Ja=b;this.nb=c;this.size=d||0;this.type=e||$b;this.j=e==ac;this.controller=null;yb(this);this.ta=this.fc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.a=a[0],bc(this,f.ac);else if(Ya)this.b=new ArrayBuffer(this.size),this.c=new DataView(this.b,0,this.size),this.o=new Uint8Array(this.b,0,this.size),this.s=new Uint16Array(this.b,0,this.size>>1),this.a=new Int32Array(this.b,0,this.size>>2),bc(this,Yb?cc:dc);else{a=this.a=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Eb=4,Gb=["NONE","RAM","ROM","VID","H/W"],Zb=0;
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ya)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.c.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ya)for(b=0;b<a.length;b++)this.c.setInt32(b<<2,a[b],!0);else this.a=a;return this.ta=!0}return!1},v:function(a,b){J(this.h,b,32);return 255},f:function(a,b,c){J(this.h,c,32)},w:function(a,b){return this.xb(a++,b++)|
this.xb(a,b)<<8},A:function(a,b,c){this.Db(a++,b&255,c++);this.Db(a,b>>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},na:function(a,b){a&1&&J(this.h,b,64);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ta=!0},wa:function(a,b,c){a&1&&J(this.h,c,64);c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|
b>>8);this.ta=!0},G:function(a,b){return this.I(a,b)},R:function(a,b){return this.Sb(a,b)},oa:function(a,b,c){this.j?this.f(a,b,c):this.Eb(a,b,c)},sa:function(a,b,c){this.j?this.f(a,b,c):this.Zb(a,b,c)},D:function(a){return this.o[a]},J:function(a){return this.o[a]},P:function(a,b){a&1&&J(this.h,b,64);return this.c.getUint16(a,!0)},aa:function(a,b){a&1&&J(this.h,b,64);return this.s[a>>1]},da:function(a,b){this.o[a]=b;this.ta=!0},pa:function(a,b){this.o[a]=b;this.ta=!0},ra:function(a,b,c){a&1&&J(this.h,
c,64);this.c.setUint16(a,b,!0);this.ta=!0},va:function(a,b,c){a&1&&J(this.h,c,64);this.s[a>>1]=b;this.ta=!0}};function xb(a,b,c){a.C=b;a.i=a.m=0;c&&((a.i=c.i)&&ec(a,gc,!1),(a.m=c.m)&&hc(a,gc,!1))}function hc(a,b,c){c&&a.m||(a.Db=!a.j&&b[1]||a.f,a.mb=!a.j&&b[3]||a.A);if(c||void 0===c)a.Eb=b[1]||a.f,a.Zb=b[3]||a.A}function ec(a,b,c){c&&a.i||(a.wb=b[0]||a.v,a.W=b[2]||a.w);if(c||void 0===c)a.I=b[0]||a.v,a.Sb=b[2]||a.w}function ac(a,b){b||(b=ic);ec(a,b,void 0);hc(a,b,void 0)}
var ic=[],dc=[I.prototype.N,I.prototype.qa,I.prototype.na,I.prototype.wa],gc=[I.prototype.G,I.prototype.oa,I.prototype.R,I.prototype.sa];if(Ya)var cc=[I.prototype.D,I.prototype.da,I.prototype.P,I.prototype.ra],bc=[I.prototype.J,I.prototype.pa,I.prototype.aa,I.prototype.va];
function jc(a,b){x.call(this,"CPU",a,jc);var c=a.multiplier||1;this.gb=a.cycles||b;this.qa=c;this.sb=Math.round(this.gb/1E4)/100;this.va=this.sb*this.qa;this.l.U=!1;this.l.Bb=!1;this.l.Ua=a.autoStart;this.l.fb=!1;this.cb=this.wa=0;this.eb=a.csStart;this.Qa=a.csInterval;this.Ra=a.csStop;this.I=[];this.Qb=this.kd.bind(this);F(this)}z(jc);var kc=["power","reset"];h=jc.prototype;
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.C=d;for(b=0;b<kc.length;b++)(c=this.o[kc[b]])&&this.j.$(null,kc[b],c);a=lc(a,"autoStart");null!=a&&(this.l.Ua="true"==a?!0:"false"==a?!1:!!a);F(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};h.ja=function(a,b){if(!b){if(a&&this.restore){mc(this);if(!this.restore(a))return!1;nc(this)}else this.reset();this.T("No debugger detected")}this.j.ka();return!0};h.ia=function(a){return a?this.save():!0};
h.Ua=function(){return this.l.Ua||void 0===this.o.run?(ib(this),!0):!1};h.Ib=function(){return 0};function nc(a){void 0===a.eb&&(a.eb=0);void 0===a.Qa&&(a.Qa=-1);void 0===a.Ra&&(a.Ra=-1);a.l.fb=0<=a.eb&&0<a.Qa;a.l.fb&&(a.cb=0,a.wa=a.eb-a.sa)}function lb(a,b){if(a.l.fb){var c=!1;a.cb=a.cb+a.Ib()|0;a.wa-=b;0>=a.wa&&(a.wa+=a.Qa,c=!0);0<=a.Ra&&a.Ra<=oc(a)&&(a.Qa=a.Ra=-1,nc(a),G(a),c=!0);c&&a.T(oc(a)+" cycles: checksum="+m(a.cb))}}
h.$=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.o[b]=c,!0;case "run":return this.o[b]=c,c.onclick=function(){var a;if(a=d.j)if(a=d.j,a.l.O)a=!0;else{var b=null,c,k=A(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.O);c++);c==k.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.jb?" (waiting for notification)":""))+".");a=!1}a&&(d.l.U?G(d):ib(d))},!0;case "speed":return this.o[b]=
c,!0;case "setSpeed":return this.o[b]=c,c.onclick=function(){pc(d,d.qa<<1,!0)},c.textContent=this.va.toFixed(2)+"Mhz",!0}return!1};h.ka=function(){var a=this.o.speed;a&&(a.textContent=this.l.U&&this.da?this.da.toFixed(2)+"Mhz":"Stopped")};function kb(a,b,c){a.sa+=b;c&&(a.pa=a.a=a.G=0)}function qc(a,b){var c=1;b&&1<a.qa&&a.da&&(c=a.da/a.sb);a.Nb=Math.round(1E3/30);a.hb=Math.floor(a.gb/30*c);b||(a.Sa=a.hb);a.ub=0}function oc(a){return a.sa+a.aa+a.pa-a.a}
function mc(a){a.da=0;a.Ob=0;a.sa=a.aa=a.pa=a.a=a.G=0;nc(a);pc(a,1)}function pc(a,b,c){if(void 0!==b){.8>a.da/a.va&&(b=1);a.qa=b;b=a.sb*a.qa;if(a.va!=b){a.va=b;b=a.va.toFixed(2)+"Mhz";var d=a.o.setSpeed;d&&(d.textContent=b);a.T("target speed: "+b)}c&&a.j&&rc(a.j)}kb(a,a.aa);a.aa=0;a.R=ra();a.oa=0;qc(a)}function Nb(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function Pb(a,b,c){0<=b&&b<a.I.length&&0>a.I[b][0]&&(c=a.gb*a.qa/1E3*c|0,a.I[b][0]=c+sc(a))}
function jb(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function sc(a,b){var c=a.pa-=a.a;a.a=a.G=0;b&&(a.pa=0);return c}
h.kd=function(){if(this.l.U){this.ub>=this.gb&&qc(this,!0);this.Ta=0;this.bb=ra();if(this.oa){var a=this.bb-this.oa;a>this.Nb&&(this.R+=a,this.R>this.bb&&(this.R=this.bb))}try{do{for(var b,c=this.l.fb?1:this.hb,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.kb(b)}catch(f){if("number"!=typeof f)throw f;}b=sc(this,!0);this.Ta+=b;this.aa+=b;lb(this,b);jb(this,b);this.Sa-=b;if(0>=this.Sa){this.Sa+=this.hb;15<=++this.Ob&&(this.j&&this.j.ka(),this.Ob=0);break}}while(this.l.U)}catch(f){G(this);
this.j&&this.j.stop(ra(),oc(this));Xa(this,f.stack||f.message);return}if(this.l.U){a=setTimeout;b=this.Qb;this.oa=ra();c=this.Nb;this.Ta&&(c=Math.round(c*this.Ta/this.hb));c-=this.oa-this.bb;if(d=this.oa-this.R)this.da=Math.round(this.aa/(10*d))/100,864E5<=d&&(this.sa=0,pc(this));if(0>c||this.da<this.va)-1E3>c&&(this.R-=c),c=0;this.ub+=this.Ta;this.oa+=c;a(b,c)}}};
function ib(a){var b;a.l.error?(a.T(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.U)a.T(a.toString()+" busy");else{pc(a);a.l.U=!0;a.l.Bb=!0;if(b=a.o.run)b.textContent="Halt";a.j&&a.j.start(a.R,oc(a));setTimeout(a.Qb,0)}}h.kb=function(){return 0};function G(a){var b=!1;if(a.l.U){sc(a);kb(a,a.aa);a.aa=0;a.l.U=!1;if(b=a.o.run)b.textContent="Run";a.j&&a.j.stop(ra(),oc(a));b=!0}a.l.complete=void 0;return b}
function tc(a){this.Za=+a.model||1170;this.Jb=a.addrReset||0;jc.call(this,a,6666667);this.decode=1120==this.Za?uc.bind(this):vc.bind(this);wc(this);this.ra=0;this.N=null;this.l.complete=!1}z(tc,jc);h=tc.prototype;h.reset=function(){this.status("model "+this.Za);this.l.U&&G(this);wc(this);mc(this);this.l.error=!1;this.parent.reset.call(this)};
function wc(a){a.m=65536;a.f=32768;a.i=65535;a.s=32768;a.B=15;a.g=[0,0,0,0,0,0,0,a.Jb];a.Ha=[0,0,0,0,0,0];a.ma=[0,0,0,0];a.v=0;a.ab=0;a.ic=[4,2,0,1];a.H=[[0,0,0,0,0,0,0,0,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]];a.Y=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ya=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0];a.Vb=[0,0,0,0,0,0,0,0];a.Ub=0;a.u=0;a.A=a.D=0;a.c=a.b=a.rb=0;a.Ia=-1;hb(a)}function hb(a){a.Ca=255;a.M=0;a.zb=0;a.w=0;a.Ba=0;a.yb=0;a.Ga=0;a.Fa=0;a.$a=0;a.Mb=262143;a.N=null;a.h&&Sb(a)}function Sb(a){a.Fa?(a.P=65536,a.J=a.hc,a.W=a.gd,a.mb=a.Zd,zb(a.h,a.Ga&16?22:18)):(a.P=0,a.J=a.gc,a.W=a.Tb,a.mb=a.$b,zb(a.h,16))}function xc(a,b,c){a.Jb=b;P(a,b);!c&&a.C&&(G(a)||a.C.ka())}h.Ib=function(){return 0};
h.save=function(){var a=new Q(this);a.set(0,[]);a.set(1,[this.sa,this.qa]);a.set(2,Kb(this.h));return a.data()};h.restore=function(a){var b=a[1];this.sa=b[1];pc(this,b[3]);a:{b=this.h;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.D){for(var f=0,g=Array(b.D),k=0;k<e.length-1;)for(var l=e[k++],n=e[k++];l--;)g[f++]=n;e=g}f=b.h[d];if(!f||!f.restore(e)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function R(a){return a.m&65536?1:0}
h.ya=function(){return this.s&32768?8:0};function yc(a){var b=a.g[7];a.w&57344||(a.Ba=0,a.yb=b);a.g[7]=b+2&65535;return a.W(b)}function zc(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function P(a,b){a.g[7]=b&65535}function Qb(a,b){return{md:a,Ka:b,next:null}}function Ob(a,b){if(b!=a.N){var c=a.N;if(!c||c.Ka<=b.Ka)b.next=c,a.N=b;else{do{var d=c.next;if(!d||d.Ka<=b.Ka){b.next=d;c.next=b;break}c=d}while(c)}}a.u|=2}function qb(a){return a.B=a.B&63728|a.ya()|(a.i&65535?0:4)|(a.f&32768?2:0)|R(a)}
function Tb(a,b){a.s=b<<12;a.i=~b&4;a.f=b<<14;a.m=b<<16;if((b^a.B)&2048)for(var c=a.Ha.length;0<=--c;){var d=a.g[c];a.g[c]=a.Ha[c];a.Ha[c]=d}a.v=b>>14&3;c=a.B>>14&3;a.v!=c&&(a.ma[c]=a.g[6],a.g[6]=a.ma[a.v]);a.B=b;a.u|=2}function S(a,b){a.u&128||(a.s=a.i=b,a.f=0)}function Ac(a,b,c){a.u&128||(a.s=a.i=a.m=b,a.f=c||0)}function Bc(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^b)&(d^b))}function Cc(a,b){a.u&128||(a.s=a.i=a.m=b,a.f=a.s^a.m>>1)}function Dc(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^d)&(d^b))}
function K(a,b,c){if(!a.ra){var d=!1;0>a.Ia?a.Ia=qb(a):a.v||(b=4,d=!0);a.w&57344||(a.Ba=63222,a.yb=b);a.v=0;var e=a.W(b|a.P),f=a.W(b+2&65535|a.P);Tb(a,f&-12289|a.Ia>>2&12288);d&&(a.M|=4,a.g[6]=4);Ec(a,a.Ia);Ec(a,a.g[7]);P(a,e);a.u&=-113;a.Ia=-1;a.u|=8;if(26!=c)throw b;}}function Fc(a){var b=Gc(a),c=Gc(a)&-1793;a.B&49152&&(c=c&-225|a.B&63712);P(a,b);Tb(a,c);a.u&=-17}
function Hb(a,b){var c=b>>13&31;31>c&&a.Ga&32&&(b=a.Ya[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
function Hc(a,b,c){var d,e,f,g=0;d=b>>13;a.Ga&a.ic[a.v]||(d&=7);e=a.H[a.v][d];f=(a.Y[a.v][d]<<6)+(b&8191)&a.Mb;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.H[a.v][d]=e;if(4194170!==f||a.v)a.$a=a.v,a.ab=d;b=!1;g&&(g&57344&&(0<=a.Ia&&(g|=128),a.w&57344||(a.w=a.w|g|a.$a<<5|a.ab<<1),b=!0),a.w&61440||!(4191360>
f||4194239<f)||(a.w|=4096,a.w&512&&(a.u|=32)),b&&K(a,168,16));return f}function Ic(a,b,c){b&1&&a.a--;a=a.h;c&=255;3932160<=b&&(b=Hb(a.a,b));a.h[(b&a.Aa)>>>a.c].Db(b&a.j,c&255,b)}function Gc(a){var b=a.W(a.g[6]|a.P);a.g[6]=a.g[6]+2&65535;return b}function Ec(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.w&57344||(a.Ba=a.Ba<<8|246);!a.v&&c<=a.Ca&&4<c&&(c<=a.Ca-32?(a.M|=4,a.g[6]=4,K(a,4,18)):(a.M|=8,a.u|=4));a.mb(c,b)}
function Jc(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return K(a,4,20),0;case 1:return 6===c&&!a.v&&d&4&&(a.g[6]<=a.Ca||65534<=a.g[6])&&(a.g[6]<=a.Ca-32||65534<=a.g[6]?(a.M|=4,a.g[6]=4,K(a,4,22)):(a.M|=8,a.u|=64)),a.a-=3,7===c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.g[c];7!==c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;7!==c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!==c&&(e|=g);e=a.W(e)|g;a.a-=
8;break;case 6:return e=a.W(zc(a,2)),e=e+a.g[c]&65535|g,a.a-=6,e;case 7:return e=a.W(zc(a,2)),e=e+a.g[c]&65535,e=a.W(e|a.P)|g,a.a-=10,e}a.g[c]=a.g[c]+f&65535;!g||a.w&57344||(a.Ba=a.Ba<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.g[6]<=a.Ca||65534<=a.g[6])&&(a.g[6]<=a.Ca-32?(a.M|=4,a.g[6]=4,K(a,4,24)):(a.M|=8,a.u|=64));return e}h.tb=function(a){if(!this.Fa)return this.h.tb(a);this.ra++;a=this.Tb(Hc(this,a,2));this.ra--;return a};
h.Xa=function(a,b){this.Fa?(this.ra++,Ic(this,Hc(this,a,5),b),this.ra--):this.h.Xa(a,b)};h.Ab=function(a,b){this.Fa?(this.ra++,this.$b(Hc(this,a,4),b),this.ra--):this.h.Ab(a,b)};h.gc=function(a,b,c){return Jc(this,a,b,c)};h.hc=function(a,b,c){return Hc(this,Jc(this,a,b,c),c)};h.Tb=function(a){return Ib(this.h,a)};h.gd=function(a){return Ib(this.h,Hc(this,a,2))};h.$b=function(a,b){Jb(this.h,a,b&65535)};h.Zd=function(a,b){Jb(this.h,Hc(this,a,4),b)};
function Kc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Jc(a,b,d,2),c&65536||61440!==(a.B&61440)&&(d&=65535),a.v=a.B>>12&3,c=a.W(d|c&a.P),a.v=a.B>>14&3):c=6!=d||(a.B>>2&12288)===(a.B&12288)?a.g[d]:a.ma[a.B>>12&3];return c}function Lc(a,b,c,d){a.w&57344||(a.Ba=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Jc(a,b,e,4),c&65536||(e&=65535),a.v=a.B>>12&3,e=Hc(a,e|c&65536,4),a.v=a.B>>14&3,Jb(a.h,e,d)):6!=e||(a.B>>2&12288)===(a.B&12288)?a.g[e]=d:a.ma[a.B>>12&3]=d}
function Mc(a,b){b>>=6;var c=a.D=b&7;(b=a.A=(b&56)>>3)?(c=a.J(b,c,3),a=Gb(a.h,c)):a=a.g[c]&255;return a}function Nc(a,b){b>>=6;var c=a.D=b&7;return(b=a.A=(b&56)>>3)?Ib(a.h,a.J(b,c,2)):a.g[c]}function Oc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Jc(a,b,c,8)}function Pc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=Gb(a.h,c)):a=a.g[c]&255;return a}function Qc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?Ib(a.h,a.J(b,c,2)):a.g[c]}
function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.rb=a.J(b,e,7),Ic(a,e,d.call(a,c,Gb(a.h,e)))):a.g[e]=a.g[e]&65280|d.call(a,c,a.g[e])}function U(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),Jb(a.h,e,d.call(a,c,Ib(a.h,e)))):a.g[e]=d.call(a,c,a.g[e])}function Rc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?Ic(a,a.J(b,e,5),c):a.g[e]=c?d&1?c<<24>>24&65535:a.g[e]&-256|c&255:a.g[e]&-256;return c}
function Sc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?Jb(a.h,a.J(b,d,4),c):a.g[d]=c&65535;return c}function V(a,b,c){c&&(P(a,a.g[7]+(b<<24>>23)),a.a-=2);a.a-=3}
h.kb=function(a){this.l.complete=!0;var b=a?this.l.Bb?0:1:-1;this.l.Bb=!1;this.pa=this.a=a;do{if(this.u){this.u&112&&(this.u&32?K(this,168,28):this.u&64?K(this,4,30):this.u&16&&K(this,12,32),this.u&=-113);if(a=this.u&7){a=!1;if(this.u&2){this.u&=-3;var c=160,d=(this.zb&224)>>5,e=this.N&&this.N.Ka>d?this.N:null;e&&(c=e.md,d=e.Ka);d>(this.B&224)>>5?(this.u&4&&(zc(this,2),this.u&=-5),K(this,c,26),d=!0):d=!1;if(d){if(e)if(a=e,e=this.N,e==a)this.N=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=
d}a=!0}}else this.u&1&&this.u++;a=a&&0>b}if(a)break}this.u=this.u&7|this.B&16;this.decode(yc(this))}while(0<this.a);return this.l.complete?this.pa-this.a:void 0===this.l.complete?0:-1};Ha(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new tc(d);C(d,c)}});function Tc(a,b){var c=b+a;Bc(this,c,a,b);return c&65535}function Uc(a,b){var c=b+a;Bc(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){a=b<<1;Cc(this,a);return a&65535}
function Wc(a,b){a=b<<1;Cc(this,a<<8);return a&255}function Xc(a,b){a=b&32768|b>>1|b<<16;Cc(this,a);return a&65535}function Yc(a,b){a=b&2048|b>>1|b<<8;Cc(this,a<<8);return a&255}function Zc(a,b){a=b&~a;S(this,a);return a}function $c(a,b){a=b&~a;S(this,a<<8);return a}function ad(a,b){a|=b;S(this,a);return a}function bd(a,b){a|=b;S(this,a<<8);return a}function cd(a,b){a=~b|65536;Ac(this,a);return a&65535}function dd(a,b){a=~b|256;Ac(this,a<<8);return a&255}
function ed(a,b){a=b-a;this.u&128||(this.s=this.i=a,this.f=b&(b^a));return a&65535}function fd(a,b){a=b-a;var c=a<<8;b<<=8;this.u&128||(this.s=this.i=c,this.f=b&(b^c));return a&255}function gd(a,b){a=b+a;this.u&128||(this.s=this.i=a,this.f=a&(b^a));return a&65535}function hd(a,b){a=b+a;var c=a<<8;this.u&128||(this.s=this.i=c,this.f=c&(b<<8^c));return a&255}function id(a,b){a=-b;Ac(this,a,a&b&32768);return a&65535}function jd(a,b){a=-b;Ac(this,a<<8,(a&b&128)<<8);return a&255}
function kd(a,b){a=b<<1|this.m>>16&1;Cc(this,a);return a&65535}function ld(a,b){a=b<<1|this.m>>16&1;Cc(this,a<<8);return a&255}function md(a,b){a=(this.m&65536|b)>>1|b<<16;Cc(this,a);return a&65535}function nd(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;Cc(this,a<<8);return a&255}function od(a,b){var c=b-a;Dc(this,c,a,b);return c&65535}function pd(a,b){var c=b-a;Dc(this,c<<8,a<<8,b<<8);return c&255}function qd(a,b){this.u&128||(this.s=this.i=b&65280,this.f=this.m=0);return(b<<8|b>>8)&65535}
function rd(a,b){a^=b;S(this,a);return a&65535}function sd(a){U(this,a,Nc(this,a),Tc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function td(a){var b=Qc(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.m=this.f=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.m=c<<17-b,c>>=b;else if(b)if(16<b)this.f=c,c=0;else{this.m=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.f=32768)}this.g[a]=c&65535;this.s=this.i=c;this.a-=(this.c?6:7)+b}
function ud(a){var b=Qc(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.m=this.f=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.m=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.m=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.f=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.s=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function vd(a){V(this,a,!R(this))}function wd(a){V(this,a,R(this))}
function xd(a){U(this,a,Nc(this,a),Zc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function yd(a){T(this,a,Mc(this,a),$c);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function zd(a){U(this,a,Nc(this,a),ad);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function Ad(a){T(this,a,Mc(this,a),bd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}
function Bd(a){S(this,Nc(this,a)&Qc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}function Cd(a){S(this,(Mc(this,a)&Pc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}function Dd(a){V(this,a,this.i&65535?0:4)}function Ed(a){V(this,a,!this.ya()==!(this.f&32768))}function Fd(a){V(this,a,!!(this.i&65535)&&!this.ya()==!(this.f&32768))}function Gd(a){V(this,a,!R(this)&&!!(this.i&65535))}
function Hd(a){V(this,a,(this.i&65535?0:4)||!this.ya()!=!(this.f&32768))}function Id(a){V(this,a,R(this)||(this.i&65535?0:4))}function Jd(a){V(this,a,!this.ya()!=!(this.f&32768))}function Kd(a){V(this,a,this.ya())}function Ld(a){V(this,a,!!(this.i&65535))}function Md(a){V(this,a,!this.ya())}function Nd(){K(this,12,1);this.a-=5}function Od(a){V(this,a,!0)}function Pd(a){V(this,a,!(this.f&32768))}function Qd(a){V(this,a,this.f&32768?2:0)}
function W(a){a&1&&(this.m=0);a&2&&(this.f=0);a&4&&(this.i=1);a&8&&(this.s=0);this.a-=5}function Rd(a){var b=Nc(this,a);a=Qc(this,a);Dc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}function Sd(a){var b=Mc(this,a)<<8;a=Pc(this,a)<<8;Dc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}
function Td(a){var b=Qc(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.m=this.f=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.i=d>>16|d,this.s=d>>16):(this.f=32768,this.i=d>>15|d,this.s=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.a-=53}else this.i=this.s=0,this.f=32768,this.m=65536,this.a-=7}function Ud(){K(this,24,2);this.a-=25}
function Vd(){this.B&49152?(this.M|=128,K(this,4,3)):this.C?this.C.b():G(this);this.a-=7}function Wd(){K(this,16,4);this.a-=25}var Xd=[0,7,7,10,7,11,9,13];function Yd(a){this.G=this.a;P(this,Oc(this,a));this.a=this.G-Xd[this.c]}var Zd=[0,14,14,17,14,18,16,20];function $d(a){this.G=this.a;var b=Oc(this,a);a=a>>6&7;Ec(this,this.g[a]);this.g[a]=this.g[7];P(this,b);this.a=this.G-Zd[this.c]}var ae=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function be(a){var b=Nc(this,a);this.G=this.a;S(this,Sc(this,a,b));this.a=this.G-ae[(this.A?8:0)+this.c]+(7!=this.b||this.c?0:2)}function ce(a){var b=Mc(this,a);S(this,Rc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}var de=[7,13,13,17,14,18,17,21];
function ee(a){var b=Qc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.u&128||(this.s=b>>16,this.i=this.s|b,this.f=0,this.m=-32768>b||32767<b?65536:0);this.a-=23}function fe(){this.a-=5}function ge(){this.B&49152||(this.h.reset(),hb(this));this.a-=667}function he(){Fc(this);this.u|=this.B&16;this.a-=13}
function ie(a){if(a&8)K(this,8,6);else{var b=Gc(this);a&=7;7==a?P(this,b):(P(this,this.g[a]),this.g[a]=b);this.a-=9}}function X(a){a&1&&(this.m=65536);a&2&&(this.f=32768);a&4&&(this.i=0);a&8&&(this.s=32768);this.a-=5}function je(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)P(this,this.g[7]-((a&63)<<1)),this.a+=1;this.a-=6}function ke(a){U(this,a,Nc(this,a),od);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}
function le(a){U(this,a,0,qd);this.a-=this.c?9:3+(7==this.b?2:0)}function me(){K(this,28,5);this.a-=5}function ne(){this.u&4||this.j&&this.j.ka();this.u|=4;zc(this,-2);this.a-=3}function oe(a){U(this,a,Nc(this,a),rd);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){K(this,8,6)}function uc(a){pe[a>>12].call(this,a)}function qe(a){re[a>>6&3].call(this,a)}function se(a){te[a>>6&3].call(this,a)}function ue(a){ve[a>>6&3].call(this,a)}function we(a){xe[a&15].call(this,a)}
function ye(a){ze[a&15].call(this,a)}function Ae(a){Be[a>>6&3].call(this,a)}function Ce(a){De[a>>6&3].call(this,a)}function Ee(a){Fe[a>>6&3].call(this,a)}
var pe=[function(a){Ge[a>>8&15].call(this,a)},be,Rd,Bd,xd,zd,sd,Y,function(a){He[a>>8&15].call(this,a)},ce,Sd,Cd,yd,Ad,ke,Y],Ge=[function(a){Ie[a>>4&15].call(this,a)},Od,Ld,Dd,Ed,Jd,Fd,Hd,$d,$d,qe,se,ue,Y,Y,Y],re=[function(a){Ac(this,Sc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,cd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,gd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,ed);this.a-=this.c?9:3+(7==this.b?2:0)}],te=[function(a){U(this,a,0,
id);this.a-=this.c?11:6},function(a){U(this,a,R(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,R(this)?1:0,od);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Qc(this,a);Ac(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],ve=[function(a){U(this,a,0,md);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,kd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}],
Ie=[function(a){Je[a&15].call(this,a)},Y,Y,Y,Yd,Yd,Yd,Yd,ie,Y,we,ye,le,le,le,le],Je=[Vd,ne,he,Nd,Wd,ge,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],xe=[fe,function(){this.m=0;this.a-=5},function(){this.f=0;this.a-=5},W,function(){this.i=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],ze=[fe,function(){this.m=65536;this.a-=5},function(){this.f=32768;this.a-=5},X,function(){this.i=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],He=[Md,Kd,Gd,Id,Pd,Qd,vd,wd,Ud,me,Ae,Ce,Ee,Y,Y,Y],Be=[function(a){Ac(this,
Rc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,dd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,hd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,fd);this.a-=this.c?9:3+(7==this.b?2:0)}],De=[function(a){T(this,a,0,jd);this.a-=this.c?11:6},function(a){T(this,a,R(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,R(this)?1:0,pd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Pc(this,a);Ac(this,a<<8);this.a-=this.c?4:3+(7==this.b?
2:0)}],Fe=[function(a){T(this,a,0,nd);this.a-=this.c?9+(this.rb&1):3+(7==this.b?2:0)},function(a){T(this,a,0,ld);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Yc);this.a-=this.c?9+(this.rb&1):3+(7==this.b?2:0)},function(a){T(this,a,0,Wc);this.a-=this.c?9:3+(7==this.b?2:0)}];function vc(a){Ke[a>>12].call(this,a)}
var Ke=[function(a){Le[a>>8&15].call(this,a)},be,Rd,Bd,xd,zd,sd,function(a){Me[a>>8&15].call(this,a)},function(a){Ne[a>>8&15].call(this,a)},ce,Sd,Cd,yd,Ad,ke,Y],Le=[function(a){Oe[a>>4&15].call(this,a)},Od,Ld,Dd,Ed,Jd,Fd,Hd,$d,$d,qe,se,ue,function(a){Pe[a>>6&3].call(this,a)},Y,Y],Pe=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.W(a|this.P);P(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.a-=8},function(a){a=Kc(this,a,0);Ec(this,a);S(this,a);this.a-=11},function(a){var b=Gc(this);this.G=
this.a;Lc(this,a,0,b);S(this,b);this.a=this.G-de[this.c]},function(a){S(this,Sc(this,a,this.ya?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],Oe=[function(a){Qe[a&15].call(this,a)},Y,Y,Y,Yd,Yd,Yd,Yd,ie,function(a){a&8?(this.B&49152||(this.B=this.B&-2017|(a&7)<<5,this.u|=1),this.a-=5):K(this,8,6)},we,ye,le,le,le,le],Qe=[Vd,ne,he,Nd,Wd,ge,function(){Fc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],Me=[ee,ee,Td,Td,td,td,ud,ud,oe,oe,Y,Y,Y,Y,je,je],Ne=[Md,Kd,Gd,Id,Pd,Qd,vd,wd,Ud,me,Ae,Ce,Ee,function(a){Re[a>>6&
3].call(this,a)},Y,Y],Re=[Y,function(a){a=Kc(this,a,65536);Ec(this,a);S(this,a);this.a-=11},function(a){var b=Gc(this);this.G=this.a;Lc(this,a,65536,b);S(this,b);this.a=this.G-de[this.c]},Y];
function Se(a){x.call(this,"ROM",a,Se);this.X=this.b=null;this.i=a.addr;this.c=a.size;this.f=a.alias;this.j=a.file;this.m=q(this.j);if(this.j){a=this.j;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(Sa(c.na,a,b),(a=ta(a,b))?(c.b=a.K,c.X=a.X):c.j=null);Te(c)})}}z(Se);Se.prototype.ha=function(a,b,c,d){this.h=b;this.a=c;this.C=d;Te(this)};
Se.prototype.ja=function(){this.X&&(this.C&&this.C.a(this.id,this.i,this.c,this.X),delete this.X);return!0};Se.prototype.ia=function(){return!0};
function Te(a){if(!Wa(a)){if(a.j){if(!a.b||!a.h)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c)Xa(a,"ROM size ("+m(a.b.length,8,!0)+") does not match specified size ("+m(a.c,8,!0)+")");else{var b;b=a.i;if(Cb(a.h,b,a.c,$b)){var c;for(c=0;c<a.b.length;c++)a.h.Xa(b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Bb(d.h,d.i,d.c);Ab(d.h,e,d.c,f)}delete a.b}}}F(a)}}
Ha(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Se(d);C(d,c)}});
function Ue(a){x.call(this,"RAM",a,Ue);this.X=this.c=null;this.j=a.addr;this.i=a.size;this.fa=a.load;this.ea=a.exec;this.f=!1;this.b=a.file;this.m=q(this.b);if(this.b){a=this.b;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(Sa(c.na,a,b),(a=ta(a,b))?(c.c=a.K,c.X=a.X,null==c.fa&&(c.fa=a.fa),null==c.ea&&(c.ea=a.ea)):c.b=null);Ve(c)})}}z(Ue);
Ue.prototype.ha=function(a,b,c,d){this.h=b;this.a=c;this.C=d;Ve(this)};Ue.prototype.ja=function(){this.X&&(this.C&&this.C.a(this.id,this.j,this.i,this.X),delete this.X);return!0};Ue.prototype.ia=function(){return!0};function Ve(a){if(a.h&&(!a.f&&a.i&&Cb(a.h,a.j,a.i,1)&&(a.f=!0),!Wa(a))){if(!a.f)u("No RAM allocated");else if(a.b){if(!a.c||!a.h)return;We(a,a.c,a.fa,a.ea,a.j)}F(a)}}
Ue.prototype.reset=function(){if(this.f){for(var a=this.h,b=this.j,c=this.i,d=b&a.j,b=b>>>a.c;0<c&&b<a.h.length;){var e=a.h[b],f=c,g,d=d||0;void 0===f&&(f=e.size);if(Ya)for(g=d;f--&&g<e.o.length;g++)e.o[g]=0;else for(g=d;f--&&g<e.size;g++)e.Eb(d,0,e.Ja+d);c-=a.b;b++;d=0}this.c&&We(this,this.c,this.fa,this.ea,this.j,!0)}};
function We(a,b,c,d,e,f){var g=!1;if(null==c)for(var k=0;k<b.length-1;){var l=b[k]&255|(b[k+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(k+6>=b.length)break;for(var k=k+2,n=b[k++]&255|(b[k++]&255)<<8,p=b[k++]&255|(b[k++]&255)<<8,l=l+((n&255)+(n>>8)+(p&255)+(p>>8)),t=k,w=n-=6;0<n&&k<b.length;)l+=b[k++]&255,n--;if(n||k>=b.length)break;l+=b[k++]&255;if(l&255)break;if(w)for(;w--;)a.a.Xa(p++,b[t++]&255);else p&1?G(a.a):xc(a.a,p,f);g=!0}else k++;else k+=2}if(!g&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.a.Xa(c+
e,b[e]);null!=d&&xc(a.a,d,f);g=!0}return g}Ha(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ue(d);C(d,c)}});function Xe(a){x.call(this,"Keyboard",a,Xe);F(this)}z(Xe);Xe.prototype.$=function(){return!1};Xe.prototype.ha=function(a,b,c,d){this.j=a;this.a=c;this.C=d};Ha(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Xe(d);C(d,c)}});
function Z(a){this.D=a.baudReceive||9600;this.I=a.baudTransmit||9600;this.R=a.upperCase;this.f=this.m=null;this.J=a.tabSize;this.G=a.charBOL;this.s=0;x.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.m="";else{var c;a=Ye;b&&(void 0===c&&(c="Panel"),(c=Ua(c,this.id))&&(b=c.o[b])&&this.$(null,a,b))}this.v=this.A=null;this.exports={connect:this.Kb,receiveData:this.xb}}z(Z);var Ye="buffer";h=Z.prototype;
h.$=function(a,b,c){var d=this;switch(b){case Ye:return this.o[b]=this.f=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.xb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.xb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;var e=this;this.aa=Qb(48,4);this.N=Nb(this.a,function(){e.b&128||!e.i.length||(e.w=e.i.shift()&255,e.R&&97<=e.w&&122>e.w&&(e.w-=32),e.b|=128,e.b&64&&Ob(e.a,e.aa))});this.da=Qb(52,4);this.P=Nb(this.a,function(){e.c|=128;e.c&64&&Ob(e.a,e.da)});ab(b,this,Ze);F(this)};
h.Kb=function(){if(!this.v){var a=lc(this.j,"connection");if(a){var b=a.split("->");if(2==b.length){var c=pa(b[0]);if(c!=this.Pa)return;b=pa(b[1]);if(this.v=Ta(b)){var d=this.v.exports;if(d){var e=d.connect;e&&e.call(this.v);if(this.A=d.receiveData){this.status(this.na+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.ja=function(a,b){if(!b)if(this.Kb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
h.ia=function(a){return a?this.save():!0};h.reset=function(){$e(this)};h.save=function(){var a=new Q(this);a.set(0,[]);return a.data()};h.restore=function(){return $e(this)};function $e(a){a.w=0;a.b=0;a.c=128;a.i=[];return!0}h.xb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.i.push(a.charCodeAt(b));else this.i=this.i.concat(a);Pb(this.a,this.N,1E3/Math.round(this.D/10));return!0};h.Qc=function(){return this.b&65534};
h.Id=function(a){this.b=this.b&-112|a&111};h.Pc=function(){this.b&=-129;0<this.i.length&&Pb(this.a,this.N,1E3/Math.round(this.D/10));return this.w};h.Hd=function(){};h.jd=function(){return this.c};h.ae=function(a){128==(this.c&192)&&a&64&&Pb(this.a,this.P,1E3/Math.round(this.I/10));this.c=this.c&-70|a&69};h.hd=function(){return 0};
c,64);this.c.setUint16(a,b,!0);this.ta=!0},va:function(a,b,c){a&1&&J(this.h,c,64);this.s[a>>1]=b;this.ta=!0}};function yb(a,b,c){a.C=b;a.i=a.m=0;c&&((a.i=c.i)&&fc(a,hc,!1),(a.m=c.m)&&ic(a,hc,!1))}function ic(a,b,c){c&&a.m||(a.Db=!a.j&&b[1]||a.f,a.ob=!a.j&&b[3]||a.A);if(c||void 0===c)a.Eb=b[1]||a.f,a.Zb=b[3]||a.A}function fc(a,b,c){c&&a.i||(a.xb=b[0]||a.v,a.W=b[2]||a.w);if(c||void 0===c)a.I=b[0]||a.v,a.Sb=b[2]||a.w}function bc(a,b){b||(b=jc);fc(a,b,void 0);ic(a,b,void 0)}
var jc=[],ec=[I.prototype.N,I.prototype.qa,I.prototype.na,I.prototype.wa],hc=[I.prototype.G,I.prototype.oa,I.prototype.R,I.prototype.sa];if(Ya)var dc=[I.prototype.D,I.prototype.da,I.prototype.P,I.prototype.ra],cc=[I.prototype.J,I.prototype.pa,I.prototype.aa,I.prototype.va];
function kc(a,b){x.call(this,"CPU",a,kc);var c=a.multiplier||1;this.gb=a.cycles||b;this.qa=c;this.ub=Math.round(this.gb/1E4)/100;this.va=this.ub*this.qa;this.l.U=!1;this.l.Bb=!1;this.l.Ua=a.autoStart;this.l.fb=!1;this.cb=this.wa=0;this.eb=a.csStart;this.Qa=a.csInterval;this.Ra=a.csStop;this.I=[];this.Qb=this.kd.bind(this);F(this)}z(kc);var lc=["power","reset"];h=kc.prototype;
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.C=d;for(b=0;b<lc.length;b++)(c=this.o[lc[b]])&&this.j.$(null,lc[b],c);a=mc(a,"autoStart");null!=a&&(this.l.Ua="true"==a?!0:"false"==a?!1:!!a);F(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};h.ja=function(a,b){if(!b){if(a&&this.restore){nc(this);if(!this.restore(a))return!1;oc(this)}else this.reset();this.T("No debugger detected")}this.j.ka();return!0};h.ia=function(a){return a?this.save():!0};
h.Ua=function(){return this.l.Ua||void 0===this.o.run?(jb(this),!0):!1};h.Ib=function(){return 0};function oc(a){void 0===a.eb&&(a.eb=0);void 0===a.Qa&&(a.Qa=-1);void 0===a.Ra&&(a.Ra=-1);a.l.fb=0<=a.eb&&0<a.Qa;a.l.fb&&(a.cb=0,a.wa=a.eb-a.sa)}function mb(a,b){if(a.l.fb){var c=!1;a.cb=a.cb+a.Ib()|0;a.wa-=b;0>=a.wa&&(a.wa+=a.Qa,c=!0);0<=a.Ra&&a.Ra<=pc(a)&&(a.Qa=a.Ra=-1,oc(a),G(a),c=!0);c&&a.T(pc(a)+" cycles: checksum="+m(a.cb))}}
h.$=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.o[b]=c,!0;case "run":return this.o[b]=c,c.onclick=function(){var a;if(a=d.j)if(a=d.j,a.l.O)a=!0;else{var b=null,c,k=A(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.O);c++);c==k.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.jb?" (waiting for notification)":""))+".");a=!1}a&&(d.l.U?G(d):jb(d))},!0;case "speed":return this.o[b]=
c,!0;case "setSpeed":return this.o[b]=c,c.onclick=function(){qc(d,d.qa<<1,!0)},c.textContent=this.va.toFixed(2)+"Mhz",!0}return!1};h.ka=function(){var a=this.o.speed;a&&(a.textContent=this.l.U&&this.da?this.da.toFixed(2)+"Mhz":"Stopped")};function lb(a,b,c){a.sa+=b;c&&(a.pa=a.a=a.G=0)}function rc(a,b){var c=1;b&&1<a.qa&&a.da&&(c=a.da/a.ub);a.Nb=Math.round(1E3/30);a.hb=Math.floor(a.gb/30*c);b||(a.Sa=a.hb);a.vb=0}function pc(a){return a.sa+a.aa+a.pa-a.a}
function nc(a){a.da=0;a.Ob=0;a.sa=a.aa=a.pa=a.a=a.G=0;oc(a);qc(a,1)}function qc(a,b,c){if(void 0!==b){.8>a.da/a.va&&(b=1);a.qa=b;b=a.ub*a.qa;if(a.va!=b){a.va=b;b=a.va.toFixed(2)+"Mhz";var d=a.o.setSpeed;d&&(d.textContent=b);a.T("target speed: "+b)}c&&a.j&&sc(a.j)}lb(a,a.aa);a.aa=0;a.R=ra();a.oa=0;rc(a)}function Ob(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function Qb(a,b,c){0<=b&&b<a.I.length&&0>a.I[b][0]&&(c=a.gb*a.qa/1E3*c|0,a.I[b][0]=c+tc(a))}
function kb(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function tc(a,b){var c=a.pa-=a.a;a.a=a.G=0;b&&(a.pa=0);return c}
h.kd=function(){if(this.l.U){this.vb>=this.gb&&rc(this,!0);this.Ta=0;this.bb=ra();if(this.oa){var a=this.bb-this.oa;a>this.Nb&&(this.R+=a,this.R>this.bb&&(this.R=this.bb))}try{do{for(var b,c=this.l.fb?1:this.hb,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.mb(b)}catch(f){if("number"!=typeof f)throw f;}b=tc(this,!0);this.Ta+=b;this.aa+=b;mb(this,b);kb(this,b);this.Sa-=b;if(0>=this.Sa){this.Sa+=this.hb;15<=++this.Ob&&(this.j&&this.j.ka(),this.Ob=0);break}}while(this.l.U)}catch(f){G(this);
this.j&&this.j.stop(ra(),pc(this));Xa(this,f.stack||f.message);return}if(this.l.U){a=setTimeout;b=this.Qb;this.oa=ra();c=this.Nb;this.Ta&&(c=Math.round(c*this.Ta/this.hb));c-=this.oa-this.bb;if(d=this.oa-this.R)this.da=Math.round(this.aa/(10*d))/100,864E5<=d&&(this.sa=0,qc(this));if(0>c||this.da<this.va)-1E3>c&&(this.R-=c),c=0;this.vb+=this.Ta;this.oa+=c;a(b,c)}}};
function jb(a){var b;a.l.error?(a.T(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.U)a.T(a.toString()+" busy");else{qc(a);a.l.U=!0;a.l.Bb=!0;if(b=a.o.run)b.textContent="Halt";a.j&&a.j.start(a.R,pc(a));setTimeout(a.Qb,0)}}h.mb=function(){return 0};function G(a){var b=!1;if(a.l.U){tc(a);lb(a,a.aa);a.aa=0;a.l.U=!1;if(b=a.o.run)b.textContent="Run";a.j&&a.j.stop(ra(),pc(a));b=!0}a.l.complete=void 0;return b}
function uc(a){this.Za=+a.model||1170;this.Jb=a.addrReset||0;kc.call(this,a,6666667);this.decode=1120==this.Za?vc.bind(this):wc.bind(this);xc(this);this.ra=0;this.N=null;this.l.complete=!1}z(uc,kc);h=uc.prototype;h.reset=function(){this.status("model "+this.Za);this.l.U&&G(this);xc(this);nc(this);this.l.error=!1;this.parent.reset.call(this)};
function xc(a){a.m=65536;a.f=32768;a.i=65535;a.s=32768;a.B=15;a.g=[0,0,0,0,0,0,0,a.Jb];a.Ha=[0,0,0,0,0,0];a.ma=[0,0,0,0];a.v=0;a.ab=0;a.ic=[4,2,0,1];a.H=[[0,0,0,0,0,0,0,0,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]];a.Y=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ya=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0];a.Vb=[0,0,0,0,0,0,0,0];a.Ub=0;a.u=0;a.A=a.D=0;a.c=a.b=a.tb=0;a.Ia=-1;ib(a)}function ib(a){a.Ca=255;a.M=0;a.Ab=0;a.w=0;a.Ba=0;a.zb=0;a.Ga=0;a.Fa=0;a.$a=0;a.Mb=262143;a.N=null;a.h&&Tb(a)}function Tb(a){a.Fa?(a.P=65536,a.J=a.hc,a.W=a.gd,a.ob=a.Zd,Ab(a.h,a.Ga&16?22:18)):(a.P=0,a.J=a.gc,a.W=a.Tb,a.ob=a.$b,Ab(a.h,16))}function yc(a,b,c){a.Jb=b;P(a,b);!c&&a.C&&(G(a)||a.C.ka())}h.Ib=function(){return 0};
h.save=function(){var a=new Q(this);a.set(0,[]);a.set(1,[this.sa,this.qa]);a.set(2,Lb(this.h));return a.data()};h.restore=function(a){var b=a[1];this.sa=b[1];qc(this,b[3]);a:{b=this.h;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.D){for(var f=0,g=Array(b.D),k=0;k<e.length-1;)for(var l=e[k++],n=e[k++];l--;)g[f++]=n;e=g}f=b.h[d];if(!f||!f.restore(e)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function R(a){return a.m&65536?1:0}
h.ya=function(){return this.s&32768?8:0};function zc(a){var b=a.g[7];a.w&57344||(a.Ba=0,a.zb=b);a.g[7]=b+2&65535;return a.W(b)}function Ac(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function P(a,b){a.g[7]=b&65535}function Rb(a,b){return{md:a,Ka:b,next:null}}function Pb(a,b){if(b!=a.N){var c=a.N;if(!c||c.Ka<=b.Ka)b.next=c,a.N=b;else{do{var d=c.next;if(!d||d.Ka<=b.Ka){b.next=d;c.next=b;break}c=d}while(c)}}a.u|=2}function rb(a){return a.B=a.B&63728|a.ya()|(a.i&65535?0:4)|(a.f&32768?2:0)|R(a)}
function Ub(a,b){a.s=b<<12;a.i=~b&4;a.f=b<<14;a.m=b<<16;if((b^a.B)&2048)for(var c=a.Ha.length;0<=--c;){var d=a.g[c];a.g[c]=a.Ha[c];a.Ha[c]=d}a.v=b>>14&3;c=a.B>>14&3;a.v!=c&&(a.ma[c]=a.g[6],a.g[6]=a.ma[a.v]);a.B=b;a.u|=2}function S(a,b){a.u&128||(a.s=a.i=b,a.f=0)}function Bc(a,b,c){a.u&128||(a.s=a.i=a.m=b,a.f=c||0)}function Cc(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^b)&(d^b))}function Dc(a,b){a.u&128||(a.s=a.i=a.m=b,a.f=a.s^a.m>>1)}function Ec(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^d)&(d^b))}
function K(a,b,c){if(!a.ra){var d=!1;0>a.Ia?a.Ia=rb(a):a.v||(b=4,d=!0);a.w&57344||(a.Ba=63222,a.zb=b);a.v=0;var e=a.W(b|a.P),f=a.W(b+2&65535|a.P);Ub(a,f&-12289|a.Ia>>2&12288);d&&(a.M|=4,a.g[6]=4);Fc(a,a.Ia);Fc(a,a.g[7]);P(a,e);a.u&=-113;a.Ia=-1;a.u|=8;if(26!=c)throw b;}}function Gc(a){var b=Hc(a),c=Hc(a)&-1793;a.B&49152&&(c=c&-225|a.B&63712);P(a,b);Ub(a,c);a.u&=-17}
function Ib(a,b){var c=b>>13&31;31>c&&a.Ga&32&&(b=a.Ya[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
function Ic(a,b,c){var d,e,f,g=0;d=b>>13;a.Ga&a.ic[a.v]||(d&=7);e=a.H[a.v][d];f=(a.Y[a.v][d]<<6)+(b&8191)&a.Mb;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.H[a.v][d]=e;if(4194170!==f||a.v)a.$a=a.v,a.ab=d;b=!1;g&&(g&57344&&(0<=a.Ia&&(g|=128),a.w&57344||(a.w=a.w|g|a.$a<<5|a.ab<<1),b=!0),a.w&61440||!(4191360>
f||4194239<f)||(a.w|=4096,a.w&512&&(a.u|=32)),b&&K(a,168,16));return f}function Jc(a,b,c){b&1&&a.a--;a=a.h;c&=255;3932160<=b&&(b=Ib(a.a,b));a.h[(b&a.Aa)>>>a.c].Db(b&a.j,c&255,b)}function Hc(a){var b=a.W(a.g[6]|a.P);a.g[6]=a.g[6]+2&65535;return b}function Fc(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.w&57344||(a.Ba=a.Ba<<8|246);!a.v&&c<=a.Ca&&4<c&&(c<=a.Ca-32?(a.M|=4,a.g[6]=4,K(a,4,18)):(a.M|=8,a.u|=4));a.ob(c,b)}
function Kc(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return K(a,4,20),0;case 1:return 6===c&&!a.v&&d&4&&(a.g[6]<=a.Ca||65534<=a.g[6])&&(a.g[6]<=a.Ca-32||65534<=a.g[6]?(a.M|=4,a.g[6]=4,K(a,4,22)):(a.M|=8,a.u|=64)),a.a-=3,7===c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.g[c];7!==c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;7!==c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!==c&&(e|=g);e=a.W(e)|g;a.a-=
8;break;case 6:return e=a.W(Ac(a,2)),e=e+a.g[c]&65535|g,a.a-=6,e;case 7:return e=a.W(Ac(a,2)),e=e+a.g[c]&65535,e=a.W(e|a.P)|g,a.a-=10,e}a.g[c]=a.g[c]+f&65535;!g||a.w&57344||(a.Ba=a.Ba<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.g[6]<=a.Ca||65534<=a.g[6])&&(a.g[6]<=a.Ca-32?(a.M|=4,a.g[6]=4,K(a,4,24)):(a.M|=8,a.u|=64));return e}h.kb=function(a){if(!this.Fa)return this.h.kb(a);this.ra++;a=this.Tb(Ic(this,a,2));this.ra--;return a};
h.Xa=function(a,b){this.Fa?(this.ra++,Jc(this,Ic(this,a,5),b),this.ra--):this.h.Xa(a,b)};h.lb=function(a,b){this.Fa?(this.ra++,this.$b(Ic(this,a,4),b),this.ra--):this.h.lb(a,b)};h.gc=function(a,b,c){return Kc(this,a,b,c)};h.hc=function(a,b,c){return Ic(this,Kc(this,a,b,c),c)};h.Tb=function(a){return Jb(this.h,a)};h.gd=function(a){return Jb(this.h,Ic(this,a,2))};h.$b=function(a,b){Kb(this.h,a,b&65535)};h.Zd=function(a,b){Kb(this.h,Ic(this,a,4),b)};
function Lc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Kc(a,b,d,2),c&65536||61440!==(a.B&61440)&&(d&=65535),a.v=a.B>>12&3,c=a.W(d|c&a.P),a.v=a.B>>14&3):c=6!=d||(a.B>>2&12288)===(a.B&12288)?a.g[d]:a.ma[a.B>>12&3];return c}function Mc(a,b,c,d){a.w&57344||(a.Ba=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Kc(a,b,e,4),c&65536||(e&=65535),a.v=a.B>>12&3,e=Ic(a,e|c&65536,4),a.v=a.B>>14&3,Kb(a.h,e,d)):6!=e||(a.B>>2&12288)===(a.B&12288)?a.g[e]=d:a.ma[a.B>>12&3]=d}
function Nc(a,b){b>>=6;var c=a.D=b&7;(b=a.A=(b&56)>>3)?(c=a.J(b,c,3),a=Hb(a.h,c)):a=a.g[c]&255;return a}function Oc(a,b){b>>=6;var c=a.D=b&7;return(b=a.A=(b&56)>>3)?Jb(a.h,a.J(b,c,2)):a.g[c]}function Pc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Kc(a,b,c,8)}function Qc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=Hb(a.h,c)):a=a.g[c]&255;return a}function Rc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?Jb(a.h,a.J(b,c,2)):a.g[c]}
function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.tb=a.J(b,e,7),Jc(a,e,d.call(a,c,Hb(a.h,e)))):a.g[e]=a.g[e]&65280|d.call(a,c,a.g[e])}function U(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),Kb(a.h,e,d.call(a,c,Jb(a.h,e)))):a.g[e]=d.call(a,c,a.g[e])}function Sc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?Jc(a,a.J(b,e,5),c):a.g[e]=c?d&1?c<<24>>24&65535:a.g[e]&-256|c&255:a.g[e]&-256;return c}
function Tc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?Kb(a.h,a.J(b,d,4),c):a.g[d]=c&65535;return c}function V(a,b,c){c&&(P(a,a.g[7]+(b<<24>>23)),a.a-=2);a.a-=3}
h.mb=function(a){this.l.complete=!0;var b=a?this.l.Bb?0:1:-1;this.l.Bb=!1;this.pa=this.a=a;do{if(this.u){this.u&112&&(this.u&32?K(this,168,28):this.u&64?K(this,4,30):this.u&16&&K(this,12,32),this.u&=-113);if(a=this.u&7){a=!1;if(this.u&2){this.u&=-3;var c=160,d=(this.Ab&224)>>5,e=this.N&&this.N.Ka>d?this.N:null;e&&(c=e.md,d=e.Ka);d>(this.B&224)>>5?(this.u&4&&(Ac(this,2),this.u&=-5),K(this,c,26),d=!0):d=!1;if(d){if(e)if(a=e,e=this.N,e==a)this.N=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=
d}a=!0}}else this.u&1&&this.u++;a=a&&0>b}if(a)break}this.u=this.u&7|this.B&16;this.decode(zc(this))}while(0<this.a);return this.l.complete?this.pa-this.a:void 0===this.l.complete?0:-1};Ha(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new uc(d);C(d,c)}});function Uc(a,b){var c=b+a;Cc(this,c,a,b);return c&65535}function Vc(a,b){var c=b+a;Cc(this,c<<8,a<<8,b<<8);return c&255}function Wc(a,b){a=b<<1;Dc(this,a);return a&65535}
function Xc(a,b){a=b<<1;Dc(this,a<<8);return a&255}function Yc(a,b){a=b&32768|b>>1|b<<16;Dc(this,a);return a&65535}function Zc(a,b){a=b&2048|b>>1|b<<8;Dc(this,a<<8);return a&255}function $c(a,b){a=b&~a;S(this,a);return a}function ad(a,b){a=b&~a;S(this,a<<8);return a}function bd(a,b){a|=b;S(this,a);return a}function cd(a,b){a|=b;S(this,a<<8);return a}function dd(a,b){a=~b|65536;Bc(this,a);return a&65535}function ed(a,b){a=~b|256;Bc(this,a<<8);return a&255}
function fd(a,b){a=b-a;this.u&128||(this.s=this.i=a,this.f=b&(b^a));return a&65535}function gd(a,b){a=b-a;var c=a<<8;b<<=8;this.u&128||(this.s=this.i=c,this.f=b&(b^c));return a&255}function hd(a,b){a=b+a;this.u&128||(this.s=this.i=a,this.f=a&(b^a));return a&65535}function id(a,b){a=b+a;var c=a<<8;this.u&128||(this.s=this.i=c,this.f=c&(b<<8^c));return a&255}function jd(a,b){a=-b;Bc(this,a,a&b&32768);return a&65535}function kd(a,b){a=-b;Bc(this,a<<8,(a&b&128)<<8);return a&255}
function ld(a,b){a=b<<1|this.m>>16&1;Dc(this,a);return a&65535}function md(a,b){a=b<<1|this.m>>16&1;Dc(this,a<<8);return a&255}function nd(a,b){a=(this.m&65536|b)>>1|b<<16;Dc(this,a);return a&65535}function od(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;Dc(this,a<<8);return a&255}function pd(a,b){var c=b-a;Ec(this,c,a,b);return c&65535}function qd(a,b){var c=b-a;Ec(this,c<<8,a<<8,b<<8);return c&255}function rd(a,b){this.u&128||(this.s=this.i=b&65280,this.f=this.m=0);return(b<<8|b>>8)&65535}
function sd(a,b){a^=b;S(this,a);return a&65535}function td(a){U(this,a,Oc(this,a),Uc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function ud(a){var b=Rc(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.m=this.f=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.m=c<<17-b,c>>=b;else if(b)if(16<b)this.f=c,c=0;else{this.m=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.f=32768)}this.g[a]=c&65535;this.s=this.i=c;this.a-=(this.c?6:7)+b}
function vd(a){var b=Rc(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.m=this.f=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.m=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.m=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.f=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.s=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function wd(a){V(this,a,!R(this))}function xd(a){V(this,a,R(this))}
function yd(a){U(this,a,Oc(this,a),$c);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function zd(a){T(this,a,Nc(this,a),ad);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function Ad(a){U(this,a,Oc(this,a),bd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}function Bd(a){T(this,a,Nc(this,a),cd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}
function Cd(a){S(this,Oc(this,a)&Rc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}function Dd(a){S(this,(Nc(this,a)&Qc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}function Ed(a){V(this,a,this.i&65535?0:4)}function Fd(a){V(this,a,!this.ya()==!(this.f&32768))}function Gd(a){V(this,a,!!(this.i&65535)&&!this.ya()==!(this.f&32768))}function Hd(a){V(this,a,!R(this)&&!!(this.i&65535))}
function Id(a){V(this,a,(this.i&65535?0:4)||!this.ya()!=!(this.f&32768))}function Jd(a){V(this,a,R(this)||(this.i&65535?0:4))}function Kd(a){V(this,a,!this.ya()!=!(this.f&32768))}function Ld(a){V(this,a,this.ya())}function Md(a){V(this,a,!!(this.i&65535))}function Nd(a){V(this,a,!this.ya())}function Od(){K(this,12,1);this.a-=5}function Pd(a){V(this,a,!0)}function Qd(a){V(this,a,!(this.f&32768))}function Rd(a){V(this,a,this.f&32768?2:0)}
function W(a){a&1&&(this.m=0);a&2&&(this.f=0);a&4&&(this.i=1);a&8&&(this.s=0);this.a-=5}function Sd(a){var b=Oc(this,a);a=Rc(this,a);Ec(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}function Td(a){var b=Nc(this,a)<<8;a=Qc(this,a)<<8;Ec(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.A?4:3)+(7==this.b?2:0)}
function Ud(a){var b=Rc(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.m=this.f=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.i=d>>16|d,this.s=d>>16):(this.f=32768,this.i=d>>15|d,this.s=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.a-=53}else this.i=this.s=0,this.f=32768,this.m=65536,this.a-=7}function Vd(){K(this,24,2);this.a-=25}
function Wd(){this.B&49152?(this.M|=128,K(this,4,3)):this.C?this.C.b():G(this);this.a-=7}function Xd(){K(this,16,4);this.a-=25}var Yd=[0,7,7,10,7,11,9,13];function Zd(a){this.G=this.a;P(this,Pc(this,a));this.a=this.G-Yd[this.c]}var $d=[0,14,14,17,14,18,16,20];function ae(a){this.G=this.a;var b=Pc(this,a);a=a>>6&7;Fc(this,this.g[a]);this.g[a]=this.g[7];P(this,b);this.a=this.G-$d[this.c]}var be=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function ce(a){var b=Oc(this,a);this.G=this.a;S(this,Tc(this,a,b));this.a=this.G-be[(this.A?8:0)+this.c]+(7!=this.b||this.c?0:2)}function de(a){var b=Nc(this,a);S(this,Sc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}var ee=[7,13,13,17,14,18,17,21];
function fe(a){var b=Rc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.g[a];c&32768&&(c|=-65536);b=~~(b*c);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;this.u&128||(this.s=b>>16,this.i=this.s|b,this.f=0,this.m=-32768>b||32767<b?65536:0);this.a-=23}function ge(){this.a-=5}function he(){this.B&49152||(this.h.reset(),ib(this));this.a-=667}function ie(){Gc(this);this.u|=this.B&16;this.a-=13}
function je(a){if(a&8)K(this,8,6);else{var b=Hc(this);a&=7;7==a?P(this,b):(P(this,this.g[a]),this.g[a]=b);this.a-=9}}function X(a){a&1&&(this.m=65536);a&2&&(this.f=32768);a&4&&(this.i=0);a&8&&(this.s=32768);this.a-=5}function ke(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)P(this,this.g[7]-((a&63)<<1)),this.a+=1;this.a-=6}function le(a){U(this,a,Oc(this,a),pd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.A?5:3)+(7==this.b?2:0)}
function me(a){U(this,a,0,rd);this.a-=this.c?9:3+(7==this.b?2:0)}function ne(){K(this,28,5);this.a-=5}function oe(){this.u&4||this.j&&this.j.ka();this.u|=4;Ac(this,-2);this.a-=3}function pe(a){U(this,a,Oc(this,a),sd);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){K(this,8,6)}function vc(a){qe[a>>12].call(this,a)}function re(a){se[a>>6&3].call(this,a)}function te(a){ue[a>>6&3].call(this,a)}function ve(a){we[a>>6&3].call(this,a)}function xe(a){ye[a&15].call(this,a)}
function ze(a){Ae[a&15].call(this,a)}function Be(a){Ce[a>>6&3].call(this,a)}function De(a){Ee[a>>6&3].call(this,a)}function Fe(a){Ge[a>>6&3].call(this,a)}
var qe=[function(a){He[a>>8&15].call(this,a)},ce,Sd,Cd,yd,Ad,td,Y,function(a){Ie[a>>8&15].call(this,a)},de,Td,Dd,zd,Bd,le,Y],He=[function(a){Je[a>>4&15].call(this,a)},Pd,Md,Ed,Fd,Kd,Gd,Id,ae,ae,re,te,ve,Y,Y,Y],se=[function(a){Bc(this,Tc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,dd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,hd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,fd);this.a-=this.c?9:3+(7==this.b?2:0)}],ue=[function(a){U(this,a,0,
jd);this.a-=this.c?11:6},function(a){U(this,a,R(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,R(this)?1:0,pd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Rc(this,a);Bc(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],we=[function(a){U(this,a,0,nd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,ld);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Wc);this.a-=this.c?9:3+(7==this.b?2:0)}],
Je=[function(a){Ke[a&15].call(this,a)},Y,Y,Y,Zd,Zd,Zd,Zd,je,Y,xe,ze,me,me,me,me],Ke=[Wd,oe,ie,Od,Xd,he,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ye=[ge,function(){this.m=0;this.a-=5},function(){this.f=0;this.a-=5},W,function(){this.i=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],Ae=[ge,function(){this.m=65536;this.a-=5},function(){this.f=32768;this.a-=5},X,function(){this.i=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],Ie=[Nd,Ld,Hd,Jd,Qd,Rd,wd,xd,Vd,ne,Be,De,Fe,Y,Y,Y],Ce=[function(a){Bc(this,
Sc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,ed);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,id);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,gd);this.a-=this.c?9:3+(7==this.b?2:0)}],Ee=[function(a){T(this,a,0,kd);this.a-=this.c?11:6},function(a){T(this,a,R(this)?1:0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,R(this)?1:0,qd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Qc(this,a);Bc(this,a<<8);this.a-=this.c?4:3+(7==this.b?
2:0)}],Ge=[function(a){T(this,a,0,od);this.a-=this.c?9+(this.tb&1):3+(7==this.b?2:0)},function(a){T(this,a,0,md);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Zc);this.a-=this.c?9+(this.tb&1):3+(7==this.b?2:0)},function(a){T(this,a,0,Xc);this.a-=this.c?9:3+(7==this.b?2:0)}];function wc(a){Le[a>>12].call(this,a)}
var Le=[function(a){Me[a>>8&15].call(this,a)},ce,Sd,Cd,yd,Ad,td,function(a){Ne[a>>8&15].call(this,a)},function(a){Oe[a>>8&15].call(this,a)},de,Td,Dd,zd,Bd,le,Y],Me=[function(a){Pe[a>>4&15].call(this,a)},Pd,Md,Ed,Fd,Kd,Gd,Id,ae,ae,re,te,ve,function(a){Qe[a>>6&3].call(this,a)},Y,Y],Qe=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.W(a|this.P);P(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.a-=8},function(a){a=Lc(this,a,0);Fc(this,a);S(this,a);this.a-=11},function(a){var b=Hc(this);this.G=
this.a;Mc(this,a,0,b);S(this,b);this.a=this.G-ee[this.c]},function(a){S(this,Tc(this,a,this.ya?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],Pe=[function(a){Re[a&15].call(this,a)},Y,Y,Y,Zd,Zd,Zd,Zd,je,function(a){a&8?(this.B&49152||(this.B=this.B&-2017|(a&7)<<5,this.u|=1),this.a-=5):K(this,8,6)},xe,ze,me,me,me,me],Re=[Wd,oe,ie,Od,Xd,he,function(){Gc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],Ne=[fe,fe,Ud,Ud,ud,ud,vd,vd,pe,pe,Y,Y,Y,Y,ke,ke],Oe=[Nd,Ld,Hd,Jd,Qd,Rd,wd,xd,Vd,ne,Be,De,Fe,function(a){Se[a>>6&
3].call(this,a)},Y,Y],Se=[Y,function(a){a=Lc(this,a,65536);Fc(this,a);S(this,a);this.a-=11},function(a){var b=Hc(this);this.G=this.a;Mc(this,a,65536,b);S(this,b);this.a=this.G-ee[this.c]},Y];
function Te(a){x.call(this,"ROM",a,Te);this.X=this.b=null;this.i=a.addr;this.c=a.size;this.f=a.alias;this.j=a.file;this.m=q(this.j);if(this.j){a=this.j;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(Sa(c.na,a,b),(a=ta(a,b))?(c.b=a.K,c.X=a.X):c.j=null);Ue(c)})}}z(Te);Te.prototype.ha=function(a,b,c,d){this.h=b;this.a=c;this.C=d;Ue(this)};
Te.prototype.ja=function(){this.X&&(this.C&&this.C.a(this.id,this.i,this.c,this.X),delete this.X);return!0};Te.prototype.ia=function(){return!0};
function Ue(a){if(!Wa(a)){if(a.j){if(!a.b||!a.h)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c)Xa(a,"ROM size ("+m(a.b.length,8,!0)+") does not match specified size ("+m(a.c,8,!0)+")");else{var b;b=a.i;if(Db(a.h,b,a.c,ac)){var c;for(c=0;c<a.b.length;c++)a.h.Xa(b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Cb(d.h,d.i,d.c);Bb(d.h,e,d.c,f)}delete a.b}}}F(a)}}
Ha(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Te(d);C(d,c)}});
function Ve(a){x.call(this,"RAM",a,Ve);this.X=this.c=null;this.j=a.addr;this.i=a.size;this.fa=a.load;this.ea=a.exec;this.f=!1;this.b=a.file;this.m=q(this.b);if(this.b){a=this.b;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(Sa(c.na,a,b),(a=ta(a,b))?(c.c=a.K,c.X=a.X,null==c.fa&&(c.fa=a.fa),null==c.ea&&(c.ea=a.ea)):c.b=null);We(c)})}}z(Ve);
Ve.prototype.ha=function(a,b,c,d){this.h=b;this.a=c;this.C=d;We(this)};Ve.prototype.ja=function(){this.X&&(this.C&&this.C.a(this.id,this.j,this.i,this.X),delete this.X);return!0};Ve.prototype.ia=function(){return!0};function We(a){if(a.h&&(!a.f&&a.i&&Db(a.h,a.j,a.i,1)&&(a.f=!0),!Wa(a))){if(!a.f)u("No RAM allocated");else if(a.b){if(!a.c||!a.h)return;Xe(a,a.c,a.fa,a.ea,a.j)}F(a)}}
Ve.prototype.reset=function(){if(this.f){for(var a=this.h,b=this.j,c=this.i,d=b&a.j,b=b>>>a.c;0<c&&b<a.h.length;){var e=a.h[b],f=c,g,d=d||0;void 0===f&&(f=e.size);if(Ya)for(g=d;f--&&g<e.o.length;g++)e.o[g]=0;else for(g=d;f--&&g<e.size;g++)e.Eb(d,0,e.Ja+d);c-=a.b;b++;d=0}this.c&&Xe(this,this.c,this.fa,this.ea,this.j,!0)}};
function Xe(a,b,c,d,e,f){var g=!1;if(null==c)for(var k=0;k<b.length-1;){var l=b[k]&255|(b[k+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(k+6>=b.length)break;for(var k=k+2,n=b[k++]&255|(b[k++]&255)<<8,p=b[k++]&255|(b[k++]&255)<<8,l=l+((n&255)+(n>>8)+(p&255)+(p>>8)),t=k,w=n-=6;0<n&&k<b.length;)l+=b[k++]&255,n--;if(n||k>=b.length)break;l+=b[k++]&255;if(l&255)break;if(w)for(;w--;)a.a.Xa(p++,b[t++]&255);else p&1?G(a.a):yc(a.a,p,f);g=!0}else k++;else k+=2}if(!g&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.a.Xa(c+
e,b[e]);null!=d&&yc(a.a,d,f);g=!0}return g}Ha(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ve(d);C(d,c)}});function Ye(a){x.call(this,"Keyboard",a,Ye);F(this)}z(Ye);Ye.prototype.$=function(){return!1};Ye.prototype.ha=function(a,b,c,d){this.j=a;this.a=c;this.C=d};Ha(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ye(d);C(d,c)}});
function Z(a){this.D=a.baudReceive||9600;this.I=a.baudTransmit||9600;this.R=a.upperCase;this.f=this.m=null;this.J=a.tabSize;this.G=a.charBOL;this.s=0;x.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.m="";else{var c;a=Ze;b&&(void 0===c&&(c="Panel"),(c=Ua(c,this.id))&&(b=c.o[b])&&this.$(null,a,b))}this.v=this.A=null;this.exports={connect:this.Kb,receiveData:this.yb}}z(Z);var Ze="buffer";h=Z.prototype;
h.$=function(a,b,c){var d=this;switch(b){case Ze:return this.o[b]=this.f=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.yb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.yb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;var e=this;this.aa=Rb(48,4);this.N=Ob(this.a,function(){e.b&128||!e.i.length||(e.w=e.i.shift()&255,e.R&&97<=e.w&&122>e.w&&(e.w-=32),e.b|=128,e.b&64&&Pb(e.a,e.aa))});this.da=Rb(52,4);this.P=Ob(this.a,function(){e.c|=128;e.c&64&&Pb(e.a,e.da)});bb(b,this,$e);F(this)};
h.Kb=function(){if(!this.v){var a=mc(this.j,"connection");if(a){var b=a.split("->");if(2==b.length){var c=pa(b[0]);if(c!=this.Pa)return;b=pa(b[1]);if(this.v=Ta(b)){var d=this.v.exports;if(d){var e=d.connect;e&&e.call(this.v);if(this.A=d.receiveData){this.status(this.na+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.ja=function(a,b){if(!b)if(this.Kb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
h.ia=function(a){return a?this.save():!0};h.reset=function(){af(this)};h.save=function(){var a=new Q(this);a.set(0,[]);return a.data()};h.restore=function(){return af(this)};function af(a){a.w=0;a.b=0;a.c=128;a.i=[];return!0}h.yb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.i.push(a.charCodeAt(b));else this.i=this.i.concat(a);Qb(this.a,this.N,1E3/Math.round(this.D/10));return!0};h.Qc=function(){return this.b&65534};
h.Id=function(a){this.b=this.b&-112|a&111};h.Pc=function(){this.b&=-129;0<this.i.length&&Qb(this.a,this.N,1E3/Math.round(this.D/10));return this.w};h.Hd=function(){};h.jd=function(){return this.c};h.ae=function(a){128==(this.c&192)&&a&64&&Qb(this.a,this.P,1E3/Math.round(this.I/10));this.c=this.c&-70|a&69};h.hd=function(){return 0};
h.$d=function(a){if(a&=255){this.A&&this.A.call(this.v,a);if(this.f)if(13==a)this.s=0;else if(8==a)this.f.value=this.f.value.slice(0,-1),0<this.s&&this.s--;else{var b;b=(b=qa[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.J||8,c=a-this.s%a,this.J&&(b=" ".slice(0,c)));this.G&&!this.s&&c&&(b=String.fromCharCode(this.G)+b);this.f.value+=b;this.f.scrollTop=this.f.scrollHeight;this.s+=c}else if(null!=this.m){if(10==a||1024<=this.m.length)this.T(this.m),
this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;Pb(this.a,this.P,1E3/Math.round(this.I/10))}};var af={},Ze=(af[65392]=[null,null,Z.prototype.Qc,Z.prototype.Id,"RCSR"],af[65394]=[null,null,Z.prototype.Pc,Z.prototype.Hd,"RBUF"],af[65396]=[null,null,Z.prototype.jd,Z.prototype.ae,"XCSR"],af[65398]=[null,null,Z.prototype.hd,Z.prototype.$d,"XBUF"],af);Ha(function(){for(var a=D(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Z(d);C(d,c)}});
function Ub(a){x.call(this,"PC11",a,Ub);this.c=a.autoMount||null;this.m=0;this.P=a.baudReceive||3600;this.w=this.A=this.b=0;this.v=[];this.s=bf;this.f=cf;this.D=this.i="";this.K=this.fa=this.ea=null;this.I=-1;this.G=!Ba("Mobi")&&window&&"FileReader"in window}z(Ub);var bf="",cf=0;h=Ub.prototype;
h.$=function(a,b,c){var d=this,e=cf;switch(b){case "listTapes":return this.o[b]=c,c.onchange=function(){var a=d.o.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){u("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.o[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.o[b]=c,c.onclick=function(){var a=
d.o.listTapes;a&&df(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.G){c.parentNode.removeChild(c);break}this.o[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;df(d,q(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.o[b]=c,!0}return!1};
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;this.J=ef(a);var e=this;if((this.c=lc(this.j,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){u("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.N=Qb(56,4);this.R=Nb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.w<e.v.length&&(e.A=e.v[e.w++]&255,ff(e,e.w/e.v.length*100),e.b|=128,e.b&=-2049,e.b&64&&Ob(e.a,e.N))});ab(b,this,gf);hf(this,"None",bf,!0);this.G&&hf(this,"Local Tape","?");
hf(this,"Remote Tape","??");jf(this)||F(this)};h.ja=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.A=0};function jf(a){a.m=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.o.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=q(b,!0)}b&&c?kf(a,c,b,1,!0):lf(a)}return!!a.m}
function df(a,b,c,d,e){if(c)if("?"==c)a.F('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"');a.s="??"}else a.s=c;kf(a,b,c,d,!1,e)}else mf(a,!1)}function kf(a,b,c,d,e,f){var g=-1;if(a.i.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,mf(a,!0),a.l.Ea?a.F("PC11 busy"):(e&&a.m++,nf(a,b,c,d,f)?g++:a.l.Ea=!0);g&&of(a,a.D,a.i,a.f,a.K,a.fa,a.ea)}
function nf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),of(a,b,c,d,e),a.s="?");lf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):v()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!r(f,null,!0,function(e,f,g){var k=0>g&&a.j&&!a.j.l.O;g?a.F('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Sa(a.na,e,f),(e=ta(e,f))&&of(a,b,c,d,e.K,e.fa,e.ea));
a.l.Ea=!1;a.m&&(a.m--,a.m||F(a));lf(a)})}function hf(a,b,c,d){if((a=a.o.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function lf(a){var b=a.o.listTapes;if(b&&b.options){a=a.s||a.i;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function ff(a,b){b|=0;if(b!==a.I){var c=a.o.readProgress;c&&(c=(c=D(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.I=b}}function of(a,b,c,d,e,f,g){a.D=b;a.i=c;a.f=d;a.K=e;a.fa=f;a.ea=g;2==d?a.J&&We(a.J,e,f,g)?a.status("tape loaded: "+b):(a.D="",a.i="",a.s=bf,a.f=cf,a.F("No load address available for tape: "+b)):(a.w=0,a.v=e,a.status("tape attached: "+b),ff(a,0))}
function mf(a,b){if(a.i||!1===b)a.D="",a.i="",b||(a.f&&a.status(1==a.f?"tape detached":"tape unloaded"),a.s=bf,a.f=cf,lf(a))}h.save=function(){return(new Q(this)).data()};h.restore=function(){return!0};h.Jc=function(){return this.b&65534};h.Bd=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&Ob(this.a,this.N)):(this.b&=-129,this.b|=2048,this.A=0,Pb(this.a,this.R,1E3/Math.round(this.P/10))));this.b=this.b&-66|a&65};h.Ic=function(){this.b&=-129;this.b|=2048;return this.A};h.Ad=function(){};
var pf={},gf=(pf[65384]=[null,null,Ub.prototype.Jc,Ub.prototype.Bd,"PRS"],pf[65386]=[null,null,Ub.prototype.Ic,Ub.prototype.Ad,"PRB"],pf);function qf(a,b,c){x.call(this,"Disk",{id:a.na+".disk"+m(++rf,4)},qf);this.controller=a;this.j=a.j;this.C=a.C;this.f=b;this.ua=b.name;this.qb=b.qb;sf(this,c,b.V,b.Z,b.S,b.ga);F(this)}var rf=0;z(qf);h=qf.prototype;h.ha=function(a,b,c,d){this.C=d};
function sf(a,b,c,d,e,f){a.mode=b;a.V=c;a.Z=d;a.S=e;a.ga=f;a.a=[];if("preload"!=a.mode){b=Array(a.V);for(c=0;c<b.length;c++){d=Array(a.Z);for(e=0;e<d.length;e++){f=Array(a.S);for(var g=1;g<=f.length;g++)f[g-1]=tf(null,c,e,g,a.ga,0);d[e]=f}b[c]=d}a.a=b}a.b=null}
function uf(a,b,c,d,e){var f=c;if(a.h)return!0;a.ua=b;a.Da=c;a.Wb=q(c);a.h=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.V=e[0];a.Z=e[1];a.S=e[2];a.ga=e[3]||512;c=a.ga>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.V);for(d=0;d<a.a.length;d++)for(var w=a.a[d]=Array(a.Z),E=0;E<w.length;E++)for(var va=w[E]=Array(a.S),wa=0;wa<va.length;wa++){for(var Rb=tf(null,d,E,wa+1,a.ga,0),Wf=Rb.data,fc=0;fc<c;fc++,f+=4)var Xf=Wf[fc]=b.getInt32(f,
!0),e=e+Xf&-1;Rb.ba=c;va[wa]=Rb}a.b=e;c=a}else a.F("Unrecognized disk format ("+d+" bytes)");a.h&&(a.h.call(a.controller,a.f,c,a.ua,a.Da),a.h=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=v()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.qb?"":e)+"&format=json"));return!!r(f,
null,!0,function(b,c,d){vf(a,b,c,d)})}
function vf(a,b,c,d){var e=null;a.c=!1;var f=0>d&&a.j&&!a.j.l.O;if(d)a.controller.F('Unable to load disk "'+a.ua+'" (error '+d+": "+b+")",f);else{Sa(a.controller.na,b,c);try{if(0<q(a.Wb,!0).toLowerCase().indexOf("-readonly"))a.c=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.c=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.ua]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)u(k[0]);else{a.V=k.length;a.Z=k[0].length;a.S=k[0][0].length;var l=k[0][0][0];a.ga=l&&l.length||512;for(d=c=0;d<a.V;d++)for(f=0;f<a.Z;f++)for(g=0;g<a.S;g++)if(l=k[d][f][g]){var n=l.length;void 0===n&&(n=l.length=512);var n=n>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var w=l.bytes;if(void 0!==w&&w.length){for(var E=n<<2,va=w.length;va<E;va++)w[va]=p;wf(l,w)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}tf(l,d,f);for(E=
0;E<t.length;E++)c=c+t[E]&-1}a.a=k;a.b=c;e=a}else u("Empty disk image: "+a.ua)}catch(wa){u("Disk image error ("+b+"): "+wa.message)}}a.h&&(a.h.call(a.i,a.f,e,a.ua,a.Da),a.h=null)}function tf(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.de=b;a.ee=c;a.la=a.ba=0;a.ta=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.f,g=this.a[a];if(g){var k=g[b];if(!k&&f.bc&&b<f.Z)for(k=g[b]=Array(f.cc),g=0;g<k.length;g++)k[g]=tf(null,a,b,g+1,f.Pb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.bc&&9==f.Fb&&(d=k[g]=tf(null,a,b,f.Fb,f.Pb,0))}}e&&e(d,!1);return d};function wf(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;Qb(this.a,this.P,1E3/Math.round(this.I/10))}};var bf={},$e=(bf[65392]=[null,null,Z.prototype.Qc,Z.prototype.Id,"RCSR"],bf[65394]=[null,null,Z.prototype.Pc,Z.prototype.Hd,"RBUF"],bf[65396]=[null,null,Z.prototype.jd,Z.prototype.ae,"XCSR"],bf[65398]=[null,null,Z.prototype.hd,Z.prototype.$d,"XBUF"],bf);Ha(function(){for(var a=D(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Z(d);C(d,c)}});
function Vb(a){x.call(this,"PC11",a,Vb);this.c=a.autoMount||null;this.m=0;this.P=a.baudReceive||3600;this.w=this.A=this.b=0;this.v=[];this.s=cf;this.f=df;this.D=this.i="";this.K=this.fa=this.ea=null;this.I=-1;this.G=!Ba("Mobi")&&window&&"FileReader"in window}z(Vb);var cf="",df=0;h=Vb.prototype;
h.$=function(a,b,c){var d=this,e=df;switch(b){case "listTapes":return this.o[b]=c,c.onchange=function(){var a=d.o.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){u("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.o[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.o[b]=c,c.onclick=function(){var a=
d.o.listTapes;a&&ef(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.G){c.parentNode.removeChild(c);break}this.o[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;ef(d,q(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.o[b]=c,!0}return!1};
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;this.J=ff(a);var e=this;if((this.c=mc(this.j,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){u("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.N=Rb(56,4);this.R=Ob(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.w<e.v.length&&(e.A=e.v[e.w++]&255,gf(e,e.w/e.v.length*100),e.b|=128,e.b&=-2049,e.b&64&&Pb(e.a,e.N))});bb(b,this,hf);jf(this,"None",cf,!0);this.G&&jf(this,"Local Tape","?");
jf(this,"Remote Tape","??");kf(this)||F(this)};h.ja=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.A=0};function kf(a){a.m=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.o.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=q(b,!0)}b&&c?lf(a,c,b,1,!0):mf(a)}return!!a.m}
function ef(a,b,c,d,e){if(c)if("?"==c)a.F('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"');a.s="??"}else a.s=c;lf(a,b,c,d,!1,e)}else nf(a,!1)}function lf(a,b,c,d,e,f){var g=-1;if(a.i.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,nf(a,!0),a.l.Ea?a.F("PC11 busy"):(e&&a.m++,of(a,b,c,d,f)?g++:a.l.Ea=!0);g&&pf(a,a.D,a.i,a.f,a.K,a.fa,a.ea)}
function of(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),pf(a,b,c,d,e),a.s="?");mf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):v()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!r(f,null,!0,function(e,f,g){var k=0>g&&a.j&&!a.j.l.O;g?a.F('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Sa(a.na,e,f),(e=ta(e,f))&&pf(a,b,c,d,e.K,e.fa,e.ea));
a.l.Ea=!1;a.m&&(a.m--,a.m||F(a));mf(a)})}function jf(a,b,c,d){if((a=a.o.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function mf(a){var b=a.o.listTapes;if(b&&b.options){a=a.s||a.i;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function gf(a,b){b|=0;if(b!==a.I){var c=a.o.readProgress;c&&(c=(c=D(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.I=b}}function pf(a,b,c,d,e,f,g){a.D=b;a.i=c;a.f=d;a.K=e;a.fa=f;a.ea=g;2==d?a.J&&Xe(a.J,e,f,g)?a.status("tape loaded: "+b):(a.D="",a.i="",a.s=cf,a.f=df,a.F("No load address available for tape: "+b)):(a.w=0,a.v=e,a.status("tape attached: "+b),gf(a,0))}
function nf(a,b){if(a.i||!1===b)a.D="",a.i="",b||(a.f&&a.status(1==a.f?"tape detached":"tape unloaded"),a.s=cf,a.f=df,mf(a))}h.save=function(){return(new Q(this)).data()};h.restore=function(){return!0};h.Jc=function(){return this.b&65534};h.Bd=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&Pb(this.a,this.N)):(this.b&=-129,this.b|=2048,this.A=0,Qb(this.a,this.R,1E3/Math.round(this.P/10))));this.b=this.b&-66|a&65};h.Ic=function(){this.b&=-129;this.b|=2048;return this.A};h.Ad=function(){};
var qf={},hf=(qf[65384]=[null,null,Vb.prototype.Jc,Vb.prototype.Bd,"PRS"],qf[65386]=[null,null,Vb.prototype.Ic,Vb.prototype.Ad,"PRB"],qf);function rf(a,b,c){x.call(this,"Disk",{id:a.na+".disk"+m(++sf,4)},rf);this.controller=a;this.j=a.j;this.C=a.C;this.f=b;this.ua=b.name;this.sb=b.sb;tf(this,c,b.V,b.Z,b.S,b.ga);F(this)}var sf=0;z(rf);h=rf.prototype;h.ha=function(a,b,c,d){this.C=d};
function tf(a,b,c,d,e,f){a.mode=b;a.V=c;a.Z=d;a.S=e;a.ga=f;a.a=[];if("preload"!=a.mode){b=Array(a.V);for(c=0;c<b.length;c++){d=Array(a.Z);for(e=0;e<d.length;e++){f=Array(a.S);for(var g=1;g<=f.length;g++)f[g-1]=uf(null,c,e,g,a.ga,0);d[e]=f}b[c]=d}a.a=b}a.b=null}
function vf(a,b,c,d,e){var f=c;if(a.h)return!0;a.ua=b;a.Da=c;a.Wb=q(c);a.h=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.V=e[0];a.Z=e[1];a.S=e[2];a.ga=e[3]||512;c=a.ga>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.V);for(d=0;d<a.a.length;d++)for(var w=a.a[d]=Array(a.Z),E=0;E<w.length;E++)for(var va=w[E]=Array(a.S),wa=0;wa<va.length;wa++){for(var Sb=uf(null,d,E,wa+1,a.ga,0),Xf=Sb.data,gc=0;gc<c;gc++,f+=4)var Yf=Xf[gc]=b.getInt32(f,
!0),e=e+Yf&-1;Sb.ba=c;va[wa]=Sb}a.b=e;c=a}else a.F("Unrecognized disk format ("+d+" bytes)");a.h&&(a.h.call(a.controller,a.f,c,a.ua,a.Da),a.h=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=v()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.sb?"":e)+"&format=json"));return!!r(f,
null,!0,function(b,c,d){wf(a,b,c,d)})}
function wf(a,b,c,d){var e=null;a.c=!1;var f=0>d&&a.j&&!a.j.l.O;if(d)a.controller.F('Unable to load disk "'+a.ua+'" (error '+d+": "+b+")",f);else{Sa(a.controller.na,b,c);try{if(0<q(a.Wb,!0).toLowerCase().indexOf("-readonly"))a.c=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.c=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.ua]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)u(k[0]);else{a.V=k.length;a.Z=k[0].length;a.S=k[0][0].length;var l=k[0][0][0];a.ga=l&&l.length||512;for(d=c=0;d<a.V;d++)for(f=0;f<a.Z;f++)for(g=0;g<a.S;g++)if(l=k[d][f][g]){var n=l.length;void 0===n&&(n=l.length=512);var n=n>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var w=l.bytes;if(void 0!==w&&w.length){for(var E=n<<2,va=w.length;va<E;va++)w[va]=p;xf(l,w)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}uf(l,d,f);for(E=
0;E<t.length;E++)c=c+t[E]&-1}a.a=k;a.b=c;e=a}else u("Empty disk image: "+a.ua)}catch(wa){u("Disk image error ("+b+"): "+wa.message)}}a.h&&(a.h.call(a.i,a.f,e,a.ua,a.Da),a.h=null)}function uf(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.de=b;a.ee=c;a.la=a.ba=0;a.ta=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.f,g=this.a[a];if(g){var k=g[b];if(!k&&f.bc&&b<f.Z)for(k=g[b]=Array(f.cc),g=0;g<k.length;g++)k[g]=uf(null,a,b,g+1,f.Pb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.bc&&9==f.Fb&&(d=k[g]=uf(null,a,b,f.Fb,f.Pb,0))}}e&&e(d,!1);return d};function xf(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.c)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.ba?f<a.la?(a.ba+=a.la-f,a.la=f):f>=a.la+a.ba&&(a.ba+=f-(a.la+a.ba)+1):(a.la=f,a.ba=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function xf(a,b){var c=a.Z*a.S,d=b/c|0;return d<a.V?(b%=c,a.seek(d,b/a.S|0,b%a.S+1)):null}function yf(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}h.save=function(){var a=0,b=[];b[a++]=[this.Da,this.b,this.V,this.Z,this.S,this.ga];if(!this.c)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ba){for(var k=[],l=0,n=g.la,p=g.la+g.ba;n<p;)k[l++]=g.data[n++];b[a++]=[d,e,f,g.la,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?sf(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.b&&e[1]!=this.b&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.b+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],n=g[f++];if(k>=this.a.length||l>=this.a[k].length||n>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+n+") out of range ("+
function yf(a,b){var c=a.Z*a.S,d=b/c|0;return d<a.V?(b%=c,a.seek(d,b/a.S|0,b%a.S+1)):null}function zf(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}h.save=function(){var a=0,b=[];b[a++]=[this.Da,this.b,this.V,this.Z,this.S,this.ga];if(!this.c)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ba){for(var k=[],l=0,n=g.la,p=g.la+g.ba;n<p;)k[l++]=g.data[n++];b[a++]=[d,e,f,g.la,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?tf(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.b&&e[1]!=this.b&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.b+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],n=g[f++];if(k>=this.a.length||l>=this.a[k].length||n>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+n+") out of range ("+
b+" changes applied)";b=-1;break}if(this.c){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][n]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.la=e;for(k.ba=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.F("Unable to restore disk '"+this.ua+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=xf(this,a++);)zf(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function zf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function O(a){x.call(this,"RL11",a,O);this.f=a.autoMount||null;this.s=0;this.b=Array(4);this.A=!Ba("Mobi")&&window&&"FileReader"in window}z(O);h=O.prototype;
h.$=function(a,b,c){var d=this;switch(b){case "listDisks":return this.o[b]=c,c.onchange=function(){var a=d.o.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){u("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.o[b]=c,c.onchange=function(){var a=ja(c.value);null!=a&&Af(d,a)},!0;case "loadDrive":return this.o[b]=
c,c.onclick=function(){var a=d.o.listDisks;a&&Bf(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.A){c.parentNode.removeChild(c);break}this.o[b]=c;c.onclick=function(){var a=d.o.listDrives;if(a&&a.options&&d.b)if(a=d.b[ja(a.value)||0])if(a=a.ca){var b;b="";for(var c=0,k;k=xf(a,c++);)for(var l=0,n=k.length;l<n;l++)b+=String.fromCharCode(yf(a,k,l));b=btoa(b);a=a.Wb.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=
h.toJSON=function(){var a;a=0;for(var b;b=yf(this,a++);)Af(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Af(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function O(a){x.call(this,"RL11",a,O);this.f=a.autoMount||null;this.s=0;this.b=Array(4);this.A=!Ba("Mobi")&&window&&"FileReader"in window}z(O);h=O.prototype;
h.$=function(a,b,c){var d=this;switch(b){case "listDisks":return this.o[b]=c,c.onchange=function(){var a=d.o.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){u("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.o[b]=c,c.onchange=function(){var a=ja(c.value);null!=a&&Bf(d,a)},!0;case "loadDrive":return this.o[b]=
c,c.onclick=function(){var a=d.o.listDisks;a&&Cf(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.A){c.parentNode.removeChild(c);break}this.o[b]=c;c.onclick=function(){var a=d.o.listDrives;if(a&&a.options&&d.b)if(a=d.b[ja(a.value)||0])if(a=a.ca){var b;b="";for(var c=0,k;k=yf(a,c++);)for(var l=0,n=k.length;l<n;l++)b+=String.fromCharCode(zf(a,k,l));b=btoa(b);a=a.Wb.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=
typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+(a?" ("+a+")":"")+".");u(a)}else d.F("No disk loaded in drive.");else d.F("No disk drive selected.")};return!0;case "mountDrive":if(this.A)return this.o[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),
c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Bf(d,q(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;if((this.f=lc(this.j,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){u("RL11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}Cf(this);this.G=Qb(112,5);ab(b,this,Df,2097152);Ef(this,"None","",!0);this.A&&Ef(this,"Local Disk","?");Ef(this,"Remote Disk","??");Ff(this)||F(this)};
h.ja=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.j.Hb){for(a=0;a<this.b.length;a++)Gf(this,a,!0);Ff(this,!0)}}else if(!this.restore(a))return!1;if(a=this.o.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Af(this,0)}}return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){Cf(this)};h.save=function(){return(new Q(this)).data()};
h.restore=function(a){return Cf(this,a[0])};function Ff(a,b){b||(a.s=0);if(a.f)for(var c in a.f){var d=a.f[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.o.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=q(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!Hf(a,g,f,e,!0)&&b&&F(a,!1);continue}a.F("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.s}
function Bf(a,b,c,d){var e=a.o.listDrives,e=e&&ja(e.value);if(void 0===e||0>e||e>=a.b.length)a.F("Unable to load the selected drive");else if(c)if("?"==c)a.F('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"')}Hf(a,e,b,c,!1,d)}else Gf(a,e)}
function Hf(a,b,c,d,e,f){var g=-1,k=a.b[b];k.Da.toLowerCase()!=d.toLowerCase()&&(g++,Gf(a,b,!0),k.pb?a.F("RL11 busy"):(k.pb=!0,e&&(k.ob=!0,a.s++),k.ib=!!f,uf(new qf(a,k,"preload"),c,d,f,a.dc)&&g++));return g}
h.dc=function(a,b,c,d,e){var f;a.pb=!1;b&&(f=b.a.length?[b.a.length,b.a[0].length,b.a[0][0].length,b.a[0][0][0].length]:[0,0,0,0],b&&f[0]>a.V||f[1]>a.Z)&&(this.F('Disk "'+c+'" too large for drive '+("RL"+a.vb)),b=null);b?(a.ca=b,a.ua=c,a.Da=d,this.F('Mounted disk "'+c+'" in drive '+("RL"+a.vb),a.ob||e),this.j&&rc(this.j)):a.ib=!1;a.ob&&(a.ob=!1,--this.s||F(this));Af(this,a.vb)};
function Ef(a,b,c,d){if((a=a.o.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Af(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.o.listDisks;a=a.o.listDrives;if(d&&a&&d.options&&a.options&&(a=ja(a.value),c=c.ib?"?":c.Da,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Gf(a,b,c){var d=a.b[b];if(d.ca||!1===c)d.ua="",d.Da="",d.ca=null,d.ib=!1,c||(a.F("Drive RL"+b+" unloaded",c),Af(a,b))}
function Cf(a,b){var c=0;b||(b=[]);a.L=b[c++]||0;a.v=b[c++]||0;a.c=b[c++]||0;a.i=b[c++]||0;a.m=b[c++]||0;a.w=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.vb=b;d.pb=d.ib=!1;d.name=c.Pa;d.V=512;d.Z=2;d.S=40;d.ga=256;d.qb=!0;d.ce=0;d.be=0;d.Fb=1;d.cc=d.S;d.Pb=d.ga;d.fe=0;d.ge=null;d.ca||(d.Da="");d.status=29|(512==d.V?128:0)}return!0}
c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Cf(d,q(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ha=function(a,b,c,d){this.j=a;this.h=b;this.a=c;this.C=d;if((this.f=mc(this.j,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){u("RL11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}Df(this);this.G=Rb(112,5);bb(b,this,Ef,2097152);Ff(this,"None","",!0);this.A&&Ff(this,"Local Disk","?");Ff(this,"Remote Disk","??");Gf(this)||F(this)};
h.ja=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.j.Hb){for(a=0;a<this.b.length;a++)Hf(this,a,!0);Gf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.o.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Bf(this,0)}}return!0};h.ia=function(a){return a?this.save():!0};h.reset=function(){Df(this)};h.save=function(){return(new Q(this)).data()};
h.restore=function(a){return Df(this,a[0])};function Gf(a,b){b||(a.s=0);if(a.f)for(var c in a.f){var d=a.f[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.o.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=q(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!If(a,g,f,e,!0)&&b&&F(a,!1);continue}a.F("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.s}
function Cf(a,b,c,d){var e=a.o.listDrives,e=e&&ja(e.value);if(void 0===e||0>e||e>=a.b.length)a.F("Unable to load the selected drive");else if(c)if("?"==c)a.F('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"')}If(a,e,b,c,!1,d)}else Hf(a,e)}
function If(a,b,c,d,e,f){var g=-1,k=a.b[b];k.Da.toLowerCase()!=d.toLowerCase()&&(g++,Hf(a,b,!0),k.rb?a.F("RL11 busy"):(k.rb=!0,e&&(k.qb=!0,a.s++),k.ib=!!f,vf(new rf(a,k,"preload"),c,d,f,a.dc)&&g++));return g}
h.dc=function(a,b,c,d,e){var f;a.rb=!1;b&&(f=b.a.length?[b.a.length,b.a[0].length,b.a[0][0].length,b.a[0][0][0].length]:[0,0,0,0],b&&f[0]>a.V||f[1]>a.Z)&&(this.F('Disk "'+c+'" too large for drive '+("RL"+a.wb)),b=null);b?(a.ca=b,a.ua=c,a.Da=d,this.F('Mounted disk "'+c+'" in drive '+("RL"+a.wb),a.qb||e),this.j&&sc(this.j)):a.ib=!1;a.qb&&(a.qb=!1,--this.s||F(this));Bf(this,a.wb)};
function Ff(a,b,c,d){if((a=a.o.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Bf(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.o.listDisks;a=a.o.listDrives;if(d&&a&&d.options&&a.options&&(a=ja(a.value),c=c.ib?"?":c.Da,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Hf(a,b,c){var d=a.b[b];if(d.ca||!1===c)d.ua="",d.Da="",d.ca=null,d.ib=!1,c||(a.F("Drive RL"+b+" unloaded",c),Bf(a,b))}
function Df(a,b){var c=0;b||(b=[]);a.L=b[c++]||0;a.v=b[c++]||0;a.c=b[c++]||0;a.i=b[c++]||0;a.m=b[c++]||0;a.w=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.wb=b;d.rb=d.ib=!1;d.name=c.Pa;d.V=512;d.Z=2;d.S=40;d.ga=256;d.sb=!0;d.ce=0;d.be=0;d.Fb=1;d.cc=d.S;d.Pb=d.ga;d.fe=0;d.ge=null;d.ca||(d.Da="");d.status=29|(512==d.V?128:0)}return!0}
h.ec=function(a,b,c,d,e,f){this.v=f&65535;this.L=this.L&-49|f>>12&48;this.w=f>>16&63;this.i=this.c=b<<7|(c?64:0)|d&63;this.m=65536-e&65535;a&&(this.L=this.L|a|32768);return!0};
h.wc=function(a,b,c,d,e,f,g){for(var k=0,l=a.ca,n=null,p;e--;){if(!n){n=a.ca.seek(b,c,d+1);if(!n){k=5120;break}p=0}var t,w;if(0>(t=a.ca.read(n,p++))||0>(w=a.ca.read(n,p++))){k=5120;break}Jb(this.h,f,t|w<<8);if(Mb(this.h)){k=8192;break}f+=2;if(p>=l.ga&&(n=null,++d>=l.S&&(d=0,++c>=l.Z&&(c=0,++b>=l.V)))){k=5120;break}}return g(k,b,c,d,e,f)};
h.qd=function(a,b,c,d,e,f,g){for(var k=0,l=a.ca,n=null,p;e--;){var t=Ib(this.h,f);if(Mb(this.h)){k=8192;break}f+=2;if(!n){n=a.ca.seek(b,c,d+1,!0);if(!n){k=5120;break}p=0}if(!a.ca.write(n,p++,t&255)||!a.ca.write(n,p++,t>>8)){k=5120;break}if(p>=l.ga&&(n=null,++d>=l.S&&(d=0,++c>=l.Z&&(c=0,++b>=l.V)))){k=5120;break}}return g(k,b,c,d,e,f)};h.Tc=function(){return this.L&65535};
h.wc=function(a,b,c,d,e,f,g){for(var k=0,l=a.ca,n=null,p;e--;){if(!n){n=a.ca.seek(b,c,d+1);if(!n){k=5120;break}p=0}var t,w;if(0>(t=a.ca.read(n,p++))||0>(w=a.ca.read(n,p++))){k=5120;break}Kb(this.h,f,t|w<<8);if(Nb(this.h)){k=8192;break}f+=2;if(p>=l.ga&&(n=null,++d>=l.S&&(d=0,++c>=l.Z&&(c=0,++b>=l.V)))){k=5120;break}}return g(k,b,c,d,e,f)};
h.qd=function(a,b,c,d,e,f,g){for(var k=0,l=a.ca,n=null,p;e--;){var t=Jb(this.h,f);if(Nb(this.h)){k=8192;break}f+=2;if(!n){n=a.ca.seek(b,c,d+1,!0);if(!n){k=5120;break}p=0}if(!a.ca.write(n,p++,t&255)||!a.ca.write(n,p++,t>>8)){k=5120;break}if(p>=l.ga&&(n=null,++d>=l.S&&(d=0,++c>=l.Z&&(c=0,++b>=l.V)))){k=5120;break}}return g(k,b,c,d,e,f)};h.Tc=function(){return this.L&65535};
h.Ld=function(a){this.L=this.L&-1023|a&1022;this.D=this.D&-4|(a&48)>>4;if(!(this.L&128)){var b;a=!0;var c=this.b[(this.L&768)>>8],d,e,f,g;this.L&=-2;switch(this.L&14){case 4:this.c&8&&(this.L&=63);this.m=c.status|this.i&64;break;case 6:1==(this.c&3)&&(b=this.c&65408,c=(this.c&16)<<2,this.i=this.c&4?this.i+b:this.i-b,this.c=this.i=this.i&65408|c);break;case 8:this.m=this.i;break;case 12:b=this.wc;case 10:b||(b=this.qd),d=this.c>>7,e=this.c&64?0:1,f=this.c&63,d>=c.V||f>=c.S?this.L|=37888:(g=(this.w&
63)<<16|this.v,a=65536-this.m&65535,a=b.call(this,c,d,e,f,a,g,this.ec.bind(this)))}a&&(this.L|=129,this.L&64&&Ob(this.a,this.G))}};h.Rc=function(){return this.v};h.Jd=function(a){this.v=a&65534};h.Uc=function(){return this.c};h.Md=function(a){this.c=a};h.Vc=function(){return this.m};h.Nd=function(a){this.m=a};h.Sc=function(){return this.w};h.Kd=function(a){this.w=a&63};
var If={},Df=(If[63744]=[null,null,O.prototype.Tc,O.prototype.Ld,"RLCS"],If[63746]=[null,null,O.prototype.Rc,O.prototype.Jd,"RLBA"],If[65284]=[null,null,O.prototype.Uc,O.prototype.Md,"RLDA"],If[65286]=[null,null,O.prototype.Vc,O.prototype.Nd,"RLMP"],If[65288]=[null,null,O.prototype.Sc,O.prototype.Kd,"RLBE"],If);
function Jf(a,b,c){x.call(this,"Computer",a,Jf);this.l.O=!1;Kf(this,b);this.A=lc(this,"autoPower",a);this.j=0;this.N=a.busWidth||a.buswidth;this.b=Lf;this.v=null;this.m=this.I=!1;this.P=lc(this,"url")||"";(Math.random()+.1).toString(36);this.c=Mf(this);if(this.a=Ua("CPU",this.id)){this.C=Ua("Debugger",this.id);this.h=new sb({id:this.na+".bus",busWidth:this.N},this.a,this.C);var d,e=A(this.id);if((this.f=Ua("Panel",this.id))&&this.f.Va)for(b=0;b<e.length;b++)d=e[b],d.F=this.f.F,d.T=this.f.T,d.Va=this.f.Va;
this.T("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.T("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ha&&d.ha(this,this.h,this.a,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.s=d:this.b=parseInt(d,10));var f;if(a=lc(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.m=!0,this.b=Lf),this.b&&(this.w=new Q(this,
"1.30.2"),Nf(this.w)?b=null:delete this.w);!b&&this.b&&(b=Of(this))&&(this.m=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.s=null,g.m=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.v=b,g.I=!0);F(g)})}else F(this);this.o.power||(this.A=!0);!c&&this.A&&Pf(this,this.Wa)}else u("Unable to find CPU component")}z(Jf);var Lf=0;
function Kf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.J=b}function lc(a,b,c){var d=b.toLowerCase(),d=Ma[b]||Ma[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Pf(a,b,c){for(var d=A(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Wa(f)){Wa(f,function(){Pf(a,b,c)});return}}b.call(a,c)}
function Qf(a,b){var c=new Q(a,"1.30.2","validate");if(Nf(c)&&Rf(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Jf.prototype;
h.Wa=function(a){void 0===a&&(a=this.b||(this.v?1:Lf));if(!this.j){this.j++;var b=!1,c=!1;this.G=!1;var d=this.w||new Q(this,"1.30.2");if(-1==a)b=!0;else if(a>Lf){if(Nf(d,this.v)){this.i=new Q(this,"1.30.2","failsafe");Nf(this.i)&&(Sf(this,d),a=2,Tf(this.i));this.i.set("timestamp",sa());Uf(this.i);var e=this.b&&!this.m;if(1==a||ua("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Rf(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Nf(d,g):("error"==
f&&"no machine state"!=g?(this.F("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.c=null)):this.T(f+": "+g),Tf(d),Nf(d)?(c=Rf(d),e=!0):c=!1))}e&&Qf(this,c?d:null)}else 2==a&&d.clear()}else Qf(this);delete this.v;delete this.w}e=A(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=Vf(this,g,d,b,c));b=[d,a,c];-1!=a?Pf(this,this.Gb,b):this.Gb(b)}};
function Vf(a,b,c,d,e){if(!b.l.O){b.l.O=!0;if(b.ja){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ja(f,d)&&f&&(u("Unable to restore state for "+b.type),a.D&&!a.I?(c.clear(),a.b=Lf,window&&window.location.reload()):a.G=!0,b.ja(null),e=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.l.O=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(Vf(this,this.a,b,c,a),this.a.Ua());this.G&&(Sf(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.j=0};
function Sf(a,b){if(ua("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.2"};d.url=a.P;d.user=c;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function Yf(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Q(a,"1.30.2"),g=new Q(a,"1.30.2","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&G(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.O=!1,!1===d&&(e=null)));for(var k=A(a.id),l=0;l<k.length;l++){var n=k[l];n.l.O&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&f.set(n.id,
d)),c&&(n.l.O=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&Zf(a,a.c,f.toString()),Uf(g)&&Uf(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.l.O=!1,b=a.o.power)&&(b.textContent="Power");a.j=0;return e}h.reset=function(){this.h&&this.h.reset&&this.h.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.h&&c.reset&&c.reset()}};h.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ka(!0)};
63)<<16|this.v,a=65536-this.m&65535,a=b.call(this,c,d,e,f,a,g,this.ec.bind(this)))}a&&(this.L|=129,this.L&64&&Pb(this.a,this.G))}};h.Rc=function(){return this.v};h.Jd=function(a){this.v=a&65534};h.Uc=function(){return this.c};h.Md=function(a){this.c=a};h.Vc=function(){return this.m};h.Nd=function(a){this.m=a};h.Sc=function(){return this.w};h.Kd=function(a){this.w=a&63};
var Jf={},Ef=(Jf[63744]=[null,null,O.prototype.Tc,O.prototype.Ld,"RLCS"],Jf[63746]=[null,null,O.prototype.Rc,O.prototype.Jd,"RLBA"],Jf[65284]=[null,null,O.prototype.Uc,O.prototype.Md,"RLDA"],Jf[65286]=[null,null,O.prototype.Vc,O.prototype.Nd,"RLMP"],Jf[65288]=[null,null,O.prototype.Sc,O.prototype.Kd,"RLBE"],Jf);
function Kf(a,b,c){x.call(this,"Computer",a,Kf);this.l.O=!1;Lf(this,b);this.A=mc(this,"autoPower",a);this.j=0;this.N=a.busWidth||a.buswidth;this.b=Mf;this.v=null;this.m=this.I=!1;this.P=mc(this,"url")||"";(Math.random()+.1).toString(36);this.c=Nf(this);if(this.a=Ua("CPU",this.id)){this.C=Ua("Debugger",this.id);this.h=new tb({id:this.na+".bus",busWidth:this.N},this.a,this.C);var d,e=A(this.id);if((this.f=Ua("Panel",this.id))&&this.f.Va)for(b=0;b<e.length;b++)d=e[b],d.F=this.f.F,d.T=this.f.T,d.Va=this.f.Va;
this.T("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.T("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ha&&d.ha(this,this.h,this.a,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.s=d:this.b=parseInt(d,10));var f;if(a=mc(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.m=!0,this.b=Mf),this.b&&(this.w=new Q(this,
"1.30.2"),Of(this.w)?b=null:delete this.w);!b&&this.b&&(b=Pf(this))&&(this.m=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.s=null,g.m=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.v=b,g.I=!0);F(g)})}else F(this);this.o.power||(this.A=!0);!c&&this.A&&Qf(this,this.Wa)}else u("Unable to find CPU component")}z(Kf);var Mf=0;
function Lf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.J=b}function mc(a,b,c){var d=b.toLowerCase(),d=Ma[b]||Ma[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Qf(a,b,c){for(var d=A(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Wa(f)){Wa(f,function(){Qf(a,b,c)});return}}b.call(a,c)}
function Rf(a,b){var c=new Q(a,"1.30.2","validate");if(Of(c)&&Sf(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Kf.prototype;
h.Wa=function(a){void 0===a&&(a=this.b||(this.v?1:Mf));if(!this.j){this.j++;var b=!1,c=!1;this.G=!1;var d=this.w||new Q(this,"1.30.2");if(-1==a)b=!0;else if(a>Mf){if(Of(d,this.v)){this.i=new Q(this,"1.30.2","failsafe");Of(this.i)&&(Tf(this,d),a=2,Uf(this.i));this.i.set("timestamp",sa());Vf(this.i);var e=this.b&&!this.m;if(1==a||ua("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Sf(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Of(d,g):("error"==
f&&"no machine state"!=g?(this.F("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.c=null)):this.T(f+": "+g),Uf(d),Of(d)?(c=Sf(d),e=!0):c=!1))}e&&Rf(this,c?d:null)}else 2==a&&d.clear()}else Rf(this);delete this.v;delete this.w}e=A(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=Wf(this,g,d,b,c));b=[d,a,c];-1!=a?Qf(this,this.Gb,b):this.Gb(b)}};
function Wf(a,b,c,d,e){if(!b.l.O){b.l.O=!0;if(b.ja){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ja(f,d)&&f&&(u("Unable to restore state for "+b.type),a.D&&!a.I?(c.clear(),a.b=Mf,window&&window.location.reload()):a.G=!0,b.ja(null),e=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.l.O=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(Wf(this,this.a,b,c,a),this.a.Ua());this.G&&(Tf(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.j=0};
function Tf(a,b){if(ua("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.2"};d.url=a.P;d.user=c;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function Zf(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Q(a,"1.30.2"),g=new Q(a,"1.30.2","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&G(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.O=!1,!1===d&&(e=null)));for(var k=A(a.id),l=0;l<k.length;l++){var n=k[l];n.l.O&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&f.set(n.id,
d)),c&&(n.l.O=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&$f(a,a.c,f.toString()),Vf(g)&&Vf(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.l.O=!1,b=a.o.power)&&(b.textContent="Power");a.j=0;return e}h.reset=function(){this.h&&this.h.reset&&this.h.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.h&&c.reset&&c.reset()}};h.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ka(!0)};
h.stop=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.ka(!0)};
h.$=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.j||(d.l.O?Yf(d,!1,!0):Pf(d,d.Wa))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.l.O&&!d.j)if(d.b&&!d.s){var a=ua("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Yf(d,a,!0);!a&&d.D?window&&window.location.reload():(a||(d.Hb=!0),d.Wa(Lf),d.Hb=!1)}else d.reset(),d.a&&d.a.Ua()},!0;case "save":if(ma(v(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.o[b]=c,c.onclick=function(){var a=Mf(d,!0);if(a){var b=!!(d.b&&!d.s||d.D),c=Yf(d,b);b?Zf(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};
function Mf(a,b){var c=a.c;c||((c=za("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=$f(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function $f(a,b){a.c=null;b=r(v()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.c=b.data)}catch(d){u(d.message+" ("+c+")")}return a.c}function Of(a){var b=null;a.c&&(b=v()+"/api/v1/user?req=load&user="+a.c+"&state="+ag(a,"1.30.2"));return b}
function Zf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ag(a,"1.30.2");d.data=c;b=r(v()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.F("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.F(c),Aa("user",""),a.c=null)}}
function ef(a){var b;a=A(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function rc(a){if(a.Va){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.Va.focus();window&&window.scrollTo(b,c)}}h.ka=function(a){this.a&&this.a.ka(a);this.f&&this.f.ka(a)};
Ha(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Jf(g,d,!0);C(g,f);g.A&&Pf(g,g.Wa)}});Ca.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ua("Computer",c.id))&&c.R&&!c.l.O&&c.Wa(-1)}});Ca.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ua("Computer",c.id))&&c.l.O&&Yf(c,!(!c.b||c.s),!0)}});
function Q(a,b,c){this.id=a.id;this.key=ag(a,b,c);this.C=a.C;Tf(this,a.jc)}function ag(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}
Q.prototype={constructor:Q,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Tf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function Tf(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Uf(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Rf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Nf(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.a=!0):!1}var bg=0;
function cg(a,b,c,d,e,f){e("Loading "+a+"...");r(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):dg(k,a,b,c,d,e,f)})}
function dg(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Sa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?eg(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function eg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);eg(a,b,c)}})}else c(a,null)}
function fg(a,b,c,d){function e(a){if(void 0===k){var b=g&&D(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);l&&(--bg||Ja(!0));l=!1}var g,k,l=!0;bg++;Ra[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));p.appendChild(t)}c||
(c="/versions/pdpjs/1.30.2/components.xsl");n=function(d,k){k?cg(c,null,null,!1,e,function(d,l){l?(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--bg||Ja(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--bg||Ja(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?cg(b,a,d,!0,e,n):dg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){Ja(!1);return fg(a,b,c,d)};window.enableEvents=Ja;window.sendEvent=Ka;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11.map
h.$=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.j||(d.l.O?Zf(d,!1,!0):Qf(d,d.Wa))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.l.O&&!d.j)if(d.b&&!d.s){var a=ua("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Zf(d,a,!0);!a&&d.D?window&&window.location.reload():(a||(d.Hb=!0),d.Wa(Mf),d.Hb=!1)}else d.reset(),d.a&&d.a.Ua()},!0;case "save":if(ma(v(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.o[b]=c,c.onclick=function(){var a=Nf(d,!0);if(a){var b=!!(d.b&&!d.s||d.D),c=Zf(d,b);b?$f(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};
function Nf(a,b){var c=a.c;c||((c=za("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ag(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function ag(a,b){a.c=null;b=r(v()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.c=b.data)}catch(d){u(d.message+" ("+c+")")}return a.c}function Pf(a){var b=null;a.c&&(b=v()+"/api/v1/user?req=load&user="+a.c+"&state="+bg(a,"1.30.2"));return b}
function $f(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=bg(a,"1.30.2");d.data=c;b=r(v()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.F("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.F(c),Aa("user",""),a.c=null)}}
function ff(a){var b;a=A(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function sc(a){if(a.Va){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.Va.focus();window&&window.scrollTo(b,c)}}h.ka=function(a){this.a&&this.a.ka(a);this.f&&this.f.ka(a)};
Ha(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Kf(g,d,!0);C(g,f);g.A&&Qf(g,g.Wa)}});Ca.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ua("Computer",c.id))&&c.R&&!c.l.O&&c.Wa(-1)}});Ca.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ua("Computer",c.id))&&c.l.O&&Zf(c,!(!c.b||c.s),!0)}});
function Q(a,b,c){this.id=a.id;this.key=bg(a,b,c);this.C=a.C;Uf(this,a.jc)}function bg(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}
Q.prototype={constructor:Q,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Uf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function Uf(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Vf(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Sf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Of(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.a=!0):!1}var cg=0;
function dg(a,b,c,d,e,f){e("Loading "+a+"...");r(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):eg(k,a,b,c,d,e,f)})}
function eg(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Sa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?fg(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function fg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);fg(a,b,c)}})}else c(a,null)}
function gg(a,b,c,d){function e(a){if(void 0===k){var b=g&&D(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);l&&(--cg||Ja(!0));l=!1}var g,k,l=!0;cg++;Ra[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));p.appendChild(t)}c||
(c="/versions/pdpjs/1.30.2/components.xsl");n=function(d,k){k?dg(c,null,null,!1,e,function(d,l){l?(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--cg||Ja(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--cg||Ja(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?dg(b,a,d,!0,e,n):eg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){Ja(!1);return gg(a,b,c,d)};window.enableEvents=Ja;window.sendEvent=Ka;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11.map