Debugger commands work with known IOPAGE symbols now

This commit is contained in:
Jeff Parsons 2016-12-05 15:38:46 -08:00 committed by Jeff Parsons
commit 9746891780
8 changed files with 243 additions and 185 deletions

View file

@ -712,7 +712,7 @@ function rq(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)retur
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 sq(a,b,c){var d;if(b){b=tq(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=uq(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&&qq[n]<qq[k[k.length-1]]&&rq(h,k,1);k.push(n);b=b.substr(t+q)}rq(h,k)&&1==h.length||(f=!0);f?c&&a.O("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&vq(a,null,
d))}return d}function tq(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=sq(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?wq(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 uq(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 vq(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 xq(a,b){if(b)return vq(a,b,a.ya[b]);var c=0;for(b in a.ya)vq(a,b,a.ya[b]),c++;return 0<c}
function uq(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=void 0,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 vq(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 xq(a,b){if(b)return vq(a,b,a.ya[b]);var c=0;for(b in a.ya)vq(a,b,a.ya[b]),c++;return 0<c}
function wq(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 yq(a){pq.call(this,a);this.Ja=4;this.Da=5;this.Ba=1048575;this.aa=zq(this);this.Db=zq(this);this.ua=zq(this);this.N=[];this.B=this.ra=this.fa=[];Aq(this);this.Oa=0;Bq(this);this.cb={};Cq(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return Dq(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return Dq(b,a)})}jb(yq,pq);
var Eq={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Fq=[26,28,40,42,109],Gq={"?":"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"},Hq="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(" "),

View file

@ -177,7 +177,7 @@ BusPDP11.IOHANDLER = {
WRITE_BYTE: 1,
READ_WORD: 2,
WRITE_WORD: 3,
NAME: 4,
REG_NAME: 4,
MSG_CATEGORY: 5,
DBG_BREAK: 6
};
@ -272,7 +272,7 @@ BusPDP11.IOController = {
}
if (b >= 0) {
if (DEBUGGER && this.dbg && this.dbg.messageEnabled(MessagesPDP11.BUS | afn[BusPDP11.IOHANDLER.MSG_CATEGORY])) {
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.NAME] + ".readByte(" + this.dbg.toStrBase(addr) + "): " + this.dbg.toStrBase(b), true, !bus.nDisableFaults);
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.REG_NAME] + ".readByte(" + this.dbg.toStrBase(addr) + "): " + this.dbg.toStrBase(b), true, !bus.nDisableFaults);
}
return b;
}
@ -357,7 +357,7 @@ BusPDP11.IOController = {
}
if (fWrite) {
if (DEBUGGER && this.dbg && this.dbg.messageEnabled(MessagesPDP11.BUS | afn[BusPDP11.IOHANDLER.MSG_CATEGORY])) {
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.NAME] + ".writeByte(" + this.dbg.toStrBase(addr) + "," + this.dbg.toStrBase(b) + ")", true, !bus.nDisableFaults);
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.REG_NAME] + ".writeByte(" + this.dbg.toStrBase(addr) + "," + this.dbg.toStrBase(b) + ")", true, !bus.nDisableFaults);
}
return;
}
@ -400,7 +400,7 @@ BusPDP11.IOController = {
}
if (w >= 0) {
if (DEBUGGER && this.dbg && this.dbg.messageEnabled(MessagesPDP11.BUS | afn[BusPDP11.IOHANDLER.MSG_CATEGORY])) {
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.NAME] + ".readWord(" + this.dbg.toStrBase(addr) + "): " + this.dbg.toStrBase(w), true, !bus.nDisableFaults);
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.REG_NAME] + ".readWord(" + this.dbg.toStrBase(addr) + "): " + this.dbg.toStrBase(w), true, !bus.nDisableFaults);
}
return w;
}
@ -448,7 +448,7 @@ BusPDP11.IOController = {
}
if (fWrite) {
if (DEBUGGER && this.dbg && this.dbg.messageEnabled(MessagesPDP11.BUS | afn[BusPDP11.IOHANDLER.MSG_CATEGORY])) {
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.NAME] + ".writeWord(" + this.dbg.toStrBase(addr) + "," + this.dbg.toStrBase(w) + ")", true, !bus.nDisableFaults);
this.dbg.printMessage(afn[BusPDP11.IOHANDLER.REG_NAME] + ".writeWord(" + this.dbg.toStrBase(addr) + "," + this.dbg.toStrBase(w) + ")", true, !bus.nDisableFaults);
}
return;
}
@ -1243,13 +1243,16 @@ BusPDP11.prototype.getMemoryLimit = function(type)
*/
BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte, fnReadWord, fnWriteWord, message, sName)
{
var index = (start == end? -1 : 0);
for (var addr = start; addr <= end; addr += 2) {
var off = addr & BusPDP11.IOPAGE_MASK;
if (this.aIOHandlers[off] !== undefined) {
Component.warning("I/O address already registered: " + str.toHexLong(addr));
return false;
}
this.aIOHandlers[off] = [fnReadByte, fnWriteByte, fnReadWord, fnWriteWord, sName || "unknown", message || MessagesPDP11.BUS, false];
var s = sName || "unknown";
if (s && index >= 0) s += index++;
this.aIOHandlers[off] = [fnReadByte, fnWriteByte, fnReadWord, fnWriteWord, s, message || MessagesPDP11.BUS, false];
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(addr) + ")");
}
return true;
@ -1332,11 +1335,33 @@ BusPDP11.prototype.getAddrInfo = function(addr)
if (addr >= this.addrIOPage) {
var off = addr & BusPDP11.IOPAGE_MASK;
var afn = this.aIOHandlers[off];
if (afn) sName = afn[BusPDP11.IOHANDLER.NAME];
if (afn) sName = afn[BusPDP11.IOHANDLER.REG_NAME];
}
return sName;
};
/**
* getAddrByName(sName)
*
* Determine if the specified name has a corresponding physical address.
*
* @this {BusPDP11}
* @param {string} sName
* @return {number|null}
*/
BusPDP11.prototype.getAddrByName = function(sName)
{
sName = sName.toUpperCase();
for (var i in this.aIOHandlers) {
var off = +i;
var afn = this.aIOHandlers[off];
if (afn[BusPDP11.IOHANDLER.REG_NAME] == sName) {
return off + this.addrIOPage;
}
}
return null;
};
/**
* addResetHandler(fnReset)
*

View file

@ -1250,6 +1250,20 @@ if (DEBUGGER) {
return value;
};
/**
* getSymbolValue(sSymbol)
*
* NOTE: At this time, the only symbols we support are those IOPAGE symbols that the Bus component knows about.
*
* @this {DebuggerPDP11}
* @param {string} sSymbol
* @return {number|undefined|null}
*/
DebuggerPDP11.prototype.getSymbolValue = function(sSymbol)
{
return this.bus.getAddrByName(sSymbol);
};
/**
* replaceRegs(s)
*

View file

@ -179,6 +179,20 @@ if (DEBUGGER) {
return undefined;
};
/**
* getSymbolValue(sSymbol)
*
* NOTE: This must be implemented by the individual debuggers.
*
* @this {Debugger}
* @param {string} sSymbol
* @return {number|undefined|null}
*/
Debugger.prototype.getSymbolValue = function(sSymbol)
{
return undefined;
};
/**
* parseAddrReference(s, sAddr)
*
@ -577,7 +591,12 @@ if (DEBUGGER) {
value = this.getRegValue(iReg);
} else {
value = this.getVariable(sValue);
if (value == null) value = str.parseInt(sValue, this.nBase);
if (value == null) {
value = this.getSymbolValue(sValue);
if (value == null) {
value = str.parseInt(sValue, this.nBase);
}
}
}
if (value == null && !fQuiet) this.println("invalid " + (sName? sName : "value") + ": " + sValue);
} else {

View file

@ -190,7 +190,7 @@ function De(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)retur
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 Ee(a,b,c){var d;if(b){b=Fe(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],q=p.length,p=na(p);if(!p){f=!0;break}p=Ge(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==m.length)break;var p=m[e++],y=p.length;k.length&&Ce[p]<Ce[k[k.length-1]]&&De(h,k,1);k.push(p);b=b.substr(q+y)}De(h,k)&&1==h.length||(f=!0);f?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&He(a,null,
d))}return d}function Fe(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Ee(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Ie(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.aa-a.ma}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Ge(a,b,c,d){var e;null!=b?(e=a.Sb(b),0<=e?e=a.Tb(e):(e=a.da[b],null==e&&(e=aa(b,a.Wa))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ge(a,b,c,d){var e;null!=b?(e=a.Sb(b),0<=e?e=a.Tb(e):(e=a.da[b],null==e&&(e=void 0,null==e&&(e=aa(b,a.Wa)))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function He(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,m=void 0,p=8,q="";p?32<p&&(p=32):p=32;for(var y=null==k||isNaN(k),u=m=m||p;0<p--;)u||(q=","+q,u=m),q=(y?"?":k&1?"1":"0")+q,k>>=1,u--;g=q+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 Je(a,b){if(b)return He(a,b,a.da[b]);var c=0;for(b in a.da)He(a,b,a.da[b]),c++;return 0<c}function Ie(a,b){switch(a.Wa){case 8:a=ba(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}
function Ke(a){Be.call(this,a);this.style=Le;this.L=X();this.Va=X();this.ba=X();this.D=[];this.F=this.N=this.B=[];Me(this);this.ia=0;Ne(this);this.va={};Oe(this,a.messages);this.Ca=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(Ke,Be);

View file

@ -712,7 +712,7 @@ function rq(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)retur
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 sq(a,b,c){var d;if(b){b=tq(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=uq(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&&qq[n]<qq[k[k.length-1]]&&rq(h,k,1);k.push(n);b=b.substr(t+q)}rq(h,k)&&1==h.length||(f=!0);f?c&&a.O("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&vq(a,null,
d))}return d}function tq(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=sq(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?wq(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 uq(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 vq(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 xq(a,b){if(b)return vq(a,b,a.ya[b]);var c=0;for(b in a.ya)vq(a,b,a.ya[b]),c++;return 0<c}
function uq(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=void 0,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 vq(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 xq(a,b){if(b)return vq(a,b,a.ya[b]);var c=0;for(b in a.ya)vq(a,b,a.ya[b]),c++;return 0<c}
function wq(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 yq(a){pq.call(this,a);this.Ja=4;this.Da=5;this.Ba=1048575;this.aa=zq(this);this.Db=zq(this);this.ua=zq(this);this.N=[];this.B=this.ra=this.fa=[];Aq(this);this.Oa=0;Bq(this);this.cb={};Cq(this,a.messages);this.qb=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return Dq(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return Dq(b,a)})}jb(yq,pq);
var Eq={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Fq=[26,28,40,42,109],Gq={"?":"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"},Hq="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(" "),

View file

@ -34,9 +34,9 @@
*/
for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da<ca.length-1;da++){var ea=ca[da];ea in ba||(ba[ea]={});ba=ba[ea]}var fa=ca[ca.length-1],ia=ba[fa],ja=ia?ia:function(a){return Math.log(a)/Math.LN2};
ja!=ia&&null!=ja&&aa(ba,fa,{configurable:!0,writable:!0,value:ja});
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},ma={If:0,Zc:1,Kf:2,Lf:3,Mf:4,Nf:5,Of:6,Pf:7,Bc:8,Qf:9,$c:10,Rf:11,Sf:12,ad:13,Tf:14,Uf:15,Vf:16,Wf:17,Xf:18,Yf:19,Zf:20,$f:21,ag:22,bg:23,cg:24,dg:25,eg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,zc:65,Hf:66,Jf:67,fg:68,E:69,gg:70,hg:71,ig:72,jg:73,kg:74,lg:75,mg:76,ng:77,og:78,pg:79,qg:80,Q:81,rg:82,sg:83,tg:84,ug:85,vg:86,wg:87,xg:88,yg:89,jd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,zg:97,Ag:98,Bg:99,d:100,e:101,Dg:102,Eg:103,Fg:104,Gg:105,Jg:106,k:107,Kg:108,Lg:109,n:110,Mg:111,p:112,q:113,r:114,Ng:115,t:116,Pg:117,Qg:118,Rg:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,bd:127};
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},ma={Jf:0,$c:1,Lf:2,Mf:3,Nf:4,Of:5,Pf:6,Qf:7,Bc:8,Rf:9,ad:10,Sf:11,Tf:12,bd:13,Uf:14,Vf:15,Wf:16,Xf:17,Yf:18,Zf:19,$f:20,ag:21,bg:22,cg:23,dg:24,eg:25,fg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,zc:65,If:66,Kf:67,gg:68,E:69,hg:70,ig:71,jg:72,kg:73,lg:74,mg:75,ng:76,og:77,pg:78,qg:79,rg:80,Q:81,sg:82,tg:83,ug:84,vg:85,wg:86,xg:87,yg:88,zg:89,kd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ag:97,Bg:98,Cg:99,d:100,e:101,Eg:102,Fg:103,Gg:104,Hg:105,Kg:106,k:107,Lg:108,Mg:109,n:110,Ng:111,p:112,q:113,r:114,Og:115,t:116,Qg:117,Rg:118,Sg:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,cd:127};
function na(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function oa(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function p(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
function q(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function v(a){return q(a,4,!0)}function w(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
@ -45,105 +45,105 @@ var Aa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9
function Da(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ea(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Fa(a,b){var c,d={ha:null,ja:null,Va:null,Ua:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Va=g.load;d.Ua=g.exec;if(e=g.bytes)d.ha=e;else if(e=g.words)for(d.ha=Array(2*e.length),f=c=0;c<e.length;c++)d.ha[f++]=e[c]&255,d.ha[f++]=e[c]>>8&255;else if(e=g.data)for(d.ha=Array(4*e.length),f=c=0;c<e.length;c++)d.ha[f++]=
function Fa(a,b){var c,d={ha:null,ja:null,Wa:null,Va:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Wa=g.load;d.Va=g.exec;if(e=g.bytes)d.ha=e;else if(e=g.words)for(d.ha=Array(2*e.length),f=c=0;c<e.length;c++)d.ha[f++]=e[c]&255,d.ha[f++]=e[c]>>8&255;else if(e=g.data)for(d.ha=Array(4*e.length),f=c=0;c<e.length;c++)d.ha[f++]=
e[c]&255,d.ha[f++]=e[c]>>8&255,d.ha[f++]=e[c]>>16&255,d.ha[f++]=e[c]>>24&255;else d.ha=g;d.ja=g.symbols;d.ha.length?1==d.ha.length&&(x(d.ha[0]),d=null):(x("Empty resource: "+a),d=null)}catch(h){x("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){x("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ha=e)}return d}
function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}function x(a){window&&window.alert(a)}function Ha(a){var b=!1;window&&(b=window.confirm(a));return b}var Ia=null;function Ja(){if(null==Ia){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ia=a}return Ia}
function Ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}
function Pa(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function 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 Ta={init:[],show:[],exit:[]},Za=!1,$a=!1,ab=!0;function bb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function cb(a){Ta.init.push(a)}
function db(a){if(ab)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function eb(a){!ab&&a?(ab=!0,Za&&fb("init"),$a&&fb("show")):ab=a}function fb(a){Ta[a]&&db(Ta[a])}bb("onload",function(){Za=!0;db(Ta.init)});bb("onpageshow",function(){$a=!0;db(Ta.show)});bb(Oa("Opera")||Oa("iOS")?"onunload":"onbeforeunload",function(){db(Ta.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Fc=b.comment;this.qd=b;b=this.id.indexOf(".");0>b?this.mb=this.id:(this.nb=this.id.substr(0,b),this.mb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,ob:!1,oc:!1,la:!1,error:!1};this.dc=null;this.C.error=!1;this.D={};this.i=null;this.pa=d||0;B.push(this)}var gb=void 0,hb={};
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 Ta={init:[],show:[],exit:[]},Ua=!1,$a=!1,ab=!0;function bb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function cb(a){Ta.init.push(a)}
function db(a){if(ab)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function eb(a){!ab&&a?(ab=!0,Ua&&fb("init"),$a&&fb("show")):ab=a}function fb(a){Ta[a]&&db(Ta[a])}bb("onload",function(){Ua=!0;db(Ta.init)});bb("onpageshow",function(){$a=!0;db(Ta.show)});bb(Oa("Opera")||Oa("iOS")?"onunload":"onbeforeunload",function(){db(Ta.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Fc=b.comment;this.rd=b;b=this.id.indexOf(".");0>b?this.mb=this.id:(this.nb=this.id.substr(0,b),this.mb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,ob:!1,oc:!1,la:!1,error:!1};this.dc=null;this.C.error=!1;this.D={};this.i=null;this.pa=d||0;B.push(this)}var gb=void 0,hb={};
if(window){gb||(gb=window.location.search.substr(1));for(var ib,jb=/\+/g,kb=/([^&=]+)=?([^&]*)/g;ib=kb.exec(gb);)hb[decodeURIComponent(ib[1].replace(jb," "))]=decodeURIComponent(ib[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 E(a,b){b||(b=z);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={}),B=window.PCjs.Components||(window.PCjs.Components=[])}else mb={},B=[];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<B.length;b++){var d=B[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function pb(a){if(void 0!==a){var b;for(b=0;b<B.length;b++)if(B[b].id===a)return B[b]}return null}function 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<B.length;d++)if(c)c==B[d]&&(c=null);else if(!(a!=B[d].type||b&&B[d].id.indexOf(b)))return B[d]}return null}function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function G(a,b){b=H(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=F(f))&&g.binding&&a.ya(g.type,g.binding,f,g.value),l=h.length}}}}
function H(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}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ya:function(a,b,c){switch(b){case "clear":return this.D[b]||(this.D[b]=c,c.onclick=function(a){return function(){a.D.print&&(a.D.print.value="")}}(this)),!0;case "print":return this.D[b]||(this.gb=this.D[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.M=function(a){this.j(a,this.mb)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.mb+": "+a)},M:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},La:function(){return this.C.la=!0},Ka:function(a,b){b&&(this.C.la=!1);return!0}};function I(a,b,c,d){a.i&&(!0===c||K(a,c|0))&&a.i.message(b,d)}function K(a,b){if(a.i){a===a.i?b|=0:b=b||a.pa;var c=a.i.pa&b;return!!b&&c===b||!!(c&a.i.rd)}return!1}
this.M=function(a){this.j(a,this.mb)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.mb+": "+a)},M:function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)},Ma:function(){return this.C.la=!0},La:function(a,b){b&&(this.C.la=!1);return!0}};function I(a,b,c,d){a.i&&(!0===c||K(a,c|0))&&a.i.message(b,d)}function K(a,b){if(a.i){a===a.i?b|=0:b=b||a.pa;var c=a.i.pa&b;return!!b&&c===b||!!(c&a.i.sd)}return!1}
function wb(a,b){if(a.C.oc)return a.C.ob=!1,a.C.oc=!1;if(a.C.error)return a.j(a.toString()+" error"),!1;a.C.ob=b;return a.C.ob}function xb(a,b){a.C.ob&&(b?a.C.oc=!0:void 0===b&&a.j(a.toString()+" busy"));return a.C.ob}function L(a,b){a.C.error||(a.C.ready=!1!==b,a.C.ready&&(b=a.dc,a.dc=null,b&&b()))}function yb(a,b){b&&(a.C.ready?b():a.dc=b);return a.C.ready}function zb(a){return a.C.error?(a.j(a.toString()+" error"),!0):!1}function Ab(a,b){a.C.error=!0;a.M(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 Bb="undefined"!==typeof ArrayBuffer,Cb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Db={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},Eb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,
buffer:1073741824,halt:-2147483648};function Fb(a){z.call(this,"Panel",a,Fb,512);this.Da=this.v=this.kb=this.Cb=this.A=this.F=0;this.I=this.K=this.H=!1;this.L=Gb;this.g={};this.f={START:[1,1,!0,!1,this.Hd],STEP:[1,1,!1,!1,this.Id],ENABLE:[1,1,!1,!1,this.Dd],CONT:[1,1,!0,!1,this.Bd],DEP:[0,0,!0,!1,this.Cd],EXAM:[1,1,!0,!1,this.Ed],LOAD:[1,1,!0,!1,this.Gd],TEST:[0,0,!0,!1,this.Fd]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Jd,a]}E(Fb);var Gb=7;function Hb(a,b){return a.f[b]&&a.f[b][1]}k=Fb.prototype;
buffer:1073741824,halt:-2147483648};function Fb(a){z.call(this,"Panel",a,Fb,512);this.Da=this.v=this.kb=this.Cb=this.A=this.F=0;this.I=this.K=this.H=!1;this.L=Gb;this.g={};this.f={START:[1,1,!0,!1,this.Id],STEP:[1,1,!1,!1,this.Jd],ENABLE:[1,1,!1,!1,this.Ed],CONT:[1,1,!0,!1,this.Cd],DEP:[0,0,!0,!1,this.Dd],EXAM:[1,1,!0,!1,this.Fd],LOAD:[1,1,!0,!1,this.Hd],TEST:[0,0,!0,!1,this.Gd]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Kd,a]}E(Fb);var Gb=7;function Hb(a,b){return a.f[b]&&a.f[b][1]}k=Fb.prototype;
k.reset=function(){this.stop()};
k.ya=function(a,b,c,d){if(this.B&&this.B.ya(a,b,c,d)||this.b&&this.b.ya(a,b,c,d)||this.i&&this.i.ya(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.D[b]=c,this.F++,!0;default:return"led"==a||"rled"==a?(this.D[b]=c,this.g[b]=d?1:0,this.F++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0,d?1:0]),this.D[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Jb(a,b)}}(this,b),!0):this.parent.ya.call(this,a,b,c,d)}};k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;Kb(b,this,Lb);Mb(b,this.reset.bind(this));Nb(this);Ob(this)};k.La=function(a,b){b||(Pb(),this.reset());return!0};k.Ka=function(){return!0};
b){return function(){Ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Jb(a,b)}}(this,b),!0):this.parent.ya.call(this,a,b,c,d)}};k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;Kb(b,this,Lb);Mb(b,this.reset.bind(this));Nb(this);Ob(this)};k.Ma=function(a,b){b||(Pb(),this.reset());return!0};k.La=function(){return!0};
function Qb(a,b,c){if(a=a.D[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Nb(a,b){for(var c in a.g)Qb(a,c,null!=b?b:a.g[c])}function Rb(a,b,c){if(a=a.D[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ob(a){for(var b in a.f)Rb(a,b,a.f[b][1])}function Sb(a,b,c,d){a.D[b]&&(void 0===c&&(Ab(a,"Value for "+b+" is invalid"),a.b.fa()),c=8==(a.i&&a.i.ma||8)?p(c,d):q(c,d),a.D[b].textContent!=c&&(a.D[b].textContent=c))}
function Ib(a,b){var c=a.f[b];Rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.I="DEP"==b,a.K="EXAM"==b)}function Jb(a,b){var c=a.f[b];c[2]&&c[3]&&(Rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Hd=function(a){a||this.b.C.U||(a=this.b,a.w.reset(),Tb(a),Hb(this,"ENABLE")&&this.b.lb())};k.Id=function(){};k.Dd=function(a){a||this.b.fa()};
k.Bd=function(a){if(!a&&!this.b.C.U)if(Hb(this,"ENABLE"))this.b.lb();else{if((a=this.i)&&!xb(a,!0))wb(a,!0),a.sb(0,null),wb(a,!1);else try{var b=this.b.sb(1);0<b&&(Ub(this.b,b),Vb(this.b,b,!0),Wb(this.b,b))}catch(c){"number"!=typeof c&&Ab(this.b,c.stack||c.message)}this.stop();this.B&&this.B.za()}};k.Cd=function(a){if(a&&!this.b.C.U)if(this.I&&Xb(this),a=Yb(this,this.kb),this.L==Gb)Zb(this.w,this.Da,a);else{var b=this.b,c=this.Da;b.K++;b.xc(mc(b,c,4),a);b.K--}};
k.Ed=function(a){a||this.b.C.U||(this.K&&Xb(this),a=this.L==Gb?nc(this.w,this.Da):oc(this.b,this.Da),Yb(this,a))};k.Gd=function(a){a||this.b.C.U||pc(this,this.kb)};k.Fd=function(a){a?(this.H=!0,Nb(this,!0)):(this.H=!1,Nb(this),qc(this,0))};k.Jd=function(a,b){this.kb=a?this.kb|1<<b:this.kb&~(1<<b)};function Xb(a){var b=1145>a.b.ab?8:16,c=65472<=a.Da&&a.Da<65472+b,b=c?1:2,c=c?15:a.w.Mb;Hb(a,"STEP")||(b=-b);pc(a,a.Da&~c|a.Da+b&c)}
function pc(a,b){a.Da=b&a.w.Mb;b=a.Da;for(var c=0;22>c;c++)rc(a,"A"+c,b&1<<c)}function Yb(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)rc(a,"D"+c,b&1<<c);return a.v}function rc(a,b,c){a.g[b]=c;a.H||Qb(a,b,c)}function sc(a){return void 0!==a.D.S0}function qc(a,b){if(sc(a)){a.kb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Ob(a)}}k.stop=function(){pc(this,this.b.u[7])};k.vc=function(a){this.Da=a};k.setData=function(a,b){b?this.Cb=a:this.v=a};k.Kd=function(a,b){return(b?this.Cb:this.kb)&65535};
k.Ke=function(a){this.Cb=a};var tc={},Lb=(tc[65400]=[null,null,Fb.prototype.Kd,Fb.prototype.Ke,"CNSW"],tc);function Pb(){for(var a=!1,b=H(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=F(d),f=pb(e.id);f||(a=!0,f=new Fb(e));G(f,d);a&&L(f)}}cb(Pb);
function uc(a,b,c){z.call(this,"Bus",a,uc,16);this.b=b;this.i=c;this.N=a.busWidth||16;this.A=1<<this.N;this.Mb=this.A-1;this.Ja=vc;this.ra=Math.log2(this.Ja);this.L=this.Ja>>2;this.w=this.Ja-1;this.v=this.A/this.Ja|0;this.eb=[];this.sa=0;this.B=!1;this.F=[];this.md=[wc,xc,yc,zc];a=new M(this);Ac(a,this.i);this.da=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.da[b]=this.f[b]=a;this.Qa=this.A-vc;Bc(this,this.Qa,vc,Cc,this);this.K=this.I=(this.Qa&this.Mb)>>>this.ra;this.H=0;this.g=this.Mb;
L(this)}E(uc);var vc=8192,Dc=vc-1;function wc(a,b){var c=-1,d=this.controller,e=d.eb[a];this.i&&Ec(this.i,b,1);var f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.eb[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.i&&K(this.i,16|e[5])&&I(this.i,e[4]+".readByte("+N(this.i,b)+"): "+N(this.i,c),!0,!d.sa),c;d.Sa(b,16,3);c=255;this.i&&K(this.i,16)&&I(this.i,"warning: unconverted read access to byte @"+N(this.i,b)+": "+N(this.i,c),!0,!d.sa);return c}
function xc(a,b,c){var d=!1,e=this.controller,f=e.eb[a];this.i&&Fc(this.i,c,1);var g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.eb[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.i&&K(this.i,16|f[5])&&I(this.i,f[4]+".writeByte("+N(this.i,c)+","+N(this.i,b)+")",!0,!e.sa):(e.Sa(c,16,5),this.i&&K(this.i,16)&&I(this.i,"warning: unconverted write access to byte @"+
N(this.i,c)+": "+N(this.i,b),!0,!e.sa))}function yc(a,b){var c=-1,d=this.controller;a=d.eb[a];this.i&&Ec(this.i,b,2);var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.i&&K(this.i,16|a[5])&&I(this.i,a[4]+".readWord("+N(this.i,b)+"): "+N(this.i,c),!0,!d.sa),c;d.Sa(b,16,2);c=65535;this.i&&K(this.i,16)&&I(this.i,"warning: unconverted read access to word @"+N(this.i,b)+": "+N(this.i,c),!0,!d.sa);return c}
function zc(a,b,c){var d=!1,e=this.controller;a=e.eb[a];this.i&&Fc(this.i,c,2);var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.i&&K(this.i,16|a[5])&&I(this.i,a[4]+".writeWord("+N(this.i,c)+","+N(this.i,b)+")",!0,!e.sa):(e.Sa(c,16,4),this.i&&K(this.i,16)&&I(this.i,"warning: unconverted write access to word @"+N(this.i,c)+": "+N(this.i,b),!0,!e.sa))}
function Gc(a,b){if(b!=a.H){for(var c=0;c<a.v;c++)a.f[c]=a.da[c];a.H=0;a.g=a.Mb;b&&(a.H=b,b=1<<b,a.g=b-1,b-=vc,a.K=(b&a.g)>>>a.ra,a.f[a.K]=a.da[a.I])}}k=uc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Gc(this,16)};k.La=function(a,b){b||this.reset();return!0};
function Bc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ra;0<g&&h<a.da.length;){var l=a.da[h],m=h*a.Ja,n=a.Ja-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.G)return l.Sb+=l.G-f,l.G=f,!0;if(f>=l.G+l.Sb){n=l.size-(f-m);n>g&&(n=g);l.Sb=f-l.G+n;f=m+a.Ja;g-=n;h++;continue}}return Hc(1,f,g)}f=new M(a,f,n,a.Ja,d,e);Ac(f,a.i,l);a.da[h++]=f;f=m+a.Ja;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Ic[d]+" at "+p(b)),!0):Hc(2,b,c)}k.fc=function(a){return this.f[(a&this.g)>>>this.ra].gc(a&this.w,a)};
function Ib(a,b){var c=a.f[b];Rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.I="DEP"==b,a.K="EXAM"==b)}function Jb(a,b){var c=a.f[b];c[2]&&c[3]&&(Rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Id=function(a){a||this.b.C.U||(a=this.b,a.w.reset(),Tb(a),Hb(this,"ENABLE")&&this.b.lb())};k.Jd=function(){};k.Ed=function(a){a||this.b.fa()};
k.Cd=function(a){if(!a&&!this.b.C.U)if(Hb(this,"ENABLE"))this.b.lb();else{if((a=this.i)&&!xb(a,!0))wb(a,!0),a.sb(0,null),wb(a,!1);else try{var b=this.b.sb(1);0<b&&(Ub(this.b,b),Vb(this.b,b,!0),Wb(this.b,b))}catch(c){"number"!=typeof c&&Ab(this.b,c.stack||c.message)}this.stop();this.B&&this.B.za()}};k.Dd=function(a){if(a&&!this.b.C.U)if(this.I&&Xb(this),a=Yb(this,this.kb),this.L==Gb)Zb(this.w,this.Da,a);else{var b=this.b,c=this.Da;b.K++;b.xc(mc(b,c,4),a);b.K--}};
k.Fd=function(a){a||this.b.C.U||(this.K&&Xb(this),a=this.L==Gb?nc(this.w,this.Da):oc(this.b,this.Da),Yb(this,a))};k.Hd=function(a){a||this.b.C.U||pc(this,this.kb)};k.Gd=function(a){a?(this.H=!0,Nb(this,!0)):(this.H=!1,Nb(this),qc(this,0))};k.Kd=function(a,b){this.kb=a?this.kb|1<<b:this.kb&~(1<<b)};function Xb(a){var b=1145>a.b.bb?8:16,c=65472<=a.Da&&a.Da<65472+b,b=c?1:2,c=c?15:a.w.Mb;Hb(a,"STEP")||(b=-b);pc(a,a.Da&~c|a.Da+b&c)}
function pc(a,b){a.Da=b&a.w.Mb;b=a.Da;for(var c=0;22>c;c++)rc(a,"A"+c,b&1<<c)}function Yb(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)rc(a,"D"+c,b&1<<c);return a.v}function rc(a,b,c){a.g[b]=c;a.H||Qb(a,b,c)}function sc(a){return void 0!==a.D.S0}function qc(a,b){if(sc(a)){a.kb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Ob(a)}}k.stop=function(){pc(this,this.b.u[7])};k.vc=function(a){this.Da=a};k.setData=function(a,b){b?this.Cb=a:this.v=a};k.Ld=function(a,b){return(b?this.Cb:this.kb)&65535};
k.Le=function(a){this.Cb=a};var tc={},Lb=(tc[65400]=[null,null,Fb.prototype.Ld,Fb.prototype.Le,"CNSW"],tc);function Pb(){for(var a=!1,b=H(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=F(d),f=pb(e.id);f||(a=!0,f=new Fb(e));G(f,d);a&&L(f)}}cb(Pb);
function uc(a,b,c){z.call(this,"Bus",a,uc,16);this.b=b;this.i=c;this.N=a.busWidth||16;this.A=1<<this.N;this.Mb=this.A-1;this.Ka=vc;this.ra=Math.log2(this.Ka);this.L=this.Ka>>2;this.w=this.Ka-1;this.v=this.A/this.Ka|0;this.Ua=[];this.sa=0;this.B=!1;this.F=[];this.nd=[wc,xc,yc,zc];a=new M(this);Ac(a,this.i);this.da=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.da[b]=this.f[b]=a;this.Ha=this.A-vc;Bc(this,this.Ha,vc,Cc,this);this.K=this.I=(this.Ha&this.Mb)>>>this.ra;this.H=0;this.g=this.Mb;
L(this)}E(uc);var vc=8192,Dc=vc-1;function wc(a,b){var c=-1,d=this.controller,e=d.Ua[a];this.i&&Ec(this.i,b,1);var f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ua[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.i&&K(this.i,16|e[5])&&I(this.i,e[4]+".readByte("+N(this.i,b)+"): "+N(this.i,c),!0,!d.sa),c;d.Sa(b,16,3);c=255;this.i&&K(this.i,16)&&I(this.i,"warning: unconverted read access to byte @"+N(this.i,b)+": "+N(this.i,c),!0,!d.sa);return c}
function xc(a,b,c){var d=!1,e=this.controller,f=e.Ua[a];this.i&&Fc(this.i,c,1);var g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ua[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.i&&K(this.i,16|f[5])&&I(this.i,f[4]+".writeByte("+N(this.i,c)+","+N(this.i,b)+")",!0,!e.sa):(e.Sa(c,16,5),this.i&&K(this.i,16)&&I(this.i,"warning: unconverted write access to byte @"+
N(this.i,c)+": "+N(this.i,b),!0,!e.sa))}function yc(a,b){var c=-1,d=this.controller;a=d.Ua[a];this.i&&Ec(this.i,b,2);var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.i&&K(this.i,16|a[5])&&I(this.i,a[4]+".readWord("+N(this.i,b)+"): "+N(this.i,c),!0,!d.sa),c;d.Sa(b,16,2);c=65535;this.i&&K(this.i,16)&&I(this.i,"warning: unconverted read access to word @"+N(this.i,b)+": "+N(this.i,c),!0,!d.sa);return c}
function zc(a,b,c){var d=!1,e=this.controller;a=e.Ua[a];this.i&&Fc(this.i,c,2);var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.i&&K(this.i,16|a[5])&&I(this.i,a[4]+".writeWord("+N(this.i,c)+","+N(this.i,b)+")",!0,!e.sa):(e.Sa(c,16,4),this.i&&K(this.i,16)&&I(this.i,"warning: unconverted write access to word @"+N(this.i,c)+": "+N(this.i,b),!0,!e.sa))}
function Gc(a,b){if(b!=a.H){for(var c=0;c<a.v;c++)a.f[c]=a.da[c];a.H=0;a.g=a.Mb;b&&(a.H=b,b=1<<b,a.g=b-1,b-=vc,a.K=(b&a.g)>>>a.ra,a.f[a.K]=a.da[a.I])}}k=uc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Gc(this,16)};k.Ma=function(a,b){b||this.reset();return!0};
function Bc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ra;0<g&&h<a.da.length;){var l=a.da[h],m=h*a.Ka,n=a.Ka-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.G)return l.Sb+=l.G-f,l.G=f,!0;if(f>=l.G+l.Sb){n=l.size-(f-m);n>g&&(n=g);l.Sb=f-l.G+n;f=m+a.Ka;g-=n;h++;continue}}return Hc(1,f,g)}f=new M(a,f,n,a.Ka,d,e);Ac(f,a.i,l);a.da[h++]=f;f=m+a.Ka;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Ic[d]+" at "+p(b)),!0):Hc(2,b,c)}k.fc=function(a){return this.f[(a&this.g)>>>this.ra].gc(a&this.w,a)};
k.xa=function(a){return this.f[(a&this.g)>>>this.ra].Ca(a&this.w,a)};k.Rb=function(a,b){this.f[(a&this.g)>>>this.ra].jc(a&this.w,b,a)};k.Fb=function(a,b){this.f[(a&this.g)>>>this.ra].ac(a&this.w,b,a)};function Jc(a,b){return a.da[(b&a.Mb)>>>a.ra]}function nc(a,b){a.B=!1;a.sa++;b=Jc(a,b).K(b&a.w,b);a.sa--;return b}function Kc(a,b,c){a.B=!1;a.sa++;Jc(a,b).H(b&a.w,c&255,b);a.sa--}function Zb(a,b,c){a.B=!1;a.sa++;Jc(a,b).N(b&a.w,c&65535,b);a.sa--}
function Lc(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.da[d];if(e.hb||e.wd){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 Mc(a){for(var b=Nc,c=0,d=0;d<a.da.length;d++){var e=a.da[d];e.type==b&&(c=e.G+e.Sb)}return c}
function Oc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&Dc;if(void 0!==a.eb[m])return x("I/O address already registered: "+q(b,8,!0)),!1;a.eb[m]=[d,e,f,g,l||"unknown",h||16,!1]}return!0}
function Kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.ab)){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;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 u=g[4],r=g[5]||1,t=0;t<r;t++,f+=2)if(u&&1<r&&(u=g[4]+t),!Oc(a,f,f,h,l,m,n,g[7]||b.pa,u||b.mb))return!1}}return!0}
k.ec=function(a){var b=null;a>=this.Qa&&(a=this.eb[a&Dc])&&(b=a[4]);return b};function Mb(a,b){a.F.push(b)}k.Sa=function(a,b,c){this.B=!0;this.sa||(this.i&&K(this.i,4)&&I(this.i,"memory fault ("+c+") on "+N(this.i,a),!0,!0),b&&(this.b.oa|=b),this.b.ua(4,0,a))};function Pc(a){var b=a.B;a.B=!1;return b}function Hc(a,b,c){x("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}function O(a){z.call(this,"Device",a,O,256);this.f={Cg:0,wc:-1}}E(O);k=O.prototype;
k.Ha=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.i=d;var e=this;this.f.wc=Qc(c,function(){e.f.Lb|=128;e.f.Lb&64&&Rc(e.b,e.f.Kb);e.B&&e.B.za(1);Sc(e.b,e.f.wc,1E3/60)});this.f.Kb=Tc(c,64,6,524288);Kb(b,this,Uc);Mb(b,this.reset.bind(this));d&&cd(d,64,function(a){var b=e.b;P(e,"KIPDR",b.R[0],0,a[0]);P(e,"KDPDR",b.R[0],8,a[0]);P(e,"KIPAR",b.ga[0],0,a[0]);P(e,"KDPAR",b.ga[0],8,a[0],!0);P(e,"SIPDR",b.R[1],0,a[0]);P(e,"SDPDR",b.R[1],8,a[0]);P(e,"SIPAR",b.ga[1],0,a[0]);P(e,"SDPAR",b.ga[1],8,a[0],!0);
P(e,"UIPDR",b.R[3],0,a[0]);P(e,"UDPDR",b.R[3],8,a[0]);P(e,"UIPAR",b.ga[3],0,a[0]);P(e,"UDPAR",b.ga[3],8,a[0],!0);b.Ma&32&&P(e,"UNIMAP",b.Eb,-1,a[0])});L(this)};function P(a,b,c,d,e,f){a=a.i;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",h=!1,l=0,m=8;0>d&&(e=c.length,d=0,h=!0,m=l=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(h?"["+p(n,2)+"]":"")+":"),g+=" "+N(a,c[d+n],l);a.j(g+(f?"\n":""))}}k.reset=function(){this.f.Lb=128;Sc(this.b,this.f.wc,1E3/60,!0)};k.Rd=function(){return this.f.Lb};
k.Re=function(a){this.f.Lb=a&192;this.f.Lb&64||dd(this.b,this.f.Kb)};k.Td=function(){return ed(this.b)};k.Te=function(a){fd(this.b,a&-129|this.b.Ea&128)};k.Ud=function(){return gd(this.b)};k.Vd=function(){return hd(this.b)};k.Wd=function(){return this.b.Ma};k.Ue=function(a){id(this.b,a)};k.De=function(a){a=a>>1&63;var b=this.b.Eb[a>>1];return a&1?b>>16:b&65535};k.Df=function(a,b){b=b>>1&63;var c=b>>1;this.b.Eb[c]=b&1?this.b.Eb[c]&65535|(a&63)<<16:this.b.Eb[c]&-65536|a&65534};
k.we=function(a){return this.b.R[1][a>>1&7]};k.wf=function(a,b){this.b.R[1][b>>1&7]=a&65295};k.ue=function(a){return this.b.R[1][(a>>1&7)+8]};k.uf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.ve=function(a){return this.b.ga[1][a>>1&7]};k.vf=function(a,b){b=b>>1&7;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.te=function(a){return this.b.ga[1][(a>>1&7)+8]};k.tf=function(a,b){b=(b>>1&7)+8;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.Qd=function(a){return this.b.R[0][a>>1&7]};
k.Qe=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Od=function(a){return this.b.R[0][(a>>1&7)+8]};k.Oe=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Pd=function(a){return this.b.ga[0][a>>1&7]};k.Pe=function(a,b){b=b>>1&7;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Nd=function(a){return this.b.ga[0][(a>>1&7)+8]};k.Ne=function(a,b){b=(b>>1&7)+8;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Ce=function(a){return this.b.R[3][a>>1&7]};k.Cf=function(a,b){this.b.R[3][b>>1&7]=a&65295};
k.Ae=function(a){return this.b.R[3][(a>>1&7)+8]};k.Af=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};k.Be=function(a){return this.b.ga[3][a>>1&7]};k.Bf=function(a,b){b=b>>1&7;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.ze=function(a){return this.b.ga[3][(a>>1&7)+8]};k.zf=function(a,b){b=(b>>1&7)+8;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Pb=function(a){a&=7;return this.b.O&2048?this.b.bb[a]:this.b.u[a]};k.Tb=function(a,b){b&=7;this.b.O&2048?this.b.bb[b]=a:this.b.u[b]=a};
k.ae=function(){return this.b.O&49152?this.b.Na[0]:this.b.u[6]};k.Ze=function(a){this.b.O&49152?this.b.Na[0]=a:this.b.u[6]=a};k.de=function(){return this.b.u[7]};k.bf=function(a){this.b.u[7]=a};k.Qb=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.bb[a]};k.Ub=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.bb[b]=a};k.be=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Na[1]};k.$e=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Na[1]=a};
k.ce=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Na[3]};k.af=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Na[3]=a};k.Md=function(a){return this.b.tc[a-65504>>1]};k.Me=function(a,b){this.b.tc[b-65504>>1]=a};k.Uc=function(a){return 65520==a?(Mc(this.w)>>6)-1:0};k.Yc=function(){};k.ye=function(){return 1};k.yf=function(){};k.Ld=function(){return this.b.oa};k.Le=function(){this.b.oa=0};k.Sd=function(){return this.b.sc};k.Se=function(a,b){b&1||(a&=255);this.b.sc=a};
k.Xd=function(a,b){return b?0:this.b.Db};k.Ve=function(a){jd(this.b,a)};k.xe=function(a,b){return b?0:this.b.jb&65280};k.xf=function(a){this.b.jb=a|255};k.$d=function(){return kd(this.b)};k.Ye=function(a){ld(this.b,a)};k.Xc=function(a,b){K(this)&&I(this,"writeIgnored("+p(b)+"): "+p(a),!0,!0)};
var Q={},Uc=(Q[61568]=[null,null,O.prototype.De,O.prototype.Df,"UNIMAP",64,1170],Q[62592]=[null,null,O.prototype.we,O.prototype.wf,"SIPDR",8,1145,64],Q[62608]=[null,null,O.prototype.ue,O.prototype.uf,"SDPDR",8,1145,64],Q[62624]=[null,null,O.prototype.ve,O.prototype.vf,"SIPAR",8,1145,64],Q[62640]=[null,null,O.prototype.te,O.prototype.tf,"SDPAR",8,1145,64],Q[62656]=[null,null,O.prototype.Qd,O.prototype.Qe,"KIPDR",8,1145,64],Q[62672]=[null,null,O.prototype.Od,O.prototype.Oe,"KDPDR",8,1145,64],Q[62688]=
[null,null,O.prototype.Pd,O.prototype.Pe,"KIPAR",8,1145,64],Q[62704]=[null,null,O.prototype.Nd,O.prototype.Ne,"KDPAR",8,1145,64],Q[62798]=[null,null,O.prototype.Wd,O.prototype.Ue,"MMR3",1,1145,64],Q[65382]=[null,null,O.prototype.Rd,O.prototype.Re,"LKS"],Q[65402]=[null,null,O.prototype.Td,O.prototype.Te,"MMR0",1,1145,64],Q[65404]=[null,null,O.prototype.Ud,O.prototype.Xc,"MMR1",1,1145,64],Q[65406]=[null,null,O.prototype.Vd,O.prototype.Xc,"MMR2",1,1145,64],Q[65408]=[null,null,O.prototype.Ce,O.prototype.Cf,
"UIPDR",8,1145,64],Q[65424]=[null,null,O.prototype.Ae,O.prototype.Af,"UDPDR",8,1145,64],Q[65440]=[null,null,O.prototype.Be,O.prototype.Bf,"UIPAR",8,1145,64],Q[65456]=[null,null,O.prototype.ze,O.prototype.zf,"UDPAR",8,1145,64],Q[65472]=[null,null,O.prototype.Pb,O.prototype.Tb,"R0SET0"],Q[65473]=[null,null,O.prototype.Pb,O.prototype.Tb,"R1SET0"],Q[65474]=[null,null,O.prototype.Pb,O.prototype.Tb,"R2SET0"],Q[65475]=[null,null,O.prototype.Pb,O.prototype.Tb,"R3SET0"],Q[65476]=[null,null,O.prototype.Pb,
O.prototype.Tb,"R4SET0"],Q[65477]=[null,null,O.prototype.Pb,O.prototype.Tb,"R5SET0"],Q[65478]=[null,null,O.prototype.ae,O.prototype.Ze,"R6KERNEL"],Q[65479]=[null,null,O.prototype.de,O.prototype.bf,"R7KERNEL"],Q[65480]=[null,null,O.prototype.Qb,O.prototype.Ub,"R0SET1",1,1145],Q[65481]=[null,null,O.prototype.Qb,O.prototype.Ub,"R1SET1",1,1145],Q[65482]=[null,null,O.prototype.Qb,O.prototype.Ub,"R2SET1",1,1145],Q[65483]=[null,null,O.prototype.Qb,O.prototype.Ub,"R3SET1",1,1145],Q[65484]=[null,null,O.prototype.Qb,
O.prototype.Ub,"R4SET1",1,1145],Q[65485]=[null,null,O.prototype.Qb,O.prototype.Ub,"R5SET1",1,1145],Q[65486]=[null,null,O.prototype.be,O.prototype.$e,"R6SUPER",1,1145],Q[65487]=[null,null,O.prototype.ce,O.prototype.af,"R6USER",1,1145],Q[65504]=[null,null,O.prototype.Md,O.prototype.Me,"CTRL",8,1170],Q[65520]=[null,null,O.prototype.Uc,O.prototype.Yc,"LSIZE",1,1170],Q[65522]=[null,null,O.prototype.Uc,O.prototype.Yc,"HSIZE",1,1170],Q[65524]=[null,null,O.prototype.ye,O.prototype.yf,"SYSID",1,1170],Q[65526]=
[null,null,O.prototype.Ld,O.prototype.Le,"CPUERR",1,1170],Q[65528]=[null,null,O.prototype.Sd,O.prototype.Se,"MB",1,1170],Q[65530]=[null,null,O.prototype.Xd,O.prototype.Ve,"PIR"],Q[65532]=[null,null,O.prototype.xe,O.prototype.xf,"SL"],Q[65534]=[null,null,O.prototype.$d,O.prototype.Ye,"PSW"],Q);
function Lc(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.da[d];if(e.hb||e.xd){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 Mc(a){for(var b=Nc,c=0,d=0;d<a.da.length;d++){var e=a.da[d];e.type==b&&(c=e.G+e.Sb)}return c}
function Oc(a,b,c,d,e,f,g,h,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&Dc;if(void 0!==a.Ua[n])return x("I/O address already registered: "+q(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ua[n]=[d,e,f,g,r,h||16,!1]}return!0}
function Kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.bb)){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;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 r=g[4],t=g[5]||1,u=0;u<t;u++,f+=2)if(r&&1<t&&(r=g[4]+u),!Oc(a,f,f,h,l,m,n,g[7]||b.pa,r||b.mb))return!1}}return!0}
k.ec=function(a){var b=null;a>=this.Ha&&(a=this.Ua[a&Dc])&&(b=a[4]);return b};function Mb(a,b){a.F.push(b)}k.Sa=function(a,b,c){this.B=!0;this.sa||(this.i&&K(this.i,4)&&I(this.i,"memory fault ("+c+") on "+N(this.i,a),!0,!0),b&&(this.b.oa|=b),this.b.ua(4,0,a))};function Pc(a){var b=a.B;a.B=!1;return b}function Hc(a,b,c){x("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}function O(a){z.call(this,"Device",a,O,256);this.f={Dg:0,wc:-1}}E(O);k=O.prototype;
k.Ia=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.i=d;var e=this;this.f.wc=Qc(c,function(){e.f.Lb|=128;e.f.Lb&64&&Rc(e.b,e.f.Kb);e.B&&e.B.za(1);Sc(e.b,e.f.wc,1E3/60)});this.f.Kb=Tc(c,64,6,524288);Kb(b,this,Uc);Mb(b,this.reset.bind(this));d&&cd(d,64,function(a){var b=e.b;P(e,"KIPDR",b.R[0],0,a[0]);P(e,"KDPDR",b.R[0],8,a[0]);P(e,"KIPAR",b.ga[0],0,a[0]);P(e,"KDPAR",b.ga[0],8,a[0],!0);P(e,"SIPDR",b.R[1],0,a[0]);P(e,"SDPDR",b.R[1],8,a[0]);P(e,"SIPAR",b.ga[1],0,a[0]);P(e,"SDPAR",b.ga[1],8,a[0],!0);
P(e,"UIPDR",b.R[3],0,a[0]);P(e,"UDPDR",b.R[3],8,a[0]);P(e,"UIPAR",b.ga[3],0,a[0]);P(e,"UDPAR",b.ga[3],8,a[0],!0);b.Na&32&&P(e,"UNIMAP",b.Eb,-1,a[0])});L(this)};function P(a,b,c,d,e,f){a=a.i;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",h=!1,l=0,m=8;0>d&&(e=c.length,d=0,h=!0,m=l=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(h?"["+p(n,2)+"]":"")+":"),g+=" "+N(a,c[d+n],l);a.j(g+(f?"\n":""))}}k.reset=function(){this.f.Lb=128;Sc(this.b,this.f.wc,1E3/60,!0)};k.Sd=function(){return this.f.Lb};
k.Se=function(a){this.f.Lb=a&192;this.f.Lb&64||dd(this.b,this.f.Kb)};k.Ud=function(){return ed(this.b)};k.Ue=function(a){fd(this.b,a&-129|this.b.Ea&128)};k.Vd=function(){return gd(this.b)};k.Wd=function(){return hd(this.b)};k.Xd=function(){return this.b.Na};k.Ve=function(a){id(this.b,a)};k.Ee=function(a){a=a>>1&63;var b=this.b.Eb[a>>1];return a&1?b>>16:b&65535};k.Ef=function(a,b){b=b>>1&63;var c=b>>1;this.b.Eb[c]=b&1?this.b.Eb[c]&65535|(a&63)<<16:this.b.Eb[c]&-65536|a&65534};
k.xe=function(a){return this.b.R[1][a>>1&7]};k.xf=function(a,b){this.b.R[1][b>>1&7]=a&65295};k.ve=function(a){return this.b.R[1][(a>>1&7)+8]};k.vf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.we=function(a){return this.b.ga[1][a>>1&7]};k.wf=function(a,b){b=b>>1&7;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.ue=function(a){return this.b.ga[1][(a>>1&7)+8]};k.uf=function(a,b){b=(b>>1&7)+8;this.b.ga[1][b]=a;this.b.R[1][b]&=65295};k.Rd=function(a){return this.b.R[0][a>>1&7]};
k.Re=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Pd=function(a){return this.b.R[0][(a>>1&7)+8]};k.Pe=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Qd=function(a){return this.b.ga[0][a>>1&7]};k.Qe=function(a,b){b=b>>1&7;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.Od=function(a){return this.b.ga[0][(a>>1&7)+8]};k.Oe=function(a,b){b=(b>>1&7)+8;this.b.ga[0][b]=a;this.b.R[0][b]&=65295};k.De=function(a){return this.b.R[3][a>>1&7]};k.Df=function(a,b){this.b.R[3][b>>1&7]=a&65295};
k.Be=function(a){return this.b.R[3][(a>>1&7)+8]};k.Bf=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};k.Ce=function(a){return this.b.ga[3][a>>1&7]};k.Cf=function(a,b){b=b>>1&7;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Ae=function(a){return this.b.ga[3][(a>>1&7)+8]};k.Af=function(a,b){b=(b>>1&7)+8;this.b.ga[3][b]=a;this.b.R[3][b]&=65295};k.Pb=function(a){a&=7;return this.b.O&2048?this.b.cb[a]:this.b.u[a]};k.Tb=function(a,b){b&=7;this.b.O&2048?this.b.cb[b]=a:this.b.u[b]=a};
k.be=function(){return this.b.O&49152?this.b.Oa[0]:this.b.u[6]};k.$e=function(a){this.b.O&49152?this.b.Oa[0]=a:this.b.u[6]=a};k.ee=function(){return this.b.u[7]};k.cf=function(a){this.b.u[7]=a};k.Qb=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.cb[a]};k.Ub=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.cb[b]=a};k.ce=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[1]};k.af=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[1]=a};
k.de=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[3]};k.bf=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[3]=a};k.Nd=function(a){return this.b.tc[a-65504>>1]};k.Ne=function(a,b){this.b.tc[b-65504>>1]=a};k.Vc=function(a){return 65520==a?(Mc(this.w)>>6)-1:0};k.Zc=function(){};k.ze=function(){return 1};k.zf=function(){};k.Md=function(){return this.b.oa};k.Me=function(){this.b.oa=0};k.Td=function(){return this.b.sc};k.Te=function(a,b){b&1||(a&=255);this.b.sc=a};
k.Yd=function(a,b){return b?0:this.b.Db};k.We=function(a){jd(this.b,a)};k.ye=function(a,b){return b?0:this.b.jb&65280};k.yf=function(a){this.b.jb=a|255};k.ae=function(){return kd(this.b)};k.Ze=function(a){ld(this.b,a)};k.Yc=function(a,b){K(this)&&I(this,"writeIgnored("+p(b)+"): "+p(a),!0,!0)};
var Q={},Uc=(Q[61568]=[null,null,O.prototype.Ee,O.prototype.Ef,"UNIMAP",64,1170],Q[62592]=[null,null,O.prototype.xe,O.prototype.xf,"SIPDR",8,1145,64],Q[62608]=[null,null,O.prototype.ve,O.prototype.vf,"SDPDR",8,1145,64],Q[62624]=[null,null,O.prototype.we,O.prototype.wf,"SIPAR",8,1145,64],Q[62640]=[null,null,O.prototype.ue,O.prototype.uf,"SDPAR",8,1145,64],Q[62656]=[null,null,O.prototype.Rd,O.prototype.Re,"KIPDR",8,1145,64],Q[62672]=[null,null,O.prototype.Pd,O.prototype.Pe,"KDPDR",8,1145,64],Q[62688]=
[null,null,O.prototype.Qd,O.prototype.Qe,"KIPAR",8,1145,64],Q[62704]=[null,null,O.prototype.Od,O.prototype.Oe,"KDPAR",8,1145,64],Q[62798]=[null,null,O.prototype.Xd,O.prototype.Ve,"MMR3",1,1145,64],Q[65382]=[null,null,O.prototype.Sd,O.prototype.Se,"LKS"],Q[65402]=[null,null,O.prototype.Ud,O.prototype.Ue,"MMR0",1,1145,64],Q[65404]=[null,null,O.prototype.Vd,O.prototype.Yc,"MMR1",1,1145,64],Q[65406]=[null,null,O.prototype.Wd,O.prototype.Yc,"MMR2",1,1145,64],Q[65408]=[null,null,O.prototype.De,O.prototype.Df,
"UIPDR",8,1145,64],Q[65424]=[null,null,O.prototype.Be,O.prototype.Bf,"UDPDR",8,1145,64],Q[65440]=[null,null,O.prototype.Ce,O.prototype.Cf,"UIPAR",8,1145,64],Q[65456]=[null,null,O.prototype.Ae,O.prototype.Af,"UDPAR",8,1145,64],Q[65472]=[null,null,O.prototype.Pb,O.prototype.Tb,"R0SET0"],Q[65473]=[null,null,O.prototype.Pb,O.prototype.Tb,"R1SET0"],Q[65474]=[null,null,O.prototype.Pb,O.prototype.Tb,"R2SET0"],Q[65475]=[null,null,O.prototype.Pb,O.prototype.Tb,"R3SET0"],Q[65476]=[null,null,O.prototype.Pb,
O.prototype.Tb,"R4SET0"],Q[65477]=[null,null,O.prototype.Pb,O.prototype.Tb,"R5SET0"],Q[65478]=[null,null,O.prototype.be,O.prototype.$e,"R6KERNEL"],Q[65479]=[null,null,O.prototype.ee,O.prototype.cf,"R7KERNEL"],Q[65480]=[null,null,O.prototype.Qb,O.prototype.Ub,"R0SET1",1,1145],Q[65481]=[null,null,O.prototype.Qb,O.prototype.Ub,"R1SET1",1,1145],Q[65482]=[null,null,O.prototype.Qb,O.prototype.Ub,"R2SET1",1,1145],Q[65483]=[null,null,O.prototype.Qb,O.prototype.Ub,"R3SET1",1,1145],Q[65484]=[null,null,O.prototype.Qb,
O.prototype.Ub,"R4SET1",1,1145],Q[65485]=[null,null,O.prototype.Qb,O.prototype.Ub,"R5SET1",1,1145],Q[65486]=[null,null,O.prototype.ce,O.prototype.af,"R6SUPER",1,1145],Q[65487]=[null,null,O.prototype.de,O.prototype.bf,"R6USER",1,1145],Q[65504]=[null,null,O.prototype.Nd,O.prototype.Ne,"CTRL",8,1170],Q[65520]=[null,null,O.prototype.Vc,O.prototype.Zc,"LSIZE",1,1170],Q[65522]=[null,null,O.prototype.Vc,O.prototype.Zc,"HSIZE",1,1170],Q[65524]=[null,null,O.prototype.ze,O.prototype.zf,"SYSID",1,1170],Q[65526]=
[null,null,O.prototype.Md,O.prototype.Me,"CPUERR",1,1170],Q[65528]=[null,null,O.prototype.Td,O.prototype.Te,"MB",1,1170],Q[65530]=[null,null,O.prototype.Yd,O.prototype.We,"PIR"],Q[65532]=[null,null,O.prototype.ye,O.prototype.yf,"SL"],Q[65534]=[null,null,O.prototype.ae,O.prototype.Ze,"PSW"],Q);
cb(function(){for(var a=H(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=F(d);switch(c.type){case "default":c=new O(c);G(c,d);break;case "pc11":c=new md(c);G(c,d);break;case "rl11":c=new R(c);G(c,d);break;case "rk11":c=new T(c),G(c,d)}}});var nd;if(Bb){var od=new ArrayBuffer(2);(new DataView(od)).setUint16(0,256,!0);nd=256===(new Uint16Array(od))[0]}else nd=!1;var pd=nd;
function M(a,b,c,d,e,f){this.w=a;this.id=qd+=2;this.b=null;this.G=b;this.Sb=c;this.size=d||0;this.type=e||rd;this.f=e==sd;this.controller=null;Ac(this);this.hb=this.wd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],td(this,f.md);else if(Bb)this.A=new ArrayBuffer(this.size),this.F=new DataView(this.A,0,this.size),this.D=new Uint8Array(this.A,0,this.size),this.P=new Uint16Array(this.A,0,this.size>>1),this.b=new Int32Array(this.A,0,this.size>>2),td(this,pd?ud:vd);else{a=this.b=Array(this.size>>
function M(a,b,c,d,e,f){this.w=a;this.id=qd+=2;this.b=null;this.G=b;this.Sb=c;this.size=d||0;this.type=e||rd;this.f=e==sd;this.controller=null;Ac(this);this.hb=this.xd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],td(this,f.nd);else if(Bb)this.A=new ArrayBuffer(this.size),this.F=new DataView(this.A,0,this.size),this.D=new Uint8Array(this.A,0,this.size),this.P=new Uint16Array(this.A,0,this.size>>1),this.b=new Int32Array(this.A,0,this.size>>2),td(this,pd?ud:vd);else{a=this.b=Array(this.size>>
2);for(f=0;f<a.length;f++)a[f]=0;td(this,wd)}else td(this)}var rd=0,Nc=1,sd=2,Cc=4,Ic=["NONE","RAM","ROM","VID","H/W"],qd=0;
M.prototype={constructor:M,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Bb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.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(Bb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.hb=!0}return!1},xb:function(a,b){b?this.g++||xd(this,yd,!1):this.B++||zd(this,yd,!1)},S:function(a,b){this.i&&K(this.i,32)&&I(this.i,
"attempt to read invalid address "+N(this.i,b),!0);this.w.Sa(b,32,2);return 255},v:function(a,b,c){this.i&&K(this.i,32)&&I(this.i,"attempt to write "+N(this.i,b)+" to invalid addresses "+N(this.i,c),!0);this.w.Sa(c,32,4)},T:function(a,b){return this.gc(a++,b++)|this.gc(a,b)<<8},L:function(a,b,c){this.jc(a++,b&255,c++);this.jc(a,b>>8,c)},ba:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},va:function(a,b){a&1&&this.w.Sa(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},Pa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.hb=!0},cb:function(a,b,c){a&1&&this.w.Sa(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.hb=!0},mb:function(a,b){this.i&&null!=this.G&&Ec(this.i,this.G+a);return this.I(a,b)},ma:function(a,b){this.i&&null!=this.G&&Ec(this.i,this.G+a,2);return this.K(a,b)},Aa:function(a,b,c){this.i&&null!=this.G&&Fc(this.i,this.G+
a);this.f?this.v(a,b,c):this.H(a,b,c)},Xa:function(a,b,c){this.i&&null!=this.G&&Fc(this.i,this.G+a,2);this.f?this.v(a,b,c):this.N(a,b,c)},Y:function(a){return this.D[a]},nb:function(a,b){a=this.D[a];this.i&&K(this.i,32)&&I(this.i,"Memory.readByte("+N(this.i,b)+"): "+N(this.i,a),!0);return a},ca:function(a,b){a&1&&this.w.Sa(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Sa(b,64,2);a=this.P[a>>1];this.i&&K(this.i,32)&&I(this.i,"Memory.readWord("+N(this.i,b)+"): "+N(this.i,a),!0);
return a},wa:function(a,b){this.D[a]=b;this.hb=!0},Ga:function(a,b,c){this.D[a]=b;this.hb=!0;this.i&&K(this.i,32)&&I(this.i,"Memory.writeByte("+N(this.i,c)+","+N(this.i,b)+")",!0)},Ta:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.F.setUint16(a,b,!0);this.hb=!0},Ya:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.P[a>>1]=b;this.hb=!0;this.i&&K(this.i,32)&&I(this.i,"Memory.writeWord("+N(this.i,c)+","+N(this.i,b)+")",!0)}};
1]&255)<<8},Qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.hb=!0},eb:function(a,b,c){a&1&&this.w.Sa(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.hb=!0},mb:function(a,b){this.i&&null!=this.G&&Ec(this.i,this.G+a);return this.I(a,b)},ma:function(a,b){this.i&&null!=this.G&&Ec(this.i,this.G+a,2);return this.K(a,b)},Aa:function(a,b,c){this.i&&null!=this.G&&Fc(this.i,this.G+
a);this.f?this.v(a,b,c):this.H(a,b,c)},Ya:function(a,b,c){this.i&&null!=this.G&&Fc(this.i,this.G+a,2);this.f?this.v(a,b,c):this.N(a,b,c)},Y:function(a){return this.D[a]},nb:function(a,b){a=this.D[a];this.i&&K(this.i,32)&&I(this.i,"Memory.readByte("+N(this.i,b)+"): "+N(this.i,a),!0);return a},ca:function(a,b){a&1&&this.w.Sa(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Sa(b,64,2);a=this.P[a>>1];this.i&&K(this.i,32)&&I(this.i,"Memory.readWord("+N(this.i,b)+"): "+N(this.i,a),!0);
return a},wa:function(a,b){this.D[a]=b;this.hb=!0},Ga:function(a,b,c){this.D[a]=b;this.hb=!0;this.i&&K(this.i,32)&&I(this.i,"Memory.writeByte("+N(this.i,c)+","+N(this.i,b)+")",!0)},Ta:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.F.setUint16(a,b,!0);this.hb=!0},Za:function(a,b,c){a&1&&this.w.Sa(c,64,4);this.P[a>>1]=b;this.hb=!0;this.i&&K(this.i,32)&&I(this.i,"Memory.writeWord("+N(this.i,c)+","+N(this.i,b)+")",!0)}};
function Ac(a,b,c){a.i=b;a.B=a.g=0;c&&((a.B=c.B)&&zd(a,yd,!1),(a.g=c.g)&&xd(a,yd,!1))}function Ad(a,b){b?--a.g||(a.jc=a.f?a.v:a.H,a.ac=a.f?a.L:a.N):--a.B||(a.gc=a.I,a.Ca=a.K)}function xd(a,b,c){c&&a.g||(a.jc=!a.f&&b[1]||a.v,a.ac=!a.f&&b[3]||a.L);if(c||void 0===c)a.H=b[1]||a.v,a.N=b[3]||a.L}function zd(a,b,c){c&&a.B||(a.gc=b[0]||a.S,a.Ca=b[2]||a.T);if(c||void 0===c)a.I=b[0]||a.S,a.K=b[2]||a.T}function td(a,b){b||(b=Bd);zd(a,b,void 0);xd(a,b,void 0)}
var Bd=[],wd=[M.prototype.ba,M.prototype.Pa,M.prototype.va,M.prototype.cb],yd=[M.prototype.mb,M.prototype.Aa,M.prototype.ma,M.prototype.Xa];if(Bb)var vd=[M.prototype.Y,M.prototype.wa,M.prototype.ca,M.prototype.Ta],ud=[M.prototype.nb,M.prototype.Ga,M.prototype.na,M.prototype.Ya];
function Cd(a,b){z.call(this,"CPU",a,Cd,1);b=a.cycles||b;var c=a.multiplier||1;this.Vb=0;this.ub=b;this.pb=c;this.lc=Math.round(this.ub/1E4)/100;this.Bb=this.lc*this.pb;this.C.U=!1;this.C.ic=!1;this.C.fb=a.autoStart;this.C.Jb=!1;this.Xb=this.Ga=0;this.Yb=a.csStart;this.Nb=a.csInterval;this.Ob=a.csStop;this.N=[];this.Kc=this.Ie.bind(this);L(this)}E(Cd);var Dd=["power","reset"];k=Cd.prototype;
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.i=d;this.v=a.v;for(a=0;a<Dd.length;a++)(b=this.D[Dd[a]])&&this.B.ya(null,Dd[a],b);L(this)};k.Ac=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.La=function(a,b){var c=Ed(this.B,"autoStart");null!=c?this.C.fb="true"==c?!0:"false"==c?!1:!!c:null==this.C.fb&&(this.C.fb=!this.i&&void 0===this.D.run);if(!b){this.Ac();if(a&&this.restore){Fd(this);if(!this.restore(a))return!1;Gd(this)}else this.reset();this.i?(a=this.i,b=this.C.fb,a.Ya=!0,a.j("Type ? for help with PDPjs Debugger commands"),Hd(a),b||a.rb(),a.Ta&&(b=a.Ta,a.Ta=null,Id(a,b))):this.j("No debugger detected");this.C.fb||this.j("CPU will not be auto-started, click Run to start")}return!0};
k.Ka=function(a){return a?this.save():!0};k.fb=function(){return this.C.U?!0:this.C.fb?(this.lb(),!0):!1};k.Qc=function(){return 0};function Gd(a){void 0===a.Yb&&(a.Yb=0);void 0===a.Nb&&(a.Nb=-1);void 0===a.Ob&&(a.Ob=-1);a.C.Jb=0<=a.Yb&&0<a.Nb;a.C.Jb&&(a.Xb=0,a.Ga=a.Yb-a.na)}function Wb(a,b){if(a.C.Jb){var c=!1;a.Xb=a.Xb+a.Qc()|0;a.Ga-=b;0>=a.Ga&&(a.Ga+=a.Nb,c=!0);0<=a.Ob&&a.Ob<=Jd(a)&&(a.Nb=a.Ob=-1,Gd(a),a.fa(),c=!0);c&&a.j(Jd(a)+" cycles: checksum="+q(a.Xb))}}
var Bd=[],wd=[M.prototype.ba,M.prototype.Qa,M.prototype.va,M.prototype.eb],yd=[M.prototype.mb,M.prototype.Aa,M.prototype.ma,M.prototype.Ya];if(Bb)var vd=[M.prototype.Y,M.prototype.wa,M.prototype.ca,M.prototype.Ta],ud=[M.prototype.nb,M.prototype.Ga,M.prototype.na,M.prototype.Za];
function Cd(a,b){z.call(this,"CPU",a,Cd,1);b=a.cycles||b;var c=a.multiplier||1;this.Vb=0;this.ub=b;this.pb=c;this.lc=Math.round(this.ub/1E4)/100;this.Bb=this.lc*this.pb;this.C.U=!1;this.C.ic=!1;this.C.fb=a.autoStart;this.C.Jb=!1;this.Xb=this.Ga=0;this.Yb=a.csStart;this.Nb=a.csInterval;this.Ob=a.csStop;this.N=[];this.Kc=this.Je.bind(this);L(this)}E(Cd);var Dd=["power","reset"];k=Cd.prototype;
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.i=d;this.v=a.v;for(a=0;a<Dd.length;a++)(b=this.D[Dd[a]])&&this.B.ya(null,Dd[a],b);L(this)};k.Ac=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.Ma=function(a,b){var c=Ed(this.B,"autoStart");null!=c?this.C.fb="true"==c?!0:"false"==c?!1:!!c:null==this.C.fb&&(this.C.fb=!this.i&&void 0===this.D.run);if(!b){this.Ac();if(a&&this.restore){Fd(this);if(!this.restore(a))return!1;Gd(this)}else this.reset();this.i?(a=this.i,b=this.C.fb,a.Za=!0,a.j("Type ? for help with PDPjs Debugger commands"),Hd(a),b||a.rb(),a.Ta&&(b=a.Ta,a.Ta=null,Id(a,b))):this.j("No debugger detected");this.C.fb||this.j("CPU will not be auto-started, click Run to start")}return!0};
k.La=function(a){return a?this.save():!0};k.fb=function(){return this.C.U?!0:this.C.fb?(this.lb(),!0):!1};k.Qc=function(){return 0};function Gd(a){void 0===a.Yb&&(a.Yb=0);void 0===a.Nb&&(a.Nb=-1);void 0===a.Ob&&(a.Ob=-1);a.C.Jb=0<=a.Yb&&0<a.Nb;a.C.Jb&&(a.Xb=0,a.Ga=a.Yb-a.na)}function Wb(a,b){if(a.C.Jb){var c=!1;a.Xb=a.Xb+a.Qc()|0;a.Ga-=b;0>=a.Ga&&(a.Ga+=a.Nb,c=!0);0<=a.Ob&&a.Ob<=Jd(a)&&(a.Nb=a.Ob=-1,Gd(a),a.fa(),c=!0);c&&a.j(Jd(a)+" cycles: checksum="+q(a.Xb))}}
k.ya=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.D[b]=c,!0;case "run":return this.D[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.la)a=!0;else{var b=null,c,h=ob(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.la);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.dc?" (waiting for notification)":""))+".");a=!1}a&&(d.C.U?d.fa():d.lb())},
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Kd(d,d.pb<<1,!0)},c.textContent=this.Bb.toFixed(2)+"Mhz",!0}return!1};k.za=function(a){this.B&&this.B.za(a)};function Vb(a,b,c){a.na+=b;c&&(a.ma=a.b=a.L=0)}function Ld(a,b){var c=1;b&&1<a.pb&&a.Aa&&(c=a.Aa/a.lc);a.Ic=Math.round(1E3/30);a.vb=Math.floor(a.ub/30*c);b||(a.Pa=a.vb);a.mc=0}function Jd(a){return a.na+a.Y+a.ma-a.b}function Fd(a){a.Aa=0;a.Jc=0;a.na=a.Y=a.ma=a.b=a.L=0;Gd(a);Kd(a,1)}
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Kd(d,d.pb<<1,!0)},c.textContent=this.Bb.toFixed(2)+"Mhz",!0}return!1};k.za=function(a){this.B&&this.B.za(a)};function Vb(a,b,c){a.na+=b;c&&(a.ma=a.b=a.L=0)}function Ld(a,b){var c=1;b&&1<a.pb&&a.Aa&&(c=a.Aa/a.lc);a.Ic=Math.round(1E3/30);a.vb=Math.floor(a.ub/30*c);b||(a.Qa=a.vb);a.mc=0}function Jd(a){return a.na+a.Y+a.ma-a.b}function Fd(a){a.Aa=0;a.Jc=0;a.na=a.Y=a.ma=a.b=a.L=0;Gd(a);Kd(a,1)}
function Kd(a,b,c){var d=!1;if(void 0!==b){.8>a.Aa/a.Bb?b=1:d=!0;a.pb=b;b=a.lc*a.pb;if(a.Bb!=b){a.Bb=b;b=a.Bb.toFixed(2)+"Mhz";var e=a.D.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.B&&a.B.rb()}Vb(a,a.Y);a.Y=0;a.T=Ca();a.ca=0;Ld(a);return d}function Qc(a,b){var c=a.N.length;a.N.push([-1,b]);return c}function Sc(a,b,c,d){0<=b&&b<a.N.length&&(d||0>a.N[b][0])&&(c=a.ub*a.pb/1E3*c|0,a.C.U&&(c+=Md(a)),a.N[b][0]=c)}
function Nd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ub(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Md(a,b){var c=a.ma-=a.b;a.b=a.L=0;b&&(a.ma=0);return c}
k.Ie=function(){if(this.C.U){this.mc>=this.ub&&Ld(this,!0);this.Ya=0;this.cb=Ca();if(this.ca){var a=this.cb-this.ca;a>this.Ic&&(this.T+=a,this.T>this.cb&&(this.T=this.cb))}try{do{var b=Nd(this,this.C.Jb?1:this.vb);try{this.sb(b)}catch(e){if("number"!=typeof e)throw e;}b=Md(this,!0);this.Ya+=b;this.Y+=b;Wb(this,b);Ub(this,b);this.Pa-=b;if(0>=this.Pa){this.Pa+=this.vb;15<=++this.Jc&&(this.za(),this.Jc=0);break}}while(this.C.U)}catch(e){this.fa();this.B&&this.B.stop(Ca(),Jd(this));Ab(this,e.stack||e.message);
return}if(this.C.U){a=setTimeout;b=this.Kc;this.ca=Ca();var c=this.Ic;this.Ya&&(c=Math.round(c*this.Ya/this.vb));var c=c-(this.ca-this.cb),d=this.ca-this.T;d&&(this.Aa=Math.round(this.Y/(10*d))/100,864E5<=d&&(this.na=0,Kd(this)));if(0>c||this.Aa<this.Bb)-1E3>c&&(this.T-=c),c=0;this.mc+=this.Ya;this.ca+=c;a(b,c)}}};
k.Je=function(){if(this.C.U){this.mc>=this.ub&&Ld(this,!0);this.Za=0;this.eb=Ca();if(this.ca){var a=this.eb-this.ca;a>this.Ic&&(this.T+=a,this.T>this.eb&&(this.T=this.eb))}try{do{var b=Nd(this,this.C.Jb?1:this.vb);try{this.sb(b)}catch(e){if("number"!=typeof e)throw e;}b=Md(this,!0);this.Za+=b;this.Y+=b;Wb(this,b);Ub(this,b);this.Qa-=b;if(0>=this.Qa){this.Qa+=this.vb;15<=++this.Jc&&(this.za(),this.Jc=0);break}}while(this.C.U)}catch(e){this.fa();this.B&&this.B.stop(Ca(),Jd(this));Ab(this,e.stack||e.message);
return}if(this.C.U){a=setTimeout;b=this.Kc;this.ca=Ca();var c=this.Ic;this.Za&&(c=Math.round(c*this.Za/this.vb));var c=c-(this.ca-this.eb),d=this.ca-this.T;d&&(this.Aa=Math.round(this.Y/(10*d))/100,864E5<=d&&(this.na=0,Kd(this)));if(0>c||this.Aa<this.Bb)-1E3>c&&(this.T-=c),c=0;this.mc+=this.Za;this.ca+=c;a(b,c)}}};
k.lb=function(a){if(zb(this))return!1;if(this.C.U)return this.j(this.toString()+" busy"),!1;Kd(this);this.C.U=!0;this.C.ic=!0;var b=this.D.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.rb(!0),this.B.start(this.T,Jd(this)));this.i||this.status("Started");setTimeout(this.Kc,0);return!0};k.sb=function(){return 0};
k.fa=function(a){var b=!1;if(this.C.U){Md(this);Vb(this,this.Y);this.Y=0;this.C.U=!1;if(b=this.D.run)b.textContent="Run";this.B&&this.B.stop(Ca(),Jd(this));b=!0;this.i||this.status("Stopped")}this.C.complete=a;return b};
function Od(a){this.ab=+a.model||1170;this.Ec=a.addrReset||0;Cd.call(this,a,6666667);this.wb=0;this.Hc=255;1120>=this.ab?(this.decode=Pd.bind(this),this.wa=this.td,this.wb=8,this.Hc=-1,this.yc=255,this.Lc=0):(this.decode=Qd.bind(this),this.wa=this.ud,this.yc=~(1792|(1145>this.ab?2048:0))&65535,this.Lc=1145<=this.ab?2048:0);Rd(this);this.K=0;this.I=null;this.Wb=[];this.C.complete=!1}E(Od,Cd);k=Od.prototype;
k.Ac=function(){for(var a=192,b=0;b<this.Wb.length;b++){var c=this.Wb[b];0>c.$b&&(c.$b=a,a+=4)}};k.reset=function(){this.status("Model "+this.ab);this.C.U&&this.fa();Rd(this);Fd(this);this.C.error=!1;this.parent.reset.call(this)};
function Rd(a){a.V=65536;a.W=32768;a.Z=65535;a.X=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.Ec,-1,-2,-3,-4,-5,-6,-7,-8];a.bb=[0,0,0,0,0,0];a.Na=[0,0,0,0];a.A=0;a.Gc=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ga=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Eb=[0,0,0,0,0,0,0,0,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.tc=[0,0,0,0,0,0,0,0];a.sc=0;a.J=0;a.F=a.H=0;a.g=a.f=a.kc=0;a.va=-1;Tb(a)}function Tb(a){a.Ea=0;a.Gb=0;a.Hb=0;a.Ma=0;a.oa=0;a.Db=0;a.jb=255;a.ba=0;a.Ta=0;a.Xa=0;a.S=262143;a.Ib=0;a.ta=0;a.I=null;a.w&&(Sd(a),a.ld=Mc(a.w))}function Sd(a){a.ba?(a.P=65536,a.Qa=a.Ma&16?4186112:253952,a.aa=a.yd,a.Ca=a.Ee,a.ac=a.Ef,Gc(a.w,a.Ma&16?22:18)):(a.P=0,a.Qa=57344,a.aa=a.xd,a.Ca=a.Vc,a.ac=a.xc,Gc(a.w,16))}
function ed(a){var b=a.Ea;b&57344||(b=b&-3199|a.Ta<<5|a.Xa<<1);return b}function fd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.Gb=a.ta>>16&65535,a.Hb=a.ta&65535);a.Ea=b;a.Ta=(b&96)>>5;a.Xa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.ba!=c&&(a.ba=c,Sd(a))}}function gd(a){a.Ea&57344||(a.Gb=a.ta>>16&65535);a=a.Gb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function hd(a){a.Ea&57344||(a.Hb=a.ta&65535);return a.Hb}
function id(a,b){1170>a.ab&&(b&=-49);a.Ma!=b&&(a.Ma=b,a.S=b&16?4194303:262143,Sd(a))}function Td(a,b,c){a.Ec=b;a.w.reset();Tb(a);Ud(a,b);ld(a,0);if(c){for(b=2;5>=b;b++)a.u[b]=0;a.C.U||a.lb()}else a.i?a.fa()||Hd(a.i):!1===c&&a.fa();!a.C.U&&a.v&&a.v.stop()}k.Qc=function(){return 0};
k.save=function(){var a=new U(this);a.set(0,[this.u,this.bb,this.Na,this.Eb,this.tc,this.oa,this.sc,this.Db,this.jb,kd(this),this.va,this.A,this.J,this.Ea,this.Gb,this.Hb,this.Ma,this.Ta,this.Xa,this.R,this.ga,this.ba,this.S,this.Ib,this.ta]);a.set(1,[this.na,this.pb]);a.set(2,Lc(this.w));return a.data()};
function Od(a){this.bb=+a.model||1170;this.Ec=a.addrReset||0;Cd.call(this,a,6666667);this.wb=0;this.Hc=255;1120>=this.bb?(this.decode=Pd.bind(this),this.wa=this.ud,this.wb=8,this.Hc=-1,this.yc=255,this.Lc=0):(this.decode=Qd.bind(this),this.wa=this.vd,this.yc=~(1792|(1145>this.bb?2048:0))&65535,this.Lc=1145<=this.bb?2048:0);Rd(this);this.K=0;this.I=null;this.Wb=[];this.C.complete=!1}E(Od,Cd);k=Od.prototype;
k.Ac=function(){for(var a=192,b=0;b<this.Wb.length;b++){var c=this.Wb[b];0>c.$b&&(c.$b=a,a+=4)}};k.reset=function(){this.status("Model "+this.bb);this.C.U&&this.fa();Rd(this);Fd(this);this.C.error=!1;this.parent.reset.call(this)};
function Rd(a){a.V=65536;a.W=32768;a.Z=65535;a.X=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.Ec,-1,-2,-3,-4,-5,-6,-7,-8];a.cb=[0,0,0,0,0,0];a.Oa=[0,0,0,0];a.A=0;a.Gc=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ga=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Eb=[0,0,0,0,0,0,0,0,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.tc=[0,0,0,0,0,0,0,0];a.sc=0;a.J=0;a.F=a.H=0;a.g=a.f=a.kc=0;a.va=-1;Tb(a)}function Tb(a){a.Ea=0;a.Gb=0;a.Hb=0;a.Na=0;a.oa=0;a.Db=0;a.jb=255;a.ba=0;a.Ta=0;a.Ya=0;a.S=262143;a.Ib=0;a.ta=0;a.I=null;a.w&&(Sd(a),a.md=Mc(a.w))}function Sd(a){a.ba?(a.P=65536,a.Ha=a.Na&16?4186112:253952,a.aa=a.zd,a.Ca=a.Fe,a.ac=a.Ff,Gc(a.w,a.Na&16?22:18)):(a.P=0,a.Ha=57344,a.aa=a.yd,a.Ca=a.Wc,a.ac=a.xc,Gc(a.w,16))}
function ed(a){var b=a.Ea;b&57344||(b=b&-3199|a.Ta<<5|a.Ya<<1);return b}function fd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.Gb=a.ta>>16&65535,a.Hb=a.ta&65535);a.Ea=b;a.Ta=(b&96)>>5;a.Ya=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.ba!=c&&(a.ba=c,Sd(a))}}function gd(a){a.Ea&57344||(a.Gb=a.ta>>16&65535);a=a.Gb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function hd(a){a.Ea&57344||(a.Hb=a.ta&65535);return a.Hb}
function id(a,b){1170>a.bb&&(b&=-49);a.Na!=b&&(a.Na=b,a.S=b&16?4194303:262143,Sd(a))}function Td(a,b,c){a.Ec=b;a.w.reset();Tb(a);Ud(a,b);ld(a,0);if(c){for(b=2;5>=b;b++)a.u[b]=0;a.C.U||a.lb()}else a.i?a.fa()||Hd(a.i):!1===c&&a.fa();!a.C.U&&a.v&&a.v.stop()}k.Qc=function(){return 0};
k.save=function(){var a=new U(this);a.set(0,[this.u,this.cb,this.Oa,this.Eb,this.tc,this.oa,this.sc,this.Db,this.jb,kd(this),this.va,this.A,this.J,this.Ea,this.Gb,this.Hb,this.Na,this.Ta,this.Ya,this.R,this.ga,this.ba,this.S,this.Ib,this.ta]);a.set(1,[this.na,this.pb]);a.set(2,Lc(this.w));return a.data()};
k.restore=function(a){var b=a[1];this.na=b[1];Kd(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.L){for(var f=0,g=Array(b.L),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.da[d];if(!f||!f.restore(e)){x("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Vd(a){return a.V&65536?1:0}function Wd(a){return a.W&32768?2:0}function Xd(a){return a.Z&65535?0:4}function Yd(a){return a.X&32768?8:0}
function Zd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function Ud(a,b){a.u[7]=b&65535}function Tc(a,b,c,d){c={$b:b,qb:c,message:d||0,next:null};c.name=Db[b];a.Wb.push(c);return c}function $d(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.J|=1)}
function Rc(a,b){if(b!=a.I){var c=a.I;if(!c||c.qb<=b.qb)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.qb<=b.qb){b.next=d;c.next=b;break}c=d}while(c)}}a.J|=1;b.message&&K(a,b.message|8)&&I(a,"setIRQ(vector="+p(b.$b)+",priority="+b.qb+")",!0,!0)}function dd(a,b){$d(a,b);b.message&&K(a,b.message|8)&&I(a,"clearIRQ(vector="+p(b.$b)+",priority="+b.qb+")",!0,!0)}function ae(a){return a.J&64?(a.ua(168,64,-6),!0):a.J&32?(a.ua(4,32,-5),!0):a.J&16?(a.ua(12,16,-7),!0):!1}
function kd(a){return a.O=a.O&63728|Yd(a)|Xd(a)|Wd(a)|Vd(a)}function ld(a,b){b&=a.yc;a.X=b<<12;a.Z=~b&4;a.W=b<<14;a.V=b<<16;if((b^a.O)&a.Lc)for(var c=a.bb.length;0<=--c;){var d=a.u[c];a.u[c]=a.bb[c];a.bb[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Na[c]=a.u[6],a.u[6]=a.Na[a.A]);a.O=b;a.J&=-3;a.J|=a.I?2:1}function jd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.J|=1}a.Db=b}k.Fa=function(a){this.X=this.Z=a;this.W=0};k.tb=function(a,b){this.X=this.Z=this.V=a;this.W=b||0};
function kd(a){return a.O=a.O&63728|Yd(a)|Xd(a)|Wd(a)|Vd(a)}function ld(a,b){b&=a.yc;a.X=b<<12;a.Z=~b&4;a.W=b<<14;a.V=b<<16;if((b^a.O)&a.Lc)for(var c=a.cb.length;0<=--c;){var d=a.u[c];a.u[c]=a.cb[c];a.cb[c]=d}a.A=b>>14&3;c=a.O>>14&3;a.A!=c&&(a.Oa[c]=a.u[6],a.u[6]=a.Oa[a.A]);a.O=b;a.J&=-3;a.J|=a.I?2:1}function jd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.J|=1}a.Db=b}k.Fa=function(a){this.X=this.Z=a;this.W=0};k.tb=function(a,b){this.X=this.Z=this.V=a;this.W=b||0};
function be(a,b){a.X=a.Z=a.V=b;a.W=a.X^a.V>>1}function ce(a,b,c,d){a.X=a.Z=a.V=b;a.W=(c^d)&(d^b)}
k.ua=function(a,b,c){if(!this.K){0>this.va?this.va=kd(this):this.A||(c=-4);-4==c&&(this.J&256&&(c=-1),this.J|=256,this.oa|=4,this.u[6]=a=4);if(-1!=c){this.ta=a|4143316992;this.A=0;var d=this.Ca(a|this.P),e=this.Ca(a+2&65535|this.P);ld(this,e&-12289|this.va>>2&12288);de(this,this.va);de(this,this.u[7]);Ud(this,d)}this.b-=5;this.J&=~(b|19);this.J|=129;this.va=-1;this.vd=a;this.sd=c;-1==c&&this.fa();if(-4<=c)throw a;}};
function ye(a){var b=ze(a),c=ze(a);a.O&49152&&(c=c&-225|a.O&63712);Ud(a,b);ld(a,c);a.J&=-17}k.Ia=function(a){var b=a>>13&31;31>b&&(a=this.Ma&32?this.Eb[b]+(a&8190)&4194302:a&-3932161);return a};k.ec=function(a){var b=[];if(this.ba){var c=this.A<<1,d=a>>13;7<d&&(c|=1);this.Ma&this.Gc[this.A]||(d&=7);var e=a&8191,f=this.ga[this.A][d]<<6;a=f+e&this.S;3932160<=a&&(a=this.Ia(a));b.push(a);b.push(e);b.push(c);b.push(d&7);b.push(f);b.push(this.S)}else a&=65535,57344<=a&&(a|=this.Qa),b.push(a);return b};
function mc(a,b,c){var d,e,f;if(!(c&a.ba))return f=b&65535,57344<=f&&(f|=a.Qa),f;d=b>>13;a.Ma&a.Gc[a.A]||(d&=7);e=a.R[a.A][d];f=(a.ga[a.A][d]<<6)+(b&8191)&a.S;3932160<=f&&(f=a.Ia(f));if(a.K)return f;f>=a.ld&&f<a.Qa?(a.oa|=32,a.ua(4,0,f)):f&1&&!(c&1)&&(a.oa|=64,a.ua(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
8128)&&(g|=16384));a.R[a.A][d]=e;if(f!=(4194170&a.S)||a.A)a.Ta=a.A,a.Xa=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Ta<<5|a.Xa<<1,fd(a,a.Ea&-61695|g&61694)),a.ua(168,64,-2)),a.Ea&61440||!(f<(4191360&a.S)||f>(4194239&a.S))||(a.Ea|=4096,a.Ea&512&&(a.J|=64)));return f}function Ae(a,b){return a.w.fc(b)}function ze(a){var b=a.Ca(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}
k.ua=function(a,b,c){if(!this.K){0>this.va?this.va=kd(this):this.A||(c=-4);-4==c&&(this.J&256&&(c=-1),this.J|=256,this.oa|=4,this.u[6]=a=4);if(-1!=c){this.ta=a|4143316992;this.A=0;var d=this.Ca(a|this.P),e=this.Ca(a+2&65535|this.P);ld(this,e&-12289|this.va>>2&12288);de(this,this.va);de(this,this.u[7]);Ud(this,d)}this.b-=5;this.J&=~(b|19);this.J|=129;this.va=-1;this.wd=a;this.td=c;-1==c&&this.fa();if(-4<=c)throw a;}};
function ye(a){var b=ze(a),c=ze(a);a.O&49152&&(c=c&-225|a.O&63712);Ud(a,b);ld(a,c);a.J&=-17}k.Ja=function(a){var b=a>>13&31;31>b&&(a=this.Na&32?this.Eb[b]+(a&8190)&4194302:a&-3932161);return a};k.ec=function(a){var b=[];if(this.ba){var c=this.A<<1,d=a>>13;7<d&&(c|=1);this.Na&this.Gc[this.A]||(d&=7);var e=a&8191,f=this.ga[this.A][d]<<6;a=f+e&this.S;3932160<=a&&(a=this.Ja(a));b.push(a);b.push(e);b.push(c);b.push(d&7);b.push(f);b.push(this.S)}else a&=65535,57344<=a&&(a|=this.Ha),b.push(a);return b};
function mc(a,b,c){var d,e,f;if(!(c&a.ba))return f=b&65535,57344<=f&&(f|=a.Ha),f;d=b>>13;a.Na&a.Gc[a.A]||(d&=7);e=a.R[a.A][d];f=(a.ga[a.A][d]<<6)+(b&8191)&a.S;3932160<=f&&(f=a.Ja(f));if(a.K)return f;f>=a.md&&f<a.Ha?(a.oa|=32,a.ua(4,0,f)):f&1&&!(c&1)&&(a.oa|=64,a.ua(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
8128)&&(g|=16384));a.R[a.A][d]=e;if(f!=(4194170&a.S)||a.A)a.Ta=a.A,a.Ya=d;g&&(g&57344&&(0<=a.va&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Ta<<5|a.Ya<<1,fd(a,a.Ea&-61695|g&61694)),a.ua(168,64,-2)),a.Ea&61440||!(f<(4191360&a.S)||f>(4194239&a.S))||(a.Ea|=4096,a.Ea&512&&(a.J|=64)));return f}function Ae(a,b){return a.w.fc(b)}function ze(a){var b=a.Ca(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}
function de(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.ta=a.ta&65535|(a.ta&-65536)<<8|16121856;a.J&256||a.wa(4,-2,c);a.ac(c,b)}
function Be(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.ua(4,0,-3),0;case 1:return 6==c&&a.wa(d,0,a.u[6]),a.b-=3,7==c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];6==c&&a.wa(d,f,e);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.Ca(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;6==c&&a.wa(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!=c&&(e|=g);e=a.Ca(e)|g;a.b-=8;break;case 6:return e=a.Ca(Zd(a,2)),e=e+a.u[c]&65535,6==c&&a.wa(d,
0,e),a.b-=6,e|g;case 7:return e=a.Ca(Zd(a,2)),e=e+a.u[c]&65535,e=a.Ca(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.ta=a.ta&65535|(a.ta&-65536)<<8|(f<<3&248|c)<<16;return e}k.td=function(a,b,c){!this.A&&0>=b&&c<=this.jb&&(this.J|=32)};k.ud=function(a,b,c){this.A||(65534<=c&&(c|=-65536),a&4&&c<=this.jb&&(c<=this.jb-32?this.ua(4,0,-4):(this.oa|=8,this.J|=32)))};function oc(a,b){a.K++;b=a.Vc(mc(a,b,2));a.K--;return b}k.xd=function(a,b,c){a=Be(this,a,b,c);3932160<=a&&(a=this.Ia(a));return a};
k.yd=function(a,b,c){return mc(this,Be(this,a,b,c),c)};k.Vc=function(a){3932160<=a&&(a=this.Ia(a));return this.w.xa(this.Ib=a)};k.Ee=function(a){return this.w.xa(this.Ib=mc(this,a,2))};k.xc=function(a,b){3932160<=a&&(a=this.Ia(a));this.w.Fb(this.Ib=a,b)};k.Ef=function(a,b){this.w.Fb(this.Ib=mc(this,a,4),b)};
function Ce(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Be(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.A=a.O>>12&3,c=a.Ca(d|c&a.P),a.A=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Na[a.O>>12&3];return c}function De(a,b,c,d){a.ta=a.ta&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Be(a,b,e,4),c&65536||(e&=65535),a.A=a.O>>12&3,e=mc(a,e|c&65536,4),a.A=a.O>>14&3,a.w.Fb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Na[a.O>>12&3]=d}
0,e),a.b-=6,e|g;case 7:return e=a.Ca(Zd(a,2)),e=e+a.u[c]&65535,e=a.Ca(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.ta=a.ta&65535|(a.ta&-65536)<<8|(f<<3&248|c)<<16;return e}k.ud=function(a,b,c){!this.A&&0>=b&&c<=this.jb&&(this.J|=32)};k.vd=function(a,b,c){this.A||(65534<=c&&(c|=-65536),a&4&&c<=this.jb&&(c<=this.jb-32?this.ua(4,0,-4):(this.oa|=8,this.J|=32)))};function oc(a,b){a.K++;b=a.Wc(mc(a,b,2));a.K--;return b}k.yd=function(a,b,c){a=Be(this,a,b,c);3932160<=a&&(a=this.Ja(a));return a};
k.zd=function(a,b,c){return mc(this,Be(this,a,b,c),c)};k.Wc=function(a){3932160<=a&&(a=this.Ja(a));return this.w.xa(this.Ib=a)};k.Fe=function(a){return this.w.xa(this.Ib=mc(this,a,2))};k.xc=function(a,b){3932160<=a&&(a=this.Ja(a));this.w.Fb(this.Ib=a,b)};k.Ff=function(a,b){this.w.Fb(this.Ib=mc(this,a,4),b)};
function Ce(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Be(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.A=a.O>>12&3,c=a.Ca(d|c&a.P),a.A=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Oa[a.O>>12&3];return c}function De(a,b,c,d){a.ta=a.ta&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Be(a,b,e,4),c&65536||(e&=65535),a.A=a.O>>12&3,e=mc(a,e|c&65536,4),a.A=a.O>>14&3,a.w.Fb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Oa[a.O>>12&3]=d}
function Ee(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?Ae(a,a.aa(b,c,3)):a.u[c+a.wb]&a.Hc}function Fe(a,b){b>>=6;var c=a.H=b&7;return(b=a.F=(b&56)>>3)?a.w.xa(a.aa(b,c,2)):a.u[c+a.wb]}function Ge(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Be(a,b,c,8)}function He(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ae(a,a.aa(b,c,3)):a.u[c]&255}function Ie(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.xa(a.aa(b,c,2)):a.u[c]}
function Je(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.kc=a.aa(b,e,7),c=0>c?a.u[-c-1]&255:c,c=d.call(a,c,Ae(a,e)),e&1&&a.b--,a.w.Rb(e,c)):(b=a.u[e],c=0>c?a.u[-c-1]&255:c,a.u[e]=b&65280|d.call(a,c,b&255))}function V(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,6),a.w.Fb(e,d.call(a,0>c?a.u[-c-1]:c,a.w.xa(e)))):a.u[e]=d.call(a,0>c?a.u[-c-1]:c,a.u[e])}
function Ke(a,b,c,d,e){var f=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.aa(b,f,5),e.call(a,(c=0>c?a.u[-c-1]&255:c)<<8),d&1&&a.b--,a.w.Rb(d,c)):(c?(c=0>c?a.u[-c-1]&255:c,a.u[f]=a.u[f]&~d|c<<24>>24&d):a.u[f]&=~d,e.call(a,c<<8))}function Le(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,4),d.call(a,c=0>c?a.u[-c-1]:c),a.w.Fb(e,c)):(a.u[e]=c=0>c?a.u[-c-1]:c,d.call(a,c))}function W(a,b,c){c&&(Ud(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
@ -160,7 +160,7 @@ function xf(a){var b=Fe(this,a);a=Ie(this,a);this.Fa((0>b?this.u[-b-1]:b)&a);thi
function Df(a){W(this,a,Xd(this)||!Yd(this)!=!Wd(this))}function Ef(a){W(this,a,Vd(this)||Xd(this))}function Ff(a){W(this,a,!Yd(this)!=!Wd(this))}function Gf(a){W(this,a,Yd(this))}function Hf(a){W(this,a,!Xd(this))}function If(a){W(this,a,!Yd(this))}function Jf(){this.ua(12,0,-9)}function Kf(a){W(this,a,!0)}function Lf(a){W(this,a,!Wd(this))}function Mf(a){W(this,a,Wd(this))}function Nf(a){a&1&&(this.V=0);a&2&&(this.W=0);a&4&&(this.Z=1);a&8&&(this.X=0);this.b-=5}
function Of(a){var b=Fe(this,a);a=Ie(this,a);var c=(b=0>b?this.u[-b-1]:b)-a;ce(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Pf(a){var b=Ee(this,a);a=He(this,a);var c=(b=(0>b?this.u[-b-1]&255:b)<<8)-(a<<=8);ce(this,c,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}
function Qf(a){var b=Ie(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=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.Z=d>>16|d,this.X=d>>16):(this.W=32768,this.Z=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.Z=this.X=0,this.W=32768,this.V=65536,this.b-=7}function Rf(){this.ua(24,0,-9);this.b-=20}
function Sf(){this.O&49152?(this.oa|=128,this.ua(4,0,-8)):(this.v&&1120==this.ab&&this.v.setData(this.u[0],!0),this.i?Tf(this.i):this.fa());this.b-=7}function Uf(){this.ua(16,0,-9);this.b-=20}var Vf=[0,7,7,10,7,11,9,13];function Wf(a){this.L=this.b;Ud(this,Ge(this,a));this.b=this.L-Vf[this.g]}var Xf=[0,14,14,17,14,18,16,20];function Yf(a){this.L=this.b;var b=Ge(this,a);a=a>>6&7;de(this,this.u[a]);this.u[a]=this.u[7];Ud(this,b);this.b=this.L-Xf[this.g]}
function Sf(){this.O&49152?(this.oa|=128,this.ua(4,0,-8)):(this.v&&1120==this.bb&&this.v.setData(this.u[0],!0),this.i?Tf(this.i):this.fa());this.b-=7}function Uf(){this.ua(16,0,-9);this.b-=20}var Vf=[0,7,7,10,7,11,9,13];function Wf(a){this.L=this.b;Ud(this,Ge(this,a));this.b=this.L-Vf[this.g]}var Xf=[0,14,14,17,14,18,16,20];function Yf(a){this.L=this.b;var b=Ge(this,a);a=a>>6&7;de(this,this.u[a]);this.u[a]=this.u[7];Ud(this,b);this.b=this.L-Xf[this.g]}
var Zf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function $f(a){var b=Fe(this,a);this.L=this.b;Le(this,a,b,this.Fa);this.b=this.L-Zf[(this.F?8:0)+this.g]+(7!=this.f||this.g?0:2)}function ag(a){var b=Ee(this,a);Ke(this,a,b,65535,this.Fa);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}var bg=[7,13,13,17,14,18,17,21];
function cg(a){var b=Ie(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.X=b>>16;this.Z=this.X|b;this.W=0;this.V=-32768>b||32767<b?65536:0;this.b-=23}function dg(){this.b-=5}function eg(){this.O&49152||(this.w.reset(),Tb(this),this.v&&this.v.setData(this.u[0],!0));this.b-=667}function fg(a){if(a&8)X.call(this,a);else{var b=ze(this);a&=7;7==a?Ud(this,b):(Ud(this,this.u[a]),this.u[a]=b);this.b-=9}}
function gg(){ye(this);this.b-=13}function hg(a){a&1&&(this.V=65536);a&2&&(this.W=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);this.b-=5}function ig(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)Ud(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function jg(a){V(this,a,Fe(this,a),kf);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function kg(a){V(this,a,0,mf);this.b-=this.g?9:3+(7==this.f?2:0)}function lg(){this.ua(28,0,-9)}
@ -175,136 +175,136 @@ var Jg=[function(a){Kg[a>>8&15].call(this,a)},$f,Of,xf,tf,vf,of,function(a){Lg[a
this.L=this.b;this.Fa(b);De(this,a,0,b);this.b=this.L-bg[this.g]},function(a){Le(this,a,Yd(this)?65535:0,this.Fa);this.b-=this.g?9:3+(7==this.f?2:0)}],Ng=[function(a){Pg[a&15].call(this,a)},X,X,X,Wf,Wf,Wf,Wf,fg,function(a){a&8?(this.O&49152||(this.O=this.O&-225|(a&7)<<5,this.J|=1,this.J&=-3),this.b-=5):X.call(this,a)},vg,xg,kg,kg,kg,kg],Pg=[Sf,mg,function(){ye(this);this.J|=this.O&16;this.b-=13},Jf,Uf,eg,gg,function(){this.ua(8,0,-9)},X,X,X,X,X,X,X,X],Lg=[cg,cg,Qf,Qf,pf,pf,qf,qf,ng,ng,X,X,X,X,ig,
ig],Mg=[If,Gf,Cf,Ef,Lf,Mf,rf,sf,Rf,lg,zg,Bg,Dg,function(a){Qg[a>>6&3].call(this,a)},X,X],Qg=[X,function(a){a=Ce(this,a,65536);this.Fa(a);de(this,a);this.b-=11},function(a){var b=ze(this);this.L=this.b;this.Fa(b);De(this,a,65536,b);this.b=this.L-bg[this.g]},X];
function Rg(a){z.call(this,"ROM",a,Rg,128);this.ja=this.B=null;this.A=a.addr;this.f=a.size;this.F=!1;this.v=a.alias;this.g=a.file;this.H=w(this.g);if(this.g){a=this.g;var b=pa(this.H);"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.M("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(nb(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja):c.g=null);Sg(c)})}}E(Rg);k=Rg.prototype;
k.Ha=function(a,b,c,d){this.w=b;this.b=c;this.i=d;Sg(this)};k.La=function(){this.ja&&(this.i&&Tg(this.i,this.id,this.A,this.f,this.ja),delete this.ja);return!0};k.Ka=function(){return!0};
function Sg(a){if(!yb(a)){if(a.g){if(!a.B||!a.w)return;a.f||(a.f=a.B.length);if(a.B.length!=a.f)Ab(a,"ROM size ("+q(a.B.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")");else{var b;a:{b=a.A;a.status(a.f+"-byte ROM at "+p(b));if(57344<=b&&b<57344+vc){var c={};b=(c[b]=[Rg.prototype.se,Rg.prototype.sf,null,null,null,a.f>>1],c);if(Kb(a.w,a,b)){b=a.F=!0;break a}}else if(Bc(a.w,b,a.f,sd)){for(c=0;c<a.B.length;c++)Kc(a.w,b+c,a.B[c]);b=!0;break a}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++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.A>>>f.ra;0<g&&l<f.da.length;)h.push(f.da[l++]),g-=f.Ja;f=d.w;d=d.f;g=0;for(e>>>=f.ra;0<d&&e<f.da.length;){l=h[g++];if(!l)break;f.da[e++]=l;d-=f.Ja}}a.F||delete a.B}}}L(a)}}k.se=function(a){return this.B[a-this.A]};k.sf=function(){};cb(function(){for(var a=H(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Rg(d);G(d,c)}});
function Ug(a){z.call(this,"RAM",a,Ug);this.ja=this.B=null;this.g=a.addr;this.v=a.size;this.Va=a.load;this.Ua=a.exec;this.A=!1;this.f=a.file;this.F=w(this.f);if(this.f){a=this.f;var b=pa(this.F);"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.M("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(nb(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja,null==c.Va&&(c.Va=a.Va),null==c.Ua&&(c.Ua=a.Ua)):c.f=null);Vg(c)})}}
E(Ug);Ug.prototype.Ha=function(a,b,c,d){this.w=b;this.b=c;this.i=d;Vg(this)};Ug.prototype.La=function(){this.ja&&(this.i&&Tg(this.i,this.id,this.g,this.v,this.ja),delete this.ja);return!0};Ug.prototype.Ka=function(){return!0};function Vg(a){if(a.w&&(!a.A&&a.v&&(Bc(a.w,a.g,a.v,Nc)?a.A=!0:a.v=0),!yb(a))){if(!a.A)x("No RAM allocated");else if(a.f){if(!a.B||!a.w)return;Wg(a,a.B,a.Va,a.Ua,a.g)}L(a)}}
Ug.prototype.reset=function(){if(this.A){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.ra;0<c&&b<a.da.length;){var e=a.da[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Bb&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.H(d,g,e.G+d);c-=a.Ja;b++;d=0}this.B&&Wg(this,this.B,this.Va,this.Ua,this.g,!0)}};
function Wg(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){I(a,"invalid signature ("+v(m)+") at offset "+v(n),4096);break}if(l+6>=b.length){I(a,"invalid block at offset "+v(n),4096);break}for(var l=l+2,u=b[l++]&255|(b[l++]&255)<<8,r=b[l++]&255|(b[l++]&255)<<8,m=m+((u&255)+(u>>8)+(r&255)+(r>>8)),t=l,C=u-=6;0<u&&l<b.length;)m+=b[l++]&255,u--;if(u||l>=b.length){I(a,"insufficient data for block at offset "+v(n),4096);break}m+=
b[l++]&255;if(m&255){I(a,"invalid checksum ("+q(m,2,!0)+") for block at offset "+v(n),4096);break}if(C)for(I(a,"loading "+v(C)+" bytes at "+v(r)+"-"+v(r+C-1),4096);C--;)Kc(a.w,r++,b[t++]&255);else r&1?g=!0:null==d&&(d=r),null!=d&&I(a,"starting address: "+v(d),4096);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)Kc(a.w,c+e,b[e]);h=!0}if(h){if(null==d||g)a.b.fa(),f=!1;null!=d&&Td(a.b,d,f)}return h}
cb(function(){for(var a=H(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ug(d);G(d,c)}});function Xg(a){z.call(this,"Keyboard",a,Xg,1024);L(this)}E(Xg);Xg.prototype.ya=function(){return!1};Xg.prototype.Ha=function(a,b,c,d){this.B=a;this.b=c;this.i=d};cb(function(){for(var a=H(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Xg(d);G(d,c)}});
function Yg(a){this.L=a.adapter;this.Y=a.baudReceive||9600;this.wa=a.baudTransmit||9600;this.va=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ba=a.charBOL;this.H=0;this.K=!0;z.call(this,"SerialPort",a,Yg,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=Zg;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.D[b])&&this.ya(null,a,b))}this.A=this.P=this.S=null;this.exports={connect:this.Tc,receiveData:this.hc,receiveStatus:this.He}}E(Yg);var Zg="buffer";k=Yg.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case Zg:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.Bc:ma.bd:46==c?b=ma.Bc:a.ctrlKey&&c>=ma.zc&&c<=ma.jd&&(b=c-(ma.zc-ma.Zc));b&&(a.preventDefault&&a.preventDefault(),d.hc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==ma.ad&&(b=ma.$c);d.hc(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
k.Ia=function(a,b,c,d){this.w=b;this.b=c;this.i=d;Sg(this)};k.Ma=function(){this.ja&&(this.i&&Tg(this.i,this.id,this.A,this.f,this.ja),delete this.ja);return!0};k.La=function(){return!0};
function Sg(a){if(!yb(a)){if(a.g){if(!a.B||!a.w)return;a.f||(a.f=a.B.length);if(a.B.length!=a.f)Ab(a,"ROM size ("+q(a.B.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")");else{var b;a:{b=a.A;a.status(a.f+"-byte ROM at "+p(b));if(57344<=b&&b<57344+vc){var c={};b=(c[b]=[Rg.prototype.te,Rg.prototype.tf,null,null,null,a.f>>1],c);if(Kb(a.w,a,b)){b=a.F=!0;break a}}else if(Bc(a.w,b,a.f,sd)){for(c=0;c<a.B.length;c++)Kc(a.w,b+c,a.B[c]);b=!0;break a}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++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.A>>>f.ra;0<g&&l<f.da.length;)h.push(f.da[l++]),g-=f.Ka;f=d.w;d=d.f;g=0;for(e>>>=f.ra;0<d&&e<f.da.length;){l=h[g++];if(!l)break;f.da[e++]=l;d-=f.Ka}}a.F||delete a.B}}}L(a)}}k.te=function(a){return this.B[a-this.A]};k.tf=function(){};cb(function(){for(var a=H(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Rg(d);G(d,c)}});
function Ug(a){z.call(this,"RAM",a,Ug);this.ja=this.B=null;this.g=a.addr;this.v=a.size;this.Wa=a.load;this.Va=a.exec;this.A=!1;this.f=a.file;this.F=w(this.f);if(this.f){a=this.f;var b=pa(this.F);"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.M("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(nb(c.nb,a,b),(a=Fa(a,b))?(c.B=a.ha,c.ja=a.ja,null==c.Wa&&(c.Wa=a.Wa),null==c.Va&&(c.Va=a.Va)):c.f=null);Vg(c)})}}
E(Ug);Ug.prototype.Ia=function(a,b,c,d){this.w=b;this.b=c;this.i=d;Vg(this)};Ug.prototype.Ma=function(){this.ja&&(this.i&&Tg(this.i,this.id,this.g,this.v,this.ja),delete this.ja);return!0};Ug.prototype.La=function(){return!0};function Vg(a){if(a.w&&(!a.A&&a.v&&(Bc(a.w,a.g,a.v,Nc)?a.A=!0:a.v=0),!yb(a))){if(!a.A)x("No RAM allocated");else if(a.f){if(!a.B||!a.w)return;Wg(a,a.B,a.Wa,a.Va,a.g)}L(a)}}
Ug.prototype.reset=function(){if(this.A){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.ra;0<c&&b<a.da.length;){var e=a.da[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Bb&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.H(d,g,e.G+d);c-=a.Ka;b++;d=0}this.B&&Wg(this,this.B,this.Wa,this.Va,this.g,!0)}};
function Wg(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){I(a,"invalid signature ("+v(m)+") at offset "+v(n),4096);break}if(l+6>=b.length){I(a,"invalid block at offset "+v(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(t&255)+(t>>8)),u=l,C=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){I(a,"insufficient data for block at offset "+v(n),4096);break}m+=
b[l++]&255;if(m&255){I(a,"invalid checksum ("+q(m,2,!0)+") for block at offset "+v(n),4096);break}if(C)for(I(a,"loading "+v(C)+" bytes at "+v(t)+"-"+v(t+C-1),4096);C--;)Kc(a.w,t++,b[u++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&I(a,"starting address: "+v(d),4096);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)Kc(a.w,c+e,b[e]);h=!0}if(h){if(null==d||g)a.b.fa(),f=!1;null!=d&&Td(a.b,d,f)}return h}
cb(function(){for(var a=H(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ug(d);G(d,c)}});function Xg(a){z.call(this,"Keyboard",a,Xg,1024);L(this)}E(Xg);Xg.prototype.ya=function(){return!1};Xg.prototype.Ia=function(a,b,c,d){this.B=a;this.b=c;this.i=d};cb(function(){for(var a=H(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Xg(d);G(d,c)}});
function Yg(a){this.L=a.adapter;this.Y=a.baudReceive||9600;this.wa=a.baudTransmit||9600;this.va=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ba=a.charBOL;this.H=0;this.K=!0;z.call(this,"SerialPort",a,Yg,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=Zg;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.D[b])&&this.ya(null,a,b))}this.A=this.P=this.S=null;this.exports={connect:this.Uc,receiveData:this.hc,receiveStatus:this.Ie}}E(Yg);var Zg="buffer";k=Yg.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case Zg:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.Bc:ma.cd:46==c?b=ma.Bc:a.ctrlKey&&c>=ma.zc&&c<=ma.kd&&(b=c-(ma.zc-ma.$c));b&&(a.preventDefault&&a.preventDefault(),d.hc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==ma.bd&&(b=ma.ad);d.hc(b);a.preventDefault&&a.preventDefault();return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.hc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;var e=this;this.ca=Tc(this.b,this.L?-1:48,4,262144);this.na=Qc(this.b,function(){var a;a=-1;e.I.length&&(a=e.I.shift()&255,I(e,"receiveByte("+q(a,2,!0)+")"),e.va&&97<=a&&122>a&&(a-=32),Sc(e.b,e.na,1E3/Math.round(e.Y/10)));0<=a&&(e.N=a,e.f&128?e.N|=49152:e.f|=128,e.f&64&&Rc(c,e.ca))});this.T=Tc(this.b,this.L?-1:52,4,262144);this.Aa=Qc(this.b,function(){e.g|=128;e.g&64&&Rc(c,e.T)});Kb(b,this,$g,this.L?64832+8*(this.L-1)-65392:0);Mb(b,this.reset.bind(this));
L(this)};k.Tc=function(a){if(!this.A){var b=Ed(this.B,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.mb)return;c=ua(c[1]);if(this.A=pb(c)){var e=this.A.exports;if(e){var f=e.connect;f&&f.call(this.A,this.K);if(this.P=e.receiveData){this.K=a;this.S=e.receiveStatus;this.status(this.nb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.La=function(a,b){if(!b)if(this.Tc(this.K),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){ah(this)};k.save=function(){var a=new U(this);a.set(0,[]);return a.data()};k.restore=function(){return ah(this)};function ah(a){a.N=0;a.f=8192;a.g=128;a.I=[];return!0}
k.hc=function(a){if("number"==typeof a)this.I.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.I.push(b)}else this.I=this.I.concat(a);Sc(this.b,this.na,1E3/Math.round(this.Y/10));return!0};k.He=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Rc(this.b,this.ca))};k.fe=function(){var a=this.f&65534;this.f&=-32769;return a};
k.df=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.K?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.A,b))};k.ee=function(){this.f&=-129;return this.N};k.cf=function(){};k.Ge=function(){return this.g};k.Gf=function(a){this.g&128&&(a&64?Rc(this.b,this.T):dd(this.b,this.T));this.g=this.g&-70|a&69};k.Fe=function(){return 0};
k.Ff=function(a){a&=255;I(this,"transmitByte("+q(a,2,!0)+")");this.P&&this.P.call(this.A,a);a&=127;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{if(a){var b;b=(b=13!=a&&10!=a?Aa[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.H%a,this.ma&&(b=ta("",c)));this.ba&&!this.H&&c&&(b=String.fromCharCode(this.ba)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}}else if(null!=this.F){if(10==
a||1024<=this.F.length)this.j(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Sc(this.b,this.Aa,1E3/Math.round(this.wa/10));this.g&=-129};var bh={},$g=(bh[65392]=[null,null,Yg.prototype.fe,Yg.prototype.df,"RCSR"],bh[65394]=[null,null,Yg.prototype.ee,Yg.prototype.cf,"RBUF"],bh[65396]=[null,null,Yg.prototype.Ge,Yg.prototype.Gf,"XCSR"],bh[65398]=[null,null,Yg.prototype.Fe,Yg.prototype.Ff,"XBUF"],bh);
cb(function(){for(var a=H(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Yg(d);G(d,c)}});function md(a){z.call(this,"PC11",a,md);this.N=ch(this,a.autoMount);this.g=0;this.ba=a.baudReceive||3600;this.I=this.K=this.f=0;this.H=[];this.F=dh;this.v=eh;this.L=this.A="";this.ha=this.Va=this.Ua=null;this.T=-1;this.P=!Oa("Mobi")&&window&&"FileReader"in window}E(md);var dh="",eh=0;
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;var e=this;this.ca=Tc(this.b,this.L?-1:48,4,262144);this.na=Qc(this.b,function(){var a;a=-1;e.I.length&&(a=e.I.shift()&255,I(e,"receiveByte("+q(a,2,!0)+")"),e.va&&97<=a&&122>a&&(a-=32),Sc(e.b,e.na,1E3/Math.round(e.Y/10)));0<=a&&(e.N=a,e.f&128?e.N|=49152:e.f|=128,e.f&64&&Rc(c,e.ca))});this.T=Tc(this.b,this.L?-1:52,4,262144);this.Aa=Qc(this.b,function(){e.g|=128;e.g&64&&Rc(c,e.T)});Kb(b,this,$g,this.L?64832+8*(this.L-1)-65392:0);Mb(b,this.reset.bind(this));
L(this)};k.Uc=function(a){if(!this.A){var b=Ed(this.B,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.mb)return;c=ua(c[1]);if(this.A=pb(c)){var e=this.A.exports;if(e){var f=e.connect;f&&f.call(this.A,this.K);if(this.P=e.receiveData){this.K=a;this.S=e.receiveStatus;this.status(this.nb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.Ma=function(a,b){if(!b)if(this.Uc(this.K),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){ah(this)};k.save=function(){var a=new U(this);a.set(0,[]);return a.data()};k.restore=function(){return ah(this)};function ah(a){a.N=0;a.f=8192;a.g=128;a.I=[];return!0}
k.hc=function(a){if("number"==typeof a)this.I.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.I.push(b)}else this.I=this.I.concat(a);Sc(this.b,this.na,1E3/Math.round(this.Y/10));return!0};k.Ie=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Rc(this.b,this.ca))};k.ge=function(){var a=this.f&65534;this.f&=-32769;return a};
k.ef=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.K?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.A,b))};k.fe=function(){this.f&=-129;return this.N};k.df=function(){};k.He=function(){return this.g};k.Hf=function(a){this.g&128&&(a&64?Rc(this.b,this.T):dd(this.b,this.T));this.g=this.g&-70|a&69};k.Ge=function(){return 0};
k.Gf=function(a){a&=255;I(this,"transmitByte("+q(a,2,!0)+")");this.P&&this.P.call(this.A,a);a&=127;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{if(a){var b;b=(b=13!=a&&10!=a?Aa[a]:null)?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.H%a,this.ma&&(b=ta("",c)));this.ba&&!this.H&&c&&(b=String.fromCharCode(this.ba)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}}else if(null!=this.F){if(10==
a||1024<=this.F.length)this.j(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Sc(this.b,this.Aa,1E3/Math.round(this.wa/10));this.g&=-129};var bh={},$g=(bh[65392]=[null,null,Yg.prototype.ge,Yg.prototype.ef,"RCSR"],bh[65394]=[null,null,Yg.prototype.fe,Yg.prototype.df,"RBUF"],bh[65396]=[null,null,Yg.prototype.He,Yg.prototype.Hf,"XCSR"],bh[65398]=[null,null,Yg.prototype.Ge,Yg.prototype.Gf,"XBUF"],bh);
cb(function(){for(var a=H(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Yg(d);G(d,c)}});function md(a){z.call(this,"PC11",a,md);this.N=ch(this,a.autoMount);this.g=0;this.ba=a.baudReceive||3600;this.I=this.K=this.f=0;this.H=[];this.F=dh;this.v=eh;this.L=this.A="";this.ha=this.Wa=this.Va=null;this.T=-1;this.P=!Oa("Mobi")&&window&&"FileReader"in window}E(md);var dh="",eh=0;
function ch(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=md.prototype;
k.ya=function(a,b,c){var d=this,e=eh;switch(b){case "listTapes":return this.D[b]=c,c.onchange=function(){var a=d.D.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){x("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.D[b]=c,!0;case "readTape":e=2;case "loadTape":return e||(e=1),this.D[b]=c,c.onclick=function(){var a=
d.D.listTapes;a&&fh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.D[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;fh(d,w(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.D[b]=c,!0}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;this.Y=gh(a);var e=this;if(a=ch(this,Ed(this.B,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.S=Tc(this.b,56,4,4096);this.ca=Qc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.I<e.H.length&&(e.K=e.H[e.I++]&255,hh(e,e.I/e.H.length*100),e.f|=128,e.f&=-2049,e.f&64&&Rc(e.b,e.S))});Kb(b,this,Ch);Mb(b,this.reset.bind(this));Dh(this,"None",dh,!0);this.P&&Dh(this,"Local Tape","?");Dh(this,"Remote Tape","??");Eh(this)||L(this)};
k.La=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.K=0};function Eh(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.D.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=w(c,!0)}c&&b?Fh(a,b,c,1,!0):Gh(a)}return!!a.g}
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;this.Y=gh(a);var e=this;if(a=ch(this,Ed(this.B,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.S=Tc(this.b,56,4,4096);this.ca=Qc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.I<e.H.length&&(e.K=e.H[e.I++]&255,hh(e,e.I/e.H.length*100),e.f|=128,e.f&=-2049,e.f&64&&Rc(e.b,e.S))});Kb(b,this,Ch);Mb(b,this.reset.bind(this));Dh(this,"None",dh,!0);this.P&&Dh(this,"Local Tape","?");Dh(this,"Remote Tape","??");Eh(this)||L(this)};
k.Ma=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.K=0};function Eh(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.D.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=w(c,!0)}c&&b?Fh(a,b,c,1,!0):Gh(a)}return!!a.g}
function fh(a,b,c,d,e){if(c)if("?"==c)a.M('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=w(c);a.status("Attempting to load "+c+' as "'+b+'"');a.F="??"}else a.F=c;Fh(a,b,c,d,!1,e)}else Hh(a,!1)}
function Fh(a,b,c,d,e,f){var g=-1;if(a.A.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Hh(a,!0),a.C.ob?a.M("PC11 busy"):(e&&(a.g++,K(a)&&I(a,"auto-loading tape: "+b)),Ih(a,b,c,d,f)?g++:a.C.ob=!0);g&&Jh(a,a.L,a.A,a.v,a.ha,a.Va,a.Ua)}
function Ih(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),Jh(a,b,c,d,e),a.F="?");Gh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(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.B&&!a.B.C.la;g?a.M('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.nb,e,f),(e=Fa(e,f))&&Jh(a,b,c,d,e.ha,e.Va,
e.Ua));a.C.ob=!1;a.g&&(a.g--,a.g||L(a));Gh(a)})}function Dh(a,b,c,d){if((a=a.D.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 Fh(a,b,c,d,e,f){var g=-1;if(a.A.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Hh(a,!0),a.C.ob?a.M("PC11 busy"):(e&&(a.g++,K(a)&&I(a,"auto-loading tape: "+b)),Ih(a,b,c,d,f)?g++:a.C.ob=!0);g&&Jh(a,a.L,a.A,a.v,a.ha,a.Wa,a.Va)}
function Ih(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),Jh(a,b,c,d,e),a.F="?");Gh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(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.B&&!a.B.C.la;g?a.M('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.nb,e,f),(e=Fa(e,f))&&Jh(a,b,c,d,e.ha,e.Wa,
e.Va));a.C.ob=!1;a.g&&(a.g--,a.g||L(a));Gh(a)})}function Dh(a,b,c,d){if((a=a.D.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 Gh(a){var b=a.D.listTapes;if(b&&b.options){a=a.F||a.A;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 hh(a,b){b|=0;if(b!==a.T){var c=a.D.readProgress;c&&(c=(c=H(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.T=b}}
function Jh(a,b,c,d,e,f,g){a.L=b;a.A=c;a.v=d;a.ha=e;a.Va=f;a.Ua=g;2==d?a.Y&&Wg(a.Y,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.M('No valid memory address for tape "'+b+'"'):(a.I=0,a.H=e,a.status('Loaded tape "'+b+'"'),hh(a,0))}function Hh(a,b){if(a.A||!1===b)a.L="",a.A="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.F=dh,a.v=eh,Gh(a))}k.save=function(){return(new U(this)).data()};k.restore=function(){return!0};k.Zd=function(){return this.f&65534};
k.Xe=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Rc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.K=0,Sc(this.b,this.ca,1E3/Math.round(this.ba/10))));this.f=this.f&-66|a&65};k.Yd=function(){this.f&=-129;this.f|=2048;return this.K};k.We=function(){};var Kh={},Ch=(Kh[65384]=[null,null,md.prototype.Zd,md.prototype.Xe,"PRS"],Kh[65386]=[null,null,md.prototype.Yd,md.prototype.We,"PRB"],Kh);
function Lh(a,b,c){z.call(this,"Disk",{id:a.nb+".disk"+q(++Mh,4)},Lh,8192);this.controller=a;this.B=a.B;this.i=a.i;this.v=b;this.Wa=b.name;this.cc=b.cc;Nh(this,c,b.ea,b.ka,b.ia,b.Ba);L(this)}var Mh=0;E(Lh);k=Lh.prototype;k.Ha=function(a,b,c,d){this.i=d};
function Jh(a,b,c,d,e,f,g){a.L=b;a.A=c;a.v=d;a.ha=e;a.Wa=f;a.Va=g;2==d?a.Y&&Wg(a.Y,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.M('No valid memory address for tape "'+b+'"'):(a.I=0,a.H=e,a.status('Loaded tape "'+b+'"'),hh(a,0))}function Hh(a,b){if(a.A||!1===b)a.L="",a.A="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.F=dh,a.v=eh,Gh(a))}k.save=function(){return(new U(this)).data()};k.restore=function(){return!0};k.$d=function(){return this.f&65534};
k.Ye=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Rc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.K=0,Sc(this.b,this.ca,1E3/Math.round(this.ba/10))));this.f=this.f&-66|a&65};k.Zd=function(){this.f&=-129;this.f|=2048;return this.K};k.Xe=function(){};var Kh={},Ch=(Kh[65384]=[null,null,md.prototype.$d,md.prototype.Ye,"PRS"],Kh[65386]=[null,null,md.prototype.Zd,md.prototype.Xe,"PRB"],Kh);
function Lh(a,b,c){z.call(this,"Disk",{id:a.nb+".disk"+q(++Mh,4)},Lh,8192);this.controller=a;this.B=a.B;this.i=a.i;this.v=b;this.Xa=b.name;this.cc=b.cc;Nh(this,c,b.ea,b.ka,b.ia,b.Ba);L(this)}var Mh=0;E(Lh);k=Lh.prototype;k.Ia=function(a,b,c,d){this.i=d};
function Nh(a,b,c,d,e,f){a.mode=b;a.ea=c;a.ka=d;a.ia=e;a.Ba=f;a.b=[];if("preload"!=a.mode){b=Array(a.ea);for(c=0;c<b.length;c++){d=Array(a.ka);for(e=0;e<d.length;e++){f=Array(a.ia);for(var g=1;g<=f.length;g++)f[g-1]=Oh(null,c,e,g,a.Ba,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
function Ph(a,b,c,d,e){var f=c;if(a.w)return!0;a.Wa=b;a.Oa=c;a.uc=w(c);a.w=e;a.A=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ea=e[0];a.ka=e[1];a.ia=e[2];a.Ba=e[3]||512;c=a.Ba>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ea);for(d=0;d<a.b.length;d++)for(var r=a.b[d]=Array(a.ka),t=0;t<r.length;t++)for(var C=r[t]=Array(a.ia),y=0;y<C.length;y++){for(var A=Oh(null,d,t,y+1,a.Ba,0),D=A.data,Sa=0;Sa<c;Sa++,f+=4)var S=D[Sa]=b.getInt32(f,
!0),e=e+S&-1;A.Ra=c;C[y]=A}a.f=e;c=a}else a.M("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Wa,a.Oa),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=pa(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"):qa(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.cc?"":e)+"&format=json"));return!!Ea(f,
function Ph(a,b,c,d,e){var f=c;if(a.w)return!0;a.Xa=b;a.Pa=c;a.uc=w(c);a.w=e;a.A=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ea=e[0];a.ka=e[1];a.ia=e[2];a.Ba=e[3]||512;c=a.Ba>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ea);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ka),u=0;u<t.length;u++)for(var C=t[u]=Array(a.ia),y=0;y<C.length;y++){for(var A=Oh(null,d,u,y+1,a.Ba,0),D=A.data,Sa=0;Sa<c;Sa++,f+=4)var S=D[Sa]=b.getInt32(f,
!0),e=e+S&-1;A.Ra=c;C[y]=A}a.f=e;c=a}else a.M("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Xa,a.Pa),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=pa(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"):qa(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){Qh(a,b,c,d)})}
function Qh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.B&&!a.B.C.la;if(d)a.controller.M('Unable to load disk "'+a.Wa+'" (error '+d+": "+b+")",f);else{nb(a.controller.nb,b,c);try{if(0<w(a.uc,!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.Wa]: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)x(h[0]);else{a.ea=h.length;a.ka=h[0].length;a.ia=h[0][0].length;var l=h[0][0][0];a.Ba=l&&l.length||512;for(d=c=0;d<a.ea;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ia;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 u=l.data;if(void 0===u){var r=l.bytes;if(void 0!==r&&r.length){for(var t=m<<2,C=r.length;C<t;C++)r[C]=n;Rh(l,r)}else u=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=u;delete l.bytes}Oh(l,d,f);for(t=
0;t<u.length;t++)c=c+u[t]&-1}a.b=h;a.f=c;e=a}else x("Empty disk image: "+a.Wa)}catch(y){x("Disk image error ("+b+"): "+y.message)}}a.w&&(a.w.call(a.A,a.v,e,a.Wa,a.Oa),a.w=null)}function Oh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Hg=b;a.Ig=c;a.$a=a.Ra=0;a.hb=!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.od&&b<f.ka)for(h=g[b]=Array(f.Nc),g=0;g<h.length;g++)h[g]=Oh(null,a,b,g+1,f.rc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.od&&9==f.nc&&(d=h[g]=Oh(null,a,b,f.nc,f.rc,0))}}e&&e(d,!1);return d};function Rh(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.Ra?f<a.$a?(a.Ra+=a.$a-f,a.$a=f):f>=a.$a+a.Ra&&(a.Ra+=f-(a.$a+a.Ra)+1):(a.$a=f,a.Ra=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Qh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.B&&!a.B.C.la;if(d)a.controller.M('Unable to load disk "'+a.Xa+'" (error '+d+": "+b+")",f);else{nb(a.controller.nb,b,c);try{if(0<w(a.uc,!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.Xa]: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)x(h[0]);else{a.ea=h.length;a.ka=h[0].length;a.ia=h[0][0].length;var l=h[0][0][0];a.Ba=l&&l.length||512;for(d=c=0;d<a.ea;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ia;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 u=m<<2,C=t.length;C<u;C++)t[C]=n;Rh(l,t)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}Oh(l,d,f);for(u=
0;u<r.length;u++)c=c+r[u]&-1}a.b=h;a.f=c;e=a}else x("Empty disk image: "+a.Xa)}catch(y){x("Disk image error ("+b+"): "+y.message)}}a.w&&(a.w.call(a.A,a.v,e,a.Xa,a.Pa),a.w=null)}function Oh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ig=b;a.Jg=c;a.ab=a.Ra=0;a.hb=!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.pd&&b<f.ka)for(h=g[b]=Array(f.Nc),g=0;g<h.length;g++)h[g]=Oh(null,a,b,g+1,f.rc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.pd&&9==f.nc&&(d=h[g]=Oh(null,a,b,f.nc,f.rc,0))}}e&&e(d,!1);return d};function Rh(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.Ra?f<a.ab?(a.Ra+=a.ab-f,a.ab=f):f>=a.ab+a.Ra&&(a.Ra+=f-(a.ab+a.Ra)+1):(a.ab=f,a.Ra=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Sh(a,b){var c=a.ka*a.ia,d=b/c|0;return d<a.ea?(b%=c,a.seek(d,b/a.ia|0,b%a.ia+1)):null}function Th(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Uh(a){for(var b="",c=0,d;d=Sh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Th(a,d,e));return btoa(b)}
k.save=function(){var a=0,b=[];b[a++]=[this.Oa,this.f,this.ea,this.ka,this.ia,this.Ba];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.Ra){for(var h=[],l=0,m=g.$a,n=g.$a+g.Ra;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.$a,h]}}return b};
k.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.f,this.ea,this.ka,this.ia,this.Ba];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.Ra){for(var h=[],l=0,m=g.ab,n=g.ab+g.Ra;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.ab,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?Nh(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.$a=e;for(h.Ra=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.M("Unable to restore disk '"+this.Wa+": "+c);return b};
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.ab=e;for(h.Ra=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.M("Unable to restore disk '"+this.Xa+": "+c);return b};
k.toJSON=function(){var a;a=0;for(var b;b=Sh(this,a++);)Vh(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 Vh(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 T(a){z.call(this,"RK11",a,T,65536);this.K=Wh(this,a.autoMount);this.F=0;this.g=Array(8);this.L=!Oa("Mobi")&&window&&"FileReader"in window}E(T);function Wh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=T.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("RK11 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.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&Xh(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&Yh(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Td(d.b,0,!0),(a=d.Cc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.L){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Pa(Uh(a),a.uc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.L)return this.D[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;Yh(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;if(a=Wh(this,Ed(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);Zh(this);this.Kb=Tc(this.b,144,5,65536);Kb(b,this,$h);Mb(b,this.reset.bind(this));ai(this,"None","",!0);this.L&&ai(this,"Local Disk","?");ai(this,"Remote Disk","??");bi(this)||L(this)};
k.La=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)ci(this,a,!0);bi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Xh(this,0)}}return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){Zh(this)};k.save=function(){return(new U(this)).data()};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;if(a=Wh(this,Ed(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);Zh(this);this.Kb=Tc(this.b,144,5,65536);Kb(b,this,$h);Mb(b,this.reset.bind(this));ai(this,"None","",!0);this.L&&ai(this,"Local Disk","?");ai(this,"Remote Disk","??");bi(this)||L(this)};
k.Ma=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)ci(this,a,!0);bi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Xh(this,0)}}return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){Zh(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return Zh(this,a[0])};function bi(a,b){b||(a.F=0);for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.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=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!di(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
function Yh(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('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=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}di(a,e,b,c,!1,d)}else ci(a,e)}
function di(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Oa.toLowerCase()!=d.toLowerCase()&&(g++,ci(a,b,!0),h.zb?a.M("RK11 busy"):(h.zb=!0,e&&(h.yb=!0,a.F++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Ph(new Lh(a,h,"preload"),c,d,f,a.dd)&&g++));return g}
k.dd=function(a,b,c,d,e){a.zb=!1;b&&(b.ea>a.ea||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RK"+a.Ab)),b=null);b?(a.qa=b,a.Wa=c,a.Oa=d,this.M('Loaded disk "'+c+'" in drive '+("RK"+a.Ab),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.F||L(this));Xh(this,a.Ab)};
function di(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Pa.toLowerCase()!=d.toLowerCase()&&(g++,ci(a,b,!0),h.zb?a.M("RK11 busy"):(h.zb=!0,e&&(h.yb=!0,a.F++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Ph(new Lh(a,h,"preload"),c,d,f,a.ed)&&g++));return g}
k.ed=function(a,b,c,d,e){a.zb=!1;b&&(b.ea>a.ea||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RK"+a.Ab)),b=null);b?(a.qa=b,a.Xa=c,a.Pa=d,this.M('Loaded disk "'+c+'" in drive '+("RK"+a.Ab),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.F||L(this));Xh(this,a.Ab)};
function ai(a,b,c,d){if((a=a.D.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 Xh(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Oa,!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 ci(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Wa="",d.Oa="",d.qa=null,d.ib=!1,c||(a.M("Drive RK"+b+" unloaded",c),Xh(a,b))}
function Zh(a,b){var c=0;b||(b=[]);a.P=b[c++]||2496;a.v=b[c++]||0;a.f=b[c++]||128;a.I=b[c++]||0;a.H=b[c++]||0;a.A=b[c++]||0;a.N=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Ab=b;d.name=c.mb;d.zb=d.ib=!1;d.ea=203;d.ka=2;d.ia=12;d.Ba=512;d.cc=!0;d.pd=0;d.nd=0;d.nc=1;d.Nc=d.ia;d.rc=d.Ba;d.zd=0;d.Je=null;d.qa||(d.Oa="");d.status=2368}return!0}
k.cd=function(a,b,c,d,e,f){this.H=f&65535;this.f=this.f&-49|f>>12&48;this.I=65536-e&65535;this.A=this.A&-16|d&15;a&&(this.v=this.v|a|32768,this.f|=49152);return!0};
k.Cc=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){if(!m){m=a.seek(b,c,d+1);if(!m){l=4096;break}n=0}var u,r;if(0>(u=a.read(m,n++))||0>(r=a.read(m,n++))){l=32;break}if(!g&&(Zb(this.w,f,u|r<<8),Pc(this.w))){l=1024;break}f+=2;if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){l=64;break}}return h?h(l,b,c,d,e,f):l};
k.ed=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){var u=nc(this.w,f);if(Pc(this.w)){l=1024;break}f+=2;if(!m){m=a.seek(b,c,d+1,!0);if(!m){l=4096;break}n=0}if(g){var r,t;if(0>(r=a.read(m,n++))||0>(t=a.read(m,n++))){l=32;break}if(u!=(r|t<<8)){l=1;break}}else if(!a.write(m,n++,u&255)||!a.write(m,n++,u>>8)){l=32;break}if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){l=64;break}}return h?h(l,b,c,d,e,f):l};k.ke=function(){return this.P};k.jf=function(){};
k.le=function(){return this.v};k.kf=function(){};k.he=function(){return this.f&61438};
k.ff=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){a=!0;var b,c="",d=(this.A&57344)>>13,e=this.g[d],f,g,h,l,m;this.f&=-129;var n=(this.f&14)>>1;switch(n){case 0:K(this)&&I(this,this.type+": CRESET("+d+")",!0);this.v=0;this.f=128;this.A=0;break;case 4:f=(this.A&8160)>>5;K(this)&&I(this,this.type+": SEEK("+f+")",!0);f>=e.ea&&(this.v|=32832,this.f|=49152);break;case 5:c="RCHK";case 2:c||(c="READ"),b=this.Cc;case 3:c||(c="WCHK");case 1:c||(c="WRITE");b||(b=this.ed);f=(this.A&8160)>>5;g=(this.A&
16)>>4;h=this.A&15;l=65536-this.I&65535;m=(this.f&48)<<12|this.H;K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(m)+"-"+p(m+(l-1<<1)),!0);if(f>=e.ea){this.v|=32832;this.f|=49152;break}if(h>=e.ia){this.v|=32800;this.f|=49152;break}a=b.call(this,e,f,g,h,l,m,3<=n,this.cd.bind(this));break;case 6:K(this)&&I(this,this.type+": DRESET("+d+")");break;default:K(this)&&I(this,this.type+": UNSUPPORTED("+n+")")}this.P=e.status|(e.qa?128:0)|d<<13|this.A&15;this.v&32768&&K(this)&&I(this,this.type+": ERROR: "+
p(this.v)+")");a&&(this.f&=-2,this.f|=128,this.f&64&&Rc(this.b,this.Kb))}};k.me=function(){return this.I};k.lf=function(a){this.I=a};k.ge=function(){return this.H};k.ef=function(a){this.H=a};k.ie=function(){return this.A};k.gf=function(a){this.A=a};k.je=function(){return this.N};k.hf=function(a){this.N=a};
var ei={},$h=(ei[65280]=[null,null,T.prototype.ke,T.prototype.jf,"RKDS"],ei[65282]=[null,null,T.prototype.le,T.prototype.kf,"RKER"],ei[65284]=[null,null,T.prototype.he,T.prototype.ff,"RKCS"],ei[65286]=[null,null,T.prototype.me,T.prototype.lf,"RKWC"],ei[65288]=[null,null,T.prototype.ge,T.prototype.ef,"RKBA"],ei[65290]=[null,null,T.prototype.ie,T.prototype.gf,"RKDA"],ei[65294]=[null,null,T.prototype.je,T.prototype.hf,"RKDB"],ei);
function Xh(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Pa,!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 ci(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Xa="",d.Pa="",d.qa=null,d.ib=!1,c||(a.M("Drive RK"+b+" unloaded",c),Xh(a,b))}
function Zh(a,b){var c=0;b||(b=[]);a.P=b[c++]||2496;a.v=b[c++]||0;a.f=b[c++]||128;a.I=b[c++]||0;a.H=b[c++]||0;a.A=b[c++]||0;a.N=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Ab=b;d.name=c.mb;d.zb=d.ib=!1;d.ea=203;d.ka=2;d.ia=12;d.Ba=512;d.cc=!0;d.qd=0;d.od=0;d.nc=1;d.Nc=d.ia;d.rc=d.Ba;d.Ad=0;d.Ke=null;d.qa||(d.Pa="");d.status=2368}return!0}
k.dd=function(a,b,c,d,e,f){this.H=f&65535;this.f=this.f&-49|f>>12&48;this.I=65536-e&65535;this.A=this.A&-16|d&15;a&&(this.v=this.v|a|32768,this.f|=49152);return!0};
k.Cc=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){if(!m){m=a.seek(b,c,d+1);if(!m){l=4096;break}n=0}var r,t;if(0>(r=a.read(m,n++))||0>(t=a.read(m,n++))){l=32;break}if(!g&&(Zb(this.w,f,r|t<<8),Pc(this.w))){l=1024;break}f+=2;if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){l=64;break}}return h?h(l,b,c,d,e,f):l};
k.fd=function(a,b,c,d,e,f,g,h){var l=0;a=a.qa;var m=null,n;a||(l=128,e=0);for(;e--;){var r=nc(this.w,f);if(Pc(this.w)){l=1024;break}f+=2;if(!m){m=a.seek(b,c,d+1,!0);if(!m){l=4096;break}n=0}if(g){var t,u;if(0>(t=a.read(m,n++))||0>(u=a.read(m,n++))){l=32;break}if(r!=(t|u<<8)){l=1;break}}else if(!a.write(m,n++,r&255)||!a.write(m,n++,r>>8)){l=32;break}if(n>=a.Ba&&(m=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){l=64;break}}return h?h(l,b,c,d,e,f):l};k.le=function(){return this.P};k.kf=function(){};
k.me=function(){return this.v};k.lf=function(){};k.ie=function(){return this.f&61438};
k.gf=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){a=!0;var b,c="",d=(this.A&57344)>>13,e=this.g[d],f,g,h,l,m;this.f&=-129;var n=(this.f&14)>>1;switch(n){case 0:K(this)&&I(this,this.type+": CRESET("+d+")",!0);this.v=0;this.f=128;this.A=0;break;case 4:f=(this.A&8160)>>5;K(this)&&I(this,this.type+": SEEK("+f+")",!0);f>=e.ea&&(this.v|=32832,this.f|=49152);break;case 5:c="RCHK";case 2:c||(c="READ"),b=this.Cc;case 3:c||(c="WCHK");case 1:c||(c="WRITE");b||(b=this.fd);f=(this.A&8160)>>5;g=(this.A&
16)>>4;h=this.A&15;l=65536-this.I&65535;m=(this.f&48)<<12|this.H;K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(m)+"-"+p(m+(l-1<<1)),!0);if(f>=e.ea){this.v|=32832;this.f|=49152;break}if(h>=e.ia){this.v|=32800;this.f|=49152;break}a=b.call(this,e,f,g,h,l,m,3<=n,this.dd.bind(this));break;case 6:K(this)&&I(this,this.type+": DRESET("+d+")");break;default:K(this)&&I(this,this.type+": UNSUPPORTED("+n+")")}this.P=e.status|(e.qa?128:0)|d<<13|this.A&15;this.v&32768&&K(this)&&I(this,this.type+": ERROR: "+
p(this.v)+")");a&&(this.f&=-2,this.f|=128,this.f&64&&Rc(this.b,this.Kb))}};k.ne=function(){return this.I};k.mf=function(a){this.I=a};k.he=function(){return this.H};k.ff=function(a){this.H=a};k.je=function(){return this.A};k.hf=function(a){this.A=a};k.ke=function(){return this.N};k.jf=function(a){this.N=a};
var ei={},$h=(ei[65280]=[null,null,T.prototype.le,T.prototype.kf,"RKDS"],ei[65282]=[null,null,T.prototype.me,T.prototype.lf,"RKER"],ei[65284]=[null,null,T.prototype.ie,T.prototype.gf,"RKCS"],ei[65286]=[null,null,T.prototype.ne,T.prototype.mf,"RKWC"],ei[65288]=[null,null,T.prototype.he,T.prototype.ff,"RKBA"],ei[65290]=[null,null,T.prototype.je,T.prototype.hf,"RKDA"],ei[65294]=[null,null,T.prototype.ke,T.prototype.jf,"RKDB"],ei);
function R(a){z.call(this,"RL11",a,R,131072);this.L=fi(this,a.autoMount);this.I=0;this.g=Array(4);this.N=!Oa("Mobi")&&window&&"FileReader"in window}E(R);function fi(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){x(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}k=R.prototype;
k.ya=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){x("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.D[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&gi(d,
a)},!0;case "loadDisk":return this.D[b]=c,c.onclick=function(){var a=d.D.listDisks;a&&a.options&&hi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.D[b]=c,c.onclick=function(){var a,b=d.D.listDrives,b=b&&na(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.M("Unable to boot the selected drive"):a.qa?(Td(d.b,0,!0),(a=d.Dc(a,0,0,0,512,0))&&d.M("Unable to read the boot sector ("+a+")")):d.M("Load a disk into the drive first")},!0;case "saveDisk":if(!this.N){c.parentNode.removeChild(c);
break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[na(a.value,10)||0])?(a=a.qa)?(a=Pa(Uh(a),a.uc.replace(".json",".img")),x(a)):d.M("No disk loaded in drive."):d.M("No disk drive selected."))};return!0;case "mountDisk":if(this.N)return this.D[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;hi(d,w(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
k.Ha=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;if(a=fi(this,Ed(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.L[e]=a[e]);ii(this);this.Kb=Tc(this.b,112,5,131072);Kb(b,this,ji);Mb(b,this.reset.bind(this));ki(this,"None","",!0);this.N&&ki(this,"Local Disk","?");ki(this,"Remote Disk","??");li(this)||L(this)};
k.La=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)mi(this,a,!0);li(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.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";gi(this,0)}}return!0};k.Ka=function(a){return a?this.save():!0};k.reset=function(){ii(this)};k.save=function(){return(new U(this)).data()};
k.Ia=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.i=d;if(a=fi(this,Ed(this.B,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.L[e]=a[e]);ii(this);this.Kb=Tc(this.b,112,5,131072);Kb(b,this,ji);Mb(b,this.reset.bind(this));ki(this,"None","",!0);this.N&&ki(this,"Local Disk","?");ki(this,"Remote Disk","??");li(this)||L(this)};
k.Ma=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.B.qc){for(a=0;a<this.g.length;a++)mi(this,a,!0);li(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.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";gi(this,0)}}return!0};k.La=function(a){return a?this.save():!0};k.reset=function(){ii(this)};k.save=function(){return(new U(this)).data()};
k.restore=function(a){return ii(this,a[0])};function li(a,b){b||(a.I=0);for(var c in a.L){var d=a.L[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.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=w(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!ni(a,g,f,e,!0)&&b&&L(a,!1);continue}a.M("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.I}
function hi(a,b,c,d){var e=a.D.listDrives,e=e&&na(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.M("Unable to load the selected drive");else if(c)if("?"==c)a.M('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=w(c);a.status("Attempting to load "+c+' as "'+b+'"')}ni(a,e,b,c,!1,d)}else mi(a,e)}
function ni(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Oa.toLowerCase()!=d.toLowerCase()&&(g++,mi(a,b,!0),h.zb?a.M("RL11 busy"):(h.zb=!0,e&&(h.yb=!0,a.I++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Ph(new Lh(a,h,"preload"),c,d,f,a.gd)&&g++));return g}
k.gd=function(a,b,c,d,e){a.zb=!1;b&&(b.ea>a.ea||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RL"+a.Ab)),b=null);b?(a.qa=b,a.Wa=c,a.Oa=d,this.M('Loaded disk "'+c+'" in drive '+("RL"+a.Ab),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.I||L(this));gi(this,a.Ab)};
function ni(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Pa.toLowerCase()!=d.toLowerCase()&&(g++,mi(a,b,!0),h.zb?a.M("RL11 busy"):(h.zb=!0,e&&(h.yb=!0,a.I++,K(a)&&I(a,"auto-loading disk: "+c)),h.ib=!!f,Ph(new Lh(a,h,"preload"),c,d,f,a.hd)&&g++));return g}
k.hd=function(a,b,c,d,e){a.zb=!1;b&&(b.ea>a.ea||b.ka>a.ka)&&(this.M('Disk "'+c+'" too large for drive '+("RL"+a.Ab)),b=null);b?(a.qa=b,a.Xa=c,a.Pa=d,this.M('Loaded disk "'+c+'" in drive '+("RL"+a.Ab),a.yb||e),this.B&&this.B.rb()):a.ib=!1;a.yb&&(a.yb=!1,--this.I||L(this));gi(this,a.Ab)};
function ki(a,b,c,d){if((a=a.D.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 gi(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Oa,!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 mi(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Wa="",d.Oa="",d.qa=null,d.ib=!1,c||(a.M("Drive RL"+b+" unloaded",c),gi(a,b))}
function ii(a,b){var c=0;b||(b=[]);a.f=b[c++]||129;a.K=b[c++]||0;a.v=b[c++]||0;a.A=b[c++]||0;a.H=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Ab=b;d.name=c.mb;d.zb=d.ib=!1;d.ea=512;d.ka=2;d.ia=40;d.Ba=256;d.cc=!0;d.pd=0;d.nd=0;d.nc=1;d.Nc=d.ia;d.rc=d.Ba;d.zd=0;d.Je=null;d.qa||(d.Oa="");d.status=29}return!0}
k.fd=function(a,b,c,d,e,f){this.K=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.A=this.v=b<<7|(c?64:0)|d&63;this.H=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
k.Dc=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,u;if(0>(n=a.read(l,m++))||0>(u=a.read(l,m++))){h=5120;break}Zb(this.w,this.b.Ia(f),n|u<<8);if(Pc(this.w)){h=8192;break}f+=2;if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};
k.hd=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=nc(this.w,this.b.Ia(f));if(Pc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};k.pe=function(){return this.f&65535};
k.pf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){a=!0;var b,c="",d=this.g[(this.f&768)>>8],e=d.qa,f,g,h;this.f&=-2;switch(this.f&14){case 4:this.H&8&&(this.f&=63);this.H=d.status|this.A&64|(e&&512==e.ea?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.A=this.v&4?this.A+b:this.A-b,this.v=this.A=this.A&65408|c);break;case 8:this.H=this.A;break;case 12:c="READ",b=this.Dc;case 10:c||(c="WRITE"),b||(b=this.hd),f=this.v>>7,g=this.v&64?1:0,
h=this.v&63,!e||f>=e.ea||h>=e.ia?this.f|=37888:(a=65536-this.H&65535,e=(this.F&63)<<16|this.K,K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(e)+"-"+p(e+(a-1<<1)),!0),a=b.call(this,d,f,g,h,a,e,this.fd.bind(this)))}a&&(this.f|=129,this.f&64&&Rc(this.b,this.Kb))}};k.ne=function(){return this.K};k.mf=function(a){this.K=a&65534};k.qe=function(){return this.v};k.qf=function(a){this.v=a};k.re=function(){return this.H};k.rf=function(a){this.H=a};k.oe=function(){return this.F};
k.nf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};var oi={},ji=(oi[63744]=[null,null,R.prototype.pe,R.prototype.pf,"RLCS"],oi[63746]=[null,null,R.prototype.ne,R.prototype.mf,"RLBA"],oi[63748]=[null,null,R.prototype.qe,R.prototype.qf,"RLDA"],oi[63750]=[null,null,R.prototype.re,R.prototype.rf,"RLMP"],oi[63752]=[null,null,R.prototype.oe,R.prototype.nf,"RLBE"],oi);function pi(a){z.call(this,"Debugger",a,pi);this.ma=a.base||16;this.Ga=!1;this.I=0;this.T=!1;this.A=-1;this.g=[];this.ba={}}E(pi);
var qi={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};pi.prototype.Rc=function(){return-1};pi.prototype.Sc=function(){};
function gi(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ib?"?":c.Pa,!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 mi(a,b,c){var d=a.g[b];if(d.qa||!1===c)d.Xa="",d.Pa="",d.qa=null,d.ib=!1,c||(a.M("Drive RL"+b+" unloaded",c),gi(a,b))}
function ii(a,b){var c=0;b||(b=[]);a.f=b[c++]||129;a.K=b[c++]||0;a.v=b[c++]||0;a.A=b[c++]||0;a.H=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.Ab=b;d.name=c.mb;d.zb=d.ib=!1;d.ea=512;d.ka=2;d.ia=40;d.Ba=256;d.cc=!0;d.qd=0;d.od=0;d.nc=1;d.Nc=d.ia;d.rc=d.Ba;d.Ad=0;d.Ke=null;d.qa||(d.Pa="");d.status=29}return!0}
k.gd=function(a,b,c,d,e,f){this.K=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.A=this.v=b<<7|(c?64:0)|d&63;this.H=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
k.Dc=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=5120;break}Zb(this.w,this.b.Ja(f),n|r<<8);if(Pc(this.w)){h=8192;break}f+=2;if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};
k.jd=function(a,b,c,d,e,f,g){var h=0;a=a.qa;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=nc(this.w,this.b.Ja(f));if(Pc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Ba&&(l=null,++d>=a.ia&&(d=0,++c>=a.ka&&(c=0,++b>=a.ea)))){h=5120;break}}return g?g(h,b,c,d,e,f):h};k.qe=function(){return this.f&65535};
k.qf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){a=!0;var b,c="",d=this.g[(this.f&768)>>8],e=d.qa,f,g,h;this.f&=-2;switch(this.f&14){case 4:this.H&8&&(this.f&=63);this.H=d.status|this.A&64|(e&&512==e.ea?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.A=this.v&4?this.A+b:this.A-b,this.v=this.A=this.A&65408|c);break;case 8:this.H=this.A;break;case 12:c="READ",b=this.Dc;case 10:c||(c="WRITE"),b||(b=this.jd),f=this.v>>7,g=this.v&64?1:0,
h=this.v&63,!e||f>=e.ea||h>=e.ia?this.f|=37888:(a=65536-this.H&65535,e=(this.F&63)<<16|this.K,K(this)&&I(this,this.type+": "+c+"("+f+":"+g+":"+h+") @"+p(e)+"-"+p(e+(a-1<<1)),!0),a=b.call(this,d,f,g,h,a,e,this.gd.bind(this)))}a&&(this.f|=129,this.f&64&&Rc(this.b,this.Kb))}};k.oe=function(){return this.K};k.nf=function(a){this.K=a&65534};k.re=function(){return this.v};k.rf=function(a){this.v=a};k.se=function(){return this.H};k.sf=function(a){this.H=a};k.pe=function(){return this.F};
k.pf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};var oi={},ji=(oi[63744]=[null,null,R.prototype.qe,R.prototype.qf,"RLCS"],oi[63746]=[null,null,R.prototype.oe,R.prototype.nf,"RLBA"],oi[63748]=[null,null,R.prototype.re,R.prototype.rf,"RLDA"],oi[63750]=[null,null,R.prototype.se,R.prototype.sf,"RLMP"],oi[63752]=[null,null,R.prototype.pe,R.prototype.pf,"RLBE"],oi);function pi(a){z.call(this,"Debugger",a,pi);this.ma=a.base||16;this.Ga=!1;this.I=0;this.T=!1;this.A=-1;this.g=[];this.ba={}}E(pi);
var qi={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};pi.prototype.Rc=function(){return-1};pi.prototype.Sc=function(){};pi.prototype.Tc=function(){};
function ri(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.T?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ua(b.substring(c,f))),c=f+1}}return a}
function si(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 ti(a,b,c){var d;if(b){b=ui(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],u=n.length,n=ua(n);if(!n){f=!0;break}n=vi(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++],r=n.length;l.length&&qi[n]<qi[l[l.length-1]]&&si(h,l,1);l.push(n);b=b.substr(u+r)}si(h,l)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&wi(a,null,
function ti(a,b,c){var d;if(b){b=ui(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=ua(n);if(!n){f=!0;break}n=vi(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&&qi[n]<qi[l[l.length-1]]&&si(h,l,1);l.push(n);b=b.substr(r+t)}si(h,l)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&wi(a,null,
d))}return d}function ui(a,b){for(var c,d=a.Ga?"(":"{",e=a.Ga?")":"}",f=new RegExp(a.Ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=ti(a,c[1]);b=b.replace(d+c[1]+e,null!=g?N(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 vi(a,b,c,d){var e;null!=b?(e=a.Rc(b),0<=e?e=a.Sc(e):(e=a.ba[b],null==e&&(e=na(b,a.ma))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}function wi(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),g=oa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+p(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
function vi(a,b,c,d){var e;null!=b?(e=a.Rc(b),0<=e?e=a.Sc(e):(e=a.ba[b],null==e&&(e=a.Tc(b),null==e&&(e=na(b,a.ma)))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}function wi(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),g=oa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+p(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
function xi(a,b){if(b)return wi(a,b,a.ba[b]);var c=0;for(b in a.ba)wi(a,b,a.ba[b]),c++;return 0<c}function N(a,b,c,d){switch(a.ma){case 8:a=p(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=q(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
function yi(a){pi.call(this,a);this.Ya=!1;this.Ga=!0;this.L=Y(0);this.Xa=Y(0);this.S=Y(0);this.H=[];this.f=this.P=this.K=[];zi(this);this.wa=0;Ai(this);this.Pa={};Bi(this,a.messages);this.Ta=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Id(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Id(b,a)})}E(yi,pi);
function yi(a){pi.call(this,a);this.Za=!1;this.Ga=!0;this.L=Y(0);this.Ya=Y(0);this.S=Y(0);this.H=[];this.f=this.P=this.K=[];zi(this);this.wa=0;Ai(this);this.Qa={};Bi(this,a.messages);this.Ta=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Id(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Id(b,a)})}E(yi,pi);
var Ci={"?":"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"},Di=".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(" "),
Ei={SP:6,PC:7,PS:20,IR:21,ER:22,SL:23,MMR0:24,MMR1:25,MMR2:26,MMR3:27,AR:28,DR:29,SR:30},Fi="KI KD SI SD ?? ?? UI UD".split(" "),Gi={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]}},Hi=[0],Ii=[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=yi.prototype;
k.Ha=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.v=a.v;(a=Ed(a,"messages"))&&Bi(this,a);this.vb=Gi;this.Gb=1145>this.b.ab?Ii:[];cd(this,16,function(a){a:{var b=d.w.da,c=a[0],e=a=0,l=b.length;if(c){a=d.aa(Ji(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ra;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=Ic[c],n&&d.j(q(n.id,8)+" %"+
q(e<<d.w.ra,8)+" %%"+q(n.G,8)+" "+v(n.Sb)+" "+v(n.size)+" "+m),c!=rd&&(c=-1),m=0);a+=d.w.Ja;e++}}});L(this)};
k.Ia=function(a,b,c,d){this.w=b;this.B=a;this.b=c;this.v=a.v;(a=Ed(a,"messages"))&&Bi(this,a);this.vb=Gi;this.Gb=1145>this.b.bb?Ii:[];cd(this,16,function(a){a:{var b=d.w.da,c=a[0],e=a=0,l=b.length;if(c){a=d.aa(Ji(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ra;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=Ic[c],n&&d.j(q(n.id,8)+" %"+
q(e<<d.w.ra,8)+" %%"+q(n.G,8)+" "+v(n.Sb)+" "+v(n.size)+" "+m),c!=rd&&(c=-1),m=0);a+=d.w.Ka;e++}}});L(this)};
k.ya=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.D[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Id(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.g.length-1&&(b=d.g[++d.A])):40==a.keyCode&&(0<d.A?b=d.g[--d.A]:(b="",d.A=-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.D[b]=c,Ra(c,function(){if(d.va){var a=d.va.value;
d.va.value="";Id(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Ra(c,function(a){var b=!1;xb(d,!0)||(wb(d,!0),b=d.sb(a?1:0,null),wb(d,!1));return b}),!0}return!1};k.rb=function(a){if(this.va){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.va.focus();!a&&window&&window.scrollTo(b,c)}};k.aa=function(a){a=a&&a.G;null==a&&(a=-1);return a};k.Ia=function(a){return 3932160<=a?this.b.Ia(a):a};
k.fc=function(a,b){var c=255,d=this.aa(a,!1,1);-1!==d&&(a.bc||65535<d?(c=this.w,d=this.Ia(d),c.B=!1,c.sa++,d=Jc(c,d).I(d&c.w,d),c.sa--):(c=this.b,c.K++,d=Ae(c,mc(c,d,3)),c.K--),c=d,b&&Ki(a,b));return c};k.xa=function(a,b){var c=65535,d=this.aa(a,!1,2);-1!==d&&(c=a.bc||65535<d?nc(this.w,this.Ia(d)):oc(this.b,d),b&&Ki(a,b));return c};
k.Rb=function(a,b,c){var d=this.aa(a,!0,1);if(-1!==d){if(a.bc||65535<d)Kc(this.w,this.Ia(d),b);else{var e=this.b;e.K++;d=mc(e,d,5);d&1&&e.b--;e.w.Rb(d,b);e.K--}c&&Ki(a,c);this.B.za(-1)}};k.Fb=function(a,b,c){var d=this.aa(a,!0,2);if(-1!==d){if(a.bc||65535<d)Zb(this.w,this.Ia(d),b);else{var e=this.b;e.K++;e.xc(mc(e,d,4),b);e.K--}c&&Ki(a,c);this.B.za(-1)}};function Y(a,b){return{G:a,bc:b,Za:!1}}k.vc=function(a,b){a.G=b;a.Za=!1;return a};function Li(a){return[a.G,a.Za]}
function Mi(a){return{G:a[0],Za:a[1]}}function Ji(a,b,c){var d,e=(c?a.L:a.Xa).G;c=!1;if(void 0!==b){b=ui(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].ja[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=ti(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Ni(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.kd=ri(a,b.Wc=c[2]))}function Ki(a,b){null!=a.G&&(a.G+=b||1)}
function Bi(a,b){a.i=a;a.pa=a.rd=536870912;a.na=null;a.Y=[];b=ri(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Eb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.pa|=Eb[c],a.j(c+" messages enabled"))}}function cd(a,b,c){for(var d in Eb)if(b==Eb[d]){a.Pa[d]=c;break}}
d.va.value="";Id(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Ra(c,function(a){var b=!1;xb(d,!0)||(wb(d,!0),b=d.sb(a?1:0,null),wb(d,!1));return b}),!0}return!1};k.rb=function(a){if(this.va){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.va.focus();!a&&window&&window.scrollTo(b,c)}};k.aa=function(a){a=a&&a.G;null==a&&(a=-1);return a};k.Ja=function(a){return 3932160<=a?this.b.Ja(a):a};
k.fc=function(a,b){var c=255,d=this.aa(a,!1,1);-1!==d&&(a.bc||65535<d?(c=this.w,d=this.Ja(d),c.B=!1,c.sa++,d=Jc(c,d).I(d&c.w,d),c.sa--):(c=this.b,c.K++,d=Ae(c,mc(c,d,3)),c.K--),c=d,b&&Ki(a,b));return c};k.xa=function(a,b){var c=65535,d=this.aa(a,!1,2);-1!==d&&(c=a.bc||65535<d?nc(this.w,this.Ja(d)):oc(this.b,d),b&&Ki(a,b));return c};
k.Rb=function(a,b,c){var d=this.aa(a,!0,1);if(-1!==d){if(a.bc||65535<d)Kc(this.w,this.Ja(d),b);else{var e=this.b;e.K++;d=mc(e,d,5);d&1&&e.b--;e.w.Rb(d,b);e.K--}c&&Ki(a,c);this.B.za(-1)}};k.Fb=function(a,b,c){var d=this.aa(a,!0,2);if(-1!==d){if(a.bc||65535<d)Zb(this.w,this.Ja(d),b);else{var e=this.b;e.K++;e.xc(mc(e,d,4),b);e.K--}c&&Ki(a,c);this.B.za(-1)}};function Y(a,b){return{G:a,bc:b,$a:!1}}k.vc=function(a,b){a.G=b;a.$a=!1;return a};function Li(a){return[a.G,a.$a]}
function Mi(a){return{G:a[0],$a:a[1]}}function Ji(a,b,c){var d,e=(c?a.L:a.Ya).G;c=!1;if(void 0!==b){b=ui(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].ja[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=ti(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Ni(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ld=ri(a,b.Xc=c[2]))}function Ki(a,b){null!=a.G&&(a.G+=b||1)}
function Bi(a,b){a.i=a;a.pa=a.sd=536870912;a.na=null;a.Y=[];b=ri(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Eb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.pa|=Eb[c],a.j(c+" messages enabled"))}}function cd(a,b,c){for(var d in Eb)if(b==Eb[d]){a.Qa[d]=c;break}}
k.Rc=function(a){a=a.toUpperCase();var b=Ei[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Oi(a){return 6>a?"R"+a:6==a?"SP":"PC"}
k.Sc=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.bb[a-8];else if(20>a)b=this.b.Na[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=kd(this.b);break;case 21:b=c.Db;break;case 22:b=c.oa;break;case 23:b=c.jb;break;case 24:b=ed(c);break;case 25:b=gd(c);break;case 26:b=hd(c);break;case 27:b=c.Ma;break;case 28:d&&(b=d.Da);break;case 29:d&&(b=d.Cb);break;case 30:d&&sc(d)&&(b=d.kb)}}return b};
k.message=function(a,b){b&&(a+=" @"+N(this,Y(this.b.ta&65535).G));if(!this.na||a!=this.na)if(this.na=a,this.pa&1073741824)this.Y.push(a);else{var c;if(this.pa&-2147483648&&this.b&&(c=this.b.C.U)||xb(this,!0))this.fa(),c&&(a+=" (cpu halted)");this.j(a);this.b&&(a=this.b,Md(a),a.Pa=0,a.za())}};
k.Sc=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.cb[a-8];else if(20>a)b=this.b.Oa[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=kd(this.b);break;case 21:b=c.Db;break;case 22:b=c.oa;break;case 23:b=c.jb;break;case 24:b=ed(c);break;case 25:b=gd(c);break;case 26:b=hd(c);break;case 27:b=c.Na;break;case 28:d&&(b=d.Da);break;case 29:d&&(b=d.Cb);break;case 30:d&&sc(d)&&(b=d.kb)}}return b};
k.Tc=function(a){var b;a:{b=this.w;a=a.toUpperCase();for(var c in b.Ua){var d=+c;if(b.Ua[d][4]==a){b=d+b.Ha;break a}}b=null}return b};k.message=function(a,b){b&&(a+=" @"+N(this,Y(this.b.ta&65535).G));if(!this.na||a!=this.na)if(this.na=a,this.pa&1073741824)this.Y.push(a);else{var c;if(this.pa&-2147483648&&this.b&&(c=this.b.C.U)||xb(this,!0))this.fa(),c&&(a+=" (cpu halted)");this.j(a);this.b&&(a=this.b,Md(a),a.Qa=0,a.za())}};
function Ai(a){var b;if(!Me(a))a.F&&a.F.length&&a.j("instruction history buffer freed"),a.ca=0,a.F=[];else if(!a.F||!a.F.length){a.F=Array(1E3);for(b=0;b<a.F.length;b++)a.F[b]=Y();a.ca=0;a.j("instruction history buffer allocated")}}k.lb=function(a,b){if(!Pi(this,b))return!1;this.b.lb(a);return!0};
k.sb=function(a,b,c){if(!Pi(this))return!1;null===b&&(b=!this.wb||"tr"==this.wb);this.I=0;a||Me(this)&&Ne(this,this.b.u[7],0);try{a=Nd(this.b,a);var d=this.b.sb(a);0<d&&(Ub(this.b,d),this.I+=d,Vb(this.b,d,!0),Wb(this.b,d),this.Aa++)}catch(e){"number"!=typeof e&&(this.I=0,Ab(this.b,e.stack||e.message))}!1!==c&&(this.v&&this.v.stop(),this.B.za(-1));Hd(this,b||!1);return 0<this.I};k.fa=function(a){this.b&&this.b.fa(a)};
function Hd(a,b){if(a.Ya){void 0===b&&(b=!0);var c;c=a.b;if(c=c.J&128?c.vd|c.sd<<8:0){var d=c>>8;a.j("trapped to "+N(a,c&255,1)+" ("+(0>d?Cb[-d]:N(a,d))+")")}a.L=Y(a.b.u[7]);b&&1!=a.N?Qi(a):Ri(a)}}function Pi(a,b){var c;(c=!a.b||!yb(a.b))||(c=a.b,c.C.la?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.U?(b||a.j("cpu busy or unavailable, command ignored"),!1):!zb(a.b)}k.La=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.Ka=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Ai(this);this.Aa=0;this.na=null;this.I=0;this.L=Y(this.b.u[7]);this.C.U=!1;Si(this);a||Hd(this)};k.save=function(){var a=new U(this);a.set(0,Li(this.L));a.set(1,Li(this.S));a.set(2,[this.g,this.T,this.pa]);a.set(3,this.H);return a.data()};
function Hd(a,b){if(a.Za){void 0===b&&(b=!0);var c;c=a.b;if(c=c.J&128?c.wd|c.td<<8:0){var d=c>>8;a.j("trapped to "+N(a,c&255,1)+" ("+(0>d?Cb[-d]:N(a,d))+")")}a.L=Y(a.b.u[7]);b&&1!=a.N?Qi(a):Ri(a)}}function Pi(a,b){var c;(c=!a.b||!yb(a.b))||(c=a.b,c.C.la?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.U?(b||a.j("cpu busy or unavailable, command ignored"),!1):!zb(a.b)}k.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
k.La=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Ai(this);this.Aa=0;this.na=null;this.I=0;this.L=Y(this.b.u[7]);this.C.U=!1;Si(this);a||Hd(this)};k.save=function(){var a=new U(this);a.set(0,Li(this.L));a.set(1,Li(this.S));a.set(2,[this.g,this.T,this.pa]);a.set(3,this.H);return a.data()};
k.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Mi(a[b++]),this.S=Mi(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.T=a[b][1],this.pa|=a[b][2]);a[3]&&(this.H=a[3]);return!0};k.start=function(a,b){this.N||this.j("running");this.C.U=!0;this.Hb=a;this.Vb=b};
k.stop=function(a,b){if(this.C.U){this.C.U=!1;this.I=b-this.Vb;if(!this.N){b="stopped";if(this.I){a-=this.Hb;var c=0<a?Math.round(1E3*this.I/a):0;b+=" (";Me(this)&&(b+=this.Aa+" instructions, ",this.Aa=0);b+=this.I+" cycles, "+a+" ms, "+c+" hz)"}else K(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}Hd(this,!0);this.rb();Si(this,this.b.u[7]);this.na=null}};function Me(a){return 1<a.f.length||!!a.wa}
function Ne(a,b,c){var d=-1;c||(d=oc(a.b,b),0==d&&(b=Zd(a.b,2)));if(0<c&&(a.wa&&!--a.wa||Ti(a,b,1,a.f)))return!0;0<=c&&a.F.length&&(a.Aa++,0>d&&(d=oc(a.b,b)),65535!=(d&65535)&&(a.vc(a.F[a.ca],b),++a.ca==a.F.length&&(a.ca=0)));return!1}function Tf(a){var b=a.b;if(b.C.U)throw Ud(b,a.b.ta&65535),a.fa(),-1;return!1}function Ec(a,b,c){Ti(a,b,c||1,a.P)&&a.fa(!0)}function Fc(a,b,c){Ti(a,b,c||1,a.K)&&a.fa(!0)}
function zi(a){var b,c;a.f=["bp"];if(a.P)for(b=1;b<a.P.length;b++){c=a.P[b];var d=a.w;c=a.aa(c);Ad(d.da[c>>>d.ra],!1)}a.P=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],d=a.w,c=a.aa(c),Ad(d.da[c>>>d.ra],!0);a.K=["bw"];a.cb=0}k.xb=function(a,b,c){var d=!0;c||Ui(this,a,b,!1,!0);if(a!=this.f){var e=this.aa(b);if(-1===e)this.j("invalid address: "+N(this,b.G)),d=!1;else{var f=this.w;f.da[e>>>f.ra].xb(e&f.w,a==this.K)}}d&&(a.push(b),c?b.Za=!0:(Vi(this,a,a.length-1,"set"),Ai(this)));return d};
function Ui(a,b,c,d,e){var f=!1;c=a.aa(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.aa(h)&&(!d||h.Za)){f=!0;h.Za||e||Vi(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Ad(d.da[c>>>d.ra],b==a.K));h.Za||Ai(a);break}}return f}function Wi(a,b){for(var c=1;c<b.length;c++)Vi(a,b,c);return b.length-1}function Vi(a,b,c,d){c=b[c];a.j(b[0]+" "+N(a,c.G)+(d?" "+d:c.Wc?' "'+c.Wc+'"':""))}
function Si(a,b){if(void 0!==b)Ti(a,b,1,a.f,!0),a.N=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Za){if(!Ui(a,a.f,c,!0))break;b=0}}}
function Ti(a,b,c,d,e){var f=!1;if(!a.cb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Za)for(var l=a.aa(h)&65535,m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Za&&(Ui(a,d,h,!0),e=!0);if(n=h.kd){for(var f=!1,u=0;u<n.length;u++)if(!Xi(a,n[u],!0)){if(n[u].indexOf("if")){f=!0;break}for(var r=u+1;r<n.length&&n[r].indexOf("else");r++)u++;if(r==n.length){f=!0;break}}a.b.C.U||(f=!0)}if(f){e||Vi(a,d,g,"hit");break}}}a.cb--;return f}
function Yi(a,b,c,d){var e=Y(b.G),f=a.xa(b,2),g,h;for(h in a.vb)if(g=a.vb[h][f&h])break;g||(g=Hi);var l=g[0];0<=a.Gb.indexOf(l)&&(g=Hi,l=g[0]);var m=h="",n=Di[l],u=g.length-1;l||u||(h=N(a,f));for(l=1;l<=u;l++){var r=g[l];if(void 0!==r){var t;t=a;var C=r,r=b,y="",A=C&61440;if(4096==A)r=r.G+((f&255)<<24>>23)&65535,y=N(t,r);else if(8192==A)r=r.G-((f&63)<<1)&65535,y=N(t,r);else if(12288==A)y=N(t,f&7,1);else if(24576==A)y=N(t,f&63,1);else if(32768==A)y=N(t,f&255,1);else if(A=f&C,C&4032&&(A>>=6,C>>=6),
C&63){var C=null,D=A&7;switch(A&56){case 0:y=Oi(D);break;case 8:y="@"+Oi(D);C=Zi(t,t.b.u[D]);break;case 16:7>D?y="("+Oi(D)+")+":(A=t.xa(r,2),y="#"+N(t,A,0,!0));break;case 24:7>D?y="@("+Oi(D)+")+":(A=t.xa(r,2),y="@#"+N(t,A,0,!0),C=Zi(t,A));break;case 32:y="-("+Oi(D)+")";break;case 40:y="@-("+Oi(D)+")";break;case 48:A=t.xa(r,2);y=N(t,A,0,!0)+"("+Oi(D)+")";7==D&&(y=N(t,A=A+r.G&65535),C=Zi(t,A));break;case 56:A=t.xa(r,2),y="@"+N(t,A)+"("+Oi(D)+")",7==D&&(y="@"+N(t,A=A+r.G&65535),C=Zi(t,oc(t.b,A)))}C&&
(y=[y,C])}t=y;if(!t||!t.length){h="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<h.length&&(h+=",");h+=t||"???"}}f="";g=N(a,e.G)+":";if(-1!==e.G&&-1!==b.G){do if(f+=" "+N(a,a.xa(e,2)),null==e.G)break;while(e.G!=b.G)}g+=ta(f,24);g+=ta(n,5);h&&(g+=" "+h);if(c||m)g=ta(g,60)+";"+(c||""),g=a.b.C.Jb?g+("cycles="+Jd(a.b).toString()+" cs="+q(a.b.Xb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Zi(a,b){b=a.b.ec(b)[0];b>=a.b.Qa&&b<a.w.Qa&&(b=b-a.b.Qa+a.w.Qa);return a.w.ec(b)}function $i(a,b){switch(b){case "N":a=Yd(a.b);break;case "Z":a=Xd(a.b);break;case "V":a=Wd(a.b);break;case "C":a=Vd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.b;if(8>b)c=Oi(b),c+="="+N(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+N(a,d.bb[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+N(a,d.Na[b-16]);else switch(b){case 20:c="PS="+N(a,kd(d));break;case 21:c="IR="+N(a,d.Db);break;case 22:c="ER="+N(a,d.oa);break;case 23:c="SL="+N(a,d.jb);break;case 24:c="MMR0="+N(a,ed(d));break;case 25:c="MMR1="+N(a,gd(d));break;case 26:c="MMR2="+N(a,hd(d));break;case 27:c="MMR3="+N(a,d.Ma);break;case 28:a.v&&(c="AR="+N(a,a.v.Da,3));break;case 29:a.v&&
function zi(a){var b,c;a.f=["bp"];if(a.P)for(b=1;b<a.P.length;b++){c=a.P[b];var d=a.w;c=a.aa(c);Ad(d.da[c>>>d.ra],!1)}a.P=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],d=a.w,c=a.aa(c),Ad(d.da[c>>>d.ra],!0);a.K=["bw"];a.eb=0}k.xb=function(a,b,c){var d=!0;c||Ui(this,a,b,!1,!0);if(a!=this.f){var e=this.aa(b);if(-1===e)this.j("invalid address: "+N(this,b.G)),d=!1;else{var f=this.w;f.da[e>>>f.ra].xb(e&f.w,a==this.K)}}d&&(a.push(b),c?b.$a=!0:(Vi(this,a,a.length-1,"set"),Ai(this)));return d};
function Ui(a,b,c,d,e){var f=!1;c=a.aa(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.aa(h)&&(!d||h.$a)){f=!0;h.$a||e||Vi(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Ad(d.da[c>>>d.ra],b==a.K));h.$a||Ai(a);break}}return f}function Wi(a,b){for(var c=1;c<b.length;c++)Vi(a,b,c);return b.length-1}function Vi(a,b,c,d){c=b[c];a.j(b[0]+" "+N(a,c.G)+(d?" "+d:c.Xc?' "'+c.Xc+'"':""))}
function Si(a,b){if(void 0!==b)Ti(a,b,1,a.f,!0),a.N=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.$a){if(!Ui(a,a.f,c,!0))break;b=0}}}
function Ti(a,b,c,d,e){var f=!1;if(!a.eb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.$a)for(var l=a.aa(h)&65535,m=0;m<c;m++)if(b+m==l){var n,f=!0;h.$a&&(Ui(a,d,h,!0),e=!0);if(n=h.ld){for(var f=!1,r=0;r<n.length;r++)if(!Xi(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.C.U||(f=!0)}if(f){e||Vi(a,d,g,"hit");break}}}a.eb--;return f}
function Yi(a,b,c,d){var e=Y(b.G),f=a.xa(b,2),g,h;for(h in a.vb)if(g=a.vb[h][f&h])break;g||(g=Hi);var l=g[0];0<=a.Gb.indexOf(l)&&(g=Hi,l=g[0]);var m=h="",n=Di[l],r=g.length-1;l||r||(h=N(a,f));for(l=1;l<=r;l++){var t=g[l];if(void 0!==t){var u;u=a;var C=t,t=b,y="",A=C&61440;if(4096==A)t=t.G+((f&255)<<24>>23)&65535,y=N(u,t);else if(8192==A)t=t.G-((f&63)<<1)&65535,y=N(u,t);else if(12288==A)y=N(u,f&7,1);else if(24576==A)y=N(u,f&63,1);else if(32768==A)y=N(u,f&255,1);else if(A=f&C,C&4032&&(A>>=6,C>>=6),
C&63){var C=null,D=A&7;switch(A&56){case 0:y=Oi(D);break;case 8:y="@"+Oi(D);C=Zi(u,u.b.u[D]);break;case 16:7>D?y="("+Oi(D)+")+":(A=u.xa(t,2),y="#"+N(u,A,0,!0));break;case 24:7>D?y="@("+Oi(D)+")+":(A=u.xa(t,2),y="@#"+N(u,A,0,!0),C=Zi(u,A));break;case 32:y="-("+Oi(D)+")";break;case 40:y="@-("+Oi(D)+")";break;case 48:A=u.xa(t,2);y=N(u,A,0,!0)+"("+Oi(D)+")";7==D&&(y=N(u,A=A+t.G&65535),C=Zi(u,A));break;case 56:A=u.xa(t,2),y="@"+N(u,A)+"("+Oi(D)+")",7==D&&(y="@"+N(u,A=A+t.G&65535),C=Zi(u,oc(u.b,A)))}C&&
(y=[y,C])}u=y;if(!u||!u.length){h="INVALID";break}"string"!=typeof u&&(m=u[1],u=u[0]);0<h.length&&(h+=",");h+=u||"???"}}f="";g=N(a,e.G)+":";if(-1!==e.G&&-1!==b.G){do if(f+=" "+N(a,a.xa(e,2)),null==e.G)break;while(e.G!=b.G)}g+=ta(f,24);g+=ta(n,5);h&&(g+=" "+h);if(c||m)g=ta(g,60)+";"+(c||""),g=a.b.C.Jb?g+("cycles="+Jd(a.b).toString()+" cs="+q(a.b.Xb)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Zi(a,b){b=a.b.ec(b)[0];b>=a.b.Ha&&b<a.w.Ha&&(b=b-a.b.Ha+a.w.Ha);return a.w.ec(b)}function $i(a,b){switch(b){case "N":a=Yd(a.b);break;case "Z":a=Xd(a.b);break;case "V":a=Wd(a.b);break;case "C":a=Vd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.b;if(8>b)c=Oi(b),c+="="+N(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+N(a,d.cb[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+N(a,d.Oa[b-16]);else switch(b){case 20:c="PS="+N(a,kd(d));break;case 21:c="IR="+N(a,d.Db);break;case 22:c="ER="+N(a,d.oa);break;case 23:c="SL="+N(a,d.jb);break;case 24:c="MMR0="+N(a,ed(d));break;case 25:c="MMR1="+N(a,gd(d));break;case 26:c="MMR2="+N(a,hd(d));break;case 27:c="MMR3="+N(a,d.Na);break;case 28:a.v&&(c="AR="+N(a,a.v.Da,3));break;case 29:a.v&&
(c="DR="+N(a,a.v.Cb));break;case 30:a.v&&sc(a.v)&&(c="SR="+N(a,a.v.kb,3))}c&&(c+=" ");return c}function aj(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,20)+Z(a,21)+Z(a,23);d+=$i(a,"T")+$i(a,"N")+$i(a,"Z")+$i(a,"V")+$i(a,"C");b&&(b=d,c=""+(Z(a,24)+Z(a,25)),c+=Z(a,26)+Z(a,27)+Z(a,22),c=c+"\n"+(Z(a,30)+Z(a,28)+Z(a,29)),d=b+("\n"+c));return d}k.Oc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Tg(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],u=Ba(n,l,a.Oc);0>u&&n.splice(-(u+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Og:b,G:c,Ad:d,ja:e,Mc:f})}function bj(a,b,c){var d=[],e=a.aa(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.G>>>0,h=f.Ad;if(e>=g&&e<g+h){e=Ba(f.Mc,[e-g],a.Oc);0<=e?cj(a,b,e,d):c&&(e=~e,cj(a,b,e-1,d),cj(a,b,e,d));break}}return d}
function Tg(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=Ba(n,l,a.Oc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Pg:b,G:c,Bd:d,ja:e,Mc:f})}function bj(a,b,c){var d=[],e=a.aa(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.G>>>0,h=f.Bd;if(e>=g&&e<g+h){e=Ba(f.Mc,[e-g],a.Oc);0<=e?cj(a,b,e,d):c&&(e=~e,cj(a,b,e-1,d),cj(a,b,e,d));break}}return d}
function cj(a,b,c,d){var e={},f=a.H[b].Mc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.H[b].ja[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function dj(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return xi(a)||a.j("no variables"),!0;if(!c[2])return xi(a,c[1]);if(!c[3])return delete a.ba[c[1]],!0;b=ti(a,c[3]);return void 0!==b?(a.ba[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
function ej(a,b,c){var d=null;if(b=Ji(a,b,!0)){a.aa(b);var e=bj(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.G-e[1])&&(g=" + "+v(f)),f=e[0]+" ("+N(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.G)&&(g=" - "+v(f)),f=e[4]+" ("+N(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
function Qi(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=ti(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.u[6]=g&65535;break;case "PC":case "R7":Ud(e,
@ -312,39 +312,39 @@ g);a.L=Y(e.u[7]);break;case "N":e.X=g?32768:0;break;case "Z":e.Z=g?0:1;break;cas
g&65535;break}a.j("unknown register: "+f);return}a.B.za();a.j("updated registers:")}}a.j(aj(a,d));c&&(a.L=Y(e.u[7]),Ri(a,N(a,a.L.G)))}}function fj(a,b){b=ua(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):wi(a,null,c[2].charCodeAt(0)):ti(a,b,!0)}
function gj(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=vi(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.wb=b;Qa(c,function(){return wb(a,!0)&&a.sb(e,d,!1)},function(){a.v&&a.v.stop();a.B.za(-1);wb(a,!1)})}}
function Ri(a,b,c,d){if(b=Ji(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=vi(a,c.substr(1)),null!=c&&(d=c);else{d=Ji(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=xb(a,!1)||a.N?a.I:null;var g=null!=f?"cycles":null,h=bj(a,b),l=b.G;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=Yi(a,b,g,f);a.j(f);a.L=b;e-=b.G-l;c++}}}
function Xi(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.T&&(a.j("ended assemble at "+N(a,a.S.G)),a.L=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(yb(a)&&0<b.length){a.T&&(b="a "+N(a,a.S.G)+" "+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 u=
Ji(a,g[1],!0);if(u)if(a.S=u,void 0===g[2])a.j("begin assemble at "+N(a,u.G)),a.T=!0,a.B.za();else{var r;a.j("not supported yet");r=[];if(r.length){for(var t=0;t<r.length;t++)a.Rb(u,r[t],1);a.j(Yi(a,a.S))}}break;case "b":a:{var C=g[0],y=g[1],A=b;if("?"==y)a.j("breakpoint commands:"),a.j("\tbp [#]\tset exec breakpoint at addr #"),a.j("\tbr [#]\tset read breakpoint at addr #"),a.j("\tbw [#]\tset write breakpoint at addr #"),a.j("\tbc [#]\tclear breakpoint at addr #"),a.j("\tbl\tlist all breakpoints"),
function Xi(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.T&&(a.j("ended assemble at "+N(a,a.S.G)),a.L=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(yb(a)&&0<b.length){a.T&&(b="a "+N(a,a.S.G)+" "+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=
Ji(a,g[1],!0);if(r)if(a.S=r,void 0===g[2])a.j("begin assemble at "+N(a,r.G)),a.T=!0,a.B.za();else{var t;a.j("not supported yet");t=[];if(t.length){for(var u=0;u<t.length;u++)a.Rb(r,t[u],1);a.j(Yi(a,a.S))}}break;case "b":a:{var C=g[0],y=g[1],A=b;if("?"==y)a.j("breakpoint commands:"),a.j("\tbp [#]\tset exec breakpoint at addr #"),a.j("\tbr [#]\tset read breakpoint at addr #"),a.j("\tbw [#]\tset write breakpoint at addr #"),a.j("\tbc [#]\tclear breakpoint at addr #"),a.j("\tbl\tlist all breakpoints"),
a.j("\tbn [#]\tbreak after # instruction(s)");else{var D=C.charAt(1);if("l"==D){var Sa;Sa=0+Wi(a,a.f);Sa+=Wi(a,a.P);(Sa+=Wi(a,a.K))||a.j("no breakpoints")}else if("n"==D)a.wa=vi(a,y),a.j("break after "+a.wa+" instruction(s)");else if(void 0===y)a.j("missing breakpoint address");else{var S=Y();if("*"!=y&&(S=Ji(a,y,!0),!S))break a;"c"==D?null==S.G?(zi(a),a.j("all breakpoints cleared")):Ui(a,a.f,S)||Ui(a,a.P,S)||Ui(a,a.K,S)||a.j("breakpoint missing: "+N(a,S.G)):null!=S.G&&(Ni(a,S,A),"p"==D?a.xb(a.f,
S):"r"==D?a.xb(a.P,S):"w"==D?a.xb(a.K,S):a.j("unknown breakpoint command: "+D))}}}break;case "c":a.gb&&(a.gb.value="");break;case "d":a:{var rb,Ka=g[0],va=g[1],Ua=g[2],zj=g[3];if("?"==va){var sb="";for(rb in Eb)a.Pa[rb]&&(sb&&(sb+=","),sb+=rb);sb+=",state,symbols";a.j("dump memory commands:");a.j("\tda [a] dump info for address a");a.j("\tdb [a] [n] dump n bytes at address a");a.j("\tdw [a] [n] dump n words at address a");a.j("\tdd [a] [n] dump n dwords at address a");a.j("\tds [a] [n] dump n words at address a as JSON");
a.j("\tdh [p] [n] dump n instructions from history position p");sb.length&&a.j("dump extension commands:\n\t"+sb)}else if("state"==va){var ih=hj(a.B,!0);"console"==Ua?console.log(ih):(a.gb&&(a.gb.value=""),a.j(ih))}else if("symbols"==va)for(var ee=0;ee<a.H.length;ee++){var fe=a.H[ee],tb;for(tb in fe.ja)if("."!=tb.charAt(0)){var jh=fe.ja[tb].o;if(void 0!==jh){var kh=fe.ja[tb].l;kh&&(tb=kh);a.j(N(a,jh)+" "+tb)}}}else{if("d"==Ka){for(rb in Eb)if(g[1]==rb){var lh=a.Pa[rb];lh?(g.shift(),g.shift(),lh(g)):
a.j("no dump registered for "+va);break a}va||(Ka=a.Wb||"dw")}else a.Wb=Ka;if("dh"==Ka){var mh=va,nh=Ua,oh="",ph=0,la=a.ca,wa=a.F;if(wa.length){var ga=+mh||a.ub,$b=+nh||10;isNaN(ga)?ga=$b:oh="more ";ga>wa.length&&(a.j("note: only "+wa.length+" available"),ga=wa.length);la-=ga;0>la&&(null==wa[wa.length-1].G?(ga=la+ga,la=0):la+=wa.length);var ge=[];"call"==nh&&($b=1E5,ge=["CALL"]);for(void 0!==mh&&a.j(ga+" instructions earlier:");0<$b&&la!=a.ca;){var qh=wa[la++];if(null==qh.G)break;var ac=Y(qh.G),Aj=
S):"r"==D?a.xb(a.P,S):"w"==D?a.xb(a.K,S):a.j("unknown breakpoint command: "+D))}}}break;case "c":a.gb&&(a.gb.value="");break;case "d":a:{var rb,Ka=g[0],va=g[1],Va=g[2],zj=g[3];if("?"==va){var sb="";for(rb in Eb)a.Qa[rb]&&(sb&&(sb+=","),sb+=rb);sb+=",state,symbols";a.j("dump memory commands:");a.j("\tda [a] dump info for address a");a.j("\tdb [a] [n] dump n bytes at address a");a.j("\tdw [a] [n] dump n words at address a");a.j("\tdd [a] [n] dump n dwords at address a");a.j("\tds [a] [n] dump n words at address a as JSON");
a.j("\tdh [p] [n] dump n instructions from history position p");sb.length&&a.j("dump extension commands:\n\t"+sb)}else if("state"==va){var ih=hj(a.B,!0);"console"==Va?console.log(ih):(a.gb&&(a.gb.value=""),a.j(ih))}else if("symbols"==va)for(var ee=0;ee<a.H.length;ee++){var fe=a.H[ee],tb;for(tb in fe.ja)if("."!=tb.charAt(0)){var jh=fe.ja[tb].o;if(void 0!==jh){var kh=fe.ja[tb].l;kh&&(tb=kh);a.j(N(a,jh)+" "+tb)}}}else{if("d"==Ka){for(rb in Eb)if(g[1]==rb){var lh=a.Qa[rb];lh?(g.shift(),g.shift(),lh(g)):
a.j("no dump registered for "+va);break a}va||(Ka=a.Wb||"dw")}else a.Wb=Ka;if("dh"==Ka){var mh=va,nh=Va,oh="",ph=0,la=a.ca,wa=a.F;if(wa.length){var ga=+mh||a.ub,$b=+nh||10;isNaN(ga)?ga=$b:oh="more ";ga>wa.length&&(a.j("note: only "+wa.length+" available"),ga=wa.length);la-=ga;0>la&&(null==wa[wa.length-1].G?(ga=la+ga,la=0):la+=wa.length);var ge=[];"call"==nh&&($b=1E5,ge=["CALL"]);for(void 0!==mh&&a.j(ga+" instructions earlier:");0<$b&&la!=a.ca;){var qh=wa[la++];if(null==qh.G)break;var ac=Y(qh.G),Aj=
ga--,rh=Yi(a,ac,"history",Aj);(!ge.length||0<=rh.indexOf(ge[0]))&&a.j(rh);ac.pc&&(la+=ac.pc,$b-=ac.pc,ga-=ac.pc);la>=wa.length&&(la=0);a.ub=ga;ph++;$b--}}ph||(a.j("no "+oh+"history available"),a.ub=void 0)}else{var xa=Ji(a,va);if(xa)if("da"==Ka){var ha=a.b.ec(xa.G);a.j(ta("",19)+oa(xa.G,17,3)+" "+p(xa.G,8));1<ha.length&&(a.j(ta("",24)+oa(ha[1],13,3)+" "+p(ha[1],8)),a.j("+ "+Fi[ha[2]]+"PAR["+ha[3]+"]: "+oa(ha[4],22,3)+" "+p(ha[4],8)),a.j("& MMU MASK: "+oa(ha[5],22,3)+" "+p(ha[5],8)),a.j("= PHYSICAL: "+
oa(ha[0],22,3)+" "+p(ha[0],8)))}else{var bc=0,he=!1,ie="ds"==Ka;Ua&&(he=!0,"l"==Ua.charAt(0)&&(he=!1,Ua=Ua.substr(1)||zj),bc=vi(a,Ua)>>>0,65536<bc&&(bc=65536));for(var Va="dd"==Ka?4:"db"==Ka?1:2,Vc=(he?bc-xa.G:Va*bc)||128,je=ie?16:a.ma,Bj=(Vc+je-1)/je|0||1,Wa="";Bj--&&0<Vc;){for(var Xa="",ke="",va=N(a,xa.G),Wc=je,cc=0,dc=0;0<Wc&&0<Vc;){var ub=1,Xc=1==Va?a.fc(xa,ub):a.xa(xa,ub=2),cc=cc|Xc<<(dc<<3),dc=dc+ub;dc==Va&&(ie?(Xa&&(Xa+=","),Xa+="0x"+q(cc,2*Va)):(Xa+=N(a,cc,Va),Xa+=1==Va?9==Wc?"-":" ":" "),
cc=dc=0);Wc-=ub;for(Vc-=ub;1==Va&&ub--;)var le=Xc&255,ke=ke+(32<=le&&128>le?String.fromCharCode(le):"."),Xc=Xc>>8}Wa&&(Wa+="\n");Wa=ie?Wa+(Xa+","):Wa+(va+": "+Xa+(0==Wc?" "+ke:""))}Wa&&a.j(Wa);a.Xa=xa}}}}break;case "e":if("else"==g[0])break;var vb,me,ne,oe,pe=g[0],qe=g[1];"eb"==pe?(vb=1,me=255,ne=a.fc,oe=a.Rb):"e"==pe||"ew"==pe?(vb=2,me=65535,ne=a.xa,oe=a.Fb):qe=null;if(null==qe)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");
oa(ha[0],22,3)+" "+p(ha[0],8)))}else{var bc=0,he=!1,ie="ds"==Ka;Va&&(he=!0,"l"==Va.charAt(0)&&(he=!1,Va=Va.substr(1)||zj),bc=vi(a,Va)>>>0,65536<bc&&(bc=65536));for(var Wa="dd"==Ka?4:"db"==Ka?1:2,Vc=(he?bc-xa.G:Wa*bc)||128,je=ie?16:a.ma,Bj=(Vc+je-1)/je|0||1,Xa="";Bj--&&0<Vc;){for(var Ya="",ke="",va=N(a,xa.G),Wc=je,cc=0,dc=0;0<Wc&&0<Vc;){var ub=1,Xc=1==Wa?a.fc(xa,ub):a.xa(xa,ub=2),cc=cc|Xc<<(dc<<3),dc=dc+ub;dc==Wa&&(ie?(Ya&&(Ya+=","),Ya+="0x"+q(cc,2*Wa)):(Ya+=N(a,cc,Wa),Ya+=1==Wa?9==Wc?"-":" ":" "),
cc=dc=0);Wc-=ub;for(Vc-=ub;1==Wa&&ub--;)var le=Xc&255,ke=ke+(32<=le&&128>le?String.fromCharCode(le):"."),Xc=Xc>>8}Xa&&(Xa+="\n");Xa=ie?Xa+(Ya+","):Xa+(va+": "+Ya+(0==Wc?" "+ke:""))}Xa&&a.j(Xa);a.Ya=xa}}}}break;case "e":if("else"==g[0])break;var vb,me,ne,oe,pe=g[0],qe=g[1];"eb"==pe?(vb=1,me=255,ne=a.fc,oe=a.Rb):"e"==pe||"ew"==pe?(vb=2,me=65535,ne=a.xa,oe=a.Fb):qe=null;if(null==qe)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 Yc=Ji(a,qe);if(Yc)for(var Zc=2;Zc<g.length;Zc++){var ec=ti(a,g[Zc]);if(void 0===ec){a.j("unrecognized value: "+g[Zc]);break}ec&~me&&a.j("warning: "+q(ec)+" exceeds "+vb+"-byte value");a.j("changing "+N(a,Yc.G)+(K(a,16)?"":" from "+N(a,ne.call(a,Yc),vb))+" to "+N(a,ec,vb));oe.call(a,Yc,ec,vb)}}break;case "g":a:{var sh=g[1],Cj=b;if(void 0!==sh){var re=Ji(a,sh,!0);if(!re)break a;Ni(a,re,Cj);a.xb(a.f,re,!0)}a.lb(!0,c)}break;case "h":a.C.U?(c||a.j("halting"),a.fa()):xb(a,!0)||c||a.j("already halted");
break;case "i":if("if"==g[0]){var se;var fc=b.substr(2),fc=ua(fc);ti(a,fc)?(c||a.j("true: "+fc),se=!0):(c||a.j("false: "+fc),se=!1);se||(d=!1);break}f=!0;break;case "k":var Dj=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var te=0,ue=Y(),gc=Y(a.b.u[6]);for(a.j("stack trace for "+N(a,gc.G));10>te;){for(var Ya=null,Ej=256;65536>gc.G>>>0;){ue.G=a.xa(gc,2);if(null==gc.G||!Ej--)break;if(!(ue.G&1)){for(var Fj=a,$c=ue,th=null,hc=
$c.G,uh=hc,ve=1;6>=ve&&hc;ve++){if(2<ve){$c.G=hc;var ad=Yi(Fj,$c);if(0<=ad.indexOf("JSR")){var vh=ad.indexOf(" ");if(hc+(ad.indexOf(" ",vh+1)-vh-1)/2==uh){th=ad;break}}}hc-=2}$c.G=uh;if(Ya=th)break}}if(!Ya||null==Ya)break;var wh=null;if("ks"==Dj){var xh=Ya.match(/[0-9A-F]+$/);xh&&(wh=ej(a,xh[0]))}Ya=ta(Ya,50)+" ;"+(wh||"stack="+N(a,gc.G));a.j(Ya);te++}te||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){ej(a,g[1],!0);break}f=!0;break;case "m":a:{var ya,za=null,J=g[1];"?"==J&&(J=void 0);
break;case "i":if("if"==g[0]){var se;var fc=b.substr(2),fc=ua(fc);ti(a,fc)?(c||a.j("true: "+fc),se=!0):(c||a.j("false: "+fc),se=!1);se||(d=!1);break}f=!0;break;case "k":var Dj=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var te=0,ue=Y(),gc=Y(a.b.u[6]);for(a.j("stack trace for "+N(a,gc.G));10>te;){for(var Za=null,Ej=256;65536>gc.G>>>0;){ue.G=a.xa(gc,2);if(null==gc.G||!Ej--)break;if(!(ue.G&1)){for(var Fj=a,$c=ue,th=null,hc=
$c.G,uh=hc,ve=1;6>=ve&&hc;ve++){if(2<ve){$c.G=hc;var ad=Yi(Fj,$c);if(0<=ad.indexOf("JSR")){var vh=ad.indexOf(" ");if(hc+(ad.indexOf(" ",vh+1)-vh-1)/2==uh){th=ad;break}}}hc-=2}$c.G=uh;if(Za=th)break}}if(!Za||null==Za)break;var wh=null;if("ks"==Dj){var xh=Za.match(/[0-9A-F]+$/);xh&&(wh=ej(a,xh[0]))}Za=ta(Za,50)+" ;"+(wh||"stack="+N(a,gc.G));a.j(Za);te++}te||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){ej(a,g[1],!0);break}f=!0;break;case "m":a:{var ya,za=null,J=g[1];"?"==J&&(J=void 0);
if(void 0!==J){var La=0;if("all"==J)La=1879046143,J=null;else if("on"==J)za=!0,J=null;else if("off"==J)za=!1,J=null;else{"keys"==J&&(J="key");"kbd"==J&&(J="keyboard");for(ya in Eb)if(J==ya){La=Eb[ya];za=!!(a.pa&La);break}if(!La){a.j("unknown message category: "+J);break a}}if(La)if("on"==g[2])a.pa|=La,za=!0;else if("off"==g[2]&&(a.pa&=~La,za=!1,1073741824==La)){for(var yh=1E3<=a.Y.length?a.Y.length-1E3:0;yh<a.Y.length;)a.j(a.Y[yh++]);a.Y=[]}}var Gj=0,ic="";for(ya in Eb)if(!J||J==ya){var Hj=!!(a.pa&
Eb[ya]);if(null===za||za==Hj)ic&&(ic+=","),++Gj%10||(ic+="\n\t"),"key"==ya&&(ya="keys"),ic+=ya}void 0===J&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==za?za?"messages on: ":"messages off: ":"message categories:\n\t")+(ic||"none"));Ai(a)}break;case "p":if("print"==g[0]){fj(a,b.substr(5));break}var Ij=g[0];if("?"==g[1])a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");else{var zh="pr"==Ij?1:0,Ah=
1+zh;if(a.N)a.j("step in progress");else{var bd=Y(a.b.u[7]),jc=a.xa(bd);3==jc||4==jc||34816==(jc&65280)||35072==(jc&65280)?(a.N=Ah,Ki(bd,2)):2048==(jc&65024)&&(Yi(a,bd),a.N=Ah);a.N?(a.xb(a.f,bd,!0),a.lb()||(a.B&&a.B.rb(),a.N=0)):gj(a,zh?"tr":"t")}}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Qi(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kc=+g[2];if(8==kc||10==kc||16==kc)a.ma=kc;else{a.j("invalid base: "+kc);break}}a.j("default base: "+a.ma);break;case "cs":var lc;void 0!==
g[3]&&(lc=+g[3]);switch(g[2]){case "int":a.b.Nb=lc;break;case "start":a.b.Yb=lc;break;case "stop":a.b.Ob=lc;break;default:a.j("unknown cs option");break a}void 0!==lc&&Gd(a.b);a.j("checksums "+(a.b.C.Jb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Kd(a.b,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.b.Bb.toFixed(2)+"Mhz")+" ("+a.b.pb+"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":gj(a,g[0],g[1]);break;case "u":Ri(a,g[1],g[2],8);break;case "v":if("var"==g[0]){dj(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j("PDPjs version 1.30.6 ("+a.b.ab+",RELEASE"+(Bb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){fj(a,
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":gj(a,g[0],g[1]);break;case "u":Ri(a,g[1],g[2],8);break;case "v":if("var"==g[0]){dj(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j("PDPjs version 1.30.6 ("+a.b.bb+",RELEASE"+(Bb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){fj(a,
b.substr(1));break}var we="commands:",xe;for(xe in Ci)we+="\n"+ta(xe,9)+Ci[xe];Me(a)||(we+="\nnote: history disabled if no exec breakpoints");a.j(we);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(Bh){a.j("debugger error: "+(Bh.stack||Bh.message)),d=!1}return d}function Id(a,b,c){b=ri(a,b,c);for(var d in b)if(!Xi(a,b[+d]))return!1;return!0}cb(function(){for(var a=H(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new yi(d);G(d,c)}});
function ij(a,b,c){z.call(this,"Computer",a,ij,33554432);this.C.la=!1;jj(this,b);this.L=Ed(this,"autoPower",a);this.g=0;this.Y=a.busWidth||a.buswidth;this.f=kj;this.I=null;this.F=this.S=!1;this.ba=Ed(this,"url")||"";(Math.random()+.1).toString(36);this.B=lj(this);if(this.b=qb("CPU",this.id)){this.i=qb("Debugger",this.id);this.w=new uc({id:this.nb+".bus",busWidth:this.Y},this.b,this.i);var d,e=ob(this.id);if((this.v=qb("Panel",this.id))&&this.v.gb)for(b=0;b<e.length;b++)d=e[b],d.M=this.v.M,d.j=this.v.j,
d.gb=this.v.gb;this.j("PDPjs v1.30.6\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.Ha&&d.Ha(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Ed(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=kj),this.f&&(this.K=
d.gb=this.v.gb;this.j("PDPjs v1.30.6\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.Ia&&d.Ia(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Ed(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=kj),this.f&&(this.K=
new U(this,"1.30.6"),mj(this.K)?b=null:delete this.K);!b&&this.f&&(b=nj(this))&&(this.F=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.I=b,g.S=!0);L(g)})}else L(this);this.D.power||(this.L=!0);!c&&this.L&&oj(this,this.Zb)}else x("Unable to find CPU component")}E(ij);var kj=0;
function jj(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.T=b}function Ed(a,b,c){var d=b.toLowerCase(),d=hb[b]||hb[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function oj(a,b,c){for(var d=ob(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){oj(a,b,c)});return}}b.call(a,c)}
function pj(a,b){var c=new U(a,"1.30.6","validate");if(mj(c)&&qj(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ij.prototype;
k.Zb=function(a){void 0===a&&(a=this.f||(this.I?1:kj));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.K||new U(this,"1.30.6");if(-1==a)b=!0;else if(a>kj){if(mj(d,this.I)){this.A=new U(this,"1.30.6","failsafe");mj(this.A)&&(rj(this,d),a=2,sj(this.A));this.A.set("timestamp",Da());tj(this.A);var e=this.f&&!this.F;if(1==a||Ha("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=qj(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?mj(d,g):("error"==
f&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(Na("user",""),this.B=null)):this.j(f+": "+g),sj(d),mj(d)?(c=qj(d),e=!0):c=!1))}e&&pj(this,c?d:null)}else 2==a&&d.clear()}else pj(this);delete this.I;delete this.K}e=ob(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=uj(this,g,d,b,c));b=[d,a,c];-1!=a?oj(this,this.Pc,b):this.Pc(b)}};
function uj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.La){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.La(f,d)&&f&&(x("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.f=kj,window&&window.location.reload()):a.P=!0,b.La(null),e=!1)}if(!d&&b.Fc)for(a=b.Fc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
function uj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.Ma){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.Ma(f,d)&&f&&(x("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.f=kj,window&&window.location.reload()):a.P=!0,b.Ma(null),e=!1)}if(!d&&b.Fc)for(a=b.Fc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Pc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.C.la=!0;var d=this.D.power;d&&(d.textContent="Shutdown");this.b&&(uj(this,this.b,b,c,a),this.za(),this.b.fb());this.P&&(rj(this,b),b.clear());!c&&this.A&&(this.A.clear(),delete this.A);this.g=0};
function rj(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.B||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.6"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function hj(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new U(a,"1.30.6"),g=new U(a,"1.30.6","validate"),h=Da();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ka&&(c&&a.b.fa(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=ob(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.Ka&&(d=m.Ka(b,c),"object"===typeof d&&f.set(m.id,
function hj(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new U(a,"1.30.6"),g=new U(a,"1.30.6","validate"),h=Da();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.La&&(c&&a.b.fa(),d=a.b.La(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=ob(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.La&&(d=m.La(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.C.la=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&vj(a,a.B,f.toString()),tj(g)&&tj(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.C.la=!1,b=a.D.power)&&(b.textContent="Power");a.g=0;return e}
k.reset=function(){this.w&&this.w.reset&&(I(this,"Resetting "+this.w.type),this.w.reset());this.b&&this.b.reset&&(I(this,"Resetting "+this.b.type),this.b.reset());for(var a=ob(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c!==this.b&&c.reset&&(I(this,"Resetting "+c.type),c.reset())}this.za(-1)};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.za(-1)};
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.za(-1)};
k.za=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Vb+=c))&&(d.textContent=b.C.U?b.Aa.toFixed(2)+"Mhz":"Stopped",b.Vb=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.U;d=!!(b.b.J&8);if(0>=a||60<=(b.A+=a)){for(var e=0;e<b.b.u.length;e++)Sb(b,"R"+e,b.b.u[e]);e=kd(b.b);Sb(b,"PS",e);Sb(b,"NF",e&8?1:0,1);Sb(b,"ZF",e&4?1:0,1);Sb(b,"VF",e&2?1:0,1);Sb(b,"CF",e&1?1:0,1);b.A=0}pc(b,0<a&&c&&!d?b.b.Ib:b.Da);Yb(b,b.Cb);a=b.b;a=a.ba?a.Ma&16?1:2:4;rc(b,"B22",a&1);rc(b,"B18",a&2);rc(b,"B16",
k.za=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Vb+=c))&&(d.textContent=b.C.U?b.Aa.toFixed(2)+"Mhz":"Stopped",b.Vb=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.U;d=!!(b.b.J&8);if(0>=a||60<=(b.A+=a)){for(var e=0;e<b.b.u.length;e++)Sb(b,"R"+e,b.b.u[e]);e=kd(b.b);Sb(b,"PS",e);Sb(b,"NF",e&8?1:0,1);Sb(b,"ZF",e&4?1:0,1);Sb(b,"VF",e&2?1:0,1);Sb(b,"CF",e&1?1:0,1);b.A=0}pc(b,0<a&&c&&!d?b.b.Ib:b.Da);Yb(b,b.Cb);a=b.b;a=a.ba?a.Na&16?1:2:4;rc(b,"B22",a&1);rc(b,"B18",a&2);rc(b,"B16",
a&4)}};
k.ya=function(a,b,c){var d=this;switch(b){case "power":return this.D[b]=c,c.onclick=function(){d.g||(d.C.la?hj(d,!1,!0):oj(d,d.Zb))},!0;case "reset":return this.D[b]=c,c.onclick=function(){if(d.C.la&&!d.g)if(d.f&&!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.");hj(d,a,!0);!a&&d.N?window&&window.location.reload():(a||(d.qc=!0),d.Zb(kj),d.qc=!1)}else d.reset(),d.b&&d.b.fb()},!0;case "save":if(qa(Ga(),"pcjs.org"))c.parentNode.removeChild(c);else return this.D[b]=
c,c.onclick=function(){var a=lj(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=hj(d,b);b?vj(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1};
@ -352,7 +352,7 @@ function lj(a,b){var c=a.B;c||((c=Ma("user"),void 0!==c)?!c&&b&&(b=null,window&&
function wj(a,b){a.B=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&&(Na("user",b.data),a.B=b.data)}catch(d){x(d.message+" ("+c+")")}return a.B}function nj(a){var b=null;a.B&&(b=Ga()+"/api/v1/user?req=load&user="+a.B+"&state="+xj(a,"1.30.6"));return b}
function vj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=xj(a,"1.30.6");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.M("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.M(c),Na("user",""),a.B=null)}}
function gh(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.rb=function(a){if(this.gb){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.gb.focus();!a&&window&&window.scrollTo(b,c)}};cb(function(){for(var a=H(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=F(c),c=H(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=F(f),g=new ij(g,d,!0);G(g,f);g.L&&oj(g,g.Zb)}});
Ta.show.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=qb("Computer",c.id))&&c.ca&&!c.C.la&&c.Zb(-1)}});Ta.exit.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=qb("Computer",c.id))&&c.C.la&&hj(c,!(!c.f||c.H),!0)}});function U(a,b,c){this.id=a.id;this.key=xj(a,b,c);this.i=a.i;sj(this,a.qd)}function xj(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
Ta.show.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=qb("Computer",c.id))&&c.ca&&!c.C.la&&c.Zb(-1)}});Ta.exit.push(function(){for(var a=H(document,"pdp11","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=qb("Computer",c.id))&&c.C.la&&hj(c,!(!c.f||c.H),!0)}});function U(a,b,c){this.id=a.id;this.key=xj(a,b,c);this.i=a.i;sj(this,a.rd)}function xj(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}
U.prototype={constructor:U,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){sj(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 sj(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function tj(a){var b=!0;if(Ja()){var c=JSON.stringify(a[a.id]);Na(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function qj(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){x(c.message||c),b=!1}return b}function mj(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ja()&&(b=Ma(a.key))?(a[a.id]=b,a.b=!0):!1}var yj=0;
function Jj(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)):Kj(h,a,b,c,d,e,f)})}
@ -360,6 +360,6 @@ function Kj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(nb(c,b,a),(f=
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?Lj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Lj(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);Lj(a,b,c)}})}else c(a,null)}
function Mj(a,b,c,d){function e(a){if(void 0===h){var b=g&&H(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);l&&(--yj||eb(!0));l=!1}var g,h,l=!0;yj++;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],u=document.createElement("style");u.type="text/css";u.styleSheet?u.styleSheet.cssText=m:u.appendChild(document.createTextNode(m));n.appendChild(u)}c||
function Mj(a,b,c,d){function e(a){if(void 0===h){var b=g&&H(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);l&&(--yj||eb(!0));l=!1}var g,h,l=!0;yj++;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.6/components.xsl");m=function(d,h){h?Jj(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,--yj||eb(!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),--yj||eb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Jj(b,a,d,!0,e,m):Kj(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(r){f(r.message)}return l}window.embedPDP11=function(a,b,c,d){eb(!1);return Mj(a,b,c,d)};window.enableEvents=eb;window.sendEvent=fb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11-dbg.map
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Jj(b,a,d,!0,e,m):Kj(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){eb(!1);return Mj(a,b,c,d)};window.enableEvents=eb;window.sendEvent=fb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.6/pdp11-dbg.map

View file

@ -76,7 +76,7 @@ function Gb(a,b,c){var d=!1,e=this.controller;a=e.Da[a];var f=c&65535;a&&(a[3]?(
function Ib(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.b;0<g&&k<a.h.length;){var l=a.h[k],m=k*a.c,p=a.c-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ja)return l.ob+=l.Ja-f,l.Ja=f,!0;if(f>=l.Ja+l.ob){p=l.size-(f-m);p>g&&(p=g);l.ob=f-l.Ja+p;f=m+a.c;g-=p;k++;continue}}return Mb(1,f,g)}f=new I(a,f,p,a.c,d,e);Hb(f,a.D,l);a.h[k++]=f;f=m+a.c;g-=p}return 0>=g?(a.status((c>>10)+"Kb "+Nb[d]+" at "+ja(b)),!0):Mb(2,b,c)}function Ob(a,b){return a.f[(b&a.i)>>>a.b].Nb(b&a.l,b)}
function Pb(a,b){return a.f[(b&a.i)>>>a.b].aa(b&a.l,b)}function Qb(a,b,c){a.f[(b&a.i)>>>a.b].Db(b&a.l,c,b)}function xb(a,b){a.s=!1;a.o++;b=a.h[(b&a.Ga)>>>a.b].mc(b&a.l,b);a.o--;return b}function Rb(a,b,c){a.s=!1;a.o++;a.h[(b&a.Ga)>>>a.b].Ub(b&a.l,c&255,b);a.o--}function vb(a,b,c){a.s=!1;a.o++;a.h[(b&a.Ga)>>>a.b].qc(b&a.l,c&65535,b);a.o--}
function Sb(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.h[d];if(e.wa||e.Jc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function Tb(a){for(var b=Ub,c=0,d=0;d<a.h.length;d++){var e=a.h[d];e.type==b&&(c=e.Ja+e.ob)}return c}
function Vb(a,b,c,d,e,f,g,k,l){for(;b<=c;b+=2){var m=b&Kb;if(void 0!==a.Da[m])return x("I/O address already registered: "+r(b,8,!0)),!1;a.Da[m]=[d,e,f,g,l||"unknown",k||16,!1]}return!0}
function Vb(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&Kb;if(void 0!==a.Da[p])return x("I/O address already registered: "+r(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Da[p]=[d,e,f,g,t,k||16,!1]}return!0}
function fb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.a.Fa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],v=g[5]||1,y=0;y<v;y++,f+=2)if(t&&1<v&&(t=g[4]+y),!Vb(a,f,f,k,l,m,p,g[7]||b.Oc,t||b.Aa))return!1}}return!0}
function hb(a,b){a.A.push(b)}function J(a,b,c){a.s=!0;a.o||(c&&(a.a.X|=c),K(a.a,4,0,b))}function Wb(a){var b=a.s;a.s=!1;return b}function Mb(a,b,c){x("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}function L(a){z.call(this,"Device",a,L,256);this.b={Tf:0,Sb:-1}}B(L);h=L.prototype;
h.ia=function(a,b,c,d){this.h=b;this.l=a;this.a=c;this.D=d;var e=this;this.b.Sb=Xb(c,function(){e.b.Xa|=128;e.b.Xa&64&&M(e.a,e.b.Wa);e.l&&e.l.za(1);Yb(e.a,e.b.Sb,1E3/60)});this.b.Wa=$b(c,64,6,524288);fb(b,this,ac);hb(b,this.reset.bind(this));G(this)};h.reset=function(){this.b.Xa=128;Yb(this.a,this.b.Sb,1E3/60,!0)};h.gd=function(){return this.b.Xa};h.he=function(a){this.b.Xa=a&192;this.b.Xa&64||bc(this.a,this.b.Wa)};h.jd=function(){var a=this.a,b=a.Y;b&57344||(b=b&-3199|a.fb<<5|a.gb<<1);return b};